Commit 85f89f2e 张东亮

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

1 个父辈 257c0ac7
......@@ -147,7 +147,7 @@ namespace DeviceLibrary
if (IOManager.IOValue(IO_Type.SideA_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))
{
Msg.add("存储机构取料暂停", MsgLevel.alarm);//伸缩叉2侧X06/X07检测到有物料无法继续,请检查
......@@ -185,6 +185,26 @@ namespace DeviceLibrary
MoveInfo.log($"{storeMoveType}:行走机构到达取料点");
break;
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);
//YAxis.AbsMove(MoveInfo, From.Yaxis_PL, Config.Yaxis_P1_speed);
//MoveInfo.log($"{storeMoveType}:上下轴到达取料低点");
......
......@@ -14,19 +14,28 @@ namespace DeviceLibrary
{
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)
return false;
MoveInfo.NewMove(MoveStep.Out01);
CurrnetDirection = InOutDirectionE.OUT;
MoveInfo.MoveParam.PosID= jobInfo.PosId;
MoveInfo.MoveParam.hSerial= jobInfo.hSerial;
MoveInfo.MoveParam.PosID = jobInfo.PosId;
MoveInfo.MoveParam.hSerial = jobInfo.hSerial;
MoveInfo.log("开始出库任务");
return true;
}
/// <summary>
/// 提升机末端上方物料检测
/// </summary>
public bool EndMaterialTop_Check
{
get { return IOValue(IO_EndMaterialTop_Check).Equals(IO_VALUE.HIGH); }
}
void OutProcess()
{
if (mainMachine.CheckWait(MoveInfo))
......@@ -51,7 +60,7 @@ namespace DeviceLibrary
}
else
{
Msg.add("周转箱顶升感应到有物料,无法继续出库", MsgLevel.info);
Msg.add("周转箱顶升感应到有物料,无法继续出库", MsgLevel.warning);
MoveInfo.log("周转箱顶升感应到有物料,无法继续出库");
}
break;
......@@ -71,11 +80,21 @@ namespace DeviceLibrary
}
break;
case MoveStep.Out05:
if (IOValue(IO_F_Stop_Out).Equals(IO_VALUE.HIGH))
{
Msg.add("有出库料箱,请拿走出口有周转箱", MsgLevel.warning);
MoveInfo.log("有出库料箱,请拿走出口有周转箱");
}
else
{
MoveInfo.NextMoveStep(MoveStep.Out06);
Line.LineRun("work", true, 999);
MiddleStop(MoveInfo,IO_VALUE.LOW);
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;
case MoveStep.Out06:
MoveInfo.NextMoveStep(MoveStep.Out07);
......@@ -89,7 +108,7 @@ namespace DeviceLibrary
MoveInfo.log($"等待agv接走周转箱");
break;
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))
{
MoveInfo.NextMoveStep(MoveStep.Out08);
......@@ -98,12 +117,13 @@ namespace DeviceLibrary
Line.LineRun("work", true, 999);
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($"检测到周转箱已离开,结束出库");
RobotManage.mainMachine.IsClearWarnMsg = true;
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}]离开超时
RobotManage.mainMachine.IsClearWarnMsg = false;
......@@ -119,7 +139,7 @@ namespace DeviceLibrary
}
else if (MoveInfo.IsTimeOut(15))
{
Msg.add("周转箱转出至AGV超时",MsgLevel.alarm);
Msg.add("周转箱转出至AGV超时", MsgLevel.alarm);
MoveInfo.log($"周转箱转出超时");
}
break;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!