Labview的CAN通讯(Kvaser实现)

  • 首先你要有一根kvaser
  • 你要对CAN有那么一点点的了解
  • kvCanExample
  • 做自己的资源

首先你要有一根kvaser

一切的前提是硬件,当然如果你是那种靠俩根线自己写CAN大牛当我没说。供货商会提供相应的驱动程序“can King”,我建议先装上再说,不装也没关系,里面有支持Labview的资源,在“KvaSer驱动\Drivers\LabView Library”路径下可以找到,里面有两个Lib文件,我们要用的是KvCan.lib,另一个Kvlin.lib是做lin通讯开发。注意里面的kvCanExample,开始阶段全靠它,这是官方提供的一个CAN报文收发以及总线性能显示的范例,用起来很方便,简单的通讯,很直接。

你要对CAN有那么一点点的了解

注意我这里用的是了解,而不是理解,所以如果你是临时开发,且对此没有深入了解的,你只需要知道你要做的项目CAN相关的以下几个属性就可以了:波特率、通道(接收报文);报文ID、位数(DLC一般都是八位)、需要发送的数据字节内容、发送报文的种类有远程、标准、扩展(这个要搞清楚,不然发不出去)。如果你是团队开发,这就要问底层单片机开发人员,他们对这方面基本上都有研究,能过直接告诉你想知道的结果,不需要自己慢慢花时间去做功课,但如果只有你一个人开发,那就要弄清上述的几个属性,接收可以不做深入了解,但是发送绝对要弄明白,它的报文data bite和你想发送的内容之间是如何转换的,有时候就是差之毫厘的事情,能让你卡住几天。这里就不详细赘述了,有关CAN的规范有空我会专门总结。

kvCanExample

闲话不多扯,转入正题。这个范例虽然是官方提供的,但也不用过分膜拜,并以此为标准,范例虽然用着顺手但也不是十全十美,而且我们的最终目标就是写出属于自己的源程序,所以我们看范例的主要目的是扣用法,其中函数控件的用法。

这里直接截屏了,这是kvCanExample的前面板主要分三块:配置、发送、接收和总线状态,这是英文字面意思,实际上不是这样,详细来看配置是配置接收:选择通道(如无特殊配置默认选零);接下来的几个布尔灯不要操作(我一直没有进行任何操作);波特率需要选,最快1M最慢50K,如超过值域,请与厂家联系;GoBusOn按钮控件按下,Kvaser开始工作,received messages区域开始不断刷新显示接收到的报文;值得注意的是Send message这部分,报文ID在前面提到过了,我举几个例子:0x1000(扩展)、0x287(标准),DLC填8,data bytes是要发送的内容,最后是发送标准的选择:个人建议如果不清楚的情况下standard和extended分别试一试,remote出现的少。前面板部分就先讲到这边。

这个程序框图我不是很喜欢,有点乱,给人感觉就是想到哪里编到哪里的样子,由于程序框图太大,上图只截取了主要部分。上图的下半部分很明显有字节的输入。下图的我while循环框对应的就是范例发送CAN报文的部分,这也是我们要重点分析的部分。
在仔细观察后我们可以发现所有的配置信息和报文内容全都指向了kvCanWrite函数控件,见下图
这是及时帮助里的笼统解释,都是一些英文解释,很字面意思,主要是看引脚用法,英文就算不好也没关系啊,网上有在线翻译,弄清大概意思就成,最容易出错的地方是数据类型,在范例里面是没有问题的,问题是后面自己编写时,messageID和message是两个大坑,切记,切记。message是数组输入,默认八位data bytes(无符号字节,八位整型,十六进制),用创建数组函数创建,最后DLC进行控制发送位数,由“数组子集”函数实现,经处理过的函数发送至kvCanWrite的Message端口。kvCanWrite的channel handle的接入端在kvCanBusOn的channel handle(output only)如下图所示。
下图对应的是前面板的配置功能程序部分,对于这部分不用细致探究,依葫芦画瓢就成,但在后边自己用的时候,要知道设置波特率就成。

波特率在kvCanSetStdBusParams里设定,其中的Standard CAN Baud Rate可创建枚举类型的常量或输入控件。


在接收报文部分最核心的部分是由以下函数kvCanRead完成,我用的比较多的是MessageData引脚,输出一个有八元素数组。前面的初始配置完成后直接由ChannelHandle接入系统,即可实现收取CAN报文。

做自己的资源

官方提供的程序肯定考虑的功能比较多,如果直接用来作为引用势必会消耗不必要的资源,或者引起系统的不良反应,我们仔细观察上面的范例,它采用了双线程循环结构,系统控制比较乱。我们可以将上面各个功能的核心部分扣取出来重新组合,以达到更好地为我们所用的目的。初始化配置后接kvCanWrite就是报文发送;初始化后接kvCanRead就是接收报文,用法灵活多变,不拘泥于形式,配合上多线程消息控制,可完成基于Labview和CAN的通讯,采集。

