Skip to main content

セクション: 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

SEC SetAlarm

のサブセクション SetAlarm アラームに必要な、またはアラームに可能なすべてのプロパティを定義します。の目標 SetAlarm モジュールの他のアラームの中からアラームを識別し、後者を参照するために使用されます(主に定義内) HigherPrioAlarm)。

Class

アラームが存在するアラーム クラス名。

アラーム クラスがアプリケーションにすでに存在する場合、アラームはこのクラスの下に自動的に作成されます。クラスが存在しない場合は、ビュー内にあるアラーム クラス テンプレート オブジェクトを検索します。 POU 嘘をつかなければなりません。対応するアラーム クラス テンプレート オブジェクトが見つからない場合、モジュール スキャンはエラーを返します。

Message

ID (フォームの TextListenName.TextListenEintragID) アラームテキストのテキストリストエントリの

アラーム グループ設定内のテキストにワイルドカードを含めることができるのと同様に、ID によって参照されるメッセージにはワイルドカードを含めることができます。たとえば、次のようなワイルドカード LATCH1 または LATCH2 利用される。

指定されたテキスト リスト エントリが見つからない場合、スキャンによって警告が発行されます。

設定に対応 ニュース オブジェクトの中で アラームグループ

LatchVar1

LatchVar2

プレースホルダー変数

モジュール固有のアラームの現在のケースでは、モジュール FB から変数のみを直接指定できます (パラメータの変数がモジュール宣言で指定されるのと同様)。

設定に対応 ラッチ変数1 / ラッチ変数2 プレースホルダー用 <LATCH1> / <LATCH2> オブジェクトの中で アラームグループ

Deactivation

非アクティブ化変数 (BOOL)。

TRUE: 定義されたアラームを無効にします。やはりモジュール FB 変数のみを指定できます。

以外の型の変数の場合 BOOL が指定されている場合、スキャン中にエラーが返されます。

設定に対応 非アクティブ化 オブジェクトの中で アラームグループ」

PendingTime

最小限の待ち時間。アラームが限界に達してから実際にトリガーされるまでの時間を指定します。

例: TIME#5S

設定に対応 最小待ち時間 オブジェクトの中で アラームグループ

PendingTimeParameter

最小待ち時間を設定するパラメータ

パラメータに割り当てられる値は、時間として解釈できる文字列です。または、モジュール パラメーターと時間リテラルで構成される式として。

. 例:
  • TIME#5S

  • 'NoVar'

  • 'WithVar'

  • 'WithVar - NoVar + TIME#5S'

HigherPrioAlarm

優先度の高いアラームのID

現在のアラームが分類されるアラームを識別するために、現在のモジュールのアラームにはターゲット ID が使用されます。 SetAlarmセクションが指定されています。の周辺 SetAlarm- 対応するターゲット ID を持つセクションは、親モジュール インスタンス内で独自のモジュールから上位に階層的に検索され、アラーム宣言の下で適切な ID が検索されます。対応する親アラームが見つからない場合、ジェネレーターのチェック中にエラーが発行されます。

設定に対応 優先度の高いアラーム オブジェクトの中で アラームグループ

ModuleCalls

モジュール固有のアラーム管理の場合、モジュール FB は、モジュール アラームがトリガーされたときに呼び出すことができる特定のインターフェイスを提供できます。フラグによって、どのような場合にこれが発生するかが決まります。

. ModuleCallFlags利用可能なもの:
  • NONE:通話は発生しません。

  • THIS: 呼び出しは、独自のモジュール アラームに対してのみ発生します。

  • PARENTS: このモジュールのすべての親モジュールで呼び出しが発生します。

  • ALL: 呼び出しはすべてのモジュールで発生します。

このフラグを介して呼び出されるモジュール FB には、インターフェイスが必要です。 IModuleAlarming 実装する。その後、関数を介して呼び出しが行われます ConsumeModuleAlarm このインターフェース。

最上位モジュールの場合、フラグ PARENTS が指定されている場合、スキャン中に警告が発行されます (このフラグはトップレベルモジュールには設定できないため)。

SEC Messages

