Modbus全功能码纲要(含非常用部分)

发布时间 2023-08-08 10:46:44作者: 河城荷取

声明:本人的博客均为原创,未经允许不得转载。

网上搜寻了一大堆资料,基本能找到的资料都只介绍了几种常用功能码。分别为01H-06H,0FH-10H。找到的中文规范说明也仅仅只多出了14H-17H以及2BH的说明。加之中文版机翻,实在难以阅读。因此只得去寻找modbus英文原版说明书。现作出如下简单归纳和说明:

首先是中英文对照,以及简单解释。个人翻译,有不当之处还请指出。此处仅列出了英文说明书目录中包含的内容,部分子项不在此列出。详情请看具体条目。

0x01 读线圈状态(Read Coils)

0x02 读离散输入状态(Read Discrete Inputs )

0x03 读保持寄存器(Read Holding Registers )     

0x04 读输入寄存器(Read Input Registers)

0x05 写单线圈(Write Single Coil )

0x06 写单寄存器(Write Single Register)

0x07 读取异常状态(限串行线)(Read Exception Status (Serial Line only) )

0x08 通信系统诊断(限串行线)(Diagnostics (Serial Line only) )

0x09-0x0A无

0x0B 获取串行通信事件计数器(Get Comm Event Counter (Serial Line only) )

0x0C 获取串行通信事件日志 ( Get Comm Event Log (Serial Line only) )

0x0D-0x0E无

0x0F 写多个线圈(Write Multiple Coils)

0x10 读多个线圈(Write Multiple registers)

0x11 报告服务器ID(仅串行线)(Report Server ID (Serial Line only) )

0x12-0x13无

0x14 读文件记录(Read File Record )

0x15 写文件记录(Write File Record)

0x16 带屏蔽字写入寄存器(Mask Write Register )

0x17 读/写多个寄存器(Read/Write Multiple registers)

0x18 读取先进先出(FIFO)队列(Read FIFO Queue)

0x19-0x2A无

0x2B 封装接口传输(Encapsulated Interface Transport .)

0x2C-0xFF无

 

现对以上目录中的专有名词进行解释:

Discrete Inputs:离散输入量

离散输入量指输入并非是以时间为自变量的连续函数,而是一个个孤立的点。大多来自于采样的信号。

Holding Registers:保持寄存器

保持寄存器是一种在MODBUS通信协议中使用的1数据存储单元,可以存储16位整数值。在MODBUS协议中,保持寄存器的地址从0开始,每个寄存器占用两个字节。
Input Registers:输入寄存器
与保持寄存器类似,输入寄存器也是16位的存储单元,用于存储设备的输入数据。地址从0开始,每个寄存器占用两个字节。输入寄存器是只读的,值可以由外部设备或传感器实时更新,不能直接写入。
Coils:线圈
在MODBUS通信协议中,线圈(Coil)是一种用于控制设备的开关状态的数据单元。线圈可以是开关、继电器或其他可控制的设备。
 Serial Line:串行线
串行线用于连接计算机与外部设备,可以使用不同的物理接口,如RS-232、RS-485、USB等。与并行线(Parallel Line。)相对,,串行线路通过逐位地传输数据,将数据位、起始位、停止位和可能的校验位组合在一起,以形成一个完整的数据帧。
Exception Status:异常状态
一般情况下设备自带8位异常输出。
Comm Event Counter:通信事件计数器
用于统计发生在通信系统中的特定事件的次数。 通信事件可以是各种类型的事件,例如通信错误、超时、重传等。通过记录这些事件的次数。
Comm Event Log:通信日志
此处的通信日志包括状态字、事件计数、消息计数和事件字节字段。
FIFO Queue:先进先出序列
一种数据结构,用于存储和管理数据项。它遵循先进先出的原则,即最先进入队列的数据项将首先被处理或移出队列。在FIFO Queue中,新的数据项被添加到队列的末尾,而从队列中移出数据项时,总是从队列的开头移出。这确保了先进入队列的数据项将首先被处理。
Encapsulated Interface Transport:封装接口传输
封装接口传输是是一种用于在不同网络层之间透明传输数据的协议。
 
功能码的具体作用,应答请求等包括部分功能码的子功能码,就留待下期更新吧。