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 ...
随机推荐
- Windows下查找各类游戏存档路径
我算是个比较爱打单机游戏的人,同时也是个半吊子的编程爱好者,有的时候会去干一些修改存档的事儿.不过这篇博文不讲存档修改技术,只讲第一步:去哪找存档? 目标:在windows10系统下搜索到游戏的存档路 ...
- C++进阶-3-6-map/multimap容器
C++进阶-3-6-map/multimap容器 1 #include<iostream> 2 #include<map> 3 using namespace std; 4 5 ...
- CentOS7安装部署Mongodb
1.下载安装包 打开官网,跳转至下载界面,选择对应版本的安装包,拷贝其链接,这里是手动安装,所以下载tgz安装包,如果要自动化安装,选择server的rpm自动安装包 https://www.mong ...
- kernel heap bypass smep,smap && 劫持modprobe_path
kernel heap bypass smep,smap && 劫持modprobe_path exp1 smep:smep即用户数据不可执行,当 CPU 处于 ring0 模式时,执 ...
- 提升站点SEO的7个建议
1.使用HTTPS 谷歌曾发公告表示,使用安全加密协议(HTTPS),是搜索引擎排名的一项参考因素. 所以,在域名相同情况下,HTTPS站点比HTTP站点,能获得更好的排名. 在网络渠道分发或合作上, ...
- 组织:SAE
美国汽车工程师学会(SocietyofAutomotiveEngineers),美国及世界汽车工业(包括航空和海洋)有重要影响的学术团体.简称SAE.已有90余年的历史.该学会实行会员制,约有会员69 ...
- 干掉RedisHelper,请这样用分布式缓存
前言 我们在项目中使用Redis时通常是写一个单例模式的RedisHelper静态类,暴露一些常用的Get.Set等操作,在需要使用地方直接RedisHelper.StringGet(xx,xx)就可 ...
- Fail2ban 配置详解 监禁配置(jail.conf)
### # 包含配置 ### [INCLUDES] # after = # 在加载本配置文件之后再加载指定的独立配置文件. before = paths-debian.conf # 在加载本配置文件之 ...
- Fail2ban 术语
filter 过滤器,使用正则表达式定义一个过滤器,从日志中匹配到IP.端口等. action 动作,定义在指定时间段要执行的操作. jail 监禁,jail是一个filter和一个action或者多 ...
- fpn(feature-Pyramid-network)学习笔记
FPN(特征金字塔网络)学习笔记 论文 在物体检测里面,有限计算量情况下,网络的深度(对应到感受野)与 stride 通常是一对矛盾的东西,常用的网络结构对应的 stride 一般会比较大(如 32) ...