数据库分类(WinCC 背后有 4 个数据库?90% 的人只用过 1 个!)

数据库分类(WinCC 背后有 4 个数据库?90% 的人只用过 1 个!)
WinCC 背后有 4 个数据库?90% 的人只用过 1 个!

很多工程师以为 WinCC 就是“做个画面、连个 PLC”那么简单。但其实,WinCC Advanced(V16+)背后是由 4 个独立的 SQL Server 数据库驱动的——它们分工明确,缺一不可。我在轧机项目中就吃过亏:误删了 HMIRT 数据库,导致3 天的历史趋势图全部消失,客户差点拒收!今天,我就把这 HMI、HMIALG、HMIRT、HMITLG 四大数据库的作用、存储内容、使用场景和维护要点,一次性讲清楚。

1. HMI 数据库 —— “工程的大脑”

数据库名示例:CC_YourProjectName

作用:存储所有静态工程配置数据

包含内容:

变量定义(名称、PLC 地址、数据类型)

画面对象(按钮、IO 域、图形、脚本)

报警类别、用户权限、运行系统设置

谁在用它?

你开发时拖拽控件 → 写入 HMI 库

运行时 WinCC Runtime 读取它来加载画面

关键点:

这是唯一在开发阶段被频繁修改的库

你用 C# 同步变量,就是写入这个库的 [MCPTVARIABLEDESC] 表

类比:就像 PLC 的“程序块 + 符号表”,是系统的“源代码”。

2. HMIALG 数据库 —— “报警的黑匣子”

数据库名示例:CC_YourProjectName_HMIALG

作用:永久记录所有报警事件

包含内容:

报警触发时间、确认时间、恢复时间

报警文本、所属类别、操作员

是否已确认、是否已归档

典型表:[dbo].[AlarmLog]

为什么重要?

HMI 画面只显示“当前未确认报警”

历史报警查询、事故复盘全靠 HMIALG

常见问题:

默认不自动清理 → 几个月后磁盘爆满

未启用“报警记录” → 根本没数据!

案例:某钢厂停机 2 小时,靠 HMIALG 中的时间线锁定“先超温、后急停”的因果链。

3. HMIRT 数据库 —— “趋势的时光机”

数据库名示例:CC_YourProjectName_HMIRT

作用:存储过程变量的历史值

数据库分类(WinCC 背后有 4 个数据库?90% 的人只用过 1 个!)

触发条件:

变量必须勾选 “Logging = True”

设置记录周期(如 1 秒、5 秒)

包含内容:

时间戳 + 变量值(如温度=85.3℃)

支持整型、实数、Bool 等类型

如何查看?

WinCC 趋势控件自动读取

或用 SQL 查询 [dbo].[TagValues] 表

性能警告:

不要对 1000 个变量开 100ms 记录!

否则 HMIRT 会迅速膨胀至几十 GB

技巧:只对关键工艺参数(如辊缝、张力)开启高频率记录。

4. HMITLG 数据库 —— “操作的审计员”

数据库名示例:CC_YourProjectName_HMITLG

作用:记录用户操作行为日志

包含内容:

谁在什么时候点击了哪个按钮

谁修改了设定值(如“将速度从 100 改为 120”)

登录/登出记录

如何启用?

在变量或画面对象上勾选 “记录操作”

默认完全关闭!需手动开启才有数据

典型用途:

制药、食品行业:满足 FDA 21 CFR Part 11 审计要求

安全回溯:“是谁复位了急停信号?”

注意:此库数据量小,但法律效力强,建议定期备份。实用维护建议如下:

HMI 建议操作:开发阶段每日备份;生产环境禁止直接改表

HMIALG 建议操作:设置“自动归档”(如保留 180 天);避免磁盘写满

HMIRT 建议操作:按需开启记录;定期导出历史数据后清空

HMITLG 建议操作:启用关键操作记录;保留至少 1 年

通用原则:

不要直接删除 .mdf 文件!

应通过 WinCC 自带的“归档”或“数据库维护”功能操作。

理解这 4 个数据库,你就从“WinCC 使用者”升级为“WinCC 架构师”。它们不是冷冰冰的文件,而是系统运行的“记忆”与“逻辑”。

你在项目中用过 HMIRT 或 HMITLG 吗?遇到过什么坑?评论区交流!

后面我计划将进阶讲测厚仪系列,欢迎关注交流,共同学习进步!

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有