API 呼び出しを使用してプログラムでイベントをトリガーする
注記
イベントは観測タイプのアラーム イベント (API)。これらは、の機能を使用してアプリケーションコード内でプログラム的にトリガーされます AlarmManager ライブラリと IARアームハンドラー (7) インターフェイス。
イベントは、アラームグループまたはアラームグループテンプレートでアラームインスタンスとして直接定義されます。
詳細については、「」を参照してください。 例:アラームマネージャ
イベントで警報
によるアラームの定義 イベント (API) タイプ
で
Alarm Configuration、を設定 アラームグループ。アラームグループで、観測タイプのアラームを定義します イベント (API)。
で クラス 列、たとえばアラームクラスを選択
Errorで目的のアラームメッセージを指定してください メッセージ。
アラーム ID_0イベント時に API 経由でトリガーされるものが定義されています。
このようなイベントはどのアラームクラスでも定義できます。詳細は不要で、アラーム条件も指定されていません。イベントは API 呼び出しによってトリガーされます。
ヒント
アラームグループテンプレートでイベントを定義することもできます。
API 呼び出しの実装
イベントは、ライブラリ FB インスタンスの API 呼び出しによってコード内でトリガーされます。 RaiseEvent、アラーム ID が渡されました。各アラームには固有の ID があります。これはコード内の変数として使用できるため、転送変数としても機能します。
具体的には、alarmID 変数は次のスキームに従った列挙型です。
Alm_<name of alarm group>_ IDs.ID_<configured ID>
ファンクションブロックの呼び出しが行われるプログラム位置にカーソルを設定します。
「」と入力します
AlarmManager「の後にピリオドが続きます。選択
AlarmGlobalsピリオドを入力します。挿入可能なすべての要素のリストを含むウィンドウが開きます (「コンポーネントのリスト」機能)。

同様に要素を挿入します
g_AlarmHandlerそしてRaiseEvent。次の行が表示されます。
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent。転送変数を定義します
AlarmGroup_IDそしてAlarm_IDこれを行うには、開き括弧を入力します。転送変数に関する情報を示すツールチップが表示されます
を押します F2 キー。
入力アシスタントが開きます。
上の カテゴリー タブ(
)、カテゴリーを選択 変数 (
)。入力アシスタント

目的のアラームグループ ID 変数を選択します (
)。変数はプログラム行に適用されます。
カンマを入力し、入力アシスタントを使用して目的のアラーム ID 変数を挿入します (
)。閉じ括弧とセミコロンを入力します次のプログラム行が得られます。
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup1, Alm_AlarmGroup1_Alarm_IDs.ID_0);
このコードはアラームをトリガーします
ID_0アラームグループ内AlarmGroup1。
アラームインスタンスを介してイベントをトリガーする
これは特にライブラリ開発者にとって重要です。
重要
カスタムタイプの変数 (構造体のファンクション・ブロック) を確認して、このPOUのイベントを定義したい場合は、次のコードで行うのが望ましいです アラームグループテンプレート。
POU とアラームグループテンプレートの両方を開発ライブラリの一部にできることは利点です。
によるアラームの定義 イベント (API) タイプ
アプリケーションの下に、 アラームグループテンプレート 名前付き
AGT_0。アラームグループテンプレートで、観測タイプのアラームを定義します。 イベント (API)。
で クラス 列、アラームクラスを選択
Errorで目的のアラームメッセージを指定してください メッセージ。
アラーム ID_0イベント時に API 経由でトリガーされるべきものが定義されています。
この種のアラームは、リストボックスで指定されたアラームクラスと確認方法で定義できます。詳細は不要です
API 呼び出しの実装
インスタンスアラームのイベントは、ライブラリ FB の API 呼び出しによってトリガーされます。 RaiseEventAlarmInstance または、以下の方法もあります。 RaiseEventAlarmInstanceByName。
を実装する
FB_MyAlarm以下を含むファンクションブロックMETH_RaiseEventメソッド。アプリケーションノードを選択し、をクリックします [オブジェクトを追加] → POU コマンド。
POU を次のように設定します。名前
FB_MyAlarm、と入力します。 ファンクションブロック、実装言語 ST。関数入力変数を宣言します。
デクラレーション:
FUNCTION_BLOCK FB_MyAlarm VAR_INPUT xCondition : BOOL; END_VAR VAR_OUTPUT END_VAR VAR END_VARPOU を選択して追加します
METH_RaiseEventメソッド。の 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);
アラームグループテンプレートでファンクションブロックをインスタンス化します。
のエディターを開く
AGT_0そして、の縦の省略記号ボタンをクリックします 「」と入力してアラーム定義を行います。 行。入力アシスタントが開きます。
アンダー
Application、を選択します。FB_MyAlarmファンクションブロック。
アラーム定義がインスタンス化されます。
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');
