基于CAN通讯的上位机设计(很白很白的入门教程)

之前被分配任务做上位机,但是因为没有接触过CAN通讯,对于上位机只是处于使用阶段,所以花了很长时间才理清楚中间一些问题。文章主要针对刚接触CAN通讯和上位机的小伙伴,不知道怎么入手的小白可以从这篇文章里面找灵感。

1 设备支持

 市面上有很多CAN转USB的设备,这种设备一般叫CAN分析仪,主要功能就是把CAN信号转换成电脑能接收的USB信号。比较有名的是周立功的,我还用过其他的一些CAN,如果要做二次开发,即上位机,建议用周立功、创芯的。因为这两家的CAN分析仪二次开发的案例资料比较多、全面,更适合编程能力没那么强的朋友。

2 软件选择

我的是NI的LabWindows/CVI软件。这个软件入手比较容易,对具备一定C语言编程能力,但是没有那么专业的新手比较友好。利用这个软件做上位机可以分两个部分,一个是上位机界面,一个是底层代码编写,基本上会C语言的话就能入门。如果会用C++的话,Qt做上位机也是个合适的选择。

得解释一下为什么不用使用面更广得LabView,因为这个软件我还在学习过程中,它确实很强大,但是要做项目的话需要一定积累。新手可以接触了解,简单的项目应用不难,网上也有比较详细的教程。

还有其他一些上位机制作软件,可以根据个人实际情况选择。

3 关于CAN分析仪参数设置

关于CAN分析仪的参数一般包含波特率、CAN分析仪型号、CAN通道、帧格式、帧类型、索引号、滤波方式、接受模式等。CAN分析仪型号根据厂家定义,不同型号对应不同的阿拉伯数字,厂家提供的资料里有很详细的内容。索引号是指电脑连接了几台CAN分析仪设备,一般情况下都是一台,该值为0。其他参数会在项目通讯协议里有详细叙述,或者下位机设定。上位机是服务于下位机的,跟下位机保持一致即可。这些参数怎么设置在CAN分析仪厂家提供的文档里有详细叙述。

4 编写上位机的准备工作

以周立功CAN分析仪为例,厂家提供了如图所示的二次开发文件。

根据工程设计,把这些文件加到工程文件里即可。有了这些文件,才能对CAN分析仪进行操作,包括打开分析仪、接收数据等。

注意:不同厂家提供的二次开发文件不一样,不一定兼容。

5 数据怎么处理

上位机接收到的每一帧数据都有ID,根据数据定义内容,按ID处理数据即可。举个例子,我接受到ID为0x12345678的数据11 22 33 44 55 66 77 88,按照定义,这个数据第一位11是电压,单位是10V,无偏置,换算为十进制就是17,实际电压值是170V。第二位和第三位是转速,转速十六进制应该为3322,再根据单位、偏置计算实际转速值。

数据处理后,将数据显示在上位机界面即可。

6 总结

以上是我刚开始做CAN通讯上位机项目时最先面临的问题,现在有了一定的项目经验再回头看,这些事情很简单,可能叙述的不是很清楚,还有部分问题我不知道怎么描述,所以没有写。我能理解那种接触新任务的无力感,要求只说要一个东西,但是怎么入手很茫然。大家有任何问题都可以问,我能回答的一定回答。

### LabVIEW 上位机入门教程与资源 #### 一、LabVIEW简介及其重要性 LabVIEW (Laboratory Virtual Instrument Engineering Workbench) 是一种图形化的编程环境,广泛应用于测试测量、数据采集以及工业自动化等领域。对于工程师和技术人员来说,掌握LabVIEW可以极大地提高工作效率并简化复杂系统的开发过程[^1]。 #### 二、获取LabVIEW软件及安装指南 为了开始学习LabVIEW, 需要先下载并安装官方提供的最新版本软件。可以从国家仪器公司(National Instruments)官方网站获得免费试用版或购买正式授权版本。按照网站上的指导完成安装流程即可启动LabVIEW集成开发环境(IDE)。 #### 三、基础概念与界面操作 初次接触LabVIEW时,熟悉其独特的VI(Virtual Instrument)结构至关重要。每个VI都包含了前面板(Front Panel),用于显示输入输出控件;后面板(Block Diagram), 进行逻辑编写的地方; 和图标/连接器(Icon/Connector Pane),定义子VIs之间的参数传递方式。通过在线帮助文档和内置的例子项目来逐步探索这些基本组件的功能特性。 #### 四、实践练习:创建简单应用程序 尝试构建一些小型实验性质的应用程序有助于加深对LabVIEW的理解。比如制作温度监控系统,利用传感器读取当前室温并通过图表实时展示变化趋势。这类动手实操不仅能让理论知识得到巩固,还能激发创造力,在解决问题的过程中积累宝贵经验[^2]。 #### 五、进阶主题探讨 当掌握了基础知识之后,就可以向更高级别的课题迈进。例如研究如何与其他硬件平台建立通讯链接,像PLC控制器、摄像头设备或是基于以太网协议的服务电机控制系统等实际应用场景中的技术实现细节。另外还可以关注跨语言协作方面的话题,如怎样借助外部API接口让Python脚本调用LabVIEW内部功能模块,从而达成两者间的无缝对接效果[^3]。 #### 六、社区支持与持续学习路径 积极参与国内外各大论坛交流群组讨论,订阅相关博客文章更新推送服务,定期参加线上线下培训课程等活动均有利于保持对该领域前沿动态的关注度,并且能够在遇到困难时刻迅速找到解决方案。此外,许多第三方开发者也会分享自己编写的开源库文件供他人参考借鉴,这无疑为个人成长提供了更多可能性[^4]。 ```python # Python 调用 LabVIEW 函数示例代码片段 import labview_interface as lvi def call_labview_function(): result = lvi.execute('MyLVFunction', {'input_param': value}) return result['output'] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值