Files
Uni-Lab-OS/unilabos/devices/laiyu_liquid/docs/hardware/SOPA气动式移液器RS485控制指令.md
Xuwznln 9aeffebde1 0.10.7 Update (#101)
* Cleanup registry to be easy-understanding (#76)

* delete deprecated mock devices

* rename categories

* combine chromatographic devices

* rename rviz simulation nodes

* organic virtual devices

* parse vessel_id

* run registry completion before merge

---------

Co-authored-by: Xuwznln <18435084+Xuwznln@users.noreply.github.com>

* fix: workstation handlers and vessel_id parsing

* fix: working dir error when input config path
feat: report publish topic when error

* modify default discovery_interval to 15s

* feat: add trace log level

* feat: 添加ChinWe设备控制类,支持串口通信和电机控制功能 (#79)

* fix: drop_tips not using auto resource select

* fix: discard_tips error

* fix: discard_tips

* fix: prcxi_res

* add: prcxi res
fix: startup slow

* feat: workstation example

* fix pumps and liquid_handler handle

* feat: 优化protocol node节点运行日志

* fix all protocol_compilers and remove deprecated devices

* feat: 新增use_remote_resource参数

* fix and remove redundant info

* bugfixes on organic protocols

* fix filter protocol

* fix protocol node

* 临时兼容错误的driver写法

* fix: prcxi import error

* use call_async in all service to avoid deadlock

* fix: figure_resource

* Update recipe.yaml

* add workstation template and battery example

* feat: add sk & ak

* update workstation base

* Create workstation_architecture.md

* refactor: workstation_base 重构为仅含业务逻辑,通信和子设备管理交给 ProtocolNode

* refactor: ProtocolNode→WorkstationNode

* Add:msgs.action (#83)

* update: Workstation dev 将版本号从 0.10.3 更新为 0.10.4 (#84)

* Add:msgs.action

* update: 将版本号从 0.10.3 更新为 0.10.4

* simplify resource system

* uncompleted refactor

* example for use WorkstationBase

* feat: websocket

* feat: websocket test

* feat: workstation example

* feat: action status

* fix: station自己的方法注册错误

* fix: 还原protocol node处理方法

* fix: build

* fix: missing job_id key

* ws test version 1

* ws test version 2

* ws protocol

* 增加物料关系上传日志

* 增加物料关系上传日志

* 修正物料关系上传

* 修复工站的tracker实例追踪失效问题

* 增加handle检测,增加material edge关系上传

* 修复event loop错误

* 修复edge上报错误

* 修复async错误

* 更新schema的title字段

* 主机节点信息等支持自动刷新

* 注册表编辑器

* 修复status密集发送时,消息出错

* 增加addr参数

* fix: addr param

* fix: addr param

* 取消labid 和 强制config输入

* Add action definitions for LiquidHandlerSetGroup and LiquidHandlerTransferGroup

- Created LiquidHandlerSetGroup.action with fields for group name, wells, and volumes.
- Created LiquidHandlerTransferGroup.action with fields for source and target group names and unit volume.
- Both actions include response fields for return information and success status.

* Add LiquidHandlerSetGroup and LiquidHandlerTransferGroup actions to CMakeLists

* Add set_group and transfer_group methods to PRCXI9300Handler and update liquid_handler.yaml

* result_info改为字典类型

* 新增uat的地址替换

* runze multiple pump support

(cherry picked from commit 49354fcf39)

* remove runze multiple software obtainer

(cherry picked from commit 8bcc92a394)

* support multiple backbone

(cherry picked from commit 4771ff2347)

* Update runze pump format

* Correct runze multiple backbone

* Update runze_multiple_backbone

* Correct runze pump multiple receive method.

* Correct runze pump multiple receive method.

* 对于PRCXI9320的transfer_group,一对多和多对多

* 移除MQTT,更新launch文档,提供注册表示例文件,更新到0.10.5

* fix import error

* fix dupe upload registry

* refactor ws client

* add server timeout

* Fix: run-column with correct vessel id (#86)

* fix run_column

* Update run_column_protocol.py

(cherry picked from commit e5aa4d940a)

* resource_update use resource_add

* 新增版位推荐功能

* 重新规定了版位推荐的入参

* update registry with nested obj

* fix protocol node log_message, added create_resource return value

* fix protocol node log_message, added create_resource return value

* try fix add protocol

* fix resource_add

* 修复移液站错误的aspirate注册表

* Feature/xprbalance-zhida (#80)

* feat(devices): add Zhida GC/MS pretreatment automation workstation

* feat(devices): add mettler_toledo xpr balance

* balance

* 重新补全zhida注册表

* PRCXI9320 json

* PRCXI9320 json

* PRCXI9320 json

* fix resource download

* remove class for resource

* bump version to 0.10.6

* 更新所有注册表

* 修复protocolnode的兼容性

* 修复protocolnode的兼容性

* Update install md

* Add Defaultlayout

* 更新物料接口

* fix dict to tree/nested-dict converter

* coin_cell_station draft

* refactor: rename "station_resource" to "deck"

* add standardized BIOYOND resources: bottle_carrier, bottle

* refactor and add BIOYOND resources tests

* add BIOYOND deck assignment and pass all tests

* fix: update resource with correct structure; remove deprecated liquid_handler set_group action

* feat: 将新威电池测试系统驱动与配置文件并入 workstation_dev_YB2 (#92)

* feat: 新威电池测试系统驱动与注册文件

* feat: bring neware driver & battery.json into workstation_dev_YB2

* add bioyond studio draft

* bioyond station with communication init and resource sync

* fix bioyond station and registry

* fix: update resource with correct structure; remove deprecated liquid_handler set_group action

* frontend_docs

* create/update resources with POST/PUT for big amount/ small amount data

* create/update resources with POST/PUT for big amount/ small amount data

* refactor: add itemized_carrier instead of carrier consists of ResourceHolder

* create warehouse by factory func

* update bioyond launch json

* add child_size for itemized_carrier

* fix bioyond resource io

* Workstation templates: Resources and its CRUD, and workstation tasks (#95)

* coin_cell_station draft

* refactor: rename "station_resource" to "deck"

* add standardized BIOYOND resources: bottle_carrier, bottle

* refactor and add BIOYOND resources tests

* add BIOYOND deck assignment and pass all tests

* fix: update resource with correct structure; remove deprecated liquid_handler set_group action

* feat: 将新威电池测试系统驱动与配置文件并入 workstation_dev_YB2 (#92)

* feat: 新威电池测试系统驱动与注册文件

* feat: bring neware driver & battery.json into workstation_dev_YB2

* add bioyond studio draft

* bioyond station with communication init and resource sync

* fix bioyond station and registry

* create/update resources with POST/PUT for big amount/ small amount data

* refactor: add itemized_carrier instead of carrier consists of ResourceHolder

* create warehouse by factory func

* update bioyond launch json

* add child_size for itemized_carrier

* fix bioyond resource io

---------

Co-authored-by: h840473807 <47357934+h840473807@users.noreply.github.com>
Co-authored-by: Xie Qiming <97236197+Andy6M@users.noreply.github.com>

* 更新物料接口

* Workstation dev yb2 (#100)

* Refactor and extend reaction station action messages

* Refactor dispensing station tasks to enhance parameter clarity and add batch processing capabilities

- Updated `create_90_10_vial_feeding_task` to include detailed parameters for 90%/10% vial feeding, improving clarity and usability.
- Introduced `create_batch_90_10_vial_feeding_task` for batch processing of 90%/10% vial feeding tasks with JSON formatted input.
- Added `create_batch_diamine_solution_task` for batch preparation of diamine solution, also utilizing JSON formatted input.
- Refined `create_diamine_solution_task` to include additional parameters for better task configuration.
- Enhanced schema descriptions and default values for improved user guidance.

* 修复to_plr_resources

* add update remove

* 支持选择器注册表自动生成
支持转运物料

* 修复资源添加

* 修复transfer_resource_to_another生成

* 更新transfer_resource_to_another参数,支持spot入参

* 新增test_resource动作

* fix host_node error

* fix host_node test_resource error

* fix host_node test_resource error

* 过滤本地动作

* 移动内部action以兼容host node

* 修复同步任务报错不显示的bug

* feat: 允许返回非本节点物料,后面可以通过decoration进行区分,就不进行warning了

* update todo

* modify bioyond/plr converter, bioyond resource registry, and tests

* pass the tests

* update todo

* add conda-pack-build.yml

* add auto install script for conda-pack-build.yml

(cherry picked from commit 172599adcf)

* update conda-pack-build.yml

* update conda-pack-build.yml

* update conda-pack-build.yml

* update conda-pack-build.yml

* update conda-pack-build.yml

* Add version in __init__.py
Update conda-pack-build.yml
Add create_zip_archive.py

* Update conda-pack-build.yml

* Update conda-pack-build.yml (with mamba)

* Update conda-pack-build.yml

* Fix FileNotFoundError

* Try fix 'charmap' codec can't encode characters in position 16-23: character maps to <undefined>

* Fix unilabos msgs search error

* Fix environment_check.py

* Update recipe.yaml

* Update registry. Update uuid loop figure method. Update install docs.

* Fix nested conda pack

* Fix one-key installation path error

* Bump version to 0.10.7

* Workshop bj (#99)

* 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__ 导出列表
- 确保所有主要类都可以正确导入

* 修复大小写文件夹名字

* 电池装配工站二次开发教程(带目录)上传至dev (#94)

* 电池装配工站二次开发教程

* Update intro.md

* 物料教程

* 更新物料教程,json格式注释

* Update prcxi driver & fix transfer_liquid mix_times (#90)

* Update prcxi driver & fix transfer_liquid mix_times

* fix: correct mix_times type

* Update liquid_handler registry

* test: prcxi.py

* Update registry from pr

* fix ony-key script not exist

* clean files

---------

Co-authored-by: Junhan Chang <changjh@dp.tech>
Co-authored-by: ZiWei <131428629+ZiWei09@users.noreply.github.com>
Co-authored-by: Guangxin Zhang <guangxin.zhang.bio@gmail.com>
Co-authored-by: Xie Qiming <97236197+Andy6M@users.noreply.github.com>
Co-authored-by: h840473807 <47357934+h840473807@users.noreply.github.com>
Co-authored-by: LccLink <1951855008@qq.com>
Co-authored-by: lixinyu1011 <61094742+lixinyu1011@users.noreply.github.com>
Co-authored-by: shiyubo0410 <shiyubo@dp.tech>
2025-10-12 23:34:26 +08:00

5.6 KiB
Raw Blame History

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注意地址不可为476991
  • 命令/数据: 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
# 示例设置最高速度为2000200ul/秒)
s2000E

# 设置启动速度
b[n]E
# 示例设置启动速度为10010ul/秒)
b100E

# 设置断流速度
c[n]E
# 示例设置断流速度为10010ul/秒)
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 基本通信流程

  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