2 Commitit

Tekijä SHA1 Viesti Päivämäärä
  zcn1123 e370d242f2 修改接收延时为200ms 4 vuotta sitten
  zcn1123 a2ea0aa4da 修改bug 10 0f报文缺少数据长度 4 vuotta sitten
4 muutettua tiedostoa jossa 62 lisäystä ja 8 poistoa
  1. +54
    -2
      Modbus_communication/Modbus_TCP/Modbus_TCP_log.txt
  2. +3
    -3
      Modbus_communication/Modbus_TCP/TCP_client.cpp
  3. +4
    -2
      Modbus_communication/Modbus_TCP/common.cpp
  4. +1
    -1
      Modbus_communication/Modbus_TCP/common.h

+ 54
- 2
Modbus_communication/Modbus_TCP/Modbus_TCP_log.txt Näytä tiedosto

@@ -1,2 +1,54 @@
2020-9-1 14:23:15 Send:00 00 00 00 00 06 09 01 00 00 00 09
2020-9-1 14:23:17 Recv:00 00 00 00 00 05 10 01 02 FF 01
2020-9-5 19:23:6 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF
2020-9-5 19:23:30 Recv:00 00 00 00 00 06 01 10 00 00 00 01
2020-9-5 19:24:29 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:24:50 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:26:22 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:26:31 Recv:00 00 00 00 00 05 01 03 02 FF FF
2020-9-5 19:27:11 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:27:17 Recv:00 00 00 00 00 05 01 03 02 FF FF
2020-9-5 19:27:38 Send:00 00 00 00 00 08 01 10 00 01 00 01 02 11 11
2020-9-5 19:27:44 Recv:00 00 00 00 00 06 01 10 00 01 00 01
2020-9-5 19:28:20 Send:00 00 00 00 00 06 01 03 00 01 00 01
2020-9-5 19:28:55 Send:00 00 00 00 00 06 01 03 00 01 00 01
2020-9-5 19:30:38 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:30:38 Recv:00 00 00 00 00 05 01 03 02 FF FF
2020-9-5 19:30:42 Send:00 00 00 00 00 06 01 03 00 01 00 01
2020-9-5 19:30:42 Recv:00 00 00 00 00 05 01 03 02 11 FF
2020-9-5 19:31:1 Send:00 00 00 00 00 08 01 10 00 03 00 01 02 11 11
2020-9-5 19:31:1 Recv:00 00 00 00 00 06 01 10 00 03 00 01
2020-9-5 19:31:8 Send:00 00 00 00 00 06 01 03 00 03 00 01
2020-9-5 19:31:49 Send:00 00 00 00 00 06 01 03 00 03 00 01
2020-9-5 19:32:50 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:33:17 Send:00 00 00 00 00 08 01 10 00 02 00 01 02 11 11
2020-9-5 19:38:12 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:38:12 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E
2020-9-5 19:38:24 Send:00 00 00 00 00 06 01 01 00 00 00 01
2020-9-5 19:38:24 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E
2020-9-5 19:38:37 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:38:56 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:38:56 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E 68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E
2020-9-5 19:39:5 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-5 19:39:5 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E
2020-9-5 19:40:28 Send:00 00 00 00 00 06 01 03 00 00 00 0A
2020-9-5 19:40:28 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E
2020-9-5 19:40:41 Send:00 00 00 00 00 06 01 03 00 00 00 0A
2020-9-5 19:40:52 Send:00 00 00 00 00 06 01 03 00 00 00 0A
2020-9-5 19:40:52 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E
2020-9-7 18:40:38 Send:00 00 00 00 00 06 01 01 00 00 00 01
2020-9-7 18:40:38 Recv:00 00 00 00 00 04 01 01 01 00
2020-9-7 18:40:51 Send:00 00 00 00 00 06 01 03 00 00 00 64
2020-9-7 18:40:51 Recv:00 00 00 00 00 CB 01 03 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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-7 18:41:20 Send:00 00 00 00 00 06 01 03 00 63 00 01
2020-9-7 18:41:20 Recv:00 00 00 00 00 05 01 03 02 00 00
2020-9-7 18:41:34 Send:00 00 00 00 00 06 01 03 00 63 00 03
2020-9-7 18:41:34 Recv:00 00 00 00 00 09 01 03 06 00 00 00 00 00 00
2020-9-7 18:41:55 Send:00 00 00 00 00 06 01 03 00 63 00 03
2020-9-7 18:41:55 Recv:00 00 00 00 00 09 01 03 06 00 00 00 00 00 00
2020-9-7 18:43:7 Send:00 00 00 00 00 06 01 03 00 00 00 01
2020-9-7 18:44:25 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01
2020-9-7 18:44:25 Recv:00 00 00 00 00 06 01 0F 00 00 00 01
2020-9-7 18:45:27 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01
2020-9-7 18:46:53 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01
2020-9-7 18:47:2 Recv:00 00 00 00 00 06 01 0F 00 00 00 01
2020-9-7 18:47:16 Send:00 00 00 00 00 07 01 0F 00 00 00 01 01 01
2020-9-7 18:47:30 Recv:00 00 00 00 00 06 01 0F 00 00 00 01

