Стандарт доступа к данным OPC использует спецификацию Microsoft ® COM для связи между сервером OPC и клиентом OPC. Значительный объем данных, которыми обмениваются OPC-сервер и клиент, представляет собой значение из элемента сервера или значение, которое клиент хочет записать в элемент сервера. Спецификация Microsoft COM использует Microsoft Variants для отправки различных типов данных между клиентом и сервером. В этом разделе описывается, как программное обеспечение OPC Toolbox™ преобразует типы данных MATLAB ® в варианты COM при записи значений, а варианты COM в типы данных MATLAB при чтении значений.
Серверы OPC требуют записи всех значений в элементы сервера в формате COM Variant. Сервер также предоставляет панель инструментов с вариантами COM, когда элемент Value считывается или возвращается сервером. Панель инструментов автоматически преобразуется между типами данных COM Variant и MATLAB в соответствии с таблицей, показанной ниже.
Таблица 8-1, Преобразование типа данных MATLAB в тип данных варианта COM
Тип данных MATLAB | Тип данных сервера OPC (тип варианта COM) | Замечания |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| Не допускается |
| Н/Д | Не допускается |
| Н/Д | Не допускается |
| Н/Д | Не допускается |
Н/Д |
| Не допускается |
Н/Д |
| Не допускается |
|
| Возвращает пустую матрицу ( |
При записи значений на сервер OPC с помощью write или writeasync для операции записи можно предоставить любые данные MATLAB. При записи данных на сервер OPC выполняются следующие преобразования данных:
Программа OPC Toolbox преобразует значение в эквивалентный вариант COM в соответствии с таблицей 8-1 «Преобразование из типа данных MATLAB в тип данных варианта COM». При обнаружении недопустимого типа данных (например, при попытке записи структуры MATLAB) генерируется ошибка.
Вариант COM отправляется на сервер OPC.
Сервер OPC попытается преобразовать COM Variant в канонический тип данных элемента сервера, используя правила преобразования COM Variant. Если преобразование завершится неуспешно, сервер вернет ошибку.
Когда сервер OPC возвращает значения для элемента сервера в MATLAB, сервер OPC сначала преобразует это значение в эквивалент COM Variant типа данных, указанного в daitem объект DataType собственность. Если преобразование завершается неуспешно, возвращается сообщение об ошибке со значением. Когда программное обеспечение OPC Toolbox получает значение, вариант COM преобразуется в эквивалентный тип данных MATLAB в соответствии с таблицей 8-1 «Преобразование типа данных MATLAB в тип данных варианта COM».
Спецификация OPC поддерживает массивы значений, записываемых в элемент сервера и считываемых из элемента сервера. Однако определенный элемент сервера может не принимать массив значений. Поведение сервера в этом случае зависит от сервера. Например, один сервер может использовать только первое значение массива. Другой сервер может вернуть ошибку при попытке записи массива значений в элемент сервера, поддерживающий только скалярное значение. Программа OPC Toolbox не может определить, принимает ли элемент сервера только скалярные значения.
Для всех типов данных, перечисленных в таблице 8-1, преобразование из типа данных MATLAB в тип данных варианта COM, которые могут быть преобразованы между MATLAB и вариантом COM, скалярные данные и данные массива разрешены панелью инструментов. Однако спецификация OPC поддерживает только одномерные массивы данных. Массивы MATLAB более высокой размерности сплющиваются в одномерный вектор при записи данных на сервер OPC.