圖形只需很少的培訓(xùn),即可由控制工程師和工廠技術(shù)人員使用OOIP
2021-06-09
您應(yīng)該買入還是賣出廣告股票?趕快下載這個(gè)炒股神器,智能提示買賣點(diǎn)!
工業(yè)控制軟件工程對(duì)于高度可靠且易于廣泛使用的用戶有獨(dú)特的要求。這就是為什么圖形語(yǔ)言一直是工控編程的主體,而工控工程師往往在采用它們之前成熟了計(jì)算機(jī)科學(xué)的最新趨勢(shì)(例如,符號(hào)尋址和數(shù)據(jù)結(jié)構(gòu)在進(jìn)入工控之前已經(jīng)成熟。年)更多信息可在真工鏈獲取。
面向?qū)ο缶幊蹋∣OP)在 1990 年代開(kāi)始被計(jì)算機(jī)科學(xué)家使用,但由于其復(fù)雜性和缺乏支持的圖形語(yǔ)言環(huán)境,其在工業(yè)控制領(lǐng)域的應(yīng)用一直很緩慢。幸運(yùn)的是,工業(yè)軟件供應(yīng)商已經(jīng)開(kāi)始解決這些問(wèn)題,并在沒(méi)有任何復(fù)雜性的情況下為控制領(lǐng)域提供了許多 OOP 的好處。
本文將展示其中一個(gè)工具的示例,展示工程師如何通過(guò)掌握一小部分 OOP 概念來(lái)利用這些優(yōu)勢(shì),并展示使用對(duì)象進(jìn)行編程如何成為控制基于對(duì)象的自然而直觀的技術(shù)。物理世界。
工業(yè)控制中OOP的定義
在“面向?qū)ο缶幊蹋∣OP)”一詞的解釋中,工業(yè)控制界和計(jì)算機(jī)科學(xué)界往往是不同的。為了避免本文中的混淆,我們將工業(yè)控制解釋為面向?qū)ο蟮墓I(yè)編程(OOIP),并區(qū)分如下:
面向?qū)ο缶幊?(OOP)
包括完整的計(jì)算機(jī)科學(xué) OOP 功能
主要基于文本
通常是受過(guò)高等教育的計(jì)算機(jī)科學(xué)家領(lǐng)域
面向?qū)ο蟮墓I(yè)編程 (OOIP)
使用封裝、實(shí)例化和抽象概念將功能塊 (FB) 實(shí)例化為其他 FB 的能力
以圖形為主
控制工程師和工廠技術(shù)人員只需很少的培訓(xùn)即可使用。
OOIP的演變
在工業(yè)自動(dòng)化的早期,編程是固定的。我們讀取輸入,縮放輸入,對(duì)輸入生成警報(bào),執(zhí)行控制算法以生成輸出,對(duì)輸出執(zhí)行警報(bào),縮放輸出,并使用內(nèi)存映射 I/O 寫入輸出(如圖所示)圖1)。后來(lái)有空了,我們合并了一些重復(fù)的代碼,但其實(shí)過(guò)程還是很簡(jiǎn)單的。
廣告明星服務(wù)人山人海!砍10次,3分鐘打到極致,只等你!圖 1:原始扁平化編程風(fēng)格
當(dāng)控制軟件開(kāi)始適應(yīng)多個(gè)任務(wù)時(shí),工業(yè)程序員采用了集中式面向任務(wù)的方法。這種方法將操作劃分為單獨(dú)的任務(wù),然后一系列集中處理對(duì)程序中的標(biāo)簽執(zhí)行每個(gè)單獨(dú)的操作。第一個(gè)任務(wù)將讀取所有輸入,第二個(gè)任務(wù)將縮放所有輸入,下一個(gè)任務(wù)將在縮放點(diǎn)上執(zhí)行警報(bào),依此類推,如圖 2 所示。
圖 2:面向任務(wù)的編程風(fēng)格
這種集中的面向任務(wù)的方法比平面方法有很大的改進(jìn),但是在向程序添加新功能時(shí),它需要修改每個(gè)任務(wù)。此外數(shù)據(jù)結(jié)構(gòu)用面向?qū)ο蠓椒ㄅcc++描述,面向任務(wù)的編程常常使得在控制代碼中查看信息流和理解因果關(guān)系變得困難。這些缺點(diǎn)使得程序設(shè)計(jì)更加困難,工廠技術(shù)人員也難以維護(hù)(尤其是年輕的團(tuán)隊(duì)成員,他們?cè)贠OP中學(xué)習(xí),對(duì)面向任務(wù)的編程不滿意)。
圖 3:面向?qū)ο蟮木幊田L(fēng)格
OOIP,如圖3 所示,轉(zhuǎn)變了面向任務(wù)的流程。這個(gè)函數(shù)不是分散在許多任務(wù)中,而是包含在“對(duì)象”中。由于工業(yè)控制工廠是由對(duì)象(例如:電機(jī)、傳送帶、閥門和傳感器)組成的,面向?qū)ο蟮木幊淌枪I(yè)控制的自然選擇……甚至可能比最初為 OOP 創(chuàng)建的計(jì)算機(jī)編程還要多!實(shí)際上,可以將控件的對(duì)象設(shè)計(jì)成與工廠中的對(duì)象相對(duì)應(yīng),使控制程序開(kāi)始看起來(lái)與工廠設(shè)計(jì)非常相似,如圖4所示。 使用正確的控制圖編輯器,工廠設(shè)計(jì)圖和控制圖可以在同一張圖中!
圖 4:在 OOIP 中,控制設(shè)計(jì)是根據(jù)與物理工廠或設(shè)備設(shè)計(jì)中的對(duì)象相匹配的對(duì)象構(gòu)建的。
要實(shí)現(xiàn)OOIP,控制工程師只需要掌握兩個(gè)關(guān)鍵的OOP概念:封裝和實(shí)例化。
包裝形式
封裝允許創(chuàng)建對(duì)象,其中包含控制其匹配工廠對(duì)象所需的所有函數(shù)和數(shù)據(jù)。用戶不需要知道或理解底層實(shí)現(xiàn)......他們只是使用它!一個(gè)很好的比喻是汽車發(fā)動(dòng)機(jī)。發(fā)動(dòng)機(jī)封裝了活塞、閥門、軸承和許多其他物體和復(fù)雜的功能。駕駛員不需要知道發(fā)動(dòng)機(jī)是如何工作的,他們只需要了解發(fā)動(dòng)機(jī)的界面并與之交互:?jiǎn)?dòng)按鈕和油門踏板。
出現(xiàn)在圖 4 左下方并在圖 5 中有詳細(xì)說(shuō)明的模塊是 OOIP 封裝的一個(gè)很好的例子。該模塊封裝了模擬輸入的所有復(fù)雜性,包括縮放、鉗位、濾波、放大、變化率報(bào)警和高/低報(bào)警。程序員只關(guān)心塊的配置(_CI左端的輸入)和程序的輸出(和)。程序員不需要理解或擔(dān)心底層的復(fù)雜性。放下它并使用它......就像汽車中的發(fā)動(dòng)機(jī)一樣。
圖 5:模擬輸入功能塊
實(shí)例化
實(shí)例化是聲明和使用一個(gè)對(duì)象的多個(gè)副本而不制作對(duì)象副本的能力。在-3 中,這些對(duì)象被稱為“功能塊”。功能塊是數(shù)據(jù)類型,就像整數(shù)或?qū)崝?shù)是數(shù)據(jù)類型一樣。通過(guò)以與聲明整數(shù)實(shí)例完全相同的方式聲明它們來(lái)創(chuàng)建功能塊的“實(shí)例”。在幕后,編譯器為功能塊的每個(gè)實(shí)例中的變量分配唯一的內(nèi)存,其方式與為實(shí)例分配內(nèi)存的方式完全相同。而且,正如您可以聲明無(wú)限數(shù)量的整數(shù)(最大存儲(chǔ)容量)一樣,您也可以聲明無(wú)限數(shù)量的特定功能塊實(shí)例。
圖 6:在連續(xù)函數(shù)圖編輯器中實(shí)例化對(duì)象
我喜歡在培訓(xùn)課程中使用的類比是福特野馬,如圖 7 所示。1964 年的福特野馬是車輛的“類型”(完全相同)整數(shù)是日期“類型” )。在創(chuàng)建它的實(shí)例之前,您無(wú)法駕駛 1964 年福特“Type”(以完全相同的方式,除非您聲明它,否則您無(wú)法使用它)。因此,指示福特裝配線為您創(chuàng)建 1964 年福特野馬實(shí)例的工單類似于指示編譯器為您分配內(nèi)存的語(yǔ)句。這樣數(shù)據(jù)結(jié)構(gòu)用面向?qū)ο蠓椒ㄅcc++描述,您車道上的 1964 年 Ford 就成為這種數(shù)據(jù)類型的實(shí)例。
圖 7:功能塊
但是正如您可以聲明(并且編譯器可以為其分配內(nèi)存)許多整數(shù)一樣,工廠可以制造“車輛”類型“的許多實(shí)例。這樣,您的鄰居就可以擁有自己的 1964 年 Ford ,它完全獨(dú)立于您的。它們的功能完全封裝在物體的每一個(gè)實(shí)例中(無(wú)法承受潛在的量子糾纏)。
接下來(lái)是
本系列的第 2 部分將展示如何使用其他三個(gè)概念:抽象、接口和嵌套將較低級(jí)別的對(duì)象組裝成更復(fù)雜的對(duì)象,以及如何重用這些概念從一組對(duì)象構(gòu)建整個(gè)工廠或機(jī)器?;緲?gòu)建塊。它還將展示如何將 I/O 映射到分布在整個(gè)設(shè)計(jì)中的對(duì)象,如何向?qū)ο筇砑訁?shù)輸入以增強(qiáng)其可重用性,以及如何創(chuàng)建中央配置服務(wù)以允許從單個(gè) CSV 管理這些參數(shù)。文件或 SQL 數(shù)據(jù)庫(kù)。
總結(jié)
工具供應(yīng)商開(kāi)始向控制工程師提供OOIP的優(yōu)勢(shì)。為了利用這些好處,控制工程師只需要掌握兩個(gè)關(guān)鍵的 OOP 概念:封裝和實(shí)例化。有了這些知識(shí),控制工程師就可以將工廠對(duì)象的功能封裝成匹配的控制對(duì)象,然后將這些對(duì)象實(shí)例化,創(chuàng)建一個(gè)類似于工廠設(shè)計(jì)的控制設(shè)計(jì)。 OOIP 不僅使設(shè)計(jì)易于構(gòu)建,還使工廠技術(shù)人員可以輕松地對(duì)設(shè)計(jì)進(jìn)行故障排除,并便于未來(lái)的控制工程師進(jìn)行維護(hù)。正如工業(yè)控制領(lǐng)域采用了其他最好的通用軟件進(jìn)步一樣,面向?qū)ο蟮墓I(yè)編程也遵循相同的模式。 OOIP顯然是控制工程的未來(lái),振工鏈的工業(yè)自動(dòng)化平臺(tái)。