同UCanCode一起释放 Visual C++, C# 的巨大能量!
UC UCanCodeSCADA / DCS / HMI
SUMMARY

技术总结与附录

三条数据链路、七个技术支柱、客观差距与演进方向,以及术语/端口/测试方法附录

第 6 章 总结

图 18  三条数据链路的端到端路径
图 18 三条数据链路的端到端路径

6.1 技术总结

平台的完整数据链路可归纳为三条并行的高速通道:实时链路(采集 → 质量码与死区 → 实时库 → 订阅推送 → 画面/浏览器)、历史链路(写入 → 环形缓冲 → WAL 与压缩归档 → 有界索引 → 日窗与区间查询)、报警链路(判定分级 → 队列 → 确认/搁置/复核 → 报警历史与 SOE → 查询与转发)。三条链路共享同一套组态模型与同一套内核,在桌面站与浏览器站上表现一致。

八个技术支柱支撑了这套体系:

  • 统一运行时内核:Designer、Player、WebPlayer 共享实时库、时序库、报警引擎、图形渲染、脚本引擎与驱动框架,消除「组态所见」与「运行所得」的偏差。
  • 可核算的内存治理:键级与点级内存记账、容量硬上限、淘汰策略、背压与拒绝指标,使内存问题从经验判断变为指标驱动。
  • 可靠的持久化:实时库的 AOF/RDB/混合持久化与复制;时序库的 WAL 预写日志与分片段落,解决掉电丢数据这一经典问题。
  • 面向规模的组态引擎:分段配置池 + 冷字符串去重 + 有界索引,实测支撑 1 426 002 测点、有效数据 140 B/点、长稳漂移 0.230%。
  • 工程化的驱动框架:统一的设备/数据块/命令抽象,使新增协议自动获得批量优化、线程隔离、重连、质量码与诊断统计能力。
  • WebAssembly 运行站:固定内存预算 + 异步优先 + 默认安全,在浏览器中提供完整运行站能力,而非功能子集。
  • 全链路可观测:实时库 INFO 全量指标、系统/业务指标中心、5 页签监控面板、报警 KPI(ISA-18.2 口径)、通道诊断与事件日志。
  • 平台自带运行看护与自愈:HMICare 把「进程还活着吗」与「功能还在干活吗」变为持续指标与告警,对崩溃、挂起、内存越限执行带现场保护与风暴保护的自动重启,并以「磁盘 → 链路 → 安全 → 可用性」四维自检专抓静默失效——这是与前七个支柱不同性质的一项:它守护的不是数据,而是平台自身的可信度。
  • 6.2 价值总结

    对谁核心价值
    最终用户(业主)无授权限制的规模化扩展;Web 免安装降低终端运维成本;报警与操作策略的强制约束降低误操作风险;完整审计满足合规要求
    系统集成商全栈源码支持深度定制与非标协议接入;一次组态覆盖桌面与 Web 两种交付形态;可基于平台构建行业解决方案而不受厂商授权约束
    运维团队内存与容量有明确口径,容量规划可计算;指标齐全、故障可解释;支持在线诊断与热更新,减少停机窗口;由 HMICare 承担「崩溃自动重启 + 静默失效告警 + 巡检报告」,把夜间与远程站点的恢复从「等人到场」变为「分钟级自愈」
    信创合规部门提供国产 OS + 国产 CPU 的构建脚本与部署指引;依赖源码内建,可完整重构建,满足自主可控要求
    二次开发者统一驱动框架、开放数据接口(实时库 RESP / OPC UA / MQTT)、完整源码,可把平台作为技术底座

    6.3 客观差距与持续演进

    为保证技术判断的客观性,以下差距需要明确说明:

    差距项现状演进方向
    第三方生态图元素材库、行业套件、认证体系规模小于国际主流厂商持续积累行业图元库与工程模板;通过 OPC UA/MQTT 标准接口接入第三方生态
    全球服务网络服务能力依赖集成商与合作伙伴强化文档、示例工程与自助诊断工具,降低对现场服务的依赖
    Web 端资源上限受固定 512 MiB 内存预算约束,单页点数与缓存低于桌面端按场景提供「预算档位」配置,并结合增量渲染与按需装载进一步优化
    历史库高级分析以查询与统计为主,分析类功能(多变量相关性、异常检测)尚在演进在时序库之上构建分析层,保持与现有查询接口兼容
    运行看护的平台覆盖HMICare 当前为 Windows 7+ 64 位实现(依赖 PDH / WER / 会话助手等 Win32 能力)Linux 侧以运行站自身的门禁与状态导出承担同类职责;后续按需评估 Linux 侧看护实现
    看护器的单线程模型采样、判定、重启、落库同在一个事件循环,慢盘上的大批量历史查询可能拖慢采样节拍历史查询限定必要区间;必要时把重查询移出主循环或引入只读连接

    演进路线建议按三条主线推进:能力线(更深的分析能力、更强的 3D 与仿真集成)、规模线(更高测点密度下的渲染与查询优化、更高压缩比)、生态线(行业图元库、工程模板、第三方协议与系统适配)。

    6.4 结语

    工业监控软件的价值最终由三件事决定:能不能接进来(协议与集成能力)、能不能扛住(规模、性能与长期稳定)、能不能改得动(开放性与可定制性)。UCanCode SCADA/DCS/嵌入式 HMI 平台在这三点上给出了一致的答案:以统一驱动框架解决接入,以可核算的数据引擎解决规模与稳定,以全栈源码与国产信创适配解决长期演进与自主可控。

    更重要的是,平台把「Web 运行站」从概念做成了工程现实——同一套内核运行在浏览器中,并把内存、异步与安全三个难题以明确的机制(固定预算 + 分级回收、强制异步 + 游标取消、默认关闭 + 白名单 + 清单校验)逐一解决。这使平台能够同时适应传统 OT 现场与 IT 化、国产化的新一代交付要求。

    同样值得强调的是,平台把「可靠运行」从运维经验变成了软件能力。传统做法是「让经验丰富的工程师多巡检、出事快重启」;而 HMICare 把这件事固化为可观测的指标、可自愈的流程与可交付的巡检报告——进程崩溃、消息循环卡死、内存单向增长、历史库静默停写、PLC 链路劣化、多机时钟不一致,这些过去要靠人盯的失效模式,现在都有明确的代码、阈值与处置路径。对一个要在无人值守站点上连续跑数年的系统而言,这项能力的价值往往高于任何单项性能指标。

    注
    本白皮书所述功能与指标基于当前版本源码与工程文档。具体项目中的功能范围、性能水平与交付形态,以实际工程配置、硬件环境与项目技术协议为准。

    附录 A 缩略语与术语

    缩略语 / 术语全称 / 含义
    SCADASupervisory Control and Data Acquisition,数据采集与监视控制系统
    DCSDistributed Control System,集散控制系统
    HMIHuman Machine Interface,人机界面
    SOESequence of Events,事件顺序记录(毫秒级)
    SBOSelect-Before-Operate,选择-校验-执行型操作
    RBACRole-Based Access Control,基于角色的访问控制
    WASMWebAssembly,浏览器可执行的二进制指令格式
    IDBFSIndexedDB File System,浏览器持久化虚拟文件系统
    AOF / RDBAppend Only File / Redis Database,两种持久化方式
    PSYNCPartial Synchronization,增量复制同步语义
    WALWrite-Ahead Log,预写日志
    OOOOut-Of-Order,乱序样本
    LRU / LFULeast Recently Used / Least Frequently Used,淘汰算法
    CTSP站级 Historian 查询桥协议(本平台内部命名)
    ISA-95 / ISA-18.2企业控制系统层级标准 / 报警管理标准
    ISA-95 设备树按企业-厂区-产线-设备层级组织资产结构的模型
    Edge Loop 边缘回路边缘侧闭环控制与本地逻辑处理能力
    HUD运维诊断浮层(Web 端运行状态显示)
    PDHWindows Performance Data Helper,性能计数器采集接口
    WER / LocalDumpsWindows Error Reporting 及其本地转储策略(崩溃瞬间写 dump)
    minidump进程内存转储文件,用于事后崩溃分析
    SNTP简单网络时间协议,用于对时偏差检测
    Session 0Windows 服务所在会话,不呈现交互桌面
    IEC 62443工业自动化与控制系统网络安全国际标准
    可用率 / 未观测时间窗口内在线时间占比 / 看护自身不在岗、从可用率分母剔除的时段
    SHA-256 哈希链逐条记录串联哈希的防篡改审计结构,篡改即断链
    TCOTotal Cost of Ownership,总体拥有成本
    信创信息技术应用创新(国产化替代)

    附录 B 端口、协议与配置清单

    B.1 网络端口

    端口协议用途默认值来源
    8030WebSocket / WSSucchmiserver 数据服务配置项(默认 8030)
    6389TCP(RESP 兼容)UCCRealDb 命令服务 / 复制配置项(默认 6389)
    9100TCP站级 Historian 查询桥配置项(默认 9100)
    45452UDP实时数据转发代码常量
    45454UDP告警转发代码常量
    1883 / 8883MQTT / MQTTS消息总线配置默认值
    4840 / 49320OPC UA(opc.tcp)OPC UA 服务端配置默认值(4840 标准;与其它服务共存时改用 49320 等)
    80 / 8080HTTP工程与媒体分发、HTTP 测试服务部署时配置
    —MySQL 默认端口站点历史数据源(可选)部署时配置
    —本地命名管道HMICare 控制通道(引擎 ←→ 界面),不占用 TCP 端口代码常量(\\.\pipe\...)
    —SNTP(UDP 123)HMICare 对时偏差检测(出向)配置默认 time.windows.com

    B.2 支持的通信协议

    分类协议
    通用与现场总线Modbus RTU、Modbus TCP、Modbus ASCII、自定义 ASCII
    PLC 专有Siemens S7(S7comm)、Mitsubishi FINS、Omron FINS、EtherNet/IP(CIP)
    电力与公用IEC 60870-5-104、DNP3
    标准互操作OPC UA(含安全策略、订阅与报警条件)、OPC DA
    消息总线MQTT(Broker / Bridge、TLS、Will、Topic 映射)
    总线与设备CAN / CANopen、BACnet
    数据交换SQL 数据源(SQLite / MySQL)、文件与媒体交换

    B.3 关键配置文件与产物

    文件 / 产物用途
    工程文件(画面、图元、脚本)组态结果主体
    工程侧车文件(策略 / 诊断 / 安全 / 锁)与画面解耦的工程治理与运行策略
    运行策略 / 安全策略 JSON联锁、SBO、报警分级、登录与授权策略
    实时库配置(uccrealdb/* 段)监听地址与端口、客户端端点、容量与持久化参数
    网关配置(数据源 / WebSocket / Historian / WSS)ucchmiserver 运行参数
    MQTT 运行配置(mqtt/* 段)Broker 地址、端口、TLS、ClientID、Will 主题
    OPC UA 配置与证书目录端点、安全策略、证书与信任列表
    WebPlayer 构建产物(.js / .wasm / .data)浏览器端静态资源
    工程分发目录 + manifest.json工程与媒体分发清单(含可选 SHA256)
    监控快照导出(hmi.monitor.snapshot/v1)运行指标快照导出,便于归档与外部分析
    hmicare.ini(HMICare)看护配置:目标、看护与重启策略、阈值与内存保护、泄漏判定、现场保护、历史保留、服务、四维自检参数
    var\hmicare.db、var\crash\、var\audit\、var\log\(HMICare)看护历史库(SQLite/WAL)、转储与截图、哈希链审计、看护日志
    chmi_channel_diag.json、operator_journal.log(运行站产出)通道诊断快照与操作审计流水,供 HMICare 只读消费

    附录 C 性能测试方法与复现建议

    C.1 实时库压测

    项目内提供 TCP 压测脚本,按阶段顺序执行各类命令并输出吞吐与延迟分位值。

    # 示例:8 连接、value 1024 B、预热 200 次
    python uccrealdb_tcp_bench.py --n 6000 --concurrency 8 --value-size 1024 \
        --warmup 200 --csv out_c8_v1024.csv
    
    # 与 Redis 对齐比较(单连接、无 pipeline)
    redis-benchmark -h 127.0.0.1 -p 6379 -t set,get -n 6000 -c 1 -d 32 -P 1 -q
  • 测试阶段:SET → GET → DEL → HSET(n/2)→ RPUSH(n/2)→ ZADD(n)。
  • 统计口径:ops 为多线程合计操作数;吞吐为 ops / elapsed;延迟取 p50 / p95。
  • 注意事项:ZADD 共用单键,最易形成热点,其对并发更敏感;比较不同产品时应关闭或统一持久化策略。
  • C.2 大规模组态测试

  • 规模切换:通过 --scale 参数切换测点规模(如 --scale=1 约 53.8 万点、--scale=4 约 142.6 万点),便于按比例复核结论。
  • 测量项:进程 RSS、注册表记账合计、有效测点实占、冷池去重条目数、长稳漂移、保存/重载耗时、落盘体积、抽样一致性。
  • 长稳测试:以百万次以上的读写混合操作观察 RSS 漂移(参考值 0.230%)。
  • 一致性测试:多线程混合建点后校验 tag_id 唯一性、索引 ←→ 名称 ←→ 位置一致性、CRC/魔数自检。
  • C.3 Web 端测试

  • 内存:浏览器任务管理器观察线性内存占用随时间的曲线;反复切换页面/曲线/3D 场景,验证压力分级回收是否生效。
  • 异步正确性:快速翻页与切换画面,验证旧查询被正确取消、不出现结果错位或界面冻结。
  • 断线恢复:断开网络后恢复,验证重连与会话恢复、数据补齐与质量码表现。
  • 完整性:篡改分发的工程文件,验证 SHA256 校验能否拦截并给出明确错误。
  • C.4 验收建议指标

    验收项建议方法关注点
    实时刷新性能在最大画面下逐级提升测点刷新密度帧率稳定、无卡顿、CPU 占用线性增长
    历史查询响应查询最大时间跨度与最大点数异步不阻塞 UI、可取消、失败有明确错误
    报警风暴人为触发大量报警队列不丢关键报警、界面不冻结、KPI 统计正确
    冗余切换手动切换主备数据连续、质量码与时间戳无空洞、切换时间可接受
    长稳运行连续运行 7×24 小时以上RSS 漂移在可接受范围、无句柄/线程泄漏
    Web 端长稳浏览器标签页持续运行数十小时内存占用稳定、无强制回收引发的可感知卡顿
    信创环境目标国产 OS + 国产 CPU 上完整构建与运行可完整重构建、协议通信正常、性能满足要求

    C.5 HMICare 看护自检与验收

    看护能力的验收无法靠「看起来在跑」判断,平台提供了三条可复现的验证路径,全部不需要人工点击界面:

    验收项方法与命令通过判据
    看护角色与被监护对象hmicare.exe --status看护角色显示「已被占用(看护进程 pid=…)」或「由服务 … 看护中」;目标进程 pid 与运行时长正确;历史库可打开
    采集 → 控制通道 → 界面 全链路hmicare.exe --ui-selftest(HMICARE_SELFTEST_SEC=15)输出界面角色、控制通道、状态栏文案、各趋势曲线数与点数、告警/事件/重启表行数,以及运行自检页四张卡片文案与四张明细表实际行数
    界面渲染正确性(发版前)--ui-selftest + python tools\ui_snapshot_check.py + python tools\gauge_needle_check.py结构体检全部 [OK](等级色、卡片成排、表盘个数、工具条图标归一);指针反解偏差 < 1.5 个百分点
    自愈链路在测试环境手动杀掉被监护进程(或制造挂起)看护按策略重新拉起;重启记录含原因、旧/新 PID、退出码、中断时长;非人工重启前生成 minidump 与画面截图
    现场保护与 WER制造崩溃(非人工重启)var\crash 出现转储;开启 werLocalDumps 时可回捞「崩溃瞬间」的转储
    静默失效判定暂停历史写入 / 停止写通道诊断快照分别出现 storage-db-stale 与 link-diag-stale 告警,且不影响目标进程
    审计链完整性界面「查看审计日志」或校验入口哈希链校验通过;人为篡改一行后校验应报断链(sec-audit-broken)
    巡检报告Ctrl+P 导出 HTML 运行健康报告报告自包含、十章齐全,可直接交付或归档
    注
    验收原则:看护的价值在于「出事时真的会动」。因此验收必须包含故障注入(杀进程、造挂起、停写入),只验证「界面能打开」等于没有验证自愈能力。

    附录 D 文档索引

    本白皮书的技术细节可与仓库内以下工程文档互相印证(供技术评审与深入阅读使用):

    文档类别内容
    安装调试说明书产品架构、站点角色、硬件软件要求、安装步骤、可选组件、授权与安全部署、防火墙端口、调试与验收
    Designer 工程树功能操作说明通道诊断、运行服务配置、操作策略、ISA-95 设备树、边缘回路、安全策略、多用户协同与检出锁、工程侧车
    实时库补强方案内存核算、容量与淘汰、过期、热缓存、lazyfree、持久化、复制、可观测、写路径复杂度与 P0~P2 问题清单
    实时库压测样例9 组 TCP 压测归档数据、与 Redis 对齐的测试方法、优化前后对比
    实时库监控与运维面板INFO 字段口径、指标阈值、处置建议、监控面板页签设计
    实时库对外接口定义命令面与 INFO 字段的完整定义与新增字段清单
    时序库补强与运维存储架构、稳定性(崩溃恢复 / WAL)、容量与内存、性能优化、可观测指标与管理接口
    百万测点综合测试与补强方案容量、性能、冷池去重、内存占用、长稳漂移、并发、持久化、名称哈希碰撞与补强清单
    MQTT Bridge 说明桥接配置、主题映射、Will 消息、入队与状态快照
    WebPlayer WASM 架构说明网关契约、文本帧与二进制通道、安全边界、运维 HUD、二次冷启动
    WebPlayer 对外运维 API运行状态、事件、崩溃报告、安全策略、宿主脚本控制接口
    HMICare 功能操作说明HMICare 的能力模型、部署与三种运行形态、界面与操作详解、四维运行自检、告警代码速查、关键参数、命令行、日常运维作业、目录与文件、安全边界与已知限制
    信创构建脚本国产 OS + 国产 CPU 的本地构建流程与依赖说明
    注
    如需更深入的实现细节(例如某条命令的具体语义、某个策略参数的取值范围),建议直接查阅对应源码或上述工程文档——这也是「源码开放」带来的实际工作方式:文档与实现可以互相验证。