一、硬件设备
1.PLC: FC4A-C24R2
2.RS485 通信卡: FC4A-PC3
4.编写发送命令
至此, Modbus RTU 写命令(功能码 06)的发送语句就完成了。如果需要的话还可以编写对应的接收命令。
5.编写接受命令
上个例程(功能码 06)为写一个寄存器,该指令并非必须需要接收其返回报文。但下面的例程(功能码 03)为读取多个寄
存器, 该指令必须要接受返回报文才能得到需要读取的数据寄存器的值,为此就需要编写接收命令。
上图为读多个寄存器指令的发送命令, 该指令的内容意为:
第一行“ 01”“ 03”代表了向 MODBUS RTU 从站 01 发送读多个寄存器(功能码 03)命令。
第二行“ 00”“ 01”代表了读取目标寄存器的起始地址为 0000H。
第三行“ 00”“ 01” 代表了连续读取寄存器的数量为 1 个。
第四行“ [BCC M-2 01]”代表了 MODBUS RTU 的 BCC 校验。
上图为读多个寄存器指令的接收命令, 该指令的内容意为:
第一行“ 01”“ 03”代表了向 MODBUS RTU 从站 01 发送读多个寄存器(功能码 03)命令。(同发送命令第一行)
第二行“ 02”代表了 MODBUS RTU 从站的回应信息中数据的字节个数为 2 个字节。(字节个数=之前读取多个寄存器发送命令中的读取寄存器数量 X2)
第三行“ <D0001 -2 01>”代表了读取过来的 0000H 寄存器(第一个)的数据的存放地址为 D0001。(如同时读取了多个寄存器则需重复该行存放于不同的地址)
第四行“ [BCC M-2 01]”代表了 MODBUS RTU 的 BCC 校验。
注: 本文仅为最为简单的 MODBUS RTU 指令的实现,所以文中的接收命令都为正常的回应信息格式,如有需要还需另外编写异常的回应信息接收指令,以判断发生了何种错误。