diff --git a/SCADA/Example/BatchCoreTest.exe b/SCADA/Example/BatchCoreTest.exe index 9541609..5db20b6 100644 Binary files a/SCADA/Example/BatchCoreTest.exe and b/SCADA/Example/BatchCoreTest.exe differ diff --git a/SCADA/Example/ClientDriver.dll b/SCADA/Example/ClientDriver.dll index f6b4367..7c19f2f 100644 Binary files a/SCADA/Example/ClientDriver.dll and b/SCADA/Example/ClientDriver.dll differ diff --git a/SCADA/Example/DataService.dll b/SCADA/Example/DataService.dll index a7ecac4..ee2dbac 100644 Binary files a/SCADA/Example/DataService.dll and b/SCADA/Example/DataService.dll differ diff --git a/SCADA/Program/.vs/DataExchange/v15/.suo b/SCADA/Program/.vs/DataExchange/v15/.suo index a1476ec..24b83e9 100644 Binary files a/SCADA/Program/.vs/DataExchange/v15/.suo and b/SCADA/Program/.vs/DataExchange/v15/.suo differ diff --git a/SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide b/SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide index 311a1dd..6c06d68 100644 Binary files a/SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide and b/SCADA/Program/.vs/DataExchange/v15/Server/sqlite3/storage.ide differ diff --git a/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide b/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide index 9a9a7a2..51b8c5a 100644 Binary files a/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide and b/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide differ diff --git a/SCADA/Program/DataService/PLCGroup.cs b/SCADA/Program/DataService/PLCGroup.cs index f063910..6d3c26a 100644 --- a/SCADA/Program/DataService/PLCGroup.cs +++ b/SCADA/Program/DataService/PLCGroup.cs @@ -983,7 +983,7 @@ namespace DataService { for (int i = 0; i < addr.DataSize / 2; i++) { - prcv[iShort1] = IPAddress.HostToNetworkOrder(prcv[iShort1]); + prcv[iShort1 + i] = IPAddress.HostToNetworkOrder(prcv[iShort1 + i]); } } if (addr.DataSize <= 2) diff --git a/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs b/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs index 74b85fa..86f807e 100644 --- a/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs +++ b/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs @@ -478,7 +478,7 @@ namespace ModbusDriver CreateReadHeader(address.Area, address.Start, size, func); lock (_async) { - byte[] frameBytes = new byte[size * 2 + 3];//size * 2 + + byte[] frameBytes = new byte[size * 2 + 5];//size * 2 + byte[] data = new byte[size * 2]; _serialPort.Write(header, 0, header.Length); int numBytesRead = 0; @@ -486,12 +486,15 @@ namespace ModbusDriver numBytesRead += _serialPort.Read(frameBytes, numBytesRead, 2 - numBytesRead); if (frameBytes[1] == address.DBNumber) { - numBytesRead = 0; - while (numBytesRead != frameBytes.Length) + while (numBytesRead < frameBytes.Length) numBytesRead += _serialPort.Read(frameBytes, numBytesRead, frameBytes.Length - numBytesRead); - Array.Copy(frameBytes, 1, data, 0, data.Length); - Thread.Sleep(20); - return data; + if (Utility.CheckSumCRC(frameBytes)) + { + Array.Copy(frameBytes, 3, data, 0, data.Length); + Thread.Sleep(20); + return data; + } + else Thread.Sleep(10); } else { diff --git a/SCADA/dll/DataService.dll b/SCADA/dll/DataService.dll index 2f85d69..c78f7d8 100644 Binary files a/SCADA/dll/DataService.dll and b/SCADA/dll/DataService.dll differ diff --git a/SCADA/dll/ModbusDriver.dll b/SCADA/dll/ModbusDriver.dll index 86ef899..f0882e6 100644 Binary files a/SCADA/dll/ModbusDriver.dll and b/SCADA/dll/ModbusDriver.dll differ diff --git a/SCADA/dll/OPCDriver.dll b/SCADA/dll/OPCDriver.dll index 1b9223e..ea38597 100644 Binary files a/SCADA/dll/OPCDriver.dll and b/SCADA/dll/OPCDriver.dll differ diff --git a/SCADA/dll/SiemensPLCDriver.dll b/SCADA/dll/SiemensPLCDriver.dll index 72d1532..53aaab1 100644 Binary files a/SCADA/dll/SiemensPLCDriver.dll and b/SCADA/dll/SiemensPLCDriver.dll differ