控制系統(tǒng)

在自動化中使用面向?qū)ο蟮木幊谭椒?/h1>
ainet.cn   2013年08月12日

  我們知道面向?qū)ο缶幊?OOP:Object Oriented Programming)是一種面向?qū)ο蟮某绦蛟O(shè)計方法。所謂“對象”就是一個或一組數(shù)據(jù)以及處理這些數(shù)據(jù)的方法和過程的集合。面向?qū)ο蟮某绦蛟O(shè)計完全不同于傳統(tǒng)的面向過程的程序設(shè)計,它大大地降低了應(yīng)用程序開發(fā)的難度,使編程就像搭積木一樣簡單,是當(dāng)今計算機(jī)編程的一股勢不可擋的潮流。

  圖1:類

  面向?qū)ο缶幊踢_(dá)到了軟件工程的三個主要目標(biāo):重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個對象都能夠接收信息、處理數(shù)據(jù)和向其它對象發(fā)送信息。面向?qū)ο笾饕幸韵碌母拍詈徒M件:

  ? 組件:數(shù)據(jù)和功能一起在運(yùn)行著的計算機(jī)程序中形成的單元,組件在面向?qū)ο蟮木幊讨惺悄K和結(jié)構(gòu)化的基礎(chǔ)。

  ? 抽象:程序有能力忽略正在處理中信息的某些方面,即對信息主要方面關(guān)注的能力。

  ? 封裝:也叫做信息封裝,確保組件不會以不可預(yù)期的方式改變其它組件的內(nèi)部狀態(tài);只有在那些提供了內(nèi)部狀態(tài)改變方法的組件中,才可以訪問其內(nèi)部狀態(tài)。每類組件都提供了一個與其它組件聯(lián)系的接口,并規(guī)定了其它組件進(jìn)行調(diào)用的方法。

  ? 多態(tài):組件的引用和類集會涉及到其它許多不同類型的組件,而且引用組件所產(chǎn)生的結(jié)果得依據(jù)實(shí)際調(diào)用的類型。

  ? 繼承:允許在現(xiàn)存的組件基礎(chǔ)上創(chuàng)建子類組件,這統(tǒng)一并增強(qiáng)了多態(tài)性和封裝性。典型地來說就是用類來對組件進(jìn)行分組,而且還可以定義新類為現(xiàn)存的類的擴(kuò)展,這樣就可以把類組織成樹形或網(wǎng)狀結(jié)構(gòu),這體現(xiàn)了動作的通用性。

  圖2:繼承

  最近,一家德國的媒體把精力集中到控制系統(tǒng)工程的主題上,特別是關(guān)于編程的問題。讓他們對這個問題如此大的投入原因是軟件編程在自動化工程中占有很大的比重。在編程問題上,他們又特別對面向?qū)ο缶幊痰脑掝}最感興趣。你可能同意這樣的觀點(diǎn):面向?qū)ο蟮木幊桃呀?jīng)不知不覺地進(jìn)入了自動化,并且建立了它們自己的領(lǐng)地。

  有些題目不值得爭論??刂葡到y(tǒng)的面向?qū)ο缶幊趟坪跏瞧渲械闹?。這家媒體的編輯馬丁?布克維茨一直在拜訪幾個控制器的生產(chǎn)商,與他們探討控制工程的問題。到現(xiàn)在,已經(jīng)進(jìn)行了若干次會面,得出的信息如下:

  圖3:封裝

  至今為止,我已經(jīng)看到一些有趣的發(fā)展。我還沒有遇到一位供應(yīng)商對面向?qū)ο蟮木幊虥]有興趣。但控制器生產(chǎn)商之間的不同只是實(shí)施策略和實(shí)現(xiàn)級別。有些公司已經(jīng)在廣告中聲稱他們使用了面向?qū)ο缶幊痰姆椒?他們的產(chǎn)品使用了這種方法編程的結(jié)果,而且可以看出它的競爭優(yōu)勢。另外有些公司沒有一直使用這項(xiàng)技術(shù),而且今后很少或者不再使用這個概念。

  第三組生產(chǎn)商的情況是,軟件工程師只是為了工作更有趣和增加編碼的重用性,在這兒或那兒使用面向?qū)ο缶幊蹋蛔鳛槌B(tài)或要求來使用。雖然這組的聲音不大,但卻在靜靜地使用。

  如果對準(zhǔn)了控制器編程人員的巨大市場,為他們一步一步地介紹面向?qū)ο蟮木幊淌潜容^明智的。有些概念,諸如類、繼承、實(shí)例化,明顯會讓 PLC系統(tǒng)的編程人員嚇壞。 使用程序調(diào)用來替換程序的手動輸入已經(jīng)有很多年了,因此,使用面向?qū)ο蟮木幊淌且环N進(jìn)化,不會令人驚訝。

  其實(shí),在國際電工委員會頒布了可編程控制器的標(biāo)準(zhǔn)IEC61131-3標(biāo)準(zhǔn)后,很多控制器生產(chǎn)商都在兩種圖形編程語言:梯形圖(LD)和功能塊圖(FB)中支持一種稱為自編功能塊(Add-On Instructions)或?qū)С龉δ軌K(Derived Function Block)它就具有前面所說的封裝、繼承和實(shí)例化的特性。所以,雖然沒有聲明是否采用了面向?qū)ο蟮木幊碳夹g(shù),但實(shí)際上在用戶熟悉的編程環(huán)境中,已經(jīng)采用了這項(xiàng)技術(shù)和概念。這種方法可能更容易被自動化和控制工程師所采用,因?yàn)殡姎夤こ處熥盍?xí)慣梯形圖,而流程工程師最偏好功能塊圖,只有軟件編程人員比較熟悉面向?qū)ο蟮募夹g(shù)。

  圖4:自編功能塊

  這項(xiàng)技術(shù)具有很多的先進(jìn)性:

  ? 大大提高了編碼的重用性;

  ? 程序具有良好的質(zhì)量;

  ? 在團(tuán)隊(duì)中工作更簡化;

  ? 管理編程也更加簡單;

  ? 對程序修改也很簡單。

  不管用戶個人對面向?qū)ο缶幊痰倪x擇是什么,在自動化中已經(jīng)繞不開面向?qū)ο蟮木幊塘?。盡快設(shè)計和打包這項(xiàng)技術(shù),展示它的用途,消除概念和理論中不必要的障礙是生產(chǎn)商的責(zé)任。建議用戶在自動化中盡早使用面向?qū)ο蟮木幊谭椒?,因?yàn)镺OP是未來的發(fā)展方向。

(轉(zhuǎn)載)

標(biāo)簽:控制系統(tǒng) 控制器 電氣工程 OOP 導(dǎo)出功能塊 我要反饋 
泰科電子ECK、ECP系列高壓直流接觸器白皮書下載
優(yōu)傲機(jī)器人下載中心
億萬克
專題報道