關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 遠(yuǎn)程電能計(jì)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

遠(yuǎn)程電能計(jì)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2012-09-18 來(lái)源:網(wǎng)絡(luò) 收藏

1 引言

本文引用地址:http://www.butianyuan.cn/article/200979.htm

隨著電力系統(tǒng)自動(dòng)化程度的提高,以及計(jì)算機(jī)技術(shù)在電力系統(tǒng)中日益廣泛的應(yīng)用。傳統(tǒng)的電量計(jì)費(fèi)方式由于其效率低、投入大、可靠性差等弊端,已無(wú)法適應(yīng)新的形勢(shì)要求。建立一套高精度、穩(wěn)定可靠、自動(dòng)化程度高的電能量自動(dòng)具有實(shí)際應(yīng)用意義??煽?、及時(shí)的將各數(shù)據(jù)指標(biāo)量從廠(chǎng)站端送入主站的數(shù)據(jù)庫(kù),供后臺(tái)計(jì)算分析、報(bào)表輸出,是該系統(tǒng)正常運(yùn)行的關(guān)鍵。而這部分功能是由遠(yuǎn)程數(shù)據(jù)采集子系統(tǒng)所實(shí)現(xiàn)的。下面,筆者將結(jié)合現(xiàn)場(chǎng)實(shí)際情況介紹該子系統(tǒng)的結(jié)構(gòu)和設(shè)計(jì)方法,并就如何在Delphi5.0下編寫(xiě)該部分的通信軟件進(jìn)行詳細(xì)闡述。

2 系統(tǒng)結(jié)構(gòu)

本數(shù)據(jù)采集子系統(tǒng)由電能表、電能量采集器、前置機(jī)、通信通道、數(shù)據(jù)庫(kù)服務(wù)器等硬件設(shè)備組成。系統(tǒng)結(jié)構(gòu)如圖1所示。采集器為東方電子CLL064型,通過(guò)RS485總線(xiàn)下接多塊威勝、恒通等多功能電能表。采集器采集電能表中的各項(xiàng)輸出數(shù)據(jù)(包括分時(shí)電量、瞬時(shí)量、需量、失壓斷相量等),將其在存儲(chǔ)區(qū)中保存一定時(shí)間,并隨時(shí)接受主站命令將數(shù)據(jù)打包上傳。前置機(jī)采用一般PC機(jī),通過(guò)MoxaC168H/PCI多串口卡擴(kuò)展至1-10個(gè)串口,分別接多個(gè)Modem經(jīng)各種通信通道(包括電力載波、微波、公用電話(huà)網(wǎng)等)與采集器進(jìn)行通信。前置機(jī)對(duì)采集器上傳數(shù)據(jù)進(jìn)行相應(yīng)處理后,通過(guò)DelphiBDE(Borland數(shù)據(jù)庫(kù)引擎)存入網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器(Sybase Adaptive Server 12.1),供其它子系統(tǒng)查詢(xún)計(jì)算。

3 通信軟件的設(shè)計(jì)

在Windows2000下,用Delphi進(jìn)行串行口通信程序開(kāi)發(fā),一般有四種方法:利用windows提供的API函數(shù);嵌入?yún)R編語(yǔ)言直接讀寫(xiě)串口;引入第三方的通信控件;利用第三方提供的通信函數(shù)。

利用Windows API函數(shù)讀寫(xiě)串口即通過(guò)調(diào)用API函數(shù)中CreateFile、ReadFile、WriteFile等函數(shù)操作串口;嵌入?yún)R編要進(jìn)行中斷接口編程,程序員必須掌握豐富的硬件知識(shí)。以上兩種方法都要求編寫(xiě)大量的底層函數(shù),增大了編程的工作量。而后兩種方法對(duì)API函數(shù)進(jìn)行了很好的封裝,程序員只需設(shè)置一些簡(jiǎn)單的屬性,調(diào)用少數(shù)直觀(guān)、簡(jiǎn)易的函數(shù)即可完成大部分通信功能。程序員從大量繁瑣的底層編程工作中解脫了出來(lái)。下面將對(duì)如何利用Microsoft ActiveX通信控件MSComm.OCX進(jìn)行收發(fā)數(shù)據(jù)作詳細(xì)介紹。

3.1 通信控件的引入

要將第三方的控件引入Delphi,首先在菜單項(xiàng)中選中“Component”,再選擇“Import ActiveX”,從彈出的“Import ActiveX”窗口中選中“Microsoft Comm Control6.0(Version 1.1)”,最后點(diǎn)擊Install按鈕進(jìn)行安裝。即可將MSComm控件引入到Delphi5.0中。

遠(yuǎn)程電能計(jì)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)  www.21ic.com

3.2 通信控件的屬性

