Работа с сервером OPC UA в CoDeSys 3.5

Версия драйвера 3.5.12.40

Перед началом работы необходимо изменить количество переменных отредактировав файл описания устройства Mega12_OPC_UA_server_vX.X.X_DDMMYY.devdesc.xml. Для этого необходимо изменить количество параметров в специальной области XML-файла, которая обозначена как «START OF USER AREA» (см. Рис.3.7.10.1). Каждый параметр в этом списке начинается с тега <Parameter ParameterId... и заканчивается </Parameter>. По умолчанию доступно 10 активных переменных, ещё 990 переменных закомментировано — они отмечены символами <!-- в начале и --> в конце.

Рисунок 3.7.10.1 - Область редактирования параметров

Чтобы добавить новые переменные, можно либо раскомментировать готовые заготовки, удалив эти символы, либо вручную скопировать существующий блок <Parameter>...</Parameter> и вставить его в конец списка. В обоих случаях важно проверить, чтобы у каждой переменной были указаны:

Остальные параметры внутри блока НЕ менять. После внесения изменений нужно убедиться, что структура XML осталась правильной — все теги должны быть закрыты, а лишние символы комментариев удалены.

После внесения изменений в XML-файл необходимо обновить устройство в репозитории устройств CoDeSys. Для работы сервера OPC UA в проект программы контроллера необходимо добавить устройство Mega12_OPC_UA_server. В настройках соотнесения выбрать Вкл.2 (всегда в задаче цикла шины), для постоянного выполнения программы драйвера

Следующим шагом для работы с драйвером OPC UA server является добавление библиотеки драйвера в проект CoDeSys. Для этого:

  1. Установите файл «Mega_OPC_UA.compiled-library» в репозиторий библиотек.
  2. Добавьте библиотеку Mega_OPC_UA в менеджер библиотек проекта.

Для добавления тегов в сервер необходимо для каждой переменной создать экземпляр функционального блока UA_Server_newObject из библиотеки Mega_OPC_UA (см. Рис.3.7.10.2) и прописать входные переменные. При исполнении этого ФБ создается структура объекта object и в сервер добавится тег с соответствующими атрибутами.

Рисунок 3.7.10.2 – Объявление экземпляра ФБ

Сервер поддерживает следующие типы данных:

  1. BOOL
  2. SBYTE
  3. BYTE
  4. INT16
  5. UINT16
  6. INT32
  7. UINT32
  8. INT64
  9. UINT64
  10. FLOAT
  11. DOUBLE
  12. STRING
  13. FOLDER (папка с переменными)

Идентификатор объекта может быть двух типов:

Пример создания объекта переменной с типом данных UINT16 и со строковым типом идентификатора представлен на рисунке 3.7.10.3.

Рисунок 3.7.10.3 – задание атрибутов объекта

В настройках соотнесения устройства Mega12_OPC_UA_server необходимо к каждому каналу привязать соответствующий объект (см. Рис.3.7.10.4).

Рисунок 3.7.10.4 – Привязка объектов

Для записи в переменную необходимо изменить значение элемента объединения object.value (см. Рис.3.7.10.5)

Рисунок 3.7.10.5 – Присвоение значение объекту

Для записи в переменную с типом данных STRING необходимо воспользоваться библиотечной ФБ writeString (см. Рис.3.7.10.6).

Рисунок 3.7.10.6 – Присвоение значения объекту с типом данных string