




已阅读5页,还剩65页未读, 继续免费阅读
(电气工程专业论文)labview在测控系统中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆大学硕士学位论文 中文摘要 i 摘 要 随着微电子技术计算机技术软件技术以及网络技术的高度发展及其在电 子测控技术与仪器上的应用新的测控理论方法测控领域以及新的仪器结构 不断的出现在许多方面已经冲破仪器的概念电子测控仪器的功能和作用发生 了质的变化在这种背景下八十年代末美国成功开发了图形化的计算机语言 labview labview 是美国 ni 公司实现虚拟仪器(virtual instrument-vi)技术的 g 语言 图形化编程开发平台的特点是基于通用计算机等标准软硬件资源平台实现构建 灵活层次体系明晰功能强大且人机界面友好的测控系统因此在国内外许多 测控应用中被广泛采用但目前用 labview 实现的应用大多是基于单机运行的 labview 虚拟仪器程序 本论文介绍了多任务实时测控系统系统采用分布式控制系统结构将人机 交互数据采集等任务和控制任务分别交由测试计算机和控制计算机完成该测 控系统计算机应用软件是在 labview 平台上开发实现了友好的人机交互简单 直观的现场数据监控安全可靠的故障处理措施等功能这个实时系统对多个开 关量模拟量温度信号直流电动机和步进电动机等进行实时的数据采集和控 制 本设计通过基于优先级的设置和执行系统的选择结合固定时间间隔调度和 事件驱动机制提出了基于labview平台测控系统的两级多任务调度策略这些 设计方案大大提高了测控系统的性能按照软件工程学的观点对实时多任务测控 系统进行了方案设计开发了操作简单界面友好通用化程度高的测控系统 文章还较全面系统深入地研究了 labview 的网络化功能系统分析了 labview 的 tcpipdatasocket和 remote panels 三种网络通信机制详细讨论 了每种机制的原理及功能特点并设计了相应的 labview 程序实现了基于局域 网的实时数据通信和远程控制 关键词labview测控软件实时控制数据采集 重庆大学硕士学位论文 英文摘要 ii abstract with the rapid development and application in electronic measurement technology and instruments of micro-electronics technology, computer technology, software technology and network technology, new measurement and control theory, new measurement method, new measurement fields and new instrument architecture continually come forth and the function and effect of electronic instruments have given birth to quality change and broken through in the conception of instrument in many aspects. graphical computer language had been developed at the end of 1980s in this background. as the g language graphical development tool for implementing virtual instrumentation (vi), labview has been one of the most popular solution for creating powerful, flexible, well-structured, cost-effective and friendly hmi (human-machine interface) measurement mgerr cinrun(void *arg1, void *arg2, void *arg3) /* insert code here */ 重庆大学硕士学位论文 2 labview 语言的概述 13 return noerr; 我们可以用任意一种文件编辑器将它打开并在/*insert code here*/的位 置添入数据采集卡驱动程序的c语言代码c语言文件源代码的编译主要是在以c 语言为主的开发系统中进行 编译完毕形成一个可以和cin节点进行动态连接的工 程文件*.lsb回到labview流程图窗口在cin节点的快捷菜单中选择load code resource即弹出一个选择文件的对话框选择编译完成的*.lsb文件其程序如图 2.6所示 图2.6 c语言的调用 fig 2.6 call a c language 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 14 3 labview环境下多任务实现机制 ni公司设计的labview是应用于windows平台上的图像化编程语言其目标 是简化程序的开发工作广泛地应用于测控系统开发中让工程师和科学家能充 分利用pc机的功能快速地完成自己的工作大大提高了开发效率但随着测控 系统的发展多任务实时控制系统的应用越来越广泛在一些工程应用中如发 动机的实时仿真测量和控制大型机械运行的实时监控航空油料控制等如 何解决多任务实时性成为系统的关键问题 3.1 labview下的多任务 多任务(multitasking)运行是指在同一台计算机系统的同一时刻运行多个程序 多任务允许活动任务和后台任务同时运行所以可以做到当一个任务在后台运行 时前台可以允许另外一个程序运行这样就大大提高了工作效率多任务是 labview 中较为常见的一个概念作为基于数据流的编程语言labview 能够很 好的支持多任务labview 中多任务的一个典型例子是独立的 while 循环 3.1.1 线程和进程 提到系统的多任务就不得不提到系统的进程和线程 ? 进程 进程(progress)是操作系统中一个十分重要的概念是指程序的一次运行过程 在有些操作系统中也称为任务但是进程和程序是两个完全不同的概念程序 是静态的是一组指令的有序集合而进程是动态的是一组指令序列在处理器 上的一次运行过程进程是程序在一个数据集合上的运行过程它具有动态并 行异步等特性一个进程由创建而产生由调度而进入运行在资源不能 满足时被挂起由撤销而消亡因此进程是有生命的 ? 线程 线程(thread)是指由进程进一步派生出来的一组代码(指令组)的运行过程一 个进程可以产生多个线程这些线程都共享该进程的地址空间它们可以并行 异步运行采用线程最主要的好处是可以使同一个程序有几个并行运行的路径 从而提高程序的运行速度线程所占的系统资源比进程要小 多线程技术是高级程序设计的核心技术之一也是提高应用程序效率和性能 的重要技术途径应用多线程技术使得操作系统可以同时处理多个任务在 labview 中使用多线程有两大优点第一个优点是 labview 可以把线程完全抽 象出来labview 的编程者不需要对线程进行创建撤销以及同步等操作第二 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 15 个优点是 labview 使用数据流模型它可使编程者很容易理解多任务的概念 ? 线程优先级 当线程被创建时系统会分配给线程一个优先级系统将按优先级顺序调度 线程只有没有可运行的高优先级时低优先级的线程才可能得到调度并运行 优先级的设定是相对基本优先级而言的 ? 线程状态 一个线程有三种状态激活(active)阻塞(blocked)和挂起(suspended) 对于处于激活状态的线程系统会根据其优先权对其进行安排并分配 cpu 时间片 段处于激活状态的线程在其运行期间可能会转化为阻塞状态如果一个正在运 行的线程变为阻塞状态那么这个线程就会被转移到等待队列中 ? 多线程实现的原理 在运行一个多线程时表面上这些线程似乎同时运行而实际情况并非如此 为了运行所有的这些线程 操作系统为每个独立线程安排了一些cpu时间 单cpu 操作系统以轮换方式向线程提供时间片(quantum)每个线程在使用完时间片后交 出控制权系统再将 cpu 时间片分配给下一个线程由于每个时间片足够短这 样造成一种假象好像这些线程在同时运行创建额外线程的唯一目的就是尽可 能地利用 cpu 时间使用多线程可以给程序员带来很大的灵活性同时也使原来 需要复杂的技巧才能解决地问题变得简单起来但是不应该人为的将编写的程序 分成一些碎片让这些碎片按各自的线程运行这不是开发应用程序的正确方法 3.1.2 labview 的多线程 ? labview 中的子系统 labview有六个子系统(subsystems)来处理labview的各种行为 这些子系统 包括 user interface (用户界面) standard (标准) instrument i/o (仪器i/o) data acquisition (数据采集) other1,2 (其它12) same as caller (同调用者) 每一个labview子系统都有一个线程池(pool of threads)和一个与之相关联的 任务队列当然labview本身有一个主运行队列运行队列中存储了子系统中分 配给线程的任务优先权列表labview子系统具有一个线程和优先级的数组 用户可以在一个子系统中最多创建40个线程每一个层次的优先级最多有8个线 程 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 16 ? labview的线程及其优先级 子系统的线程在一个循环列表中运行并由操作系统来安排进度当把线程 放到一个子系统的列表中运行时只有那些被分配给该子系统的线程才会运行 只有操作系统才能决定运行哪一个线程labview不能直接调度线程运行 ? labview 的运行队列 labview 有几个运行队列包括一个主运行队列以及每一个子系统都有一 个运行队列运行队列就是一个正在运行的任务列表该列表按照优先级排队 运行队列并不是一个严格意义上的先进先出(fifo)堆栈vis 具有与之相关联的优 先级默认的优先级是 normal在运行完框图程序中的每一个元素之后运行队 列更新仍然需要运行的元素例如 subvislabview 内置的加减或字符串处理 等函数高级别优先权的 vis 会在优先级较低的 vis 之前运行任意改变 vi 的优 先级会导致 labview 性能的下降 线程被安排到与其子系统相关联的队列运行中把最顶端的任务从队列中拉 出然后运行这个任务子系统中的其他线程将进入运行队列运行其他任务 当 vi 仅在特定子系统中运行时它将被放到这个子系统的运行队列中然后 这个 vi 必须等待为其分配一个属于该系统的线程来运行当线程的优先级与子系 统的优先级不同时会引起性能下降 ? 关于多线程的一些误解 在labview中使用多线程时 一些编程中常见的误解会使系统性能严重下降 例如一些编程者认为线程越多程序的性能越好这是不符合实际情况的盲目 增加多线程数目并不会提高程序的运行速度若每一步操作都使用一个线程那 只会使程序的运行速度减慢而不会提高其运行速度如果很多线程都处于挂起 或阻塞状态那么程序使用内存的效率就会很低 labview 把线程模型抽象出来编程者不需要直接对线程进行操作线程是 一把双刃剑如果在 labview 程序中使用了很多线程而实际上 labview 并不 会使用所有的这些线程就会在无形中浪费了内存大量的线程会导致操作系统 花费过多的开销而且最终导致性能的下降对于只有一个 cpu 的计算机而言 无论使用什么线程模型在同一时间内只会有一个线程在运行 此外多线程的存在会增加应用程序的不稳定性当多线程应用程序中的一 个线程出现了异常或错误时就会引起整个进程的崩溃 3.2 labview下的实时 实时测控系统的实时性要求对于不同的应用差异很大最容易混淆的定义就 是把实时系统和绝对的高速联系起来实时性和高速并不是相同的含义更为确 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 17 切的实时性的定义可以定义为系统能够在确定的时间内完成要求操作的能力 绝大部分实时系统的核心是实时操作系统与通用的操作系统比较实时操 作系统最大的特点是其可以保证在最差情况下对外部事件的响应延时而通用操 作系统如windows等为多任务系统外部的事件通常放入一个队列中等待处理因 而很难保证实时特性 实时操作系统和桌面操作系统存在以下三点不同 1) 操作系统的时序安排机制确保高优先级的任务先被执行 2) 软件开发人员能直接控制系统的所有任务 3) 系统不需要来自外设的输入如鼠标和键盘 与此相反桌面操作系统要求能处理各种应用程序包括财务软件视频游 戏和工程工具等此外桌面os需要能对来自鼠标和键盘的用户输入做出及时的 反应因此桌面操作系统并没有为时间确定性作优化处理 因此建立在实时操作系统上的应用系统一般有如下的实时特性 ? 系统具有确定性 确定性定义为系统在给定的时间内对事件响应的一致性 通常在控制循环中用循环时间的波动性作为考察指标波动性定义为每次循环 时间和平均循环时间的相对差异波动越大则每次循环之间时间差异越大系 统确定性差 ? 实时系统提供最大的可靠性 ? 实时系统大多不需要用户的交互干涉在嵌入式系统中应用广泛 典型的实时测控系统可以分为三部分功能模块数据采集控制算法实现 控制信号输出选择系统开发方案和实时操作系统时主要的指标有控制循环时 间控制循环时间波动实时响应时间等和基于windows平台的控制系统比较 实时测控系统的控制循环时间较短甚至可以达到10微秒以下 实时操作系统可以提供一般通用操作系统无法保证的实时性但是对于开发 人员来说系统的特殊性带来了很大的开发难度实时系统的开发往往周期很 长系统维护比较困难labview rt通过将labview图形化编程环境和实时操作 系统的巧妙结合提供了一个较为方便的开发实时测控系统的途径 普通labview程序还是建立于通用的操作系统上如windows系统因此这 些系统仍然无法提供很高的实时性能 labview rt系统通过在普通labview开发 环境中增加的rt模块最终可以将开发完成的程序下载到一些指定的硬件环境中 (称为目标环境)而在目标环境中运行实时操作系统进而提供实时性在下位机 和上位机之间 可以通过tcp/ip datasocket等通讯协议完成数据传递和人机交互 上位机监控等功能这样既保证了系统的实时特性又保证了系统开发的简便 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 18 3.2.1 labview rt 软件 ni labview real-time模块对ni labview的开发环境进行了扩展包括可靠 性和时间确定性使用labview real-time可以在整个开发过程中使用同一种工 具定义程序运行包括系统配置算法原型设计和应用程序的发布我们可以在 windows系统上进行开发然后将应用程序下载到独立的目标硬件平台上运行这 些硬件平台是建立在现成即用的计算机组件和实时操作系统基础上实时应用系 统的开发类似于桌面系统labview real-time模块为开发环境增加了一些工具 以帮助我们充分利用实时开发平台实时操作系统平台专为高可靠性和确定性设 计 所有labview real-time目标平台都包含一个嵌入式实时操作系统 它是按抢 先式和时间片循环式(rround-robin)对执行任务进行排序优化了确定性性能使 用抢先式排列高优先级线程抢先于低优先级线程执行在低优先级线程执行时 如果高优先级线程需要处理器时间则低优先级线程将立刻停止运行以保证高优 先级线程运行当同等优先级线程被执行时时间片循环排序为每个线程分配了 同等的处理器时间在一个线程用完可用的时间片操作系统自动地停止处理该 线程开始执行队列中的下一个线程这种混合了抢先式和时间片循环的任务排 序能确保labview real-time应用程序具有时间确定性性能 并尽可能减小时间抖 动在labview中线程优先级的分配可以基于单个vi或循环使用vi的属性配 置对话框可选择6种不同的优先级 labview rt软件系统包含两个部分:rt开发系统和rt引擎 rt开发系统是运 行在windows操作系统下的应用程序其主要功能是编制和调试labview rt应用 程序将程序下载到rt系列硬件中运行并提供一个用户接口rt引擎运行在rt 系列硬件所携带的处理器上 它充分利用实时操作系统pharlap(著名的工业级 实时操作系统支持x86架构与win32兼容)来确保实时性能同时由于独立处理 器的引入在不断电的情况下.即使pc主机崩溃, labview rt程序依旧会持续运 行大大提高测量及自动化系统的可靠性 3.2.2 labview rt 硬件 所有labview real-time平台都基于通用的软硬件架构 每种目标硬件平台都 是由现成的计算机组件组成如微处理器ram非挥发性内存和i/o总线接口 嵌入式软件包括实时操作系统(rtos)驱动软件以及特定版本的labview run-time引擎尽管所有的labview实时目标平台都使用同样的内核架构但是根 据所选平台的不同所能达到的性能也有所不同labview下的硬件平台包括 compact vision系统实时compact fieldpoint和fieldpoint系统嵌入式实时pxi控 制器和实时数据采集如图3.1所示 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 19 图3.1 labview rt的硬件 fig 3.1 the hardware of labview rt ? pxi实时系统 实时pxi系统包括牢固的机箱嵌入式控制器和插入式i/o模块使用ets目标 平台的labview real-time 通过把专用实时操作系统和应用程序软件下载到专用 微处理器上可以将嵌入式控制器转变为实时控制器这样嵌入式软件就可以 访问所有的pxi系统中所有的i/o充分利用pxi高级定时和同步功能以获得精确的 i/o触发和多模块间同步 ? fieldpoint 和 compact fieldpoint实时系统 fieldpoint 和compact fieldpoint系统包括一个运行实时操作系统的嵌入式处 理器控制器和各种i/o模块这些系统具有坚固的硬件结构能在工业环境下工作 利用一种发布/获取通信协议ni logos能和其它网络节点共享最近的i/o值和 内存标记fieldpoint 和compact fieldpoint系统的软件架构非常适合于分布式应 用 ? 实时pci插入式板卡 rt系列插入式板卡作为实时模块包括两个部分处理器板卡和多功能数据 采集板卡它们永久地结合在一起如图3.2所示可以把处理器板卡插入基于 windows的计算机pci插槽中该板卡上包含与计算机主板相同的基本组件一 个嵌入式微处理器 ram和非挥发性存储介质 处理器板卡实际上就是一块pc板 只是没有硬盘键盘鼠标等i/o器件因此rt系列插卡必须与主机pc一起工作 执行程序开发调试数据采集用户界面等操作实时板卡上的数据采集卡与 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 20 一般的ni采集卡没什么区别用来完成数据的输入输出等功能 图3.2 实时板卡pci7041/6040e fig 3.2 rt board pci7041/6040e rt系列硬件主要用于过程控制在主机pc和windows平台下运行时rt系列 插卡可在750微秒内响应一个事件采用软件定时的最大周期时间抖动为10微秒 采用板上定时器的硬件定时的抖动降低到纳秒量级实时控制性能明显比 labview高而且不会出现不稳定的周期时间突变实时labview rt的编程与标 准labview的编程基本相同 将程序通过rt开发系统下载到实时板卡上rt引擎在实时板卡上运行嵌入的 labview rt程序可以提供确切的实时性 ? 一种新的实时模式基于 pc 机的实时 windows xp2000 和 nt 是目前最常用的操作系统具有强大的多媒体及网 络通信功能但是我们希望在应用 windows 优点的同时又拥有传统实时操作 系统特征(包括高性能高可靠性和高确定性)的开发和执行环境满足这种要求的 选择通常有两种解决方案一种是连接一个基于 windows 的能处理复杂任务的处 理器另一种是连接一个能进行关键处理的协助处理器如 dsp 芯片这两种解 决方案都涉及硬件的设计和改造 新的实时模式是通过用于 rtx(realtime extension)目标平台的 labview real-time 把标准的台式 pc 转变为 real-time(实时)系统labview real-time 是 基于 venturcom rtx实时操作系统可在运行 venturcom rtx 实时操作系统的任 何 pc 上使用 venturcom公司的 rtx 是一套软件可将 windows xp2000和 nt 扩展到 关键时间控制领域的解决方案rtx 产品通过对 windows xp2000和 nt 的扩 展使这些基于 windows 的操作系统成为实时操作系统用户既可以开发实时性 的应用也可以开发非实时性的应用 通过从硬件设计的方案转移到以软件为中心的解决方案rtx 增强了 windows 的控制性能其优势在于减少了系统的成本提高了系统性能和保证 重庆大学硕士学位论文 3 labview 环境下多任务实现机制 21 了系统软硬件升级发展能力目前广泛地应用在通讯产品高可靠性系统测试 和工业自动化等领域 rtx 软件具有以下特点1)使 windows 在同一台机器上同时实现一般操作系 统功能及高性能高可靠性(99.999%)的操作系统功能2)通过使 windows处理转 向控制应用允许在同一台计算机上既完成高性能确定性的实时处理又能完 成非实时性处理3)rtx 增加了一个性能保证调度环境提供在 windows 下抢先 调度和硬实时的关键任务性能调度延迟按照微秒来计量(最坏情况的典型值在 40 微秒以下)4)rtx 以附加调度器的形式增加了确定性的调度rtx 调度器比 microsoft 调度器具有更高的优先级且在异常事件后继续操作其包括管理异常事 件的 api labview real-time 是运行在 venturcom rtx 实时操作系统的 pc 上在这 种情况下经扩展的实时操作系统被下载到台式 pc 的微处理器上实时操作系统 扩展包括实时内核(kernel)和共享相同处理器的非实时内核(kernel) 使用这种双内 核架构可以在同一台机器上运行主机应用程序和实时系统利用该架构可为 实时任务分配更高的优先级windows 任务只能在所有实时任务处于休眠状态下 被执行 然而 由于实时和 windows 应用程序共享相同的硬件资源 如果 windows 操作长时间占用硬件(例如占用数据总线用于传送来自 cd rom 的大量数据) 实时任务在该操作完成之前将无法使用此硬件这种情况可能会导致实时和 windows任务的优先级错位因此必须限制运行在 windows 环境下程序的功能 尽量避免出现这种资源竞争情况 图3.3 rtx软件构架 fig 3.3 the soft truss of software 重庆大学硕士学位论文 4 labview 的网络通信 22 4 labview的网络通信 测控仪器系统今后的发展方向是仪器的智能化进一步加强标准化程度进 一步提高网络测控技术进一步发展把网络技术与虚拟仪器相结合构成网络 化虚拟仪器系统就是虚拟仪器系统发展的方向之一 在大型的测控系统中各种采集和控制元件很多如何能将其融合为一个数 据网络有效的降低成本和方便的维护一直是工程人员在不断探索的问题 labview 具有强大的网络通信功能可以利用现有的企业内部网(intranet)或因特 网(internet)实现数据动态的发布和共享 使用户容易的编写出功能强大的远程测控 软件 labview 支持 tcp 和 udp 协议 并开发了特有 datasocket 和 remote panels 技术大大简化了网络通信的编程 4.1 tcp 与 udp 通信 tcp/ip 协议(transmission control protocol/internet protocol传输控制协议/互 联网络协议)是 internet 最基本的协议tcp/ip 实际上是由不同层次上的多个协议 组合而成的协议族共分为四层链路层网络层传输层和应用层tcp 与 udp 是 tcp/ip 传输层中的协议都使用 ip 作为网络层协议 4.1.1 tcp 通信的实现 tcp(transmission control protocol 传输控制协议)提供的是面向连接的可靠 的数据流传输面向连接的协议在任何数据传输前就建立好了点到点的连接大 部分基于网络的软件都采用 tcp 协议tcp 采用比特流通信分段传输数据对于 每发送的一个小段接收端必须在一个指定的时间内返回一个确认如果发送端 未收到确认那么它会重新发送数据 在 labview 中 可以采用 tcp 节点来实现基于 tcp 协议的局域网通信 tcp 节点的调用路径functionscommunicationtcp如图 4.1 所示 图 4.1 tcp 节点 fig 4.1 tcp node 重庆大学硕士学位论文 4 labview 的网络通信 23 当建立服务器和客户机之间的通讯时必须指定 internet 地址和通讯的端口号 (port number)端口号的范围是 065535在相同的 internet 地址下不同的端口 号用于区分不同的通信服务可以很方便地实现多个网络互连 采用服务器/客户机模式进行双机通信是在 labview 中进行网络通信的最 基本的结构模式在本测控系统中把服务器端采集到的数据通过局域网送至客 户机进行显示 双机通信的程序流程图如 4.2 所示 其中左边是服务器端发送程序 右边是客户端接收程序 图 4.2 tcp 通信流程图 fig 4.2 tcp flow chart 在图 4.3 所示的服务器的框图程序中首先指定网络端口(port)并用 tcp create listener 节点建立 tcp 听者利用 tcp wait on listener 节点等待客户机的 连接请求这是初始化的过程在循环体 while 内部采用了两个 tcp write 节点 来发送数据第一个 tcp write 节点发送的是等待发送数据的长度第二个发送的 是数据本身这种发送方式有利于客户端的数据接收 与图 4.3 发送程序相对应图 4.4 接收程序也采用两个 tcp read 节点读出由 发送端送来的数据第一个 tcp read 节点读出数据的长度第二个 tcp read 节 点根据这个长度将数据完全读出这种方法是 tcp 通信中常用的方法可以在保 证数据不丢失的前提下有效地发送或接收数据 采集数据 初始化 送出数据 连接服务器 接收数据 处理数据 关闭连接 退出循环 关闭连接 退出循环 建立连接 传递数据 是 是 否 否 重庆大学硕士学位论文 4 labview 的网络通信 24 图 4.3 tcp 发送程序 fig 4.3 transmit program of tcp 图 4.4 tcp 接收程序 fig 4.4 receive program of tcp 在用 tcp 节点进行通信时需要在服务器框图程序中指定网络通信端口客 户机也要指定相同的端口才能与服务器之间进行正确的通信在实际的应用中 当用于通信的计算机装有防火墙时最好不要使用 1000 以下的端口号这是因为 防火墙可能会禁止端口号小于 1000 的连接 1000 以下的端口号是保留给特定用途 的例如 ftp 和 http 等在本测控系统中 tcp 通信的端口值为 22002300 另一点值得注意的是在客户机的接收程序中要指定服务器的名称才能与服务器 建立连接此处为服务器的计算机名称非用户名若服务器和客户机在同一台 计算机上同时运行程序中服务器的名称可以为空 除了利用 tcp 节点进行网络的数据通信外还可以用来在同一台机子的不同 程序之间进行数据的传递在一般的 labview 程序中我们常用全局变量进行非 连线的数据传递但这种方式会为每个全局变量存储的数据建立一个副本这样 当操作大的数组或字符串时内存和性能问题就会变得突出这在对实时性要求 重庆大学硕士学位论文 4 labview 的网络通信 25 严格的测控系统中是绝对不允许的而利用 tcp 通信的方式就可以很好的解决这 个问题 4.1.2 udp 通信的实现 udp(user datagram protocol用户数据报协议)是一个无连接模式协议提供 向另一个用户程序发送信息的最简便的协议机制使用 ip 路由功能把数据包发送 到目的地udp 提供的是非面向连接的不可靠的数据流传输非面向连接的传 输协议在数据传输之前不建立连接而是在每个中间节点对非面向连接的包和数 据包进行路由没有点到点的连接非面向连接的协议是不可靠的连接 采用 udp 进行数据通信非常简单但是如果发送数据和接收数据的速度不匹 配容易造成数据的丢失所以利用 udp 进行通信的可靠性不高不能保证可靠 的传递数据当数据传输的性能必须让位于数据传输的完整性可控制性和可靠 性时tcp 协议当然是最好的选择当强调传输性能而不是传输的完整性时例 如音频和多媒体应用udp 是最好的选择 udp 节点的调用路径functionscommunicationudp图 4.5 与图 4.6 分 别是发送与接收程序 图 4.5 udp 发送程序 fig 4.5 transmit program of udp 在发送程序中首先利用 udp open节点打开一个本地的 udp socket 端口 然后利用 udp write 节点将数据从这个端口发送出 接收端程序与发送端相对应先打开一个本地端口然后利用 udp read 节点 读出数据最后使用 udp close 节点关闭前面打开的本地端口 重庆大学硕士学位论文 4 labview 的网络通信 26 图 4.6 udp 接收程序 fig 4.6 receive program of udp 4.2 datasocket通信 ni 公司提供的 datasocket是专门用来传输和发布动态数据的技术是一种基 于 tcpip 工业标准的网上实时高速数据交换编程新技术它支持本地文件 i/o 操作ftp 和 http 文件传输实时数据共享并提供统一的 api(application programming interface)编程接口是一种面向测量和自动化工程的网上实时高速数 据交换的编程技术它对底层的 tcp/ip 协议进行了高度封装编程人员无需为不 同的数据格式和通讯协议编写具体的程序代码只需要通用资源定位符 url就 可用来在 internet进行及时发送所需传输的数据特别适合于远程数据采集监控 和数据共享等应用程序的开发 4.2.1 datasocket 组成结构 datasocket系统包括两部分即 datasocket api 和 datasocket server前者提 供了一个用于多种编程语言多种数据类型通讯的统一编程接口在 labview 中 datasocket api 的形式是 datasocket 子模板中的 datasocket read 和 datasocket write 等用来发送和接收网络数据的节点实现网络通信datasocket 节点的调用 路径functionscommunication datasocket 后者是一种轻量级的独立的服务器组件包括 datasocket server manager 和 datasocket server 两个程序通过该服务器使用 datasocket api 程序可以以 很高的速度广播实时数据到多个远程客户 publisher(发送者)datasocket serve 和 subscriber(接收者)是利用 datasocket 发布数据的三个要素 publisher 利用 datasocket api将数据写到 datasocket server 中而 subscriber 再利用 datasocket api 从 datasocket server 中读出数据如图 4.7 所示 重庆大学硕士学位论文 4 labview 的网络通信 27 图 4.7 datasocket 通信过程 fig 4.7 the communication process of datasocket datasocket server manager 是一个独立运行的程序它的主要功能是设置 datasocket server可连接客户程序的最大数目和可创建数据项的最大数目 创建用 户组和用户设置用户创建数据项(data item)和读写数据项的权限数据项实际上 是 datasocket server中的数据文件未经授权的用户不能在 datasocket server 上 创建或读写数据项其程序界面如图 4.8 所示 图 4.8 datasocket server 管理器 fig 4.8 datasocket server manager datasocket server也是一个独立运行的程序 它能为用户解决大部分网络通信 方面的问题 它负责监管 datasocket server manager 中所设置的各种权限和用户程 序之间的数据交换其程序界面如图 4.9 所示 datasocket server与测控应用程序可安装在同一台计算机上 但在本系统中安 装在不同计算机上这样可以通过计算机之间的防火墙增加整个系统的安全性 publisher datasocket server subscribervi subscriber web 重庆大学硕士学位论文 4 labview 的网络通信 28 而且 datasocket server程序不会占用测控计算机 cpu 的工作时间测控应用程序 可以运行地更快 图 4.9 datasocket 服务器 fig 4.9 datasocket server 4.2.2 datasocket 通信应用 使用 datasocket 技术进行通信时服务器端和客户端的计算机上必须都运行 datasocket server图 4.10 和图 4.11 分别是发送和接收程序框图 图 4.10 datasocket 发送程序 fig 4.10 transmit program of datasocket 图 4.11 datasocket 接收程序 fig 4.11 receive program of datasocket 重庆大学硕士学位论文 4 labview 的网络通信 29 在程序中datasocket write 节点将数据发送到 urldstp:/xc/data指定的 位置datasocket read 从上述 url 指定位置将数据读出并还原为原来的数据类 型送到前面板窗口中的 wave graph中显示对比前面的 tcp 程序可以看出采用 datasocket 通信要比 tcp 通信简单地多 此外labview6 以后的版本还提供了一种在前面板之间完成 datasocket 通 信的方式即通过在准备进行连接的前面板对象上弹出的 datasocket connection 对话框中进行配置建立前面板的连接从而大大的简化了编程的工作量如图 4.12 所示 图 4.12 datasocket 前面板通信 fig 4.12 front panel communication of datasocket 图 4.12 中 connect to 是数据连接的 url其格式为dstp/ numericdata. dstp 是datasocket的固有协议 numericdata是vi与datasocket server 连接时用户为数据提供的附加到 url 具有名称的 tap 数据接收受方的 datasocket connection 配置方法与发送方基本相同唯一区别是 connection type 由 publish(发送者)改为 subscribe(接收者) 这种前面板的对象链接是一种不需要任何编程的网络数据传输方法通过 datasocket将两个程序的前面板对象链接起来一个对象发送数据另一个对象接 收数据就可以实现对程序的远程控制数据的远程采集等诸多功能 重庆大学硕士学位论文 4 labview 的网络通信 30 4.3 remote panels 通信 前面提到的tcp udp 和 datasocket通信一般仅适用于测量数据的网上传输 而不能直接在本地计算机上打开并操作位于远程计算机上的 vi 前面板从 labview 6.1 开始的版本集成了 remote panels 技术用户可以直接在本地计算机 上打开并操作位于远程计算机上的 vi 前面板 甚至可以将 labview vis 的前面板 窗口嵌入到一个网页中并在网页中直接操作它另外也有一些第三方提供的 remote panels 发布工具例如 labvnc 在 labview 中设置并使用 remote panels 需要两步首先要在 labview web server端的计算机上进行 remote panels 操作完成后再在 client 端计算机上连接 并运行 remote panels 4.3.1 配置 labview web server 在 client 端使用 remote panels 之前必须首先在 server 计算机上运行 labview 并配置 web serverweb server 需要以下三方面的配置 文件路径和网络设置 图 4.13 web server 的配置 fig 4.13 configuration of web server 选中 enable web server可以启动 labview web server labview web server 默认的端口号为 80通常情况下端口号 49152 到 65535 是推荐给用户自定 义 tcp/ip 应用程序使用的网络端口 配置页面中的其他选项包括 server html的 根目录time out 时间设定log文件路径设置等如图 4.13 所示 客户机访问权限设置 重庆大学硕士学位论文 4 labview 的网络通信 31 在这个页面可以设置允许或禁止访问的客户机以及其访问权限如图 4.14 所 示 其中代表允许客户机观看并控制 remote panels表示只允许 客户机观看 remote panels表示禁止该计算机访问 图 4.14 web server 的访问浏览 fig 4.14 browser access of web server vis 访问权限设置 在这个页面中可以设置允许客户访问的程序如图 4.15 所 示 图 4.15 web server 的可访问程序 fig 4.15 visible vis of web server 其中的表示允许访问所有的 vis表示禁止客户机访问该 vi 当系统中包含了许多 subvi而其中有些 subvi 的前面板在控制过程中需要 打开设置参数时我们只要创建一个最上层 vi 的网页而需要打开的 subvi 前面 板的属性设定为 open during execution即可 这样就可以在客户端打开这些 subvi 的前面板 重庆大学硕士学位论文 4 labview 的网络通信 32 4.3.2 在 client 端运行 remote panels 目前有两种方式可以实现在 client 端计算机进行 remote panels 操作在 labview 环境中直接操作 remote panels 和利用网页浏览器直接操作 remote panels 在 labview 环境中实现 remote panels 当在 labview 中运行 remote panels 操作时选择 connect to remote panel., 在弹出的对话框 connect to remote panel中输入 server 端的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防触电安全教育
- 激光结痂术后护理常规
- 匹配算法实时性研究-洞察及研究
- 中班健康坚果课件
- 二零二五年度PVC建筑门窗配件生产与销售合同
- 二零二五Oracle智能合约开发与部署合同模板
- 二零二五年度城市家具搬运服务合同书
- 中班中国年课件
- 二零二五年汽车租赁市场拓展专项合同
- 城管普法考试题库及答案
- 2025年广东高考政治试卷真题答案详解讲评(课件)
- 卡口及道路交通智能监控系统方案设计
- 2025年家庭照护师职业资格考试试题及答案
- 呼吸机相关性肺炎的预防和护理
- 2025年绥化市中考化学试题卷(含答案解析)
- 门诊口腔院感基础知识培训
- 论咏叹调《妈妈不在》的形象刻画与唱段处理
- 危重病人观察和护理要点
- 砌体工程培训课件
- GB/T 45719-2025半导体器件金属氧化物半导体(MOS)晶体管的热载流子试验
- 2025-2030中国医药商业行业盈利态势与投资潜力分析报告
评论
0/150
提交评论