本文著重介紹西門子 S7-200 SMART PLC控制變頻器的啟停,主要通過MODBUS RTU進(jìn)行通訊,以及設(shè)定變頻器頻率和讀取變頻器頻率。
一.添加西門子PLC庫指令
PLC和變頻器Modbus RTU通訊,PLC做主站,變頻器做從站,我們首先要找到PLC中的Modbus RTU Master庫,我們將對應(yīng)庫中的指令添加到主程序中。
二.首先添加MBUS_CTRL/MB_CTRL2 指令(初始化主站)指令
我們可以通過如上圖片,找到該指令中不同引腳的含義。在該項(xiàng)目中,通訊參數(shù)設(shè)置位波特率9600,偶校驗(yàn),端口port設(shè)為1,因?yàn)槲覀冇玫氖切盘柊迳系腞S-485,如果使用CPU集成的端口,該值就設(shè)為0。MODE是一直為1,表示我們啟用了MODBUS協(xié)議。超時我們設(shè)置的1000ms,可以根據(jù)實(shí)際設(shè)置超時時間。
DONE是完成位,Error是存儲錯誤代碼的,當(dāng)初始化錯誤,ERROR會顯示出錯誤對應(yīng)的代碼,以便我們查找故障原因。
變頻器地址位1,slave設(shè)置為1。RW等于1表示寫,等于0表示讀,該指令是控制變頻器的啟停,所以我們RW設(shè)置為1,要寫數(shù)據(jù)到變頻器。40100表示變頻器控制字,當(dāng)這個值為16#047E,變頻器為停止?fàn)顟B(tài),當(dāng)這個值為16#047F,變頻器為運(yùn)行狀態(tài),我們通過改變VW1310的值,就實(shí)現(xiàn)了變頻器的啟停。
變頻器地址位1,slave設(shè)置為1。RW等于1表示寫,等于0表示讀,該指令是設(shè)定變頻器的頻率,所以我們RW設(shè)置為1,要寫數(shù)據(jù)到變頻器。40101表示主設(shè)定值,我們通過改變VW1312的值實(shí)現(xiàn)了對變頻器頻率的控制。
但是我們的頻率對應(yīng)關(guān)系是-16384~+16384表示頻率是-50HZ~+50HZ,我們的VW1312應(yīng)該是設(shè)置成16384這樣的數(shù)字量,觸摸屏設(shè)置HZ,對應(yīng)轉(zhuǎn)換成范圍內(nèi)的數(shù)字,這就用到了一個轉(zhuǎn)換的指令,VD776表示0-50之間浮點(diǎn)數(shù),根據(jù)VD776的值,VW1312會被轉(zhuǎn)換成0-16384之間的數(shù),這就實(shí)現(xiàn)了轉(zhuǎn)換。
變頻器地址位1,slave設(shè)置為1。RW等于1表示寫,等于0表示讀,該指令是讀取變頻器的頻率,所以我們RW設(shè)置為0,要讀數(shù)據(jù)到PLC。40111表示速度實(shí)際值,-16384~+16384表示頻率是-50HZ~+50HZ,我們通過監(jiān)控VW1314的值實(shí)現(xiàn)了對變頻器頻率的讀取。
我們的VW1314應(yīng)該是一個0-16384這樣的數(shù)字量,我們要將這個數(shù)字量轉(zhuǎn)換成0-50HZ之間的數(shù),轉(zhuǎn)換指令如下所示:
上電我們通過SM0.1將通訊相關(guān)的位都復(fù)位,然后將停止信號給到控制字VW1310中,等待1S,我們啟動通訊,這樣就實(shí)現(xiàn)了上電復(fù)位通訊程序。
Modbus RTU是半雙工,所以每一個掃描周期我們只能執(zhí)行一個讀或者寫的程序,當(dāng)我們有多個讀多個寫,我們就需要寫輪詢程序,也就是依次循環(huán)啟動讀寫程序。
我給大家舉一個例子,每一個指令都有一個完成位,有一個觸發(fā)位,我們就通過指令的完成位去復(fù)位當(dāng)前指令的觸發(fā)位,同時去置位下一條指令的觸發(fā)位,這樣就實(shí)現(xiàn)了依次執(zhí)行,當(dāng)然,我們不能忘了把該指令的完成位也要復(fù)位。