彭瑜(上海工業自動化儀表研究所,200233) 《國內外機電一體化技術》2004年第1期 摘要: IEC 61131-3是可編程序控製器的編程語言的標準,它將現代軟件的概念和現代軟件工程的機製與傳統的PLC編程語言成功地結合,使它在工業控製領域的影響越出PLC的界限,成為DCS、PC控製、運動控製,以及SCADA的編程係統事實上的標準。本文綜述了該標準成功的原因,它的優勢和不足,目前和今後的發展,以及推廣應用的活動。 關鍵詞: 編程語言,工業控製, PLC,DCS, IEC 61131,IEC 61499, 功能塊, 分布式控製 1993年國際電工委員會(IEC)正式頒布了可編程控製器的國際標準IEC 1131(以後改稱IEC 61131),qizhongdedisanbufenguanyubianchengyuyandebiaozhun,guifanlekebianchengkongzhiqidebianchengyuyanjiqijibenyuansu。zheyibiaozhunweikebianchengkongzhiqiruanjianjishudefazhan,naizhizhenggegongyekongzhiruanjianjishudefazhan,qilejuzuqingzhongdetuidongzuoyong。tashiquanshijiekongzhigongyediyicizhidingdeyouguanshuzikongzhiruanjianjishudebianchengyuyanbiaozhun。ciqian,guojishangmeiyouchuxianguoyoushijiyiyide,weizhidingtongyongdekongzhiyuyanerkaizhandebiaozhunhuahuodong。zhexianranshizhuyidaoyouyuDCS(分散控製係統)等以數字技術為基礎的控製裝置在發展進程中過於專有化,給用戶帶來的大量不便。可以說,沒有編程語言的標準化便沒有今天PLC走向開放式係統的堅實基礎。 國際標準IEC 61131概況 1992年以後,可編程序控製器國際標準IEC 61131的各個部分陸續頒布施行。已正式頒布的有: IEC 61131-1 通用信息 (1992) IEC 61131-2 裝置要求與測試 (1992) IEC 61131-3 編程語言 (1993) IEC 61131-4 用戶導則 (1995) IEC 61131-5 通信服務規範 (2000) IEC 61131-7 模糊控製編程軟件工具實施 (2000) IEC 61131-8 IEC 61131-3語言實現導則 (2001) 2000年8月由PLCopen組織向IEC提出增加IEC 61131-X 功能安全性,這主要是依據《IEC 61508與安全有關的電氣/電子/可編程電子係統的功能安全性》,結合PLC的具體情況提出。目前尚處在草案階段。 中國的工業過程測量和控製標準化委員會按與IEC國際標準等效的原則,組織翻譯出版工作。於1995年12月29日以GB/T15969.1,15969.2,15969.3,15969.4 頒布了PLC的國家標準。 該標準隻涉及IEC 61131的第一、第二、第三和第四部分,沒有納入1995年以後出版的第五部分通信服務規範 ,第七部分模糊控製編程軟件工具,第八部分IEC 61131-3語言的實現導則。目前正在啟動該標準的修訂和補充工作,為第二版的正式頒布進行準備。傳統的梯形圖編程語言的嚴重不足傳統的PLC最常用的編程語言是梯形圖。它雖然遵從了廣大電氣自動化人員的專業習慣,易學易用,但是也存在許多難以克服的缺點:[1,2] ☆不同廠商的PLC產品其梯形圖的符號和編程規則均不一致。程序的可移植性差。 ☆chengxukefuyongxingcha。weilejianshaozhongfulaodong,xiandairuanjianbianchengtebieqiangtiaochengxudekezhongfushiyong。chuantongdetixingtubianchenghennanzaitiaoyongzichengxushitongguobianliangfuzhishixianxiangtongdeluojisuanfahecelvedefanfushiyong。 ☆缺que乏fa足zu夠gou的de程cheng序xu封feng裝zhuang能neng力li。一yi般ban要yao求qiu將jiang一yi個ge複fu雜za的de程cheng序xu分fen解jie為wei若ruo幹gan個ge不bu同tong功gong能neng的de程cheng序xu模mo塊kuai。或huo者zhe說shuo,人ren們men在zai編bian程cheng時shi希xi望wang用yong不bu同tong的de功gong能neng模mo塊kuai組zu合he成cheng一yi個ge複fu雜za的de程cheng序xu,梯ti形xing圖tu編bian程cheng難nan以yi實shi現xian個ge程cheng序xu模mo塊kuai之zhi間jian具ju有you清qing晰xi接jie口kou的de模mo塊kuai化hua,也ye難nan以yi對dui外wai部bu隱yin藏zang程cheng序xu模mo塊kuai內nei部bu數shu據ju從cong而er實shi現xian程cheng序xu模mo塊kuai的de封feng裝zhuang。 ☆不支持數據結構。梯形圖編程不支持數據結構,無法實現將數據組織成如Pascal、C語言等高級語言中的數據結構那樣的數據類型。對於一些複雜應用的編程,它幾乎無能為力。 ☆程序執行具有局限性。由於傳統PLC按掃描方式組織程序的執行,因此整個程序的指令代碼完全按順序逐條執行。對於要求即時響應的程序應用(如執行事件驅動的程序模塊),具有很大的局限性。 ☆進行順序控製功能編程時,一般隻能為每一個順控狀態定義一個狀態位,難以實現選擇或並行等複雜順控操作。 ☆傳統的梯形圖編程在算術運算處理、字符串或文字處理等方麵均不能提供強有力支持。在IEC 61131-3標準的製定過程中就麵臨著在突破舊有的編程語言的不足的同時,又要繼承其合理和有效的部分。解決好這個問題,會大大地推動PLC編程工具的發展,推動PLC的開放性。 兼容並蓄是IEC 61131-3成功的基礎[3] IEC 61131-3的製定,集中了美國、加拿大、歐洲(主要是德國、法國)以及日本等7家國際性工業控製企業的專家和學者的智慧,以及數十年在工控方麵的經驗。在製定這一編程語言標準的過程中,PLC正處在其發展和推廣應用的鼎盛時期。主要是在北美和日本,普遍運用梯形圖(LD)語言編程;在歐洲,則使用功能塊圖(FBD)和順序功能圖(SFC);德國和日本,又常常采用指令表(IL)對PLC進行編程。為了擴展PLC的功能,特別是加強它的數據處理、文字處理,以及通信功能的能力,許多PLC還允許使用高級語言(如BASIC語言、C語言)。因此,製定這一標準的首要任務就是把現代軟件的概念和現代軟件工程的機製應用於傳統的PLC編程語言。IEC 61133-3規定了二大類編程語言:文本化編程語言和圖形化編程語言。前者包括指令清單語言(IL)和結構化文本語言(ST),後者包括梯形圖語言(LD)和功能塊圖語言(FBD)。至於順序功能圖(SFC),biaozhunbubatadandulierubianchengyuyandeyizhong,ershijiangtazaigongyongyuansuzhongyuyiguifan。zhejiushishuo,bulunzaiwenbenhuayuyanzhong,huozhezaituxinghuayuyanzhong,doukeyiyunyongSFC的概念、句法和語法。於是,在我們現在所使用的編程語言中,可以在梯形圖語言中使用SFC,也可以在指令清單語言中使用SFC。 IEC 61131-3允許在同一個PLC中(zhong)使(shi)用(yong)多(duo)種(zhong)編(bian)程(cheng)語(yu)言(yan),允(yun)許(xu)程(cheng)序(xu)開(kai)發(fa)人(ren)員(yuan)對(dui)每(mei)一(yi)個(ge)特(te)定(ding)的(de)任(ren)務(wu)選(xuan)擇(ze)最(zui)合(he)適(shi)的(de)編(bian)程(cheng)語(yu)言(yan),還(hai)允(yun)許(xu)在(zai)同(tong)一(yi)個(ge)控(kong)製(zhi)程(cheng)序(xu)中(zhong)其(qi)不(bu)同(tong)的(de)軟(ruan)件(jian)模(mo)塊(kuai)用(yong)不(bu)同(tong)的(de)編(bian)程(cheng)語(yu)言(yan)編(bian)製(zhi)。這(zhe)一(yi)規(gui)定(ding)妥(tuo)善(shan)繼(ji)承(cheng)了(le)PLC發展曆史中形成的編程語言多樣化的現實,又為PLC軟件技術的進一步發展提供了足夠的空間。 自IEC 61131-3正式公布後,它獲得了廣泛的接受和支持: (1)國際上各大PLC廠商都宣布其產品符合該標準的規範(盡管這些公司的軟件工具距離標準的IEC 61131-3語言尚有一定距離),在推出其編程軟件新產品時,遵循該標準的各種規定。 (2)許多稍後推出的DCS產品,或者DCS的更新換代產品,也遵照IEC 61131-3的規範,提供DCS的編程語言,而不像以前每個DCS廠商都搞自己的一套。 (3)以PC為基礎的控製作為一種新興控製技術正在迅速發展,大多數PC控製的軟件開發商都按照IEC 61131-3的編程語言標準規範其軟件產品的特性。 (4)正因為有了IEC 61131-3,才真正出現了一種開放式的可編程控製器的編程軟件包,它不具體地依賴於特定的PLC硬件產品,這就為PLC的程序在不同機型之間的移植提供了可能。 總部設在荷蘭的國際性組織PLC open在zai推tui廣guang該gai標biao準zhun的de應ying用yong並bing開kai發fa相xiang關guan的de軟ruan件jian產chan品pin,以yi及ji謀mou求qiu該gai標biao準zhun的de進jin一yi步bu發fa展zhan進jin行xing了le不bu懈xie的de努nu力li,獲huo得de了le廣guang泛fan的de響xiang應ying和he優you秀xiu的de成cheng績ji。以yi上shang這zhe些xie事shi實shi有you力li地di說shuo明ming了le這zhe個ge編bian程cheng語yu言yan標biao準zhun的de生sheng命ming力li。 IEC軟件模型是麵向未來的開放係統[4][5][6] 程序
 IEC 61131-3提出的軟件模型是整個標準的基礎性的理論工具,幫助人們完整地理解除編程語言以外的全部內容。 配置本軟件模型,在其最上層把解決一個具體控製問題的完整的軟件概括為一個“配置”。它專指一個特定類型的控製係統,包括硬件裝置、處理資源、I/O通道的存貯地址和係統能力,等同於一個PLC的應用程序。在一個由多台PLC構成的控製係統中,每一台PLC的應用程序就是一個獨立的“配置”。 資源在一個“配置”中可以定義一個或多個“資源”。可把“資源”看作能執行IEC程序的處理手段,它反映PLC的物理結構,在程序和PLC的物理I/O通道之間提供了一個接口。隻有在裝入“資源”後才能執行IEC程序。一般而言,通常資源放在PLC內,當然它也可以放在其它支持IEC程序執行的係統內。 任ren務wu在zai一yi個ge資zi源yuan內nei可ke以yi定ding義yi一yi個ge或huo多duo個ge任ren務wu。任ren務wu被bei配pei置zhi後hou可ke以yi控kong製zhi一yi組zu程cheng序xu或huo功gong能neng塊kuai。這zhe些xie程cheng序xu和he功gong能neng塊kuai可ke以yi是shi周zhou期qi地di執zhi行xing,也ye可ke以yi由you一yi個ge事shi件jian驅qu動dong予yu以yi執zhi行xing。 程序一個IEC程序可以用符合IEC 61131-3規定的編程語言來編寫。典型的IEC程序由許多互連的功能塊和/或函數組成,每個功能塊之間可相互交換數據。函數與功能塊是基本的組成單元,其內包括一個數據結構和一種算法。 下麵我們將IEC 61131-3軟件模型與傳統的PLC模型(包括一個資源,運行一個任務,控製一個程序,且運行於一個封閉係統中)進行比較(圖2)。
 可以看出,IEC軟件模型在傳統PLC的軟件模型的基礎上增加了許多內容: ★IEC 61131-3的軟件模型是一種分層結構,每一層均隱含其下層的許多特征。 ★它奠定了將一個複雜的程序分解為若幹個可以進行管理和控製的小單元,而這些被分解的小單元之間存在著清晰而規範的界麵。 ★可滿足由多個處理器構成的PLC係統的軟件設計。 ★可方便地處理事件驅動的程序執行(傳統的PLC的軟件模型僅為按時間周期執行的程序結構) ★對以工業通信網絡為基礎的分散控製係統(例如由現場總線將分布於不同硬件內的功能塊構成一個具體的控製任務)尤其是軟邏輯/PC控製這些正在發展中的新興控製技術,該軟件模型均可覆蓋和適用。由此可見,該軟件模型足以映像各類實際係統: 對於隻有一個處理器的小型係統,其模型隻有一個配置、一個資源和一個程序,與現在大多數PLC的情況完全相符。對於有多個處理器的中、大型係統,整個PLCbeishizuoyigepeizhi,meigechuliqidouyongyigeziyuanlaimiaoshu,eryigeziyuanzebaokuoyigehuoduogechengxu。duiyufensanxingxitong,jiangbaohanduogepeizhi,eryigepeizhiyoubaohanduogechuliqi,meigechuliqiyongyigeziyuanmiaoshu,meigeziyuanzebaokuoyigehuoduogechengxu。 IEC 61131-3的優勢與缺陷[4][7] IEC 61131-3的優勢在於它成功地將現代軟件的概念和現代軟件工程的機製用於PLC傳統的編程語言。而它的不足卻是因為它在體係結構上和硬件上依賴於傳統的PLC的體係結構所形成的“先天不足”。 下麵先討論IEC 61131-3的優勢 1.采用現代軟件模塊化原則。 ★編程語言支持模塊化,將常用的程序功能劃分為若幹單元,並加以封裝,構成編程的基礎。 ★模塊化時隻設置必要的、盡可能少的輸入和輸出參數,盡量減少交互作用,盡量減少內部數據交換。 ★模塊化接口之間的交互作用,均采用顯性定義。 ★將信息隱藏於模塊內,對使用者來講隻需了解該模塊的外部特性(即功能,輸入輸出參數),而無需了解模塊內算法的具體實現方法。
 2.IEC 61131-3支持自頂而下(top-down)和自底而上(bottom-up)程序開發方法。用戶可先進行總體設計,將控製應用劃分若幹個部分,定義應用變量,然後編各個部分的程序: 這就是自頂而下。用戶也可以先從底部開始編程,例如先導出函數和功能塊,再進行按照控製要求編製程序: 這是自底而上。無論選擇何種開發方法,IEC 61131-3所創建的開發環境均會在整個編程過程中給予強有力的支持。 3.IEC 61131-3所規範的編程係統獨立於任一個具體的目標係統,它可以最大限度地在不同的PLC目標係統中運行。這樣就創造了一種具有良好開放性的氛圍,奠定了PLC編程開放性的基礎。 4.將現代軟件概念濃縮,並加以運用,例如: ★數據使用DATA_TYPE說明機製 ★函數使用FUNTION說明機製 ★數據和函數的組合使用FUNTION_BLOCK說明機製。 在IEC 61131-3中,功能塊並不隻是FBD語yu言yan的de編bian程cheng機ji製zhi,它ta還hai是shi麵mian向xiang對dui象xiang組zu件jian的de結jie構gou基ji礎chu。一yi旦dan完wan成cheng了le某mou個ge功gong能neng塊kuai的de編bian程cheng,並bing通tong過guo調tiao試shi和he試shi用yong證zheng明ming了le它ta確que能neng正zheng確que執zhi行xing所suo規gui定ding的de功gong能neng,那na麼me就jiu不bu允yun許xu用yong戶hu再zai將jiang它ta打da開kai,改gai變bian其qi算suan法fa。即ji使shi是shi一yi個ge功gong能neng塊kuai因yin為wei其qi執zhi行xing效xiao率lv有you必bi要yao再zai提ti高gao,或huo者zhe是shi在zai一yi定ding的de條tiao件jian下xia其qi功gong能neng執zhi行xing的de正zheng確que性xing存cun在zai問wen題ti,需xu要yao重zhong新xin編bian程cheng,我wo們men隻zhi要yao保bao持chi該gai功gong能neng塊kuai的de外wai部bu接jie口kou(輸入/輸出定義)不變,仍可照常使用。同時,許多原創設備製造廠(OEM)將(jiang)它(ta)們(men)的(de)專(zhuan)有(you)控(kong)製(zhi)技(ji)術(shu)壓(ya)縮(suo)在(zai)用(yong)戶(hu)自(zi)定(ding)義(yi)的(de)功(gong)能(neng)塊(kuai)中(zhong),既(ji)可(ke)以(yi)保(bao)護(hu)知(zhi)識(shi)產(chan)權(quan),又(you)可(ke)以(yi)反(fan)複(fu)使(shi)用(yong),不(bu)必(bi)一(yi)再(zai)地(di)為(wei)同(tong)一(yi)個(ge)目(mu)的(de)而(er)編(bian)寫(xie)和(he)調(tiao)試(shi)程(cheng)序(xu)。 5.標準要求嚴格的數據類型定義。這意味著,IEC 61131-3編程語言為減少程序開發人員對一個變量做出錯誤的數據類型定義創造了有效的限製。 軟件工程中很早就認識到許多編程的錯誤往往發生在程序的不同部分其數據的表達和處理不同。IEC 61131-3從源頭上注意防止這類低級的錯誤,雖然采用的方法可能導致效率降低一點,但換來的價值卻是程序的可靠性、可讀性和可維護性。IEC 61131-3采用以下方法防止這些錯誤: ★限製函數與功能塊之間的互連範圍:隻允許兼容的數據類型與功能塊之間互連。 ★限製運算隻可對其數據類型已明確定義的變量進行。 ★禁止隱含的數據類型變換。比如,實型數不可執行按位運算。若要運算,編程者必須先通過顯式變換函數REAL_TO_WORD,把實型數變換為WORD型位串變量。標準中規定了多種標準固定字長的數據類型,包括位串,帶符號位和不帶符號位的整數型(8位、16位、32位和64位字長)。 6.對程序執行具有完全的控製能力。傳統的PLC隻能按掃描方式順序執行程序,對程序執行的多樣性要求如由事件驅動某一段程序的執行,程序的並行處理等均無能為力。IEC 61131-3允許程序的不同部分,在不同的條件(包括時間條件)下,以不同的比率並行執行。即允許對一個程序的不同部分規定不同的執行次數、不同的執行時間和並行執行的方式。這意味著,以“任務”控製的方式可讓一個程序的不同部分以不同的掃描周期進行掃描。 7.提(ti)供(gong)靈(ling)活(huo)的(de)編(bian)程(cheng)語(yu)言(yan)選(xuan)擇(ze)。有(you)三(san)種(zhong)圖(tu)形(xing)化(hua)語(yu)言(yan)和(he)兩(liang)種(zhong)文(wen)本(ben)化(hua)語(yu)言(yan)可(ke)在(zai)表(biao)達(da)一(yi)個(ge)控(kong)製(zhi)應(ying)用(yong)程(cheng)序(xu)的(de)不(bu)同(tong)部(bu)分(fen)時(shi),讓(rang)程(cheng)序(xu)編(bian)製(zhi)人(ren)員(yuan)有(you)很(hen)大(da)的(de)自(zi)由(you)度(du)去(qu)選(xuan)用(yong)他(ta)認(ren)為(wei)合(he)適(shi)的(de)語(yu)言(yan)來(lai)設(she)計(ji)。換(huan)句(ju)話(hua)說(shuo)就(jiu)是(shi),程(cheng)序(xu)的(de)不(bu)同(tong)部(bu)分(fen)可(ke)用(yong)上(shang)述(shu)五(wu)種(zhong)語(yu)言(yan)的(de)任(ren)意(yi)一(yi)種(zhong)來(lai)表(biao)達(da)。 8.支zhi持chi數shu據ju結jie構gou的de定ding義yi。由you於yu支zhi持chi數shu據ju結jie構gou,所suo以yi相xiang關guan的de數shu據ju元yuan素su即ji便bian屬shu於yu不bu同tong的de數shu據ju類lei型xing,也ye可ke在zai程cheng序xu不bu同tong的de部bu分fen傳chuan送song,就jiu如ru它ta們men是shi一yi個ge單dan一yi的de實shi體ti。在zai不bu同tong程cheng序xu組zu織zhi單dan元yuanPOU之間傳送複雜信息,如同傳送單一變量一樣。這不但改善了程序的可讀性,而且保證了相關數據的存取準確無誤。 9.完全支持順序控製的各種描述,再複雜的順序行為也可輕而易舉地用順序功能圖SFC這樣的圖形化語言加以分解、描述及編程。順序控製過程的每一步都可用步(steps)、其動作(actions)和轉移(transitions between steps)準確描述。 至於IEC 61131-3的缺陷主要是以下兩點: 1.IEC 61131-3沿用了直接表示與硬件有關的變量的方法,這就妨礙了均符合標準的PLC係統之間做到真正意義上的程序可移植。由於不同機種有自己的輸入、輸出的定義(這些均與硬件相關),如果想把一個在某個廠商的PLC中運行得很好的程序原封不動地搬到另一個PLC廠chang商shang的de機ji器qi,必bi須xu先xian從cong技ji術shu文wen件jian中zhong找zhao到dao有you關guan與yu硬ying件jian相xiang關guan變bian量liang的de定ding義yi,然ran後hou再zai在zai另ling一yi個ge機ji型xing中zhong對dui此ci重zhong新xin定ding義yi。至zhi少shao可ke以yi這zhe樣yang說shuo,不bu存cun在zai與yu硬ying件jian相xiang關guan變bian量liang之zhi間jian的de變bian換huan。 2.IEC 61131-3隻給出一個單一的集中PLC係(xi)統(tong)的(de)配(pei)置(zhi)機(ji)製(zhi),這(zhe)顯(xian)然(ran)不(bu)能(neng)適(shi)應(ying)分(fen)布(bu)式(shi)結(jie)構(gou)的(de)軟(ruan)件(jian)要(yao)求(qiu)。由(you)於(yu)工(gong)業(ye)通(tong)信(xin)技(ji)術(shu)的(de)飛(fei)速(su)發(fa)展(zhan),特(te)別(bie)是(shi)現(xian)場(chang)總(zong)線(xian)和(he)以(yi)太(tai)網(wang)在(zai)工(gong)業(ye)中(zhong)的(de)實(shi)際(ji)應(ying)用(yong),給(gei)工(gong)業(ye)自(zi)動(dong)化(hua)的(de)體(ti)係(xi)結(jie)構(gou)帶(dai)來(lai)了(le)巨(ju)大(da)影(ying)響(xiang)。因(yin)此(ci),IEC 61131-3bixushiyingkeguanxingshidefazhan,zaizhefangmianjinxingtupo。tayinggaiyunxugongnengkuaibuyidingjizhongchangzhuzaidangeyingjianzhong,yunxufensanyubutongyingjiandegongnengkuai,tongguotongxinfangshiyekeyigouchengyigekongzhichengxu。zhejiushizhengchuyuzhidingzhongdeIEC 61499的主攻方向。 加速IEC 61131-3的推廣應用 要全麵高水平實施IEC 61131-3還有一個相當艱苦過程。特別是它對控製領域的影響並不限於PLC,它還適用於DCS、PC控製,運動控製,甚至SCADA係統,因此推廣應用IEC 61131-3就不是幾個人、幾個廠商、shenzhijigeguojiadeshiqing,bixuyouyigebuyiyingliweimudeguojizuzhijinxingquanmianguihua,jijituiguang。zhideqingxingdeshizhiliyugongyekongzhibianchengbiaozhunhuadeguojizuzhiPLCopen,以自己的有效活動表明它足以堪當此重任。 PLCopen目前擁有分布於21個國家的100多個單元會員,下設5個技術委員會[8]:TC1重點在於與IEC合作共同發展、提高和完善IEC61131-3,目前具體工作是發行的第2版修訂文本。TC2重點在於定義功能塊的程序庫,協調功能塊的約定。目前正在組織對運動控製的功能塊進行定義,創立可重複使用、獨立於硬件的運動控製行規(profile)。TC3重點是製定編程語言一致性的測試標準。我們知道,IEC61131-3標(biao)準(zhun)僅(jin)給(gei)出(chu)了(le)一(yi)致(zhi)性(xing)的(de)基(ji)本(ben)規(gui)則(ze),並(bing)不(bu)提(ti)供(gong)實(shi)際(ji)編(bian)程(cheng)係(xi)統(tong)的(de)導(dao)則(ze)。所(suo)以(yi)關(guan)於(yu)編(bian)程(cheng)係(xi)統(tong)的(de)一(yi)致(zhi)性(xing)測(ce)試(shi)實(shi)際(ji)上(shang)就(jiu)是(shi)檢(jian)驗(yan)不(bu)同(tong)的(de)編(bian)程(cheng)係(xi)統(tong)是(shi)否(fou)真(zhen)正(zheng)具(ju)有(you)開(kai)放(fang)性(xing)的(de)問(wen)題(ti)。TC4重點是通信,負責製訂通信接口及應用交換格式等。TC5則著重於安全軟件導則,重點在於如何運用IEC 61508(有關係統安全的功能安全)支持安全編程技術。 一致性的實質在於建立一套測試方法和程序,這樣才能推動標準的真正貫徹。PLCopen把一致性劃分為3個等級:基本級,可重複使用級,以及全兼容級。符合基本級,可解決小係統的可移植性;符合可重複使用級和全兼容級,可解決功能塊程序庫的可移植性。目前,指令表(IL)、結構文本(ST)和順序功能圖(SFC)的基本級定義已完成;有關指令表、結構文本和順序功能圖的測試軟件已投入使用;有25個編程軟件包已通過一致性認證。梯形圖(LD)和功能塊圖(FBD)的基本級一致性定義正在製定中,相應測試軟件正在準備中。由於要全部滿足IEC 61131-3標準的要求實屬不易,所以標準中在許多方麵允許部分實現標準,這就給製造廠商相當大的自由度。也正因為如此,如果能在IL、ST、SFC、LD和FBD五個方麵均達到可重複使用級,則該編程係統即達到了全兼容級。 IEC 61131-3的修訂和發展 IEC 61131-3第二版已於2000年下半年進行了表決,現已公布施行。第二版對第一版作了少許修改,目的主要在於提高程序組織單元(如用IEC 61131-3的編程語言寫的程序,函數,功能塊)的可讀性和有用性。主要改動如下[7]: (1)將直接量(literal value)的類型作為該量的一部分來表示,以方便該量的應用,達到一目了然的效果。例如用UINT #345表示無符號整型數,正好對應有符號整型數INT #345。 (2)在第1版中,函數(不是功能塊)不允許存在由於其執行而產生的副作用。第2版中放鬆了這一要求,隻要在函數的定義中說明所產生的副作用並非有害即可。 (3)對結構化文本(ST)這一種編程語言的句法做了改進,使函數和功能塊的多輸出連接可以具有一種等效於功能塊圖(FBD)的多輸出連接的靈活性。 (4)第2版中規定了一種新的字符串數據類型WSTRING,以適應在ISO/IEC 10646標準中定義的寬字符(即雙字節)的字符串。 計劃中的IEC 61131-3的第3次修改版將與IEC 61499相協調,在保持IEC 61131-3原有優點的同時,消除它兩個最大的缺陷。智能式傳感器和執行器本身就具有執行控製功能的能力,如果IEC 61131-3能支持分布式係統體係結構的編程,那麼隻要開發出相應的軟件工具,就能組成靈活性極強的現場總線控製係統。IEC技術委員會(TC65)啟動了IEC 61499 工業過程測量和控製係統用功能塊項目,目的之一就在於對IEC 61131-3進行適當的擴展。這主要是: ★給出如何使PLC具有表達61499設備特性的能力。 ★引入有關61499如何使61131-3增加附加價值的闡述,而61131-3又如何增加61499的附加價值的闡述。 目前61131-3第三版的修訂內容已公布了32項[9],主要有: 在61131-3中增加新的定義“交叉可複用性”(cross-reusability),而不在61131-3中開發COMPLIANCE CLASSES or PROFILE(一致級或行規)。 61499和61131-3形式句法和語法的關係。 用服務接口功能塊( SIFB,Service-interface function block)提供對過程數據的存取,取代原來的與硬件相關的語言特性,如I/O地 址的直接表示。 取消VAR_GLOBAL結構,用相應的服務接口功能塊代替,以提供對係統的全局變量的存取。 用服務接口功能塊替代VAR_ ACCESS結構。 用61499的設備/資源模型取代CONFIGURATION結構。 引入61499的應用模型和在資源上的子部 分的映射。 引入執行控製圖編程語言元素。 61499功能塊算法采用61131-3語言編程。 設計將現有的61131-3的算法嵌入61499的 分散式功能塊的方法。還有一些與61499無直接關係的修改。 IEC 61499―IEC 61131-3的發展和補充 早在1990年初,IEC技術委員會(TC65)還在製定61131-3編程語言的時候就認為,為了細化和發展功能塊方法,有必要製定一個功能塊應用的公共模型。並將此項目命名為IEC 61499《工業過程測量和控製係統用功能塊》,把製定這個標準的工作交給其下屬的第六工作組(TC65/WG6)。目的就在於對IEC 61131-3進行適當的擴展。 目前,IEC 61499的前兩個部分已作為PAS(公眾可利用規範Publicly AvailIable Specification)公布。如果能取得工業界的積極響應和支持,在2003年就可能以正式標準頒布[10]。應注意的是,61499不是一個獨立的標準,為實現分布式工業過程測控係統我們至少還需要: ★通信行規 它定義標準的通信功能塊及其標準開放性通信的映射服務,就如在現場總線國際標準所規定的那樣。 ★標準編程語言 諸如IEC 61131-3規範的基本功能塊類型中的算法。 ★在特定範疇中(如過程控製功能塊)應用的標準功能塊類型及其導則。 61499-1是針對通過通信網絡互連的模塊化分布係統的體係結構標準。它定義了為精確描述分布式控製係統的功能塊和應用程序的體係結構、模型及其文本語法。其係統模型包括與被控過程(或機械)的接口,與通信網絡的接口,以及隱含的分布式應用程序。 61499-2是工程任務支持(Engineering Task Support),進一步描述創建和管理基於功能塊概念的工程係統所必須的概念(如資源和設備類型的功能描述方法),分布式工業過程測控係統的規範及軟件工具間信息交換方式等,為設計、實現和維護分布式工業過程測控係統提供工程指導。61499-2把可擴展標誌語言XML定義為61499的的文件交換格式。這意味著61499功能塊設計可以通過因特網傳遞,並用下一代網頁瀏覽器直接在網頁上瀏覽。這必將給最終用戶帶來極大的利益。在IEC 61499-1中,規定了係統模型包括與被控過程(或機械)的接口,與通信網絡的接口,以及隱含的分布式應用程序(見圖4)。
 由圖可見,一組互連的設備(儀表,器件等)彼此之間通過一個或多個網絡通信,這些網絡也可以構成多級遞階的方式進行通信。應用程序可常駐在一個設備中(如應用程序C),也可常駐在多個設備中(如應用程序A和B)。例如,一個應用程序可以包括一個或多個控製回路,其中輸入采揮由一個設備執行,控製運算由口力一個設備執行,輸出變換由第3個設備完成。 IEC 61499haigeichuyingyongchengxudemoxingtayouruogangekenengfensanzaiduogeshebeizhongdegongnengkuaihulianercheng。yujizhongxitongbutongdeshi,fensanxitongdechengxuzhixingbuzaiansaomiaofangshi,huoshiyiduorenwuduojinchengdefangshijinxing,tayaoqiuzaizhidingshujuchuanshuyukongzhisuanfazhijiandeguanxishijuyoumingquedexianxingjizhi。weilemanzuzhegeyaoqiu,IEC 61499增加了一個顯性事件接口,以及執行IEC 61131-3功能塊的控製算法的控製功能。 完成執行控製功能的一個重要手段便是IEC 61499中定義的執行控製圖的表示方法。它其實是IEC 61131-3中順序功能圖的一種簡化的、事件驅動版本。IEC 61499提供了服務接口功能塊(Service-interface function block,SIFB),SIFB作為指定所有分散於獨立硬件實體中操作係統資源之間的相互關係的顯性模型,提供了I/O事件與服務功能塊,以及服務原語(primitives)的順序之間一一對應的映像。這個映像符合IEC/ISO開放統互連的體係結構所定義的指定服務(specifying service)的標準方式。這樣,任意已完整定義的服務集合便可直接在SIFB中映像。 IEC 61499提供了一種消除硬件依賴性的自然途徑:用SIFB表達硬件接口,這樣硬件的依賴性便可限製在該SIFB的組態參數上。按照IEC 61499的模型,PLC可表示為其內有多個資源的裝置,隻不過用了互連的事件驅動功能塊,來替代IEC 61131-3中配置模型內相互間存在適當連接的程序任務。如此構建模型,便使所有與硬件的依賴性蕩然無存。 可以把一個資源內的功能塊當作大規模分散的應用程序的一個組成部分。由於一個IEC 61499的(de)應(ying)用(yong)程(cheng)序(xu)是(shi)許(xu)多(duo)互(hu)連(lian)的(de)功(gong)能(neng)塊(kuai)的(de)一(yi)種(zhong)簡(jian)單(dan)組(zu)合(he),所(suo)以(yi)隻(zhi)要(yao)將(jiang)這(zhe)些(xie)功(gong)能(neng)塊(kuai)賦(fu)予(yu)多(duo)個(ge)硬(ying)件(jian)裝(zhuang)置(zhi)內(nei)的(de)不(bu)同(tong)資(zi)源(yuan),而(er)不(bu)是(shi)把(ba)所(suo)有(you)的(de)控(kong)製(zhi)功(gong)能(neng)全(quan)部(bu)限(xian)製(zhi)在(zai)一(yi)個(ge)單(dan)一(yi)的(de)集(ji)中(zhong)裝(zhuang)置(zhi)中(zhong),那(na)麼(me)我(wo)們(men)便(bian)可(ke)方(fang)便(bian)地(di)實(shi)現(xian)了(le)應(ying)用(yong)程(cheng)序(xu)的(de)分(fen)散(san)化(hua)。請(qing)記(ji)住(zhu),IEC 61499功能塊中的控製算法還是用IEC 61131-3的語言來編程的,所以IEC 61131-3依然發揮重要作用。唯一有所變化的是,在係統配置時我們采取了封裝的、可反複使用的和分散的機製。可以預計,IEC 61499的軟件工具將促使IEC 61131-3的應用無痛地融入分布式智能係統之中。 結論 ① IEC 61131-3已獲得國際工控界的廣泛承認和支持。 ② IEC 61131-3正在加速推廣應用,不但成為PLC的編程標準,而且成為DCS、PC控製、SCADA、運動控製等事實上的標準。 ③ 為適應現場總線和工業以太網的高速發展,IEC 61131-3和IEC 61499結合,使分布式PLC有了真正實現的路徑。 參考文獻 [1] R.W.Lewis Programming Industrial Control System usingIEC 1131-3 [2] 羅伯特•杉布,王蔚庭 IEC 61131-3國際標準簡介國內外機電一體化技No. 1,2001,P55 [3] 彭瑜 IEC 61131-3的現狀和發展世界儀表和自動化 No.2,p.14-18,2002年和No.3,p.56-58,2002年 [4] Karl-Heinz John等 IEC 61131-3:工業自動化係統的程序編製中國機電一體化技術應用協會出版,2002年 [5] Eelco van der Wal EC1131-3:a standard programming resource Industrial Computing July,1999 [6] 羅伯特•杉布,王蔚庭 IEC 61131-3軟件:一種先進的工業控製編程係統國內外機電一體化技術 No. 2,2001,P53 [7]J.H.Christensen The Future of IEC 61131-3 Industrial Computing March,1999,P20 [8]Eelco van der Wal IEC 61131-3軟件:正在改變著工業控製領域的現狀、結構根據、活動和程序庫21世紀製造業自動化高級技術論壇,2001年6月北京 [9] Items for IEC 61131-3,3rd Ed. www.holobloc.com/stds/iec/sc65bwg7tf3/comments/pt3e3.htm [10] 楊磊,徐蓉萍 IEC 61499―工業控製技術發展的新階段計算機測量與控製 2002年10月,p.721-724
|