面向?qū)ο缶幊淌怯嬎銠C高級語言的一種先進的編程模式,在工業(yè)掌握體系的plc程序中也能夠接納這種設(shè)計頭腦,固然我們無法實現(xiàn)面向?qū)ο蟮暮芏鄡?yōu)秀特色如“秉承”
,乃至于它基礎(chǔ)就不具有面向?qū)ο缶幊陶Z言的特色,但面向?qū)ο缶幊痰母拍罴词穷惡皖惖膶嵗磳ο螅?div id="m50uktp" class="box-center"> ,我們只需要使用這種概念就可以了
。在計算機編程中我們需要把一些事物空洞和歸納,才氣編寫類
,而在工業(yè)掌握體系中
,掌握對象如:電機
,閥等等是很明顯的掌握種別
,不需要空洞就可以很明顯的針對它們編寫類,以下將會用到西門子的Step7編程語言和施奈德的Unity編程語言來疏解PLC的面向?qū)ο缶幊獭?/span>
一、實現(xiàn)方法
面向?qū)ο缶幊淘赟tep7中使用功效塊(即FB)編程,一談到此朋友們就會想到西門子提出的模塊化編程,不錯 ,即是這個模塊化編程
,但西門子提出的模塊化、布景數(shù)據(jù)塊
、多重布景等名詞并不能讓朋友們很清楚的理解和使用這種優(yōu)秀的設(shè)計理念
。若朋友們從面向?qū)ο缶幊痰慕嵌热ダ斫?div id="m50uktp" class="box-center"> ,則可以很好的理解這種設(shè)計模式
?div id="m50uktp" class="box-center"> !癋B塊”被當作“類”
,它可以被當作是對類似的掌握對象的代碼歸納,如對MM440的變頻器可以編寫FB塊:MtrMM440,這在面向?qū)ο缶幊讨蟹Q為“類”
,當需要編程掌握具體的電機時
,可以給它分派一個布景DB塊
,在面向?qū)ο缶幊讨蟹Q為類的實現(xiàn)(即建立類的實例:對象)
,當需要掌握多個電機時
,可以分派不同的布景DB到這個FB塊,即建立類的多個實例
。Step7中有另外一種程序塊
,即FC塊
,以FC塊為主的編程在西門子中稱為布局化編程,這也能夠類比于計算機編程中的面向歷程編程
,即純粹以函數(shù)為主體的編程
。
施奈德的Unity應(yīng)用編程可以更好的理解面向?qū)ο缶幊?div id="d48novz" class="flower left">。它的DFB定義中包含輸入/輸出參數(shù)
,專有/共有變量
,以及代碼實現(xiàn)
,而這恰是計算機的面向?qū)ο缶幊讨小邦悺钡母兀㈩惖膶嵗▽ο螅┚拖窠⒁话愕摹安紶枴弊兞客瑯?div id="4qifd00" class="flower right">
,只需在“FunctionBlocks”中定義這種“類”的變量即可。
Step7和Unity都可以接納面向歷程和面向?qū)ο缶幊谭椒ǎ@兩種編程方法的差別類似于計算機高級語言中的C語言和C++語言編程的差別。以下的疏解將會把Step7中的FB和Unity中的DFB稱為“類”,Step7中的FB+布景DB以及Unity中DFB的實例稱為“對象”。
二、面向?qū)ο缶幊碳軜?gòu)以上疏解的是實現(xiàn)細節(jié),而編程頭腦是確立在程序架構(gòu)上的,不是某個局部使用了面向?qū)ο蠓椒?div id="d48novz" class="flower left"> ,則可以稱之為這種編程即是面向?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)
,風機的風壓開關(guān),油泵的油位開關(guān)等。
啟動和終止條件,以上的電路護衛(wèi)和功效護衛(wèi)都可能造成電機運轉(zhuǎn)終止,復位也可能造成重啟動,但這里的條件指的是平常運轉(zhuǎn)的啟動和終止條件,譬如挨次掌握的流程步。掌握模式:如手動和自動等 。
故障復位:通過復位信息 ,重新啟動
。
輸出信息:掌握輸出,如掌握電機的主接觸器 。
狀況信息輸出故障輸出狀況儲存信息:用于代碼實現(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)如虎添翼
。
推薦資訊
Copyright ? 2018 PLC控制柜-電氣控制柜-變頻控制柜廠家-西安自動化控制系統(tǒng)工程 地址:西安市蓮湖區(qū)大興東路 備案號:
陜ICP備19012619號-1
PLC控制柜-電氣控制柜-變頻控制柜-西安自動化系統(tǒng)工程|
- 13227762296
-
-

微信號:13227762296微信二維碼
-