ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

NI-HIL测试入门:从VeriStand到PXI,硬件在环全解析

NI-HIL测试入门:从VeriStand到PXI,硬件在环全解析 最近好几个从工业测控切入到车载测试的朋友都在私信问同一个问题想学NI的HIL测试但一打开官网就被VeriStand、LabVIEW、TestStand、PXI、CompactRIO这一串名字砸晕再去技术论坛刷到的全是“ni visa 如何卸载”“msiblast ni卸载工具”这类偏门经验感觉像是误入了某个隐藏关卡。这篇开篇就是写给打算系统入门的你。不管你是刚转岗的测试工程师还是正在做新能源电池、整车转向系统验证的研发只要想搞明白NI这套硬件在环体系到底是什么、有哪些环节、落地时最容易踩什么坑今天这篇都可以当一张路线图来读。我会尽量用大白话把“NI-HIL”从硬件到软件、从建模型到跑闭环、从电池测试到转向台架调试讲透最后再放一些我实际项目里遇到过的真实问题和解决手法。这不算什么高深学问很多时候就是一层窗户纸捅破了你会觉得NI这套东西比想象中规矩得多。1. 先搞清楚HIL到底是个什么东西NI在里面的角色是什么1.1 HIL的本质把真实控制器接进“虚拟被控对象”HIL的全称是Hardware-in-the-Loop硬件在环。它的核心思想是在实验室里构造一个“真实度足够高的虚拟被控对象”然后把真实的控制器硬件接到这个虚拟环境里跑闭环测试。打个比方你不方便拿真车去反复试验一个极端工况于是先在电脑和实时仿真机里搭一个虚拟的整车模型再把你手里那个真实的ECU、BMS或者EPS控制器接进去让它以为自己正驱动着一辆真车。传感器信号、CAN报文、负载状态都由实时系统模拟出来ECU的“动作”又被实时系统采集回去反过来影响虚拟被控对象的状态。这样既能测控制器的逻辑、标定和故障响应又不用承担真车试验的风险和成本。HIL在整个开发流程里处于MIL、SIL之后、台架和实车试验之前的阶段。MIL是在普通电脑上跑模型验证算法没有硬件SIL是把算法编译成软件再跑也没有真实硬件到了HIL控制器这个“大脑”是真的被控对象是虚拟的。如果你做过舞台彩排HIL很像最后一次不穿演出服但走完整流程的彩排演员是真的舞台灯光效果是模拟的。1.2 为什么做HIL往往绕不开NI市面上做HIL的平台不少但NI在国内汽车电子、新能源和航空航天领域的渗透率确实高。核心原因在于NI的PXI平台。PXI全称PCI eXtensions for Instrumentation它是在PC技术基础上发展出来的一种模块化仪器平台。你可以把PXI机箱理解成一个带背板总线和同步触发功能的“工控机集装箱”在里面自由插入嵌入式控制器、模拟输入输出板卡、CAN接口卡、数字IO卡、故障注入模块等按需拼装出一套实时测试系统。这套体系对做HIL的人来说有几个天然优势模块化程度高通道数不够就加一块卡不需要整体换系统实时性好配合PXI实时控制器和VeriStand的调度能稳定跑毫秒甚至百微秒级的控制周期同步性能强机箱背板上有专用的触发和时钟信号线多块板卡之间的采集和输出能够严格对齐这对多通道HIL至关重要软件生态完整从硬件管理、驱动配置到实时部署、数据记录都有对应工具链当然NI不是没有缺点软件体积大、收费不便宜、许可机制烦人。但多数团队在选型时仍然会把NI放在第一梯队因为它在通用性和工程化之间找到了一个很好的平衡点。2. NI-HIL的软件体系比你想的更“分层”关于NI软件最大的误解就是“NI软件就是LabVIEW”。实际上在HIL场景下LabVIEW只是冰山一角。我按工程上最常用到的软件帮你梳理成一张定位表。软件/工具在HIL体系里的角色学习优先级MAX硬件配置与系统管理检查板卡是否识别、做自检和测试面板极高NIPM所有NI软件的统一安装、更新、卸载入口极高VeriStandHIL实时测试的主控平台部署模型、管理通道、跑实时闭环极高LabVIEW自定义IO驱动、FPGA程序、特殊算法可配合VeriStand使用中高TestStand自动化测试序列管理与报表生成中NI OPC Servers和PLC、第三方设备做工业通信的桥梁中Multisim纯电路原理图仿真和HIL不直接相关但常被混淆低2.1 VeriStand才是NI做HIL的真主角很多新手一上来就抱着LabVIEW啃啃到一半发现HIL下不了手因为方向搞错了。NI做HIL测试的真正主力是VeriStand。VeriStand是一款实时测试管理软件专门用来在实时终端上运行被控对象模型并通过IO接口和真实控制器交互。简单说你在Simulink里建好的电池模型、整车动力学模型、电机模型经过编译后可以加载进VeriStand它会把这些模型当成一个“实时被控对象”高速运行起来。你可以在VeriStand里配置模拟量通道、CAN报文、报警限值、标定参数、数据记录甚至创建简单的激励过程。它最方便的地方在于通道映射。模型内部参数可以直接和真实IO板卡的通道一一对应不需要写一行代码。比如模型里的电压变量可以直接绑到一块模拟输出卡上每秒实时刷新成千上万次真实ECU就能看到一个“以极高速度连续变化的真实电压信号”。2.2 LabVIEW、TestStand和其他软件的分工那LabVIEW还重不重要重要但要看你会不会用到。LabVIEW通常用来做三件事写VeriStand没有预置的特殊IO驱动、做FPGA板卡的自定义逻辑、开发某些专用的上位机工具。它更像是“解决定制化问题的工具箱”而不是HIL入门的第一站。TestStand是NI的自动化测试管理软件主要管“测试步骤怎么排、条件怎么走、数据怎么存、报告怎么出”。如果你只做几个小时的调试性试验VeriStand就够要是你要建一套批产或长期回归测试环境TestStand才是那个“编排导演”。另外还有一个容易被拖进来的软件是Multisim。很多人看到“NI multisim 14.0原理图环境设置——元器件库管理”这种词条会以为Multisim是NI-HIL的必备工具。这个必须澄清Multisim是NI旗下做电路原理图仿真和PCB验证的软件适合做板级设计和HIL这种“实时运行被控对象模型”的系统完全不是一个层级。如果说VeriStand里跑的是整车动力学模型Multisim里画的是某个传感器调理电路。我在项目里几乎不会把Multisim和HIL直接打通偶尔会用它设计一个信号调理板然后去调真实硬件。2.3 别小看安装卸载这件事NIPM、NI VISA与msiblast从热搜词里就能看出来很多人被NI软件的安装、卸载、残留问题折磨过。这里我必须先讲理念NI软件和普通个人软件不同它内部有大量共享组件比如驱动层、运行时环境、C编译器接口等。你不按顺序卸载很容易留下一堆“幽灵组件”最后重装都装不回去。标准做法是使用NIPM也就是NI Package Manager。通过它你可以统一安装了哪些产品、哪个版本、需要更新什么。卸载时也尽量从NIPM里逐个卸载它会对上层产品之间的依赖关系做检查避免把别的软件依赖的驱动先干掉。另一个高频关键词是NI VISA。VISA是NI用来和GPIB、串口、以太网、USB仪器通信的底层IO接口库很多第三方软件会依赖它。卸载NI VISA前我建议你先确认当前这台机器上的测试程序是否还在用因为一旦卸载一大堆采集代码会直接报找不到设备。真要卸载同样走NIPM或者去控制面板卸载对应项千万不能手动删安装目录。说到首必提“msiblast ni卸载工具”。msiblast是NI官方论坛里流传的一个强力清理脚本思路和它的名字一致遍历系统注册表里所有MSI安装记录把和NI相关的ProductCode一条条找出来再逐个强制卸载。适合的场景是NIPM已经坏了、控制面板里堆着一堆半卸载残留、NI组件几经升级后版本混乱的“核灾现场”。但我得负责任地提醒msiblast不是官方工具虽然名字看起来很快实际上它只是一个“大力出奇迹”的批处理枚举器理论上可能把和NI安装包有关联的其他软件一起带着卸载掉。我自己的习惯是只有这台机器已经“救不回来”时才用它用完还要花半天时间检查系统里是否少了别的软件。如果你正在练手建议直接用虚拟机装NI软件随便折腾再快照恢复比什么卸载工具都安全。3. 第一次动手从零搭一个可以跑起来的NI-HIL迷你系统3.1 硬件上如何选一套入门配置NI-HIL的基础硬件形态通常是PXI机箱加实时控制器加若干IO板卡。入门推荐用小槽位机箱比如PXIe-1071这种4槽型号机箱自带背板同步时钟。控制器选PXIe-8880或同类实时控制器它跑的是实时操作系统保证模型和IO任务的确定性执行。IO板卡按需配做模拟信号交互就配多功能DAQ卡比如PXIe-6343可以同时提供模拟输入、模拟输出和数字IO要接CAN网络就配PXI-8513一张双端口CAN卡如果做故障注入条件合适可以直接买PXIe-2512故障注入模块通道密集支持继电器切换省去自己搭继电器矩阵的麻烦。预算紧张的话也可以先用老一代PXI硬件信号调理部分自制。但我不建议首次就上整套板卡最好先拿一块多功能DAQ卡加一张CAN卡把最小系统跑通。3.2 VeriStand搭建实时闭环的核心步骤配置好机箱和控制器后后面的思路其实很固定在建模软件里生成一个被控对象模型例如Simulink里搭一个电机简单模型编译输出DLLDLL会被VeriStand加载运行模型的输入输出以接口形式暴露出来打开VeriStand新建工程添加实时目标指定到你的PXI实时控制器在“Controller”里加载那个编译好的模型DLL打开“System Mapping”进行通道映射把模型变量接到真实IO通道部署工程到RT终端点击部署后模型就开始在实时环境下运行如果模型里某个输出端口绑定了模拟输出通道你会立刻在物理端子上量到对应电压这套流程最关键的认知是VeriStand不是一个画图工具它是“模型运行器、通道路由器、数据记录器”三合一。你以为你在做软件开发其实在做系统集成。3.3 这样一个迷你系统能做什么实验用一个最简单的场景说明假设我写了一个一阶RC电池模型输入是电流输出是端电压。在VeriStand里我把电流输入绑定到一个模拟输入通道把端电压输出绑定到一个模拟输出通道。外接一个简易单片机或真正的BMS控制器BMS采集端电压、输出充放电电流VeriStand收到电流后更新模型端电压再通过模拟输出把电压值送回去。这就是一个完整的“硬件在环”闭环。我之前用这套最小系统给一个新手培训半小时不到就跑通了硬件成本也低。所以不要一上来就想着搭十几通道的整车模型先做单通道闭环体会“模型运转、信号交互、数据记录”这三个环节比看一百遍文档都管用。4. 真实项目场景拆解电池HIL测试与转向台架HIL调试4.1 电池HIL测试落地时都在测什么电池HIL是新能源领域很常见的一个应用方向热搜里也有“电池hil测试”但很多人对这个场景的理解停留在“用模型模拟电池”。实际项目里要复杂得多。被测试对象是真实的BMS控制器而BMS需要感知的信息包括电芯总电压、单体电压、母线电流、温度模拟量、绝缘电阻等。HIL系统必须把这些信号高精度实时地模拟出来。比如单体电压采集的精度要求很高BMS会在毫秒级内快速采样如果IO刷新率不够或信号上有明显纹波BMS的低压检测可能就会误报故障。在NI平台上做这类项目常用的做法是在Simulink或专门电池仿真工具里建一个电芯模型考虑SOC变化、内阻、温度、老化等因素编译成DLL加载到VeriStand电压、电流、温度通过多功能DAQ卡或者专用的可编程电阻卡输出。BMS反馈的接触器控制信号、均衡控制信号、风扇使能信号则通过数字IO口采集回VeriStand驱动模型去改变故障状态或负载状态。故障注入是这个领域最核心的测试项。常见的有传感器断线、信号对地短路、单体温漂、CAN通信丢失、绝缘电阻降低等。NI故障注入模块可以以极低阻抗去切换每一条信号线模拟出真正的线束故障。做这类测试时切记先做好BMS高压侧隔离故障注入板卡通常只处理信号级线束高压部分还是要用专门的功率执行器和继电器隔离柜。4.2 转向台架HIL调试中的高频踩坑点转向台架HIL调试相比于电池HIL更偏机械耦合一点通常是一套真实的方向盘管柱、EPS控制器、转向执行机构加上NI实时仿真平台。我在调试转向台架时踩过几个坑讲出来给大家参考第一个是扭矩传感器的模拟。EPS控制器对驾驶员输入的扭矩信号极为敏感台架要通过模拟扭矩传感器的电压输出让控制器感受到“驾驶员在打方向”。如果电压毛刺大或者零点漂移EPS会误判为转向异常纠偏逻辑直接介入方向助力变得一顿一顿。解决方式通常是把模拟量输出通道配置成差分输出并用屏蔽双绞线连接尽量避免模拟量参考地和控制器参考地之间存在压差。第二个是CAN报文时序。EPS控制器不仅看扭矩输入还大量依赖车身CAN上的车速、横摆角速度、发动机状态等信号。如果CAN报文周期抖动或帧丢失控制器会认为整车通信故障限制助力。HIL环境里往往是多个模型同时在跑一定要给CAN发送任务单独设置高优先级并且确保模型步长和CAN发送周期之间有合理的整数倍关系。第三个是机械惯量与阻力矩匹配。台架上的真实管柱和EPS会带来摩擦、惯量这些在纯Simulink模型里很难体现。如果在HIL台架上虚拟的被控对象模型里又叠加了一套整车转向阻力矩两者容易互相“打架”表现出来就是台架振荡、助力来回摆。调试时要有耐心先关掉虚拟阻力矩只让真实台架的机械阻尼起作用再整除逐步加入模型力矩幅度从小到大观察稳定边界。4.3 外设联动三菱FX5U PLC与NI OPC通讯设置在完整的测试台架里不只NI一家设备还经常混着PLC。比如转向台架里可能用三菱FX5U PLC控制伺服电机加载用NI系统做信号仿真和数据采集两种系统之间需要交换状态字和扭矩指令。实现方式一般是走OPC。NI这边通过自带的OPC Servers组件或更通用的OPC UA客户端去连接PLC内置的OPC UA Server定期读取PLC里的数据标签再通过共享变量或者VeriStand里的自定义设备把这些数据中心化到实时测试工程中。具体到三菱FX5U与NI通讯流程大致是在三菱GX Works3里启用CPU模块的以太网端口分配好IP地址在NI机器上安装NI OPC Servers添加一个三菱FX5U以太网驱动配置驱动参数时注意数据区映射方式FX5U的寄存器地址和OPC标签地址之间经常有偏移先用串行通信工具Test面板验证几个地址能不能对上再在NI OPC测试客户端里读取到标签值后下一步才接到VeriStand或LabVIEW里运行时严格核对数据类型FX5U的D寄存器是16位有符号设置字传到C#或LabVIEW里就变成I16稍不注意符号位就会让你看到满屏的大正数这类联调问题很磨人但只要把IP层、OPC节点层、数据类型层三层逐一确认大部分时间都能解决。5. 新手入坑NI-HIL的避坑指南和高频问题速查5.1 软件装不上、卸载不干净这类问题的处理顺序我见过太多人第一步就卡在软件环境上。这里给一个固定的处理顺序你按这个顺序排查能省下很多无效操作。确认Windows版本和NI软件版本是否匹配老版本LabVIEW和VeriStand动不动就不支持最新Win11更新装系统时尽量选Win10 LTSC这类长期支持版本确认系统用户名不包含中文NI部分组件对中文路径和中文用户名处理不稳定安装时用NIPM选择产品剩余空间留足至少30GB如果安装过程中报错先把杀毒软件和系统防护临时关掉NI的驱动生成环节经常被实时防护误判卸载时从NIPM逆序卸先卸应用层再卸驱动层实在擦不干净再用msiblast这类工具但要在虚拟机或可以还原的环境里操作5.2 硬件识别和实时部署失败的常见原因在MAX里面看不到设备、无法部署RT终端是新手最常遇到的另一种问题。这里面有相当一部分原因出在驱动版本上。比如你装了VeriStand 2021但NI-RIO驱动还是老版本RT终端上可能根本刷不出实时控制器。解决思路很简单先检查设备管理器里有没有异常设备没有的话打开MAX看设备树还是没有就查NI软件的兼容性列表把对应驱动升级到匹配的版本。另外PXI实时控制器的IP地址分配也是常见坑独占网口和板卡共用网口要区分清楚VeriStand部署时如果找不到目标优先用网口直连把PC和RT控制器接起来通过MAX里的Network设备扫描确认能通再部署。5.3 通道映射错了但没人提醒你HIL最危险的一件事是通道映射错误。模型上写着输出电压3.3V你映射到了数字量通道上物理端子上可能只有5V和0V在跳但VeriStand不会报警因为映射本身是合法的只是类型不对。这个问题一旦出现会让你在“模型逻辑错”和“硬件故障”之间反复排查很久。排查这类问题时不要只盯屏幕要用万用表去打物理端子同时看VeriStand里的通道值是否与模型一致。如果模型值和通道值一致但端子量出来的电压不对那就去看线缆、接线端子和信号调理如果端子电压和模型值不对检查映射关系和板卡的量程配置。整个过程就像侦探破案最好的办法是动手之前先列一张通道清单把所有信号方向、电气范围、连到哪个端子都写清楚。5.4 NI软件怎么用先建立“工具链思维”总有人问“NI的软件怎么用”这个问题太大了。我给一个通用框架NI软件的实际使用路径从来不是单点而是有固定顺序的。第一步是硬件管理用MAX确认设备在系统里被正确识别第二步是模块级验证用DAQmx自带的Test Panel或LabVIEW测试程序验证单通道的采集输出是否正常第三部是实时集成用VeriStand把IO和模型放一起部署到实时终端第四步是自动化如果要做批量和长期测试再用TestStand梳理测试流程这套“四步走”适用于绝大多数NI-HIL场景。你的学习路径也完全可以用这个顺序安排每一步都跑通一个最小实验最后串起来就是一个完整项目。6. 从“会跑”到“懂做”NI-HIL的学习路线建议6.1 每个阶段可以怎么安排针对完全没有NI基础的工程师我建议按下面的顺序来第一阶段是环境熟悉花一周把NIPM、MAX、VeriStand的基本界面过一遍学会安装一台练手虚拟机并跑通VeriStand的快速示例工程。第二阶段是做信号链路选一个带模拟IO的DAQ卡用VeriStand实现从模拟输出发一个正弦波再短接到模拟输入通道把这根线采集回来确认信号的频率和幅值都正确。第三阶段是模型集成在Simulink或者Python里写一个简单被控对象模型编译成DLL加载到VeriStand把一个简单闭环跑通比如PID控制一个虚拟惯性系统。第四阶段才是做专项按你的工作方向选电池HIL、转向台架HIL还是通用控制器HIL把故障注入、CAN通信、PLC联动这类技能逐个补齐。6.2 学习中值得养成的好习惯有一个很值得养成的习惯是每次做HIL实验前都先画一张连接图。不用很复杂就是纸面上简单标注清楚模型变量、VeriStand通道、物理板卡端子、外接控制器引脚、线束颜色连测试跳线都写上去。这套图在排查通道映射问题时能救你的命很多工程师在台架前对着上百根线发呆就是因为没做这一步。另一个习惯是版本快照。NI软件升级一个版本往往连同驱动要一起换所以实验机尽量做成“每类项目一个虚拟机快照”不要在一台通用电脑上把所有NI工具链一股脑装全。我用这个方式以后再也没被软件环境问题拖后腿。第三个习惯是故障注入要从小能量开始。做HIL项目时不要一上来就注入致命故障先把轻微故障、边界故障跑一遍确认BMS或ECU的故障状态能正确跳变再去做破坏性测试。否则设备保护逻辑还没验证真实硬件就已经烧了这个教训在很多台架实验室都发生过。身边新人能快速上手NI-HIL的大多不是那种把软件文档背得滚瓜烂熟的人而是先搭一个最小闭环跑通再去看机制理解本质的人。我自己到现在都还保留这个习惯接触一个新板卡或新软件第一件事永远是搭最短路径的闭环。环境问题、版本问题和通道映射问题基本都能在一次最小实验中暴露出来比闷头读半天手册强得多。
返回列表