MODBUS常用功能码学习及实例

本文详细介绍了Modbus协议中常见的功能码及其应用场景,并通过实例演示了如何使用这些功能码进行数据读写操作。

Modbus常用功能码学习及实例

一.MODBUS寄存器种类说明

虽然MODBUS支持诸多功能码,但其中只涉及到四种寄存器:线圈寄存器、离散输入寄存器、保持寄存器、输入寄存器。
只要搞清楚寄存器的本质和功能码的联系,其实理解功能码就很简单。

寄存器种类 读写状态 位操作字操作 适用功能码
线圈寄存器 读/写 01H(读); 05H(写单个位); 0FH(写多个位)
离散输入寄存器 只读 02H
保持寄存器 读/写 03H(读); 06H(写单个字节); 0FH(写多个字节)
输入寄存器 只读 04H

线圈寄存器:可以类比为开关量,每个bit都对应一个信号的开关状态。所以一个字节可以同时控制8路的信号。比如控制外部8路io的高低。 线圈寄存器支持读也支持写,比如控制或者读取电磁阀的开关志状态。对应的功能码有:0x01 0x05 0x0f

离散输入寄存器:离散输入寄存器相当于线圈寄存器的只读模式,每个bit表示一个开关量,而他的开关量只能读取,不能够写入。只能通过外部设定改变输入状态,比如我可以读取外部按键的按下还是松开,但是控制不了按键。对应的功能码有:0x02

保持寄存器:寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。比如我不到那可以读取传感器报警上限下限,也可以设置它的大小。对应的功能码有:0x03 0x06 0x10

输入寄存器:输入寄存器相当于保持寄存器的只读模式,也是只支持读而不能写。一个寄存器也是占据两个字节的空间。比如通过读取输入寄存器获取现在的模拟量采样值。对应的功能码有 0x04

二.MODBUS部分功能码

MODBUS支持很多功能码,但是在实际应用的时候常用的也就那么几个。

上面介绍了Modbus的四个寄存器种类:线圈寄存器、离散输入寄存器、保持寄存器、输入寄存器,从寄存器角度理解了对应功能码。下面列出常用功能码,具体如下:

功能码 名称 数据类型 作用
0x01 读线圈寄存器 取得一组逻辑线圈的当前状态(ON/OFF )
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值