远程电能计量系统的设计与实现

发布时间:2010-10-20 阅读量:1402 来源: 发布人:

中心议题:
    * 电能量远程数据采集系统的设计方案
    * 利用通信控件和线程类实现远程数据采集的方法
    * 利用通信控件和线程类实现远程数据采集的实例

1 引言 
 
随着电力系统自动化程度的提高,以及计算机技术在电力系统中日益广泛的应用。传统的电量计费方式由于其效率低、投入大、可靠性差等弊端,已无法适应新的形势要求。建立一套高精度、稳定可靠、自动化程度高的电能量自动计量系统具有实际应用意义。可靠、及时的将各数据指标量从厂站端送入主站的数据库,供后台计算分析、报表输出,是该系统正常运行的关键。而这部分功能是由远程数据采集子系统所实现的。下面,笔者将结合现场实际情况介绍该子系统的结构和设计方法,并就如何在Delphi5.0下编写该部分的通信软件进行详细阐述。
 
2 系统结构
 
本数据采集子系统由电能表、电能量采集器、前置机、通信通道、数据库服务器等硬件设备组成。系统结构如图1所示。采集器为东方电子CLL064型,通过RS485总线下接多块威胜、恒通等多功能电能表。采集器采集电能表中的各项输出数据(包括分时电量、瞬时量、需量、失压断相量等),将其在存储区中保存一定时间,并随时接受主站命令将数据打包上传。前置机采用一般PC机,通过MoxaC168H/PCI多串口卡扩展至1-10个串口,分别接多个Modem经各种通信通道(包括电力载波、微波、公用电话网等)与采集器进行通信。前置机对采集器上传数据进行相应处理后,通过DelphiBDE(Borland数据库引擎)存入网络数据库服务器(Sybase Adaptive Server 12.1),供其它子系统查询计算。
 
3 通信软件的设计
 
在Windows2000下,用Delphi进行串行口通信程序开发,一般有四种方法:利用windows提供的API函数;嵌入汇编语言直接读写串口;引入第三方的通信控件;利用第三方提供的通信函数。
 
利用Windows API函数读写串口即通过调用API函数中CreateFile、ReadFile、WriteFile等函数操作串口;嵌入汇编要进行中断接口编程,程序员必须掌握丰富的硬件知识。以上两种方法都要求编写大量的底层函数,增大了编程的工作量。而后两种方法对API函数进行了很好的封装,程序员只需设置一些简单的属性,调用少数直观、简易的函数即可完成大部分通信功能。程序员从大量繁琐的底层编程工作中解脱了出来。下面将对如何利用Microsoft ActiveX通信控件MSComm.OCX进行收发数据作详细介绍。
 
3.1 通信控件的引入
要将第三方的控件引入Delphi,首先在菜单项中选中“Component”,再选择“Import ActiveX”,从弹出的“Import ActiveX”窗口中选中“Microsoft Comm Control6.0(Version 1.1)”,最后点击Install按钮进行安装。即可将MSComm控件引入到Delphi5.0中。

 
3.2 通信控件的属性
下面给出了几个基本属性,其它属性请参阅MSDNLibrary VisualStudio 6.0。
属性                     描述
CommPort    设置并返回通讯端口号。
Settings         设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen      设置并返回通讯端口的状态。也可以打开和关闭端口。
Input              从接收缓冲区返回和删除字符。
Output           向传输缓冲区写数据。
 
3.3 通信的实现
    (1)发送数据
 
要想利用控件发送数据只需调用其Output属性向串口中写入数据。例如, 
上述代码将字符串'The Sended String'通过串口1发送出去。又如,

上述代码将二进制流‘123’通过串口1发送出去。
 
    (2)接收数据
 
接收数据按照接收数据的类型分两种形式,即如上述的字符串和二进制流类型。通过改变InputMode属性来区分,当其值为comInputModeText时表示以文本方式取回数据;当其值为comInputModeBinary时表示以二进制方式取回数据。
 
接收数据按照接收的方式也分两种形式。1)事件驱动的方式:当MSComm代表的串口收到Rthreshold个字符时会触发OnComm事件。因此只需通过添加OnComm事件代码来处理所收到的Rthreshold个字符即可实现。2)查询方式:以一定的时间间隔循环检测接受缓冲区,即通过InBufferCount的值来判断是否收到指定的字符数。
 
3.4 通信协议的说明
通信协议采用IEC60870-5-102《电力系统中传输电能量配套标准》。目前,各公司开发的电能量采集装置已逐步向该规约靠拢。下面就该规约的字节、帧格式进行说明。
 
每个字节有一个开始位(二进制0),八个信息位,一个偶校验位和一个终止位(二进制1)。
本规约采用3种基本的数据帧:单字节的E5H帧,10H开头的固定长度帧,68H开头的可变长帧。如下所示:

 
4  程序实例 
 
本软件由两部组成:一部分是主线程,它负责处理主窗口的消息,对用户的输入进行响应。另一部分是通信线程,它负责与采集器的通信,由主线程控制其产生和终止。运行时,主线程根据数据库中的参数定时生成抄表任务,产生通信线程,在这种方式下主线程可控制多个通信线程同时运行,从而实现定时对多台采集器同时抄录。另外,主线程还进行监听服务,网络上的其它工作站籍此可通过TCP/IP套接字与其通信,产生通信线程从而实现随时抄表。下面给出通信线程的实现过程。
 
在Delphi5.0中创建线程只需从Tthread类继承一个自己的线程类,例如:TMyThread=class(TThread)。然后对该类的Execute方法进行重载,通信线程的实现部分就在该Execute方法中。程序流程图如图2所示。

 
部分代码如下:
    procedure TMy Thread.Execute;
    uar
      ...
   





  
5 结论
 
本文介绍了在Delphi5.0下利用ActiveX控件进行串行通信和使用多线程的方法,并给出了IEC102规约的解释。详细阐述了前置机与采集器通信软件的功能和设计方法。作为电量计费系统中的核心部分,本软件在湖北襄樊供电局已得到应用,实际运行表明,该通信方式简单、可靠、稳定,具有很好的可移植性、实时性。可供其它的远程通信系统借鉴参考。
 
6 参考文献
 
1 Marco Cantu.Delphi4从入门到精通.北京:电子工业出版社,1999
2 谢希仁编.计算机网络(第二版).北京:电子工业出版社,1999
3 Charles Petzold著.Windows程序设计(第五版).北京:北京大学出版社,1999
 
相关资讯
佰维存储2025年H1:营收增13.7%,二季度盈利改善显著

佰维存储2025年上半年实现营业收入3,912,336,913.69元,同比增长13.7%。但受行业周期等因素影响,公司报告期内归属于上市公司股东的净亏损为225,795,502.52元,同比由盈转亏;扣除非经常性损益后的净亏损为231,666,270.28元,同样出现同比下滑。业绩压力主要源于行业价格波动及公司战略性投入增加。

工业富联H1净利润突破121亿,AI服务器营收激增60%引领增长

2025年上半年,工业富联(股票代码:601138.SH)实现营业收入3607.6亿元,同比大幅增长35.58%;归属于上市公司股东的净利润达121.13亿元,同比增长38.61%;扣非净利润116.68亿元,同比增长36.73%,核心财务指标均创历史新高。报告期内,公司总资产规模增至3831.28亿元,同比增长20.66%,展现出强劲的资产扩张能力。

应对多轨供电挑战!SGM260320 PMIC提供小型化、高效能解决方案

在追求电子设备小型化、高性能和超低功耗的时代,复杂的多轨电源设计已成为研发的关键挑战。传统分立式电源方案不仅占用宝贵的PCB面积,也增加了设计难度与系统功耗控制的复杂性。固态硬盘(SSD)、现场可编程门阵列(FPGA)、微控制器单元(MCU)系统及便携设备对电源管理集成电路(PMIC)的要求日益严苛:高效转换、低待机功耗、高集成度、精确调压以及智能化管理缺一不可。圣邦微电子(SG Micro)推出的SGM260320 PMIC,正是瞄准这一市场需求,以高度集成、卓越性能和丰富的可配置功能,提供了一站式的高效供电解决方案。

突破中端市场壁垒!TDK超薄IMU让全民享受专业级OIS防抖

随着智能手机影像功能逐渐成为用户核心需求,光学防抖(OIS)技术正面临前所未有的性能挑战。TDK株式会社凭借旗下InvenSense公司15年OIS/EIS技术积累,最新推出的SmartMotion® ICM-536xx系列六轴IMU,正在打破高端防抖技术的成本壁垒。该方案通过突破性的6.4kHz输出数据速率和20位分辨率,首次将专业级防抖性能引入主流移动设备市场。

全球机器人装机量下滑3%,中国份额54%成唯一亮点​

2024年,全球工业机器人市场经历了一次明显的周期性调整。国际机器人联合会(IFR)的初步统计数据显示,全年新装机量约为52.3万台,较上年下滑约3%。这是近年来该市场罕见出现的负增长,反映出多重经济与技术周期叠加下的复杂局面。