LabVIEW共享变量

news/2024/6/18 21:55:00 标签: labview

共享变量简介
LabVIEW​为​创建​分布​式​应用使用​共享​变量​可以简化​此类​应用的编程。​
借助​共享​变量,​您​可以​在​同​一个​程序​框​图​的​不同​循环​之间​或者网络上​的​不同VI之间​共享​数据。与LabVIEW中的许多​其他数据​共享​​方法(如UDP/TCP、LabVIEW队列及实​时FIFO)不同,共享​变量​通常​可在​编辑​时​使用​属性​对话​框​进行​配置​,而​无需在应用​中​添加​配置​代码。

创建共享变量
在我的电脑或其他终端设备上新建变量。
在这里插入图片描述
共享变量配置窗口
在这里插入图片描述
共享变量新建完成后会自动生成一个lib文件将该变量包含,用户可以继续在当前库内继续新建共享变量。S_pos为单进程共享变量,其余为网络共享变量。
在这里插入图片描述

共享变量可以在工具➡分布式系统管理器中进行查看。PS:如果未能找到所创建的变量则需将所创建的Lib文件→右键→部署。然后在分布式管理系统节目刷新后进行查看。单进程共享变量不会在分布管理系统中显示。
在这里插入图片描述
共享变量切换读写
可以右键共享变量→访问模式,进行读写切换。
在这里插入图片描述

在这里插入图片描述

单进程共享变量
单进程共享变量可以替代同一个vi内无法直接通过连线连接的赋值操作或者不同vi之间的赋值操作。单进程共享变量与全局变量类似,最大的区别是可以通过配置将单进程共享变量替换为网络共享变量。
需要注意的是单进程共享变量与Labview全局变量类似均存在读取写入时不会出现互斥的情况(同时读取或者同时写入时会出现互斥),故需要避免出现读取与写入同时进行的情况。

网络共享变量
利用网络发布​共享​变量,​您​可以​在​以太​网网络上读写​共享​变量​。​网络应用的处理​完全​通过网络发布​变量​完成。
网络发布共享​变量必须​部署​到​​网络上​托管​该​变量值​的​共享​变量​引擎(SVE)中。​当​写​入​一个​共享​变量节点时,LabVIEW会将​这个​新​值​发送​给​部署​和​托管该​变量的SVE。SVE处理​循环将发布该​值,​使得订阅者​可以​得到​更新值。下图显示的就是这一过程。从​客户端/服务​器​的角度来看,SVE是​共享​变量的服务器,​所有​对​其​的​引用​(不论是​对变量进行写入还是读取​操作)​都是客户端。SVE客户​端​是每个​共享​变量​节点​实现​中的​一部分,​在​本文​中,客户端和订阅者这两个术语是​可​互换​的。
在这里插入图片描述
网络共享变量网络缓冲
在这里插入图片描述

​缓冲​功能​可以​解决​对于​​变量读取/写入速度​的​临时​波动​问题。​读​取线程​偶尔​比​写​入​线程慢​的​情况​可能​会​导致​一些​更新​数据​的​丢失。​如果​应用​可以​容忍​偶尔​的​数据​丢失,​则​较​慢​的​读​取​速率​并不​会​影响​应用,​此时​就​不需要​启用​缓冲​功能。​但是,​如果​读​取线程​必须​获得​每​个​更新​数据,请启用​缓冲​功能。​您​可以在共享​变量​属性(Shared Variable Properties)对话​框​中的变量(Variable)页面​设定​缓冲​区​大小,​这样就​可以​确定​在​旧​数据​被​覆盖​之前,​应用​​可以​保存​多少​更新​数据。
在这里插入图片描述

由于缓冲功能会为每个订阅者分配一个缓冲区,为避免不必要的内存占用,请仅在必要时使用缓冲功能。

RT FIFO
共享变量可以选择开启实时FIFO功能,此部分不理解。。。
在这里插入图片描述

共享变量使用

  1. 使用共享变量节点进行读取和写入。
    可右键单击节点并选择访问模式 > 读取或访问模式 > 读取/写入。
    在这里插入图片描述
    在这里插入图片描述
  2. 前面板绑定
    如需配置前面板共享变量绑定,可右键单击输入控件或显示控件并选择属性。在属性对话框的数据绑定页,选择共享变量引擎(NI-PSP)。浏览正确的变量路径。如选择了有效变量,VI运行时,控件右上角关联的三角形PSP LED将变成绿色。
    如对服务器变量名称(或自身的库名称)进行了修改,则还需手动修改该前面板绑定。
    在这里插入图片描述
  3. 其他变量绑定已有变量
    新建变量时,勾选启用别名后选择绑定至PSP URL并浏览到需要绑定的变量。
    在这里插入图片描述
  4. 使用共享变量API的形式
    使用共享变量API的形式进行通讯
    变量URL的组织结构如下所示:
    ni.var.psp://[服务器机器名称]/[服务器变量库]/[服务器变量名称]在这里插入图片描述
  5. 使用DataSocketAPI进行交互
    打开DataSocket函数打开服务器变量的DataSocket连接。While循环中,读取DataSocket函数读取当前变量值。循环停止后,关闭DataSocket函数关闭连接。
    如对服务器变量名称(或自身的库名称)进行了修改,则还需手动修改下面的URL。
    变量URL的组织结构如下所示:
    psp:\[服务器机器名称][服务器变量库][服务器变量名称]在这里插入图片描述

参考文档
https://www.ni.com/zh-cn/support/documentation/supplemental/06/using-the-labview-shared-variable.html
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YHvgCAG&l=zh-CN


http://www.niftyadmin.cn/n/5520513.html

相关文章

探索交互的本质:从指令到界面的演进与Linux基础指令的深入剖析

目录 1.指令 vs 界面//选读 1.1交互的需求 满足需求的第一阶段-指令 满足需求的第二阶段-界面 1.2 指令 和 界面交互 区别 2.操作系统介绍 2.1 举例说明 驱动软件层 2.2 为什么要有操作系统? 0x03 为什么要进行指令操作? 3.Linux基本指令 l…

上海2024年二手房最新成交历史数据

标签: 上海2024年二手房最新成交历史数据; 二手房; 时间: 2024年 上海市4月二手房网签套数:18230套 上海市5月二手房网签套数:19396套 上海市6月二手房网签套数: 6月1日:924套 6月2日:886套 6月3日:720套 6月4日:750套 6月5日:823套 6月6日:902套 6月7日:968套…

Kali中安装和使用docker的学习笔记

一、常见命令 ctrl 、shift、 : 窗口变大; ctrl 、- :窗口变小; ctrl L: 清屏 ; sudo su : 切换root 用户; ip addr / ifconfig: 获取IP地址; systemctl start ssh…

【数据的增值之路】全生命周期的数据演化过程

引言:随着云计算、大数据、人工智能、区块链等新一代信息技术的快速发展,数据已经成为推动经济增长的重要生产要素。数据量的爆炸式增长,为挖掘数据价值、推动数字经济发展提供了丰富的资源基础。重要概念解析: 数据经济&#xf…

工业 UI 风格,展现独特魅力

工业 UI 风格,展现独特魅力

Spring 循环依赖详解

Spring 循环依赖详解 1. 引言 在Spring框架中,依赖注入(Dependency Injection, DI)是其核心功能之一,它通过配置来管理对象的创建和它们之间的依赖关系。然而,在复杂的应用程序中,开发人员有时会遇到循环…

vue2和vue 3 的响应式原理

vue 3 响应式原理 在 Vue 3 中,响应式系统的核心是使用了 ES6 的 Proxy 对象来实现对数据的拦截和响应式更新。 简单的 Proxy 示例: const data { count: 0 }; const handler {get(target, key, receiver) {// 当访问属性时触发track(target, key);…

Node.js和npm的安装及配置

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞 I/O 的模型。 npm(node package manager)是一个 Node.js 包管理和分发工具,也是整个 Node.js 社区最流行、支持第三方模块最多的包管理器。使…