From 5bf1b91009a182188d6d2245aa71653801eea60b Mon Sep 17 00:00:00 2001 From: wells <123> Date: 星期日, 12 七月 2020 18:09:54 +0800 Subject: [PATCH] debug --- src/Bro.M071.Process/M071Process_MotionCard.cs | 69 ++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 17 deletions(-) diff --git a/src/Bro.M071.Process/M071Process_MotionCard.cs b/src/Bro.M071.Process/M071Process_MotionCard.cs index 70bb5c8..7a91ce4 100644 --- a/src/Bro.M071.Process/M071Process_MotionCard.cs +++ b/src/Bro.M071.Process/M071Process_MotionCard.cs @@ -26,6 +26,9 @@ get => machineState; set { + if (machineState == value) + return; + machineState = value; switch (machineState) @@ -40,9 +43,10 @@ Task.Run(() => { - lock (machineStateLock) + + while (MachineState == MachineState.Ready) { - while (MachineState == MachineState.Ready) + lock (machineStateLock) { SwitchLightGreen(true); Thread.Sleep(1000); @@ -79,9 +83,9 @@ } Task.Run(() => { - lock (machineStateLock) + while (MachineState == MachineState.Pause) { - while (MachineState == MachineState.Pause) + lock (machineStateLock) { SwitchLightYellow(true); SwitchLightGreen(true); @@ -102,10 +106,11 @@ } Task.Run(() => { - lock (machineStateLock) + while (MachineState == MachineState.Resetting) { - while (MachineState == MachineState.Resetting) + lock (machineStateLock) { + SwitchLightYellow(true); Thread.Sleep(1000); SwitchLightYellow(false); @@ -185,6 +190,16 @@ } } + [ProcessMethod("MotionCardBase", "GotoReadyPosition", "杩愬姩鍒伴澶囦綅缃�", InvokeType.TestInvoke)] + public ProcessResponse GotoReadyPosition(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) + { + MotionCardDefaultRun("GotoReadyPosition", ref opConfig, ref invokeDevice); + + LogAsync(DateTime.Now, "杩愬姩鍒伴澶囦綅缃畬鎴�", ""); + + return new ProcessResponse(true); + } + [ProcessMethod("MotionCardBase", "Reset", "绠�鍗曞浣嶆搷浣�", InvokeType.TestInvoke)] public ProcessResponse Reset(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) { @@ -206,9 +221,23 @@ // } //} + if (ResetTimer == null) + { + ResetTimer = new Timer(FullReset, null, -1, -1); + } + + if (opConfig?.InputPara != null && opConfig.InputPara.Count > 0) + { + //澶у浣嶄俊鍙� + ResetTimer.Change(opConfig.InputPara[0] == 1 ? FULLRESETTIME * 1000 : -1, -1); + + if (opConfig.InputPara[0] == 0) + return new ProcessResponse(true); + } + if (!IsAllowedWork) { - LogAsync(DateTime.Now, $"{(IsSafetyDoorTrigged ? "瀹夊叏闂�" : "")}{(IsSafetyBeamTrigged ? " 瀹夊叏鍏夌嚎" : "")}{(isEmergencyStopped ? " 鎬ュ仠鎸夐挳" : "")}瑙﹀彂涓紝澶嶄綅澶辫触", ""); + LogAsync(DateTime.Now, $"{SafetyMsg}锛屽浣嶅け璐�", ""); return new ProcessResponse(false); } @@ -224,16 +253,13 @@ MachineState = MachineState.Alarm; } - if (ResetTimer == null) - { - ResetTimer = new Timer(FullReset, null, -1, -1); - } - if (opConfig.InputPara.Count > 0) - { - //澶у浣嶄俊鍙� - ResetTimer.Change(-1, opConfig.InputPara[0] == 1 ? FULLRESETTIME * 1000 : -1); - } + + //if (opConfig.InputPara?.Count > 0) + //{ + // //澶у浣嶄俊鍙� + // ResetTimer.Change(-1, opConfig.InputPara[0] == 1 ? FULLRESETTIME * 1000 : -1); + //} //if (invokeDevice is MotionCardBase motionCard) //{ @@ -298,6 +324,8 @@ RaisedAlarm(""); MachineState = MachineState.Ready; + + GotoReadyPosition(null, null, null); return new ProcessResponse(true); } @@ -597,6 +625,10 @@ { get => !(IsSafetyBeamTrigged || IsSafetyDoorTrigged || IsEmergencyStopped); } + string SafetyMsg + { + get => $"{(IsSafetyBeamTrigged ? "瀹夊叏鍏夊箷" : "")}{(IsSafetyDoorTrigged ? " 瀹夊叏闂�" : "")}{(IsEmergencyStopped ? " 鎬ュ仠鎸夐挳" : "")}瑙﹀彂涓�"; + } #region 瀹夊叏闂� & 瀹夊叏鍏夌嚎 bool isSafetyDoorTrigged = false; @@ -633,6 +665,9 @@ [ProcessMethod("", "SafetyBeamSignal", "瀹夊叏鍏夊箷淇″彿鐩戞帶锛屾甯窸N锛孫FF鏃舵姤璀�", InvokeType.TestInvoke)] public ProcessResponse SafetyBeamSignal(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) { + if (MachineState != MachineState.Running || MachineState != MachineState.Alarm) + return new ProcessResponse(true); + if (opConfig.InputPara == null || opConfig.InputPara.Count == 0) throw new ProcessException("瀹夊叏鍏夊箷鐩戞帶鏈厤缃緭鍏ヤ俊鍙�"); @@ -674,7 +709,7 @@ if (opConfig.InputPara == null || opConfig.InputPara.Count == 0) throw new ProcessException("鎬ュ仠鎸夐挳鏈厤缃緭鍏ヤ俊鍙�"); - IsEmergencyStopped = opConfig.InputPara[0] == 1; + IsEmergencyStopped = opConfig.InputPara[0] == 0; if (IsEmergencyStopped) { -- Gitblit v1.8.0