1、Custom Device是什么?
Custom Device其实相当于是Veristand软件中的插件,这个Custom Device插件的是通过Labview编程实现的,可以直接使用Labview的各种功能模块,并且能够快速串联NI-控制卡和其他Carsim、simulink模型等,进行数据交互,但注意上手需要一定的Labview经验。
2、如何制作Custom Device?
使用Labview的Custom Device Template Tool.vi 创建模板工程,然后通过编译生成库文件,再把库文件放在指定的Veristand调用路径下即可。
Labview 2020、Veristand 2020
NI-PXIe8880实时机、交换机
1.3.1 制作一个TCP读写的Custom Device:
1)创建5个输入变量,用于写入TCP数据;
2)创建5个输出变量,用于读取TCP数据;
3)创建Main page.vi中的变量(IP和端口号);
4)自定义配置面板通讯的IP地址和端口号;
5)将输入变量的数据写入TCP,读取的TCP数据输出到输出变量;
路径:
Labview安装路径\vi.lib\NI VeriStand\Custom Device Tools\Custom Device Template Tool\Custom Device Template Tool.vi
举例:
D:\National Instruments\LabVIEW 2020\vi.lib\NI VeriStand\Custom Device Tools\Custom Device Template Tool\Custom Device Template Tool.vi
首先打开Custom Device Template Tool.vi
1)选择编程模板的保存路径;
2)输入模板的名称;
3)运行Labview程序;
运行程序后会在模板保存路径下生成模板,并且会自动打开模板
Custom Device主要用到下述3个模板vi,而且要用到Labview的其他VI;
1)TCP Initialization VI.vi:创建输入输出变量、面板变量等;
2)TCP Main Page.vi:配置面板变量,用于更新面板变量的值;
3)TCP RT Driver VI.vi:获取面板变量的值,并处理输入、输出变量的值;
Add Custom Device Section.vi用于创建一个自定义设备的选项;
Add Custom Device Section.vi编程案例:
我们打开编程模板中的TCP Initialization VI.vi进行编程:
Add Custom Device Section.vi案例效果:
Add Custom Device Channel.vi用于创建一个输入输出变量
Add Custom Device Channel.vi编程案例:
Add Custom Device Channel.vi编程效果:
Set Item Property.vi用来创建TCP Main Page.vi中面板的变量,并且赋予初始值;
Get Item Property.vi用来获取TCP Main Page.vi中面板的变量的值;
1)创建5个输入变量,用于写入TCP数据(TCP Initialization VI.vi中实现);
2)创建5个输出变量,用于读取TCP数据(TCP Initialization VI.vi中实现);
3)创建Main page.vi中的IP和端口号变量(TCP Initialization VI.vi中实现);
如下图所示:红色框选部分使用的是Set Item Property.vi
4)自定义配置面板通讯的IP地址和端口号(TCP Main Page.vi中实现);
① 首先打开Main page.vi,添加名称为IP的字符串控件和名为端口号的数值控件,如下图红色部分所示;
② 设置IP和端口号的初始值;
通过Get Item Property.vi获取IP和端口号的值并且赋值给对应的面板控件;
③ 进入程序框图部分,添加IP值更新时的事件与端口号值更新时的事件,当控制值发生改变时就可以把控件值更新,以便我们在TCP RT Driver VI.vi中获取到最新值;
IP值更新事件:
端口号值更新事件:
5)将输入变量数据输入TCP,读取的TCP数据输出到输出变量(TCP RT Driver VI.vi中实现);
① 打开TCP RT Driver VI.vi,使用Get Item Property.vi获取Main page面板IP和端口号的值,并且打开TCP连接;(下图为TCP RT Driver VI.vi最左边的程序部分)
② 获取5个输入变量Input的值,并写入TCP;
下图红色标号1处表示的是从5个输入变量获取的一维数组值,按照Input0-Input4的值依次排列到数组中去,随后我们将输入变量的值转换成字符串输入到TCP中,如下图的红色标号2;
注:获取到下图5个输入变量的值,它们是通过RT FIFO Read获取的;
③ 将从TCP读取到数据填入5个输出变量中去;
下图红色标号2是读取到TCP中的数据转换成含有5个元素的数值数组**(5个数据依次放置一维数组),随后再通过RT FIFO Write依次输出到Output0 - Output4**,如下图红色标号1所示;
注:数值数组是通过RT FIFO Write输出下图的5个输出变量中去;
进入Veristand,右键Custom Device会自动获取到路径下的TCP Custom Device,选择后即可;
效果如下:
综上完成Custom Device的制作;