【转载】Modbus协议基本知识点集锦

Modbus地址区的0x、1x、3x、4x各代表什么?如何区分和应用?
0x、1x、 3x、4x各是一片数据区,是Modbus协议规定的地址范围,各类地址是互相对应的,有些资料就以其第一个数字区分各类地址,即:
0x :离散量输出,可读/可写【对应PLC: DO】线圈类地址:00000~09999。使用功能码:01、05、15
1x :离散量输入16位,只读【对应PLC: DI】触点类地址:10000~19999。使用功能码:02
3x :输入寄存器16位,只读【对应PLC: AI】类地址:30000~39999。使用功能码:04
4x :保持寄存器,可读/可写【对应PLC: AO】类地址:40000~49999。使用功能码:03、06、16

功能码定义:
01(0x01 / 01H)读 - 线圈
02(0x02 / 02H)读 - 离散量输入
03(0x03 / 03H)读 - 保持寄存器
04(0x04 / 04H)读 - 输入寄存器
05(0x05 / 05H)写 - 单个线圈
06(0x06 / 06H)写 - 单个寄存器
15(0x0F / 0FH)写 - 多个线圈
16(0x10 / 10H)写 - 多个寄存器
同理,各类地址的数据区的Modbus功能码也是规定好的,不能乱用。如要操作0x地址数据区,就只能用规定的功能码01、05,而不能用其他功能码。所以,从各类地址的前缀就能知道它的数据区及功能码,反之亦然。
上述这些地址称为Modbus数据区地址,它是5位十进制地址。但在实际编程中,由于前缀的区分作用,所以只需说明后4位数,而且需转换为4位十六进制地址。
在单片机中实现时,需要定义4个数据区对应上述各类地址(长度可以缩短,视单片机RAM大小)。处理Modbus事务时,根据数据祯中的功能吗,再对对应的数据区进行操作(置位、复位、读数或写入数据)。具体过程看Modbus事务流程图。

常用modbus功能码:01、02、03、04、05、06、15、16共8个
这8个功能码可以操作四块分区,其中两块boolean(布尔变量)寄存器,两块整数寄存器。

4个分区有只读区和读写区,并且命名为 : 0x、1x、3x、4x

0x:形象的叫做线圈(coil status),意味着可读可写(获取状态,设置状态),用功能码01,05,15操作这部分的寄存器
1x:离散输入(inputs status),很明显这是一块只读区。只能用功能码02 操作
3x:输入寄存器(input registers),也是一块只读区,只能用功能码04操作
4x:保持寄存器(holding registers),这是一块可读可写的数据区,用功能码03、06、16 操作这部分的寄存器

两块整数寄存器可以按位操作,使用一个字节表示8位,每一位1代表开,0代表关

Modbus协议基础知识:Modbus通讯协议学习 - 认识篇_485modebus协议 4字节数据怎么表示-CSDN博客

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 电力系统是一个综合化的系统,作为一个熟练的电工,对于通信有着一定的认识。否则很多问题,我们将无从下手。首先我们从广...
    洪城小电工阅读 119,750评论 8 34
  • 一、Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制...
    lx_jian阅读 46,298评论 2 14
  • 概述 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化部门的一部分,现在Mo...
    得奕阅读 6,372评论 1 0
  • Modbus协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性、可扩充性和标准化使它成为一个通用工业...
    北国仕阅读 7,298评论 0 0
  • 一、背景 什么是ModbusModbus是在1970年末为可编程逻辑控制器通信开发的,Modbus是一种串行通信协...
    卜俊文阅读 29,761评论 10 12

友情链接更多精彩内容