第5章 LabVIEW程序动态运行
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
43
类型操作
本例总结:
1.对于取到的引用句柄首先需要进一步细化到它 本身的类型 2.对于簇类型需要取出其内部的控件做进一步的 判断, 3.对于数字型控件,直接将引用句柄写入目标数 组。最终所有的数字型控件的引用句柄都将写入 目标数组。
Http://ccms.hust.edu.cn
44
动态运行编程实例
LabVIEW程序动态运行
Intelligent Electronics Institute Huazhong University of Science & Technology
目录
动态运行基础 动态运行功能 动态注册事件
动态编程实例
递归调用
Http://ccms.hust.edu.cn
2
动态运行基础
5.3 动态运行编程实例
1.属性设置和方法调用 2.动态调用 3.类型操作 4.远程调用 5.拖放应用 6.代码优化
Http://ccms.hust.edu.cn
27
动态运行编程实例
动态运行编程实例-属性设置和方法调用
程序运行前-用树形控件(Tree)表示 元素的从属关系
Http://ccms.hust.edu.cn
设计虚拟数字万用表,通过动态运行技术 来解决表头的显示问题
多个控件同步显示的效果
Http://ccms.hust.edu.cn
39
动态运行编程实例
编写程序分析: 1.先分析表头控件 2.从常数中分析簇中是否还有簇和其他的数字型控件
3.在常数中调出部分的标签
4.取出表头中控件的引用句柄,得到各控件类型描述
Http://ccms.hust.edu.cn
40
动态运行编程实例
制作表头:
解析表头控件
Http://ccms.hust.edu.cn
41
动态运行编程实例
获取目标引用句柄数组:
根据精度和量程定义数字显示格式字符串 修改控件属性
多对象属性设置
Http://ccms.hust.edu.cn
42
类型操作
关联属性
关联属性为对象提供更多的关联接口,包含在该对象中 的引用
Http://ccms.hust.edu.cn
14
动态运行功能
动态运行功能-方法调用
方法调用是对程序动作的控制;即对应用程序和 VI的操作。 常用方法: 1.连接响应-应用程序类方法 2.控件值”(Control Value) 3.运行VI”(Run VI) 4.前面板控制(Front Panel)
2.应用于其他非只用于动态调用。如TCP 网络连 接引用句柄、事件发生引用句柄等
Http://ccms.hust.edu.cn
7
动态运行功能
5.2动态运行功能-相关函数
1. 动态运行技术在整个 LabVIEW 编程环境中是 相对独立的部分,需要几个简单的函数就可以 实现功能 2.主要在应用程序控制选板中
Http://ccms.hust.edu.cn
12
动态运行功能
属性设置实例
方式属性设置
Http://ccms.hust.edu.cn
13
动态运行功能
动态运行功能-属性控制
显示属性
显示属性包括对象的颜色、大小、隐藏属性等
状态属性
状态属性指示对象的当前状态 信息属性
信息属性
返回对象相关的信息,字符型或者数值型
Http://ccms.hust.edu.cn
11
动态运行功能
5.2动态运行功能-编程步骤
1.配置动态运行的属性,包括TCP/IP地址、访问账户 等 2.建立VI引用。用“获取VI引用”函数建立VI引用 3. 用“属性节点”或者“通过引用调用节点”动态调 用某个VI调用修改属性 4.用“关闭引用”函数销毁VI引用
Http://ccms.hust.edu.cn
21
动态注册事件
功能扩展
1.允许一次激发多个事件,而不会丢失事件
2.是可以在程序的任何地方触发事件。事件结构和 “创建用户事件”函数可以不在同一个VI之中,为 程序的模块化提供了方便
Http://ccms.hust.edu.cn
22
动态注册事件
编程步骤 : 将希望绑定对象的引用句柄引入“注 册事件”节点
Http://ccms.hust.edu.cn
10
动态运行功能
2.打开VI引用(Open VI Reference) 返回指定路径的VI的Refnum,在动态调用VI时还 必须连接VI的详细类型说明。
3.关闭引用(Close Reference) 当用户调用某个对象的Refnum时,这个对象就会 被加载到内存之中。所有调用此引用句柄的程序都 被关闭以后,将对象清除出内存。
Http://ccms.hust.edu.cn
15
动态运行功能
动态运行功能-属性特征
大多数属性和方法的特征基本相同,可以在运行中 设置。但是在程序中调用属性节点和调用节点出现 问题时,应首先考察这些属性
Http://ccms.hust.edu.cn
16
动态运行功能
动态运行功能-动态调用
实现方法包括:
产生不同信号并进行不同的处理
Http://ccms.hust.edu.cn
32
动态运行编程实例
功能函数程序前面板和代码框图
Http://ccms.hust.edu.cn
33
动态运行编程实例
程序运行以后首先要探测在指定目录中已经存 在哪些函数
探测功能VI事件程序框图
Http://ccms.hust.edu.cn
Http://ccms.hust.edu.cn
20
动态注册事件
相关函数:程序>>对话框与用户界面>>事件选板上 1.注册事件(Register For Events)-产生自定 义事件 2.取消注册事件(Unregister For Events)-用 来注销自定义事件 3.创建用户事件(Create User Events )-引入 事件结构
34
动态运行编程实例
主程序的主要功能是通过调用功能函数实 现的,主程序和动态调用 VI 通过路径和名字建 立联系
调用功能VI事件程序框图
Http://ccms.hust.edu.cn
35
动态运行编程实例
“通过引用调用”节点和属性节点的使用方法有 些不同。:
1.在动态调用节点的右键快捷菜单VI 服务器>>浏 览中选择希望动态调用的VI 2.节点会包含所调用VI的端口 3. 在节点的引用句柄端口上创建静态VI引用,将 它连接到打开 VI 引用的类型说明符 VI引用句柄 端口 4.将打开 VI 引用函数和动态调用节点联系起来, 并在操作完成后关闭相应的引用句柄
4. 释放资源 - 在程序的最后销毁引用句柄并引 出错误信息
Http://ccms.hust.edu.cn
30
动态运行编程实例
通过类选择和属性选择方式程序程序运行后
Http://ccms.hust.edu.cn
31ຫໍສະໝຸດ Baidu
动态运行编程实例
5.4 动态运行编程实例-动态调用
在主程序中采用“通过引用调用”节点来实 现动态调用
28
动态运行编程实例
树形控件进行添加项操作,就可以实现程序 功能
数组操作
插入类
插入类
类选择和属性选择程序框图
Http://ccms.hust.edu.cn
29
动态运行编程实例
程序流程如下:
1.数组操作-数组操作把有用的信息从数2. 组中分离出来用,在循环中依次单个的插入树 形控件中
2. 插入类 - 在前一步的判断中,发现属于不存 在的类的元素时,需要插入类 3.插入元素-元素插入在类插入之后
Http://ccms.hust.edu.cn
5
动态运行基础
动态运行基础-Refnum 控件
LabVIEW中 的一些数 据控件如 右图所示
Http://ccms.hust.edu.cn
6
动态运行基础
动态运行基础-Refnum 控件说明
1.程序员通过对象的引用句柄来实现对其属性和方 法的访问。可以使用VI 引用句柄可以访问包括指 定VI的属性和方法
5.4 动态运行编程实例-类型操作
程序中有一组控件需要相同的属性设置 时,应用循环显然是便捷的做法:
1.要将对象的引用句柄写入同一个数组。程序 经常需要将所有控件的引用句柄转换为通用 的父类,或提取收集复杂数据结构中的控件
2.统一进行属性设置
Http://ccms.hust.edu.cn
38
动态运行编程实例
获取目标控件的引用句柄数组:
1. 还是取出表头簇中所有控件的引用句柄,得 到控件类引用句柄数组,将它作为判断的源数 组通过移位寄存器引入循环 2. 做一个 Digital 类的空数组,通过寄存器引入 循环,作为目标数组 3.报错信息也通过移位寄存器在循环中传递
Http://ccms.hust.edu.cn
注册事件操作方式
Http://ccms.hust.edu.cn
23
动态注册事件
在相应行选择合适的事件,本例中都 选择了“值改变”事件
调用用户自定义事件
Http://ccms.hust.edu.cn
24
动态注册事件
本例中的三个注册事件特点:
1.前两个都是一般自定义事件 -不同之处在于 获取对象引用句柄的方式不同 2.第三个注册事件是用户事件,注册事件相当 于只响应值改变事件
Http://ccms.hust.edu.cn
25
动态注册事件
事件结构调用了“注册事件”节点,将第二 个事件的设置为空,这样就解除了对结果控件的 绑定,结果控件今后再发生动作也不会触发事件 了。在程序的最后应该取消注册事件并销毁用户 事件。
Http://ccms.hust.edu.cn
26
动态运行编程实例
5.4 动态运行编程实例-远程调用
用VI Server技术实现两个程序间的通讯,两个 程序可以布置在不同的计算机上
服务器面板和客户端面板
Http://ccms.hust.edu.cn
45
动态运行编程实例
客户端程序要获取服务器程序中字符串的值。按 照动态运行的思想程序实现过程如下:
1.利用“运行VI”方法调用 2.利用动态调用节点,这种方法需要严格的端口定 义,但相应的数据传输十分方便
Http://ccms.hust.edu.cn
17
动态运行功能
动态调用的优点:
1.节省运行内存
2.增加程序灵活性
3.简化程序
Http://ccms.hust.edu.cn
18
动态运行功能
动态运行功能-远程访问
实现访问远程的技术主要有: 1.通过前面介绍过的Web 服务器技术发布VI 2.利用TCP/IP、UDP等通讯标准的函数建立连接并 传递数据 3.运用动态运行技术实现远程
Http://ccms.hust.edu.cn
19
动态注册事件
5.3 动态注册事件
静态事件:绑定明确的响应对象以及设 置固定的响应模式 动态注册事件:通过引用句柄将对象 和操作相关联,动态运行的大多数特性都在 这里得到体现
Http://ccms.hust.edu.cn
8
动态运行功能
5.2动态运行功能-相关函数
应用程序控制函数选板
Http://ccms.hust.edu.cn
9
动态运行功能
典型相关函数介绍
1.打开应用程序引用(Open Application Reference)
这个函数为程序员获取运行在工作组内其他计算 机上程序的引用句柄,为多台计算机协同工作创造可 能。返回指定计算机上正在运行的应用程序的 Refnum。
2.
3.
VI Server技术可以使程序员可以通过编程实 现VI的加载执行以及退出过程
可以动态的改变程序中所有元素的属性,操作 控件的事件等
Http://ccms.hust.edu.cn
4
动态运行基础
动态运行基础-VI Server 技术实现:
1.VI Server内容涵盖对象:包括程序类、VI类、控 件类、工程类等 2.VI Server技术接口实现:这些类层次架构中的每 个对象都具有两个接口,即方法(Methods)和属 性(Properties)
5.1动态运行基础
为实现用户可以通过编写程序代码来实现对程序的 控制。相应的编程机制应包含两个方面的数据结构 1.内存中数据的管理组织结构 2.访问这些内存数据的接口数据结构
Http://ccms.hust.edu.cn
3
动态运行基础
动态运行基础-VI Server 技术作用:
1. VI Server是LabVIEW编程环境内部用于组织 程序、控件以及其它组件对象的系统
Http://ccms.hust.edu.cn
36
动态运行编程实例
前面两例操作方式总结: 1.获取某对象的引用句柄; 2.使用属性节点或者调用节点来完成操作; 3.将引用句柄关闭。 总的来说,操作是线型的,而引用句柄就是贯穿 始终的主线。
Http://ccms.hust.edu.cn
37
动态运行编程实例