《武汉工程大学学报》  2013年06期 73-79   出版日期:2013-06-30   ISSN:1674-2869   CN:42-1779/TQ
无功和谐波电流监测系统的开发


0引言Labview 是laboratory virtual instrument engineering workbench(实验室虚拟仪器工程工作台),是由美国国家仪器公司开发的一种用图标代替文本行创建应用程序的图形化编程语言,它是一种数据采集和仪器控制的标准虚拟仪器软件开发平台\[1\].Labview的图形化编程环境可以满足不同的编程需求,相比其他语言程序开发周期较短,且界面简单友好\[2\].在监测系统中,处理的实时性是系统的核心所在.本系统首先通过采样调理电路将电网中的同步电压、电流信号采集到主控制电路中;然后通过串行接口和上位机的连接,利用MODBUS协议(工业现场总线协议)完成上下位机的通信;在上位机中采用基于虚拟仪器(LabVIEW8.2)的编程环境中构建的测试软件对采集得到的无功与谐波电流实时数据信号进行解析和存储,并将解析的结果按照一定的显示形式在虚拟仪器的面板上显示.系统测试软件可以通过对解析结果分析被测产品是否出现故障,并对故障信息进行记录,监测人员可以通过查阅存储的数据对出现故障进行深入分析. 1系统基本原理及硬件架构无功与谐波电流监测系统原理架构如图1所示.硬件系统主要包括以TMS320LF2407A DSP(DemandSide Platform——需求方平台)为核心的主控制器,键盘与显示接口电路,串行通信接口电路,电压及电流采样电路等.图1无功与谐波电流监测系统组成框图Fig.1Composition principles block diagram ofreactive and harmonic current monitoring system图1中UABC和IABC分别为用户端三相电压和电流.采样电路由电压传感器PT、电流传感器CT、信号调理电路及模数转换器组成,主要用于采集电网电压同步信号、三相电压和电流等现场信号.采集到的电压和电流由DSP主控制器进行数据处理,分离出负载电流中的无功和谐波电流,并实现与上位机的通信.2下位机软件设计下位机软件的主要功能是实现无功与谐波电流的检测,并完成与上位机的串口通信.2.1无功与谐波电流检测程序设计无功与谐波电流检测软件流程图如图2所示,主要由同步信号捕获和采样程序、负载电压和电流采样程序、谐波及无功电流计算程序等组成.系统初始化包括对各个不同的寄存器和全局变量设置相应的初始值,初始值设定完毕后等待中断的到来,然后根据不同的中断进入到对应的中断服务子程序;当进入到CAP6中断子程序后,获取有效的同步信号,并取出捕获的当前值用来计算上个周期的时间和对应的频率,然后来判别该频率值.如果检测到超出一定的漂移范围则舍弃当前值,并使用上次周期计算所得的值来进行计算.如果在正常的范围内,就更新当前周期计数值,并且赋值给T1的T1PR寄存器,然后执行中断返回.采样的负载电流数字化是利用DSP内部ADC(模数转换)图2无功与谐波电流检测程序流程图Fig.2Flow diagrame of reactive and harmonic current detection program模块进行A/D转换实现.此DSP的ADC模块采样单极性信号的范围在0~3.3 V,为了与实际电流信号相一致,必须对其采样值进行数字量的处理\[3\].首先对10位精度ADC模块采样所得数据进行移位处理,然后减去抬升电压数字量进行双极性还原,即还原为与实际电流信号.在无功与谐波电流计算程序中,需要使用查表法查出与a相电压同步的正弦及余弦函数值,并利用瞬时无功功率理论中的ip-iq算法来分离三相负载电流中的谐波和无功电流\[4\].第6期王欣,等:无功和谐波电流监测系统的开发武汉工程大学学报第35卷2.2基于MODBUS的下位机通信程序设计Modbus协议中,上、下位机使用主从通讯方式,从站DSP采用中断方式接收和发送数据.由于DSP被设计为一个Modbus的从站,不具备主动通信的能力, 因此从站上电初始化后,会打开串行通信的接收中断,接收上位机传过来的命令与数据\[5\].如图3所示的从站通信流程图,首先进行系统初始化,包括定时器初始化、串口初始化、中断初始化;串口接收中断图3从站通信程序流程图Fig.3Flow diagrame of slave station communicationprogram在初始化完毕后产生,数据一位一位的从接收寄存器中读取出来,并存放到接收SBUF中,然后启动(或者重置)计时器;定时中断产生,将所有接收缓冲区中的数据作为一帧,存放到请求帧缓冲区中,并设置帧缓冲标志;检测到帧缓冲标志,处理请求帧缓冲区,生成响应帧,将响应帧复制到发送缓冲区,并激活发送过程,串口发送中断产生,持续将发送缓冲区中的数据发送到串口.重复以上步骤完成多次的Modbus设备访问.3上位机软件设计上位机软件主要完成串口通信程序及数据存储、显示功能.3.1串口通信程序设计主站通信流程图如图4所示.上位PC机Labview程序中采用下列步骤实现与DSP之间的Modbus串口通信:(1)串口初始化,设置双方波特率、串口通信的端口号、数据位、奇偶校验等.(2)按Modbus协议命令帧的格式将要发送的数据打包.(3)写端口,将打包的数据发送到串口.(4)延时等待,等下位机的应答帧到达串口.(5)读取串口中DSP的应答帧.(6)应答帧解包,将应答帧中有效的数据信息读取出来并显示.Labview有一个串口通信的节点VISA,与其相关的节点共6个,分别实现串口初始化、串口READ/WRITE、串口缓存检测、中断及关闭串口等功能\[6\].在进行串口初始化时,需设置相应的端图4主站通信流程图Fig.4Flow diagrame of master station communicationprogram口号、奇偶校验位、波特率、停止位、数据位等,其Labview框图程序如图5所示.图5串口初始化框图程序Fig.5Frame diagram of serial port initialization上下位机通信发送操作指令时,先将Cluster簇类型的协议命令转换成数据形式,然后计算此数据的CRC校验码,最后合并Modbus协议数据及CRC校验码,生成Modbus数据帧供下位机识别\[6\].从Modbus命令的Cluster结构中提取有效的数据单元并保存在数组中,包括设备功能号、寄存器数量、寄存器起始地址、需要写入的有关离散值及数据.Modbus数据帧中包含了CRC方法的错误检测域,用于检测整个数据帧的内容,主要用在RTU模式\[7\].图6为生成CRC校验码的Labview程序框图.在Labview中实现CRC校验的步骤为:(1)预置一个CRC寄存器,该寄存器的内容全为l (即FFFFH).(2)做异或操作,将CRC寄存器的低8与8位数据相异或,并将结果存放在CRC寄存器.(3)把寄存器的内容向LSB最低位方向移动,用0填补MSB最高位,并检查最低位.(4)若LSB(最低位)为0,则重新执行步骤3.若LSB(最低位)为1,则将CRC寄存器的内容和多项式码A00lHex进行异或.(5)重复步骤3和4,直到8次右移完毕,所有数据进行了处理.(6)重复步骤2~5,进行另外一个8位数据的处理,直到所有的数据被处理完毕.最后得到的CRC寄存器中的内容为对应的CRC码.图6CRC16校验程序框图Fig.6Frame diagram of CRC图7写串口框图程序Fig.7Frame diagram of writing modbus frame to serial interface读串口程序采用直线结构,按照顺序,第1帧通过VISA Read 节点从Byte Count 端口读取了一个字符数,这个字符数实质上是从机号,读取后与指定的实际从机设备相比较,确定是否相符合.第2帧通过VISA Read.vi和VISA Bytes at Serial Port.vi两个端口,读出串口输入缓存中的全部数据.并通过Tick Count.vi 计算出读取的两个命令帧之间的时间间隔,如果超过了给定10 000 ms,程序会报超时错误.另外,还采用一个while 循环结构,用来校验读出的字符串是否正确,如有误重新读取,直到校验码相符,则中止循环.第3帧String 转Modbus Data Unit.vi为添加子函数,它将读出的所有字符串按照Modbus命令帧的格式把从机地址、数据量和功能代码全部分开,为下一步解码提供函数的入口参数.解码数据帧要依据对应的Function Code(功能号),这样才能正确的读取响应帧中的数据,并且把实际读出的寄存器的值返回给用户.此程序实质上是Modbus请求数据帧的反相过程.其Labview框图程序如图8所示.图8响应帧解码框图程序Fig.8Frame diagram of decoding for respondings3.2数据存储及显示利用MySQL(数据库)以及Ni公司附加的工具包SQL Toolkit for Labview对数据进行存储,同时确保Labview能够连接并访问所存储数据的MySQL,对数据进行相应的读取,图9为数据库在一段时间内所储存的数据.图9数据库存储数据显示Fig.9Display of the data in database4系统实验结果为验证无功与谐波电流监测系统的性能,以三相二极管整流桥带灯箱装置作为非线性负载,对所设计系统进行实际运行测试.测试过程中的实时显示界面如图10所示,工作人员可以清楚地观察需监测的电压、电流波形.其中图10(a)为三相二极管整流桥A相输入电流波形,图10(b)为A相电网电压和负载A相电流有功分量,图10(c)为待补偿的指令电流(即负载无功和谐波电流).由此可见,系统能准确检测出负载电流中的有功分量和无功与谐波分量.图10电压和电流波形Fig.10The waveform of voltage and current5结语以上利用DSP控制技术、Labview8.2 软件平台及Modbus总线协议设计一套电网无功与谐波电流监测系统,并通过实验验证了该系统性能.结果表明,该设计不仅能准确检测非线性负载电流中的有功、无功和谐波分量,而且通过上位机能实现被测参数实时数据、数据查询和管理及波形图显示功能,同时还可以调整下位DSP控制参数,以满足工业控制领域的许多要求.致谢刘建老师提供了一些相关的研究资料并对文章提出了中肯的修改意见,在此致以衷心的感谢.