Commit 0fd93eeb 张东亮

料叉检测料盘检测几次无料后再报警

1 个父辈 3350a450
...@@ -272,14 +272,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -272,14 +272,15 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SI_05_GetReel: case StepEnum.SI_05_GetReel:
if (!CheckReel(true)) if (!CheckReel(true))
{ {
WarnMsg = $"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"; if (isAlarmForkCheck())
Msg.add(WarnMsg, MsgLevel.critical); SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘【{MoveInfo?.MoveParam?.PosInfo?.barcode}】,请检查检查");
return; return;
} }
SetWarnMsg("");
MoveInfo.NextMoveStep(StepEnum.SI_06_InOutBackToP1FromBuff); MoveInfo.NextMoveStep(StepEnum.SI_06_InOutBackToP1FromBuff);
LogInfo($"入库 {MoveInfo.SLog}:移栽X轴到待机点P1,行走机构到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); LogInfo($"入库 {MoveInfo.SLog}:移栽X轴到待机点P1,行走机构到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
ignoreCurFork = false; ignoreCurFork = false;
checkForkCnt = 0;
XAxis_To_P1(); XAxis_To_P1();
MoveAxisToP1(); MoveAxisToP1();
break; break;
...@@ -337,11 +338,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -337,11 +338,14 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SI_08_ToPosition: case StepEnum.SI_08_ToPosition:
if (!CheckReel(true)) if (!CheckReel(true))
{ {
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"); if (isAlarmForkCheck())
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘【{MoveInfo?.MoveParam?.PosInfo?.barcode}】,请检查");
return; return;
} }
SetWarnMsg("");
MoveInfo.NextMoveStep(StepEnum.SI_08_ToPosition1); MoveInfo.NextMoveStep(StepEnum.SI_08_ToPosition1);
ignoreCurFork = false; ignoreCurFork = false;
checkForkCnt = 0;
LogInfo($"入库 {MoveInfo.SLog}:运行到库位,行走机构到存储库位取放点位P3," + LogInfo($"入库 {MoveInfo.SLog}:运行到库位,行走机构到存储库位取放点位P3," +
$"[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); $"[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MoveAxisToP3(); MoveAxisToP3();
...@@ -352,12 +356,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -352,12 +356,14 @@ namespace OnlineStore.DeviceLibrary
StopForkCheck(); StopForkCheck();
if (!CheckReel(true)) if (!CheckReel(true))
{ {
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"); if (isAlarmForkCheck())
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘【{MoveInfo?.MoveParam?.PosInfo?.barcode}】,请检查");
return; return;
} }
SetWarnMsg("");
MoveInfo.NextMoveStep(StepEnum.SI_09_ToTray); MoveInfo.NextMoveStep(StepEnum.SI_09_ToTray);
ignoreCurFork = false; ignoreCurFork = false;
checkForkCnt = 0;
LogInfo($"入库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到抽屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); LogInfo($"入库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到抽屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
PullAxis_Inout_To_P2_P4(); PullAxis_Inout_To_P2_P4();
break; break;
...@@ -396,12 +402,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -396,12 +402,14 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SI_12_MiddleToP3: case StepEnum.SI_12_MiddleToP3:
if (!CheckReel(true)) if (!CheckReel(true))
{ {
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"); if (isAlarmForkCheck())
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘【{MoveInfo?.MoveParam?.PosInfo?.barcode}】,请检查");
return; return;
} }
SetWarnMsg("");
MoveInfo.NextMoveStep(StepEnum.SI_13_GetReel); MoveInfo.NextMoveStep(StepEnum.SI_13_GetReel);
ignoreCurFork = false; ignoreCurFork = false;
checkForkCnt = 0;
LogInfo($"入库 {MoveInfo.SLog}:进入库位中,移栽升降轴到抽屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); LogInfo($"入库 {MoveInfo.SLog}:进入库位中,移栽升降轴到抽屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
UpdownAxisToP7_P13(); UpdownAxisToP7_P13();
break; break;
...@@ -503,11 +511,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -503,11 +511,14 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SI_19_InoutBack: case StepEnum.SI_19_InoutBack:
if (!CheckReel(false)) if (!CheckReel(false))
{ {
if (isAlarmForkCheck())
SetCriticalMsg("检测到料叉上有料盘,请检查"); SetCriticalMsg("检测到料叉上有料盘,请检查");
return; return;
} }
SetWarnMsg("");
MoveInfo.NextMoveStep(StepEnum.SI_19_InoutBack_1); MoveInfo.NextMoveStep(StepEnum.SI_19_InoutBack_1);
ignoreCurFork = false; ignoreCurFork = false;
checkForkCnt = 0;
MiddleAxis_To_P2(); MiddleAxis_To_P2();
LogInfo($"入库 {MoveInfo.SLog}:移栽旋转轴到水平点[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); LogInfo($"入库 {MoveInfo.SLog}:移栽旋转轴到水平点[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
break; break;
......
...@@ -175,11 +175,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -175,11 +175,13 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SO_13_InoutBack_1: case StepEnum.SO_13_InoutBack_1:
if (!CheckReel(true)) if (!CheckReel(true))
{ {
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘,请检查"); if (isAlarmForkCheck())
SetCriticalMsg($"未检测到{MoveInfo.MoveParam.PosInfo.GetPosSide()}面料叉上的料盘【{MoveInfo?.MoveParam?.PosInfo?.barcode}】,请检查");
return; return;
} }
SetWarnMsg("");
MoveInfo.NextMoveStep(StepEnum.SO_13_InoutBack); MoveInfo.NextMoveStep(StepEnum.SO_13_InoutBack);
checkForkCnt = 0;
ignoreCurFork = false; ignoreCurFork = false;
LogInfo($"出库 {MoveInfo.SLog}:抽屉拉取进出轴已到达拍照点,移栽旋转轴到取放料水平点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); LogInfo($"出库 {MoveInfo.SLog}:抽屉拉取进出轴已到达拍照点,移栽旋转轴到取放料水平点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MiddleAxis_To_P2(); MiddleAxis_To_P2();
......
...@@ -34,13 +34,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -34,13 +34,15 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SOB_14_GetReels_Ready1: case StepEnum.SOB_14_GetReels_Ready1:
if (!CheckBothReel(true)) if (!CheckBothReel(true))
{ {
WarnMsg = $"两面料叉上存在未检测到料盘,请检查"; if (isAlarmForkCheck())
Msg.add(WarnMsg, MsgLevel.critical); SetCriticalMsg($"两面料叉上存在未检测到料盘【{MoveInfo.MoveParam?.PosInfo?.barcode}】【{MoveInfo.MoveParam?.PosInfoBack?.barcode}】,请检查");
return; return;
} }
SetWarnMsg("");
//两侧已有同尺寸的料 //两侧已有同尺寸的料
MoveInfo.NextMoveStep(StepEnum.SOB_15_ToBufferArea); MoveInfo.NextMoveStep(StepEnum.SOB_15_ToBufferArea);
ignoreCurFork = false; ignoreCurFork = false;
checkForkCnt = 0;
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1"); LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1");
MoveAxisToP1(); MoveAxisToP1();
//PullAxis_UpdownToP1(); //PullAxis_UpdownToP1();
...@@ -96,10 +98,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -96,10 +98,11 @@ namespace OnlineStore.DeviceLibrary
case StepEnum.SOB_19_InOutBackFromBuff: case StepEnum.SOB_19_InOutBackFromBuff:
if (!CheckBothReel(false)) if (!CheckBothReel(false))
{ {
SetCriticalMsg($"两面料叉上还能检测到料盘,请检查"); if (isAlarmForkCheck())
SetCriticalMsg($"两面料叉上还能检测到料盘【{MoveInfo.MoveParam?.PosInfo?.barcode}】【{MoveInfo.MoveParam?.PosInfoBack?.barcode}】,请检查");
return; return;
} }
SetWarnMsg("");
//出库料盘放置成功,将料盘信息写入对应出料口 //出库料盘放置成功,将料盘信息写入对应出料口
if (CheckASide()) if (CheckASide())
{ {
...@@ -113,6 +116,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -113,6 +116,7 @@ namespace OnlineStore.DeviceLibrary
} }
MoveInfo.NextMoveStep(StepEnum.SOB_20_Finish); MoveInfo.NextMoveStep(StepEnum.SOB_20_Finish);
BuffAreaOutstoreDoor(false); BuffAreaOutstoreDoor(false);
checkForkCnt = 0;
ignoreCurFork = false; ignoreCurFork = false;
LogInfo($"出库 {MoveInfo.SLog}:关闭出料防护门,出库结束"); LogInfo($"出库 {MoveInfo.SLog}:关闭出料防护门,出库结束");
......
...@@ -713,6 +713,17 @@ namespace OnlineStore.DeviceLibrary ...@@ -713,6 +713,17 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ForkB_Tray_Check, hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ForkB_Tray_Check, hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW));
} }
} }
public int checkForkCnt = 0;
bool isAlarmForkCheck()
{
if(checkForkCnt > 3)
{
return true;
}
return false;
}
/// <summary> /// <summary>
/// 检查料叉上的状态 /// 检查料叉上的状态
/// </summary> /// </summary>
...@@ -728,6 +739,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -728,6 +739,7 @@ namespace OnlineStore.DeviceLibrary
{ {
return true; return true;
} }
checkForkCnt++;
if (CheckASide()) if (CheckASide())
{ {
return IOValue(IO_Type.ForkA_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW); return IOValue(IO_Type.ForkA_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW);
...@@ -748,7 +760,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -748,7 +760,7 @@ namespace OnlineStore.DeviceLibrary
{ {
return true; return true;
} }
checkForkCnt++;
return IOValue(IO_Type.ForkA_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW) && IOValue(IO_Type.ForkB_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW); return IOValue(IO_Type.ForkA_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW) && IOValue(IO_Type.ForkB_Tray_Check).Equals(hasReel ? IO_VALUE.HIGH : IO_VALUE.LOW);
} }
/// <summary> /// <summary>
......
...@@ -805,6 +805,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -805,6 +805,16 @@ namespace OnlineStore.DeviceLibrary
private void ToNG() private void ToNG()
{ {
MoveInfo.NextMoveStep(StepEnum.II81_MiddleToNg); MoveInfo.NextMoveStep(StepEnum.II81_MiddleToNg);
//清空暂存区
int startp = MoveInfo.MoveParam.PosInfo.GetPosType();
if (startp.Equals(1))
{
BufferDataManager.AOutStoreInfo = null;
}
else
{
BufferDataManager.BOutStoreInfo = null;
}
MoveLog($"出库{MoveInfo.SLog}: NG料 升降轴到P8(NG料区放料高点){Config.Updown_P8_NGH},旋转轴到P6(NG料区放料点){Config.Middle_P6_NG}"); MoveLog($"出库{MoveInfo.SLog}: NG料 升降轴到P8(NG料区放料高点){Config.Updown_P8_NGH},旋转轴到P6(NG料区放料点){Config.Middle_P6_NG}");
MiddleAxis.AbsMove(MoveInfo, Config.Middle_P6_NG, Config.Middle_P6_Speed); MiddleAxis.AbsMove(MoveInfo, Config.Middle_P6_NG, Config.Middle_P6_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P8_NGH, Config.Updown_P8_Speed); UpdownAxis.AbsMove(MoveInfo, Config.Updown_P8_NGH, Config.Updown_P8_Speed);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!