工控編程語言IEC 61131-3的現(xiàn)狀和發(fā)展
功能塊因為其執(zhí)行效率有必要再提高,或者是在一定的條件下其功能執(zhí)行的正確性存在問題,需要重新編程,我們只要保持該功能塊的外部接口(輸入/輸出定義)不變,仍可照常使用。同時,許多原創(chuàng)設備制造廠(OEM)將它們的專有控制技術壓縮在用戶自定義的功能塊中,既可以保護知識產(chǎn)權,又可以反復使用,不必一再地為同一個目的而編寫和調(diào)試程序。 5.標準要求嚴格的數(shù)據(jù)類型定義。這意味著,IEC 61131-3編程語言為減少程序開發(fā)人員對一個變量做出錯誤的數(shù)據(jù)類型定義創(chuàng)造了有效的限制。 軟件工程中很早就認識到許多編程的錯誤往往發(fā)生在程序的不同部分其數(shù)據(jù)的表達和處理不同。IEC 61131-3從源頭上注意防止這類低級的錯誤,雖然采用的方法可能導致效率降低一點,但換來的價值卻是程序的可靠性、可讀性和可維護性。IEC 61131-3采用以下方法防止這些錯誤: ★限制函數(shù)與功能塊之間的互連范圍:只允許兼容的數(shù)據(jù)類型與功能塊之間互連。 ★限制運算只可對其數(shù)據(jù)類型已明確定義的變量進行。 ★禁止隱含的數(shù)據(jù)類型變換。比如,實型數(shù)不可執(zhí)行按位運算。若要運算,編程者必須先通過顯式變換函數(shù)REAL_TO_WORD,把實型數(shù)變換為WORD型位串變量。標準中規(guī)定了多種標準固定字長的數(shù)據(jù)類型,包括位串,帶符號位和不帶符號位的整數(shù)型(8位、16位、32位和64位字長)。 6.對程序執(zhí)行具有完全的控制能力。傳統(tǒng)的PLC只能按掃描方式順序執(zhí)行程序,對程序執(zhí)行的多樣性要求如由事件驅(qū)動某一段程序的執(zhí)行,程序的并行處理等均無能為力。IEC 61131-3允許程序的不同部分,在不同的條件(包括時間條件)下,以不同的比率并行執(zhí)行。即允許對一個程序的不同部分規(guī)定不同的執(zhí)行次數(shù)、不同的執(zhí)行時間和并行執(zhí)行的方式。這意味著,以“任務”控制的方式可讓一個程序的不同部分以不同的掃描周期進行掃描。 7.提供靈活的編程語言選擇。有三種圖形化語言和兩種文本化語言可在表達一個控制應用程序的不同部分時,讓程序編制人員有很大的自由度去選用他認為合適的語言來設計。換句話說就是,程序的不同部分可用上述五種語言的任意一種來表達。 8.支持數(shù)據(jù)結構的定義。由于支持數(shù)據(jù)結構,所以相關的數(shù)據(jù)元素即便屬于不同的數(shù)據(jù)類型,也可在程序不同的部分傳送,就如它們是一個單一的實體。在不同程序組織單元POU之間傳送復雜信息,如同傳送單一變量一樣。這不但改善了程序的可讀性,而且保證了相關數(shù)據(jù)的存取準確無誤。 9.完全支持順序控制的各種描述,再復雜的順序行為也可輕而易舉地用順序功能圖SFC這樣的圖形化語言加以分解、描述及編程。順序控制過程的每一步都可用步(steps)、其動作(actions)和轉移(transitions between steps)準確描述。 至于IEC 61131-3的缺陷主要是以下兩點: 1.IEC 61131-3沿用了直接表示與硬件有關的變量的方法,這就妨礙了均符合標準的PLC系統(tǒng)之間做到真正意義上的程序可移植。由于不同機種有自己的輸入、輸出的定義(這些均與硬件相關),如果想把一個在某個廠商的PLC中運行得很好的程序原封不動地搬到另一個PLC廠商的機器,必須先從技術文件中找到有關與硬件相關變量的定義,然后再在另一個機型中對此重新定義。至少可以這樣說,不存在與硬件相關變量之間的變換。 2.IEC 61131-3只給出一個單一的集中PLC系統(tǒng)的配置機制,這顯然不能適應分布式結構的軟件要求。由于工業(yè)通信技術的飛速發(fā)展,特別是現(xiàn)場總線和以太網(wǎng)在工業(yè)中的實際應用,給工業(yè)自動化的體系結構帶來了巨大影響。因此,IEC 61131-3必須適應客觀形勢的發(fā)展,在這方面進行突破。它應該允許功能塊不一定集中常駐在單個硬件中,允許分散于不同硬件的功能塊,通過通信方式也可以構成一個控制程序。這就是正處于制定中的IEC 61499的主攻方向。 加速IEC 61131-3的推廣應用 要全面高水平實施IEC 61131-3還有一個相當艱苦過程。特別是它對控制領域的影響并不限于PLC,它還適用于DCS、PC控制,運動控制,甚至SCADA系統(tǒng),因此推廣應用IEC 61131-3就不是幾個人、幾個廠商、甚至幾個國家的事情,必須有一個不以贏利為目的國際組織進行全面規(guī)劃,積極推廣。值得慶幸的是致力于工業(yè)控制編程標準化的國際組織PLCopen,以自己的有效活動表明它足以堪當此重任。 PLCopen目前擁有分布于21個國家的100多個單元會員,下設5個技術委員會[8]:TC1重點在于與IEC合作共同發(fā)展、提高和完善IEC61131-3,目前具體工作是發(fā)行的第2版修訂文本。TC2重點在于定義功能塊的程序庫,協(xié)調(diào)功能塊的約定。目前正在組織對運動控制的功能塊進行定義,創(chuàng)立可重復使用、獨立于硬件的運動控制行規(guī)(profile)。TC3重點是制定編程語言一致性的測試標準。我們知道,IEC61131-3標準僅給出了一致性的基本規(guī)則,并不提供實際編程系統(tǒng)的導則。所以關于編程系統(tǒng)的一致性測試實際上就是檢驗不同的編程系統(tǒng)是否真正具有開放性的問題。TC4重點是通信,負責制訂通信接口及應用交換格式等。TC5則著重于安全軟件導則,重點在于如何運用IEC 61508(有關系統(tǒng)安全的功能安全)支持安全編程技術。 一致性的實質(zhì)在于建立一套測試方法和程序,這樣才能推動標準的真正貫徹。PLCopen把一致性劃分為3個等級:基本級,可重復使用級,以及全兼容級。符合基本級,可解決小系統(tǒng)的可移植性;符合可重復使用級和全兼容級,可解決功能塊程序庫的可移植性。目前,指令表(IL)、結構文本(ST)和順序功能圖(SFC)的基本級定義已完成;有關指令表、結構文本和順序功能圖的測試軟件已投入使用;有25個編程軟件包已通過一致性認證。梯形圖(LD)和功能塊圖(FBD)的基本級一致性定義正在制定中,相應測試軟件正在準備中。由于要全部滿足IEC 61131-3標準的要求實屬不易,所以標準中在許多方面允許部分實現(xiàn)標準,這就給制造廠商相當大的自由度。也正因為如此,如果能在IL、ST、SFC、LD和FBD五個方面均達到可重復使用級,則該編程系統(tǒng)即達到了全兼容級。 IEC 61131-3的修訂和發(fā)展 IEC 61131-3第二版已于2000年下半年進行了表決,現(xiàn)已公布施行。第二版對第一版作了少許修改,目的主要在于提高程序組織單元(如用IEC 61131-3的編程語言寫的程序,函數(shù),功能塊)的可讀性和有用性。主要改動如下[7]: (1)將直接量(literal value)的類型作為該量的一部分來表示,以方便該量的應用,達到一目了然的效果。例如用UINT #345表示無符號整型數(shù),正好對應有符號整型數(shù)INT #345。 (2)在第1版中,函數(shù)(不是功能塊)不允許存在由于其執(zhí)行而產(chǎn)生的副作用。第2版中放松了這一要求,只要在函數(shù)的定義中說明所產(chǎn)生的副作用并非有害即可。 (3)對結構化文本(ST)這一種編程語言的句法做了改進,使函數(shù)和功能塊的多輸出連接可以具有一種等效于功能塊圖(FBD)的多輸出連接的靈活性。 (4)第2版中規(guī)定了一種新的字符串數(shù)據(jù)類型WSTRING,以適應在ISO/IEC 10646標準中定義的寬字符(即雙字節(jié))的字符串。 計劃中的IEC 61131-3的第3次修改版將與IEC 61499相協(xié)調(diào),在保持IEC 61131-3原有優(yōu)點的同時,消除它兩個******的缺陷。智能式傳感器和執(zhí)行器本身就具有執(zhí)行控制功能的能力,如果IEC 61131-3能支持分布式系統(tǒng)體系結構的編程,那么只要開發(fā)出相應的軟件工具,就能組成靈活性極強的現(xiàn)場總線控制系統(tǒng)。IEC技術委員會(TC65)啟動了IEC 61499 工業(yè)過程測量和控制系統(tǒng)用功能塊項目,目的之一就在于對IEC 61131-3進行適當?shù)臄U展。這主要是: ★給出如何使PLC具有表達61499設備特性的能力。 ★引入有關61499如何使61131-3增加附加價值的闡述,而61131-3又如何增加61499的附加價值的闡述。 目前61131-3第三版的修訂內(nèi)容已公布了32項[9],主要有: 在61131-3中增加新的定義“交叉可復用性”(cross-reusability),而不在61131-3中開發(fā)COMPLIANCE CLASSES or PROFILE(一致級或行規(guī))。 61499和61131-3形式句法和語法的關系。 用服務接口功能塊( SIFB,Service-interface function block)提供對過程數(shù)據(jù)的存取,取代原來的與硬件相關的語言特性,如I/O地 址的直接表示。 取消VAR_GLOBAL結構,用相應的服務接口功能塊代替,以提供對系統(tǒng)的全局變量的存取。 用服務接口功能塊替代VAR_ ACCESS結構。 用61499的設備/資源模型取代CONFIGURATION結構。 引入61499的應用模型和在資源上的子部 分的映射。 引入執(zhí)行控制圖編程語言元素。 61499功能塊算法采用61131-3語言編程。 設計將現(xiàn)有的61131-3的算法嵌入61499的 分散式功能塊的方法。還有一些與61499無直接關系的修改。 IEC 61499—IEC 61131-3的發(fā)展和補充 早在1990年初,IEC技術委員會(TC65)還在制定61131-3編程語言的時候就認為,為了細化和發(fā)展功能塊方法,有必要制定一個功能塊應用的公共模型。并將此項目命名為IEC 61499《工業(yè)過程測量和控制系統(tǒng)用功能塊》,把制定這個標準的工作交給其下屬的第六工作組(TC65/WG6)。目的就在于對IEC 61131-3進行適當?shù)臄U展。 目前,IEC 61499的前兩個部分已作為PAS(公眾可利用規(guī)范Publicly AvailIable Specification)公布。如果能取得工業(yè)界的積極響應和支持,在2003年就可能以正式標準頒布[10]。應注意的是,61499不是一個獨立的標準,為實現(xiàn)分布式工業(yè)過程測控系統(tǒng)我們至少還需要: ★通信行規(guī) 它定義標準的通信功能塊及其標準開放性通信的映射服務,就如在現(xiàn)場總線國際標準所規(guī)定的那樣。 ★標準編程語言 諸如IEC 61131-3規(guī)范的基本功能塊類型中的算法。 ★在特定范疇中(如過程控制功能塊)應用的標準功能塊類型及其導則。 61499-1是針對通過通信網(wǎng)絡互連的模塊化分布系統(tǒng)的體系結構標準。它定義了為精確描述分布式控制系統(tǒng)的功能塊和應用程序的體系結構、模型及其文本語法。其系統(tǒng)模型包括與被控過程(或機械)的接口,與通信網(wǎng)絡的接口,以及隱含的分布式應用程序。 61499-2是工程任務支持(Engineering Task Support),進一步描述創(chuàng)建和管理基于功能塊概念的工程系統(tǒng)所必須的概念(如資源和設備類型的功能描述方法),分布式工業(yè)過程測控系統(tǒng)的規(guī)范及軟件工具間信息交換方式等,為設計、實現(xiàn)和維護分布式工業(yè)過程測控系統(tǒng)提供工程指導。61499-2把可擴展標志語言XML定義為61499的的文件交換格式。這意味著61499功能塊設計可以通過因特網(wǎng)傳遞,并用下一代網(wǎng)頁瀏覽器直接在網(wǎng)頁上瀏覽。這必將給最終用戶帶來極大的利益。在IEC 61499-1中,規(guī)定了系統(tǒng)模型包括與被控過程(或機械)的接口,與通信網(wǎng)絡的接口,以及隱含的分布式應用程序(見圖4)。 由圖可見,一組互連的設備(儀表,器件等)彼此之間通過一個或多個網(wǎng)絡通信,這些網(wǎng)絡也可以構成多級遞階的方式進行通信。應用程序可常駐在一個設備中(如應用程序C),也可常駐在多個設備中(如應用程序A和B)。例如,一個應用程序可以包括一個或多個控制回路,其中輸入采揮由一個設備執(zhí)行,控制運算由口力一個設備執(zhí)行,輸出變換由第3個設備完成。 |