因在作業中遇到以前的代碼讀取聚英PLC設備開關狀態失敗問題,所以就好好研究了一下ModBus協議,其中Modbus Poll發揮了重要作用,在此記錄一下Modbus Poll的使用方式
- 測驗說明
- 軟體版本
- 設備資訊
- 功能使用方式
- 連接
- 操作設備
- 準備作業
- 讀取Coils狀態
- 寫Coils狀態
- 寫Coils狀態之打開關閉
- 讀取Holding Registers狀態(施耐德PLC的IN口讀取方式)
- 讀取Discrete Inputs狀態(聚英PLC的IN口讀取方式)
- 額外說明
- 總結
測驗說明
軟體版本

設備資訊
施耐德、聚英且支持ModBus TCP/IP協議
功能使用方式
連接
-
點擊【Connection】選單,在彈出框中選擇【Connect…】
-
選擇連接型別【TCP/IP】
-
輸入設備IP,埠
-
點擊ok

-
沒有警告提示,連接成功

操作設備
準備作業
-
顯示通信資訊

-
點擊【SetUp】,選擇【Read/Write Deinition…】進入讀寫功能頁面

3.準備作業完成

讀取Coils狀態
- 在讀寫功能區中,Function選擇【01 ReadCoils】
- Address輸入Coils起始地址(聚英從0開始,施耐德從600開始,不對的話可以問設備廠商)
- Quantity輸入Coils個數(不確定寫1)
- 點擊【Read/Write Once】
- 可以在【通訊資訊】中看到發給PLC的指令,及PLC的回應;在【結果展示】中顯示狀態

寫Coils狀態
- 在讀寫功能區中,Function選擇【05 Write Single Coil】
- Address輸入Coils起始地址(聚英從0開始,施耐德從600開始,不對的話可以問設備廠商)
- Quantity輸入個數1
- 點擊【Read/Write Once】
- 可以在【通訊資訊】中看到發給PLC的指令,及PLC的回應;在【結果展示】中顯示狀態
注意:該功能只能關閉,不能打開,下面會介紹打開關閉方式

寫Coils狀態之打開關閉
- 點擊【Functions】,選擇【05:Write Single Coil…】進入寫單個Coil功能頁面
- Address輸入Coils起始地址(聚英從0開始,施耐德從600開始,不對的話可以問設備廠商)
- Value選擇On(打開)/Off(關閉)
- 點擊【send】
- 可以在【通訊資訊】中看到發給PLC的指令

讀取Holding Registers狀態(施耐德PLC的IN口讀取方式)
- 在讀寫功能區中,Function選擇【03 Read Holding Registers】
- Address輸入Holding Registers起始地址(聚英從0開始,施耐德從0開始,不對的話可以問設備廠商)
- Quantity輸入Holding Registers個數(不確定寫1)
- 點擊【Read/Write Once】
- 可以在【通訊資訊】中看到發給PLC的指令,及PLC的回應;在【結果展示】中顯示狀態

讀取Discrete Inputs狀態(聚英PLC的IN口讀取方式)
- 在讀寫功能區中,Function選擇【02 Read Discrete Inputs】
- Address輸入Discrete Inputs起始地址(聚英從0開始,施耐德從0開始,不對的話可以問設備廠商)
- Quantity輸入Discrete Inputs個數(不確定寫1)
- 點擊【Read/Write Once】
- 可以在【通訊資訊】中看到發給PLC的指令,及PLC的回應;在【結果展示】中顯示狀態

額外說明
選中【 Read/Write Enabled】點擊【Apply】后,會自動持續執行指令

總結
因作業需要只測驗了讀取Coils,讀取Discrete Inputs,讀取Holding Registers,寫單個Coil功能,其他功能未測驗,如需其他功能可以參考上面的操作,自行摸索
ModBus TCP/IP協議參考:https://blog.csdn.net/dhbfjh/article/details/119005572
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289804.html
標籤:其他
上一篇:Nginx詳細介紹、安裝與部署
