报警查询
打开“数据与告警 → 报警查询”。看当前报警选“实时报警”,查以前保存的记录选“历史报警”。

查看和确认当前报警
- 选择“实时报警”,在“设备名/变量名”中搜索;需要时再筛选报警等级。点击右侧刷新图标获取最新记录。
- 找到记录,核对设备、变量、报警值、限值和发生时间。
- 点击“详情”,查看完整内容、恢复时间和确认信息。
- 对尚未确认的报警,点击“确认”,在弹窗填写确认说明(可选),点击“确定”。
- 再次打开“详情”,查看确认说明和确认时间;需要持续查看时,在列表设置自动刷新间隔。
确认只表示已经知晓,不会让设备恢复正常,也不会直接消除报警条件。 恢复状态由变量实际值和报警配置决定。
历史报警
查询前必须已经配置并运行历史报警转发目标。实时报警里有记录,不代表历史数据库里一定有。
- 切换到“历史报警”。
- 选择保存这些报警的“转发目标”。
- 在时间框选择开始、结束日期和时间,点击时间面板的“确定”,再点击右侧刷新图标。
- 在“设备名/变量名”输入名称后按回车,例如
ManualValue。需要筛选等级时,在“报警等级”填写最低等级;填2会包含等级2及以上,清空则不限制等级。 - 核对列表中的变量、事件类型和事件时间,点击记录右侧“详情”查看报警、恢复及确认时间。
时间范围按“事件时间”筛选。查一次报警及后续的恢复、确认过程时,范围要覆盖整个过程,而不只是报警产生的那一刻。
查当天记录时,可在日历依次选择当天和次日,时间都设为 00:00:00,然后点击日期面板右下角“确定”。不要只选同一天却让开始、结束时间都停在零点。
上图在“列设置”中只保留常用列。列太多看不全时,可隐藏记录 ID 等暂时不用的列;完整内容仍可在“详情”中查看。
导出历史报警
- 按上面的步骤选好目标和筛选条件,确认列表已显示需要的记录。
- 在底部分页栏选择每页条数和页码,点击右上角下载图标(“导出”)。
- 打开下载的 Excel,核对变量和事件时间。一次导出当前页,不是整个时间范围内的全部记录;还有其他页时,切换页码后分别导出。
“列设置”只改变页面显示,不会删掉导出文件中的其他字段。Excel 的事件类型中,Alarm 表示报警产生,Finish 表示恢复。
给一个变量设置高限报警
练习时使用内存计算中新建的 ManualValue,不用修改 PLC 的值。实际采集变量则从“采集配置”进入编辑,后面的报警设置相同。
- 进入“开发配置 → 内存计算”,找到
ManualValue,点击“编辑”。 - 切换到“报警配置”,找到“高限报警”,开启这一组的“使能”。其他报警组保持关闭。
- 在高限报警组的“报警码”填写
100。这里填写的是比较限值,报警查询中显示为“限值”。报警文本填“演示值偏高”,报警等级填1。 - 报警延时保持
0,抑制表达式留空,点击“确定”。
- 在
ManualValue行点击“写入”,输入101并写入。 - 打开“数据与告警 → 报警查询”,选择“实时报警”,点击刷新图标。找到
Memory / ManualValue:报警值为101,限值为100,内容为“演示值偏高”。 - 完成确认练习后,将这个演示变量写为
99,再刷新报警列表。若启用了恢复后移除,这条记录会移出实时列表。
不要为试报警修改正在生产的设备值。实际项目的高限应按设备允许范围填写,不要直接套用本例的 100。
多级限值同时启用时,按“高高 > 高 > 低 > 低低”填写。布尔变量使用开报警或关报警。完整字段见采集配置 → 报警配置。
报警确认
在未确认记录旁点击“确认”,填写说明后点击“确定”。已确认记录的按钮会不可用。再次查看详情,可以核对确认时间和说明;变量仍超过限值时,确认后记录仍会保留。
报警详情
详情显示设备与变量、触发值与限值、报警类型、报警/恢复事件以及各个时间。需要判断“还在报警还是已经恢复”时,看事件类型与恢复时间,不要只看是否已确认。
查不到或看不懂报警时
| 现象 | 先检查 |
|---|---|
| 实时列表没有预期报警 | 变量是否正常采集、报警是否启用、是否达到限值和延时、是否有抑制条件 |
| 已确认但仍在列表 | 确认不等于恢复;检查当前值和恢复后的移除设置 |
| 历史列表为空 | 是否选对历史报警目标和时间范围,该目标是否在报警发生时已运行 |
| 没有确认按钮 | 记录是否已确认,以及当前账号是否有确认权限 |
| 想恢复后自动移出实时列表 | 到“系统设置 → 报警配置”查看恢复后移除设置 |
报警配置与邮件通知
邮件通知由变量报警和规则引擎共同完成,处理链路如下:
“系统设置 → 报警配置”只控制报警恢复后是否从实时报警列表移除,不配置 SMTP 服务器,也不会自动发送邮件。
第一步:为变量启用报警
- 点击左侧菜单“开发配置 → 采集配置”,在常驻变量列表中选择目标变量。
- 找到需要监控的变量,点击“编辑”,再切换到“报警配置”页签。
- 按变量数据类型启用布尔报警、限值报警或自定义报警,填写报警文本、报警等级、报警延迟和抑制表达式。
- 保存变量,并确认变量、所属设备和采集通道均已启用。

