下采用多线程实现远程数据采集的方法(华中科技大学电力工程系,湖北武汉)摘要:通过介绍集控式电力专业实验教学系统()上位机、下位机通信软件的设计及实现过程,说明了如何利用通信控件和线程函数实现远程数据采集的方法。关键词:串行通信;多线程;数据库;VC+微机保护中图分类号:TM743;G434文献标识码:B文章编号:003-4897(200)05-0027-03引言实时系统对多任务的要求比较普遍,往往要求后台采集数据,这时就要有一个线程专门负责采集数据,以实现实时多任务的需要。线程是WIN-的唯一执行单位,是为程序分配CPU时间的基本实体。在同一进程中的多个线程,可以共享地址空间和所有的处理器资源,避免了用多进程实现并行性的缺陷。在具体的实现中,采用VC多线程编程,用一个线程专门负责后台远程数据采集,并将采集的数据送入数据库。通信过程可以利用VC提供的通信控件,并将该控件用于线程函数中,从而完成数据采集任务。我们将这一方法成功地用于集控式电力专业实验教学系统()的设计中,取得了很好的结果。下面具体介绍一下这一系统设计过程。整体结构系统由PC机(上位机),微机保护(下位机)等装置组成电力采集论文,其整体结构图如图所示。
集控式电力专业实验室结构图系统通讯数据分为四大类:()遥信量:模拟断路器的位置信号、隔离开关的位置信号、故障情况需快速实时反映,扫描周期(2)遥测量:包括系统电压、电流、有功、无功、频率、时间、变压器油温、保护启动及动作情况等,也需实时反映,但扫描周期稍长。(3)遥控及遥调量:包括远方跳合闸信号、远方修改定值、远方微机保护复位、远方信号复位。(4)可查询的量:包括故障后的电流、电压的数据,远方修改定值记录,远方跳合闸记录等。下位机通过互感器实现数据采集,把采集的有关量转换为数字信号,然后将其与给定值比较,经过一定的控制算法后,给出相应的控制信号进行调控,同时通过串口将数据送至上位机,上位机根据接收到的数据完成遥信、遥调、遥测、遥控四遥功能。由于PC机的串行通信接口RS232采用非平衡方式发送接受数据,传送距离短、抗干扰能力差、传输速度低,不适合远距离传输。而RS485采用平衡方式发送接收数据,传输距离长、抗干扰能力强,因此我们采用MOXA公司的A5产品,实现RS232/RS485信号转换。该系统能频繁模拟实际电力系统多种故障情况,硬件连接简单,采用VC编程和进行数据分析处理。经实际运行表明,系统工作稳定可靠,所得数据自动存入数据库,为后续数据分析带来极大方通信程序设计通讯规约系统通讯规约是参照我国标准的问答式远动规约,信息传送采用异步方式,传送的报文内容以字节继电器RELAY第29PC机发送的报文下位机响应的报文地址部分为一个字节。
上位机给下位机发送的命令中为目的地址,下位机给上位机的响应中为源地址。地址范围为,其中FFH为广播命令电力采集论文,即对各下位机均有效。下位机接到广播命令后不用回送应答报文。报文命令内容报文数据报文类型用来说明报文的内容或类型,规定了不同的代码表示不同类型的报文,报文的具体内容如图4所示。数据长度表明报文中数据区的字节本系统采用8位校验码,利用累加和进行校验。上位机通信软件实现本系统软件由若干个模块组成,现将该程序中关于数据采集的程序设计步骤介绍如下:(l)编写工作线程WIN32应用程序中的线程有两种类型,一种是工作线程,一种是用户接口线程。前者不处理窗口消息,常用于后台执行任务。后者用来处理用户输入和响应由用户产生的消息和事件。本系统编写的工作线程用于后台数据采集。在创建工作线程时,首先编写控制函数-,然后就可以调用微软基本类库(),(),进而完成对线程的操作。控制函数结构如下:()whie(ogica)//ogica代表满足的条件保护数据(l00);();//接收数据处理函数[0];//该系统采用建立数据库,数据表中包括电压量、电流量、整定值等字段,然后VC6.就可以利用ODbC接口很方便地对其进行操作。
(2)创建通信控件在对话框中创建通信控件时,我们只需将其从工具箱中拖到对话框即可,但在线程函数中使用通下采用多线程实现远程数据采集的方法信控件不同于对话框,在此应该首先将.文件和.cpp文件加入到工程中来,然后,使用类的创建函数,函数形式如下:(e,,,,,下位机通信程序流程图其中字母代表各模块:”O”:操作断路器模块;”R”:读实时数据模块”W”:修改整定值模块”F”:复位模块;”Y”:清标志模块;”A”:对时模块最后定义一个全局变量m-Comm,这样就可以利用该变量完成对串口的操作。该通信控件共提供了27个属性,通过对这些属性的设置,可以方便地利用串口进行数据传输。下面是对通信控件进行初始化设置的一段代码:Comm.....(“9600,n,8,1”);//设置通信参数Comm.(1024);//设置输入缓冲Comm.(1024);//设置输出缓冲在此需要指出的是在多线程中最好使用同步类(,,,,CEent)来访问和控制共享数据,这将使程序更加完善、可靠。
下位机通信软件实现下位机利用单片机芯片提供的串行口,经过扩展后实现和上位机的通信。为减少通信操作占用CPU时间,采用中断方式,通讯方式采用方式1,将下位机的通信程序设计成中断处理程序。其流程图如图5。结论本文叙述了的多线程机制,介绍了将VC提供的通信控件用于线程函数的方法,当将这一方法用于集控式电力专业实验教学系统(CEETS)通信软件的设计时,取得了很好的效果。本文还较为详细地介绍了PC机和微机保护通信流程和软件设计过程,从中我们可以看到,利用该技术程序设计简单,便于移植,有着很好的通用性和实用性,对实时监控系统设计有一定的启发意义。参考文献:计算机继电保护原理与技术.北京:水利电力出版社,1992. 编程实例和技巧. 北京:机械工业出版社,1999. 收稿日期: 2000-09-15 作者简介: 杨立环(1977 ),男,硕士研究生,研究方向为继电保护和电力通信; 吴希再(1940 ),男,教授,从事继电保护的研究、开发和教学工作。 data -huan,WU i-zai ( ,,China) : ms coI- . : ; ; ; VC+ ion 继电器RELAY 第29