mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 04:51:10 +00:00
* 修改lh的json启动 * 修改lh的json启动 * 修改backend,做成sim的通用backend * 修改yaml的地址,3D模型适配网页生产环境 * 添加laiyu硬件连接 * 修改移液枪的状态判断方法, 修改移液枪的状态判断方法, 添加三轴的表定点与零点之间的转换 添加三轴真实移动的backend * 修改laiyu移液站 简化移动方法, 取消软件限制位置, 修改当值使用Z轴时也需要重新复位Z轴的问题 * 更新lh以及laiyu workshop 1,现在可以直接通过修改backend,适配其他的移液站,主类依旧使用LiquidHandler,不用重新编写 2,修改枪头判断标准,使用枪头自身判断而不是类的判断, 3,将归零参数用毫米计算,方便手动调整, 4,修改归零方式,上电使用机械归零,确定机械零点,手动归零设置工作区域零点方便计算,二者互不干涉 * 修改枪头动作 * 修改虚拟仿真方法 --------- Co-authored-by: zhangshixiang <@zhangshixiang> Co-authored-by: Junhan Chang <changjh@dp.tech>
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