积成电子modbus通讯规约

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
积成电子 modbus 通讯规约(定稿)
1、数据帧格式
本协议采用主-从结构的半双工通讯方式。 具体帧格式定义如下:
地址码 1 个 BYTE
功能代码 1 个 BYTE
数据信息码 N 个 BYTE
CRC-16 校验码 2 个 BYTE
1.1 地址码
地址码是数据帧的第一字节(8 位二进制码),从0 到255。地址0为广播地址,
22.625 22 = (10110)2 0.625 = (.101)2 10110.101 = 1.0110101 x 24 (标准值) 符号位 = 0 (正数) 指数位 = 4 + 127 = 131 = 10000011 有效位 = 0110101[16 个零] 短浮点数 = 0 10000011 0110101[16 个零]
显示选择浮点数显示如下或者选择
第六个
4 个字节的 BCD 码(D3 CRC 低 CRC 高
D2 D1 D0)
解释:4 个字节的 BCD 码,高字节在前,低字节在后, D3 为十万位万位, D2
为千位百位, D1 为十位个位,D0 为小数位。比如读数为 123456,则对应的帧中
的浮点数为 12 34 56 00
2.2 读地址和通讯参数
00 02
2.4 写地址和通讯参数
CRC 低 CRC 高
控制码:10H
寄存器起始地址:00 01
寄存器个数:00 01
请求帧:
A0
10 00 01
00 01
02
STA A1
CRC 低 CRC 高
原地 控制 寄存器


地址
寄存器 个数
数据 长度
数据
校验位
解释: STA 的定义和 2.2 相同,A1 为要写入的新地址。如果只设置地址,
所有子节点必需识别广播地址。这个字节表明由用户指定地址的从机将接收由主
机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机
才能发回响应。当从机回送信息时,响应中的地址码表明该信息来自于何处。
1.2 功能代码
主机发送的功能码告诉从机执行什么任务。下表列出本规约中应实现的功能
码。
功能码 03H/04H
高4位
波特率
低4位
校验位
0001
2400bps
0001
无校验
0010
4800bps
பைடு நூலகம்
0010
偶校验
0100
9600bps
1000
1200BPS
说明:高 4 位和低 4 位可任意组合,形成不同的通讯参数。
2.3 写累计水量值 控制码:10H 寄存器起始地址:00 04 寄存器个数:00 02 请求帧:
A0
CRC-16 校验码包含2 个字节,即16 位二进制。CRC 码由发送设备计算,放 置于发送信息的尾部。接收信息的设备再重新计算接收到信息的CRC 码,比较计 算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。
计算CRC 码的步骤为: 1、 预置16 位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC 寄存 器; 2 、把数据帧中第一个8 位数据与16 位CRC 寄存器的低位相异或,把结果 放于CRC 寄存器; 3、 把寄存器的内容右移一位(朝低位),用0 填补最高位,检查最低位; 4 、如果最低位为0:重复第3 步(再次移位); 如果最低位为1:CRC 寄存器 与多项式A001H(1010 0000 0000 0001)进行异或; 5 、重复步骤3 和4,直到右移8 次,这样整个8 位数据全部进行了处理; 6 、重复步骤2 到步骤5,进行下一个8 位数据的处理,直到所有字节处理 结束; 7、 最后得到的 CRC 寄存器即为 CRC 码。
则 STA 的值与表计的通讯参数一致即可;如果只设置通讯参数,则 A1 与原地址
A0 相同即可。
问题:考虑单独设置地址或者单独设置通讯参数,则另一个字节直接为 00
应答帧:
A0
10 00 01
00 01
CRC 低 CRC 高
2.5 Modscan 32 使用说明
1.首先要保证外部连接线正确连接好,确认数据的连接正常,搞定了硬件,下面进入到软 件界面操作.
= 1 x [1 + 0.4140625] x 24
= 22.625
2.2 读累计水量值(BCD 码)
控制码:03/04
寄存器起始地址:00 02
寄存器个数:00 02
请求帧:
A0
03/04
表地址 控制码
00 02 寄存器地址
00 02
CRC 低 CRC 高
寄存器个数
检验位
应答帧:
A0
03/04 04
如果将一个短浮点数值转换成十进制数值,应用如等式 1-1
数值
=
符号位
(-1) x
[1
+
(有效位/223)]
x
2(指数位
–127)
等式 错误!文档中没有指定样式的文字。-1: 短浮点值
实例 2:将一个短浮点数值转换成十进制数值
短浮点数 = 0 10000011 0110101[16 zeros] 符号位 = 0 (正数) 指数位 = 10000011 = 131 有效位 = 0110101[16 个零] = 3473408 十进制数值 = (-1)0 x [1 + (3473408/223)] x 2(131-127)
10
00 04
00 02
04
D3 D2 D1 D0 CRC 低 CRC 高
地址 控制码 寄存器 寄存器个 数据长
地址