サブセクションはパラメータと同じタスクを実行します。 Messageただし、アラームごとに複数のメッセージを許可します。 (古い) パラメータ Message 互換性上の理由から、引き続き有効です。メッセージには、アラーム グループ設定内の実際のテキストと同じプレースホルダを含めることができます。つまりなどのプレースホルダーも <LATCH1> または <LATCH2> に使える。指定されたテキスト リスト エントリが見つからない場合、スキャンによって警告が発行されます。

Messages: テキスト リスト エントリ形式のアラーム テキスト (形式 TextListenName.TextListenEintragID)

Number: 出力が発生するアラーム テーブルの列。

SEC LatchVar

ラッチ変数。このセクションでは、最大 10 個のラッチ変数を定義できます。

このセクションに加えてエントリがある場合、 LatchVar1 または LatchVar2 が定義されている場合は、このセクションの変数が使用されます。

LatchVar: ラッチ変数

Number:ラッチ変数を識別する番号

SEC UpperLimit

SEC LowerLimit

上限または下限を超えたときにトリガーされるアラームのアラーム条件を指定します。

セクションの下で 1 回のみ使用できます SEC SetAlarm 現れる。そうでない場合、スキャンはエラーをスローします。

Expression: チェック中の IEC 式または値。モジュールFBのローカル変数とグローバル定数を式で使用できます。

IncludeBorder: TRUE 対応する <= (UpperLimit) または >= (LowerLimit)。 FALSE 対応する < (UpperLimit) または > (LowerLimit)。

UpperExpresssionLowerExpresssion: IEC 式またはそれに対する値 表現 にチェックが入っています。モジュールFBのローカル変数とグローバル定数を式で使用できます。

Hysteresis: アラームのヒステリシス (%)。

設定に対応 上限 / 下限 オブジェクト内の監視タイプの場合 アラームグループ

SEC InsideRange

SEC OutsideRange

式が特定の値の範囲内または範囲外になったときにトリガーされるアラームを定義するアラーム条件。

セクションの下で 1 回のみ使用できます SEC SetAlarm 現れる。そうでない場合、スキャンはエラーをスローします。

Hysteresis: アラームヒステリシス (%)

  • Expression: IEC 式または値がチェックされています。モジュールFBのローカル変数とグローバル定数を式で使用できます。

  • AreaLow:範囲の下限値(値またはIEC式)。モジュールFBのローカル変数とグローバル定数を式で使用できます。

  • LowIncludeBorder: ブール値フラグは、下限値自体を比較範囲にカウントするかどうかを決定します ( <=)

  • HighIncludeBorder: ブール値フラグは、上限値自体を比較範囲にカウントするかどうかを決定します ( >=)

  • AreaHigh:範囲(数値またはIEC式)の上限。モジュールFBのローカル変数とグローバル定数を式で使用できます。

設定に対応 範囲内 / 範囲外 オブジェクト内の監視タイプの場合 アラームグループ

SEC Digital

2 つの式が相互に比較されたときにトリガーされるアラームのアラーム条件。

セクションの下で 1 回のみ使用できます SEC SetAlarm 現れる。そうでない場合、スキャンはエラーをスローします。

  • Expression: チェック中の IEC 式または値。モジュールFBのローカル変数とグローバル定数を式で使用できます。

  • Equal: TRUE/FALSE: 式 (値または IEC 式) が等しいかどうかがチェックされます。

  • EqualsExpression: IEC 式またはそれに対する値 Expression にチェックが入っています。モジュールFBのローカル変数とグローバル定数を式で使用できます。

設定に対応 デジタル オブジェクト内の監視タイプの場合 アラームグループ

SEC Change

式の値が変更されたときにトリガーされるアラーム。

セクションの下で 1 回のみ使用できます SEC SetAlarm 現れる。そうでない場合、スキャンはエラーをスローします。

Expression: 変更がチェックされる IEC 式または値。モジュールFBのローカル変数とグローバル定数を式で使用できます。

設定に対応 変化 オブジェクト内の監視タイプの場合 アラームグループ

SEC Event

現在のアラーム セクションがイベント アラームを生成していることを示します。これは関数で実現できます RaiseModuleEvent() 図書館から AC_Alarming 引き起こされること。

37. 値の範囲
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
38. セクション 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