硬件在环HIL集成CAN卡的详细教程
2019-05-12
以下内容来源于公众号“车辆技术”提供的用户体验报告,详细介绍ZLG USBCAN-II用于汽车研发过程中硬件在环HIL系统测试的操作步骤。
一、车速和扭矩信号
一般而言,我们在LabVIEW中使用ZLG的CAN卡(USBCAN-II),应该是下面这个方式:
这样,车速和扭矩信号的值,就获取出来了,我们在前面板上就能看到了。当然,实际使用中,还要在GetNum和Receive上面加个while循环,这样就能持续监测总线了。
二、模型调用
如何通过模型调用的方式,把它应用到HIL中呢?
我们首先要知道,所有的HIL系统,其“模型”都是以类似于PLC的方式运行的,因此,while循环是不可行的。
但是我们可以通过设置局部变量的方式,使CAN卡初始化只执行一次,后续只执行GetNum和Receive,程序框图如下:
当这个“模型”第一遍运行的时候,布尔的值默认为假,初始化部分执行,读取部分不执行,初始化成功之后,布尔值即变成真。“模型”第二次及以后运行的时候,初始化部分即不再运行,只运行后续的读取信号部分。
接下来,我们把这个VI编译成“模型”。我们先把“车速”、“扭矩”这两个控件连到接线端,然后通过genetrate model选项,生成“模型”,如下图:
之后在弹出的对话框中点“generate”,几秒钟之后就会显示生成成功了。
随后,我们打开Veristand,添加上这个“lvmodel”,就能看到HIL系统中的“车速”和“扭矩”这两个输出变量了,如下图所示:
然后,把这两个变量关联到HIL面板上,就可以使用了,RUN一下HIL工程,就可以观察到CAN信号的持续变化了。接下来,是做人工测试还是做自动化测试,都是很方便的。
上面的例子只说了读取,对于写入而言,如果您需要往总线上发送CAN信号,只要您会用LabVIEW发报文,也是很容易集成到HIL中的,方法类似,就不重复演示了。
三、应用场合
在某些应用场合,您可以用这种方式来在HIL中集成ZLG的CAN卡,ZLG的CAN卡相比NI原厂CAN卡,比较常见并且便宜不少,值得尝试。
四、小结
本讲上述例子中,调用CAN卡的节点,叫DLL动态库,这是几乎所有软件调用硬件的最通用方法,和ActiveX并列为当今世界软硬件接口领域的两大神器,尤其是DLL和Veristand相结合的时候,还会体现出一些新特性。师子一号才疏学浅,只能算作略通一二,仅能比划比划,但这对汽车行业而言,够了,正好还很通俗。