Esistono comunque anche componenti già pronti, come dOPC e Sentrol.
OPCquick è un semplice client che mostra due approcci per la lettura asincrona: una "class to receive IDataObject data change advises" e una "class to receive IConnectionPointContainer data change callbacks"; quest'ultima (TOPCDataCallback) mi sembra più semplice.
Il minimo indispensabile per imbastire un po' di codice è:
var
ServerIf: IOPCServer;
GroupIf: IOPCItemMgt;
GroupHandle: OPCHANDLE;
ItemHandle: OPCHANDLE;
Gli item sono tenuti insieme in group e tutti i group sono attaccati ad un server. Ma è fondamentale iniziare con una chiamata a CoInitializeSecurity ...
Mi resta da capire se è più efficiente fare delle letture asincrone o sincrone ... mah !