diff --git a/Rs.SkyLine/Commom/Ops.cs b/Rs.SkyLine/Commom/Ops.cs index 1b00b30..7d97e8d 100644 --- a/Rs.SkyLine/Commom/Ops.cs +++ b/Rs.SkyLine/Commom/Ops.cs @@ -152,39 +152,47 @@ namespace Rs.MotionPlat.Commom public static void Start() { - bool run = true; - if(GlobalVar.EnableVirtuleBarCode) + //先检测门禁 + if(IoManager.Instance.ReadIn("后安全门禁")==0) { - DialogResult dr = Msg.ShowQuestion("device run use virtual bar code?"); - if(dr== DialogResult.Cancel) - { - run = false; - } + MessageQueue.Instance.Warn("door opened,please close door!!!"); } - if(run) + else { - Task.Run(() => { - if (MachineManage.Instance.MachineStatus == EMachineStatus.Homed || MachineManage.Instance.MachineStatus == EMachineStatus.Stop) + bool run = true; + if (GlobalVar.EnableVirtuleBarCode) + { + DialogResult dr = Msg.ShowQuestion("device run use virtual barcode?"); + if (dr == DialogResult.Cancel) { - MachineManage.Instance.SetLocalMachineStatus(EMachineStatus.Working); - On("启动灯"); - Off("停止灯"); - LightManger.Instance.SetStatus(ELightStatus.Green); - if (!WorkEnvironment.Instance.IsRunning()) - { - WorkEnvironment.Instance.Ready(); - } - WorkEnvironment.Instance.EnvReadyOkEvent.WaitOne(); - DischargeFlow.Instance.Start(); - TurnoverFlow.Instance.Start(); - MachineManage.Instance.SetCenterMachineStatus(ERunStatus.Started); - //if (DischargeFlow.Instance.GetCurStep() == "等待任务" && TurnoverFlow.Instance.GetStep() == "等待任务") - if (MachineManage.Instance.GetLoadUnloadStatus() != ERunState.Busying) + run = false; + } + } + if (run) + { + Task.Run(() => { + if (MachineManage.Instance.MachineStatus == EMachineStatus.Homed || MachineManage.Instance.MachineStatus == EMachineStatus.Stop) { - MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); + MachineManage.Instance.SetLocalMachineStatus(EMachineStatus.Working); + On("启动灯"); + Off("停止灯"); + LightManger.Instance.SetStatus(ELightStatus.Green); + if (!WorkEnvironment.Instance.IsRunning()) + { + WorkEnvironment.Instance.Ready(); + } + WorkEnvironment.Instance.EnvReadyOkEvent.WaitOne(); + DischargeFlow.Instance.Start(); + TurnoverFlow.Instance.Start(); + MachineManage.Instance.SetCenterMachineStatus(ERunStatus.Started); + //if (DischargeFlow.Instance.GetCurStep() == "等待任务" && TurnoverFlow.Instance.GetStep() == "等待任务") + if (MachineManage.Instance.GetLoadUnloadStatus() != ERunState.Busying) + { + MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting); + } } - } - }); + }); + } } }