3. SECS变量(SVID/ECID/VID)概念:变量类型、ID范围、数据格式

在SECS/GEM协议体系中,变量是连接设备状态与上位机(Host)的桥梁。根据用途和访问方式的不同,SECS定义了三种核心变量类型:SVID(状态变量ID)、ECID(设备常量ID)和VID(变量ID,用于数据收集与追溯)。理解这三类变量的定义、ID范围及数据格式,是进行DataItem映射设计的基础。

3.1 变量类型与核心差异

下表从用途、访问权限、更新机制三个维度对比三类变量:

变量类型 全称 用途 访问权限 典型更新方式
SVID Status Variable ID 反映设备实时状态(温度、压力、速度等) 只读(Host查询) 设备主动上报或Host轮询
ECID Equipment Constant ID 设备配置参数(超时时间、工艺配方号等) 可读可写(Host可修改) Host设置后设备确认
VID Variable ID 数据收集(Trace/Report)中的变量标识 只读(按需采集) Host订阅后周期性或事件触发上报
设计提示: 在映射DataItem时,SVID通常对应设备实时监控点,ECID对应可调参数,VID则用于构建数据收集计划(DCP)。三者ID空间独立,允许重复编号,但实际项目中建议统一规划以避免混淆。

3.2 ID范围与分配规则

SECS/GEM标准对ID范围给出了建议,但具体分配由设备厂商自行定义。以下是常见实践:

  • SVID:通常使用 0–65535(U2/U4),0 保留,1–999 为系统预定义,1000+ 为厂商自定义。
  • ECID:同样使用 0–65535,0 保留,1–99 为GEM标准常量,100+ 为厂商扩展。
  • VID:范围 0–65535,用于Report和Trace中引用SVID或ECID。
避坑指南: 不同设备厂商可能使用相同的ID编号表示不同含义。在集成多厂商设备时,必须通过设备型号或版本号进行ID空间隔离,避免映射冲突。

3.3 数据格式(SML类型)

SECS变量支持多种数据格式,通过SML(SECS Message Language)类型标识。下表列出最常用的格式:

SML类型 描述 字节长度 示例值
U1/U2/U4/U8 无符号整数(1/2/4/8字节) 1/2/4/8 100, 65535, 4000000000
I1/I2/I4/I8 有符号整数(1/2/4/8字节) 1/2/4/8 -50, 32767, -2000000000
F4/F8 浮点数(4/8字节) 4/8 23.5, 3.1415926535
BOOLEAN 布尔值 1 TRUE / FALSE
A ASCII字符串 可变(最大255) "CHAMBER_1"
B 二进制数据 可变 0x1A2B

3.4 变量定义与映射关系图

下图展示了SVID、ECID、VID在设备与Host之间的逻辑关系,以及它们如何通过SECS消息进行交互:

SECS变量类型与映射关系 设备内部数据源 传感器/执行器 (温度、压力、阀状态) 配置参数表 (超时、配方号、阈值) 事件/报警源 (完成、异常、警告) SECS变量定义 SVID ID: 1001, 格式: F4 ECID ID: 201, 格式: U2 VID ID: 5001, 引用SVID Host应用 状态监控 S1F3/S1F4 参数配置 S2F13/S2F14 数据收集 S2F23/S6F1 说明:设备内部数据通过SVID/ECID/VID变量定义,经SECS消息映射到Host应用,实现状态监控、参数配置与数据收集。

3.5 变量定义示例(SML格式)

在SECS通信中,变量定义通常以SML格式描述。以下是一个典型的变量定义片段:

-- SVID定义:腔体温度(只读)
SVID, 1001, F4, "Chamber Temperature", 
    "摄氏度", 0.0, 300.0

-- ECID定义:工艺超时时间(可读写)
ECID, 201, U2, "Process Timeout",
    "秒", 10, 600

-- VID定义:用于Trace的变量引用
VID, 5001, SVID, 1001
VID, 5002, ECID, 201
关键点:
  • 每个变量定义必须包含:ID、数据类型、名称、单位、有效范围。
  • VID本身不存储数据,它只是一个引用指针,指向SVID或ECID。
  • 数据格式的选择直接影响传输效率:U1/U2适合小范围整数,F4适合浮点测量值,A适合文本标识。

3.6 变量映射到DataItem的典型流程

在实际项目中,将SECS变量映射为DataItem通常遵循以下步骤:

  1. 识别数据源:确定设备中需要暴露给Host的物理量或参数。
  2. 分配变量ID:根据ID范围规则,为每个数据点分配唯一的SVID/ECID。
  3. 选择数据格式:根据数据特性(整数/浮点/字符串)和精度要求,选择最合适的SML类型。
  4. 定义VID引用:对于需要参与数据收集的变量,创建VID并指向对应的SVID或ECID。
  5. 生成映射表:将变量ID与DataItem名称、单位、转换公式等元数据关联,形成映射文档。

通过以上步骤,设备数据得以标准化、结构化的方式与上位机交互,为后续的自动化控制与数据分析奠定基础。