Labview笔记

news/2024/11/16 14:41:30/文章来源:https://www.cnblogs.com/xiacuncun/p/18326803

1. 背景

Labview这个软件,从大学到现在,装了卸载,卸载了又装。来来回回不下10次了,那本大学时的教材Labview 2010基础教程,一直没丢,但也一直没看过。最近又装回来了,准备简单的系统性倒腾一下,当是个了解。

  • 一些杂项:
    • 快捷键:
      • Ctrl+N:创建一个Labview项目
      • Ctrl+E:切换前后面板
      • Ctrl+R:运行快捷键
      • Ctrl+S:保存
      • Ctrl+B:去掉所有断线
    • 如何打包vi程序给没有labview的地方使用。参考Labveiw如何生成应用程序

2. 顺序结构

  • 如图,前面板和后面板是VI程序的两个部分,如果保存了工程文件再次打开只有前面板的话,可以按Ctrl+E切换到后面板。
  • 平铺顺序结构就是从左向右依次执行的结构,右键平铺式顺序结构,在后面添加帧,即可增加一帧结构
  • 如下图的工具栏,有一些比较高效的工具:
    • 单箭头:运行一个周期,前后面板效果一样
    • 循环箭头:连续运行,前后面板效果一样
    • 红色六边形块:停止运行
    • ||:暂停
    • 灯泡:查看数据流向,这个点击可以查看数据流,以及数据中断,用来分析程序。vi的程序数据流动和摆放位置没有关系。
    • 后面还有在平铺结构内的单步运行跨过平铺结构的单步运行等待
    • 后面是一些程序对齐快捷键
    • 最后带个小扫把:的图标是整理所选部分代码
    • 下图右边的图标双击可以更换工程图标,左边的图标右键可以更换模式,暂时我也没理解这个模式有什么具体作用。
  • 如图右键,可以把平铺式顺序结构变成层叠式顺序结构
  • 替换过后,后面板看起来会简洁一点,相当于于把原来平铺的帧打包成了一个数组,一次显示一个数组元素,可以切换显示帧设置当前帧,不影响数据流向:
  • 插入一个布尔量以及TrueFalse常量方法:

3. 循环结构

  • 嵌套在顺序结构中的FOR循环和嵌套在FOR循环中的顺序结构,如图:
    • 在上图中,顺序结构有4层,依次执行,每一层都加了一个定时器(单独的),右键定时器创建常量,即可快速为定时器设置常量,ms为单位:
    • 几乎每层都用到的字符串和布尔是局部变量,他是第三层和第四层的控件的中间变量,如图可创建一个控件的局部变量:
    • For循环中,i表示当前循环次数;N表示总循环次数(从0开始);For循环里面嵌套的顺序结构里面含有定时器,那么表示一次for循环的实际需要时间包括定时器的执行完成时间:
    • 随机数生成器: 输入的两个常量是生成器设置的上下限,双击随机数生成器,可以看到它的默认设置值,但是此处用不到;U64表示无符号64位整型:
    • labview的数据类型如下:
SGL 单精度32位
DBL 双精度64位
EXT 扩展精度128位
FXP 定点数据,一种二进制数据I8  单字节整型       -128~127
I16 双字节整型       -32768~32767
I32 长整型           -2147483648~2147483647
I64 64位整型         -1e19~1e19U8  无符号单字节整型  0~255
U16 无符号双字节整型  0~65535
U32 无符号长整型      0~4294967293
U64 无符号64位整型    0~2e19CSG  单精度复数    32位单精的实数和虚数组成
CDB  双精度复数    64位IEEE单精的实数和虚数组成
CXT  扩展精度复数  128位    在Labview中浮点数表示为橙色
在Labview中整数表示为蓝色
在Labview中复数跟浮点数一样表示为橙色
在Labview中布尔值表示为绿色,8位二进制表示。8位全为零表示FALSE,非零的值表示为TRUE
  • While循环,此处创建了一个波形图表用来显示随机数波形图:
    • 循环中的定时器的作用:增加单次循环的时候,以免刷新过快。
    • 停止按钮用False常量固定住了,目的是让它一直循环下去;
    • 如果想手动停止,可以换成一个停止按钮。(如果想要暂停而不是停止循环,情况就要复杂一点,可以自己做程序来实现,这里就不试了)
    • 对于For循环而言,如果想要条件停止,可以右键For循环,勾选条件接线端

条件结构

  • 条件结构就类似与Switch,逻辑是除了罗列出来的分支,其他分支一律按默认处理
  • 对着条件结构框右键,可以选择增加一条分支或者删除一条分支
  • 条件分支的左边输入如果是bool量,分支可以是真或者假,真假条件框内写各自的逻辑;左边输入如果是数值,可以填具体的数据,也可以填范围(“10..20”表示10到20的区间,“21..”表示>=21的区间);左边输入如果是字符串,可以填字符串的值。
  • 案例1,比大小和比区间范围:
  • 案例2,在while循环里面持续判断按钮的状态并反馈相应的字符串:

