exponenta event banner

writeasync

Асинхронная запись значений в группу или элементы

Синтаксис

TransID = writeasync(GObj,Values)
TransID = writeasync(IObj,Values)

Описание

TransID = writeasync(GObj,Values) асинхронно записывает значения во все элементы, содержащиеся в dagroup объект GObj. Values является массивом ячеек значений и имеет тот же размер, что и количество элементов в GObj. TransID - уникальный идентификатор транзакции для асинхронного запроса.

TransID = writeasync(IObj,Values) асинхронно записывает значения во все элементы, содержащиеся в векторе daitem объекты, указанные IObj.

Чтобы обеспечить запись определенного значения в правильный объект элемента, необходимо создать Values массив ячеек на основе порядка элементов, возвращенных Item собственность. Поскольку значения записываются на устройство, эта операция может занять много времени.

Типы данных значений не обязательно должны соответствовать каноническому типу данных связанных элементов. Если преобразование типа данных невозможно, выдается предупреждение.

После завершения асинхронной операции записи сервер генерирует асинхронное событие записи. Если файл функции обратного вызова указан для WriteAsyncFcn , то функция выполняется при генерации события.

Примечание

Поведение OPC-сервера при записи NaN для элемента зависит от сервера. При попытке записи NaN для сервера OPC это значение может быть автоматически проигнорировано сервером OPC. То есть сервер может не генерировать никаких событий в ответ на запись NaN к элементу.

Примеры

Настройте клиент, группу и элементы для сервера моделирования Matrikon™:

da = opcda('localhost', 'Matrikon.OPC.Simulation');
connect(da);
grp = addgroup(da, 'ExWrite');
itm = additem(grp, {'Bucket Brigade.Real8', ...
    'Bucket Brigade.String'});

Сконфигурируйте WriteAsyncFcn обратный вызов для чтения из группы:

grp.WriteAsyncFcn = 'r=read(grp,''device'')';

Асинхронная запись значений в группу:

writeasync(grp, {123.456, 'MATLAB is great!'})

См. также

| | | |

Представлен до R2006a