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™ Simulation Server:

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