這篇部落格文章最初發表於 cimetrix.com
如果您曾想過該如何在基於 PLC 的設備控制系統中實作 SEMI E30 GEM(通用設備模型)通訊標準,請繼續閱讀——這篇文章正是為您而寫!
GEM OPC Connector 應用程式能解決什麼問題?
Cimetrix 的 CIMConnect 產品提供了一套軟體函式庫,供各類製造產業的設備供應商用於將 GEM 標準整合至其設備控制系統及相關應用程式中。這些應用程式通常以 C#、VB.NET 或 C++ 編寫,且必須在 Microsoft Windows 作業系統上執行。
此解決方案對於運行於 Windows 系統上的設備控制器非常有效,但對於未採用 Windows 為基礎的控制系統的設備又該如何處理呢?特別是,有些設備控制器是基於 PLC 的,因此無法直接使用 CIMConnect 函式庫。那麼該怎麼辦呢?GEM OPC Connector 應用程式能非常有效地解決這種特定情況。
GEM OPC 連接器應用說明
下方的螢幕截圖顯示了 GEM 狀態設定,以及由 GEM OPC Connector 應用程式所實作的 GEM 介面的當前狀態。

GEM OPC 連接器作為 CIMConnect 的範例應用程式提供。我們已有數位客戶利用它,為其基於 PLC 的設備應用程式實作 GEM 介面。由於它與 CIMConnect 運行於同一台電腦上,因此需要 Windows 作業系統;所幸,大多數配備基於 PLC 控制器之設備,其整體控制系統中某處通常也設有 Windows 電腦。 舉例來說,這類設備中的多數 HMI(人機介面)皆運行於 Windows 電腦上,並透過 OPC UA(或 OPC Classic)在 HMI 與 PLC 控制器之間共享資料。在此配置下,CIMConnect 與 GEM OPC 連接器應用程式可安裝於 HMI 的 Windows 電腦上,並連線至 HMI 所使用的同一台 OPC UA 伺服器(參見下方的方塊圖)。 當然,若設備控制器尚未配備 Windows 電腦,則必須在控制器中新增一台 Windows 電腦,才能採用此解決方案。

它是如何運作的?
GEM OPC Connector 應用程式同時是 CIMConnect 應用程式,也是 OPC 客戶端。CIMConnect 支援 GEM 的各項功能,而於 OPC 伺服器中定義的變數可用於在 CIMConnect 中呼叫方法,或接收來自 CIMConnect 的通知。OPC 變數可用於:
- 更新狀態變數(SVID)與設備常數(ECID)
- 觸發收集事件 (CEID)
- 設定或清除鬧鐘。
- 接收來自主機的遠端指令通知。
- 呼叫自訂方法。例如,有以下預先定義的方法:
- 設定「離線/線上」開關,
- 設定「本機/遠端」開關,
- 啟用/停用 GEM 與主機之間的通訊,
- 變更 GEM 的通訊設定。
當 OPC UA 標籤由 PLC 或 HMI 更新時,GEM OPC Connector 會監控這些標籤值的變化,並根據每個 OPC UA 標籤的功能,在 CIMConnect 中呼叫相應的方法。
資料更新與控制訊號亦可朝相反方向傳輸。例如,當主機向設備發送遠端指令時,GEM OPC Connector 會透過更新與該遠端指令參數相關的 OPC UA 標籤,並將一個布林型 OPC UA 標籤的值設為「True」,來處理該遠端指令,藉此通知基於 PLC 的控制應用程式,主機已觸發該遠端指令。
XML 配置檔用來定義 OPC UA 標籤與 GEM 元件之間的各種連結類型。每種連結皆描述一項特定功能,並提供執行該功能所需的額外資訊。以下各節將針對幾種常見的連結類型提供範例。
可變連結
變數連結用於保持 GEM 變數與 OPC UA 變數同步。這些連結在 XML 檔案中的樣式如下:
此範例將 GEM EstablishCommTimeout 設備常數(VID = 4000)與 OPC UA 標籤「Channel1.Device1.Standard ECs.EstablishCommTimeout」建立關聯。由於設備常數可由操作員或主機進行更新,因此「方向」屬性設定為「雙方」。
警報連結
警報連結用於設定和清除 GEM 警報。在 XML 檔案中,警報連結的格式如下:
此範例將一個 GEM 警報(ALID = 20045)與一個布林型 OPC UA 標籤 = “Channel1.Device1.Alarms.PMTempTooHigh” 建立關聯。 當警報狀態發生變化時,PLC 軟體會設定此值。GEM OPC 連接器會監控此標籤的值是否發生變化,並呼叫 CIMConnect 中的 SetAlarm() 或 ClearAlarm() 方法,以據此更新相關的警報狀態。
活動連結
事件連結用於觸發 GEM 收集事件。在 XML 檔案中,事件連結的樣貌如下:
此範例將一個 GEM 集合事件(CEID = 5000)與一個布林型 OPC UA 標籤 = “Channel1.Device1.Events.LoadLockDoorOpened” 建立關聯。GEM OPC 連接器會監控此標籤的值是否發生變化,當值從 0 變為 1 時,便會呼叫 CIMConnect 中的方法,以觸發相關聯的事件。
遠端指令連結
遠端指令連結用於通知 PLC 設備應用程式,主機已發起一項遠端指令。在 XML 檔案中,遠端指令連結的格式如下:
此範例將 GEM「PP-SELECT」遠端指令連結至布林型 OPC UA 標籤 =「Channel1.Device1.RemoteCommands.PP-SELECT」。參數值為可選項。在此情況下,僅有一個參數連結至 OPC UA 標籤 =「Channel1.Device1.RemoteCommands.PP-SELECT_PPID」。 當主機使用 S2F41「主機命令傳送」發送 PP-SELECT 遠端命令時,GEM OPC 連接器會按以下方式處理該訊息:若「處理狀態」的值表示設備可接受此遠端命令,則會先更新參數值,接著將 PP-SELECT 值設為「True」,以通知 PLC 應用程式該遠端命令已遭呼叫。
方法連結
方法連結用於在 GEM OPC Connector 本身中呼叫自訂方法。系統提供數個預定義方法,亦可新增自訂方法,但後者需對 GEM OPC Connector 應用程式的原始碼進行修改。方法連結在 XML 檔案中的呈現形式如下:

此範例將名為「PPChange」的方法與布林值 OPC UA 標籤「Channel1.Device1.Methods.PPChange」建立關聯。方法可能包含參數,在此情況下,有兩個參數與 OPC UA 標籤建立關聯:一個用於指定已變更的製程程式名稱,另一個則用於描述所進行的變更類型(建立、編輯或刪除)。 要呼叫此方法,PLC 應先更新參數值,然後將 PPChange OPC UA 標籤的值從 0 變更為 1,以通知 GEM OPC 連接器該方法已被呼叫。接著,GEM OPC 連接器會根據名稱搜尋該方法並執行程式碼。在此範例中,它會更新 GEM 資料變數 PPChangeName 和 PPChangeStatus,並觸發 PPChange 集合事件。
結論
這份關於 GEM OPC Connector 應用程式的簡要概述,旨在引起您對這項功能的興趣,並促使您與我們聯繫,進一步了解其中還有多少值得探索的內容。