Commit cb246d5b LN

优化

1 个父辈 dc2183db
...@@ -392,6 +392,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -392,6 +392,10 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
if (ShelfMoveInfo.MoveType.Equals(RobotMoveType.ShelfPro))
{
ShelfMoveProcess();
}
if (SecMoveInfo.MoveType.Equals(RobotMoveType.Labelling)) if (SecMoveInfo.MoveType.Equals(RobotMoveType.Labelling))
{ {
LabellingProcess(); LabellingProcess();
...@@ -401,11 +405,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -401,11 +405,6 @@ namespace OnlineStore.DeviceLibrary
{ {
WorkingProcess(); WorkingProcess();
} }
if (ShelfMoveInfo.MoveType.Equals(RobotMoveType.ShelfPro))
{
ShelfMoveProcess();
}
} }
} }
private Stopwatch needEnterWatch = new Stopwatch(); private Stopwatch needEnterWatch = new Stopwatch();
......
...@@ -177,9 +177,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -177,9 +177,15 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
MoveInfo.NextMoveStep(StepEnum.OT05_GetImage); //暂时不需要拍照
WorkLog("取料:[" + Config.CameraName + "]拍照并开始识别 ,等待100ms"); //MoveInfo.NextMoveStep(StepEnum.OT05_GetImage);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100)); //WorkLog("取料:[" + Config.CameraName + "]拍照并开始识别 ,等待100ms");
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
MoveInfo.NextMoveStep(StepEnum.OT07_MoveZToP2);
WorkLog("取料:取料Z轴到P2 ", 0);
MoveZAxis.AbsMove(MoveInfo, Config.GetMoveZP2(MoveInfo.MoveParam.PlateH), Config.MoveZ_P2Speed);
CheckStartLabel();
} }
} }
protected override void WorkingProcess() protected override void WorkingProcess()
...@@ -270,7 +276,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -270,7 +276,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsStep(StepEnum.OT11_WaitShelfOk)) else if (MoveInfo.IsStep(StepEnum.OT11_WaitShelfOk))
{ {
bool shelfOk = ShelfMoveInfo.MoveType.Equals(RobotMoveType.ShelfPro) && ShelfMoveInfo.IsStep(StepEnum.OS_18_ShelfReady); bool shelfOk = ShelfMoveInfo.MoveType.Equals(RobotMoveType.ShelfPro) && ShelfMoveInfo.IsStep(StepEnum.OS_20_ShelfReady);
bool debugOk = ShelfMoveInfo.MoveType.Equals(RobotMoveType.None) && MoveInfo.MoveParam.IsTest; bool debugOk = ShelfMoveInfo.MoveType.Equals(RobotMoveType.None) && MoveInfo.MoveParam.IsTest;
if (shelfOk || debugOk) if (shelfOk || debugOk)
......
...@@ -192,24 +192,37 @@ namespace OnlineStore.DeviceLibrary ...@@ -192,24 +192,37 @@ namespace OnlineStore.DeviceLibrary
else if (ShelfMoveInfo.IsStep(StepEnum.OS_15_BatchAxisToP2)) else if (ShelfMoveInfo.IsStep(StepEnum.OS_15_BatchAxisToP2))
{ {
ShelfMoveInfo.NextMoveStep(StepEnum.OS_16_WTrayLForward); ShelfMoveInfo.NextMoveStep(StepEnum.OS_16_WTrayLForward);
ShelfWorkLog("托盘定位前进"); ShelfWorkLog("托盘定位前进2000");
TrayFixedFoward(ShelfMoveInfo); TrayFixedFoward(null);
ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
} }
else if (ShelfMoveInfo.IsStep(StepEnum.OS_16_WTrayLForward)) else if (ShelfMoveInfo.IsStep(StepEnum.OS_16_WTrayLForward))
{ {
ShelfMoveInfo.NextMoveStep(StepEnum.OS_17_BatchAxisToP3); ShelfMoveInfo.NextMoveStep(StepEnum.OS_17_WTrayLBack);
ShelfWorkLog("托盘定位后退");
TrayFixedBack(ShelfMoveInfo);
}
else if (ShelfMoveInfo.IsStep(StepEnum.OS_17_WTrayLBack))
{
ShelfMoveInfo.NextMoveStep(StepEnum.OS_18_WTrayLForward2);
ShelfWorkLog("托盘定位再次前进");
TrayFixedFoward(ShelfMoveInfo);
}
else if (ShelfMoveInfo.IsStep(StepEnum.OS_18_WTrayLForward2))
{
ShelfMoveInfo.NextMoveStep(StepEnum.OS_19_BatchAxisToP3);
ShelfWorkLog("批量轴匀速到P3点,清空出料信息=0"); ShelfWorkLog("批量轴匀速到P3点,清空出料信息=0");
BatchAxisToP3(ShelfMoveInfo); BatchAxisToP3(ShelfMoveInfo);
OutReelHeight = 0; OutReelHeight = 0;
OutReelCount = 0; OutReelCount = 0;
} }
else if (ShelfMoveInfo.IsStep(StepEnum.OS_17_BatchAxisToP3)) else if (ShelfMoveInfo.IsStep(StepEnum.OS_19_BatchAxisToP3))
{ {
ShelfMoveInfo.NextMoveStep(StepEnum.OS_18_ShelfReady); ShelfMoveInfo.NextMoveStep(StepEnum.OS_20_ShelfReady);
ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
ShelfWorkLog("料串准备完成"); ShelfWorkLog("料串准备完成");
} }
else if (ShelfMoveInfo.IsStep(StepEnum.OS_18_ShelfReady)) else if (ShelfMoveInfo.IsStep(StepEnum.OS_20_ShelfReady))
{ {
//判断是否需要送出料串 //判断是否需要送出料串
if (AutoSendShelfOut && OutReelCount > 0) if (AutoSendShelfOut && OutReelCount > 0)
...@@ -220,7 +233,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -220,7 +233,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
ShelfMoveInfo.NextMoveStep(StepEnum.OS_18_ShelfReady); ShelfMoveInfo.NextMoveStep(StepEnum.OS_20_ShelfReady);
ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
} }
} }
...@@ -363,7 +376,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -363,7 +376,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
ShelfMoveInfo.NextMoveStep(StepEnum.OS_18_ShelfReady); ShelfMoveInfo.NextMoveStep(StepEnum.OS_20_ShelfReady);
ShelfWorkLog("料串准备完成"); ShelfWorkLog("料串准备完成");
} }
} }
......
...@@ -96,7 +96,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -96,7 +96,7 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(StepEnum.XW01_WaitInReel)) if (MoveInfo.IsStep(StepEnum.XW01_WaitInReel))
{ {
MoveInfo.NextMoveStep(StepEnum.XW02_InDoorOpen); MoveInfo.NextMoveStep(StepEnum.XW02_InDoorOpen);
WorkLog("料盘处理:左侧门打开,挡停下降",0); WorkLog("料盘处理:左侧门打开,挡停下降", 0);
CylinderMove(MoveInfo, IO_Type.X_InDoor_Up, IO_Type.X_InDoor_Down); CylinderMove(MoveInfo, IO_Type.X_InDoor_Up, IO_Type.X_InDoor_Down);
CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down); CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down);
} }
...@@ -197,13 +197,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -197,13 +197,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsTimeOut(120)) else if (MoveInfo.IsTimeOut(120))
{ {
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待 X互锁信号打开 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]"; WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待 X互锁信号打开 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType,SecMoveInfo.logSeconds()); LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType, SecMoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut); Alarm(AlarmType.IoSingleTimeOut);
} }
} }
else if (MoveInfo.IsStep(StepEnum.XW11_StartCount)) else if (MoveInfo.IsStep(StepEnum.XW11_StartCount))
{ {
if (xRayCanStart && (IOValue(IO_Type.X_Lock_On).Equals(IO_VALUE.HIGH)) ) if (xRayCanStart && (IOValue(IO_Type.X_Lock_On).Equals(IO_VALUE.HIGH)))
{ {
ClearTimeoutAlarm("可以打开X射线"); ClearTimeoutAlarm("可以打开X射线");
ClearTimeoutAlarm("X互锁信号打开"); ClearTimeoutAlarm("X互锁信号打开");
...@@ -240,36 +240,43 @@ namespace OnlineStore.DeviceLibrary ...@@ -240,36 +240,43 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsStep(StepEnum.XW15_GetResult)) else if (MoveInfo.IsStep(StepEnum.XW15_GetResult))
{ {
if (xRay.IsRayOpen)
{
xRay.Stop();
}
MoveInfo.NextMoveStep(StepEnum.XW16_EndCount); MoveInfo.NextMoveStep(StepEnum.XW16_EndCount);
WorkLog("料盘处理:点料结束,关闭X关机互锁信号"); WorkLog("料盘处理:点料结束,关闭X关机互锁信号,等待出口无料盘");
IOMove(IO_Type.X_Lock_On, IO_VALUE.LOW); IOMove(IO_Type.X_Lock_On, IO_VALUE.LOW);
MoveInfo.TimeOutSeconds = 120;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.X_Lock_On, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.LOW));
} }
#endregion #endregion
else if (MoveInfo.IsStep(StepEnum.XW16_EndCount)) else if (MoveInfo.IsStep(StepEnum.XW16_EndCount))
{ {
MoveInfo.NextMoveStep(StepEnum.XW21_WaitOutNoReel); MoveInfo.NextMoveStep(StepEnum.XW21_WaitOutNoReel);
MoveInfo.TimeOutSeconds = 120; MoveInfo.TimeOutSeconds = 120;
WorkLog("料盘处理:等待出口无料盘",0); WorkLog("料盘处理:等待出口无料盘", 0);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.LOW));
} }
else if (MoveInfo.IsStep(StepEnum.XW21_WaitOutNoReel)) else if (MoveInfo.IsStep(StepEnum.XW21_WaitOutNoReel))
{ {
MoveInfo.NextMoveStep(StepEnum.XW22_OutDoorOpen); MoveInfo.NextMoveStep(StepEnum.XW22_OutDoorOpen);
WorkLog("料盘处理:右侧门打开,挡停放行",0); WorkLog("料盘处理:右侧门打开,挡停放行", 0);
CylinderMove(MoveInfo, IO_Type.X_OutDoor_Up, IO_Type.X_OutDoor_Down); CylinderMove(MoveInfo, IO_Type.X_OutDoor_Up, IO_Type.X_OutDoor_Down);
CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Down, IO_Type.X_StopCylinder_Up); CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Down, IO_Type.X_StopCylinder_Up);
} }
else if (MoveInfo.IsStep(StepEnum.XW22_OutDoorOpen)) else if (MoveInfo.IsStep(StepEnum.XW22_OutDoorOpen))
{ {
MoveInfo.NextMoveStep(StepEnum.XW23_OutLineRun); MoveInfo.NextMoveStep(StepEnum.XW23_OutLineRun);
WorkLog("料盘处理:中间皮带线,出口皮带线转动",0); WorkLog("料盘处理:中间皮带线,出口皮带线转动", 0);
IOMove(IO_Type.X_MLine_Run, IO_VALUE.HIGH); IOMove(IO_Type.X_MLine_Run, IO_VALUE.HIGH);
IOMove(IO_Type.X_OLine_Run, IO_VALUE.HIGH); IOMove(IO_Type.X_OLine_Run, IO_VALUE.HIGH);
} }
else if (MoveInfo.IsStep(StepEnum.XW23_OutLineRun)) else if (MoveInfo.IsStep(StepEnum.XW23_OutLineRun))
{ {
MoveInfo.NextMoveStep(StepEnum.XW24_WaitOutCheck); MoveInfo.NextMoveStep(StepEnum.XW24_WaitOutCheck);
WorkLog("料盘处理:等待出口皮带线检测到料盘",0); WorkLog("料盘处理:等待出口皮带线检测到料盘", 0);
IOMove(IO_Type.X_MLine_Run, IO_VALUE.HIGH); IOMove(IO_Type.X_MLine_Run, IO_VALUE.HIGH);
IOMove(IO_Type.X_OLine_Run, IO_VALUE.HIGH); IOMove(IO_Type.X_OLine_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.HIGH));
...@@ -277,9 +284,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -277,9 +284,9 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StepEnum.XW24_WaitOutCheck)) else if (MoveInfo.IsStep(StepEnum.XW24_WaitOutCheck))
{ {
MoveInfo.NextMoveStep(StepEnum.XW25_WaitTime); MoveInfo.NextMoveStep(StepEnum.XW25_WaitTime);
Out_ReelInfo = Work_ReelInfo.GetReelInfo(); //Out_ReelInfo = Work_ReelInfo.GetReelInfo();
Work_ReelInfo = new ReelInfo(); //Work_ReelInfo = new ReelInfo();
WorkLog("料盘处理:清空 Work_ReelInfo,更新Out_ReelInfo【" + Out_ReelInfo.ToStr() + "】 ,中间皮带线先停止,出口皮带线 再转动2秒,出口门先关闭,档停先下降"); WorkLog("料盘处理: 中间皮带线先停止,出口皮带线 再转动2秒,出口门先关闭,档停先下降");
IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW); IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.X_OLine_Run, IO_VALUE.HIGH); IOMove(IO_Type.X_OLine_Run, IO_VALUE.HIGH);
...@@ -291,22 +298,36 @@ namespace OnlineStore.DeviceLibrary ...@@ -291,22 +298,36 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StepEnum.XW25_WaitTime)) else if (MoveInfo.IsStep(StepEnum.XW25_WaitTime))
{ {
MoveInfo.NextMoveStep(StepEnum.XW26_OutLineStop); if (GetResultTask == null || GetResultTask.IsCompleted)
WorkLog("料盘处理:中间皮带线,出口皮带线停止");
IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.X_OLine_Run, IO_VALUE.LOW);
}
else if (MoveInfo.IsStep(StepEnum.XW26_OutLineStop))
{ {
MoveInfo.NextMoveStep(StepEnum.XW27_OutDoorClose); ClearTimeoutAlarm("获取点料结果结束");
WorkLog("料盘处理:中间皮带线,出口皮带线停止,出口门关闭,挡停下降"); MoveInfo.NextMoveStep(StepEnum.XW26_OutLineStop);
Out_ReelInfo = Work_ReelInfo.GetReelInfo();
Work_ReelInfo = new ReelInfo();
WorkLog("料盘处理:清空 Work_ReelInfo,更新Out_ReelInfo【" + Out_ReelInfo.ToStr() + "】 ,中间皮带线,出口皮带线停止,出口门关闭,挡停下降");
IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW); IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.X_OLine_Run, IO_VALUE.LOW); IOMove(IO_Type.X_OLine_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_Type.X_OutDoor_Down, IO_Type.X_OutDoor_Up); CylinderMove(MoveInfo, IO_Type.X_OutDoor_Down, IO_Type.X_OutDoor_Up);
CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down); CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down);
} }
else if (MoveInfo.IsStep(StepEnum.XW27_OutDoorClose)) else if (MoveInfo.IsTimeOut(120))
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待 获取点料结果结束 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType, SecMoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
}
else if (MoveInfo.IsStep(StepEnum.XW26_OutLineStop))
{ {
// MoveInfo.NextMoveStep(StepEnum.XW27_OutDoorClose);
// WorkLog("料盘处理:中间皮带线,出口皮带线停止,出口门关闭,挡停下降");
// IOMove(IO_Type.X_MLine_Run, IO_VALUE.LOW);
// IOMove(IO_Type.X_OLine_Run, IO_VALUE.LOW);
// CylinderMove(MoveInfo, IO_Type.X_OutDoor_Down, IO_Type.X_OutDoor_Up);
// CylinderMove(MoveInfo, IO_Type.X_StopCylinder_Up, IO_Type.X_StopCylinder_Down);
//}
//else if (MoveInfo.IsStep(StepEnum.XW27_OutDoorClose))
//{
TimeSpan span = DateTime.Now - MoveInfo.MoveStartTime; TimeSpan span = DateTime.Now - MoveInfo.MoveStartTime;
runStatus = RobotRunStatus.Runing; runStatus = RobotRunStatus.Runing;
MoveInfo.EndMove(); MoveInfo.EndMove();
...@@ -326,7 +347,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -326,7 +347,7 @@ namespace OnlineStore.DeviceLibrary
#endregion #endregion
#region 点料处理 #region 点料处理
private Task GetResultTask = null;
private string lastFileName = ""; private string lastFileName = "";
private void XW15_GetResult() private void XW15_GetResult()
{ {
...@@ -336,7 +357,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -336,7 +357,10 @@ namespace OnlineStore.DeviceLibrary
return; return;
} }
MoveInfo.NextMoveStep(StepEnum.XW15_GetResult); MoveInfo.NextMoveStep(StepEnum.XW15_GetResult);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300000)); //MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
GetResultTask = Task.Factory.StartNew(delegate {
try try
{ {
if (xRay.IsRayOpen) if (xRay.IsRayOpen)
...@@ -408,7 +432,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -408,7 +432,8 @@ namespace OnlineStore.DeviceLibrary
{ {
LogUtil.error("XW15_GetResult出错:" + ex.ToString()); LogUtil.error("XW15_GetResult出错:" + ex.ToString());
} }
MoveInfo.EndStepWait(); });
//MoveInfo.EndStepWait();
} }
private bool ReadOutMsg(string outF) private bool ReadOutMsg(string outF)
{ {
......
...@@ -813,18 +813,28 @@ namespace OnlineStore.DeviceLibrary ...@@ -813,18 +813,28 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
OS_15_BatchAxisToP2, OS_15_BatchAxisToP2,
/// <summary> /// <summary>
/// 出料料串:托盘定位前进, /// 出料料串:托盘定位前进2000
/// </summary> /// </summary>
OS_16_WTrayLForward, OS_16_WTrayLForward,
/// <summary>
/// 出料料串:托盘定位后退
/// </summary>
OS_17_WTrayLBack,
/// <summary>
/// 出料料串:图片定位再次前进
/// </summary>
OS_18_WTrayLForward2,
/// <summary> /// <summary>
/// 出料料串:批量轴匀速到P3点, /// 出料料串:批量轴匀速到P3点,
/// </summary> /// </summary>
OS_17_BatchAxisToP3, OS_19_BatchAxisToP3,
/// <summary> /// <summary>
/// 出料料串:料串准备完成, /// 出料料串:料串准备完成,
/// </summary> /// </summary>
OS_18_ShelfReady, OS_20_ShelfReady,
/// <summary> /// <summary>
/// 放料:批量轴下降指定高度, /// 放料:批量轴下降指定高度,
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!