イベント

Eventは、OPC UA SeverからClientに何かを通知する機能を提供します。EventはEventNotifier Attributeを持つ、ObjectとViewだけが発行できます。EventはMethodの実行、または、Variableが閾値をこえた場合などに、帰属するObjectやViewから発行されます。それぞれのNodeClassからEventがどう発行されるのかについてこれから説明します。

イベントを発行できるのはViewとObject

Eventを発行できるNodeは、EventNotifier Attributeを持つObjectまたはViewです。EventNotifier Attributeは、8ビットの符号なしのIntで、Eventが発行できるのはEventNotifier Attributeの0ビットにあたる「SubscribeToEvents」のパラメータがデフォルトの0から1に変更されたObjectまたはViewです。

各々のNodeからどのようにイベントを発生させるのか?

ObjectからEventを発生させるには

ObjectからEventを発生させるにはObject NodeのEventNotifier AttributeのSubscribeToEventsのパラメータを0から1に変更します。

対象のObject NodeがEventの発生元でない場合、Eventを発行するNodeに対し、HasEventSource Referenceを定義します。SourceNodeがEventを発行できないVariableやMethodの場合は、Source NodeのObjectもしくはViewからEventが発行できるようにします。Eventを発行するObjectのさらに上位のObjectからもEventを発行できるようにしたい場合は、HasNotifier ReferenceでReferenceを設定します。

ViewからEventを発生させるには

ViewからEventを発生させるにはObjectと同様にEventNotifier AttributeのSubscribeToEventsのパラメータを0から1に変更します。ViewがEventの実際の発生元ではない場合、Eventを発行するNodeに対して、ViewからHasEventSourceまたはHasNotifier Referenceを定義します。

ObjectTypeからEventを発生させるには

ObjectTypeはGeneratesEvent ReferenceのSource Nodeに指定できます。SourceNodeとなるObjectTypeのNodeからTarbget NodeのEventTypeに対してGeneratesEventのReferenceを使用し定義します。

VariableTypeからEventを発生させるには

VariablTypeはGeneratesEventのReferenceのSource Nodeに指定できます。SourceとなるVariableTypeのNodeからTarbget NodeのEventTypeに対してGeneratesEventのReferenceを使用し定義します。

MethodからEventを発生させるには

Method NodeからEventを発行するには、関数処理がEvent発生の原因になり得るEventTypeに対してGeneratesEvent Referenceを定義します。