イベント
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を定義します。