文档介绍:- 精品 -
- 精品 -
MODBUS信协议
HZR、HZC 系歹U产品采用 RS485 RS232 CAN、EtherNet (TCPIP)等通
信方式与当地监控系统或上一级调度自动化系统连接。 MODBUS 是应用层协议,
可基于上述通信媒介进行系统互连。 MODBUS 采用直接内存访问的模式,其基
本协议定义了内存访问的具体细节, 各应用程序或系统互连时只须提供内存地址
表即可。
一、 HZR 、 HZC 系列产品支持的 MODBUS 命令
1、 连续读 n 个字(功能码 03H)
下行:
设备地址(BYTE): 01H〜FFH
功 能 码( BYTE ) : 03H
起始地址(WORD): 0000H〜FFFFH
读的字数(WORD): 0001H〜007DH
校验码(WORD):以上所有字节的CRC16校验和
上行:
设备地址(BYTE): 01H〜FFH
功 能 码( BYTE ) : 03H
数据长度(BYTE): 01H〜FAH
数据内容( BYTE ) :读到的具体数据
数据内容( BYTE ) :读到的具体数据
- 精品 -
- 精品 -
。。
数据内容( BYTE ) :读到的具体数据
校验码(WORD):以上所有字节的CRC16校验和
2、 写 1 个字(功能码 06H )
下行:
设备地址(BYTE): 01H〜FFH
功 能 码( BYTE ) : 06H
起始地址(WORD): 0000H〜FFFFH
写入数据(WORD): 0001H〜FFFFH
校验码(WORD):以上所有字节的CRC16校验和
上行:
设备地址(BYTE): 01H〜FFH
功 能 码( BYTE ) : 06H
起始地址(WORD): 0000H〜FFFFH
写入数据(WORD): 0001H〜FFFFH
校验码(WORD):以上所有字节的CRC16校验和
3、 连续写 n 个字(功能码 10H)
下行:
设备地址(BYTE): 01H〜FFH
功 能 码( BYTE) : 10H
起始地址(WORD): 0000H〜FFFFH
- 精品 -
- 精品 -
写的字数(WORD): 0001H〜007DH
数据长度(BYTE): 01H〜FAH
数据内容( BYTE ) :写入的具体数据
数据内容( BYTE ) :写入的具体数据
。。。
数据内容( BYTE ) :写入的具体数据
校验码(WORD):以上所有字节的CRC16校验和
上行:
设备地址(BYTE): 01H〜FFH
功 能 码( BYTE) : 10H
起始地址(WORD): 0000H〜FFFFH
写的字数(WORD): 0001H〜007DH
校验码(WORD):以上所有字节的CRC16校验和
CRC计算例程:
unsigned short CalculateCRC(unsigned short* pData,unsigned short wLength) {
unsigned short wCRC;
wCRC = 0xffff;
while(wLength--) wCRC =
- 精品 -
- 精品 -
(wCRC>>8)Ac_wTableCRC[(wCRCA*pData++)&0x00ff];
return wCRC;
unsigned short c_wTableCRC[256] =
{
0x0000,0xc0c1,0xc181,0x0140,0xc301,0x03c0,0x0280,0xc241,
0xc601,0x06c0,0x0780,0xc741,0x0500,0xc5c1,0xc481,0x0440,
0xcc01,0x0cc0,0x0d80,0xcd41,0x0f00,0xcfc1,0xce81,0x0e40,
0x0a00,0xcac1,0xcb81,0x0b40,0xc901,0x09c0,0x0880,0xc841,
0xd801,0x18c0,0x1980,0xd941,0x1b00,0xdbc1,0xda81,0x1a40,
0x1e00,0xdec1,0xdf81,0x1f40,0xdd01,0x1dc0,0x1c80,0xdc41,
0x1400,0xd4c1,0xd581,0x1540,0xd701,0x17c0,0x1680,0xd641,
0xd201,0x12c0,0x1380,0xd341,0x1100,0xd1c1,0xd081,0x1040,
0xf001,0x30c0,0x3180,0xf141,0x3300