漫談工業軟件(2)-IEC61499標準

IEC 61499是用於分佈式工業過程測量與控制系統(IPMCSs)功能塊的標準。該標準的名稱表明了兩個重要的概念

-分佈式工業過程測量與控制系統 

 (IPMCSs)表明該標準針對的是工業分佈式系統-由多臺設備通過網絡構成的系統。相比之下,IEC61131 PLC 標準針對的是單臺設備的編程。也許有人會產生一些疑惑,PLC 不是也可以通過網絡構成分佈式控制系統麼?這兩個標準有什麼區別呢?其中主要的差別就在與IEC61499 標準將分佈式系統當作一個整體來考慮。在IEC61499 的概念之下,整體地定義系統,設備和資源。設計一個完整的基於功能塊網絡的應用程序,然後將這個網絡分解成爲若干段,映射到相應的設備上去。通俗地講,基於IEC61131 標準的分佈式系統要爲每一個設備編寫不同的程序,以及設備之間的通信協議。而基於IEC61499 標準的分佈式系統只編寫一個大的控制程序,然後分段映射到各個設備上運行。而且系統的調試,部署和監控都有以一個整體來加以考慮的。第一次接觸IEC61499 標準是我就喫驚地感受到它的制定者真是一個大膽的想法。這將大大地簡化了分佈式系統的編程,部署和運維。在後來的具體實驗中,也的確感受到了這一點。編寫一個多臺設備構成的一個跑馬燈控制系統,半個小時就搞定的了,而且應用程序修改起來十分的方便。

 

   

在上圖中示意了由多個個設備構成的分佈式系統(圖中只畫出了兩個設備)。設計者編寫了一個由FB1 到FB5 構成的功能塊網絡,實現的他希望在這個系統上實現的控制程序。在IEC61499 的開發工具(通常我們稱之爲IEC6499 開發環境IDE)中,藉助於圖形編輯工具輸入這個功能塊網絡。然後通過映射將功能塊FB1映射到設備1,將FB2 映射到設備2.。等等。由於FB1 和FB2 分佈部署在兩個設備上,功能塊之間的連線表示的數據傳輸要通過網路來實現。因此,開發工具在映射是會自動地插入通信服務功能塊SUB和PUB。在IEC61499 中功能塊通信是通過這種訂閱(SUB)/發佈(PUB)機制來實現的。

   完成映射之後,開發環境會將系統部署到各個設備上。所謂部署,就是通過網絡將功能塊網絡段下載到設備中。每個設備中都已經預先運行了一個IEC61499 運行時(runtime)。它負責執行下載的功能塊網絡段。並且通過過程接口(process interface) 與設備的硬件接口打交道。

-功能塊(Function block)

功能塊是一個軟件的功能單元。它採用圖形化表示。通過功能塊圖形之間的連線,實現一個功能塊網絡形式的應用程序。下面就是一個LED 閃爍程序的功能塊網絡。

這張圖看上去和硬件設計的原理圖十分相似,E_CYCLE 相當於一個時鐘發生器,它產生一個週期爲一秒鐘的信號。E_SWITCH 是一個2選1 電路,E_SR 類似於數字電路的RS 觸發器。它和E_SWITCH構成了一個除 2 電路。在Q端將產生一個週期爲2 秒的方波脈衝信號。QX 是一個硬件接口功能塊。將脈衝信號在第4個GPIO 上,控制LED 閃爍。將該功能塊映射到一個設備上。一旦部署成功,LED 就會不停地閃爍。

   相信具有數字電路基礎的讀者都能夠看懂上面的“原理圖”,雖然我是一個軟件工程師,但是也十分喜歡這樣硬件的(hardware-like)功能表達方式。編寫程序就像搭試電路那樣具有成就感和真實感。

   IEC61499 標準中,定義了少量的基本功能塊。IEC61499 的開發環境會提供更多的功能塊庫。專業的IEC61499 軟件

  因此,一個完整的IEC61499 軟件系統包括了開發環境,運行時程序和功能塊庫組成。下面是一個著名的IEC61499 開源項目4DIAC 的系統組成。

 

     

           在我們的研究項目中。我們在Windows /ubuntu 上運行4DIAC的開發環境X86 PC的Ubuntu OS  ,全志Arm的H6 ,瑞芯微的RK3399 已經樹莓PI3 上面運行4DIAC 的forte 運行時。

