实测NI VeriStand 2024 Q4的是本人,曾踩过因信号映射错位致使测试用例全部挂掉的坑,新手只要跟着步骤一步步做,便能够轻轻松松避开这类常见问题。 1. 配置仿真步长与模……
实测NI VeriStand 2024 Q4的是本人,曾踩过因信号映射错位致使测试用例全部挂掉的坑,新手只要跟着步骤一步步做,便能够轻轻松松避开这类常见问题。
1. 配置仿真步长与模型编译选项
路径是,从Project Explorer开始,接着到System Definition,随后进入Simulation Timing领域,最终找到Step Size这一项。要右键点击目标控制器,选择Properties选项,然后在Execution Settings页面当中,将Step Size设定为1ms。倘若这个值低于0.5ms,那么就会加重实时CPU的负载,进而导致超限情况出现;要是高于2ms,便会丢失CAN报文的边沿事件;而设定为1ms能够兼顾大多数的HIL场景。
【新手防错】,常见报错情况为:仿真开启之后出现弹出窗口提示报错“Overrun detected”。其核心缘由在于,模型当中存在高频中断或者有着大量浮点运算,即便步长设置为1ms依旧显得较为紧张。快速解决办法是,将模型打开,把所有连续积分器全部变更为离散的情形,并且将采样时间设定为1ms ;又或者将步长向上调整到1.5ms,与此同时把CANoe同步周期同样改变为1.5ms。
2. 两种信号采集方案对比——轮询读取 vs 事件触发
路径:于Test Automation Editor里面,用鼠标右键点击Signal Watch,接着选择Add Polling(即以一定时间间隔进行轮询)或者Add Event Trigger(依据事件发生来触发)。方案A:设定为每隔10ms就去读取一次ECU所输出的内容,此情形适用于像温度传感器这类变化较为缓慢的信号。方案B:将信号的上升沿或者下降沿进行绑定从而触发相应操作,这适合用于碰撞检测或者故障注入这类场景。取舍逻辑:采用轮询方式较为简单,不过会占用CPU资源,而事件触发方式具备实时性,但需要硬件提供支持以便能够进行边沿检测。DIO信号用事件触发,模拟信号用轮询加滤波。
【新手需防入坑】,事件引发时常见遗漏捕获或者重复引发情况。关键缘由在于,没有设置消抖时长(Debounce)。快捷方式是,在Trigger属性当中填入Debounce Time = 0.5ms,并且勾选“Edge only once”。
3. 高频报错“Time out waiting for response”完整解决流程
情况呈现为:运行测试脚本直至第三步时出现停滞状况,等待超过两千毫秒之后宣告失败。缘由链路包括:其一,CANoe通道未处于激活状态;其二,模型报文周期配置错误;其三,ECU应答ID被实施过滤。一种一站式流程:首先,开启CANoe Simulation Setup,去确认Channel 1的Start按钮呈现高亮状态;接着,进入Model Configuration,将Tx Message周期由“On Event”转变为Cyclic 20ms;随后,于ILFilter之中删除全部屏蔽ID,增添上0x7E0(请求ID)以及0x7E8(响应ID)。重跑,报错消失。
【新手需防】最为隐匿难找的乃是第三步里边的过滤表,相当多新手都忘掉了要清空其中的默认黑名单。要记着每次新建出一个工程之后,先对着 ILFilter 去右键操作,接着选择 Reset to Default。
仅本办法适用于标准CAN/LIN HIL仿真,不适用于的场景为:车载以太网(DoIP)或者FlexRay总线,其协议栈全然不同。替代的方案是:更换为Vector VN5640搭配vTESTstudio,其内置以太网仿真库。要是被测件属于老款8位MCU,那就把步长放宽至5ms以上。你在运行仿真测试自动化之际还碰到过哪些奇特的报错?在评论区抛出来一同解决。
微信扫一扫
还没有评论呢,快来抢沙发~