
LabVIEW基础篇
文章平均质量分 84
本专栏主要编写对LabVIEW的基础知识进行整理收纳,提供学习。
街 三 仔
一个热爱编程的小工科男·阿里云专家博主
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LabVIEW学习篇 - 25】:JKI状态机
JKI状态机并没有采用队列而是采用指定的字符串进行存储,它封装了几个VI,用来实现状态的插入和输出,类似实现了元素入队列和出队列的功能,但是使用指定格式的字符串比较方便,原因是可在字符串后按照格式带入参数或者说屏蔽某一种参数。示例:使用JKI状态机,实现按钮控制LED灯的点亮和关闭,在点亮LED时鼠标显示忙碌状态,5s后鼠标自动回复空闲状态。JKI状态机为第三方的工具包,由JKI公司开发的一个框架。,JKI状态机采用指定格式的字符串来描述状态。JKI状态机的核心就是。原创 2024-09-17 10:12:32 · 2971 阅读 · 0 评论 -
【LabVIEW学习篇 - 24】:生产者/消费者设计模式
生产者/消费者是多线程编程中最基本的一种模式,使用非常普遍。从软件角度看,生产者就是数据的提供方,而消费者就是数据的消费处理方,二者之间存在一个数据缓存区。原创 2024-09-11 08:57:45 · 2488 阅读 · 0 评论 -
【LabVIEW学习篇 - 23】:简单状态机
一个优秀的应用程序离不开好的程序框架,不仅要很好满足用户的功能需求,还要考虑到系统的稳定性、实时性、可扩展性、可维护性,执行效率等方面。借用一些成熟的设计框架,可以帮助开发人员很容易地完成一些复杂系统的设计和开发,并且在满足需求的同时还保证程序的性能。有限状态机(FSM-Finite State Machine),即用有限确定数量的状态来描述一个系统的运行,统称称此为状态机。状态机的概念很早就有了,它不是LabVIEW特有的概念,而是LabVIEW比较适合设计框架之一。原创 2024-09-11 08:57:12 · 1980 阅读 · 0 评论 -
【LabVIEW学习篇 - 22】:ActiveX
and Embedding)技术的扩展,它是基于COM(Component Object Model)技术而建立起。ActiveX是微软推出的一个开放的技术集的统称,它是很早之前出现的OLE(object linking。使用ActiveX可以很轻松方便地在VI中插入多媒体效果,交互式对象。COM是Activex的技术核心,它的目标就是组建一个大型的组件库,包含很多强大。的功能,使得软件工程师像搭积木一样完成应用程序的开发。以下举一些使用ActiveX的示例。及很多复杂功能的实现等。原创 2024-09-09 21:10:11 · 1755 阅读 · 0 评论 -
【LabVIEW学习篇 - 21】:DLL与API的调用
Windows API封装了成千上万的功能函数,有时需要实现一些比较特殊或复杂的系统功能时,可以借助系统的API,WindowsAPI中的函数都很基础、很灵活、且高效,适当调用会带来意想不到的效果。是指被调用的函数没有链接到可执行文件中,而仅仅是在可执行文件中保存了被调用函数的重定位信息,当需要执行DLL中的函数时,根据链接产生的重定位信息,从而找到它在内存中的位置并转去执行。的高四位是对话框的图标类型,低四位是对话框中的按钮类型。保留:当调用dll时先执行回调面板的保留中设置的函数;原创 2024-09-08 20:28:01 · 3521 阅读 · 0 评论 -
【LabVIEW学习篇 - 20】:人机界面交互设计04
当LabVIEW提供的控件无法满足用户的需求,就需要使用自定义控件来满足用户对界面显示的需求,自定义控件是通过对LabVIEW中提供的基础控件的各个元素的更改来实现的。创建方式:第一种方式:“新建”菜单创建自定义控件第二种方式:右击控件本身,选择“制作自定义类型”并打开来创建如下图所示,为确定按钮的自定义过程。在窗口-显示部件窗口,可显示控件部件。其实确定按钮是靠四张图片来表示该按钮的状态。需要找一些图片进行替换(注意:图片一定是.png格式)。原创 2024-09-06 09:16:11 · 2168 阅读 · 0 评论 -
【LabVIEW学习篇 - 19】:人机界面交互设计03
运行主菜单指的是前面板在运行时菜单栏显示的主菜单,在“编辑->运行时菜单”可打开编辑面板,编辑好后,在“文件->保存”将其保存为.rtm的菜单文件,最好与VI放在起;菜单是人机交互非常重要的一个途径,它的好处是把需要的操作隐藏起来,当用户需要的时候才激活,因此相对于把所有的操作以按钮的形式放在界面上,可以节省很大的空间。,接下来的操作与主菜单栏的操作相同,以下添加了一个清空、撤销的右键快捷菜单功能。,即自己设置的快捷菜单。最后再添加字符串值改变的分支。菜单有两种:一种是主菜单,另外一种是右键快捷菜单。原创 2024-09-05 14:27:15 · 1313 阅读 · 0 评论 -
【LabVIEW学习篇 - 18】:人机界面交互设计02
设计人员需要对不同程度的错误进行不同的处理,以保证系统的正常运行,包括设备的运行安全等。与合并错误类似,可以提供多个错误代码,写入错误信息,但只会查找第一个错误。在程序运行时,有一些错误无关紧要,但我们不做处理,它就以对话框的形式弹出来,因此需要使用清楚错误解决这一问题。错误代码至错误簇转换类似一个捆绑的过程,将传入进来的状态、错误代码、错误信息转换为一个错误簇进行输出。有时会存在多个并行的VI,每个都会输出一个错误,那我们可以将错误合并起来,输出第一个错误信息。如下图所示,错误代码为空时,运行不报错。原创 2024-09-04 16:45:03 · 1607 阅读 · 0 评论 -
【LabVIEW学习篇 - 17】:人机交互界面设计01
程序框图前面板VI图标VI属性设置。原创 2024-09-04 14:56:33 · 3575 阅读 · 0 评论 -
【LabVIEW学习篇 - 16】:文件操作
csv (Comma-Separated Values)是逗号分隔值文件格式,有时也称之为字符分隔值,因为分隔符也可以不是逗号(最常见的是逗号和制表符),它是以纯文本的格式来存储表格数据,文件由任意数量的记录组成,记录之间以某种换行符分隔,典型的是每行一条记录。.txt文件是最常见的一种文件格式,早在DOS时代就开始使用,主要用来存储文本信息,使用方便简单,兼容性也很好。原创 2024-09-04 11:51:53 · 2735 阅读 · 0 评论 -
【LabVIEW学习篇(补充) - 15】:常用快捷键和Quick Drop
使用Quick Drop下的快捷键时必须先调出Quick Drop,即先按下快捷键。:快速整理所选区域的vi。原创 2024-09-02 21:11:33 · 1911 阅读 · 1 评论 -
【LabVIEW学习篇 - 14】:信号量、集合点、事件发生
信号量技术是用来限制同时访问共享资源的数量。当访问量达到信号量设定的数量之后,其它任务只能等待,直到有任务释放访问权限。比如打印机打印任务、银行办理业务时的叫号排队等等。:使用信号量,实现两个波形图表轮流显示数据。例如:当CH1获取该信号量时,CH2处于等待状态,当CH1释放信号量时,CH2获取信号量,CH1处于等待状态。第2个while循环的设置与第一个while循环相同,不同的是赋值的对象为CH2。原创 2024-08-13 09:56:30 · 1738 阅读 · 0 评论 -
【LabVIEW学习篇 - 13】:队列
以上程序中,通过使用队列的缓存,将数据采集和显示分离开。当我们采集的数据比较快,比如1s中采几千个点,那么在处理中可能还有经过很多计算,处理的速度可能1s中只能处理几百个点,那么处理的速度跟不上采集的速度,通过队列的缓存就可以处理这种来不及处理的问题。如果说不用队列进行缓存,例如直接在一个循环中对数据进行采集,然后处理、显示,这时候处理的速度很慢,这时候采集就需要等,会导致很多数据丢失。通过队列的缓存能有效的解决这种数据丢失的问题,即使处理速度很慢,但是采集的数据还是会放入队列中,不会丢失。原创 2024-08-06 07:11:32 · 2609 阅读 · 0 评论 -
【LabVIEW学习篇 - 12】:通知器
然后将其放置到第二个while循环中,其“通知器”端连接到“通知器输出”端,“超时毫秒(-1)”设置为100,“通知”端连接到循环条件,最后设置定时时间为100ms,随机生成数据给波形图表。添加事件分支,为 “停止”:值改变,并设置好通知器,其元素数据类型设置为布尔类型,再放置发送通知,其“通知”端连接“T”,即当按下停止按钮时,会发送“T”。当第一个循环停止时,释放通知器引用,则在第二、三个while循环的等待通知器状态的“错误输出”端会输出“T”,循环停止。,目的是当输入数据时,显示控件同步显示。原创 2024-08-02 16:26:20 · 2761 阅读 · 0 评论 -
【LabVIEW学习篇 - 11】:定时结构、条件禁用结构、框图禁用结构、公式节点、元素同址操作
定时结构功能在LabVIEW中,可以用延时函数或时间延迟函数等来实现,而定时结构的优势在于它可以选择哪个时钟源来定时,尤其是当LabVIEW程序运行在RT、FPGA等设备上时,通过硬件设备来定时,使得定时更加精准。元素同址结构主要是用来提升代码的效率,通过设定边框节点类型(数值、簇、变体或波形中的数据,在对这些数据元素进行运算时,使用元素同址结构可以避免labview编译器在内存中进行数据的复制和保存。当我们去实现一些复杂的计算时,输入参数较多时,可以考虑使用公式节点,其中的语法与C语言很相似。原创 2024-08-02 10:29:14 · 2224 阅读 · 0 评论 -
【LabVIEW学习篇 - 10】:属性、调用节点
这个属性节点并没有与某个控件有所关联,这个节点它并不知道我们要操作哪个对象,所以说它要求传入一个引用,这个引用就是你想操作对象的索引,相当于它在内存中存放的一个地址,可以通过引用,在内存中找到我们的对象。创建一个vi,界面上有一个布尔控件(LED),通过颜色盒子控件去改变布尔控件的显示颜色(通过属性节点),当程序停止时关闭vi的前面板(通过调用节点)。在程序框图中,放置属性节点,并选中方形指示灯,创建引用,将其与引用连接在一起,然后在属性中选择颜色[4],并修改属性节点为写入。原创 2024-08-02 07:55:38 · 5515 阅读 · 0 评论 -
【LabVIEW学习篇 - 9】:事件结构
事件结构是一种事件驱动型的编程模式,它需要在外部事件触发的情况下才能触发程序的运行,如按钮被按下、鼠标移动等,当事件发生时,自动触发一段程序运行,即回调函数,类似于硬件中断,因此也节省了CPU资源。用户事件是一种特殊的动态事件,它是通过“创建用户事件”节点来创建的,而事件的产生是由开发人员在编程中决定何时产生此事件的,最后需要去销毁。继续添加事件分支,设置复选框的事件为值改变,并在该事件中放置条件结构,最后设置复选框起始为选中状态,相应的设置如下图所示。,这时,再添加事件分支,可看到有动态事件。原创 2024-08-01 07:26:29 · 4862 阅读 · 1 评论 -
【LabVIEW学习篇 - 8】:循环中的隧道模式和移位寄存器
循环执行完毕后,右侧接线端将返回移位寄存器最后一次保存的值。初始化移位寄存器:初始化移位寄存器即重置VI运行时移位寄存器传递给第一次循环的值。如循环中的多个操作都需使用前面循环的值,则可使用多对移位寄存器保存结构中不同操作的数据值。案例:在移位寄存器的案例中,使用层叠移位寄存器,每一次循环的事件间隔为1s,观察其值。在LabVIEW中,循环的隧道模式指的是数据在循环结构的迭代中如何处理和传递的方式。右键单击循环的左侧或右侧边框,从快捷菜单中选择“添加移位寄存器”可创建移位寄存器。,即创建了层叠移位寄存器。原创 2024-07-29 10:21:27 · 3953 阅读 · 0 评论 -
【LabVIEW学习篇 - 7】:变量调用
全局变量的作用域不受限制,原因是因为它存储在单独的文件中,全局变量的文件名后缀也是VI,但是它没有程序框图面板,虽然它是用控件来表示的但只能用来存放控件的值,不具备其他控件属性。局部变量的作用域是局部的,也就是当前调用它的VI。它是与控件一同存在的,无法单独存在,一个空间可以有不限数量的局部变量,它代表的是空间的值属性,是控件的副本,局部变量的速度比控件的值属性要快。功能全局变量就是一个VI,它是通过一个未初始化的移位寄存器来实现的。缺点:可读性差,安全性低,效率相对较低,容易导致数据竞争。原创 2024-07-28 20:59:02 · 1948 阅读 · 0 评论 -
【LabVIEW学习篇 - 6】:数组、簇
要在LabVIEW中解除捆绑一个簇,通过"Unbundle"操作,你可以选择要解除捆绑的簇,并从中提取出簇中的各个元素。案例:在前面板中创建一个一维的数值类型的数组,在程序框图中创建一个二位的字符类型的数组,并往里面添加5个值,并设置这5个值为默认值,当关闭文件重新打开后,值不变。这意味着,即使簇中的元素顺序发生变化,只要元素的名称保持不变,就可以准确地提取出所需的数据。,设置两个数组大小的控件,并分别将数组与数组大小的函数连接,最后在函数输出端创建显示控件,观察结果。的多个元素的数据结构。原创 2024-07-13 11:15:50 · 4764 阅读 · 2 评论 -
【LabVIEW学习篇 - 5】:数据类型——数值、字符串
案例:创建下拉列表控件,设置其项为AA、BB、CC,值分别为100、50、300,设置好后与条件结构相连,每个分支中设置不同的字符串表达。在LabVIEW中,想要改变数值控件的类型或其他操作,可将鼠标移到控件的位置,然后鼠标右键,即可进行相关的操作。若想连接多个字符串,可将鼠标移动到连接字符串控件的中下部分,往下拉,即可增加字符串的连接端口。如下图所示,为连接字符串,左边部分从上到下为要连接的字符串,右边为输入连接完成后的字符串。下拉列表控件的使用方法与枚举控件相同,不同的是下拉列表控件可以自定义值。原创 2024-07-08 21:17:38 · 4743 阅读 · 0 评论 -
【LabVIEW学习篇 - 4】:程序结构——条件结构、事件结构、禁用结构
案例二:放置一个数值输入控件,并将其变为整型(其他数字类型不支持输入)与条件结构的选择器连接,并添加4个条件分支,分别为22、45、60、78,每个条件分支皆有对应的字符串表达。分别创建街三仔、加油这两个分支,并在字符串显示控件中的属性节点创建值,并复制三份,分别放入"假", 默认、“街三仔”、"加油"中,并设置不同的字符串表达。,这样当事件到来时,程序不会直接结束,但需要注意的是,不要再事件结构中放置while循环,一旦进入放置while循环的事件分支中,则跳不出来。原创 2024-07-07 11:34:13 · 8318 阅读 · 0 评论 -
【LabVIEW学习篇 - 3】:程序结构——顺序结构、for循环、while循环
案例:设置两个for循环,循环100次数设置为100次,第一个for循环实现圆形指示灯的亮灭,第二个for循环使用波形图表显示随机数,设置时间间隔为50ms。在圆形指示灯控件的连接部分,点击鼠标右键,选择常量,并点击该常量,即可进行。在LabVIEW中,for循环是一种常用的结构,用于重复执行一段程序代码指定的次数或者基于一个数组的元素进行迭代。:如上图所示,若想整理程序,可选中想要整理的部分,点击右上角的整理程序的按钮即可。,接着将值放入到对应的帧中,再选中其值,点击鼠标右键,选择。原创 2024-07-06 10:56:59 · 4629 阅读 · 0 评论 -
【LabVIEW学习篇 - 2】:LabVIEW的编程特点
在数据流图中,程序中的各个模块(节点)通过数据连接线相连。这种数据驱动的执行方式使得程序可以自然地并行执行,节点间的执行顺序由数据的可用性决定,而不需要显式的控制流语句。LabVIEW使用图形化的图形化编程语言(G语言),用户通过在程序框图中拖放和连接各种节点(Nodes)来编写程序。这种视觉化的编程方式使得程序的结构和逻辑一目了然,便于理解和调试。在程序执行过程中,可以将独立的任务(如不同的循环或分支)并行运行在多个处理核心上,从而提高整体的运行效率和响应速度。原创 2024-07-06 08:48:21 · 1283 阅读 · 0 评论 -
【LabVIEW学习篇 - 1】:初始LabVIEW
在前面板上,用户可以创建控件和指示器,这些控件和指示器通过数据线与程序框图中的代码(VI)进行连接,实现数据的输入、输出和显示。控件的状态或输入值可以通过数据线传递到程序框图中的相应节点,影响程序的执行流程或数据处理过程。:通过数据线将前面板上的控件和指示器与程序框图中的代码节点连接起来,实现用户输入的数据传输到程序逻辑中处理,同时将处理结果显示到前面板的指示器上。LabVIEW的程序框图是用来编写程序逻辑和处理数据的地方,它基于数据流编程模型,通过将各种函数和VI连接起来实现程序的功能。原创 2024-07-05 09:02:11 · 6408 阅读 · 0 评论