LabVIEW虚拟仪器数据采集与串口通信测控应用实战
图13-70 添加接收信息函数
(8)添加函数到条件结构的真(True)选项中。
??添加一个串口写入函数:编程(Programming)→仪器I/O(Instrument I/O)→串口(Serial)→ VISA写入(VISA Write)。
??添加一个字符串常量:编程(Programming)→字符串(String)→字符串常量(String Constant),值改为“#021001”(将地址为2的模块的开关量输出0通道置为高电平)。
??添加一个回车键常量:编程(Programming)→字符串(String)→回车键常量(Carriage Return)。
??添加一个字符串连接函数:编程(Programming)→字符串(String)→连接字符串(Concatenate Strings),用于将读指令和回车符送给写串口函数。
??添加一个数值常量(值为1):编程(Programming)→数值(Numeric) → 数值常量(Numeric Constant)。
??添加一个比较函数不等于0?(Not Equal To 0?):编程(Programming)→比较(Comparison)→ 不等于0?(Not Equal To 0 ?)。
??将字符串常量(值为“#021001”)与连接字符串(Concatenate Strings)函数的输入端口子字符串(Substring)相连。
??将回车键常量与连接字符串(Concatenate Strings)函数的另一个输入端口子字符串(Substring)相连。
??将连接字符串(Concatenate Strings)函数的输出端口连接的字符串(Concatenated String)与VISA写入(VISA Write)函数的输入端口写入缓冲区(wtite buffer)相连。
??将数值常量(值为1)与不等于0?(Not Equal To 0 ?)函数的输入端口x相连。
??将指示灯控件图标拖入条件结构的真(True)选项中,将不等于0?(Not Equal To 0 ?)函数的输出端口x != 0? 与控制指示灯图标相连。
连接好的框图程序如图13-70所示。
(9)添加函数到条件结构的假(False)选项中。
??添加一个串口写入函数:编程(Programming)→仪器I/O(Instrument I/O)→串口(Serial)→ VISA写入(VISA Write)。
??添加一个字符串常量:编程(Programming)→字符串(String)→字符串常量(String Constant),值改为“#021000”(将地址为2的模块的开关量输出0通道置为低电平)。
??添加一个回车键常量:编程(Programming)→字符串(String)→回车键常量(Carriage Return)。 ??添加一个字符串连接函数:编程(Programming)→字符串(String)→连接字符串(Concatenate Strings),用于将读指令和回车符送给写串口函数。
– 312 –
第13章 LabVIEW串口通信程序设计
??添加一个数值常量(值为0):编程(Programming)→ 数值(Numeric)→ 数值常量(Numeric Constant)。
??添加一个比较函数不等于0?(Not Equal To 0 ?):编程(Programming)→比较(Comparison)→ 不等于0?(Not Equal To 0 ?)。
??在条件结构的假(False)选项中,添加一个局部变量:编程(Programming)→ 结构(Structures)→局部变量(Local Variable);选择局部变量,单击鼠标右键,在弹出的快捷菜单的选项(Select Item)下,为局部变量选择对象:“指示灯”,选择写属性。
??将字符串常量(值为“#021000”)与连接字符串(Concatenate Strings)函数的输入端口子字符串(Substring)相连。
??将回车键常量与连接字符串(Concatenate Strings)函数的另一个输入端口子字符串(Substring)相连。
??将连接字符串(Concatenate Strings)函数的输出端口连接的字符串(Concatenated String)与VISA写入(VISA Write)函数的输入端口写入缓冲区(wtite buffer)相连。
??将数值常量(值为0)与不等于0?(Not Equal To 0 ?)函数的输入端口x相连。
??将不等于0?(Not Equal To 0 ?)函数的输出端口x != 0?与局部变量“指示灯”相连。 ??将VISA资源名称(VISA resource name)函数的输出端口分别与条件结构中真(True)选项和假(False)选项中的串口写入(VISA Write)函数的输入端口VISA资源名称(VISA resource name)相连。
连接好的框图程序如图13-71所示。
(10)在顺序结构Frame 4中添加一个时间延迟函数:编程(Programming) → 定时(Timing)→时间延迟(Time Delay),时间采用默认值,如图13-72所示。
图13-71 接收信息框图连线 图13-72 延时框图连线
4.运行程序
单击快捷工具栏中的“运行(Run)”按钮,运行程序。
给传感器升温或降温,画面中显示测量温度值及实时变化曲线。当测量温度值大于等于30℃时,画面中指示灯改变颜色,线路中指示灯亮。
程序运行界面如图13-73所示。
图13-73 程序运行界面
– 313 –
LabVIEW虚拟仪器数据采集与串口通信测控应用实战
属性节点和调用节点的一般方法 [原创]
(2007-08-08 23:20:13) 转载 标
签:
it/科技
在获得对象的reference之后,就可以使用属性节点(Property Node)和调用节点(Invoke Node)来设定对象属性和调用对象提供的固有方法(Method)。
属性节点的一般形式如图1所示:
图1 属性节点
属性节点的最上面有两个输入参数和两个输出参数,输入参数reference用于接入对象的reference,输入的reference参数在被复制之后从reference out输出,可以再接入下一个使用reference作为输入参数的节点或函数。其他两个输入、输出参数用于错误处理。当接入某一个reference后,在class的位置会出现与该reference对应对象类别名称,比如App(Application)表示接入的是应用程序的reference,VI表示接入的是VI的reference等。reference输入参数一般有默认值,例如当类别(class)为Application时,其默认值为当前运行的应用程序的reference;当类别为VI时,其默认值为节点所在VI的reference。name1,name2等端子为属性端子,name1和name2代表属性名。
在属性端子上单击鼠标右键会弹出快捷菜单,在这个菜单里含有名为Properties的属性列表子菜单,在同样的快捷菜单里Change to Read和Change to Write选项将把端口在写端口和读端口之间转换,各个端子之间的读写状态互不影响。某些属性只能读不能写。在默认情况下类型名class和属性名name 1等采用的是“短名称”的表示方法,在属性节点上弹出右键快捷菜单,选择Name Format->Long Names将打开“长名称”的显示方式。如图2所示:
– 314 –
第13章 LabVIEW串口通信程序设计
图2 新放置的属性节点
作为一个例子,为第一个端子选择Operation System.Name属性,该属性表示运行程序的操作系统名称。运行程序后,在字符串指示器里返回所选择属性的值Windows NT,如图3所示。Operation System.Name为只读属性。reference参数使用了默认值,即当前运行的应用程序的reference,这同使用空的machine name参数调用Open Application Reference参数返回的结果完全相同。
图3 使用当前程序的属性节点查询操作系统名称
调用节点的一般形式如图4所示,其组织方式同属性节点相似。class为reference所关联对象的类型名,method为方法名,param 1等为参数名。如果方法调用没有返回值,则method的位置仅仅显示方法名;如果方法调用有返回值,则method变为输出端子,在return value中输出方法调用的返回值。
图4 调用节点
在调用节点上单击鼠标右键会弹出快捷菜单,在这个菜单里含有名为Methods的方法列表子菜单。一个对象可以有很多方法供调用,但是一个调用节点只能为对象调用一个方法,这一点与属性节点不同,属性节点对在其中访问的属性个数没有限制。方法调用的某些参数有默认值,可以不连接,这些可选参数的调用节点端子底色为灰色,可以根据需要决定是否接入这些参数。
图5给出了调用节点的使用示例
– 315 –
LabVIEW虚拟仪器数据采集与串口通信测控应用实战
图5 使用调用节点打开并最大化当前VI的前面板窗口
图中调用节点所关联的的对象的类别是VI,其输入参数reference为使用路径常量InvokeNode.vi作为vi path输入参数调用Open VI Reference函数的返回值,实际上该路径指向的VI就是调用节点所在的VI本身。因为该VI已经在LabVIEW系统中被打开,所以直接使用VI文件名即可,而不需要完整的磁盘路径。由于VI类别的调用节点的reference输入参数有默认值,即为节点所在VI本身,所以调用Open VI Reference函数实际上没有必要,可以删去。所选择的对当前VI进行调用的方法是Open FP的方法,该方法的功能是打开VI的前面板窗口(同时把前面板窗口设为当前窗口)。前面板窗口打开后,调用节点会根据接入可选参数Activate和State的值设置前面板窗口状态。图中State端口上选择Maximized值,运行程序时会看到程序自动切换到前面板窗口,而且前面板窗口被最大化。
下面对图5中的例子稍作修改,以实现远程的方法调用。首先,在ip为192.168.1.11的计算机A上运行的LabVIEW系统中选择“工具->选项...”菜单项,打开选项对话框,在上面的类别列表中选中“VI服务器:配置”项,选中协议下的TCP/IP复选框,以允许基于TCP/IP协议的网络访问。然后在类别列表中选中“VI服务器:机器访问”,在右边的文本框中输入计算机B的ip地址
192.168.1.111,确认下面的单选列表选中了允许访问,单击添加按纽,把ip地址添加到机器访问列表中,如图6所示。这样就将允许计算机B上的LabVIEW实例通过计算机A上的LabVIEW实例的VI Server,实现A上运行着的LabVIEW资源的远程访问。
– 316 –