Modbus 0x0001 1x0001 3x0001 4x0001 他们之间的关系?

本文详细解释了Modbus协议中不同地址前缀(0x、1x、3x、4x)所代表的意义及其对应的功能码,介绍了如何通过地址前缀判断数据区类型及操作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 
 
 
 
0x0001---数字量输出 功能码01/05   这是啥意思?
1x0001---数字量输入 功能码02
3x0001---读寄存器  功能码04
4x0001---写寄存器 功能码03/06
0x  1x  3x  4x  这是什么16进制还是10进制,与Modbus啥关系?
0x、1x、 3x、4x其实各是一片数据区,是Modbus协议规定的地址范围,即:
线圈(DO)地址:00000~09999 
触点(DI)地址:10000~19999
输入寄存器(AI)地址:30000~39999
输出寄存器(AO)地址:40000~49999
 由于上述各类地址是唯一对应的,因此有些资料就以其第一个数字区分各类地址,即:0x代表线圈(DO)类地址,1x代表触点(DI)类地址、 3x代表输入寄存器(AI)类地址、4x代表输出寄存器(AO)类地址。
 同理,各类地址的数据区的Modbus功能码也是规定好的,不能乱用。如要操作0x地址数据区,就只能用规定的功能码01/05,而不能用其他的功能码。
 所以,从各类地址的前缀就能知道它的数据区及功能码,反之亦然。  

上述这些地址称为Modbus数据区地址,它是5位十进制地址。但在实际编程中,由于前缀的区分作用,所以只需说明后4位数,而且需转换为4位十六进制地址。

  在单片机中实现时,需要定义4个数据区对应上述各类地址(长度可以缩短,视单片机RAM大小)。处理Modbus事务时,根据数据祯中的功能吗,再对对应的数据区进行操作(置位、复位、读数或写入数据)。具体过程看Modbus事务流程图。
MODBUS通讯组态说明 仪表采用标准modbus通讯协议(读写部分数据) 格式为: 8位数据位,无奇偶校验,1位停止位。 在使用组态软件时,须选用的设备为modicon(莫迪康)的PLC,Modbus-RTU地址型。 数据为整型16位。 16路数据从寄存器00开始到16。 使用组态王寄存器从4001开始到4016。(对于有些组态软件,可能从3001开始) 参数代号 含义 4x00011路测量值 4x0002 第2路测量值 4x00033路测量值 。。。 。。。 。。。 。。。 4x0016 第16路测量值 例:读地址为1的仪表的第1路测量值(PV1=1000值) 发送数据为 01 03 00 00 00 01 84 0A (其中01 是仪表地址,03是功能号,00 00是寄存器起始地址,00 01 表示读一个 数,84 0A是校验码。如果要读第1、2路测量值两个数据,则可以发送,01 03 00 00 00 02 C4 0B 返回数据为 01 03 02 03 E8 B8 FA (其中03 E8—1000)。 以下为通讯测试软件设置说明: 对于测试软件中的参数设置,见上图, 串口:以电脑串口号为准 波特率:仪表波特率一致 数据位:8位 奇偶校验位:无 停止位:1 读数据指令:0X030000000Y 其中:0X指仪表的地址,以仪表的地址为准,如为1,则X=1 0Y指读取仪表数据的路数,如8路数据则Y=8。 Registet Size:2 Byte Sign/Unsign:e有无符号 Decimal:小数点,一般为1,即1位有效位。 如数值123,如Decimal值为0,测显示123.000 如Decimal值为1,测显示12.300
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值