OPC UA для CPU S7-1200 (FW4.4). Настройка сервера

    Начиная с версии 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 и все заданные в нем переменные.

    Значение переменной успешно читается.

    Комментарии 10

      0
      А ОPC UA методы клиенту можно вызывать или только статические переменные поддерживаются?
        0
        Чтение и запись переменных по OPC UA.
        как то так
          0
          Пока что так:
          A S7-1200 CPU does not support methods.
          В будущих версиях прошивки ситуация может измениться.
            0
            Ну, а для продвинутой серии 1500 методы давно поддерживаются

            Кстати, коллега, раз уж Вы заговорили… Лично я, в силу убогости фантазии, совершенно не понимаю, зачем нужны эти методы? Ведь проще же по старинке поднять булевый флаг на ПЛК, по взведению которого программа ПЛК сама все отработает.
              +1
              В некоторых случаях методы удобнее и проще чем булевы флаги и могут заменить классическое «рукопожатие» с двумя булевыми битами (handshake я имею ввиду), особенно если оно должно выполняться с таймаутом и обмен подразумевает несколько переменных — там всё в метод встроено, плюс бонусом вы получаете возвращаемый параметр, что заметно уменьшает количество «обвеса» переменным. А так да, в принципе любой метод можно заменить логикой «по старинке». Я б посоветовал изначально делать именно по старинке, а потом на этапе рефакторинга посмотреть, где можно заменить логику методами.
                0

                Плюс во многих companion specs предусматриваются методы, например управление переходами между состояниями автомата PackML.
                Применение OPC UA просто шире, чем цикличные ПЛК.

                  0
                  [вздыхает]
                  К сожалению, от моего скудного асушного ума ускользает и смысл спецификации компаньона.
                    +1

                    Общие типы и интерфейсы неплохи. Ну например: стандартная спецификация сигналов с верхней и нижней границей и единицей измерения (opc ua di) — вот у тебя и возможность цеплять скаду и hmi полуавтоматически.
                    Или стандартные типы представления автоматов через объекты для состояний и переходов (opc ua ns0 или packml) — можно использовать для мониторинга и расчета oee.
                    Или стандартные параметры сенсоров (opc ua di и pa dim), например серийные номера устройств итд.
                    Есть plcopen companion. Через него можно, в теории, браузить и менять логику в плк через стандартный интерфейс...

              0
              Спасибо! Я и не знал. Раньше думал, что один OMRON NJ может в OPC UA. Который кстати, может работать с SQL базой данных.
              Не забываем так же указать в настройках, что лицензия на OPC UA была приобретена.

              А какая у них политика лицензирования? Пишут, что
              A «Basic» type license is required to run the OPC UA server

              А как её покупать?
                +1
                Ну, право же!
                Поддержка сервера OPC UA появилась еще в прошивке 2.0 и TIA Portal V14, и это произошло не вчера.

                Лицензия представляет собой… сертификат лицензии! В коробочной версии — красивая бумага с номерами лицензии и ее типом. В «скачиваемой» версии (downloadable) это PDF с теми же номерами. Я это называю лицензией для честного человека, потому как никаких технических средств защиты (USB-ключи, коды активации, привязка к серийным номерам) в настоящий момент не предусмотрено. Сказал в Step 7 «мамой клянусь, купил», Step 7 тебе поверил на слово, как это принято у джентльменов.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое