由第一章 可知道如何透過第三方軟體以modbus tcp和PLC連線,再來就是實際用第三方軟體讀取或寫入PLC暫存內容.以測試DELTA PLC SV2為例!
在開始測試前,要先了解MODBUS TCP 資料封包結構(有另一章節有解說差異性),如此才能推算要求或回覆的資料是什麼?
再來實際讀寫測試!
1. 首先大略說明要使用的測試軟體QModMaster一些設定
 |
1.ModBus 模式: 有TCP 和RTU可選用,當用串列傳輸時要選擇RTU
2.Slave Addr: 當連接複數個裝置時,看是要和哪個裝置連結就要設定這個
3.掃描速率: 這一套軟體可以用單次讀寫 或連續讀寫,這一項設定就是用來設定連續讀寫的間隔時間
4.功能碼:設定是要對裝置讀或寫入 暫存區或線圈
5.起始位址(十進制/十六進制):設定裝置的位址(比如要裝置規劃給線圈或資料暫存區的記憶體位址)
6.Number of input :設定可顯示在觀察區的暫存器數量,如箭頭所示!
7.Date Format : 設定暫存器顯示的資料格式 |
1.首先由PLC操作手冊(程式篇)的PLC裝置位址這一章當中,可得知裝置通訊位址
2.以輸入點X0為例,對應的裝置通訊位址是0400,所以如下設定
 |
| 因為設定可觀察X0~X3,所以可得知這四個都沒有輸入 |
 |
X0有輸入所以觀察區第一個顯示1,另外在右邊視窗
A行是軟體成功和裝置連結到
B行是QModMaster下指令讀取X0~X3狀態,這時X0是沒輸入
C行是QModMaster下指令讀取X0~X3狀態,這時X0是有輸入的
箭頭的部分左邊2BYTE是由Client傳送的識別碼,server端會回覆相同的碼回來 |
3.如果要讀取Y或M狀態,則功能碼要選01( coil ),位址要改為500 或 800 (16進制).讀取D(資料暫存器)數值,則功能碼要選03 (holding register ),位址要改為 1000 (16進制)
 |
| 讀取M狀態 |
 |
| 讀取D資料內容 |
4. 以上MODBUS TCP PC-PLC通訊測試結束,再來就是編寫合適的視窗介面直接對PLC控制
沒有留言:
張貼留言