控制工程的一個(gè)未來趨勢(shì):面向?qū)ο蟮墓I(yè)編程

時(shí)間:2020-04-10

來源:控制工程網(wǎng) 作者:Gary Pratt

導(dǎo)語:采用面向?qū)ο蟮墓I(yè)編程(OOIP)技術(shù),可提高面向?qū)ο缶幊蹋∣OP)的效率,而不會(huì)為工業(yè)控制應(yīng)用增加額外的復(fù)雜性。

用面向?qū)ο蟮墓I(yè)編程(OOIP)技術(shù),可提高面向?qū)ο缶幊蹋∣OP)的效率,而不會(huì)為工業(yè)控制應(yīng)用增加額外的復(fù)雜性。本文是面向?qū)ο蠊I(yè)編程系列文章的第二篇(第一篇請(qǐng)見2020年1-2月合刊《用于工業(yè)控制的面向?qū)ο缶幊獭罚?,將介紹如何在其它塊的基礎(chǔ)上構(gòu)建新塊,以創(chuàng)建大型的分層分區(qū)系統(tǒng),以及如何在面向?qū)ο蠊I(yè)編程設(shè)計(jì)中管理輸入/輸出(I/O)和配置。

抽象、嵌套和接口

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

工業(yè)編程 

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

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

 流程工廠

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

經(jīng)過抽象后,在層次結(jié)構(gòu)的任何一個(gè)層次上唯一需要關(guān)注的是與下一個(gè)層次的接口。例如,螺旋鉆中的變速電動(dòng)機(jī)具有用于設(shè)置電動(dòng)機(jī)速度的接口。在螺旋鉆層次上,用戶無需了解或處理電動(dòng)機(jī)的任何潛在復(fù)雜性,例如確定電動(dòng)機(jī)是否正在響應(yīng)或發(fā)出警報(bào)。

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

對(duì)象配置和I/O映射

基于對(duì)象的控制與基于任務(wù)的控制之間的差異,與不同形式的組織架構(gòu)之間的差異有些類似?;谌蝿?wù)的控制,類似于集權(quán)化的企業(yè)架構(gòu),新功能必須在最高層級(jí)報(bào)備和注冊(cè)。基于對(duì)象的控制類似于權(quán)力下放的企業(yè),在該類型組織架構(gòu)中,新功能是自我支持的,并且在很大程度上可以自治的。

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

面向?qū)ο蠊I(yè)編程通過全路徑I/O映射解決了I/O問題。從70年代的內(nèi)存映射到90年代的全局符號(hào)映射,這是自然的發(fā)展。完整路徑名是程序名的組合,通過點(diǎn)(.)分隔,后接所有中間的實(shí)例名,并以變量名結(jié)尾(例如:Plant.R1.A1.SE1.Pulse_FI)。I/O編輯器使用這些完整路徑名將I/O映射到工廠層次結(jié)構(gòu)中相應(yīng)的過程變量(如圖4所示)。

I/O映射 

圖3:硬編碼的I/O和配置與面向?qū)ο蟮墓I(yè)編程不兼容。

 集中式配置

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

配置問題通過中央服務(wù)處理。在啟動(dòng)時(shí),對(duì)象實(shí)例會(huì)向中央配置程序服務(wù)注冊(cè),然后該服務(wù)從CSV文件或SQL數(shù)據(jù)庫獲取配置數(shù)據(jù),并將值分配給每個(gè)實(shí)例。配置輸入允許一系列的對(duì)象類型,通過簡(jiǎn)化設(shè)計(jì),滿足用戶最廣泛的需求。

面向?qū)ο蠊I(yè)編程的優(yōu)勢(shì)

面向?qū)ο蟮墓I(yè)編程可以提供很多優(yōu)勢(shì),控制工程師應(yīng)當(dāng)了解下面這9個(gè)優(yōu)勢(shì),以確定開發(fā)系統(tǒng)是否支持面向?qū)ο蟮墓I(yè)編程。

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

2.圖形編輯器允許聲明無限數(shù)量的對(duì)象實(shí)例,以任意方式互連對(duì)象實(shí)例,以及將其它對(duì)象實(shí)例化為任意深度和復(fù)雜性的層次結(jié)構(gòu)的對(duì)象。在運(yùn)行時(shí),編輯器應(yīng)允許對(duì)層次結(jié)構(gòu)進(jìn)行簡(jiǎn)單的導(dǎo)航,例如雙擊對(duì)象實(shí)例,即可進(jìn)入項(xiàng)目層次結(jié)構(gòu),并可向后導(dǎo)航。

3.具有運(yùn)行時(shí)調(diào)試對(duì)象單個(gè)實(shí)例的能力,包括:在單個(gè)實(shí)例內(nèi)設(shè)置斷點(diǎn),單步進(jìn)入單個(gè)實(shí)例以及查看/更改對(duì)象實(shí)例的私有變量。

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

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

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

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

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

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

總體而言,面向?qū)ο蠊I(yè)編程的這些功能允許以對(duì)象為基礎(chǔ)構(gòu)建控制系統(tǒng)設(shè)計(jì),就像通過對(duì)象來構(gòu)建工廠或設(shè)備一樣,因此物理設(shè)計(jì)和控制設(shè)計(jì)可以成為一體。數(shù)字以一種易于理解的方式與實(shí)體相匹配。也許將來,設(shè)備供應(yīng)商將為他們的設(shè)備提供這些控制對(duì)象。

面向?qū)ο蠊I(yè)編程不僅使設(shè)計(jì)易于構(gòu)建,還使工廠技術(shù)人員易于進(jìn)行故障排除,并使將來的控制工程師更易于進(jìn)行維護(hù)。正如工業(yè)控制領(lǐng)域已開始采用其它最佳通用軟件發(fā)展進(jìn)步一樣,面向?qū)ο蟮墓I(yè)編程也將成為控制工程的一個(gè)未來趨勢(shì)。

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

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

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

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