☰
西门子触摸屏设备运行记录与报警视图配置实战
2026/10/6 1:32:24 网站建设 项目流程

1. 为什么要在触摸屏上做设备运行记录

干了十多年工控,我见过太多现场:设备动不动就停机,操作工说“它自己停的”,电工查了半天说“没发现问题”,工程师到现场一看历史曲线,发现是某个接触器偶尔失压。问题是谁也不知道它什么时候会再犯,因为没有记录。设备运行记录这件事,说大不大,说小不小,但真到了扯皮的时候,有没有这份记录,直接决定了你是“有理说不清”还是“拿数据说话”。

这篇内容就是围绕西门子触摸屏组态设备运行记录来展开的,重点讲清楚两件事:一是怎么在西门子触摸屏(以博途WinCC Comfort/Advanced下的精智面板为主)上把设备运行状态、运行时长、启停次数这些数据记录下来;二是怎么把报警视图配置好,让报警和运行记录形成一套完整的追溯体系。适合已经会用博途做基本画面、但对数据记录和报警管理还停留在“能显示就行”阶段的电气工程师、设备维护人员和自动化专业的学生。

我先把结论摆前面:西门子触摸屏做运行记录,核心不是“记录”这个动作本身,而是记录什么、记在哪、怎么触发、怎么让操作工看得懂。很多人一上来就想着用脚本写数据库,其实大可不必,触摸屏自带的数据记录(Data Logging)和报警记录(Alarm Logging)功能已经足够覆盖90%的现场需求,关键是你得知道怎么配、配在哪、参数怎么算。

提示:本文以博途TIA Portal V16及以上版本、精智面板(Comfort Panel)为基准,Comfort/Advanced/Unified的菜单路径略有差异,但核心逻辑一致。基础版面板(Basic Panel)不支持数据记录功能,这一点在选型阶段就要确认清楚。

2. 运行记录到底记什么:需求拆解与方案选型

2.1 先搞清楚“运行记录”在工业现场的真实含义

很多人一听“运行记录”,脑子里第一反应是“记录设备开没开”。这个理解太窄了。在实际项目里,设备运行记录至少包含四个维度:

  • 运行状态记录:设备当前是运行、停止、故障还是待机,状态什么时候变的,变了之后持续了多久。
  • 运行时长统计:设备累计运行了多少小时,本次运行了多久,距离上次保养过了多少小时。
  • 启停次数统计:设备启动了多少次,停止了多少次,频繁启停往往是故障前兆。
  • 报警事件记录:什么时间触发了什么报警,报警持续了多久,操作工有没有确认,什么时候确认的。

这四个维度里,前三个靠数据记录实现,第四个靠报警记录实现。两者在触摸屏上是两套独立的机制,但最终要能在同一个时间轴上对照查看,才能形成完整的追溯链条。

我见过一个典型的反面案例:某包装线设备频繁跳停,操作工说“一天停了七八次”,但触摸屏上只有一个运行指示灯,没有任何记录。后来加了数据记录,发现实际一天停了二十多次,而且集中在某个时间段,最终定位到是电网电压波动导致接触器释放。如果没有这份记录,这个问题可能永远查不出来。

2.2 为什么选触摸屏自带记录而不是外挂方案

做运行记录,理论上有很多方案:可以用PLC自己记录,可以用上位机SCADA记录,可以用外挂数据采集模块,也可以用触摸屏自带的记录功能。为什么我推荐优先用触摸屏自带功能?

第一,成本最低。触摸屏本身就在现场,不需要额外硬件,不需要额外授权(数据记录功能在Comfort面板上是标配),不需要额外布线。

第二,数据在本地,不依赖网络。很多现场的网络环境并不稳定,如果记录依赖上位机或云端,网络一断数据就丢了。触摸屏本地记录存在面板的存储介质上,断网也不影响。

第三,操作工直接可见。记录的目的是让人看,触摸屏就在操作工面前,他随时可以翻看历史记录,不需要跑到办公室开电脑。

