虹科CANEasy的开发-VBA篇

描述

 


 

如果想要在CANEasy中实现自动化功能,那么最快的方式就是使用里面的VBA功能。VBA最常见的是在excel和word中被用于开发的宏。在CANEasy中使用的方式和它们也差不多:我们需要在宏内,让变量匹配到软件中的对象,然后用代码去控制它们

 

新建一个VBA宏的方式,只要选择VBA,然后右键菜单选择新建。这时候会弹出一个VB编译器的界面。


 

汽车以太网

 


 

今天我们会做一个简单的实现crc和counter功能的代码,为了方便,我们可以先和硬件建立连接,并新建一个想要实现该功能的报文。具体的步骤可以来咨询虹科。
 

汽车以太网

 

 
 

 

2


   
首先,我们在代码中新建ECU和CAN报文,然后把它们匹配到对应的Object。这里我们按照编号来选择第一个Channel和第一个Control unit,因为这里我建立的对象都只有一个,可以直接匹配到想要的内容。除了像这样匹配序号:

Set ecu = canbus.ControlUnits(1)

直接匹配名字也是没有问题的

Set ecu = canbus.ControlUnits(“ECU”)

 

汽车以太网

 

 

汽车以太网

 

 

在匹配CAN报文的时候,我选择利用for...each语句进行轮询,保证使用CAN ID为0x123,这样以后新建报文也不会打乱这个顺序了。如果没有对应CAN ID的报文,那么宏也无法执行成功。
 

 

关于调用的顺序和能够使用的属性和方法,可以在帮助文档中找到。目前帮助文档的版本有些旧,我们会在后续推出用Doxygen输出的帮助文档。

 

汽车以太网

 


 

 

 

 

3

 

接下来只要把crc的算法放到VBA的宏里即可。这里我选择调用message里的send方法,在宏里控制发送时间。


 

汽车以太网

 


 

结果如下图:


 

汽车以太网

 


 

 

4

常用内溶



 

那么接下来讲一些常用的内容:

make report方法可以把内容输出到CANEasy的状态栏,比较常用

例如:MakeReport "Connected to bus: " + canbus.Name, ReportTypeInformation


 

 

汽车以太网


 


 

CanEasyApplication.Sleep 10,它的含义是让程序等待10ms,这里我选择用它来控制报文循环发送的时间。当然,更合适的方式是用event功能,可以在每次报文发送前修改其中的内容。这部分可以参考帮助文档,这里就不做赘述了。不过需要注意的是,这时候需要在主页面提前设置好报文发送的循环时间。


 

 

汽车以太网

 

 

 

另外,关于设置crc,我们也可以利用CANEasy提供的插件,不过这个的详细使用方法就留到下期再说吧。


 


 

汽车以太网

 

 


 

 


如果您想要了解更多相关信息,欢迎来电或留言咨询,我们将竭诚为您服务!
 

 


 

虹科汽车电子事业部


 

虹科汽车电子事业部在汽车总线行业经验超过10年,与世界知名的CAN、LIN总线供应商PEAK-System、Lipowsky、IHR等合作10年之久,提供领域内顶尖水平的CAN/LIN分析仪和测试方案,同时也提供汽车以太网,时间敏感网络(TSN)的仿真测试工具和方案。虹科自主研发的EOL测试软硬件系统已经在业内完成多次安装和测试,事业部所有成员都受过国内外专业培训,并获得专业资格认证,工程师平均5年+技术经验和水平,一致赢得客户极好口碑。虹科车辆网络事业部致力于为您提供最专业的服务。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分