背景: 有若干个可复用VI模块。但是它们都使用了一个自定义的枚举控件。在不同的复用场合下,使用多态VI复用VI模块。因为处定义枚举控件是独立的,不能复用。需要提供一个高效方便的方法复用这些模块。
方案1: 将这些模块和自定义枚举控件打包成llb库文件。复制llb文件。但llb的命名空间,不能保证在多态VI中调用重名VI。
方案2:复制llb库文件,使用文本编辑,替换文件中的VI模块名称。替换后,无法访问llb中的VI模块。
方案3:编写VI脚本,复制并替换llb库中的VI模块名称。
1. 创建空的目标llb文件。调用vi.lib\Utility\libraryn.llb\New VI Library.vi
2.调用递归文件列表(Recursive File List.vi)获取源llb库中的vi模块路径。
3.分别打开这些VI模块,调用Save Instrument方法,将这些VI模块用新命名另存至目标llb库文件中。
4.使用VI脚本,替换VI模块中使用的自定义控件。前面板控件和程序框图常量都要求进行替换。
4.1.对于前面板控件,使用打开对象引用,指定控件标签,就能获取对象的引用,然后调用Replace方法。
4.2.对于程序框图常量,使用遍历查找图形对象,指定类名为“EnumConstant”,才能获取自定义枚举常量的引用。
注: Save Instrument方法不支持运行引擎。所以编译为EXE后运行,总报1043错误。
项目TGT\TWGTQYL.lvproj在LabVIEW 2011版本下,测试通过。
网友评论