最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–编程语法–做题思路
全局变量与局部变量不同,其作用范围不仅限于当前VI,而是在整个项目中都有效。一个或多个全局变量可按一种特殊形式存放在单独的VI中,该种VI没有框图,只有前面板,仍以.vi为后缀存储,其地位相当于一个特殊的VI,因此可用于在不同VI之间传递数据。
创建一个全局变量的步骤如下: 在函数选板中选择“编程→结构→全局变量”,创建一个空的全局变量,此时中间为问号。
双击该全局变量,打开对应的前面板,放入需要的任意类型变量,也可以从别的VI前面板上复制需要的类型变量。 保存该全局变量为一个VI文件。
如果需要为一个已有的全局变量VI文件中添加新的其他全局变量,只需直接双击打开该文件前面板并放入或者复制需要的类型变量,并保存即可。
如果要在框图中添加已有的全局变量,直接从函数选板中选择“选择VI…”添加存储了该全局变量的VI文件即可。如果要将一个全局变量改为在同一文件中存储的其他全局变量,可单击全局变量的中心,从弹出的菜单中进行选择。
与局部变量类似,一个全局变量也只能严格地属于“读取”或“写入”状态中的一种,同样可以通过鼠标右键菜单选择相应项来切换。
在实际项目中,如果全局变量的个数不多,可以放在同一个VI文件中以便管理,如果全局变量数量种类繁多,建议可以按照功能相似性分为几大类,分别存储在几个VI文件中,这些VI文件建议以“global_”或“g_”作为前缀命名,以便与普通VI文件区分使用。
全局变量常用于在两个或多个VI之间传递信息和数据。与局部变量类似,同样也不可滥用全局变量,否则会影响数据流编程方式或者降低程序性能。条件许可的情况下,应该尽可能使用输入输出参数在各个子VI之间传递数据,即使使用全局变量,也应当考虑尽量使用对内存占用量小的变量。
注:利用局部变量,会使VI的编写更加灵活。但是,在实际VI的编写过程中,应该慎用局部变量。这是因为:①每一个局部变量都是一份数据复制,使用过多,就会占用更多内存;②过多使用局部变量和全局变量,会使VI的可读性变差,有可能致使编程错误不易被发现;③在多线程并行运行的VI中,局部变量可能引起竞态条件。
在实际中,经常要实现这样的功能,即VI中有两个While循环,需要用同一个控制开关让它们同时停下来。这个功能该如何实现呢?同样,也可以利用局部变量来完成。为此编写的VI如下图所示,其中,有两个While循环,在第一个While循环中,将循环计数端子中的值赋给显示控件“循环1里的值”;在第二个While循环中,将循环计数端子中的值乘以2,并赋给显示控件“循环2里的值”;每个While循环内都调用了一个定时函数,且均延时1s的时间。