Commit ad39440e LN

增加IsUse_Tray_Check功能

1 个父辈 184abef7
......@@ -31,8 +31,8 @@ PRO,0,压紧轴(轴4)P3速度,CompAxis_P3_Speed,20000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,,,,,,
PRO,0,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,1,,,,,,,,,,,,
PRO,0,是否调试状态,ISDebug,0,,,,,,,,,,,,
PRO,,每次吹气的时间(分钟),BlowAir_Time,10,,,
PRO,,两次吹气间隔(分钟),BlowAir_Interval,10,,,
PRO,,温湿度端口号,Humiture_Port,COM5,,,
\ No newline at end of file
PRO,,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,,,,,,
PRO,,两次吹气间隔(分钟),BlowAir_Interval,10,,, ,,,,,,,,,
PRO,,温湿度端口号,Humiture_Port,COM5,,,,,,,,,,,,
......@@ -31,7 +31,7 @@ PRO,0,压紧轴(轴4)P3速度,CompAxis_P3_Speed,20000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,,,,,,
PRO,0,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,1,,,,,,,,,,,,
PRO,0,是否调试状态,ISDebug,0,,,,,,,,,,,,
PRO,,每次吹气的时间(分钟),BlowAir_Time,10,,,
PRO,,两次吹气间隔(分钟),BlowAir_Interval,10,,,
......
......@@ -295,15 +295,15 @@ namespace OnlineStore.DeviceLibrary
{
if (!LoadParamPosition(param))
{
LogUtil.error( Name + " 启动入库【" + posId + "】出错,找不到库位信息");
LogUtil.error(Name + " 启动入库【" + posId + "】出错,找不到库位信息");
return;
}
if (IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
LogUtil.error( Name + " 启动入库【" + posId + "】出错,叉子料盘检测有料");
LogUtil.error(Name + " 启动入库【" + posId + "】出错,叉子料盘检测有料");
return;
}
LogUtil.info( Name + " 启动入库【" + posId + "】" );
LogUtil.info(Name + " 启动入库【" + posId + "】");
storeRunStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NewMove(StoreMoveType.InStore, param);
......@@ -323,21 +323,19 @@ namespace OnlineStore.DeviceLibrary
{
doorCheckWatch.Stop();
}
SI_02_Move(param.MoveP);
}
else
{
LogUtil.error( Name + " 启动【" + posId + "】入库出错,当前状态,storeStatus=" + storeRunStatus);
LogUtil.error(Name + " 启动【" + posId + "】入库出错,当前状态,storeStatus=" + storeRunStatus);
}
}
private void SI_02_Move(LineMoveP moveP)
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_02_InOutToP1);
InStoreLog("入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门");
MoveInfo.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome);
OpenDoor();
InOutBackToP1(moveP.InOut_P1);
}
......@@ -347,7 +345,7 @@ namespace OnlineStore.DeviceLibrary
if (!AxisManager.instance.isInPosition(updown.DeviceName, updown.GetAxisValue(), MoveInfo.MoveParam.MoveP.UpDown_P1, updown.CanErrorCountMax,true))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_ReturnHome);
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_AxisToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
InStoreLog("入库:SI_03已结束,发现升降轴不在待机点,重新运动 升降轴到P1 [" + MoveInfo.MoveParam.MoveP.UpDown_P1 + "] ");
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.MoveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
......@@ -356,7 +354,7 @@ namespace OnlineStore.DeviceLibrary
ConfigMoveAxis middle = Config.Middle_Axis;
if (!AxisManager.instance.isInPosition(middle.DeviceName, middle.GetAxisValue(), MoveInfo.MoveParam.MoveP.Middle_P1, middle.CanErrorCountMax, true))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_ReturnHome);
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_AxisToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
InStoreLog("入库:SI_03已结束,发现旋转轴不在待机点,重新运动 旋转轴到P1 [" + MoveInfo.MoveParam.MoveP.Middle_P1 + "]");
ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.MoveP.Middle_P1, Config.MiddleAxis_P1_Speed);
......@@ -365,15 +363,15 @@ namespace OnlineStore.DeviceLibrary
if (DoorIsOpen())
{
//判断仓门是否打开
MoveInfo.NextMoveStep(StoreMoveStep.SI_05_InoutToP2);
InStoreLog("入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_05_DeviceToDoor);
ACAxisMove(Config.InOut_Axis, MoveInfo.MoveParam.MoveP.InOut_P2, Config.InOutAxis_P2_Speed);
//NeedCheckSafetyLight = 1;
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_04_ComToP3);
InStoreLog("入库:SI_04 叉子即将取料,发现门未上升到位,重新打开门 ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_04_CompressWare);
OpenDoor();
}
}
......@@ -402,7 +400,7 @@ namespace OnlineStore.DeviceLibrary
Alarm(StoreAlarmType.IoSingleTimeOut, "", WarnMsg, MoveInfo.MoveType);
}
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_02_InOutAxisHome)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_02_InOutToP1)
{
if (IOValue(IO_Type.TrayCheck_Door).Equals(IO_VALUE.LOW))
{
......@@ -410,7 +408,7 @@ namespace OnlineStore.DeviceLibrary
CodeMsg = "入库[" + posId + "]叉子去取料前,未检测到进料口有料";
LogUtil.error(CodeMsg);
}
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_ReturnHome);
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_AxisToP1);
InStoreLog("入库:SI_03 所有轴回到待机点,升降轴到P1 [" + moveP.UpDown_P1 + "],旋转轴到P1 [" + moveP.Middle_P1 + "],,压紧轴到P3 [" + moveP.ComPress_P3 + "],打开仓门");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
......@@ -435,30 +433,30 @@ namespace OnlineStore.DeviceLibrary
}
OpenDoor();
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_03_ReturnHome)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_03_AxisToP1)
{
SI_05_DeviceToDoor();
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_04_CompressWare)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_04_ComToP3)
{
SI_05_DeviceToDoor();
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_05_DeviceToDoor)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_05_InoutToP2)
{
//NeedCheckSafetyLight = 0;
MoveInfo.NextMoveStep(StoreMoveStep.SI_06_GetReel);
InStoreLog("入库:SI_06 拿物品,压紧轴至P2(压紧点))[" + moveP.ComPress_P2 + "] 升降轴至P7(进料口取料缓冲点) [" + moveP.UpDown_P7 + "]");
MoveInfo.NextMoveStep(StoreMoveStep.SI_06_DoorWarToDevice);
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)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_06_GetReel)
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_07_InoutBack);
InStoreLog("入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点)[" + moveP.InOut_P1 + "] ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_07_DeviceBackFromDoor);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_07_DeviceBackFromDoor)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_07_InoutBack)
{
if (IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{
......@@ -467,42 +465,40 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(CodeMsg);
}
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点)[" + moveP.Middle_P2 + "], 升降轴至P3(库位入库前点)[" + moveP.UpDown_P3 + "] ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
CloseDoor(false);
if (Config.IsUse_Tray_Check.Equals(1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_08_TrayCheck);
InStoreLog("入库:SI_08 等待检测到叉子料盘信号 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.HIGH));
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点)[" + moveP.Middle_P2 + "], 升降轴至P3(库位入库前点)[" + moveP.UpDown_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)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_08_TrayCheck)
{
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点)[" + moveP.Middle_P2 + "],升降轴至P3(库位入库前点))[" + moveP.UpDown_P3 + "],关闭舱门 ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P1_Speed);
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点)[" + moveP.Middle_P2 + "], 升降轴至P3(库位入库前点)[" + moveP.UpDown_P3 + "] ");
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
//关闭舱门
//IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
//IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
CloseDoor(false);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_09_MoveToBag)
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_11_InoutToP3);
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) [" + moveP.InOut_P3 + "]");
MoveInfo.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_10_LocationCylinder_Down)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_11_InoutToP3)
{
//IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) [" + moveP.InOut_P3 + "] ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_11_DeviceToBag)
{
InStoreLog("入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点)[" + moveP.UpDown_P4 + "] ,压紧轴至P3(压紧前点) [" + moveP.ComPress_P3 + "]");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosInfo.PosId : "";
lastPosId = posId;
......@@ -511,21 +507,22 @@ namespace OnlineStore.DeviceLibrary
//手动发给服务器状态,防止没有手动
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
MoveInfo.NextMoveStep(StoreMoveStep.SI_12_PutWareToBag);
MoveInfo.NextMoveStep(StoreMoveStep.SI_12_PutReel);
InStoreLog("入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点)[" + moveP.UpDown_P4 + "] ,压紧轴至P3(压紧前点) [" + moveP.ComPress_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)
else if (MoveInfo.MoveStep == StoreMoveStep.SI_12_PutReel)
{
InStoreLog("入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点)["+ moveP.InOut_P1 + "] ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_13_InoutBack);
InStoreLog("入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点)[" + moveP.InOut_P1 + "] ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_13_InoutBack)
{
InStoreLog("入库:SI_14_GoBack 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭");
MoveInfo.NextMoveStep(StoreMoveStep.SI_14_GoBack);
InStoreLog("入库:SI_14_GoBack 返回待机点,轴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);
......@@ -533,8 +530,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_15_WaitNoReel)
{
InStoreLog("入库:SI_15_WaitNoReel 等待料叉无信号 ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_15_WaitNoReel);
InStoreLog("入库:SI_15_WaitNoReel 等待料叉无信号 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW));
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_14_GoBack)
......@@ -607,11 +604,11 @@ namespace OnlineStore.DeviceLibrary
{
return;
}
if (MoveInfo.MoveStep == StoreMoveStep.SO_02_InoutBack)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_03_ToBagP);
OutStoreLog("出库:压紧轴至P3(压紧前点)["+ moveP.ComPress_P3 + "] ,旋转轴至P2(库位点)["+ moveP.Middle_P2 + "], 升降轴至P5(库位出库前点)["+ moveP.UpDown_P5 + "]");
OutStoreLog("出库:压紧轴至P3(压紧前点)[" + moveP.ComPress_P3 + "] ,旋转轴至P2(库位点)[" + moveP.Middle_P2 + "], 升降轴至P5(库位出库前点)[" + moveP.UpDown_P5 + "]");
ComMoveToPosition(moveP.ComPress_P3, Config.CompAxis_P3_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
......@@ -624,8 +621,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_04_InoutToP3)
{
OutStoreLog("出库:升降轴至P6(库位出料缓冲点)["+ moveP.ComPress_P2 + "],压紧轴至P2(压紧点)["+ moveP.UpDown_P6 + "] ");
MoveInfo.NextMoveStep(StoreMoveStep.SO_05_GetWare);
OutStoreLog("出库:升降轴至P6(库位出料缓冲点)[" + moveP.ComPress_P2 + "],压紧轴至P2(压紧点)[" + moveP.UpDown_P6 + "] ");
ComMoveToPosition(moveP.ComPress_P2, Config.CompAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed);
......@@ -633,7 +630,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_05_GetWare)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_InoutToP1);
OutStoreLog("出库:进出轴至P1(待机点) ["+ moveP.InOut_P1 + "]");
OutStoreLog("出库:进出轴至P1(待机点) [" + moveP.InOut_P1 + "]");
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
//把库位的物品放到取到叉子上之后是出仓完成
......@@ -651,10 +648,35 @@ namespace OnlineStore.DeviceLibrary
CodeMsg = "出库[" + posId + "]叉子从库位退出后,未检测到料叉有料";
LogUtil.error(CodeMsg);
}
if (Config.IsUse_Tray_Check.Equals(1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_07_TrayCheck);
OutStoreLog("出库:SO_07 等待叉子料盘检测信号");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.HIGH));
}
else
{
if (MoveInfo.MoveParam.LoadLocationP())
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_11_MoveToBag);
OutStoreLog("出库定位:旋转轴 至P2( 库位点)[" + MoveInfo.MoveParam.LocationPos.MiddleAxis_Position_P2 + "], 升降轴到P3(库位入库前点)[" + MoveInfo.MoveParam.LocationPos.UpDownAxis_IHPosition_P3 + "] ");
ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.LocationPos.MiddleAxis_Position_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.LocationPos.UpDownAxis_IHPosition_P3, Config.UpDownAxis_P3_Speed);
}
else
{
SO_21_ToDoorP();
}
}
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_TrayCheck)
{
if (MoveInfo.MoveParam.LoadLocationP())
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_11_MoveToBag);
OutStoreLog("出库定位:旋转轴 至P2( 库位点)["+ MoveInfo.MoveParam.LocationPos.MiddleAxis_Position_P2 + "], 升降轴到P3(库位入库前点)["+ MoveInfo.MoveParam.LocationPos.UpDownAxis_IHPosition_P3 + "] ");
OutStoreLog("出库定位:旋转轴 至P2( 库位点)[" + MoveInfo.MoveParam.LocationPos.MiddleAxis_Position_P2 + "], 升降轴到P3(库位入库前点)[" + MoveInfo.MoveParam.LocationPos.UpDownAxis_IHPosition_P3 + "] ");
ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.LocationPos.MiddleAxis_Position_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.LocationPos.UpDownAxis_IHPosition_P3, Config.UpDownAxis_P3_Speed);
......@@ -675,13 +697,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_12_InoutToP3)
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_13_ComToP3);
OutStoreLog("出库定位:压紧轴到P3( 压紧前点)["+ MoveInfo.MoveParam.LocationPos.CompressAxis_CPosition_P3 + "] ");
OutStoreLog("出库定位:压紧轴到P3( 压紧前点)[" + MoveInfo.MoveParam.LocationPos.CompressAxis_CPosition_P3 + "] ");
ACAxisMove(Config.Comp_Axis, MoveInfo.MoveParam.LocationPos.CompressAxis_CPosition_P3, Config.CompAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_13_ComToP3)
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_14_UpdownToP4);
OutStoreLog("出库定位:放下物品,升降轴到P4( 库位入料缓冲点)["+ MoveInfo.MoveParam.LocationPos.UpDownAxis_ILPosition_P4 + "] ");
OutStoreLog("出库定位:放下物品,升降轴到P4( 库位入料缓冲点)[" + MoveInfo.MoveParam.LocationPos.UpDownAxis_ILPosition_P4 + "] ");
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.LocationPos.UpDownAxis_ILPosition_P4, Config.UpDownAxis_P4_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_14_UpdownToP4)
......@@ -693,14 +715,14 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_15_WaitTime)
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_16_GetWare);
OutStoreLog("出库定位:拿物品,升降轴到P6( 库位出料缓冲点)["+ MoveInfo.MoveParam.LocationPos.UpDownAxis_OHPosition_P6 + "],压紧轴到P2(压紧点) ["+ moveP.ComPress_P2 + "]");
OutStoreLog("出库定位:拿物品,升降轴到P6( 库位出料缓冲点)[" + MoveInfo.MoveParam.LocationPos.UpDownAxis_OHPosition_P6 + "],压紧轴到P2(压紧点) [" + moveP.ComPress_P2 + "]");
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.LocationPos.UpDownAxis_OHPosition_P6, Config.UpDownAxis_P6_Speed);
ACAxisMove(Config.Comp_Axis, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_16_GetWare)
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_17_UpdownToP42);
OutStoreLog("出库定位2:放下物品,压紧轴到P3["+ MoveInfo.MoveParam.LocationPos.CompressAxis_CPosition_P3 + "],升降轴到P4( 库位入料缓冲点)["+ MoveInfo.MoveParam.LocationPos.UpDownAxis_ILPosition_P4 + "] ");
OutStoreLog("出库定位2:放下物品,压紧轴到P3[" + MoveInfo.MoveParam.LocationPos.CompressAxis_CPosition_P3 + "],升降轴到P4( 库位入料缓冲点)[" + MoveInfo.MoveParam.LocationPos.UpDownAxis_ILPosition_P4 + "] ");
//压紧轴放松,压紧轴到压紧前点P3
ACAxisMove(Config.Comp_Axis, MoveInfo.MoveParam.LocationPos.CompressAxis_CPosition_P3, Config.CompAxis_P3_Speed);
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.LocationPos.UpDownAxis_ILPosition_P4, Config.UpDownAxis_P4_Speed);
......@@ -714,14 +736,14 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_18_WaitTime2)
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_19_GetWare2);
OutStoreLog("出库定位2:拿物品,升降轴到P6( 库位出料缓冲点)["+ MoveInfo.MoveParam.LocationPos.UpDownAxis_OHPosition_P6 + "],压紧轴到P2(压紧点) ["+ moveP.ComPress_P2 + "]");
OutStoreLog("出库定位2:拿物品,升降轴到P6( 库位出料缓冲点)[" + MoveInfo.MoveParam.LocationPos.UpDownAxis_OHPosition_P6 + "],压紧轴到P2(压紧点) [" + moveP.ComPress_P2 + "]");
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.LocationPos.UpDownAxis_OHPosition_P6, Config.UpDownAxis_P6_Speed);
ACAxisMove(Config.Comp_Axis, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_19_GetWare2)
{
MoveInfo.NextMoveStep(StoreMoveStep.SOL_20_InoutToP1);
OutStoreLog("出库定位: 进出轴到P1( 待机点)["+ Config.InOutAxis_P1_Position + "] ");
OutStoreLog("出库定位: 进出轴到P1( 待机点)[" + Config.InOutAxis_P1_Position + "] ");
ACAxisMove(Config.InOut_Axis, Config.InOutAxis_P1_Position, Config.InOutAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SOL_20_InoutToP1)
......@@ -743,23 +765,23 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_23_InoutToP2)
{
OutStoreLog("出库:压紧轴到P1["+ moveP.ComPress_P1 + "],升降轴至P8(进料口出料缓冲点)["+ moveP.UpDown_P8 + "] ");
MoveInfo.NextMoveStep(StoreMoveStep.SO_24_PutWare);
OutStoreLog("出库:压紧轴到P1[" + moveP.ComPress_P1 + "],升降轴至P8(进料口出料缓冲点)[" + moveP.UpDown_P8 + "] ");
//NeedCheckSafetyLight = 0;
ComMoveToPosition(moveP.ComPress_P1, Config.CompAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P8, Config.UpDownAxis_P8_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_24_PutWare)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_25_InoutToP1);
OutStoreLog("出库:进出轴动作至P1(待机点) ["+ moveP.InOut_P1 + "]");
OutStoreLog("出库:进出轴动作至P1(待机点) [" + moveP.InOut_P1 + "]");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_25_InoutToP1)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_26_CloseDoor);
OutStoreLog("出库:轴2至P1(待机点)["+ moveP.UpDown_P1 + "] ,关闭舱门");
OutStoreLog("出库:轴2至P1(待机点)[" + moveP.UpDown_P1 + "] ,关闭舱门");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
CloseDoor();
......@@ -893,8 +915,8 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InStoreLog("出库:SO_09 叉子即将取料,发现门未上升到位,重新打开门 ");
MoveInfo.NextMoveStep(StoreMoveStep.SO_22_WaitNoTray);
InStoreLog("出库:SO_09 叉子即将取料,发现门未上升到位,重新打开门 ");
OpenDoor();
}
......
......@@ -69,6 +69,7 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
mainTimer.Enabled = true;
ledProcessTimer.Enabled = true;
canStart = true;
});
}
......@@ -165,7 +166,7 @@ namespace OnlineStore.DeviceLibrary
public override void StopRun()
{
mainTimer.Enabled = false;
ledProcessTimer.Enabled = false;
//ledProcessTimer.Enabled = false;
//停止运行时,把阻挡气缸上升
StopMove();
foreach (BoxBean equip in BoxMap.Values)
......@@ -198,36 +199,40 @@ namespace OnlineStore.DeviceLibrary
bool isNeedAlarmLed = false;
//bool isTemp30M = false;
bool isInOut = false;
bool isReset = false;
//StoreRunStatus runs = StoreRunStatus.Wait;
bool isReset = false;
foreach (BoxBean box in BoxMap.Values)
{
if (!box.alarmType.Equals(StoreAlarmType.None))
{
isNeedAlarmLed = true;
}
if (box.humBean.TempOrHumidityIsAlarm)
if (box.storeRunStatus > StoreRunStatus.Wait)
{
TimeSpan span = DateTime.Now - box.humBean.TempAlarmTime;
if (span.Minutes > 30)
if (!box.alarmType.Equals(StoreAlarmType.None))
{
//isTemp30M = true;
isNeedAlarmLed = true;
}
}
if (box.MoveInfo.MoveType.Equals(StoreMoveType.InStore) || box.MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
{
isInOut = true;
}
if (box.storeRunStatus.Equals(StoreRunStatus.HomeMoving) || box.storeRunStatus.Equals(StoreRunStatus.Reset))
{
isReset = true;
if (box.humBean.TempOrHumidityIsAlarm)
{
TimeSpan span = DateTime.Now - box.humBean.TempAlarmTime;
if (span.Minutes > 30)
{
//isTemp30M = true;
isNeedAlarmLed = true;
}
}
if (box.MoveInfo.MoveType.Equals(StoreMoveType.InStore) || box.MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
{
isInOut = true;
}
if (box.storeRunStatus.Equals(StoreRunStatus.HomeMoving) || box.storeRunStatus.Equals(StoreRunStatus.Reset))
{
isReset = true;
}
}
}
if (alarmType.Equals(StoreAlarmType.None).Equals(false) || isNoAirCheck || isInSuddenDown)
if (storeRunStatus > StoreRunStatus.Wait)
{
isNeedAlarmLed = true;
if (alarmType.Equals(StoreAlarmType.None).Equals(false) || isNoAirCheck || isInSuddenDown)
{
isNeedAlarmLed = true;
}
}
//黄灯
......
......@@ -207,6 +207,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
SO_06_InoutToP1,
SO_07_TrayCheck ,
#region 定位处理:先将料放入定位区,再拿起料到仓门口
......@@ -257,7 +258,6 @@ namespace OnlineStore.DeviceLibrary
#endregion
/// <summary>
/// 料仓出库,,所有设备运行到门,,旋转轴到P1( 待机点)升降轴到P2( 进料口出料前点)
/// </summary>
......@@ -309,48 +309,45 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 入库。。进出轴(叉子)先返回P1
/// </summary>
SI_02_InOutAxisHome = 202,
SI_02_InOutToP1 = 202,
/// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
/// </summary>
SI_03_ReturnHome = 203,
SI_03_AxisToP1 = 203,
/// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),压紧轴到P3(压紧前点)
/// </summary>
SI_04_CompressWare = 204,
SI_04_ComToP3 = 204,
/// <summary>
/// 入库。。叉子进入入料口,进出轴到P2( 进料口取料点)
/// </summary>
SI_05_DeviceToDoor = 205,
SI_05_InoutToP2 = 205,
/// <summary>
/// 入库。。把物品放入叉子上,升降轴到P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),压紧轴到P2(压紧点)
/// </summary>
SI_06_DoorWarToDevice = 206,
SI_06_GetReel = 206,
/// <summary>
/// 入库。。叉子 从入料口抽出,进出轴到P1( 待机点)
/// </summary>
SI_07_DeviceBackFromDoor = 207,
SI_07_InoutBack = 207,
/// <summary>
/// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
/// 入库。。,等待检测到料盘
/// </summary>
SI_08_LocationCylinder_Up = 208,
SI_08_TrayCheck = 208,
/// <summary>
/// 入库。。移动到库位点,旋转轴到P2( 库位点)升降轴到P3(库位入库前点)
/// </summary>
SI_09_MoveToBag = 209,
/// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
/// </summary>
SI_10_LocationCylinder_Down = 210,
/// <summary>
/// 入库。。叉子进入库位中,进出轴到P3(库位取放料点)
/// </summary>
SI_11_DeviceToBag = 211,
SI_11_InoutToP3 = 211,
/// <summary>
/// 入库。。放下物品,升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点)
/// </summary>
SI_12_PutWareToBag = 212,
SI_12_PutReel = 212,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary>
......
......@@ -25,7 +25,7 @@
<add key="Store_ID" value="7" />
<!--end one store config-->
<add key="ACBaudRate" value="115200" />
<add key="InOutDefaultPosition" value="8000" />
<add key="InOutDefaultPosition" value="5000" />
<add key="Config_Pwd" value="123456" />
<!--出库等待料盘拿走的时间,秒-->
<add key="OutStoreWaitSeconds" value="10" />
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!