文献标识码: A
DOI:10.16157/j.issn.0258-7998.170986
中文引用格式: 杨志明,傅一帆,闵晓霜,等. 基于Qt的PLC板级工装测试方法研究与实现[J].电子技术应用,2018,44(1):114-117.
英文引用格式: Yang Zhiming,Fu Yifan,Min Xiaoshuang,et al. Research and implementation of PLC board-level testing method based on Qt[J]. Application of Electronic Technique,2018,44(1):114-117.
0 引言
随着“两化融合”的深度发展,工业控制系统已经成为国家关键基础设施的重要组成部分。数字电路板作为PLC(Programmable Logic Controller)的重要组成部分,其质量好坏直接关系到国家的战略安全。因此,对于PLC电路板的工装测试方法进行研究,保证电路板的质量具有重要意义[1]。
随着微电子技术、封装技术、印制板技术的不断发展,印制电路板密度变得越来越大,复杂程度也越来越高,传统的“探针”测试方法[2]使用万用表、示波器测试芯片已经不能满足要求。目前有一些利用IDE工具[3](例如SPE)进行工装测试,这种方法存在需要人工参与、效率低、不能实现自动化测试[4-5]等问题。基于LabVIEW的自动化测试系统[6]成本较高,而且对于PLC的电路板部分测试不能满足要求,所以开发一款成本低、操作简单、测试覆盖率高的电路板自动化测试软件很有必要[7-8]。
1 PLC板级工装测试软件总体设计
板级工装测试软件主要为目标板的测试程序下装以及测试提供人机界面,发送测试指令至目标板并接收返回的测试结果,为模块的硬件连通性、各器件的基本功能好坏以及故障查找定位提供软件支持与验证。
图1描述了板级工装测试系统的外部输入输出。
1.1 模块划分
按照板级工装测试软件需求,软件所需要实现的功能划分为8个模块,模块划分及模块功能概述如表1所示。
1.2 模块交互关系
板级工装测试软件各模块之间的交互关系如图2所示。
1.3 系统处理流程图
系统主要处理流程如图3所示。
2 测试方法研究与选取
PLC电路板测试的测试项包括:串口测试、网口测试、SDRAM测试、Flash测试、LED灯测试、拨码测试、RTC时钟测试、MAC_EEPROM测试、ComX测试、DI通道测试、DO通道测试、A/D转换测试、D/A转换测试等。以下对各个测试项的测试方法进行研究并选取最合适的测试方法。
2.1 串口测试
串口测试分为3项,分别对UART_1、USER、OS 3个通道进行测试,以下是3个通道的检验方法:将一根串口线一端连接在UART_1串口,另一端连在辅助测试模块的串口1上;将一根串口线一端连接在USER串口,另一端连在辅助测试模块的串口2上;再将一根串口线一端连接在OS串口,另一端连在辅助测试模块的串口3上。辅助测试模块将收到的待测串口的测试数据原样返回给该串口,下位机接收数据后判断返回数据是否与发送的数据相同。如果相同,则测试通过,如果不相同,或者在限定的超时时间内没有接收到数据,则测试不通过。
2.2 网口测试
网口测试分为2项,分别对ETH0和ETH1两个通道进行测试,以下是两个通道的检验方法:将一根网线一端连接在ETH0,另一端连在辅助测试模块的网口1上;将另一根网线一端连接在ETH1,另一端连在辅助测试模块的网口2上。下位机首先初始化相应测试网口,然后发送目的IP为辅助测试模块网口IP的ARP请求包,并等待辅助测试模块发送的ARP返回包,判断在限定的超时时间内是否接收到正确的ARP返回包。
2.3 SDRAM测试
SDRAM[9]常见的故障[10]通常有以下几种:固定开路故障(Stuck open fault)、状态转换故障(Transition fault)、数据保持故障(Data maintaining fault)、状态耦合故障(Coup-
lingfault)。目前对于SDRAM的测试大多采用March-C算法[11],这种方法对以上故障具有很高的故障覆盖率[12],本文就采用这种方法。值得注意的是,由于测试程序也运行在SDRAM上,所以SDRAM测试起始地址预留1 M空间。
2.4 Flash测试
Flash测试[13]分两步来执行,首先将Flash全擦除,往Flash的每一个地址空间写数据,然后再读出来与写入的数据比较,看是否相同。如果测试地址空间的数据读写都正确,则测试通过。
2.5 LED灯测试
LED灯亮灭由相应GPIO口控制,测试时将相应GPIO口都配置为输出,采用流水亮灭的形式来进行测试,最终点亮所有灯,观察灯是否全亮。
2.6 拨码测试
拨码数据通过GPIO口来采集,相应的GPIO配置为输入,通过拨动硬件拨码来改变采集到的数据,然后通过通信口将数据发送到上位机,比对采集到的数据与硬件拨码当前的码值是否相同。
2.7 RTC时钟测试
RTC时钟芯片通过I2C总线来连接,首先需要初始化I2C相关寄存器,正确设置时钟分频值。然后给时钟芯片设置一个时间,设置完成后芯片自动运行,同时开启定时器,定时10 s后,再从时钟芯片中读取时间,查看读取的时间是否比设置时间多10 s,以此判断芯片走时是否正确。
2.8 ComX测试
Ethercat主站采用赫优讯工业以太网模块ComX 100CN-RE,并下装Ethercat Master主栈固件,将ComX 100CN-RE模块与CPU相连,实现Ethercat主站功能主任务。由于ComX模块中DPM结构由模块自己的操作系统RCX控制,上电后自动维护,所以测试过程主要是通过读取DPM中固定地址的一些常量值来验证。
2.9 MAC_EEPROM测试
MAC_EEPROM测试首先需要初始化MAC控制器芯片,然后在EEPROM固定地址空间写入一个MAC地址值,然后再读出来,如果相同则测试通过。
2.10 DI通道测试
DI通道数据采集通过GPIO口控制,开始测试前,给每通道(DI0~DI7)输入不同的高低电平,GPIO口采集到相应的数据后通过通信口将数据发送到上位机,比对采集到的数据与实际各通道输入的电平高低是否吻合。
2.11 DO通道测试
DO通道数据输出通过GPIO口控制,开始测试后,上位机往下位机发送一个输出值,下位机控制相应GPIO口控制各通道(DO0~DO7)输出,然后观察DO通道电平指示灯,比对数据与各通道测量值是否吻合。
2.12 A/D模数转换测试
使用辅助测试模块的高精度AI/AO检测模块,对4路通道分别输入4~20 mA恒定电流,A/D芯片采集到相应数据后进行转换,然后将转换数据通过串口发送给下位机,下位机计算采集误差在±0.3%内则测试通过。
2.13 D/A数模转换测试
通过上位机设定4路通道对外输出的电流值(4~20 mA),然后转换为相应的数字量数据并发送到下位机,下位机使用这个数据来设置D/A芯片,然后使用辅助测试模块的高精度AI/AO检测模块测量每路信号输出的电流值,通过串口返回给下位机,判断是否符合要求,误差在±0.1%内。
3 基于Qt的PLC板级工装测试软件实现
以CPU模块为例介绍板级工装测试软件的测试过程,图4是CPU模块的测试连接关系示意图。
按图4所示连接搭建好测试环境后,从上位机上打开板级工装测试软件.exe程序。按照流程图3进行测试,得到如图5的测试结果画面。其中,绿色(图5中灰色圆形区域)表示测试通过,红色(图5测试全部通过,无红色显示)表示测试不通过。
4 结语
本文通过对PLC电路板上各器件的测试方法进行研究,并依据选取的测试方法设计了一种基于Qt的跨平台板级工装测试软件。经过实际验证,使用该软件对PLC电路板进行测试,测试覆盖率较高、测试时间短、故障定位准确率高。并且该软件相对以往的测试工装操作更加简单方便,生产人员只要经过简单培训,就可以熟练使用本软件,无需专业技术人员帮助就可以完成测试工作。本设计为开发电路板的工装测试软件提供了参考,可广泛用于电路板工装测试检验环节,对于提高产品质量与测试效率、节约人力物力成本具有很大促进作用。
参考文献
[1] 尤东妹,徐静.基于自动测试系统的数字电路板测试与故障诊断[J].SILICON VALLEY,2013(5):91-92.
[2] 刘杰,崔成旺.印刷电路板的功能检测[J].煤炭技术,2012(4):76-77.
[3] 朱振军,林明,宋月丽.基于边界扫描技术的板级测试分析[J].电子设计工程,2012,20(9):127-129.
[4] 霍晓磊,康霞,谭业双.电路板自动测试技术研究[J].测试技术学报,2013,27(5):411-414.
[5] 徐健茹.电路板通用自动测试系统设计与技术研究[D].西安:西北工业大学,2001.
[6] 王晓亮,谢朝辉,杨红官.基于LabVIEW和FPGA的存储器测试系统设计[J],计算机测量与控制,2012,20(7):33-35.
[7] 王秀霞,冉黎林,郭磊.基于故障诊断技术的电路板测试设备设计[J].计算机工程与应用,2015,51:295-299.
[8] 孙秀江.PCBA故障诊断系统的研究与开发[D].哈尔滨:哈尔滨工业大学,2006.
[9] 赵雪莲,杨新涛.SDRAM的测试方法研究与实现[J].国外电子测量技术,2008,27(5):12-15.
[10] 雷静.存储器测试方法的研究与测试程序的实现[D].成都:电子科技大学.2009.
[11] 于文考,高成,张栋.基于March-C算法的单片机存储器测试[J].现代电子技术,2010(6):19-21.
[12] 杜康保,王烈洋,魏爱香.基于SOPC的SDRAM测试技术研究[J].电子科技,2014(24):6-8.
[13] 柳玉波.SoC嵌入式Flash的内建自测试方法的研究与实现[D].成都:电子科技大学,2010.