下面給出了幾個(gè)基本屬性,其它屬性請(qǐng)參閱MSDNLibrary VisualStudio 6.0。

屬性 描述

CommPort 設(shè)置并返回通訊端口號(hào)。

Settings 設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。

PortOpen 設(shè)置并返回通訊端口的狀態(tài)。也可以打開(kāi)和關(guān)閉端口。

Input 從接收緩沖區(qū)返回和刪除字符。

Output 向傳輸緩沖區(qū)寫(xiě)數(shù)據(jù)。

3.3 通信的實(shí)現(xiàn)

(1)發(fā)送數(shù)據(jù)

要想利用控件發(fā)送數(shù)據(jù)只需調(diào)用其Output屬性向串口中寫(xiě)入數(shù)據(jù)。例如,

遠(yuǎn)程電能計(jì)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)  www.21ic.com

上述代碼將字符串'The Sended String'通過(guò)串口1發(fā)送出去。又如,

遠(yuǎn)程電能計(jì)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)  www.21ic.com

上述代碼將二進(jìn)制流‘123’通過(guò)串口1發(fā)送出去。

(2)接收數(shù)據(jù)

接收數(shù)據(jù)按照接收數(shù)據(jù)的類(lèi)型分兩種形式,即如上述的字符串和二進(jìn)制流類(lèi)型。通過(guò)改變InputMode屬性來(lái)區(qū)分,當(dāng)其值為comInputModeText時(shí)表示以文本方式取回?cái)?shù)據(jù);當(dāng)其值為comInputModeBinary時(shí)表示以二進(jìn)制方式取回?cái)?shù)據(jù)。

接收數(shù)據(jù)按照接收的方式也分兩種形式。1)事件驅(qū)動(dòng)的方式:當(dāng)MSComm代表的串口收到Rthreshold個(gè)字符時(shí)會(huì)觸發(fā)OnComm事件。因此只需通過(guò)添加OnComm事件代碼來(lái)處理所收到的Rthreshold個(gè)字符即可實(shí)現(xiàn)。2)查詢(xún)方式:以一定的時(shí)間間隔循環(huán)檢測(cè)接受緩沖區(qū),即通過(guò)InBufferCount的值來(lái)判斷是否收到指定的字符數(shù)。

3.4 通信協(xié)議的說(shuō)明

通信協(xié)議采用IEC60870-5-102《電力系統(tǒng)中傳輸電能量配套標(biāo)準(zhǔn)》。目前,各公司開(kāi)發(fā)的電能量采集裝置已逐步向該規(guī)約靠攏。下面就該規(guī)約的字節(jié)、幀格式進(jìn)行說(shuō)明。

每個(gè)字節(jié)有一個(gè)開(kāi)始位(二進(jìn)制0),八個(gè)信息位,一個(gè)偶校驗(yàn)位和一個(gè)終止位(二進(jìn)制1)。

本規(guī)約采用3種基本的數(shù)據(jù)幀:?jiǎn)巫止?jié)的E5H幀,10H開(kāi)頭的固定長(zhǎng)度幀,68H開(kāi)頭的可變長(zhǎng)幀。如下所示:

遠(yuǎn)程電能計(jì)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)  www.21ic.com

4 程序?qū)嵗?/p>

本軟件由兩部組成:一部分是主線(xiàn)程,它負(fù)責(zé)處理主窗口的消息,對(duì)用戶(hù)的輸入進(jìn)行響應(yīng)。另一部分是通信線(xiàn)程,它負(fù)責(zé)與采集器的通信,由主線(xiàn)程控制其產(chǎn)生和終止。運(yùn)行時(shí),主線(xiàn)程根據(jù)數(shù)據(jù)庫(kù)中的參數(shù)定時(shí)生成抄表任務(wù),產(chǎn)生通信線(xiàn)程,在這種方式下主線(xiàn)程可控制多個(gè)通信線(xiàn)程同時(shí)運(yùn)行,從而實(shí)現(xiàn)定時(shí)對(duì)多臺(tái)采集器同時(shí)抄錄。另外,主線(xiàn)程還進(jìn)行監(jiān)聽(tīng)服務(wù),網(wǎng)絡(luò)上的其它工作站籍此可通過(guò)TCP/IP套接字與其通信,產(chǎn)生通信線(xiàn)程從而實(shí)現(xiàn)隨時(shí)抄表。下面給出通信線(xiàn)程的實(shí)現(xiàn)過(guò)程。

在Delphi5.0中創(chuàng)建線(xiàn)程只需從Tthread類(lèi)繼承一個(gè)自己的線(xiàn)程類(lèi),例如:TMyThread=class(TThread)。然后對(duì)該類(lèi)的Execute方法進(jìn)行重載,通信線(xiàn)程的實(shí)現(xiàn)部分就在該Execute方法中。程序流程圖如圖2所示。

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

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