迁移笔记

高能预警:此文属于GaoleNg技术贴,如阅读后患急性间歇性精神病,莫要找我,找医生。


此项迁移工作目前在Coyote Host与Hujin-RT计算机完成,通过了初步测试,尚未与HIL Works正式合并。

迁移之前的ESC_HIL的工作基本情况如下:

在Coyote计算机上使用CarSim 8.2.2(正式授权),运行的HIL程序是ABS测试,目标RT是在Hujin-RT。这项测试的程序包含下列程序和代码:

  • CarSim 8.2.2,其中设置了ABS直线制动测试的工况;
  • LabVIEW 代码

clipboard

 

clipboard[5]

迁移的工作就是移花接木,首先参照CarSim 8.2.2中的工况设置,在CarSim 8.02中重建对应的ABS制动工况,其中主要重建的内容是:

  • Procedure,就是ABS制动测试工况;
  • Set_Brake_Pedal_Force 函数;
  • HIL_ABS/ESC_Performace也照葫芦画瓢抄过来;
  • 车辆可以任意选一个CarSim提供的车辆:

clipboard[7]

建立好CarSim的数据之后就对LabVIEW代码进行修改,修改的方式是先不管3721,运行一遍看看出现什么错误。

第1次运行

在LabVIEW代码没有进行任何修改的情况,程序可以下载到RT,LabVIEW也在运行,但是CarSim根本不工作。运行之后CarSim放在RT上的Run_log.txt文件里面是一片空白。猜测这是一个低级错误——LabVIEW中包含的CarSim DLL不对——因为这个LabVIEW工程原先是与CarSim 8.2.2配合的,代码中引用的是CarSim 8.2.2的DLL,这个因素在此次运行之前就想到了,但是还是运行一次的比较保险。

那就对LabVIEW中与CarSim相关的DLL逐一用CarSim 8.02的对应文件进行替换,应该是下图中红色圈圈显示的4个引用文件:

  • i_i_Init.vi,
  • i_i_Step.vi,
  • i_i_Terminate.vi,
  • LVRT_i_i.dll

clipboard[9]

 

第2次运行

这次运行结果与上一次稍有不同,CarSim还是没有运行,但是Run_log.txt终于有记录了,log显示CarSim License错误——经过前几礼拜对不同版本CarSim的RT模块测试,姑且认为这是一个CarSim无赖错误,明明是有正式RT授权的,偏偏要说授权证书错误。

干脆不用CarSim的正是授权。

第3次运行

用破解版的CarSim 8.02向RT重新发送数据,运行LabVIEW程序——LabVIEW和CarSim都跑起来了,但是测试还没跑完,程序就终止了。接着检查Run_log.txt文件。log最后一行说Event中的变量T无法识别。

按道理说T就是CarSim的时间变量,CarSim 8.2.2的ABS工况就是在Event的判断条件中用的变量T——到了CarSim 8.02竟然不识别了,换了一个别的办法,在判断条件中使用了一个自定义的时间变量。

接着Run——OK,成了。