串口通信协议MH-PM,质优价廉厂家直销串口通信协议
价格:电议
地区:广东省 广州市

串口通信协议MH-PM产品介绍


一、通信参数:RS485兼容串行接口,半双工异步方式

波特率:1200---38400bps

数据位:8

校  验:N

停止位:1


二、数据帧格式(内存地址为双字节,如0000H为个菜单,0002H为第二个菜单)

设备地址

功能代码

内存地址

数据长度

数据

CRC

01H

03H读菜单

0000H~0068H菜单

0074H~008CH

运行数据

02D0~055C

历史数据

0002H

XXXX

04H读当前测量值

00H~18H

10H写菜单

00H~74H

04XXXX

12H写入EEPOM

00A0H

0002H

00A1H

13H操作成功

14H操作失败

20H输出4mA

21H输出20mA

30H开1#输出

31H关1#输出

32H开2#输出

33H关2#输出

34H开3#输出

35H关3#输出

36H开4#输出

37H关4#输出

55H还原输出状态

60H重起设备

65H恢复出厂设置

   例如:向1号机内存地址00 00 发送数据5

代码是: 00 02 04 40 A0 00 00 E6 4D

      设备地址 :1位HEX 01

功能代码 :1位HEX 10

内存地址 :两位HEX 00 00

数据长度 :两位HEX 00 02

数    据 :(04)数据标志,四位HEX 40 A0 00 00

CRC:两位HEX E6 4D低位在前高位在后

       返回代码: 00 00 00 09 63

      设备地址 :1位HEX 01

功能代码 :1位HEX 13

内存地址 :--

数据长度 :1位00

数    据 :四位HEX 00 00 00 00

CRC:两位HEX 09 63

       再读取的代码是: 00 02 C4 0B

       设备地址 :1位HEX 01

功能代码 :1位HEX 03

内存地址 :两位00 00

数据长度 :两位00 02

数    据 :――

CRC:两位HEX C4 0B

       返回代码: A D1

       设备地址 :1位HEX 01

功能代码 :1位HEX 13

内存地址 :--

数据长度 :1位02

数    据 :四位HEX 40 A0 00 00

CRC:两位HEX 67 D1



三、数据格式:

IEEE754标准单浮点数由1位符号位+8位阶码+23位尾数组成,用四位十六进制数表示。如124.75用十六进制表示为42 F9 80 00。

计算方法是:

124.75换算成二进制:.11

用科学计数法表示为:1.*2^6

阶码6+127=133,并用0表示正,1表示负。因此124.75的二进制数为:

000000B=42F98000H


四、CRC循环冗余校验

循环冗余校验CRC区为2字节,含一个16位二进制数据。由发送设备计算CRC值,并把计算值附在信息中,接收设备在接收信息时,重新计算CRC值,并把计算值与接收的在CRC区中实际值进行比较,若两者不相同,则产生一个错误。

CRC开始时先把寄存器的16位全部置成“1”,然后把相邻2个8位字节的数据放入当前寄存器中,只有每个字符的8位数据用作产生CRC,起始位,停止位和奇偶校验位不加到CRC中。

产生CRC期间,每8位数据与寄存器中值进行异或运算,其结果向右移一位(向LSB方向),并用“0”填入MSB,检测LSB,若LSB为“1”则与预置的固定值异或,若LSB为“0”则不作异或运算。

重复上述处过程,直至移位8次,完成第8次移位后,下一个8位数据,与该寄存器的当前值异或,在所有信息处理完后,寄存器中的终值为CRC值。

产生CRC的过程:

1、把16位CRC寄存器置成FFFFH.

2、个8位数据与CRC寄存器低8位进行异或运算,把结果放入CRC寄存器。

3、CRC寄存器向右移一位,MSB填零,检查LSB.

4、(若LSB为0):重复3,再右移一位。

(若LSB为1):CRC寄存器与Aool H 进行异或运算

5、重复3和4直至完成8次移位,完成8位字节的处理。

6、重复2至5步,处理下一个8位数据,直至全部字节处理完毕。

7、CRC寄存器的终值为CRC值。

8、把CRC值放入信息时,高8位和低8位应分开放置。

发送信息中的16 CRC值时,先送低8位,后送高8位。


五、组态软件设置(易控INSPEC 2007)

    串口→COM1,波特率:9600,数据位:8,停止位:1,奇偶校验:无,协议RS485→通用协议→标准Modbus设备→配置:通信协议帧格式:RTU模式,Slave地址:1,通信超时:1000毫秒,SWAP寄存器方式:SWAP3 2143→完成

    选择Input_register寄存器读取测量值,单元长度:2;数据类型:实型。

    选择Holding_register寄存器读取或写入参数,单元长度:2;数据类型:实型。


六、MODBUS 03号命令读运行数据举例

读第1路模拟输入 01 03 00 7f 00 02 f5 d3

读第2路模拟输入 01 03 00 81 00 02 94 23

读第1路数字输入 01 03 00 83 00 02 35 e3

读第2路数字输入 01 03 00 85 00 02 d5 e2

读数学运算结果    01 03 00 87 00 02 74 22

读流速运算值       01 03 00 89 00 02 15 e1

读每小时流量       01 03 00 8b 00 02 b4 21

读流量累积值       01 03 00 8d 00 02 54 20

读备用电池电压  01 03 00 95 00 02 d4 27

 

 

 

 

 

 

 

 

 


数据位::

8

校 验::

N

停止位::

1