LabView编程基础:隧道和移位寄存器

2023-11-17

目录

一、隧道

 二、隧道运行结果

三、移位寄存器添加方法1(从隧道替换为移位寄存器)

四、移位寄存器方法1运行结果

五移位寄存器添加方法2(直接添加移位寄存器)

六、移位寄存器方法2运行结果

七、切记:移位寄存器必定成对出现,否则程序会出现编译错误。

八、分析


        下面的两个源代码,希望实现的功能是传入一个参数0,通过三次循环,每次在循环体内加3,输出的结果赋值给一个数值显示控件。通过代码的结果,来看看隧道和移位寄存器到底有什么区别。

一、隧道

1、前面板创建一个数值显示控件

 2、程序框图

 (2.1)程序框图添加一个For循环,循环次数为3

(2.2)、程序框图For循环外面添加一个常数0,For循环内部添加一个加号和常数3

 (2.3)加号连线到数值显示控件

 哇!系统提示错误:已连接两个不同类型的接线端。

右键单击自动索引隧道

 弹出下拉菜单,选择隧道模式为:最终值

 哈,没有错误啦!

 二、隧道运行结果

        运行一下观察运行结果,显示控件显示3。

三、移位寄存器添加方法1(从隧道替换为移位寄存器)

        参见下图,程序框图已经添加了隧道,如何将隧道替换为移位寄存器呢?

 1、循环隧道替换为移位寄存器

  

 2、FOR循环右边边框上的实心方块替换为移位寄存器

        左边的实心方块会变成一个空心方块,方块内有一个向下的箭头。

        鼠标也会变成一个空心方块,方块内有一个向上的箭头。

        鼠标点击FOR循环右边边框上的实心方块(隧道)。

 当鼠标点击FOR循环右边边框上的实心方块(隧道)后,FOR循环右边边框上的实心方块(隧道)变成移位寄存器(空心方块,方块内有一个向上的箭头)

四、移位寄存器方法1运行结果

        运行一下观察运行结果,显示控件显示9。

五移位寄存器添加方法2(直接添加移位寄存器)

        参见下图,程序框图中没有添加隧道,如何添加移位寄存器呢?

 1、连线常数0和加法

 2、FOR循环边框左边添加移位寄存器

        鼠标点击FOR循环左边边框上的实心小方块

 弹出下拉菜单,选择“替换为移位寄存器”

        可以观察到FOR循环左边边框上的实心小方块变成空心小方块,小方块内有一个向下的箭头。FOR循环右边边框上自动添加了一个空心小方块,小方块内有一个向上的箭头。

 3、连线加号到FOR循环右边边框上的空心小方块内的箭头。

 4、连线FOR循环右边边框上的空心小方块内的箭头到最右边的数值显示控件。

六、移位寄存器方法2运行结果

        运行一下观察运行结果,显示控件显示9。

七、切记:移位寄存器必定成对出现,否则程序会出现编译错误。

        移位寄存器必定在FOR循环的左边边框上有一个,在FOR循环的右边边框上也要有一个。

