Skip to main content

プログラム内でアラームイベントを呼び出す

ザ・ イベント (API) とりわけ、アラームグループのアラームを定義するための観測タイプが用意されています。条件に応じてアラームがトリガーされる観測タイプとは対照的に、この観測タイプでは関数ブロックインスタンスを呼び出すことでアラームをトリガーできます。

アラームグループ内のイベントアラームの定義

  1. アラームグループを作成します。

  2. 観測タイプのアラームを定義 イベント (API) アラームグループ内。

  3. では クラス 列でアラームクラスを選択します 確認 確認メソッドを使用するか、新しいアラーム クラスを作成します。

イベントアラームをトリガーするプログラム呼び出し

  1. ファンクションブロックの呼び出しが行われるプログラム位置にカーソルを設定します。

  2. 使用 RaiseEvent 機能から AlarmManager 図書館:

    「AlarmManager」と入力し、その後にピリオドを入力します。

    挿入可能なすべての要素のリストを含むウィンドウが開きます (「コンポーネントのリスト」機能)。

    _cds_img_autocomplete_alarms.png
  3. 選択 AlarmGlobals ピリオドを入力します。

  4. 同様に要素を挿入します g_AlarmHandler そして RaiseEvent

    次の行が表示されます。 Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent

  5. 転送変数を定義します AlarmGroup_ID そして Alarm_IDこれを行うには、開き括弧を入力します。

    転送変数に関する情報を示すツールチップが表示されます

  6. プレス F2

    入力アシスタントが開きます

  7. 上の カテゴリー タブ(_3_r.png)、カテゴリーを選択 変数_4_r.png)。

    _cds_img_input_assistant_alarms.png
  8. 希望するグループID変数を選択します(_1_r.png)。

    変数はプログラム行に適用されます。

  9. 手順7と同じ方法で、カンマを入力し、目的のアラームID変数(2)を挿入します。閉じ括弧とセミコロンを入力します。

    次のプログラム行が得られます。

    Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup1, Alm_AlarmGroup1_Alarm_IDs.ID_0);

アラーム テンプレート インスタンスからのイベントの発生

アラーム インスタンスからのイベントは、アラームが属するインスタンスのアドレスを渡すことによって発生させることができます。

イベントが発生すると、インスタンスを指すラッチ変数が自動的に正しく書き込まれます。

IAlarmHandler7 以下の機能とのインターフェースが提供されています AlarmManager この目的のためのライブラリ。

  • RaiseEventAlarmInstance

  • RaiseEventAlarmInstanceByName

22.
_visu_alarm_group_template_example_raise_event.png

MyalarmFB 機能ブロック付き RaiseEvent 方法

FUNCTION_BLOCK MyAlarmFB
VAR_INPUT
	xCondition : BOOL;
END_VAR
METHOD RaiseEvent : BOOL
VAR_INPUT
END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(THIS, Alm_AlarmGroupTemplate_Alarm_IDs.ID_3);

プログラム: PLC_PRG

PROGRAM PLC_PRG
VAR
    // Alarm Instances
    myInst : MyAlarmFB;
    myInst2 : MyAlarmFB;
END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(ADR(myInst), Alm_AlarmGroupTemplate_Alarm_IDs.ID_3); 
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstanceByName(ADR(pouInst), Alm_AlarmGroupTemplate2_Alarm_IDs.ID_0, 'AlarmGroupTemplate2');