新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于LonWorks的管控一體化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

基于LonWorks的管控一體化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

作者:北京郵電大學(xué)信息安全中心 時(shí)間:2003-06-12 來(lái)源:電子設(shè)計(jì)應(yīng)用 收藏
摘 要: 本文詳細(xì)介紹了“及收繳費(fèi)管理系統(tǒng)”的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,并以此為基礎(chǔ)討論了基于MIS系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)問(wèn)題,給出了完整的解決方案。

關(guān)鍵詞:;

以現(xiàn)場(chǎng)總線為基礎(chǔ)的
化系統(tǒng)
現(xiàn)場(chǎng)總線是一種新型的以智能傳感器、控制、計(jì)算機(jī)、數(shù)字通信、網(wǎng)絡(luò)為主要內(nèi)容的綜合技術(shù)。一方面,它把單個(gè)分散的測(cè)量控制設(shè)備變成網(wǎng)絡(luò)節(jié)點(diǎn),以現(xiàn)場(chǎng)總線為紐帶,連接成可以相互溝通信息、共同完成自控任務(wù)控制網(wǎng)絡(luò)系統(tǒng),另一方面,它有和計(jì)算機(jī)系統(tǒng)相互通信的協(xié)議標(biāo)準(zhǔn),可以和上層的管理信息系統(tǒng)進(jìn)行集成和互操作。圖1表示了基于現(xiàn)場(chǎng)總線的管控一體化系統(tǒng)的結(jié)構(gòu)。
(1)現(xiàn)場(chǎng)控制層: 由傳感器、執(zhí)行器等智能儀表構(gòu)成。
(2)過(guò)程控制層:完成基于GUI的監(jiān)控功能。
(3)信息管理層:完成信息管理、生產(chǎn)決策等功能。

管控一體化系統(tǒng)設(shè)計(jì)實(shí)例
為了對(duì)管控一體化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行實(shí)踐性的研究,我們?cè)O(shè)計(jì)了和收繳費(fèi)信息管理系統(tǒng)。
系統(tǒng)概述
系統(tǒng)采用TCP/IP(TCP/IP協(xié)議)技術(shù)和LonWorks控制網(wǎng)絡(luò)技術(shù)(LONTALK協(xié)議),使得網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)具有良好的可靠性和可擴(kuò)展性。軟件采用動(dòng)態(tài)數(shù)據(jù)交換技術(shù)(DDE)和Windows可視化編程技術(shù),實(shí)現(xiàn)了實(shí)時(shí)監(jiān)控和信息管理二者的集成和融合,并保證了軟件的可擴(kuò)展性。整個(gè)系統(tǒng)的結(jié)構(gòu)如圖2所示。
整個(gè)系統(tǒng)包括:
TCP/IP網(wǎng)絡(luò)數(shù)據(jù)交換機(jī);數(shù)據(jù)服務(wù)器;自動(dòng)抄表服務(wù)器;LonWorks控制網(wǎng)絡(luò)路由器;抄表控制器;遠(yuǎn)傳表。
抄表控制器的設(shè)計(jì)和實(shí)現(xiàn)
我們利用LonBuilder開(kāi)發(fā)工具進(jìn)行了抄表控制器的設(shè)計(jì),包括硬件和軟件兩部分,硬件以Neuron芯片為核心元件,軟件采用Neuron C語(yǔ)言進(jìn)行編制。抄表控制器能夠?qū)﹄姳磔敵龅臄?shù)字脈沖進(jìn)行實(shí)時(shí)采集,同時(shí)將脈沖數(shù)通過(guò)LonWorks網(wǎng)絡(luò)傳輸給上層的監(jiān)控軟件,另外還可以接受監(jiān)控軟件的命令對(duì)電表進(jìn)行實(shí)時(shí)的關(guān)斷控制。

圖1 基于LonWorks的管控一體化系統(tǒng)的結(jié)構(gòu)

圖2 自動(dòng)抄表及收繳費(fèi)管理系統(tǒng)結(jié)構(gòu)

圖3 自動(dòng)抄表控制器的硬件接口圖

