SECS/GEM HSMS(半導体/ディスプレイ)
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 例を参照。