Commit cb246d5b LN

优化

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