|
|
@ -1,167 +0,0 @@ |
|
|
|
最简单的方式 |
|
|
|
|
|
|
|
|
|
|
|
1.错误 |
|
|
|
2.绑定的动作 |
|
|
|
clearError,根据错误列表中的错误,对设备进行恢复。也可以当错误大于两个的时候,直接报严重错误。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
机械臂: |
|
|
|
..... |
|
|
|
.准备(条件:当某个试管已经开始处理的) |
|
|
|
|
|
|
|
|
|
|
|
..... |
|
|
|
.锁定 |
|
|
|
.取样+混合+滴定 |
|
|
|
.取样+混合+滴定 |
|
|
|
.取样+混合+滴定 |
|
|
|
.释放 |
|
|
|
.复位 |
|
|
|
..... |
|
|
|
|
|
|
|
|
|
|
|
..... |
|
|
|
actions = 条件检查 |
|
|
|
|
|
|
|
|
|
|
|
Errors = doActions(); |
|
|
|
-->执行动作(并行) |
|
|
|
-->执行动作(并行) |
|
|
|
-->执行动作(并行) |
|
|
|
-->执行动作(并行) |
|
|
|
|
|
|
|
clearErrors(); |
|
|
|
|
|
|
|
waitForAllActionIsDone() |
|
|
|
|
|
|
|
..... |
|
|
|
|
|
|
|
同一时刻只做一件事儿 |
|
|
|
|
|
|
|
设备动作: |
|
|
|
入料 |
|
|
|
暂停 |
|
|
|
停止 |
|
|
|
继续 |
|
|
|
出料 |
|
|
|
|
|
|
|
入料 |
|
|
|
入料扫描 |
|
|
|
|
|
|
|
-预处理样本 |
|
|
|
-处理样本 |
|
|
|
|
|
|
|
|
|
|
|
-入料扫描 |
|
|
|
-移动并预处理样本-A |
|
|
|
-Tip头准备 |
|
|
|
-取样本并处理样本 |
|
|
|
-取处理好的样本滴定 |
|
|
|
-反应板准备 |
|
|
|
-反应板推出 |
|
|
|
-反应板扫描 |
|
|
|
-移动并预处理样本-B |
|
|
|
-出料 |
|
|
|
|
|
|
|
出错: |
|
|
|
|
|
|
|
错误处理: |
|
|
|
假设: |
|
|
|
1. 系统状态自动切换到暂停状态。如果是fatal则自动切换到stop状态。 |
|
|
|
2. 用户按下继续后,设备可以继续工作,同时先根据错误类型,执行相应的动作。 |
|
|
|
3. 如果是fatal错误,用户需要关机,并依次移走所有耗材。 |
|
|
|
4. |
|
|
|
|
|
|
|
|
|
|
|
while(true){ |
|
|
|
stop |
|
|
|
pause |
|
|
|
} |
|
|
|
|
|
|
|
动作: |
|
|
|
入料并扫描 |
|
|
|
条件: |
|
|
|
没有错误,设备运行工作中,试管架状态为IDLE,入料光电被触发 |
|
|
|
副作用: |
|
|
|
修改耗材状态 |
|
|
|
|
|
|
|
动作: |
|
|
|
出料 |
|
|
|
条件: |
|
|
|
没有错误,设备运行中,试管架状态为FINISHED |
|
|
|
副作用: |
|
|
|
修改试管架状态为IDLE |
|
|
|
|
|
|
|
----------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
动作: |
|
|
|
试管预处理A |
|
|
|
条件: |
|
|
|
没有错误,设备运行中,试管架状态为PROCESS,试管预处理状态为CHECK_REASOUR_FINISHED,或者处理中,待处理试管不为0 |
|
|
|
副作用: |
|
|
|
修改试管处理状态为PRE-PROCESS-A |
|
|
|
|
|
|
|
动作: |
|
|
|
耗材资源检查,孵育盘有空余位置。 |
|
|
|
条件: |
|
|
|
没有错误,设备运行中,试管架状态为PROCESS,试管预处理状态为IDLE,待处理试管不为0 |
|
|
|
副作用: |
|
|
|
|
|
|
|
|
|
|
|
动作: |
|
|
|
样本后处理 |
|
|
|
条件 |
|
|
|
PRE_PROCESS_A FINISHED,孵育盘有空余位置。 |
|
|
|
RECORSE: |
|
|
|
|
|
|
|
副作用: |
|
|
|
修改PRE_PROCESS_A --> SAMPLE_POST_PROCESS |
|
|
|
cnt++; |
|
|
|
设置孵育盘状态 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
基本原则: |
|
|
|
每个动作都有一定的触发条件和硬件资源,当条件满足时且申请到硬件资源时执行动作。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------------------- |
|
|
|
核心点? |
|
|
|
特殊点: |
|
|
|
一个状态触发多个任务: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
状态: |
|
|
|
1.SOMTHING_PROCESSING [处理中] |
|
|
|
2.SOMTHING_FINISHED [处理完成] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|