3. WinCC变量记录与归档配置
在WinCC中,变量记录系统是生产报表的数据源头。实时值只反映“此刻”,而报表需要的是“过去一段时间内发生了什么”。变量记录(Tag Logging)负责把过程值按设定节奏采集并写入归档数据库,使趋势曲线、班次统计、质量追溯成为可能。理解它的结构、周期参数与容量规划,是报表工程能否长期稳定运行的基础。
变量记录系统的三层结构
WinCC变量记录由三个层次协同工作:采集层、归档层和存储层。采集层由“采集周期”驱动,决定从PLC或内部变量中读取数值的频率;归档层由“归档周期”驱动,决定把采集到的值写入归档数据库的频率;存储层则是归档数据库文件本身,通常位于项目路径下的ArchiveManager文件夹中,以分段文件形式循环保存。
需要特别区分两个周期:采集周期是“多久读一次”,归档周期是“多久存一次”。当归档周期等于采集周期时,每个采集值都被保存;当归档周期大于采集周期时,系统会在归档时刻取最近一次采集值写入,中间值被丢弃。例如采集周期设为1秒、归档周期设为10秒,则每10秒只保留一个值,适合变化缓慢的温度、液位等模拟量,可显著降低数据库增长压力。
模拟量与数字量的归档组态差异
模拟量归档的核心是“周期归档”与“变化归档”的选择。周期归档按固定时间间隔记录,适合温度、压力、流量等连续变化且需要完整趋势的变量;变化归档只在数值变化超过设定死区时记录,适合变化稀疏但需要捕捉突变的变量。在WinCC变量记录的“归档”属性中,可以为每个变量单独指定归档类型、周期和死区。
数字量(二进制变量)的归档策略不同。数字量通常表示设备启停、阀门开关、报警状态等,其值只有0和1。对数字量使用周期归档会产生大量重复记录,浪费空间。更合理的做法是采用“变化归档”,即只在0→1或1→0时记录一条带时间戳的事件。这样既能完整还原状态变化序列,又能把数据量压缩到最低。例如一台泵每天启停20次,变化归档一天只产生约40条记录,而1秒周期归档会产生86400条。
在组态时还需注意:数字量归档应确保“采集周期”足够快,以免错过短脉冲。若采集周期为10秒,而阀门只开了3秒,这个状态就可能被漏掉。因此数字量的采集周期通常设为1秒或更快,归档则采用变化触发。
归档数据库位置与容量规划
WinCC归档数据库默认位于项目文件夹的ArchiveManager子目录下,文件按时间段分段,常见命名如TLG_F_20240101_0000。每个分段文件有大小上限,达到上限后自动创建新段;当总容量或总时间超过设定值时,最旧的分段被覆盖或删除。这一机制决定了归档是“循环缓冲区”,而不是无限增长。
容量规划需要估算数据量。以模拟量为例:假设有200个模拟量,采集周期1秒,归档周期10秒,每个归档值约占20字节(含时间戳和品质),则每天记录数为200×8640=1728000条,约34.6 MB/天。若保留90天,约需3.1 GB。数字量若采用变化归档,假设平均每天变化500次,200个数字量每天约10万条,约2 MB/天,90天约180 MB。两者合计约3.3 GB,再考虑索引和分段开销,建议预留5 GB以上空间。
在WinCC变量记录属性中,可以设置“归档大小”和“归档时间范围”。建议同时设置两者:大小限制防止磁盘被占满,时间限制保证报表能查询到足够久的历史。例如设置最大500 MB、保留90天,系统会以先到者为准执行覆盖。对于关键质量数据,应定期用WinCC归档导出或脚本将数据转存到外部数据库,避免被循环覆盖。
配置示例与检查要点
以下是一个模拟量归档的典型配置片段,用于说明关键参数:
变量名称: Reactor_Temp
变量类型: 模拟量 (浮点数)
采集周期: 1 s
归档类型: 周期归档
归档周期: 10 s
死区: 0.5 °C
归档数据库: ArchiveManager\TLG_F
最大容量: 500 MB
保留时间: 90 天
配置完成后,可通过WinCC的“变量记录运行系统”查看归档状态,确认采集和归档计数正常增长。若发现归档计数不增长,应检查采集周期是否被设为“无”,或归档是否被禁用。若数据库增长过快,应优先检查数字量是否误用了周期归档,以及模拟量归档周期是否过短。
最后需要强调:变量记录系统一旦投入运行,修改归档周期或数据库位置通常需要停止归档并重新启动,部分修改会导致历史数据不可连续查询。因此,在项目初期就应结合报表需求确定好周期、容量和保留策略,避免后期返工。