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

Secs/Gem第十讲(基于secs4net项目的ChatGpt介绍)

好,那我们继续——


第十讲:VID、CEID、RPTID 都是哪里来的?——报文变量的定义机制全解(S2F35 深度剖析)

关键词:Variable ID、Report ID、Collection Event、S2F33、S2F35、设备资料字典(SDD)、数据建模


本讲目标

你将掌握:

  • CEID / RPTID / VID 这三个核心变量的定义来源与作用
  • 如何通过 S2F33、S2F35 告诉设备:我想要什么数据、以什么结构上报
  • 如何用这套机制“定制化”设备上报行为
  • 了解 SDD(设备资料字典)的设计结构与读取方式

这部分是你从“会用”走向“懂原理”的关键一跃。


一、核心概念复盘(一定要记住这张三角关系图)

Collection Event (CEID)↓ 绑定
Report (RPTID)↓ 包含
Variable (VID)
名称含义
CEID事件编号,比如“生产开始”、“报警触发”
RPTID报告编号,是一组变量的集合
VID变量 ID,比如 LOT_ID、PRODUCT_ID、EQ_STATE

每个 CEID 对应一批 RPTID,每个 RPTID 对应若干 VID。

你告诉设备:“发生哪个事件(CEID),就发送哪个报告(RPTID),报告里面包含这些变量(VID)”。


二、这些信息怎么告诉设备?——S2F33 与 S2F35

(1)S2F33:Define Report

告诉设备:RPTID=1 是哪些 VID 的组合

S2F33
- List of [RPTID, List of VIDs]例如:RPTID = 101
→ VIDs = [3001, 3002, 3003]  // LOT_ID, PRODUCT_ID, EQP_STATE

用 SECS4NET 表示:

var rpt = List
(U2(101),List(U2(3001), U2(3002), U2(3003))
);

(2)S2F35:Link Event to Report

告诉设备:CEID = 1 时,请发哪个 RPTID

S2F35
- List of [CEID, List of RPTID]例如:CEID = 1[101]
CEID = 2[102]
var link = List
(U2(1),List(U2(101))
);

合起来就是:“事件编号1,绑定报告101,报告101包含变量[3001,3002,3003]”。


三、为什么要搞这么麻烦?

答:因为这是标准化的数据模型设计

优点:

  • 可复用(多个 CEID 可以复用同一个 RPTID)
  • 可动态配置(主机可以随时修改要监听哪些事件)
  • 可解耦(变量与事件分离)

更重要的是——每家设备厂定义的变量不同,但只要你理解这个机制,就能适配所有厂家的设备。


四、变量(VID)从哪里知道含义?

来自设备提供的 SDD(SEMI Data Dictionary) 文件,或者叫设备说明文档。

SDD 中会写明:

VID名称类型描述
3001LOT_IDA当前批次编号
3002PRODUCT_IDA当前产品型号
3003EQP_STATEU1设备状态码

你要根据这些定义,知道怎么解析:

if (vid.ID == 3001) value = item.Value;         // A
if (vid.ID == 3003) value = item.U1Value;       // U1

五、如何写一个完整的定义流程(初始化时发送 S2F33/S2F35)

// 定义报告
var s2f33 = new SecsMessage(2, 33, "S2F33", true,List(List(List(U2(101), List(U2(3001), U2(3002))), // LOT + PRODUCTList(U2(102), List(U2(3003)))            // EQP_STATE))
);// 绑定事件
var s2f35 = new SecsMessage(2, 35, "S2F35", true,List(List(List(U2(1), List(U2(101))),   // Start LotList(U2(2), List(U2(102)))    // Equipment State Changed))
);// 发送
await gem.SendAsync(s2f33);
await gem.SendAsync(s2f35);

六、小拓展:你可以通过主机自己“定制”想要的数据结构

设备通常在启动后什么都不会上报,只有你:

  • 用 S2F33 告诉它你要哪些变量
  • 用 S2F35 告诉它这些变量在什么事件下触发

这就让你的系统非常灵活。


第十讲 · 小结

名称作用
VID变量编号,比如 LOT_ID、EQ_STATE 等
RPTID报告编号,是 VID 的集合
CEID事件编号,表示设备的某个行为
S2F33定义 RPTID 包含哪些 VID
S2F35绑定 CEID 与 RPTID
SDD设备提供的变量说明文档

你已经搞懂了 SECS/GEM 的“变量结构模型”:

  • 数据是从哪里来的?
  • 怎么告诉设备我要这些数据?
  • 怎么映射成业务逻辑?

下一讲预告:

第十一讲:GEM 控制接口详解——S1F13/S1F14 Online/Offline、S1F1/S1F2、S2F17/S2F18 DateTime 等等

主机不止能“收数据”,也能“控制设备”上线/下线、同步时间、请求状态等。马上开启新篇章。

说声“继续”,我们出发。

相关文章:

  • Python训练营打卡Day48(2025.6.8)
  • 大模型外挂MCP教程(8): 飞算JavaAI智能分析搭建自己的MCP Server
  • Σ∆ 数字滤波
  • Java设计模式面试题详解
  • 内存分配基础:修改SCT文件的简单例子
  • HBM 读的那些事
  • 网络编程(TCP编程)
  • UDP与TCP通信协议技术解析
  • GD图像处理与SESSiON
  • 禅道18.2集成LDAP
  • Linux 文件系统底层原理笔记:磁盘结构、ext2 文件系统与软硬链接解析
  • C++----剖析list
  • 前沿探索:可视化助力设备运维实现跨越式发展
  • 分析 java 的 Map<String,Map<String, List<Map<String,Integer>>>>
  • 初入 python Django 框架总结
  • Reasoning over Uncertain Text by Generative Large Language Models
  • 《Spring Boot 微服务架构下的高并发活动系统设计与实践》
  • webstorm 配置Eslint
  • 量子计算导论课程设计 之 PennyLane环境搭建
  • 深入了解linux系统—— 共享内存
  • 建设手机银行官方网站/现在有哪些网址
  • 建立一个网站的技术解决方案/友情链接名词解释
  • html5的网站有哪些/外贸网站推广优化
  • 网站建设参考文献/色盲测试图动物
  • 做商城网站在哪里注册营业执照/免费软文推广平台
  • 北京网站建设报价/企业查询系统