這篇部落格文章最初發表於 cimetrix.com
GEM 標準常被錯誤地視為一種僅支援單一連線的製造設備通訊協定。所謂「單一連線」,意指同一時間僅有一款軟體產品能使用 GEM 介面。許多支援 GEM 標準的製造設備確實僅具備單一連線的能力。然而,這項限制純粹是出於無知、沿襲傳統,以及為了配合常見的製造系統架構而設定的。
事實上,GEM 標準根本沒有提及額外的連接——這意味著額外的連接既非強制要求,亦未被禁止。設備不僅能夠支援多個並行的 GEM 介面,這種情況也正變得越來越普遍。如果每個受支援的 GEM 連接皆為點對點連接且符合 GEM 標準,這當然是被允許的。然而,每個連接應完全獨立於其他 GEM 連接,同時仍須符合 GEM 的要求。 實作多重連線會引發幾個問題。
所謂「每個 GEM 連線皆獨立」,這意味著什麼?
這表示每個 GEM 主機皆完全獨立運作,彷彿其他 GEM 主機的連線並不存在一般。以下是更具體地定義「完全獨立」的屬性清單:
- 通訊狀態模型是獨立的。每個模型都能獨立地與其他主機套件建立或斷開連線。
- 「控制狀態」模型是獨立的。每個模型均可根據需要設定為本地或遠端模式。
- 收集事件報告的動態配置是完全獨立的。每個主機都會定義一組獨特的報告,並訂閱一組獨特的收集事件。儘管如此,如果兩個 GEM 主機連線建立了相同的報告,並將其連結至相同的收集事件,那麼兩者都應收到相同的数据。
- 每個主機都會訂閱一組獨特的警報。
- 每個主機均可獨立於其他主機,自行查詢狀態資訊。
- 每個主機均可選擇啟用或停用「Spooling」,並依需求進行設定。
- 每個主機都可以設定自己的追蹤資料收集機制。
- 每個主機只會根據其訂閱內容接收訊息。
- 每個主機僅能看到針對其主要訊息的回覆訊息。
你是指 HSMS-GS 嗎?
不。HSMS-GS 指的是實施 SEMI 標準 E37.2《高速訊息服務——一般會話》(High Speed Message Service – General Session),這是一項已不再使用的 SEMI 標準。該標準在業界從未獲得廣泛採用,它會開啟單一埠,允許任意數量的客戶端透過該埠連接。相較之下,我所指的是支援 E37.1《高速訊息服務——單一會話》(High Speed Message Service – Single Session,簡稱 HSMS-SS)的多種實作方式,其中每項連線皆使用唯一的埠號。 當今幾乎所有的 GEM 介面都採用 HSMS-SS 協定。
在單一 GEM 介面上擁有多個 GEM 連接有何優勢?
這為許多實用的應用開闢了可能性。以下提供三個配置範例,當然,這些配置完全可以同時實現。
- 工廠可以同時安裝多個主機軟體套件,用以連線至同一台設備的 GEM 介面,且這些套件之間既不會互相干擾,也不會彼此知曉。若僅有一條連線,想要達成相同目的的工廠就必須實作某種 GEM 主機中介軟體,將不同 GEM 主機套件的通訊匯集至單一 GEM 連線中……這在技術上是一項極具挑戰性的任務。

- 若設備供應商希望開發一款專為工廠中運行的設備所設計的應用程式,可採用其中一種 GEM 連接方式。他們無需將功能複製到自訂介面中。

- 若某台設備需要監控、控制另一台設備,或與其直接傳輸資料,可透過其中一個 GEM 連接埠來實現,且不會干擾工廠的 GEM 連接埠。此設定相對簡單。這有時被稱為「水平通訊」。此類通訊亦可透過主機,採用 GEM 介面的傳統「垂直通訊」使用情境來進行。