数据
检验位
解释:D3 D2 D1 D0 为写入的累计水量值,其中 D3 为十万位万位, D2 为千
位百位, D1 为十位个位,D0 为小数位。高字节在前,低字节在后。
应答帧:
A0
10 00 04
第一步: 单击菜单栏的 Connenction ---”connect”出现
第二步: 单击 Rotocol Selection 进入下一步 第三步:通讯参数设定:进行下面的设置操作.单击后出现的界面填写如下图所示的数据
2.Modbus 的类型选择:
在 Modbus Point Type 就是要读取的寄存器区: “01 : COIL STATUS ” 指 1 号命令 DO 寄存器 “02 : INPUT STATUS ” 指 2 号命令 DI 寄存器 “03 : HOLDING REGUSTER ” 指 3 号命令保存寄存器 “04 : INPUT REGISTER ” 指 4 号命令输入寄存器 按照硬件产品说明书指导选择哪一种类型。
控制码:03/04
寄存器起始地址:00 01
寄存器个数:00 01
请求帧:
00/A0
03/04
广播地址 控制码
00 01 寄存器地址
00 01 寄存器个数
CRC 低 CRC 高 检验位
应答帧:
A0
03/04
02 STA A0
CRC 低 CRC 高
解释:02 为数据域长度,2 个字节(即一个寄存器)。 STA 为通讯参数,高 4 位表示波特率,低 4 位表示校验位,具体定义如下:
则对应的帧中的浮点数为 47 F1 20 00。
Modsan32 软件设置 addres(起始地址):0003 bcd 码 0005 浮点数
浮点数转换: 按 IEEE 754 标准组成的 32 位数。IEEE 754 标准短浮点数格式参见下图
短浮点数和有符号整型一样,符号位是 1,表示负数;符号位是 0,表示正数。指数位 部分既可表示正指数又可表示负指数。因此,指数位部分通过实际指数值加上偏差值 127 的方法计算。例如:实际指数值为-15,该浮点数的指数位值是 112。由于偏差值的作用,实 际指数值的有效范围为-127 到 128。有效位表示标准二进制数值的分数部分。标准二进制数 值大于 1 小于 10 并包含小数部分。小数部分很重要,因此被包含在浮点数格式中。标准值 通常都大于 1,因此格式中无需包含 1。如: 实例 1:将一个十进制数字转换成短浮点数值
3.PC 显示数据设置:
从左从左到右对应看:二进制、八进制、整数、十六进制、长整数、浮点、…… 我们主要使用十六进制(第四个) 和浮点数(第六个) 4.其它功能菜单项:
从左到右对应看:新建、打开、保存、连接、断开、数据定义等。
所有参数设置完成后单击 OK,如果对应串口有数据输入,就能获取数据。 备注: 采用 Modbus/485 信号接入要求如下: 1. 表计通讯的参数为 2400,8,1,偶效验(可调整,但是目前企业通讯模式参数一致) 2. 表计默认的 485 地址是 1 3. 采集点对应 Modbus RTU 地址为 4001 开始,数据类型为 RINT。 4. 提供的 MOdbus RTU Server 必须是国际标准版协议,使用 Modscan 调试软件能够测试通
过。
读累计水量值(BCD 码)
寄存器区“03 : HOLDING REGUSTER ” ID:表计 modbus 地址 寄存器 Address 是:0003
显示选择十六进制
第4个
读累计水量值(浮点数)
寄存器区“03 : HOLDING REGUSTER ” ID:表计 modbus 地址 寄存器 Address 是:0005
2、具体帧定义
2.1 读累计水量值(浮点数)
控制码:03/04
寄存器起始地址:00 04
寄存器个数:00 02
请求帧:
A0
03/04
表地址 控制码
00 04 寄存器地址
00 02
CRC 低 CRC 高
寄存器个数
检验位
应答帧:
A0
03/04 04
4 个字节的浮点数
CRC 低 CRC 高
解释:4 个字节的浮点数,高字节在前,低字节在后。比如读数为 123456,
10H
意义 读数据寄存器
写预置寄存器
行为 获得一个或多个寄存器 的当前二进制值(03/04 共用一个物理块)。 设定二进制值到相关的
寄存器中。
1.3 数据码 数据码包含了终端执行特定功能所需要的数据或者终端响应查询时采集到 的数据。这些数据的内容可能是数值、参考地址或者设定值。例如:功能码告诉 终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据, 而从机数据码回送内容则包括了数据长度和相应的数据。 备注:每个寄存器的内容为2个字节。 1.4 CRC-16 校验码
相关文档
最新文档