From 2df84cdc7faf29cc8a2512b627a36a3881276b9f Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 26 十月 2023 16:29:15 +0800
Subject: [PATCH] plc4x读写加入长度

---
 service/plc.go |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/service/plc.go b/service/plc.go
index 1d9d5e9..01b95a5 100644
--- a/service/plc.go
+++ b/service/plc.go
@@ -97,13 +97,15 @@
 			if len(value) == 2 {
 				val = binary.BigEndian.Uint16(value)
 			} else if len(value) == 4 {
-				val = binary.BigEndian.Uint32(value)
+				low16Val := uint32(binary.BigEndian.Uint16(value[:2]))
+				high16 := uint32(binary.BigEndian.Uint16(value[2:])) << 16
+				val = low16Val + high16
 			} else {
 				logx.Errorf("plc read get an unknown int value: %v, address:%v", value, address)
 				return nil, errors.New(fmt.Sprintf("unknown int value锛�%v", value))
 			}
 		}
-		logx.Infof("plc read ok, address: %v, result: %v", address, val)
+		logx.Infof("plc read ok, address: %v, result: %v, dataLength: %v, valueLength: %v", address, val, dataLength, len(value))
 		return val, nil
 	} else if plcConfig.Method == constvar.PlcMethodSerial {
 		ipAddr = conf.Conf.Services.Serial

--
Gitblit v1.8.0