Le seguenti tabelle sintetizzano il funzionamento atteso di un OPC Server e di un OPC Client in funzione degli Active flags di Groups e Items, Reads e Subscriptions e dati CACHE e DEVICE.
La prima colonna contiene la notazione abbreviata per le funzioni esterne che una applicazione OPC client chiama e che un OPC server implementa.
La colonna Source rappresenta la sorgente(dispositivo o cache) dalla quale il client vuole ottenere i dati. La colonna Enable indica se è attivo lo stato callback settato tramite AsyncIO2::SetEnable.
La colonna Group rappresenta lo stato attivo del group. La colonna Item rappresenta lo stato attivo dell' Item.
La colonna Behavior rappresenta il funzionamento della configurazione settata. Nelle tabelle sono inoltre identificati certi valori Quality.
Questi riflettono i funzionamenti richiesti rispetto agli stati attivi di groups e items. In tutti gli altri casi il server può restituire valori Quality per comunicare lo stato corrente dei dati al client.
Refresh è un caso speciale di sottoscrizione, in quanto forza una chiamata a OnDataChange per tutti gli item attivi.
E' atteso che molti client useranno sia letture (Reads) che sottoscrizioni (Subscription) per un particolare group , ma non entrambi. Se vengono usati entrambi, si creerà una interazione tra di essi in quanto qualsiasi cosa mandato al client come risultato di una "lettura" è anche considerato essere "l'ultimo valore mandato".
Una transizione da Inattivo ad Attivo comporterà un cambiamento nella Quality, e provocherà una sottoscrizione callback per l'item o gli items interessati. Un cambio (nel group o nell'item) da Attivo ad Inattivo provocherà un cambio della qualità, ma non causerà una callback, poiché per definizione, le callbacks non avvengono per gli items inattivi.
Se si effettua una lettura esplicita (sincrona o asincrona) di un group o di un item inattivo si otterrà un valore Quality indicante che l'item è inattivo