Le Sottoscrizioni OPC EventSubscriptions
Previous  Top  Next

Per poter ricevere notifiche di eventi, gli OPC Client devono sottoscriverle. Una sottoscrizione è comunicata ad un OPC event server per richiedergli la creazione di un oggetto OPCEventSubscription. Un OPC Cliente può avere uno o più OPCEventSubscriptions attivi con un singolo OPC Event Server.
OPCEventSubscriptions sono oggetti "connectable" in quanto implementano l'interfaccia DCOM Connection Point.

OPCEventSubscriptions ha il seguente attributo:
 
Filter  
Una struttura contenente i criteri per selezionare gli eventi d'interesse del client. Un Filtro nullo ha come conseguenza l'accettazione da parte del client OPC di tutte le notifiche.  


   Eventi possono essere selezionati usando i criteri seguenti:

   · Tipo dell'evento
   · Categorie dell'Evento   
   · Priorità bassa: tutti gli eventi con una priorità maggiore o uguale a quella specificata
   · Priorità alta: tutti eventi con una priorità minore o uguale a quella specificata
   · Aree    del processo
   · Sorgente dell'Evento

   Ai filtri si possono applicare le operazioni logiche di AND ed OR

OPCEventSubscriptions fornisce un'interfaccia per permettere all'OPC Client di specificare il Filtro. In più, implementando l'interfaccia DCOM Connection Point, fornisce un meccanismo per notificare ai Client OPC l'occorrenza di un evento


Notifica al Client

Gli OPC Client possono ottenere lo stato corrente di tutte le condizioni attive, o inattive ma non ackate, per richiedere un "refresh" da ciascun oggetto OPCEventSubscription attivo. Il server risponderà, attraverso il meccanismo event callback, spedendo gli appropriati eventi al client per tutte le condizioni selezionate dal filtro per ciascuna sottoscrizione. Quando invoca il callback del client, il server indicherà se la chiamata è per un refresh o è una notifica vera e propria. Refresh e notifiche d'eventi non devono essere confuse nella stessa chiamata di callback.
Questa architettura presume che il client abbia bisogno solo di informazioni sullo stato corrente delle condizioni, così solamente le notifiche di eventi condition-releated necessitano di refresh.
Poiché le condizioni possono cambiare stato mentre il server risponde ad una richiesta di refresh, la notifica di questa può non riflettere lo stato della condizione corrente quando viene ricevuta dal client. Similmente, un client può ricevere la notifica di un evento dopo aver effettuato un refresh. Quindi i client avranno bisogno di confrontare i timestamps per assicurarsi di quale sia lo stato corretto della condizione.