目前自身的产品是win10/ubuntu22.04下的PCIE板卡的驱动程序,想要实现在LabView下也能控制该驱动并且可以被NI MAX识别该如何做呢?对此我也查阅了一些资料,但涉及的内容较少也有一些疑问
1.NI开发的第三方驱动到底是哪种形式的?我官网介绍整个驱动都变成DLL也就直接在LabVeiw导入,对此我存在质疑想确认下最终的实现真的驱动都不需要安装了吗?我所了解的只是将用户层的DLL导入到LabVeiw中使用
2.通过LabView或LabWindow(IVI driver)创建项目时的Driver是否是开发驱动用的?但我在里面并没有找到PCIE接口相关的项目,是否不支持PCIE的驱动开发呢?
已解决! 转到解答。
如果已经有了现成的驱动,可以使用LabVIEW 对DLL进行封装调用。驱动还是需要安装的,LabVIEW只是在C API的基础上进行封装和调用。注意Ubuntu的库必须从源代码重新编译为SO文件。
使用IVI驱动必须符合IVI规范,主要提供一个HAL框架,底层可以支持PCIe通讯。详情请见ivifoundation.org/downloads/IVI short guides 2015/Using IVI with LabVIEW.pdf
如果没有现成的驱动,可以使用NI-VISA驱动。参考Configuring the NI Real-Time Environment and NI-VISA to Recognize a Third Party Device生成INF文件,然后使用NI-VISA API对PCI地址进行读写。GE 5565 PIORC - PCI, PXI/CompactPCI Driver for LabVIEW就是一个基于NI-VISA对PCI板卡进行通讯的范例。How to Install the Driver of GE cPCI-5565PIORC?
意思目前我的驱动已经有了的话其实就做一层用户层接口的so封装然后提供给LabView调用即可?
但由于并不是NI-VISA驱动没有符合IVI规范,所以最终的驱动可以被LabView使用但无法被NI-MAX识别?
另外我还想问一下我把X86的机器安装NI LINUX RT系统查看IP的时候只有一个IO也就是127.0.0.1,而我用虚拟机桥接模式情况下是有一个eth0的IP的并且本机主机通过NI MAX是可以识别到远程RT机器的(也就是NI MAX远程系统下扫描到的)
意思目前我的驱动已经有了的话其实就做一层用户层接口的so封装然后提供给LabView调用即可?
正确
但由于并不是NI-VISA驱动没有符合IVI规范,所以最终的驱动可以被LabView使用但无法被NI-MAX识别?
NI MAX的底层是NI-System Configurator 驱动,只能关联NI驱动。NI MAX可以识别所有包括没有驱动的板卡,但是会显示为“未知设备”。如果想要显示板卡型号和厂商等信息,必须使用NI-VISA Development Wizard 生成INF进行关联。
另外我还想问一下我把X86的机器安装NI LINUX RT系统查看IP的时候只有一个IO也就是127.0.0.1,而我用虚拟机桥接模式情况下是有一个eth0的IP的并且本机主机通过NI MAX是可以识别到远程RT机器的(也就是NI MAX远程系统下扫描到的)
NI Linux RT不支持非NI控制器的设备,不能确保在台式机上也能正常运行。虚拟机模拟的是cRIO。
Does NI Offer NI Linux Real-Time for Desktop PCs?
非常感谢你的回答,解决了我很多困惑。看到
的介绍我怀疑是本身硬件的网卡NI LINUX RT不支持(不过物理机上NI LINUX RT系统还是安装成功了的),我的网卡是"Realtek PCIe GBE Family Controller"(看链接里介绍的都是英特尔和英伟达的显卡)。
此外我用vmware安装的ubuntu里通过" lspci | grep -i net"查看了下确实显示的网卡居然是英特尔的, 而安装的NI LINUX RT查询不到结果,二者都是通过桥接模式安装的
Pharlap ETS 是由第三方公司Pharlap(已被IntervalZero收购),基于Windows开发的实时操作系统,因此驱动的支持可能比较完善。
而NI Linux RT是NI研发基于Linux Kernel自行开发的,对非NI设备的驱动没有进行过优化和验证。
Does NI Offer NI Linux Real-Time for Desktop PCs?
按照Pharlap ETS的意思是完全可以替代NI LINUX RT在第三方机器上作为LabView的远程机使用吧
你发的这个信息之前我看到了,但是同时也看到说从2020开始就已经不支持了
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000x4PhCAI&l=zh-CN
但我可以再去找一找资料试试看
2022年后不支持PXI Pharlap。如果想要在台式机上安装实时系统,最后的版本是LabVIEW 2021。2022或之后的版本只支持NI Linux RT,但是NI Linux RT官方是不支持台式机的。不排除有用户成功在台式机上安装NI Linux RT,但是NI无法提供支持,如果遇到什么问题就只能自求多福了。
是的,所以目前我打算还是再看看资料到底选择哪一个系统成功率高一些,NI LINUX RT我看到有帖子用英特尔的网卡是成功安装了的,我也问了的确我的"Realtek PCIe GBE Family Controller"在 NI LINUX RT中没有直接的网卡驱动支持
这是相关的操作链接:
https://zhuanlan.zhihu.com/p/650713680
以下沟通的一些信息:
问:Hello,看到你发的"在x86电脑上安装NI Linux RT"方便问一下你用的是什么物理机吗?我这里发现安装后不显示网卡eth0,我的网卡是Realtek PCIe GBE Family Controller
答:这个原因就是你的Realtek网卡,因为NI Linux RT的包里面是不含Realtek的网卡驱动的。我也是在有Intel网卡的工业嵌入式电脑上安装成功的。Realtek网卡的比较的麻烦,你需要自己在Liunx中安装它的驱动才能使用它。
看Phar Lap ETS 实时目标的台式电脑的要求感觉也是不支持我的网卡要求的,另外是不是可以这么理解:Phar Lap ETS 就是最后演化成NI Linux RT的