
做半導體設備自動化EAP/SECS-GEM開發(fā)的朋友應該都有過這樣的經(jīng)歷客戶突然改需求——“再給我加 50 個 SVID15 個 AlarmRecipe 變量也要調(diào)整”。你打開那個 3000 行的 XML 文件開始手動改標簽、調(diào)屬性、對引用關系……改完編譯報錯排了 2 小時發(fā)現(xiàn)是少了一個閉合標簽。這不是段子是大多數(shù)設備商 EAP 團隊的日常。今天聊一款我最近深度使用的SECS/GEM 通信模型 XML 配置工具——它讓配一套完整的 GEM200 GEM300 模型這件事從幾天壓縮到 1 小時。一、手寫 XML 的痛苦誰寫誰知道在講工具之前先說說我們之前純手寫的痛點。一份標準的 EAP 設備模型 XML通常包含GEM200 基礎層HSMS 通信參數(shù)、SVID/ECID 變量、CEID 事件、ALID 報警、Remote Command、Terminal、Clock、LogGEM300 高級層E87 Carrier載具管理、E90 Substrate基板追蹤、E40 ProcessJob工藝作業(yè)、E94 ControlJob控制作業(yè)Equipment 設備層Module模塊、LoadPort負載端口、WaferMap晶圓圖譜一個中等復雜度的 300mm 設備XML 輕松突破5000 行。手寫意味著痛點后果標簽拼寫錯誤如/EibModel:Event少個斜杠運行時才報錯排查 2 小時SVID/CEID/ALID 引用關系錯亂Host 收到事件但數(shù)據(jù)是空的屬性值類型不匹配該填 int 填了 string設備啟動直接崩潰不同模塊間 ID 沖突調(diào)試階段才發(fā)現(xiàn)兩個變量共用一個 VID客戶改需求要全局搜索替換改一處漏三處回歸測試全跑一遍最要命的是SEMI 標準文檔有幾千頁手寫 XML 等于把標準文檔再實現(xiàn)一遍。二、這款工具是什么簡單說它是SECS/GEM 通信模型的 XML 可視化建模器。核心思路把 SEMI 標準的對象模型用樹狀導航 表單界面來管理最終導出合規(guī)的 XML 文件。你不需要記住 XML 標簽怎么寫不需要查文檔確認屬性名拼寫只需要在表單里填值、下拉框里選枚舉、點 Set 保存。界面全景工具左側是功能導航樹按 SEMI 標準分層組織GEM200 ├── Hsms通信參數(shù) ├── VariableSVID/ECID 管理 ├── EventCEID 管理 ├── Report報告映射 ├── AlarmALID 管理 ├── Terminal終端服務 ├── Clock時鐘同步 ├── Command遠程命令 └── Log日志配置 GEM300 ├── E87 Carrier載具管理 ├── E90 Substrate基板追蹤 ├── E94 ControlJob控制作業(yè) ├── E40 ProcessJob工藝作業(yè) └── Module Track模塊追蹤 Equipment ├── Module設備模塊 ├── LoadPort負載端口 └── WaferMap晶圓圖譜右側是對應模塊的表單配置區(qū)每個參數(shù)都有下拉選擇、輸入校驗、關聯(lián)檢查。三、實戰(zhàn)演示1 小時配完一套 GEM 模型下面以配置一臺 300mm 刻蝕設備的完整 GEM 接口為例展示工具的實戰(zhàn)效率。Step 1GEM200 基礎通信配置10 分鐘打開工具選中GEM200 → Setting右側出現(xiàn)基礎通信表單Local IP填192.168.1.100設備網(wǎng)卡 IPLocal Port填5000Device ID填1Mode下拉選Passive300mm Fab 標配LinkTestInterval填6000060 秒心跳InitControlState下拉選OnlineLocalDefaultOnlineState下拉選OnlineLocalAttemptOnlineFail下拉選HostOfflineT3~T8 超時分別填45000 / 10000 / 50000 / 10000 / 5000關鍵點Mode、ControlState 這些值都是下拉枚舉不會出現(xiàn)手滑填錯字符串導致狀態(tài)機不認的問題。Step 2VariablesSVID/ECID批量配置15 分鐘選中GEM200 → Variable進入變量管理界面。左側表單填單個變量Module Name下拉選InTool300mmName填ChamberPressureParameter Type下拉選FloatDataClassification下拉選DataUnit填mTorrVID填10001VID Type下拉選SVID點Add保存。右側表格實時顯示所有已配置的變量VidVID TypeAttributeNameAttributeTypeValue20ECIDLotIDStringDatanull50001SVIDPortIdentifierStringData110DVIDPressureFloatDatanull11DVIDTemperatureFloatDatanull160SVIDCarrierRecreateSupportedBooleantrue效率提升點不用手寫EibModel:Variable標簽Classification 下拉選Configuration / Control / Data避免分類錯誤表格視圖一目了然哪個 VID 沒填、哪個重復秒發(fā)現(xiàn)實操經(jīng)驗一臺刻蝕腔有 200 傳感器通道。我建議全部暴露成 SVID寧多勿少。后期客戶要做 FDC故障檢測時缺數(shù)據(jù)才是真災難。Step 3Events Reports 事件報告配置15 分鐘選中GEM200 → Event配置 Collection EventCEIDNameDescription802PressureMeasurementMade壓力測量完成400001ProcessingStarted加工開始400002ProcessingCompleted加工完成400003ProcessingStopped加工停止400004ProcessStateChange加工狀態(tài)變更然后選中GEM200 → Report建立Event → Report → VIDS的映射鏈CEIDCEIDNameReportIDVIDS816OperatorCommandIssued3210;11;12;815MessageRecognition3112;802PressureMeasurementMade3011;12;801TestMeasurementMade2910;12;這是 SECS/GEM 最容易出錯的地方——Event 觸發(fā)后Host 收到的數(shù)據(jù)取決于 Report 里綁定的 VIDS 列表。手寫 XML 時VID 引用錯了完全沒提示用工具綁定關系在表格里可視化校驗一目了然。Step 4Alarms 報警配置10 分鐘選中GEM200 → Alarm配置設備報警ALIDNameDescriptionSetCEIDClearCEID55ExceptionCondition55異常條件 551000510006100ExceptionCondition100異常條件 1001000110002101ExceptionCondition101異常條件 101101011010299999UnknownException未知異?!總€報警綁定Set CEID觸發(fā)事件和Clear CEID清除事件Host 就能精確區(qū)分報警發(fā)生了和報警解除了。踩坑經(jīng)驗之前手寫 XML 時ClearCEID 漏配過結果 Host 端報警永遠消不掉Fab 驗收直接打回。用工具表單配置Set/Clear 兩個字段并排展示想漏都難。Step 5E87 Carrier 載具管理配置5 分鐘切換到GEM300 → E87 Carrier配置載具狀態(tài)機事件Carrier Service Events載具狀態(tài)轉換事件IDNameStatemap1301CarrierSMTrans01NoState → IDNotRead1302CarrierSMTrans02IDNotRead → WaitingForHost1303CarrierSMTrans03IDVerified → Clamped………1313CarrierSMTrans13Complete → NotAccessedCarrier Service Location Events載具位置事件IDName1351CarrierLocationChange1352CarrierClamped1353CarrierClosed1354CarrierOpened1355CarrierUnclamped關鍵參數(shù)配置在 Equipment 節(jié)點下選中 LoadPort配置clampControl 1全自動 Fab 必須否則 AMHS 來了不松夾carrierHoldControl 0accessMode AUTO關于clampControl的坑我之前單獨寫過一篇文章《E87 ClampControl 這個參數(shù)90% 的設備商都沒配對》感興趣可以翻我博客。Step 6導出 XML 并驗證5 分鐘所有模塊配置完成后點擊Export導出工具自動生成符合 SEMI 標準的 XML 文件D:\git\demo0000\gem300\代碼\代碼\AutomationServices\InTool300mmModel.xml文件包含完整的EibModel:E87LoadportSystem節(jié)點含 clampControl、carrierHoldControl 等屬性EibModel:Variable列表EibModel:Event與EibModel:Report映射EibModel:Alarm定義EibModel:Command及參數(shù)配置導出后用 EAP 運行時加載 XML啟動設備Host 端 Simulator 連接測試一次通過。四、效率對比手寫 vs 工具配置任務手寫 XML用這款工具效率提升GEM200 基礎配置4 小時10 分鐘24x50 個 SVID 錄入3 小時15 分鐘12x20 個 Event Report 映射4 小時15 分鐘16x15 個 Alarm 配置2 小時10 分鐘12xE87 狀態(tài)機事件3 小時5 分鐘36x導出 驗證1 小時5 分鐘12x總計17 小時2 天1 小時≈17x這還只是從零新建的場景。如果是客戶改需求、加變量、調(diào)參數(shù)的日常維護工具的優(yōu)勢更大——改個值點 Set不用翻 5000 行 XML 找位置。五、工具的核心價值不只是快1. 降低出錯率下拉枚舉防止非法值如 Mode 只能選 Active/Passive表單校驗防止類型不匹配該填 int 的不會讓你填 string引用關系可視化Event → Report → VID 鏈路一目了然2. 降低門檻不需要熟讀 3000 頁 SEMI 標準文檔才能上手工藝工程師也能參與模型配置不依賴核心開發(fā)新人 1 天可上手手寫 XML 至少要 2 周培訓3. 配置與代碼解耦XML 模型是靜態(tài)描述文件供 EAP 運行時加載改配置不改代碼不用重新編譯、不用重新認證同一套代碼 不同 XML 適配不同客戶/不同設備型號4. 版本可管理XML 文件天然適合 Git 版本管理每次變更有 diff可審計、可回滾多客戶項目并行配置互不干擾六、適用場景場景是否推薦理由設備 OEM 出廠 GEM 接口配置? 強烈推薦不同客戶配置不同工具化是剛需Fab 現(xiàn)場 EAP 集成調(diào)試? 推薦快速響應 Host 端變更需求通信仿真與離線聯(lián)調(diào)? 推薦配好 XML 直接跑 Simulator老舊設備 SECS-I 改造?? 視情況需確認工具是否支持 SECS-I純運行時監(jiān)控? 不適用這是配置工具不是監(jiān)控軟件七、寫在最后半導體自動化的難點從來不是把消息發(fā)出去而是讓設備在 7×24 小時、網(wǎng)絡抖動、操作員誤觸的真實環(huán)境里依然穩(wěn)得像塊石頭。而穩(wěn)的第一步是模型配置不出錯。手寫 5000 行 XML出錯是必然不出錯才是偶然。用對工具把精力花在真正重要的事上——業(yè)務邏輯、狀態(tài)機、客戶價值——而不是和 XML 語法較勁。如果你也在做 SECS/GEM 或 GEM300 相關開發(fā)歡迎在評論區(qū)聊聊你現(xiàn)在的配置方式咱們一起把效率卷上去。系列文章預告《做 SECS/GEM 這些年我踩過的 7 個最致命的坑》《E87 ClampControl 這個參數(shù)90% 的設備商都沒配對》《E40 ProcessJob 與 E94 ControlJob別再搞混了》覺得有用請點贊 收藏你的支持是我持續(xù)輸出干貨的動力 —— 一個在半導體自動化領域摸爬滾打的 EAP 工程師