You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
最简单的方式
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 [处理完成]
|