Introduzione
Previous  Top  Next

Proprietà generali

Name

Ciascun gruppo ha un nome. Per un gruppo privato il nome deve essere unico e non deve creare ambiguità con gli altri gruppi privati all'interno del suo client. Per un gruppo pubblico il nome deve essere unico e non deve creare ambiguità con gli altri gruppi pubblici all'interno del suo client. Mentre un cliente può cambiare il nome ad un gruppo privato, il nome di un gruppo pubblico non può essere cambiato. Un gruppo pubblico ed un gruppo privato possono avere lo stesso nome fin tanto che il client non è connesso ad un gruppo pubblico avente lo stesso nome. I nomi dei gruppi sono CASE SENSITIVE.


Cached Data

I metodi seguenti permettono al client di specificare quali operazione può essere implementata su CHACE o DEVICE. Ci si aspetta che la maggior parte dei client implementi un qualche ordinamento della cache. Ci si aspetta che nella maggior parte dei casi l'accesso alla cache sia VELOCE mentre l'accesso al device sia LENTO ma più sicuro. La Cache è condizionata dalla stato attivo del gruppo e degli Item del gruppo, contrariamente a qunto avviene nei Device. Comunque i dettagli implementativi di queste funzionalità sono lasciate ai fornitori.


Active

Gruppi ed Item interni ad un gruppo hanno un flag Active. Lo stato attivo del gruppo è cosa diversa dallo stato attivo degli Item; il cambiamento dello stato di un gruppo non cambia lo stato degli Item. Lo stato di questo flag ha effetti sul funzionamento di molte delle seguenti interfacce. Ci si aspetta che la maggior parte dei server faccia uso di questo flag per ottimizzare l'uso della CPU e delle loro risorse per la comunicazione. Item e gruppi non attivi non necessitano di essere mantenuti all'interno della cache. Ci si aspetta inoltre che i client settino o resettino il flag piuttosto di rimuovere o aggiungere item o interi gruppi (operazione senza dubbio meno efficiente).


Update Rate

I client possono specificare un Update rate per ciascun gruppo. Questo determina quando avverrà un'eccezione di tempo limite per un controllo. All'occorrenza di questa eccezione la CACHE viene aggiornata. Il server dovrebbe sforzarsi di fornire dati sempre aggiornati. L'Update Rate avrà anche effetti sulla massima frequenza con cui le notifiche verranno spedite all'interfaccia IAdvise. Il server non dovrebbe mai mandare dati ad un client ad una frequenza più alta di quella richiesta dal client. Si noti che l'Upadate Rate non è necessariamente posta in relazione con il processo sottostante del server.


Time zone

In qualche caso i dati potrebbero essere stati raccolti da device operanti in una time zone diversa da quella del client. Questa informazione sarà usata per capire quale è lo sfasamento tra il tempo del device e quello del client e fornire le informazioni necessarie per convertire il timestamp dei dati e renderlo coerente con il tempo del dispositivo locale. Questa informazione è usata raramente e molto spesso i device fornenti i dati non conoscono la propria time zone; tuttavia è prudente, ove possibile, aggiungere questa informazione ad ogni trasmissione di dati. Ogni OPCGroup fornisce un punto dove conservare un time zone che può essere settato o letto dal client. Per default il suo valore è quello del time zone del computer host. L'OPCServer non dovrebbe far uso di questa informazione, che dovrebbe essere a totale vantaggio del client.


Percentuale di deadband

L'intervallo di valori per la deadband va dallo 0% al 100%. La deadband si applica solo agli item che hanno disponibilità di un dwEUType Analog. Se il dwEUType è Analog, allora i valori dell'EU Low e dell'EU High per l'item possono essere usati per calcolare il range per l'Item. Questo range verrà moltiplicato per la Deadband per generare un'eccezione di limite. L'eccezione è generata nel modo seguente:
Exception if (absolute value of (last cached value - current value) > (pPercentDeadband/100/0) * (EU High - EU Low) ).
Se l'eccezione viene generata, allora l'ultimo valore contenuto nella cache viene aggiornato con un nuovo valore ed una notifica verrà mandata all'IAdviseSink. Il parametro pPercentBand è opzionale per il server. Se il client non specifica questo valore al server, per default si assume uguale a zero e tutti i valori cambiati saranno aggiornati nella cache.

ClientHandle

Questo handle sarà ritornato in un data stream all'IAdviseSink. Questo permette al client di identificare il gruppo al quale il pacchetto dati si riferisce. Ci si aspetta che il client assegni un valore unico al client handle se intende usarlo per ogni funzione asincrona dell'interfaccia OPC, incluse le interfacce IOPCAsyncIO, IOPCAsyncIOs, e IDataObject/IAdviseSink o IConnectionPoint/IOPCDataCallback.


Lettura e scrittura di dati

Esistono essenzialmente tre modi per leggere dati:

·IOPCSyncIO::Read       (dalla cache o dai device)  
·IOPCAsyncIO2::Read    (dai device)  
·IOPCCallback::OnDataChange() (basata sulle eccezioni) che può anche essere sostituita da IOPCAsyncIO2::Refresh.  

In generale i tre metodi operano indipendentemente l'uno dall'altro

Esistono altri due metodi per scrivere dati:

·IOPCSyncIO::Write  
·IOPCAsyncIO2::Async Write  


Public Groups

Si richiede che il server tenga traccia delle proprietà per ciascun gruppo per i gruppi pubblici.