硬件設(shè)計(jì)
Neuron芯片我們選用MC143150,LonWorks收發(fā)器選用FTT-10A,LonWorks通信介質(zhì)選用雙絞線。利用MC143150的通訊口(CP0——CP4)和FTT-10A相連完成與LonWorks網(wǎng)絡(luò)的通信,利用MC143150的I/O口(I/O0——I/O10)與遠(yuǎn)傳表和關(guān)斷開(kāi)關(guān)相連,完成數(shù)據(jù)采集和關(guān)斷控制。圖3為節(jié)點(diǎn)的硬件接口框圖。
軟件設(shè)計(jì)
LonWorks抄表控制器軟件的主要功能是:對(duì)遠(yuǎn)傳電表的輸出脈沖進(jìn)行實(shí)時(shí)采集和計(jì)數(shù),并根據(jù)監(jiān)控程序傳來(lái)的關(guān)斷命令關(guān)斷相應(yīng)電度表的用電電路。軟件中使用了網(wǎng)絡(luò)變量、I/O對(duì)象、自定義事件等,其中的關(guān)鍵點(diǎn)是:
?網(wǎng)絡(luò)變量和EEPROM存儲(chǔ)類型數(shù)據(jù)
抄表值輸出網(wǎng)絡(luò)變量NVO_DATA:這是一個(gè)用戶自定義的結(jié)構(gòu)類型的輸出網(wǎng)絡(luò)變量,它用來(lái)存放與此抄表控制器相連接的最多4個(gè)電度表的脈沖輸出累加值。
關(guān)斷控制器狀態(tài)網(wǎng)絡(luò)變量NVI_STATE:這是一個(gè)整型的標(biāo)準(zhǔn)網(wǎng)絡(luò)變量,它的值反映了四路關(guān)斷控制開(kāi)關(guān)Ki(i=1,2,3,4)的狀態(tài)。NVI_STATE表示為二進(jìn)制數(shù)為0000N4N3N2N1,Ki的狀態(tài)對(duì)應(yīng)NVI_STATE的第i位(Ni) 。當(dāng)Ni為0時(shí)表示Ki 斷開(kāi),相應(yīng)的用電電路斷開(kāi),當(dāng)N1為1時(shí)表示Ki 關(guān)合,相應(yīng)的用電電路通暢??梢酝ㄟ^(guò)此狀態(tài)的變化進(jìn)行用電電路的關(guān)斷控制。
兩個(gè)EEPROM存儲(chǔ)類型的數(shù)據(jù):一個(gè)是用于存儲(chǔ)電脈沖累計(jì)值的unsigned 數(shù)組sum,另一個(gè)是用于保存關(guān)斷狀態(tài)的整數(shù)變量state。將它們放入EEPROM存儲(chǔ)器中,而不是放入RAM中,這樣當(dāng)節(jié)點(diǎn)掉電時(shí),其值不會(huì)丟失。
?I/O對(duì)象
IO0-IO3被定義為leveldetect I/O對(duì)象,用于檢測(cè)遠(yuǎn)傳電表發(fā)來(lái)的脈沖,該對(duì)象可以以最小間隔200ns的頻率將外部TTL電平脈沖的下降沿鎖定。當(dāng)檢測(cè)到脈沖的下降沿時(shí),I/O對(duì)象的值被設(shè)定為1,可以用when語(yǔ)句對(duì)該鎖定值進(jìn)行采樣,采樣的同時(shí)清除該值。
IO4——IO7被定義為bit I/O對(duì)象,用于發(fā)出關(guān)斷命令。
?系統(tǒng)事件和自定義事件
Neuron C語(yǔ)言采用事件驅(qū)動(dòng)機(jī)制,當(dāng)事件被用戶操作或系統(tǒng)命令觸發(fā)時(shí),相應(yīng)的事件程序?qū)⒈粓?zhí)行。
系統(tǒng)reset事件:當(dāng)節(jié)點(diǎn)上電或芯片復(fù)位時(shí)將首先觸發(fā)此事件,程序中用此事件進(jìn)行初始化工作。
脈沖采集事件:當(dāng)I/O0—I/O3的數(shù)據(jù)位(dat—data4)由0變?yōu)?時(shí)將觸發(fā)該事件,用于脈沖的檢測(cè)并進(jìn)行脈沖值的累加。
關(guān)斷事件:當(dāng)NVI_STATE網(wǎng)絡(luò)變量有變化時(shí),意味著有關(guān)斷命令到來(lái),這時(shí)將觸發(fā)關(guān)斷事件,它將根據(jù)NVI_STATE的值置關(guān)斷開(kāi)關(guān)狀態(tài)。
定時(shí)器事件:程序定義了一個(gè)秒計(jì)時(shí)器,用于定時(shí)的將采集數(shù)據(jù)存入EEPROM中。
圖4為軟件流程。

