摘 要: 本文詳細介紹了“自動抄表及收繳費管理系統”的設計和實現過程,并以此為基礎討論了基于LonWorks的管控一體MIS系統的設計和實現問題,給出了完整的解決方案。
以現場總線為基礎的
管控一體化系統
現場總線是一種新型的以智能傳感器、控制、計算機、數字通信、網絡為主要內容的綜合技術。一方面,它把單個分散的測量控制設備變成網絡節點,以現場總線為紐帶,連接成可以相互溝通信息、共同完成自控任務控制網絡系統,另一方面,它有和計算機系統相互通信的協議標準,可以和上層的管理信息系統進行集成和互操作。圖1表示了基于LonWorks現場總線的管控一體化系統的結構。
(1)現場控制層: 由傳感器、執行器等智能儀表構成。
(2)過程控制層:完成基于GUI的監控功能。
(3)信息管理層:完成信息管理、生產決策等功能。
管控一體化系統設計實例
為了對管控一體化系統的設計和實現進行實踐性的研究,我們設計了自動抄表和收繳費信息管理系統。
系統概述
系統采用TCP/IP(TCP/IP協議)技術和LonWorks控制網絡技術(LONTALK協議),使得網絡拓撲結構具有良好的可靠性和可擴展性。軟件采用動態數據交換技術(DDE)和Windows可視化編程技術,實現了實時監控和信息管理二者的集成和融合,并保證了軟件的可擴展性。整個系統的結構如圖2所示。
整個系統包括:
TCP/IP網絡數據交換機;數據服務器;自動抄表服務器;LonWorks控制網絡路由器;抄表控制器;遠傳表。
抄表控制器的設計和實現
我們利用LonBuilder開發工具進行了抄表控制器的設計,包括硬件和軟件兩部分,硬件以Neuron芯片為核心元件,軟件采用Neuron C語言進行編制。抄表控制器能夠對電表輸出的數字脈沖進行實時采集,同時將脈沖數通過LonWorks網絡傳輸給上層的監控軟件,另外還可以接受監控軟件的命令對電表進行實時的關斷控制。
圖1 基于LonWorks的管控一體化系統的結構
圖2 自動抄表及收繳費管理系統結構
圖3 自動抄表控制器的硬件接口圖
硬件設計
Neuron芯片我們選用MC143150,LonWorks收發器選用FTT-10A,LonWorks通信介質選用雙絞線。利用MC143150的通訊口(CP0——CP4)和FTT-10A相連完成與LonWorks網絡的通信,利用MC143150的I/O口(I/O0——I/O10)與遠傳表和關斷開關相連,完成數據采集和關斷控制。圖3為節點的硬件接口框圖。
軟件設計
LonWorks抄表控制器軟件的主要功能是:對遠傳電表的輸出脈沖進行實時采集和計數,并根據監控程序傳來的關斷命令關斷相應電度表的用電電路。軟件中使用了網絡變量、I/O對象、自定義事件等,其中的關鍵點是:
?網絡變量和EEPROM存儲類型數據
抄表值輸出網絡變量NVO_DATA:這是一個用戶自定義的結構類型的輸出網絡變量,它用來存放與此抄表控制器相連接的最多4個電度表的脈沖輸出累加值。
關斷控制器狀態網絡變量NVI_STATE:這是一個整型的標準網絡變量,它的值反映了四路關斷控制開關Ki(i=1,2,3,4)的狀態。NVI_STATE表示為二進制數為0000N4N3N2N1,Ki的狀態對應NVI_STATE的第i位(Ni) 。當Ni為0時表示Ki 斷開,相應的用電電路斷開,當N1為1時表示Ki 關合,相應的用電電路通暢。可以通過此狀態的變化進行用電電路的關斷控制。
兩個EEPROM存儲類型的數據:一個是用于存儲電脈沖累計值的unsigned 數組sum,另一個是用于保存關斷狀態的整數變量state。將它們放入EEPROM存儲器中,而不是放入RAM中,這樣當節點掉電時,其值不會丟失。
?I/O對象
IO0-IO3被定義為leveldetect I/O對象,用于檢測遠傳電表發來的脈沖,該對象可以以最小間隔200ns的頻率將外部TTL電平脈沖的下降沿鎖定。當檢測到脈沖的下降沿時,I/O對象的值被設定為1,可以用when語句對該鎖定值進行采樣,采樣的同時清除該值。
IO4——IO7被定義為bit I/O對象,用于發出關斷命令。
?系統事件和自定義事件
Neuron C語言采用事件驅動機制,當事件被用戶操作或系統命令觸發時,相應的事件程序將被執行。
系統reset事件:當節點上電或芯片復位時將首先觸發此事件,程序中用此事件進行初始化工作。
脈沖采集事件:當I/O0—I/O3的數據位(dat—data4)由0變為1時將觸發該事件,用于脈沖的檢測并進行脈沖值的累加。
關斷事件:當NVI_STATE網絡變量有變化時,意味著有關斷命令到來,這時將觸發關斷事件,它將根據NVI_STATE的值置關斷開關狀態。
定時器事件:程序定義了一個秒計時器,用于定時的將采集數據存入EEPROM中。
圖4為軟件流程。
圖4 抄表控制器軟件流程
監控程序設計
要對底層遠傳電表進行監控,需要具有DDE功能的Windows應用程序和支持LonTalk數據格式的DDE Server程序,我們選用 C++ Builder 5.0作為監控程序的開發語言,應用LonManager DDE Sever完成監控程序程序和LonWorks網絡的底層通信。使用C++ Builder的DDE Seesion組件(DdeClientConv,DdeClientItem,DdeServerConv和DdeServerItem),我們進行了監控程序設計,它可以實時讀取和顯示用戶用電情況,并可根據用電用戶的交費情況計算資金結余情況,下傳關斷命令。
下面是監控程序設計時的幾個關鍵點。
?建立DDE會話:使用DdeClientConv組件可以建立Windows應用程序和DDE Server的會話。因為監控程序和底層抄表節點的通訊是通過LonTalk網絡變量,所以建立DDE會話的話題(Topic)是“netvar”,對應的連接函數調用形式為SetLink("lmsrvr1","netvar")。連接建立后再用函數OpenLink()打開會話,這樣DDE會話初始化工作便完成了。
?脈沖值讀取和用電量的換算:當DDE連接建立以后就可以實時進行數據的讀取了,程序通過查詢的方式對抄表節點輸出的電量脈沖累加值進行讀取,函數調用形式為:DdeClientConv1->RequestData(cn.NVO_DATA)。然后根據電表的脈沖常數(PlusConst)進行用電量的換算,將折合后的用電量存放到數組Count中。
?欠費關斷功能:從抄表節點讀出用電量后和用電用戶的預存用電量進行比較,如果兩者的差值大于給定值(MaxCredit),將對關斷網絡變量NVI_STATE進行修改,即向抄表節點下達關斷命令,具體的函數調用形式為:PokeData (cn.NVI_STATE, IntToStr(New_State))
?用電情況的顯示和實時更新:用電情況分為“個表監控”和“全表監控”兩種方式在不同表單頁上同步顯示出來。同時為了實時更新數據,程序中定義了一個計時器組件,當計時時間間隔(可在程序中隨時設定)到時,將進行脈沖的重新讀取、用電量的換算和關斷狀態重新指定等。另外,在任何時間都可以進行手動的數據更新操作。
自動抄表及收繳費管理系統的設計和實現
我們在監控程序的基礎上,用C++ Builder 5.0作為開發工具,利用它提供的數據庫支持功能進行了“自動抄表及收繳費管理系統”的設計和實現。它除了可以完成實時監控功能外,還可以進行用電數據的抄收、查詢、打印等信息管理功能。
運用C++ Builde的BDE Administrator工具,我們為整個系統建立了一個別名為CheckBD的數據庫,數據庫中主要含有以下數據表:
?用電用戶帳戶數據表Account.dbf:存儲用戶基本信息和帳戶信息。
?用電用戶用電數據表Check.dbf:存儲用戶的實時用電量。
?用電基本信息數據表Info.dbf:存儲電價、利率基本信息等。
?系統合法用戶數據表SysytemUser.dbf:存儲系統合法的操作員和管理員信息。
?系統操作記錄數據表Operation.dbf:存儲系統每次的使用記錄。
圍繞CheckDB數據庫,充分應用C++ Builder提供的數據庫組件,包括數據訪問組件(Data Access)、數據源組件(Data Source)和數據感知組件(Data Aware)等,就可以實現此應用系統。它除包含了一般MIS系統的基本功能外,還集成了對遠傳電表的監控和抄收等控制功能。
管控一體化系統開發設計的一般方法
通過“自動抄表及收繳費管理系統”這一實例的設計和實現過程,我們探索出了一套基于LonWorks現場總線技術的管控一體化系統開發設計的一般方法和步驟,現總結如下:
(1)運用Neuron神經元芯片及其上的專用語言Neuron C進行Lonworks網絡控制節點的設計,實現現場控制層的功能。
(2)利用DDE技術和支持DDE的高級語言進行Windows下GUI監控程序的設計,完成LonWorks控制信息向信息管理系統的轉換和傳遞,實現過程監控層的功能。
(3)在信息管理層,利用數據庫技術和可視化技術進行以監控程序為基礎的信息管理應用軟件(MIS系統)的開發,完成控制功能和信息管理功能的集成,實現信息管理層功能。
通過這三個步驟便可以實現任何圖1所示結構的管控一體化系統。
結語
本文詳細敘述了一個管控一體化系統的設計和實現過程,并以此為實例進行了管控一體化系統設計開發一般方法、一般步驟的總結和討論。運用這個方法可以簡單、快速、高效地進行任何管控一體化系統的設計和實現。
- 計和實現(6377)
相關推薦
評論
查看更多