| 配置项 | 说明 |
|---|---|
| 布尔开报警 / 布尔关报警 | 布尔变量变为打开或关闭状态时产生报警。 |
| 高、高高、低、低低报警 | 数值变量越过对应限值时产生报警;多个限值同时启用时应满足“高高 > 高 > 低 > 低低”。 |
| 自定义报警 | 使用表达式判断报警条件,适合状态码或组合条件。 |
| 报警文本 | 邮件中的 AlarmText,建议写明对象、异常条件和处理方向。 |
| 报警等级 | 取值范围为 0 到 10,数值越大表示越严重;可用于邮件通知规则筛选。 |
| 报警延迟 | 报警条件持续达到该时间后才产生报警,单位为毫秒;用于过滤瞬时抖动。 |
| 抑制表达式 | 表达式成立时不产生对应报警,适合检修、停机或联锁场景。 |
变量报警字段的详细说明参见采集配置中的报警配置。
第二步:创建邮件通知规则流
- 点击左侧菜单“开发配置 → 规则引擎”,新建规则流或打开已有规则流。
- 从左侧节点面板的“触发器”分类拖入“告警通知规则”节点。
- 从“数据推送”分类拖入“邮件推送”节点。
- 将“告警通知规则”的
FilteredAlarmData输出连接到“邮件推送”的Data输入。 - 分别选中两个节点,填写筛选条件和 SMTP 参数。
- 保存规则流,并确认规则流和两个节点均已启用。

