Labview学习笔记-条件结构的两个问题
数组:“创建数组控件“用于连接数组 输入端:数组+元素 或数组+数组 右键创建数组控件 在连接数组项上打钩或取消,改变连接的数组维度
簇:就是C语言中的结构体 簇和数组的转换 必须保证各元素数据类型一致
条件结构:
labview中真假分支都必须给隧道赋值 输入隧道在每一个分支中都可,输出隧道必须从每一个分支都得到明确的输入值,否则程序无法运行。 输出隧道是实心的,才表示所有分支都有接入值(接入值也可以通过打钩未连线时使用默认。)
这样就带来了问题1::由于隧道的存在,任何分支都必须对已有隧道进行赋值操作,而无法像C语言中可以忽略一个分支 或在某一分支进行空操作
例如C语言中:
if(a<=0.1) b=1;
else c=1;
这样一个简单的例子。C语言中允许在某分支中不进行操作即空操作。但是labview中不行,若是在a<=0.1的真分支里给b赋值为1,在假分支里也必须给b赋值,如果像程序中那样在假分支里只改变c的值而不对b进行处理,是不可以的,如果任何一个分支里不给b赋值,程序都会报错,提示隧道未赋值。即使你选择未连线时使用默认,也会给b赋值为0。总问言
之任何已有隧道在任一分支里都要被赋值!




问题2::当多个分支嵌套时,由于每个分支的各个子分支在框图里时叠合在一起的,因此想要清晰明了的读出所有分支的走向就比较困难。

这样一个三分支的程序,由于真假分支重叠,因此要一目了然比较困难。
解决办法:利用函数控件比较中的判定范围并强制转换可以将各个分支简洁的列出,再将各个分支的结果放到一个布尔数组里,再利用函数空间布尔控件中的布尔数组至数值转换将布尔数组转换为对应的数值,比如三个分支中当第三个分支成立而前两个不成立时,布尔数组为100(第一个分支再最低位),那么转换为数值就为4,也就是这种情况下对应的结果是4,同理还可能会出现010=2,001=1,000=0共四种情况,这时候再创建一个条件结构,以0,1,2,4不同的数值为判定条件,即可将各分支理清,增强易读性。
例如C程序:
if(a<=0.1) b=1;
else if(a>0.1 && a<0.2) b=2;
else if(a>=0.2 && a<0.3) c=1;
else ;

判定范围并强制转换:这个控件有上限,下线,X,三个输入接线端。右侧有两个接线端,右下角?标志接线端表示x是否在上下限范围内,我们以此控件来轻松表示一个分支。
将各个分支表示完毕后,再将各个分支的判断结果以布尔类型存放在一个布尔数组中,再把布尔数组转换为数值


最后以不同分支结果对应不同数值为依据,创建条件结构


这种方法,无论对于易读性还是修改都更方便。
Labview学习笔记-条件结构的两个问题的更多相关文章
- yii的学习笔记 基本结构 自用
Yii 学习笔记 W:YII是什么? Q:Yii 是一个基于组件的高性能 PHP 框架,用于快速开发大型 Web 应用.它使Web开发中的 可复用度最大化,可以显著提高你的Web应用开发速度.Yii ...
- ucos实时操作系统学习笔记——内核结构和任务创建
对于ucos实时操作系统,邵贝贝的那本书已经写得很详细了,我因为之前不深的研究过ucos,所以在这里做一个笔记,写一些个人对该操作系统的理解,仅仅是个人理解,如果有人看到这边随笔有不对的地方,望给我指 ...
- Labview学习笔记(二)
一.编程基础 LABVIEW程序成为虚拟.仪器程序,简称VI,一个最基本的VI包括三个部分:前面板.程序框图和图标/连接端口. 1.前面板 在前面板窗口中,可以添加输入控件和显示控件,同时,可以用快捷 ...
- contiki学习笔记---process结构体
process,字面意义,进程,看看它的结构 struct process { struct process *next; #if PROCESS_CONF_NO_PROCESS_NAMES #def ...
- ShooterGame 学习笔记1 PlayerPawn的两个Mesh的可见性
GameMode Override 为 ShooterGame_TeamDeathMatch GameMode中设置的Default Pawn Class 为 PlayerPawn , PlayerP ...
- Shell学习笔记 - 条件判断式
1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ] -- 推荐使用 例: [ -e /root/install.log ] ...
- C#学习笔记之结构体
1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有 ...
- js-ES6学习笔记-Set结构和Map结构
http://www.cnblogs.com/lonhon/ 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set ...
- VBA二次学习笔记(2)——两个Excel表内容比较
说明(2018-9-3 22:38:58): 1. 就是之前问同事要来的作业,有两个格式一样的Excel文件,一个是正确答案,一个是员工作答的.通过代码将两个文件进行比对,把不同之处列出来. 正文: ...
随机推荐
- urllib库详解 --Python3
相关:urllib是python内置的http请求库,本文介绍urllib三个模块:请求模块urllib.request.异常处理模块urllib.error.url解析模块urllib.parse. ...
- Docker中安装elasticsearch6.7.1
先拉取镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:6.7.1 然后创建容器 (这是一条长的命令!!!) dock ...
- redis 持久化文章分析的很到位
https://baijiahao.baidu.com/s?id=1611955931705092609&wfr=spider&for=pc
- python之asyncio三种应用方法
1.直接使用asyncio.run方法2.同步的效果,用await调用函数3.创建任务(asyncio.create_task),并发运行任务(await asyncio.gather) import ...
- AOP之配置文件实现
看了http://www.cnblogs.com/xrq730/p/4919025.html这篇文章之后自己跟着做了一遍,有需要可以去看原文,比我写的更详细. AOP AOP(Aspect Orien ...
- EDB日志配置-慢sql记录分析
1.打开:/postgresql的安装目录/data/postgresql.conf 2.找到并更改以下属性,其他的是方便观察设置的,注意要将属性前面的注释符'#'去掉才能生效 ★★★log_dest ...
- echarts-五分钟的教程
https://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts
- 简述 JVM 垃圾回收算法
经典垃圾回收 标记-清除(Mark-Sweep) 研发园开了家新餐厅,餐厅老板在考虑如何回收餐盘时首先使用了最简单的方式,那就是服务员在顾客用餐的过程中,不定时的观察餐厅,针对用完餐的顾客记录他们的位 ...
- mycat环境搭建
最近工作中突然让搞mycat,特意私下在家先搞一套练个手: 1.先下载一个CentOS7 mini版本就可以(本人机器性能有限): 2.使用VMware创建虚拟机,过程百度下一大堆,这里不做详细介绍. ...
- rest-framework基本组件—主要看频率
添加节流 自定义节流的方法 限制60s内只能访问3次 (1)API文件夹下面新建throttle.py,代码如下: # utils/throttle.py from rest_framework.t ...