李峰
摘 要:本文介紹了AB公司Logix5000開發(fā)平臺自動內(nèi)存管理的面向"對象"技術(shù)在電子皮帶秤控制系統(tǒng)中的應(yīng)用。應(yīng)用該技術(shù)在多傳感器、多秤臺聯(lián)合監(jiān)控的電子皮帶秤程序開發(fā)中比以往開發(fā)方式更高效,尤其在一拖多(一臺PLC控制器控制多臺電子皮帶秤輸送機(jī))的多傳感器、多秤臺聯(lián)合監(jiān)控的電子皮帶秤程序開發(fā)中優(yōu)勢更突出,是傳統(tǒng)的開發(fā)方式無法企及的。
關(guān)鍵詞:Logix5000 面向?qū)ο?Tag 結(jié)構(gòu)體 電子皮帶秤 PLC編程 數(shù)據(jù)結(jié)構(gòu)
PLC應(yīng)用程序由算法和數(shù)據(jù)結(jié)構(gòu)(也即數(shù)據(jù),Logix5000開發(fā)環(huán)境里習(xí)慣稱為標(biāo)簽Tag,定義變量稱為定義標(biāo)簽)組成,通過應(yīng)用程序?qū)?shù)據(jù)的運(yùn)算,實(shí)現(xiàn)對數(shù)據(jù)的處理和設(shè)備的控制。簡言之,PLC控制過程就是PLC應(yīng)用程序?qū)?shù)據(jù)進(jìn)行運(yùn)算處理,將運(yùn)算結(jié)果送到執(zhí)行單元執(zhí)行的過程。PLC程序開發(fā)存在一個普遍的問題是很多開發(fā)平臺無法定義有意義的變量名,如AB公司SLC500系列PLC,它的應(yīng)用程序開發(fā)平臺是Logix500,變量定義(如定義實(shí)數(shù):F12:0)是面向機(jī)器的,可讀性差。雖然可以對變量添加有意義的注釋,增加可讀性,但是注釋無法上傳下載,要想上傳帶注釋的有實(shí)時數(shù)據(jù)的程序,除非隨時帶著有注釋的源程序上傳,就算帶有注釋,可讀性也很差,給程序維護(hù)升級等帶來一定困難,而且在開發(fā)測試階段就要制作好變量表,以便調(diào)試及以后維護(hù)升級時隨時查找,PLC應(yīng)用程序開發(fā)人員對變量的識別讀取耗費(fèi)了大量的時間精力,開發(fā)、修改及升級程序容易出錯且效率低下。如何提高PLC應(yīng)用程序的開發(fā)效率,讓程序開發(fā)人員把更多精力放在對邏輯及算法的優(yōu)化上來成為亟待解決的問題。AB公司的Logix5000開發(fā)平臺支持面向“對象”的自動內(nèi)存管理技術(shù),理論上可以解決了這一問題,但在電子皮帶秤控制系統(tǒng)開發(fā)中還沒有應(yīng)用。
1 面向?qū)ο蟮某绦蛟O(shè)計概念
1.1 類的概念
類是對所有具有相同屬性的事物的抽象概念,相當(dāng)于模具;而對象是類中的一個實(shí)體,相當(dāng)于是用模具制造出來的一個產(chǎn)品。同一類設(shè)備的控制方法、信號反饋、故障檢測等操作相同或相似。
電子皮帶秤可以抽象為一個大類,其下有輸送機(jī)、電控系統(tǒng)二個子類,輸送機(jī)下面有傳感器、秤臺等對象,對象與包含它的類之間、子類與包含它的上一級別類之間可以層層嵌套,反映出電子皮帶秤的真實(shí)屬性及對象與對象、對象與類之間所屬關(guān)系。
1.2 封裝
封裝將數(shù)據(jù)與操作數(shù)據(jù)的源代碼有機(jī)結(jié)合成類。封裝將對象的屬性和方法形成一個不可分割的整體;只保留有限的對外接口,并盡可能隱藏內(nèi)部的具體細(xì)節(jié)。封裝在對象與外界之間建立了一道屏障,使外界只能通過對象所提供的接口與對象發(fā)生聯(lián)系,而不能直接修改對象的屬性值。
一臺電子皮帶秤擁有多個傳感器,這些傳感器具有相同的屬性,可將這些屬性的數(shù)據(jù)結(jié)構(gòu)抽象出來,封裝在一個類或?qū)ο罄?。這就大大減少了變量的定義、優(yōu)化了數(shù)據(jù)結(jié)構(gòu),提高編程和維護(hù)的效率。
2 數(shù)據(jù)結(jié)構(gòu)的概念
2.1 數(shù)據(jù)(Data)
數(shù)據(jù)是外部世界信息的載體,它能夠被計算機(jī)識別、存儲和加工處理,是計算機(jī)程序加工的原料。計算機(jī)程序處理各種各樣的數(shù)據(jù),可以是數(shù)值數(shù)據(jù),如整數(shù)、實(shí)數(shù);也可以是非數(shù)值數(shù)據(jù),如字符、文字、圖形、圖像、聲音等。
2.2 數(shù)據(jù)元素(Data Element)和數(shù)據(jù)項(xiàng)(Data Item)
數(shù)據(jù)元素是數(shù)據(jù)的基本單位,在計算機(jī)程序中通常被作為一個整體進(jìn)行考慮和處理。數(shù)據(jù)元素有時也被稱為元素、結(jié)點(diǎn)、頂點(diǎn)、記錄等。一個數(shù)據(jù)元素可由若干個數(shù)據(jù)項(xiàng)(Data Item)組成。數(shù)據(jù)項(xiàng)是不可分割的、含有獨(dú)立意義的最小數(shù)據(jù)單位,數(shù)據(jù)項(xiàng)有時也稱為字段(Field)或域(Domain)。
2.3 數(shù)據(jù)對象(Data Object)
數(shù)據(jù)對象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。例如,整數(shù)數(shù)據(jù)對象是{0,±1,±2,±3,…},字符數(shù)據(jù)對象是{a,b,c,…}。
2.4 數(shù)據(jù)類型(Data Type)
數(shù)據(jù)類型是高級程序設(shè)計語言中的概念,是數(shù)據(jù)的取值范圍和對數(shù)據(jù)進(jìn)行操作的總和。數(shù)據(jù)類型規(guī)定了程序中對象的特性。程序中的每個變量、常量或表達(dá)式的結(jié)果都應(yīng)該屬于某種確定的數(shù)據(jù)類型。數(shù)據(jù)類型可分為兩類:一類是非結(jié)構(gòu)的原子類型,如 Logix5000的基本類型(整型、實(shí)型、字符型、布爾型等);另一類是結(jié)構(gòu)類型在Logix5000中也稱結(jié)構(gòu)體(如定義的DZC數(shù)據(jù)類型),它的成分可以由多個結(jié)構(gòu)類型組成,并可以分解。結(jié)構(gòu)類型的成分可以是非結(jié)構(gòu)的,也可以是結(jié)構(gòu)的。
3 開發(fā)背景
沙曲選煤廠2013年新投入使用使用的5臺電子皮帶秤控制系統(tǒng)控制器選用的是AB公司CompactLogix5000系列的1769-L32E,軟件平臺是AB公司Logix5000,版本V19.0。賽摩公司和天地常州科技有限公司第一次開發(fā)了基于Logix5000軟件開發(fā)平臺的電子皮帶秤控制系統(tǒng),但面臨著巨大的挑戰(zhàn),即在不足2個月如時間里,開發(fā)出基于新的軟件平臺且要求優(yōu)于以前結(jié)構(gòu)和算法的電子皮帶秤控制系統(tǒng)。Logix5000開發(fā)環(huán)境里有項(xiàng)功能,可以升級轉(zhuǎn)換Logix500的程序,轉(zhuǎn)換完成經(jīng)過修改調(diào)試可以在Logix5000平臺的CompactLogix控制器上使用,然后,這只是簡單的升級,電子皮帶秤的技術(shù)發(fā)展日新月異,很多新技術(shù)層出不窮,要將一些新技術(shù)應(yīng)用到新開發(fā)的電子皮帶秤PLC程序里,且要求開發(fā)出的電子皮帶秤PLC程序有很好的可維護(hù)性和擴(kuò)展性。
4支持Logix5000開發(fā)平臺的PLC開發(fā)電子皮帶秤的數(shù)據(jù)管理
(1)支持面向?qū)ο蟮淖詣訑?shù)據(jù)管理,用戶編程無需分配變量/記憶內(nèi)存地(常規(guī)PLC是必須的步驟),如定義的變量Rated_Flow_QP屬于內(nèi)部參數(shù)畫面Parameter,可以上傳下載,無需注釋也能看懂,指的是額定流量;
(2)支持各種形式的用戶自定義類型,進(jìn)一步降低了應(yīng)用系統(tǒng)的抽象程度并提高了可維護(hù)性。
(3)對于具有相同屬性的對象,自定義的結(jié)構(gòu)體只需定義一次,如同樣的對象有幾個時,只需將該結(jié)構(gòu)體定義成數(shù)組。
5編程
縷清了電子皮帶秤的數(shù)據(jù)結(jié)構(gòu),抽象出數(shù)據(jù)類型,完成數(shù)據(jù)定義以后,編程變得相對簡單且思路清晰。如對電子皮帶秤的每個傳感器實(shí)時碼值進(jìn)行均值濾波,且濾波深度可以在內(nèi)部參數(shù)表里隨時修改而無需修改源程序,實(shí)現(xiàn)起來只需幾條語句即可完成且運(yùn)行高效。
6 結(jié)束語
高效開發(fā)一套復(fù)雜的電子皮帶秤PLC程序,除了熟悉開發(fā)環(huán)境、熟練開發(fā)語言的語法和語義外,還要有“面向?qū)ο蟆焙汀皵?shù)據(jù)結(jié)構(gòu)”的概念和思想,這樣在PLC程序的設(shè)計上才是最有效的。AB公司的Logix5000平臺自動內(nèi)存管理的面向“對象”技術(shù)完全滿足這一要求,它的面向“對象”技術(shù),可以將電子皮帶秤的數(shù)據(jù)抽象出來,將電子皮帶秤定義成一個數(shù)據(jù)類型;它的自動內(nèi)存管理系統(tǒng)會自動存儲這些數(shù)據(jù)結(jié)構(gòu),開發(fā)者無需知道數(shù)據(jù)具體存放的物理單元,因而開發(fā)者可以把精力集中應(yīng)用在對算法的優(yōu)化及對新技術(shù)的應(yīng)用上。Logix5000平臺自動內(nèi)存管理的面向“對象”技術(shù)在河南中煙南陽卷煙廠電子皮帶秤PLC程序開發(fā)中得到了成功實(shí)踐,開發(fā)的5套電子皮帶秤控制系統(tǒng)運(yùn)行穩(wěn)定,5臺電子皮帶秤已運(yùn)行將近一年,一直保持很高的精度,各項(xiàng)指標(biāo)優(yōu)于預(yù)定目標(biāo)值。
參考文獻(xiàn)
[1]胡云.c++面向?qū)ο蟪绦蛟O(shè)計[M].北京:電子工業(yè)出版社,2008.
[2]張逸群等.PLC編程的面向?qū)ο蟪绦蛟O(shè)計方法.上海:煤礦機(jī)電,2009(05).
[3]段恩澤,肖守柏.數(shù)據(jù)結(jié)構(gòu)(C/C#語言版)[M].北京:清華大學(xué)出版社,2010.