天天看點

漫談工業軟體(2)-IEC61499标準

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

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

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

漫談工業軟體(2)-IEC61499标準

在上圖中示意了由多個個裝置構成的分布式系統(圖中隻畫出了兩個裝置)。設計者編寫了一個由FB1 到FB5 構成的功能塊網絡,實作的他希望在這個系統上實作的控制程式。在IEC61499 的開發工具(通常我們稱之為IEC6499 開發環境IDE)中,借助于圖形編輯工具輸入這個功能塊網絡。然後通過映射将功能塊FB1映射到裝置1,将FB2 映射到裝置2.。等等。由于FB1 和FB2 分布部署在兩個裝置上,功能塊之間的連線表示的資料傳輸要通過網路來實作。是以,開發工具在映射是會自動地插入通信服務功能塊SUB和PUB。在IEC61499 中功能塊通信是通過這種訂閱(SUB)/釋出(PUB)機制來實作的。

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

-功能塊(Function block)

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

漫談工業軟體(2)-IEC61499标準

這張圖看上去和硬體設計的原理圖十分相似,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 的系統組成。

漫談工業軟體(2)-IEC61499标準

           在我們的研究項目中。我們在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 的目的,一個工業過程測量和控制系統的模型是一組互相連接配接的裝置構成,互相之間通過網絡通信。通信網絡由網段和連結構成。裝置通過連結接入網段。

漫談工業軟體(2)-IEC61499标準

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

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

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

裝置模型

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

漫談工業軟體(2)-IEC61499标準

“過程接口”提供了實體過程(模拟測量和離散IO 等)和資源之間的映射,與實體過程交換的資訊以資料或者事件的形式呈現給資源。

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

通信的資訊表達成資料或者事件給資源

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

資源模型

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

過程映射

  完成應用與過程接口資料和事件的映射。映射由專門為此目的的服務接口功能塊模組化。

通信映射

  完成應用與通信接口之間的資料和事件映射。映射由專門為此目的的服務接口功能塊。模組化。

排程

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

  産生事件

  功能塊的互相連接配接

排程資訊,例如周期和優先級。

漫談工業軟體(2)-IEC61499标準

資源是IEC61499 裝置中的運作時(runingtime)程式來實作的。是以在IEC61499的開發環境中并沒有太多對資源的産設定。初學者可以不太去糾結資源到底是什麼。

應用模型

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

漫談工業軟體(2)-IEC61499标準

子應用程式)是子應用程式)類型的執行個體。子應用和應用類似,由功能塊網絡,應用名稱,子應用和功能塊對象的名稱構成。可以建立分層辨別符,唯一地辨別系統中的每一個功能塊對象。應用分布在一個或者多個裝置中的若幹資源中。

前面我們已經提到過,應用是整個分布式系統的應用,他分成為若幹段,分别部署到各個裝置中。

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