基于表格的DSL:生产系统中HART传感器测试解决方案
开发支持HART协议智能传感器的校准和测试系统,需要兼容多种硬件设备:信号发生器、环境箱、多用表、HART调制解调器以及开关设备。HART协议通过4-20 mA电流环路以点对点模式运行,支持校准、配置和数据交换。测试内容涵盖特性线性化、压力和温度循环、电源波动以及HART会话。采用纯SQL的客户端-服务器架构,结合基于表格的脚本语言,仅需两人团队即可实现多站点的可编辑测试。
系统分解为子系统
系统分为核心组件:
- 通过LabVIEW实现硬件控制。
- 基于表格的DSL进行测试编程。
- 数据库处理数据计算。
- 实时SCADA式站点监控。
选择LabVIEW是因为其内置USB、GPIB、TCP/IP和RS232接口驱动。测试站点的客户端充当数据库命令解释器,跳过OOP抽象。测试逻辑外包到服务器端脚本,保持LabVIEW图表简洁。
基于表格的脚本语言:结构与命令
DSL通过数据库表实现,支持线性与循环执行。每行是一个操作,包含两个参数,便于编辑。循环内支持间接寻址。
核心DSL特性:
- 线性操作流程。
- 针对刺激量(压力、温度、通道)的循环。
- 基于计时器的循环。
- 静态刺激模型初始化。
- 超过100种HART通信、测量和数据记录操作。
循环由SQL存储过程处理:独立表存储参数(起始值、结束值、步长、当前值、活跃传感器池)。INIT_LOOP和CHECK_END_LOOP等命令控制执行。对于刺激循环,修饰符表处理前后增量逻辑。
示例循环逻辑:
- 从数据库加载刺激模型。
- 用参数初始化循环。
- 执行操作直至退出条件。
- 循环后继续下一命令。
循环实现与优化
SQL过程实验证明数据库中循环运行可靠。循环参数(起始/结束值、步长)存于表中,支持动态测试生成。
循环类型:
- 通用循环:针对站点传感器池的变量循环。
- 压力循环:带步长和刺激边界。
- 温度循环:环境箱初始化。
- 计时器循环:操作重复至时间到期。
引入循环使测试规模减半。操作分为迭代相关或独立(适用于计时器)。
基于表格的测试编辑器自动处理行号、命令引用、注释和循环调整。“编译”存储过程用新测试替换旧版。支持复制粘贴和交互提示,加速开发。已创建超过100个程序,用于4-20 mA/HART传感器的生产和周期测试。
硬件与数据库集成
LabVIEW客户端从数据库获取脚本,按序解释命令。长时操作(如刺激循环)不需高速度。原始数据存入数据库,用于计算和报告生成。
方法优势:
- 无需重新编译客户端即可编辑测试。
- 集中存储脚本和数据。
- 可扩展至数十站点。
- 最小开发团队。
关键收获
- 带循环的表格SQL DSL将测试代码减半,同时保持完全灵活性。
- LabVIEW作为数据库命令解释器,避免OOP复杂性。
- 每个操作两个参数,支持100+ HART测试命令。
- 存储过程自动修复引用和编号。
- 通过SCADA式界面实现实时站点监控。
— Editorial Team
暂无评论。