《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于LonWorks現場總線的電能檢測系統(tǒng)設計與實現

基于LonWorks現場總線的電能檢測系統(tǒng)設計與實現

2008-10-30
作者:盧世超1, 羅新民1, 劉國海2

?  摘? 要: 詳細介紹了基于LonWorks現場總線的電能檢測系統(tǒng)的硬件與軟件設計" title="軟件設計">軟件設計,在軟件設計中采用了面向對象方法,并給出了其問題描述與主題層。

?  關鍵詞: LonWorks? 現場總線? OOA? 電能檢測

?

?  電力系統(tǒng)是一類特殊的系統(tǒng),安全性和可靠性要求很高。達到這個目標的關鍵是要保證現場設備之間可靠通信,實現配電網綜合自動化?;贚onWorks現場總線的電能檢測系統(tǒng)是配電網綜合自動化的一個子集,它完成電網數據的采集與監(jiān)控。LonWorks網絡是將控制系統(tǒng)接入局域網絡(LAN),用網絡節(jié)點代替LAN中的工作站,每個節(jié)點可以實現點到點的信息傳送,具有極其良好的互操作性,從而使整個網絡實現了無中心的真正的分布式控制模式。因此采用LonWorks總線技術可以把整個復雜配電網綜合自動化系統(tǒng)分解為相對簡單的多個子系統(tǒng)。LonWorks網絡采用ISO/OSI模型的全部7層協(xié)議和面向對象的設計方法。通過網絡變量將網絡通信設計簡化為參數設置,其通信速率為78.125kbps或1.25Mbps,直接通信距離可達2700m。LonWorks網絡支持雙絞線、通軸電纜、光纖、無線射頻、紅外線、電力線等多種通信介質,被譽為通用控制網絡。目前已經有2600多家公司不同程度地介入了LonWorks技術,1000多家公司已經推出了LonWorks產品,并進一步組織起LonMark互操作協(xié)會。它已被廣泛應用于樓宇自動化、家庭自動化、保安系統(tǒng)、辦公設備、工業(yè)過程控制等行業(yè)。

1 基于LonWorks現場總線的電能檢測系統(tǒng)的硬件設計

  LonWorks網絡系統(tǒng)由智能節(jié)點組成,每個智能節(jié)點可具有多種功能的I/O" title="I/O">I/O功能。在本系統(tǒng)中,基于LonWorks總線的網絡模型如圖1所示。圖中,神經元芯片" title="神經元芯片">神經元芯片和通信協(xié)議是LonWorks網絡的技術核心。LonWorks網絡采用LonTalk通信協(xié)議,該協(xié)議可由Neuron芯片自帶,也可固化在外部存儲器中。神經元芯片采用3120。它有3個8位CPU,第一個用于完成LonTalk協(xié)議的第一層和第二層功能,成為介質訪問控制處理器,實現介質訪問的控制與處理;第二個用于完成第三層至第六層的功能,成為網絡處理器,實現網絡的尋址、處理、背景診斷、路徑選擇、軟件計時和網絡管理,并實現網絡通信控制、收發(fā)數據包等;第三個是應用處理器,執(zhí)行操作系統(tǒng)服務與用戶程序。芯片中還具有存儲信息緩沖區(qū),用以實現CPU之間的數據傳輸,并作為網絡緩沖區(qū)和應用緩沖區(qū)。圖中,電能檢測儀負責檢測電網的電能參數,負責采集電網上的電壓、電流、頻率等變量,并能在儀表掉電時長期(時間由用戶的要求和系統(tǒng)存儲容量確定)保存數據。其具體要求為:(1)實時檢測三線電壓Va、Vb、Vc和四線電流Ia、Ib、Ic和Io;(2)實時檢測A、B、C三相電壓、電流的頻率;(3)檢測A、B、C三相有功、無功功率;(4)支持兩種通信模式:LonWorks總線方式和RS232串行方式;(5)保存整點時刻的電壓、電流等數據;(6)從儀表第一次工作時開始累計總的正常運行時間和停電時間;(7)保存月統(tǒng)計數據;(8)保存一個月的電能運行數據;(9)用數碼管顯示和鍵盤輸入實現與用戶的交互,用戶可以在現場察看和設置儀表的運行參數和歷史記錄。圖中,電容器組用于對電網的無功補償,其它現場設備為電網自動化的其它智能節(jié)點。由于系統(tǒng)主要是實現其電能檢測功能,因此本系統(tǒng)需要完成上位監(jiān)控計算機的軟件編制、上位監(jiān)控PC機與神經元芯片3120的接口設計以及電能檢測儀的設計。下面對這幾個方面進行介紹。

