From eb1be49158ad456fe7adba5c85247e0c308b764a Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期三, 25 六月 2025 00:37:46 +0800 Subject: [PATCH] 简化写入逻辑并移除验证步骤在 `SiemensS7Communicator.cs` 文件中,移除了原有的读取和验证写入值的逻辑,替换为直接返回 `true` 表示写入成功。同时,在 `try` 块中添加了 `#region` 指令以提高代码可读性。保留了写入失败时的异常处理逻辑。 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs | 57 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 30 insertions(+), 27 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs index 7f60bfc..13fd3cc 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs @@ -157,7 +157,7 @@ } else { - //return true; + return true; object? obj = null; for (int i = 0; i < 5; i++) { @@ -605,39 +605,42 @@ { OperateResult operateResult = plc.WriteCustomer(address, value); stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, JsonConvert.SerializeObject(value))); + #region if (operateResult.IsSuccess) { - object? obj = null; - for (int i = 0; i < 5; i++) - { - T readValue = ReadCustomer<T>(address); - stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue))); - obj = readValue; - PropertyInfo[] propertyInfos = typeof(T).GetProperties(); - for (int j = 0; j < propertyInfos.Length; j++) - { - object? writeValueItem = propertyInfos[j].GetValue(value); - object? readValueItem = propertyInfos[j].GetValue(readValue); - if (writeValueItem.Equals(readValueItem)) - { - stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue))); - } - else - { - break; - } - if (j == propertyInfos.Length - 1) - return true; - } - plc.WriteCustomer(address, value); - } - stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj))); - throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed); + //object? obj = null; + //for (int i = 0; i < 5; i++) + //{ + // T readValue = ReadCustomer<T>(address); + // stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue))); + // obj = readValue; + // PropertyInfo[] propertyInfos = typeof(T).GetProperties(); + // for (int j = 0; j < propertyInfos.Length; j++) + // { + // object? writeValueItem = propertyInfos[j].GetValue(value); + // object? readValueItem = propertyInfos[j].GetValue(readValue); + // if (writeValueItem.Equals(readValueItem)) + // { + // stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue))); + // } + // else + // { + // break; + // } + // if (j == propertyInfos.Length - 1) + // return true; + // } + // plc.WriteCustomer(address, value); + //} + //stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj))); + //throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed); + return true; } else { throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteFailedException, typeof(T).Name, address, JsonConvert.SerializeObject(value), operateResult.Message), CommunicationErrorType.WriteFailed); } + #endregion } catch (Exception ex) { -- Gitblit v1.9.3