• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

通信协议——ModBusRTU

武飞扬头像
kaikai45
帮助1

通信协议详解——ModBusRTU

为方便理解,直接举例子说明。

例子:
假设,有一款流量计,本身有六个通道。
第一通道的瞬时流量,单输入寄存器,寄存器地址为1。
第二通道的瞬时流量,单输入寄存器,寄存器地址为2。
第三通道的瞬时流量,单输入寄存器,寄存器地址为3。
第四通道的瞬时流量,单输入寄存器,寄存器地址为4。
第五通道的瞬时流量,单输入寄存器,寄存器地址为5。
第六通道的瞬时流量,单输入寄存器,寄存器地址为6。
流量计每个通道的累计流量,双输入寄存器,寄存器地址为1001和1002。
流量计的使用模式,单保持寄存器,寄存器地址为11,寄存器16位数据中的第二位。
流量计的流量重置,单保持寄存器,寄存器地址位21,向该寄存器写16。

  1. 想要读取第三通道的瞬时流量
    学新通
  2. 想要读取流量计第四通道的累计流量
    学新通
  3. 想要修改第五通道的使用模式为设置模式(0——使用模式,1——设置模式)
    写某个位的情况需要在程序中进行一些数据处理,如移位,或操作,与操作。因为写的时候是按照字节写,若想操作字节中的某一位,必须保证其他位不变,因此需要先读目前数据,然后把对应位修改,组成新的数据进行写操作。
    读:
    学新通
    写:
    学新通
  4. 把第五通道的流量值重置
    学新通

功能码
一般情况下,支持ModBusRTU的硬件说明书中,都会对所使用的通信协议进行详细的说明,列举一些常见的:

  • 0x01:读取线圈寄存器。
  • 0x02:读取离散输入寄存器。
  • 0x03:读取保持寄存器。
  • 0x04:读取输入寄存器。
  • 0x05:写入单个线圈寄存器。
  • 0x06:写入单个保持寄存器。
  • 0x0f:写入多个线圈寄存器。
  • 0x10:写入多个保持寄存器。
  • 至于数据格式细节可参照对应硬件说明书。

PS
ModBusTCP和ModBusRTU相近,最大的区别是ModBusTCP在协议前面多了点东西。
有两个字节的事务处理标识,一般为00H 00H。
有两个字节的协议标识,一般为00H 00H。
还有两个字节的协议长度(为SlaveID之后),根据实际情况可为00H 06H,00H 09H以及其他。

如果对工业控制有兴趣,有问题需要交流,或者有项目需要合作,可扫描二维码进行详细沟通。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgakbbe
系列文章
更多 icon
同类精品
更多 icon
继续加载