コントロールジョブ状態モデル(SEMI E94)
1. 概要
コントロールジョブ(CJ)状態モデルは、SEMI E94(コントロールジョブ管理)で規定されているコントロールジョブのライフサイクルを定義します。コントロールジョブは、1つ以上のプロセスジョブを管理し、スケジューリング制御を提供する上位レベルのジョブです。
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 エラー付き |