eis/src/rcv/rcv_readme.md
Huamonarch 09b48b07e5 Add READMEs for all infrastructure services and overall project
- EIS_README.md: Overall project architecture, data flow, service inventory
- zmqp/zmqc_readme: ActiveMQ producer/consumer bridging ICE
- zcache_readme: Data cache hub with address mapping and type conversion
- zhd_readme: Real-time snapshot persistence to iHyperDB
- zinit_readme: DB2-to-shared-memory initialization service
- zsub/zudp/zdsf/rcv_readme: Data receiver layer for different on-site protocols
2026-05-09 12:13:00 +08:00

3.7 KiB
Raw Permalink Blame History

rcv — L1 电文接收与路由

概述

rcv 是 EIS 系统中的 L1 电文接收与路由分发器。它通过 ICE 接收来自 L1一级自动化系统的各种电文telegram根据电文号和事件类型将数据路由到对应的 L2 服务数据缓存zcache、物料跟踪ztrk/zmtr

进程架构

  L1 系统 / znode / zsub
       │
       │ ICE HandleMessage(ByteSeq)
       ▼
  ┌──────────────────────────────────────────┐
  │              rcv                          │
  │                                           │
  │  HandleMessage(ByteSeq)                   │
  │       │                                   │
  │       ├→ 解析 stru_recvtext7 结构          │
  │       │   ├─ textbuf: 电文正文            │
  │       │   ├─ textlenth: 电文长度           │
  │       │   ├─ ctextno: 电文号 (TeleID)     │
  │       │   ├─ lineno: 回线号               │
  │       │   └─ header: 报文头               │
  │       │                                   │
  │       ├→ TeleID < 2000 (排除1000):       │
  │       │    MemoryData(带4字节头)           │
  │       │                                   │
  │       └→ TeleID >= 2000 或 =1000:        │
  │            MemoryData(仅 textbuf)          │
  │                                           │
  │  MemoryData()                              │
  │       │                                   │
  │       ├→ EV_TRK_SIGNAL (跟踪信号):        │
  │       │    ├→ ztrk_proxy (区域跟踪)        │
  │       │    └→ zmtr_proxy (物料跟踪)        │
  │       │                                   │
  │       └→ 其他事件:                         │
  │            └→ zcache_proxy (数据缓存)       │
  │                                           │
  └──────────────────────────────────────────┘

核心职责

电文路由

rcv 不做数据解析,而是按电文类型做纯路由

电文类型 目标 用途
跟踪信号 ztrk + zmtr 带钢位置跟踪和物料信息跟踪
其他所有 zcache 通用 PLC 数据缓存

L1-L2 桥接

rcv 是 L1设备控制层和 L2过程控制层之间的关键桥接点。代码历史中保留了大量 L1-L2 电文路由的注释,包括:

  • 跟踪初始化电文
  • 入口/轧机/炉区/酸洗/出口各段的周期数据电文
  • PDI/PDO 数据电文
  • 称重数据电文
  • 辊子性能电文
  • 锌层厚度电文

这些历史路由已被简化,当前大多数电文统一转发到 zcache 进行处理。

ICE 接口

服务端(接收调用)

方法 说明
HandleMessage(ByteSeq) → ByteSeq 同步请求-响应模式接收电文并返回相同数据echo

客户端(代理调用)

代理 用途
baosight/zcache 通用数据缓存
baosight/ztrk 区域跟踪
baosight/zmtr 物料跟踪

现场适用场景

rcv 是 EIS 系统中最通用的数据入口,适用于通过 iXcomTCP2 协议接收 L1 电文的场景。它作为 L1-L2 的电文调度中心,将所有到达的电文按类型分发给正确的 L2 服务。

源文件

src/rcv/
├── RcvBase.cpp    # PACE 组件入口 + ICE 代理初始化 + HandleMessage
├── RcvCus.cpp     # MemoryData() 电文路由逻辑
└── makefile