那安全方面呢?
通常來說,我預期工廠會在 GEM 介面中建立唯一的一條連線,使其處於「線上-遠端」狀態,並允許發送遠端指令。但這並非絕對的必要條件。不難想像,有些應用情境中,遠端指令的執行會分散在多個應用程式之間。例如,設備供應商可能會利用一條 GEM 連線,根據實際測得的性能數據,來管理設備的定期重新校準。
有哪些技術上的困難?
有幾個。
- 由於每個連線都會使用獨立的連接埠號碼,因此在使用 HSMS-SS 時,GEM 介面只能支援有限數量的連線。
- 由於標準中並未明確規範多重連線的情況,因此對於其處理方式並無相關要求。舉例而言,GEM 要求將操作員指令及操作員配方管理活動回報給主機。然而,當另一條連線傳送遠端指令或下載新配方時,則無須回報此類操作。我們的 CIMConnect 產品雖會進行回報,但目前並無正式規定要求必須如此。
- GEM 要求在 GUI 中顯示通訊狀態,但若有多個連線該如何處理?目前尚不清楚在有多個主機的情況下應顯示哪些資訊。通常我只顯示第一個 GEM 連線的狀態,但若能顯示每個連線的狀態,並讓操作員有機會控制所有 GEM 連線,可能會更有幫助。
- 某些資料擷取事件(以及相應的資料變數)、狀態變數和設備常數,其設計目的在於針對該單一連線的運作行為。這意味著,若要正確實作多重連線,這些特定於連線的功能必須對該連線而言是唯一的。例如,以狀態變數 EventsEnabled 和 ControlState 為例,這兩個狀態變數所回報的值皆為該連線所專屬。這為實作支援多重連線的 GEM 介面增添了些許複雜性。 當然,我們的 CIMConnect 產品已實現並處理了這一點。
每個 GEM 連線都必須完全相同嗎?
不,但一般來說應該是一致的。同一組資料擷取事件/資料變數、警報、狀態變數及設備常數,應向所有連線進行通報。然而,在某些使用情境下,讓其中一個連線擁有一些獨特的資料擷取事件和資料可能會有所助益。例如,若某設備供應商將一個 GEM 連線用作專屬於其設備的工廠主機套件的傳輸管道,他們可能希望發佈一些僅供其自身查閱的獨特資料。 如前所述,若兩個 GEM 主機連線建立相同的報告,並將其連結至相同的資料擷取事件,則兩者都應收到完全相同的数据。另一方面,使用相同狀態變數的追蹤資料報告未必需要回報完全相同的数据,因為這些數值可能是獨立採樣且採樣間隔各不相同。
一台設備在其 GEM 介面上應支援多少個 GEM 連接?
我建議支援五個連線。目前大多數 GEM 實作僅使用一個連線,因此這為最多再增加四個連線開啟了可能性。如此一來,設備便能應對大多數情況,無需日後在工廠重新配置。在 CIMConnect 中,維持五個連線所產生的開銷相當微乎其微,若未實際使用這些連線,開銷則幾乎為零。
通訊設定應該如何設定?
您絕對應該將設備設定為被動模式。這樣一來,所有設定都會由主機端負責。所有連線的裝置 ID 可以相同,其中 0、1 或 32767 是最理想的選擇。
如何在 CIMConnect 中啟用多個 GEM 連線?
由於我們的CIMConnect 產品本質上支援多重 GEM 連接,Cimetrix 的客戶實際上只需配置設定檔即可。 我們的 CIMConnect GEM 產品最初便是針對多重 GEM 連線所設計;因此它具備原生且直覺的操作方式,幾乎不需要額外的程式設計,除非您將操作介面中的額外工作也算在內。在設定檔中,只需先建立五個 [CONNECTIONX] 區段,然後針對這五個連線中的每個,分別設定一個專屬的 VARIABLES 和 EVENTS 區段即可。
還有其他方法嗎?
另一種替代方案是參考 SEMI設備資料擷取(EDA)標準。EDA 介面本質上僅用於資料擷取,且標準中內建了多重客戶端存取功能,並將此視為基本要求。半導體前端設備製造商除了採用 GEM 標準外,也成功地將這項技術納入應用。製造執行系統(MES)使用 GEM 介面來對設備進行指令與控制,而 EDA 介面則用於其他所有應用。
結語
我建議大家,尤其是 Cimetrix CIMConnect 的客戶,都檢視一下自己的 GEM 介面,並確保已妥善實施多主機連線功能。CIMConnect 讓這項操作變得極為簡單。同時,請讓您的客戶知道您具備這項功能,以便他們能善加利用。
您隨時都可以在我們的網站上進一步了解 GEM 標準。
{{cta(‘3ac7f910-7d5a-4042-8a7c-4297df11510d’,’justifycenter’)}}