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消息