事件触发结构

  • 平时用过C# winform或者HMI的事件处理的,对这个触发方式应该不会陌生。
  • 下图写的一个按钮触发事件,打开按钮值改变的时候判断,如果灯的值是1,就变成0;反之如果灯的值是0,就变成1。
  • 事件触发结构最好放到while循环里面,不然只会被触发一次程序就结束了。
  • 步骤:
    • s1:拉出一个事件结构
    • s2:拉出一个while循环,把事件结构丢循环里,在添加两按钮,一个指示灯,都放循环里;循环的条件接线端常置FALSE或者设置为其他触发条件,不然要报错。
    • s3:右键事件结构,找到添加事件分支,选择事件分支对应的控件,事件选择值改变
    • s4: 现在可以在对应的触发事件里面写逻辑了;这里的逻辑是每次值改变时取反灯的状态。我习惯引用按钮或者灯的局部变量到事件中去做控制或者改变值;局部变量刚拖出来的时候默认是写入,如图右键可以转换为读取,注意三角箭头的位置变化:
    • s5:按需设置超时报警事件,小沙漏这里用来设置超时时间
    • 注意:此处while循环一次的过程是事件被触发一次,如果去抓取i的变化,就可以知道这个数据流过程。

禁用结构

  • 简单理解,就是注释;可以注释掉禁用结构框内的所有代码;
  • 禁用结构的设置值可以是禁用或者启用,方便在调试的时候选择禁用和启用一段代码

数组和簇

  • 数组,就是平时程序里使用的数组,有一维数组也有多维数组,注意下标
  • 簇,就是结构体

和西门子PLC通信

  • 可以考虑走TCP/IP协议,暂时没找到labview有支持S7协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/772872.html

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

相关文章

二值图像

一、 二值图像概念 1. 二值图像含义二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。 二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素点的灰度值均为0或者255,分别…

17、flask-图书简单馆项目

为了掌握模型可以练一下、以下是代码: app.py from App import create_appapp = create_app()if __name__ == __main__:app.run(debug=True)views.py from flask import Blueprint, render_template from datetime import datetime from .models import *#创建蓝图(路由) bl…

全网最适合入门的面向对象编程教程:25 类和对象的Python实现-Python判断输入数据类型

本文主要介绍了在使用Python面向对象编程时,如何使用type函数、isinstance函数和正则表达式三种方法判断用户输入数据类型,并对相关语法进行介绍。全网最适合入门的面向对象编程教程:25 类和对象的 Python 实现-Python 判断输入数据类型摘要: 本文主要介绍了在使用 Python …

[数据结构] 堆与堆排序

本文介绍了堆这种数据结构的性质,以及堆排序算法,最后介绍了堆的相关应用场景。这篇文章使用 JavaScript 语言进行相关代码的编写。数据结构——堆 heap 基本概念与性质 堆是一颗完全二叉树,根据父子节点之间值的大小关系可以分为:大根堆:每一个节点的值 大于或等于 其子节…

详解 Hough 变换(基本原理与直线检测)

Hough 变换原理与应用前言: 详细介绍了 Hough 变换的基本思想、基本原理和应用等。其中大多都是自己的理解,难免有偏差,仅供参考。文章目录Hough 变换原理与应用1. 基本概述1.1 一些基本问题 1.2 以例子说明1.2.1 例子1:直线 y = k x + b y = kx + by=kx+b​​​​​​​ 到…

致远AnalyticsCloud分析云任意文件读取漏洞复现

产品界面图:FOFA:"AnalyticsCloud分析云"GET请求payload即可读取文件内容paylaod: /.%252e/.%252e/c:/windows/win.ini/a/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252e/.%252…

分形之城 - 题解

分形之城时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 256MB,其他语言 512MB描述 城市的规划在城市建设中是个大问题。 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。 而这座名为 Fractal 的城市设想了这样…

开天辟地,环境安装(cangjie篇)

cangjie,尝鲜日记需求:安装好环境,输出hello world(程序员金字招牌,哈哈~)开整!1 下载SDK 由于官方关闭了开放下载入口,需要走申请、审核机制。然后gitcode平台,下载安装。我们这里就不方便提供下载地址了。目前,我安装的0.53.4b版本。如图:下载步骤就不赘述了,下一…

pycharm远程调试一直卡着(正在收集数据),查看变量时一直显示collecting data并报错Timeout waiting for response且看不到任何内容

1. 问题描述如题,在用PyCharm进行Python代码调试查看具体变量时,会随机遇到一直显示collecting data,到最后报错Timeout waiting for response,在界面中看不到变量内部的内容,如下图所示:2. 解决办法在PyCharm,打开Setting界面,在如下设置项中勾选“Gevent compatible”…

python错题记录:布尔运算与逻辑值检测

一 前言 环境:python 3.10 win10 二 布尔运算与逻辑值检测 1 案例 案例1如上,在布尔运算时,有些时候代码只会运算前面的一部分,剩下的部分根本不会运算。以前在练习算法代码时,就利用这个规则来减少代码的工作量 案例2如上,之前好长一段时间,上面的布尔运算总是让我感…

霍夫(Hough)直线变换(直线检测)

0 原理霍夫变换在检测各种形状的的技术中非常流行,如果你要检测的形状可以用数学表达式写出,你就可以是使用霍夫变换检测它。及时要检测的形状存在一点破坏或者扭曲也可以使用。我们下面就看看如何使用霍夫变换检测直线。 首先将一条直线用一个点表示,这样用一个点表示直线上…

使用浏览器开发人员工具抓取Windows聚焦桌面壁纸

最近发现Windows聚焦桌面壁纸质量都挺高的,比如下图,无奈图片不给保存。所有只有想办法把他爬下来。没有这个功能的可以在桌面右击鼠标,选择个性化,背景,Windows聚焦这样桌面上就出现一个图标右击这个图标,出现一个弹窗,选择“了解详情”就打开一个网页,我们按F12打开开…