【5136-DNP-ISA 伍德海德】
廈門莫格電氣自動(dòng)化有限公司是一家多年專業(yè)銷售進(jìn)口自動(dòng)化系統(tǒng)(機(jī)器人系統(tǒng)、分布式控制系統(tǒng)DCS、可編程序控制器PLC、 工業(yè)控制通訊轉(zhuǎn)換器 、遠(yuǎn)端輸出/輸入模塊、人機(jī)界面)備件。以停產(chǎn)控制系統(tǒng)零部件、為優(yōu)勢(shì)、我們有大量庫存和盈余操控系統(tǒng)零件、停產(chǎn)的控制系統(tǒng)部分硬件、我們也發(fā)布了許多新的硬件和產(chǎn)品來支持你現(xiàn)有的控制系統(tǒng)或運(yùn)用的控制技術(shù)、停產(chǎn)的“DCS系統(tǒng)備品 備件 PLC模塊 備件”整機(jī)及配件系列、有著強(qiáng)大的優(yōu)勢(shì)。只要您需要的PLC產(chǎn)品、我們就能幫您找到、公司價(jià)格優(yōu)勢(shì)。
以“專業(yè)、 誠(chéng)信、創(chuàng)新、合作、共贏”的經(jīng)營(yíng)理念、不斷開發(fā)新產(chǎn)品、為客戶提供優(yōu)質(zhì)服務(wù)、以zui大限度追求客戶滿意、并不斷開拓新領(lǐng)域業(yè)務(wù)。
產(chǎn)品直接從境外進(jìn)貨、能夠提供不同國(guó)別、廠商的設(shè)備以及備件、解決您多處尋找的麻煩或?qū)Ξa(chǎn)品質(zhì)量問題的擔(dān)心等、在價(jià)格上我們有很大的優(yōu)勢(shì)、產(chǎn)品詳細(xì)信息、竭誠(chéng)歡迎您來電查詢!
【5136-DNP-ISA伍德海德】
廈門莫格電氣自動(dòng)化有限公司
:雷琳
:/,
面向?qū)ο缶幊淌怯?jì)算機(jī)高級(jí)語言的一種*的編程模式,在工業(yè)控制系統(tǒng)的PLC程序中也可以采用這種設(shè)計(jì)思想,雖然我們無法實(shí)現(xiàn)面向?qū)ο蟮暮芏鄡?yōu)秀特點(diǎn)如“繼承”,甚至于它根本就不具備面向?qū)ο缶幊陶Z言的特點(diǎn),但面向?qū)ο缶幊痰幕靖拍罹褪穷惡皖惖膶?shí)例(即對(duì)象),我們只需要使用這種概念就可以了。在計(jì)算機(jī)編程中我們需要把一些事物抽象和歸納,才能編寫類,而在工業(yè)控制系統(tǒng)中,控制對(duì)象如:電機(jī),閥等等是很明顯的控制類別,不需要抽象就可以很明顯的針對(duì)它們編寫類,以下將會(huì)用到西門子的Step7編程語言和施奈德的Unity 編程語言來講解PLC的面向?qū)ο缶幊獭?/p>
一、 實(shí)現(xiàn)方式
面向?qū)ο缶幊淘赟tep7中使用功能塊(即FB)編程,一談到此大家就會(huì)想到西門子提出的模塊化編程,不錯(cuò),就是這個(gè)模塊化編程,但西門子提出的模塊化、背景數(shù)據(jù)塊、多重背景等名詞并不能讓大家很明白的理解和使用這種優(yōu)秀的設(shè)計(jì)理念。如果大家從面向?qū)ο缶幊痰慕嵌热ダ斫猓瑒t可以很好的理解這種設(shè)計(jì)模式。“FB塊”被看 成“類”,它可以被看成是對(duì)相似的控制對(duì)象的代碼歸納,如對(duì)MM440的變頻器可以編寫FB塊:MtrMM440,這在面向?qū)ο缶幊讨蟹Q為“類”,當(dāng)需要 編程控制具體的電機(jī)時(shí),可以給它分配一個(gè)背景DB塊,在面向?qū)ο缶幊讨蟹Q為類的實(shí)現(xiàn)(即創(chuàng)建類的實(shí)例:對(duì)象),當(dāng)需要控制多個(gè)電機(jī)時(shí),可以分配不同的背景 DB到這個(gè)FB塊,即創(chuàng)建類的多個(gè)實(shí)例。Step7中有另外一種程序塊,即FC塊,以FC塊為主的編程在西門子中稱為結(jié)構(gòu)化編程,這也可以類比于計(jì)算機(jī)編程中的面向過程編程,即純粹以函數(shù)為主體的編程。
施奈德的Unity軟件編程可以更好的理解面向?qū)ο缶幊?。它的DFB定義中包含輸入/輸出參數(shù),私有/共有變量,以及代碼實(shí)現(xiàn),而這正是計(jì)算機(jī)的面向?qū)ο?編程中“類”的基本元素,而創(chuàng)建類的實(shí)例(對(duì)象)就像創(chuàng)建普通的“布爾”變量一樣,只需在“Function Blocks”中定義這種“類”的變量即可。
Step7和Unity都可以采用面向過程和面向?qū)ο缶幊谭绞?,這兩種編程方式的區(qū)別類似于計(jì)算機(jī)高級(jí)語言中的C語言和C++語言編程的區(qū)別。
以下的講解將會(huì)把Step7中的FB和Unity中的DFB稱為“類”,Step7中的FB+背景DB以及Unity中DFB的實(shí)例稱為“對(duì)象”。
二、 面向?qū)ο缶幊碳軜?gòu)
以上講解的是實(shí)現(xiàn)細(xì)節(jié),而編程思想是建立在程序架構(gòu)上的,不是某個(gè)局部使用了面向?qū)ο蠓绞剑瑒t可以稱之為這種編程就是面向?qū)ο缶幊?。這種編程需要從以下方面著手:
1、 電路設(shè)計(jì)的結(jié)構(gòu)化。(PLC學(xué)習(xí)網(wǎng) www.xxplc。。com)
這里主要以自動(dòng)線為主介紹,對(duì)于單機(jī)機(jī)床可以是它的簡(jiǎn)化結(jié)構(gòu),
<1>、自動(dòng)線層:這是zui高層次,它擁有一個(gè)主PLC,對(duì)屬于它下面的各區(qū)域控制
<2>、工程層:擁有獨(dú)立的配送電系統(tǒng),但沒有PLC,只有分布式模塊,由自動(dòng)線控制。顧名思義,它有著較大的獨(dú)立性,可以作為一個(gè)單獨(dú)的工程項(xiàng)目設(shè)計(jì)和制造,當(dāng)自動(dòng)線比較小時(shí),可以省略該層次。
<3>、功能組層:根據(jù)工藝劃分,將實(shí)現(xiàn)某一個(gè)工藝功能的區(qū)段設(shè)備劃分為一個(gè)功能組,它隸屬于工程層,當(dāng)工程層被省略時(shí),隸屬于自動(dòng)線層。
面向?qū)ο缶幊滩⒉灰欢ㄒ笫褂靡陨系慕Y(jié)構(gòu),但好的電氣結(jié)構(gòu)更利于面向?qū)ο缶幊獭?/p>
2、 任何控制對(duì)象邏輯都在“類”中實(shí)現(xiàn)。
為了做到這點(diǎn),必須分析與控制對(duì)象相關(guān)的信息,譬如,對(duì)于一個(gè)電機(jī),有以下相關(guān)的信息需要考慮:
輸入信息:
<1>、電路保護(hù)信息,如電機(jī)的空氣開關(guān),熱繼電器等。
<2>、功能保護(hù)信息,如運(yùn)動(dòng)電機(jī)的限位開關(guān),風(fēng)機(jī)的風(fēng)壓開關(guān),油泵的油位開關(guān)等。
<3>、啟動(dòng)和終止條件,以上的電路保護(hù)和功能保護(hù)都可能導(dǎo)致電機(jī)運(yùn)轉(zhuǎn)終止,復(fù)位也可能導(dǎo)致重啟動(dòng),但這里的條件指的是正常運(yùn)行的啟動(dòng)和終止條件,譬如順序控制的流程步。
<4>、控制模式:如手動(dòng)和自動(dòng)等。
<5>、故障復(fù)位:通過復(fù)位信息,重新啟動(dòng)。
輸出信息:
<1>、控制輸出,如控制電機(jī)的主接觸器。
<2>、狀態(tài)信息輸出
<3>、故障輸出
.........
狀態(tài)儲(chǔ)存信息:
用于代碼實(shí)現(xiàn)的中間變量以及可以被人機(jī)界面讀出的狀態(tài)變量等
把以上信息都整合到一個(gè)類中,并盡量使類的參數(shù)標(biāo)準(zhǔn)化。不過,同高級(jí)編程語言還是曾在一些差別,針對(duì)Step7,應(yīng)該遵循的標(biāo)準(zhǔn)是:程序結(jié)構(gòu)由FC實(shí)現(xiàn),對(duì)象控制由FB實(shí)現(xiàn),如下的一種結(jié)構(gòu)體系(其電氣結(jié)構(gòu)來自上面的介紹):這只不過是一個(gè)粗略的PLC程序架構(gòu)體系,好的架構(gòu)應(yīng)該更完善和科學(xué)。
3、 規(guī)劃好數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)的定義相當(dāng)重要,并盡量統(tǒng)一這些結(jié)構(gòu),不要顧慮存儲(chǔ)空間,當(dāng)今的PLC內(nèi)存足以容納大量的數(shù)據(jù)。說明一點(diǎn)的是在Step7中盡量不要在類的外部定義數(shù)據(jù)結(jié)構(gòu)(UDT),而是在類里面定義,雖然會(huì)造成不同類中同一結(jié)構(gòu)的重復(fù)性定義,但卻提高了類的獨(dú)立性。
三、 *性
1、 標(biāo)準(zhǔn)化
使用這種設(shè)計(jì)模式,可以將程序設(shè)計(jì)分為兩個(gè)階段,即標(biāo)準(zhǔn)庫、基本架構(gòu)開發(fā),以及實(shí)際應(yīng)用層面設(shè)計(jì)。其中標(biāo)準(zhǔn)庫、基本架構(gòu)是制定程序標(biāo)準(zhǔn)化的基礎(chǔ),而應(yīng)用層設(shè)計(jì)是針對(duì)具體的控制工程編程,這樣可以把程序設(shè)計(jì)人員分成兩類,一類是標(biāo)準(zhǔn)開發(fā),由程序員負(fù)責(zé),一類是應(yīng)用設(shè)計(jì)(其中程序調(diào)試規(guī)劃到應(yīng)用設(shè)計(jì)),由 經(jīng)過標(biāo)準(zhǔn)化培訓(xùn)的一般程序員完成,通過這種分配就可以解決中國(guó)工業(yè)自動(dòng)化中面臨的尷尬局面。傳統(tǒng)的中國(guó)控制工業(yè),一個(gè)程序設(shè)計(jì)由一個(gè)人完成,這樣他還必須負(fù)責(zé)現(xiàn)場(chǎng)調(diào)試,而擁有豐富經(jīng)驗(yàn)的程序員一般是三十歲后,這時(shí)他已經(jīng)成家,而顯然*出差對(duì)家庭不利,很多優(yōu)秀的程序員為了家庭考慮不得不改行,要么轉(zhuǎn)到管 理崗位,要么去制造工廠搞設(shè)備維護(hù),這是資源的嚴(yán)重流失。毫無疑問,使用以上的設(shè)計(jì)流程,我么可以讓經(jīng)驗(yàn)豐富的程序員搞標(biāo)準(zhǔn)庫和架構(gòu)的設(shè)計(jì),而讓剛踏入這個(gè)行業(yè)的年輕人搞應(yīng)用設(shè)計(jì)和調(diào)試,這不僅可以讓老程序員繼續(xù)他自己的工作,而不影響家庭,也可以讓年輕的程序員參入現(xiàn)場(chǎng)調(diào)試,培養(yǎng)自己的經(jīng)驗(yàn),提高自己的 收入。
這可能讓某些人士擔(dān)心,認(rèn)為年輕的程序員可以參加現(xiàn)場(chǎng)的調(diào)試嗎?可以肯定的是沒有標(biāo)準(zhǔn)化支撐的程序不僅年輕的程序員編不出來,而且現(xiàn)場(chǎng)調(diào)試會(huì)問題多多。但有了好的標(biāo)準(zhǔn)化后,一年半以上工作經(jīng)驗(yàn)的程序員就應(yīng)該能夠獨(dú)立面對(duì)自動(dòng)線。
PLC中的面向?qū)ο缶幊痰暮诵木褪呛谙蛔泳幊?,針?duì)Step7,我們使用FB去實(shí)現(xiàn)每一個(gè)對(duì)象的控制,控制邏輯、報(bào)警處理、信號(hào)交換全在FB中,對(duì)于應(yīng)用設(shè)計(jì)人員,不需要明白里面的代碼實(shí)現(xiàn),只需要了解該FB的功能以及如何使用好它就行,這樣對(duì)于應(yīng)用程序人員的編程能力要求大大降低,對(duì)于編程只不過是遵循架構(gòu),拷貝代碼,改變輸入輸出條件而已。
那么調(diào)試呢?很多人認(rèn)為使用FB編程的zui煩就是FB的多次調(diào)用后,根本無法診斷這些代碼,從技術(shù)層面上講確實(shí)如此,我們除了從背景DB上查看信息外, 是無法在它多次被調(diào)用后監(jiān)控代碼的,但我已說過,這是黑匣子編程,我們不需要診斷這些代碼,只需要知道什么樣的輸入、什么樣的參數(shù)設(shè)定導(dǎo)致什么樣的輸出就行,代碼的邏輯與功能好壞是由標(biāo)準(zhǔn)庫開發(fā)人員負(fù)責(zé)的,這就要求標(biāo)準(zhǔn)開發(fā)人員需要對(duì)他設(shè)計(jì)的功能塊在不同條件下進(jìn)行不同的測(cè)試,保證無誤,還需要編寫完整、 詳盡的功能說明文檔,以便于應(yīng)用設(shè)計(jì)人員了解這些塊,標(biāo)準(zhǔn)架構(gòu)并不是制定出來就一勞永逸的,針對(duì)千變?nèi)f化的工程,它是需要不斷完善和修訂的,這也是一個(gè)工程公司可以實(shí)實(shí)在在進(jìn)行知識(shí)積累的地方。
程序不僅需要給調(diào)試人員使用,而且用戶(設(shè)備維護(hù)人員)也需要了解,如果把完整的標(biāo)準(zhǔn)庫文檔給用戶,可能曾在技術(shù)外泄的可能,若不給,對(duì)他們?cè)\斷設(shè)備可能曾在困難,這就需要標(biāo)準(zhǔn)制定人員制作另外一分文檔,即設(shè)備維護(hù)文檔,其知識(shí)的透漏以用戶能夠使用程序進(jìn)行診斷為限。
2、 重用性和易管理型
計(jì)算機(jī)面向?qū)ο缶幊痰膬?yōu)點(diǎn)也有重用性和易管理型,在PLC中也曾在,以Step7為例,需要討論FC和FB的差異。觀察數(shù)據(jù)類型,F(xiàn)B比FC只不過多一個(gè) “STAT”類型,在使用上FB需要背景DB,F(xiàn)C不需要,但就這個(gè)差別導(dǎo)致FB擁有自己獨(dú)立的數(shù)據(jù)儲(chǔ)存空間,而FC的數(shù)據(jù)儲(chǔ)存卻必須借助公有變量(如中 間變量M或者共享DB),有這樣一種準(zhǔn)則,程序塊的獨(dú)立性越強(qiáng),其重用性也越好,產(chǎn)生數(shù)據(jù)訪問沖突的可能性也更少,則更易于管理。有些公司生產(chǎn)的PLC, 其程序語言沒有類似FB 的這種特性,這時(shí)可以采用類似“FC+共享DB”的替代方案解決,但它的獨(dú)立性已經(jīng)大大降低。
同樣的代碼的獨(dú)立性是標(biāo)準(zhǔn)制定的一個(gè)重要環(huán)節(jié),很難想象一個(gè)與其他功能塊之間有著千絲萬縷的功能塊能夠被作為標(biāo)準(zhǔn)塊在不同工程中有效的重復(fù)使用。
縱觀計(jì)算機(jī)語言的發(fā)展,zui開始的編程都是令人的,而當(dāng)今的編程讓人們得到很大的解脫,有很多現(xiàn)成的標(biāo)準(zhǔn)類庫實(shí)用,人們可以把更多的編程精力放在實(shí)現(xiàn)功能本身上,PLC編程也應(yīng)該朝這種方向發(fā)展,應(yīng)該讓更多的人從事應(yīng)用層面的設(shè)計(jì),那些標(biāo)準(zhǔn)功能塊不應(yīng)該重復(fù)的被不同人員開發(fā),雖然各大PLC廠開發(fā)了大量 的程序庫,但工業(yè)控制對(duì)象各式各樣,不同行業(yè)都應(yīng)該擁有自己的程序庫,而代碼的可重用性是評(píng)價(jià)這些功能塊好壞的關(guān)鍵。
【伍德海德】
【伍德海德】
100-C60DQ00
100-C60DQ01
100-C60DQ10
100-C60DS00
100-C60DS01
100-C60DS10
100-C60DT01
100-C60DT10
100-C60DY00
100-C60DY01
100-C60DY10
100-C60F00
100-C60F01
100-C60F10
100-C60G10
100-C60H00
100-C60H01
100-C60H10
100-C60I10
100-C60J00
100-C60J01
100-C60J10
100-C60K10
100-C60KA00
100-C60KA01
100-C60KA10
100-C60KB01
100-C60KB10
100-C60KD00
100-C60KD01
100-C60KD10
100-C60KF00
100-C60KF01
100-C60KF10
100-C60KG00
100-C60KG01
100-C60KG10
100-C60KJ00
100-C60KJ00-X50
100-C60KJ01
100-C60KJ10
100-C60KL00
100-C60KL01
100-C60KL10
100-C60KN00
100-C60KN10
100-C60KP00
100-C60KP01
100-C60KP10
100-C60KY01
100-C60KY10
100-C60L00
100-C60L01
100-C60L10
100-C60M10
100-C60N00
100-C60N01
100-C60N10
100-C60P00
100-C60P10
100-C60Q10
100-C60S10
100-C60T00
100-C60T01
100-C60T10
100-C60UD00
100-C60UD01
100-C60UD10
100-C60UDJ00
100-C60UDJ01
100-C60UDJ10
100-C60UKD00
100-C60UKD10
100-C60UKF00
100-C60UKP00
100-C60UP00
100-C60UT00
100-C60V10
100-C60VA01
100-C60VA10
100-C60W10
100-C60X00
100-C60X10
100-C60Y10
100-C72A00
100-C72A01
100-C72A10
100-C72A11
100-C72B00
100-C72B01
100-C72B10
100-C72C00
100-C72C10
100-C72D00
100-C72D01
100-C72D10
100-C72D11
100-C72DB10
100-C72DD10
100-C72DE10
100-C72DF00
100-C72DF10
100-C72DJ00
100-C72DJ01
100-C72DJ10
100-C72DP10
100-C72DQ00
100-C72DQ10
100-C72DS00
100-C72DS10
100-C72DT10
100-C72DY10
100-C72DZ10
100-C72E00
100-C72E10
100-C72F00
100-C72F01
100-C72F10
100-C72G00
100-C72G10
100-C72H00
100-C72H10
100-C72H11
100-C72J00
100-C72J01
100-C72J10
100-C72K00
100-C72K10
100-C72KA00
100-C72KA10
100-C72KB00
100-C72KD00
100-C72KD01
100-C72KD10
100-C72KF00
100-C72KF01
100-C72KF10
100-C72KG00
100-C72KG01
100-C72KG10
100-C72KJ00
100-C72KJ00-X50
100-C72KJ01
100-C72KJ10
100-C72KL00
100-C72KL01
100-C72KL10
100-C72KN00
100-C72KP00
100-C72KP10
100-C72KY00
100-C72KY10
100-C72L00
100-C72L01
100-C72L10
100-C72M10
100-C72N00
100-C72N10
100-C72P00
100-C72P10
100-C72Q10
100-C72T00
100-C72T10
100-C72UD00
100-C72UD10
100-C72UDJ00
100-C72UDJ10
100-C72UF00
100-C72UKD10
100-C72UKJ01
100-C72V00
100-C72VA00
100-C72VA10
100-C72X10
100-C72Y10
100-C85A00
100-C85A01
100-C85A10
100-C85B00
100-C85B01
100-C85B10
100-C85C00
100-C85C10
100-C85D00
100-C85D01
100-C85D10
100-C85D11
100-C85DA10
100-C85DD00
100-C85DD10
100-C85DF00
100-C85DF10
100-C85DJ00
100-C85DJ01
100-C85DJ10
100-C85DP10
100-C85DQ00
100-C85DQ10
100-C85DS00
100-C85DS01
100-C85DS10
100-C85DT00
100-C85DT01
100-C85DT10
100-C85DW10
100-C85DY00
100-C85DY10
100-C85E10
100-C85F00
100-C85F10
100-C85G00
100-C85G10
100-C85H00
100-C85H01
100-C85H10
100-C85I10
100-C85J00
100-C85J01
100-C85J10
100-C85K00
100-C85K10
100-C85KA00
100-C85KA01
100-C85KA10
100-C85KB01
100-C85KB10
100-C85KD00
100-C85KD01
100-C85KD10
100-C85KD10-X50
100-C85KD11
100-C85KF00
100-C85KF01
100-C85KF10
100-C85KF11
100-C85KG01
100-C85KG10
100-C85KJ00
100-C85KJ00-X50