首次发布 -丰年资本超10亿元基金完成首轮融资
06-17
ModBus通信协议分为RTU协议和ASCII协议。
下面简单介绍一下ModBus RTU协议如下: 1.通讯协议 (1)通讯传输方式: 通讯传输分为独立的信息头和发送编码数据。
以下通讯传输方式定义也兼容 MODBUS RTU 通讯协议: 编码 8 位二进制 起始位 1 位 数据位 8 位 奇偶校验位 1 位(偶校验位) ) 停止位 1 位 错误检查 CRC(冗余循环码) 初始结构 = ≥4 字节时间 地址代码 = 1 字节 功能代码 = 1 字节 数据区域 = N 字节 错误校验 = 16 位 CRC 码 结束结构 = ≥4 个字节的时间 地址码:地址码是通信节传输的第一个字。
该字节表示具有用户设定的地址码的从机将接收主机发送的信息。
并且每个从机都有一个唯一的地址码,响应反馈以自己的地址码开始。
主机发送的地址码表示要发送到的从机地址,从机发送的地址码表示发回的从机地址。
功能码:通讯传输的第二个字节。
ModBus 通信协议定义了从 1 到 1 的功能编号。
本仪器仅使用部分功能码。
作为主机请求发送,功能代码用于告诉从机要执行什么操作。
作为从机响应,从机发送的功能码与主机发送的功能码相同,表示从机已响应主机的操作。
如果从机发送的功能码最高位为1(例如功能码同时很大),则说明从机没有响应操作或者存在传输错误。
数据区:根据功能码的不同,数据区也不同。
数据区域可以是实际值、设定点或从主站发送到从站或从从站发送到主站的地址。
CRC 码:两字节错误检测码。
(2) 通讯协议: 当向仪表发送通讯命令时,符合相应地址码的设备接收到通讯命令,去掉地址码,读取信息,如果没有错误,执行相应的任务;然后执行结果返回给发送者。
返回的信息包括地址码、执行动作的功能码、执行动作后的结果数据以及错误校验码。
如果发生错误,则不会发送任何信息。
1.信息帧结构 地址码功能码数据区错误校验码 8位8位N×8位16位 地址码:地址码是信息帧的第一个字节(8位),从0到。
该字节表示具有用户设置的地址的从机将接收主机发送的信息。
每个从机必须有唯一的地址码,只有与地址码匹配的从机才能响应环回。
当从机发回信息时,相应的地址码表明信息来自哪里。
功能码:主机发送的功能码告诉从机要执行什么任务。
表1-1中列出的功能码都有具体的含义和操作。
代码含义操作 03 读取数据,读取当前寄存器中的一个或多个二进制值 06 复位单个寄存器并将设置的二进制值写入单个寄存器 数据区:数据区包含从机需要执行什么动作或者从机收集到的返回信息。
这些信息可以是数值、参考地址等。
例如,如果功能码告诉从机读取寄存器的值,则数据区必须包含要读取的寄存器的起始地址和读取长度。
对于不同的从机,地址和数据信息是不同的。
错误校验码:主机或从机可以通过校验码来判断接收到的信息是否有错误。
有时,由于电子噪声或其他干扰,信息在传输过程中会发生微妙的变化。
错误校验码确保主机或从机不会处理传输过程中出现错误的信息。
这提高了系统的安全性和效率。
错误检查采用CRC-16检查方法。
注:信息帧的格式基本相同:地址码、功能码、数据区、错误校验码。
2。
错误检查 冗余循环码 (CRC) 包含 2 个字节,即 16 位二进制。
CRC 码由发送设备计算并放置在发送信息的末尾。
接收到信息的设备重新计算接收到的信息的CRC码,并比较计算出的CRC码是否与接收到的CRC码相匹配。
如果两者不匹配,就会发生错误。
CRC 码的计算方法是先将所有 16 位寄存器预置为 1,然后逐步处理各个 8 位数据信息。
计算CRC码时,只有8个数据位、起始位和停止位,如果有奇偶校验位,还包括奇偶校验位,不参与CRC码计算。
计算CRC码时,将8位数据与寄存器中的数据进行异或,结果向低位移动一个字节,最高位补0,然后检查最低位。
如果最低位为1,则将寄存器的内容与预设数进行异或。
如果最低位为0,则不进行异或运算。
这个过程重复8次。
第 8 次移位后,接下来的 8 位与当前寄存器的内容进行异或。
该过程如上重复8次。
当所有数据信息处理完毕后,最终寄存器的内容就是CRC码值。
CRC码中的数据以低字节在先的方式发送和接收。
计算CRC码的步骤为: 预设的16位寄存器为十六进制FFFF(即全1)。
将此寄存器称为 CRC 寄存器; 将前 8 位数据与 16 位 CRC 寄存器的低位进行异或,结果放入 CRC 寄存器; 将寄存器内容右移一位(向低位),最高位补0,检查最低位; 如果最低位为0:重复步骤3(再次移位);如果最低位为 1:将 CRC 寄存器与多项式 A() 进行异或; 重复步骤3和4,直到右移8次,这样整个8位数据就处理完了; 重复步骤2到5处理下一个8位数据; 最终的CRC寄存器就是CRC码。
3.功能码03,读取点及返回值: 仪表采用Modbus RTU通讯协议。
使用通讯命令,可以进行读取点(“保持寄存器”)或返回值(“输入寄存器”)的操作。
保持寄存器和输入寄存器都是 16 位(2 字节)值,最高有效位在前。
这样仪器使用的读取点和返回值都是2个字节。
一次最多可以读取60个寄存器。

由于有些可编程控制器不使用功能码03,因此使用功能码03作为读取点和返回值。
从机响应的命令格式为从机地址、功能码、数据区和CRC码。
数据区中的寄存器数据每两个字节为高字节在前。
4。
功能码06,单点保存 主机使用该命令将单点数据保存到仪器内存中。
从站也使用此功能代码将信息发送回主站。
2。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-18
06-18
06-18
06-18
06-18
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现