siemens x
I/O 設(shè)備

艾默生 PLC在變頻器網(wǎng)絡(luò)控制中的通信程序設(shè)計(jì)

2025China.cn   2008年09月17日
  隨著PLC技術(shù)的不斷發(fā)展,越來(lái)越顯示其強(qiáng)大的核心控制功能,PLC和其他設(shè)備之間的連接已經(jīng)從比較煩瑣的傳統(tǒng)I/O方式向越來(lái)越受歡迎的簡(jiǎn)潔先進(jìn)的通信方式過(guò)渡,不僅為設(shè)計(jì)者節(jié)省了大量的硬件成本,更能為遠(yuǎn)程控制,組網(wǎng)提供了可能,使控制系統(tǒng)更加無(wú)縫地融為一體。

  本文主要通過(guò)艾默生PLC和多臺(tái)變頻器組網(wǎng)通信(以MODBUS協(xié)議方式)為例,說(shuō)明PLC和多臺(tái)變頻器網(wǎng)絡(luò)控制的通信程序的設(shè)計(jì)方法。

  一、 MODBUS協(xié)議簡(jiǎn)要介紹

  Modbus協(xié)議由美國(guó)著名的MODICON公司提出,通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控,它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)??刂破魍ㄐ攀褂弥鳌獜募夹g(shù),即僅一設(shè)備(主設(shè)備)能初始化傳輸(查詢(xún))。其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢(xún)提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。典型的主設(shè)備:IPC,HMI,PLC等;典型的從設(shè)備:各種儀表,PLC,變頻器等。主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢(xún)的,則不作任何回應(yīng)。Modbus協(xié)議建立了主設(shè)備查詢(xún)和從設(shè)備回應(yīng)的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、錯(cuò)誤檢測(cè)域。Modbus協(xié)議同時(shí)支持RTU模式和ASCII模式,RTU模式對(duì)應(yīng)的幀格式如下:(ASCII模式介紹省略)

更詳細(xì)的說(shuō)明請(qǐng)查閱MODBUS協(xié)議的有關(guān)資料(或登陸網(wǎng)站
)。

  二、 艾默生PLC集成的MODBUS協(xié)議功能

  艾默生EC20系列PLC的通信口COM 1集成了MODBUS主站協(xié)議, 在編程時(shí)先在編程軟件的系統(tǒng)塊里進(jìn)行設(shè)置具體如下:系統(tǒng)塊—>“通信口”菜單—>“通信口1參數(shù)設(shè)置”菜單—> 選“MODBUS協(xié)議”—> 進(jìn)行“MODBUS設(shè)置”—> 進(jìn)行通信參數(shù)和(主模式)站號(hào)等設(shè)置即可。
然后利用MODBUS指令進(jìn)行編程-----------MODBUS (S1) (S2)(S3)各參數(shù)含義如下:
S1 指定的通訊通道;
S2 發(fā)送數(shù)據(jù)起始地址;
S3 接收數(shù)據(jù)起始地址;
MODBUS指令發(fā)送過(guò)程中,自動(dòng)加上所需的起始字符,結(jié)束字符和校驗(yàn)和;發(fā)送的數(shù)據(jù),不需設(shè)定發(fā)送的數(shù)據(jù)長(zhǎng)度,系統(tǒng)會(huì)根據(jù)功能碼自動(dòng)按系統(tǒng)內(nèi)部設(shè)定長(zhǎng)度進(jìn)行發(fā)送。
2個(gè)重要的通信標(biāo)志:SM135-- MODBUS的通訊成功標(biāo)志位,通訊成功時(shí)置位,不會(huì)自動(dòng)復(fù)位,所以在發(fā)送數(shù)據(jù)的時(shí)候要進(jìn)行一次復(fù)位;SM136—MODBUS的通信錯(cuò)誤標(biāo)志位,通信錯(cuò)誤(包括從設(shè)備沒(méi)有回應(yīng))時(shí)置位,不會(huì)自動(dòng)復(fù)位,所以在接收數(shù)據(jù)的時(shí)候要進(jìn)行一次復(fù)位;
三、 艾默生變頻器通信協(xié)議

  艾默生公司生產(chǎn)的EV系列變頻器都集成MODBUS協(xié)議,且提供RS232C和RS485通信口供用戶(hù)選擇,所以通過(guò)PLC和變頻器通信的方式完成控制比較簡(jiǎn)單經(jīng)濟(jì),而且顯得系統(tǒng)比較高檔,下面簡(jiǎn)單介紹其協(xié)議:
