セクション: alg.アラーム
セクション 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 によって参照されるメッセージにはワイルドカードを含めることができます。たとえば、次のようなワイルドカード 指定されたテキスト リスト エントリが見つからない場合、スキャンによって警告が発行されます。 設定に対応 ニュース オブジェクトの中で アラームグループ。 |
| プレースホルダー変数 モジュール固有のアラームの現在のケースでは、モジュール FB から変数のみを直接指定できます (パラメータの変数がモジュール宣言で指定されるのと同様)。 設定に対応 ラッチ変数1 / ラッチ変数2 プレースホルダー用 |
| 非アクティブ化変数 (
以外の型の変数の場合 設定に対応 非アクティブ化 オブジェクトの中で アラームグループ」。 |
| 最小限の待ち時間。アラームが限界に達してから実際にトリガーされるまでの時間を指定します。 例: 設定に対応 最小待ち時間 オブジェクトの中で アラームグループ。 |
| 最小待ち時間を設定するパラメータ パラメータに割り当てられる値は、時間として解釈できる文字列です。または、モジュール パラメーターと時間リテラルで構成される式として。 . 例:
|
| 優先度の高いアラームのID 現在のアラームが分類されるアラームを識別するために、現在のモジュールのアラームにはターゲット ID が使用されます。 設定に対応 優先度の高いアラーム オブジェクトの中で アラームグループ。 |
| モジュール固有のアラーム管理の場合、モジュール FB は、モジュール アラームがトリガーされたときに呼び出すことができる特定のインターフェイスを提供できます。フラグによって、どのような場合にこれが発生するかが決まります。 . ModuleCallFlags 利用可能なもの:
このフラグを介して呼び出されるモジュール FB には、インターフェイスが必要です。 最上位モジュールの場合、フラグ |
| サブセクションはパラメータと同じタスクを実行します。
|
| ラッチ変数。このセクションでは、最大 10 個のラッチ変数を定義できます。 このセクションに加えてエントリがある場合、
|
| 上限または下限を超えたときにトリガーされるアラームのアラーム条件を指定します。 セクションの下で 1 回のみ使用できます
設定に対応 上限 / 下限 オブジェクト内の監視タイプの場合 アラームグループ。 |
| 式が特定の値の範囲内または範囲外になったときにトリガーされるアラームを定義するアラーム条件。 セクションの下で 1 回のみ使用できます
設定に対応 範囲内 / 範囲外 オブジェクト内の監視タイプの場合 アラームグループ。 |
| 2 つの式が相互に比較されたときにトリガーされるアラームのアラーム条件。 セクションの下で 1 回のみ使用できます
設定に対応 デジタル オブジェクト内の監視タイプの場合 アラームグループ。 |
| 式の値が変更されたときにトリガーされるアラーム。 セクションの下で 1 回のみ使用できます
設定に対応 変化 オブジェクト内の監視タイプの場合 アラームグループ。 |
| 現在のアラーム セクションがイベント アラームを生成していることを示します。これは関数で実現できます |
例
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_SEC
PendingTime
SEC 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