控制作業狀態模型(SEMI E94)
1. 概述
控制作業(CJ)狀態模型定義了控制作業的生命週期,依據 SEMI E94(控制作業管理)規範。控制作業是較高層級的作業,管理一個或多個製程作業並提供排程控制。
2. 控制作業 vs 製程作業
| 面向 |
控制作業(E94) |
製程作業(E40) |
| 層級 |
較高(排程) |
較低(執行) |
| 範圍 |
多個 PJ |
單一配方執行 |
| 用途 |
排程、分組 |
實際處理 |
| 包含 |
1..n 製程作業 |
基板 |
3. 控制作業狀態圖
stateDiagram-v2
[*] --> QUEUED: Create Job
QUEUED --> SELECTED: Select command
QUEUED --> [*]: Delete
SELECTED --> EXECUTING: Start / Auto-start
SELECTED --> QUEUED: Deselect
SELECTED --> [*]: Delete
EXECUTING --> PAUSED: Pause command
EXECUTING --> COMPLETED: All PJs complete
EXECUTING --> WAITING_FOR_START: Hold
PAUSED --> EXECUTING: Resume command
PAUSED --> WAITING_FOR_START: Hold
WAITING_FOR_START --> EXECUTING: Start command
WAITING_FOR_START --> PAUSED: Pause
COMPLETED --> [*]: Job removed
4. 狀態定義
| 狀態 |
說明 |
| QUEUED |
作業已建立但未被選取執行 |
| SELECTED |
作業已選取,準備啟動 |
| WAITING_FOR_START |
作業保留中,等待明確啟動 |
| EXECUTING |
作業執行中(製程作業執行中) |
| PAUSED |
作業執行已暫停 |
| COMPLETED |
所有製程作業已完成 |
5. 轉換表
| # |
原狀態 |
觸發條件 |
目標狀態 |
動作 |
| 1 |
- |
CJCreate |
QUEUED |
建立作業實例 |
| 2 |
QUEUED |
CJSelect |
SELECTED |
選取執行 |
| 3 |
QUEUED |
CJDelete |
(已移除) |
刪除作業 |
| 4 |
SELECTED |
CJStart |
EXECUTING |
啟動製程作業 |
| 5 |
SELECTED |
Auto-start |
EXECUTING |
自動啟動 |
| 6 |
SELECTED |
CJDeselect |
QUEUED |
取消選取作業 |
| 7 |
SELECTED |
CJDelete |
(已移除) |
刪除作業 |
| 8 |
EXECUTING |
CJPause |
PAUSED |
暫停處理 |
| 9 |
EXECUTING |
All PJs done |
COMPLETED |
作業完成 |
| 10 |
EXECUTING |
CJHold |
WAITING_FOR_START |
保留執行 |
| 11 |
PAUSED |
CJResume |
EXECUTING |
恢復處理 |
| 12 |
PAUSED |
CJHold |
WAITING_FOR_START |
保留執行 |
| 13 |
WAITING_FOR_START |
CJStart |
EXECUTING |
恢復執行 |
| 14 |
WAITING_FOR_START |
CJPause |
PAUSED |
暫停作業 |
6. 控制作業屬性
| 屬性 |
類型 |
說明 |
| CJObjID |
A |
唯一控制作業識別碼 |
| CJState |
U1 |
目前狀態值 |
| ProcessingCtrlSpec |
L |
處理控制規格 |
| PRJobList |
L |
包含的製程作業 ID 清單 |
| StartMethod |
U1 |
手動/自動啟動 |
| DataCollectionPlan |
A |
關聯的資料收集計畫 |
| MtrlOutSpec |
L |
材料輸出規格 |
6.1 控制作業狀態值
| 值 |
狀態 |
| 1 |
QUEUED |
| 2 |
SELECTED |
| 3 |
WAITING_FOR_START |
| 4 |
EXECUTING |
| 5 |
PAUSED |
| 6 |
COMPLETED |
7. CJ-PJ 關係
flowchart TD
subgraph ControlJob["Control Job: CJ001"]
CJS[State: EXECUTING]
end
subgraph ProcessJobs["Process Jobs"]
PJ1[PJ001<br/>PROCESSING]
PJ2[PJ002<br/>QUEUED]
PJ3[PJ003<br/>QUEUED]
end
ControlJob --> PJ1
ControlJob --> PJ2
ControlJob --> PJ3
8. 相關訊息
| 訊息 |
方向 |
說明 |
| S14F9 |
H→E |
CJCreate - 建立控制作業 |
| S14F10 |
E→H |
CJCreate 確認 |
| S14F1 |
H→E |
CJGetAttr - 取得作業屬性 |
| S14F2 |
E→H |
CJGetAttr 資料 |
| S14F3 |
H→E |
CJCmd - 控制作業命令 |
| S14F4 |
E→H |
CJCmd 確認 |
8.1 S14F9 - CJCreate
結構:
S14F9 W
<L[n]
<OBJSPEC> // 物件指定器
<L[m] // 屬性
<L[2]
<ATTRID>
<ATTRDATA>
>
...
>
>
8.2 S14F3 - CJCmd(控制作業命令)
結構:
S14F3 W
<L[n]
<CJCMD> // 命令
<L[m] // 作業清單
<CJOBJID>
...
>
<L[k] // 參數
...
>
>
CJCMD 值:
| 值 |
命令 |
說明 |
| 1 |
SELECT |
選取作業執行 |
| 2 |
DESELECT |
取消選取作業 |
| 3 |
START |
啟動作業執行 |
| 4 |
PAUSE |
暫停作業 |
| 5 |
RESUME |
恢復作業 |
| 6 |
ABORT |
中止作業 |
| 7 |
STOP |
在安全點停止作業 |
| 8 |
DELETE |
刪除作業 |
| 9 |
HOLD |
保留作業 |
9. 控制作業執行序列
sequenceDiagram
participant Host
participant Equipment
Host->>Equipment: S14F9 W (CJCreate)
Note right of Host: CJObjID="CJ001"<br/>ProcessJobs=[PJ001, PJ002]
Equipment-->>Host: S14F10 (Success)
Note over Equipment: CJ 狀態:QUEUED
Host->>Equipment: S14F3 W (SELECT)
Equipment-->>Host: S14F4 (Success)
Note over Equipment: CJ 狀態:SELECTED
Host->>Equipment: S14F3 W (START)
Equipment-->>Host: S14F4 (Success)
Note over Equipment: CJ 狀態:EXECUTING
Note over Equipment: 啟動 PJ001
Equipment->>Host: S6F11 (PRJobStarted)
Host-->>Equipment: S6F12
Note over Equipment: PJ001 完成,啟動 PJ002
Equipment->>Host: S6F11 (PRJobComplete)
Host-->>Equipment: S6F12
Note over Equipment: PJ002 完成
Equipment->>Host: S6F11 (PRJobComplete)
Host-->>Equipment: S6F12
Note over Equipment: CJ 狀態:COMPLETED
Equipment->>Host: S6F11 (CJComplete)
Host-->>Equipment: S6F12
10. 作業排程
10.1 優先權
控制作業可指定排程優先權:
| 優先權 |
說明 |
| 1 |
最高優先權 |
| 2-9 |
一般優先權 |
| 10 |
最低優先權 |
10.2 佇列管理
| 命令 |
效果 |
| SELECT |
從 QUEUED 移至 SELECTED |
| DESELECT |
從 SELECTED 移至 QUEUED |
| Move Up |
提高佇列優先權 |
| Move Down |
降低佇列優先權 |
11. 相關收集事件
| CEID |
名稱 |
說明 |
[8001] |
CJCreated |
控制作業已建立 |
[8002] |
CJStateChange |
控制作業狀態變更 |
[8003] |
CJSelected |
控制作業已選取 |
[8004] |
CJStarted |
控制作業已啟動 |
[8005] |
CJCompleted |
控制作業已完成 |
[8006] |
CJPaused |
控制作業已暫停 |
[8007] |
CJResumed |
控制作業已恢復 |
[8008] |
CJAborted |
控制作業已中止 |
12. 相關狀態變數
| SVID |
名稱 |
類型 |
說明 |
[8001] |
ActiveCJCount |
U2 |
啟動中的控制作業數量 |
[8002] |
SelectedCJID |
A |
目前選取的控制作業 |
[8003] |
ExecutingCJID |
A |
目前執行中的控制作業 |
13. 錯誤處理
| 錯誤條件 |
回應 |
| 無效作業 ID |
OBJACK 錯誤 |
| 命令狀態錯誤 |
S14F4 含錯誤 |
| PJ 建立失敗 |
CJ 建立失敗 |
| 佇列已滿 |
S14F10 含錯誤 |