转载:http://www.javashuo.com/article/p-dhzpwrqj-mz.html数组
1 CustomDevice开发框架
CD的开发必须遵守NI提供的模板进行。安装完Veristand以后,会在LabVIEW 安装目录下的vi.lib文件下生成【NI Veristand】目录,例如我安装的LabVIEW2015在D盘下,须要的工具就在D:\Program Files(x86)\National Instruments\LabVIEW 2015\vi.lib\NI Veristand\Custom DeviceTools\Custom Device Template Tool\ Custom Device Template Tool.vi。打开这个VI,使用它生成一个工程。工具
1.1 工程生成工具:Custom Device Template Tool.vioop
图12 CD工程生成工具VI.net
新建一个工程,设置名称为【485 comm】,设置工程存储路径后,设置参数Execution Mode,是别的,这个尚未闹明白是什么意思。保持默认。3d
1.2 Custom Device Types调试
1.2.1 AsynchronousCustom Devicesxml
已参见帮助文档,待补充。blog
1.2.2 简历工程队列
运行后看效果。
图13 CD工程
居然是个LabVIEW的工程。工程名后面自动追加“Custom Device Project”,同时生成两个lvlib库和一个xml文件,库中的VI名称自动命名,不能修改。
最重要的四个文件以下:
图14 四个VI
Initialization VI.vi 实现的功能是当 Veristand 中建立该 Custom Device 时,为Custom Device 建立相对应的属性和输入/输出通道; Main Page.vi 实现的功能是在Veristand 中显示 Custom Device 相对应的通道和属性信息; RTDriver.vi 实现的是当Veristand 将 Custom Device 部署到 Real-Time 系统以后, Custom Device Loop 中 Custom Device如何执行本身的工做。所以能够看出,前二者(Initialization和main page)运行的环境是上位机(Windows开发程序平台),能够加入“弹出对话框”等调试方式,后者的主要操做环境是 Real-Time,若是要输出调试信息,就要
采用前面提到的 Print NI VeriStand Debug String。
1.3 Initialization VI
默认的框架是这样的。
图15 Initialization框架
这个框架的主要功能就是定义你的设备的输入、输出和一些属性。整个VI的输入输出是固定的了。最经常使用三个VI:
:建立设备的输入和输出通道功能类型,并指定其属性和page,其中输入和输出的数据都是浮点数。这里定义的输入和输出是指的板卡或者设备自己的,相对于Veristand这个要调用他的平台,设备的输出是要给到平台的输入。
:具体指定输入和输出的通道名称、单位、默认值等信息。
图16 设定输入、输出通道
:设置自定义设备的属性和属性的值类型,默承认选择。
属性和输入/输出的区别在于:属性在配置好以后, Veristand 在 Custom Device Loop 中只会颇有限次数的访问该信息,而输入/输出在 Custom Device Loop 的每一次循环中都会被使用到;属性的数据类型包含的种类不少,好比布尔,数值,字符串,数组、变体(簇转换)等;输入/输出的数据类型在Veristand 中被限定为Double,不能更改。
根据以上信息,设定个人串口通讯设备通道和属性以下:
图17 通道设置
建立了一个输入,两个输出,三个属性,可是这些是如何和板卡、Veristand联系起来的呢?
先搁置不说,等作完一个CD以后,导入到Veristand中再看。
1.4 Main page
Main page的做用是将Initlizantion中设置的属性应用起来,在Veristand中的界面展现。
图18 main page初始化前面板
在这里放置属性配置所须要的控件。当前CD中,属性有三个:串口配置参数和两个端口号。
图19 放置控件
在程序面板中,经过控件值变化的事件结构,将控件值赋给以前设置好的属性。程序中属性名称要和以前得一致。
:给属性赋值。具体实如今事件结构中,以下图所示。
图20 串口设置赋值
图21 Port1赋值
图22 Port2赋值
1.5 RT Driver
这个就是和板卡相关的了。设置的属性和输入输出通道,怎么做用于板卡,如何将数据上传到Veristand,就在这里实现。
首先,先看下整个大过程的数据流是如何执行的。初始化给了两个队列引用进来。
图23 输入、输出队列引用
1.5.1 DeviceOutputs FIFO
设备采集到的值给系统传送队列,对应的板卡采集/读取等操做,将获取到的数据以数组的形式经过这个队列发送到系统中。
图24 板卡的采集区域
同理,Input队列就是从系统中获取到要操做的值,写入板卡中。
图25 板卡写操做区
在此以前,板卡须要初始化、打开等操做。板卡的配置参数就从属性节点中获取到。
图26 获取属性值后配置串口并打开
图27 板卡写操做
图28 板卡度操做
读写部分完成以后,在最后面退出本VI时关闭资源。
图29 关闭板卡
以上,就完成了板卡的操做,并将数据经过队列与系统进行交互。
1.6 发布CD
图30 程序生成规范
在工程中,自动生成一个程序生成规范,最后生成的路径要选择在C:\Users\Public\Documents\NationalInstruments\NI VeriStand 2015\Custom Devices下才能被Veristand识别。
生成规范里面,目标目录不要修改,不然在加载以后会出现错误。
图31 生成路径
源程序和目标程序都使用默认的设置便可。
图32 CD发布
1.7 在Veristand中的应用
新建Veristand工程“485CD Test”,进行系统配置,
图33 在Veristand中导入
导入以后,自动加载配置的属性和通道。
图34 通道和属性节点
由上图能够看出,在Initialization VI中设置的通道名、属性名称和默认值都在这里显示,两个功能块,一个输入两个输出通道,属性面板上就是main page VI 的控件。--------------------- 做者:NUC-94210 来源:CSDN 原文:https://blog.csdn.net/mfcjishiben/article/details/79417739 版权声明:本文为博主原创文章,转载请附上博文连接!