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