Начиная с версии 4.4 операционной системы контроллеров линейки S7-1200 появилась возможность опрашивать их по протоколу OPC UA. В настоящий момент времени поддерживается только серверная часть (ПЛК может отвечать на запросы клиентов), клиентская часть — не поддерживается.
В настройке OPC UA сервера на S7-1200 есть отличия от S7-1500 (забегая вперед, скажу, что серверный интерфейс требуется создавать вручную, без этого ПЛК не будет отдавать никаких пользовательских данных, хотя и разрешит входящие подключения).
В первую очередь заходим в свойства и включаем сервер OPC UA.
Не забываем так же указать в настройках, что лицензия на OPC UA была приобретена.
То есть, если не вдаваться в важные тонкости, вроде шифрования трафика и вопросов ограничения доступа, все делаем, как и для S7-1500. Чтобы продемонстрировать ошибочность этого подхода, выполним загрузку CPU прямо сейчас и подпробуем к нему подключиться. В качестве клиента OPC UA применяется та же программа, которая использовалась в примерах работы протокола для линейки S7-1500. Единственное отличие заключается в том, что при установленной на программатор Windows 10 программу-клиент мне приходится запускать с администраторскими полномочиями.
Подключимся к ПЛК.
Сколько ни крути, сколько ни ищи, но никаких переменных пользовательской программы мы сейчас не найдем. Только разного рода вспомогательная информация по серверу.
Связано это с тем, что у нас не создан серверный интерфейс, то есть, не указаны переменные, которые сервер будет отдавать клиенту. В серии S7-1500 этот интерфейс создается по-умолчанию в настройках CPU, и по умолчанию OPC UA сервер отдает все тэги, для которых проставлены разрешения к доступу по OPC UA. Посмотрим скрин-шот настройки серверы для CPU S7-1516
Для 1200ой серии необходимо найти в дереве проекта OPC UA Communications → Server Interfaces и нажать там Add new server interface
Далее перетащим из правой части экрана в левую те тэги, доступ к котором необходимо предоставить по протоколу OPC UA
Выполним компиляцию и загрузим ПЛК. Теперь попробуем подключиться к OPC UA заново. Теперь у нас появился интерфейс Server interface_1 и все заданные в нем переменные.
Значение переменной успешно читается.
Автор: Alexander Kuznetsov