傳動網 > 新聞頻道 > 技術前沿 > 資訊詳情

控制工程的一個未來趨勢:面向對象的工業(yè)編程

時間:2020-04-10

來源:控制工程網 作者:Gary Pratt

導語:采用面向對象的工業(yè)編程(OOIP)技術,可提高面向對象編程(OOP)的效率,而不會為工業(yè)控制應用增加額外的復雜性。

用面向對象的工業(yè)編程(OOIP)技術,可提高面向對象編程(OOP)的效率,而不會為工業(yè)控制應用增加額外的復雜性。本文是面向對象工業(yè)編程系列文章的第二篇(第一篇請見2020年1-2月合刊《用于工業(yè)控制的面向對象編程》),將介紹如何在其它塊的基礎上構建新塊,以創(chuàng)建大型的分層分區(qū)系統(tǒng),以及如何在面向對象工業(yè)編程設計中管理輸入/輸出(I/O)和配置。

抽象、嵌套和接口

除了封裝之外,抽象、嵌套和接口也是面向對象工業(yè)編程中3個重要的概念。抽象是將細節(jié)按層次結構中的各個級別進行分組,因此程序員只需要處理設計中任何一個級別上的相關復雜性。嵌套允許對象實例化其它對象,以構建并在邏輯上劃分大型分層系統(tǒng)。接口提供了與層次結構中下一級交互的標準化方法。以一輛“野馬”車為例,車輛包含一個發(fā)動機,該發(fā)動機包含一個啟動器,該啟動器包含一個電樞,電樞中的銅線可能來自在世界上任何地方進行開采和冶煉的銅礦(如圖1所示)。抽象隱藏了發(fā)動機的復雜性,將銅線以及其它各個層次的細節(jié)隱藏起來,這些細節(jié)只適用于該層級。用戶只需要知道發(fā)動機的接口——點火開關和油門踏板。

工業(yè)編程 

圖1:封裝、抽象、嵌套和接口表明,塊可以構建在其它塊上,以實現(xiàn)分層劃分的系統(tǒng),從而反映真實的設計。本文圖片來源:ControlSphere

圖2顯示了如何使用抽象、嵌套和接口來構建分層的過程工廠。在頂層,工廠程序可以嵌套(實例化)兩個反應器對象,每個對象都通過抽象簡化了螺旋鉆的復雜性,而它們本身也嵌套了電動機和軸編碼器對象。軸編碼器和電動機對象封裝了從軸編碼器接收脈沖并控制電動機所需的所有功能,例如合上其接觸器、監(jiān)視其輔助觸點或向心開關以驗證其是否啟動,如果未啟動則生成警報、怠速等。

 流程工廠

圖2:用于實現(xiàn)流程工廠的抽象、嵌套和接口概念。

經過抽象后,在層次結構的任何一個層次上唯一需要關注的是與下一個層次的接口。例如,螺旋鉆中的變速電動機具有用于設置電動機速度的接口。在螺旋鉆層次上,用戶無需了解或處理電動機的任何潛在復雜性,例如確定電動機是否正在響應或發(fā)出警報。

一個例外是,如果螺旋鉆具有冗余配置的電機,那就需要了解電機是否響應。但是,在這種情況下,附加功能將被抽象為附加的層次結構層,代替螺旋鉆實例化變速電動機,它將實例化冗余變速電動機,后者將實例化多個變速電動機,以及在主電動機發(fā)生故障時使用備用電動機的邏輯。冗余變速電動機的接口仍然僅是速度指令。每個級別都封裝了它可以實現(xiàn)的所有功能,并且僅針對其自身無法完成的任務需求與更高級別接口。

對象配置和I/O映射

基于對象的控制與基于任務的控制之間的差異,與不同形式的組織架構之間的差異有些類似?;谌蝿盏目刂?,類似于集權化的企業(yè)架構,新功能必須在最高層級報備和注冊?;趯ο蟮目刂祁愃朴跈嗔ο路诺钠髽I(yè),在該類型組織架構中,新功能是自我支持的,并且在很大程度上可以自治的。

為了實現(xiàn)面向對象工業(yè)編程的可復用性優(yōu)勢,I/O映射和參數不能像以前的編程技術一樣被硬編碼到任何對象的實例中。例如,在圖3中所示,如果將第一個反應器中第一個螺旋鉆的軸編碼器中的Pulse_FI輸入硬編碼為全局I/O變量,則其它3個軸編碼器的Pulse_FI輸入也將被綁定到同一全局變量。因此,該螺旋鉆對象無法重復使用。對于配置輸入(例如PulsePerLiter_CI)也是如此。硬編碼的I/O或配置與現(xiàn)代面向對象的工業(yè)編程編程技術不兼容。

