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 一致 |
该系列泵支持通过串口(USB 虚拟串口或 RS-485) 与 LabVIEW 通信,核心开发流程围绕 “串口配置 - 指令发送 - 数据接收 - 功能封装” 展开,需基于泵的 ASCII 串口指令集实现控制逻辑。
接口选择:优先使用 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 的泵设置注入速率)。
LabVIEW 控制需调用泵的ASCII 串口指令,核心指令分类如下(详细格式见文档 “Pump Chain Commands” 章节):
功能类型 | 核心指令示例 | 说明 |
运行控制 |
| 仅在 “Quick Start 模式” 下生效,需先配置注射器、流量等参数 |
参数设置 |
| 速率单位支持 ml/μl/nl/pl 与 min/sec/hr 组合,体积单位支持 ml/μl/nl/pl |
参数查询 |
| 泵返回数据格式为 ASCII 字符串(如查询 |
系统配置 |
| 需重启泵或重新初始化串口使配置生效 |
调用 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
清除串口缓存,避免残留数据干扰。
指令格式要求:
每条指令需以 “回车符(<CR>)” 结尾(泵仅识别带回车的指令);
带参数的指令需严格遵循 “指令 + 空格 + 参数 + 空格 + 单位” 格式(如设置注入速率为 800μl/min:irate 800 ul/min<CR>
)。
LabVIEW 实现:
用 “字符串控件” 构建指令(含回车符,可通过 “转义序列” 添加\r
);
调用VISA Write.vi
发送指令;
调用VISA Read.vi
接收泵的返回数据(需设置合理的 “读取字节数”,建议 1024 字节,避免数据截断);
用 “字符串解析函数”(如Scan From String.vi
)提取关键数据(如从返回 “254.571 ul” 中提取数值 “254.571” 和单位 “ul”)。
以 “设置注入速率 + 查询已注入体积” 为例,封装子 VI 流程:
输入参数:串口号(VISA 资源名)、注入速率值、速率单位(下拉控件:ul/min、ml/hr 等);
内部逻辑:
构建速率设置指令(如irate 800 ul/min\r
),通过VISA Write
发送;
延迟 100ms(泵响应需时间,可通过 “等待函数” 设置);
发送体积查询指令ivolume\r
,通过VISA Read
接收返回数据;
解析返回字符串,输出 “已注入体积数值” 和 “单位”;
错误处理:添加VISA Error Handler.vi
,捕获串口超时、指令错误(如泵返回 “Command error: Unknown command”)等异常,通过 “对话框” 提示用户。
地址前缀:控制非 00 地址的泵时,指令需添加 “地址 + 空格” 前缀(如控制地址 01 的泵开始抽取:01 wrun\r
);
同步运行:若需多泵同步执行方法,需先通过address
指令确认各泵地址,再按顺序发送运行指令,或通过 “Gradient 模式” 实现多泵流量协同(需确保所有泵使用相同规格注射器)。
工具辅助:开发前可先用 “串口调试助手”(如文档图 3 中的工具)验证指令有效性(如发送irate
查询速率,确认泵返回正确数值),避免 LabVIEW 代码与硬件通信问题混淆;
日志记录:在 LabVIEW 中添加 “数据日志 VI”(如Write to Measurement File.vi
),记录指令发送时间、泵返回数据,便于调试异常(如流量偏差、串口断连)。
问题现象 | 可能原因 | 解决方案 |
LabVIEW 发送指令后无返回 | 1. 串口号配置错误;2. 指令无回车符;3. 泵处于 “触摸屏锁定” 状态 | 1. 重新在设备管理器确认串口号;2. 指令末尾添加 |
泵返回 “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 台独立供电 |
官方文档:文档 “Pump Chain Commands” 章节(第 51-57 页)详细列出所有串口指令格式、错误码含义,是开发核心参考;
LabVIEW 示例:可基于 NI 官网 “串口通信示例”(如 “Simple Serial.vi”)修改,替换为该泵的指令集;
驱动与工具:厂商提供的 “Pump 11 Elite Series Flash Upgrade Application”(附录 D)可升级泵固件,确保指令兼容性。
楼主最近还看过