八、分析

        我们发现分别使用隧道和使用移位寄存器运行,得到的结果却迥然不同。隧道程序循环执行3次后输出的结果仍为3,而二次移位寄存器程序循环执行3次后如愿以偿的得到了9这个值,其原理在于:

        (1)、隧道是一个局部变量值,每次进入循环体都会被循环体外部赋予一个初始值,所以即使循环执行了3次,但是每一次隧道的左入口的值都为0,在循环体内加3后,隧道的右出口值为3,即使执行N次也是这样。

        (2)、移位寄存器的值稍微不同,每一次在循环体内执行,每次都会把右边移位寄存器出口的值用作左边入口的值,因此执行3次以后得到了9。

        正如上文提到,熟悉C/C++的同学应该会想到了,这就是我们所熟悉的局部变量和静态局部变量的区别嘛!

        是的,隧道相当于每次进来循环体之后把循环体外的值赋予循环体内的局部变量,所以不管循环体内执行几次,其结果也等同于只执行了一次。然而移位寄存器相当于加了static的静态局部变量,我们知道静态局部变量是不会压栈的,因此它的值会随着每次循环体的执行而往上累加。

        总结:隧道就相当于C/C++中的循环体内的局部变量,移位寄存器就相当于C/C++中的循环体外的静态局部变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LabView编程基础:隧道和移位寄存器 的相关文章

  • LabVIEW通过以太网(TCP)与S7-1200 PLC通信

    LabVIEW通过以太网 TCP 与S7 1200 PLC通信 laiping 20170901 摘要 本文介绍LabView采用以太网 TCP 方式与西门子S7 1200PLC通讯 关键字 LabView S7 1200 TCP PLC
  • 64位操作系统(WIN10)+32位LabVIEW(2020)+64位MySQL,Windows10系统下用32位ODBC连接MySQL

    1 首先得安装 Connector ODBC 就是MySQL的ODBC驱动 这个是与应用程序相关的 而不是与操作系统相关的 也就是说 不管你的系统是X64还是X86 只要你的应用程序是X86的那么 Connector ODBC 就要安装X8
  • GY906 MLX90614 非接触式 红外测温传感器 LabVIEW i2c总线数据读取

    GY906使用的红外测温芯片为MLX90614 使用LabVIEW读取i2c总线数据时 需要知道传感器的地址 出厂默认为0x5A 传感器地址支持自己修改 存放在芯片EEPROM的0x0E位置 可以通过访问EEPROM的0x0E单元来获得传感
  • 第一课:LabView2015中文版安装教程

    1 下载解压缩 双击文件 2015LV WinChn exe 将 点击unzip解压 解压路径为默认为 C National Instruments Downloads LabVIEW Chinese 2015 2 软件成功解压后 自动弹出
  • Tango和ROS在LabVIEW的联合测试

    环境 LabVIEW2018 32位 Tango ROS for LabVIEW Software v2 1 0 2 步骤 目标 变量传递顺序 Tango Client Tango Server ROS Publisher ROS Subs
  • 使用外腔量子级联激光器水对溶液中乳酸的定量和使用红外光谱作为液相色谱检测器的LabVIEW 自动化系统平台应用

    LabVIEW 服务器 高级实验室全自动化系统平台由一个服务器应用程序和多个客户端应用程序组成 每个客户端控制连接的硬件 例如泵 阀门或光谱仪 服务器用于通过 TCP 发送脚本命令 远程控制连接的客户端 每个客户端也可以在本地模式下使用 直
  • Arduino和LabVIEW射频灾害紧急报警系统

    该项目将在发生灾难时生成紧急警报 该系统分为两部分 传感器节点和 2 服务器 连接该开关阵列以在处理端生成紧急信号 然后将其发送到传感器节点 图1给出了系统框图 物料清单 接线 原理图 代码 传感器节点端代码 处理端代码 仿真模型 LabV
  • 发电机励磁装置LabVIEW 和MATLAB/Simulink联合仿真

    一 主要内容 实现发电机励磁装置的独立运行 测试学习及动态参数优化 开发一款发电机励磁装置虚拟仿真系统 为便于和励磁装置进行控制器域网 Controller Area Network 简称 CAN 通讯并实现友好的人机界面 主程序基于Lab
  • 基于LabVIEW的PID算法解读

    记录一下 方便以后翻阅 下图是基本的PID算法实现方式 以及实现PID控制器所需的假设和转换 为实现PID控制器 LabVIEW要求算法对输入信号进行采样并离散积分和微分操作 一 误差计算 e k SP k PV k 上式中 e k 表示当
  • LABVIEW连接MySQL进行读写更新查询操作并仿真

    相关软件的准备 欢迎访问我的小站 我的软件环境是LabVIEW 2018 32位 的 这个很重要 因为不同位数的labview需要安装不同位数的Connector odbc 还需要安装visio的运行环境 这个需要提前准备 Mysql的安装
  • MATLAB滤波算法和LabVIEW心电图诊断系统

    心电图的生理 我们的目标是构建一个心电图 ECG 它不仅可以自动计算心率 还可以检测其他心脏异常 这需要对 ECG 信号进行更高级的分析 为了实现这一目标 需要完成几个步骤 如下面的流程图所示 在我们详细介绍如何构建 ECG 之前 了解 E
  • LabVIEW扫描成像或同步模拟电压生成和数据采集

    大量测量技术涉及探头扫描 同时测量物理量 例如 所有扫描成像方法都是这种情况 因此 数据采集需要高采集率 以及探头控制和测量之间的精确同步 GPScan VI 程序是用于控制 National Instruments 高速数据采集板的通用
  • 如何向我的 C++ 应用程序添加一个简单的 API 以供 LabView 访问?

    我有一个用 C Visual Studio 6 0 编写的数据采集程序 一些客户希望通过自己的定制软件或 LabView 来控制软件 我想提出一个简单的 API 和一个可以分发给他们的 dll 并且想要一些关于如何开始的提示 这将是非常基本
  • Python 列表到 XML,反之亦然

    我编写了一些将 python 列表转换为 XML 元素的 python 代码 它用于与 LabVIEW 交互 因此采用了奇怪的 XML 数组格式 无论如何 这是代码 def pack data create the result eleme
  • 如何使用Python脚本控制LabView VI前面板开关(开/关、条调节器)?

    我有一个LabView前面板控制硬件的开关和传感器电压调节器 需要使用 Python 脚本来控制它们 我对此了解不多LabView 请解释如何做到这一点 我在 LabVIEW 讨论板上找到了一份参考资料 该参考资料成功地this 它使用以下
  • Labview - 通过数组大小限制增加数组索引

    我正在使用labview XY线图 该图使用随机数生成器生成y值 并使用while循环计数生成x值 当达到阈值 x 值 例如 1000 时 我希望能够迭代过去的 1000 个值并仅每 10 个值显示一次 这具有整理绘图的效果 理想情况下 实
  • 是否可以在 git-extensions 中为特定文件扩展名设置 diff/merge-tool ?

    我刚刚开始使用 LabView 进行开发 这对我来说是全新的 我想使用 git 扩展来处理我的版本控制 由于源位于 vi格式 我无法使用普通的 diff 工具 源是二进制的 幸运的是 LabView 附带了专用的差异和合并工具 这似乎非常有
  • Python UDP广播不发送

    我正在尝试从 Python 程序到两个 LabView 程序进行 UDP 广播 我似乎无法发送广播 我不确定我的套接字初始化错误在哪里 广播似乎足够简单 据我所知 其他电脑没有收到任何数据 另外 我将来还需要这个程序来接收来自其他电脑的数据
  • Labview 2011 中的 DLL 加载错误

    我在 LabVIEW 中加载 DLL 时遇到了问题 我正在使用 LabVIEW 连接到流量计 为此 制造流量计的公司非常好地为我提供了一个子 VI 库 这些子 VI 中的每一个都调用该公司提供的两个 DLL 库之一中的函数 因此 这些子 V
  • Labview:创建子VI使框图扩展

    我在Labview中编写了一段相当复杂的代码 有很多循环和其他序列 因此我想创建许多子VI以使我的代码更清晰 当我想要在子VI中使用代码中的循环时 新创建的子VI的图标会出现在远离我的原始代码段的地方 导致我的程序框图扩展 为什么会发生这种

