艾默生 plc在變頻器網(wǎng)絡(luò)控制中的通信程序設(shè)計(jì)
三、 艾默生變頻器通信協(xié)議
艾默生公司生產(chǎn)的ev系列變頻器都集成modbus協(xié)議,且提供rs232c和rs485通信口供用戶選擇,所以通過plc和變頻器通信的方式完成控制比較簡單經(jīng)濟(jì),而且顯得系統(tǒng)比較高檔,下面簡單介紹其協(xié)議:
1. 支持modbus rtu和ascii格式;
2. 參數(shù)的modbus協(xié)議地址影射規(guī)則:變頻器的功能碼參數(shù)、控制參數(shù)和狀態(tài)參數(shù)都映射為modbus的讀寫寄存器。變頻器功能碼的組號映射為寄存器地址的高字節(jié),組內(nèi)索引映射為寄存器地址的低字節(jié)。變頻器的控制參數(shù)和狀態(tài)參數(shù)均虛擬為變頻器功能碼組。功能碼組號與其映射的寄存器地址高字節(jié)的對應(yīng)關(guān)系如下:f0組:0x00;f1組:0x01;f2組:0x02;f3組:0x03;f4組:0x04;f5組:0x05;f6組:0x06;f7組:0x07;f8組:0x08;f9組:0x09;fa組:0x0a;fb組:0x0b;fc組:0x0c;fd組:0x0d;fe組:0x0e;ff組:0x0f;fh組:0x10;fl組:0x11;fn組:0x12;fp組:0x13;fu組:0x14;變頻器控制參數(shù)組:0x32;變頻器狀態(tài)參數(shù)組:0x33。例如變頻器功能碼參數(shù)f3.02的寄存器地址為0x302,變頻器功能碼參數(shù)ff.01的寄存器地址為0xf01。
3. 支持的功能碼如下:
4. 具體的協(xié)議介紹請參考艾默生變頻器用戶手冊;
四、 程序流程圖
主設(shè)備對從設(shè)備的消息查詢命令主要分為2大類,連續(xù)命令序列和隨機(jī)命令序列。
連續(xù)命令序列: 主設(shè)備需要定時(shí)或連續(xù)向從設(shè)備發(fā)送的命令序列。特點(diǎn)是周期性,連續(xù)性。如plc對變頻器讀取運(yùn)行頻率命令,運(yùn)行狀態(tài)命令等。
隨機(jī)命令序列: 主設(shè)備不定時(shí)或隨機(jī)向從設(shè)備發(fā)送的命令序列。特點(diǎn)是不定時(shí)性,隨機(jī)性。如plc對變頻器的啟停控制,改寫頻率或其他參數(shù)等。
五、程序清單:( 子程序和主程序 )
本程序主要介紹1臺ec20plc(作為主站)按照modbus協(xié)議網(wǎng)絡(luò)對3臺變頻器(從站號分別是2,3,4)進(jìn)行通信控制的簡單范例,本例中:
連續(xù)命令序列 包括對2,3,4號變頻器的運(yùn)行頻率的讀取;
隨機(jī)命令序列 包括對2,3,4號變頻器進(jìn)行啟動(dòng),停止,更改頻率的命令操作;
1) “變頻器正轉(zhuǎn)”子程序清單如下:
//主程序中用m1993作為各發(fā)送輔助使能,主要用于 modbus指令的上升沿觸發(fā)無其他用
ld lm0 //位輸入?yún)?shù)型—發(fā)送輔助使能
rst sm135 //復(fù)位成功標(biāo)志
rst sm136 //復(fù)位失敗標(biāo)志
ld sm0 //運(yùn)行標(biāo)志
mov z0 v9 //保存z0值到v9
ld sm0 //運(yùn)行標(biāo)志
mov v0 v10 //從機(jī)地址
mov 16#6 v11 //功能碼
mov 16#32 v12 //寄存器地址高字節(jié)
mov 16#0 v13 //寄存器地址低字節(jié)
mov 1 v14 //寫入數(shù)據(jù)高字節(jié)
mov 16#c7 v15 //寫入數(shù)據(jù)低字節(jié)
//以下把發(fā)送數(shù)據(jù)轉(zhuǎn)移到d7940-d7945里
ld sm0
mov 0 z0
ld sm0
for 6
ld sm0
mov v10z0 d7940z0
ld sm0
inc z0
next
//發(fā)送接收數(shù)據(jù),數(shù)據(jù)放在d7970開始區(qū)域
ld lm0
modbus 1 d7940 d7970
rst lm0 //馬上復(fù)位發(fā)送輔助使能
//無論成功失敗都還原z0值
//當(dāng)然這里省略了錯(cuò)誤報(bào)告的處理
ld sm135
or sm136
eu //上升沿
mov v9 z0