From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
SimpleUtil/DIOController/ModBusTcpController.cs | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/SimpleUtil/DIOController/ModBusTcpController.cs b/SimpleUtil/DIOController/ModBusTcpController.cs
new file mode 100644
index 0000000..fda4b29
--- /dev/null
+++ b/SimpleUtil/DIOController/ModBusTcpController.cs
@@ -0,0 +1,79 @@
+锘縰sing HslCommunication.ModBus;
+
+namespace DIOController
+{
+ public class ModBusTcpController : IDIOController
+ {
+ public string Ip { get; set; }
+ public int Port { get; set; }
+
+ private ModbusTcpNet client;
+
+ public bool Start(out string errMsg)
+ {
+ errMsg = string.Empty;
+ client = new ModbusTcpNet(Ip, Port);
+ var res = client.ConnectServer();
+ errMsg = res.Message;
+ return res.IsSuccess;
+ }
+
+ public bool ReadDIBool(string address, out bool res, out string msg)
+ {
+ var result = client?.ReadBool($"x=2;{address}");
+ msg = result?.Message;
+ res = result?.Content == true;
+ return result?.IsSuccess == true;
+ }
+
+ public bool ReadDIBool(string address, int length, out bool[] res, out string msg)
+ {
+ var result = client?.ReadBool($"x=2;{address}", (ushort)length);
+ msg = result?.Message;
+ res = result?.Content;
+ return result?.IsSuccess == true;
+ }
+
+ public bool ReadDOBool(string address, out bool res, out string msg)
+ {
+ var result = client?.ReadBool(address);
+ msg = result?.Message;
+ res = result?.Content == true;
+ return result?.IsSuccess == true;
+ }
+
+ public bool ReadDOBool(string address, int length, out bool[] res, out string msg)
+ {
+ var result = client?.ReadBool(address, (ushort)length);
+ msg = result?.Message;
+ res = result?.Content;
+ return result?.IsSuccess == true;
+ }
+
+ public bool WriteBool(string address, bool value, out string msg)
+ {
+ msg = string.Empty;
+ var res = client?.Write(address, value);
+ msg = res.Message;
+ return res?.IsSuccess == true;
+ }
+
+ public bool WriteBool(string address, bool[] values, out string msg)
+ {
+ msg = string.Empty;
+ var res = client?.Write(address, values);
+ msg = res.Message;
+ return res?.IsSuccess == true;
+ }
+
+ public bool Close()
+ {
+ return client?.ConnectClose()?.IsSuccess == true;
+
+ }
+ public void Dispose()
+ {
+ client?.Dispose();
+ }
+ }
+}
--
Gitblit v1.9.1