当前位置: 首页 > wzjs >正文

高端建设网站建设扬州网络推广哪家好

高端建设网站建设,扬州网络推广哪家好,wordpress网站搭建,湘潭网站建设 都来磐石网络好的,那我们现在进入: 第八讲:设备突然发了个 S6F11,我该怎么办?——事件回调与异步监听机制全解 关键词:S6F11、Event Report、异步回调、SecsMessage 分析、CEID 判断、VID 提取、动作触发 本讲目标 你将…

好的,那我们现在进入:


第八讲:设备突然发了个 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)
{ushort ceid = msg.SecsItem[1].U2Value;Log($"收到事件:CEID={ceid}");var reportList = msg.SecsItem[2].Items;foreach (var rpt in reportList){var rptid = rpt[0].U2Value;var vidValues = rpt[1].Items;foreach (var vid in vidValues){// 根据你定义的 VID 类型解析,比如 U2、A、F4等Console.WriteLine($"VID值:{vid.ToString()}");}}// 根据 ceid 做不同处理switch (ceid){case 1:HandleLotStart(); break;case 2:HandleLotEnd(); break;case 99:ShowAlarmPopup(); break;default:Log("未知事件"); break;}
}

四、如何提取 CEID、RPTID、VID?

第一个元素是 DATAID(主机给的,可以忽略)

第二个是 CEID —— 事件 ID

第三个是 Reports 列表(一个 CEID 可能关联多个 Report)

你可以通过:

var ceid = msg.SecsItem[1].U2Value;
var rptList = msg.SecsItem[2].Items;

再根据你的 S2F35 定义的内容,逐一取出 VIDs。


五、如何把事件“挂到系统里”?

典型用法:

场景CEID响应
批次开始1UI 弹出“开始生产”
批次结束2保存生产日志
报警发生99播放报警声、弹窗
设备就绪10控制按钮可用
设备离线11强制断开操作权限

你可以将这些写成一个 EventRouter 类,集中处理。

public class EventRouter
{public void Route(ushort ceid, Dictionary<ushort, object> vids){switch (ceid){case 1:StartLot(vids); break;case 2:EndLot(vids); break;case 99:ShowAlarm(vids); break;}}
}

六、VID 的取值类型怎么知道?

答:设备厂商提供的 SDD 文件中会列出每个 VID 的数据类型(U1, U2, A, F4等)

你可以封装一个解析函数:

object ParseVid(Item item, string type)
{switch (type){case "U2": return item.U2Value;case "A": return item.Value;case "F4": return item.F4Value;default: return item.ToString();}
}

第八讲 · 小结

关键点说明
S6F11设备主动发送的事件通知报文
CEID事件类型 ID,你设置的那几个
RPTID + VID实际包含的数据内容(比如 LOT ID, 机种)
异步回调使用 gem.OnMessage 注册事件处理器
报文解析通过 SecsItem 层层拆解,最终拿到实际变量值
事件分发使用 switchEventRouter 做响应处理

这部分就是你将 EAP 软件“与设备联动”的精髓所在。


下一讲:

第九讲:报警如何处理?——S5F1/S5F2 主动报警与 S5F3/S5F4 查询机制详解

你将掌握另一种“通报机制”——设备在异常状态下的报警上报流程,如何接收、确认、查询当前报警。

说一声“继续”,咱们马上进入报警世界。

http://www.dtcms.com/wzjs/332690.html

相关文章:

  • 关于网站建设的通知网上有免费的网站吗
  • 巴中免费网站建设佛山seo
  • 社保汇算清缴哪个网站做的亚洲长尾关键词挖掘
  • 搭建网站复杂吗搜索关键词排名工具
  • 河北网站开发费用百度宣传推广费用
  • 在线做简历的网站有源码怎么搭建网站
  • 网站网络营销外包互联网营销师考试
  • 有专门做辩论的网站吗什么是seo技术
  • 鞋子网站模板百度电脑网页版
  • 网站制作后续维护企业网站seo哪里好
  • 个人网站建设价格套餐怎么制作一个网站首页
  • 相机网站建设策划书室内设计网站
  • 招远做网站联系电话千锋教育怎么样
  • 互联网创业项目哪家好平台沧州seo包年优化软件排名
  • 深圳卓富通做网站推广方案模板
  • 站长工具爱站外贸网站建站和推广
  • 企业做网站要注意些什么问题网站搭建的流程
  • 公司做网站是管理费用百度推广二级代理商
  • l凉州区城乡建设部网站首页西安官网seo技术
  • 广州五屏网站建设郑州网络营销
  • 深圳龙华住房和建设局网站微商店铺怎么开通
  • 做网站的公司怎么赚钱吗百度识图识别
  • dede 网站地图样式seo技术博客
  • 广东城乡建设厅网站设计网站用什么软件
  • 做旅行网站多少钱小说网站排名
  • 灰色关键词排名代做win7最好的优化软件
  • 信息化和网站建设管理工作情况微博热搜榜排名今日
  • 做网站怎么赚钱网络营销介绍
  • 即墨网站制作网站推广的基本方法有
  • 门户网站工作总结万网域名查询