diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/InitAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/InitAction.cs index d9ecd06..9074e84 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/InitAction.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/InitAction.cs @@ -395,71 +395,85 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl if (DB2119.Coolwater_A.Dos_End) { - ManualLogControl("冷水称A称量结束", DB2119.Coolwater_A.Value_Initial, 2, 3, 1); - PlcControl("DB2119.28.3", false); + if(PlcControl("DB2119.28.3", false)) + { + ManualLogControl("冷水称A称量结束", DB2119.Coolwater_A.Value_Initial, 2, 3, 1); + } } if (DB2119.Hotwater_A.Dos_End) { - ManualLogControl("热水称A称量结束", DB2119.Hotwater_A.Value_Initial, 2, 1, 1); - PlcControl("DB2119.08.3", false); + if(PlcControl("DB2119.08.3", false)) + { + ManualLogControl("热水称A称量结束", DB2119.Hotwater_A.Value_Initial, 2, 1, 1); + } } if (DB2119.Coolwater_B.Dos_End) { - ManualLogControl("冷水称B称量结束", DB2119.Coolwater_B.Value_Initial, 2, 4, 1); - PlcControl("DB2119.38.3", false); + if (PlcControl("DB2119.38.3", false)) + { + ManualLogControl("冷水称B称量结束", DB2119.Coolwater_B.Value_Initial, 2, 4, 1); + } } if (DB2119.Hotwater_B.Dos_End) { - ManualLogControl("热水称B称量结束", DB2119.Hotwater_B.Value_Initial, 2, 2, 1); - PlcControl("DB2119.18.3", false); + if(PlcControl("DB2119.18.3", false)) + { + ManualLogControl("热水称B称量结束", DB2119.Hotwater_B.Value_Initial, 2, 2, 1); + } } if (DB2119.Spiral_A.Dos_End) { - if(DB2119.Spiral_A.Weter_Bin == 1) + if(PlcControl("DB2119.60.3", false)) { - ManualLogControl("湿混机1称量结束", DB2119.Spiral_A.Value_Weight, 4, 1, 2); + if (DB2119.Spiral_A.Weter_Bin == 1) + { + ManualLogControl("湿混机1称量结束", DB2119.Spiral_A.Value_Weight, 4, 1, 2); + } + else if (DB2119.Spiral_A.Weter_Bin == 2) + { + ManualLogControl("湿混机2称量结束", DB2119.Spiral_A.Value_Weight, 4, 2, 2); + } + else + { + ManualLogControl("螺旋1称量结束", DB2119.Spiral_A.Value_Weight, 4, 12, 2); + } } - else if(DB2119.Spiral_A.Weter_Bin == 2) - { - ManualLogControl("湿混机2称量结束", DB2119.Spiral_A.Value_Weight, 4, 2, 2); - } - else - { - ManualLogControl("螺旋1称量结束", DB2119.Spiral_A.Value_Weight, 4, 12, 2); - } - PlcControl("DB2119.60.3", false); } if (DB2119.Spiral_B.Dos_End) { - if (DB2119.Spiral_B.Weter_Bin == 1) - { - ManualLogControl("湿混机3称量结束", DB2119.Spiral_B.Value_Weight, 4, 3, 2); - } - else if (DB2119.Spiral_B.Weter_Bin == 2) - { - ManualLogControl("湿混机4称量结束", DB2119.Spiral_B.Value_Weight, 4, 4, 2); - } - else + if(PlcControl("DB2119.82.3", false)) { - ManualLogControl("螺旋2称量结束", DB2119.Spiral_B.Value_Weight, 4, 34, 2); + if (DB2119.Spiral_B.Weter_Bin == 1) + { + ManualLogControl("湿混机3称量结束", DB2119.Spiral_B.Value_Weight, 4, 3, 2); + } + else if (DB2119.Spiral_B.Weter_Bin == 2) + { + ManualLogControl("湿混机4称量结束", DB2119.Spiral_B.Value_Weight, 4, 4, 2); + } + else + { + ManualLogControl("螺旋2称量结束", DB2119.Spiral_B.Value_Weight, 4, 34, 2); + } } - PlcControl("DB2119.82.3", false); } if (DB2119.Spiral_C.Dos_End) { - if (DB2119.Spiral_C.Weter_Bin == 1) - { - ManualLogControl("湿混机5称量结束", DB2119.Spiral_C.Value_Weight, 4, 5, 2); - } - else if (DB2119.Spiral_C.Weter_Bin == 2) - { - ManualLogControl("湿混机6称量结束", DB2119.Spiral_C.Value_Weight, 4, 6, 2); - } - else + if(PlcControl("DB2119.104.3", false)) { - ManualLogControl("螺旋1称量结束", DB2119.Spiral_C.Value_Weight, 4, 56, 2); + if (DB2119.Spiral_C.Weter_Bin == 1) + { + ManualLogControl("湿混机5称量结束", DB2119.Spiral_C.Value_Weight, 4, 5, 2); + } + else if (DB2119.Spiral_C.Weter_Bin == 2) + { + ManualLogControl("湿混机6称量结束", DB2119.Spiral_C.Value_Weight, 4, 6, 2); + } + else + { + ManualLogControl("螺旋1称量结束", DB2119.Spiral_C.Value_Weight, 4, 56, 2); + } } - PlcControl("DB2119.104.3", false); } #endregion @@ -750,9 +764,9 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl #endregion - private void PlcControl(string address, bool state) + private bool PlcControl(string address, bool state) { - PlcConnect.Instance.Write(address, state); + return PlcConnect.Instance.Write(address, state).IsSuccess; } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/ManualControlAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/ManualControlAction.cs index ac2fa6f..b9e9064 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/ManualControlAction.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/ManualControlAction.cs @@ -24,6 +24,7 @@ using System.Windows.Forms; using Mesnac.Action.ChemicalWeighing.LjMaterial; using Mesnac.Action.ChemicalWeighing.MinAn; using System.Xml.Serialization; +using System.Threading; namespace Mesnac.Action.ChemicalWeighing.ManualControl { @@ -1261,11 +1262,41 @@ namespace Mesnac.Action.ChemicalWeighing.ManualControl private void PlcControl(string address, short binNo) { - PlcConnect.Instance.Write(address, binNo); + if(!PlcConnect.Instance.Write(address, binNo).IsSuccess) + { + if(PlcConnect.Instance.ReadInt16(address).Content == binNo) + { + return; + } + for(int i = 0; i < 3; i++) + { + Thread.Sleep(100); + if(PlcConnect.Instance.Write(address, binNo).IsSuccess) + { + return; + } + } + MessageBox.Show(address + "写入失败!"); + } } private void PlcControl(string address, bool state) { - PlcConnect.Instance.Write(address, state); + if (!PlcConnect.Instance.Write(address, state).IsSuccess) + { + if (PlcConnect.Instance.ReadBool(address).Content == state) + { + return; + } + for (int i = 0; i < 3; i++) + { + Thread.Sleep(100); + if (PlcConnect.Instance.Write(address, state).IsSuccess) + { + return; + } + } + MessageBox.Show(address + "写入失败!"); + } } #endregion