| | |
| | | |
| | | ManualResetEventSlim _pausedHandle = new ManualResetEventSlim(true); |
| | | MachineState _machineStateBeforePause = MachineState.Unknown; |
| | | private async void CheckMachinePauseState() |
| | | private void CheckMachinePauseState() |
| | | { |
| | | await Task.Run(() => |
| | | //await Task.Run(() => |
| | | { |
| | | if (IsMachinePaused) |
| | | { |
| | | _machineStateBeforePause = MachineState; |
| | | if (MachineState == MachineState.Ready || MachineState == MachineState.Running) |
| | | { |
| | | _machineStateBeforePause = MachineState; |
| | | } |
| | | MachineState = MachineState.Pause; |
| | | _pausedHandle.Reset(); |
| | | |
| | |
| | | MachineState = _machineStateBeforePause; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | //); |
| | | } |
| | | |
| | | public bool IsMachinePaused |
| | |
| | | [ProcessMethod("", "SafetyBeamSignal", "安全光幕信号监控,正常ON,OFF时报警", InvokeType.TestInvoke)] |
| | | public ProcessResponse SafetyBeamSignal(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) |
| | | { |
| | | //if (MachineState != MachineState.Running && MachineState != MachineState.Pause) |
| | | // return new ProcessResponse(true); |
| | | |
| | | if (opConfig.InputPara == null || opConfig.InputPara.Count == 0) |
| | | throw new ProcessException("安全光幕监控未配置输入信号"); |
| | | |
| | |
| | | |
| | | IsEmergencyStopped = opConfig.InputPara[0] == 0; |
| | | |
| | | if (IsEmergencyStopped) |
| | | if (isEmergencyStopped) |
| | | { |
| | | RaisedAlarm("急停按钮被拍下"); |
| | | MachineState = MachineState.Alarm; |