圖4 抄表控制器軟件流程

監(jiān)控程序設(shè)計(jì)
要對(duì)底層遠(yuǎn)傳電表進(jìn)行監(jiān)控,需要具有DDE功能的Windows應(yīng)用程序和支持LonTalk數(shù)據(jù)格式的DDE Server程序,我們選用 C++ Builder 5.0作為監(jiān)控程序的開(kāi)發(fā)語(yǔ)言,應(yīng)用LonManager DDE Sever完成監(jiān)控程序程序和LonWorks網(wǎng)絡(luò)的底層通信。使用C++ Builder的DDE Seesion組件(DdeClientConv,DdeClientItem,DdeServerConv和DdeServerItem),我們進(jìn)行了監(jiān)控程序設(shè)計(jì),它可以實(shí)時(shí)讀取和顯示用戶用電情況,并可根據(jù)用電用戶的交費(fèi)情況計(jì)算資金結(jié)余情況,下傳關(guān)斷命令。
下面是監(jiān)控程序設(shè)計(jì)時(shí)的幾個(gè)關(guān)鍵點(diǎn)。
?建立DDE會(huì)話:使用DdeClientConv組件可以建立Windows應(yīng)用程序和DDE Server的會(huì)話。因?yàn)楸O(jiān)控程序和底層抄表節(jié)點(diǎn)的通訊是通過(guò)LonTalk網(wǎng)絡(luò)變量,所以建立DDE會(huì)話的話題(Topic)是“netvar”,對(duì)應(yīng)的連接函數(shù)調(diào)用形式為SetLink("lmsrvr1","netvar")。連接建立后再用函數(shù)OpenLink()打開(kāi)會(huì)話,這樣DDE會(huì)話初始化工作便完成了。
?脈沖值讀取和用電量的換算:當(dāng)DDE連接建立以后就可以實(shí)時(shí)進(jìn)行數(shù)據(jù)的讀取了,程序通過(guò)查詢的方式對(duì)抄表節(jié)點(diǎn)輸出的電量脈沖累加值進(jìn)行讀取,函數(shù)調(diào)用形式為:DdeClientConv1->RequestData(cn.NVO_DATA)。然后根據(jù)電表的脈沖常數(shù)(PlusConst)進(jìn)行用電量的換算,將折合后的用電量存放到數(shù)組Count中。
?欠費(fèi)關(guān)斷功能:從抄表節(jié)點(diǎn)讀出用電量后和用電用戶的預(yù)存用電量進(jìn)行比較,如果兩者的差值大于給定值(MaxCredit),將對(duì)關(guān)斷網(wǎng)絡(luò)變量NVI_STATE進(jìn)行修改,即向抄表節(jié)點(diǎn)下達(dá)關(guān)斷命令,具體的函數(shù)調(diào)用形式為:PokeData (cn.NVI_STATE, IntToStr(New_State))
?用電情況的顯示和實(shí)時(shí)更新:用電情況分為“個(gè)表監(jiān)控”和“全表監(jiān)控”兩種方式在不同表單頁(yè)上同步顯示出來(lái)。同時(shí)為了實(shí)時(shí)更新數(shù)據(jù),程序中定義了一個(gè)計(jì)時(shí)器組件,當(dāng)計(jì)時(shí)時(shí)間間隔(可在程序中隨時(shí)設(shè)定)到時(shí),將進(jìn)行脈沖的重新讀取、用電量的換算和關(guān)斷狀態(tài)重新指定等。另外,在任何時(shí)間都可以進(jìn)行手動(dòng)的數(shù)據(jù)更新操作。
自動(dòng)抄表及收繳費(fèi)管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
我們?cè)诒O(jiān)控程序的基礎(chǔ)上,用C++ Builder 5.0作為開(kāi)發(fā)工具,利用它提供的數(shù)據(jù)庫(kù)支持功能進(jìn)行了“自動(dòng)抄表及收繳費(fèi)管理系統(tǒng)”的設(shè)計(jì)和實(shí)現(xiàn)。它除了可以完成實(shí)時(shí)監(jiān)控功能外,還可以進(jìn)行用電數(shù)據(jù)的抄收、查詢、打印等信息管理功能。
運(yùn)用C++ Builde的BDE Administrator工具,我們?yōu)檎麄€(gè)系統(tǒng)建立了一個(gè)別名為CheckBD的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中主要含有以下數(shù)據(jù)表:
?用電用戶帳戶數(shù)據(jù)表Account.dbf:存儲(chǔ)用戶基本信息和帳戶信息。
?用電用戶用電數(shù)據(jù)表Check.dbf:存儲(chǔ)用戶的實(shí)時(shí)用電量。
?用電基本信息數(shù)據(jù)表Info.dbf:存儲(chǔ)電價(jià)、利率基本信息等。
?系統(tǒng)合法用戶數(shù)據(jù)表SysytemUser.dbf:存儲(chǔ)系統(tǒng)合法的操作員和管理員信息。
?系統(tǒng)操作記錄數(shù)據(jù)表Operation.dbf:存儲(chǔ)系統(tǒng)每次的使用記錄。
圍繞CheckDB數(shù)據(jù)庫(kù),充分應(yīng)用C++ Builder提供的數(shù)據(jù)庫(kù)組件,包括數(shù)據(jù)訪問(wèn)組件(Data Access)、數(shù)據(jù)源組件(Data Source)和數(shù)據(jù)感知組件(Data Aware)等,就可以實(shí)現(xiàn)此應(yīng)用系統(tǒng)。它除包含了一般MIS系統(tǒng)的基本功能外,還集成了對(duì)遠(yuǎn)傳電表的監(jiān)控和抄收等控制功能。

