Commit 85f89f2e 张东亮

里面出库先检查提升是否有料,出料口出库有料不放行,提示

1 个父辈 257c0ac7
...@@ -147,7 +147,7 @@ namespace DeviceLibrary ...@@ -147,7 +147,7 @@ namespace DeviceLibrary
if (IOManager.IOValue(IO_Type.SideA_ForkMaterial_Check).Equals(IO_VALUE.HIGH) || if (IOManager.IOValue(IO_Type.SideA_ForkMaterial_Check).Equals(IO_VALUE.HIGH) ||
IOManager.IOValue(IO_Type.SideB_ForkMaterial_Check).Equals(IO_VALUE.HIGH)) IOManager.IOValue(IO_Type.SideB_ForkMaterial_Check).Equals(IO_VALUE.HIGH))
{ {
if(IOMonitor.IODebound(IO_Type.SideA_ForkMaterial_Check,Config,IO_VALUE.HIGH,2000)|| if (IOMonitor.IODebound(IO_Type.SideA_ForkMaterial_Check, Config, IO_VALUE.HIGH, 2000) ||
IOMonitor.IODebound(IO_Type.SideB_ForkMaterial_Check, Config, IO_VALUE.HIGH, 2000)) IOMonitor.IODebound(IO_Type.SideB_ForkMaterial_Check, Config, IO_VALUE.HIGH, 2000))
{ {
Msg.add("存储机构取料暂停", MsgLevel.alarm);//伸缩叉2侧X06/X07检测到有物料无法继续,请检查 Msg.add("存储机构取料暂停", MsgLevel.alarm);//伸缩叉2侧X06/X07检测到有物料无法继续,请检查
...@@ -185,6 +185,26 @@ namespace DeviceLibrary ...@@ -185,6 +185,26 @@ namespace DeviceLibrary
MoveInfo.log($"{storeMoveType}:行走机构到达取料点"); MoveInfo.log($"{storeMoveType}:行走机构到达取料点");
break; break;
case MoveStep.StoreTS04: case MoveStep.StoreTS04:
if (storeMoveType.Equals(StoreMoveType.OutStore))
{
if (To.posid.Equals(BoxStorePosition.rightdoor))
{
if (mainMachine.RightInOut.EndMaterialTop_Check)
{
Msg.add("右侧出入口顶升感应到有物料,无法放料", MsgLevel.warning);
return false;
}
}
else if (To.posid.Equals(BoxStorePosition.leftdoor))
{
if (mainMachine.LeftInOut.EndMaterialTop_Check)
{
Msg.add("左侧出入口顶升感应到有物料,无法放料", MsgLevel.warning);
return false;
}
}
}
MoveInfo.NextMoveStep(MoveStep.StoreTS05); MoveInfo.NextMoveStep(MoveStep.StoreTS05);
//YAxis.AbsMove(MoveInfo, From.Yaxis_PL, Config.Yaxis_P1_speed); //YAxis.AbsMove(MoveInfo, From.Yaxis_PL, Config.Yaxis_P1_speed);
//MoveInfo.log($"{storeMoveType}:上下轴到达取料低点"); //MoveInfo.log($"{storeMoveType}:上下轴到达取料低点");
......
...@@ -14,19 +14,28 @@ namespace DeviceLibrary ...@@ -14,19 +14,28 @@ namespace DeviceLibrary
{ {
get get
{ {
return IOValue(IO_EndMaterialTop_Check).Equals(IO_VALUE.LOW) && Lift.isAtTOP && MoveInfo.MoveStep== MoveStep.WaitOutBox; return IOValue(IO_EndMaterialTop_Check).Equals(IO_VALUE.LOW) && Lift.isAtTOP && MoveInfo.MoveStep == MoveStep.WaitOutBox;
} }
} }
public bool TurnToOut(JobInfo jobInfo) { public bool TurnToOut(JobInfo jobInfo)
{
if (MoveInfo.MoveStep != MoveStep.Wait) if (MoveInfo.MoveStep != MoveStep.Wait)
return false; return false;
MoveInfo.NewMove(MoveStep.Out01); MoveInfo.NewMove(MoveStep.Out01);
CurrnetDirection = InOutDirectionE.OUT; CurrnetDirection = InOutDirectionE.OUT;
MoveInfo.MoveParam.PosID= jobInfo.PosId; MoveInfo.MoveParam.PosID = jobInfo.PosId;
MoveInfo.MoveParam.hSerial= jobInfo.hSerial; MoveInfo.MoveParam.hSerial = jobInfo.hSerial;
MoveInfo.log("开始出库任务"); MoveInfo.log("开始出库任务");
return true; return true;
} }
/// <summary>
/// 提升机末端上方物料检测
/// </summary>
public bool EndMaterialTop_Check
{
get { return IOValue(IO_EndMaterialTop_Check).Equals(IO_VALUE.HIGH); }
}
void OutProcess() void OutProcess()
{ {
if (mainMachine.CheckWait(MoveInfo)) if (mainMachine.CheckWait(MoveInfo))
...@@ -51,7 +60,7 @@ namespace DeviceLibrary ...@@ -51,7 +60,7 @@ namespace DeviceLibrary
} }
else else
{ {
Msg.add("周转箱顶升感应到有物料,无法继续出库", MsgLevel.info); Msg.add("周转箱顶升感应到有物料,无法继续出库", MsgLevel.warning);
MoveInfo.log("周转箱顶升感应到有物料,无法继续出库"); MoveInfo.log("周转箱顶升感应到有物料,无法继续出库");
} }
break; break;
...@@ -71,11 +80,21 @@ namespace DeviceLibrary ...@@ -71,11 +80,21 @@ namespace DeviceLibrary
} }
break; break;
case MoveStep.Out05: case MoveStep.Out05:
MoveInfo.NextMoveStep(MoveStep.Out06); if (IOValue(IO_F_Stop_Out).Equals(IO_VALUE.HIGH))
Line.LineRun("work", true, 999); {
MiddleStop(MoveInfo,IO_VALUE.LOW); Msg.add("有出库料箱,请拿走出口有周转箱", MsgLevel.warning);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_F_Stop_Out, IO_VALUE.HIGH)); MoveInfo.log("有出库料箱,请拿走出口有周转箱");
MoveInfo.log($"线体转动"); }
else
{
MoveInfo.NextMoveStep(MoveStep.Out06);
Line.LineRun("work", true, 999);
MiddleStop(MoveInfo, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_EndMaterialTop_Check, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_F_Stop_Out, IO_VALUE.HIGH));
MoveInfo.log($"线体转动");
}
break; break;
case MoveStep.Out06: case MoveStep.Out06:
MoveInfo.NextMoveStep(MoveStep.Out07); MoveInfo.NextMoveStep(MoveStep.Out07);
...@@ -89,7 +108,7 @@ namespace DeviceLibrary ...@@ -89,7 +108,7 @@ namespace DeviceLibrary
MoveInfo.log($"等待agv接走周转箱"); MoveInfo.log($"等待agv接走周转箱");
break; break;
case MoveStep.OutWaitAgv: case MoveStep.OutWaitAgv:
Msg.add("等待AGV接走周转箱"+MoveInfo.MoveParam.WareCode, MsgLevel.info); Msg.add("等待AGV接走周转箱" + MoveInfo.MoveParam.WareCode, MsgLevel.info);
if (IOValue(IO_AgvOut_Req).Equals(IO_VALUE.HIGH)) if (IOValue(IO_AgvOut_Req).Equals(IO_VALUE.HIGH))
{ {
MoveInfo.NextMoveStep(MoveStep.Out08); MoveInfo.NextMoveStep(MoveStep.Out08);
...@@ -98,12 +117,13 @@ namespace DeviceLibrary ...@@ -98,12 +117,13 @@ namespace DeviceLibrary
Line.LineRun("work", true, 999); Line.LineRun("work", true, 999);
MoveInfo.log($"收到agv抵达信号, 开始送出周转箱"); MoveInfo.log($"收到agv抵达信号, 开始送出周转箱");
} }
if (IOMonitor.IODebound(IO_F_Stop_Out,Config,IO_VALUE.LOW,2000)) { if (IOMonitor.IODebound(IO_F_Stop_Out, Config, IO_VALUE.LOW, 2000))
{
MoveInfo.log($"检测到周转箱已离开,结束出库"); MoveInfo.log($"检测到周转箱已离开,结束出库");
RobotManage.mainMachine.IsClearWarnMsg = true; RobotManage.mainMachine.IsClearWarnMsg = true;
MoveInfo.EndMove(); MoveInfo.EndMove();
} }
else if(MoveInfo.IsTimeOut(60*ConfigHelper.Config.Get("OutWaitAgvLeaveTimeout",5))) else if (MoveInfo.IsTimeOut(60 * ConfigHelper.Config.Get("OutWaitAgvLeaveTimeout", 5)))
{ {
Msg.add($"出口料箱未下降", MsgLevel.warning);//等待周转箱[{MoveInfo.MoveParam.WareCode}]离开超时 Msg.add($"出口料箱未下降", MsgLevel.warning);//等待周转箱[{MoveInfo.MoveParam.WareCode}]离开超时
RobotManage.mainMachine.IsClearWarnMsg = false; RobotManage.mainMachine.IsClearWarnMsg = false;
...@@ -119,11 +139,11 @@ namespace DeviceLibrary ...@@ -119,11 +139,11 @@ namespace DeviceLibrary
} }
else if (MoveInfo.IsTimeOut(15)) else if (MoveInfo.IsTimeOut(15))
{ {
Msg.add("周转箱转出至AGV超时",MsgLevel.alarm); Msg.add("周转箱转出至AGV超时", MsgLevel.alarm);
MoveInfo.log($"周转箱转出超时"); MoveInfo.log($"周转箱转出超时");
} }
break; break;
case MoveStep.Out09: case MoveStep.Out09:
IOMove(DO_Agv_Rsp, IO_VALUE.LOW); IOMove(DO_Agv_Rsp, IO_VALUE.LOW);
FrontStop(MoveInfo, IO_VALUE.HIGH); FrontStop(MoveInfo, IO_VALUE.HIGH);
MiddleStop(MoveInfo, IO_VALUE.HIGH); MiddleStop(MoveInfo, IO_VALUE.HIGH);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!