From 46f7bf1ee45c97b688a370bbe45d149efb403cc1 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期二, 07 五月 2024 17:26:18 +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..23f524d 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","")?.Replace("?", "")?.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