# SECS-GEM **Repository Path**: biermoe/SECS-GEM ## Basic Information - **Project Name**: SECS-GEM - **Description**: SECS-GEM开源协议库,在Ubantu20.04,ohos测试通过 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SECS-GEM 数据采集系统用户手册 ## 1. 概述 本系统是一个高性能的半导体设备数据采集引擎,基于 SECS/GEM 协议,支持 HSMS(TCP/IP)和 SECS I(串口)通讯。 ### 核心特性 * **多设备并行**:支持在一个程序实例中配置并运行多台设备。 * **自动消息处理**:内置 S1F1、S1F13、S6F11、S10F1 的自动确认逻辑,XML 无需重复定义。 * **高精度采集**:针对 `float8` 类型进行了专项优化,确保双精度浮点数无损提取。 * **高性能写入**:通过 `TagManager` 批量异步写入 DCTag 数据库。 * **事务一致性**:自动同步请求报文的 SystemBytes (Transaction ID),确保通讯符合标准。 --- ## 2. 配置文件说明 (device_config.xml) 配置文件位于程序根目录,根节点为 ``。 ### 2.1 设备信息 `` | 标签 | 说明 | | :--- | :--- | | `deviceName` | 设备易读名称 | | `sampleInterval` | 轮询周期(秒) | | `sampleIsEnable` | 是否启用采集(1: 启用,0: 禁用) | ### 2.2 通讯接口 `` 支持 `HSMS` 和 `SECS I`。 * **HSMS**:需配置 `ipAddress`, `port`, `deviceId`, `slaveMode`(0:主动/1:被动)。 * **SECS I**:需配置 `comPort`, `baudRate`, `parity`, `dataBits`, `stopBits`。 ### 2.3 采集任务 `` 每个任务包含一对 `` 和 ``。 * **方向说明**: * `HtoE` (Host to Equipment):由主机主动下发,用于主动查询(如 S1F3)。 * `EtoH` (Equipment to Host):由设备主动上报,用于被动接收(如 S5F1)。 #### 内置自动响应功能 (无需在 XML 定义) 程序会自动处理以下报文的应答: 1. **S1F13 (Establish Communications)** -> 自动回 **S1F14** (COMMACK=0, MDLN="ZxOS")。 2. **S1F1 (Are You There)** -> 自动回 **S1F2** (MDLN="ZxOS")。 3. **S6F11 (Event Report)** -> 自动回 **S6F12** (ACK6=0)。 4. **S10F1 (Terminal Request)** -> 自动回 **S10F2** (ACKC10=0)。 --- ## 3. 数据处理规则 ### 3.1 数据类型匹配 | 类型 | 说明 | | :--- | :--- | | `float8` | **推荐**。用于腔室压力、温度等高精度数值。 | | `int1/2/4/8` | 整数类型,自动转为双精度浮点上报。 | | `ascii` | 字符串。若内容为数字则转换,否则保留文本(需配合 `state_mapping`)。 | | `binary` | 二进制。常用于 ACK 确认码。 | ### 3.2 状态映射 `` 用于将设备的文本状态转换为数值标签。 ```xml ``` --- ## 4. 常见问题排查 1. **XML 格式错误**:确保所有标签(如 ``)正确闭合,属性名大小写严格匹配 `data_tag`。 2. **SystemBytes 不匹配**:若设备提示事务 ID 错误,请确认是否误用了手动定义的 XML 响应而非内置逻辑。 3. **采集未开启**:检查 `sampleIsEnable` 标签是否设置为 `1`。