Библиотека paOpcUA

paOpcUA – библиотека, обеспечивающая обмен по протоколу OPC UA в режиме сервера и/или клиента.

Каждый ПЛК, программируемый в Полигон, является OPC UA-сервером, так как Отладчик подключается к контроллеру как OPC UA-клиент. Поэтому присутствие библиотеки paOpcUA в проекте обязательно.

Преднастроенный OPC UA-сервер добавляется автоматически при выборе модуля из шаблона Модуль с отладчиком для контроллера в месте работы Фон, программа Debug.

Особенности реализации протокола OPC UA в Полигон приведены в Приложении Поддержка сервисов по спецификации OPC UA.

Для добавления библиотеки paOpcUA в проект следует:

  1. Перейти в меню Окна/Проекты. В появившемся окне отобразится текущий проект и добавленные библиотеки.

    Graphic
    Добавление библиотеки
  2. Нажать кнопку Открыть и перейти в папку с файлами библиотеки, которую необходимо добавить. Затем в выпадающем списке выбрать тип файла Библиотека Полигон 2 (*.ll2).

    Graphic
    Добавление библиотеки paOpcUA в проект

  3. В окне появится файл библиотеки с расширением .ll2. Следует выбрать его и нажать Открыть.

    Graphic
    Добавление библиотеки paOpcUA в проект

Добавленная библиотека отобразится в окне Проекты.

OPC UA-сервер (OpcUAServer)

Блок OpcUAServer обеспечивает реализацию сервера по протоколу OPC UA. Присутствие данного блока в проекте обязательно, так как Отладчик подключается к контроллеру как OPC UA-клиент.

Данный блок можно разместить только в Фоне.

На входы блока ip – IP-адрес контроллера и prt – локальный порт контроллера рекомендуется подавать SQL-запросы к соответствующим свойствам текущего модуля.

Запрос IP-адреса (prop_ip):

"<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_ip"</sql>"

Запрос номера порта (prop_debug_port):

<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_debug_port"</sql>

При добавлении циклических входов cip к OPC UA-серверу смогут подключаться только клиенты с указанным IP-адресом (в т. ч. Отладчик).

Назначение входов и выходов OpcUAServer
ЭлементОписание
Входы
ip

Локальный IP адрес (константный)

prt

Локальный порт (константный)

sdr

Сетевой стек, для ПЛК ОВЕН "/" (константный)

st

Статус сервера в соответствии со спецификацией OPC UA (см. Part 5 – 12.6 ServerState)

sl

Дополнительный статус сервера ServiceLevel в соответствии со спецификацией OPC UA (см. Part 4 – 6.6.2.4.2 ServiceLevel):

255 – ведущий

199 – ведомый

max

Максимально разрешенное количество соединений (константный)

cip

IP разрешенного подключения (циклический и константный)

cpr

Приоритет подключения (циклический и константный)

Выходы
st

Текущий статус сервера в соответствии со спецификацией OPC UA (см. Part 5 – 12.6 ServerState)

cn

Количество активных соединений (сумма cnDbg, cnPA, cnOth)

cnDbg

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

cnPA

Количество соединений с клиентами OpcUAClient

cnOth

Количество соединений с другими клиентами

cst

Статус соединения с разрешенным клиентом (циклический)