?

?

1.1 電能檢測儀的硬件設計

  電能檢測儀實質上是本系統(tǒng)的一個智能節(jié)點,它主要完成現場電能數據的采集與處理并能根據上位監(jiān)控機的要求把數據傳送到上位監(jiān)控機,同時它也能根據用戶要求設置其工作參數。在本系統(tǒng)中,根據具體的設計要求,電能檢測儀可分為電壓電流檢測模塊、頻率檢測模塊、數據存儲模塊、多路轉換模塊、互感器模塊、LonWorks通信模塊" title="通信模塊">通信模塊、RS232通信模塊和鍵盤與顯示接口,其原理如圖2所示。電壓、電流檢測模塊負責實時檢測三線電壓、四線電流;頻率檢測模塊負責實時檢測A、B、C三相電壓和電流的頻率;RS232通信模塊負責電能檢測儀與外部RS232網絡和單片機的通信;EEPROM負責長期保存用戶所需的電壓、電流等歷史數據;LonWorks通信模塊負責神經元芯片與LonWorks網絡和單片機通信。RS232通信模塊、鍵盤與顯示模塊、多路轉換模塊等技術已經非常成熟,本文不再詳述。本文著重介紹LonWorks通信模塊和電壓電流檢測模塊。

?

?

  普通數字電壓、電流表只能測量直流電壓、電流。如果要測量交流電壓、電流,必須增加交流/直流(AC/DC)轉換器。它一般有兩種轉換方式:平均值轉換和真有效值轉換。本系統(tǒng)采用真有效值方法檢測電壓、電流。其核心是TRMS/DC轉換器,這類電路現已實現單片集成化。本系統(tǒng)中真有效轉換芯片采用AD公司的AD536,它是一種低功耗、精密的TRMS/DC轉換器;AD轉換芯片采用TI公司生產的TLC1543,它是10位的ADC,最大采樣速率66kbps。電壓電流采樣原理框圖如圖3所示。圖中,MC14052是雙四選一多路模擬開關。89C52" title="89C52">89C52的P1.5、P1.6用于選通MC14052的模擬通道。在任一時刻,只有一相電壓和電流輸入通道被選通。兩片AD536分別對交流電壓、交流電流進行真有效值轉換,轉換結果送到串行A/D芯片TLC1543進行模/數轉換。89C52的P1.0~P1.4對TLC1543進行控制,完成采樣過程。

?

