Commit 6811af88 LN

逻辑优化。

1 个父辈 5cda5bea
......@@ -194,7 +194,7 @@ namespace OnlineStore.DeviceLibrary
if (!LeftBatchMove.MoveInfo.MoveType.Equals(RobotMoveType.None) && (!LeftBatchMove.MoveInfo.MoveType.Equals(RobotMoveType.Working)))
{
WarnMsg = Name + "等待" + LeftBatchMove.Name + "复位完成超时[" + MoveInfo.TimeOutSeconds + "]秒";
LogUtil.error(WarnMsg, MoveInfo.ErrorLogType);
LogUtil.error(WarnMsg, MoveInfo.ErrorLogType,MoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
else
......
......@@ -183,7 +183,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsTimeOut(60))
{
WarnMsg = Name + "等待" + moveBean.Name + "测高结束超时[" + MoveInfo.TimeOutSeconds + "]秒";
LogUtil.error(WarnMsg, MoveInfo.ErrorLogType);
LogUtil.error(WarnMsg, MoveInfo.ErrorLogType,MoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
}
......@@ -249,7 +249,7 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsTimeOut(120))
{
WarnMsg = Name + "等待" + MoveInfo.MoveParam.WareCode + "验证是否测值 超时[" + MoveInfo.TimeOutSeconds + "]秒";
LogUtil.error(WarnMsg, MoveInfo.ErrorLogType);
LogUtil.error(WarnMsg, MoveInfo.ErrorLogType,MoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
}
......@@ -344,8 +344,9 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.IW44_MiddleToP2))
{
TimeSpan span = DateTime.Now - MoveInfo.MoveStartTime;
MoveInfo.EndMove();
WorkLog("放料完成");
WorkLog("放料完成,耗时(" + FormUtil.GetSpanStr(span) + ")");
}
}
......
......@@ -205,7 +205,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.OMR05_TakeT_Clamping_Relax))
{
WorkLog(" 取料模块复位完成");
TimeSpan span = DateTime.Now - MoveInfo.MoveStartTime;
WorkLog(" 取料模块复位完成,耗时(" + FormUtil.GetSpanStr(span) + ")");
MoveInfo.EndMove();
ResetStatusPro();
}
......@@ -268,7 +269,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecMoveInfo.IsStep(StepEnum.OLR08_LabelRToP1))
{
SecWorkLog(" 贴标模块复位完成");
TimeSpan span = DateTime.Now - SecMoveInfo.MoveStartTime;
SecWorkLog(" 贴标模块复位完成, 耗时(" + FormUtil.GetSpanStr(span) + ")");
SecMoveInfo.EndMove();
ResetStatusPro();
}
......@@ -360,15 +362,17 @@ namespace OnlineStore.DeviceLibrary
}
else
{
TimeSpan span = DateTime.Now - ShelfMoveInfo.MoveStartTime;
ShelfMoveInfo.EndMove();
ShelfWorkLog("批量轴模块复位完成");
ShelfWorkLog("批量轴模块复位完成,耗时(" + FormUtil.GetSpanStr(span) + ")");
ResetStatusPro();
}
}
else if (ShelfMoveInfo.IsStep(StepEnum.OBR08_BatchAxisToP1))
{
TimeSpan span = DateTime.Now - ShelfMoveInfo.MoveStartTime;
ShelfMoveInfo.EndMove();
ShelfWorkLog("批量轴模块复位完成");
ShelfWorkLog("批量轴模块复位完成,耗时(" + FormUtil.GetSpanStr(span) + ")");
ResetStatusPro();
}
}
......
......@@ -258,7 +258,7 @@ namespace OnlineStore.DeviceLibrary
else if (SecMoveInfo.IsTimeOut(120))
{
WarnMsg = SecMoveInfo.Name + "[" + SecMoveInfo.MoveStep + "]" + "等待 贴标结束 超时[" + FormUtil.GetSpanStr(SecMoveInfo.StepSpan()) + "]";
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType);
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType, SecMoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
}
......@@ -325,10 +325,11 @@ namespace OnlineStore.DeviceLibrary
}
else if (ShelfMoveInfo.IsStep(StepEnum.OS_38_LineRun))
{
TimeSpan span = DateTime.Now - ShelfMoveInfo.MoveStartTime;
ShelfMoveInfo.EndMove();
IOMove(IO_Type.O_WLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.O_WLine_WorkStop, IO_VALUE.LOW);
ShelfWorkLog("送出料串完成,链条停止转动,阻挡上升 ");
ShelfWorkLog("送出料串完成,链条停止转动,阻挡上升, 耗时(" + FormUtil.GetSpanStr(span) + ") ");
}
#endregion
......
......@@ -241,7 +241,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.XR05_DoorClose))
{
WorkLog(" XRay复位 :完成!");
TimeSpan span = DateTime.Now - MoveInfo.MoveStartTime;
WorkLog(" XRay复位 :完成,耗时(" + FormUtil.GetSpanStr(span) + ")");
MoveInfo.EndMove();
runStatus = RobotRunStatus.Runing;
}
......
......@@ -96,21 +96,21 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(StepEnum.XW01_WaitInReel))
{
MoveInfo.NextMoveStep(StepEnum.XW02_InDoorOpen);
WorkLog("料盘处理:左侧门打开,挡停下降");
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);
}
else if (MoveInfo.IsStep(StepEnum.XW02_InDoorOpen))
{
MoveInfo.NextMoveStep(StepEnum.XW04_InLineRun);
WorkLog("料盘处理:入口和中间皮带线转动,");
WorkLog("料盘处理:入口和中间皮带线转动,",0);
IOMove(IO_Type.X_InLine_Run, IO_VALUE.HIGH);
IOMove(IO_Type.X_MLine_Run, IO_VALUE.HIGH);
}
else if (MoveInfo.IsStep(StepEnum.XW04_InLineRun))
{
MoveInfo.NextMoveStep(StepEnum.XW05_WaitMCheck);
WorkLog("料盘处理:等待扫描区域信号检测");
WorkLog("料盘处理:等待扫描区域信号检测",0);
IOMove(IO_Type.X_InLine_Run, IO_VALUE.HIGH);
IOMove(IO_Type.X_MLine_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.X_ReelCheck, IO_VALUE.HIGH));
......@@ -147,7 +147,7 @@ namespace OnlineStore.DeviceLibrary
Work_ReelInfo.IsNgReel = true;
Work_ReelInfo.NgMsg = "无有效条码";
}
MoveInfo.MoveParam.SetReelInfo(In_ReelInfo);
//MoveInfo.MoveParam.SetReelInfo(In_ReelInfo);
//判断是否需要点料
if (Work_ReelInfo.IsNgReel)
{
......@@ -196,7 +196,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsTimeOut(120))
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待 X互锁信号打开 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType);
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType,SecMoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
}
......@@ -216,7 +216,7 @@ namespace OnlineStore.DeviceLibrary
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "]" + "等待 X互锁信号打开 超时[" + FormUtil.GetSpanStr(MoveInfo.StepSpan()) + "]";
}
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType);
LogUtil.error(WarnMsg, SecMoveInfo.ErrorLogType, SecMoveInfo.logSeconds());
Alarm(AlarmType.IoSingleTimeOut);
}
}
......@@ -246,27 +246,27 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(StepEnum.XW21_WaitOutNoReel);
MoveInfo.TimeOutSeconds = 120;
WorkLog("料盘处理:等待出口无料盘");
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("料盘处理:右侧门打开,挡停放行");
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("料盘处理:中间皮带线,出口皮带线转动");
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("料盘处理:等待出口皮带线检测到料盘");
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));
......@@ -300,17 +300,11 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.XW27_OutDoorClose))
{
TimeSpan span = DateTime.Now - MoveInfo.MoveStartTime;
runStatus = RobotRunStatus.Runing;
MoveInfo.EndMove();
WorkLog("料盘处理:料盘处理结束");
// MoveInfo.NextMoveStep(StepEnum.XW28_EndPro);
}
else if (MoveInfo.IsStep(StepEnum.XW28_EndPro))
{
MoveInfo.EndMove();
runStatus = RobotRunStatus.Runing;
WorkLog("料盘处理:料盘处理结束,耗时(" + FormUtil.GetSpanStr(span) + ")");
}
}
private void XW12_XRayStart()
......
......@@ -11,14 +11,15 @@ namespace OnlineStore.DeviceLibrary
{
public class RobotMoveInfo
{
internal DateTime MoveStartTime = DateTime.Now;
private static int MaxMoveId=1;
/// <summary>
/// 超时时间
/// </summary>
public int TimeOutSeconds = 60;
public string Name = "";
public bool ShelfNoTray = false;
public int MoveID = 0;
internal int TimeOutSeconds = 60;
internal string Name = "";
internal bool ShelfNoTray = false;
internal int MoveID = 0;
public RobotMoveInfo(string name)
{
this.Name = name;
......@@ -40,7 +41,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary>
public bool OneWaitCanEndStep = false;
internal bool OneWaitCanEndStep = false;
private RobotMoveType moveType;
......@@ -55,25 +56,25 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 是否再当前步骤等待中
/// </summary>
public bool IsInWait { get; set; }
internal bool IsInWait { get; set; }
/// <summary>
/// 可以循环运动的次数(轴卡运动才需要)
/// </summary>
public int CanWhileCount = 0;
internal int CanWhileCount = 0;
private StepEnum moveStep;
public StepEnum MoveStep
internal StepEnum MoveStep
{
get { return moveStep; }
}
public bool IsStep(StepEnum step)
internal bool IsStep(StepEnum step)
{
return MoveStep.Equals(step);
}
public bool IsTimeOut(int timeOutSeconds = 60)
internal bool IsTimeOut(int timeOutSeconds = 60)
{
TimeSpan span = DateTime.Now - LastSetpTime;
if (span.TotalSeconds > timeOutSeconds)
......@@ -82,12 +83,27 @@ namespace OnlineStore.DeviceLibrary
}
return false;
}
public TimeSpan StepSpan()
internal int logSeconds()
{
TimeSpan span = DateTime.Now - LastSetpTime;
int second = 10;
second = (int)(TimeOutSeconds / span.TotalSeconds) * 10;
if (second > 120)
{
second = 120;
}
else if (second < 10)
{
second = 10;
}
return second;
}
internal TimeSpan StepSpan()
{
TimeSpan span = DateTime.Now - LastSetpTime;
return span;
}
public void NextMoveStep(StepEnum step)
internal void NextMoveStep(StepEnum step)
{
moveStep = step;
LastSetpTime = DateTime.Now;
......@@ -99,7 +115,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 当前步骤执行完成
/// </summary>
public void EndStepWait()
internal void EndStepWait()
{
IsInWait = false;
WaitList = new List<WaitResultInfo>();
......@@ -112,15 +128,8 @@ namespace OnlineStore.DeviceLibrary
LastSetpTime = DateTime.Now;
WaitList = new List<WaitResultInfo>();
MoveNum++;
MoveStartTime = DateTime.Now;
}
//public void NewMove(RobotMoveType type, WorkParam param, StepEnum step= StepEnum.Wait)
//{
// moveStep = step;
// this.moveType = type;
// this.MoveParam = param;
// LastSetpTime = DateTime.Now;
// WaitList = new List<WaitResultInfo>();
//}
public void EndMove()
{
this.moveType = RobotMoveType.None;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!