文章目錄
- 1、處理器
- 1.1、事件
- 2、GEM 合規性
- 2.1、狀態模型
- 2.2、 設備加工狀態
- 2.3、 文檔
- 2.4、 控制 (作員啟動)
- 2.5、 動態事件報告配置
- 2.6、 跟蹤數據收集
- 2.7、 報警管理
- 2.8、 遠程控制
- 2.9、 設備常量
- 2.10、 工藝配方管理
- 2.11、 物料移動
- 2.12、 設備終端服務
- 2.13、 時鐘
- 2.14、 限制監測
- 2.15、 堆疊(或:緩沖)
SEMI 30
GEM 對設備的某些行為以及如何利用 SECS 消息來實現這些行為進行了定義。
1、處理器
{py:class}secsgem.gem.handler.GemHandler
繼承了 {py:class}secsgem.secs.handler.SecsHandler
的功能(見 {doc}/secs/handler
)。
為了區分主機和設備處理過程,有兩種專門的 {py:class}secsgem.gem.handler.GemHandler
類型:
{py:class}secsgem.gem.hosthandler.GemHostHandler
和 {py:class}secsgem.gem.equipmenthandler.GemEquipmentHandler
。
如果您想要實現主機系統,請使用 GemHostHandler,如果想要實現設備系統,請使用 GemEquipmentHandler。
它會自動完成鏈路的整個設置與拆除工作。
傳入的收集事件和終端消息會自動被接受并傳播。
收集事件報告的設置也得到了簡化。
它具備發送遠程命令和處理進程程序的功能。
該處理程序還實現了并維護了一個通信狀態,該狀態在標準中有所定義。
>>> settings = secsgem.hsms.Settings(address="127.0.0.1", port=5000, connect_mode=secsgem.hsms.HsmsConnectMode.PASSIVE, device_type=secsgem.common.DeviceType.HOST)
>>> client = secsgem.GemHostHandler(settings)
>>>
>>> client.enable()
>>> client.waitfor_communicating()
True
>>> client.get_process_program_list()
['test1', 'test2']
>>> client.request_process_program('test1')
This is process program test1
>>> client.disable()
等待通信狀態也可以異步完成
>>> def on_communicating(event, data):
... print "Communicating"
...
>>> settings = secsgem.hsms.Settings(address="127.0.0.1", port=5000, connect_mode=secsgem.hsms.HsmsConnectMode.PASSIVE, device_type=secsgem.common.DeviceType.HOST)
>>> client = secsgem.GemHostHandler(settings)
>>> client.events.handler_communicating += on_communicating
>>>
>>> client.enable()
Communicating
>>> client.get_process_program_list()
['test1', 'test2']
>>> client.request_process_program('test1')
This is process program test1
>>> client.disable()
也可以使用處理程序發送和接收流/函數:
>>> f = secsgem.secs.functions.SecsS01F01()
>>> client.send_and_waitfor_response(f)
HsmsMessage({'header': HsmsHeader({device_id:0x0000, stream:01, function:02, p_type:0x00, s_type:0x00, system:0x75b78c3e, require_response:False}), 'data': '\x01\x02A\x06EQUIPMA\x06SV n/a'})
1.1、事件
GemHandler 定義了一些新的事件,這些事件可以通過使用 {py:class}secsgem.common.EventHandler
來接收:
事件名稱 | 描述 |
---|---|
handler_communicating | Connection is setup–連接已設置 |
collection_event_received | Collection event was received–收到 Collection 事件 |
terminal_received | Terminal message was received–已收到終端消息 |
For an example on how to use these events see the code fragment in {doc}/secs/handler
.
2、GEM 合規性
GEM 合規性聲明
基本 GEM 要求 | 實現 | 符合 GEM 標準t |
---|---|---|
State Models | Yes ? | No |
Equipment Processing States | No | No |
Host-Initiated S1,F13/F14 Scenario | Yes ? | Yes ? |
Event Notification | Yes ? | Yes ? |
On-Line Identification | Yes ? | Yes ? |
Error Messages | Yes ? | Yes ? |
Documentation | Yes ? | No |
Control (Operator Initiated) | Yes ? | No |
其他功能 | 實現 | 符合 GEM 標準t |
---|---|---|
Establish Communications | Yes ? | Yes ? |
Dynamic Event Report Configuration | Yes ? | No |
Variable Data Collection | Yes ? | Yes ? |
Trace Data Collection | No | No |
Status Data Collection | Yes ? | Yes ? |
Alarm Management | Yes ? | No |
Remote Control | Yes ? | Yes ? |
Equipment Constants | Yes ? | No |
Process RecipeManagement | No | No |
Material Movement | No | No |
Equipment Terminal Services | Yes ? | Yes ? |
Clock | No | No |
Limits Monitoring | No | No |
Spooling | No | No |
Control (Host-Initiated) | Yes ? | Yes ? |
2.1、狀態模型
- 雖然實現了通信和控制狀態模型, 尤其是控制狀態模型需要返工。
2.2、 設備加工狀態
- 尚未實現
2.3、 文檔
- 文檔尚未完成.
2.4、 控制 (作員啟動)
- 尚未實現 ONLINE LOCAL/REMOTE 的持久性.
- 最終的 UI(或硬件)需要此 UI 所需的按鈕 部分.
2.5、 動態事件報告配置
報告定義、報告與事件的關聯以及啟用狀態的持久化功能尚未實現。
2.6、 跟蹤數據收集
- 尚未實現。
2.7、 報警管理
“啟用/禁用狀態和報告定義的持久化功能尚未實現。”
2.8、 遠程控制
啟動和停止遠程命令必須實現才能符合 GEM 標準。目前僅提供了虛擬函數。
2.9、 設備常量
- 設備常量的持久化尚未實現。
- 將設備狀態限制在“安全”范圍內尚未實現?
- 設備常量變更收集事件尚未實現。
2.10、 工藝配方管理
- 尚未實現。
2.11、 物料移動
- 尚未實現。
2.12、 設備終端服務
該用戶界面(UI)需求無法通過該庫來實現。
2.13、 時鐘
(注:此內容似乎是一個單獨的詞匯或
- 尚未實現。
2.14、 限制監測
- 尚未實現。
2.15、 堆疊(或:緩沖)
- 尚未實現。