第四,和报警系统天然集成。触摸屏的报警记录和数据记录共用同一套时间基准,在报警视图里可以直接关联查看,这是外挂方案很难做到的。

当然,触摸屏记录也有局限:存储容量有限(通常几十MB到几百MB),记录周期不能太快(最快一般100ms,再快就不适合了),不适合做高速数据采集。但对于设备运行记录这种秒级、分钟级的需求,完全够用。

2.3 数据记录和报警记录的分工

这里必须把两套机制的分工说清楚,否则很容易配混:

对比项数据记录(Data Logging)报警记录(Alarm Logging)
记录对象连续变化的变量值离散的报警事件
触发方式周期性或变化时触发报警到达/离开/确认时触发
典型用途运行时长、温度、压力趋势故障报警、操作确认记录
存储格式CSV或TXT,按行记录内部数据库,按事件记录
查看方式趋势视图、表格视图报警视图
容量管理按文件大小或时间覆盖按条目数覆盖

我的建议是:运行状态和运行时长用数据记录,报警事件用报警记录,两者通过时间戳关联。不要试图用数据记录去记报警,也不要用报警记录去记连续变量,那是给自己找麻烦。

3. 数据记录组态:从变量定义到记录文件落地

3.1 变量规划:记录什么变量,用什么数据类型

在博途里做数据记录,第一步不是打开记录编辑器,而是先把变量规划好。变量规划错了,后面全白搭。

运行记录需要的核心变量通常包括:

  • 运行状态字:用一个Word或Int变量表示,比如0=停止,1=运行,2=故障,3=待机。不要用多个Bool变量分别表示,那样记录文件会很难读。
  • 累计运行时长:用DInt或Real,单位秒或小时。建议用秒,显示时再换算,精度更高。
  • 本次运行时长:同上。
  • 启停次数:用DInt,每次启动加1。
  • 当前报警号:用Word,记录当前最高优先级报警的编号。

这些变量在PLC里定义好,然后在触摸屏的“连接”里建立对应的外部变量。注意变量的采集周期要设对:运行状态字用100ms或1s,累计时长用1s,启停次数用100ms(因为启停是瞬间事件,采集太慢会漏掉)。

注意:采集周期不是越短越好。100ms采集一个变量,一天就是864000条记录,触摸屏的存储根本扛不住。运行状态用1s采集完全够用,启停次数如果怕漏,可以在PLC里做边沿检测后锁存,触摸屏按1s采集锁存值。

3.2 创建数据记录:路径与关键参数

在博途的项目树里,找到“运行时设置”下的“数据记录”,右键新建一个数据记录,命名为“设备运行记录”。然后在这个记录里添加变量。

关键参数有三个:

记录方法:有两种选择——“循环记录”和“触发记录”。循环记录是按固定周期写一条,触发记录是变量变化时写一条。运行状态和时长用循环记录,启停次数用触发记录(变化时记录),这样既能保证趋势连续,又不会漏掉瞬间事件。

记录周期:循环记录的最小周期是100ms,但实际项目里我一般设1s或10s。1s适合需要看细节的场景,10s适合只看长期趋势的场景。设备运行记录用1s比较均衡。

存储位置:可以选择存储在面板的Flash上,也可以存储在外部存储卡(SD/MMC)上。Flash容量小但不需要额外硬件,存储卡容量大但需要插卡。我的经验是:短期记录(一周以内)用Flash,长期记录(一个月以上)用存储卡。如果面板支持USB存储,也可以存到U盘,但U盘容易被拔走,不适合无人值守场景。

3.3 记录文件的格式与容量计算

数据记录最终会生成CSV文件,每行一条记录,格式大概是:

TimeStamp;Var1;Var2;Var3 2024-01-15 08:00:00;1;3600;15 2024-01-15 08:00:01;1;3601;15

容量怎么算?假设记录5个变量,每个变量平均8字节,加上时间戳20字节,一行大约60字节。1s记录一次,一天86400行,大约5MB。如果面板Flash有50MB可用空间,能存10天左右。超过之后,循环记录会覆盖最旧的文件。

