摘 要:本文介绍了一种记录发电机故障数据并用波形显示出来的方法。它利用了PLC及其配套的模拟量扩展模块进行数据采集和转换,将故障前后的数据保存在PLC中。在VB环境下实现计算机与PLC的串行通讯,读取PLC中保存的故障数据并用图形显示出来。实践证明,该系统图形界面友好,可靠性高,操作方便,应用效果好。
关键词:故障录波;可编程控制器;串行通讯
Abstract: This paper introduces a kind of method by which we can record fault data of generator and display in figure. It makes use of PLC and its analogue expansion module to collect and convert the fault data and store them in a PLC. Through the serial communication with PLC in VB, the computer read the fault data stored in the PLC and display in figure. It proved that the system has characteristics such as friendly interface, high reliability, easy operation and good application effect etc.
Keywords: Fault record ; PLC ; Serial communication
1. 引言
发电机是电力系统的重要组成部分,它的可靠运行对于保证电力系统的稳定具有重要意义。发电机故障录波装置所记录的数据为工作人员正确分析发电机故障原因,研究事故对策,及时处理事故提供了可靠的依据,同时,根据故障录波数据还可以分析系统的故障参数、各电气量的变化规律,进行故障定位等,这些对于保证电力系统的安全可靠运行起着十分重要的作用。可编程控制器(Programmable Logic Controller,简称PLC)作为工业控制专用的计算机,由于其结构简单、性能优良,抗干扰性能好,可靠性高,在机械、化工、橡胶、电力等行业工业控制现场已日趋广泛地得到应用,成为工控现场进行实时控制的最主要的控制装置。本文介绍一种利用可编程控制器和扩展模拟量模块实现发电机故障录波的方法。
2. 系统的组成和工作原理
系统的组成框图如图1所示,由上位计算机和1套PLC测控系统组成。PLC通过外部变送器、互感器与发电机组相连,发电机机端电压U、定子电流I为三相交流电,分别经电压互感器(PT)和电流互感器(CT)转换成三相100V、5A的二次信号,发电机转子励磁电流经过分流器RS转换成75mV信号,再经过三相功率(含有功、无功)变送器、三相电压变送器、直流电流变送器转换成与其成比例的0~10V电压信号后输入到PLC的模拟量模块。模拟量经过 A/D转换,然后根据互感器、变送器的变换比例计算出机端电压U、转子电流If、有功功率P和无功功率Q的等机组运行量。PLC每隔20毫秒采样一次,每 40毫秒将采样的数据保存到故障数据区中。当发生故障后,PLC记录下故障发生以后的13秒数据,故障数据记录过程结束。当PLC接收到上位机发送来的传送命令时,PLC将记录的故障数据通过串口通讯传送给上位机。上位机将数据完整的接收下来,经过数据处理显示出机组运行量U、If、P、Q、Ug(电压给定)在故障前7秒、后13秒的波形曲线,这样就可以对发电机故障进行分析了。在本系统中,PLC选用SIMATIC S7-226;模拟量模块选用与 S7-226配套的产品EM235;PLC与计算机之间通过PC/PPI电缆连接以串行方式进行通讯。
图1 发电机故障录波系统框图
3. 下位机程序设计
PLC属于下位机,其程序共分为3个模块,它们是初始化子程序、录波子程序和通信子程序。以下将分别说明各模块的设计思想。
3.1 初始化子程序
初始化子程序包括初始化自由口通信参数,设置接收命令RCV启动和结束条件,数据指针赋初值,连接20ms采样、接收和发送中断。
3.2 录波子程序
录波子程序在20ms采样中断中调用,负责记录机组运行量U、If、P、Q、Ug在故障前7秒、后13秒的数据。
在PLC中定义一个连续的数据区VW4000~VW8998,用来保存故障数据。每个运行量的数据占用1000字节的数据块,地址分配如下,U:VW4000~VW4998 If:VW5000~VW5998 P:VW6000~VW6998 Q:VW7000~VW7998 Ug:VW8000~VW8998。
录波子程序每隔40毫秒将采样的数据送到各自的数据块中。为每个数据块定义一个数据指针,其初始值分别指向各数据块的首地址。每传送一次数据,各指针向下移动2字节。故障前7秒数据(350字节)是循环记录的,即如果在故障到来之前数据已存满,各数据指针将重新指向数据块的首地址。定义指针index 用来记录20秒故障数据开始的位置。当故障到来时,数据指针指向故障后13秒数据(后650字节),此时指针index将前7秒数据分为前后两部分,正确的顺序是将前后两部分交换过来。当后13秒数据记录完后,录波子程序结束。程序流程图如图2所示。
3.3 通信子程序
通信子程序负责与上位机通信,将存储在数据区的故障数据通过串口分批传送给上位机。上位机每发送一次传送命令(用整数255表示),PLC在接收中断程序中判断收到的字符是否为传送命令,如果是则将传送命令标志M6.0置位并且在主程序中调用通信子程序。
定义指针tran_pointer用来指向待传送数据的首地址,其初值为&VW4000,即指向数据区首地址。定义变量count用来记录传送的次数。在通信子程序中,首先停止自由口的接收,然后将以指针tran_pointer为首地址,大小200字节的数据传送到发送缓冲区中,接着用发送命令通过串口发送出去。每发送一次数据,将指针tran_pointer向下移动200字节,变量count值加1, M6.0复位。当上位机发送完第 26次传送命令时,PLC中数据区VW4000~VW8998的5000个字节已发送完毕,再将额定电压、额定电流、额定有功功率、额定无功功率和指针 index发送出去, count值清零,指针tran_pointer重新初始化,M6.0复位。至此,一次完整的故障数据传送过程结束。
图2. 录波子程序流程图
4. 上位机程序设计
上位机程序设计是以Visual Basic 6.0 为平台,利用MS Comm控件,以事件驱动方式实现计算机与PLC之间串行通讯,完成数据间的交换。上位机程序包括用户界面设计、通讯和数据处理程序、显示程序等。
4.1 用户界面设计
本系统中,设计了两个窗体(Form1和Form2)。其中Form1为主界面,Form2为波形显示界面。在Form1中设计了一个MSComm控件、一个定时器控件(Timer1)和两个按钮控件(Command1和Command2)。其中Command1是开始按钮,即按下时开始和PLC通讯,读取其中的数据。Command2是显示按钮,即按下时调用窗体Form2,显示每个运行量的波形曲线。在Form2中设计了一个图片框控件(Picture1),用来显示图形。
4.2 通讯和数据处理程序设计
设置Timer1 的Interval属性等于500,MSComm的InputMode属性为二进制方式,RThreshold属性等于5010。定时器每隔500毫秒发送一次传送命令,当发送到第26次时,关闭定时器,这时接收缓冲区将收到5010个字节的数据并触发MSComm的OnComm事件。在OnComm事件子程序中,将接收缓冲区中的数据依次分配到全局数组U_data、If_data、P_data、Q_data和Ug_data 中,再根据各运行量的额定值计算出百分比值。各个数组的前350字节需要根据指针Index进行调整,具体方法是将数组下标范围Index~349的数据移到前面,下标范围1~Index-1的数据移到后面。
4.3 显示程序设计
在窗体Form2的装载事件Form_Load中编写图形显示程序。首先在图片框控件Picture1中设置自定义坐标系。设置ScaleMode属性值等于3,即以象素为度量单位。然后在该坐标系下画出坐标轴。X轴以秒为单位,曲线上两点间的时间间隔是40毫秒,换算成象素等于1.47。Y轴以百分比为单位,每个单位刻度换算成象素等于2.1。最后根据数组U_data、If_data、P_data、Q_data和Ug_data分别画出相应运行量的波形图。以机端电压波形为例,给出编写的程序如下:
Picture1.DrawWidth = 1 ‘线宽为1
Picture1.CurrentX = 0 ‘指定当前坐标的位置
Picture1.CurrentY = U_data(0) * 2.1
For i= 1 To 499 ‘画出曲线
Picture1.Line -(1.47 * i, U_data(i) * 2.1), vbBlue
Next i
5. 系统的运行与实验结果
在系统运行前,要对PLC的通讯参数进行设置,包括波特率、校验方式、数据位位数和停止位位数等,此设置要和上位机一致。在S7-226中使用自由口模式和上位机进行串口通信时,可以通过特殊寄存器SMB30(端口0)或SMB130(端口1)来设定。下面以发电机空载停机实验为例说明系统的运行过程。
当发电机在正常空载下停机时,PLC检测到停机信号,将故障标志置位,然后记录下停机后13秒的数据。运行上位机程序,在主界面上按下“传送”按钮后,上位机开始读取PLC中数据。等到程序提示“数据传送完毕”后,按下“显示”按钮,将弹出“波形显示”窗口如图3所示。从图中可以看出,该曲线较好的反映了发电机停机前后机端电压、励磁电流的变化。
图3 波形显示窗口
6. 结束语
此系统已经成功应用于中、小型同步发电机励磁系统中,通过发电机的动态模拟实验和实际中的应用来看,该系统性能可靠、操作方便、界面友好,能够较好地满足电力系统对于故障记录、故障分析的需要。
一般情况下,采用微机控制或以微处理器为内核的工业嵌入式发电机励磁调节器较容易实现发电机运行参量的故障录波,采用PLC作为发电机励磁调节器的硬件平台,具有应用成本低、运行可靠性高但程序设计难度大的特点,其内部成功地嵌入发电机重要运行参量的故障录波具有较大的实用价值,尤其适用于目前大量开发的中小型水力发电站的水轮发电机组,对于保证发电机组的安全、稳定、可靠运行具有重要的意义。
参考文献:
[1] 西门子自动化与驱动集团 《S7-200中文系统手册》2002
[2] 西门子自动化与驱动集团 《深入浅出西门子 S7-200 PLC》北京:北京航空航天大学出版社 2003.12
[3] 钱雪忠主编《新编Visual Basic程序设计实用教程》北京:机械工业出版社 2004.8
[4] 范逸之,陈立元《Visual Basic与RS-232串行通信控制》 北京:中国青年出版社 2002.1