Alarms

Codesys 后端

Codesys 集成用于在 PLC 逻辑中处理报警的激活和取消。它通过变量绑定与报警前端进行直接通信。

所需库文件

要在 Codesys 项目中使用报警功能,必须包含以下库:

  • 万可慧视(PLCVisu) – 用于通信和 UI 支持的框架
  • ELA_MessageSystem – 核心报警处理库(包含在万可慧视库中)

详情见截图:

Codesys 中的符号配置

要实现 Codesys 与 HMI 之间的报警通信,必须在符号配置中暴露与报警相关的变量。这些变量必须被选中并允许外部访问。

请确保所有必要的报警结构和变量均已启用外部访问,否则报警将在 HMI 中无法正确显示。

报警实现

alarmPrg

处理报警初始化及事件的 PLC 程序。通常包含在 PLC_PRG 中,也可以放在独立任务中执行。

alarmingManagerPrg

负责执行报警激活与取消逻辑的程序。

setActive

使用可选参数与翻译占位符激活一个报警:

setActive(msgId : UINT,
          param1 : STRING := '', 
          param2 : STRING := '', 
          param3 : STRING := '', 
          param4 : STRING := '', 
          param5 : STRING := '', 
          trans1 : STRING := '', 
          trans2 : STRING := '', 
          trans3 : STRING := '', 
          trans4 : STRING := '', 
          trans5 : STRING := '', 
          moduleId : UINT := 0);

setInactive

取消一个已激活的报警:

setInactive(msgId : UINT, 
            moduleIndex : UINT := 0, 
            tag : STRING := '');

manage

以触发器作为输入参数,用于替代 setActivesetInactive

alarmingPrg.alarming.manage(444, iErrorTrigger > 95);

这些方法通常在结构化报警管理程序 alarmManagerPrg 中调用。

示例

alarmManagerPrg
alarmingPrg.alarming.manage(444, iErrorTrigger > 95);
setInactive
setActive
setInactive(msgId : UINT, moduleIndex : UINT := 0, tag : STRING := '');
setActive(msgId : UINT, param1 : STRING := '', param2 : STRING := '', param3 : STRING := '', param4 : STRING := '', param5 : STRING := '', trans1 : STRING := '', trans2 : STRING := '', trans3 : STRING := '', trans4 : STRING := '', trans5 : STRING := '', moduleId : UINT := 0);
PLC_PRG