艾 紅,朱 銘
AI Hong, ZHU Ming
(北京信息科技大學(xué) 自動化學(xué)院,北京 100192)
以PLC作為電機控制系統(tǒng)的核心裝置,不但可以實現(xiàn)對電機的高精度控制,而且能夠使系統(tǒng)更加穩(wěn)定運行。PLC結(jié)合組態(tài)軟件使用,通過組態(tài)軟件設(shè)計人機友好界面,可以使控制系統(tǒng)在控制過程中更加直觀方便,可以實時監(jiān)控電機的運行狀態(tài)。結(jié)合S7-300 PLC和MICROMASTER變頻器MM440,應(yīng)用PROFIBUS-DP,以三相異步電機為控制對象,組成異步電機變頻調(diào)速系統(tǒng),完成對異步電機閉環(huán)控制系統(tǒng)轉(zhuǎn)速的變頻控制[1]。
PLC的CPU型號選擇西門子CPU313C-2DP。電機型號選擇YZA7124三相異步電機,頻率為50Hz,額定轉(zhuǎn)速為1500r/min。變頻器型號選擇西門子MICRO MASTER MM440。系統(tǒng)硬件組成如圖1所示。
S7-300作為主站(DP Master),通過PROFIBUSDP總線連接變頻器MM440,其中變頻器MM440為從站(DP Slave)。編碼器反饋信號有兩個分別是A相和B相。A相接到PLC的DI/DO模塊上的I0.0,B相接到I0.1。編碼器旋轉(zhuǎn)軸每轉(zhuǎn)一圈,A相和B相都發(fā)出相同的脈沖個數(shù),但是A相和B相之間存在一個90°的電氣角相位差,根據(jù)這個相位差來判斷編碼器旋轉(zhuǎn)的方向是正轉(zhuǎn)還是反轉(zhuǎn),正轉(zhuǎn)時,A相超前B相90°,反轉(zhuǎn)時,B相超前A相90°。
通過PLC連接PROFIBUS-DP總線對變頻器進行控制,需要對變頻器設(shè)置一定的參數(shù)。將變頻器設(shè)置為PROFIBUS控制,設(shè)定P0700=6表示設(shè)置PROFIBUS信號源即表示變頻器的啟動與停止命令來源于PROFIBUSDP,設(shè)定P1000=6表示頻率給定值來源于通訊板,通過PROFIBUS-DP讀取該值。變頻器內(nèi)部有7個DIP開關(guān)可以設(shè)置地址或通過修改P0918參數(shù),但P0918設(shè)定值一定要與系統(tǒng)的硬件配置一致。設(shè)置P0918=3表示定義變頻器的PROFIBUS-DP地址。DIP開關(guān)的優(yōu)先級高于P0918。P0918可以設(shè)為1~125。最好設(shè)置DIP和P0918數(shù)值一樣。設(shè)置的站地址必須與STEP7中軟件中硬件組態(tài)的地址保持一致,否則不能通信。當(dāng)變頻器參數(shù)設(shè)置完成后,點擊下載按鈕,如果PLC和變頻器能夠正常通信,則變頻器的綠燈應(yīng)保持為常綠狀態(tài)。
圖1 基于PROFIBUS的異步電機變頻調(diào)速系統(tǒng)組成
用戶數(shù)據(jù)結(jié)構(gòu)是針對參數(shù)過程數(shù)據(jù)對象PPO而言,即表明參數(shù)過程數(shù)據(jù)是通過何種數(shù)據(jù)格式建立通信和傳遞數(shù)據(jù)。在通信數(shù)據(jù)結(jié)構(gòu)中,大部分是既帶有參數(shù)區(qū)域也有過程數(shù)據(jù)區(qū)域,而有的僅有過程數(shù)據(jù)。針對變頻器通信數(shù)據(jù)結(jié)構(gòu),主要有5種PPO類型。對于變頻器MM440選取數(shù)據(jù)結(jié)構(gòu)PPO1。PPO1包括4個字的PKW數(shù)據(jù)和2個字的PZD數(shù)據(jù)。PPO1類型數(shù)據(jù)格式如圖2所示。
圖2 PPO1類型數(shù)據(jù)格式
MM440周期性數(shù)據(jù)通訊報文有效數(shù)據(jù)區(qū)域由兩部分構(gòu)成即PKW區(qū)和PZD區(qū)。PKW區(qū)占四個字,PKE占1個字,IND占1個字,PWE占2個字,分別是PWE1和PWE2。在主站中設(shè)定PPO1模式,則主站PLC進行數(shù)據(jù)輸入和輸出,并且只有PKW四個字和PZD1和PZD2的數(shù)據(jù)有效。PKW中的數(shù)據(jù)可以設(shè)定和讀取變頻器的參數(shù)值,PZD1和PZD2可以控制變頻器的運行,包括修改變頻器運行輸出頻率和控制電機啟停等??梢詫崿F(xiàn)對電機的正反轉(zhuǎn)控制等,可以改變頻率設(shè)定值達(dá)到變頻調(diào)速的目的。
參數(shù)識別ID—數(shù)值區(qū)PKW前兩個字分別是參數(shù)標(biāo)識符PKE和索引IND,主要功能是處理主站請求與相應(yīng)的應(yīng)答報文。PKW區(qū)后兩個字的作用是寫入變頻器參數(shù),用于訪問變頻器參數(shù)值。PKW區(qū)的第1個字為PKE,用來描述參數(shù)識別標(biāo)記,用16位表示。位10~位0(PNU)描述所請求基本參數(shù)號碼,位11(SPM)用于參數(shù)變更報告的觸發(fā)位,位15~位12(AK)分為任務(wù)與應(yīng)答兩種模式。PKW區(qū)的第2個字為IND,用來描述參數(shù)的下標(biāo)和PNU參數(shù)頁碼。完整的參數(shù)號碼是由基本參數(shù)號碼和PNU參數(shù)頁碼組成??偸且噪p字(32位)來傳送參數(shù)值PWE。在PPO報文中,僅一個參數(shù)值能被傳送。由PKW的第3個字即PWE1(高位有效字)和PKW的第4個字即PWE2(低位有效字)組成一個32位參數(shù)值。
通信報文中過程數(shù)據(jù)區(qū)PZD的作用是對變頻器的頻率進行讀寫操作。在PZD區(qū),用戶可以寫入控制字以及頻率的設(shè)定值,也可以讀取狀態(tài)值以及頻率的實際值。
對于PZD1是STW時,是對變頻器的過程數(shù)據(jù)區(qū)PZD進行寫入操作。寫入的STW是變頻器的控制字,例如對異步電機實施控制,控制電機正向運行時控制字為0000,0100,0111,1111B(047FH),當(dāng)控制電機使其停機時控制字參數(shù)為0000,0100,0111,1110B(047EH)。STW的位0控制驅(qū)動是否打開。對于PZD2是HSW時,是對變頻器的過程數(shù)據(jù)區(qū)PZD進行寫入操作。寫入的HSW為主設(shè)定值,是需要設(shè)定的變頻器頻率。頻率范圍從0~50Hz。數(shù)值以十六進制的形式發(fā)送,頻率設(shè)定值和實際值都要進行標(biāo)準(zhǔn)化,如16進制的4000H即為十進制的16384對應(yīng)50Hz。可以在變頻器P2000參數(shù)更改標(biāo)準(zhǔn)化的頻率值。2000H就是標(biāo)準(zhǔn)化的25Hz,負(fù)數(shù)則反向。
對于PZD1是ZSW時,是對變頻器的過程數(shù)據(jù)區(qū)PZD進行讀出操作。讀取的ZSW是變頻器狀態(tài)字。對于PZD2是HIW時,是對變頻器的過程數(shù)據(jù)區(qū)PZD進行讀出操作。讀取的HIW為參數(shù)主實際值,即為變頻器的實際輸出頻率值。例如,需要控制電機進行正向轉(zhuǎn)動時,設(shè)置頻率為25.00Hz,對應(yīng)的轉(zhuǎn)速為700r/min。具體設(shè)置方法是通過對PZD區(qū)的數(shù)據(jù)進行寫入操作047E 2000H,通過讀取PZD區(qū)的應(yīng)答報文得到參數(shù)是FB31 0000H。
S7-300使用系統(tǒng)功能SFC14和SFC15讀取和修改MM440變頻器參數(shù)。通過對變頻器的讀寫操作,可以實現(xiàn)對變頻器輸出頻率進行控制,進而可以使用變頻調(diào)速控制電機。為了存取連續(xù)的數(shù)據(jù)區(qū)域,需要調(diào)用系統(tǒng)功能SFC14(DPRD_DAT)和SFC15(DPWR_DAT)完成數(shù)據(jù)的讀寫。若想讀取DP從站的輸入數(shù)據(jù)要使用SFC14(DPRD_DAT),要從DP從站讀取若干個連續(xù)的輸入模塊,就要對每一個輸入模塊分配一個系統(tǒng)功能SFC14用于數(shù)據(jù)調(diào)用。系統(tǒng)功能SFC15的作用是輸出連續(xù)數(shù)據(jù)區(qū)域。SFC14與SFC15一樣,可以查看返回值RECORD的值用來判斷讀寫是否發(fā)生錯誤。通常情況下沒有錯誤時,RECORD的返回值為W#16#0000。
在STEP7中對過程數(shù)據(jù)區(qū)PZD讀寫參數(shù)時要調(diào)用系統(tǒng)功能SFC14(“DPRD_DAT”)和系統(tǒng)功能SFC15(“DPWR_DAT”)。通過SFC14讀取MM440的數(shù)據(jù),通過SFC15向MM440中寫入數(shù)據(jù)。硬件組態(tài)時PZD的起始地址是W#16#108(即十進制數(shù)264)。在主程序組織塊OB1中調(diào)用SFC14和SFC15如圖3和圖4所示,其中返回值RET_VAL為0,表示沒有錯誤發(fā)生[2,3]。
狀態(tài)字和實際頻率值可以從數(shù)據(jù)塊DB1中讀出,獲取變頻器的參數(shù)值??刂谱趾驮O(shè)定值可以向數(shù)據(jù)塊DB1中傳送寫入到變頻器中。
圖3 讀取從站MM440 PZD數(shù)據(jù)
圖4 寫入從站MM440 PZD數(shù)據(jù)
圖3 中通過SFC14可以從DB1.DBW8和DB1.DBW10讀出狀態(tài)字和實際頻率值。系統(tǒng)功能SFC14的RECORD參數(shù)P#DB1.DBX8.0 BYTE 4表示從DB1.DBX8.0開始讀取4個字節(jié)變頻器的參數(shù)值,其中DB1.DBW8是狀態(tài)字信息,DB1.DBW10是實際頻率值。系統(tǒng)功能SFC14的參數(shù)LADDR是W#16#108表示硬件地址是264。
圖4中DB1.DBW20和DB1.DBW22分別通過SFC15向變頻器寫入控制字和頻率設(shè)定值。系統(tǒng)功能SFC15的RECORD參數(shù)P#DB1.DBX20.0 BYTE 4表示從DB1.DBX20.0開始的4個字節(jié)可以寫入變頻器控制參數(shù)值,其中DB1.DBW20是變頻器的控制字信息,DB1.DBW22是變頻器的給定頻率值。系統(tǒng)功能SFC15的參數(shù)LADDR是W#16#108表示硬件地址是264。
電機啟動分為兩個步驟。首先讓電動機處于準(zhǔn)備運行狀態(tài),寫入過程數(shù)據(jù)區(qū)PZD中的控制字STW為W#16#047E,主設(shè)定值HSW為期望頻率并發(fā)送;然后再寫入控制字STW為W#16#047F,主設(shè)定值HSW為期望頻率,此后電動機開始運行。電機運行時按下停止按鈕,電機將停止轉(zhuǎn)動。停機時寫入過程數(shù)據(jù)區(qū)PZD中的控制字STW為W#16#047E以及主設(shè)定值HSW為W#16#0000,使電動機保持停止運行的狀態(tài)。同時復(fù)位指示燈和復(fù)位啟動和點動按鈕。
通過變頻器獲取異步電機的運行參數(shù),包括控制輸出電壓、輸出電流、頻率和轉(zhuǎn)矩。以250ms的頻率刷新當(dāng)前的輸出電壓、輸出電流、頻率以及轉(zhuǎn)矩值,這些參數(shù)的存儲形式為32位浮點數(shù),分別保存在變頻器參數(shù)r0025、r0027、r0021和r0031中。輸出電壓、輸出電流、頻率和轉(zhuǎn)矩的參數(shù)值說明如下。
r0021是實際頻率,r0025是實際輸出電壓,r0027是實際輸出電流,r0031是實際轉(zhuǎn)矩。如想驗證參數(shù)是否讀取正確,可以根據(jù)參數(shù)號驗證,也可以在變頻器設(shè)置中查看。
PLC向變頻器請求1019 0000 0000 0000,019H=25表示請求讀取輸出電壓。
圖5 觸發(fā)讀取電壓值
圖6 讀取電壓參數(shù)
圖5 中觸發(fā)讀取電壓信號VOLTAGE_SEND,在PKW中寫入(DW#16#1019 0000),019H=25,參數(shù)號是25表示是輸出電壓。此時讀取的是變頻器輸出電壓參數(shù)。圖5中地址LADDR是W#16#100表示硬件地址256,參數(shù)信息存儲于DB1.DB12開始的8個字節(jié)。圖6中當(dāng)系統(tǒng)讀回PKW中PKE參數(shù)為8217(2019H)時,019H=25表明讀取參數(shù)是正確的輸出電壓,因此可以利用是否等于8217作為判斷輸出電壓條件,將讀取電壓值(DB1.DB4~DB1.DB7)存儲在電壓值存儲區(qū)VOLTAGE中,然后再觸發(fā)讀取電流信號CURRENT_SEND。
當(dāng)系統(tǒng)讀回PKW中PKE參數(shù)為8219(201BH)時,1BH=27表明讀取的參數(shù)是正確的輸出電流,可以利用是否等于8219作為判斷輸出電流條件。這樣通過比較系統(tǒng)讀回的參數(shù)數(shù)值是否正確,分別讀取輸出電壓、輸出電流、頻率和轉(zhuǎn)矩值。當(dāng)從變頻器讀取到數(shù)據(jù)后,要對數(shù)據(jù)進行處理。從變頻器讀取到的數(shù)據(jù)是浮點型參數(shù)值,可以通過浮點數(shù)轉(zhuǎn)換為整數(shù)的方法進行轉(zhuǎn)換(REAL→DINT),也可以直接使用,因為PLC顯示數(shù)值的形式可以改變,用戶可以根據(jù)需要將數(shù)據(jù)顯示設(shè)置為十進制、十六進制等。
通過變頻器同時讀取輸出電壓、輸出電流、頻率和轉(zhuǎn)矩時,由于一個數(shù)據(jù)塊DB一次只能讀取一個數(shù)據(jù),同時也為了防止數(shù)據(jù)之間的交差錯亂,可以根據(jù)需要建立三個數(shù)據(jù)塊DB2、DB3、DB4用于讀取不同的參數(shù)。不能通過并行讀取方法讀取變頻器數(shù)據(jù),需要按照順序依次讀取。每次讀完一個參數(shù)之后,發(fā)出下一個參數(shù)的讀信號脈沖,讀取下一個參數(shù)值。
S7-300 PLC提供了一個功能塊FB41連續(xù)控制PID。系統(tǒng)使用FB41構(gòu)成電機轉(zhuǎn)速閉環(huán)控制,結(jié)構(gòu)圖如圖7所示。給定值與實際轉(zhuǎn)速值進行計算得到偏差,經(jīng)過PID控制器的作用輸出,再通過功能塊FC106轉(zhuǎn)換為電機轉(zhuǎn)速值傳送給電機,經(jīng)過光電編碼器測量實際轉(zhuǎn)速值,再傳送給PID控制器,這樣就構(gòu)成了電機轉(zhuǎn)速閉環(huán)控制。其中SP_INT是PID控制器給定值,MOTOR_SPEED是PID控制器中電機的實際轉(zhuǎn)速測量值。
圖7 電機轉(zhuǎn)速閉環(huán)控制結(jié)構(gòu)圖
調(diào)用FC106功能塊的作用是將連續(xù)PID控制器FB41輸出值的LMN轉(zhuǎn)換為轉(zhuǎn)速值。PID控制器的輸出值是0~100%,要實現(xiàn)PID控制器對系統(tǒng)的閉環(huán)控制,需要將PID輸出0~100%轉(zhuǎn)換為0~1400r/min,這是一個線性轉(zhuǎn)換??梢哉{(diào)用FC106功能塊如圖8所示。FC106的輸出值直接輸出轉(zhuǎn)速值。如果經(jīng)過功能塊FB41輸出的LMN值為40.7513,通過下列運算可以看出,LMN值40.7513經(jīng)過量程轉(zhuǎn)換變?yōu)?676,計算過程如式(1)所示。
得到量程變換結(jié)果x=6676。這是相對于計算機中的數(shù)值范圍(0~16384)而言,假設(shè)輸出的轉(zhuǎn)速值為y,計算過程如式(2)所示。
得到輸出的轉(zhuǎn)速值y為570.46r/min。
圖9是S7-300 PLC控制變頻器MM440的閉環(huán)變頻調(diào)速系統(tǒng)監(jiān)控界面,是閉環(huán)PID控制轉(zhuǎn)速從300r/min提升到800r/min的過程,電機轉(zhuǎn)速上升過程中有一個超調(diào),最后能準(zhǔn)確跟隨轉(zhuǎn)速設(shè)定值。
圖8 調(diào)用FC106功能
圖9 閉環(huán)轉(zhuǎn)速曲線顯示
設(shè)計HMI監(jiān)控系統(tǒng)的主要任務(wù)包括建立HMI監(jiān)控項目,建立通信,實現(xiàn)人機界面和PLC之間的通信連接,實現(xiàn)生產(chǎn)過程的動態(tài)監(jiān)控。編輯報警消息,進行用戶管理,設(shè)置不同的操作權(quán)限。WinCC flexible監(jiān)控組態(tài)是經(jīng)PLC以“變量”形式,完成人機接口HMI與生產(chǎn)過程之間的通信連接。在變量編輯器中,可以為速度值SPEED指定上下限。根據(jù)電機參數(shù)可知,電機的轉(zhuǎn)速值有一定限制,因此可以對變量SPEED進行限制,在“屬性”→“限制值”中輸入上下限。而且這兩個值都可以創(chuàng)建模擬量報警。在閉環(huán)變頻調(diào)速系統(tǒng)監(jiān)控界面中,通過設(shè)置PID參數(shù),對電機轉(zhuǎn)速實現(xiàn)閉環(huán)控制,點擊“啟動”,此時異步電機的轉(zhuǎn)速將緊緊跟隨轉(zhuǎn)速設(shè)定值而變化。閉環(huán)變頻調(diào)速系統(tǒng)監(jiān)控界面如圖10所示。
圖10 閉環(huán)變頻調(diào)速系統(tǒng)監(jiān)控界面
PLC控制系統(tǒng)具有模塊化結(jié)構(gòu),簡化了控制過程,而且可以通過現(xiàn)代化通信以及互聯(lián)網(wǎng)技術(shù)可以對生產(chǎn)現(xiàn)場進行遠(yuǎn)程操控,提高了設(shè)備運行的安全性。使用西門子S7-300 PLC是通用型的可編程控制器,能適應(yīng)工業(yè)控制的各種應(yīng)用現(xiàn)場。在PROFIBUS-DP上可用周期性數(shù)據(jù)通訊控制變頻器,S7-300 PLC通過與PROFIBUS-DP通信,對從站MM440變頻器進行控制,完成對異步電機的控制,實現(xiàn)電機的啟動和停止、點動和正反轉(zhuǎn)的操作,并通過變頻器獲取異步電機的運行參數(shù),包括獲取輸出電壓、輸出電流、頻率和轉(zhuǎn)矩。文中較好地應(yīng)用現(xiàn)場總線PROFIBUS-DP實現(xiàn)了異步電機變頻調(diào)速功能[4,5]。
[1] 姜建芳.西門子S7-300/400 PLC工程應(yīng)用技術(shù)[M].北京:機械工業(yè)出版社,2012.
[2] 馬秀坤,史運濤,馬學(xué)軍.S7-200 PLC控制原理及工程應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2012:224-263.
[3] 羅庚興,寧玉珊.基于WinCC和STEP 7的PID控制[J].機電工程技術(shù),2009,38(1):40-41.
[4] 張興華.基于Simulink/PSB的異步電機變頻調(diào)速系統(tǒng)的建模與仿真[J].系統(tǒng)仿真學(xué)報,2005,17(9):1-3.
[5] 高勇,宮亮,楊煌普.基于Profibus總線變頻器通信研究和實現(xiàn)[J]. 微計算機信息,(測控自動化),2008,24(6-1):18-19.