汪大衛(wèi),周 平
(東方電機(jī)控制設(shè)備有限公司,四川 德陽 618000)
勵磁系統(tǒng)的核心是勵磁調(diào)節(jié)器。調(diào)節(jié)器由控制器和外圍部件組成。控制器一般采用IPC總線控制機(jī)或COMPACT PCI總線控制機(jī),也有VME總線控制機(jī)。這類控制機(jī)的優(yōu)點是標(biāo)準(zhǔn)化和開放式的結(jié)構(gòu)。勵磁系統(tǒng)調(diào)節(jié)器的功能趨向于復(fù)雜,要求適應(yīng)性強(qiáng)。過去的編程語言多數(shù)為 CC++語言,要求編程人員的能力很強(qiáng),而語言能力的要求對應(yīng)用工程師的編程和調(diào)試造成障礙,因此,調(diào)節(jié)器的完善和提高,以及滿足用戶的非標(biāo)準(zhǔn)要求都存在相當(dāng)?shù)碾y度。
為什么在電力、冶金和化工等廣泛應(yīng)用的PLC在勵磁系統(tǒng)調(diào)節(jié)器中沒有找到用武之地,究其原因是傳統(tǒng)的PLC其CPU速度和模擬量采樣速度不能滿足勵磁系統(tǒng)的要求,另外勵磁系統(tǒng)需要對大功率整流橋進(jìn)行精確控制,這也是PLC難于勝任的工作。還有一方面是PLC的不開放性,其總線為各個開發(fā)商所獨有,沒有公開。傳統(tǒng)的PLC在通訊上也有不足之處。但是,PLC的堅固性、可靠性、特別是編程的標(biāo)準(zhǔn)化,也是其它控制器的短處和軟肋。我公司在開發(fā)新型勵磁調(diào)節(jié)器時,認(rèn)真考慮采用何種編程語言,作為新一代的勵磁調(diào)節(jié)器,其發(fā)展趨勢,一方面是CPU速度越來越快,新器件的應(yīng)用,新工藝的開發(fā),結(jié)構(gòu)的完善,使控制器為低功耗、無風(fēng)扇、高速、完備的通用可靠的通信網(wǎng)絡(luò);另一方面,調(diào)節(jié)器開發(fā)團(tuán)隊對控制器的開發(fā)系統(tǒng)也相當(dāng)注意,投入大量的心血,因為,硬件一旦相對完善,軟件的開發(fā)和維護(hù)以及可靠性的提高都是相當(dāng)重要的。
針對上述問題,調(diào)節(jié)器開發(fā)團(tuán)隊把目光放到 PLC采用的符合國際IEC61131-3標(biāo)準(zhǔn)的編程語言,實現(xiàn)此項目標(biāo),具有相當(dāng)大的難度。于是開發(fā)團(tuán)隊想到軟邏輯。軟邏輯的產(chǎn)生是滿足那些要在 PC機(jī)上運行 PLC語言的用戶。是指在PC機(jī)上實現(xiàn)IEC61131標(biāo)準(zhǔn)的編程語言。但是,在使用軟邏輯之前,首先要解決高速AD采樣和高速精確脈沖控制的功能。否則,軟邏輯可以滿足不同工控機(jī)的要求,但無法應(yīng)用于勵磁系統(tǒng)。另一個想法是將人機(jī)界面的編程和控制機(jī)的編程以及勵磁系統(tǒng)內(nèi)的其它控制器的編程放在一個平臺上,統(tǒng)一管理、維護(hù)和調(diào)試,這樣可以對各個部件有統(tǒng)一的接口和數(shù)據(jù)庫,這樣好比在一個網(wǎng)絡(luò)上統(tǒng)一成一個系統(tǒng),為將來的智能電網(wǎng)和網(wǎng)絡(luò)通訊打下基礎(chǔ)。這也將運動控制、遠(yuǎn)程配置、運程維護(hù)集成起來。
IEC61131-3是第一個為工業(yè)控制系統(tǒng)提供標(biāo)準(zhǔn)化編程語言的國際標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)針對工業(yè)控制系統(tǒng)所闡述的軟件設(shè)計的概念和軟件模型等進(jìn)行規(guī)定,該標(biāo)準(zhǔn)適應(yīng)了當(dāng)今世界軟件、工業(yè)控制系統(tǒng)的發(fā)展方向,是一種非常先進(jìn)的設(shè)計技術(shù)。符合IEC 61131-3的軟件系統(tǒng)是一個結(jié)構(gòu)完美、可重復(fù)使用、可維護(hù)的工業(yè)控制系統(tǒng)軟件,不但能應(yīng)用在 PLC,而且還能應(yīng)用在運動控制系統(tǒng)、分散型控制系統(tǒng)和軟邏輯/PC、SCADA等。
IEC61131-3是PLC編程語言標(biāo)準(zhǔn),它詳細(xì)地說明了句法、語義和 5種編程語言:指令表(Instruction List),結(jié)構(gòu)化文本(Structured Text),順序功能圖(Sequential Function Diagram),梯形圖(Ladder Diagram),功能塊圖(Function Block Diagram)。在這五種編程語言中,指令表和結(jié)構(gòu)化文本是文本語言,易于實現(xiàn)一些復(fù)雜的算法;順序功能圖、梯形圖和功能塊圖是圖形語言,它們則擅長處理邏輯控制和模擬控制。這三種語言適合于工程師。工程師此時不再注意系統(tǒng)控制部件的驅(qū)動和結(jié)構(gòu),而是專注于他那部分工作,就是滿足現(xiàn)場的應(yīng)用,編程效率明顯提高,也降低誤差率。同時該標(biāo)準(zhǔn)還允許在同一項目中,使用多種語言進(jìn)行混合編程,而且支持POU(程序組織單元)的重復(fù)使用,為不同知識背景的編程人員提供了方便。
為什么要有IEC61131,這是因為在眾多的PLC控制器中,由于語言、指令、定義的不同,造成許多PLC的控制平臺的不同,使PLC的硬件和軟件的開發(fā)、培訓(xùn)、維護(hù)造成大量的浪費。因此,IEC61131將各種語言和指令以及定義標(biāo)準(zhǔn)化,統(tǒng)一管理,達(dá)到高效快速和節(jié)省成本的PLC。
IEC61131標(biāo)準(zhǔn)規(guī)定了程序的結(jié)構(gòu)為模塊化,一個程序由許多POU(程序組織單元)組成,每個程序單元分成代碼段和變量聲明部分,程序單元可以是功能、功能塊或典型程序。這個規(guī)定的目的是確保程序單元可以在同一個工程中反復(fù)使用,也可以通過程序庫,應(yīng)用于其它工程。輸入輸出的接口可以直接尋址或通過變量來尋址。IEC61131規(guī)定采用變量代替輸入輸出接口,如同高級語言一樣。變量可以賦初始值。變量也可以規(guī)定為保存變量,在控制器失電后,這些變量的數(shù)值仍然保留,變量可以是符號變量。
還可以規(guī)定數(shù)值類型,可以是布爾數(shù)、字節(jié)、字、雙字、實型數(shù)或結(jié)構(gòu)以及陣列。陣列對于一組數(shù)如AD采樣值或通訊數(shù)據(jù)等是必要的。下面簡要介紹5種編程語言。
(1)梯形圖(PLC)。梯形圖在PLC大量使用,適合于開發(fā)工程師和現(xiàn)場服務(wù)工程師,適用于順序邏輯控制,容易編程和調(diào)試,被廣泛接受。IEC61131規(guī)定了一整套 LD指令,包括所有的線圈和接點型式。觸點接通電源,線圈保存進(jìn)入的數(shù)值。觸點和線圈都是波爾數(shù)據(jù)。順序控制可以附加返回、跳轉(zhuǎn)、標(biāo)號和評論。在功能塊圖中,可以增加梯形圖,如圖1所示。

