LabVIEW代码复用-XControl
LabVIEW中主要的代码复用方法
用户代码库
例如说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属性-窗口大小
选中调整窗口大小时缩放前面板上所有对象