Stream 1 - 設備狀態
概述
Stream 1 訊息處理設備狀態請求、上線/離線控制及通訊建立。這些是主機與設備通訊的基礎訊息。
訊息摘要
| 訊息 |
名稱 |
方向 |
W-Bit |
說明 |
| S1F1/F2 |
Are You There |
H↔E |
W |
通訊驗證 |
| S1F3/F4 |
Selected Equipment Status |
H→E |
W |
請求特定 SV 值 |
| S1F11/F12 |
Status Variable Namelist |
H→E |
W |
請求 SV 定義 |
| S1F13/F14 |
Establish Communications |
H↔E |
W |
建立 SECS-II 連線 |
| S1F15/F16 |
Request Off-Line |
H→E |
W |
轉換至離線 |
| S1F17/F18 |
Request On-Line |
H→E |
W |
轉換至上線 |
S1F1 - Are You There Request
| 屬性 |
值 |
| 方向 |
H↔E(雙向) |
| 回覆 |
S1F2 |
| W-Bit |
必要 |
| 多區塊 |
否 |
訊息結構
資料項目
無資料項目 - 空列表
說明
用於驗證通訊對象是否有回應。此訊息常用於:
- 通訊心跳/保活
- HSMS 建立後的初始連線測試
- 通訊逾時後的恢復檢查
實作注意事項
時序要求
- 設備必須在 T3 逾時內回覆 S1F2(通常為 45 秒)
- 建議心跳間隔:30-60 秒
- 未收到回覆時應觸發通訊恢復
S1F2 - On Line Data(回覆)
| 屬性 |
值 |
| 方向 |
H↔E(雙向) |
| 回覆對象 |
S1F1 |
| W-Bit |
非必要 |
| 多區塊 |
否 |
訊息結構
S1F2
<L[2]
<MDLN> // 設備機型
<SOFTREV> // 軟體版本代碼
>
.
資料項目
| 項目 |
格式 |
長度 |
說明 |
| MDLN |
A |
1-20 |
設備機型識別碼 |
| SOFTREV |
A |
1-20 |
設備軟體版本 |
範例
S1F2
<L[2]
<A[12] "GST-PNL-2000"> // 機型:面板顯示設備
<A[8] "V2.1.045"> // 軟體版本
>
.
零長度回覆
若設備無法提供機型資訊:
S1F3 - Selected Equipment Status Request
| 屬性 |
值 |
| 方向 |
H→E |
| 回覆 |
S1F4 |
| W-Bit |
必要 |
| 多區塊 |
可能(多個 SVID 時) |
訊息結構
S1F3 W
<L[n] // n = 請求的 SV 數量
<SVID> // 狀態變數 ID 1
<SVID> // 狀態變數 ID 2
...
<SVID> // 狀態變數 ID n
>
.
資料項目
| 項目 |
格式 |
長度 |
說明 |
| SVID |
U1/U2/U4/U8 |
1/2/4/8 |
狀態變數 ID |
請求所有 SV
空列表請求所有已定義的狀態變數:
範例 - 特定 SV
S1F3 W
<L[8]
<U4 1> // Clock
<U4 2> // ControlState
<U4 3> // ProcessState
<U4 100> // EquipmentTemp
<U4 101> // ChamberPressure
<U4 102> // GasFlow
<U4 200> // WaferCount
<U4 201> // CurrentRecipe
>
.
S1F4 - Selected Equipment Status Data(回覆)
| 屬性 |
值 |
| 方向 |
E→H |
| 回覆對象 |
S1F3 |
| W-Bit |
非必要 |
| 多區塊 |
可能 |
訊息結構
S1F4
<L[n] // 與請求相同的 n
<SV> // SVID 1 的值
<SV> // SVID 2 的值
...
<SV> // SVID n 的值
>
.
資料項目
| 項目 |
格式 |
長度 |
說明 |
| SV |
不定 |
不定 |
狀態變數值(類型依 SV 定義而定) |
回應範例
S1F4
<L[8]
<A[14] "20250101120000"> // Clock(YYYYMMDDHHmmss)
<U1 5> // ControlState = ONLINE-REMOTE
<U1 1> // ProcessState = IDLE
<F4 23.5> // EquipmentTemp = 23.5°C
<F4 760.2> // ChamberPressure = 760.2 Torr
<F4 100.0> // GasFlow = 100.0 sccm
<U4 1250> // WaferCount = 1250
<A[20] "RECIPE_PROD_001"> // CurrentRecipe
>
.
錯誤處理
若找不到 SVID,在該位置回傳空項目:
S1F4
<L[3]
<A[14] "20250101120000"> // SVID 1:有效
<L[0]> // SVID 2:找不到(空)
<U1 1> // SVID 3:有效
>
.
S1F11 - Status Variable Namelist Request
| 屬性 |
值 |
| 方向 |
H→E |
| 回覆 |
S1F12 |
| W-Bit |
必要 |
| 多區塊 |
可能 |
訊息結構
S1F11 W
<L[n]
<SVID> // 查詢的 SVID
...
>
.
請求所有 SV 定義
S1F11 W
<L[0]> // 空 = 請求全部
.
範例 - 特定 SVID
S1F11 W
<L[4]
<U4 1> // Clock
<U4 2> // ControlState
<U4 100> // Temperature
<U4 200> // WaferCount
>
.
S1F12 - Status Variable Namelist Reply
| 屬性 |
值 |
| 方向 |
E→H |
| 回覆對象 |
S1F11 |
| W-Bit |
非必要 |
| 多區塊 |
是(通常) |
訊息結構
S1F12
<L[n]
<L[3]
<SVID> // 狀態變數 ID
<SVNAME> // 狀態變數名稱
<UNITS> // 單位
>
...
>
.
資料項目
| 項目 |
格式 |
長度 |
說明 |
| SVID |
U1/U2/U4/U8 |
1/2/4/8 |
狀態變數 ID |
| SVNAME |
A |
1-40 |
狀態變數名稱 |
| UNITS |
A |
0-20 |
計量單位(不適用時為空) |
回應範例
S1F12
<L[10]
<L[3]
<U4 1>
<A[5] "Clock">
<A[0] "">
>
<L[3]
<U4 2>
<A[12] "ControlState">
<A[0] "">
>
<L[3]
<U4 3>
<A[12] "ProcessState">
<A[0] "">
>
<L[3]
<U4 100>
<A[15] "EquipmentTemp">
<A[4] "degC">
>
<L[3]
<U4 101>
<A[15] "ChamberPressure">
<A[4] "Torr">
>
<L[3]
<U4 102>
<A[7] "GasFlow">
<A[4] "sccm">
>
<L[3]
<U4 200>
<A[10] "WaferCount">
<A[3] "pcs">
>
<L[3]
<U4 201>
<A[13] "CurrentRecipe">
<A[0] "">
>
<L[3]
<U4 202>
<A[12] "ProcessTime">
<A[3] "sec">
>
<L[3]
<U4 203>
<A[10] "LotID">
<A[0] "">
>
>
.
S1F13 - Establish Communications Request
| 屬性 |
值 |
| 方向 |
H↔E(雙向) |
| 回覆 |
S1F14 |
| W-Bit |
必要 |
| 多區塊 |
否 |
訊息結構
說明
HSMS 連線建立後交換的第一個 SECS-II 訊息。主機或設備皆可發起。
通訊流程
sequenceDiagram
participant H as Host
participant E as Equipment
Note over H,E: HSMS 連線已建立
H->>E: S1F13 W(建立通訊請求)
E-->>H: S1F14(COMMACK=0,已接受)
Note over H,E: SECS-II 通訊已建立
H->>E: S1F17 W(請求上線)
E-->>H: S1F18(ONLACK=0,已接受)
Note over H,E: 設備已上線
實作注意事項
關鍵訊息
- 必須是 HSMS Select.req/rsp 後的第一個 SECS-II 訊息
- 主機和設備都應準備好接收 S1F13
- 若在 T3 逾時內未收到回應,應重試
S1F14 - Establish Communications Acknowledge
| 屬性 |
值 |
| 方向 |
H↔E(雙向) |
| 回覆對象 |
S1F13 |
| W-Bit |
非必要 |
| 多區塊 |
否 |
訊息結構
S1F14
<L[2]
<COMMACK> // 通訊確認碼
<L[2]
<MDLN> // 設備機型
<SOFTREV> // 軟體版本
>
>
.
資料項目
| 項目 |
格式 |
長度 |
說明 |
| COMMACK |
B |
1 |
通訊確認碼 |
| MDLN |
A |
1-20 |
設備機型 |
| SOFTREV |
A |
1-20 |
軟體版本 |
COMMACK 值
| 值 |
名稱 |
說明 |
| 0x00 |
OK |
通訊已接受 |
| 0x01 |
DENIED |
拒絕,通訊未就緒 |
| 0x02 |
BUSY |
已與其他主機通訊中 |
範例 - 已接受
S1F14
<L[2]
<B[1] 0x00> // COMMACK = 已接受
<L[2]
<A[12] "GST-PNL-2000"> // 機型
<A[8] "V2.1.045"> // 版本
>
>
.
範例 - 拒絕
S1F14
<L[2]
<B[1] 0x01> // COMMACK = 拒絕
<L[2]
<A[0] ""> // 拒絕時無機型資訊
<A[0] "">
>
>
.
S1F15 - Request Off-Line
| 屬性 |
值 |
| 方向 |
H→E |
| 回覆 |
S1F16 |
| W-Bit |
必要 |
| 多區塊 |
否 |
訊息結構
說明
主機請求設備從 ONLINE 轉換至 OFFLINE 狀態。
狀態轉換
ONLINE-LOCAL ──┐
├──► S1F15 ──► OFFLINE
ONLINE-REMOTE ─┘
S1F16 - Off-Line Acknowledge
| 屬性 |
值 |
| 方向 |
E→H |
| 回覆對象 |
S1F15 |
| W-Bit |
非必要 |
| 多區塊 |
否 |
訊息結構
資料項目
| 項目 |
格式 |
長度 |
說明 |
| OFLACK |
B |
1 |
離線確認碼 |
OFLACK 值
範例
S1F16
<B[1] 0x00> // OFLACK = 已接受
.
S1F17 - Request On-Line
| 屬性 |
值 |
| 方向 |
H→E |
| 回覆 |
S1F18 |
| W-Bit |
必要 |
| 多區塊 |
否 |
訊息結構
說明
主機請求設備從 OFFLINE 轉換至 ONLINE 狀態。若接受,設備轉換至 ONLINE-REMOTE。
狀態轉換
OFFLINE ──► S1F17 ──► ONLINE-REMOTE
S1F18 - On-Line Acknowledge
| 屬性 |
值 |
| 方向 |
E→H |
| 回覆對象 |
S1F17 |
| W-Bit |
非必要 |
| 多區塊 |
否 |
訊息結構
資料項目
| 項目 |
格式 |
長度 |
說明 |
| ONLACK |
B |
1 |
上線確認碼 |
ONLACK 值
| 值 |
名稱 |
說明 |
| 0x00 |
OK |
上線轉換已接受 |
| 0x01 |
ALREADY |
設備已上線 |
| 0x02 |
NOT_READY |
設備未就緒(互鎖、維護) |
範例 - 已接受
S1F18
<B[1] 0x00> // ONLACK = 已接受
.
範例 - 未就緒
S1F18
<B[1] 0x02> // ONLACK = 未就緒
.
錯誤情境
| 情境 |
ONLACK |
處理方式 |
| 正常轉換 |
0x00 |
設備現在為 ONLINE-REMOTE |
| 已上線 |
0x01 |
無狀態變更 |
| 維護模式 |
0x02 |
先解除維護 |
| 安全互鎖 |
0x02 |
先解除互鎖 |
實作檢查清單
| 功能 |
必要 |
備註 |
| S1F1/F2 支援 |
✓ |
心跳驗證 |
| S1F3/F4 支援 |
✓ |
狀態變數請求 |
| S1F11/F12 支援 |
✓ |
SV 定義查詢 |
| S1F13/F14 支援 |
✓ |
通訊建立 |
| S1F15/F16 支援 |
✓ |
離線轉換 |
| S1F17/F18 支援 |
✓ |
上線轉換 |
| 多區塊 S1F4 |
○ |
請求多個 SV 時 |
| T3 逾時處理 |
✓ |
回覆逾時 |
| COMMACK 錯誤處理 |
✓ |
通訊拒絕 |
| ONLACK 錯誤處理 |
✓ |
上線拒絕 |
相關訊息
- S2F13/F14 - Equipment Constant Request
- S6F11/F12 - Event Report Send
- S5F1/F2 - Alarm Report Send