From ba449717184ae09590aaead8a7240103b26cec5e Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 23 7月 2025 10:18:59 +0800
Subject: [PATCH] 写入(需要验证是否真正写入了)
---
SDA/iWareSda/PLCService/PLCService.cs | 16 ++++++++
SDA/iWareSda/PLCService/Default/Siemens_HslCommunicationService.cs | 52 ++++++++++++++++++++++++--
2 files changed, 64 insertions(+), 4 deletions(-)
diff --git a/SDA/iWareSda/PLCService/Default/Siemens_HslCommunicationService.cs b/SDA/iWareSda/PLCService/Default/Siemens_HslCommunicationService.cs
index 9b51075..8884027 100644
--- a/SDA/iWareSda/PLCService/Default/Siemens_HslCommunicationService.cs
+++ b/SDA/iWareSda/PLCService/Default/Siemens_HslCommunicationService.cs
@@ -142,16 +142,60 @@
return fre;
}
+ //public override MessageModel WriteValuePoint(string fullAddress, object value, object proObj)
+ //{
+ // if (string.IsNullOrEmpty(fullAddress))
+ // {
+ // return new MessageModel() { result = false, resMsg = "鍦板潃涓虹┖" };
+ // }
+ // var arr = fullAddress.Split(WareSdaStruct.PLCDBADDRESS_SEPARATE);
+ // string dbNumber = arr[0];
+ // string offset = arr[1];
+ // return WriteValuePoint(dbNumber, offset, value, proObj);
+ //}
+
+ /// <summary>
+ /// 鍐欏叆鏂规硶(闇�瑕侀獙璇佹槸鍚︾湡姝e啓鍏ヤ簡) 銆怑ditby shaocx,2025-07-16銆�
+ /// </summary>
+ /// <param name="fullAddress"></param>
+ /// <param name="value"></param>
+ /// <param name="proObj"></param>
+ /// <returns></returns>
public override MessageModel WriteValuePoint(string fullAddress, object value, object proObj)
{
- if (string.IsNullOrEmpty(fullAddress))
+ return WriteValuePointForReValidateWriteSucess(fullAddress, value, proObj);
+ }
+ /// <summary>
+ /// 鍐欏叆(闇�瑕侀獙璇佹槸鍚︾湡姝e啓鍏ヤ簡)
+ /// </summary>
+ /// <param name="fullAddress"></param>
+ /// <param name="value"></param>
+ /// <param name="proObj"></param>
+ /// <returns></returns>
+ public override MessageModel WriteValuePointForReValidateWriteSucess(string fullAddress, object value, object proObj)
+ {
+ if (string.IsNullOrEmpty(fullAddress)) return new MessageModel()
{
- return new MessageModel() { result = false, resMsg = "鍦板潃涓虹┖" };
- }
+ result = false,
+ resMsg = "鍦板潃鏄┖鐨�"
+ };
var arr = fullAddress.Split(WareSdaStruct.PLCDBADDRESS_SEPARATE);
string dbNumber = arr[0];
string offset = arr[1];
- return WriteValuePoint(dbNumber, offset, value, proObj);
+ var ret = WriteValuePoint(dbNumber, offset, value, proObj);
+ if (ret.result == false) return ret;
+
+ //闇�瑕侀噸鏂拌鍙栦笅
+ var readRet = ReadValuePoint(dbNumber, offset, proObj.GetType());
+ if (readRet?.ToString() != value?.ToString())
+ {
+ return new MessageModel()
+ {
+ result = false,
+ resMsg = $"鍐欏叆鐨勫�納value}璺熻鍙栫殑鍊納readRet}涓嶇,dbNumber:{dbNumber},offset:{offset}"
+ };
+ }
+ return ret;
}
/// <summary>
diff --git a/SDA/iWareSda/PLCService/PLCService.cs b/SDA/iWareSda/PLCService/PLCService.cs
index 22083fd..b0fc8d9 100644
--- a/SDA/iWareSda/PLCService/PLCService.cs
+++ b/SDA/iWareSda/PLCService/PLCService.cs
@@ -67,6 +67,22 @@
}
/// <summary>
+ /// 鍐欏叆(闇�瑕侀獙璇佹槸鍚︾湡姝e啓鍏ヤ簡)
+ /// </summary>
+ /// <param name="fullAddress">鍦板潃</param>
+ /// <param name="value">鍊�</param>
+ /// <param name="proObj">灞炴�у璞�</param>
+ /// <returns></returns>
+ public virtual MessageModel WriteValuePointForReValidateWriteSucess(string fullAddress, object value, Object proObj)
+ {
+ return new MessageModel()
+ {
+ result = false,
+ resMsg = "娌$湡姝h皟鐢ㄦ柟娉�"
+ };
+ }
+
+ /// <summary>
/// 璇诲彇
/// </summary>
/// <param name="dbNumber">DB鍧楀悕</param>
--
Gitblit v1.9.3