“告警通知规则”会主动订阅报警变化事件,不需要再连接变量输入节点。只有通过筛选的报警数据才会从 FilteredAlarmData 输出,并触发后面的邮件推送。
告警通知规则参数
| 参数 | 说明 |
|---|---|
| 最低告警级别 | 只转发大于或等于该等级的报警。填 0 表示不按等级过滤。 |
| 设备名称 | 精确匹配设备名称;多个名称使用英文逗号分隔,留空表示全部设备。 |
| 事件类型 | 多个类型使用英文逗号分隔。只发送报警产生邮件时填 Alarm;同时发送恢复邮件时填 Alarm,Finish。留空会匹配全部报警生命周期事件。 |
| 报警类型 | 可填写 Open、Close、HH、H、L、LL、Custom,多个类型使用英文逗号分隔;留空表示全部类型。 |
| 防抖间隔 | 同一设备和变量在该时间内只通知一次,单位为毫秒;填 0 表示不防抖。 |
| 启用 | 关闭后节点不再输出报警数据。 |
生产环境建议至少填写“事件类型”。若只希望在报警产生时通知,请填写 Alarm;不需要恢复和确认邮件时,不要留空。对可能频繁抖动的点位,还应配置变量报警延迟或节点防抖间隔。
邮件推送参数
| 参数 | 说明 |
|---|---|
| SMTP 服务器地址 | 邮件服务商提供的 SMTP 主机名,例如企业邮箱的 SMTP 地址。不要填写 Web 邮箱登录网址。 |
| SMTP 服务器端口 | 按邮件服务商要求填写,启用 STARTTLS 时常用 587。防火墙必须允许网关访问该端口。 |
| 启用 SSL | 邮件服务器要求加密连接时开启;必须与服务器端口和服务商要求一致。 |
| SMTP 用户名 | SMTP 认证账号,通常为完整邮箱地址。 |
| SMTP 密码 | 邮件服务商提供的 SMTP 授权码或专用密码,不一定是网页登录密码。 |
| 发件人地址 | 邮件显示的发件地址。多数服务商要求它与 SMTP 认证账号一致。 |
| 发件人名称 | 收件人看到的发件人名称,例如 ThingsGateway 或现场名称。 |
| 收件人地址 | 多个地址使用英文逗号分隔。保存前检查是否存在空地址或中文逗号。 |
| 邮件主题模板 | 支持 {{属性名}} 占位符,例如 [{{EventType}}] {{DeviceName}} - {{Name}}。 |
| 邮件正文模板 | 支持相同占位符;正文以 < 开头时按 HTML 邮件发送,否则按纯文本发送。 |
| 启用 | 关闭后不发送邮件,但仍可保留节点参数。 |
| 推送数据 | 连接“告警通知规则”的 FilteredAlarmData 输出,不需要手工填写。 |
常用模板变量如下。变量名称对应 {{Name}},不要写成 {{VariableName}};不存在的属性会被替换为空字符串。
| 模板变量 | 内容 |
|---|---|
{{DeviceName}} | 设备名称。 |
{{Name}} | 变量名称。 |
{{Description}} | 变量描述。 |
{{AlarmLevel}} | 报警等级。 |
{{EventType}} | 事件类型,例如 Alarm、Finish、Confirm。 |
{{AlarmType}} | 报警类型,例如 HH、H、Open、Custom。 |
{{AlarmText}} | 变量报警配置中的报警文本。 |
{{AlarmCode}} | 触发报警时的变量值。 |
{{AlarmLimit}} | 报警限值或自定义报警条件。 |
{{AlarmTime}} | 报警产生时间。 |
{{EventTime}} | 当前报警生命周期事件的发生时间。 |
{{FinishTime}} | 报警恢复时间。 |
{{ConfirmTime}} | 报警确认时间。 |
{{ConfirmText}} | 报警确认说明。 |
{{Remark1}} 至 {{Remark5}} | 变量的自定义备注字段。 |
主题模板示例:
[{{EventType}}] {{DeviceName}} - {{Name}} - 等级{{AlarmLevel}}
纯文本正文模板示例:
设备:{{DeviceName}}
变量:{{Name}}
事件:{{EventType}}
类型:{{AlarmType}}
等级:{{AlarmLevel}}
报警值:{{AlarmCode}}
限值:{{AlarmLimit}}
内容:{{AlarmText}}
报警时间:{{AlarmTime}}
验证邮件通知
正式投入使用前,应在测试变量或安全的调试环境中完成一次完整验证。
- 保存并启用规则流,确认规则流页面没有配置错误。
- 让测试变量越过报警条件,并保持到超过变量的报警延迟。
- 在“数据与告警 → 报警查询 → 实时报警”确认已产生对应报警。
- 返回规则流,选中“告警通知规则”,确认
FilteredAlarmData已输出报警数据。 - 选中“邮件推送”,检查
Success、ErrorMessage和LastPushTime。Success为true表示 SMTP 服务器已接受本次发送。 - 到收件箱确认主题、正文和时间正确,并同时检查垃圾邮件目录。
- 若配置了恢复通知,让变量恢复正常,确认只产生预期的
Finish邮件。
不要在文档、截图、运行日志或问题反馈中暴露 SMTP 授权码。截图前应遮盖“SMTP 密码”,生产环境应使用专用发件账号,并限制该账号的权限和收件范围。
常见问题
| 现象 | 排查方法 |
|---|---|
| 没有产生报警 | 检查变量、设备和通道是否启用,报警条件、报警延迟和抑制表达式是否满足。 |
FilteredAlarmData 没有输出 | 检查最低告警级别、设备名称、事件类型和报警类型;名称匹配区分实际字符串,多个值必须使用英文逗号。 |
| SMTP 认证失败 | 确认已在邮箱后台开启 SMTP 服务,并使用授权码或专用密码;核对用户名和发件人地址。 |
| 连接超时或 TLS 失败 | 检查 DNS、网关到 SMTP 主机的网络和防火墙端口,并确认端口与“启用 SSL”设置匹配。 |
| 发件人被拒绝 | 将发件人地址改为 SMTP 账号允许的地址,或在邮件服务后台配置代发权限。 |
| 收到多封重复邮件 | 将事件类型限制为 Alarm,并设置报警延迟或防抖间隔;同时确认没有多个已启用规则流处理同一报警。 |
Success 为 true 但收件箱没有邮件 | 检查垃圾邮件、邮件网关策略、收件人地址和服务商投递日志。 |


