Commit 5cda5bea LN

空料架进入时 等待O_ELine_InCheck检测到料架转动10分钟

1 个父辈 38e092d1
......@@ -14,16 +14,16 @@ namespace OnlineStore.DeviceLibrary
{
#region 料串入料处理
internal string CurrShelfId = "";
internal string CurrShelfId = "";
private List<string> LastCodeList = new List<string>();
private List<string> NextCodeList = new List<string>();
public bool StartWorking(WorkParam param)
{
if (ProcessShelfOut || ProcessShelfEnter)
{
return false ;
return false;
}
if (!Robot.CanStartWork())
{
......@@ -178,15 +178,15 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StepEnum.IB09_ScanCode))
{
MoveInfo.NextMoveStep(StepEnum.IB10_ScanOK);
MoveInfo.MoveParam.WareCode = CodeManager.GetValidCode(LastCodeList);
WorkLog("料串入料 :扫码结束【"+ MoveInfo.MoveParam.WareCode + "】,等待取料机构来取料");
MoveInfo.MoveParam.WareCode = CodeManager.GetValidCode(LastCodeList);
WorkLog("料串入料 :扫码结束【" + MoveInfo.MoveParam.WareCode + "】,等待取料机构来取料");
}
else if (MoveInfo.IsStep(StepEnum.IB11_TrayLeave))
{
MoveInfo.NextMoveStep(StepEnum.IB12_BatchAxisToP3);
WorkLog("料串入料 :料盘已拿走,批量轴到P3,测盘高 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
BatchAxisToP3( );
BatchAxisToP3();
}
else if (MoveInfo.IsStep(StepEnum.IB12_BatchAxisToP3))
{
......@@ -276,9 +276,9 @@ namespace OnlineStore.DeviceLibrary
try
{
Task<List<string>> scanTask = Task.Factory.StartNew(delegate
{
{
Robot.IOMove(IO_Type.Camera_Led, IO_VALUE.HIGH);
NextCodeList = CodeManager.CameraScan(Name, CameraName );
NextCodeList = CodeManager.CameraScan(Name, CameraName);
if (NextCodeList.Count <= 0)
{
NextCodeList = CodeManager.CameraScan(Name, CameraName);
......@@ -362,7 +362,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(StepEnum.IB07_AxisUpMove);
WorkLog("料串入料 :CheckHasTray:上料轴开始慢速上升到P3点,等待检测到料盘");
MoveInfo.ShelfNoTray = false;
BatchAxisToP3( );
BatchAxisToP3();
return;
}
}
......@@ -371,19 +371,19 @@ namespace OnlineStore.DeviceLibrary
SendShelfOut(" 未检测到料盘 ");
}
}
private void SendShelfOut(string msg="")
private void SendShelfOut(string msg = "")
{
MoveInfo.NextMoveStep(StepEnum.IB21_BatchToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
WorkLog("送出料串 :"+msg+",提升伺服到P1点");
WorkLog("送出料串 :" + msg + ",提升伺服到P1点");
BatchAxis.SuddenStop(true);
BatchAxis.AbsMove(MoveInfo, BatchAxisP1, Robot.Config.BatchAxis_P1Speed);
BatchAxis.AbsMove(MoveInfo, BatchAxisP1, Robot.Config.BatchAxis_P1Speed);
}
private void BatchAxisToP3( )
private void BatchAxisToP3()
{
int targetP3 = BatchAxisP3;
int targetSpeed = Robot.Config.BatchAxis_P3Speed;
MoveInfo.TimeOutSeconds = 200;
MoveInfo.CanWhileCount = 0;
// 需要增加定时器,获取验证信号并停止伺服
......@@ -392,7 +392,7 @@ namespace OnlineStore.DeviceLibrary
BatchAxis.Config.TargetPosition = targetP3;
BatchAxis.AbsMove(null, targetP3, targetSpeed);
//开始检测信号
BatchAxis.BatchAxisStartCheck(IO_AxisTrayCheck,IO_VALUE.HIGH);
BatchAxis.BatchAxisStartCheck(IO_AxisTrayCheck, IO_VALUE.HIGH);
}
#endregion
......@@ -469,7 +469,7 @@ namespace OnlineStore.DeviceLibrary
{
Task.Factory.StartNew(delegate
{
string logName = Name + "料串 "+rfid+" [AGV->" + AgvName + "] ";
string logName = Name + "料串 " + rfid + " [AGV->" + AgvName + "] ";
try
{
if (Robot.IOValue(IO_LineIn_Check).Equals(IO_VALUE.LOW) && Robot.IOValue(IO_LineEnd_Check).Equals(IO_VALUE.LOW))
......@@ -483,7 +483,7 @@ namespace OnlineStore.DeviceLibrary
if (!result)
{
LogUtil.info(logName + " 等待 IO_LineIn_Check=High 超时, 等待 IO_LineEnd_Check 信号");
LogUtil.error(logName + " 等待 IO_LineIn_Check=High 超时, 等待 IO_LineEnd_Check 信号");
}
else
{
......@@ -493,7 +493,7 @@ namespace OnlineStore.DeviceLibrary
if (!result)
{
LogUtil.info(logName + " 等待 IO_LineEnd_Check=High 超时,等待3000后停止转动,发送 FinishEnter");
LogUtil.error(logName + " 等待 IO_LineEnd_Check=High 超时,等待3000后停止转动,发送 FinishEnter");
}
else
{
......@@ -535,15 +535,15 @@ namespace OnlineStore.DeviceLibrary
}
});
}
internal void ShelfOutProcess(string nodeId, string rfid)
{
//AGV已到达,将料串送入AGV中
Task.Factory.StartNew(delegate
{
string logName = Name + "料串"+rfid+"[" + AgvName + "->AGV ] ";
string logName = Name + "料串" + rfid + "[" + AgvName + "->AGV ] ";
try
{
{
AgvClient.SetStatus(AgvName, CurrShelfId, ClientAction.None, ClientLevel.High, true);
if (Robot.IOValue(IO_LineIn_Check).Equals(IO_VALUE.HIGH) || Robot.IOValue(IO_LineEnd_Check).Equals(IO_VALUE.HIGH))
{
......@@ -552,7 +552,7 @@ namespace OnlineStore.DeviceLibrary
bool result = Robot.WaitIo(IO_LineIn_Check, IO_VALUE.LOW, 60000);
if (!result)
{
LogUtil.info(logName + " 等待 IO_LineIn_Check=LOW超时,等待8000后停止转动,发送FinishLeave");
LogUtil.error(logName + " 等待 IO_LineIn_Check=LOW超时,等待8000后停止转动,发送FinishLeave");
}
else
{
......@@ -590,9 +590,9 @@ namespace OnlineStore.DeviceLibrary
}
});
}
#endregion
protected void WorkLog(string msg)
{
LogUtil.info(Name + " [" + MoveInfo.MoveStep + "]" + msg);
......
......@@ -419,11 +419,13 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.O_ELine_Run, IO_VALUE.HIGH);
//等待进料检测信号
bool result = WaitIo(IO_Type.O_ELine_InCheck, IO_VALUE.HIGH, 60000);
bool result = WaitIo(IO_Type.O_ELine_InCheck, IO_VALUE.HIGH, 600000, logName + "等待O_ELine_InCheck检测到料架");
if (!result)
{
LogUtil.info(logName + " 等待 O_ELine_InCheck=High 超时, 等待 5000 后停止 O_ELine_Run");
WarnMsg = logName + "等待O_ELine_InCheck检测到料架 超时";
LogUtil.error(WarnMsg);
LogUtil.error (logName + " 等待 O_ELine_InCheck=High 超时, 等待 5000 后停止 O_ELine_Run");
}
else
{
......@@ -484,7 +486,7 @@ namespace OnlineStore.DeviceLibrary
bool result = WaitIo(IO_Type.O_WLine_OutCheck, IO_VALUE.LOW, 60000);
if (!result)
{
LogUtil.info(logName + " 等待 O_WLine_OutCheck=LOW超时,等待8000后停止转动 ");
LogUtil.error(logName + " 等待 O_WLine_OutCheck=LOW超时,等待8000后停止转动 ");
}
else
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!