mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 13:01:12 +00:00
* Add LaiYu Liquid device integration and tests Introduce LaiYu Liquid device implementation, including backend, controllers, drivers, configuration, and resource files. Add hardware connection, tip pickup, and simplified test scripts, as well as experiment and registry configuration for LaiYu Liquid. Documentation and .gitignore for the device are also included. * feat(LaiYu_Liquid): 重构设备模块结构并添加硬件文档 refactor: 重新组织LaiYu_Liquid模块目录结构 docs: 添加SOPA移液器和步进电机控制指令文档 fix: 修正设备配置中的最大体积默认值 test: 新增工作台配置测试用例 chore: 删除过时的测试脚本和配置文件 * add * 重构: 将 LaiYu_Liquid.py 重命名为 laiyu_liquid_main.py 并更新所有导入引用 - 使用 git mv 将 LaiYu_Liquid.py 重命名为 laiyu_liquid_main.py - 更新所有相关文件中的导入引用 - 保持代码功能不变,仅改善命名一致性 - 测试确认所有导入正常工作 * 修复: 在 core/__init__.py 中添加 LaiYuLiquidBackend 导出 - 添加 LaiYuLiquidBackend 到导入列表 - 添加 LaiYuLiquidBackend 到 __all__ 导出列表 - 确保所有主要类都可以正确导入 * 修复大小写文件夹名字
5.6 KiB
5.6 KiB
SOPA气动式移液器RS485控制指令合集
1. RS485通信基本配置
1.1 支持的设备型号
- 仅SC-STxxx-00-13支持RS485通信
- 其他型号主要使用CAN通信
1.2 通信参数
- 波特率: 9600, 115200(默认值)
- 地址范围: 1~254个设备,255为广播地址
- 通信接口: RS485差分信号
1.3 引脚分配(10位LIF连接器)
- 引脚7: RS485+ (RS485通信正极)
- 引脚8: RS485- (RS485通信负极)
2. RS485通信协议格式
2.1 发送数据格式
头码 | 地址 | 命令/数据 | 尾码 | 校验和
2.2 从机回应格式
头码 | 地址 | 数据(固定9字节) | 尾码 | 校验和
2.3 格式详细说明
- 头码:
- 终端调试: '/' (0x2F)
- OEM通信: '[' (0x5B)
- 地址: 设备节点地址,1~254,多字节ASCII(注意:地址不可为47,69,91)
- 命令/数据: ASCII格式的命令字符串
- 尾码: 'E' (0x45)
- 校验和: 以上数据的累加值,1字节
3. 初始化和基本控制指令
3.1 初始化指令
# 初始化活塞驱动机构
HE
# 示例(OEM通信):
# 主机发送: 5B 32 48 45 1A
# 从机回应开始: 2F 02 06 0A 30 00 00 00 00 00 00 45 B6
# 从机回应完成: 2F 02 06 00 30 00 00 00 00 00 00 45 AC
3.2 枪头操作指令
# 顶出枪头
RE
# 枪头检测状态报告
Q28 # 返回枪头存在状态(0=不存在,1=存在)
4. 移液控制指令
4.1 位置控制指令
# 绝对位置移动(微升)
A[n]E
# 示例:移动到位置0
A0E
# 相对抽吸(向上移动)
P[n]E
# 示例:抽吸200微升
P200E
# 相对分配(向下移动)
D[n]E
# 示例:分配200微升
D200E
4.2 速度设置指令
# 设置最高速度(0.1ul/秒为单位)
s[n]E
# 示例:设置最高速度为2000(200ul/秒)
s2000E
# 设置启动速度
b[n]E
# 示例:设置启动速度为100(10ul/秒)
b100E
# 设置断流速度
c[n]E
# 示例:设置断流速度为100(10ul/秒)
c100E
# 设置加速度
a[n]E
# 示例:设置加速度为30000
a30000E
5. 液体检测和安全控制指令
5.1 吸排液检测控制
# 开启吸排液检测
f1E # 开启
f0E # 关闭
# 设置空吸门限
$[n]E
# 示例:设置空吸门限为4
$4E
# 设置泡沫门限
![n]E
# 示例:设置泡沫门限为20
!20E
# 设置堵塞门限
%[n]E
# 示例:设置堵塞门限为350
%350E
5.2 液位检测指令
# 压力式液位检测
m0E # 设置为压力探测模式
L[n]E # 执行液位检测,[n]为灵敏度(3~40)
k[n]E # 设置检测速度(100~2000)
# 电容式液位检测
m1E # 设置为电容探测模式
6. 状态查询和报告指令
6.1 基本状态查询
# 查询固件版本
V
# 查询设备状态
Q[n]
# 常用查询参数:
Q01 # 报告加速度
Q02 # 报告启动速度
Q03 # 报告断流速度
Q06 # 报告最大速度
Q08 # 报告节点地址
Q11 # 报告波特率
Q18 # 报告当前位置
Q28 # 报告枪头存在状态
Q29 # 报告校准系数
Q30 # 报告空吸门限
Q31 # 报告堵针门限
Q32 # 报告泡沫门限
7. 配置和校准指令
7.1 校准参数设置
# 设置校准系数
j[n]E
# 示例:设置校准系数为1.04
j1.04E
# 设置补偿偏差
e[n]E
# 示例:设置补偿偏差为2.03
e2.03E
# 设置吸头容量
C[n]E
# 示例:设置1000ul吸头
C1000E
7.2 高级控制参数
# 设置回吸粘度
][n]E
# 示例:设置回吸粘度为30
]30E
# 延时控制
M[n]E
# 示例:延时1000毫秒
M1000E
8. 复合操作指令示例
8.1 标准移液操作
# 完整的200ul移液操作
a30000b200c200s2000P200E
# 解析:设置加速度30000 + 启动速度200 + 断流速度200 + 最高速度2000 + 抽吸200ul + 执行
8.2 带检测的移液操作
# 带空吸检测的200ul抽吸
a30000b200c200s2000f1P200f0E
# 解析:设置参数 + 开启检测 + 抽吸200ul + 关闭检测 + 执行
8.3 液面检测操作
# 压力式液面检测
m0k200L5E
# 解析:压力模式 + 检测速度200 + 灵敏度5 + 执行检测
# 电容式液面检测
m1L3E
# 解析:电容模式 + 灵敏度3 + 执行检测
9. 错误处理
9.1 状态字节说明
- 00h: 无错误
- 01h: 上次动作未完成
- 02h: 设备未初始化
- 03h: 设备过载
- 04h: 无效指令
- 05h: 液位探测故障
- 0Dh: 空吸
- 0Eh: 堵针
- 10h: 泡沫
- 11h: 吸液超过吸头容量
9.2 错误查询
# 查询当前错误状态
Q # 返回状态字节和错误代码
10. 通信示例
10.1 基本通信流程
- 执行命令: 主机发送命令 → 从机确认 → 从机执行 → 从机回应完成
- 读取数据: 主机发送查询 → 从机确认 → 从机返回数据
10.2 快速指令表
| 操作 | 指令 | 说明 |
|---|---|---|
| 初始化 | HE |
初始化设备 |
| 退枪头 | RE |
顶出枪头 |
| 吸液200ul | a30000b200c200s2000P200E |
基本吸液 |
| 带检测吸液 | a30000b200c200s2000f1P200f0E |
开启空吸检测 |
| 吐液200ul | a300000b500c500s6000D200E |
基本分配 |
| 压力液面检测 | m0k200L5E |
pLLD检测 |
| 电容液面检测 | m1L3E |
cLLD检测 |
11. 注意事项
- 地址限制: RS485地址不可设为47、69、91
- 校验和: 终端调试时不关心校验和,OEM通信需要校验
- ASCII格式: 所有命令和参数都使用ASCII字符
- 执行指令: 大部分命令需要以'E'结尾才能执行
- 设备支持: 只有SC-STxxx-00-13型号支持RS485通信
- 波特率设置: 默认115200,可设置为9600