1. 支持MODBUS RTU和ASCII格式;
2. 參數(shù)的MODBUS協(xié)議地址影射規(guī)則:變頻器的功能碼參數(shù)、控制參數(shù)和狀態(tài)參數(shù)都映射為Modbus的讀寫(xiě)寄存器。變頻器功能碼的組號(hào)映射為寄存器地址的高字節(jié),組內(nèi)索引映射為寄存器地址的低字節(jié)。變頻器的控制參數(shù)和狀態(tài)參數(shù)均虛擬為變頻器功能碼組。功能碼組號(hào)與其映射的寄存器地址高字節(jié)的對(duì)應(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é)議介紹請(qǐng)參考艾默生變頻器用戶(hù)手冊(cè);

  四、 程序流程圖
  主設(shè)備對(duì)從設(shè)備的消息查詢(xún)命令主要分為2大類(lèi),連續(xù)命令序列和隨機(jī)命令序列。
  連續(xù)命令序列: 主設(shè)備需要定時(shí)或連續(xù)向從設(shè)備發(fā)送的命令序列.特點(diǎn)是周期性,連續(xù)性.如PLC對(duì)變頻器讀取運(yùn)行頻率命令,運(yùn)行狀態(tài)命令等。
  隨機(jī)命令序列: 主設(shè)備不定時(shí)或隨機(jī)向從設(shè)備發(fā)送的命令序列.特點(diǎn)是不定時(shí)性,隨機(jī)性.如PLC對(duì)變頻器的啟??刂?改寫(xiě)頻率或其他參數(shù)等。

  五、 程序清單:( 子程序和主程序 )

  本程序主要介紹1臺(tái)EC20PLC(作為主站)按照MODBUS協(xié)議網(wǎng)絡(luò)對(duì)3臺(tái)變頻器(從站號(hào)分別是2,3,4)進(jìn)行通信控制的簡(jiǎn)單范例,本例中:
連續(xù)命令序列 包括對(duì)2,3,4號(hào)變頻器的運(yùn)行頻率的讀??;
隨機(jī)命令序列 包括對(duì)2,3,4號(hào)變頻器進(jìn)行啟動(dòng),停止,更改頻率的命令操作;

