From 67471c2c960644e9ddb79033f6c2ec0a95f38fea Mon Sep 17 00:00:00 2001 From: zcn1123 <2363211205@qq.com> Date: Mon, 14 Sep 2020 21:03:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9TCP=E6=B8=85=E7=90=86?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E5=8C=BA=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modbus_RTU_Salve/RTU_Salve.cpp | 2 +- .../Modbus_RTU_Salve/RTU_Salve.h | 2 +- .../Modbus_TCP/Modbus_TCP_log.txt | 160 ++++++++++++++++++ .../Modbus_TCP/TCP_client.cpp | 33 +++- Modbus_communication/Modbus_TCP/common.cpp | 8 +- 5 files changed, 192 insertions(+), 13 deletions(-) diff --git a/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.cpp b/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.cpp index 007c9ba..326fa7e 100644 --- a/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.cpp +++ b/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.cpp @@ -383,7 +383,7 @@ int Modbus_RTU_Salve(void) while (true) { PurgeComm(Handle_Com, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);//清除缓存 - BOOL Read_flage = ReadFile(Handle_Com, Requst_Message, 256, &Read_len, NULL); //阻塞等待接收请求报文 + BOOL Read_flage = ReadFile(Handle_Com, Requst_Message, 300, &Read_len, NULL); //阻塞等待接收请求报文 if (Read_flage && (Read_len > 0)) { if (Create_Response_Message(Requst_Message, Response_Message, Read_len)) diff --git a/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.h b/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.h index dc08f61..e1007fe 100644 --- a/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.h +++ b/Modbus_communication/Modbus_RTU_Salve/RTU_Salve.h @@ -4,7 +4,7 @@ #include "common.h" #define Device_ID 0x09 #define MAX_Address 9999 -#define MAX_NUMBER 256 +#define MAX_NUMBER 300 int Modbus_RTU_Salve(void); bool Create_Response_Message(UINT8 *Requst_Message, UINT8 *Response_Message, DWORD Read_len); diff --git a/Modbus_communication/Modbus_TCP/Modbus_TCP_log.txt b/Modbus_communication/Modbus_TCP/Modbus_TCP_log.txt index fe2beb0..377ea9b 100644 --- a/Modbus_communication/Modbus_TCP/Modbus_TCP_log.txt +++ b/Modbus_communication/Modbus_TCP/Modbus_TCP_log.txt @@ -249,3 +249,163 @@ 2020-9-12 19:40:22 Recv:00 02 00 00 00 04 01 81 02 11 2020-9-12 19:43:41 Send:00 00 00 00 00 06 01 01 00 00 00 01 2020-9-12 19:43:56 Recv:00 00 00 00 00 04 01 81 02 11 +2020-9-14 12:39:35 Send:00 00 00 00 00 06 01 01 00 00 00 00 +2020-9-14 12:40:39 Recv:00 00 00 00 00 03 01 81 03 +2020-9-14 12:41:9 Send:00 01 00 00 00 06 01 01 00 00 00 00 +2020-9-14 12:41:31 Recv:00 00 00 00 00 03 01 01 00 +2020-9-14 12:41:41 Send:00 02 00 00 00 06 01 01 00 00 00 00 +2020-9-14 12:41:52 Recv:00 02 00 00 00 03 01 01 00 +2020-9-14 12:45:51 Send:00 00 00 00 00 06 01 01 00 00 00 01 +2020-9-14 12:46:47 Recv:00 00 00 00 00 04 01 01 01 00 +2020-9-14 12:47:11 Send:00 01 00 00 00 06 01 01 00 00 00 01 +2020-9-14 12:47:16 Recv:00 02 00 00 00 03 01 01 01 +2020-9-14 12:48:42 Send:00 02 00 00 00 06 01 01 00 00 00 01 +2020-9-14 12:49:1 Recv:00 02 00 00 00 01 01 +2020-9-14 13:26:14 Send:00 03 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:32:31 Send:00 04 00 00 00 06 01 01 00 00 07 D0 +2020-9-14 13:35:41 Recv:00 04 00 00 00 FD 01 01 FA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF +2020-9-14 13:37:59 Send:00 05 00 00 00 06 01 01 00 00 00 0B +2020-9-14 13:38:8 Send:00 06 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:39:20 Recv:00 06 00 00 00 03 01 81 01 +2020-9-14 13:40:44 Send:00 07 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:40:50 Recv:00 07 00 00 00 03 01 81 02 +2020-9-14 13:41:25 Send:00 08 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:41:32 Recv:00 08 00 00 00 03 01 81 03 +2020-9-14 13:41:48 Send:00 09 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:42:4 Recv:00 09 00 00 00 03 01 81 04 +2020-9-14 13:42:20 Send:00 0A 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:42:33 Recv:00 0A 00 00 00 03 01 81 05 +2020-9-14 13:48:26 Send:00 0B 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:49:41 Recv:00 0C 00 00 00 04 01 01 01 00 +2020-9-14 13:49:58 Send:00 0C 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:50:19 Recv:00 0C 01 00 00 04 01 01 01 00 +2020-9-14 13:51:55 Send:00 0D 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:52:21 Recv:00 0D 00 00 01 04 01 01 01 00 +2020-9-14 13:52:50 Send:00 0E 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:53:13 Recv:00 0E 00 00 00 04 02 01 01 00 +2020-9-14 13:56:48 Send:00 0F 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:57:13 Send:00 10 00 00 00 06 01 01 00 00 00 0A +2020-9-14 13:58:4 Recv:00 10 00 00 00 02 01 01 02 00 00 +2020-9-14 13:58:35 Send:00 11 00 00 00 06 01 01 00 00 00 01 +2020-9-14 13:58:45 Send:00 12 00 00 00 06 01 01 00 00 00 0A +2020-9-14 13:59:8 Recv:00 12 00 00 00 05 01 01 01 00 00 +2020-9-14 14:0:10 Send:00 13 00 00 00 06 01 01 00 00 00 0A +2020-9-14 14:0:31 Recv:00 13 00 00 00 04 01 01 01 00 +2020-9-14 14:0:58 Send:00 14 00 00 00 06 01 01 00 00 00 01 +2020-9-14 14:1:21 Recv:00 13 00 00 00 02 01 01 +2020-9-14 14:1:35 Send:00 15 00 00 00 06 01 01 00 00 00 01 +2020-9-14 14:1:46 Recv:00 15 00 00 00 02 01 01 +2020-9-14 14:3:13 Send:00 16 00 00 00 06 01 01 00 00 00 01 +2020-9-14 14:3:36 Recv:00 16 00 00 00 03 01 83 01 +2020-9-14 14:6:49 Send:00 17 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:7:22 Recv:00 17 00 00 00 05 01 03 02 11 11 +2020-9-14 14:7:57 Send:00 18 00 00 00 06 01 03 00 00 00 7D +2020-9-14 14:8:51 Recv:00 18 00 00 00 FD 01 03 FA 00 FF 00 FF 00 FF 00 00 00 FF 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2020-9-14 14:12:57 Send:00 19 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:13:23 Recv:00 19 00 00 00 03 01 83 01 +2020-9-14 14:14:8 Send:00 1A 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:14:13 Recv:00 20 00 00 00 03 01 83 02 +2020-9-14 14:14:26 Send:00 1B 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:14:36 Recv:00 1B 00 00 00 03 01 83 02 +2020-9-14 14:14:56 Send:00 1C 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:15:7 Recv:00 1C 00 00 00 03 01 83 03 +2020-9-14 14:15:32 Send:00 1D 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:15:44 Recv:00 1D 00 00 00 03 01 83 04 +2020-9-14 14:18:28 Send:00 1E 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:18:41 Recv:00 1E 00 00 00 03 01 8F 04 +2020-9-14 14:19:34 Send:00 1F 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:20:1 Recv:00 1C 00 00 00 03 01 02 00 00 +2020-9-14 14:20:12 Send:00 20 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:20:40 Recv:00 1C 00 00 00 05 01 03 02 00 00 +2020-9-14 14:21:6 Send:00 21 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:21:28 Recv:00 21 00 20 00 05 01 03 02 00 00 +2020-9-14 14:21:56 Send:00 22 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:22:12 Recv:00 22 00 00 10 05 01 03 02 00 00 +2020-9-14 14:25:56 Send:00 23 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:26:15 Recv:00 23 00 00 00 05 02 03 02 00 00 +2020-9-14 14:26:35 Send:00 24 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:26:58 Recv:00 24 00 00 00 02 01 03 02 00 00 +2020-9-14 14:28:18 Send:00 25 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:28:26 Send:00 26 00 00 00 06 01 03 00 00 00 02 +2020-9-14 14:28:50 Recv:00 26 00 00 00 07 01 03 03 00 00 00 00 +2020-9-14 14:29:17 Send:00 27 00 00 00 06 01 03 00 00 00 02 +2020-9-14 14:29:53 Recv:00 27 00 00 00 09 01 03 06 00 00 00 00 00 00 +2020-9-14 14:30:21 Send:00 28 00 00 00 06 01 03 00 00 00 01 +2020-9-14 14:30:54 Recv:00 28 00 00 00 02 01 03 +2020-9-14 14:34:36 Send:00 29 00 00 00 08 01 0F 00 00 00 01 01 01 +2020-9-14 14:35:14 Recv:00 29 00 00 00 06 01 0F 00 00 00 01 +2020-9-14 14:36:32 Send:00 2A 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2020-9-14 14:37:13 Recv:00 2A 00 00 00 FD 01 0F 00 00 07 B0 +2020-9-14 14:43:19 Send:00 2B 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2020-9-14 14:43:56 Recv:00 2B 00 00 00 FD 01 0F 00 00 07 B0 +2020-9-14 14:45:18 Send:00 2C 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2020-9-14 14:45:29 Recv:00 2B 00 00 00 06 01 0F 00 00 07 B0 +2020-9-14 14:45:44 Send:00 2D 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2020-9-14 14:45:53 Recv:00 2D 00 00 00 06 01 0F 00 00 07 B0 +2020-9-14 14:47:32 Send:00 2E 00 00 00 08 01 0F 00 00 00 01 01 01 +2020-9-14 14:50:1 Recv:00 2E 00 00 00 03 01 8F 01 +2020-9-14 14:50:27 Send:00 2F 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:50:52 Recv:00 2F 00 00 00 03 01 8F 02 +2020-9-14 14:51:17 Send:00 30 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:51:31 Recv:00 30 00 00 00 03 01 8F 03 +2020-9-14 14:51:56 Send:00 31 00 00 00 08 01 0F 00 00 00 01 01 01 +2020-9-14 14:52:5 Recv:00 31 00 00 00 03 01 8F 04 +2020-9-14 14:53:13 Send:00 32 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:53:29 Recv:00 32 00 00 00 03 01 90 04 +2020-9-14 14:54:59 Send:00 33 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:55:35 Recv:00 00 00 00 00 06 01 0F 00 00 00 01 +2020-9-14 14:56:2 Send:00 34 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:56:38 Recv:00 34 0F 00 00 06 01 0F 00 00 00 01 +2020-9-14 14:57:14 Send:00 35 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:57:36 Recv:00 35 00 00 F0 06 01 0F 00 00 00 01 +2020-9-14 14:58:29 Send:00 36 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:58:54 Recv:00 36 00 00 00 06 02 0F 00 00 00 01 +2020-9-14 14:59:19 Send:00 37 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 14:59:35 Send:00 38 00 00 00 09 01 0F 00 00 00 0A 02 01 01 +2020-9-14 14:59:59 Recv:00 38 00 00 00 05 01 0F 00 00 00 0A +2020-9-14 15:1:22 Send:00 39 00 00 00 08 01 0F 00 00 00 01 01 01 +2020-9-14 15:1:46 Recv:00 39 00 00 00 04 01 0F 00 01 +2020-9-14 15:2:15 Send:00 3A 00 00 00 08 01 0F 00 00 00 01 01 00 +2020-9-14 15:2:56 Recv:00 3A 00 00 00 02 01 0F +2020-9-14 15:6:31 Send:00 3B 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:6:48 Recv:00 3B 00 00 00 07 01 10 00 00 00 01 +2020-9-14 15:7:3 Send:00 3C 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:7:17 Recv:00 3C 00 00 00 06 01 10 00 00 00 01 +2020-9-14 15:7:49 Send:00 3D 00 00 00 FD 01 10 00 00 00 7B F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +2020-9-14 15:8:14 Recv:00 3D 00 00 00 06 01 10 00 00 00 7B +2020-9-14 15:8:45 Send:00 3E 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:10:45 Recv:00 3E 00 00 00 04 01 80 01 +2020-9-14 15:11:2 Send:00 3F 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:11:13 Recv:00 3F 00 00 00 03 01 80 02 +2020-9-14 15:11:31 Send:00 40 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:11:43 Recv:00 40 00 00 00 03 01 90 03 +2020-9-14 15:11:51 Send:00 41 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:12:2 Recv:00 41 00 00 00 03 01 90 04 +2020-9-14 15:13:47 Send:00 42 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:14:2 Recv:00 42 00 00 00 03 01 81 04 +2020-9-14 15:15:20 Send:00 43 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:15:53 Recv:00 42 00 00 00 06 01 10 00 00 00 01 +2020-9-14 15:16:14 Send:00 44 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:16:34 Recv:00 44 55 00 00 06 01 10 00 00 00 01 +2020-9-14 15:18:51 Send:00 45 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:19:11 Recv:00 45 00 00 50 06 01 10 00 00 00 01 +2020-9-14 15:19:31 Send:00 46 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:19:51 Recv:00 46 00 00 00 06 02 10 00 00 00 01 +2020-9-14 15:20:26 Send:00 47 00 00 00 09 01 10 00 00 00 01 02 00 00 +2020-9-14 15:20:40 Send:00 48 00 00 00 0B 01 10 00 00 00 02 04 00 00 00 05 +2020-9-14 15:21:5 Recv:00 48 00 00 00 0B 01 10 00 00 00 02 +2020-9-14 15:21:39 Send:00 49 00 00 00 0B 01 10 00 00 00 02 04 00 00 00 00 +2020-9-14 15:22:6 Recv:00 49 00 00 00 05 01 10 00 00 00 +2020-9-14 15:22:28 Send:00 4A 00 00 00 09 01 10 00 00 00 01 02 00 55 +2020-9-14 15:23:3 Recv:00 4A 00 00 00 01 01 +2020-9-14 15:56:23 Send:00 4B 00 00 00 06 01 01 00 01 00 01 +2020-9-14 20:51:26 Send:00 00 00 00 00 06 01 01 00 00 00 01 +2020-9-14 20:51:26 Recv:00 4A 00 00 00 01 01 00 4A 00 00 00 01 01 +2020-9-14 20:58:36 Send:00 00 00 00 00 06 01 01 00 00 00 01 +2020-9-14 20:58:41 Recv:00 4A 00 00 00 01 01 +2020-9-14 20:58:58 Send:00 01 00 00 00 06 01 01 00 00 00 01 +2020-9-14 20:59:7 Recv:11 +2020-9-14 20:59:17 Send:00 02 00 00 00 06 01 01 00 00 00 01 +2020-9-14 20:59:53 Send:00 03 00 00 00 06 01 01 00 00 00 01 +2020-9-14 21:1:44 Send:00 00 00 00 00 06 01 01 00 00 00 01 +2020-9-14 21:1:49 Recv:01 11 11 01 01 11 01 01 01 01 diff --git a/Modbus_communication/Modbus_TCP/TCP_client.cpp b/Modbus_communication/Modbus_TCP/TCP_client.cpp index 5343037..7a49c0c 100644 --- a/Modbus_communication/Modbus_TCP/TCP_client.cpp +++ b/Modbus_communication/Modbus_TCP/TCP_client.cpp @@ -2,11 +2,11 @@ /********************************************************************************************* -* 功能    : 检测socket版本 -* 描述   : 检测socket版本是否一致 +* 功能    : socket版本 +* 描述   : 启动socket服务 * 输入 : 无 -* 输出 : true socket版本一致 -* false socket版本不一致 +* 输出 : true 启动成功 +* false 启动失败 *********************************************************************************************/ bool InitSocket_Version(void) { @@ -106,7 +106,7 @@ SOCKET Init_client() } cout << "连接TCP从站成功" << endl; TIMEVAL timeout; - timeout.tv_sec = 20; //ms + timeout.tv_sec = 20000; //ms timeout.tv_usec = 0; //us setsockopt(ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));//设置接收超时时间 return ClientSocket; @@ -207,6 +207,8 @@ bool Check_Response_Message_len(UINT8 *Response_Message, UINT8 *Request_Message, *********************************************************************************************/ bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len) { + if (Response_Message_len < 9) + return false; for (int i = 0; i < 7; i++) { if (i == 4 || i == 5) //后续字节长度 @@ -216,7 +218,6 @@ bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, } if (Response_Message[4] != 0x00) //4 固定0x00 帧长度判定 return false; - if (Response_Message[7] == Request_Message[7] + 0x80)//先处理异常响应 { @@ -243,6 +244,23 @@ bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, return true; } +void Clear_buf(SOCKET ClientSocket) +{ + unsigned long bytesToRecv; + char temp[50]; + do + { + ioctlsocket(ClientSocket, FIONREAD, &bytesToRecv); + if (bytesToRecv > 50) + { + recv(ClientSocket, temp, 50, 0); + } + else + recv(ClientSocket, temp, bytesToRecv, 0); + } while (bytesToRecv != 0); + +} + /********************************************************************************************* * 功能    : 运行客户端 * 描述   : 根据终端输入从站IP地址和端口号连接对应的服务器并且生成发送请求等待响应 @@ -280,6 +298,7 @@ bool Tcp_client() } printf("\n"); Log_Note(Request_Message, 1, Request_Message_len); + Clear_buf(ClientSocket); int test = send(ClientSocket, (char*)Request_Message, Request_Message_len, 0); if (Transmission_Indicator == 0xffff) { @@ -312,7 +331,7 @@ bool Tcp_client() system("cls"); continue; } - memset(Response_Message, 0, 300); + memset(Response_Message, 0, 600); FD_ZERO(&reads); FD_SET(ClientSocket, &reads); int Response_Message_len = recv(ClientSocket, (char*)Response_Message, 600, 0); diff --git a/Modbus_communication/Modbus_TCP/common.cpp b/Modbus_communication/Modbus_TCP/common.cpp index 9925b41..1f0137c 100644 --- a/Modbus_communication/Modbus_TCP/common.cpp +++ b/Modbus_communication/Modbus_TCP/common.cpp @@ -83,13 +83,13 @@ unsigned int Input_Operations_Number(int Function_code) cin >> Operations_Number; cin.clear(); cin.sync(); - if (Function_code == 0x01 && Operations_Number >= 0 && Operations_Number <= 65535) + if (Function_code == 0x01 && Operations_Number >= 1 && Operations_Number <= 65535) flage = false; - if (Function_code == 0x03 && Operations_Number >= 0 && Operations_Number <= 65535) + if (Function_code == 0x03 && Operations_Number >= 1 && Operations_Number <= 65535) flage = false; - if (Function_code == 0x0F && Operations_Number >= 0 && Operations_Number <= 65535) + if (Function_code == 0x0F && Operations_Number >= 1 && Operations_Number <= 65535) flage = false; - if (Function_code == 0x10 && Operations_Number >= 0 && Operations_Number <= 65535) + if (Function_code == 0x10 && Operations_Number >= 1 && Operations_Number <= 65535) flage = false; } while (flage); return Operations_Number;