SECS/GEM (HSMS) — Halbleiter- / Display-Fab
SECS/GEM ist die Standardkommunikation zwischen Anlagen (Tools) in Halbleiter- / Display-Fabs und dem Host (MES / EAP). Die Nachrichten sind über SECS-II definiert und werden über Ethernet mittels HSMS (High-Speed SECS Message Services) über TCP/IP übertragen.
Der SECS/GEM-Treiber des Gateways bietet auf Basis von HSMS Select Handshake + Linktest im Hintergrund + asynchronem Reply-Matching + SECS-II Item-Codec (L / A / B / U1U8 / I1I8 / F4 / F8) Lesen (S<n>F<m>) und Schreiben (S2F41 Host Command, HCACK-Prüfung).
Falls zusätzlich anlagenspezifische GEM-Sequenzen — S1F13/F14 Establish, S6 Event Reports, S5 Alarms, Control State Model, Spool — benötigt werden, wenden Sie sich bitte an die Entwicklungsabteilung.
Eingabewerte im Registrierungsformular
| Eingabefeld | Was wird eingetragen | Beispiel |
|---|---|---|
| IP-Adresse | HSMS-IP der Anlage (Tool) | 192.168.0.140 |
| Port | HSMS-Port | 5000 (gebräuchlich) |
| Device ID | SECS Device ID | 0 (gebräuchlich) |
| Mode | passive / active | active (Gateway ist die verbindende Seite) |
| T3 / T5 / T6 / T7 / T8 | HSMS-Timeouts (ms) | Standardwerte empfohlen |
Nach SECS/GEM-Standard wird empfohlen, dass der Host (MES / Gateway) passive lauscht und das Tool die Verbindung aufbaut. In der Praxis ist jedoch häufiger anzutreffen, dass das Gateway im Modus active die Verbindung aufbaut. Richten Sie sich nach der Konfiguration auf Tool-Seite.
PLC-Adressnotation der Tags
Im Gateway werden SECS-II-Nachrichten im Format S<n>F<m> eingegeben. n=Stream, m=Function.
| Notation | Bedeutung |
|---|---|
S1F1 | Are You There — Ping, ob die Kommunikation aktiv ist |
S1F3 | Selected Equipment Status Request |
S1F11 | Status Variable Namelist Request |
S2F13 | Equipment Constant Request |
S2F41 | Host Command Send (Schreiben — Start/Stop usw.) |
S5F1 | Alarm Report |
S6F11 | Event Report Send |
Bei Lesenachrichten (S1F3, S1F11 usw.) ist die Antwort unmittelbar der Wert.
Bestimmte Werte aus der Antwort auswählen
Liegt die Antwort als SECS-II-Liste vor, lässt sich ein Element per Index wie S1F4[0] oder S1F4[2].[1] entnehmen.
| Notation | Bedeutung |
|---|---|
S1F4[0] | Element 0 der S1F4-Antwortliste |
S6F12[1].[3] | [1][3] der verschachtelten S6F12-Liste |
Zuordnung der Datenformate
Die Zuordnung erfolgt zu den Item Codes von SECS-II.
| SECS-II-Typ | Bedeutung | Datenformat | Formathilfe |
|---|---|---|---|
| L | List (rekursiv) | (per Index aufgelöst verwenden) | — |
| A | ASCII | String | (leer lassen) |
| B | Binary | String | (leer lassen) |
| BOOLEAN | Boolean | Boolean | (leer lassen) |
| U1/U2/U4 | Unsigned 1/2/4 Byte | Integer | UI/UDW |
| U8 | Unsigned 8 Byte | Long | (leer lassen) |
| I1/I2/I4 | Signed 1/2/4 Byte | Integer | (leer lassen)/DW |
| F4 | Float 32-Bit | Float | REAL |
| F8 | Float 64-Bit | Double | LREAL |
Schreibunterstützung (Write)
Mit S2F41 (Host Command Send) können Befehle an die Anlage gesendet werden.
| Notation | Bedeutung |
|---|---|
S2F41 | Host Command Send (RCMD = "START" / "STOP" / "PP-SELECT" usw.) |
S2F49 | Enhanced Remote Command |
Der Wert wird als Befehlsname (RCMD) + Parameterliste gesendet. Details zum Format finden Sie in der SEMI-Standardspezifikation im Anlagenhandbuch.
START / STOP von S2F41 lösen reale Anlagenaktionen aus. Setzen Sie diese in produktiven Fabs nur nach Abstimmung mit dem EAP-/MES-Team ein.
Häufige Probleme und Lösungen
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| „Select.rsp not received“ | active/passive stimmen nicht überein | GEM-Einstellungen auf Tool-Seite prüfen |
| „Linktest timeout“ | Firewall | Hilft ein Erhöhen von T6 (Linktest) nicht, Netzwerk prüfen |
| „Communication not established (S1F13)“ | Manche Anlagen verlangen zuerst die Establish-Sequenz S1F13/F14 | In den GEM-Einstellungen der Anlage automatisches Establish aktivieren oder Rohkommunikation über S1F1 / S1F3 |
| Dekodierung der Antwort schlägt fehl | Falsche Tiefe der verschachtelten Liste | Antwort roh empfangen und separat mit einem SECS-II-Decoder parsen |
Häufig genutzte SECS-Nachrichten im Detail
S1F1 / S1F2 — Are You There (Ping)
| Nachricht | Richtung | Bedeutung |
|---|---|---|
| S1F1 | Host → Tool | „Bist du da?“ — leere Nachricht |
| S1F2 | Tool → Host | Antwort „MDLN, SOFTREV“ (Anlagenmodell + Firmware) |
S1F3 / S1F4 — Selected Equipment Status Request (SVID lesen)
Der Body von S1F3 ist eine SVID-Liste. Die Antwort S1F4 ist eine Werteliste in derselben Reihenfolge.
| Notation | Bedeutung |
|---|---|
S1F3 (body=L,1.<U4 100>) | SVID 100 (z. B. CassetteCount) lesen |
S1F4[0] | Element 0 der Antwortliste (= Wert von SVID 100) |
S2F41 — Host Command Send (Schreiben — Anlagenaktion)
| RCMD | Bedeutung |
|---|---|
START | Bearbeitung starten |
STOP | Bearbeitung stoppen |
ABORT | Sofortiger Abbruch |
PP-SELECT | Process Program auswählen (CPNAME=PPID, CPVAL=Programmname) |
PAUSE / RESUME | Pause / Fortsetzen |
S6F11 / S6F12 — Event Report Send (pro CEID)
Die Anlage sendet bei Auftreten eines Ereignisses selbsttätig einen Push an den Host. Die Daten sind nach CEID (Collection Event ID) gebündelt.
| Feld | Bedeutung |
|---|---|
| DATAID | Laufende Ereignisnummer |
| CEID | Collection Event ID (z. B. 21=ProcessStarted) |
| RPTID list | Pro Report-ID verschachtelte Daten |
PlantPulse empfängt die Antwort roh; extrahieren Sie daher per Index wie S6F11[0] oder S6F11[1] und verarbeiten Sie anschließend mit einer Formel nach.
S5F1 / S5F2 — Alarm Report
| Feld | Bedeutung |
|---|---|
| ALCD | Alarm Code (1 Byte: Bit7=set/clear, Bit0~6=Kategorie) |
| ALID | Alarm ID |
| ALTX | Alarmtext (für Menschen lesbare Meldung) |
Häufig genutzte Betriebsmuster
Muster 1. Health-Monitoring eines Fab-Tools (Ping + Status)
| Tag-Name | Adresse | Format | Hinweis |
|---|---|---|---|
| Ping | S1F1 | (Antwort vorhanden/nicht) | timecycle 30s |
| Modellname | S1F4[0] | String | (S1F3 SVID=MDLN) |
| Bearbeitungsstatus | S1F4[1] | Integer | (S1F3 SVID=ControlState) |
Muster 2. Ergebnisdaten erfassen (S6F11)
In den GEM-Einstellungen der Anlage „EventReport on PROCESSEND“ aktivieren → Push per S6F11. PlantPulse verbindet sich im Active Mode, erfasst die Antwort roh → Parsen in der Nachverarbeitungs-Pipeline mit einem SECS-II-Decoder (z. B. secsgem-py).
Muster 3. Pset- / Recipe-Umschaltung (S2F41)
S2F41 RCMD="PP-SELECT" CPNAME="PPID" CPVAL="RECIPE_AB100"
In einer produktiven Fab löst S2F41 Anlagenaktionen aus. Unbedingt mit dem EAP-/MES-Team abstimmen und nur im tatsächlichen Idle-Zustand der Anlage verwenden.
Nächste Schritte
- Siehe die Standarddokumente SEMI E5 (SECS-II) / E37 (HSMS) / E30 (GEM).
- Für eine vollwertige GEM-Integration (Event Reporting, Control State, Recipe) wenden Sie sich an die Entwicklungsabteilung.
- Siehe die SECS/GEM-Beispiele unter Erweitert — REST API.