SECS/GEM (HSMS) — 半導体 / ディスプレイ fab
SECS/GEM は、半導体 / ディスプレイ fab の装置 (tool) とホスト (MES / EAP) 間の標準通信です。メッセージは SECS-II で定義され、イーサネット上では HSMS (High-Speed SECS Message Services) TCP/IP で伝送されます。
ゲートウェイの SECS/GEM ドライバは、HSMS Select handshake + バックグラウンド Linktest + 非同期 reply マッチング + SECS-II item codec (L / A / B / U1U8 / I1I8 / F4 / F8) の上で read (S<n>F<m>) / write (S2F41 host command、HCACK 検証) を提供します。
装置ごとの GEM シーケンス — S1F13/F14 establish、S6 event reports、S5 alarms、control state model、spool — が追加で必要な場合は 開発チームへお問い合わせ ください。
登録フォームの入力値
| 入力欄 | 何を入力するか | 例 |
|---|---|---|
| IP アドレス | 装置 (tool) の HSMS IP | 192.168.0.140 |
| ポート | HSMS ポート | 5000 (よく使われる) |
| Device ID | SECS device ID | 0 (よく使われる) |
| Mode | passive / active | active (ゲートウェイが connect 側) |
| T3 / T5 / T6 / T7 / T8 | HSMS タイムアウト (ms) | デフォルト値の使用を推奨 |
SECS/GEM 標準では host (MES / ゲートウェイ) が passive で listen し、tool が connect する構成が推奨されますが、現場の事情により active でゲートウェイが connect する環境の方が多いです。tool 側の設定に合わせてください。
タグの PLC アドレス表記
ゲートウェイでは SECS-II メッセージを S<n>F<m> 形式で入力します。n=stream、m=function。
| 表記 | 意味 |
|---|---|
S1F1 | Are You There — 通信が生きているかの ping |
S1F3 | Selected Equipment Status Request |
S1F11 | Status Variable Namelist Request |
S2F13 | Equipment Constant Request |
S2F41 | Host Command Send (write — start/stop など) |
S5F1 | Alarm Report |
S6F11 | Event Report Send |
読み取りメッセージ (S1F3、S1F11 など) は、応答がそのまま値になります。
応答から特定の値を取り出す
応答が SECS-II list 形式の場合、S1F4[0]、S1F4[2].[1] のようにインデックスで取り出せます。
| 表記 | 意味 |
|---|---|
S1F4[0] | S1F4 応答 list の 0 番目 |
S6F12[1].[3] | S6F12 nested list の [1][3] |
データ形式のマッチング
SECS-II の item code と対応します。
| SECS-II タイプ | 意味 | データ形式 | 形式補助 |
|---|---|---|---|
| L | List (再帰) | (インデックスで展開して使用) | — |
| A | ASCII | String | (空欄) |
| B | Binary | String | (空欄) |
| BOOLEAN | Boolean | Boolean | (空欄) |
| U1/U2/U4 | Unsigned 1/2/4 byte | Integer | UI/UDW |
| U8 | Unsigned 8 byte | Long | (空欄) |
| I1/I2/I4 | Signed 1/2/4 byte | Integer | (空欄)/DW |
| F4 | Float 32-bit | Float | REAL |
| F8 | Float 64-bit | Double | LREAL |
書き込み (Write) のサポート
S2F41 (Host Command Send) で装置に命令を送れます。
| 表記 | 意味 |
|---|---|
S2F41 | Host Command Send (RCMD = "START" / "STOP" / "PP-SELECT" など) |
S2F49 | Enhanced Remote Command |
値は 命令名 (RCMD) + パラメータ list の形式で送信します。詳細なフォーマットは装置マニュアルの SEMI 標準仕様を参照してください。
S2F41 の START / STOP は 実際の装置動作 を引き起こします。稼働中の fab では必ず EAP / MES チームと協議のうえ使用してください。
よくある問題と解決
| 症状 | 考えられる原因 | 解決 |
|---|---|---|
| 「Select.rsp not received」 | active/passive の不一致 | tool 側の GEM 設定を確認 |
| 「Linktest timeout」 | ファイアウォール | T6 (linktest) を延長しても解決しない場合はネットワークを点検 |
| 「Communication not established (S1F13)」 | 一部の装置は S1F13/F14 establish sequence を先に要求する | 装置側 GEM 設定で自動 establish オプションを有効化、または S1F1 / S1F3 などで raw 通信 |
| 応答のデコード失敗 | nested list の深さの誤り | 応答を raw で受け取り、SECS-II デコーダで別途パースする |
よく使う SECS メッセージの詳細
S1F1 / S1F2 — Are You There (ping)
| メッセージ | 方向 | 意味 |
|---|---|---|
| S1F1 | host → tool | 「生きているか?」 — 空メッセージ |
| S1F2 | tool → host | 「MDLN, SOFTREV」応答 (装置モデル名 + ファームウェア) |
S1F3 / S1F4 — Selected Equipment Status Request (SVID 読み取り)
S1F3 の body は SVID list。応答 S1F4 は同じ順序の値 list です。
| 表記 | 意味 |
|---|---|
S1F3 (body=L,1.<U4 100>) | SVID 100 (CassetteCount など) の読み取り |
S1F4[0] | 応答 list の 0 番目 (= SVID 100 の値) |
S2F41 — Host Command Send (write — 装置動作)
| RCMD | 意味 |
|---|---|
START | 加工開始 |
STOP | 加工停止 |
ABORT | 即時中断 |
PP-SELECT | Process Program の選択 (CPNAME=PPID、CPVAL=プログラム名) |
PAUSE / RESUME | 一時停止 / 再開 |
S6F11 / S6F12 — Event Report Send (CEID 単位)
装置がイベント発生時に自ら host へ push します。CEID (Collection Event ID) ごとにまとめて送られてきます。
| フィールド | 意味 |
|---|---|
| DATAID | イベント通し番号 |
| CEID | Collection Event ID (例: 21=ProcessStarted) |
| RPTID list | レポート ID ごとの nested data |
PlantPulse は応答 raw をそのまま受け取るため、S6F11[0]、S6F11[1] のようにインデックス抽出したうえで 計算式 で後処理します。
S5F1 / S5F2 — Alarm Report
| フィールド | 意味 |
|---|---|
| ALCD | Alarm Code (1 byte: bit7=set/clear、bit0~6=category) |
| ALID | Alarm ID |
| ALTX | Alarm text (人が読むメッセージ) |
よく使う運用パターン
パターン 1. fab tool のヘルスモニタリング (ping + 状態)
| タグ名 | アドレス | 形式 | 備考 |
|---|---|---|---|
| Ping | S1F1 | (応答の有無) | timecycle 30s |
| モデル名 | S1F4[0] | String | (S1F3 SVID=MDLN) |
| 加工状態 | S1F4[1] | Integer | (S1F3 SVID=ControlState) |
パターン 2. 結果データの収集 (S6F11)
装置側 GEM 設定で「EventReport on PROCESSEND」を有効化 → S6F11 で push されます。PlantPulse が active mode で connect した後、応答 raw を収集 → 後処理パイプラインで SECS-II デコーダ (例: secsgem-py) によりパースします。
パターン 3. Pset / Recipe の切り替え (S2F41)
S2F41 RCMD="PP-SELECT" CPNAME="PPID" CPVAL="RECIPE_AB100"
実際の fab では S2F41 は装置動作を引き起こします。必ず EAP / MES チームと協議のうえ、装置が idle 状態のときのみ使用してください。
次のステップ
- SEMI E5 (SECS-II) / E37 (HSMS) / E30 (GEM) の標準文書を参照してください。
- 本格的な GEM 統合 (event reporting、control state、recipe) が必要な場合は 開発チームへお問い合わせ ください。
- 高度な内容 — REST API の SECS/GEM 例を参照してください。