这个计算很重要,因为它决定了你多久需要导出一次数据。如果项目要求保留三个月记录,那就必须用存储卡或者定期导出到U盘。

提示:博途里可以设置“记录文件的最大数量”和“单个文件的最大大小”,两者配合使用。我一般设单个文件10MB,最多10个文件,这样总容量100MB,超过后自动覆盖最旧的。

3.4 在画面上显示记录:趋势视图与表格视图

记录配好了,操作工得能看到。博途提供了两种显示控件:

趋势视图(Trend View):以曲线形式显示变量随时间的变化。适合看运行状态的变化趋势和时长的增长曲线。配置时把数据记录的变量拖到趋势里,设置好时间轴范围(比如显示最近1小时),操作工一眼就能看出设备什么时候在运行、什么时候停了。

表格视图(Table View):以表格形式显示记录条目。适合查看具体的启停事件和报警记录。可以设置显示列(时间、状态、时长),支持翻页和跳转。

我的做法是:主画面上放一个趋势视图显示最近2小时的运行状态,旁边放一个表格视图显示最近20条启停记录。操作工不需要翻菜单就能看到关键信息。

4. 报警视图配置:让报警和运行记录形成闭环

4.1 报警分类与优先级设计

报警视图配置的第一步不是打开视图编辑器,而是设计报警分类。我一般把报警分成四类:

  • 故障报警(Fault):设备停机类故障,优先级最高,必须确认。
  • 警告报警(Warning):设备还能运行但参数异常,优先级次之。
  • 操作提示(Message):操作工需要知道的信息,比如“请更换物料”,不需要确认。
  • 系统事件(System):触摸屏自身的系统消息,比如“存储卡已满”。

在博途的“HMI报警”下,可以按类别创建报警组。每个报警组可以设置不同的颜色、确认方式和记录属性。故障报警用红色,警告用黄色,提示用蓝色,这是行业惯例,操作工一看颜色就知道严重程度。

4.2 报警记录的关键设置

报警记录和数据记录是分开配置的。在“HMI报警”下的“报警记录”里,可以设置哪些报警需要被记录。

关键设置有三个:

记录哪些报警:不是所有报警都需要记录。故障和警告必须记录,操作提示看情况,系统事件建议记录(方便排查触摸屏本身的问题)。

记录时机:报警到达时记录、离开时记录、确认时记录,三个时机可以独立勾选。我一般三个都勾,这样能完整还原报警的生命周期。

记录容量:报警记录默认保留一定条目数(比如1000条),超过后覆盖最旧的。如果项目要求长期追溯,需要定期导出。

4.3 报警视图的显示配置

报警视图控件有几个关键属性需要配置:

显示模式:有“当前报警”“历史报警”“报警统计”等模式。主画面上一般放两个视图,一个显示当前未确认的报警,一个显示历史报警。

列配置:默认显示时间、报警号、报警文本、状态。我一般会加上“持续时间”列,这样操作工能直接看到每个报警持续了多久。

排序方式:按时间倒序排列,最新的报警在最上面。这个很重要,操作工最关心的是“刚刚发生了什么”。

过滤条件:可以按报警类别、优先级、确认状态过滤。比如只显示未确认的故障报警,这样操作工不会被无关信息干扰。

4.4 报警与运行记录的关联查看

这是整套配置里最有价值的部分。怎么让操作工在查看报警时,能直接看到当时的运行状态?

我的做法是:在报警视图旁边放一个趋势视图,两个视图共用同一个时间轴。当操作工点击某条报警时,趋势视图自动跳转到那个时间点附近,显示当时的运行状态曲线。这样就能直观地看到“报警发生前设备在干什么,报警发生后设备变成了什么状态”。

实现这个关联需要用到触摸屏的脚本功能。在报警视图的“选择变化”事件里写一段VBS脚本,读取选中报警的时间戳,然后设置趋势视图的时间范围。脚本不复杂,但需要调试几次才能对准时间轴。

