Асинхронная запись значений в группу или элементы
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!'})
cancelasync
| read
| readasync
| refresh
| write