首页 > 编程知识 正文

常用的modbus功能码有哪些,modbus协议定义了哪三种功能码

时间:2023-05-05 04:41:57 阅读:179112 作者:4584

modbus完全支持许多功能代码,但实际上在APP应用中经常使用的只有它。 具体情况如下。

0x01:读线圈寄存器

读取0x02:离散输入寄存器

0x03:读保持寄存器

0x04:读取输入寄存器

0x05:写入单线圈寄存器

0x06:写入单一保持寄存器

0x0f:写多个线圈寄存器

0x10:写入多个保持寄存器

如上所述,共有8种功能代码。 它包括线圈、离散输入、保持、输入4种寄存器。 因为不知道这个名字是谁起的,所以有点难懂,让人眼花缭乱。 其实你看清他的本质很容易。 以下,分别进行说明:

线圈寄存器实际上可以与接通量类比,没有与一个信号的开关状态对应的位。 一个byte可以同时控制8路信号。 例如控制外部8路io的高低。 线圈寄存器可读写,按功能码写可分为写单个线圈寄存器和写多个线圈寄存器。 与以上功能代码对应的是0x010x050x0f

离散输入寄存器。 如果线圈寄存器理解了这个就自然明白了。 离散的输入寄存器相当于线圈寄存器的只读模式,他也每bit显示一个导通量,但他的导通量只能读取输入的开关信号,不能写入。 例如,读取是按下还是释放外部按钮。 所以功能代码也能简单地用一个代码读取0x02

保持寄存器,该寄存器的单位不是bit,而是可以存储两个byte,即具体的数据量,可以读写。 例如,我可以设定年月日,写现在的时间也可以读。 写入也分为单一写入和多个写入,因此功能代码有对应的3个。0x030x060x10

输入寄存器,只剩下这最后一个。 这与保持寄存器相似,但只支持读取,不能写入。 一个寄存器也占用了两个byte的空间。 模拟我读取输入寄存器获取当前的AD采集值。 对应的功能代码也是0x04

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。