IEC61499 參考模型

在第一篇中,我們已經提及了工業軟件中模型的重要性,下面我們就來詳細地瞭解IEC61499 是如何通過模型來定義它的各種模型的。

在IEC61499 標準中,定義瞭如下幾種模型

系統模型(system model)

設備模型(device model)

資源模型(resource model )

應用模型(Application model)

功能塊模型(function block model)

分佈式模型(distribution model)

管理模型(management model)

操作狀態模型(operational state models)

我們先了解前四種模型,後面再詳細地研究其它的模型。

系統模型

爲了IEC61499 的目的,一個工業過程測量和控制系統的模型是一組相互連接的設備構成,相互之間通過網絡通信。通信網絡由網段和鏈接構成。設備通過鏈接接入網段。

 

IPMCS 完成的功能在模型中稱爲應用(Application),它可以駐留在一個設備中,例如應用C 。或者能分佈在幾個設備中。比如應用A和應用B。比如,一個應用可以由一個或者多個控制環路構成,在這些環中,一個設備採集輸入數據,另外一個設備完成過程控制,而輸出轉換在第三個設備中完成。

可以看出,在IEC61499 中,應用(Application)就是基於功能塊網絡的應用程序。在中文翻譯時,直接使用“應用”表示應用程序,有時會引起語義的混淆。所以在我的文章中,有時會使用“應用程序”來表示“應用”一詞。

在前面已經提到過,設備可以是X86 PC,也可以是各種基於Arm 的小型計算機,比如樹莓PI。

設備模型

從圖2 可以看出,一臺設備至少有一個接口(interface),亦即過程接口或者通信接口;也包含零個或者多個資源

“過程接口”提供了物理過程(模擬測量和離散IO 等)和資源之間的映射,與物理過程交換的信息以數據或者事件的形式呈現給資源。

通信接口提供了資源之間通過通信網絡交換信息的映射。由通信接口提供的服務包括:

通信的信息表達成數據或者事件給資源

附加服務包括支持程序設計,配置和診斷。

資源模型

IEC61499 標準中資源的概念是比較難以理解的,因爲它不像設備,網絡那麼直觀。在標準中,定義爲資源由功能單元(functional unit)構成,而在holobloc 網站的文檔中,資源稱之爲提供在分佈式系統中運行應用程序所需要服務的“工作馬力(workhorses )”。在4DIAC 項目中,當添加一個設備時,自動在該設備下面產生了一個資源,除了修改一個名稱之外,沒有更多的編輯。資源可以理解爲是設備中支撐應用程序的軟件單元(supporting software uint)模型。也可以將資源理解爲應用的運行環境的模型。資源模型對設備的硬件和網絡接口進行了抽象。它們主要包括

過程映射

  完成應用與過程接口數據和事件的映射。映射由專門爲此目的的服務接口功能塊建模。

通信映射

  完成應用與通信接口之間的數據和事件映射。映射由專門爲此目的的服務接口功能塊。建模。

調度

執行應用中功能塊之間的數據傳輸,遵循下列時間和順序的需要

  產生事件

  功能塊的相互連接

調度信息,例如週期和優先級。

資源是IEC61499 設備中的運行時(runingtime)程序來實現的。所以在IEC61499的開發環境中並沒有太多對資源的產設定。初學者可以不太去糾結資源到底是什麼。

應用模型

應用(程序)由功能塊網絡和它們的參數構成,它的節點是功能塊或者子應用。網絡分支是數據和事件連接線;

子應用(程序)是子應用(程序)類型的實例。子應用和應用類似,由功能塊網絡,應用名稱,子應用和功能塊對象的名稱構成。可以建立分層標識符,唯一地標識系統中的每一個功能塊對象。應用分佈在一個或者多個設備中的若干資源中。

前面我們已經提到過,應用是整個分佈式系統的應用,他分成爲若干段,分別部署到各個設備中。

在下一篇中,我們會詳細的研究IEC61499 的功能塊。會對IEC61499 應用具有更深刻的理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章