# 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 初始化指令 ```bash # 初始化活塞驱动机构 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 枪头操作指令 ```bash # 顶出枪头 RE # 枪头检测状态报告 Q28 # 返回枪头存在状态(0=不存在,1=存在) ``` ## 4. 移液控制指令 ### 4.1 位置控制指令 ```bash # 绝对位置移动(微升) A[n]E # 示例:移动到位置0 A0E # 相对抽吸(向上移动) P[n]E # 示例:抽吸200微升 P200E # 相对分配(向下移动) D[n]E # 示例:分配200微升 D200E ``` ### 4.2 速度设置指令 ```bash # 设置最高速度(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 吸排液检测控制 ```bash # 开启吸排液检测 f1E # 开启 f0E # 关闭 # 设置空吸门限 $[n]E # 示例:设置空吸门限为4 $4E # 设置泡沫门限 ![n]E # 示例:设置泡沫门限为20 !20E # 设置堵塞门限 %[n]E # 示例:设置堵塞门限为350 %350E ``` ### 5.2 液位检测指令 ```bash # 压力式液位检测 m0E # 设置为压力探测模式 L[n]E # 执行液位检测,[n]为灵敏度(3~40) k[n]E # 设置检测速度(100~2000) # 电容式液位检测 m1E # 设置为电容探测模式 ``` ## 6. 状态查询和报告指令 ### 6.1 基本状态查询 ```bash # 查询固件版本 V # 查询设备状态 Q[n] # 常用查询参数: Q01 # 报告加速度 Q02 # 报告启动速度 Q03 # 报告断流速度 Q06 # 报告最大速度 Q08 # 报告节点地址 Q11 # 报告波特率 Q18 # 报告当前位置 Q28 # 报告枪头存在状态 Q29 # 报告校准系数 Q30 # 报告空吸门限 Q31 # 报告堵针门限 Q32 # 报告泡沫门限 ``` ## 7. 配置和校准指令 ### 7.1 校准参数设置 ```bash # 设置校准系数 j[n]E # 示例:设置校准系数为1.04 j1.04E # 设置补偿偏差 e[n]E # 示例:设置补偿偏差为2.03 e2.03E # 设置吸头容量 C[n]E # 示例:设置1000ul吸头 C1000E ``` ### 7.2 高级控制参数 ```bash # 设置回吸粘度 ][n]E # 示例:设置回吸粘度为30 ]30E # 延时控制 M[n]E # 示例:延时1000毫秒 M1000E ``` ## 8. 复合操作指令示例 ### 8.1 标准移液操作 ```bash # 完整的200ul移液操作 a30000b200c200s2000P200E # 解析:设置加速度30000 + 启动速度200 + 断流速度200 + 最高速度2000 + 抽吸200ul + 执行 ``` ### 8.2 带检测的移液操作 ```bash # 带空吸检测的200ul抽吸 a30000b200c200s2000f1P200f0E # 解析:设置参数 + 开启检测 + 抽吸200ul + 关闭检测 + 执行 ``` ### 8.3 液面检测操作 ```bash # 压力式液面检测 m0k200L5E # 解析:压力模式 + 检测速度200 + 灵敏度5 + 执行检测 # 电容式液面检测 m1L3E # 解析:电容模式 + 灵敏度3 + 执行检测 ``` ## 9. 错误处理 ### 9.1 状态字节说明 - **00h**: 无错误 - **01h**: 上次动作未完成 - **02h**: 设备未初始化 - **03h**: 设备过载 - **04h**: 无效指令 - **05h**: 液位探测故障 - **0Dh**: 空吸 - **0Eh**: 堵针 - **10h**: 泡沫 - **11h**: 吸液超过吸头容量 ### 9.2 错误查询 ```bash # 查询当前错误状态 Q # 返回状态字节和错误代码 ``` ## 10. 通信示例 ### 10.1 基本通信流程 1. **执行命令**: 主机发送命令 → 从机确认 → 从机执行 → 从机回应完成 2. **读取数据**: 主机发送查询 → 从机确认 → 从机返回数据 ### 10.2 快速指令表 | 操作 | 指令 | 说明 | |------|------|------| | 初始化 | `HE` | 初始化设备 | | 退枪头 | `RE` | 顶出枪头 | | 吸液200ul | `a30000b200c200s2000P200E` | 基本吸液 | | 带检测吸液 | `a30000b200c200s2000f1P200f0E` | 开启空吸检测 | | 吐液200ul | `a300000b500c500s6000D200E` | 基本分配 | | 压力液面检测 | `m0k200L5E` | pLLD检测 | | 电容液面检测 | `m1L3E` | cLLD检测 | ## 11. 注意事项 1. **地址限制**: RS485地址不可设为47、69、91 2. **校验和**: 终端调试时不关心校验和,OEM通信需要校验 3. **ASCII格式**: 所有命令和参数都使用ASCII字符 4. **执行指令**: 大部分命令需要以'E'结尾才能执行 5. **设备支持**: 只有SC-STxxx-00-13型号支持RS485通信 6. **波特率设置**: 默认115200,可设置为9600