随机推荐

  • C#常用的加密算法:MD5、Base64、SHA1、SHA256、HmacSHA256、DES、AES、RSA

    简介 本文主vb net教程要讲c 教程解一下C 常用的python基础教程那些加密java基础教程算法 包括MD5 Base64 SHA1 SHA256 HmacSHA256 DES AES RSA加密sql教程等 有需要的朋友可以参考下
  • Java写入txt文件内容

    Java写入数据进txt文件 需求 多条数据追加进文件 且需要处理中文编码问题 以下代码只能处理向文件添加数据的功能 但是会覆盖掉之前的数据 import java io File import java io FileOutputStre
  • 7-3 一维世界的纷争 (C++) 简单详细

    代码简单 难的点在于读懂题目 帝国A和帝国B统治着一维世界 帝国A的首都位于X 帝国B的首都位于Y 100 X
  • Linux中系统进程的详细管理

    一 什么是进程 进程就是系统未完成并且正在进行的工作 二 查看进程 1 图形方式查看 gnome system monitor 进程状态 R Running 该程序正在运行 S Sleep 改程序目前正在睡眠状态 idle 但可以被唤醒 s
  • VRTK4 入门指南

    VRTK4 说明文档 VRTK Farm Yard 示例 Virtual Reality Toolkit 要求使用 Unity 2020 3 24f1 Beta 免责声明 简介 入门 下载项目 在 Unity 中打开下载的项目 使用 Uni
  • Disruptor(一)Disruptor概念和RingBuffer数据结构

    Disruptor是LMAX公司开源的一个高效的内存无锁队列 谈到并发程序设计 有几个概念是避免不了的 1 锁 锁是用来做并发最简单的方式 当然其代价也是最高的 内核态的锁的时候需要操作系统进行一次上下文切换 等待锁的线程会被挂起直至锁释放
  • Unity 3D控制角色运动的方法

    一 transform Translate 方法 1 Input GetKey KeyCode 按键 if Input GetKey KeyCode W transform Translate Vector3 forward Time de
  • Ubuntu 18.04 16.04 设置输入法切换方法 中文输入法

    新装的unbunu 18 04 16 04 也可以 默认应该有中文输入法 但是应该不太好用 我们安装一个搜狗输入法 下面的shell代码实现了更新软件 检查语言支持 然后下载搜狗输入法 并且安装 然后把fcitx设置为默认输入 然后重启系统
  • 谈一谈关于NLP的落地场景和商业价值

    欢迎大家关注微信公众号 baihuaML 白话机器学习 在这里 我们一起分享AI的故事 您可以在后台留言 关于机器学习 深度学习的问题 我们会选择其中的优质问题进行回答 本期的问题 你好 请问下nlp在现在的市场主要应用在哪些方面 什么是N
  • java调用onnx模型_微软宣布开源ONNX.js,可在浏览器上运行ONNX模型

    ONNX js是一个Java库 用于在浏览器和Node js上运行ONNX模型 ONNX js采用了WebAssembly和WebGL技术 为CPU和GPU提供优化的ONNX模型推理runtime 为何选择ONNX模型 在开放式神经网络交换
  • U盘分配单元大小建议设置多少?

    在对U盘进行格式化的时候 需要先进行单元分配 合理单元分配不仅可以提高U盘的读写速度还不会浪费储存空间 下面就来看看U盘分配单元大小设多少最佳的教程 具体解析如下 1 首先来说U盘的默认格式化的方式都是FAT32的 FAT32不支持大于4G
  • fatal error: Python.h: No such file or directory解决办法

    sudo apt get install scikit image 在安装scikit image时出现如下错误 Installing collected packages subprocess32 python dateutil back
  • Ubuntu连接不了网络的解决方法

    问题描述 突然发现Ubuntu连不上网络 右上角也没有网络图标 解决方案1 解决步骤 步骤一 sudo vim etc NetworkManager NetworkManager conf 1 将其中的managed false 改为 ma
  • python在终端输出不同颜色的打印,自定义日志和自定义log输出级别

    实现过程 终端的字符颜色是用转义序列控制的 是文本模式下的系统显示功能 和具体的语言无关 转义序列是以ESC开头 即用 033来完成 ESC的ASCII码用十进制表示是27 用八进制表示就是033 书写格式 开头部分 033 显示方式 前景
  • 关于对【Lambda表达式_java】的理解与简述

    版权声明 未经博主同意 谢绝转载 请尊重原创 博主保留追究权 https blog csdn net m0 69908381 article details 130522535 出自 进步 于辰的博客 坦白说 在我学会如何使用Lambda表
  • python获取变量名

    一 使用locals 方法 hello 123 loc locals def get variable name variable for k v in loc items if loc k variable return k print
  • lightGBM 回归模型代码

    lightGBM 回归模型代码 文章目录 lightGBM 回归模型代码 lightGBM K折验证效果 模型保存与调用 个人认为 K 折交叉验证是通过 K 次平均结果 用来评价测试模型或者该组参数的效果好坏 通过 K折交叉验证之后找出最优
  • 14.QueuedConnection和BlockingQueuedConnection连接方式源码分析

    QT信号槽直连时的时序和信号槽的连接方式已经在前面的文章中分析过了 见https blog csdn net Master Cui article details 109011425和https blog csdn net Master C
  • 微信小程序隐私指引完整填写范本

    背景 小程序提交的时候遇到了官方给的填空题 答案如下所示 建议直接crtl f搜索者看 为了分辨用户 开发者将在获取你的明示同意后 收集你的微信昵称 头像 为了显示距离 开发者将在获取你的明示同意后 收集你的位置信息 开发者收集你的地址 用
  • LabView编程基础:隧道和移位寄存器

    目录 一 隧道 二 隧道运行结果 三 移位寄存器添加方法1 从隧道替换为移位寄存器 四 移位寄存器方法1运行结果 五移位寄存器添加方法2 直接添加移位寄存器 六 移位寄存器方法2运行结果 七 切记 移位寄存器必定成对出现 否则程序会出现编译