美文网首页
modbus协议中的线圈、寄存器等的解释

modbus协议中的线圈、寄存器等的解释

作者: Neil_Wong | 来源:发表于2021-09-14 15:41 被阅读0次

一条MODBUS-RTU报文,例如:01 06 00 01 00 17 98 04

    01             06            00 01           00 17          98 04
  从机地址          功能码          数据地址          数据           CRC校验

其中,功能码一共有8种

0x01: 读线圈寄存器

0x02: 读离散输入寄存器

0x03: 读保持寄存器

0x04: 读输入寄存器

0x05: 写单个线圈寄存器

0x06: 写单个保持寄存器

0x0f: 写多个线圈寄存器

0x10: 写多个保持寄存器
image.png

这其中有涉及到线圈、离散输入、保持、输入四种寄存器。

  • 线圈寄存器:实际上就可以类比为开关量(继电器状态),每一个bit对应一个信号的开关状态。所以一个byte就可以同时控制8路的信号。比如控制外部8路io的高低。 线圈寄存器支持读也支持写,写在功能码里面又分为写单个线圈寄存器和写多个线圈寄存器。对应上面的功能码也就是:0x01 0x05 0x0f

  • 离散输入寄存器:如果线圈寄存器理解了这个自然也明白了。离散输入寄存器就相当于线圈寄存器的只读模式,他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。比如我读取外部按键的按下还是松开。所以功能码也简单就一个读的 0x02

  • 保持寄存器:这个寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。一般对应参数设置,比如我我设置时间年月日,不但可以写也可以读出来现在的时间。写也分为单个写和多个写,所以功能码有对应的三个:0x03 0x06 0x10

  • 输入寄存器:这个和保持寄存器类似,但是也是只支持读而不能写,一般是读取各种实时数据。一个寄存器也是占据两个byte的空间。类比我我通过读取输入寄存器获取现在的AD采集值。对应的功能码也就一个 0x04

相关文章

  • modbus基础

    modbus协议中的线圈、寄存器等的解释[https://blog.csdn.net/lingshi75/arti...

  • modbus协议中的线圈、寄存器等的解释

    一条MODBUS-RTU报文,例如:01 06 00 01 00 17 98 04 其中,功能码一共有8种...

  • 壹:Modbus协议功能码及格式简述

    Modbus寄存器种类说明: 1:线圈状态输出端口,可设定端口的输出状态,也可以读取该位的输出状态;2:离散输入状...

  • modbus4j初次使用总结

    因为要开发一套监控系统,涉及到与监控设备间通过modbus协议进行通讯 先解释一下什么是modbus协议 Modb...

  • Modbus功能码

    1 简述 Modbus寄存器分为四种,如表1.1所示: 表1.1 寄存器分类 2 常用功能码 Modbus中常用的...

  • Modbus 通讯开发资料总结

    1 主要内容 Modbus 通讯协议简介 Modbus 开发常用测试软件和库 2 Modbus协议是什么?Modb...

  • MODBUS RTU协议理解

    一、MODBUS 工业上常用的一种串口通讯协议,协议包括RTU、TCP、ASCII;其中MODBUS RTU协议最...

  • python 玩转 modbus

    modbus_tk :完整modbus协议栈的实现,支持modbus tcp/rtu{1.提供slave模拟器,即...

  • 【原创】CSerialPort实现Modbus协议串口编程

    ModBus协议 Modbus协议是一种标准的工业控制通讯协议,无论是串口通讯,以太网通讯还是CAN通讯,在数据层...

  • Modbus协议和应用开发介绍

    因业务需要了解Modbus协议的使用,因此对Modbus的协议,以及相应的C#处理应用进行了解,针对协议的几种方式...

网友评论

      本文标题:modbus协议中的线圈、寄存器等的解释

      本文链接:https://www.haomeiwen.com/subject/vwmcgltx.html