2021年Labview最全学习笔记.pdf

reference死锁问题 LabVIEW 中引用经常需要 “In Place Element Structure”配合使用。In Place Element Structure 对一种引用数据进行解决时,为了保证多线程安全,它会锁住引用指向数 据;其他线程若需对同一数据做操作,必要能这个In Place Element Structure 中所 有代码执行完毕才可,这样就避免了多线程读写同一内存数据所产生竞争问题。 举例来说,下面这段程序执行时间是1 秒: 而下面这段程序执行时间则是2秒: 由于第二段程序中两个In Place Element Structure 必要顺序执行。 有了“锁住”这个操作,就有不小心导致死锁也许。例如对于同一数据引用,千万不 能嵌套使用In Place Element Structure,否则就会死锁: 在上面这个示例中,程序运营至内层In Place Element Structure,就会停在这里等外 层In Place Element Structure 运营结束,释放它锁住数据;而对于外层In Place Element Structure 来说,它内部所有代码要运营结束,它才结束。因而它们互相等 待,导致了死锁。 Packed Project Libraries 2 –与Library 比较 acked Project Library 从名字上来看,就是被包装好了Project Library 。Project Library 是编程时候由程序员创立出来。例如下图这个工程,我在里面创立了一种 叫做“My Algorithm Library.lvlib”工程库。它包括两个VI ,其中一种是私有。 Packed Project Library 并不是手工创立,她是通过一种项目生成规范,从 Project Library 编译而来。例如上图项目,我创立了一种Packed Library 类型生成规范。我 在这个生成规范中指定把 “My Algorithm Library.lvlib”编译成Packed Project Library 。 编译成果是在我指定途径下生成了一种名为 “My Algorithm Library.lvlibp”文献。它 后缀名仅比Packed Library 多了一种字母p 。 双击这个文献,可以打开它,看到她里面包括VI : 如果需要在其他项目中使用到这个Packed Project Library ,咱们可以直接把它加到 另一种项目中去,下图是一种演示项目: Packed Project Library 看上去和 Project Library 非常相似,用法也完全相似。 Packed Project Library 与 Project Library • 都是将功能有关一组VI 封装起来办法; • 库中VI 可以具备层次机构; • 库中VI 都带有名字空间,名字空间是带有后缀名库名; • 都可以以便放在项目管理器里使用 尽管它们十分相似,Packed Project Library 与 Project Library 相比,还是有某些明 显区别: • Packed Project Library 是通过编译生成; • Packed Project Library 中VI 是编译后产生,它们不能被修改; • Packed Project Library 包具有私有VI ,但顾客无法看到也不能使用它们; • Packed Project Library 把VI ,.lvlib 以及其他用到文献都打成一种压缩包, 顾客在磁盘上就只能看到一种.lvlibp 文献,看不到VI 文献; • Packed Project Library 很适合伙为最后产品发布给顾客使用; • 在项目中使用Packed Project Library 可以缩短编译时间,由于Packed Project Library 中VI 是已编译好,不会再随项目编译一遍。(这一条先这样写上, 但我还需要再进一步研究一下) LabVIEW中LVClass数据转换成XML格式问题 前一段时间,一种同事程序出了问题。她在程序中把一种LVClass 类型数据转换成 XML 格式,再保存成文献。但是从文献中把数据转回成 LVClass 时,却出了问 题:在调用 “Unflatten XML”这个函数时,程序有时出错,有时又不出错。她程序 中使用了大量LVClass ,并且它们之间有着复杂继承与包括关系,以至于花了两三

文档评论(0)

1亿VIP精品文档

相关文档