IEC61499
IEC61499
IEC 61499是用於分散式工業過程測量與控制系統功能塊的標準。
The Standard
The IEC 61499 Standard defines an open architecture for the next generation of distributed control and automation.
This architecture represents a light-weight component solution that provides essential features such as encapsulation of semantics from a particular platform, portability, reconfiguration and a holistic view on distributed applications. As the standard is designed for the development of distributed systems, it further supports features like reusability and interoperability.
The IEC 61499 Standard provides a generic model for distributed systems. This model includes processes and communication networks as an environment for embedded devices, resources and applications.
Applications are built by networks of Function Blocks. The Function Block is the elementary model of the IEC 61499 Standard. A Function Block generally provides an Interface for Event I/O’s and Data I/O’s.
There are two types of Function Blocks. Basic Function Blocks on the one hand and Composite Function Blocks on the other. A Composite Function Block can contain other Composite Function Blocks and/or Basic Function Blocks. Thus, Composite Function Blocks enable modular design methodologies.
Basic Function Blocks include event-driven Execution Control Charts (abbr. ECC), which are similar to state machines. The elements of the ECC are states and event-triggered transitions. An ECC can trigger the execution of Algorithms by the occurrence of events.
An executed algorithm produces new output data from the input data. When the algorithm has finished, an output event is generated. But Output events can also be emitted without the execution of algorithms. Output events might be the input events for other Function Blocks.
IEC 61499 provides:
Generic modeling approach for distributed control applications
Function Block concept
Separation of data and event flow
1990年,IEC TC65(國際電工協會第65技術委員會)收到一個將分散式工業過程測量與控制系統中的軟體模塊(稱“功能塊”)某些方面標準化的建議,其中特彆強調了使用IEC 61158現場匯流排標準的IPMCS。功能塊同時也是可編程式控制制器使用的編程語言標準IEC 61131-3的基本組成部分之一,因此TC65決定製定功能塊的通用模型,這就是IEC 61499標準的由來。
IEC 61499標準是隨著系統控制功能分散化、智能化的要求出現的。利用現場匯流排設備、智能儀器和感測器構造的大型複雜控制系統,控制功能可物理分散在許多設備中,不同設備中的軟體通過通訊網路互連起來。利用IEC 61499標準,由功能塊實現這些軟體單元,並根據標準規定進行功能塊互連,可實現分散式系統的控制功能。例如,智能壓力感測器可定義成一個內嵌的模擬輸入AI功能塊,它提供一組已定義的輸入和輸出,比如實際測量壓力值、感測器標定值和錯誤狀態。利用IEC 61499標準,這些輸入和輸出可連接到其他功能塊的輸入和輸出,例如壓力感測器錯誤狀態就可連接到一個驅動報警顯示的功能塊,而所有這些功能塊分散在一個分散式系統的不同設備中。這種方法為控制系統的設計和改進提供了高度靈活性。
IEC 61499功能塊能實現這種完全的分散式IPMCS,其關鍵在於採用軟體組件(software component)技術設計功能塊。組件是獨立於特定程序設計語言和應用系統、可重用和自包含的軟體成分。組件技術是基於面向對象的、支持拖放(drog and drop)和即插即用(plug and play)的軟體開發概念。基於組件技術的開發方法,具有開放型、易升級、易維護等優點。主要有CORBA、COM和JavaBeans三種組件技術規範,具體實現時可自由選擇。IEC 61499功能塊是健壯的、可重用的軟體組件,一個功能塊提供對特定問題的解決方法,例如對閥的控制,或控制工廠的主體單元(如整條生產線)。系統設計者構建分散式控制系統時,根據控制功能需要選擇特定功能塊,並按照IEC 61499標準將它們進行軟體互連,設計靈活,且系統可伸縮、可變形。可預見將來的工業控制器和儀錶可把功能塊作為設備固件的一部分,或從功能塊庫里選擇下載,而系統設計將成為功能塊選擇、組態和互連的簡單工作。
IEC 61499標準分為體系結構、軟體工具要求、應用規則和符合行規規則四部分。標準定義了一個通用體系結構,並制定了功能塊在分散式IPMCS中的應用規則。標準內容包括:各種參考模型,如系統模型、設備模型、功能塊模型、管理模型等;IPMCS中功能塊的聲明規則、行為規則、應用規則;管理應用、資源和設備時功能塊的使用規則;設計、實現、操作和維護分散式IPMCS的工程支持。此體系結構以參考模型、文本語法和圖形表示為基礎,利用它們可以實現以下工程任務:功能塊類型的規範和標準化;系統功能和元素的標準化;分散式IPMCS的規範化、分析和驗證;分散式IPMCS的構造、實現、操作和維護;實現以上功能的軟體工具間信息交互。
1.2 IEC 61499體系結構
依照IEC 61499構建的系統從下到上層次結構為功能塊、資源、設備和系統。功能塊是系統基本單元,資源是功能塊的容器,設備包含單條或多條資源,而設備的互連形成分散式系統。
1.2.1 功能塊(Function Block)
IEC 61499中,軟體封裝和重用的基本單元是功能塊。功能塊是一個軟體功能單元,它由一個由其類型決定的專有數據結構和相關操作組成。IEC 61499功能塊按功能分為基本功能塊、複合功能塊、服務介面功能塊(通訊功能塊和管理功能塊)和適配器(插件和插座)。基本功能塊由事件輸入和輸出、數據輸入和輸出、執行控制表ECC、演演算法和內部數據組成,如圖1所示。執行控制表是一個事件驅動的狀態機,它決定狀態機的狀態轉換規律、狀態機當前狀態與輸入事件的關係、執行演演算法與進入新狀態時發出事件的關係。演演算法決定功能塊的功能特性。特定事件發生時,其變化反映在相應的事件輸入上,它驅動相應演演算法執行,演演算法讀取輸入數據,根據輸入數據和內部數據產生內部數據和輸出數據的新值,最後發出一個事件並把它輸出到事件輸出上。
功能塊的最大特徵在於其封裝性,具有黑盒子特性。對於功能塊外部來說,演演算法、執行控制表和內部數據都是不可見的,而且使用功能塊時一般只需知道其外部介面,如圖2所示。
功能塊MECH_CTL里包括事件輸入START、SENSE、ESTOP和事件輸出CMD,以及數據輸入SINGLE、HOME、END和數據輸出FWD、REV。其中EVENT表示相應外部介面是事件輸入或輸出,BOOL則表示相應外部介面是數據輸入或輸出,且為布爾類型。事件介面和數據介面之間的垂直線連接,如圖中事件輸入SENSE與數據輸入HOME和END相關聯,表示SENSE事件到來時,功能塊將對HOME和END進行採樣。
圖1 基本功能塊的結構
圖2 功能塊外部介面
IEC61499定義了描述功能塊的通用模型和方法,以圖形和文本兩種方式表示。為使功能塊定義易於保存和移植,採用可擴展標記語言XML定義系統、設備、資源和功能塊,這樣有可能在Internet上傳播功能塊的定義,並利用web瀏覽器查看它。
1.2.2 資源(Resource)
資源是包含在設備里的一個功能單元。在一個設備里可以在不影響其他資源的情況下對一條資源執行創建、構造、參數化、啟動、刪除操作。資源的功能,是接收來自過程和通訊介面的數據和事件、處理這些數據和事件,並給過程和通訊介面返回數據和事件。一條資源包括一個本地應用(或分散式應用的本地部分)、過程映射、通訊映射和調度函數。將服務介面功能塊SIFB和基本、複合功能塊聯合使用形成資源以提供一個分散式控制應用的本地部分如圖3所示。
1.2.3 設備(Device)
設備是多條資源的容器,並提供這些資源與通訊網路、感測器和執行器之間的介面。這些介面提供的服務由支持分散式應用的專用資源中的SIFB完成。通訊網路把各分散設備集成為一個完整的系統。這樣,分佈在不同物理設備中的功能塊形成了一個真正的分散式應用,如圖4所示。
圖3 IEC 61499資源模型
圖4 分散式應用的功能塊連接
1.3 功能塊的優勢
功能塊由使用軟體組件中獲得很多優勢:
(1)功能塊反映了現實世界。設計一個應用時,一個功能塊表示控制系統設計中的一個功能實體,各功能塊實體組合成控制系統。
(2)功能塊是穩定的。功能塊是已經證明有效的軟體單元,一般不會有大變動,用戶可在不同應用中使用同一功能塊。功能塊封裝的演演算法,在不同控制系統設計中可不做任何修改直接使用。
(3)功能塊降低複雜性。用戶可使用一個功能塊而不用關心它內部如何工作,因為功能塊可隱藏其內部演演算法的複雜性,開發一個應用只需創建並連接多個功能塊。
(4)功能塊可重用。驗證有效的功能塊可隨庫發布,因此可被其他開發者使用。
功能塊的以上優點給系統設計者和最終用戶帶來以下益處:
(1)利用功能塊開發應用可大大減少控制軟體的數量。
(2)開發控制系統的時間縮短。
(3)使用相同功能塊的系統具有一致行為。
(4)已證明有效的設計方案可重複使用
2. 基於功能塊的系統設計模式
在IEC 61499體系架構下,常用設計模式有三種:分散式應用、代理和MVC。
2.1 分散式應用
利用此模式設計控制系統,首先根據所實現控制系統的功能要求用功能塊原始連接圖定義此分散式應用,其中每個功能塊對應相應的控制功能。接著選擇適當的包含這些核心功能塊的資源,並根據實現需要把資源包含在不同設備里。然後將應用中的功能塊映射到相應資源中的相應功能塊。最後利用通訊服務介面功能塊實現不同資源和設備中的功能塊之間事件和數據的互連,以達到分散式應用的信息流通訊要求。
2.2 代理(proxy)
代理模式通過建立一個遠程伺服器的本地代理而把客戶與伺服器分離。當客戶要求伺服器提供服務時,它詢問本地代理。於是代理向原始伺服器發出服務請求。IEC 61499環境下這種模式的一種使用方法是利用SIFB為那些不兼容IEC 61499標準的設備提供代理。
2.3 MVC(Model/View/Controller)
IEC 61499環境下一般使用改進MVC模式進行IPMCS的建模、模擬和測試。在此模式下,Model、View和Controller都是IEC 61499基本功能塊。Model塊表示受控系統或設備的行為,View塊表示與一個或多個Model塊關聯的圖形顯示,Controller塊封裝對一個或多個Model塊執行的控制功能,並提供與其他Controller塊集成所需的事件和數據介面。同時,設備與用戶互作用由人機互作用HMI元素表示,它也是一個功能塊。改進的MVC框圖如圖5。
圖5 MVC的改進框圖
3.系統設計和模擬實例
利用FBDT(FB Developer Kit)構造的應用DRILL_MVCL完成鑽孔機的控制和監視功能。系統由MODEL、VIEW、CONTROL和HMI四個設備組成,分別完成MVC模式下Model, View和Controller的功能,而HMI則處理人機互作用,如圖6所示。
圖6 DRILL MVCL的結構
LL資源里的功能塊網路
每個設備中包含多條資源。以CONTROL設備為例,它含LOAD、SUPPLY、DRILL、UNLOAD和TAKEOFF資源,如圖7所示。LOAD資源控制工件的裝載,SUPPLY資源控制將工件通過傳送帶傳送至鑽孔機下,DRILL則控制鑽孔機對工件鑽孔,UNLOAD將鑽過孔的工件從鑽孔機處卸載,TAKEOFF則把工件從流程上取出。
資源功能的實現依賴於其內部功能塊集合。以CONTROL設備中的DRILL資源為例,它包含START,DRILL_SENSE,SLIDE_SENSE,CTL,SLIDE_ACT和SLIDE_SENSE功能塊,如圖6所示。START是啟動功能塊,完成資源的初始化功能,由圖中事件連接可知,START發出COLD冷啟動事件,導致DRILL_SENSE塊的INIT事件發生,它初始化后發出INI0事件,並依次導致SLIDE_SENSE、SLIDE_ACT和DRILL_ACT初始化。DRILL_SENSE和SLIDE_SENSE是SUBSCRIBER預定功能塊,它們從上遊資源的PUBLISHER發布功能塊中獲取事件和數據;SLIDE_ACT和DRILL_ACT是發布功能塊,它們與下遊資源中的預定功能塊連接並把所需的事件和數據傳送過去。這四個塊都是通訊服務介面功能塊CSFIB,它們的作用在於形成此分散式應用中指明的事件和數據流,完全服務於核心塊CTL。CTL塊完成滑片和鑽頭的控制功能。例如,DSENSE事件到來時,CTL採樣DHOME、DEND和DSPIN數據介面上的值,演演算法執行后輸出ACT事件,並由DRILL_ACT發布出去,控制鑽頭鑽孔。
利用運行環境,DRILL_MVCL系統的模擬結果如圖8所示。HMI視圖表示相應變數的當前狀態,用橙、白燈代表,並可進行相應控制。VIEW視圖是鑽孔流程的模擬視圖,圖中顯示一個在傳送帶上傳送的未鑽孔工件和滑片上的已鑽孔工件。
圖8 DRILL_MVCL系統的模擬運行