KXINOGEM

 

汇川 SECS/GEM PLC

适用控制器类型,基于Linux系统CODESYS运行时的汇川PLC控制器。

遵循SEMI标准

  • SEMI E5 – SEMI EQUIPMENT COMMUNICATIONS STANDARD 2 MESSAGE CONTENT (SECS-II)
  • SEMI E30 – Specification for the Generic Model for Communications and Control of Manufacturing Equipment (GEM)
  • SEMI E37 – Specification for High-Speed SECS Message Services (HSMS) Generic Services
  • SEMI E172 – Specification for SECS Equipment Data Dictionary (SEDD)

软件库特点

  • ST语言功能块封装库,通过C语言接口访问高效运行的后台服务程序
  • 符合SEMI E5/E30/E37标准,支持SEMI E30 GEM所有功能
  • 每台PLC可以同时支持多个HSMS端口通信
  • PLC编程无需处理底层SxFy消息,只需调用逻辑层API及消息回调
  • 配套诊断调试工具,方便EAP互联测试

SECS/GEM基本功能支持列表

  • 通讯状态机
  • 控制状态机
  • 工艺状态机
  • S1F13/F14 场景
  • 设备控制
  • 事件通知
  • 在线身份识别
  • 错误消息
  • 文档

SECS/GEM附加功能支持列表

  • 动态收集事件报告
  • 数据变量信息获取及数据采集
  • 事件报告信息获取及数据采集
  • 跟踪信息获取及数据采集
  • 状态信息获取及数据采集
  • 设备常量信息获取及管理
  • 假脱机及假脱机信息获取
  • 报警管理
  • 远程控制
  • 配方管理
  • 物料运动
  • 终端服务
  • 时钟
  • 自我描述
  • 限值监控
  • 设备控制
  • 文档传输
  • SEDD 文件传输
  • 限值监控

支持的SECS/GEM消息列表

S1F1,S1F2,S1F3,S1F4,S1F13,S1F14,S1F15,S1F16,S1F17,S1F18,S2F13,S2F14,S2F17,S2F18,S2F23,S2F24,S2F25,S2F26,S2F31,S2F32,S2F33,S2F34,S2F35,S2F36,S2F37,S2F38,S2F41,S2F42,S5F1,S5F2,S5F3,S5F4,S5F5,S5F6,S5F7,S5F8,S6F1,S6F2,S6F5,S6F6,S6F11,S6F12,S7F19,S7F20,S7F5,S7F6,S9F0,S9F1,S9F3,S9F5,S9F7,S9F9,S10F3,S10F4

* 支持二次开发实现自定义的SxFy消息发送和消息接收处理

SECS/GEM集成开发基本流程

1. 导入KXINOGEM PLC库文件

2. 创建FB_GEM派生功能块,创建功能块的全局对象

(*创建自定义的FB_GEM扩展功能块*)
FUNCTION_BLOCK PUBLIC FB_MySecsGem EXTENDS FB_GEM

(*定义全局功能块变量*)
VAR_GLOBAL
	GEM	:	FB_MySecsGem;
END_VAR

3. 初始化SECS/GEM配置

覆写扩展功能块的OnInitializationStart 方法,完成注册SECS/GEM配置

(*注册GEM变量 – S1F3,S1F11,S2F23,S6F1,S2F13,S2F15,S2F29等*)
RegisterVariable(
    -1, (*SVID,-1表示系统自动分配*)
    enumValueFormat.ValueFormat_F8,  (*值类型*)
    enumVariableType.SV, (*数据类型:SV,DV,EC*)
    'TemperatureReading', (*数据变量名称*)
    'C', (*数据单位*)
    '25', (*数据默认值*)
    '0',  (*数据最小值*)
    '100', (*数据最大值*)
    TRUE, (*是否需要掉电恢复*)
     'PMA temperature reading'); (*数据描述信息*)

(*注册GEM事件 – S2F33,S2F35,S2F37,S6F11等*)
RegisterEvent(
    -1, (*Collection Event ID,-1表示系统自动分配*)
    'RecipeStarted', (*事件名称*)
    'RecipeName|ChamberName', (*事件关联的数据变量名列表*)
    'Recipe start event'); (*事件描述信息*)