注意:这个关联功能在Comfort面板上支持,Basic面板不支持脚本,所以如果项目需要这个功能,选型时必须选Comfort或以上。

5. 实操过程:从零配一套运行记录系统

5.1 项目准备与变量连接

假设我们有一个简单的设备,需要记录运行状态、累计运行时长和启停次数。PLC是S7-1200,触摸屏是KTP700 Comfort。

先在PLC里定义变量:

// PLC变量定义 "RunStatus" : Int; // 0=停止, 1=运行, 2=故障 "TotalRunTime" : DInt; // 累计运行秒数 "StartCount" : DInt; // 启动次数

然后在博途的触摸屏连接里,建立对应的HMI变量,采集周期分别设为1s、1s、100ms。

5.2 创建数据记录并绑定变量

在“运行时设置”下新建数据记录“RunLog”,添加三个变量,记录方法选“循环记录”,周期1s,存储位置选Flash。

这里有个细节:累计运行时长在PLC里是每秒加1的,触摸屏每秒采集一次,记录文件里就会看到时长每秒递增。如果PLC里是每100ms加1,触摸屏1s采集一次,记录文件里就会看到时长每次跳10,虽然数值对,但看起来不直观。所以PLC里的累加周期要和触摸屏的采集周期匹配。

5.3 配置报警并关联记录

在“HMI报警”下创建三个报警:

  • 报警1:设备故障,类别Fault,触发变量“RunStatus”=2。
  • 报警2:设备停止,类别Message,触发变量“RunStatus”=0。
  • 报警3:启动次数超限,类别Warning,触发变量“StartCount”>1000。

每个报警都勾选“到达时记录”“离开时记录”“确认时记录”。

5.4 画面布局与控件配置

主画面分三个区域:

  • 上方:当前状态显示,用一个大指示灯显示运行/停止/故障。
  • 中间左侧:趋势视图,显示最近1小时的RunStatus曲线。
  • 中间右侧:报警视图,显示当前未确认报警。
  • 下方:表格视图,显示最近10条启停记录。

趋势视图的时间轴设为“相对时间”,范围1小时,自动滚动。报警视图设为“当前报警”模式,只显示未确认的。表格视图绑定数据记录“RunLog”,显示最近10条。

5.5 仿真验证与现场调试

博途自带仿真功能,可以在下载到实际面板之前先仿真验证。仿真时重点检查三件事:

  • 数据记录是否按周期生成,文件是否能正常打开。
  • 报警触发时,报警视图是否立即显示,记录是否生成。
  • 趋势视图的时间轴是否和报警时间对得上。

仿真通过后下载到实际面板,现场调试时重点检查存储空间和记录周期是否匹配。如果发现记录文件增长太快,就把周期从1s改成10s。

6. 常见问题与排查技巧实录

6.1 记录文件不生成或为空

这是最常见的问题。排查顺序如下:

  1. 检查面板是否支持数据记录。Basic面板不支持,Comfort/Advanced才支持。
  2. 检查存储位置是否可用。如果选的是存储卡,确认卡插好了、格式对了(FAT32)。
  3. 检查记录是否被启动。数据记录需要在画面上用“StartLogging”函数启动,或者在运行时设置里设为自动启动。
  4. 检查变量连接是否正常。如果变量采集不到值,记录文件会是空的。

6.2 记录周期不准或丢记录

如果发现记录时间戳不均匀,或者有丢记录的情况,通常是采集周期和记录周期不匹配导致的。采集周期必须小于等于记录周期,否则记录时会取到旧值。另外,如果面板CPU负载太高(画面太复杂、脚本太多),也会导致记录延迟。

6.3 报警视图不显示历史报警

历史报警需要报警记录功能支持。检查两点:一是报警是否勾选了“记录”属性,二是报警视图是否切换到了“历史报警”模式。另外,历史报警的容量是有限的,如果超过容量,最旧的会被覆盖。

6.4 存储卡满了怎么办

