Lebview入门到精通_第1页
Lebview入门到精通_第2页
Lebview入门到精通_第3页
Lebview入门到精通_第4页
Lebview入门到精通_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LabVIEW8.20程序设计从入门到精通样本章试读:顺序结构、多面板编程、TCP编程摘录入门篇第程序结构章的内容:5.1顺序结构(Sequence Structure)5.1.1 LabVIEW程序的执行顺序如果用传统的文本程序语言写程序,当然会认为程序是按照语句的顺序从上到下执行的,除非遇到goto语句或函数。 但是,作为图形化的开发语言,LabVIEW有自己独特的方法,决定执行顺序。 首先,它是基于数据流运行的,并且只有在节点的所有入口点的数据均为“流”时才运行。 一般来说荻际前戴着幼蟮工作是傲慢的钡以h为榜样吗? 此代码表示表达式Result=(5 Rand)2,如/SPAN5.1所示。图5.1数据流的编程方法在同一个Block Diagram中添加类似的代码会怎么样? 如图5.2所示,这两个代码不是以从左到右、或者从上到下的顺序执行,而是并行地独立执行。 这是因为LabVIEW实现了自动多线程。 代码的执行效率大大提高了。 在文本程序语言中,实现多线程程序非常困难。图5.2多段代码同时运行5.1.2平面序列结构和堆栈序列结构虽然通过上述方法可以提高代码的执行效率,但是不知道哪个代码是先执行的。 在许多情况下,程序员必须能够按设置顺序执行多个代码。 在那个时候,我们应该帮助顺序结构。 有两个序列结构。 一个是Flat Sequence Structure,按从左到右的顺序执行。 这样的优点是可以看到所有的代码,但是代码段数过多的话会很难看。 另一个是Stacked Sequence Structure,它按照指定的顺序执行代码。 与Flat Sequence Structure不同,所有代码都是“堆叠”的,因此同时只能看到一个代码。 在Functions Palette的位置如图5.3所示。图5.3的顺序结构在Functions Palette中的位置用鼠标单击Functions Palette的对应图标后,在Block Diagram中按住鼠标左键向右下方拖动,估计大小正确后松开鼠标左键。 就像电影胶片,意味着一帧一帧地按顺序执行。 用滑鼠右键按一下影格,然后选取Add Frame Before或Add Frame After以新增影格。 同样,您可以选择Delete This Frame来删除Frame。 然后,将图5.2中的两个代码改写为根据顺序结构执行的两个代码。 分别如图5.4和图5.5所示。图5.4平面顺序结构图5.5 stackedcsequencestructure5.1. 3帧之间的数据传输在Flat Sequence Structure中,只需用线连接帧之间的数据流,就可以在下一帧中传递当前帧的数据。 如图5.5所示。 其中Frame之间的数据连接点可以用鼠标拖动,通过拖动可以合理布线。 以同样的方式,可拖动下面说明的各种程序结构的数据连接端子。图5.6flatsequencestructure在帧之间传输数据堆叠顺序结构非常复杂。 如果您先用滑鼠右键按一下前一个Frame底部边框,然后选取新增顺序区域,则在您用滑鼠右键按一下时会显示一个小的黄色终结器,您可以将它拖曳到边框的任何位置。 然后,将传输的数据与该端子连接。 进入下一帧,可以看到这个端子,只要与应该连接的点连接即可。 如图5.7所示。图5.7在stackedsequencestructure的Frame之间传输数据的高级篇第动态程序控制技术章摘录:17.3.3多面板编程设计规模较小的系统时,前面板难以显示所有内容,即使勉强显示,画面也往往会变得庞大。 在某些情况下,选项卡控件可以显示选项卡,但前面板控件过多可能会导致程序块混乱。事实上,您可以通过按钮和菜单查看更多界面,就像一般的Windows程序一样。 这样,无论多么复杂的系统,都能够通过简单的多面板人机接口实现。 了解如何在LabVIEW中实现多面板编程。现在,将多面板程序分为子面板弹出时,主程序等待子面板执行完成的情况。 另一个是副面板弹出后,副面板和主程序独立动作。第一种情况下,我们可以简单的用量子VI来实现。 如果在子VI的file-VI属性. window appearance-customize.对话框中启用showfronfrontpanelwhencalled选项,则当主VI调用子VI时,子VI的前面板将自动启动子VI可以是静态调用或动态调用。第二种情况下,需要在VI Reference的方法节点上实现。 接着,用图17.11所示的例子来说明前面板和程序框图。 前面板的Panel1、Panel2、Panel3这3个按钮分别与VI面板对应。 每次用户单击其中一个按钮时,都会显示相应的程序面板。 在运行过程中,您可以看到每个面板之间没有相互关联。 这意味着一个面板的行为不会影响另一个面板的行为。让我们看看程序框图是如何实现的。 程序框图中最重要的是因用户点击界面上的4个按钮之一引起的事件结构。 例如,当用户点击了Panel1按钮时,通过从CtlRef的Label.Text属性获取按钮的Label,该按钮得到与VI对应的绝对路径。 在Open VI Reference函数中获取VI Reference时,从VI的Execution.State属性中获取VI的执行状态,如果VI处于Idle状态(即未执行状态),则使用Run VI方法执行VI,并使用Wait Until Done 最后,将Front Panel Window.Open属性设置为True以打开动态加载VI的前面板。图17.11多面板程序示例接下来,我们来看一下子面板的写法。 如图17.12所示。 用户点击按钮Quit,为了实现面板的关机,使用了VI的Front Panel.Close方法。图17.12子面板程序示例子面板具有多种行为模式,包括始终位于界面顶部的子面板,以及打开子面板时用户无法操纵其他面板的对话框。 可以在子面板程序的file-VI properties.window appearance-customize.对话框中设置此选项。 与窗口behavior栏对应。 有三种模式Default :正常模式,即没有正常面板的特殊行为。Floating :面板始终位于窗口的前面,用户此时可以使用其他面板。 Modal :对话框模式,即对话框,在此面板运行时,用户无法操作其他面板。如图17.13所示,不仅可以通过按钮调用多面板,也可以通过菜单调用。 在此,通过选择菜单项目的ItemTag,实现菜单项目与对应面板VI的对应关系。图17.13菜单实现多面板程序在以上示例中,子面板和主面板之间不存在数据流,因此可以使用同一段代码打开多个面板。 主面板VI和子面板VI上的数据流有些复杂,请参考图17.10所示的示例。 如果对数据流没有要求,则可通过全局变量实现数据的交换,简化编程。高级篇第LabVIEW网络编程章的内容摘录如下:20.4.2 TCP通信LabVIEW用于TCP编程的VI函数位于Functions Palette的data communication-protocols-TCP面板下,如图20.22所示。图20.22 TCP编程VI函数面板通过这些函数,原本复杂的TCP编程在LabVIEW中也变得简单。 具体函数的含义见表20-4。表20-4 TCP编程VI函数列表VI函数名称功能TCP Listen在指定的端口上创建监听程序并等待与客户机的连接。TCP创建监听器在指定端口上创建监听程序。TCP wait on监听器在指定的端口上等待客户端连接。TCP开放连接打开到远程服务器端的连接。TCP读取从指定的TCP连接读取数据。TCP Write将数据写入指定的TCP连接。TCP Close Connection关闭指定的TCP连接。IP到字符串将IP地址转换为计算机名称。String To IP将计算机名称转换为IP地址。Resolve Machine Alias使用VI Server或计算机别名返回计算机的IP地址。TCP通信的两端分别是服务器侧(Server )和客户端侧(Client )。 服务器端首先监听指定的端口,客户端向服务器端监听的端口发出请求,服务器端在接收到请求时建立客户端与服务器端的连接,然后可以利用该连接进行通信。 通信完成后,两端通过关闭连接函数断开。 其过程如图20.23所示。注意:有些连接埠指派给HTTP服务,而有些连接埠指派给FTP服务,因此在选取连接埠时请勿选取小于1024的连接埠号码。 1024以下的端口号为FTP、HTTP、Telnet等特定用途保留。图20.23双机TCP通信流程图以下是一些典型的示例,介绍如何在LabVIEW中进行TCP编程。例20.1利用TCP协议的简单点对点通信在本示例中,服务器侧继续向客户端发送数组数据并且客户端继续接收数据。 服务器端的程序如图20.24所示。 首先,通过TCP Listen函数,在指定的端口2052监听客户端是否请求连接,客户端提出连接请求后,进入主循环发送数据。 最后关闭连接,并过滤已知良好的关闭错误消息。客户端程序如图20.25所示。 首先通过TCP Open Connection函数向服务器端请求连接,建立连接后,进入主环路接收数据。 最后关闭连接,并过滤已知良好的关闭错误消息。要运行程序,必须先运行服务器端,然后再运行客户端。 注意:由于TCP Write函数仅输入字符串,因此必须使用Type Cast函数或Flatten To String函数将数据类型转换为字符串。 同样,接收端必须使用Type Cast函数或Unflatten From String函数将字符串重新转换为原始数据。2 .由于TCP被传输的数据没有结束码,所以优选在数据被发送之前将分组的长度发送给接收侧,并且接收侧知道分组的长度之后,从发送侧读取数据量。图20.24使用TCP协议的点对点通信Server侧的程序图20.25基于TCP协议的点对点通信客户端程序例20.2利用TCP协议的交互式点对点通信在上面的例子中,简单服务器端发送数据,并且客户端仅接收数据。 事实上,服务器端和客户端可以同时进行交互式通信。 也就是说,服务器端可以同时向客户端发送数据并从客户端接收数据。 客户端也一样。 TCP协议自动管理数据包、队列等,因此不会发生冲突。用户可以打开这本书的独特例子。 交互式即席通信示例_TCP Server.vi和交互式即席通信示例_TCP Client.vi学习。 要运行程序,必须先运行服务器端,然后再运行客户端。例20.3利用TCP协议的一点对多点通信两个例子都是点对点通信,实际上可以对TCP编程进行1点对多点通信。 当客户端请求连接时,服务器端只需添加循环监听连接即可建立与该客户端的连接,并将连接排队。 主循环读取和写入队列中的每个元素。 当然,这实际上是客户机和服务器必须建立点对点连接的点对点通信的使用。 然而,这里通过连接队列处理各个连接。 因此,这里不是“广播”通信,而是实现真正的“广播”需要UDP协议。该示例的服务器侧程序框图和客户端侧程序框图分别在图20.26和图20.27中示出。 Server方面的程序利用队列,有关队列的知识将在下一章介绍。要运行程序,必须先运行服务器端,然后再运行客户端。 客户端端可以存在多个。图20.26利用TCP协议的多点间通信Server侧的程序框图使用图20.27TCP协议,单点示出了多点通信客户端侧的程序框图LabVIEW8.20程序设计从入门到精通样本章试读:顺序结构、多面板编程、TCP编程摘录入门篇第程序结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论