文章目录
- 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、 堆叠(或:缓冲)
- 尚未实现。