1 引言
在飞行控制系统半物理仿真试验中.为了向飞控计算机提供可靠的电源以及进行被测设备耐压扰动性能的测试,选用高可靠的程控电源是十分必要的。Namisoft选用可编程电源,采用串口通讯方式,运用一种“时间片轮转与事件触发相结合”的方法在LabVIEW环境下开发了监控软件。利用程序控制电源,可实时监测电源状态,使电压、电流等参数在限定范围内任意可调并快速响应。该电源监控软件作为单独一功能模块嵌入到无人机半物理仿真试验综合测试系统中.完成了飞控计算机的电压稳定供给。
2Namisoft选用可编程电源及其与上位机的通讯
电源的选择除了考虑其自身的性能好坏。价格因素外。还要考虑其与计算机通信的难易程度。Namisoft本次选用可编程直流电源具有高性能、大功率、高精度的特点;并且配备多种通信接口,可方便地实现计算机程序监控。上位机要向电源发送控制命令。并采集电压电流及状态数据,就要解决二者的通信问题。该电源配备USB、GPIB、RS232等通信接口,虽然USB口对于计算机来说比较常见。传输速率也很快,但编程实现监控比较复杂,开发周期长,不是一个合适的选择;GPIB传输速率非常快,hbVIEW也提供的GPIB函数模块,编程实现很方便,但GPIB接口卡价格昂贵,在不需要高速通信的电源控制软件中配备GPIB接口卡显然提高了开发成本。RS232串口通信在LabVIEW开发环境可以方便实现,对计算机硬件资源,只需要一个串口,在软件集成时可以节省出更多的硬件资源供其他功能模块来使用,并且考虑到电源部分的附加硬件成本。只需要配备一个串口电平转换开关(13'6153的串121输出为7TTL电平),价格也不是很昂贵。串13最大的不足在于传输速率最大是38 400 bps。但是电源监控软件在此综合测试系统中对实时性要求并不是非常高。百毫秒级的响应速度即可满足需求。综合以上考虑,选择RS232串口连接计算机.实现电源的程序控制与观测;向下连接被测设备,这里主要指飞控计算机,给被测设备供电及进行电压测试。采用这种上位机控制电源的方案,主要是因为程序控制比较灵活。例如试验人员需要观测电压电流的变化走向时.电源面板上的数字显示就满足不了需求,而通过计算机采集数据,程序绘制曲线.就可以很好地完成任务。
3 SCPI命令
SCPI命令(Standard Commands for Programmable Instm.ments)是针对RS232串13和GPIB接口的通用命令语言。IEEE488.2中规定它位于硬件层之上.可实现不同仪器的相同的控制功能。Namisoft选用的程控电源的控制与监测完全使用SCPI命令。常用的SCPI命令在很多利用串口或GPIB接口进行通信的仪器使用手册中均有介绍,需要注意的是:所发送的命令和电源返回的数据都是以字符型数组进行存储。程序接收到电源返回的数据时,需要进行字符型到数值型的转换,同样发送的设置值也要进行相反的处理。SCPI命令语言是一个庞大的语言系统。
4软件开发平台LabVIEW
LabVIEW是一个革命性的图形化编程平台,它在数据采集(DAQ)、虚拟仪器软件框架(VISA)、通用接口总线(GPIB)及仪器控制数据分析和图表显示方面都具有强大的优势。LabVIEW成为测量与自动化解决方案的实际工业标准,其在串行控制、图表显示和虚拟仪器软件框架的优势都成为程控电源监控软件开发首选的重要原因。因此Namisoft设计采用了LabVIEW作为软件开发平台。
5 Namisoft电源监控程序的开发
5.1软件交互界面设计及功用
软件界面的设计除满足应用需求,还应该美观以及便于操作。软件交互界面如图1所示。
图1 可编程电源控制软件界面
显示控件:一个曲线显示窗口,以曲线方式显示实际的电压、电流值(刷新周期为1 S);两个旋钮旁的4个数字框指示当前的实际电压.电流和设定电压电流值;6个指示灯指示电源状态(过压、过温、恒压、恒流)和串口状态(读、写);还有一个数字框在快速设置栏一侧.与单选按钮配合显示设置电压值或电流值。
主要控制件:2个旋钮分别用于电压和电流的设定,用户可以随时旋转电压设定与电流设定调节旋钮.即可设定电源的期望电压电流值;3个开关中的第1个控制电源的控制方式
(电源面板控制和上位机控制),第2个控制电源的输出(有和无),最后一个是控制过压保护是否有效;快速设置栏有3种设置方式,第l栏是常用数值的设置(6个)。单击按钮即可同时设置电压电流,右键单击可进行常用数值的更改。第2栏可以设置电压扫描,使电压按设定延时连续变化也可单步运行,可完成电压波动测试。第3栏与单选按钮配合用于精确设定电压和电流值。此功能相当两个旋钮的功能,只是后者设定带小数的值时不便;还有界面顶部的使能按钮控制程序的停止。串口参数的设置,图表的保存。单击配置按钮如图2所示可进行串口设置。
图2 串口配置软件界面
5.2通讯内容
上位机和电源之间采用SCPI命令作为通讯内容即可完成对程控电源的控制与监测。主要用到4类命令:电压电流设置命令;电压电流值(包括实际值和设置值)查询命令;电源状态查询命令;输出设置命令。如电压设置12V命令:Voltage 12;电流实际值查询命令:Meas:cut'r?:输出允许命令:Output 1。其它具体命令格式可查看IEEE488.2。
5.3Namisoft的程序设计思想
程序设计中运用了时间片轮转与事件触发相结合的思想。该方法即可使程序高效地运行。又保证事件可靠得到响应,同时各事件还可在异步中做到同步。,耐间片轮转就是将同定的时间段分割成均匀的子段。在各子时间段分别去完成不同的任务。本程序中将l s均匀分成20份,如第1个时间段去完成电压设置任务;第2个时间段去读取电压设置值:第3个时间段读电压实际值;第10个时间段完成电流设置任务;第11个时间段读取电流设置值;第12个时间段读取电流实际值;第13个时间段完成读取电源状态;第20个时间段将读取电的电压和电流值画成曲线。并将时间段计数器清零,重新开始下一次时间片轮转。时间片轮转的方法便于插入其他事件,有利于程序的扩展。时间片轮转时序如图3所示。事件触发思想是各个事件发生时触发一个布尔型变量(如其值由False变为True)但该事件并不是立刻得到相应,而是在特定的时间段去完成。如旋动了电压设置旋钮则触发了电压设置事件,当第一时间片到来时则完成电压设置任务并将该事件触发标志清掉。当下一个时间轮回到来时该事件不再响应,这样使得程序的效率提高。再如在常用设置栏中点击了任意一个快速设置按钮则电压和电流设置事件同时得到触发。这两个事件分别在第1个时间片和第10个时间片得到响应。其他事件如串121设置.输出的开和关,面板和PC机控制的选择等要求实时高并不占用太多响应时间的事件则立刻得到响应。事件触发和时间片轮转相结合的思想可使占用串13的资源和处理时间的任务可靠得到响应。不会产生争抢串口冲突和通讯数据的丢失(有固定的时间段去完成相应的任务),又可保证处理时间快不占用串口资源的事件实时响应。能够实现异步事件的秒级同步(1 s)。
图3 时间片轮转时序
5.4Namisoft在程序设计中的创新点
5.4.1 时间片轮转与事件触发的思想该处理事件的方法类似定时查询与中断相结合的方式,有利于串121资源的分配.使得不同任务的处理获得不同的优先级。实时性高处理速度快不占用串口资源的任务得到即时处理;而占用串口资源实时性要求不高的任务则安排在固定的时间段去处理(前提是该事件得到触发),保证了各任务的有序完成。该思想对其他测控软件的开发具有一定参考价值。
5.4.2 WaveformGraph运用中的创新
WaveformGraph控件多用于完成信号的静态显示。通常是把测量的数据生成一个数组然后把数组中的数据一起送到Graph中显示。也可称其是事后记录图。如果想把动态更新的数组送到Graph中动态的显示则出现两种情况。一是当其Scale属性设置为Autoscale时产生横坐标不断压缩曲线不断变得紧密,不便于曲线的观察(在有限的窗口显示全部曲线),在图4中分别显示了38 s时和285 fl,时的更新情况。
图4 Graph的Scale属性为Autoscale时的曲线
二是当其Scale属性设置为非Autoscale时,数据点少时曲线还动态更新.当数据点数超过横坐标范围时曲线的更新就无法看到。在图5中分别显示了40 s时和90 s时的曲线更新情况。60 s以后的更新看不到了。
图5 Graph的Scale属性为非Autoscale时的曲线
针对WaveformGraph在曲线动态显示时的缺陷在程序中对Graph控件的3个属性:XScale.minimum、XScale.maximum和XScale.markerval[]进行了实时编程。令XSeale.minimum等于时间片轮回的次数,XScale.maximum在前者的基础再加60,XScale.markerval[]qb的数值为时间片轮回的次数依次递加10。这样显示的曲线既能实时更新。横坐标又不产生压缩。横坐标的时间轴和曲线完全同步。这和传统的示波器显示完全一样。在图6分别显示了60 s以内和60 s以外的曲线更新情况,可以看出曲线在实时更新,背景栅格不动.横坐标时间在同步更新,动态效果很好。
5.4.3 串口流量控制与收发同步的实现
上位机对程控电源的测控是通过串口发送SCPI命令实现的。因此要求串口的收发要有同步控制以及必要的流量控制,这样才能避免命令冲突和查询的失步。如发送了查询电压实际值命令这时就不允许发送其他命令。直到读回实际值之后才可以再发其他命令。否则就会造成读取数值有误或造成接收缓冲区的内容被冲掉。
流量控制与收发同步实现是通过查询允许发送标志和判断串口接收缓冲区是否为空实现的。当要发送控制命令之前先查询一下允许发送标志是否为真值接收缓冲区是否为空。如同时为真值则发送,否则不发送,一旦发送成功置允许发送标志为假。当电源回送到数据缓冲区的相应数据被读回才置允许发送标志为真同时清空接收缓冲区。这样做保证了收发之间一一对应,同时又控制了串口流量,使得对程控电源的测控极为准确。
图6 Graph创新应用时的曲线
5.4.4 电源回读数据可靠性保证
时间片的轮转以1 s为周期这决定了实时曲线的更新速度是l 8,但是对电源的操作往往在1 s之内完成多次。如果没有电源回读数据的可靠性验证就可能造成显示曲线和当前实际值的误差。为了保证回读数据的正确,可以在均间隔的多个时间片内去读取数据(在无任何操作的时间片内均可去完成读取操作),然后将多个数据进行比较,取出现机率大并且靠近曲线刷新时间片的数据作为正确设置值。然后送曲线窗口显示。
5.5Namisoft开发主要程序的流程
程序的主要部分是时间片的轮转和事件的触发部分。两者结合完成电源的测控。在时间片轮转部分中主要完成“读”和“写”,而“读”和“写”操作是否进行及其操作内容是由事件触发的;当然还包括部分非触发的读写操作,如在固定时间片内的电压及电流设置值和实际值的查询和电源状态查询。还有实时事件如选择电源前面板控制和上位机控制;电源输出开关;过压保护允许等在则在事件响应中直接得到处理。时间片轮转部分流程如图7。
6结束语
Namisoft电源监控软件的设计,充分体现了可编程电源本身可程控性及高稳定性的特点。界面友好操作方便,圆满完成了半物理仿真中飞控计算机电压的供给与测试任务。软件设计中,在读取电源的电压、电流等参和处理随机事件时采用的“时间片轮转和事件触发”的思想,对今后的测控软件的开发具有重要的参考价值。
圈7聪间片轮转流程图