From fe2aa4880d5c9fd88088ad0ed81ebaca05629f5f Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 17:59:45 +0800
Subject: [PATCH] feat: 集成CAN驱动/模拟器 + 仪器仪表注册/硬件调试模块
---
S7Driver/PLCS7Driver.cs | 166 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 128 insertions(+), 38 deletions(-)
diff --git a/S7Driver/PLCS7Driver.cs b/S7Driver/PLCS7Driver.cs
index 6b666e3..aa3d531 100644
--- a/S7Driver/PLCS7Driver.cs
+++ b/S7Driver/PLCS7Driver.cs
@@ -61,60 +61,150 @@
client?.Dispose();
}
- public bool Simens_S7_ReadBool(int DB, int StartAdd, int Pos)
+ public bool Simens_S7_ReadBool(int DB, int StartAdd, int Pos, out bool value, out string msg)
{
- var or = client.ReadBool($"DB{DB}.DBX{StartAdd}.{Pos}");
- return or.Content;
+ value = false;
+ msg = null;
+ try
+ {
+ var or = client.ReadBool($"DB{DB}.DBX{StartAdd}.{Pos}");
+ if (!or.IsSuccess)
+ {
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
+ }
+ value = or.Content;
+ return true;
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ return false;
+ }
}
- public void Simens_S7_WriteBool(int DB, int StartAdd, int Pos, bool Val)
+ public bool Simens_S7_WriteBool(int DB, int StartAdd, int Pos, bool Val, out string msg)
{
- var or = client.Write($"DB{DB}.DBX{StartAdd}.{Pos}", Val);
- return;
+ msg = null;
+ try
+ {
+ var or = client.Write($"DB{DB}.DBX{StartAdd}.{Pos}", Val);
+ if (!or.IsSuccess)
+ {
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
+ }
+ return true;
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ return false;
+ }
}
- public int Simens_S7_ReadInt(int DB, int StartAdd, int Length)
- {
- var or = client.ReadInt16($"DB{DB}.DBW{StartAdd}");
- return or.Content;
- }
-
- public void Simens_S7_WriteInt(int DB, int StartAdd, short Val)
- {
- client.Write($"DB{DB}.DBW{StartAdd}", Val);
- }
-
- public float Simens_S7_ReadReal(int DB, int StartAdd, int Length)
- {
- var or = client.ReadFloat($"DB{DB}.DBW{StartAdd}");
- return or.Content;
- }
-
- public void Simens_S7_WriteReal(int DB, int StartAdd, float Val)
- {
- client.Write($"DB{DB}.DBW{StartAdd}", Val);
- }
-
- public bool ReadShort(string address, out short value, out string errMsg)
+ public bool Simens_S7_ReadInt(int DB, int StartAdd, out int value, out string msg)
{
value = 0;
- errMsg = null;
+ msg = null;
+ try
+ {
+ var or = client.ReadInt16($"DB{DB}.DBW{StartAdd}");
+ if (!or.IsSuccess)
+ {
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
+ }
+ value = or.Content;
+ return true;
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ return false;
+ }
+ }
+
+ public bool Simens_S7_WriteInt(int DB, int StartAdd, short Val, out string msg)
+ {
+ msg = null;
+ try
+ {
+ var or = client.Write($"DB{DB}.DBW{StartAdd}", Val);
+ if (!or.IsSuccess)
+ {
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
+ }
+ return true;
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ return false;
+ }
+ }
+
+ public bool Simens_S7_ReadReal(int DB, int StartAdd, out float value, out string msg)
+ {
+ value = 0;
+ msg = null;
+ try
+ {
+ var or = client.ReadFloat($"DB{DB}.DBW{StartAdd}");
+ if (!or.IsSuccess)
+ {
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
+ }
+ value = or.Content;
+ return true;
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ return false;
+ }
+ }
+
+ public bool Simens_S7_WriteReal(int DB, int StartAdd, float Val, out string msg)
+ {
+ msg = null;
+ try
+ {
+ var or = client.Write($"DB{DB}.DBW{StartAdd}", Val);
+ if (!or.IsSuccess)
+ {
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
+ }
+ return true;
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ return false;
+ }
+ }
+
+ public bool ReadShort(string address, out short value, out string msg)
+ {
+ value = 0;
+ msg = null;
try
{
var or = client.ReadInt16(address);
- if (or.IsSuccess)
+ if (!or.IsSuccess)
{
- value = or.Content;
+ msg = $"{or.ErrorCode} {or.Message}";
+ return false;
}
- else
- {
- errMsg = or.Message;
- }
- return or.IsSuccess;
+ value = or.Content;
+ return true;
}
catch (Exception e)
{
- errMsg = e.Message;
+ msg = e.Message;
return false;
}
}
--
Gitblit v1.9.1