圖1 梯形圖
(2)功能塊圖。功能塊圖包含各種功能或功能塊,它們連接在一起,或連接到變量。在功能塊圖網(wǎng)絡(luò)中,可以使用返回、跳轉(zhuǎn)、標(biāo)號。除了單獨使用功能塊,梯形圖可以用于連接各個功能塊,如計數(shù)器、計時器、數(shù)值轉(zhuǎn)換等,使各個功能和邏輯聯(lián)系起來。功能塊圖適應(yīng)工業(yè)工程控制,也適應(yīng)勵磁系統(tǒng)的控制,完成功能塊的輸入數(shù)據(jù)、對數(shù)據(jù)處理、為功能塊輸出數(shù)據(jù)等功能,功能塊圖如圖2所示。
(3)指令表(IL)。IL語言有點像匯編語言。包括一行行順序執(zhí)行的命令,每行包含命令和變量以及可選的附加值,可以帶跳轉(zhuǎn)和標(biāo)號,如圖3所示。程序特點是執(zhí)行速度快,適合傳統(tǒng)的PLC以及特殊需求。
(4)結(jié)構(gòu)化文本。ST語言與高級語言 PASCAL或BASIC相似,被程序員大量使用,如圖4所示。在程序中,大量使用IF…THEN;FOR…NEXT,適應(yīng)數(shù)學(xué)運算和數(shù)據(jù)操作。還支持矩陣和結(jié)構(gòu),因此功能強(qiáng)大。
(5)順序功能圖(SFC)。SFC是面向狀態(tài)的語言。包含代碼段,步和轉(zhuǎn)換。代碼段由SFC編程,步包含機(jī)器狀態(tài)及其邏輯關(guān)系,如圖5所示。轉(zhuǎn)換指條件滿足時,下一步的代碼段將被執(zhí)行,SFC特別適應(yīng)于一些應(yīng)用可以分成若干步。