+ 3
- 3
Modbus_communication/Modbus_TCP/TCP_client.cpp Näytä tiedosto

@@ -102,7 +102,7 @@ SOCKET Init_client(string IP, unsigned int Port_number)
}
cout << "连接TCP从站成功" << endl;
TIMEVAL timeout;
timeout.tv_sec = 2000; //ms
timeout.tv_sec = 200; //ms
timeout.tv_usec = 0; //us
setsockopt(ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));//设置接收超时时间
return ClientSocket;
@@ -120,13 +120,13 @@ void Clear_recv_buf(SOCKET clientSocket)
tmOut.tv_sec = 0;
tmOut.tv_usec = 0;
fd_set fds;
FD_ZERO(&fds);
FD_SET(clientSocket, &fds);
int nRet;
char tmp[2];
memset(tmp, 0, sizeof(tmp));
while (1)
{
FD_ZERO(&fds);
FD_SET(clientSocket, &fds);
nRet = select(FD_SETSIZE, &fds, NULL, NULL, &tmOut);
if (nRet == 0)
break;


+ 4
- 2
Modbus_communication/Modbus_TCP/common.cpp Näytä tiedosto

@@ -223,10 +223,12 @@ void Crate_MBAP(UINT8 *Message, int Function_code, unsigned int Operations_Numbe
* Message_len消息帧数组的起始位置
* 输出 : Message_len 消息帧的长度
*********************************************************************************************/
int HexStringtoByte(UINT8 *Message, string Write_date, int Message_len)
int HexStringtoByte(UINT8 *Message, string Write_date, int Message_len, int Function_code, unsigned int Operations_Number)
{
if (Write_date.length() == 0)
return Message_len;
Message[Message_len] = Count_Write_date_number(Function_code, Operations_Number);
Message_len++;
const char *b = Write_date.c_str();
for (unsigned int i = 0; i + 3 < Write_date.length(); i = i + 3)
{
@@ -254,7 +256,7 @@ int Crate_TCP_Message(UINT8 *Message, int Function_code, unsigned int Operations
Message[10] = Operations_Number >> 8;//操作数量H
Message[11] = Operations_Number;//操作数量L

return HexStringtoByte(Message, Write_date, 12);
return HexStringtoByte(Message, Write_date, 12, Function_code, Operations_Number);
}



+ 1
- 1
Modbus_communication/Modbus_TCP/common.h Näytä tiedosto

@@ -11,7 +11,7 @@
#pragma comment(lib,"ws2_32.lib")
using namespace std;

#define DEVICE_ID 0x09 //设备ID
#define DEVICE_ID 0x01 //设备ID





Ladataan…
Peruuta
Tallenna