2. 报警类别与类型配置
在WinCC中,报警系统并不是“把变量挂上去就会响”的简单机制。一条报警从产生到显示,需要经过报警类别(Alarm Class)、报警类型(Alarm Type)和报警实例三层结构的组织。理解这三层关系,是后续做报警分级、颜色区分、确认策略和归档追溯的基础。
可以把报警类别理解为“这条报警有多严重”,把报警类型理解为“这条报警是怎么产生的”。类别决定显示颜色、确认方式和优先级;类型决定触发条件、数值格式和消息块结构。两者组合后,才落到具体变量上形成一条可运行的报警。
一、报警类别:定义严重程度与行为
WinCC默认提供若干报警类别,常见的有:
- 错误(Error):最高优先级,通常用红色表示,要求操作员立即确认并处理,例如电机过载、急停触发、联锁动作。
- 警告(Warning):中等优先级,通常用黄色或橙色表示,提示参数偏离正常范围但尚未造成停机,例如温度偏高、液位接近上限。
- 提示(Information/Note):低优先级,通常用蓝色或灰色表示,用于记录状态变化或操作事件,例如阀门开到位、模式切换完成。
在项目实际配置中,默认类别往往不够用。例如一条“通信中断”报警,它既不是工艺错误也不是简单提示,需要单独的颜色和确认策略。此时应创建自定义报警类别。创建时需要在报警类别属性中设置以下关键项:
| 属性 | 说明 | 示例值 |
|---|---|---|
| 名称 | 类别的唯一标识 | Communication_Fault |
| 显示颜色 | 报警行在控件中的背景色 | 紫色 #8E44AD |
| 确认方式 | 是否需要确认、由谁确认 | 需要操作员确认 |
| 优先级 | 数值越小优先级越高 | 2 |
| 归档 | 是否写入报警归档 | 是 |
这里有一个容易忽略的点:优先级数值与显示顺序相反。在WinCC中,优先级数值越小,报警越靠前、越优先显示。如果自定义类别优先级设为2,而默认“错误”为1,那么通信中断会排在错误之后、警告之前。配置时要先明确项目的报警分级约定,再统一填写,避免后期混乱。
二、报警类型:定义触发机制与数据格式
报警类型决定“报警怎么被触发”。WinCC中常用的报警类型包括:
- 离散量报警(Discrete Alarm):由位变量触发,某个位从0变1时产生报警。适合开关量、故障触点、联锁信号。例如变量
Motor1_Fault的位0为1时,触发“电机1故障”。 - 模拟量报警(Analog Alarm):由模拟量越限触发,需要设置上限、下限、死区。适合温度、压力、流量等连续量。例如
Temp_Tank1超过85℃触发高温报警,低于80℃自动复位。 - 系统报警(System Alarm):由WinCC自身或PLC系统产生,例如连接中断、PLC停止、模块故障。这类报警通常不需要手动创建变量,而是由系统消息号映射。
模拟量报警的死区设置非常关键。假设温度上限设为85℃,死区设为2℃,那么报警在85℃触发,但只有当温度回落到83℃以下才会自动复位。如果死区为0,温度在85℃附近波动时会产生大量重复报警,淹没真正重要的信息。工程上一般取量程的1%~3%作为死区,例如量程0~150℃,死区取2~4℃。
三、创建自定义类别并关联变量
下面以“通信中断”为例,说明从创建类别到关联变量的完整过程。假设项目中已有变量PLC_Comm_Status,类型为二进制位,1表示通信正常,0表示中断。
- 打开报警记录(Alarm Logging)编辑器,在左侧导航中选择“报警类别”。
- 右键选择“新建”,命名为
Comm_Fault,显示颜色设为紫色,确认方式设为“需要确认”,优先级设为2,归档设为“是”。 - 切换到“报警类型”,确认已存在“离散量报警”类型。若需要特殊消息块结构,可复制默认类型后修改。
- 在报警记录的消息列表中新建一条消息,消息文本填写“PLC通信中断,请检查网络连接”。
- 在消息的“参数”页中,将报警类别选择为
Comm_Fault,报警类型选择“离散量报警”。 - 在“触发”页中,关联变量
PLC_Comm_Status,触发位选择“位0”,触发条件选择“0”表示通信中断时触发。 - 保存并编译报警记录,激活运行系统后,将
PLC_Comm_Status置0,观察报警控件中是否出现紫色报警行。
四、类别与类型的组合关系
报警类别和报警类型是正交的两个维度。同一个类别可以搭配不同报警类型,同一个报警类型也可以属于不同类别。例如“错误”类别下既可以有离散量报警(电机故障),也可以有模拟量报警(温度超高限);“模拟量报警”类型既可以用于“警告”类别,也可以用于“错误”类别。真正决定一条报警行为的,是两者的组合结果。
从图中可以看到,左侧的类别和中间的报警类型并不是一一对应的。一条“PLC通信中断”报警,它属于自定义的Comm_Fault类别,使用离散量报警类型,关联到PLC_Comm_Status变量。而“罐1温度偏高”属于警告类别,使用模拟量报警类型,关联到Temp_Tank1变量。每个报警实例都是“类别+类型+变量”的三元组合。
五、配置后的验证与常见问题
配置完成后,不能只看编辑器里有没有报错,要在运行系统中实际验证。验证时重点观察三件事:
- 颜色是否正确:报警控件中该条报警的背景色是否与类别定义一致。如果颜色不对,通常是类别没有正确关联到消息。
- 触发是否准确:手动将变量置为触发值,报警是否立即出现;恢复后是否按死区或确认策略复位。
- 确认行为是否符合预期:需要确认的报警在操作员点击确认前是否保持高亮,确认后是否变为已确认状态。
另一个常见问题是自定义类别的优先级与默认类别冲突。例如把自定义类别优先级设为1,与“错误”相同,运行时两条报警的排序可能不稳定。建议在项目初期就规划好优先级编号:1~2为错误级,3~4为警告级,5~6为提示级,自定义类别插入对应区间,避免重叠。
报警类别与类型的配置是报警系统的骨架。类别管“怎么显示、怎么确认”,类型管“怎么触发、带什么数据”,变量管“具体监控谁”。三者关系理清后,后续的报警归档、消息块定制和事件追溯才有稳定的基础。