サブスクリプション

OPC UAはポーリングではなくより洗練されたサブスクリプションを提供します。Clientは選択したNodeをサブスクライブするためにNodeをMonitoredItemsに指定します。MonitoredItemsに指定されたNodeの値や状態データなどに変更があった場合、ServerはClientにEventをPublishします。このメカニズムにより転送されるデータの量が大幅に削減されます。Subscriptionの目的はNodeをMonitoredItemsにグループ化しEvent情報を形成することです。

Server側の設定

MonitoredItemsの対象となるNodeはObjectまたはViewです。HasNotifier Referenceを使用しEventを発行する場合、TargetNodeはObjectまたはViewでなければなりません。また、同様にObjectとViewもEventNotifier Attributeを使用しMonitoredItemsに指定することも可能です。HasNotifierのSourceNodeはEventNotifier Attributeの「SubscribeToEvents」ビットが1に設定されたObjectまたはViewです。ClientからServerでObjectまたはViewのNotifier Attributeの「SubscribeToEventsフィールドを1」に設定する必要があります。

Data Change Notification

AddressSpaceでMonitoredItemsにグループ化されたVariable Nodeの値(Value)や作成者など(State)に変更があった場合にServerからClientに発行されるEventをData Change Notificationと言います。ClientはData Change Notificationを受けて次の動作、例えばには変更された値を取得しそれをデータベースに保存するなどの判断します。

Event Notification

ClientがMethodがCallした場合、SeverからClientに発行される通知をEvent Notificationと言います。