|
|
|
|
/****************************************************************************
|
|
|
|
|
** File name : HTModbus.h
|
|
|
|
|
** Description : ISO Modbus protoclo api
|
|
|
|
|
** Create date : 2019.09.01
|
|
|
|
|
** Auther by : Liuyx
|
|
|
|
|
** Version info : V1.0.01
|
|
|
|
|
** Copyright (C) 2002-2019 xi'an huatek, Inc Co., Ltd
|
|
|
|
|
** Update record:
|
|
|
|
|
** DATE AUTHER DESC
|
|
|
|
|
** -------------------------------------------------------------------------
|
|
|
|
|
** 2019.09.01 Liuyx first build
|
|
|
|
|
****************************************************************************/
|
|
|
|
|
#ifndef __HT_MODBUS_PROTOCOL_H
|
|
|
|
|
#define __HT_MODBUS_PROTOCOL_H
|
|
|
|
|
#include "HTGlobal.h"
|
|
|
|
|
//#include "modbus/modbus.h"
|
|
|
|
|
|
|
|
|
|
#pragma pack (push ,1)
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
//#pragma comment(lib,"modbus.lib")
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// <20>豸<EFBFBD><E8B1B8>ַ
|
|
|
|
|
#define MODBUS_DEVICE_ADDR 0x01
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
|
|
|
|
#define MODBUS_CONTROL_START_ADDR 0x00CF //<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
#define MODBUS_CONTROL_ADDR_COUNT 32 //<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ⵥԪ<E2B5A5><D4AA>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
|
|
|
|
#define MODBUS_MONITOR_START_ADDR 0x0000 // <20><><EFBFBD>ⵥԪ<E2B5A5>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
|
|
|
|
|
#define MODBUS_MONITOR_UNIT_COUNT 3 // <20><><EFBFBD>ⵥԪ<E2B5A5>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Modbus function code
|
|
|
|
|
#define MODBUS_FUNC_CODE3 0x03 // 3
|
|
|
|
|
#define MODBUS_FUNC_CODE6 0x06 // 6
|
|
|
|
|
#define MODBUS_FUNC_CODE16 0x10 // 16
|
|
|
|
|
|
|
|
|
|
// Modbus respone code
|
|
|
|
|
#define MODBUS_FUNC_CODE3_ERR 0x83 // 3<>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// Modbusͨ<73>ŷ<EFBFBD>ʽ
|
|
|
|
|
typedef enum{
|
|
|
|
|
HT_MODBUS_MODE_TCP = 1, /* modbus communication mode by tcp */
|
|
|
|
|
HT_MODBUS_MODE_RTU = 2, /* modbus communication mode by rtu */
|
|
|
|
|
HT_MODBUS_MODE_ASC = 3 /* modbus communication mode by ascii */
|
|
|
|
|
}HT_MODBUS_TYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define HT_MODBUS_RTU
|
|
|
|
|
// <20><><EFBFBD>ⵥԪ<E2B5A5><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
#define HT_UNIT_VOLTAGE 0x0001 // ĸ<>ߵ<EFBFBD>ѹ<EFBFBD><D1B9>Ԫ
|
|
|
|
|
#define HT_UNIT_CAPACITY 0x0002 // <20><><EFBFBD>Լ<EFBFBD><D4BC>ⵥԪ
|
|
|
|
|
#define HT_UNIT_ARRESTER 0x0003 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥԪ
|
|
|
|
|
#define HT_UNIT_ICGE 0x0004 // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD>ⵥԪ
|
|
|
|
|
#define HT_UNIT_TEMP_HUMI 0x000A // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʪ<EFBFBD>ȼ<EFBFBD><C8BC>ⵥԪ
|
|
|
|
|
#define HT_UNIT_SLV 0x000F // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1B6AFBC>ⵥԪ
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|
|
|
|
#define HT_STAT_NORNAL 0x0000 // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
#define HT_STAT_NET_EXCEPTION 0x0001 // ͨ<><CDA8><EFBFBD>쳣
|
|
|
|
|
#define HT_STAT_SELF_CHECK 0x0002 // <20>Լ<EFBFBD><D4BC>쳣
|
|
|
|
|
#define HT_STAT_SIGNAL 0x0004 // <20>ź<EFBFBD><C5BA>쳣
|
|
|
|
|
#define HT_STAT_POWER 0x0008 // <20><><EFBFBD><EFBFBD><EFBFBD>쳣
|
|
|
|
|
|
|
|
|
|
// <20>澯<EFBFBD><E6BEAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define WARN_HIGT_BIT0_100HZ ((1<<16) & 0xff) // Bit0 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>100HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit1 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>200HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit2 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>300HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit3 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>400HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit4 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>500HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit5 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>600HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit6 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>700HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit7 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>800HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit8 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>900HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit9 = 1 ԭ<><EFBFBD><DFBC>ٶ<EFBFBD>1000HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit10 = 1 <20><><EFBFBD><EFBFBD><DFBC>ٶ<EFBFBD>100HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit11 = 1 <20><><EFBFBD><EFBFBD><DFBC>ٶ<EFBFBD>200HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit12 = 1 <20><><EFBFBD><EFBFBD><DFBC>ٶ<EFBFBD>300HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit13 = 1 <20><><EFBFBD><EFBFBD><DFBC>ٶ<EFBFBD>400HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit14 = 1 <20><><EFBFBD><EFBFBD><DFBC>ٶ<EFBFBD>500HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
//Bit15 = 1 <20><><EFBFBD><EFBFBD><DFBC>ٶ<EFBFBD>600HZ<48><5A><EFBFBD><EFBFBD><EFBFBD>澯
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
char errcode;
|
|
|
|
|
char errmsg[64];
|
|
|
|
|
}ST_MODBUS_ERRMSG;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ⵥԪ״̬
|
|
|
|
|
typedef struct {
|
|
|
|
|
unsigned char rs0 : 1,// Ԥ<><D4A4>λ
|
|
|
|
|
rs1 : 1, // Ԥ<><D4A4>λ
|
|
|
|
|
rs2 : 1, // Ԥ<><D4A4>λ
|
|
|
|
|
rs3 : 1, // Ԥ<><D4A4>λ
|
|
|
|
|
rs4 : 1, // Ԥ<><D4A4>λ
|
|
|
|
|
st5 : 1, // Bit2=1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3ͨѶ<CDA8>쳣
|
|
|
|
|
st6 : 1, // Bit1=1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2ͨѶ<CDA8>쳣
|
|
|
|
|
st7 : 1; // Bit0=1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1ͨѶ<CDA8>쳣
|
|
|
|
|
}UCTYPE;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>״̬λ
|
|
|
|
|
struct BST {
|
|
|
|
|
unsigned char cex : 1, // 1-ͨ<><CDA8><EFBFBD>쳣
|
|
|
|
|
cce : 1, // self check exception
|
|
|
|
|
sig : 1, // signal exception
|
|
|
|
|
pex : 1, // power exception
|
|
|
|
|
bt4 : 1, // reserve
|
|
|
|
|
bt5 : 1, // reserve
|
|
|
|
|
bt6 : 1, // reserve
|
|
|
|
|
bt7 : 1; // reserve
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>澯λ
|
|
|
|
|
struct BWL {
|
|
|
|
|
unsigned char p100 : 1, // 1-ͨ<><CDA8><EFBFBD>쳣
|
|
|
|
|
p200 : 1, // self check exception
|
|
|
|
|
p300 : 1, // signal exception
|
|
|
|
|
p400 : 1, // power exception
|
|
|
|
|
p500 : 1, // reserve
|
|
|
|
|
p600 : 1, // reserve
|
|
|
|
|
p700 : 1, // reserve
|
|
|
|
|
p800 : 1; // reserve
|
|
|
|
|
};
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>澯λ
|
|
|
|
|
struct BWM {
|
|
|
|
|
unsigned char p900 : 1, // 1-ͨ<><CDA8><EFBFBD>쳣
|
|
|
|
|
p1000 : 1, // self check exception
|
|
|
|
|
s100 : 1, // signal exception
|
|
|
|
|
s200 : 1, // power exception
|
|
|
|
|
s300 : 1, // reserve
|
|
|
|
|
s400 : 1, // reserve
|
|
|
|
|
s500 : 1, // reserve
|
|
|
|
|
s600 : 1; // reserve
|
|
|
|
|
};
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>澯λ
|
|
|
|
|
struct BWH {
|
|
|
|
|
unsigned char s700 : 1, // 1-ͨ<><CDA8><EFBFBD>쳣
|
|
|
|
|
s800 : 1, // self check exception
|
|
|
|
|
s900 : 1, // signal exception
|
|
|
|
|
s1000 : 1, // power exception
|
|
|
|
|
s300 : 1, // reserve
|
|
|
|
|
s400 : 1, // reserve
|
|
|
|
|
s500 : 1, // reserve
|
|
|
|
|
s600 : 1; // reserve
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>unsigned short
|
|
|
|
|
struct stUSHORT{
|
|
|
|
|
char Low;
|
|
|
|
|
UCTYPE Hig;
|
|
|
|
|
};
|
|
|
|
|
typedef struct {
|
|
|
|
|
unsigned short usUtilType; // <20><><EFBFBD>ⵥԪ<E2B5A5><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned char ucL1; // Ԥ<><D4A4>
|
|
|
|
|
UCTYPE ucH1; // <20><><EFBFBD>ⵥԪ״̬
|
|
|
|
|
unsigned char ucL2; // Ԥ<><D4A4>
|
|
|
|
|
UCTYPE ucH2; // <20><><EFBFBD>ⵥԪ<E2B5A5><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
}ST_BIT_MAP;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|
|
|
|
typedef struct {
|
|
|
|
|
// <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>-<2D><><EFBFBD><EFBFBD>IED<45><44><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usEnvEnable; //13<31><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usNeuEnable; //14<31><34><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usAUpEnable; //1ԭ<31><D4AD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usADnEnable; //2ԭ<32><D4AD>A<EFBFBD><41><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usBUpEnable; //3ԭ<33><D4AD>B<EFBFBD><42><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usBDnEnable; //4ԭ<34><D4AD>B<EFBFBD><42><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usCUpEnable; //5ԭ<35><D4AD>C<EFBFBD><43><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usCDnEnable; //6ԭ<36><D4AD>C<EFBFBD><43><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usaupEnable; //7<><37><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usadnEnable; //8<><38><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usbupEnable; //9<><39><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usbdnEnable; //10<31><30><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short uscupEnable; //11<31><31><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short uscdnEnable; //12<31><32><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
unsigned short usSmpProd; //15<31>ɼ<EFBFBD>Ƶ<EFBFBD><C6B5>(KHz)
|
|
|
|
|
unsigned short usSmpInt; //16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Сʱ)
|
|
|
|
|
unsigned short usStartTime; //17<31><37>ʼʱ<CABC><CAB1>
|
|
|
|
|
unsigned short usEnable; //18ʹ<38><CAB9><EFBFBD>ź<EFBFBD>, true:yes false: no
|
|
|
|
|
unsigned short usEnvChannel; //19<31><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usNeuChannel; //20<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usAUChannel; //21ԭ<31><D4AD>A<EFBFBD><41><EFBFBD>ϲഫ<CFB2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usADChannel; //22ԭ<32><D4AD>A<EFBFBD><41><EFBFBD>²ഫ<C2B2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usBUChannel; //23ԭ<33><D4AD>B<EFBFBD><42><EFBFBD>ϲഫ<CFB2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usBDChannel; //24ԭ<34><D4AD>B<EFBFBD><42><EFBFBD>²ഫ<C2B2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usCUChannel; //25ԭ<35><D4AD>C<EFBFBD><43><EFBFBD>ϲഫ<CFB2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usCDChannel; //26ԭ<36><D4AD>C<EFBFBD><43><EFBFBD>²ഫ<C2B2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usauChannel; //27<32><37><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>ϲഫ<CFB2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usadChannel; //28<32><38><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>²ഫ<C2B2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usbuChannel; //29<32><39><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>ϲഫ<CFB2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short usbdChannel; //30<33><30><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>²ഫ<C2B2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short uscuChannel; //31<33><31><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>ϲഫ<CFB2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short uscdChannel; //32<33><32><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>²ഫ<C2B2><E0B4AB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
}ST_MODBUS_CONTROL;
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
unsigned short useqid; // Ϊ<>˴<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ÿ<EFBFBD><C3BF>ͨ<EFBFBD><CDA8>֮<EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
|
|
|
|
|
unsigned short usprotol; // Э<><D0AD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>,00 00ΪmodbusЭ<73><D0AD>
|
|
|
|
|
unsigned short uslength; // <20><><EFBFBD>ݳ<EFBFBD><DDB3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3>ȣ<EFBFBD><C8A3><EFBFBD>λ<EFBFBD>ֽ<EFBFBD>;
|
|
|
|
|
unsigned char bdevid; // <20>豸<EFBFBD><E8B1B8>ַ<EFBFBD><D6B7>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>,<2C><><EFBFBD>Ա<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>Զ<EFBFBD>̷<EFBFBD><CCB7><EFBFBD><EFBFBD>˵ĵ<CBB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߸<EFBFBD><DFB8>ֽ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>Ϊmodbus<75><73><EFBFBD><EFBFBD>ͷ
|
|
|
|
|
unsigned char bfunc; // <20><><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EBA3AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>03Ϊ<33><CEAA>ȡ<EFBFBD><C8A1><EFBFBD>ּĴ<D6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}ST_MODBUS_HEADER;
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
ST_MODBUS_HEADER stHeader; // <20><>ͷ
|
|
|
|
|
unsigned short usbeginaddr; // <20><EFBFBD><D7B8>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ/<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short uscount; // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD> RTU<54><55>ʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRC<52><43>
|
|
|
|
|
}ST_REQ_READ_REGEDIT_FUNC3;
|
|
|
|
|
// <20><><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>3Ӧ<33><D3A6><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ
|
|
|
|
|
typedef struct {
|
|
|
|
|
ST_MODBUS_HEADER stHeader; // <20><>ͷ
|
|
|
|
|
unsigned char blength; // <20><>ȡ<EFBFBD><C8A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>(<28><><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ2<CEAA>ֽ<EFBFBD>)
|
|
|
|
|
unsigned short *pusVal; // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRC<52><43>
|
|
|
|
|
}ST_RSP_READ_REGEDIT_FUNC3;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
ST_MODBUS_HEADER stHeader; // <20><>ͷ
|
|
|
|
|
unsigned short usbeginaddr; // <20><EFBFBD><D7B8>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ/<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
unsigned short uscount; // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD> RTU<54><55>ʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CRC<52><43>
|
|
|
|
|
unsigned char blen; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽڸ<D6BD><DAB8><EFBFBD>
|
|
|
|
|
}ST_REQ_WRITE_REGEDIT_FUNC16;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void *thread_modbus_service_proc(void *arg);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#pragma pack (pop)
|
|
|
|
|
#endif /* end __HT_MODBUS_PROTOCOL_H */
|
|
|
|
|
|