本文著重介紹西門子 S7-200 SMART PLC控製變頻器的啟停,主要通過MODBUS RTU進行通訊,以及設定變頻器頻率和讀取變頻器頻率。
一.添加西門子PLC庫指令
PLC和變頻器Modbus RTU通訊,PLC做主站,變頻器做從(cong) 站,我們(men) 首先要找到PLC中的Modbus RTU Master庫,我們(men) 將對應庫中的指令添加到主程序中。
二.首先添加MBUS_CTRL/MB_CTRL2 指令(初始化主站)指令
我們(men) 可以通過如上圖片,找到該指令中不同引腳的含義(yi) 。在該項目中,通訊參數設置位波特率9600,偶校驗,端口port設為(wei) 1,因為(wei) 我們(men) 用的是信號板上的RS-485,如果使用CPU集成的端口,該值就設為(wei) 0。MODE是一直為(wei) 1,表示我們(men) 啟用了MODBUS協議。超時我們(men) 設置的1000ms,可以根據實際設置超時時間。
DONE是完成位,Error是存儲(chu) 錯誤代碼的,當初始化錯誤,ERROR會(hui) 顯示出錯誤對應的代碼,以便我們(men) 查找故障原因。
變頻器地址位1,slave設置為(wei) 1。RW等於(yu) 1表示寫(xie) ,等於(yu) 0表示讀,該指令是控製變頻器的啟停,所以我們(men) RW設置為(wei) 1,要寫(xie) 數據到變頻器。40100表示變頻器控製字,當這個(ge) 值為(wei) 16#047E,變頻器為(wei) 停止狀態,當這個(ge) 值為(wei) 16#047F,變頻器為(wei) 運行狀態,我們(men) 通過改變VW1310的值,就實現了變頻器的啟停。
變頻器地址位1,slave設置為(wei) 1。RW等於(yu) 1表示寫(xie) ,等於(yu) 0表示讀,該指令是設定變頻器的頻率,所以我們(men) RW設置為(wei) 1,要寫(xie) 數據到變頻器。40101表示主設定值,我們(men) 通過改變VW1312的值實現了對變頻器頻率的控製。
但是我們(men) 的頻率對應關(guan) 係是-16384~+16384表示頻率是-50HZ~+50HZ,我們(men) 的VW1312應該是設置成16384這樣的數字量,觸摸屏設置HZ,對應轉換成範圍內(nei) 的數字,這就用到了一個(ge) 轉換的指令,VD776表示0-50之間浮點數,根據VD776的值,VW1312會(hui) 被轉換成0-16384之間的數,這就實現了轉換。
變頻器地址位1,slave設置為(wei) 1。RW等於(yu) 1表示寫(xie) ,等於(yu) 0表示讀,該指令是讀取變頻器的頻率,所以我們(men) RW設置為(wei) 0,要讀數據到PLC。40111表示速度實際值,-16384~+16384表示頻率是-50HZ~+50HZ,我們(men) 通過監控VW1314的值實現了對變頻器頻率的讀取。
我們(men) 的VW1314應該是一個(ge) 0-16384這樣的數字量,我們(men) 要將這個(ge) 數字量轉換成0-50HZ之間的數,轉換指令如下所示:
上電我們(men) 通過SM0.1將通訊相關(guan) 的位都複位,然後將停止信號給到控製字VW1310中,等待1S,我們(men) 啟動通訊,這樣就實現了上電複位通訊程序。
Modbus RTU是半雙工,所以每一個(ge) 掃描周期我們(men) 隻能執行一個(ge) 讀或者寫(xie) 的程序,當我們(men) 有多個(ge) 讀多個(ge) 寫(xie) ,我們(men) 就需要寫(xie) 輪詢程序,也就是依次循環啟動讀寫(xie) 程序。
我給大家舉(ju) 一個(ge) 例子,每一個(ge) 指令都有一個(ge) 完成位,有一個(ge) 觸發位,我們(men) 就通過指令的完成位去複位當前指令的觸發位,同時去置位下一條指令的觸發位,這樣就實現了依次執行,當然,我們(men) 不能忘了把該指令的完成位也要複位。