secs_sparkplug_b_integration_guide

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
secs_sparkplug_b_integration_guide [2025/05/06 17:15]
amyw [STARTED Event → Polling Initiation]
secs_sparkplug_b_integration_guide [2025/05/06 18:35] (current)
wikiadmin
Line 23: Line 23:
 ===== Project Summary ===== ===== Project Summary =====
  
-TransSECS bridges legacy SECS/GEM automation with modern Sparkplug B IIoT ecosystems.+TransSECS bridges SECS/GEM automation with modern Sparkplug B IIoT ecosystems.
 By treating a GEM host as a Sparkplug node and every GEM interaction (messages, traces, polls, reports) as separate devices, the project delivers: By treating a GEM host as a Sparkplug node and every GEM interaction (messages, traces, polls, reports) as separate devices, the project delivers:
  
Line 88: Line 88:
 ===== Good Host Commands ===== ===== Good Host Commands =====
  
- Flow – the host sends PP-SELECT (DCMD/GEMHost/HostCommandPPSELECT, "sendMessage=true") → TransSECS forwards S2F41 W → the tool replies S2F42 ("HCACK 0").+ Flow – the host sends PP-SELECT (DCMD/GEMHost/HostCommandPPSELECT, ''sendMessage=true'') → TransSECS forwards S2F41 W → the tool replies S2F42 (''HCACK 0'').
  
  Sparkplug updates:  Sparkplug updates:
  
-     * The driver immediately publishes a "DDATA/…/HostCommandPPSELECTecho with "sendMessage=falseto show the command as sent.+     * The driver immediately publishes a ''DDATA/…/HostCommandPPSELECT'' echo with ''sendMessage=false'' to show the command as sent.
   *    * 
-  *    The tool’s S2F42 is translated to "DDATA/…/HostCommandReplywhere "HCACK=0indicates success.+  *    The tool’s S2F42 is translated to ''DDATA/…/HostCommandReply'' where ''HCACK=0'' indicates success.
                
- Parameters – "LOTIDParamValueand "PPIDParamValueappear exactly as entered by the host; on success they are echoed back unchanged.+ Parameters – ''LOTIDParamValue'' and ''PPIDParamValue'' appear exactly as entered by the host; on success they are echoed back unchanged.
  
- Best-practice – SCADA / MES clients should subscribe to "…HostCommandReplyand check "HCACKbefore assuming the tool accepted the command.+ <note tip>SCADA / MES clients should subscribe to ''…HostCommandReply'' and check ''HCACK'' before assuming the tool accepted the command</note>
  
 {{puml_002.png?500|}} {{puml_002.png?500|}}
Line 104: Line 104:
 ===== Bad Host Commands ===== ===== Bad Host Commands =====
  
-Scenario – the host issues PP-SELECT with an invalid PPID; the tool rejects it with "HCACK 3and a populated "ReasonList".+Scenario – the host issues PP-SELECT with an invalid PPID; the tool rejects it with ''HCACK 3'' and a populated ''ReasonList''.
  
-ReasonList structure – an array of tuples "<ParameterName, ErrorCode>".+ReasonList structure – an array of tuples ''<ParameterName, ErrorCode>''.
  
-  * In this example → "PPID, 1(= “parameter unknown or out of range” in many GEM implementations).+  * In this example → ''PPID, 1'' (= “parameter unknown or out of range” in many GEM implementations).
  
-Error detection – any non-zero "HCACKmust be treated as a transaction failure; the associated "HostCommandPPSELECTecho still appears but only confirms that the message was transmitted, not that it succeeded.+Error detection – any non-zero ''HCACK'' must be treated as a transaction failure; the associated ''HostCommandPPSELECT'' echo still appears but only confirms that the message was transmitted, not that it succeeded.
  
-Client hint – log "ReasonList_*for root-cause analysis and surface a human-readable alarm where appropriate.+<note tip>log ''ReasonList_*'' for root-cause analysis and surface a human-readable alarm where appropriate.</note>
      
 {{puml_003.png?500|}} {{puml_003.png?500|}}
Line 122: Line 122:
 TransSECS actions TransSECS actions
  
-          * Updates ''Variables'' with the content of the lot-end report (''CLOCK, LOTID, PPID, WaferCount'').+  * Updates ''Variables'' with the content of the lot-end report (''CLOCK, LOTID, PPID, WaferCount'').
  
-          * Publishes ''EventMessage'' → ''LastEvent = 7502'', ''LastEventName = COMPLETED''.+  * Publishes ''EventMessage'' → ''LastEvent = 7502'', ''LastEventName = COMPLETED''.
  
-          * Sends S2F23/S2F24 to terminate any active trace whose end-event is “COMPLETED” (here: ''TRID 3000'').+  * Sends S2F23/S2F24 to terminate any active trace whose end-event is “COMPLETED” (here: ''TRID 3000'').
  
 Why two COMPLETED bursts? – the example shows two sequential lots finishing quickly; both follow the identical publish path, proving that templates survive across lot boundaries without requiring a new DBIRTH. Why two COMPLETED bursts? – the example shows two sequential lots finishing quickly; both follow the identical publish path, proving that templates survive across lot boundaries without requiring a new DBIRTH.
Line 136: Line 136:
 Event 7501 (STARTED) – triggers both a ”DataReport” (ID 101) and a ”LotEndReport” snapshot. Event 7501 (STARTED) – triggers both a ”DataReport” (ID 101) and a ”LotEndReport” snapshot.
  
-          * Key process parameters (''GasFlow, ProcessTemperature, SetPoint'') are captured immediately.+* Key process parameters (''GasFlow, ProcessTemperature, SetPoint'') are captured immediately.
  
 Poll activation – on STARTED, TransSECS enables the S1F3 poll group ''S1F3Poll'' (1.5 s cadence). Poll activation – on STARTED, TransSECS enables the S1F3 poll group ''S1F3Poll'' (1.5 s cadence).
  
-         * Each poll produces a pair of messages:+ * Each poll produces a pair of messages:
  
-               Over SECS: S1F3 W / S1F4 reply. +    * Over SECS: S1F3 W / S1F4 reply. 
- +    * Over Sparkplug: 
-               Over Sparkplug: +      * ''DDATA/…/Variables'' → updated ''CLOCK, GasFlow, LOTID''
- +      * ''DDATA/…/SendS1F3Poll'' → simple heartbeat for debugging.
-                  * **''DDATA/…/Variables'' → updated ''CLOCK, GasFlow, LOTID''+
- +
-                  * **''DDATA/…/SendS1F3Poll'' → simple heartbeat for debugging.+
  
 Continuation – polling repeats until the next COMPLETED event; note the broker-side comments (“Polling Continues…”, “End Polling”) that bracket the captured sequence. Continuation – polling repeats until the next COMPLETED event; note the broker-side comments (“Polling Continues…”, “End Polling”) that bracket the captured sequence.
  • secs_sparkplug_b_integration_guide.1746569701.txt.gz
  • Last modified: 2025/05/06 17:15
  • by amyw