面向?qū)ο缶幊淌怯嬎銠C高級語言的一種先進的編程模式,在工業(yè)掌握體系的plc程序中也能夠接納這種設(shè)計頭腦,固然我們無法實現(xiàn)面向?qū)ο蟮暮芏鄡?yōu)秀特色如“秉承”,乃至于它基礎(chǔ)就不具有面向?qū)ο缶幊陶Z言的特色,但面向?qū)ο缶幊痰母拍罴词穷惡皖惖膶嵗磳ο螅?,我們只需要使用這種概念就可以了。在計算機編程中我們需要把一些事物空洞和歸納,才氣編寫類,而在工業(yè)掌握體系中,掌握對象如:電機,閥等等是很明顯的掌握種別,不需要空洞就可以很明顯的針對它們編寫類,以下將會用到西門子的Step7編程語言和施奈德的Unity編程語言來疏解PLC的面向?qū)ο缶幊獭?/span>
一、實現(xiàn)方法
面向?qū)ο缶幊淘赟tep7中使用功效塊(即FB)編程,一談到此朋友們就會想到西門子提出的模塊化編程,不錯,即是這個模塊化編程,但西門子提出的模塊化、布景數(shù)據(jù)塊、多重布景等名詞并不能讓朋友們很清楚的理解和使用這種優(yōu)秀的設(shè)計理念。若朋友們從面向?qū)ο缶幊痰慕嵌热ダ斫?,則可以很好的理解這種設(shè)計模式?!癋B塊”被當作“類”,它可以被當作是對類似的掌握對象的代碼歸納,如對MM440的變頻器可以編寫FB塊:MtrMM440,這在面向?qū)ο缶幊讨蟹Q為“類”,當需要編程掌握具體的電機時,可以給它分派一個布景DB塊,在面向?qū)ο缶幊讨蟹Q為類的實現(xiàn)(即建立類的實例:對象),當需要掌握多個電機時,可以分派不同的布景DB到這個FB塊,即建立類的多個實例。Step7中有另外一種程序塊,即FC塊,以FC塊為主的編程在西門子中稱為布局化編程,這也能夠類比于計算機編程中的面向歷程編程,即純粹以函數(shù)為主體的編程。
施奈德的Unity應(yīng)用編程可以更好的理解面向?qū)ο缶幊獭K腄FB定義中包含輸入/輸出參數(shù),專有/共有變量,以及代碼實現(xiàn),而這恰是計算機的面向?qū)ο缶幊讨小邦悺钡母?,而建立類的實例(對象)就像建立一般的“布爾”變量同樣,只需在“FunctionBlocks”中定義這種“類”的變量即可。
Step7和Unity都可以接納面向歷程和面向?qū)ο缶幊谭椒?,這兩種編程方法的差別類似于計算機高級語言中的C語言和C++語言編程的差別。
以下的疏解將會把Step7中的FB和Unity中的DFB稱為“類”,Step7中的FB+布景DB以及Unity中DFB的實例稱為“對象”。
二、面向?qū)ο缶幊碳軜?gòu)
以上疏解的是實現(xiàn)細節(jié),而編程頭腦是確立在程序架構(gòu)上的,不是某個局部使用了面向?qū)ο蠓椒?,則可以稱之為這種編程即是面向?qū)ο缶幊?。這種編程需要從以下方面動手:
1、電路設(shè)計的布局化。
這里主要以自動線為主說明,對于單機機床可以是它的簡化布局,
自動線層:這是非常高檔次,它擁有一個主PLC,對屬于它下面的各區(qū)域掌握
工程層:擁有自力的配送電體系,但沒有PLC,惟有分布式模塊,由自動線掌握。顧名思義,它有著較大的自力性,可以作為一個獨自的工程項目設(shè)計和制造,當自動線相對小時,可以省略該檔次。
功效組層:憑據(jù)工藝分別,將實現(xiàn)某一個工藝功效的區(qū)段裝備分別為一個功效組,它從屬于工程層,當工程層被省略時,從屬于自動線層。
面向?qū)ο缶幊滩⒉灰欢ㄒ笫褂靡陨系牟季郑玫碾姎獠季指诿嫦驅(qū)ο缶幊獭?/span>
2、任何掌握對象邏輯都在“類”中實現(xiàn)。
為了做到這點,必需說明與掌握對象關(guān)聯(lián)的信息,譬如,對于一個電機,有以下關(guān)聯(lián)的信息需要考慮:
輸入信息:
電路護衛(wèi)信息,如電機的空氣開關(guān),熱繼電器等。
功效護衛(wèi)信息,如運動電機的限位開關(guān),風(fēng)機的風(fēng)壓開關(guān),油泵的油位開關(guān)等。
啟動和終止條件,以上的電路護衛(wèi)和功效護衛(wèi)都可能造成電機運轉(zhuǎn)終止,復(fù)位也可能造成重啟動,但這里的條件指的是平常運轉(zhuǎn)的啟動和終止條件,譬如挨次掌握的流程步。
掌握模式:如手動和自動等。
故障復(fù)位:通過復(fù)位信息,重新啟動。
輸出信息:
掌握輸出,如掌握電機的主接觸器。
狀況信息輸出
故障輸出
狀況儲存信息:
用于代碼實現(xiàn)的中心變量以及可以被電路圖設(shè)計中我們早曾經(jīng)在使用針對掌握對象的畫圖方法,即把根基的主配送電路和PLC配置實現(xiàn)后,我們會針對每一個現(xiàn)場掌握對象如:電機、閥、氣缸等掌握對象繪制電路圖,他們的電源來自主配送電路,掌握和反應(yīng)與PLC確立連接,硬件連鎖憑據(jù)現(xiàn)實情況調(diào)整,一個個掌握對象就象搭建積木同樣有組織的堆積起來,同樣的,編程也是針對一個個掌握對象使用相應(yīng)的標準掌握塊實現(xiàn)就可以,把程序掌握細節(jié)實現(xiàn)了有用的封裝,使程序看起來簡潔和易于護衛(wèi),而好的設(shè)計可以把道理圖和程序進行很好的關(guān)聯(lián),乃至于做到一對一的關(guān)系,如道理圖中的一個掌握對象可以在程序中找到相應(yīng)的FB調(diào)用與之對應(yīng),真正做到面向掌握對象編程。
可能有人疑慮,PLC編程大片面是步進編程,這一個個標準塊都是針對掌握對象的,那掌握挨次怎樣實現(xiàn)呢?這就要求編寫特地的挨次掌握FB塊,或者使用Siemens現(xiàn)成的Graph7來實現(xiàn),這點與一般編程沒什么差別。
結(jié)束語:當今的工業(yè)掌握平臺有很多程序妙手,他們很醒目算法,也有著本人的編程理念,當我和一些人探究標準化時,他們認識到標準化的高效性,但覺得如許無法體現(xiàn)本人的編程水準,是的,如上所述作為應(yīng)用層面的程序設(shè)計是不要很高的編程水平,但要想想,一個人豈非能一輩子去搞現(xiàn)場調(diào)試嗎?若想體現(xiàn)本人的代價,可以從事標準編程。我更希望他們能花一點時間研究程序架構(gòu),各行各業(yè),真確大師是體系架構(gòu)設(shè)計者,編程小方法只但是是為好的架構(gòu)如虎添翼。