线圈(Coils) | 用于表现装备的开/关状态,通常控制输出(如电机启停、灯开关等) | 1 位 | 读/写(可读和可写) | 读取:0x01 写入:0x05, 0x0F |
离散输入(Discrete Inputs) | 用于表现装备的输入状态(如传感器、按钮等),只读 | 1 位 | 只读 | 读取:0x02 |
保持寄存器(Holding Registers) | 用于存储装备的控制参数、配置数据或实时数据(如温度、湿度、速率等) | 16 位(2 字节) | 读/写(可读和可写) | 读取:0x03 写入:0x06, 0x10 |
输入寄存器(Input Registers) | 用于存储装备的输入数据(如传感器测量值),只读 | 16 位(2 字节) | 只读 | 读取:0x04 |
0x01 | 读取线圈(Read Coils) | 读取指定范围内的线圈状态(0 或 1) | 只读 | 二进制数据(线圈) |
0x02 | 读取离散输入(Read Discrete Inputs) | 读取指定范围内的离散输入状态(0 或 1) | 只读 | 二进制数据(离散输入) |
0x03 | 读取保持寄存器(Read Holding Registers) | 读取指定范围内的保持寄存器数据(16位寄存器的值) | 只读 | 16位数据(保持寄存器) |
0x04 | 读取输入寄存器(Read Input Registers) | 读取指定范围内的输入寄存器数据(16位寄存器的值) | 只读 | 16位数据(输入寄存器) |
0x05 | 写单个线圈(Write Single Coil) | 写入单个线圈的状态(0 或 1) | 读/写 | 二进制数据(线圈) |
0x06 | 写单个保持寄存器(Write Single Register) | 写入单个保持寄存器的值(16位数据) | 读/写 | 16位数据(保持寄存器) |
0x0F | 写多个线圈(Write Multiple Coils) | 写入多个线圈的状态(多个 0 或 1) | 读/写 | 二进制数据(线圈) |
0x10 | 写多个保持寄存器(Write Multiple Registers) | 写入多个保持寄存器的值(多个 16位数据) | 读/写 | 16位数据(保持寄存器) |
START(起始条件) | 1 | 起始信号,表现通讯开始(SDA拉低,SCL保持高电平)。 |
从装备地址 | 1 | 7位装备地址 + 1位读标志(1表现读操作)。 |
下令字节 | 1 | 主装备指定的下令字节,表现需要执行的读取操作(比方读取电压)。 |
ACK | 1 | 发送下令字节后,接收方发送ACK应答,表现下令字节已正确接收。 |
数据字节 | N | 从装备返回的数据字节,通常是多个字节(比方电压、温度等)。 |
NACK | 1 | 数据接收完毕后,主装备发送NACK,告诉从装备停止数据传输。 |
STOP(停止条件) | 1 | 停止信号,表现通讯结束,SDA从低电平跳到高电平,SCL保持高电平。 |
START(起始条件) | 1 | 起始信号,表现通讯开始(SDA拉低,SCL保持高电平)。 |
从装备地址 | 1 | 7位装备地址 + 1位写标志(0表现写操作)。 |
下令字节 | 1 | 主装备指定的下令字节,表现需要执行的操作(比方设置电压)。 |
数据字节 | N | 根据下令,传输1到多个字节的数据(比方设置输出电压)。 |
ACK | N | 每个字节传输后,接收方发送ACK应答,表现该字节已正确接收。 |
STOP(停止条件) | 1 | 停止信号,表现数据传输完毕,SDA从低电平跳到高电平,SCL保持高电平。 |
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |