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.mzph.cn/pingmian/30515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

htb_Editorial

hack the book Editorial 端口扫描 80 22 目录扫描 /upload 是一个上传book information的页面 其中最顶上有一个可以上传书本封面的地方,可以从本地上传,也可以从远程下载 这里可能涉及ssrf和本地文件上传,逐一尝试 随便上传一个图片…

idea搜索只显示100条、如何修改idea搜索的条数

文章目录 一、老版本的IDEA(2021年之前的版本)二、新版本的IDEA(2021年及之后的版本)2.1、方式一2.2、方式二 如下图:idea搜索的时候默认只显示100条 要解决IDEA搜索只显示100条的问题,可以通过修改搜索结…

【UML用户指南】-19-对基本行为建模-用例图

目录 1、组成结构 2、表示法 3、一般用法 3.1、对主题的语境建模 3.2、对主题的需求建模 4、常用建模技术 4.1、对系统的语境建模 4.1.1、设计过程 4.2、对系统的需求建模 4.2.1、设计过程: 5、正向工程 UML 中的用例图是对系统的动态方面建模的 5 种图之…

进入docker容器内部操作mysql数据库

文章目录 1、查询docker容器2、进入mysql容器内部3、连接mysql数据库4、查询mysql所有的数据库5、使用某个数据库6、展示数据库中所有的表7、查询某张表8、断开mysql9、退出mysql容器 1、查询docker容器 [rootlocalhost ~]# docker ps CONTAINER ID IMAGE …

商城小程序:颠覆传统电商,打造全新商业生态

在数字化浪潮的推动下,网购行业呈现多元化繁荣发展态势,出现了琳琅满目的商品应用小程序,但市面上的商城小程序基本属于通用型,无论是商城界面展示和基本功能,都不能满足个性化和商品推广需求,阻碍了商品的…

Building wheels for collected packages: mmcv, mmcv-full 卡住

安装 anime-face-detector 的时候遇到一个问题:Installation takes forever #1386:在构建mmcv-full时卡住,这里分享下解决方法(安装 mmcv 同理,将下面命令中的 mmcv-full 替换成 mmcv) 具体表现如下&#x…

基于Java技术的家乡特色推荐系统

开头语:你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,SpringBoot框架 工具:Eclipse,Navi…

强大的多数据库客户端工具:DataGrip【送源码】

今天给大家带来的工具是:DataGrip 介绍 DataGrip是jetbrains开发的一款关系数据库和 NoSQL 数据库的多数据库客户端工具,可以30天免费试用,后续使用需要购买。 DataGrip还是一款强大的跨平台工具,支持多种操作系统,比…

英伟达市值飙升,超越苹果微软并超过英国股市总市值

原标题:英伟达超越苹果微软市值,成为全球市值最高的企业 易采游戏网6月19日消息:近日,美国科技巨头英伟达市值的迅速增长引起了市场广泛关注。据最新数据显示,截至本周二收盘,英伟达的市场资本化已达到3.34…

基于Redis提高查询性能(保持数据一致性)

Redis实战篇 | Kyles Blog (cyborg2077.github.io) 目录 背景 商户查询缓存(根据ID查询) 根据店铺类型查询(List型) 缓存更新策略(保证数据一致性) 案例(利用缓存更新策略) 背景 起初客户端…

【pytorch01】简单回归问题

1.梯度下降(Gradient Descent) y x 2 ∗ s i n ( x ) yx^{2}*sin(x) yx2∗sin(x) y ′ 2 ∗ x ∗ s i n ( x ) x 2 ∗ c o s ( x ) y2*x*sin(x) x^{2}*cos(x) y′2∗x∗sin(x)x2∗cos(x) 求最小值要求导 梯度下降定义:梯度下降要迭代计…

【决战欧洲杯巅峰】AI模型预测[走地数据]初步准备工作

数据准备 首先,我们需要收集一些与欧洲杯比赛相关的历史数据。这些数据可能包括球队的历史战绩、球员的能力评分、比赛场地信息、历史交锋记录等。这些数据可以从公开来源获取,并进行适当的预处理和清洗。 特征提取 接下来,我们需要从收集…

vue3+ts+vite集成eslint

项目中安装eslint yarn add eslint -Deslint初始化 npx eslint --init按照下方操作即可 安装typescript-eslint/parser yarn add typescript-eslint/parser -D安装vite-plugin-eslint2 yarn add vite-plugin-eslint2 -D配置vite-plugin-eslint2 // vite.config.ts import …

Flask新手入门(一)

前言 Flask是一个用Python编写的轻量级Web应用框架。它最初由Armin Ronacher作为Werkzeug的一个子项目在2010年开发出来。Werkzeug是一个综合工具包,提供了各种用于Web应用开发的工具和函数。自发布以来,Flask因其简洁和灵活性而迅速受到开发者的欢迎。…

【计算机网络仿真实验-实验2.7】单臂路由

实验2.7 单臂路由 1. 实验拓扑图 2. 测试连通性 测试PC1 PC2 PC3 之间的连通性 无法ping通,因为它们处在不同的网段,而二层交换机不具备路由功能,因此没办法接通 3. 在交换机上创建vlan10,并将端口0/2划分到vlan10中 Switch>…

Java并发编程深度解析:构建高并发应用的实践与探究

摘要:随着互联网技术的飞速发展,大型分布式系统对并发处理能力的要求越来越高。Java作为企业级应用的主流开发语言,在并发编程方面有着深厚的积累和强大的生态支持。本文将深入探讨Java并发编程的基础知识,高级技巧,以…

HTML基本标签使用【超链接标签、表格标签、表单标签、input标签】

目录 一、基本介绍1.1 概念1.2 HTML的核心特点 二、HTML基本标签三、超链接标签四、表格标签✌<table> 标签属性✍<tr> 标签属性✌ <td> 和 <th> 标签属性演示注意事项 五、表单标签综合应用 最后 一、基本介绍 1.1 概念 HTML&#xff0c;全称为超文…

SpringBoot集成slf4j日志配置

目录 前言 1、slf4j概述 2、pom.xml的日志依赖 3、application.yml的日志配置 4、logback.xml配置文件定义 5、logback.xml配置文件解析 5.1 定义日志的存储路径 5.2 定义日志的输出格式 5.3 定义控制台输出 5.4 定义日志相关参数 5.5 定义日志的输出级别 6、测试日…

利用JAVA语言调用GLM-4接口实战指南

一、什么是API接口 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是一种软件接口&#xff0c;它定义了不同应用程序之间如何相互通信、交互。API接口分为很多种&#xff0c;常见的有Web API&#xff0c;数据库API&#xff0c;操…

数据结构-算法和算法分析

目录 前言一、算法1.1 算法与程序1.2 算法描述方法1.3 算法特性1.4 算法设计的要求 二、算法分析2.1 算法时间效率的度量2.1.1 事前分析方法算法的渐进时间复杂度算法时间复杂度分析例子算法最坏时间复杂度时间复杂度的计算规则 2.2 算法空间效率的度量 总结 前言 程序 数据结…