圖2 功能塊圖(FBD)
友好的交互界面、網(wǎng)絡(luò)互聯(lián)功能、符合國際標(biāo)準(zhǔn)的編程軟件、實時數(shù)據(jù)處理已成為現(xiàn)代控制系統(tǒng)的共同需求,因此,我公司開發(fā)基于 PC控制器和 IEC 6113l-3標(biāo)準(zhǔn)的嵌入式實時控制系統(tǒng)很有意義。

圖3 指令表(IL)

圖4 結(jié)構(gòu)化文本(ST)

圖5 順序功能圖(SFC)
目前,國外許多工業(yè)控制系統(tǒng)開發(fā)商正在發(fā)展基于PC的控制系統(tǒng),推出了符合IEC 61131-3標(biāo)準(zhǔn)的產(chǎn)品。在國內(nèi)市場上常見的控制產(chǎn)品有:法國CJ International公司的 ISaGRAF,德國 KW 公司的MULTIPROG,西門子公司的WinAC、BECKHOFF公司的TWinCAT以及SOFTPLC公司的SoftPLC等。我們采用德國KW公司的MULTIPROG作為典型的基于PC的控制系統(tǒng)應(yīng)用。
軟PLC基于PC機(jī),建立在PC機(jī)的軟、硬件平臺之上,因此具有PC機(jī)的優(yōu)點和PLC的特性,具有良好的開放性。全面支持Windows、Linux等操作系統(tǒng),通過OPC或DDE等通信方式易于第三方的產(chǎn)品集成運行。其硬件結(jié)構(gòu)不再封閉,用戶可以選擇不同的I/O模塊來滿足自己的要求。具有廣泛的兼容性。軟 PLC的技術(shù)是基于IEC 61131-3標(biāo)準(zhǔn)的,用戶在掌握了標(biāo)準(zhǔn)語言后,開發(fā)比較容易。由于該標(biāo)準(zhǔn)繼承了傳統(tǒng)PLC的編程方式,因此不同知識背景的工程人員容易接受和使用。如圖6所示,軟PLC一般由兩部分組成,開發(fā)平臺和運行環(huán)境。開發(fā)平臺采用MULTIPROG?,而運行環(huán)境采用ProConOS?操作系統(tǒng)。

圖6 軟PLC
ProConOS?是實時多任務(wù),專門應(yīng)用于高速PLC實時內(nèi)核。完全符合IEC 61131-3標(biāo)準(zhǔn)的可編程控制功能。它是高可靠的和適應(yīng)性強(qiáng)的實時操作系統(tǒng),完成裝載和運行程序,實現(xiàn)調(diào)試功能、通訊功能、遠(yuǎn)程編程和維護(hù)功能、以及多任務(wù)和多用戶操作系統(tǒng)功能。
圖7所示為ProConOS?實時系統(tǒng),使硬件成為滿足IEC標(biāo)準(zhǔn)的硬件。ProConOS?是多任務(wù)操作系統(tǒng),可以監(jiān)視每個任務(wù)的執(zhí)行時間。ProConOS?與MULTIPROG?一起完成下列調(diào)試任務(wù):(1)變量狀態(tài);(2)地址狀態(tài);(3)斷點;(4)單步;(5)跟蹤;(6)覆蓋;(7)強(qiáng)制;(8)在線修改;(9)觀察窗口;(10)修正;(11)實時邏輯分析。