面向對象工業(yè)編程通過全路徑I/O映射解決了I/O問題。從70年代的內存映射到90年代的全局符號映射,這是自然的發(fā)展。完整路徑名是程序名的組合,通過點(.)分隔,后接所有中間的實例名,并以變量名結尾(例如:Plant.R1.A1.SE1.Pulse_FI)。I/O編輯器使用這些完整路徑名將I/O映射到工廠層次結構中相應的過程變量(如圖4所示)。

I/O映射 

圖3:硬編碼的I/O和配置與面向對象的工業(yè)編程不兼容。

 集中式配置

圖4:面向對象的工業(yè)編程可以使用全路徑I/O映射和集中式配置來映射到物理I/O并區(qū)分對象。

配置問題通過中央服務處理。在啟動時,對象實例會向中央配置程序服務注冊,然后該服務從CSV文件或SQL數據庫獲取配置數據,并將值分配給每個實例。配置輸入允許一系列的對象類型,通過簡化設計,滿足用戶最廣泛的需求。

面向對象工業(yè)編程的優(yōu)勢

面向對象的工業(yè)編程可以提供很多優(yōu)勢,控制工程師應當了解下面這9個優(yōu)勢,以確定開發(fā)系統(tǒng)是否支持面向對象的工業(yè)編程。

1.可創(chuàng)建與匹配的工廠對象相對應的獨立控制對象,并執(zhí)行該工廠對象所需的所有功能,例如警報、審核、物理I/O、人機界面(HMI)I/O、縮放和控制等。

2.圖形編輯器允許聲明無限數量的對象實例,以任意方式互連對象實例,以及將其它對象實例化為任意深度和復雜性的層次結構的對象。在運行時,編輯器應允許對層次結構進行簡單的導航,例如雙擊對象實例,即可進入項目層次結構,并可向后導航。

3.具有運行時調試對象單個實例的能力,包括:在單個實例內設置斷點,單步進入單個實例以及查看/更改對象實例的私有變量。

4.通過在實例可能位于項目層次結構中的任何位置為實例的配置輸入分配唯一值,來區(qū)分相同對象的實例的方法。這些配置值可以來自.CSV、微軟Excel文件、SQL數據庫以及OPCUA。還必須有一種在運行時搜索這些配置變量的值的方法(例如,搜索ISA標記名稱配置)。

5.能夠將物理I/O映射到項目層次結構中任何位置的任何實例中的任何變量(包括將一個輸入點映射到多個實例)。諸如來自現(xiàn)場總線設備的復合I/O,必須能夠映射到單個變量,或者映射到項目層次結構中任何位置的一個或多個數據結構變量。該工具必須提供一種方法,從其輸入開始、經過邏輯并到達其驅動的輸出來追蹤變量(以此類推,從物理輸出通過邏輯返回到影響該輸出的物理輸入的過程與此相反)。

6.具有建立與分層控制對象匹配的分層HMI對象的能力,以及通過頂級對象的實例名稱互連兩個對象(及其潛在的數千個底層互連)的能力。

7.能夠打印分層設計的“扁平”版本,該版本顯示對象實例與每個實例上的唯一配置值之間的互連。

8.實現(xiàn)繼承、方法、多態(tài)性和接口的功能可能會有所幫助。

9.一個活躍的用戶社區(qū)和論壇,可以共享開源工廠對象和建議。

總體而言,面向對象工業(yè)編程的這些功能允許以對象為基礎構建控制系統(tǒng)設計,就像通過對象來構建工廠或設備一樣,因此物理設計和控制設計可以成為一體。數字以一種易于理解的方式與實體相匹配。也許將來,設備供應商將為他們的設備提供這些控制對象。

面向對象工業(yè)編程不僅使設計易于構建,還使工廠技術人員易于進行故障排除,并使將來的控制工程師更易于進行維護。正如工業(yè)控制領域已開始采用其它最佳通用軟件發(fā)展進步一樣,面向對象的工業(yè)編程也將成為控制工程的一個未來趨勢。

中傳動網版權與免責聲明:

凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.connectcrack.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯(lián)網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。

關注伺服與運動控制公眾號獲取更多資訊

關注直驅與傳動公眾號獲取更多資訊

關注中國傳動網公眾號獲取更多資訊

最新新聞
查看更多資訊

熱搜詞
  • 運動控制
  • 伺服系統(tǒng)
  • 機器視覺
  • 機械傳動
  • 編碼器
  • 直驅系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機器人
  • 低壓電器
  • 機柜
回頂部
點贊 0
取消 0