管控一體化系統(tǒng)開(kāi)發(fā)設(shè)計(jì)的一般方法
通過(guò)“自動(dòng)抄表及收繳費(fèi)管理系統(tǒng)”這一實(shí)例的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,我們探索出了一套基于LonWorks現(xiàn)場(chǎng)總線技術(shù)的管控一體化系統(tǒng)開(kāi)發(fā)設(shè)計(jì)的一般方法和步驟,現(xiàn)總結(jié)如下:
(1)運(yùn)用Neuron神經(jīng)元芯片及其上的專用語(yǔ)言Neuron C進(jìn)行Lonworks網(wǎng)絡(luò)控制節(jié)點(diǎn)的設(shè)計(jì),實(shí)現(xiàn)現(xiàn)場(chǎng)控制層的功能。
(2)利用DDE技術(shù)和支持DDE的高級(jí)語(yǔ)言進(jìn)行Windows下GUI監(jiān)控程序的設(shè)計(jì),完成LonWorks控制信息向信息管理系統(tǒng)的轉(zhuǎn)換和傳遞,實(shí)現(xiàn)過(guò)程監(jiān)控層的功能。
(3)在信息管理層,利用數(shù)據(jù)庫(kù)技術(shù)和可視化技術(shù)進(jìn)行以監(jiān)控程序?yàn)榛A(chǔ)的信息管理應(yīng)用軟件(MIS系統(tǒng))的開(kāi)發(fā),完成控制功能和信息管理功能的集成,實(shí)現(xiàn)信息管理層功能。
通過(guò)這三個(gè)步驟便可以實(shí)現(xiàn)任何圖1所示結(jié)構(gòu)的管控一體化系統(tǒng)。

結(jié)語(yǔ)
本文詳細(xì)敘述了一個(gè)管控一體化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,并以此為實(shí)例進(jìn)行了管控一體化系統(tǒng)設(shè)計(jì)開(kāi)發(fā)一般方法、一般步驟的總結(jié)和討論。運(yùn)用這個(gè)方法可以簡(jiǎn)單、快速、高效地進(jìn)行任何管控一體化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。■

參考文獻(xiàn)
1 陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,1999.
2 陳機(jī)林,陸寶春,張世琪.基于現(xiàn)場(chǎng)總線控制系統(tǒng)的CIPS控制結(jié)構(gòu)的研究[J].南京理工大學(xué)學(xué)報(bào),2000,24.
3 ECHELON.LonBuilder Neuron 3150 Programmer User`s Guide[M]. ECHELON ,1998.
4 ECHELON.Neuron C Reference Guide[M].ECHELON,1997
5 ECHELON.LonManager DDE Server User`s Guide[M].ECHELON,1997.

作者簡(jiǎn)介:馬春光,講師,博士生,主要研究方向:信息安全、現(xiàn)場(chǎng)總線控制技術(shù)、計(jì)算機(jī)應(yīng)用。

電度表相關(guān)文章:電度表原理




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