一、硬件設(shè)備
1.PLC: FC4A-C24R2
2.RS485 通信卡: FC4A-PC3



4.編寫(xiě)發(fā)送命令







至此, Modbus RTU 寫(xiě)命令(功能碼 06)的發(fā)送語(yǔ)句就完成了。如果需要的話還可以編寫(xiě)對(duì)應(yīng)的接收命令。
5.編寫(xiě)接受命令
上個(gè)例程(功能碼 06)為寫(xiě)一個(gè)寄存器,該指令并非必須需要接收其返回報(bào)文。但下面的例程(功能碼 03)為讀取多個(gè)寄
存器, 該指令必須要接受返回報(bào)文才能得到需要讀取的數(shù)據(jù)寄存器的值,為此就需要編寫(xiě)接收命令。

上圖為讀多個(gè)寄存器指令的發(fā)送命令, 該指令的內(nèi)容意為:
第一行“ 01”“ 03”代表了向 MODBUS RTU 從站 01 發(fā)送讀多個(gè)寄存器(功能碼 03)命令。
第二行“ 00”“ 01”代表了讀取目標(biāo)寄存器的起始地址為 0000H。
第三行“ 00”“ 01” 代表了連續(xù)讀取寄存器的數(shù)量為 1 個(gè)。
第四行“ [BCC M-2 01]”代表了 MODBUS RTU 的 BCC 校驗(yàn)。


上圖為讀多個(gè)寄存器指令的接收命令, 該指令的內(nèi)容意為:
第一行“ 01”“ 03”代表了向 MODBUS RTU 從站 01 發(fā)送讀多個(gè)寄存器(功能碼 03)命令。(同發(fā)送命令第一行)
第二行“ 02”代表了 MODBUS RTU 從站的回應(yīng)信息中數(shù)據(jù)的字節(jié)個(gè)數(shù)為 2 個(gè)字節(jié)。(字節(jié)個(gè)數(shù)=之前讀取多個(gè)寄存器發(fā)送命令中的讀取寄存器數(shù)量 X2)
第三行“ <D0001 -2 01>”代表了讀取過(guò)來(lái)的 0000H 寄存器(第一個(gè))的數(shù)據(jù)的存放地址為 D0001。(如同時(shí)讀取了多個(gè)寄存器則需重復(fù)該行存放于不同的地址)
第四行“ [BCC M-2 01]”代表了 MODBUS RTU 的 BCC 校驗(yàn)。
注: 本文僅為最為簡(jiǎn)單的 MODBUS RTU 指令的實(shí)現(xiàn),所以文中的接收命令都為正常的回應(yīng)信息格式,如有需要還需另外編寫(xiě)異常的回應(yīng)信息接收指令,以判斷發(fā)生了何種錯(cuò)誤。










