Асинхронное чтение данных из группы или элементов
TransID = readasync(GObj)
TransID = readasync(IObj)
TransID = readasync(GObj) и TransID = readasync(IObj) асинхронное считывание данных для всех элементов, содержащихся в dagroup объект, GObj, или для вектора daitem объекты, указанные IObj. TransID - уникальный идентификатор транзакции для асинхронного запроса.
При асинхронном чтении данные всегда считываются с устройства, а не из кэша сервера. Active игнорируется для асинхронных чтений.
После завершения операции чтения сервер генерирует асинхронное событие чтения. Если файл функции обратного вызова указан для ReadAsyncFcn , эта функция выполняется при генерации события.
Можно отменить выполняющийся асинхронный запрос с помощью cancelasync.
Когда readasync операция выполнена успешно, Value, Quality, и TimeStamp свойства связанных элементов обновляются для отражения значений, полученных в результате операции считывания.
Настройте клиент, группу и элемент для сервера моделирования Matrikon™:
da = opcda('localhost','Matrikon.OPC.Simulation'); connect(da); grp = addgroup(da,'ExReadAsync'); grp.UpdateRate = 20; itm = additem(grp,'Random.Real8');
Выполните две операции асинхронного чтения:
tid1 = readasync(grp) tid2 = readasync(grp)
Проверьте журнал событий:
pause(2)
disp('Event log:')
showopcevents(da)cancelasync | read | refresh | write | writeasync