圖7 ProConOS?系統(tǒng)
ProConOS?的輸入輸出特性:(1)與任務(wù)同步的輸入輸出印象處理;(2)開放式IO;(3)智能現(xiàn)場總線主機(jī);(4)特殊啟動模式。
在通訊網(wǎng)絡(luò)的時代,集成了多種網(wǎng)絡(luò)驅(qū)動程序,高效和適應(yīng)性強(qiáng)的滿足各種高速通訊要求,實現(xiàn)變量數(shù)值的網(wǎng)絡(luò)實時傳遞。
MULTIPROG?是完全滿足 IEC61131-3標(biāo)準(zhǔn)的編程平臺。工程管理清楚明晰,團(tuán)隊工作任務(wù)分工明確,編程調(diào)試簡單易學(xué),容易掌握,各種提示信息較完備,使編程錯誤最小化,擁有完備的調(diào)試維護(hù)工具。
MULTIPROG是基于Windows的開發(fā)程序,一目了然的工程樹狀結(jié)構(gòu),對于工程師的編程和調(diào)試非常有用。工程師可以理解整個工程的組成和資源,又可以對其關(guān)心的任務(wù)任意進(jìn)入,進(jìn)行編程,完成調(diào)試。
(1)強(qiáng)大的編輯功能:工程師可以采用圖形編輯器,任意拖放功能塊,很方便完成一個復(fù)雜的功能。在原有的工程里,方便加入新的元件。采用變量表編輯器,可以方便聲明變量,定義為全局變量或局部變量,確定變量型式,為變量賦值,還可以設(shè)置為保留變量,失電后,變量數(shù)值不丟失。可以自動完成變量與輸入輸出的連接。
(2)大量的元件庫:元件庫分為廠家?guī)旌陀脩魩臁G罢邽閺S家提供大量的應(yīng)用庫,如大部分的功能塊。如果用戶有特殊要求,可以準(zhǔn)備用其他語言編輯新的功能塊,放在用戶庫中。
(3)知識產(chǎn)權(quán)的保護(hù):一些重要的和需要保密的程序只有密碼才可以進(jìn)入,保護(hù)開發(fā)團(tuán)隊的智慧成果。
對于多用戶的開發(fā),即團(tuán)隊的開發(fā),可以規(guī)定開發(fā)人員各自的開發(fā)任務(wù),其它任務(wù)不得修改。
MULTIPROG?幫助工程師順利完成編程任務(wù),有各種模板借用,編程步驟簡單明確。編程分為6個部分:(1)根據(jù)模板建立工程項目;(2)建立多個工程子任務(wù),建立對應(yīng)任務(wù)或功能的程序,編輯修改程序;(3)編譯,修改錯誤;(4)下傳到目標(biāo)機(jī);(5)調(diào)試和改錯;(6)形成工程文件。
調(diào)試非常方便,可以采用仿真,就算沒有硬件,也可以檢查程序的控制效果。還可以采用邏輯分析儀,實時分析控制變量的正確性。可以設(shè)置斷點,單步執(zhí)行。更為方便的是圖形化編程的變量可以在在聯(lián)機(jī)狀態(tài)下觀察變量的數(shù)值。
本文沒有完全說明采用新的編程環(huán)境的所有優(yōu)點,但已經(jīng)管中窺豹,略見一斑。另外需要說明 PAC與PLC的區(qū)別,他們有許多相似之處,遵行IEC61131-3的編程標(biāo)準(zhǔn),但是,PAC的優(yōu)勢在于網(wǎng)絡(luò)通訊,面向整個系統(tǒng),高速CPU和更優(yōu)越的模擬量控制。通過本文說明了勵磁調(diào)節(jié)器的開發(fā)平臺,證明采用IEC61131-3編程語言有許多優(yōu)勢,是目前勵磁調(diào)節(jié)器編程平臺的發(fā)展趨勢。