基于LonWorks現場(chǎng)總線(xiàn)的電能檢測系統設計與實(shí)現
摘要:詳細介紹了基于LonWorks現場(chǎng)總線(xiàn)的電能檢測系統的硬件與軟件設計,在軟件設計中采用了面向對象方法,并給出了其問(wèn)題描述與主題層。
本文引用地址:http://dyxdggzs.com/article/255602.htm關(guān)鍵詞:LonWorks 現場(chǎng)總線(xiàn) OOA 電能檢測
電力系統是一類(lèi)特殊的系統,安全性和可靠性要求很高。達到這個(gè)目標的關(guān)鍵是要保證現場(chǎng)設備之間可靠通信,實(shí)現配電網(wǎng)綜合自動(dòng)化?;贚onWorks現場(chǎng)總線(xiàn)的電能檢測系統是配電網(wǎng)綜合自動(dòng)化的一個(gè)子集,它完成電網(wǎng)數據的采集與監控。LonWonrks網(wǎng)絡(luò )是將控制系統接入層域網(wǎng)絡(luò )(LAN),用網(wǎng)絡(luò )節點(diǎn)代替LAN中的工作站,每個(gè)節點(diǎn)可以實(shí)現點(diǎn)到點(diǎn)的信息傳送,具有極其良好的互操作性,從而使整個(gè)網(wǎng)絡(luò )實(shí)現了無(wú)中心的真正的分布式控制模式。因此采用LonWorks總線(xiàn)技術(shù)可以把整個(gè)復雜配電網(wǎng)綜合自動(dòng)系統分解為相對簡(jiǎn)單的多個(gè)子系統。LonWorks網(wǎng)絡(luò )采用ISO/OSI模型的全部7層協(xié)議和面向對象的設計方法。通過(guò)網(wǎng)絡(luò )變量將網(wǎng)絡(luò )通信設計簡(jiǎn)化為參數設置,其通信速率為78.125kbps或1.25Mbps,直接通信距離可達2700m。LonWorks網(wǎng)絡(luò )支持雙絞線(xiàn)、通軸電纜、光纖、無(wú)線(xiàn)射頻、紅外線(xiàn)、電力線(xiàn)等多種通信介質(zhì),被譽(yù)為通用控制網(wǎng)絡(luò )。目前已經(jīng)有2600多家公司不同程序地介入了LonWorks技術(shù),1000多家公司已經(jīng)推出了LonWorks產(chǎn)品,并進(jìn)一步組織起LowMark互操作協(xié)會(huì )。它已被廣泛應用于樓宇自動(dòng)化、家庭自動(dòng)化、保安系統、辦公設備、工業(yè)過(guò)程控制等行業(yè)。
1 基于LonWorks現場(chǎng)總線(xiàn)的電能檢測系統的硬件設計
LonWorks網(wǎng)絡(luò )系統由智能節點(diǎn)組成,每個(gè)智能節點(diǎn)可具有多種功能的I/O功能。在本系統中,基于LonWorks總線(xiàn)的網(wǎng)絡(luò )模型如圖1所示。圖中,神經(jīng)元芯片和通信協(xié)議是LonWorks網(wǎng)絡(luò )的技術(shù)核心。LonWorks網(wǎng)絡(luò )采用LonTalk協(xié)議,該協(xié)議可由Neuron芯片自帶,也可固化在外部存儲器中。神經(jīng)元芯片采用3120。它有3個(gè)8位CPU,第一個(gè)用于完成LonTalk協(xié)議的第一層和第二層功能,成為介質(zhì)訪(fǎng)問(wèn)控制處理器,實(shí)現介質(zhì)訪(fǎng)問(wèn)的控制與處理;第二個(gè)用于完成第三層至第六層的功能,成為網(wǎng)絡(luò )處理器,實(shí)現網(wǎng)絡(luò )的尋址、處理、背景診斷、路徑選擇、軟件計時(shí)和網(wǎng)絡(luò )管理,并實(shí)現網(wǎng)絡(luò )通信控制、收發(fā)數據包等;第三個(gè)是指用處理器,執行操作系統服務(wù)與用戶(hù)程序。芯片中還具有存儲信息緩沖區,用以實(shí)現CPU之間的數據傳輸,并作為網(wǎng)絡(luò )緩沖區和應用緩沖區。圖中,電能檢測儀負責檢測電網(wǎng)的電能參烽,負責采集電網(wǎng)上的電壓、電流、頻率等變量,并能在儀表掉電時(shí)長(cháng)期(時(shí)間由用戶(hù)的要求和系統存儲空量確定)保存數據。其具體要求為:(1)實(shí)時(shí)檢測A、B、C三相電壓、電流的頻率;(3)檢測A、B、C三相有功、無(wú)功功率;(4)支持兩種通信模式:LonWorks總線(xiàn)方式和RS232串行方式;(5)保存整點(diǎn)時(shí)刻的電壓、電流等數據;(6)從儀表第一次工作時(shí)開(kāi)始累計總的正常運行時(shí)間和停電時(shí)間;(9)用數碼管顯示和鍵盤(pán)輸入實(shí)現與用戶(hù)的交互,用戶(hù)可以在現場(chǎng)察看和設置儀表的運行參數和歷史記錄。圖中,電容器組用于對電網(wǎng)的無(wú)功補償,其它現場(chǎng)設備為電網(wǎng)自動(dòng)化的其它智能節點(diǎn)。由于系統主要是監控計算機的軟件編制、上位監控PC機與神經(jīng)元芯片3120的接口設計以及電能檢測儀的設計。下面對這幾個(gè)方面進(jìn)行介紹。
1.1 電能檢測儀的硬件設計
電能檢測儀實(shí)質(zhì)上是本系統的一個(gè)智能節點(diǎn),它主要完成現場(chǎng)電能數據的采集與處理并能根據上位監控機的要求把數據傳送到上位監控機,同時(shí)它也能根據用戶(hù)求設置其工作參數。在本系統中,根據具體的設計要求,電能檢測儀可分為電壓電流檢測模塊、頻率檢測模塊、數據存儲模塊、多路轉換模塊、互感器模塊、LonWorks通信模塊、RS232通信模塊和鍵盤(pán)與顯示接口,其原理如圖2所示。電壓、電流檢測模塊負責實(shí)時(shí)檢測三線(xiàn)電壓、四線(xiàn)電流;頻率檢測模塊負責實(shí)時(shí)檢測A、B、C三相電壓和電流的頻率;RS232通信模塊負責電能檢測儀與外部RS232網(wǎng)絡(luò )和單片機的通信;EEPROM負責長(cháng)期保存用戶(hù)所需的電壓、電流等歷史數據;LonWorks通信模塊負責神經(jīng)元芯片與LonWorks網(wǎng)絡(luò )和單片機通信。RS232通信模塊、鍵盤(pán)與顯示模塊、多路轉換模塊等技術(shù)已經(jīng)非常成熟,本文不再詳述。本文著(zhù)重介紹LonWorks通信模塊和電壓電流檢測模塊。
普通數字電壓、電流表只能測量直流電壓、電流。如果要測量交流電壓、電流,必須增加交流/直流(AC/DC)轉換器。它一般有兩種轉換方式:平均值轉換和真有效值轉換。本系統采用真有效值方法檢測電壓、電流。其核心是TRMS/DC轉換器,這類(lèi)電路現已實(shí)現單片集成化。本系統中有效轉換芯片采用AD公司的AD536,它是一種低功耗、精密的TRMS/DC轉換器;AD轉換芯片采用TI公司生產(chǎn)的TLC1543,它是10位的ADC,最大采樣速率66kbps。電壓電流采樣原理框圖如圖3所示。圖中,MC14052是雙四選一多路模擬開(kāi)關(guān)。89C52的P1.5、P1.6用于選通MC14052的模擬通道。在任一時(shí)刻,只有一相電壓和電流輸入通道被選通。兩片AD536分別對交流電壓、交流電流進(jìn)行真有效值轉換,轉換結果送到串行A/D芯片TLC1543進(jìn)行模/數轉換。89C52的P1.0~P1.4對TLC1543進(jìn)行控制,完成采樣過(guò)程。
LonWorks通信模塊的功能是實(shí)現神經(jīng)元芯片3120與89C52單片機的通信以及神經(jīng)元芯片3120與LonWorks總線(xiàn)的通信。神經(jīng)元芯片支持串行操作和并行操作。對于串行操作,它用得最多的是I2C總線(xiàn)方式。在這種總線(xiàn)方式下,其IO8,IO9端口可被定義成I2C總線(xiàn)接口(此時(shí)IO8為串形時(shí)鐘線(xiàn)SCA,IO9為串行數據線(xiàn)SDA)。在軟件編寫(xiě)上,要首先將IO8,IO9定義為I2C總線(xiàn)方式,定義格式為:IO_8 i2c io_ob_ject_name。
Io_object_name為對該I/O對象的命名。由于IO8、IO9成對使用,故只需要定義IO8.在本系統中,選用的是并行方式。神經(jīng)元芯片提供了專(zhuān)門(mén)的并行口通信協(xié)議,共有三種并行口通信模式,即master、slave A、slave B模式。Master模式是一種智能的并行I/O對象模式,在這種模式下,神經(jīng)元芯片master對從CPU發(fā)起并建立同步操作。從CPU必須是工作于slave A模式或模擬的slave A模式的神經(jīng)元芯片。工作于slave A模式的神經(jīng)元芯片使用了握手信號線(xiàn)HS,HS才數據出現在同一個(gè)時(shí)鐘周期內。雖然這種模式主要用于與master模式的神經(jīng)元芯片接口,但是它同樣適用于外部CPU(非神經(jīng)元芯片)。Slave B模式與slave A模式相似。它們不同之處在于:前者的握手信號出現在不同的時(shí)鐘周期內,而后者出現在同一個(gè)時(shí)鐘周期,在這種模式下,主CPU必須是外部CPU。外部CPU與神經(jīng)元芯片的接口可以使用slave A,也可以使用slave B。在本系統中,89C52與神經(jīng)元芯片3120的通信方式采用并行方式,3120的工作模式為slave A。因為神經(jīng)元芯片3120的握手信號是集電極開(kāi)路,因此需要接一個(gè)上位電阻。89C52的硬件妝口如圖4所示。神經(jīng)元芯片3120并行I/O接口包含8個(gè)I/O數據線(xiàn)和3個(gè)控制線(xiàn)。在slave A模式下,IO0~IO7為數據信號端,IO8為CS#信號端,IO9為R/W#信號端,IO10為HS信號端,CS#信號由80C52驅動(dòng),有效表示正在進(jìn)行數據傳輸,脈沖下沿將數據寫(xiě)入80C52或3120中。R/W#信號在CS#有效時(shí)控制數據的讀寫(xiě),它由80C52控制。HS信號由3120驅動(dòng),它通知80C52、3120正處于忙狀態(tài)。當HS為高電平,表示3120正在讀寫(xiě)數據;當HS為低電平,表示3120數據已經(jīng)處理完畢,可以進(jìn)行下一次通信了。
神經(jīng)元芯片使用令牌心會(huì )協(xié)議實(shí)現多種設備共享總線(xiàn),在任何時(shí)刻只能有一個(gè)設備將數據送到總線(xiàn)上。虛擬寫(xiě)令牌在80C52與3120間進(jìn)行巡回。獲得虛擬令牌的CPU擁有向總線(xiàn)發(fā)送數據垢權力。否則只能從總線(xiàn)上讀取數據。其過(guò)程如下:如果3120具有虛擬令牌,在向總線(xiàn)發(fā)送完一個(gè)字節后HS變?yōu)楦唠娖剑?0C52從總線(xiàn)上取走數據后,HS自動(dòng)變?yōu)榈停ㄓ缮窠?jīng)元芯片韌件完成);如果89C52擁有寫(xiě)令牌,在它使得CS#和R/W#變?yōu)榈碗娖健?120取走數據之前,一直查詢(xún)IO10,如果為低,表示3120已經(jīng)取走數據,可以發(fā)送下一個(gè)字節了。
1.2 LonWorks與PC機硬件接口設計
在本系統中,上位監控PC機與神經(jīng)元芯片的接口是通過(guò)ISA擴展槽完成的,其原理圖如圖5所示。圖中,GAL16V8將ISA總線(xiàn)的地址線(xiàn)A0、A1和寫(xiě)信號線(xiàn)IOW#進(jìn)行譯碼,共有兩路輸出。一路用于選通神經(jīng)元芯片,另一路用于控制地址鎖存器74245。當74245選通時(shí),D0和HS形成直通,PC端程序讀取數據線(xiàn)內容,屏蔽掉D0之外的位后,獲取神經(jīng)元芯片的握手信號HS狀態(tài);當74245未被選通時(shí),進(jìn)行正常的數據傳輸。
PC機中僅使用A0~A9地址位來(lái)表示I/O口地址,即有1024個(gè)口地址。前512個(gè)提供給系統電路板使用,后512個(gè)供擴充插槽使用。當A9=0時(shí),表示為系統板上的I/O口地址;當A9=1時(shí),表示為擴充槽接口卡上的口地址。因此在制作接口電路卡時(shí),其中地址要保證A9=1。在1024個(gè)口地址中,有很多已被IBM或其他廠(chǎng)商制作的各種與主機配套的接口卡占用,有些保留有待今后繼續開(kāi)。因此一般用戶(hù)可以使用的口址范圍是:200~03FF。在本系統中,經(jīng)GAV片譯碼后,神經(jīng)元芯片和地址鎖存器74245的口地址分別為200H和201H。
2 基于LonWorks現場(chǎng)總線(xiàn)的電能檢測系統的軟件設計
本系統的軟件設計主要包括兩部分。第一部分為下位機的軟件設計,它主要完成現場(chǎng)數據收集、處理與存儲;配置3120的工作模式;80C52與3120進(jìn)行通信,把數據傳輸到3120并進(jìn)而傳輸到上位監控機等。在本系統中使用了Neuron C編程語(yǔ)言,現以并行口讀寫(xiě)為例說(shuō)明其特點(diǎn),對并行口讀寫(xiě)首先要用下面的語(yǔ)句聲明并行口對象:
IO_0 parallel slave/slave_b/master io_object_name
Io_in和io_out分別用于對并行口進(jìn)行讀寫(xiě)。為了使用并行口對象,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內部還有許多函數和事件很容易訪(fǎng)問(wèn)神經(jīng)元芯片并行I/O對象,如io_in_ready,io_out_request,io_out_ready等。
第二部分為上位監控機的軟件設計,在本系統的軟件設計采用了面向對象的軟件設計方法。由于本系統是整個(gè)配電自動(dòng)化系統的一部分,因此,它有效地提高了系統的可護性與可擴充性。面向對象的分析是針對問(wèn)題域和系統的,它分為5個(gè)層次,即對象——類(lèi)層、屬性層、服務(wù)層、結構層和主題層。本文將對本系統的問(wèn)題域和主題層進(jìn)行描述。
其問(wèn)題域描述為:(1)擁有一個(gè)用戶(hù)登記界面,用戶(hù)需要輸入現場(chǎng)子站的基本屬性,包括配電名稱(chēng)、儀表號、檢測容量和線(xiàn)路號等;(2)用戶(hù)可以遠程查詢(xún)現場(chǎng)儀表的運行參數,包括量程、輸入回路數、無(wú)功投入門(mén)限、投入延時(shí)、電壓上下限等;(3)用戶(hù)可以遠程查詢(xún)子站月數據、整點(diǎn)數據;(4)用戶(hù)可以遠程設置子站的運行參數;(5)允許在通信中,用戶(hù)隨時(shí)中斷通信;(6)根據用戶(hù)的查詢(xún)條件可以輸出報表,并提供打印功能;(7)能夠維護數據,如導入導出數據;(8)要求保存用戶(hù)的最新參數設置,在每次運行程序時(shí)能夠調入。
根據問(wèn)題域的描述及其對象層、屬性層和服務(wù)層的分析,把其主要層分為用戶(hù)界面、文件系統、報表輸出和通信。我們將注冊表和數據庫歸于文件系統是由于兩者都涉及文件的存儲,其中CregisterTable封裝了與注冊表相關(guān)的API函數和RegCreateKey、RegOpenKey、RegQueryValue等,Cdatabase采用動(dòng)態(tài)性生成技術(shù),以方便數據庫組態(tài)。主題層的描述如圖6所示。對系統進(jìn)行了面向對象分析與設計之后,即可進(jìn)入軟件的具體實(shí)現。本系統用Visual C++6.0開(kāi)發(fā)。由于關(guān)于VC++編程的資料非常多,本文不再對數據庫組態(tài)、界面組態(tài)以及上位機與下位機通信協(xié)議進(jìn)行詳述。
本系統是我們?yōu)閺V東一家公司開(kāi)發(fā)的電能檢測系統,已經(jīng)交付使用。作為整個(gè)電網(wǎng)自動(dòng)化的一個(gè)子集,本系統由于采用了LonWorks總線(xiàn)和面向對象技術(shù),因而容易進(jìn)行擴展和維護。以上詳細地介紹了基于LonWorks的電能監控系統的軟硬件設計,雖然有一定的特殊性,但對于其它的LonWorks總線(xiàn)系統設計仍具有一定的參考意義。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論