1) “變頻器正轉(zhuǎn)”子程序清單如下:
//主程序中用M1993作為各發(fā)送輔助使能,主要用于 MODBUS指令的上升沿觸發(fā)無(wú)其他用
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 //寫(xiě)入數(shù)據(jù)高字節(jié)
MOV 16#C7 V15 //寫(xiě)入數(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開(kāi)始區(qū)域
LD LM0
MODBUS 1 D7940 D7970
RST LM0 //馬上復(fù)位發(fā)送輔助使能
//無(wú)論成功失敗都還原Z0值
//當(dāng)然這里省略了錯(cuò)誤報(bào)告的處理
LD SM135
OR SM136
EU //上升沿
MOV V9 Z0
2) “停機(jī)”子程序(省略)
3) “設(shè)定頻率”子程序(省略)
4) “讀取運(yùn)行頻率”子程序(省略)
5) 主程序清單:
//******以下為通信邏輯處理部分******
LD SM1 //運(yùn)行第一周期脈沖
//***這里省略了檢查從機(jī)準(zhǔn)備好否的環(huán)節(jié)***
//***程序里設(shè)計(jì)了3個(gè)連續(xù)命令序列***
RST M6 //復(fù)位連續(xù)命令序列1使能標(biāo)志
RST M7 //復(fù)位連續(xù)命令序列2使能標(biāo)志
RST M8 //復(fù)位連續(xù)命令序列3使能標(biāo)志
ED //下降沿
//置位連續(xù)命令序列1使能標(biāo)志,以開(kāi)始第1條連續(xù)命令執(zhí)行
SET M6
//***程序里設(shè)計(jì)了共9個(gè)隨機(jī)命令序列***
//只要有至少1個(gè)隨機(jī)命令, // M1000=ON,表示有隨機(jī)命令等待,這樣在連續(xù)命令切換時(shí)優(yōu)先執(zhí)行隨機(jī)命令系列.
LD M0 //隨機(jī)命令序列1使能標(biāo)志
OR M1 //隨機(jī)命令序列2使能標(biāo)志
OR M2 //隨機(jī)命令序列3使能標(biāo)志
OR M3 //隨機(jī)命令序列4使能標(biāo)志
OR M4 //隨機(jī)命令序列5使能標(biāo)志
OR M5 //隨機(jī)命令序列6使能標(biāo)志
OR M9 //隨機(jī)命令序列7使能標(biāo)志
OR M10 //隨機(jī)命令序列8使能標(biāo)志
OR M11 //隨機(jī)命令序列9使能標(biāo)志
SET M1000
//所有隨機(jī)命令都處理完成后, M1000=OFF,表示隨機(jī)命令完成,則連續(xù)命令可以正常切換。
LDI M0
ANI M1
ANI M2
ANI M3
ANI M4
ANI M5
ANI M9
ANI M10
ANI M11
RST M1000
//任何1個(gè)連續(xù)命令未完成時(shí),M1001=ON,標(biāo)志連續(xù)命令在進(jìn)行,如果有隨機(jī)命令必須等待。
LD M6
OR M7
OR M8
SET M1001
//連續(xù)命令處于切換狀態(tài)時(shí),M1001=OFF,標(biāo)志連續(xù)命令完成,如果有隨機(jī)命令可以進(jìn)行。
LDI M6
ANI M7
ANI M8
RST M1001
//每1個(gè)連續(xù)命令完成且無(wú)隨機(jī)命令等待時(shí),啟動(dòng)延時(shí)T0 100MS,以便切換下1個(gè)連續(xù)命令執(zhí)行
LD M100 //連續(xù)命令1完成標(biāo)志
OR M101 //連續(xù)命令2完成標(biāo)志
OR M102 //連續(xù)命令3完成標(biāo)志
ANI M1000
TON T0 1 //啟動(dòng)延時(shí)T0 100MS
//******************************************
//**********以下為3個(gè)連續(xù)命令序列**********
//調(diào)用“讀取運(yùn)行頻率”子程序-2#站,頻率存在D1000里;
//通信成功或失敗都復(fù)位連續(xù)命令序列1使能標(biāo)志M6,同時(shí)置位完成標(biāo)志M100,以便進(jìn)行切換。當(dāng)然這里省略了失敗的處理子程序;
//延時(shí)T0時(shí)間后,執(zhí)行連續(xù)命令2序列,置位連續(xù)命令2序列使能標(biāo)志M7;
LD M6 //連續(xù)命令序列1使能
MPS
EU
SET M1993 //發(fā)送前置位發(fā)送輔助標(biāo)志
MRD
CALL 讀取運(yùn)行頻率 2 M1993 D1000
//參數(shù)注釋?zhuān)赫镜刂罚l(fā)送輔助位,頻率存放地址
MPP
LD SM135
OR SM136
ANB
RST M6
SET M100
LD T0
AND M100
EU
RST M100 //復(fù)位連續(xù)命令1完成標(biāo)志
SET M7
//調(diào)用“讀取運(yùn)行頻率”子程序-3#站,頻率存在D1001里;
//通信成功或失敗都復(fù)位連續(xù)命令序列2使能標(biāo)志M7,同時(shí)置位完成標(biāo)志M101,以便進(jìn)行切換。當(dāng)然這里省略了失敗的處理子程序;
//延時(shí)T0時(shí)間后,執(zhí)行連續(xù)命令3序列,置位連續(xù)命令3序列使能標(biāo)志M8;
LD M7 //連續(xù)命令2序列使能
MPS
EU
SET M1993 //發(fā)送前置位發(fā)送輔助標(biāo)志
MRD
CALL 讀取運(yùn)行頻率 3 M1993 D1001
//參數(shù)注釋?zhuān)赫镜刂罚l(fā)送輔助位,頻率存放地址
MPP
LD SM135
OR SM136
ANB
RST M7 //復(fù)位使能標(biāo)志
SET M101 //置位完成標(biāo)志
LD T0
AND M101
EU
RST M101 //復(fù)位連續(xù)命令2完成標(biāo)志
SET M8 //置位連續(xù)命令3使能標(biāo)志
//調(diào)用“讀取運(yùn)行頻率”子程序-4#站,頻率存在D1002里
//通信成功或失敗都復(fù)位連續(xù)命令序列3使能標(biāo)志M8,同時(shí)置位完成標(biāo)志M102,以便進(jìn)行切換。當(dāng)然這里省略了失敗的處理子程序;
//延時(shí)T0時(shí)間后,重新執(zhí)行連續(xù)命令1序列,置位連續(xù)命令1序列使能標(biāo)志M6;
LD M8 //連續(xù)命令3序列使能
MPS
EU
SET M1993
MRD
CALL 讀取運(yùn)行頻率 4 M1993 D1002
//參數(shù)注釋?zhuān)赫镜刂?,發(fā)送輔助位,頻率存放地址
MPP
LD SM135
OR SM136
ANB
RST M8
SET M102
LD T0
AND M102
EU
RST M102
SET M6
//******************************************
//**********以下是9個(gè)隨機(jī)命令序列***********
//9個(gè)隨機(jī)命令思路都一樣;
//隨機(jī)命令使能標(biāo)志置位后,若連續(xù)命令處于切換狀態(tài),則可進(jìn)入發(fā)送狀態(tài),否則只有等待;
//發(fā)送時(shí)先置位發(fā)送輔助位M1993,調(diào)用子程序進(jìn)行發(fā)送和接收;
//無(wú)論通信成功或失敗都復(fù)位各自的隨機(jī)命令使能標(biāo)志,當(dāng)然這里仍然省略了通信錯(cuò)誤處理程序;
//如果所有的隨機(jī)命令都完成,則隨機(jī)命令等待標(biāo)志M1000=OFF;
//調(diào)用“頻率設(shè)定”子程序-2#站
LD M9 //隨機(jī)命令序列7使能標(biāo)志
ANI M1001 //判斷連續(xù)命令處于切換狀態(tài)時(shí)
MPS
EU
SET M1993 //置位發(fā)送輔助位
MRD
CALL 運(yùn)頻設(shè)定 2 D1100 M1993
//參數(shù)注釋?zhuān)赫镜刂?,設(shè)定頻率,發(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M9 //復(fù)位隨機(jī)命令序列7使能標(biāo)志
//調(diào)用“頻率設(shè)定”子程序-3#站
LD M10 //隨機(jī)命令序列8使能標(biāo)志
ANI M1001 //判斷連續(xù)命令處于切換狀態(tài)時(shí);
MPS
EU
SET M1993 //置位發(fā)送輔助位
MRD
CALL 運(yùn)頻設(shè)定 3 D1101 M1993
//參數(shù)注釋?zhuān)赫镜刂罚O(shè)定頻率,發(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M10
//調(diào)用“頻率設(shè)定”子程序-4#站
LD M11 /隨機(jī)命令序列9使能標(biāo)志
ANI M1001
MPS
EU
SET M1993
MRD
CALL 運(yùn)頻設(shè)定 4 D1102 M1993
//參數(shù)注釋?zhuān)赫镜刂?,設(shè)定頻率,發(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M10
//調(diào)用“正轉(zhuǎn)開(kāi)機(jī)”子程序-2#站
LD X11 //開(kāi)機(jī)按扭
EU
SET M0 //隨機(jī)命令序列1使能標(biāo)志
LD M0
ANI M1001
MPS
EU
SET M1993
MRD
CALL 正轉(zhuǎn)開(kāi)機(jī) 2 M1993
//參數(shù)注釋?zhuān)赫镜刂?,發(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M0
//調(diào)用“正轉(zhuǎn)開(kāi)機(jī)”子程序-3#站
LD X12 //開(kāi)機(jī)按扭
EU
SET M1 //隨機(jī)命令序列2使能標(biāo)志
LD M1
ANI M1001
MPS
EU
SET M1993
MRD
CALL 正轉(zhuǎn)開(kāi)機(jī) 3 M1993
//參數(shù)注釋?zhuān)赫镜刂罚l(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M1
//調(diào)用“正轉(zhuǎn)開(kāi)機(jī)”子程序-4#站
LD X13 //開(kāi)機(jī)按扭
EU
SET M2 //隨機(jī)命令序列3使能標(biāo)志
LD M2
ANI M1001
MPS
EU
SET M1993
MRD
CALL 正轉(zhuǎn)開(kāi)機(jī) 4 M1993
//參數(shù)注釋?zhuān)赫镜刂罚l(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M2
//調(diào)用“停機(jī)”子程序-2#站
LD X14 //停機(jī)按扭
EU
SET M3 //隨機(jī)命令序列4使能標(biāo)志
LD M3
ANI M1001
MPS
EU
SET M1993
MRD
CALL 停機(jī) 2 M1993
//參數(shù)注釋?zhuān)赫镜刂?,發(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M3
//調(diào)用“停機(jī)”子程序-3#站
LD X15 //停機(jī)按扭
EU
SET M4 //隨機(jī)命令序列5使能標(biāo)志

