%**************************************************************************
%************************ Inicialização do OPC ****************************
%**************************************************************************
%XXXXXXXXXXXXXXXXX Creando um OPC Data Access Client Object XXXXXXXXXXXXXXX
da = opcda('localhost', 'Matrikon.OPC.Simulation.1');
%XXXXXXXXXXXXXXXXXXXX Conectando o Cliente com o Server XXXXXXXXXXXXXXXXXXX
connect(da);
%XXXXXXXXXXXXXXXXXXXXX Grupo de trabalho para os TAGs XXXXXXXXXXXXXXXXXXXXX
grp_Inp = addgroup(da,'AnalogInput');
set(grp_Inp, 'UpdateRate', 20);
%XXXXXXXXXXXXXXXXXXXXXXXXX ITEMS DO DFIOLESERVER XXXXXXXXXXXXXXXXXXXXXXXXXX
%---------------------- Add Items ao Grupo Entradas -----------------------
ItmFit31Ai = additem(grp_Inp,'Random.Real4','single');
ItmFit32Ai = additem(grp_Inp,'Random.Real8','single');
ItmLit31Ai = additem(grp_Inp,'Random.UInt1','single');
ItmFit31Intg1 = additem(grp_Inp,'Random.UInt2','single');
ItmFit32Intg2 = additem(grp_Inp,'Random.UInt4','single');
ItmFit32Intg1 = additem(grp_Inp,'Random.Int1','single');
ItmTy31Ao = additem(grp_Inp,'Random.Int2','single');
ItmFy31Ao = additem(grp_Inp,'Random.Int4','single');


%XXXXXXXXXXXXXXXXXXXXXX LENDO OS ITEMS DO DFIOLESERVER XXXXXXXXXXXXXXXXXXXX
%-------------- Lendo Os Valores dos Sensores e Atuadores  ----------------
Rdgrp_Inp = readasync(grp_Inp)
% [ValFit31Ai ValFit32Ai ValLit31Ai ValFit31Intg1 ValFit32Intg2 ...
%     ValFit32Intg1 ValTy31Ao ValFy31Ao] = Rdgrp_Inp.Value;
%[ItmID,Val,Qual,TStamp,EvtTime] = OPCSTRUCT2ARRAY(Rdgrp_Inp,'single')
pause(10)
disp('Event log:')
showopcevents(da)
% ValFit31Ai
% ValFit32Ai 
% ValLit31Ai 
% ValFit31Intg1 
% ValFit32Intg2    
% ValFit32Intg1 
% ValTy31Ao 
% ValFy31Ao