From 73a926018601d9a5a5a3d3f4c051537f45a8eff4 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 14 三月 2024 09:33:38 +0800
Subject: [PATCH] 优化代码逻辑
---
代码管理/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs"
index 9fa4c15..a90e9ab 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs"
@@ -14,9 +14,12 @@
private readonly object _lockWrite = new object();
public SiemensS7Net siemensPLCClient { get; set; }
- public SiemensPLCClient()
+ public SiemensPLCClient(string model)
{
- siemensPLCClient = new SiemensS7Net(SiemensPLCS.S1200);
+ if (model == "S300")
+ siemensPLCClient = new SiemensS7Net(SiemensPLCS.S300);
+ else
+ siemensPLCClient = new SiemensS7Net(SiemensPLCS.S1500);
base.siemensPLCClient = this.siemensPLCClient;
}
@@ -145,9 +148,10 @@
/// </summary>
/// <param name="orderName">IO鐐瑰悕绉�</param>
/// <returns></returns>
- public override DataType ReadByOrder<DataType>(string orderName)
+ public override DataType ReadByOrder<DataType>(string orderName, string Method = null)
{
var item = itemGroups.Where(t => t.name.Equals(orderName)).FirstOrDefault();
+ if (Method != null) { item = itemGroups.Where(t => t.name.Equals(orderName) && t.Methods.Equals(Method)).FirstOrDefault(); }
if (item == null)
{
throw new Exception($"PLC{PLCName},鏈畾涔夋寚浠orderName}");
@@ -188,7 +192,7 @@
else if (typeof(DataType) == typeof(string))//瀛楃涓�
{
var str = GetContent(siemensPLCClient.ReadString(item.dbAddress, (ushort)item.dataLen), item).ToString();
- str = str.Replace("\0", "");
+ str = str.Replace("\0", "")?.Replace("\\", "")?.Replace("\u0014", "")?.Replace("?\u0006", "")?.Replace("\n","")?.Trim();
return (DataType)(str as object);
}
else
@@ -264,11 +268,12 @@
/// </summary>
/// <param name="orderName"></param>
/// <exception cref="Exception"></exception>
- public override bool WriteByOrder(string orderName, object value)
+ public override bool WriteByOrder(string orderName, object value, string Method = null)
{
lock (_lockWrite)
{
var item = itemGroups.Where(t => t.name.Equals(orderName)).FirstOrDefault();
+ if (Method != null) { item = itemGroups.Where(t => t.name.Equals(orderName) && t.Methods.Equals(Method)).FirstOrDefault(); }
if (item == null)
{
throw new Exception($"PLC{PLCName},鏈畾涔夋寚浠orderName}");
--
Gitblit v1.9.3