Harvard Apparatus Pump与LabVIEW开发 点击:3 | 回复:0



fjczd

    SSI ļʱ
发表于:2025-10-10 08:19:34
楼主

Harvard Apparatus Pump与LabVIEW开发

一、泵的性能

Harvard Apparatus Pump 11 Elite 与 Pico Plus Elite 系列注射泵是高精度实验室流体控制设备,核心性能围绕高精度输送、灵活适配性、多模式控制展开,具体参数对比如下:

性能维度

Pump 11 Elite

Pump 11 Pico Plus Elite

精度

±0.5%

±0.35%(更高精度)

重复性

±0.05%(两者一致)

±0.05%(两者一致)

注射器适配范围

单注射器:0.5μl-60ml;双注射器:0.5μl-10ml

仅双注射器:0.5μl-10ml

流量范围

最小(0.5μl 注射器):1.28pl/min;最大(60ml 注射器):88.28ml/min

最小(0.5μl 注射器):0.54pl/min;最大(10ml 注射器):11.70ml/min

核心控制功能

支持恒速(Constant Rate)、梯度(Gradient)、自动填充循环(Autofill Cycling)等模式,可自定义多步骤方法(最多 50 步)

同左,且在微量流体控制场景下精度更优

外部接口

USB(Type B)、15 针 D-Sub(I/O&TTL)、RS-485(最多级联 99 台)、脚踏开关接口

与 Pump 11 Elite 一致

二、LabVIEW开发

