0x06:写单个保持寄存器在一个远程设备中写一个保持寄存器。请求:MBAP 功能码 寄存器地址H 寄存器地址L 寄存器值H 寄存器值L(共12字节)响应:MBAP 功能码 寄存器地址H 寄存器地址L 寄存器值H 寄存器值L(共12字节)如:向地址是0x0000的寄存器写入数据0x000A00 01 00 00 00 06 01 06 00 00 00 0A回:...
写入多个线圈 0x0F 那么只能是 输出寄存器 写入多个寄存器 0x10 那么只能是 输出寄存器 ModbusRTU 报文 读 发送接收(解析) 0x01010100 0000 0ABC 0D01010200 00B9 FC发送:01--站点,01--功能码(读输出线圈),00 00从哪个地址开始读 ,00 0A表示读几个,BC 0DCRC校验接收01--站点, 01--功能码(输出线圈),...
写单个线圈、写单个保持寄存器: 写多个线圈、写多个保持寄存器: 其中,n为写入值的字节数。 modbus TCP实例 假设我们有一个Modbus TCP设备,其IP地址为192.168.1.100,端口号为502。我们可以使用一个Modbus TCP客户端来与该设备进行通信。 例如,我们想要读取该设备上寄存器地址为0的16位整数值,我们可以发送以下Modbus T...
输入寄存器:客户端只能读取它,最小单位是16比特字,它也可以传输8位数据。传输超过16比特数据的时候需要多个输入寄存器,现实中的温度,电压等数据可通过输入寄存器来传输。 保持寄存器:客户端可以写入或者读取,最小单位是16比特字,可以设置一些参数,以及现实中的电压等物理量。 ModbusTCP数据格式 一个正常的ModbusTCP数据...
事务标识为1,协议是modbus-tcp协议,数据长度是:6,从站号是1。 需要注意的是MODBUS协议是一个大端的协议,前两个byte 00 01代表0x1 , 因此Transaction ID=1。而长度字段00 06代表0x6, 即UnitID和PDU的长度总和为6。 PDU部分相对复杂一些,主要是对一些寄存器进行读写操作。 modbus的操作对象有四种:线圈寄存器、...
MODBUS TCP协议实例数据帧详细分析 1.简介 2.ModbusTCP数据帧 2.1.报文头MBAP 2.2.帧结构PDU 3.ADU详细结构 3.1. 0x01:读线圈 3.2. 0x02:读离散量输入 3.3. 0x03:读保持寄存器 3.4. 0x04:读输入寄存器 3.5. 0x05:写单个线圈 3.6. 0x06:写单个保持寄存器 ...
功能码01H读取Modbus从机中线圈寄存器的状态,可以是单个寄存器,或者多个连续的寄存器。 发送 假设从机地址为01H,读取的线圈寄存器的起始地址为0017H,读取38个寄存器,指令如下所示: 读线圈寄存器指令 响应 各线圈的状态与数据内容的每个bit对应,1代表ON,0代表OFF。如果查询的线圈数量不是8的倍数,则在最后一个字节的...
ModbusTCP的数据帧可分为两部分:MBAP+PDU。 报文头MBAP MBAP为报文头,长度为7字节,组成如下: 帧结构PDU PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。 功能码 Modbus的操作对象有四种:线圈、离散输入、保持寄存器、输入寄存器。
Modbus TCP数据帧 ModbusTCP的数据帧可分为两部分:MBAP+PDU。 报文头MBAP MBAP为报文头,长度为7字节,组成如下: 帧结构PDU PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。 功能码 Modbus的操作对象有四种:线圈、离散输入、保持...
03: 表示读保持寄存器功能码 00 00: 表示客户端读取的寄存器起始地址 00 02: 表示读取的寄存器值个数(由于为02,所以会读出寄存器00h和01h的值) 返回值如下图所示: 服务器返回值 01 02 00 00 00 07 01 03 04 04 7B 00 FF 01 02: 服务器回应的检验信息 00 00: 表示tcp/ip 的协议的modbus的协议 ...