Modbus全部功能码及部分名词译解
声明:本人的博客均为原创,未经允许不得转载。
网上搜寻了一大堆资料,基本能找到的资料都只介绍了几种常用功能码。分别为01H-06H,0FH-10H。找到的中文规范说明也仅仅只多出了14H-17H以及2BH的说明。加之中文版机翻,实在难以阅读。因此只得去寻找modbus英文原版说明书。
功能码共分为三类:公共功能码、用户定义功能码以及保留功能码。公共功能码的范围为0x01-0x40、0x49-0x63、0x6F-0x7F。用户定义功能码范围为0x41-0x48、0x64-0x6E。公共功能码能保证其唯一的功能。而用户定义功能码相当于自设,不能保证某个码用在别处还是一样的功能。通常情况下我们只使用公共功能码。
首先是中英文对照,以及简单解释。个人翻译,有不当之处还请指出。此处仅列出了英文说明书目录中包含的内容,部分子项不在此列出。详情请看具体条目。
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 .)
需要补充说明的是,英文说明书中就只包含了这些,更完整的版本可见 https://www.cnblogs.com/still-smile/p/14789844.html,翻译和解释上略有区别但本质上都一样。但该博客额外提供了0x09-0x10、0x0d-0x0e的说明。
附上原图:
Subcode为子功能码,以后再具体介绍。
现对以上目录中的专有名词进行解释:
Discrete Inputs:离散输入量
离散输入量指输入并非是以时间为自变量的连续函数,而是一个个孤立的点。大多来自于采样的信号。
Holding Registers:保持寄存器
Input Registers:输入寄存器
Coils:线圈
Serial Line:串行线
Exception Status:异常状态
Comm Event Counter:通信事件计数器
Comm Event Log:通信日志
FIFO Queue:先进先出序列
Encapsulated Interface Transport:封装接口传输
本文来自博客园,作者:河城荷取,未经本人允许不得转载,转载请注明原文链接:https://www.cnblogs.com/Kawashiro-Nitori/p/17612010.html