1 引言
对电子设备而言,测试是保障系统功能、性能、可靠性和安全性等指标的重要手段,在各种测试中,板级测试是最基本的,主要完成电路板和组件能否正常工作的基本测试[1]。近年来,伴随我国风电产业的快速发展,风电机组的质量问题频现、引人关注[2],变桨控制器作为变桨距型风电机组实现变距控制的执行机构,是变桨距型风电机组的关键核心部件,其板级测试的准确性既关系风电机组的控制性能,也关系到机组的安全运行;随着测试技术的发展,采用虚拟仪器技术,应用ni labview等平台,配合下位机程序,以高效灵活的方式来完成各种测试、测量和自动化的应用已经越来越频繁,借助ni labview图形化开发工具设计板级的自动测试平台,可以提高测试效率并保证测试准确率,缩短产品投放市场的时间,并提高产品开发和生产效率[3-5]。因此,为了提高变桨控制器的板级测试效率以及测试准确性,借助虚拟仪器技术,设计变桨控制器的板级测试平台是有效途径。
本文针对变桨控制器的板级测试平台的测试任务,介绍了板级测试平台的测试原理、下位机程序流程,再从提高上位机labview程序的可复用性出发,提出了一种采用状态机与事件结构相结合的分层设计方法。最后采用上述设计方法,针对每项测试任务,采用分多次测试的方法实现了板级测试软件,完成了变桨控制器的板级测试平台的设计。
2 测试原理及平台组成
2.1测试原理
本文的板级测试平台主要针对变桨控制器的电路板通道通断进行故障测试,完成故障判断,通道测试任务包括:串口、can口、485口、数字量输入、数字量输出、4~20ma模拟电流输入、-10v~10v模拟电压输出、pt100、编码器等通道测试。
通道测试的原理是基于激励和响应的匹配关系来进行的,分为如下两类:
(1)测试相对被测板单片机为输入的信号时,先由平台上位机控制相关板卡,模拟激励源对被测板通道施加特定的激励信号,再由被测板单片机采集被测通道的响应信号、返回采集结果,由上位机进行分析,将分析后的信号与激励信号进行对比:如果两个信号在允许误差范围内匹配,表明被测板通道对这次激励信号响应正确,反之则表明被测板通道内部有故障,经过多次重复测量结果仍不正确,可认为该通道已发生故障。
(2)测试相对被测板单片机为输出的信号时,先由平台上位机下发测试命令,由被测板单片机输出该信号,经上位机控制板卡采集被测通道的信号进行分析处理,得到通道测试结果。测试原理图如图1所示。
2.2测试平台的组成
板级测试平台由上位机、pxi机箱、适配板、被测板四部分组成。上位机运行由labview程序开发的测试程序;pxi机箱包含各类板卡,需要根据被测试通道类型、路数、被测试信号的要求进行板卡型号的选择;适配板用于固定被测板、实现pxi机箱各类板卡和被测板信号的连接;被测板为需要进行通道测试的变桨控制器电路板。
整个测试过程在上位机和下位机的配合下完成,可脱离测试人员的干预,进行自动测试,能大幅度提高测试效率。上位机和下位机配合完成测试的过程如图2所示。
3 下位机程序设计
针对被测板的测试任务,下位机程序的工作是配合上位机程序完成测试,实现被测板与各pxi板卡间的通信、采集数字量信号、输出电压信号、测量电阻等。被测板与适配板之间采用rs-232进行通信,通信协议如附表所示,帧头用于判断一帧的开始、功能码用于区分当前的测试任务。
图2 下位机程序流程
下位机与上位机之间通过串口完成数据的交互。下位机程序初始化以后,监听串口,接收上位机下发的测试命令,根据帧头判断当前帧是否为有效帧,再根据该帧的功能码控制被测板输出或采集相关信号,如:控制通道输出电压信号、采集通道的电流信号等,再向上次程序返回应答帧,下位机程序设计流程如图3所示。
图3中,串口、can口、485口、数字量输入、数字量输出、4~20ma模拟电流输入、-10v~10v模拟电压输出、pt100、编码器等通道测试的功能码从0x01起依次递增进行区分,因此根据不同的功能码,下位机判断当前进行的测试任务,再控制输出或采集相应信号,返回应答帧给上位机,完成交互。
4 上位机程序设计
4.1状态机与事件结构相结合的设计方法
labview中提供的状态机设计模式为上位机的程序设计提供了一种快捷、简单、高效的设计模式,有助于提高程序的可扩展性以及可维护性。将被测板的每项测试任务进行抽象,按测试任务划分为不同的状态,每种状态对应一项通道测试;根据测试任务进行状态的划分后,通过事件结构提供状态与状态之间的切换条件,为用户提供与程序的交互接口。在“状态机”与“事件结构”相结合的设计方法中:“状态机”对应每项测试任务的实现;“事件结构”用于接收用户的操作事件,实现测试流程的控制,示意图如图4所示,其中每个状态就是一项通道测试,状态之间连线表示相应按钮对应的事件触发。
从图4(a)可以看出,测试任务共计n项,从初始化状态开始,相应的事件触发实现状态的切换即进入不同的测试任务或自动测试流程,每两项测试任务之间通过初始化状态进行跳转,也可根据测试需求进行相应测试任务的流程组合。图4(b)为自动测试流程示意图,无需进行额外操作即可完成所有功能项的测试,并返回初始化状态。
4.2基于分层的思想
为了降低上位机程序之间的耦合性并提高程序的复用性,将数据采集、存储、处理分层独立,利用labview中创建子vi的功能,将需实现的功能进行细分、创建子vi,提供必要的、类型相互匹配的输入输出接口。
数据采集子vi通过与下位机通信或直接控制相应的板卡完成数据采集;数据返回后,统一存储在一个数据区,如数组、簇、数据库等;数据处理子vi统一从数据存储区取相关数据,完成数据处理功能,最终完成判断得到测试结果,如图5所示。
创建子vi的原则是按照功能(如串口读写、板卡电流输出、电压采集等)进行创建,一旦每个子vi调试通过,在需要实现同样功能的程序处只需调用该子vi,提高了程序调试效率、程序的可读性、可维护性。
4.3上位机测试方法
上位机程序根据下位机程序返回的应答帧或板卡采集所得的数据,完成相应的数据处理,最终得到相应通道测试结果的判断。为了减小由于偶然误差造成的误判,上位机程序针对每项测试任务,采用分多次测试、允许至多有1次的测试结果在允许的误差范围外的判断原则,得到通道测试结论。以3路4~20ma模拟电流输入通道测试为例进行说明:
(1)为了测试3路4~20ma模拟电流输入通道,选择4~20ma中的多个测试样点:4ma、8ma、12ma、16ma、20ma;
(2)针对每个测试样点,设置允许的可配置的误差为±0.02ma;
(3)上位机程序针对每个测试样点,控制板卡输出相应的电流信号并下发测试命令,下位机根据测试命令,采集相应通道的电流信号,并返回给上位机;
(4)上位机根据下位机返回的总共5组测试样点的实际值,判断每个通道每个测试样点是否在允许的误差范围内;
(5)如果每个通道至少有4个测试样点的测试结果在允许的误差范围内,则判断该通道正常;否则判断该通道故障。
针对每项测试任务,采用分多次测试、允许至多有1次的测试结果在允许的误差范围外的判断原则的测试方法,可以有效的避免由于测试的偶然性造成的误判,有助于提高测试准确度。
4.4板级测试软件
图6为针对上述通道测试要求,结合其他如报表、用户管理、数据库备份等辅助功能,按照本文前述设计方法,采用labview开发的板级测试软件。测试人员只需扫描输入变桨控制器的被测板条形码、完成通信端口的简单配置,点击“自动测试”即可完成各项测试,并输出报表。如果测试人员想单独对某测试任务进行测试,可点击相应按钮进入对应的测试任务界面。该软件界面四周的指示灯根据变桨控制器被测板的通道进行布局,自动测试或某测试任务单独测试后,可在被测通道对应的指示灯处直观显示测试结果,也可在报表中查看。详细结果。
采用上述设计方法开发的板级测试软件,采用了分层设计思想,降低了软件本身模块之间的耦合性,提高了开发效率;针对软件的通道测试任务而言,由于针对每项测试任务,采用分多次测试、允许至多有1次的测试结果在允许的误差范围外的判断原则的测试方法,提高了测试结果的准确性,降低了由于偶然误差造成的误判;该板级测试软件通过了数套变桨控制器被测板的测试以及人工设置故障后的测试,能检测到人工检测未能检测到的故障,通道故障检测率、板级测试的效率都优于人工测试。
5 结束语
本文针对变桨控制器的板级测试平台的测试任务,在分析了测试原理的基础上,设计了下位机程序流程并提出了一种提高上位机程序开发效率的分层设计方法,再针对每项测试任务,采用分多次测试、允许至多有1次的测试结果在允许的误差范围外的判断原则实现了板级测试软件,测试验证了按照本文方法设计的板级测试软件在变桨控制器的板级测试中具备效率高、准确性高的优点;同时,本文也为采用labview、嵌入式系统设计其他自动化测试平台提供了参考的设计方法。