LabVIEW论坛
直播中

荣琪

8年用户 689经验值
擅长:可编程逻辑 测量仪表 嵌入式技术
私信 关注
[文章]

荣小菜补钙记第12期:基于LabVIEW OOP的仪表控制库(9)

荣小菜补钙记第12期:基于labview OOP的仪表控制库(9)
同步更新于 WeChat:荣小菜在补钙
大家好,我是荣小菜,也可以叫我Richie,今天继续分享基于LabVIEW OOP的仪表控制库系列,本期也是该系列的最后一期。
上一期我们基本完成了“仪表配置”Vi的基础功能,实现自动识别在线IP,读取型号、判断类型,识别是否是支持的仪表设备。但考虑到当前仪表库不可能包含全部型号仪表,因此必须能够让用户能够使用可兼容的仪表,这样的话就相当于变相的大大扩展了仪表库。我们本期将设计“仪表强制指定”Vi,满足这一功能需求。
而对于其它两种高级功能:网络共享与版本更新,非标设备识别。将在后面简单涉及,仅谈谈思路。因为非标设备识别比较简单,而网络共享与版本更新又刚刚处在试用阶段。
1.     仪表强制指定Vi
设计思路:经过前几期的开发,我们已经能够得到仪表的型号、类型等信息,我们的仪表库也是根据仪表型号、类型来调用的。因此若想使用其它同类型可兼容的仪表,只需要将不支持的仪表型号指定为库支持的仪表型号即可。
代码如下:
仪表强制指定 2016.rar (25.01 KB)
(下载次数: 43, 2021-2-26 22:50 上传)
根据前几期的分析,用户一次使用的仪表总量不会太多,因此每次指定一个仪表即可,当有多个需要指定的仪表时将引导用户持续完成指定,若中途取消也会保证已指定过的仪表信息正确传递。

设备强制指定前面板.JPG 强制指定仪表后面板.png
2. 非标设备识别功能
对于如何实现该功能,到了这一期就已经很明晰了。只要非标设备能够通过*IDN?回复信息且信息中包含型号,那么不论其格式如何,我们都可以将其映射为标准格式存入配置文件,后续用的时候直接读取INI就能完成转换,识别出非标设备。
当然缺点也很明显:必须是我们添加过的非标设备才能识别,因为映射关系要靠我们自己写。而标准设备就可以自动识别型号。
3. 网络共享与版本更新
网络共享:核心是将我们前面写好的“仪表控制Core”.vi及其它库文件放在局域网中,通过路径对其进行调用。关键是要将整个库进行保留磁盘结构的源代码发布。注意同时还要附带LabVIEW自带Vi。如下图所示:不要勾选“附加排除项”的内容,这样就能得到Vi.lib、instr.lib和user.lib,将它们与仪表控制Core.vi放在同一路径下即可。
源代码发布注意.JPG
版本更新:版本更新的前提是我们完成了网络共享,建立了网络共享库,并进行版本管理。版本更新的核心是读取我们配置文件中的设定,显示当前要使用的、可用的网络共享库并提供版本选择功能。
需要注意的是,网络共享库的好处是不用更改用户端的代码即可实现仪表库升级,但应当为用户保留本地库,以便应对单机、离线或网络库错误等情况。
4. 总结
本期我们完成了“仪表配置”中的“仪表强制指定”功能,介绍了“非标仪表识别”和“网络共享与版本更新”这两种高级功能的实现思路。到此,“基于LabVIEW OOP的仪表控制库”系列就完结了。
在写作过程中确实大大加深了自身对这些代码的理解,对我个人来说,回顾总结的效果很好。而遗憾的是,激发热烈讨论,产生思维碰撞的目标没有实现。原因可能是本系列涉及的跨度太大,对于粗略浏览并急于发现解决问题办法的人来说不够友好。因此,后续我打算尝试完善并分享一些功能型Demo,希望能和大家一起讨论,共同学习^_^。

回帖(6)

试试水

2021-2-27 16:19:56
好东西  楼主辛苦了 谢谢楼主的无私分享
举报

魏祖强

2021-2-28 08:42:21
有水平,楼主辛苦了 谢谢楼主的无私分享
举报

kunpeng1984

2021-3-1 14:07:45
牛啊,
举报

yao

2021-6-18 08:28:15
好东西  楼主辛苦了 谢谢楼主的无私分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分