EAP 工程师面试指南:从“你会 HSMS 吗”到“你如何设计 GEM300 框架”
摘要:EAP 工程师的面试,国内几乎没有标准化的题库。面试官凭经验问,候选人凭运气答。本文把 EAP 工程师的面试题目按初级/中级/高级行为面试四个层级拆解,每道题给出“标准答案”和“面试官真正想听什么”。
一、初级面试题(0~2年)
Q1:HSMS 的握手流程是什么?
标准答案:
- TCP 三次握手建立连接
- Host 发送
Select.req(Session ID=0xFFFF) - 设备回复
Select.rsq(Status=0表示成功) - 之后双方通过
LinkTest.req/rsq(S1F1/S1F2)保持心跳 - 断开时发送
Deselect.req/rsq
面试官想听什么:你有没有真正配通过 HSMS 连接,还是只在文档里看过。能说出Session ID的作用(区分设备)、LinkTest的周期(通常60~120秒)加分。
Q2:E87 LoadPort 状态机有哪些关键状态?
标准答案:
NOT_ACCESSED:初始状态,无载具CARRIER_PRESENT:载具在 LoadPort 上但未 ClampCLAMPED:载具已夹紧IN_ACCESS:Robot 正在取放晶圆TRANSFER_READY:可以开始传输IN_TRANSFER:传输中
面试官想听什么:你知不知道状态之间的跳转条件。能说出"从CARRIER_PREESENT到CLAMPED需要 PLC 确认 Clamp 传感器信号"加分。
Q3:S6F11 是什么?什么时候设备会发?
标准答案:S6F11 是 Event Report(事件上报)。当设备端发生了预先定义好的事件(CEID),且 Host 端通过 S2F37 使能了该事件,设备就会主动发送 S6F11,携带相关 SVID 值。
面试官想听什么:你知不知道 S6F11 是 ** 设备主动推**的,不是 Host 轮询的。能说出“Host 收到后要回 S6F12”加分。
Q4:T3、T5、T6、T7 超时各是干嘛的?
标准答案:
- T3(Reply Timeout):发送消息后等待回复的超时,通常 10~45 秒
- T5(Connect Timeout):HSMS 连接建立的超时,通常 10 秒
- T6(Control Timeout):控制消息(Select/Deselect/LinkTest)的回复超时,通常 5 秒
- T7(Not Select Timeout):连接建立后多久不发 Select 就断开,通常 10 秒
面试官想听什么:你有没有在实际项目中调过这些参数。能说出“T3 配太短会导致设备端还没处理完 Host 就超时重发”加分。
Q5:SECS-Ⅰ 和 HSMS 的区别?
标准答案:
- SECS-Ⅰ(E4):基于 RS-233/RS-485 串口,半双工,9600bps,ENQ/ACK 帧结构
- HSMS(E37):基于 TCP/IP 以太网,全双工,有LinkTest 心跳
- 两者都是传输层,E5(SECS-Ⅱ)消息内容不变
面试官想听什么:你有没有接触过老设备。能说出“200mm 老厂大量用 SECS-Ⅰ,300mm 新线全部 HSMS”加分。
二、中级面试题(2~5年)
Q6:E40 Process Job 的 Pause 为什么比 Start 难实现?
标准答案:
- Start 只需要设备进入
PROCESSING状态,执行工艺 - Pause 需要设备进入
PAUSING状态,找到安全点才能暂停(比如刻蚀步骤边界) - 找到安全点需要设备固件支持“工艺步骤边界表”
- Resume 时需要校验 Recipe 版本、腔体状态是否和 Pause 前一致
- 很多设备商 Pause 直接停电机,不进
PAUSING——这是假实现
面试官想听什么:你有没有在 FAT 中真正测试过 Pause/Resume。能说出"用异常注入测试 Pause 时断电,看设备恢复后状态是否正确"加分。
Q7:E90 SubstHistory 的时间戳怎么验证可信度?
标准答案:
- 确认时间戳来源:是 PLC 硬件锁存还是软件
datetime.now() - 确认 NTP 是否同步:设备端 NTP 状态、时钟漂移量
- PLC 对账:用 PLC 的 IO 信号时间戳和 SubstHistory 的时间戳对比
- 连续性检查:同一片晶圆的事件时间戳是否单调递增
- 精度声明:E148 Accuracy Class 是否如实申报
面试官想听什么:你有没有实际做过数据可信度验证。能说出"设备重启后时间回滚导致晶圆’穿越时空’"的真实案例加分。
Q8:200mm 厂从 GEM200 升级到 GEM300 要补哪几层?
标准答案:
- E87:加 LoadPort 状态机 + CIV + E84 PIO(硬件改造最大)
- E90:加单片级 SubstHistory + SubstState(传感器不够是硬伤)
- E40:加 Process Job 9 状态 + Pause/Resume(容易被假实现)
- E94:加 Control Job 编排(最鸡肋,MES 已经在做)
- E148:加时间同步(最容易被忽略)
面试官想听什么:你懂不懂老厂改造的现实约束。能说出"渐进式升级路径:先通信层统一,再 Lot 级自动化,最后关键机台补 E90"加分。
Q9:你用 secsgem 做过什么?
标准答案:(根据你的实际经验回答,以下为参考)
- 搭建 GEM300 模拟器,模拟设备端 E87/E90/E40 状态机
- 离线测试 Host 端逻辑,不依赖真实设备
- 异常注入:模拟超时、状态卡死、错误码,验证 Host 的异常处理
面试官想听什么:你有没有主动用工具提升效率。能现场演示一个简单的模拟器代码加分。
Q10:FAT 测试计划你怎么写?
标准答案:
- 正常流:每个状态机的标准路径(如 E87 从 NOT_ACCESSED 到 TRANSFER_READY)
- 异常流:CIV 失败、Robot 取片超时、断电恢复、网络断开
- 边界条件:T3 超时边界、并发指令、消息格式边界值
- 每个测试项有明确的预期结果和判定标准
面试官想听什么:你有没有被设备商糊弄过。能说出"设备商说支持 E40,但 Pause 直接停电机不进 PAUSING,我在 FAT 报告里记录了"加分。
三、高级面试题(5 年+)
Q11:一台 Host 管 50 台设备,并发模型怎么选?
标准答案:
- 不推荐:一设备一线程(线程爆炸)、线程池同步阻塞(容易被拖死)
- 推荐:事件驱动 + 消息队列 + 消费者线程池。HSMS 接收线程只做解码入队,消费者线程池串行处理每台设备的消息
- 背压策略:队列满时溢出落盘,不丢事件
- 断线恢复:指数退避 + 随机抖动,重连后重新拉状态
面试官想听什么:你有没有设计过 Host 端架构。能画出架构图并解释"为什么消费者线程数固定为 20 而不是 50"加分。
Q12:三方博弈中,设备商、Host、PE 各自甩锅,你怎么处理?
标准答案:
- 设备商说"Optional":拿出 SEMI 标准文档,指出客户要求必须实现
- Host 说"消息格式不对":用 WireShark 抓包证明格式正确
- PE 说"数据不对":拿出 PLC 日志和 SubstHistory 对账结果
- 通用策略:邮件留痕、测试报告当盾牌、用标准说话、拉项目经理升级为项目风险
面试官想听什么:你有没有在多方扯皮中保护自己。能说出"用 PLC 日志证明时间戳问题是设备端 NTP 未同步,不是 EAP 的问题"加分。
Q13:你写过最复杂的状态机是什么?怎么保证正确性?
标准答案:(根据你的实际经验回答,以下为参考)
- E87 LoadPort 状态机 + E40 Process Job 状态机的联动
- 用状态机框架(如 transitions / Stateless)而不是 if-else
- 单元测试覆盖所有状态跳转 + 异常注入测试
- 用模拟器验证状态机在各种异常下的行为
面试官想听什么:你有没有系统化的工程方法。能说出"用 asyncio.Lock 保证同一设备状态机串行化"加分。
Q14:EAP 系统上线后出了生产事故,你怎么排查?
标准答案:
- 第一时间保护现场:不重启、不删日志
- 从 Host 端日志定位时间线:哪台设备、哪个 Job、哪个状态
- 用 WireShark 抓包还原通信过程
- 对比 PLC 日志和 SubstHistory
- 找到根因后,写事故报告,提出预防措施
面试官想听什么:你有没有处理过真实事故。能说出"事故原因是设备商固件 Bug 导致状态机卡死,不是 EAP 的问题"加分。
Q15:如果让你从零搭建一个 Fab 的 EAP 系统,你的技术选型是什么?
标准答案:
- Host 端:Python(asyncio)+ secsgem + PostgreSQL + Redis
- 模拟器:secsgem 搭建设备模拟端
- 消息队列:内存队列(单机 50 台以内不需要 Kafka)
- 监控:Prometheus + Grafana
- 部署:Docker + Kubernetes(可选)
面试官想听什么:你有没有全局视野。能说出"为什么不用 Node.js(单线程阻塞状态机计算)"加分。
四、行为面试题
Q16:你遇到最难的设备商糊弄是什么?怎么解决的?
回答框架:
- 描述场景:设备商说"支持 E40",但 Pause 直接停电机
- 你的应对:用异常注入测试,记录问题在 FAT 报告
- 结果:设备商回去改固件,重新测试通过
- 反思:FAT 测试计划要提前发,异常场景不能省
面试官想听什么:你有原则,有方法,不是软柿子。
Q17:你和上位系统(MES)团队有过分歧吗?怎么解决的?
回答框架:
- 描述分歧:MES 要求简化接口,你坚持按 SEMI 标准实现
- 你的应对:拿出标准文档 + 用模拟器证明你的方案可行
- 结果:双方各退一步,接口按标准实现,但分阶段交付
- 反思:提前对齐接口规范,不临时改
Q18:你为什么想换工作?
回答框架:
- 不要说"上家太坑了"
- 可以说"想做更有挑战性的项目,比如 300mm 全栈 GEM300 实施"
- 或者"想从设备端转到 Host 端架构设计,拓宽技术视野"
六、总结
EAP 工程师的面试,考的不是你背了多少标准编号,而是:
- 你踩过多少坑(初级题能答出真实案例)
- 你解决过多少问题(中级题能说出排查过程)
- 你设计过什么系统(高级题能画出架构图)
- 你能不能在压力下保护自己(行为题有原则有方法)
你最近在面试吗?遇到过什么奇葩问题?评论区聊聊,我帮你分析面试官想听什么。

49

被折叠的 条评论
为什么被折叠?



