维博Modbus-RTU通信协议

更新时间:2023-12-28 18:33:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

维博Modbus-RTU通信协议

一、Modbus 协议简介

ModBus协议定义了一个控制器能认识使用的消息结构,而不管它们是通过何种网络进行通信的,它制定了消息域的格局和内容的公共格式,描述了一个控制器请求访问其它设备的过程,回应来自其它设备的请求,以及如何侦测并记录错误信息。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以完成信息和数据的交换与传送,使各种不同的公司和厂家的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与兼容ModBus协议的第三方设备之间可以连成工业网络,构建各种复杂的监控系统,并利于系统的维护和扩展,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的一种通用工业标准协议。

WB系列智能传感器采用ModBus-RTU通讯规约,支持组态王、Intouch、FIX、synall等流行软件,能与AB、西门子、施耐德、GE等多个国际著名品牌的设备及系统之间实现数据通信,特别适用于电力系统综合自动化,智能电力电子设备,智能楼宇,工业自动化等领域,是构建、扩建DCS系统或制造智能电力电子设备的理想功能部件。

二、维博Modbus-RTU 协议

WB系列智能传感器实现Modbus通信协议时,遵循Modbust通信过程,采用了MODBUS-RTU协议的命令子集,使用读寄存器命令(03)。 ①数据传输方式:

异步10位——1位起始位,8位数据位,2位停止位,无校验位。 ②数据传输速率:

19200BPS,9600BPS,4800BPS,2400BPS。(缺省波特率为9600BPS,不可修改,用户希望使用其他波特率时,请在定货时声明。) ③地址:

0~63,用户可通过传感器上的拨码开关随时进行设置。 ④主机请求数据报文格式:

主机发送 从机地址 功能码 起始地址 数据长度 CRC码 字节数 1 1 2 2 2 发送的信息 XX 03 0000 00XX XXXX 备 注 向地址为XX的从机要数据 读取寄存器 起始地址为0000 读取XX个数据(共2XX字节) 由主机计算得到CRC码 对于WB系列单元式智能传感器,主机请求数据的实际报文如下: WB1850A:01H,03H,00H,00H,00H,0DH,84H,0FH WB1852A:01H,03H,00H,00H,00H,0BH,44H,0DH

WB1854A:01H,03H,00H,00H,00H,09H,85H,CCH ⑤传感器响应要数命令报文格式:

从机响应 从机地址 功能码 数据长度 寄存器数据1 … 寄存器数据N CRC码 字节数 1 1 1 2 … 2 2 返回的信息 XX 03 XX DAT1 … DATN 备 注 来自地址为XX的从机 读取寄存器 XX字节(2倍数据个数) 传感器参数1数据内容 … 传感器参数N数据内容 XXXX 由从机计算得到CRC码 ⑥错误校验码(CRC校验):

主机或从机可用CRC校验码判别接收信息是否正确。由于总线上的电子噪声或一些其它干扰,信息在传输过程中可能会发生错误,接收一方可以使用CRC校验码判断接收到的信息帧是否正确,并放弃错误的信息帧,提高了通信系统的安全性和可靠性。

MODBUS通讯协议的CRC(冗余循环码)包含2个字节,即16位二进制数。发送设备计算CRC码,放置于发送信息帧的尾部。接收信息的设备将接收到的所有信息(含CRC码)重新计算CRC码,并判断该CRC码是否为0,如果为0,表示接收的信息帧正确无误,否则,则表明接收的信息帧有误,

在进行CRC计算时只用8个数据位,起始位及停止位都不参与CRC计算。

● CRC码的计算方法是:

1.预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器; 2.把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低 8位相异或,把结果放于CRC寄存器;

3.把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查右移后的移出位; 4.如果移出位为0:重复第3步(再次右移一位);

如果移出位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或; 5.重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理; 6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;

7.将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低 字节进行交换;

8.最后得到的CRC寄存器内容即为:CRC码。

⑦通信流程:

一、无电能数据时的通信过程 步骤 1 主机 动作 发送请求数据命令 命令 03H 传感器 步骤 动作 命令 接收主机命令并判断1 命令帧的格式和正确性 2 3 4

等待传感器响应帧或判断通信超时后退出通信 接收从机数据并判断数据帧的格式和正确性 处理接收到的数据或沉默 2 发送响应数据帧或沉默 03H 3 4

本文来源:https://www.bwwdw.com/article/0qlx.html

Top