LabVIEW代码复用-XControl

LabVIEW中主要的代码复用方法

方法 说明 用户代码库 将已经过验证的LabVIEW代码按功能收集到一起,供之后开发同类项目时使用 XControl 将内聚性高的部分代码连同界面打包成XControl控件,开发时将它用作独立组件应用于项目中 MathScript 可复用在第三方文本编程环境(如MATLAB)中编写的脚本或调用之前测试过的复杂数学运算脚本 CIN 可复用在第三方C语言编程环境中编写的文本代码 Python节点 调用Python代码 C节点 调用C标准库函数或C分析库函数(仅适用于LabVIEW nxg) 调用DLL 可复用在其文本编程环境中创建的动态链接库 ActiveX和.NET 可复用其在文本编程环境中创建的ActiveX或.NET组件 面向对象的类 将数据和对数据的操作封装成模块,项目开发时直接将其集成至项目

用户代码库

例如说OpenG和MGI。 OpenG一部分是对LabVIEW的内置函数进行封装,用于增强函数功能或者添加错误补货能力;一部分是LabVIEW内置函数库不提供,但是开发的时候比较常用的函数。 MGI所含的VI作用和OpenG大致相同,都是对LabVIEW内置函数集进行填充,就实现方式和功能不同。

用VIPM安装MGI

XControl

新建与调用

新建XControl XControl的四个必须能力 数据.ctl定义XControl的数据类型 状态.ctl定义记录空间显示外观变化的临时数据(XControl的数据除外) 外观.vi是XControl的核心,定义XControl外观及如何响应用户事件。 初始化.vi用于初始化控件并控制XControl版本 调用XControl直接把它拖到要调用的VI里,此时XControl处于不可编辑的状态。 在XControl上右键单击,选择修改并解锁库,即可对库进行编辑,此时在VI中被调用的XControl处于不可用状态 可通过应用实例改动再次使被调用的XControl可用

外观

应用实例修改后,将会在VI前面板显示外观.vi前面板上的控件。 这里是叠放了一个波形图和一个表格以及两个按钮。

外观.vi必须存在的分支

外观.vi并非连续运行,而是在完成事件处理后立即退出,所以超时设置为0 数据更改 在给XControl进行赋值时,这个分支就会被调用 显示状态更改 通过XControl的属性或方法改变其显示状态时,这个分支被调用 方向更改 XControl从输入控件转为显示或从显示转为输入时调用

执行状态更改 XControl的调用方从设计状态转为运行状态时调用

实现一个功能

给按钮添加一个事件,实现按钮按下时只显示表格或波形图

数据

按照需要进行操作的变量在数据.ctl做一个簇 这里想对波形图和表格的值进行操作,波形图的数据类型是数值数组,表格的数据类型是二位字符串数组。

实现功能

在外观.vi中对数据改变分支进行修改 使VI向XControl写入数据时,XControl上的控件值可以改变 为FFT按钮添加一个事件分支 按钮按下时,写入波形图的数据进行傅里叶变换,处理过的数据放入寄存器 按钮抬起时进行反傅里叶变换,处理过的数据放入寄存器

状态-属性

显示外观变化的临时数据 想在调用方VI修改一下XControl中波形图控件的曲线颜色,但是属性节点中没有曲线颜色这一项。颜色是32位整型数据,这里在状态.ctl里放了一个颜色盒 为XControl创建曲线颜色属性 修改读写属性的VI 输出必须有个VALUE控件 修改外观.vi中的显示状态更改分支,使数值可以写入属性节点

缩放

XControl大小由外观.vi前面板决定,可以通过控制前面板大小实现控件自动缩放 VI属性-窗口大小

选中调整窗口大小时缩放前面板上所有对象

经验分享 程序员 微信小程序 职场和发展