LabVIEW的DQMH 框架

​DQMH(Queued Message Handler 增强框架):全球最受欢迎的LabVIEW 第三方框架,免费开源,专为大型 LabVIEW 应用开发设计,适配 CLAD/CLD 级开发者,基于 NI QMH 模式优化,低门槛且功能完善。

基础术语

(一)通用术语

  1. 进程(Process):持续运行的代码,通常是含一个及以上 while 循环的 VI

  2. 重入性(Reentrancy):同一 VI 的多个实例可同时运行的能力

  3. 应用程序接口(API):逻辑组织的相关函数组

  4. 业务逻辑(Business Logic):非框架自带的应用专属代码,需按规范编写在指定位置

  5. 同步进程(Synchronous Process):有序操作,依赖其他进程完成

  6. 异步进程(Asynchronous Process):独立操作,与其他进程并行运行

  7. 队列(Queue):LabVIEW API,用于进程内 / 进程间数据传递

  8. 事件(Event):LabVIEW API,用于进程内 / 进程间数据传递

  9. 设计模式(Design Pattern):执行同步 / 异步代码的理论机制(如状态机、队列状态机、生产者 / 消费者、QMH)

  10. 架构(Architecture):一种 / 多种设计模式的实际实现,便于异步代码执行(如 JKI 状态机)

  11. 框架(Framework):企业级架构,含文档和工具以提升开发体验(如 DQMH、Actor Framework)

(二)DQMH 专属术语

  1. DQMH 模块(DQMH Module):框架基础构建块,含清晰公共 API 的异步进程(.lvlib 格式),支持单例(非重入)/ 可克隆(重入)

  2. 请求(Request):外部向模块发起的操作指令,基于用户事件实现,可按需返回结果(公共 API 中的 VI)

  3. 广播(Broadcast):模块向外部发送的通知,基于用户事件实现,不依赖外部注册

  4. 主 VI(Main VI):应用的核心 QMH VI

  5. API 测试器(API Tester):测试模块公共 API 的 VI,支持验证模块运行状态,是核心实用工具

  6. 脚本工具(Scripting Tools):框架核心工具,支持模块 / 请求 / 广播的创建 / 重命名 / 删除 / 验证,强制最佳开发实践

NI QMH与 DQMH

NI QMH 痛点 DQMH 优化
进程间通信复杂 保留队列(进程内通信),新增用户事件(进程间通信)
多模块系统扩展性差 模块化设计,脚本工具简化架构级修改
进程 VI 复用性有限 模块独立封装,公共 API 标准化,降低耦合
难支持重入性 原生支持单例 / 可克隆模式,无需手动修改
架构级修改繁琐易出错 脚本工具自动化处理(如新增循环帧)

DQMH 核心特性

  1. 通信机制:进程内用队列,进程间用用户事件

  2. 工具支持:脚本工具自动化框架级操作,模块升级时自动应用 bug 修复

  3. 内置能力:异步编程核心功能(启动 / 停止控制、错误管理、面板管理、调试支持)

  4. 生态优势:活跃开发者社区,DQMH 联盟响应功能需求

  5. 低门槛:极少依赖 LabVIEW 类,QMH 用户易上手

开发者指南

(一)模块开发者

  1. 保持 API 测试器更新,使用脚本工具进行框架级修改,禁止手动修改框架 VI

  2. 全面文档化(模块描述、事件描述),可通过 Antidoc 自动生成项目文档

  3. 可创建模块模板提升开发效率

(二)模块使用者

  1. VIPM 安装的模块可直接在面板调用,非安装模块需从模块.lvlib 的 Public API 文件夹获取请求,从事件结构的事件列表获取广播

  2. 参考 API 测试器 VI 学习 API 用法并验证模块运行状态

相关推荐
纳米软件3 天前
在使用LabVIEW时,遇到以下问题该如何解决?
自动化测试·labview·自动化测试平台
LabVIEW开发4 天前
LabVIEW通过OPC开发汽车踏板疲劳测试控制系统
labview·labview知识·labview功能·labview程序
LabVIEW开发8 天前
LabVIEW信号追加快速 VI
labview·labview知识·labview功能·labview程序
LabVIEW开发8 天前
LabVIEW列车轴承声学成像应用
数码相机·labview·labview知识·labview功能·labview程序
LabVIEW开发9 天前
LabVIEW与Halcon联合开发图像处理
labview知识
LabVIEW开发11 天前
2026马年新春致辞
labview知识
测试专家18 天前
Labview的VI怎么用?
microsoft·labview
!chen21 天前
LabVIEW TCP Server端工具TCP通信
网络·tcp/ip·labview
LabVIEW开发1 个月前
LabVIEW光学测量与自动化控制
labview·labview知识·labview功能·labview程序
LabVIEW开发1 个月前
LabVIEW金属圆盘压缩特性仿真
算法·labview·labview知识·labview功能·labview程序