From 564d74cd76a7c504696c47d10209970c31dc8ffa Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 24 Jul 2018 11:25:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3UInt32=E5=92=8Cstring?= =?UTF-8?q?=E5=86=99=E5=85=A5=E6=97=B6=E7=9A=84=E5=AD=97=E8=8A=82=E5=BA=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SCADA/Program/ModbusDriver/ModbusTCPDriver.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/SCADA/Program/ModbusDriver/ModbusTCPDriver.cs b/SCADA/Program/ModbusDriver/ModbusTCPDriver.cs index 0829f80..04d680f 100644 --- a/SCADA/Program/ModbusDriver/ModbusTCPDriver.cs +++ b/SCADA/Program/ModbusDriver/ModbusTCPDriver.cs @@ -510,7 +510,15 @@ namespace ModbusDriver public int WriteUInt32(DeviceAddress address, uint value) { if (address.DBNumber != 3) return -1; - var data = WriteMultipleRegister(address.Area, address.Start, BitConverter.GetBytes((uint)IPAddress.HostToNetworkOrder((int)value))); + byte[] b = BitConverter.GetBytes((int)value); + for (int j = 0; j < b.Length / 2; j++) + { + byte a = b[j * 2]; + b[j * 2] = b[j * 2 + 1]; + b[j * 2 + 1] = a; + } + //b = BitConverter.GetBytes((uint) IPAddress.HostToNetworkOrder((int) value)); + var data = WriteMultipleRegister(address.Area, address.Start, b); return data == null ? -1 : 0; } @@ -531,7 +539,14 @@ namespace ModbusDriver public int WriteString(DeviceAddress address, string str) { if (address.DBNumber != 3) return -1; - var data = WriteMultipleRegister(address.Area, address.Start, Encoding.ASCII.GetBytes(str)); + byte[] b = Encoding.ASCII.GetBytes(str); + for (int j = 0; j < b.Length / 2; j++) + { + byte a = b[j * 2]; + b[j * 2] = b[j * 2 + 1]; + b[j * 2 + 1] = a; + } + var data = WriteMultipleRegister(address.Area, address.Start, b); return data == null ? -1 : 0; }