Veristand学习札记(3)- CD的开发
转载:https://blog.csdn.net/mfcjishiben/article/details/79417739
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.vi
图12 CD工程生成工具VI
新建一个工程,设置名称为【485 comm】,设置工程存储路径后,设置参数Execution Mode,是别的,这个还没有闹明白是什么意思。保持默认。
1.2 Custom Device Types
1.2.1 AsynchronousCustom Devices
已参见帮助文档,待补充。
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
版权声明:本文为博主原创文章,转载请附上博文链接!
Veristand学习札记(3)- CD的开发的更多相关文章
- BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计
感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉. 上节课是入门,这节课就已经开始进行视图设计了. Windows应用 ...
- VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式
原文:VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式 Excel包含很多公式,如数学.日期.文本.逻辑等公式,非常方便,可以灵活快捷的对数据进行处理,达到我们想要的效果.Exce ...
- Masonry学习札记
Masnory学习札记 在之前的文章里有草草提到过Masonry自动布局,可这么重要第三方布局框架的怎么可以怎么随便带过呢!昨天在完成页面的时候刚好遇到了被Masorny功能惊叹的部分,所以趁热打铁写 ...
- Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行
1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用 ...
- 【转发】NPAPI学习(Firefox和Chrome扩展开发 )
NPAPI学习(Firefox和Chrome扩展开发 ) 2011-11-08 14:41:02 by [6yang], 1172 visits, 收藏 | 返回 Firefox和Chrome扩展开发 ...
- [原]零基础学习在Android进行SDL开发系列文章
[原]零基础学习SDL开发之移植SDL2.0到Android [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 [原]零基础学习SDL开发之在Android使用SDL2.0显示 ...
- Spark菜鸟学习营Day5 分布式程序开发
Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...
- SQL菜鸟学习札记(一)
刚开始学SQL,从最基础的语句开始写,用一个LOL数据库做实验.目前使用的工具是MySQL Workbench,感觉比较顺手,界面没花多久时间就读懂的差不多了,所以目前就使用这个工具来做SQL的学习了 ...
- java学习札记
java学习札记 0x0 学习原因 本来打算大三再去跟着课程去学习java的,但是现在题目越来越偏向java,所以迫于无奈开启了java的学习篇章,同时也正好写个笔记总结下自己学习一门语言的流程. ...
随机推荐
- selenium基础(控制浏览器)
python基础(控制浏览器) 控制浏览器 控制浏览器窗口大小 设置浏览器屏幕大小方法:set_window_size() 浏览器最大化:maximize_window() 浏览器最小化:minimi ...
- LINUX交换分区
交换分区最大容量为64G,最多只能建32个, 创建交换分区 #fdisk /dev/hdaànà+容量àpàt(修改系统ID)à分区号à82àpàw #mkswap /dev/hda ...
- JS流程控制语句 重复重复(for循环)语句结构: for(初始化变量;循环条件;循环迭代) { 循环语句 }
重复重复(for循环) 很多事情不只是做一次,要重复做.如打印10份试卷,每次打印一份,重复这个动作,直到打印完成.这些事情,我们使用循环语句来完成,循环语句,就是重复执行一段代码. for语句结构: ...
- JavaScript特效源码(7、页面特效二)
7.将站点加入频道栏 将站点加入频道栏[看详细说明] ====1.加入channel的方法:使用如下连接指向你的频道文件*.cdf. <a href="javascript:windo ...
- Ubuntu vi命令
最近在使用ubuntu,在linux下,要编辑文件或者其他的文本文件,哪那么一个ubuntu linux下的强大的文本编辑工具就不得不提了,那就是VI编辑器.下面把VI常用到的命令行贴出来. :w ...
- Java事件监听机制与观察者设计模式
一. Java事件监听机制 1. 事件监听三要素: 事件源,事件对象,事件监听器 2. 三要素之间的关系:事件源注册事件监听器后,当事件源上发生某个动作时,事件源就会调用事件监听的一个方法,并将事件对 ...
- 廖雪峰Java13网络编程-2Email编程-2接收Email
1接收Email协议类型 接收Email:收件人通过MUA软件把邮件从MDA抓取到本地计算机的过程. 1.1 POP3 从MUA到MDA使用最广泛的是协议是POP3 Post Office Proto ...
- Windows安全证书生成方法(开发者证书)
首先,查看本机安装的证书可在“运行”中输入:certmgr.msc 一.win8.8.1.win10系统,使用管理员powershell创建证书: (1)利用如下命令来创建证书并获取到其指纹 New- ...
- 转:如何成为Linux高手
源地址:http://www.douban.com/note/60936243/ 经过几年的发展,公司在互联网公司里面也算是大公司了,线上机器使用的操作系统都是Linux,部门有几个同事,天天都跟Li ...
- <b> <i> 标记
<b></b> bold 加粗 <i></i> italic 斜线 : 对应Word文档的 I 斜体 <u></u>unde ...