ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LabVIEW短波电台一体化测试系统设计与实现

LabVIEW短波电台一体化测试系统设计与实现 去年交付过一套LabVIEW短波电台一体化测试系统这事到现在回想起来还很有嚼头。当时的生产验收现场全是人工操作频谱仪、信号源、音频分析仪堆在工位上测试员按照纸板上的步骤一步步按电台面板、读仪表数值、手填Excel四十多台机器三个人轮班干了一整周最后还有两台因为抄错一位数字被误判。后来我花了一个多月把整个流程搬进LabVIEW做成了一套自动化测试平台同样的批次我一个人加一个工位三天出完全部报告判限统一、数据可追溯连测试报告都是自动生成的。我写这篇文章就是想把这套LabVIEW短波电台一体化测试系统的完整实现思路分享出来。包括测试需求怎么拆解、仪器怎么选、软件架构怎么搭、射频指标怎么测、串口控制怎么调通以及那些LabVIEW手册里根本查不到的坑。适合正在做电台测试系统、或者打算把零散仪器整合成自动化平台的工程师参考哪怕你还没接触过短波电台里面对仪器控制、状态机架构、数据管理的处理方式放到其他测试项目里也一样用得上。1. 先搞清楚短波电台测试到底要测什么短波电台和常见的超短波电台完全不是一回事。短波频段覆盖1.6MHz到30MHz依靠电离层反射实现远距离通信发射功率通常在25W到100W之间有些固定台站甚至更高。工作模式以SSB单边带、AM调幅、CW等幅报为主。频段特性和工作模式决定了它的测试维度和普通对讲机、车载电台不一样如果不先把这个想清楚后面搭出来的系统一定四处漏风。1.1 发射链路的核心指标发射部分是短波电台所有指标里最基础也最敏感的。我把实际测试中用到的项目拆成四类第一载波功率和输出功率。短波电台标称功率一般是25W、50W、100W这几个档测试时需要把电台输出经过大功率衰减器接进频谱仪或者功率计通过SCPI指令读回功率值。第二频率准确度。短波通信对频率精度要求不算极端但也不能飘。用频谱仪中心频率对准电台载波用峰值频率减去设定频率就得到频率误差。这个指标直接反映电台本振的稳定度尤其在不同温度环境下差异很大。第三谐波和杂散发射。这部分最麻烦。短波电台的三次谐波可能落在30MHz到90MHz区间八次九次谐波能跑到一两百兆赫兹所以测试系统的频谱仪频率范围至少要覆盖到300MHz才算稳妥。测试标准通常要求谐波和杂散分量比载波低40dB以上具体根据电台的技术规格来定。第四调制特性。SSB模式下要测边带抑制比和载波抑制比AM模式下要测调制深度和失真度。这些指标需要解调功能频谱仪有解调功能就用频谱仪没有的话可以把解调后的音频信号引到音频分析仪。1.2 接收链路和音频指标接收性能测试的重点是参考灵敏度。短波接收机灵敏度通常在-110dBm量级测试方法是用信号源输出单音信号最常用的是1kHz调制或者SSB单音从某一电平开始逐步加大观察接收机音频输出端的信纳比SINAD是否达到12dB。达到临界点时的输入电平就是参考灵敏度。音频输出测试也不可忽略。短波电台一般输出音频功率在几瓦量级带8Ω或4Ω负载。测试时把音频输出端接上假负载用音频分析仪读输出功率、失真度、频率响应。这些都是后级用户能直接感知的指标在一次验收测试里如果只测射频不测音频后面AF音质有问题还得返工。控制链路测试是很多人会漏掉的。现代短波电台大多有外控串口通过指令切换频率、切换模式、读取状态。一体化测试系统必然要通过串口控制电台所以顺带就得验证控制链路的完好性——发一条设频指令读回电台当前频率确认一致发一条读状态指令确认返回的状态字正确。这一步能提前发现串口芯片损坏、线序接错这类硬件问题省得后面整个系统跑起来才发现电台不受控。1.3 人工测试的真正瓶颈传统人工测试最大的问题不是慢而是不一致。换一个人操作读仪表的时间点不一样频率稳定等待时间不一样记录值保留的小数位不一样判限的尺度更不一样。遇到临界值有人觉得擦边算过有人觉得必须达标同一个批次两种结论和客户吵起来都没底气。自动化测试系统解决的不只是替代劳动力的问题它把读仪表、判超差、写记录这些人为因素全部标准化。LabVIEW在这些场景里的优势在于仪器控制有VISA库统一接口图形化界面便于现场操作数据记录和报表生成生态成熟加上NI设备驱动对主流频谱仪、信号源的覆盖率很高所以这个平台选LabVIEW来做确实是对路的方案。2. 硬件平台的选型思路和链路设计软件写得再好硬件链路搭错了一样白搭。这套系统的硬件选型要围绕一件事被测对象是几瓦到上百瓦的射频发射源而测试仪器大多是娇贵的精密设备中间的连接和保护设计必须一丝不苟。2.1 核心仪表怎么选我用的方案是这样的频谱分析仪负责发射功率、谐波杂散、单边带信号的测量一台覆盖9kHz到3GHz的入门级频谱仪就够用信号发生器负责接收灵敏度测试时输出标准射频信号要求频率覆盖短波全频段、电平能到-120dBm以下、频率精度高音频分析仪负责解调后的音频功率和失真测量没有独立音频仪也可以用高精度声卡加校准代替但稳定性差一些。预算有限的情况下优先保证频谱仪和信号源这两台核心设备。短波灵敏度测试信号源输出级别非常低普通信号发生器在-110dBm附近的电平准确度和泄漏指标不过关测试结果完全不可信这个钱不能省。仪器通信接口方面GPIB依然是最稳妥的选择。虽然新仪器普遍支持LAN和USB但在LabVIEW里GPIB经VISA控制的延时最稳定抗干扰能力也强适合测试序列高频次、短指令交互的场景。如果仪器只有LAN口也问题不大VISA统一了TCP/IP的寻址方式程序里切换通信链路只需要改资源名称和超时参数。2.2 射频链路的衰减计算这是整个系统最容易出安全问题的一环必须仔细算。短波电台100W发射功率换算过来是50dBm频谱仪最大安全输入电平一般只有30dBm中间必须加衰减器。我的链路是这样的电台输出→大功率衰减器→频谱仪输入端。以100W电台为例如果使用40dB衰减器频谱仪输入端电平就是50-4010dBm在安全范围内还有余量。如果电台是25W发射功率44dBm通过40dB衰减后是4dBm同样安全。实际选配时衰减器功率容量要留一倍余量100W电台至少选200W衰减器不然连续发射大功率时衰减器会过热漂移甚至烧毁。电台功率发射电平衰减量频谱仪输入端电平衰减器功率余量25W44dBm40dB4dBm至少50W50W47dBm40dB7dBm至少100W100W50dBm40dB10dBm至少200W连接线缆也要注意。短波频段对线缆损耗不太敏感但接头质量很重要N型接头比SMA更适合大功率场景。全部链路接好后先用功率计粗测一遍确认衰减量符合理论值再接入频谱仪这一步叫链路验证千万别跳过。2.3 电台控制接口的物理层处理短波电台的控制接口五花八门。比较新的机器用RS-232串口老一些的用RS-422或者RS-485还有少数用自定义航空插头。RS-232可以直接用USB转串口线RS-422/485就需要专门的电平转换器。实际操作中最容易忽略的是地线问题。电台和测试工控机如果接在不同的电源插座上地电位差可能造成串口通信不稳定甚至损坏接口芯片。我吃过一次亏通信偶尔丢字节找了一下午最后把所有设备统一接到一个电源排插上问题消失了。工控机的USB转串口模块也建议用工业级的比如FTDI芯片的方案便宜货在批量测试场景下经常掉线。天线端的处理就更讲究了。测试时电台不能接真实天线而是接假负载或者大功率衰减器否则发射的电磁波会干扰整个实验室的仪器甚至把信号源输出的微弱校准信号彻底淹没。这也是为什么测试系统必须放在屏蔽环境里或者至少用同轴电缆把所有射频连接严格走线。3. 软件架构这套平台的骨架是状态机加队列硬件链路搭好之后软件架构就是整个系统的灵魂。LabVIEW程序写起来快但架构搭不好功能越多越容易崩。这套系统我采用了生产消费者模式加状态机的组合架构实际跑起来非常稳。3.1 为什么不能把所有代码堆进一个While循环很多LabVIEW初学者会把整个测试流程写在一个大的While循环里按一下按钮测功率再按一下测灵敏度……这样写的程序在功能演示时没问题但真正跑批量测试时一定会卡界面。因为频谱仪和信号源的SCPI指令响应需要几百毫秒到几秒在这段时间里界面完全冻结用户连停止按钮都点不了想中断一个错误测试只能强制关程序。生产消费者模式可以解决这个问题。UI事件放进一个循环通过队列发送命令给测试执行循环两个循环并行跑。测试执行循环在处理仪表交互时UI循环依然在响应按钮事件这样停止测试紧急中断这类操作永远可用。队列数组的元素我定义成一个Cluster包含命令类型和参数比如切换到XX频点读取功率判定结果。不同模块之间解耦加测试项或者改流程只需要在命令类型枚举里加一项然后在消费者循环里加一个Case不用动其他代码。3.2 状态机让测试流程不走样测试流程本身用状态机管理。我定义了一组状态初始化设备、检查仪表通信、读取测试配置、设置电台频点、等待功率稳定、测量发射指标、测量接收指标、记录数据、切换下一频点、生成报告。每个状态是一个Case结构通过移位寄存器保存和切换枚举类型的状态值。为什么测试流程适合状态机而不是线性顺序结构因为测试过程中会出现各种异常仪表通信超时、电台不响应、测试值超差。线性结构一旦在某一步出错整个程序只能跳出去重新开始而状态机可以通过状态转移逻辑处理异常分支。比如读功率超时状态机可以先进入重试状态重试三次还不行再进入记录异常状态然后继续下一个测试项而不是整个进程死掉。状态机配合队列还有一个好处每个状态里的操作可以做得足够小方便单独调试。初始化状态有问题就单独跑初始化状态不用把整个测试流程跑一遍才能验证。3.3 单例模式管理仪器会话LabVIEW里的VISA会话句柄本质上是一个全局资源。如果多个VI同时打开同一个仪器的会话轻则指令串扰重则程序崩溃。我用了典型的功能全局变量FGV来实现单例模式用一个未初始化的移位寄存器保存当前打开的VISA会话引用所有需要控制仪器的VI都通过这个FGV来获取会话而不是自己重新Open。这个设计的好处很直接VISA Open只需要执行一次测试过程中反复调用不会产生资源泄漏关闭程序时也只需要调用一次VISA Close避免多个VI各自关闭句柄导致的崩溃。热搜词里好多人问LabVIEW单例模式怎么用核心理解点就是全局资源必须统一入口FGV加上移位寄存器就是LabVIEW里的标准做法。仪器型号变更时只需要修改FGV里的初始化部分上层所有VI不用动。如果将来要支持多台同型号仪器同时测试也只需要把FGV从单例扩展成数组管理架构上不用推翻重来。3.4 测试项可配置化电台型号不同测试频率点、限值、等待时间都不一样。如果每次换型号都改程序这套系统的维护成本就太高了。我把所有的测试配置放在一个INI文件里包括每个测试频点、每项指标的上限下限、电台指令前缀、串口参数等。程序启动时读取配置按配置内容动态生成测试序列。这个设计在我后来接新型号电台时发挥了巨大作用。新电台的控制指令集不同但测试流程完全一致只需要在电台指令封装这一层做适配写一个新的指令VI替换配置文件里的VI路径主程序零改动。热搜词里有人搜labview如何安装rt系统那个是另一类问题但测试系统要能适应多种被测对象这个需求是通用的可配置化是唯一的出路。4. 射频测试模块SCPI指令、频率扫描和灵敏度步进硬件连接和软件框架都就绪后接下来就是各个测试项的具体实现了。射频测试模块是这套系统里技术含量最高的部分这里详细说说功率、谐波、灵敏度这三个重点测试的实现方式。4.1 用SCPI指令读功率而不是看波形频谱仪读功率有两种做法一是用频谱仪的Trace直接读峰值二是调用仪器的Channel Power测量功能。前者简单但准确度差后者才是正确路径。我用的是频谱仪的通道功率测量功能SCPI指令大概是这样的:CONF:CHP 14.200MHz, 3kHz :MEAS:CHP?含义是设定中心频率14.2MHz、测量带宽3kHz然后触发测量回读通道功率值。短波电台输出信号波动比较大尤其SSB话音信号不是稳定的连续波直接用峰值测出来的读数会乱跳用RMS检波加通道积分能得到相对稳定的功率值。这里有一个参数设置的经验RBW分辨率带宽不能设得太小。RBW太小会导致扫频时间过长而且短波电台的载波会有微小的频率漂移RBW小到一定程度信号反而会跑出测量带宽。实际调试下来SSB信号用3kHz RBWAM信号用10kHz RBW比较稳妥。4.2 谐波和杂散测试的自动化实现谐波测试的本质是频率扫描加峰值搜索。程序控制频谱仪从9kHz扫描到300MHz用峰值表功能把检测到的所有信号的频率和幅度记录下来然后找出与载波频率呈整数倍关系的分量计算它们与载波的差值。实现上要注意几个细节。频率扫描范围要覆盖到至少九次谐波短波最高30MHz九次谐波到270MHz所以300MHz上限不能少。其次扫描时必须把衰减器设置成固定值不能让频谱仪的自动衰减功能跟着信号大小乱跳否则谐波相对值就没有意义了。最后峰值表的阈值要设置合理一般设为载波以下60dB低于这个幅度的信号就算测到了工程上也没有实际影响。杂散和宽带噪声也是同样的扫描流程只是判断逻辑不同非谐波相关分量只要超过-40dBc限值就报FAIL。这一步还可能捕捉到电台内部时钟辐射或者电源开关噪声引起的杂散问题定位的时候多一个分析维度。4.3 灵敏度测试信号源步进扫描加自动判定接收灵敏度测试的逻辑是信号源输出单音信号初始电平设在-120dBm然后以1dB步进往上加每加一档等待电台接收机稳定读取音频分析仪的信纳比值直到达到12dB。记录此时的信号源电平就是参考灵敏度。这个自动步进过程里最容易出问题的是等待稳定时间。短波接收机的AGC自动增益控制响应时间比较慢信号源改一档电平之后需要几百毫秒到一两秒音频输出才能稳定下来。如果等待时间不够信纳比读数一直在跳判定就不准确。我测下来每档等待1秒比较稳妥整个灵敏度测试扫20个电平点需要20多秒完全可以接受。还有一种优化做法是二分查找先粗扫定位到大致区间再精细步进。但对短波电台来说信号源电平步进本身就有0.1dB误差二分查找节省的时间有限反而增加程序复杂度所以我最终采用线性步进可靠性优先。5. 串口控制、GBK编码与VISA通信的实战教训短波电台的外控通信是这套系统里除了射频之外技术含量最高的模块。别看串口通信原理简单真要把各种电台都调通需要处理的细节非常多。5.1 VISA串口配置的几个关键参数LabVIEW操作串口和VISA库跳不开关系核心是几个配置参数。波特率要和电台设置的参数完全一致多数电台默认9600或19200数据位一般是8位停止位1位校验位多数情况下是None但有些电台用奇校验或偶校验需要在配置里选对。还有一个很容易被忽略的参数是终止符。串口通信如果不用终止符VISA Read不知道什么时候算读完一条完整的响应。多数串口指令以回车符\r或换行符\n结尾在VISA配置里设置Termination Character之后VISA Read会一直读到终止符才返回程序就不用自己去拼接和判断不完整的数据包了。超时设置也要注意。短波电台有些指令响应很快十几毫秒就回复了但有些指令比如切换频段电台内部要重新调谐响应时间可能长达几百毫秒甚至几秒。如果VISA超时时间设成默认的2秒高频段切换工况下会频繁报超时错误。我后来把VISA超时统一设成5秒代价是真正通信故障时错误发现的时间变长了但配合重试机制整体稳定性好很多。5.2 GBK编码转Unicode处理中文状态信息的一劳永逸方案这是很多LabVIEW开发者会遇到的问题。国内很多短波电台的串口返回信息是中文的而且是GBK编码。LabVIEW早期版本的字符串控件默认按系统本地代码页处理中文Windows下是GBK看似没问题但如果把字符串写入文件、发送到网络或者做字符串比较编码一致性就容易出乱子。热搜词里专门有labview中怎么把gbk转换成unicode说明这个问题困扰了不少人。我采用的方案是调用.NET的System.Text.Encoding类把GBK编码的字节数组转换成Unicode字符串。大致的步骤是用String To Byte Array函数把串口读到的字符串转成字节数组调用.NET构造函数创建编码对象代码页设为936GBK调用GetString方法把字节数组转换成Unicode字符串把这个子VI统一封装成GBK转显示文本所有串口数据的后处理统一走它这个子VI封装好之后电台返回的状态文本、告警信息、自检结果都能正确显示存入数据库也不会乱码。这是整套系统里复用一个字、价值最高的一个子VI之一。5.3 主动上报型通信的队列监听方案有一些电台设计成主动上报模式只要状态变化就往上抛数据而不是一问一答。如果程序用先Write再Read的模式去读极容易把上报数据和应答数据搞混。我当时的处理方法是在主流程之外单独开一个串口监听循环专门接收串口数据把收到的数据按指令特征分类后放进队列。主流程需要读数据时从队列里按需取用取不到再发查询指令。这个方案保证了主动上报数据不丢失也避免了一问一答模式下读取错位的问题。这个设计后来被我用到了其他项目里。凡是涉及串口、CAN、TCP这类异步通信的场景独立接收循环加数据队列都比同步一问一答更健壮。业界管这个叫消息队列模式LabVIEW里实现起来成本很低收益却很大。6. 波形显示、日志记录与数据管理的落地实现做了这么多年测试系统我越来越觉得人机交互和数据管理决定了一套系统能不能真正用起来。射频测试再准确如果测试工程师看不懂界面、数据查不到历史这套系统就是实验室里的摆设。6.1 波形显示波形图配色和XY图的应用接收音频的实时波形用Waveform Chart滚动显示。这里有一个很多人都踩过的小坑LabVIEW波形图默认的配色在白色背景上看得清楚但测试工位往往光线复杂深色背景或浅色背景显示效果差异很大。我后来通过属性节点在程序里动态设置曲线颜色把有效数据留成亮绿色告警数据标成红色超差数据用黄色让现场测试员一眼就能判断当前状态。频谱扫描结果用XY图显示会更好。X轴是频率Y轴是幅度扫描结果是一系列离散点XY图可以精确控制点数而不引入多余插值。不过要注意XY图的点数不要超过屏幕分辨率太多否则绘制开销大、界面卡顿。我实际做了降采样处理每屏最多显示4000个点人眼已经分不出区别界面的流畅度提升明显。6.2 日志记录按天自动创建文件加异步写入测试系统一定要有完整的日志。我做了两级日志一级是业务日志记录每个测试项的测试值、判定结果、测试时间另一级是调试日志记录所有串口指令的收发、仪表报错信息、系统异常堆栈。业务日志按天滚动每天一个CSV文件文件名形如test_20250601.csv。程序启动时检查当天文件是否存在不存在就新建并写入表头。调试日志也是一样按天滚动用系统时间戳拼接文件名配合程序启动时生成唯一批次号整个测试过程的所有操作都能回溯。这里有一个检验过多次的经验写文件操作不要放在测试执行主流程里同步进行。如果有一次测试项判定要写好几条记录磁盘IO可能会让整个测试流程停顿。我封装了一个日志写入FGV内部用队列把写文件请求发给一个独立的写文件循环测试流程把记录入队之后立刻返回实际写盘由后台循环完成对测试节拍零影响。热搜词里有labview日志记录编程和labview每天自动创建一个txt这个方案就是完整的回答。6.3 测试结果进MySQL多工位数据汇总批量生产测试场景下数据最终要汇到数据库里做统计分析和质量追溯。我在连接MySQL时用的是LabVIEW的Database Connectivity Toolkit通过ODBC数据源连到MySQL服务器。连接字符串大概是DSNradio_test;UIDroot;PWDxxxxxxODBC数据源里要显式指定字符集否则中文内容写入数据库后会变成乱码。这个坑我踩过后来在ODBC驱动配置里加上CHARSETutf8mb4才解决。测试结果表的设计包含测试时间、操作员、电台序列号、仪器资源名称、每个测试项的测试值和判定结果。表结构不要设计成一张表一堆列的横表而要用一条记录一个测试项的纵表后续做SPC统计分析和不良项分布排序都非常方便。6.4 TDMS格式保存波形原始数据除了业务数据接收音频的原始波形我也做了存档用了TDMS格式。TDMS是NI自家格式写入速度快、文件体积小而且自带通道和属性管理非常适合保存时间序列波形。测试结束后工程师可以随时用LabVIEW的回放工具打开TDMS文件重新看当时测试时音频波形的真实形态结合业务日志里记录的测试结果形成完整的证据链。这对质量争议处理异常有用——有一次客户投诉某台机器发射声音发闷我直接从TDMS文件里调出当时的解调音频数据做了频谱分析证明波动是在正常范围内问题出在客户的天馈系统上而不是电台本身。7. 部署环境LabVIEW安装、VISA驱动与系统兼容性问题一套系统在开发机上跑得再顺部署到现场工控机上翻车也是常有的事。这一章专门讲部署阶段最容易踩的环境坑包括LabVIEW本身、驱动和系统配置。7.1 Runtime Engine版本匹配问题最容易犯的错是开发机上用的是LabVIEW 2021部署到工控机上只装了LabVIEW 2021 Runtime Engine结果程序跑起来报VI版本不兼容或者无法加载VI。原因在于开发机上的某些VI用到了特定版本的特性而Runtime Engine版本不匹配导致程序无法解析。正确的做法是部署工控机上安装和开发环境完全相同的Runtime Engine版本如果用了额外的工具包比如Database Connectivity Toolkit、VISA、Instrument I/O Assistant对应的Runtime也必须一致。热搜词里labview runtime engine 8.5这种老版本至今还有人搜说明这类问题一直存在。另外一个细节开发机上的32位和64位安装包不能混装VISA、驱动和Runtime的位数必须和LabVIEW开发环境保持一致混装大概率出现找不到DLL的错误。7.2 安装路径和项目路径不能有中文这个坑让我浪费过一整天。当时把项目整个文件夹放在桌面一个中文命名的目录下结果程序在调用子VI时频繁报路径无效的错误偶尔又是好的。后来发现是LabVIEW在调用动态VI时对非ASCII字符路径处理有兼容性问题尤其在调用某些仪器驱动时内部是用ANSI编码来解析路径的中文路径会导致句柄失效。从那以后我的项目路径和安装路径永远只用英文、数字和下划线部署到工控机上也是先建一个纯英文路径的文件夹再拷贝项目。这个习惯我沿用到了所有LabVIEW项目里再没出过路径导致的诡异问题。7.3 VISA驱动识别不到设备部署现场最常见的故障是LabVIEW程序找不到GPIB或串口设备。排查的第一站是NI MAX打开设备与接口列表看设备是否列出来。如果NI MAX里看得到但LabVIEW程序里打不开大概率是权限问题如果NI MAX里压根没有就是驱动没装对。GPIB卡比较特殊除了NI-VISA还要安装对应的设备驱动比如NI GPIB-USB-HS就需要单独的驱动包。用第三方USB转GPIB的卡更麻烦驱动兼容性参差不齐我后来一律不用杂牌方案宁可多花点预算直接上NI原装卡省下的调试时间远超差价。串口设备识别不到的原因五花八门。USB转串口线用了一段时间后驱动掉了、COM口号被其他软件占用、USB供电不足导致设备掉线……这些我都遇到过。最终解决办法是固定USB口插拔顺序每次测试前做一次串口自检把识别结果写到日志里这样即使出问题也能快速定位。7.4 杀毒软件、防火墙和系统更新策略LabVIEW和NI的驱动组件的安装过程会写系统服务、注册表项、设备驱动文件很多杀毒软件会拦截或者误删导致装完驱动但不生效。更隐蔽的是杀毒软件在后台扫描正在运行的测试程序导致程序响应缓慢甚至卡死。短波电台的批产测试工控机我强烈建议做成专用工位机不装无关软件杀毒软件要么不装要么把LabVIEW目录加入白名单。系统自动更新也要小心。工控机装好系统、驱动和应用后建议关闭Windows自动更新或者只在人工介入的情况下更新。NI驱动和Windows版本之间的兼容性问题不是没有出现过最稳妥的方式是在一个验证通过的系统配置上长期运行不随便折腾。8. 实测效果与经验沉淀这套系统上线后我把旧流程和新流程做过一次直接对比。同样一百台短波电台的批产验收人工流程需要两名测试员连续工作五天而且每天至少有两三次抄录误差新系统一个人一位工位一天半全部测完测试报告自动生成测试数据完整入库所有超差项带时间戳和原始波形记录。从技术指标看测试一致性提升是最明显的。以前那种同一台机器上午测和下午测结果不一样的情况大幅减少因为所有仪表的读取时机、等待时间、判定算法都是固定的只要硬件链路稳定测试结果就是可重复的。最后说几件我自己沉淀下来的经验。第一做测试系统稳定压倒一切。功能再多跑二十遍崩一次就没法在生产线上用。所以我每加一个功能模块都会先用循环跑压力测试确认不崩再整合进主程序。第二日志和异常处理要舍得下功夫。程序90%的复杂度来自异常处理但是真正用起来的时候异常处理救过我好几次。第三也是最重要的把精力放在理解被测对象的特性上。短波电台和通用电子设备测试有很多不一样的地方只有真正理解了射频链路、功率稳定性、接收机响应特性系统才能做出正确的容错和判定逻辑。这套系统后续还在迭代下一步打算接入天线驻波比测试模块和远程监控功能让测试工位的状态数据能实时汇总到车间层。做测试系统这行的乐趣就在于每换一个被测对象、每加一项测试能力都会逼着你去理解新的技术领域然后再回到LabVIEW这个平台上把你的理解落地成一套可靠、能用的工具。希望这篇文章能给正在做类似平台的朋友一些参考也欢迎大家在实际工程中摸索出更好的方案。
返回列表