?

  LonWorks通信模塊的功能是實現神經元芯片3120與89C52單片機的通信以及神經元芯片3120與LonWorks總線的通信。神經元芯片支持串行操作和并行操作。對于串行操作,它用得最多的是I2C總線方式。在這種總線方式下,其IO8,IO9端口可被定義成I2C總線接口(此時IO8為串形時鐘線SCA,IO9為串行數據線SDA)。在軟件編寫上,要首先將IO8,IO9定義為I2C總線方式,定義格式為:IO_8 i2c io_object_name。

  io_object_name為對該I/O對象的命名。由于IO8、IO9成對使用,故只需要定義IO8。在本系統(tǒng)中,選用的是并行方式。神經元芯片提供了專門的并行口通信協(xié)議,共有三種并行口通信模式,即master、slave A、slave B模式。master模式是一種智能的并行I/O對象模式,在這種模式下,神經元芯片master對從CPU發(fā)起并建立同步操作。從CPU必須是工作于slave A模式或模擬的slave A模式的神經元芯片。工作于slave A模式的神經元芯片使用了握手信號線HS,HS和數據出現在同一個時鐘周期內。雖然這種模式主要用于與master模式的神經元芯片接口,但是它同樣適用于外部CPU(非神經元芯片)。slave B模式與slave A模式相似。它們不同之處在于:前者的握手信號出現在不同的時鐘周期內,而后者出現在同一個時鐘周期。在這種模式下,主CPU必須是外部CPU。外部CPU與神經元芯片的接口可以使用slave A,也可以使用slave B。在本系統(tǒng)中,89C52與神經元芯片3120的通信方式采用并行方式,3120的工作模式為slave A。因為神經元芯片3120的握手信號是集電極開路,因此需要接一個上拉電阻。89C52與3120的硬件接口如圖4所示。神經元芯片3120并行I/O接口包含8個I/O數據線和3個控制線。在slave A模式下,IO0~IO7為數據信號端,IO8為CS#信號端,IO9為R/W#信號端,IO10為HS信號端,CS#信號由80C52驅動,有效表示正在進行數據傳輸,脈沖下沿將數據寫入80C52或3120中。R/W#信號在CS#有效時控制數據的讀寫,它由80C52控制。HS信號由3120驅動,它通知80C52、3120正處于忙狀態(tài)。當HS為高電平,表示3120正在讀寫數據;當HS為低電平,表示3120數據已經處理完畢,可以進行下一次通信了。

?

?

  神經元芯片使用令牌心會協(xié)議實現多種設備共享總線,在任何時刻只能有一個設備將數據送到總線上。虛擬寫令牌在80C52與3120間進行巡回。獲得虛擬令牌的CPU擁有向總線發(fā)送數據的權力,否則只能從總線上讀取數據。其過程如下:如果3120具有虛擬令牌,在向總線發(fā)送完一個字節(jié)后HS變?yōu)楦唠娖?80C52從總線上取走數據后,HS自動變?yōu)榈?由神經元芯片韌件完成);如果89C52擁有寫令牌,在它使得CS#和R/W#變?yōu)榈碗娖健?120取走數據之前,一直查詢IO10,如果為低,表示3120已經取走數據,可以發(fā)送下一個字節(jié)了。

1.2 LonWorks與PC機硬件接口設計

  在本系統(tǒng)中,上位監(jiān)控PC機與神經元芯片的接口是通過ISA擴展槽完成的,其原理圖如圖5所示。圖中,GAL16V8將ISA總線的地址線A0、A1和寫信號線IOW#進行譯碼,共有兩路輸出。一路用于選通神經元芯片,另一路用于控制地址鎖存器74245。當74245選通時,D0和HS形成直通,PC端程序讀取數據線內容,屏蔽掉D0之外的位后,獲取神經元芯片的握手信號HS狀態(tài);當74245未被選通時,進行正常的數據傳輸。

?

?

  PC機中僅使用A0~A9地址位來表示I/O口地址,即有1024個口地址。前512個提供給系統(tǒng)電路板使用,后512個供擴充插槽使用。當A9=0時,表示為系統(tǒng)板上的I/O口地址;當A9=1時,表示為擴充槽接口卡上的口地址。因此在制作接口電路卡時,其口地址要保證A9=1。在1024個口地址中,有很多已被IBM或其他廠商制作的各種與主機配套的接口卡占用,有些保留有待今后繼續(xù)開發(fā)。因此一般用戶可以使用的口地址范圍是:200~03FF。在本系統(tǒng)中,經GAV片譯碼后,神經元芯片和地址鎖存器74245的口地址分別為200H和201H。