存储卡满了之后,循环记录会自动覆盖最旧的文件,但报警记录不会自动覆盖(取决于设置)。我的做法是:在画面上加一个“存储空间”显示,当剩余空间低于20%时触发一个系统报警,提醒操作工导出数据。

6.5 常见问题速查表

问题现象可能原因解决方法
记录文件不生成面板不支持/未启动记录换Comfort面板/启动记录
记录文件为空变量未连接/采集周期错检查变量连接和采集周期
记录时间戳不均匀采集周期大于记录周期调小采集周期
报警不记录未勾选记录属性在报警属性里勾选记录
历史报警不显示视图模式不对切换到历史报警模式
存储卡满容量不足导出数据/换大卡
趋势视图不滚动时间轴设置错设为相对时间自动滚动
报警和趋势时间对不上时区或时间基准不一致统一用面板本地时间

6.6 几个我踩过的坑

坑一:用Bool变量记运行状态。一开始我用“Run”和“Stop”两个Bool变量分别记录,结果记录文件里两列都是0和1,根本看不出设备到底在运行还是停止。后来改用一个Int变量表示状态字,一目了然。

坑二:记录周期设太短。有一次设了100ms,一天生成了80多万条记录,文件几百MB,面板存储直接爆了。后来改成1s,问题解决。

坑三:报警确认后记录丢失。一开始只勾了“到达时记录”,结果操作工确认报警后,记录里只有到达没有确认,无法追溯操作工是否及时处理。后来三个时机都勾上,完整了。

坑四:忘记设自动启动。数据记录默认不会自动启动,需要在画面上加启动按钮,或者在运行时设置里设为自动。我一开始忘了设,调试了半天以为记录功能坏了。

7. 进阶技巧:让运行记录更好用

7.1 用脚本自动导出记录到U盘

如果项目要求定期归档,可以在画面上加一个“导出记录”按钮,用VBS脚本把记录文件复制到U盘。脚本核心逻辑是调用“CopyFile”函数,把Flash上的记录文件复制到U盘路径。注意U盘路径在不同面板上可能不同,需要先测试确认。

7.2 用PLC做运行时长统计而不是触摸屏

触摸屏记录运行时长有个问题:如果触摸屏断电重启,记录会中断。更可靠的做法是在PLC里做时长累加,触摸屏只负责显示和记录。PLC里用一个定时器或者系统时钟做累加,断电保持用Retain变量。这样即使触摸屏换了,数据还在PLC里。

7.3 报警视图的过滤和搜索

当报警记录很多时,操作工需要快速找到特定报警。可以在报警视图上添加过滤条件,比如按时间段过滤、按报警类别过滤、按确认状态过滤。博途的报警视图支持这些过滤功能,配置起来不复杂,但能大幅提升可用性。

7.4 记录文件的后期分析

CSV格式的记录文件可以用Excel直接打开分析。我一般会教设备工程师用Excel做透视表,统计每天的启停次数、平均运行时长、故障分布时段。这些分析结果对设备维护计划的制定非常有价值。

8. 一些个人体会

做设备运行记录这件事,技术本身不复杂,难的是想清楚为什么要做、给谁看、看完之后要干什么。我见过太多项目,记录功能配了一堆,但操作工从来不看,工程师也不导出分析,最后成了摆设。

我的经验是:记录功能要围绕“异常追溯”来设计。平时不用看,一旦设备出问题,能快速调出当时的运行状态和报警记录,这就够了。所以记录周期不用太短,变量不用太多,但关键的状态字和报警必须记全。

另外,报警视图的配置比数据记录更容易被忽视。很多人把报警视图当成一个“显示报警”的控件,其实它更是一个“追溯工具”。把报警和运行记录关联起来,让操作工能一键跳转到报警发生时的运行状态,这个功能的价值远超报警本身。

最后分享一个小技巧:在触摸屏上放一个“一键导出”按钮,操作工发现异常时按一下,把最近24小时的记录导出到U盘,然后交给工程师分析。这个简单的动作,能让故障排查效率提升好几倍。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询