字典翻译 问答 其它 【Modbus0x00011x00013x00014x0001他们之间的关系?0x0001---数字量输出功能码01/05这是啥意思?1x0001---数字量输入功能码023x0001---读寄存器功能码044x0001---写寄存器功能码03/060x1x3x4x这是什么1】
问题标题:
【Modbus0x00011x00013x00014x0001他们之间的关系?0x0001---数字量输出功能码01/05这是啥意思?1x0001---数字量输入功能码023x0001---读寄存器功能码044x0001---写寄存器功能码03/060x1x3x4x这是什么1】
问题描述:

Modbus0x00011x00013x00014x0001他们之间的关系?

0x0001---数字量输出功能码01/05这是啥意思?

1x0001---数字量输入功能码02

3x0001---读寄存器功能码04

4x0001---写寄存器功能码03/06

0x1x3x4x这是什么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事务流程图.
点击显示
其它推荐
热门其它推荐
  • 其它