返回首页

用于 SQL 和 LabVIEW 上 HART 测试的 DSL

本文描述了基于 SQL 和 LabVIEW 中表格 DSL 的 HART 传感器测试系统架构。实现了循环、100+ 操作和用于生产的测试编辑器。该方法无需 OOP 抽象即可确保灵活性。

灵活的 HART 传感器测试:SQL-DSL + LabVIEW
Advertisement 728x90

基于表格的DSL:生产系统中HART传感器测试解决方案

开发支持HART协议智能传感器的校准和测试系统,需要兼容多种硬件设备:信号发生器、环境箱、多用表、HART调制解调器以及开关设备。HART协议通过4-20 mA电流环路以点对点模式运行,支持校准、配置和数据交换。测试内容涵盖特性线性化、压力和温度循环、电源波动以及HART会话。采用纯SQL的客户端-服务器架构,结合基于表格的脚本语言,仅需两人团队即可实现多站点的可编辑测试。

系统分解为子系统

系统分为核心组件:

  • 通过LabVIEW实现硬件控制。
  • 基于表格的DSL进行测试编程。
  • 数据库处理数据计算。
  • 实时SCADA式站点监控。

选择LabVIEW是因为其内置USB、GPIB、TCP/IP和RS232接口驱动。测试站点的客户端充当数据库命令解释器,跳过OOP抽象。测试逻辑外包到服务器端脚本,保持LabVIEW图表简洁。

Google AdInline article slot

基于表格的脚本语言:结构与命令

DSL通过数据库表实现,支持线性与循环执行。每行是一个操作,包含两个参数,便于编辑。循环内支持间接寻址。

核心DSL特性:

  • 线性操作流程。
  • 针对刺激量(压力、温度、通道)的循环。
  • 基于计时器的循环。
  • 静态刺激模型初始化。
  • 超过100种HART通信、测量和数据记录操作。

循环由SQL存储过程处理:独立表存储参数(起始值、结束值、步长、当前值、活跃传感器池)。INIT_LOOPCHECK_END_LOOP等命令控制执行。对于刺激循环,修饰符表处理前后增量逻辑。

Google AdInline article slot

示例循环逻辑:

  • 从数据库加载刺激模型。
  • 用参数初始化循环。
  • 执行操作直至退出条件。
  • 循环后继续下一命令。

循环实现与优化

SQL过程实验证明数据库中循环运行可靠。循环参数(起始/结束值、步长)存于表中,支持动态测试生成。

循环类型:

Google AdInline article slot
  • 通用循环:针对站点传感器池的变量循环。
  • 压力循环:带步长和刺激边界。
  • 温度循环:环境箱初始化。
  • 计时器循环:操作重复至时间到期。

引入循环使测试规模减半。操作分为迭代相关或独立(适用于计时器)。

基于表格的测试编辑器自动处理行号、命令引用、注释和循环调整。“编译”存储过程用新测试替换旧版。支持复制粘贴和交互提示,加速开发。已创建超过100个程序,用于4-20 mA/HART传感器的生产和周期测试。

硬件与数据库集成

LabVIEW客户端从数据库获取脚本,按序解释命令。长时操作(如刺激循环)不需高速度。原始数据存入数据库,用于计算和报告生成。

方法优势:

  • 无需重新编译客户端即可编辑测试。
  • 集中存储脚本和数据。
  • 可扩展至数十站点。
  • 最小开发团队。

关键收获

  • 带循环的表格SQL DSL将测试代码减半,同时保持完全灵活性。
  • LabVIEW作为数据库命令解释器,避免OOP复杂性。
  • 每个操作两个参数,支持100+ HART测试命令。
  • 存储过程自动修复引用和编号。
  • 通过SCADA式界面实现实时站点监控。

— Editorial Team

Advertisement 728x90

继续阅读