电子秤ModBus 协议介绍
时间:2020-12-29 阅读:1044
电子秤ModBus 协议介绍
采用ASCII码模式,以字符的方式发送数据,校验方式采用LRC校验。
LRC校验码运算:报头(:)不参与运算,LRC在数据之后,在\CR\LF之前。参加运算的是报头之后,LRC之前的所有数据。
每字节(BYTE)为8位(BIT),无奇偶校验,1位停止位。即:8n1。
电子秤ModBus 协议介绍 数据格式:
说明 | 报头 | 站号 | 功能码 | 首址 | 数据量 | 数据 | 校验码 | 报尾 |
指令 | : | xx | xx | xxxx | xxxx | xxxx | LRC | \CR\ LF |
回传 | : | xx | xx |
| xx | xxxx | LRC | \CR\ LF |
报头、报尾:所有指令均以冒号(:)开始,以回车符、换行符结束。
站号:2个ASCII码。范围:01-90 (16进制:0x01-0x5A)。
功能码:2个ASCII码
04:读称量状态(显示值、皮重等)
05:置零操作
06:皮重操作
07:通信测试
首址:4个ASCII码。读写数据的位置。
数据量:4个ASCII码。读写数据的数量。
数据:读写的数据
校验码:2个ASCII码。采用LRC校验。
举例说明:站号---78 (0x4E)
例1:读取重量数据
| 报头 | 站号 | 功能码 | 首址 | 数据量 | 数据 | 校验码 | 报尾 |
指令 | : | 4E | 04 | 0000 | 0007 |
| A7 | \CR\ LF |
回传 | : | 4E | 04 |
| 07 | 120003E70000CA | E1 | \CR\ LF |
说明 | 数据共7字节,其中12--状态、0003E7--显示值、0000CA--皮重值。 状态:0001 0010 高四位从高到低分别为(0/1):正/负、非零/零、稳定/动态、毛重/净重; 低四位中,高位恒为0。低三位表示小数点位置,数据范围:000-011,000--无小数、001--1位小数、010--2位小数、011--3位小数。 例中数据表示:当前重量为正、称量稳定,显示为净重,净重=9.99,皮重=2.02 |
例2:置零操作
| 报头 | 站号 | 功能码 | 首址 | 数据量 | 数据 | 校验码 | 报尾 |
指令 | : | 4E | 05 |
|
|
| AD | \CR\ LF |
回传 | : | 4E | 05 |
|
|
| AD | \CR\ LF |
说明 | 置零成功 | |||||||
回传 | : | 4E | 85 |
|
| 07 | 26 | \CR\ LF |
说明 | 置零失败,重量>2%FS。错误码说明见后 |
例3:去皮操作
| 报头 | 站号 | 功能码 | 首址 | 数据量 | 数据 | 校验码 | 报尾 |
指令 | : | 4E | 06 | 0004 | 0003 | 000064 | 41 | \CR\ LF |
回传 | : | 4E | 06 |
| 03 | 000064 | 45 | \CR\ LF |
说明 | 设置皮重=100,显示净重 | |||||||
指令 | : | 4E | 06 | 0004 | 0000 |
| A8 | \CR\ LF |
回传 | : | 4E | 06 |
| 03 | 0000C9 | E0 | \CR\ LF |
说明 | 操作前为毛重状态,操作后,把毛量作为皮重,皮重=201,显示净重为0 | |||||||
指令 | : | 4E | 06 | 0004 | 0000 |
| A8 | \CR\ LF |
回传 | : | 4E | 06 |
| 03 | 000000 | A9 | \CR\ LF |
说明 | 操作前为净重状态,操作后,恢复毛量显示,皮重=0 |
例4:通信测试
| 报头 | 站号 | 功能码 | 首址 | 数据量 | 数据 | 校验码 | 报尾 |
指令 | : | 4E | 07 |
|
|
| AB | \CR\ LF |
回传 | : | 4E |
|
|
|
| B2 | \CR\ LF |
说明 | 通信正常,返回站号 |