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

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

那我们继续——


第十一讲:GEM 控制指令大揭秘——设备上线、下线、时间同步、状态请求等控制型报文详解

关键词:S1F13/S1F14、S1F1/S1F2、S2F17/S2F18、Remote Command、时间同步、状态检查、Online/Offline 切换


本讲目标

你将掌握:

  • 如何让设备“上线”或“下线”?
  • 如何请求设备当前状态?
  • 如何同步设备时间?
  • 所谓的“Remote Command”机制是啥?
  • 设备在不同控制状态下有什么差异?

这些内容是你从“信息接收者”转向“控制中心”的关键节点。


一、主机对设备可以下发哪些“控制指令”?

GEM 的控制类指令大致可以分为三类:

类型报文功能
状态指令S1F1/S1F2请求设备当前控制状态
控制上线S1F13请求设备 Online
控制下线S1F15请求设备 Offline
时间同步S2F31设置设备时间
时间获取S2F17/S2F18获取设备时间

这些都属于标准的 SECS/GEM 报文。


二、S1F1 / S1F2:获取设备控制状态

最基础的问候:

S1F1 // Are You There?
S1F2 // I'm here!

设备上线后,主机通常会发一次 S1F1,设备回应 S1F2。

这既是连通性测试,也是第一次“握手”。


三、S1F13 / S1F14:设备上线(Online)

主机发送 S1F13,请求设备进入“Remote”模式(远程控制)。

var s1f13 = new SecsMessage(1, 13, "S1F13", true);
await gem.SendAsync(s1f13);

设备收到后会回应:

S1F14
- HCACK(回应码):0 = OK  
1 = Equipment Busy  
2 = Already On-Line  
5 = Rejected你需要判断 HCACK 来确认设备是否接受上线指令。

四、S1F15 / S1F16:设备下线(Offline)

与上线对应,用于切换设备为“Local”模式。

S1F15 → 请求 Offline  
S1F16 → 回应 HCACK

一般当你要做维护、校准、人工操作时,会让设备 Offline。


五、S2F17 / S2F18:读取设备时间

同步时间是很多系统的基础需求。

// 主机发 S2F17
var msg = new SecsMessage(2, 17, "S2F17", true);
var reply = await gem.SendAsync(msg);// 设备回 S2F18,返回当前时间字符串
string eqTime = reply.SecsItem.Value;

六、S2F31:设置设备时间

主机可以用这个指令,把自己的系统时间设置给设备:

string now = DateTime.Now.ToString("yyMMddHHmmss");
var msg = new SecsMessage(2, 31, "S2F31", true, ASCII(now));
await gem.SendAsync(msg);

设备会接受并同步。

这个功能在多设备协同时很重要。


七、Remote Command:GEM 的远程控制机制

除了上线/下线,GEM 允许主机对设备执行“命令”操作,比如:

  • START LOT
  • STOP LOT
  • RESET ALARM

这些被称为 Remote Command,格式如下:

主机发送:S2F41

S2F41
- RCMD = 命令名(如 "START"- Parameters = [ (名称,), ... ]
var s2f41 = new SecsMessage(2, 41, "S2F41", true,List(ASCII("START_LOT"),List(List(ASCII("LOT_ID"), ASCII("A001")),List(ASCII("PORT_ID"), U1(1))))
);

设备回应:S2F42

S2F42
- HCACK(处理结果)0 = OK  
1 = Cannot Perform Now  
2 = Parameter Error  
3 = Unknown Command

你可以根据回应判断命令是否成功执行。


八、设备控制状态的含义(Online / Offline / Local / Remote)

状态描述
Online Remote主机控制状态,设备执行主机指令
Online Local操作员控制状态,设备只接受本地操作
Offline设备脱机,不接受任何控制指令

你的系统中要根据当前设备状态,决定是否允许下发命令。


第十一讲 · 小结

报文功能
S1F1/S1F2设备握手
S1F13/S1F14请求设备上线
S1F15/S1F16请求设备下线
S2F17/S2F18获取设备时间
S2F31设置设备时间
S2F41/S2F42远程命令调用

你已经掌握了如何:

  • 控制设备上线/下线
  • 与设备同步时间
  • 向设备发送指令并处理回应

这些能力让你的 EAP 不再只是“被动听众”,而是具备“主控权”的核心角色。


下一讲预告:

第十二讲:完整事件通知流程详解——从 CEID 触发,到主机接收,再到业务处理的全链路剖析

设备发生一个事件,主机是怎么一步步收到数据的?下一讲将从时序角度剖析“事件通知全流程”。

说声“继续”,我们接着来。

相关文章:

  • 论文略读:Position: AI Evaluation Should Learn from How We Test Humans
  • SpringCloud学习笔记-4
  • Linux驱动学习day3
  • 动手学深度学习pytorch(第一版)学习笔记汇总
  • 6.8 note
  • el-input,金额千分符自动转换
  • window下配置ssh免密登录服务器
  • RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
  • 【网站建设】不同类型网站如何选择服务器?建站项目实战总结
  • 【MySQL系列】MySQL 执行 SQL 文件
  • GeoBoundaries下载行政区划边界数据(提供中国资源shapefile)
  • Linux:守护进程(进程组、会话和守护进程)
  • Ubuntu系统多网卡多相机IP设置方法
  • Prompt工程学习之思维树(TOT)
  • Prompt Tuning(提示调优)到底训练优化的什么部位
  • 在React 中安装和配置 shadcn/ui
  • Windmill:开源开发者基础设施的革命者
  • Prompt工程学习之自我一致性
  • 双指针详解
  • 《第五人格》暑期活动前瞻爆料:39赛季精华、限定时装返场、新玩法攻略
  • 做同城网站赚钱吗/网络营销常见的工具
  • 网站后台看不到部分内容/正规百度推广
  • 网站架构设计师面试技巧/百度号码认证平台官网首页
  • 哪个网站建站比较好/图片外链工具
  • 电子商务网站建设源码/什么是网络销售
  • 网站商城建设费用/班级优化大师的功能有哪些