该系列泵支持通过串口(USB 虚拟串口或 RS-485 与 LabVIEW 通信,核心开发流程围绕 “串口配置 - 指令发送 - 数据接收 - 功能封装” 展开,需基于泵的 ASCII 串口指令集实现控制逻辑。

1. 前期准备

(1)硬件与驱动配置

  • 接口选择:优先使用 USB 接口(Type B),连接后需安装厂商提供的 “USB Virtual CommPort Driver”(见文档附录 C),在电脑 “设备管理器 - 端口(COM&LPT)” 中确认虚拟串口号(如 COM11)。

  • RS-485 级联场景:若多泵级联,需为每台泵分配唯一地址(00-99,通过泵的 “Settings-Pump Address” 设置),主机地址固定为 00,LabVIEW 需通过地址前缀指定控制对象(如 “12irat 3.2 u/m” 表示控制地址 12 的泵设置注入速率)。

(2)指令集参考

LabVIEW 控制需调用泵的ASCII 串口指令,核心指令分类如下(详细格式见文档 “Pump Chain Commands” 章节):

功能类型

核心指令示例

说明

运行控制

irun(注入运行)、wrun(抽取运行)、stop(停止)

仅在 “Quick Start 模式” 下生效,需先配置注射器、流量等参数

参数设置

irate {速率} {单位}(设置注入速率,如irate 800 ul/min)、tvolume {体积} {单位}(设置目标体积)

速率单位支持 ml/μl/nl/pl 与 min/sec/hr 组合,体积单位支持 ml/μl/nl/pl

参数查询

ivolume(查询已注入体积)、irate(查询当前注入速率)、force(查询推力百分比)

泵返回数据格式为 ASCII 字符串(如查询ivolume返回 “254.571 ul”)

系统配置

address {0-99}(设置泵地址)、baud {速率}(设置波特率,支持 9600-921600)

需重启泵或重新初始化串口使配置生效

2. LabVIEW开发步骤

(1)串口初始化

  • 调用 VI:使用 LabVIEW“仪器 I/O - 串口” 库中的VISA Configure Serial Port.vi,配置关键参数(需与泵的设置一致):

    • 波特率:默认 115200(可通过泵 “Settings-Baud Rate” 修改,常见选项:9600、19200、38400、115200);

    • 数据位:8;

    • 校验位:None;

    • 停止位:2;

    • 流控制:None。

  • 示例代码逻辑:先通过VISA Find Resource.vi获取目标串口号,再调用配置 VI,最后用VISA Clear.vi清除串口缓存,避免残留数据干扰。

(2)指令发送与数据接收

  • 指令格式要求

    • 每条指令需以 “回车符(<CR>)” 结尾(泵仅识别带回车的指令);

    • 带参数的指令需严格遵循 “指令 + 空格 + 参数 + 空格 + 单位” 格式(如设置注入速率为 800μl/min:irate 800 ul/min<CR>)。

  • LabVIEW 实现

    1. 用 “字符串控件” 构建指令(含回车符,可通过 “转义序列” 添加\r);

    2. 调用VISA Write.vi发送指令;

    3. 调用VISA Read.vi接收泵的返回数据(需设置合理的 “读取字节数”,建议 1024 字节,避免数据截断);

    4. 用 “字符串解析函数”(如Scan From String.vi)提取关键数据(如从返回 “254.571 ul” 中提取数值 “254.571” 和单位 “ul”)。

(3)核心功能封装示例

以 “设置注入速率 + 查询已注入体积” 为例,封装子 VI 流程:

  1. 输入参数:串口号(VISA 资源名)、注入速率值、速率单位(下拉控件:ul/min、ml/hr 等);

  2. 内部逻辑

    • 构建速率设置指令(如irate 800 ul/min\r),通过VISA Write发送;

    • 延迟 100ms(泵响应需时间,可通过 “等待函数” 设置);

    • 发送体积查询指令ivolume\r,通过VISA Read接收返回数据;

    • 解析返回字符串,输出 “已注入体积数值” 和 “单位”;

  1. 错误处理:添加VISA Error Handler.vi,捕获串口超时、指令错误(如泵返回 “Command error: Unknown command”)等异常,通过 “对话框” 提示用户。

(4)多泵级联控制注意事项

  • 地址前缀:控制非 00 地址的泵时,指令需添加 “地址 + 空格” 前缀(如控制地址 01 的泵开始抽取:01 wrun\r);

  • 同步运行:若需多泵同步执行方法,需先通过address指令确认各泵地址,再按顺序发送运行指令,或通过 “Gradient 模式” 实现多泵流量协同(需确保所有泵使用相同规格注射器)。

(5)调试与验证

  • 工具辅助:开发前可先用 “串口调试助手”(如文档图 3 中的工具)验证指令有效性(如发送irate查询速率,确认泵返回正确数值),避免 LabVIEW 代码与硬件通信问题混淆;

  • 日志记录:在 LabVIEW 中添加 “数据日志 VI”(如Write to Measurement File.vi),记录指令发送时间、泵返回数据,便于调试异常(如流量偏差、串口断连)。

3. 常见问题与解决方案

问题现象

可能原因

解决方案

LabVIEW 发送指令后无返回

1. 串口号配置错误;2. 指令无回车符;3. 泵处于 “触摸屏锁定” 状态

1. 重新在设备管理器确认串口号;2. 指令末尾添加\r;3. 解锁泵(按 “Lock” 键输入密码)

泵返回 “Argument error”

指令参数格式错误(如单位错误、数值超出范围)

1. 检查参数单位(如速率单位需为 “ul/min” 而非 “ul”);2. 参考文档附录 B 的 “最小 / 最大流量” 确认数值范围

RS-485 级联时部分泵无响应

1. 泵地址冲突;2. 级联电缆连接错误;3. 超过 4 台泵未独立供电

1. 重新设置每台泵地址(确保唯一);2. 按 “主机 RS-485 OUT→从机 RS-485 IN” 连接;3. 每 4 台泵至少 1 台独立供电

开发资源参考

  1. 官方文档:文档 “Pump Chain Commands” 章节(第 51-57 页)详细列出所有串口指令格式、错误码含义,是开发核心参考;

  2. LabVIEW 示例:可基于 NI 官网 “串口通信示例”(如 “Simple Serial.vi”)修改,替换为该泵的指令集;

  3. 驱动与工具:厂商提供的 “Pump 11 Elite Series Flash Upgrade Application”(附录 D)可升级泵固件,确保指令兼容性。





楼主最近还看过

SSI ļʱ