一般大家都是在Windows系统下进行NI硬件的应用,但是使用Linux系统并用C语言进行数采的用户也不在少数。
Linux操作系统具有支持多用户,多进程,多线程,多平台,良好的界面与丰富的网络功能等优点。以CentOS 7为例,怎么在Linux系统下进行NI 驱动的安装和C范例的调用呢?
本文教程:
CentOs 7系统下的NI驱动安装及C范例调用
一、设备及环境
硬件:PXIe-8135,PXIe-1071,PXIe-4081,PXIe-4082。 系统:CentOS 7 二、 如何选择NI驱动安装包前面我们得知了嵌套操作者传送消息的方式是抽象消息,那么接下来,小编将手把手教你如何在LavVIEW中创建抽象消息。
1. 确定NI设备与系统的兼容性
下载Linux系统,确定使用的NI 设备可以在什么版本的Linux系统下使用。
搜索NI设备所需要的驱动与系统的兼容性,如下图所示:
选择Linux CentOS 7作为操作系统。
2. 下载Linux CentOS7
下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/ 选择安装镜像的版本,如果可以联网一般选择DVD.ISO,不可联网选择Everything.ISO。
3. 安装Linux CentOS 7系统
选择桌面Gnome安装。于网络与设备中识别到该控制器的网卡。
4.下载NI 驱动
根据所选板卡,需要于NI 官网查看系统与驱动的兼容性。这点非常重要,不然一系列操作完成之后,发现无法识别板卡又需要从头开始安装驱动了。 由PXI-4081的系统支持表可知,CentOS7系统下4081的使用需要安装20.1以上的NILinux驱动。
NI Linux驱动包下载链接:https://www.ni.com/zh-cn/support/downloads/drivers/download.ni-linux-device-drivers.html#409880
下载并解压2021Q3的NI Linux驱动包,并通过刻录软件刻录于CD中。
二、 安装NI驱动
1.拷贝NI 驱动
利用光驱将CD内的安装文件复制到Linux的文件夹中。
安装文件中共有六个rpm文件, 在CentOS7系统中,需安装第三个NI Linux 驱动包。
2.下载NI驱动
右键驱动所在文件夹,选择在终端打开。
输入su进入root模式。
输入sudo yum update以更新系统内核。
输入yum install ni-rhel7centos7-drivers-2020.rpm
注意,遇到Y/D/N的时候都输入Y以进行下一步。
3.安装DMM驱动
Linux中NI驱动的名字如下图所示。
根据需要选择Linux大包驱动里的子驱动,由于本教程以DMM板卡为例,故需要安装NI-PXI Platform Services、NI-DAQmx、NI-DMM。
下载NI-PXI Platform Services,则于终端中输入:
yuminstall ni-pxiplatformservices
下载NI-DAQmx,则于终端中输入:
yum install ni-daqmx
下载NI-DMM,则于终端中输入:
yum install ni-dmm
yum install ni-dmm-daqmx
启动NI内核驱动程序,于终端中输入: sudo dkms autoinstall 遇到Y/N都输入Y。 注意啦,安装完毕后需要重启控制器或设备哦! 三、验证驱动是否安装成功
驱动安装成功后,需要验证DMM卡是否可以正常识别。
于计算机中var/lib/ni-dmm/nidmm408x.config里可以看见当前已识别到的408x系列DMM卡,如下图所示。
该文档中可以看见机箱PXI插槽中插入的两张DMM板卡,并且列出了其SN号和序列号。当看到该配置文件里面列出来实际的板卡时,就证明当前安装的驱动识别到了板卡,驱动安装成功。 注意,DMM板卡的识别是通过config文件来得知的,而一般的DAQ数采板卡可以通过指令nilsdev – verbose来识别NI设备。下图展示了通过指令来识别PXIe-5112的终端界面。
四、试跑DMM范例
安装好驱动并识别到板卡后,要怎么使用板卡进行数据采集呢?接下来我们来试跑一下DMM的范例,看一下在Linux系统下使用数采板卡的C范例位置和使用方法吧。 于计算机中usr/share/nidmm-devel/examples中可以看到DMM的C范例。
在这里以直流电压单点采集为例,打开Single_Point/Measure_DC_Volts。一个为makefile一个为单点采集直流电压的范例。
于文件中下右键打开终端,进入root模式(代码su),输入make编译makefile文件。Make后文件夹中会多出两个文件,其中带齿轮的文件为可执行文件。
在root模式下输入 ./Meaure_DC_Volts 运行可执行程序,并输入DMMconfig文件中板卡的名字,即可运行范例,并读取当前输入的电压值。
我们可以看到信号发生器输出的5V电压,通过DMM卡的电压输入端口准确采集到了,并且在单点数据采集范例中的reading行显示当前单点电压为5.000661V。
以上就是如何在CentOS 7系统下安装NI 驱动并调用C程序进行数据采集的教程啦。
在Linux系统下的NI驱动安装和Windows系统下的安装大相径庭,运用终端操作台和指令进行不同驱动安装的过程中会发生各种问题,有的是系统内核没有更新的问题,有的是驱动不匹配系统导致的,有的是网络没有连接导致的。在Linux系统下运用NI数采设备也是一门大学问,多多学习多多运用吧!
对NI知识感兴趣的工程师们,欢迎持续关注、留言和点赞,也可以私信小编各位的技术困惑和技术需求,以获取参加免费线下培训和技术交流的机会哦。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !