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/Default/Siemens_HslCommunicationService.cs |   52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 48 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>

--
Gitblit v1.9.3