随着电力电子技术、微电子技术及现代控制理论的发展,具备高效的驱动性能和良好的控制特性的变频器已在石油、化工、机械电力等各个行业中被广泛应用。而作为用户和被测变频器进行信息交换和功能上接触人机界面也就越发显得重要。人机界面,也就是我们通称的上位机,为用户提供更方便、可靠的控制操作界面,通过现场总线对变频器系统的信号采集与控制,在很大程度上提升了生产效率、减少了运行成本。
Visual Studio.Net 自诞生以来已经逐步成为是Windows环境下最主要的应用开发系统。而C#作为一门新的编程语言,在.Net 平台的强力支撑下逐渐备受软件工程师的青睐。基于Windows操作系统之上,C#语言设计出的界面美观,能够实现多线程和高通讯显示速率的要求。
本文即是在Windows环境下,利用基于Visual Studio.Net面向对象的C#语言进行上位机程序设计,用以实现对变频器系统的信号采集与控制。
1变频器上位机的设计方案
本系统上位机设计要求:为通过友好的人机界面,一方面可以方便、直观地对变频器进行各种操作测试,降低变频器操作专业化程度;另一方面对变频器的运行状态进行实时监控,如运行频率、运行转速、输出电压、输出电流、母线电压等重要参数,还可对各实时参数进行曲线化分析,从而在生产过程中进一步提高生产的安全性和生产效率。
根据设计要求,上位机的设计采用工业控制计算机作为硬件设计平台,工控机能在环境比较恶劣的环境下运行,具备防尘、防潮、防腐蚀、防辐射、抗干扰等能力,对数据的安全性也有所保证。上位机的软件平台采用开发环境为Visual Studio 2010。
信号转换箱为变频器和上位机之间的信号转换桥梁。信号转换箱将变频器的模拟量、数字量以及频率量信号变换为数据采集卡可接收的信号范围。上位机利用工控机数据采集卡的各类库函数进行信号的采集与控制。部分系统结构图如下所示:
图1 系统结构图
上位机与变频器两者之间通过RS-485总线进行通讯,采用Modbus RTU通讯协议,通讯波特率设为38400kb/s。上位机通过通讯连接接口界面,设置串口号和波特率等信息,通讯连接成功后对变频器进行一系列的操作,如各种频率的设定、运行和停机命令、正反转命令等,并接收变频器发来的数据,如各种频率、电流、转速等各种信号,并对其进行显示并实现曲线化。
主程序部分流程图如下图2所示:
图2 主程序流程图
上位机对系统传输的数据实时性要求较高,且根据设计要求需将采集的各类信号进行录波显示,便于用户进行测试与分析,也就是在上位机上实现示波器功能。下面将详细叙述如何实现上位机虚拟示波器的设计。
2变频器上位机虚拟示波器的设计说明
示波器在测控行业运用广泛,根据设计要求,需要在上位机的主界面中观察变频器的各实时参数的实时波形显示,即实现便携式虚拟示波器功能,支持多条通道数据监测,观察变量可选(按地址索引),各实时参数波形可进行Y轴最大值和最小值可调,可随时进行光标查看实时波形数据,可放大、缩小、前推、后退。
NI Measurement Studio 是为Visual Studio .NET环境提供的一个集成式套件,包括各种常用的测量和自动化控件、工具和类库。其面向对象的测量硬件接口、高级的分析库、科学的用户界面控件、测量数据网络化、向导、交互式代码设计器和高扩展性类库等功能,极大的减少了应用程序的开发时间。
利用NI Mesurement Studio示波器控件在Visual C# 实现虚拟示波器功能对于测控领域是一项较有实用价值的工作。Measurement Studio10.0中的WaveformGraph波形控件具有智能的可操控性,使用的功能函数也更加方便且简洁,提高了绘制波形的运行速度。
2.1在Visual C# 中引用Measurement Studio 控件的方法
以下将详细介绍如何在Visual C# 中引用Measurement Studio 控件实现虚拟示波器进行设计开发。
首先安装Measurement Studio10.0,然后打开Visual Studio 2010,新建一个基于C#语言的Windows 应用程序项目,这时在Visual C#工具箱中可以看到Measurement Studio工具栏,如图3所示为Measurement Studio 10.0部分控件:
图3 Measurement Studio 10.0控件
任意添加某个控件于程序界面上,在Visual C# 的解决方案中可看到C#自动引用了以下三个库文件:NationalInstruments.Common ,NationalInstruments.UI ,NationalInstruments.UI.WindowsForms,引入Measurement Studio 中相应的动态链接库(DLL),即可对程序进行编译处理。
在程序入口的代码中添加以下代码:
using NationalInstruments.UI;
2.2WaveformGraph控件的相关设置
本上位机最主要的功能之一应该是能够直观地显示通讯结果,方便用户读数和观察波形。那么首先必须添加可以观察实时数据和波形的控件。
在新建的Windows 应用程序项目的界面上,添加WaveformGraph控件,在同一个WaveformGraph里可以同时画多个波形,也可以定义多个坐标轴。点击鼠标右键,打开waveformPlot集合编辑器,设置多个waveformPlot以及各Plot所对应的X轴和Y轴的显示方式和坐标轴的设置。
X轴和Y轴的图表显示类型共有7种,属性为Mode。常用的三种图表显示类型---- Fixed(固定轴图),StripChart(条状图)和ScopeChart(示波器图)。
本系统使用的X轴显示类型为StripChart,Y轴显示类型为Fixed,代码如下:
xAxis1.Mode = NationalInstruments.UI.AxisMode.StripChart;
yAxis.Mode = NationalInstruments.UI.AxisMode.Fixed;
X轴和Y轴的坐标设置可以在xAxis集合编辑器和yAxis集合编辑器中的Rang选项中设置,也可在程序代码中编写代码,代码如下:
X轴的坐标设置:
xAxis1.Range = new Range(xAxis1.Range.Minimum, xAxis1.Range.Maximum);
Y轴的坐标设置:
waveformPlot1.YAxis.Range = new Range(double Minimum, double Maximum);
2.3WaveformGraph控件的显示动态数据的方法
新建两个Visual C# 中的时钟控件time1,time2。time1用于循环发送通讯读命令到变频器,time2用于接收串口通讯触发函数中的实时数据,在此将详细说明time2的工作内容。
首先设置time2属性Interval=30(ms),用来循环接收数据。然后新建多个接收实时接收数据包的变量。实时接收数据包的变量类型采用动态数组ArrayList类型。使用动态数组ArrayList的优势在于它的灵活性,可动态的增加和减少数据元素、根据接收通讯数据的数量来自动改变数组的大小。
数据接收事件timer2_Tick中部分代码如下:
//动态数组声明:
public static ArrayList GWlist1 = new ArrayList();
public static ArrayList GWlist2 = new ArrayList();
……
//将数据包数据存入GWlist1中
GWlist1.Add(Class1.m_Channel[0]);
GWlist2.Add(Class1.m_Channel[1]);
……
本上位机设计要求同时绘制2条曲线,那么需要申明2个不同的动态数组。同时将不同通道的数据包存入ArrayList动态数组中。
为了在上位机界面的WaveformGraph控件上动态显示接收实时数据,另引入一个用以绘制波形的时钟控件time3,设置其属性Interval=30(ms)。前面我们已设置了X轴显示类型为StripChart,那么在上位机界面中将以滚轴显示方式显示波形,X轴的坐标为系统的相对时间轴。
WaveformGraph控件有8种绘制波形的重载函数,本系统采用PlotYAppend函数,只需读取实际的Y轴的数据值,将新的数据值自动添加在已绘曲线的数据值上。PlotYAppend函数的重载定义表如下:
图4 PlotYAppend函数的重载定义表
绘制波形函数timer3_Tick中部分代码如下:
//申明转接list数组的变量
dataY1 = new double[n];
dataY2= new double[n];
//将GWlist1,GWlist2数组存入转接数组中用以绘制波形
dataY1[k] = Convert.ToSingle(GWlist1[k]);
dataY2[k] = Convert.ToSingle(GWlist2[k]);
//清除当前的GWlist1,GWlist2数组中的数据
GWlist1.RemoveRange(0, n);
GWlist2.RemoveRange(0, n);
//利用PlotYAppend函数绘制多条曲线
waveformPlot1.PlotYAppend(dataY1);
waveformPlot2.PlotYAppend(dataY2);
……
运行程序后波形控件显示效果如下:
图5 程序运行效果图
3结束语
本文详细介绍了变频器上位机的设计方案以及虚拟示波器上位机设计的若干细节和具体实现方法,在实践中很好地结合了Visual C#与NI Mesurement Studio的优点,有效地提高了系统的实用性和可操作性。在实践中取得了立竿见影的效果。
参考文献:
[1] NI Measurement Studio专业版 User Manual
[1] 付强文,张英敏.VC 环境下虚拟仪器界面的制作[J].兵工自动化,2004,23(4).
[2] 孙培清,何丕雁.VC平台下利用CVI控件设计仪器软件的方法研究,2006,11.
[3] karli Watson, Christian Nagel. C#入门经典. 译者:齐立波 黄静,2005
[4] 杨志飞,基于软件Measurement Studio 的数字滤波器的设计与实现[J].电气传动自动化,2007,(5):58-60.
共0条 [查看全部] 网友评论