艾默生 plc在變頻器網絡控制中的通信程序設計
三、 艾默生變頻器通信協議
艾默生公司生產的ev系列變頻器都集成modbus協議,且提供rs232c和rs485通信口供用戶選擇,所以通過plc和變頻器通信的方式完成控制比較簡單經濟,而且顯得系統比較高檔,下面簡單介紹其協議:
1. 支持modbus rtu和ascii格式;
2. 參數的modbus協議地址影射規則:變頻器的功能碼參數、控制參數和狀態參數都映射為modbus的讀寫寄存器。變頻器功能碼的組號映射為寄存器地址的高字節,組內索引映射為寄存器地址的低字節。變頻器的控制參數和狀態參數均虛擬為變頻器功能碼組。功能碼組號與其映射的寄存器地址高字節的對應關系如下: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;變頻器控制參數組:0x32;變頻器狀態參數組:0x33。例如變頻器功能碼參數f3.02的寄存器地址為0x302,變頻器功能碼參數ff.01的寄存器地址為0xf01。
3. 支持的功能碼如下:
4. 具體的協議介紹請參考艾默生變頻器用戶手冊;
四、 程序流程圖
主設備對從設備的消息查詢命令主要分為2大類,連續命令序列和隨機命令序列。
連續命令序列: 主設備需要定時或連續向從設備發送的命令序列。特點是周期性,連續性。如plc對變頻器讀取運行頻率命令,運行狀態命令等。
隨機命令序列: 主設備不定時或隨機向從設備發送的命令序列。特點是不定時性,隨機性。如plc對變頻器的啟停控制,改寫頻率或其他參數等。
五、程序清單:( 子程序和主程序 )
本程序主要介紹1臺ec20plc(作為主站)按照modbus協議網絡對3臺變頻器(從站號分別是2,3,4)進行通信控制的簡單范例,本例中:
連續命令序列 包括對2,3,4號變頻器的運行頻率的讀;
隨機命令序列 包括對2,3,4號變頻器進行啟動,停止,更改頻率的命令操作;
1) “變頻器正轉”子程序清單如下:
//主程序中用m1993作為各發送輔助使能,主要用于 modbus指令的上升沿觸發無其他用
ld lm0 //位輸入參數型—發送輔助使能
rst sm135 //復位成功標志
rst sm136 //復位失敗標志
ld sm0 //運行標志
mov z0 v9 //保存z0值到v9
ld sm0 //運行標志
mov v0 v10 //從機地址
mov 16#6 v11 //功能碼
mov 16#32 v12 //寄存器地址高字節
mov 16#0 v13 //寄存器地址低字節
mov 1 v14 //寫入數據高字節
mov 16#c7 v15 //寫入數據低字節
//以下把發送數據轉移到d7940-d7945里
ld sm0
mov 0 z0
ld sm0
for 6
ld sm0
mov v10z0 d7940z0
ld sm0
inc z0
next
//發送接收數據,數據放在d7970開始區域
ld lm0
modbus 1 d7940 d7970
rst lm0 //馬上復位發送輔助使能
//無論成功失敗都還原z0值
//當然這里省略了錯誤報告的處理
ld sm135
or sm136
eu //上升沿
mov v9 z0