Labview的CAN通讯相关推荐

  1. labview与PLC通讯

    labview与PLC通讯 1.西门子200,200smart,300,1200,1500 2.欧姆龙全系支持FINS(TCP)的型号 3.三菱编程口 全部都有对应的通讯的程序id=655848127 ...

  2. LabVIEW与Web通讯

    LabVIEW与Web通讯 Web客户端可通过LabVIEWWeb服务与远程LabVIEW应用程序交换数据.Web服务由运行在服务器上的VI和其他文件组成,这些VI对应于客户端发出的HTTP请求. L ...

  3. LabVIEW TCP网口通讯倍福 BeckhoffPLC ADS 通讯协议

    LabVIEW TCP网口通讯倍福 BeckhoffPLC ADS 通讯协议. 常用功能一网打尽. 1.命令帧读写. 2.支持 I16 I32 Float 批量读写. 3.支持字符串读写. 4.支持B ...

  4. STM32兴趣篇四:STM32F103C8T6工控板与LabVIEW的串口通讯实例

    串口通信(Serial Communications)是指外设与计算机间,通过数据线按位进行传输数据的一种通讯方式.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根 ...

  5. labview周立功can通讯程序.rar_使用Labview进行CAN 通讯之dbc解析

    作为一名汽车研发工程师,在工作中与CAN通讯打交道是不可避免的,其中CAN信号的打包与解析,是最令人头疼的事了,labview作为一种图形化编程语言,适合快速上手.而labview提供了许多的工具,有 ...

  6. labview 和lin 通讯_LABVIEW几种通讯应用1

    LABVIEW 通讯应用手册 1 . 上位机与PLC通讯模块 LabVIEW 集成了当前测控领域中多种先进的软件开发技术,可通过多 种方案实现对 PLC 的访问,本文采用 DataSocket 技术通 ...

  7. [LabVIEW] - CP1L与LabVIEW进行TCP通讯

    文章目录 使用硬件 & 软件 一.CP1L-M60 1.使用CP1W-CIF41上下载程序,确认PLC通讯是否正常 2.编写PLC测试程序 二.OPC设置 三.LabVIEW设置 总结 使用硬 ...

  8. labview PLC OPC通讯

    首先要在NI OPC上设置,然后在labview调用 概览 NI LabVIEW软件可以通过多种方式与可编程逻辑控制器(PLC)通信.用于过程控制的OLE(OPC)定义了在控制设备和人机界面(HMI) ...

  9. CoDeSys与LabVIEW进行OPC通讯

    硬件配置 一台工控机(安装CoDeSys) 一台笔记本(安装LabVIEW) 一根网线(连接工控机和笔记本) 网络配置 工控机网口IP设置为:192.168.1.3 笔记本网口IP设置为:192.16 ...

  10. labview 和lin 通讯_LABVIEW与API通讯

    Lancker( 原 Simwe 虚拟仪器技术版管理员,创建人之一) 「 LabVIEW 没有提供这样的功能, 必须呼叫 Windows API 」, 有时候笔者常看到有些朋友会问许多 问题,实在是因 ...

最新文章

  1. 报名 | 清华大数据论坛之深度学习技术与应用
  2. [2018-08-03] python开发个人资源共享网--第一天
  3. 与华为交换机用access_学校机房项目交换机的配置,理解这篇,交换机配置不再难...
  4. php 日期加减处理函数,php日期加减处理函数示例
  5. Oracle 12C -- 预定义audit policies
  6. centos7 改虚拟网卡名称
  7. 使用TensorFlow.js进行人脸触摸检测第2部分:使用BodyPix
  8. mysql5.5安装最后一步一直无反应_吉林电泳型材安装
  9. Kafka安装包下载地址
  10. 计算机网络职业生涯规划1000字,计算机职业生涯规划1000字
  11. 第九届蓝桥杯大赛青少年创意编程 SCRATCH 初级组试题解析
  12. 中国最美的经典古文名篇Top10,它们也是你心中的白月光吗?
  13. 明尼苏达计算机科学与工程,2019上海软科世界一流学科排名计算机科学与工程专业排名明尼苏达大学双城分校排名第101-150...
  14. 洛杉矶儿童医院被列为美国西部第一,在全美儿童医院中的总体排名升至第五
  15. RefreshLayout让你半小时以内完成一个列表界面
  16. Android 屏幕旋转 全解析
  17. MySQL 支持表情字符
  18. 如何从官网下载JDK安装包?
  19. R语言逻辑回归、方差分析 、伪R平方分析
  20. 跟着王家林老师实现自己的大数据梦想

热门文章

  1. python jinja2_Python jinja2
  2. 业绩梯队:让各层级领导者做出正确的业绩
  3. 淘宝首页性能优化的“黄金法则”
  4. 丁昊 北大计算机,北大清华17人!2018自主招生等类型入选名单公示,苏州333人!...
  5. 数据中心“容灾”和“备份”的区别
  6. Indented Inventory BOM如何转为最终的单层采购BOM
  7. 量化金融笔记1-股票量化基础
  8. Android 图片压缩详解
  9. SPSS 数据清理-基础
  10. python之 十进制与十二进制 相互转换~clash of coding