SECS/GEM HSMS (Semiconductor / Display)
SECS/GEM is the standard communication between semiconductor/display fab equipment (tools) and hosts (MES/EAP). Messages are defined in SECS-II and transmitted over Ethernet using HSMS (High-Speed SECS Message Services) TCP/IP.
The gateway's SECS/GEM driver provides read (S<n>F<m>) and write (S2F41 host command, with HCACK verification) over HSMS Select handshake + background Linktest + asynchronous reply matching + SECS-II item codec (L / A / B / U1U8 / I1I8 / F4 / F8).
If equipment-specific GEM sequences — S1F13/F14 establish, S6 event reports, S5 alarms, control state model, spool — are additionally required, please contact the development team.
Registration Form Input Values
| Input Field | What to Enter | Example |
|---|---|---|
| IP Address | HSMS IP of the equipment (tool) | 192.168.0.140 |
| Port | HSMS port | 5000 (commonly used) |
| Device ID | SECS device ID | 0 (commonly used) |
| Mode | passive / active | active (gateway is the connecting side) |
| T3 / T5 / T6 / T7 / T8 | HSMS timeouts (ms) | Defaults recommended |
Per the SECS/GEM standard, it is recommended that the host (MES/gateway) listens as passive and the tool connects. However, depending on field conditions, more environments have the gateway connecting in active mode. Match the tool's configuration.
PLC Address Notation for Tags
In the gateway, SECS-II messages are entered in S<n>F<m> format. n=stream, m=function.
| Notation | Meaning |
|---|---|
S1F1 | Are You There — ping to check if communication is alive |
S1F3 | Selected Equipment Status Request |
S1F11 | Status Variable Namelist Request |
S2F13 | Equipment Constant Request |
S2F41 | Host Command Send (write — start/stop, etc.) |
S5F1 | Alarm Report |
S6F11 | Event Report Send |
For read messages (S1F3, S1F11, etc.), the response becomes the value directly.
Extracting Specific Values from Responses
If the response is a SECS-II list, you can extract values using indices like S1F4[0], S1F4[2].[1].
| Notation | Meaning |
|---|---|
S1F4[0] | 0th element of S1F4 response list |
S6F12[1].[3] | S6F12 nested list [1][3] |
Data Type Matching
Matches the SECS-II item code.
| SECS-II Type | Meaning | Data Type | Type Modifier |
|---|---|---|---|
| L | List (recursive) | (used expanded via indices) | — |
| A | ASCII | String | (empty) |
| B | Binary | String | (empty) |
| BOOLEAN | Boolean | Boolean | (empty) |
| U1/U2/U4 | Unsigned 1/2/4 byte | Integer | UI/UDW |
| U8 | Unsigned 8 byte | Long | (empty) |
| I1/I2/I4 | Signed 1/2/4 byte | Integer | (empty)/DW |
| F4 | Float 32-bit | Float | REAL |
| F8 | Float 64-bit | Double | LREAL |
Write Support
Commands can be sent to the equipment using S2F41 (Host Command Send).
| Notation | Meaning |
|---|---|
S2F41 | Host Command Send (RCMD = "START"/"STOP"/"PP-SELECT", etc.) |
S2F49 | Enhanced Remote Command |
Values are sent in the form of command name (RCMD) + parameter list. For detailed format, refer to the SEMI standard specification in the equipment manual.
START/STOP via S2F41 trigger actual equipment operations. In a production fab, always coordinate with the EAP/MES team before use.
Common Issues and Solutions
| Symptom | Possible Cause | Solution |
|---|---|---|
| "Select.rsp not received" | active/passive mismatch | Check the tool's GEM configuration |
| "Linktest timeout" | Firewall | If increasing T6 (linktest) doesn't help, inspect the network |
| "Communication not established (S1F13)" | Some equipment requires the S1F13/F14 establish sequence first | Enable auto-establish option in the tool's GEM settings, or use raw communication via S1F1/S1F3, etc. |
| Response decoding failure | Nested list depth error | Receive the raw response and parse it separately using a SECS-II decoder |
Frequently Used SECS Messages in More Detail
S1F1 / S1F2 — Are You There (ping)
| Message | Direction | Meaning |
|---|---|---|
| S1F1 | host → tool | "Are you alive?" — empty message |
| S1F2 | tool → host | "MDLN, SOFTREV" response (equipment model name + firmware) |
S1F3 / S1F4 — Selected Equipment Status Request (reading SVID)
The body of S1F3 is a list of SVIDs. The response S1F4 is a list of values in the same order.
| Notation | Meaning |
|---|---|
S1F3 (body=L,1.<U4 100>) | Read SVID 100 (e.g., CassetteCount) |
S1F4[0] | 0th element of the response list (= value of SVID 100) |
S2F41 — Host Command Send (write — equipment operation)
| RCMD | Meaning |
|---|---|
START | Start processing |
STOP | Stop processing |
ABORT | Immediate abort |
PP-SELECT | Select Process Program (CPNAME=PPID, CPVAL=program name) |
PAUSE / RESUME | Pause / Resume |
S6F11 / S6F12 — Event Report Send (by CEID)
The equipment pushes to the host on its own when events occur. Reports are grouped by CEID (Collection Event ID).
| Field | Meaning |
|---|---|
| DATAID | Event sequence number |
| CEID | Collection Event ID (e.g., 21=ProcessStarted) |
| RPTID list | Nested data per report ID |
Since PlantPulse receives the raw response, extract using indices like S6F11[0], S6F11[1], and then post-process with formulas.
S5F1 / S5F2 — Alarm Report
| Field | Meaning |
|---|---|
| ALCD | Alarm Code (1 byte: bit7=set/clear, bit0~6=category) |
| ALID | Alarm ID |
| ALTX | Alarm text (human-readable message) |
Frequently Used Operating Patterns
Pattern 1. Fab Tool Health Monitoring (ping + status)
| Tag Name | Address | Type | Notes |
|---|---|---|---|
| Ping | S1F1 | (response presence) | timecycle 30s |
| Model Name | S1F4[0] | String | (S1F3 SVID=MDLN) |
| Processing Status | S1F4[1] | Integer | (S1F3 SVID=ControlState) |
Pattern 2. Result Data Collection (S6F11)
Enable "EventReport on PROCESSEND" in the tool's GEM settings → pushed via S6F11. PlantPulse connects in active mode, collects raw responses → parses them with a SECS-II decoder (e.g., secsgem-py) in the post-processing pipeline.
Pattern 3. Pset / Recipe Switching (S2F41)
S2F41 RCMD="PP-SELECT" CPNAME="PPID" CPVAL="RECIPE_AB100"
In a real fab, S2F41 causes equipment operations. Always coordinate with the EAP/MES team and only use while the actual equipment is idle.
Next Steps
- Refer to the SEMI E5 (SECS-II) / E37 (HSMS) / E30 (GEM) standard documents.
- For full GEM integration (event reporting, control state, recipe), please contact the development team.
- See the SECS/GEM examples in Advanced — REST API.