部分:alg.Alarm
这部分 SEC alg.Alarm 描述模块报警。模块报警本质上对应于 CODESYS 告警组中已配置的告警管理。但是,模块警报仍然包含特定于模块的添加内容。
规格
SEC alg.Alarm //optional: yes, modifier: [UPDATE]
SEC SetAlarm <alarm identifier> //optional: yes, modifier [UPDATE]
Class := <class name>; //optional: no, type: ID
Message := <TextlistEntry>; //optional: no, type: TextListEntry
LatchVar1 := <LatchVariable1>; //optional: yes, type: InstancePath
LatchVar2 := <LatchVariable2>; //optional: yes, type: InstancePath
Deactivation := <DeactivationVariable>; //optional: yes, type: InstancePath
PendingTime := <PendingTime>; //optional: yes, type: LiteralOrConstant
PendingTimeParameter := <string> //optional: no, type: literal/string
HigherPrioAlarm := <HigherPrioAlarm_ID>; //optional: yes, type: ID
ModuleCalls := <ModuleCallFlags>; //optional: yes, type: ModuleCallFlag
SEC Messages : <alarm identifier> //optional: yes, modifier: [UPDATE]
Message := <TextlistEntry>; //optional: no, type: TextListEntry
Number := <ColumnNumber>; //optional: no, type: Literal
END_SEC
SEC LatchVar <latch var identifier> //optional: yes, modifier [UPDATE]
LatchVar := <LatchVariable>; //optional: no, type: InstancePath
Number := <LatchVarNumber> //optional: no, type: LiteralOrConstant
END_SEC
SEC UpperLimit //optional: yes, modifier: [UPDATE]
Expression := <Expression>; //optional: no, type: Literal/String
IncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool
UpperExpression := <UpperExpression>; //optional: no, type: Literal/String
Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant
END_SEC
SEC LowerLimit //optional: yes, modifier: [UPDATE]
Expression := <Expression>; //optional: no, type: Literal/String
IncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool
LowerExpression := <LowerExpression>; //optional: no, type: Literal/String
Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant
END_SEC
SEC InsideRange //optional: yes, modifier: [UPDATE]
Expression := <Expression>; //optional: no, type: Literal/String
AreaLow := <AreaLowValue>; //optional: no, type: Literal/String
LowIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool
HighIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool
AreaHigh := <AreaHighValue>; //optional: no, type: Literal/String
Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant
END_SEC
SEC OutsideRange //optional: yes, modifier: [UPDATE]
Expression := <Expression>; //optional: no, type: Literal/String
AreaLow := <AreaLowValue>; //optional: no, type: Literal/String
LowIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool
HighIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool
AreaHigh := <AreaHighValue>; //optional: no, type: Literal/String
Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant
END_SEC
SEC Digital //optional: yes, modifier: [UPDATE]
Expression := <Expression>; //optional: no, type: Literal/String
Equal := TRUE/FALSE; //optional: no, type: FlagBool
EqualsExpression := <Expression>; //optional: no, type: Literal/String
END_SEC
SEC Change //optional: yes, modifier: [UPDATE]
Expression := <Expression>; //optional: no, type: Literal/String
END_SEC
SEC Event //optional: yes, modifier: [UPDATE]
END_SEC
END_SEC
END_SEC
| 的小节 |
| 警报类名称,将在该名称下创建警报。 如果应用程序中已存在该警报类,则将在该类下创建警报。如果该类不存在,则搜索报警类模板对象,该对象必须存在于 POU 看法。如果没有找到合适的报警类模板对象,则在扫描模块时会发出错误。 |
| ID(格式为 ID 引用的消息可以包含与警报配置中的文本相同的占位符。例如占位符,例如 如果找不到指定的文本列表条目,则会在扫描期间发出警告。 对应于 信息 设置在 报警组 目的。 |
| 占位符变量 在当前模块特定报警的情况下,只能直接从模块功能块指定变量(就像在模块声明中为参数指定变量一样) 对应设置 锁存变量1 / 锁存变量2 对于占位符 |
| 失活变量(
如果输入的变量类型不是 对应于 停用 设置在 报警组 目的。 |
| 最短的等待时间。定义达到极限后警报实际响起之前的时间量。 例子: 对应设定 分钟。等待时间 在里面 报警组 目的。 |
| 设置最小挂起时间的参数 分配给参数的值是一个可以解释为时间的字符串。或者也可以作为由模块参数和时间文字组成的表达式。 . 例子:
|
| 高优先级告警ID 为了识别当前警报应该被分类到的警报,一个警报的目标ID 对应设定 优先级更高。警报 在里面 报警组 目的。 |
| 对于特定于模块的报警管理,模块 FB 可以提供特定的接口,在发生模块报警时可以调用这些接口。这些标志定义了在什么情况下会发生这种情况。 . 可用的 ModuleCallFlags:
将由该标志调用的模块 FB 必须实现 如果 |
| 该小节管理与
|
| 锁存变量。此部分最多可以定义 10 个锁存变量。 如果除了本节之外,
|
| 超出上限或下限时触发的警报的警报条件。 该部分仅允许在以下出现一次
对应设置 上限 / 下限 对于观察类型 报警组 目的。 |
| 如果表达式位于特定值范围内或之外,则触发警报的警报条件。 该部分仅允许在以下出现一次
对应设置 范围内 / 范围外 对于观察类型 报警组 目的。 |
| 如果两个表达式相互比较,则会引发警报。 该部分仅允许在以下出现一次
对应观察类型 数字的 在里面 报警组 目的。 |
| 如果表达式更改其值,则会引发警报。 该部分仅允许在以下出现一次
对应观察类型 改变 在里面 报警组 目的。 |
| 确定当前报警部分创建事件报警。该警报可以通过以下功能触发 |
例子
SEC SetAlarm : ValueRange
Class := Error;
Message := TL.Alarm_Temperature;
LatchVar1 := rAlarmValueLow;
LatchVar2 := rAlarmValueHigh;
ModuleCalls := THIS | PARENTS;
SEC Messages : msg2
Message := TL.msg5_Message;
Number := 5;
END_SEC
SEC OutsideRange
Expression := 'rValue';
AreaLow := 'rAlarmValueLow';
LowIncludeBorder := TRUE;
HighIncludeBorder := TRUE;
AreaHigh := 'rAlarmValueHigh';
END_SEC
END_SECPendingTimeSEC alg.Alarm SEC SetAlarm : NoVar Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTimeParameter := 'NoVar'; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC SEC SetAlarm : WithVar Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTimeParameter := 'WithVar'; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC SEC SetAlarm : SimpleMath Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTimeParameter := 'WithVar - NoVar + TIME#5S'; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC SEC SetAlarm : NoParam Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTime := TIME#5S; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC END_SEC