4. 设备通信协议与接口
EAP(Equipment Automation Program)要做的第一件事,是把机台“接进来”。但机台不是一种东西:光刻机、刻蚀机、CVD、量测机、老式串口温控器、厂务PLC,它们对外暴露的接口完全不同。因此EAP的通信层不是选一个协议,而是按设备类型分层选型:SECS/GEM 管半导体机台语义,HSMS 管会话与传输,TCP/IP 管字节通道,串口管遗留设备,OPC UA 管厂务与产线级数据建模。理解它们的边界,比记住协议名更重要。
一、五类接口在EAP中的位置
从下往上看:物理层与链路层由以太网或RS-232/RS-485承担;传输层由TCP/IP或串口字节流承担;会话层由HSMS(HSMS-SS单会话、HSMS-GS通用会话)承担;消息语义层由SECS-II(Stream/Function,如S1F1、S2F41、S6F11)承担;行为模型层由GEM(SEMI E30)定义状态机、事件、报警、变量、配方管理。OPC UA则自成一套:用地址空间(AddressSpace)、节点(Node)、信息模型(Information Model)表达数据,走TCP 4840或HTTPS 443。
关键判断:SECS/GEM不是传输协议,HSMS才是。很多现场把“机台支持SECS”当成“能连上”,实际上还要确认它跑的是HSMS over TCP还是SECS-I over RS-232。前者用IP和端口(常见5000),后者用串口和块传输(Block Transfer),两者在EAP里的连接器实现完全不同。
二、SECS/GEM与HSMS:半导体机台的标准通道
SECS-II定义消息内容,GEM定义机台行为。EAP作为Host,通常要实现:建立HSMS连接、发送S1F13(Establish Communications Request)确认通信、周期S1F1心跳、订阅S6F11事件、下发S2F41远程命令、用S7F3/S7F5读写配方。一个典型建链过程如下:
Host → Equipment : Select.req (HSMS, SessionID=0xFFFF)
Equipment → Host : Select.rsp (Status=0 Accept)
Host → Equipment : S1F13 (Establish Comm Request)
Equipment → Host : S1F14 (Comm Ack, MDLN/SOFTREV)
Host → Equipment : S1F1 (Are You There)
Equipment → Host : S1F2 (On Line Data)
Equipment → Host : S6F11 (Event Report, CEID=1001)
工程上最容易出问题的是会话状态:HSMS有Not Connected、Connected/Not Selected、Selected三种状态,只有Selected后才能发SECS消息。若EAP日志里反复出现Select.req超时,先查TCP 5000是否通、机台是否配置了Host IP白名单,再查SessionID是否一致。另一个高频问题是S6F11事件丢失:需要确认EAP是否发送了S2F33(Define Report)和S2F35(Link Event Report),否则机台不知道要上报什么。
三、串口通信:遗留设备的现实选择
串口在EAP中并未消失。很多老式温控器、电源、条码枪、早期探针台仍用RS-232。典型参数:波特率9600或19200、8数据位、1停止位、无校验(8N1),部分设备用RS-485半双工。EAP侧通常用串口服务器(如Moxa NPort)把RS-232转成TCP,再在EAP里用Socket连接。此时要注意:串口服务器是透明传输,EAP必须自己处理帧边界。若设备用SECS-I,则要按块传输(Block)加校验和;若用私有协议,常见帧格式为STX + 命令 + 数据 + ETX + CRC。
四、OPC UA:厂务与产线级数据建模
OPC UA与SECS/GEM不是替代关系,而是分工。SECS/GEM面向“机台控制”,OPC UA面向“数据集成”。厂务的电力监控、气体柜、纯水系统、空调机组,通常由PLC采集后经OPC UA Server暴露。EAP作为Client,通过订阅(Subscription)和监控项(MonitoredItem)获取变化数据,而不是轮询。一个典型地址空间路径:
ns=2;s=Plant.GasCabinet01.Pressure
ns=2;s=Plant.Chiller01.Temperature
ns=2;s=Plant.PowerMeter01.ActivePower
OPC UA的优势在于自带类型系统和语义,EAP可以直接读到“压力”的工程单位、量程和报警限值。但它的实时性不如HSMS,通常用于秒级采集,不适合机台级的毫秒级事件。若产线要求把机台数据统一到MES,常见做法是:机台走SECS/GEM进EAP,厂务走OPC UA进EAP,EAP再统一转成MES可消费的格式。
五、选型与落地建议
实际项目中,EAP通信层建议做成可插拔的Driver:每个协议一个Driver实现,统一向上暴露“连接、断开、发送命令、订阅事件、读写变量”接口。这样新增一台OPC UA设备,不需要改动SECS/GEM逻辑。判断顺序可以简化为:先看设备手册的接口章节,确认是SECS/GEM、OPC UA、Modbus还是私有TCP;再看物理层是网口还是串口;最后看数据方向是控制还是采集。把这三步走完,协议选型基本不会错。