Kvaser Leaf light HS v2 | 如何使用Excel发送和接收CAN报文数据

本文详细介绍了如何使用MicrosoftExcel的VBA功能结合KvaserCANlib库,实现从Excel单元格向CAN总线发送和接收数据。通过VBA代码示例,展示了如何在Excel中处理CAN总线通信,从而在日常工作中利用Excel进行数据收发和分析。此外,还讨论了32位与64位Office的区别以及多任务处理的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从1980年代,Kvaser就开始CAN产品的研发,在相关产品开发领域有近40多年的经验,对CAN和相关总线技术有着非常深入的研究。我们将分享一些有趣的发现和一些特定情况的技术处理,欢迎关注❤️广州智维电子科技有限公司❤️!
所有人的电脑上都有Microsoft Office,平时我们用它列表和计算,除此之外,它还可以被用来进行CAN总线数据收发的工作,进而辅助你进行其他工作。本文就由Kvaser客户软件经理Dan Arvidson分享如何巧用Excel进行该操作。

我们可以利用Windows电脑上的Microsoft Office Excel进行如下操作:
◾从工作表中的任意单元格向CAN总线发送数据
◾以工作表的任意单元格从CAN总线接收数据
Kvaser CANlib可用于Visual Basic for Applications (VBA)。此多功能库支持Kvaser的所有适配器,并辅助你编写高级和创新的解决方案。

有这么多其他语言可以用,为什么还要使用VBA呢?
首先,如果你平时使用Microsoft Office,那么使用它会更容易。Excel使用广泛,通过VBA,你可应用Excel的所有功能,以及你自己的创意和创新想法。另外,使用Excel不会产生额外成本,也更方便与他人或其他公司分享数据。

本文我们会简要介绍如何在Microsoft Excel中使用CANlib、VBA向CAN总线发送/接收数据。

应用此方法,你需要:
根据本文的步骤,你需要使用Kvaser CANlib和Excel VBA。任意版本的Microsoft Office都可以,但最好是Office 2010,因为VBA 7是在2010年推出的。64位和32位Office均可使用(请参阅下文“VBA实例”中的“32和64位Microsoft Office”内容)。本文中,使用的是Office 365和Excel(版本2202 Build 16.0.14931.20116)64位。
你还需要安装“用于Windows的Kvaser驱动程序”。请咨询客服13824417328获取最新版本CANlib并依照其步骤进行安装。如果你需要进一步使用CANlib,我们建议下载Kvaser CANlib SDK,从上述同一链接即可获得。

VBA介绍
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。它也可以说是一种应用程式视觉化的 Basic 脚本。
VBA是Microsoft编程语言Visual Basic 6的一个子集,它使用同一编辑器的精简版本以及类似的调试功能。因此,如果你了解VB6,也就能了解VBA的使用方法。Visual Basic是为了简化编程而创建的,VBA编程的过程不难,使用它就类似于用英语的语句来告诉电脑该做什么。

Application.ActiveDocument.SaveAs (“New Document Name.docx”)
将活动文档另存为 “New Document Name.docx”

需要注意的是,VBA是单线程的,这意味着它将一次执行一个任务。(请参阅下文“VBA示例”中的“多任务处理”内容)

默认情况下,Office不显示“开发工具”选项卡,你必须通过如下步骤启用它:
1️⃣从“File文件”选项卡中,选择“Options选项”打开对话框。
2️⃣选择对话框左侧的“Customize Ribbon自定义功能区”。
3️⃣在对话框左侧的“Choose Commands From从中选择命令”中,选择“Common Commands常用命令”。
4️⃣在右侧的“Customize the ribbon自定义功能区”中,从下拉列表中选择“Main Tab主选项卡”,然后选择“Developer开发工具”复选框。
5️⃣选择OK。

从“开发工具”选项卡,你可以打开编辑器并创建按钮、下拉菜单等。或者,你可以在Office应用程序中使用快捷键:ALT+F11。

如果你还是不了解如何操作,可以在网上进行VBA示例搜索,即使需求不完全相同,你也能从中参考到类似的步骤。
VBA实例
第一个示例将显示当某个单元出现更改时如何作出反应,并将该值发送到CAN总线。
在VBA编辑器中,双击你需要对其作出反应的单元格所在的工作表,然后选择该工作表的“更改(Change)”步骤。
在这里插入图片描述每当该工作表中发生更改时,都会执行工作表更改事件,将其缩小到特定的一个单元格,我使用VBA中的Intersect()函数。此函数确定更改的单元格是否与我们指定的单元格“匹配”。为了简化此示例,我假设工作表处于活动状态,并且我们要发送的值介于0-255之间。有关canWrite中使用的参数,以及如何从CAN总线接收数据的更多信息,请见下一个示例。
在另一个示例中,我已将一个记录文件导入Excel(在此示例中,它是一个.ASC文件)。我这样做只是为了向CAN总线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值