labview从入门到出家6(进阶篇)--移位寄存器的使用
前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了。这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告诉我,移位寄存器是个好东西,用得好,代码量可以更加有效简洁。老曹目前的程序基本就没脱开过移位寄存器的使用。下面就简单的讲解一下移位寄存器的使用,各位不妨试一下用其他方式实现下面累加的功能,和移位寄存器对比一下就知道它好用在哪里了,不过要了解到好用的精髓,还是得在复杂一点的功能上,这个在后面的状态机中可以稍微体现出来。
1、新建一个for循环,点击循环边框,右键添加移位寄存器。


2、添加以下代码,实现从1加到10的功能,注意左上角填的是10,左下角的循环里面的i索引是从0开始的。写完后运行以下看效果。大家可以使用高亮显示,看一下移位寄存器是怎么操作的,移位寄存器其实就是将上一个值/变量/参数等移动到开头的地方再执行,因为存储了上一次的数据,并且移到了开头继续将变量带入执行,因此叫移位寄存器(自己编的)。就这个一个小功能,却解决了不少大麻烦,大家以后会发现它的好用之处。有兴趣的,可以不使用移位寄存器,通过其他方式实现以下逐渐累加功能,看寄存器是不是高效简洁了许多。

3、移位寄存器我还经常用来初始化一个数组,在C语言里面,数组要一开始就声明,不能根据实际情况进行改变数组大小,在面向对象的语言中(C#等)是有提供动态数组的类型的,那labview有没有呢?labview本身没提供这种类型,但是却可以通过移位寄存器实现。在编程->数组->数组常量 拖拉处一个未激活的数组常量,再编程->数值->数值常量,拖拉一个数值常量到数组常量中,它们会合并激活成一个可用的空数组,数组类型由我们拖拉进去的变量决定,可以放字符串,簇等,簇在编程->簇,类与变体 中可以找到,簇其实相当于C语言里面的结构体,类还是那个面向对象的类,变体相当于面向对象语言中的泛型,可以用一个变量表示所有变量,最后通过变量转换,转成目标变量。扯远了,这里就是讲一下语言之间的共通性,学好一个,确实可以举一反三,融会贯通(又扯远了)。



4、再拖拉一个 编程->数组->创建数组 ,用这个方法新建数组。

5、鼠标移到到它下方或者上方,进行拖拉。这里拖拉多一个就可以了。拉多少个,就能创建多大的数组,但是我们让它根据我们的需要自动创建,不需要手动一个一个地添加。


6、按如下接线连接,i索引就是循环中的执行次数,从0开始的。右键创建一个输出控件,运行后可以在前面板看到一个新建好的从1到9的数组。


当然还有其他方式,将创建数组函数去掉,用数组插入函数代替,可实现同样的效果。

默认数组是往后面逐渐添加的。

将for循环代替为while循环,效果一致。但是要让程序退出,需要执行完后给while循环中右下角的结束标记一个true,这样运行完后就退出程序了。


慢慢的,你会喜欢上移位寄存器的,特别是后面的状态机讲解,砸门不急,再讲一期进阶篇--队列的使用,就讲状态机了,到时候给大伙一个好用的状态机,当然也可以从网上下载JKI之类的状态机也可以,功能大同小异。
原创不易,一键三连拉!
labview从入门到出家6(进阶篇)--移位寄存器的使用的更多相关文章
- labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用
跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...
- labview从入门到出家9(进阶篇)--串口通讯
Labview在工控领域,如产线,实验室等环境用得较多,其中与仪器通讯控制的方式有串口(RS232,RS485,TTL),GPIB,网口,CAN等,其中串口在仪器还有单片机控制中用来调试居多.(很 ...
- labview从入门到出家8(进阶篇)--简单好用的状态机
labview的状态机类似于一个软件框架的基本单元,好的软件框架和软件思路采用一个好的状态机,就如虎添翼了.这章给大家讲一个本人常用的一个状态机,基本上以前的项目都是建立在这个状态机上完成的,当然网上 ...
- labview从入门到出家7(进阶篇)--队列的使用
本节简单讲解队列在Labview中的使用,队列你可以认为就是一组先进先出的数据列表,在Labview中常用来缓存和传递数据.用了这么久的队列,个人认为有个方便的地方在于数据传递的把控,不管是局部变量还 ...
- labview从入门到出家4--用事件结构实现运算功能
使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件.基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的. ...
- labview入门到出家10(进阶)——CAN通讯
讲完串口,这边再讲一个labveiw工控程序中比较常用的CAN通讯吧.很久没有写过CAN通讯的程序了,网上一搜就是什么现场总线,控制器局域网总线,然后一堆复杂的协议.在这里还是一 ...
- labview从入门到出家3--制作和调用子VI
当程序越写越大的时候,我们会发现代码界面会比较乱(线太多),那要怎么做可以让代码更简洁一点,我只管直接调用某个功能函数,而不需要在一个VI上面去实现这个功能函数呢?--子VI.好比C语言里面的Main ...
- labview从入门到出家1--第一个加法程序
概述: Labview在众多编程语言中排名靠后,显然在当今互联网,物联网时代并非主流语言.但是俗话说行行 出状元,即便不是立身于某个主流的领域,用好了依旧可以独领风骚,而且Labview对于硬件出身的 ...
- labview从入门到出家2--将“加法程序”制作成“exe应用程序”
1.上一章主要讲了如何跑我们的第一个加法程序(这里向第一个程序的鼻祖"hello world"致敬),这一章我们直接进入主题,将我们写的程序生成exe文件放桌面运行. 2.要生成e ...
随机推荐
- JavaWeb和WebGIS学习笔记(四)——使用uDig美化地图,并叠加显示多个图层
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- 为何数据库连接池不采用IO多路复用?
今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用? 这是一个非常好的问题.IO多路复用被视为是非常好的性能助力器.但是一般我们在使用 DB 时,还是经常性采用c3 ...
- XCTF练习题---MISC---Cephalopod
XCTF练习题---MISC---Cephalopod flag:HITB{95700d8aefdc1648b90a92f3a8460a2c} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是 ...
- 2022年最新Cloudflare免费自选IP教程(非Partner)
写在开头 众所周知,CF在去年底大规模禁用Host API key,使得Partner自选法失效.但最近,Cloudflare为所有计划添加了100个SaaS域免费额度(以前$2一个). 经过一番摸索 ...
- 配置Linux的时钟同步
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.or ...
- 审计 Linux 系统的操作行为的 5 种方案对比
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 很多时候我们为了安全审计或者故障跟踪排错,可能会记录分析 ...
- web渗透学习目录
一,基础学习 01.基础学习 [[编码总结]] [[JSON三种数据解析方法]] [[js加密,解密]] [[Internet保留地址和非保留地址.内网和公网.VNC和UltraVN]] 代理 [[S ...
- Angular中懒加载一个模块并动态创建显示该模块下声明的组件
angular中支持可以通过路由来懒加载某些页面模块已达到减少首屏尺寸, 提高首屏加载速度的目的. 但是这种通过路由的方式有时候是无法满足需求的. 比如, 点击一个按钮后显示一行工具栏, 这个工具栏组 ...
- 使用VLL技术实现多家合作伙伴复用同一条链路做两端数据全透传
公司A当前租用一条10G跨市运营商光缆,自身业务只用到一半流量,为节省成本,寻求多家合作伙伴共用链路以达到财务需求 合作伙伴需求接入链路全透传,即光缆两端接入点端口逻辑直连 当前有三种方案可以实现上述 ...
- 使用 Postman 实现 API 自动化测试
背景介绍 相信大部分开发人员和测试人员对 postman 都十分熟悉,对于开发人员和测试人员而言,使用 postman 来编写和保存测试用例会是一种比较方便和熟悉的方式.但 postman 本身是一个 ...