Modbus的功能码。可以把它们当作是**“命令”**,每个命令告诉设备做不同的事情。比如在家里开关灯、调节空调温度,类似地,Modbus协议中的每个功能码就是一种操作设备的命令。
1. 功能码 01(读取开关状态--保持型寄存器--线圈--数字量(0,1))
- 是什么:告诉设备“告诉我这些开关是开着还是关着”。
- 举个例子:你想知道家里的灯(开关)是开着还是关着。你发出一个“读取开关状态”的请求,设备会返回灯是开着还是关着的结果。
- 举例:你想知道0号到5号的6个开关的状态。
2. 功能码 02(读取输入信号--输入型寄存器--线圈--数字量(0,1))
- 是什么:告诉设备“告诉我这些传感器的状态”,比如一些数字信号(如按钮的开关状态)。
- 举个例子:你想知道门上的传感器是否有信号(是否被打开)。你发出一个“读取传感器信号”的请求,设备会告诉你这些传感器的状态。
- 举例:你想知道10号到15号的6个传感器的状态。
3. 功能码 03(读取数值数据--保持型寄存器--寄存器--模拟量(23.56等))
- 是什么:告诉设备“告诉我这些数值数据”,比如温度、压力等数字数据。
- 举个例子:你想知道家里的温度是多少。你发出一个“读取温度数据”的请求,设备会告诉你温度是多少(例如20℃)。
- 举例:你想知道0号到3号的4个数值数据(例如温度或压力)的数值。
4. 功能码 04(读取输入数值--输入型寄存器--寄存器--模拟量(23.56等))
- 是什么:告诉设备“告诉我这些传感器的数值数据”,例如测量值(温度、湿度等)。
- 举个例子:你想知道一个温度传感器的温度是多少。你发出一个“读取传感器数据”的请求,设备会告诉你实际测量到的温度。
- 举例:你想知道100号到103号的4个传感器的数值(例如温度数据)。
5. 功能码 05(写入开关状态--数字量1)
- 是什么:告诉设备“开关这个设备”或“关闭这个设备”。这通常是用来控制设备的开关状态。
- 举个例子:你想开一个电灯。你发出一个“开灯”的命令,设备会把灯打开。
- 举例:你想把5号开关设为“开”。
6. 功能码 06(写入数值数据--模拟量2)
- 是什么:告诉设备“设置这个数值”。这通常是用来控制设备的设置,比如调节温度、设定阈值等。
- 举个例子:你想设置空调的温度为22℃。你发出一个“设定温度”的命令,设备会把温度设置为你想要的数值。
- 举例:你想设置10号的数值为100(比如设定温度或压力)。
总结:
- 功能码 1 和 2:用来读取开关或传感器的状态,像是“查看灯是开还是关”或者“查看传感器的状态”。
- 功能码 3 和 4:用来读取数值数据,像是“查看温度”或者“查看传感器的测量值”。
- 功能码 5 和 6:用来设置或写入设备状态,像是“开灯”或者“设置温度”。
- 功能码 01 是用来读取设备的 输出线圈(Coils) 状态,即设备本身的开关状态(例如继电器开关、指示灯状态等)。
- 功能码 02 是用来读取设备的 输入信号(Discrete Inputs) 状态,即外部传感器或开关的状态信号(例如温度传感器、外部控制信号等)。