소스 검색

完善报文MBAP生成模块

Modbus_TCP
zcn1123 4 년 전
부모
커밋
44058e02ec
3개의 변경된 파일18개의 추가작업 그리고 4개의 파일을 삭제
  1. +8
    -2
      Modbus_communication/Modbus_TCP/common.cpp
  2. +3
    -0
      Modbus_communication/Modbus_TCP/common.h
  3. +7
    -2
      Modbus_communication/Modbus_TCP/main.cpp

+ 8
- 2
Modbus_communication/Modbus_TCP/common.cpp 파일 보기

@@ -281,7 +281,13 @@ string Write_date(int Function_code, unsigned int Operations_Number)
* 输入 : 无
* 输出 : MBAP报文头内容
*********************************************************************************************/
void Crate_MBAP()
void Crate_MBAP(UINT8 *Message, int Function_code, unsigned int Operations_Number)
{

Message[0] = 0x00;
Message[1] = 0x00;
Message[2] = 0x00;
Message[3] = 0x00;
Message[4] = 0x00;
Message[5] = Count_Write_date_number(Function_code, Operations_Number) + 0x06;
Message[6] = DEVICE_ID;
}

+ 3
- 0
Modbus_communication/Modbus_TCP/common.h 파일 보기

@@ -10,6 +10,9 @@
#pragma comment(lib,"ws2_32.lib")
using namespace std;

#define DEVICE_ID 0x10 //É豸ID



bool Check_IP(char* IP);
bool InitSocket_Version(void);


+ 7
- 2
Modbus_communication/Modbus_TCP/main.cpp 파일 보기

@@ -1,6 +1,10 @@
#include "main.h"
//#include <stdlib.h>
#define DEVICE_ID 0x10
void test(UINT8 *Message)
{
Message[7] = 0x10;
}

int main()
{
@@ -14,9 +18,10 @@ int main()
Message[4] = 0x00;
Message[5] = Operations_Number;
Message[6] = DEVICE_ID;
for (int i = 0; i < 7; i++)
test(Message);
for (int i = 0; i < 8; i++)
{
printf("%02X", Message[i]);
printf("%02X ", Message[i]);
}
getchar();


불러오는 중...
취소
저장