2 基于LonWorks現場總線的電能檢測系統(tǒng)的軟件設計

  本系統(tǒng)的軟件設計主要包括兩部分。第一部分為下位機的軟件設計,它主要完成現場數據收集、處理與存儲;配置3120的工作模式;80C52與3120進行通信,把數據傳輸到3120并進而傳輸到上位監(jiān)控機等。在本系統(tǒng)中使用了Neuron C編程語言,現以并行口讀寫為例說明其特點,對并行口讀寫首先要用下面的語句聲明并行口對象:

  IO_0 parallel slave/slave_b/master io_object_name

  Io_in和io_out分別用于對并行口進行讀寫。為了使用并行口對象,io_in和io_out需要定義parallel_io_interface結構,如下所示:

  Struct parallel_io_interface{

  Unsigned length;        //length of data field

  Unsigned data[maxlength];    //data field

  }pio_name;

  Neuron C內部還有許多函數和事件很容易訪問神經元芯片并行I/O對象,如io_in_ready,io_out_request, io_out_ready等。

  第二部分為上位監(jiān)控機的軟件設計,在本系統(tǒng)的軟件設計采用了面向對象的軟件設計方法。由于本系統(tǒng)是整個配電自動化系統(tǒng)的一部分,因此,它有效地提高了系統(tǒng)的可維護性與可擴充性。面向對象的分析是針對問題域和系統(tǒng)的,它分為5個層次,即對象——類層、屬性層、服務層、結構層和主題層。本文將對本系統(tǒng)的問題域和主題層進行描述。

  其問題域描述為:(1)擁有一個用戶登記界面,用戶需要輸入現場子站的基本屬性,包括配電名稱、儀表號、檢測容量和線路號等;(2)用戶可以遠程查詢現場儀表的運行參數,包括量程、輸入回路數、無功投入門限、投入延時、電壓上下限等;(3)用戶可以遠程查詢子站月數據、整點數據;(4)用戶可以遠程設置子站的運行參數;(5)允許在通信中,用戶隨時中斷通信;(6)根據用戶的查詢條件可以輸出報表,并提供打印功能;(7)能夠維護數據庫,如導入導出數據;(8)要求保存用戶的最新參數設置,在每次運行程序時能夠調入。

  根據問題域的描述及其對象層、屬性層和服務層的分析,把其主題層分為用戶界面、文件系統(tǒng)、報表輸出和通信。我們將注冊表和數據庫歸于文件系統(tǒng)是由于兩者都涉及文件的存儲,其中CregisterTable封裝了與注冊表相關的API函數如RegCreateKey、RegOpenKey、RegQueryValue等,CDatabase采用動態(tài)生成技術,以方便數據庫的組態(tài)。主題層的描述如圖6所示。

?

?

  對系統(tǒng)進行了面向對象分析與設計之后,即可進入軟件的具體實現。本系統(tǒng)用Visual C++6.0開發(fā)。由于關于VC++編程的資料非常多,本文不再對數據庫組態(tài)、界面組態(tài)以及上位機與下位機通信協(xié)議進行詳述。

  本系統(tǒng)是我們?yōu)閺V東一家公司開發(fā)的電能檢測系統(tǒng),已經交付使用。作為整個電網自動化的一個子集,本系統(tǒng)由于采用了LonWorks總線和面向對象技術,因而容易進行擴展和維護。以上較詳細地介紹了基于LonWorks的電能監(jiān)控系統(tǒng)的軟硬件設計,雖然有一定的特殊性,但對于其它的LonWorks總線系統(tǒng)設計仍具有一定的參考意義。

?

參考文獻

1 Echelon Corporation.LonMaker for Windows user′s guide. Version 1.0,1998

2 Echelor Corporation.Neuron C Reference Guide,1995

3 陽憲惠.現場總線技術及其應用.北京:清華大學出版社,1999

4 鄭 章,陳 剛,張勇等.Visual C++6.0數據庫開發(fā)技術. 北京:北京機械工業(yè)出版社,1999

5 David J.Kruglinski.Visual C++技術內幕(第四版).北京:清華大學出版社,1999

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。