(*注册GEM报警 – S5F1,S5F3,S5F5,S5F7,S6F11等*)
RegisterAlarm(
    -1, (*Alarm ID,-1表示系统自动分配*)
    enumAlarmCode.PersonalSafety,  (*报警代码*)
    'OverTempAlarm',  (*报警名称*)
    'ChamberName|TemperatureReading', (*报警关联数据变量名*)
    'Over temperature alarm', (*报警消息*)
    'Over temperature alarm'); (*报警描述*)

(*注册远程指令 – S2F21,S2F41,S2F49*)
RegisterRemoteCommand('PP-SELECT');

4.项目代码API集成

在客户的PLC项目中合适的位置调用FB_GEM API,完成SECS/GEM数据、事件、报警、远程指令等功能实现。

SECS/GEM功能编程示例 – GEM通讯状态机

PLC代码中调用以下API对SECS/GEM通讯状态进行操作:

GEM.Enable();                   (*启用SECS/GEM通信*)
GEM.Disable();                  (*停止SECS/GEM通信*)
GEM.Offline();                   (*切至离线通信状态*)
GEM.OnlineLocal();             (*切至在线本地控制状态*)
GEM.OnlineRemote();         (*切至在线远程控制状态*)

SECS/GEM功能编程示例 – 更新状态数据

PLC将温度、压力数据上报工厂EAP系统:

GEM.SetValue_LREAL('TemperatureReading', 123.45);
GEM.SetValue_LREAL('PressureReading', 567.89);
GEM.SetValue_LREAL('RecipeName', 'ABC.rcp');

SECS/GEM功能编程示例 – 事件通知

PMA腔体模块开始执行工艺配方文件ABC.rcp,向工厂上报S6F11事件消息:


GEM.TriggerEvent('RecipeStarted', 'RecipeName|ChamberName', ABC.rcp|PMA');

SECS/GEM功能编程示例 – 上报设备运行状态

设备进入生产运行状态,S6F11上报状态给工厂,同时更新SV数据状态:

Gem.SetProcessState(enumProcessState.Executing);

SECS/GEM功能编程示例 – 报警通知

PMA工艺腔体温度超高报警,上报S5F1报警消息以及报警温度数据给工厂:

GEM.AlarmSET('OverTempAlarm', 'Temperature too high',  'ChamberName|TemperatureReading', 'PMA|123.45');

SECS/GEM功能编程示例 – 远程控制

PLC接收到工厂发来的S2F41 START远程指令开始运行工艺配方程序:

IF Command = 'START' THEN
          PLC_Process.fsmStep := 1000;
          GEM.AddLog(enumLogType.Info, 'PLC', 'Received START remote command');
END_IF

SECS/GEM功能编程示例 – 设备常量

工厂通过S2F15远程修改PLC代码中的报警温度设定值OverTempThreshold(EC常量),代码获取当前EC设定值操作:

OverTempThreshold := GEM.GetValue_LREAL('OverTempThreshold');

SECS/GEM功能编程示例 – 终端消息

PLC接收到工厂S10F3发来的终端消息处理,将终端消息显示在PLC HMI界面:

METHOD PROTECTED OnReceivedTerminalMessage : BOOL
VAR_INPUT
          TerminalID     :        INT;
          Message        :        STRING(255);
END_VAR
PLC_UI.ui_terminal_recv_msg := Message;

辅助调试工具 – ToolPanel

设备侧PLC程序SECS/GEM通信状态诊断工具

  • 可以运行在调试PC远程连线PLC对SECS/GEM功能进行诊断分析
  • 支持广播方式查找和连接网络内所有运行SECS/GEM服务的PLC设备
  • 支持远程查看修改设备所有的变量、事件和报警
  • 支持SML格式查看和导出实时的SECS消息日志
  • 支持设备VID, Collection Event, Alarm的Excel导出,用于制作GEM手册
  • 支持历史报警、历史事件的查看
  • 无需写代码,支持手动触发事件和报警,用于开发期间的SECS/GEM调试
  • 支持SEMI E172 SEDD (SECS设备数据字典)文件导出

辅助调试工具 – GEMValidator

为了便于对PLC SECS/GEM程序进行测试,配套提供工厂EAP模拟器远程连线PLC程序进行模拟测试:

  • 支持一键查看PLC设备中的GEM数据、事件、报警信息
  • 支持SECS/GEM SML消息查看
  • 支持手动发送自定义的SECS/GEM消息