メインコンテンツまでスキップ

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 IP192.168.0.140
ポートHSMS ポート5000(よく使われる)
Device IDSECS device ID0(よく使われる)
Modepassive / activeactive(ゲートウェイが connect 側)
T3 / T5 / T6 / T7 / T8HSMS タイムアウト(ms)デフォルト値使用推奨
active vs passive

SECS/GEM 標準では host(MES / ゲートウェイ)が passive で listen し tool が connect するのが推奨ですが、現場の事情により active でゲートウェイが connect する環境がより多くあります。tool 側の設定に合わせてください。


タグの PLC アドレス表記​

ゲートウェイでは SECS-II メッセージを S<n>F<m> 形式で入力します。n=stream、m=function。

表記意味
S1F1Are You There — 通信が生きているか ping
S1F3Selected Equipment Status Request
S1F11Status Variable Namelist Request
S2F13Equipment Constant Request
S2F41Host Command Send(write — start/stop など)
S5F1Alarm Report
S6F11Event 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 タイプ意味データ形式形式補助
LList(再帰)(インデックスで展開して使用)—
AASCIIString(空)
BBinaryString(空)
BOOLEANBooleanBoolean(空)
U1/U2/U4Unsigned 1/2/4 byteIntegerUI/UDW
U8Unsigned 8 byteLong(空)
I1/I2/I4Signed 1/2/4 byteInteger(空)/DW
F4Float 32-bitFloatREAL
F8Float 64-bitDoubleLREAL

書き込み(Write)サポート​

S2F41(Host Command Send)で設備にコマンドを送信できます。

表記意味
S2F41Host Command Send(RCMD = "START" / "STOP" / "PP-SELECT" など)
S2F49Enhanced Remote Command

値は コマンド名(RCMD)+ パラメータ list 形式で送信します。詳細なフォーマットは設備マニュアルの SEMI 標準仕様を参照。

fab 運用影響

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)​

メッセージ方向意味
S1F1host → tool"生きているか?" — 空メッセージ
S1F2tool → 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-SELECTProcess Program 選択(CPNAME=PPID、CPVAL=プログラム名)
PAUSE / RESUME一時停止 / 再開

S6F11 / S6F12 — Event Report Send(CEID 単位)​

設備が自発的にイベント発生時に host へ push。CEID(Collection Event ID)ごとにまとめて届きます。

フィールド意味
DATAIDイベント連番
CEIDCollection Event ID(例: 21=ProcessStarted)
RPTID listレポート ID ごとの nested data

PlantPulse は応答 raw をそのまま受け取るため、S6F11[0]、S6F11[1] のようにインデックス抽出後に 計算式 で後処理。

S5F1 / S5F2 — Alarm Report​

フィールド意味
ALCDAlarm Code(1 byte: bit7=set/clear、bit0~6=category)
ALIDAlarm ID
ALTXAlarm text(人が読むメッセージ)

よく使う運用パターン​

パターン 1. fab tool ヘルスモニタリング(ping + 状態)​

タグ名アドレス形式備考
PingS1F1(応答有無)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 例を参照。