LD M4
ANI M1001
MPS
EU
SET M1993
MRD
CALL 停機(jī) 3 M1993
//參數(shù)注釋?zhuān)赫镜刂罚l(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M4
//調(diào)用“停機(jī)”子程序-4#站
LD X16 //停機(jī)按扭
EU
SET M5 //隨機(jī)命令序列6使能標(biāo)志
LD M5
ANI M1001
MPS
EU
SET M1993
MRD
CALL 停機(jī) 4 M1993
//參數(shù)注釋?zhuān)赫镜刂?,發(fā)送輔助位
MPP
LD SM135
OR SM136
ANB
RST M5

  六、 程序說(shuō)明:

  例程設(shè)計(jì)時(shí)實(shí)際在連續(xù)命令序列切換的間隙停留了100MS的時(shí)間,這就是說(shuō)程序中的連續(xù)序列是間歇性的;如果要采用非間歇性的連續(xù)序列,把中間的延時(shí)部分去掉就可以了。

  本例程所闡述的通信序列邏輯處理的方法在筆者的一些項(xiàng)目中得到實(shí)際應(yīng)用,效果也達(dá)到預(yù)期設(shè)想,運(yùn)行比較穩(wěn)定,這種PLC通過(guò)通信的方式對(duì)多臺(tái)變頻器通信的方法在實(shí)際應(yīng)用中有很大的參考價(jià)值,不僅能夠充分利用EMERSON PLC和變頻器的硬件資源達(dá)到節(jié)省成本的目的,而且更易于進(jìn)行整個(gè)系統(tǒng)的整合。

(轉(zhuǎn)載)

標(biāo)簽:艾默生 PLC 變頻器 網(wǎng)絡(luò)控制中 通信程序設(shè)計(jì) 我要反饋 
2024世界人工智能大會(huì)專(zhuān)題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專(zhuān)題報(bào)道