exponenta event banner

Работа с различными типами данных

Преобразование между типами данных MATLAB и типами данных COM-вариантов

Стандарт доступа к OPC Data использует Microsoft® Спецификация COM для связи между сервером OPC и клиентом OPC. Значительным объемом данных, которыми обмениваются между сервером OPC и клиентом, является значение от серверного элемента или значение, которое клиент хочет записать в серверный элемент. Спецификация Microsoft COM использует варианты Microsoft для отправки различных типов данных между клиентом и сервером. В этом разделе рассматривается, как программное обеспечение OPC Toolbox™ преобразует MATLAB® типы данных в варианты COM при записи значений и типы данных COM в MATLAB при считывании значений.

Серверы OPC требуют, чтобы все значения записывались в серверные элементы в формате COM-варианта. Сервер также предоставляет тулбоксу варианты COM, когда Value элемента свойство считывается или возвращается сервером. Тулбокс автоматически преобразуется между типом COM-варианта и типами данных MATLAB в соответствии с таблицей, показанной ниже.

Таблица 8-1, Преобразование типа данных MATLAB в тип данных COM-варианта

Тип данных MATLAB

Сервер OPC данных (COM-тип варианта)

Замечания

double

VT_R8

 

single

VT_R4

 

char

VT_BSTR

 

logical

VT_BOOL

 

uint8

VT_UI1

 

uint16

VT_UI2

 

uint32

VT_UI4

 

uint64

VT_UI8

 

int8

VT_I1

 

int16

VT_I2

 

int32

VT_I4

 

int64

VT_I8

 

function_handle

N/A

Не разрешено

cell

Н/Д

Не разрешено

struct

Н/Д

Не разрешено

object

Н/Д

Не разрешено

Н/Д

VT_DISPATCH

Не разрешено

Н/Д

VT_BYREF

Не разрешено

double

VT_EMPTY

Возвращает пустую матрицу ([])

Преобразование значений, записанных в сервер OPC

Когда вы записываете значения на сервер OPC, используя write или writeasync функция, вы можете предоставить любые данные MATLAB для операции записи. При записи данных в Сервер OPC происходит следующее преобразование данных:

  1. Программное обеспечение OPC Toolbox преобразует значение в эквивалентный COM-вариант в соответствии с таблицей 8-1 «Преобразование типа данных MATLAB в тип данных варианта COM». Если встречается какой-либо запрещенный тип данных (для примера, если вы пытаетесь записать структуру MATLAB), будет сгенерирована ошибка.

  2. COM- Варианта отправляется на сервер OPC.

  3. OPC-сервер попытается преобразовать COM- Варианта в канонический тип данных серверных элементов с помощью правил преобразования COM- Варианта. В случае сбоя преобразования сервер вернет ошибку.

Преобразование значений, считанных из Сервера OPC

Когда Сервер OPC возвращает значения для серверного элемента в MATLAB, Сервер OPC сначала преобразует значение в COM Варианта эквивалентное типу данных, заданному daitem DataType объекта свойство. В случае сбоя преобразования возвращается сообщение об ошибке со значением. Когда программное обеспечение OPC Toolbox получает значение, COM- Варианта преобразуется в эквивалентный тип данных MATLAB в соответствии с таблицей 8-1 «Преобразование из типа данных MATLAB в тип данных варианта COM».

Обработка массивов для значений элементов

Спецификация OPC поддерживает массивы значений, записываемых в серверный элемент и считываемых из серверного элемента. Однако конкретный серверный элемент может не принять массив значений. Поведение сервера в этом случае зависит от сервера. Для примера один сервер может использовать только первое значение массива. Другой сервер может вернуть ошибку при попытке записи массива значений в серверный элемент, которая поддерживает только скалярное значение. Программное обеспечение OPC Toolbox не может определить, принимает ли серверный элемент только скалярные значения.

Для всех типов данных, перечисленных в таблице 8-1, Преобразование из типа данных MATLAB в тип данных COM-варианта, которое может быть преобразовано между MATLAB и вариантом, скалярные и массивные данные разрешены тулбоксом. Однако спецификация OPC поддерживает только одномерные массивы данных. Массивы MATLAB большей размерности уплощаются в одномерный вектор при записи данных в Сервер OPC.