Commit 1cbba93f LN

修改配置

1 个父辈 11e2c782
......@@ -80,7 +80,7 @@ namespace OnlineStore.ACPackingStore
txtMiddleP1.Text = BoxBean.Config.MiddleAxis_P1_Position.ToString();
txtUpDownP1.Text = BoxBean.Config.UpDownAxis_DoorOPosition_P1.ToString();
txtInOutP1.Text = BoxBean.Config.InOutAxis_P1_Position.ToString();
txtComP1.Text = BoxBean.Config.CompressAxis_P1_Position.ToString();
txtComP1.Text = BoxBean.Config.CompAxis_P1_Position.ToString();
txtUpDownP2.Text = BoxBean.Config.UpDownAxis_DoorIPosition_P2.ToString();
txtUpDownP7.Text = BoxBean.Config.UpDownAxis_DoorOBPosition_P7.ToString();
......@@ -613,9 +613,9 @@ namespace OnlineStore.ACPackingStore
needUpdate = true;
}
if (BoxBean.Config.CompressAxis_P1_Position != FormUtil.GetIntValue(txtComP1))
if (BoxBean.Config.CompAxis_P1_Position != FormUtil.GetIntValue(txtComP1))
{
BoxBean.Config.CompressAxis_P1_Position = FormUtil.GetIntValue(txtComP1);
BoxBean.Config.CompAxis_P1_Position = FormUtil.GetIntValue(txtComP1);
needUpdate = true;
}
if (BoxBean.Config.UpDownAxis_DoorIPosition_P2 != FormUtil.GetIntValue(txtUpDownP2))
......
......@@ -296,7 +296,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo(MoveInfo.MoveType + ": 旋转轴运动到P1,上下轴走到P1,压紧轴到P1!");
ACAxisMove(Config.Middle_Axis, Config.MiddleAxis_P1_Position, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxis_DoorOPosition_P1, Config.UpDownAxis_P1_Speed);
ComMoveToPosition(Config.CompressAxis_P1_Position, Config.CompAxis_P1_Speed);
ComMoveToPosition(Config.CompAxis_P1_Position, Config.CompAxis_P1_Speed);
break;
case StoreMoveStep.BOX_H_MiddleAxisToP1:
......@@ -322,7 +322,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo(MoveInfo.MoveType + ": 旋转轴运动到P1,上下轴走到P1,压紧轴到P1!");
ACAxisMove(Config.Middle_Axis, Config.MiddleAxis_P1_Position, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxis_DoorOPosition_P1, Config.UpDownAxis_P1_Speed);
ComMoveToPosition(Config.CompressAxis_P1_Position, Config.CompAxis_P1_Speed);
ComMoveToPosition(Config.CompAxis_P1_Position, Config.CompAxis_P1_Speed);
break;
case StoreMoveStep.BOX_M_H_TOP1_OtherAxisToP1:
LogInfo("到待机状态完成");
......
......@@ -182,15 +182,15 @@ namespace OnlineStore.DeviceLibrary
}
private void SI_02_Move(LineMoveP moveP)
{
InStoreLog("入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门");
MoveInfo.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome);
InOutStoreLog("入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门");
OpenDoor();
InOutBackToP1(moveP.InOut_P1);
}
private void SI_05_DeviceToDoor()
{
InStoreLog("入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_05_DeviceToDoor);
InOutStoreLog("入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) ");
ACAxisMove(Config.InOut_Axis, MoveInfo.MoveParam.MoveP.InOut_P2, Config.InOutAxis_P2_Speed);
//NeedCheckSafetyLight = 1;
}
......@@ -215,16 +215,16 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_02_InOutAxisHome)
{
InStoreLog("入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1,,轴4动作至P3");
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_ReturnHome);
InOutStoreLog("入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1,,轴4动作至P3");
ComMoveToPosition(moveP.ComPress_P3, Config.CompAxis_P3_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_03_ReturnHome)
{
InStoreLog("入库:SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),压紧轴至P3(压紧前点) 开始");
MoveInfo.NextMoveStep(StoreMoveStep.SI_04_CompressWare);
InOutStoreLog("入库:SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),压紧轴至P3(压紧前点) 开始");
ComMoveToPosition(moveP.ComPress_P3, Config.CompAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_04_CompressWare)
......@@ -234,49 +234,47 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SI_05_DeviceToDoor)
{
//NeedCheckSafetyLight = 0;
InStoreLog("入库:SI_06 拿物品,压紧轴至P2(压紧点)) 升降轴至P7(进料口取料缓冲点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_06_DoorWarToDevice);
InOutStoreLog("入库:SI_06 拿物品,压紧轴至P2(压紧点)) 升降轴至P7(进料口取料缓冲点) ");
ComMoveToPosition(moveP.ComPress_P2, Config.CompAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P7, Config.UpDownAxis_P7_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_06_DoorWarToDevice)
{
InStoreLog("入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_07_DeviceBackFromDoor);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutStoreLog("入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点) ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_07_DeviceBackFromDoor)
{
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
InOutStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点) ");
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
CloseDoor(false);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_08_LocationCylinder_Up)
{
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点)),关闭舱门 ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
InOutStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点)),关闭舱门 ");
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
CloseDoor(false);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_09_MoveToBag)
{
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
InOutStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_10_LocationCylinder_Down)
{
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
InOutStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_11_DeviceToBag)
{
InStoreLog("入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点),压紧轴至P3(压紧前点) ");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
lastPosId = posId;
......@@ -286,20 +284,21 @@ namespace OnlineStore.DeviceLibrary
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
MoveInfo.NextMoveStep(StoreMoveStep.SI_12_PutWareToBag);
InOutStoreLog("入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点),压紧轴至P3(压紧前点) ");
ComMoveToPosition(moveP.ComPress_P3, Config.CompAxis_P3_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_12_PutWareToBag)
{
InStoreLog("入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_13_DeviceBackFromBag);
InOutStoreLog("入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_13_DeviceBackFromBag)
{
InStoreLog("入库:SI_14 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭");
MoveInfo.NextMoveStep(StoreMoveStep.SI_14_GoBack);
InOutStoreLog("入库:SI_14 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭");
ComMoveToPosition(moveP.ComPress_P1, Config.CompAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
......@@ -353,7 +352,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NewMove(StoreMoveType.OutStore, param);
MoveInfo.NextMoveStep(StoreMoveStep.SO_02_DeviceBack);
OutStoreLog("出库:SO_02 叉子先运动到P1 ,打开舱门 开始");
InOutStoreLog("出库:SO_02 叉子先运动到P1 ,打开舱门 开始");
//ACAxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
......@@ -379,13 +378,13 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveStep == StoreMoveStep.SO_01_LocationCylinderDown)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_02_DeviceBack);
OutStoreLog("出库:SO_02 叉子先运动到P1 ");
InOutStoreLog("出库:SO_02 叉子先运动到P1 ");
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_02_DeviceBack)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_03_ToBagPosition);
OutStoreLog("出库:SO_03 走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点)");
InOutStoreLog("出库:SO_03 走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点)");
ComMoveToPosition(moveP.ComPress_P3, Config.CompAxis_P3_Speed);
ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.MoveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.MoveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
......@@ -393,13 +392,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_03_ToBagPosition)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_04_DeviceToBag);
OutStoreLog("出库:SO_04 叉子进入库位中, 进出轴至P3(库位取放料点) ");
InOutStoreLog("出库:SO_04 叉子进入库位中, 进出轴至P3(库位取放料点) ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_04_DeviceToBag)
{
OutStoreLog("出库:SO_05 拿起物品,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SO_05_BagWareToDevice);
InOutStoreLog("出库:SO_05 拿起物品,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点) ");
ComMoveToPosition(moveP.ComPress_P2, Config.CompAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed);
......@@ -407,7 +406,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_05_BagWareToDevice)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_BagDeviceBack);
OutStoreLog("出库:SO_06 叉子从库位返回,进出轴至P1(待机点) ");
InOutStoreLog("出库:SO_06 叉子从库位返回,进出轴至P1(待机点) ");
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
//把库位的物品放到取到叉子上之后是出仓完成
......@@ -427,7 +426,7 @@ namespace OnlineStore.DeviceLibrary
}
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_ToDoorPosition);
OutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点),打开舱门 ");
InOutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点),打开舱门 ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
//打开舱门
......@@ -437,7 +436,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_LocationCylinder_Up)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_ToDoorPosition);
OutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点) ");
InOutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点) ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
......@@ -456,7 +455,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_09_LocationCylinder_Down)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_091_WaitNoTray);
OutStoreLog("出库:SO_091 打开仓门,等待门口无料盘 ");
InOutStoreLog("出库:SO_091 打开仓门,等待门口无料盘 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Door, IO_VALUE.LOW));
// StoreMove.WaitList.Add(WaitResultInfo.WaitHeight(0));
OpenDoor();
......@@ -468,8 +467,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_10_DeviceToDoor)
{
OutStoreLog("出库:SO_11 放下物品,升降轴至P8(进料口出料缓冲点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SO_11_DevicePutWare);
InOutStoreLog("出库:SO_11 放下物品,升降轴至P8(进料口出料缓冲点) ");
//NeedCheckSafetyLight = 0;
ComMoveToPosition(moveP.ComPress_P1, Config.CompAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P8, Config.UpDownAxis_P8_Speed);
......@@ -477,13 +476,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_11_DevicePutWare)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_12_DeviceOutFromDoor);
OutStoreLog("出库:SO_12 叉子从出料口返回,,进出轴动作至P1(待机点) ");
InOutStoreLog("出库:SO_12 叉子从出料口返回,,进出轴动作至P1(待机点) ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_12_DeviceOutFromDoor)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_13_GoBack);
OutStoreLog("出库:SO_13 升降轴返回,轴2至P1(待机点) ,关闭舱门");
InOutStoreLog("出库:SO_13 升降轴返回,轴2至P1(待机点) ,关闭舱门");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
CloseDoor();
//发送消息给流水线
......@@ -498,7 +497,7 @@ namespace OnlineStore.DeviceLibrary
}
int ms = OutStoreWaitSeconds * 1000;
MoveInfo.NextMoveStep(StoreMoveStep.SO_14_WaitTake);
OutStoreLog("出库:SO_14_WaitTake 等待拿走物品,最多等待" + OutStoreWaitSeconds + "秒");
InOutStoreLog("出库:SO_14_WaitTake 等待拿走物品,最多等待" + OutStoreWaitSeconds + "秒");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(ms));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Door, IO_VALUE.LOW));
// StoreMove.WaitList.Add(WaitResultInfo.WaitHeight(0));
......@@ -540,7 +539,7 @@ namespace OnlineStore.DeviceLibrary
{
LineMoveP moveP = MoveInfo.MoveParam.MoveP;
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_DeviceToDoor);
OutStoreLog("出库:SO_10 叉子进出料口,进出轴至P2(进料口取料点) ");
InOutStoreLog("出库:SO_10 叉子进出料口,进出轴至P2(进料口取料点) ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
//NeedCheckSafetyLight = 1;
}
......@@ -570,15 +569,11 @@ namespace OnlineStore.DeviceLibrary
waitOutStoreList.Add(code);
}
}
private void InStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
LogInfo("【" + posId + "】" + msg);
}
private void OutStoreLog(string msg)
private void InOutStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
LogInfo("【" + posId + "】" + msg);
}
string shelfId = MoveInfo.MoveParam != null ? "_"+MoveInfo.MoveParam.ShelfPosID : "_";
LogInfo("[" + posId + shelfId+"]"+MoveInfo.MoveStep+":" + msg);
}
}
}
using OnlineStore.LoadCSVLibrary;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -27,6 +28,7 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NewMove(StoreMoveType.InStore, new InOutParam());
MoveInfo.ShelfPositionList = new List<string>(ShelfPosList);
MoveInfo.NextMoveStep(StoreMoveStep.SI_S02_DoorOpen);
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Open);
......@@ -35,16 +37,18 @@ namespace OnlineStore.DeviceLibrary
}
private void ShelfInStoreProcess()
{
LineMoveP moveP = MoveInfo.MoveParam.MoveP;
#region 料架移入料仓内部处理
if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S01_LineIn_Check))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S02_DoorOpen);
InStoreLog("SI_S02_DoorOpen:料架入库:入料口移门打开");
InOutStoreLog("料架入库:入料口移门打开");
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Open);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S02_DoorOpen))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S03_LineRun);
InStoreLog("SI_S03_LineRun:料架入库:线体正转,等待取料位检测到信号");
InOutStoreLog("料架入库:线体正转,等待取料位检测到信号");
IOMove(IO_Type.Line_BackRun, IO_VALUE.LOW);
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
......@@ -54,38 +58,176 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S03_LineRun))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S04_LineStop);
InStoreLog("SI_S04_LineStop:料架入库:取料位检测到信号,停止线体正转");
InOutStoreLog("料架入库:取料位检测到信号,停止线体正转");
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S04_LineStop))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S05_DoorClose);
InStoreLog("SI_S05_DoorClose:料架入库:入料口移门关闭");
InOutStoreLog("料架入库:入料口移门关闭");
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S05_DoorClose))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S06_LocationUp);
InStoreLog("SI_S06_LocationUp:料架入库:定位装置上升");
InOutStoreLog("料架入库:定位装置上升");
CylinderMove(MoveInfo, IO_Type.LocationCylinder_Down, IO_Type.LocationCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S06_LocationUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S07_TopCylinderUp);
InStoreLog("SI_S07_TopCylinderUp:料架入库:顶升装置上升");
InOutStoreLog("料架入库:顶升装置上升");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S07_TopCylinderUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S08_StartGetTray);
InStoreLog("SI_S07_TopCylinderUp:料架入库:开始循环从第一个空位逐个取料盘,扫码入库");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_Up);
InOutStoreLog("料架入库:开始循环从第一个空位逐个取料盘,扫码入库");
}
#endregion
#region 料架取料盘扫码获取POSID
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S08_StartGetTray))
{
if (MoveInfo.NextShelfPos())
{
//新的料架库位
MoveInfo.NextMoveStep(StoreMoveStep.SI_S11_InoutToP1);
InOutStoreLog("料架取料:叉子后退到待机点P1");
ACAxisMove(Config.InOut_Axis, Config.InOutAxis_P1_Position, Config.InOutAxis_P1_Speed);
}
else
{
//所有料盘已取料完成
}
}else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S11_InoutToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S12_MoveToShelf);
InOutStoreLog("料架取料:升降轴移动到PA1低点,旋转轴移动到PA1点,压紧轴到压紧前点");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_LPA1, Config.UpDownAxis_PA1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_PA, Config.MiddleAxis_PA_Speed);
ACAxisMove(Config.Comp_Axis, Config.CompAxis_P3_Speed, Config.CompAxis_P3_Speed);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S12_MoveToShelf))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S13_InoutToPA);
InOutStoreLog("料架取料:叉子前进到PA点");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S13_InoutToPA))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S14_UpdownToPA2);
InOutStoreLog("料架取料:升降轴上升到PA2点");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S14_UpdownToPA2))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S15_StartCompress);
InOutStoreLog("料架取料:压紧轴开始缓慢压紧");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S15_StartCompress))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S16_ComAxisDownMove);
InOutStoreLog("料架取料:检测到料叉压紧确认信号,再次向下压紧指定的值");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S16_ComAxisDownMove))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S17_InoutBack);
InOutStoreLog("料架取料:记录压紧高度,叉子后退到扫码点");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S17_InoutBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S18_ScanCode);
InOutStoreLog("料架取料:记录宽度,开始扫码");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S18_ScanCode))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S19_GetPosId);
InOutStoreLog("料架取料:扫码成功,从服务器获取库位号");
StartSendTray();
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S19_GetPosId))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S20_CompressWare);
InOutStoreLog("料架取料: 获取库位号完成,设置位置参数,开始入库");
StartSendTray();
}
#endregion
#region 入库逻辑
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S20_CompressWare))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S21_MoveToBag);
InOutStoreLog("入库:移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S21_MoveToBag))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S22_DeviceToBag);
InOutStoreLog("入库:叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S22_DeviceToBag))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S23_PutWareToBag);
InOutStoreLog("入库:放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S23_PutWareToBag))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S24_DeviceBackFromBag);
InOutStoreLog("入库:叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S24_DeviceBackFromBag))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S25_GoBack);
InOutStoreLog("入库:返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S25_GoBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S08_StartGetTray);
InOutStoreLog("料架入库:开始循环从第一个空位逐个取料盘,扫码入库");
}
#endregion
#region 入库逻辑
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S31_ToNGDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S32_NGDoorUp);
InOutStoreLog("送出料盘:NG料口升降门上升");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S32_NGDoorUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S33_InoutToNGDoor);
InOutStoreLog("送出料盘:进出轴前进到NG料门口位置");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S33_InoutToNGDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S34_UpdownDown);
InOutStoreLog("送出料盘:升降轴缓慢下降,放下料盘");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S34_UpdownDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S12_MoveToShelf);
InOutStoreLog("料架取料:叉子后退到待机点P1");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S34_UpdownDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S35_InoutToP1);
InOutStoreLog("送出料盘:叉子后退到P1");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S35_InoutToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S36_NGDoorDown);
InOutStoreLog("送出料盘:关门NG料门,送出料盘结束");
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S36_NGDoorDown))
{
}
#endregion
else
{
......@@ -93,6 +235,57 @@ namespace OnlineStore.DeviceLibrary
}
}
private void StartSendTray()
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S31_ToNGDoor);
InOutStoreLog("送出料盘:扫码或获取库位失败,升降轴移动到NG料门口上端,旋转轴移动到NG料门口");
}
#region 压紧轴压紧处理
private System.Timers.Timer axisCheckTimer = null;
private string TargetIoType = IO_Type.Compress_Check;
private IO_VALUE TargetIoValue = IO_VALUE.HIGH;
private bool ComAxisStartCheck(string targetIo = "", IO_VALUE value = IO_VALUE.HIGH)
{
if (String.IsNullOrEmpty(targetIo))
{
targetIo = IO_Type.Compress_Check;
}
if (axisCheckTimer == null)
{
axisCheckTimer = new System.Timers.Timer();
axisCheckTimer.AutoReset = true;
axisCheckTimer.Interval += 30;
axisCheckTimer.Elapsed += CheckTimer_Elapsed;
axisCheckTimer.Enabled = false;
}
TargetIoValue = value;
TargetIoType = targetIo;
axisCheckTimer.Start();
return true;
}
private bool ComAxisStopCheck()
{
if (!(axisCheckTimer == null))
{
axisCheckTimer.Stop();
}
return true;
}
private bool IsInProcess = false;
private void CheckTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (IsInProcess) { return; }
IsInProcess = true;
if (IOValue(TargetIoType).Equals(TargetIoValue))
{
LogUtil.info(Name + "上料轴,检测到 " + TargetIoType + "=" + TargetIoValue + ",可以停止运动");
ACServerManager.SuddenStop(Config.Comp_Axis.DeviceName, Config.Comp_Axis.GetAxisValue());
ComAxisStopCheck();
}
IsInProcess = false;
}
#endregion
}
}
......@@ -182,7 +182,7 @@ namespace OnlineStore.DeviceLibrary
p.UpDown_HPA2 = sp.UpDownAxis_HPA2;
p.Middle_PA = sp.MiddleAxis_PA;
p.ComPress_P1 = box.Config.CompressAxis_P1_Position;
p.ComPress_P1 = box.Config.CompAxis_P1_Position;
p.InOut_P1 = box.Config.InOutAxis_P1_Position;
p.Middle_P1 = box.Config.MiddleAxis_P1_Position;
......
......@@ -48,7 +48,8 @@ PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,415000,,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,403000,,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,268093,,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,1000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompressAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P3压紧前点,CompAxis_P3_Position,10000,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,250,,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,80,,,,,,,
......@@ -91,6 +92,13 @@ PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,1000,,,,,,,
PRO,压紧轴(轴4)P1速度,CompAxis_P1_Speed,100,,,,,,,
PRO,压紧轴(轴4)P2速度,CompAxis_P2_Speed,100,,,,,,,
PRO,压紧轴(轴4)P3速度,CompAxis_P3_Speed,100,,,,,,,
,,,,,,,,,,
PRO,升降轴(轴2)PA1速度,UpDownAxis_PA1_Speed,100,,,,,, ,
PRO,升降轴(轴2)PA2速度,UpDownAxis_PA2_Speed,100,,,,,,,
PRO,进出轴(轴3)PA速度,InOutAxis_PA_Speed,100,,,,,,,
PRO,旋转轴(轴1)PA速度,MiddleAxis_PA_Speed,120,,,,,,,
PRO,压紧轴(轴4)缓慢压紧速度,CompAxis_Com_Speed,100,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,, ,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,,
......
......@@ -48,7 +48,8 @@ PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,415000,,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,403000,,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,268093,,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,1000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompressAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P3压紧前点,CompAxis_P3_Position,10000,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,250,,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,80,,,,,,,
......@@ -91,6 +92,13 @@ PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,1000,,,,,,,
PRO,压紧轴(轴4)P1速度,CompAxis_P1_Speed,100,,,,,,,
PRO,压紧轴(轴4)P2速度,CompAxis_P2_Speed,100,,,,,,,
PRO,压紧轴(轴4)P3速度,CompAxis_P3_Speed,100,,,,,,,
,,,,,,,,,,
PRO,升降轴(轴2)PA1速度,UpDownAxis_PA1_Speed,100,,,,,, ,
PRO,升降轴(轴2)PA2速度,UpDownAxis_PA2_Speed,100,,,,,,,
PRO,进出轴(轴3)PA速度,InOutAxis_PA_Speed,100,,,,,,,
PRO,旋转轴(轴1)PA速度,MiddleAxis_PA_Speed,120,,,,,,,
PRO,压紧轴(轴4)缓慢压紧速度,CompAxis_Com_Speed,100,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,, ,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,,
......
......@@ -103,73 +103,22 @@ namespace OnlineStore.DeviceLibrary
{
return " ShelfPosID=["+ ShelfPosID + "],WareCode=【" + WareCode + "】,PosID=【" + PosID + "】,PlateW=【" + PlateW + "】,PlateH=【" + PlateH + "】";
}
}
///// <summary>
// /// 夹具编码信息(保存夹具检测到的IO数值,和对应的料仓位置)
// /// </summary>
//public class FixtureCodeInfo
//{
// public FixtureCodeInfo(string wareNum, string posId)
// {
// this.WareNum = wareNum;
// this.PosId = posId;
// this.plateH = "";
// this.plateW = "";
// }
// public FixtureCodeInfo(string wareNum, string posId, string platew, string plateh)
// {
// this.WareNum = wareNum;
// this.PosId = posId;
// this.plateW = platew;
// this.plateH = plateh;
// }
// /// <summary>
// /// 物品二维码
// /// </summary>
// public string WareNum { get; set; }
// /// <summary>
// /// 库位号编码
// /// </summary>
// public string PosId { get; set; }
// /// <summary>
// /// 料盘宽
// /// </summary>
// public string plateW { get; set; }
// /// <summary>
// /// 料盘高
// /// </summary>
// public string plateH { get; set; }
internal void UpdateShelfPosId(string pId)
{
this.ShelfPosID = pId;
ShelfPosition sp = CSVPositionReader<ShelfPosition>.GetPositon(ShelfPosID);
if (sp == null)
{
LogUtil.error( "GetPositon[" + ShelfPosID + "]=null,没有库位不能执行出入库");
}
// public string ToStr()
// {
// return " WareNum=【" + WareNum + "】,PosId=【" + PosId + "】,plateW=【" + plateW + "】,plateH=【" + plateH + "】";
// }
// /// <summary>
// /// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
// /// </summary>
// /// <returns></returns>
// public int GetStoreId()
// {
// if (!PosId.Equals(""))
// {
// string[] arr = PosId.Split('#');
// if (arr.Length >= 2)
// {
// try
// {
// return int.Parse(arr[0]);
// }
// catch (Exception ex)
// {
MoveP.InOut_PA = sp.InoutAxis_PA;
MoveP.UpDown_LPA1 = sp.UpDownAxis_LPA1;
MoveP.UpDown_HPA2 = sp.UpDownAxis_HPA2;
MoveP.Middle_PA = sp.MiddleAxis_PA;
// }
// }
// }
// return -1;
// }
//}
}
}
}
......@@ -247,68 +247,68 @@ namespace OnlineStore.DeviceLibrary
#endregion
#region 料仓内部入库步骤 20100
#region 料仓内部入库步骤 20500
/// <summary>
/// 入库检测
/// </summary>
SI_00_TrayCheck = 20100,
SI_00_TrayCheck = 20500,
/// <summary>
/// 入库,。定位气缸下降
/// </summary>
SI_01_LocationCylinderDown =20101,
SI_01_LocationCylinderDown =20501,
/// <summary>
/// 入库。。进出轴(叉子)先返回P1
/// </summary>
SI_02_InOutAxisHome =20102,
SI_02_InOutAxisHome =20502,
/// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
/// </summary>
SI_03_ReturnHome =20103,
SI_03_ReturnHome =20503,
/// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
/// </summary>
SI_04_CompressWare =20104,
SI_04_CompressWare =20504,
/// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
/// </summary>
SI_05_DeviceToDoor =20105,
SI_05_DeviceToDoor =20505,
/// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
/// </summary>
SI_06_DoorWarToDevice =20106,
SI_06_DoorWarToDevice =20506,
/// <summary>
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// </summary>
SI_07_DeviceBackFromDoor =20107,
SI_07_DeviceBackFromDoor =20507,
/// <summary>
/// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
/// </summary>
SI_08_LocationCylinder_Up =20108,
SI_08_LocationCylinder_Up =20508,
/// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// </summary>
SI_09_MoveToBag =20109,
SI_09_MoveToBag =20509,
/// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
/// </summary>
SI_10_LocationCylinder_Down =20110,
SI_10_LocationCylinder_Down =20510,
/// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
/// </summary>
SI_11_DeviceToBag =20111,
SI_11_DeviceToBag =20511,
/// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
/// </summary>
SI_12_PutWareToBag =20112,
SI_12_PutWareToBag =20512,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary>
SI_13_DeviceBackFromBag =20113,
SI_13_DeviceBackFromBag =20513,
/// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
/// </summary>
SI_14_GoBack =20114,
SI_14_GoBack =20514,
#endregion
......@@ -349,56 +349,92 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
SI_S08_StartGetTray= 20008,
/// <summary>
/// 料架取料:叉子后退到待机点P1
/// </summary>
SI_S11_InoutToP1 = 20111,
/// <summary>
/// 料架取料:升降轴移动到PA1低点,旋转轴移动到PA1点,压紧轴到压紧前点
/// </summary>
SI_S12_MoveToShelf = 20112,
/// <summary>
/// 料架取料:叉子前进到PA点
/// </summary>
SI_S13_InoutToPA = 20113,
/// <summary>
/// 料架取料:升降轴上升到PA2点
/// </summary>
SI_S14_UpdownToPA2 = 20114,
/// <summary>
/// 料架取料:压紧轴开始缓慢压紧
/// </summary>
SI_S15_StartCompress = 20115,
/// <summary>
/// 料架取料:检测到料叉压紧确认信号,再次向下压紧指定的值
/// </summary>
SI_S16_ComAxisDownMove = 20116,
/// <summary>
/// 料架取料:记录压紧高度,叉子后退到扫码点
/// </summary>
SI_S17_InoutBack = 20117,
/// <summary>
/// 料架取料:记录宽度,开始扫码
/// </summary>
SI_S18_ScanCode = 20118,
/// <summary>
/// 料架取料:扫码成功,从服务器获取库位号
/// </summary>
SI_S19_GetPosId = 20119,
/// <summary>
/// 料架取料: 获取库位号完成,设置位置参数,开始入库
/// </summary>
SI_S20_CompressWare = 20120,
/// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// </summary>
SI_S21_MoveToBag = 20121,
/// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
/// </summary>
SI_S22_DeviceToBag = 20122,
/// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
/// </summary>
SI_S23_PutWareToBag = 20123,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary>
SI_S24_DeviceBackFromBag = 20124,
/// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
/// </summary>
SI_S25_GoBack = 20125,
///// <summary>
///// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///// </summary>
//SI_S03_CompressWare = 20103,
///// <summary>
///// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///// </summary>
//SI_S04_CompressWare = 20104,
///// <summary>
///// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
///// </summary>
//SI_S05_DeviceToDoor = 20105,
///// <summary>
///// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
///// </summary>
//SI_S06_DoorWarToDevice = 20106,
///// <summary>
///// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
///// </summary>
//SI_S07_DeviceBackFromDoor = 20107,
///// <summary>
///// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
///// </summary>
//SI_S08_LocationCylinder_Up = 20108,
///// <summary>
///// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
///// </summary>
//SI_S09_MoveToBag = 20109,
///// <summary>
///// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
///// </summary>
//SI_S10_LocationCylinder_Down = 20110,
///// <summary>
///// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
///// </summary>
//SI_S11_DeviceToBag = 20111,
///// <summary>
///// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
///// </summary>
//SI_S12_PutWareToBag = 20112,
///// <summary>
///// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
///// </summary>
//SI_S13_DeviceBackFromBag = 20113,
///// <summary>
///// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
///// </summary>
//SI_S14_GoBack = 20114,
/// <summary>
/// 送出料盘:扫码或获取库位失败,升降轴移动到NG料门口上端,旋转轴移动到NG料门口
/// </summary>
SI_S31_ToNGDoor=20131,
/// <summary>
/// 送出料盘:NG料口升降门上升
/// </summary>
SI_S32_NGDoorUp = 20132,
/// <summary>
/// 送出料盘:进出轴前进到NG料门口位置
/// </summary>
SI_S33_InoutToNGDoor = 20133,
/// <summary>
/// 送出料盘:升降轴缓慢下降,放下料盘
/// </summary>
SI_S34_UpdownDown= 20134,
/// <summary>
/// 送出料盘:叉子后退到P1
/// </summary>
SI_S35_InoutToP1 = 20135,
/// <summary>
/// 送出料盘:关门NG料门,送出料盘结束
/// </summary>
SI_S36_NGDoorDown = 20136,
#endregion
}
......
......@@ -60,10 +60,7 @@ namespace OnlineStore.DeviceLibrary
/// 是否再当前步骤等待中
/// </summary>
public bool IsInWait { get; set; }
/// <summary>
/// 上一个执行步骤
/// </summary>
public StoreMoveStep PreMoveStep { get; set; }
/// <summary>
/// 当前执行到的步骤
/// </summary>
......@@ -82,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
public void NextMoveStep(StoreMoveStep step)
{
PreMoveStep = moveStep;
// PreMoveStep = moveStep;
moveStep = step;
LastSetpTime = DateTime.Now;
IsInWait = true;
......@@ -130,13 +127,26 @@ namespace OnlineStore.DeviceLibrary
}
public List<WaitResultInfo> WaitList = new List<WaitResultInfo>();
/// <summary>
/// 重置之后继续出入库时,退回上一个步骤执行
/// 入库时,需要循环料架的料盘取出
/// </summary>
public void BackStep()
public List<string> ShelfPositionList = new List<string>();
public string currShelfPosId = "";
public int currShelfIndex = -1;
public bool NextShelfPos()
{
moveStep = PreMoveStep;
IsInWait = false;
currShelfIndex++;
if (ShelfPositionList.Count >= currShelfIndex)
{
return false;
}
currShelfPosId = ShelfPositionList[currShelfIndex];
//设置取料位置
MoveParam.UpdateShelfPosId(currShelfPosId);
return true;
}
}
......@@ -232,15 +242,7 @@ namespace OnlineStore.DeviceLibrary
wait.IsEnd = false;
return wait;
}
//public static WaitResultInfo WaitHeight(int height)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.WaitType = 7;
// wait.HeightValue = height;
// wait.IsEnd = false;
// return wait;
//}
public string ToStr()
{
if (WaitType == 1)
......
......@@ -264,10 +264,10 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("InOutAxis_P1_Position")]
public int InOutAxis_P1_Position { get; set; }
/// <summary>
/// PRO 押金轴(轴4)P1待机原位点 CompressAxis_P1_Position
/// PRO 押金轴(轴4)P1待机原位点 CompAxis_P1_Position
/// </summary>
[ConfigProAttribute("CompressAxis_P1_Position")]
public int CompressAxis_P1_Position { get; set; }
[ConfigProAttribute("CompAxis_P1_Position")]
public int CompAxis_P1_Position { get; set; }
/// <summary>
///轴2升降轴 运动上下轴
......@@ -371,7 +371,40 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("CompAxis_P3_Speed")]
public int CompAxis_P3_Speed { get; set; }
/// <summary>
/// PRO,压紧轴(轴4)缓慢压紧速度,CompAxis_Com_Speed,100,,,,,,,
/// </summary>
[ConfigProAttribute("CompAxis_Com_Speed")]
public int CompAxis_Com_Speed { get; set; }
/// <summary>
/// PRO,升降轴(轴2)PA1速度,UpDownAxis_PA1_Speed,100,,,,,, ,
/// </summary>
[ConfigProAttribute("UpDownAxis_PA1_Speed")]
public int UpDownAxis_PA1_Speed { get; set; }
/// <summary>
/// PRO,升降轴(轴2)PA2速度,UpDownAxis_PA2_Speed,100,,,,,,,
/// </summary>
[ConfigProAttribute("UpDownAxis_PA2_Speed")]
public int UpDownAxis_PA2_Speed { get; set; }
/// <summary>
/// PRO,进出轴(轴3)PA速度,InOutAxis_PA_Speed,100,,,,,,,
/// </summary>
[ConfigProAttribute("InOutAxis_PA_Speed")]
public int InOutAxis_PA_Speed { get; set; }
/// <summary>
/// PRO,旋转轴(轴1)PA速度,MiddleAxis_PA_Speed,120,,,,,,,
/// </summary>
[ConfigProAttribute("MiddleAxis_PA_Speed")]
public int MiddleAxis_PA_Speed { get; set; }
/// <summary>
/// PRO,压紧轴(轴4)P3压紧前点,CompAxis_P3_Position,10000,,,,,,,
/// </summary>
[ConfigProAttribute("CompAxis_P3_Position")]
public int CompAxis_P3_Position { get; set; }
/// <summary>
/// 预警温度
/// </summary>
......@@ -546,7 +579,7 @@ namespace OnlineStore.LoadCSVLibrary
Config.Middle_Axis.DefaultPosition = Config.MiddleAxis_P1_Position;
Config.InOut_Axis.DefaultPosition = Config.InOutAxis_P1_Position;
Config.UpDown_Axis.DefaultPosition = Config.UpDownAxis_DoorOPosition_P1;
Config.Comp_Axis.DefaultPosition = Config.CompressAxis_P1_Position;
Config.Comp_Axis.DefaultPosition = Config.CompAxis_P1_Position;
Config.Comp_Axis.CanErrorCountMax = 1000;
Config.Comp_Axis.CanErrorCountMin = 10;
Config.Comp_Axis.PositionMin = 0;
......
......@@ -167,7 +167,7 @@ namespace OnlineStore.LoadCSVLibrary
Config.Middle_Axis.DefaultPosition = Config.MiddleAxis_P1_Position;
Config.InOut_Axis.DefaultPosition = Config.InOutAxis_P1_Position;
Config.UpDown_Axis.DefaultPosition = Config.UpDownAxis_DoorOPosition_P1;
Config.Comp_Axis.DefaultPosition = Config.CompressAxis_P1_Position;
Config.Comp_Axis.DefaultPosition = Config.CompAxis_P1_Position;
Config.Comp_Axis.CanErrorCountMax = 1000;
Config.Comp_Axis.CanErrorCountMin = 10;
Config.Comp_Axis.PositionMin = 0;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!