Graphic
OPC UA-сервер (OpcUA

OPC UA-сервер, таймерная часть (OpcUAServerTimer)

Блок OpcUAServerTimer обеспечивает возможность сбора данных для подписок OPC UA-сервера в таймере. Для этого необходимо добавить блок в место работы Таймер с минимальным размером таймерного промежутка. Данный блок можно разместить только в Таймере.

Блок OpcUAServerTimer должен встречаться в проекте только один раз независимо от того, сколько OPC UA-серверов добавлено в проект. После этого можно настраивать параметры сбора данных в подписке с дискретностью таймерного цикла. В частности, это можно использовать для отладки программы в представлении График. Надо учитывать, что при инициализации подписки клиентом OPC UA с дискретизацией, кратной таймерному промежутку, в контроллере выделяется память для хранения очереди накапливаемых значений.

Назначение входов/выходов:

Graphic
OPC UA сервер, таймерная часть (OpcUAServerTimer)

enb – разрешение на работу блока;

subsN – количество подписок, обрабатываемых в таймере;

dpsN – количество данных

OPC UA-клиент (OpcUAClient)

Блок OpcUAClient обеспечивает реализацию одной подписки к серверу по протоколу OPC UA. Входы и выходы, которыми необходимо обмениваться с сервером необходимо добавить в раздел Данные внутри этого блока. Данный блок можно разместить только в Фоне.

На входы блока lip – IP-адрес контроллера и lprt – локальный порт контроллера рекомендуется подавать SQL-запросы к соответствующим свойствам текущего модуля.

Запрос IP-адреса (prop_ip):

"<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_ip"</sql>"

Запрос номера порта (prop_debug_port):

<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_debug_port"</sql>
Назначение входов и выходов OpcUAClient
ЭлементОписание
Входы
enb

Разрешение на работу блока:

0 – выключен;

1 – включен;

2 – в резерве

wait

Таймаут ожидания ответа от сервера, мс (константный)

lip

Локальный IP-адрес (константный)

lprt

Локальный порт (константный)

sdr

Сетевой стек, для ПЛК ОВЕН "/" (константный)

rip

IP адрес сервера (константный)

rprt

Порт сервера (константный)

usr

Логин для доступа к серверу (константный)

psw

Пароль для доступа к серверу (константный)

pbl

Интервал работы подписки в мс (PublishingInterval) – периодичность работы подписки внутри сервера. Если pbl = 0, то сервер обрабатывает подписку каждый фоновый цикл (константный)

lfc

Время жизни подписки в циклах (LifetimeCount) (константный)

kac

Максимальное значение keep-alive счетчика в циклах (MaxKeepAliveCount) (константный)

wcon

Отправлять значения выходов при установке соединения

routs

Читать выходы

cfg

Дополнительная конфигурация работы

Примечание
Начиная с версии 901 библиотеки paOpcUA в блоке OpcUAClient отключен разрыв соединения в случае отсутствия некоторых данных в сервере. Для возвращения старого поведения следует установить бит 0 на входе cfg в 1.
buf

Подключение блоков BufSupEx из библиотеки paCore (циклический)

Выходы
sts

Статус работы:

0 – нет обмена;

1 – обмен данными;

2 – в резерве, соединение установлено, значения выходов sst и ssl актуальные, обмена данными нет;

3 – в процессе установки соединения;

4 – в процессе разрыва соединения;

5 – сервер вернул ошибку (более подробную информацию программа печатает в консоль);

6 – внутренняя ошибка, перезапуск соединения;

–1 – системная ошибка, невозможно выделить локальный сокет для установки соединения;

–2 – системная ошибка, невозможно использовать локальный порт для установки соединения

sst

Статус сервера в соответствии со спецификацией OPC UA (см. Part 5 – 12.6 ServerState)

ssl

Дополнительный статус сервера ServiceLevel в соответствии со спецификацией OPC UA (см. Part 4 – 6.6.2.4.2 ServiceLevel):

255 – ведущий;

199 – ведомый

sid

ID подписки

ssn

Номер уведомления подписки

rcnt

Количество принятых пакетов

wcnt

Количество отправленных пакетов

Graphic
OPC UA клиент (OpcUAClient)

Управление блоками BufSup (UABufSups)

Блок UABufSups предназначен для подключения блоков BufSupEx из библиотеки paCore и записи/чтения данных. Для записи данного в файл BufSupEx клиенту необходимо записать значение во вход или выход dan. Прочитать текущее значение параметра из файла клиент может с выхода dan. Данный блок можно разместить только в Фоне.

Назначение входов/выходов:

Graphic
Управление блоками BufSup (UABufSups)

enb – разрешение на работу блока;

buf – вход для подключения блоков BufSupEx из библиотеки paCore (циклический);

itr – выход для подключения блоков BufSupEx;

cnt – записано