好的,那我们现在进入:
第八讲:设备突然发了个 S6F11,我该怎么办?——事件回调与异步监听机制全解
关键词:S6F11、Event Report、异步回调、SecsMessage 分析、CEID 判断、VID 提取、动作触发
本讲目标
你将掌握:
- S6F11 的结构和触发机制
- 如何监听设备发送的 S6F11 报文
- 如何解析 CEID、RPTID、VID 并提取内容
- 如何根据 CEID 做出不同响应(如 UI 更新、日志、报警)
这是 EAP 开发中最核心的一块:“如何处理设备主动上报的事件”。
一、S6F11 是什么?
S6F11(Event Report) 是设备最常用的主动通知报文。
当设备某个内部事件触发(比如开始生产、批次结束、报警发生),它会发一个 S6F11 通知主机。
就像“我做完了某件事,通知你一声”。
这个机制非常像“观察者模式”或“事件回调”。
二、S6F11 报文的结构(通俗版)
结构如下:
S6F11
- DATAID
- CEID
- List of Reports
- RPTID
- VID1: value
- VID2: value
举个例子:
S6F11
- DATAID = 1001
- CEID = 2 // 表示“批次开始”
- RPTID = 101
- VID3001 = "LOT123"
- VID3002 = "PRODUCT_ABC"
你之前通过 S2F33/S2F35 绑定的结构,设备现在按照这个结构给你回报数据了。
三、如何监听 S6F11?
SECS4NET 提供了非常简单的注册方式:
gem.OnMessage("S6F11", HandleS6F11);
你也可以匹配更精确的报文:
gem.OnSecsMessage(msg => msg.S.F == "6F11", HandleS6F11);
然后写处理函数:
private void HandleS6F11(SecsMessage msg)
{

最低0.47元/天 解锁文章
7万+

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



