基于LwIP的APF实时数据采集监控系统设计*
2018-07-30刘帆韩国栋张智雄吴钫
刘帆,韩国栋,张智雄,吴钫
(1.华中科技大学 自动化学院, 武汉 430074; 2.中核兰州铀浓缩有限公司, 兰州 730065)
0 引 言
电力电子技术的普及,为我们带来极大便利的同时,也使得电网的电能质量恶化,尤其对于电能需求大的工业现场,其非线性负载在运行期间会对电网注入谐波,引起周边用户供电质量的恶化,甚至影响电网输配电设备的稳定运行。使用有源电力滤波器(APF),可以有效地改善电网的电能质量。因此,APF供电系统运行时数据的实时采集与监控,对于系统的安全可靠运行,有着非常重要的意义[1-2]。
文献[3]和文献[4]使用主控芯片TMS320C5416的SCI接口,通过RS-232通信方式与上位机直接进行数据交换,对于MAX3232来说,其最高的通信速率为120 kbps,即使满负荷运行,在满足采样精度的前提下,也无法完成从同一个时刻开始对电网侧电压电流等模拟采样值的实时数据采集,并且其通信模式也制约了数据的长距离传输。文献[5]采用STM32作为系统的监控模块,利用自身的AD模块采集需要监控的数据,并通过4个串口进行传输,虽然它的外设丰富,可以支持无线、RS485等多种数据传输显示方式,但是一方面其所获得的模拟数据并非是参与控制的数据,采样精度低,并且没有与主控芯片交互,对于内部的运行数据无法获取,另一方面受限于串口通信速率,其不能获取每一次采样中断中所得到的数据,即使利用外扩的SD卡存储数据,其数据保存量有限并且获取数据操作繁琐,不利于数据实时采集与监控。
针对以上的问题,设计了一个基于LwIP的APF实时数据采集监控系统,通过ARM获取来自主控芯片DSP的实时数据,然后利用ARM自身的网络接口,与上位机进行数据交互,其最大速率可以达到100 M。本系统解决了数据传输实时性的要求,在最大32 kHz控制频率下,可以获取每一个采样中断得到的12个模拟数据以及此时系统的运行状态,同时,来自于上位机的各种控制参数可以由网口写入到下位机中,便于实现在不同控制参数下测试APF系统的性能,并且系统运行的实时数据,可以在上位机中采集,通过对原始数据的分析,可以更加直观地获得系统的控制效果,利于初期设备调试时控制算法的优化。另一方面由于网络数据传输距离不受限制,可以设置不同IP节点,实现多台设备组网,方便应用于工业现场的远程监控[6-7]。
1 数据采集系统整体结构设计
如图1所示,系统的核心芯片为某公司的双核DSP芯片TMS32F28377D,其主要参与系统的电网侧三相电压、电流以及负载三相电流等模拟量的采集,故障信号输入,IO信号输入输出,串口通信,PWM脉冲输出等工作,是系统稳定运行的关键。某公司的LPC4357作为系统的对外通讯模块,其为Cortex-M4内核的ARM芯片,拥有USART,SPI,SSP,CAN以及ENTHERNET等通信模块,由于本系统是选取PC作为显示终端,所以主要使用其SPI,SSP以及ENTHERNET接口,其余预留的通讯接口可作为日后功能扩展。ARM利用外部的以太网物理层芯片DP83848与上位机进行数据交互。
图1 系统整体结构
整个数据采集监控系统运行流程为:板子上电后,存储在ARM中的控制参数通过串口写入到DSP中,在确定传输数据有效后,系统正常工作。首先通过电流霍尔、线性光耦以及电压互感器(Potential Transformer,PT)等传感器将三相电压电流信号统一转换为幅值在一定范围内的电压信号,再经过各种调理电路,转换为最终进入到DSP的模拟信号和数字信号。其中差分的模拟信号作为DSP内部16位精度的AD输入,数字信号(故障信号)先输入到CPLD中,然后通过SPI传输到DSP中。每次进入采样中断,DSP读取AD模块中已经转换完成的12个16位精度的数字量,与获得的故障及系统运行状态信号组成一帧(17个16位数据),在适当时机由SPI接口(16 bit传输模式)传输到ARM中,ARM在接收完这帧数据后就将其传输到上位机中,由上位机对数据进行相应的处理,并显示相应的数据。
2 LwIP网口通讯协议简介
LwIP是由瑞典计算机科学院(SICS)的Adam Dunkels开发的一种轻量级IP协议,它使用C语言编写,通过减少对RAM的占用,使得其在保存TCP协议主要功能的情况下,可以移植到嵌入式系统中使用[8]。并且LwIP提供了多种常用的的协议,例如:IP,UCMP, TCP/IP, ARP, DHCP, HTTP服务器等,这些功能可以通过lwippopts.h中的宏定义来决定功能的启用或者禁用[9]。同时,LwIP不仅能够独立运行,而且可以移植到嵌入式操作系统。正是由于LwIP的这些优点,使得其在嵌入式系统的网络通讯中有广泛的应用。
本系统采用LwIP作为LPC4357与上位机通信的协议,考虑到传输数据的特点,主要使用了TCP/IP与UDP协议。对于一些数据,比如上位机发出的控制指令和控制参数,它们只需要在某一个特定时刻写入到下位机中,但是必须保证下位机接收到了数据,并且数据必须正确,这时使用TCP/IP协议,因为TCP是面向连接的通讯协议,当它发现数据传输出现问题时,会要求重新发送,这样就能保证数据安全准确地发送到目的地。而对于要以32 kHz频率实时更新的系统运行数据,由于实时性的要求采用UDP这种无需接收方确认的无连接通讯协议,可以满足系统实时性的需求[10]。
采用TCP/IP传输数据,上位机作为客户端,下位机(LPC4357)作为服务器,下位机处于监听状态,当上位机发起连接请求时,下位机就与上位机建立好连接,此时就可以进行数据的交互。当接收到TCP/IP协议获取实时数据的指令时,开始传输实时数据,此时采用UDP协议,上位机作为服务器,下位机作为客户端,下位机以32 kHz的频率向上位机的指定端口写入数据帧。
3 采集监控系统软件设计
系统的软件设计主要分为三部分:主控芯片DSP负责整个APF系统的数据获取与控制,同时组织相应数据传输给ARM或者接受来自ARM的数据,DSP控制整个采集系统的时序,只有当DSP数据更新才触发ARM完成一次数据的传输;通讯芯片ARM负责协调组织来自DSP的数据并将其上传到上位机中,并且DSP所需的控制参数也由其存储,在系统上电后写入;上位机采用C#编写了一个数据存储和显示的应用程序,负责对来自ARM的数据进行分析处理,再根据需求显示存储数据。
3.1 数据采集底层软件设计
如图2、图3所示,传输的数据主要分为两种:(1)开机阶段储存于ARM中的控制参数下发与上传及正常运行时控制参数修改后写入ARM的EEROM中;(2)正常运行时采样中断频率下更新的实时数据由DSP经ARM上传到上位机中。
图2 控制参数传输
图3 实时数据传输
由于数据采集系统单位时间内数据更新量大,底层硬件电路要保证在尽可能短的时间内完成系统的数据更新,所以对于底层的软件设计要解决数据更新传输的时序控制问题。图4为实时数据采集监控系统的主要底层软件程序流程图,可以有效满足系统数据量大,实时性要求高的需求。
系统实际分为DSP和ARM中的底层软件设计:
(1)APF中所有核心控制算法均由DSP实现,DSP计算任务艰巨,为了不影响APF系统的整体控制性能,对于实时数据的传输要做到在不过多占用系统主频的情况下将数据组织发送给ARM。本系统采用时间分片的方式,由中断程序的数据更新标志控制DSP主循环中实时数据的组织与发送。当更新标志置1时,执行主循环中数据发送程序,将新的数据压入到SPI的发送FIFO中,然后通知ARM数据已更新,由ARM产生时钟来读取数据,无需等待数据发送完毕,当数据未更新时,则执行主循环中的其它程序。需要注意的是,APF系统运行必须要设定控制参数,所以在系统上电的时候要从ARM中获取当前运行的控制参数值,因此在没有获得参数之前,系统一直处于等待状态。
图4 主要功能程序流程图
(2)ARM是整个采集监控系统的核心,负责数据调度。一方面ARM和上位机交互,根据上位机下发的不同指令一一予以回复,同时还要保证DSP数据更新信号到来时在尽可能短的时间内响应,从DSP端读取数据;另一方面,要保证在系统上电时,能准确地向DSP端写入控制参数,使系统可以正常运行。为了满足对DSP信号的及时响应,在每一个数据更新周期中,只检查一次IP层数据包,查询是否上位机有下发新指令,其余时间都在等待数据更新信号,这样就可以在最短的时间内读取DSP的新数据,避免数据帧的丢失。
3.2 上位机数据采集监控界面设计
上位机采用C#编写监控界面,主要负责下发指令和控制参数以及接收下位机上传的实时数据。监控界面分为连接调试、控制参数、数据采样、系统状态、波形查看5个界面。其中连接调试界面用于设置远程服务器IP以及端口号,连接或者断开服务器,同时可以显示当前连接状态与接收和发送的数据;控制参数界面主要进行下位机控制参数的获取和写入新的参数值;数据采样界面负责下达实时数据采样指令,也可以停止数据上传,使采集监控系统处于待机状态,功率回路采样的电压与电流有效值在此页面显示;系统状态界面用于显示当前APF系统的运行状态,当系统发生故障时,能及时显示并报警;波形查看界面负责所有波形的显示任务,它可以在同一个坐标系下显示同一时刻的一个或者多个波形,波形刷新频率可以根据不同需求进行设置,也能停止数据刷新,查看波形状态。对于每一个波形数据都有对应的按钮可以保存某一时刻开始的系统实时采样数据,数据保存在txt文档中,便于利用分析软件对系统的控制效果进行分析。
4 实验结果
为了验证基于LwIP的APF实时数据采集监控系统的正确性,通过设计的硬件电路,如图5所示,验证电网三相交流电压输入的情况下,控制参数的上传与下发以及上位机实时数据显示与保存等功能(数据仅为验证系统功能)。
图5 硬件电路实物图
如图6的控制参数界面,可以完成系统实际运行时的调试以及各次谐波的补偿控制等需求。通过读取参数按钮可以获取当前系统运行的控制参数,如需修改APF运行的控制参数,将参数填入相应的方框中,按确认修改按钮,则新的控制参数写入到ARM的EEROM中,在系统重新上电后通过SPI传输到DSP中,作为APF系统的运行参数。只有当这些控制参数准确下发到DSP中,系统才能正常运行,完成对应谐波的补偿。
图6 控制参数
图7和图 8为上位机单相线电压与三相线电压的显示波形,通过本系统准确地显示出了DSP采样得到的电网输入三相线电压波形。
图7 输入单相电压的显示波形
图8 输入三相电压的显示波形
通过数据保存按钮,获取VSR_Vab一段时间的实时数据,利用Matlab对其中的3201数据进行波形分析得到图9的5个完整的正弦周期。由于DSP是以32 kHz频率对电网50 Hz的三相电压进行模拟采样,在输入电压的一个周期内采样640~641个点,则对于5个正弦周期有3 200~3 205个数据点。因此验证了系统的实时性,满足了实时数据上传的需求。
图9 Matlab导入数据波形
由于采用的是以太网通讯方式,保证了数据传输的可靠性与稳定性。系统经过长时间不间断的运行测试,底层硬件能稳定工作,实时数据按照设定的时序,通过网络接口准确地上传到上位机中,不会影响到APF系统的正常运行。
5 结束语
阐述了基于LwIP的APF实时数据采集监控系统,本文设计了利用网口传输速率快的特点,结合DSP与ARM之间的SPI数据通信,通过一定的时序控制,实现了上位机获取DSP在32 kHz中断频率下的12个实时采样模拟数据以及此时系统运行状态(3个16位数据),上位机单位时间内所获取的数据量为48万个16位数据,解决了利用RS-232或者RS-485等串口通信数据传输有限的问题,实现了上位机与DSP的数据同步,达到APF系统实时监控以及数据采集的功能。同时,可以通过DSP与ARM之间的通信接口从上位机下发数据到下位机中,实现APF的控制参数更新,便于满足不同谐波补偿比例的需求以及研发初期设备的调试。通过实验验证了该系统的实时性与可靠性。