<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于LonWorks的管控一體化系統的設計和實(shí)現

基于LonWorks的管控一體化系統的設計和實(shí)現

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

關(guān)鍵詞:;;

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

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

圖1 基于LonWorks的管控一體化系統的結構

圖2 自動(dòng)抄表及收繳費管理系統結構

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

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

圖4 抄表控制器軟件流程

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

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

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

參考文獻
1 陽(yáng)憲惠.現場(chǎng)總線(xiàn)技術(shù)及其應用[M].北京:清華大學(xué)出版社,1999.
2 陳機林,陸寶春,張世琪.基于現場(chǎng)總線(xiàn)控制系統的CIPS控制結構的研究[J].南京理工大學(xué)學(xué)報,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)介:馬春光,講師,博士生,主要研究方向:信息安全、現場(chǎng)總線(xiàn)控制技術(shù)、計算機應用。

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




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>