Skip to main content

API 呼び出しを使用してプログラムでイベントをトリガーする

イベントは観測タイプのアラーム イベント (API)。これらは、の機能を使用してアプリケーションコード内でプログラム的にトリガーされます AlarmManager ライブラリと IARアームハンドラー (7) インターフェイス。

イベントは、アラームグループまたはアラームグループテンプレートでアラームインスタンスとして直接定義されます。

詳細については、「」を参照してください。 例:アラームマネージャ

イベントで警報

によるアラームの定義 イベント (API) タイプ

  1. Alarm Configuration、を設定 アラームグループ

  2. アラームグループで、観測タイプのアラームを定義します イベント (API)

  3. クラス 列、たとえばアラームクラスを選択 Error で目的のアラームメッセージを指定してください メッセージ

アラーム ID_0イベント時に API 経由でトリガーされるものが定義されています。

このようなイベントはどのアラームクラスでも定義できます。詳細は不要で、アラーム条件も指定されていません。イベントは API 呼び出しによってトリガーされます。

ヒント

アラームグループテンプレートでイベントを定義することもできます。

API 呼び出しの実装

イベントは、ライブラリ FB インスタンスの API 呼び出しによってコード内でトリガーされます。 RaiseEvent、アラーム ID が渡されました。各アラームには固有の ID があります。これはコード内の変数として使用できるため、転送変数としても機能します。

具体的には、alarmID 変数は次のスキームに従った列挙型です。

Alm_<name of alarm group>_ IDs.ID_<configured ID>

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

  2. 「」と入力しますAlarmManager「の後にピリオドが続きます。

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

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

    _cds_img_autocomplete_alarms.png
  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. カンマを入力し、入力アシスタントを使用して目的のアラーム ID 変数を挿入します (_2_r.png)。閉じ括弧とセミコロンを入力します

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

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

    このコードはアラームをトリガーします ID_0 アラームグループ内 AlarmGroup1

アラームインスタンスを介してイベントをトリガーする

これは特にライブラリ開発者にとって重要です。

重要

カスタムタイプの変数 (構造体のファンクション・ブロック) を確認して、このPOUのイベントを定義したい場合は、次のコードで行うのが望ましいです アラームグループテンプレート

POU とアラームグループテンプレートの両方を開発ライブラリの一部にできることは利点です。

によるアラームの定義 イベント (API) タイプ

  1. アプリケーションの下に、 アラームグループテンプレート 名前付き AGT_0

  2. アラームグループテンプレートで、観測タイプのアラームを定義します。 イベント (API)

  3. クラス 列、アラームクラスを選択 Error で目的のアラームメッセージを指定してください メッセージ

アラーム ID_0イベント時に API 経由でトリガーされるべきものが定義されています。

この種のアラームは、リストボックスで指定されたアラームクラスと確認方法で定義できます。詳細は不要です

API 呼び出しの実装

インスタンスアラームのイベントは、ライブラリ FB の API 呼び出しによってトリガーされます。 RaiseEventAlarmInstance または、以下の方法もあります。 RaiseEventAlarmInstanceByName

手順. ステップ・バイ・ステップ
  1. を実装する FB_MyAlarm 以下を含むファンクションブロック METH_RaiseEvent メソッド。

    1. アプリケーションノードを選択し、をクリックします [オブジェクトを追加]POU コマンド。

    2. POU を次のように設定します。名前 FB_MyAlarm、と入力します。 ファンクションブロック、実装言語 ST

    3. 関数入力変数を宣言します。

      デクラレーション:

      FUNCTION_BLOCK FB_MyAlarm
      VAR_INPUT
          xCondition : BOOL;
      END_VAR
      VAR_OUTPUT
      END_VAR
      VAR
      END_VAR
    4. POU を選択して追加します METH_RaiseEvent メソッド。

    5. の ST エディタを開きます METH_RaiseEvent ライブラリ呼び出しのメソッドとプログラミング。

      ヒント

      入力アシスタントに任せて (F2)これを手伝ってください。

      このコードはアラームをアクティブにします ID_0 アラームグループテンプレートから AGT_0

      METHOD RaiseEvent : BOOL
      VAR_INPUT
      END_VAR
      Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(THIS, Alm_AGT_0_Alarm_IDs.ID_0);
  2. アラームグループテンプレートでファンクションブロックをインスタンス化します。

    1. のエディターを開く AGT_0 そして、の縦の省略記号ボタンをクリックします 「」と入力してアラーム定義を行います。 行。

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

    2. アンダー Application、を選択します。 FB_MyAlarm ファンクションブロック。

    アラーム定義がインスタンス化されます。

  3. IEC コードで API 呼び出しを実装します。

    デクラレーション

    PROGRAM PLC_PRG
    VAR
        // Alarm Instances
        myInst : FB_MyAlarm;
        myInst2 : FB_MyAlarm;
    END_VAR

    実装

    Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(ADR(myInst), Alm_AGT_0_Alarm_IDs.ID_0); 
    Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstanceByName(ADR(myInst2), Alm_AGT_0_Alarm_IDs.ID_0, 'AGT_0');