Skip to main content

SECS/GEM (HSMS) — Semiconductor / Display Fab

SECS/GEM is the standard communication between tools and the host (MES / EAP) in semiconductor and display fabs. Messages are defined in SECS-II and, over Ethernet, transported by HSMS (High-Speed SECS Message Services) on TCP/IP.

Operations Guide

The gateway's SECS/GEM driver provides read (S<n>F<m>) and write (S2F41 host command, with HCACK verification) on top of an HSMS Select handshake + background Linktest + asynchronous reply matching + SECS-II item codec (L / A / B / U1–U8 / I1–I8 / F4 / F8). If you additionally need tool-specific GEM sequences — S1F13/F14 establish, S6 event reports, S5 alarms, control state model, spool — please contact the development team.


Registration Form Entries

FieldWhat to enterExample
IP addressHSMS IP of the tool192.168.0.140
PortHSMS port5000 (commonly used)
Device IDSECS device ID0 (commonly used)
Modepassive / activeactive (gateway is the connecting side)
T3 / T5 / T6 / T7 / T8HSMS timeouts (ms)Defaults recommended
active vs passive

The SECS/GEM standard recommends that the host (MES / gateway) listen in passive mode while the tool connects, but in practice many field installations have the gateway connect in active mode. Match the tool-side setting.


PLC Address Notation for Tags

In the gateway, SECS-II messages are entered in the S<n>F<m> format, where n=stream and m=function.

NotationMeaning
S1F1Are You There — ping to check whether communication is alive
S1F3Selected Equipment Status Request
S1F11Status Variable Namelist Request
S2F13Equipment Constant Request
S2F41Host Command Send (write — start/stop, etc.)
S5F1Alarm Report
S6F11Event Report Send

For read messages (S1F3, S1F11, etc.), the response itself becomes the value.

Picking a Specific Value out of a Response

If the response is a SECS-II list, you can extract elements by index, as in S1F4[0] or S1F4[2].[1].

NotationMeaning
S1F4[0]Element 0 of the S1F4 response list
S6F12[1].[3]Element [1][3] of the S6F12 nested list

Data Format Matching

These map to SECS-II item codes.

SECS-II typeMeaningData formatFormat modifier
LList (recursive)(expand by index)
AASCIIString(leave empty)
BBinaryString(leave empty)
BOOLEANBooleanBoolean(leave empty)
U1/U2/U4Unsigned 1/2/4 byteIntegerUI/UDW
U8Unsigned 8 byteLong(leave empty)
I1/I2/I4Signed 1/2/4 byteInteger(leave empty)/DW
F4Float 32-bitFloatREAL
F8Float 64-bitDoubleLREAL

Write Support

You can issue commands to the tool with S2F41 (Host Command Send).

NotationMeaning
S2F41Host Command Send (RCMD = "START" / "STOP" / "PP-SELECT", etc.)
S2F49Enhanced Remote Command

Values are sent as a command name (RCMD) + parameter list. For the exact format, refer to the SEMI standard specification in the tool manual.

Impact on Fab Operations

START / STOP in S2F41 trigger actual tool behavior. In a production fab, always coordinate with the EAP / MES team before using them.


Common Problems and Solutions

SymptomPossible causeSolution
"Select.rsp not received"active/passive mismatchCheck the tool-side GEM settings
"Linktest timeout"FirewallIf increasing T6 (linktest) does not help, inspect the network
"Communication not established (S1F13)"Some tools require the S1F13/F14 establish sequence firstEnable the auto-establish option in the tool-side GEM settings, or use raw communication such as S1F1 / S1F3
Response decoding failureWrong nested list depthReceive the response as raw and parse it separately with a SECS-II decoder

Common SECS Messages in Detail

S1F1 / S1F2 — Are You There (ping)

MessageDirectionMeaning
S1F1host → tool"Are you alive?" — empty message
S1F2tool → host"MDLN, SOFTREV" response (tool model name + firmware)

S1F3 / S1F4 — Selected Equipment Status Request (reading SVIDs)

The body of S1F3 is an SVID list. The S1F4 response is a value list in the same order.

NotationMeaning
S1F3 (body=L,1.<U4 100>)Read SVID 100 (e.g., CassetteCount)
S1F4[0]Element 0 of the response list (= value of SVID 100)

S2F41 — Host Command Send (write — tool operation)

RCMDMeaning
STARTStart processing
STOPStop processing
ABORTImmediate abort
PP-SELECTSelect Process Program (CPNAME=PPID, CPVAL=program name)
PAUSE / RESUMEPause / resume

S6F11 / S6F12 — Event Report Send (per CEID)

The tool pushes to the host on its own when an event occurs. Reports arrive grouped by CEID (Collection Event ID).

FieldMeaning
DATAIDEvent serial number
CEIDCollection Event ID (e.g., 21=ProcessStarted)
RPTID listNested data per report ID

PlantPulse receives the raw response as-is, so extract by index — for example S6F11[0] or S6F11[1] — and post-process with a formula.

S5F1 / S5F2 — Alarm Report

FieldMeaning
ALCDAlarm Code (1 byte: bit7=set/clear, bit0–6=category)
ALIDAlarm ID
ALTXAlarm text (human-readable message)

Common Operating Patterns

Pattern 1. Fab Tool Health Monitoring (ping + status)

Tag nameAddressFormatNotes
PingS1F1(response present or not)timecycle 30s
Model nameS1F4[0]String(S1F3 SVID=MDLN)
Processing stateS1F4[1]Integer(S1F3 SVID=ControlState)

Pattern 2. Result Data Collection (S6F11)

Enable "EventReport on PROCESSEND" in the tool-side GEM settings → the tool pushes S6F11. PlantPulse connects in active mode and collects the raw response → parse it 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"
Operational Impact

In a real fab, S2F41 triggers tool operation. Always coordinate with the EAP / MES team and use it only while the tool is actually idle.


Next Steps

  • Refer to the SEMI E5 (SECS-II) / E37 (HSMS) / E30 (GEM) standard documents.
  • If you need full GEM integration (event reporting, control state, recipe), contact the development team.
  • See the SECS/GEM examples in Advanced — REST API.