Контроллер YASKAWA MICRO, как клиент Modbus TCP

Приводится пример конфигурирования и программы для реализации клиента Modbus TCP в контроллере YASKAWA MICRO с использованием среды программирования TIA Portal v14.

YASKAWA VIPA Controls контроллер MICRO как клиент Modbus TCP
YASKAWA VIPA Controls контроллер MICRO как клиент (Мастер) Modbus TCP

Видео презентация ПЛК MICRO:

Для начала работы в TIA Portal v14 (Siemens AG) необходимо скачать конфигурационные файлы (GSDML) и библиотеки Modbus с сайта YASKAWA VIPA Controls. Распакуйте скачанные файлы в рабочую папку.

Конфигурирование MICRO в TIA Portal

Запустите программный пакет TIA Portal, после перейдите в Project view. Выберите в Options ‘Install general station description file (GSD)’. Перейдите в рабочую папку и выберите для установки требуемый файл GSDML. По завершении установки, будет произведено автоматическое обновление каталога оборудования и TIA Portal закроется. Для того, чтобы компоненты VIPA отображались, необходимо отключить "Filter" в каталоге оборудования TIA Portal. В конфигураторе контроллер MICRO может быть выбран в Other field devices > PROFINET > IO > VIPA GmbH > VIPA MICRO PLC.

TIA Portal стойка ПЛК

Стойка ПЛК в ПО TIA Portal

Для добавления контроллера MICRO в проект перейдите в Project tree и выбирите ‘Add new device ...’. Так контроллеры VIPA Controls эмулируют контроллеры S7-300, для работы с MICRO, выберите в диалоговом окне ввода модуль ЦПУ SIMATIC S7-300 > CPU 314C-2 PN/DP (314-6EH04-0AB0 V3.3). После перейдите в Project area к ‘Network view’ и перетащите из раздела ‘Other field devices > PROFINET > IO > VIPA GmbH > VIPA MICRO PLC’ контроллер в поле Network view,и подключив ее виртуально к ЦПУ S7 через PROFINET.

TIA Portal конфигуратор сетевых подключений network view

Конфигуратор сетевых подключений Network view и добавление MICRO

В Network view кликните по линии PROFINET модуля Siemens CPU и введите требуемое значение IP-адреса в поле ‘Ethernet address’ окна ‘Properties’ раздела ‘IP protocol’. Введите в поле ‘PROFINET device name’ окна ‘PROFINET’ уникальное (в рамках подсети Ethernet) имя сетевого устройства.

Настройка порта Ethernet PG/OP MICRO

Выберите в Network view устройство ввода/вывода ‘VIPA MICRO PLC’ и перейдите в Device overview. В окне станции устройства PROFINET IO ‘VIPA MICRO PLC’ модуль ЦПУ будет размещен в слоте 0. Для конфигурирования порта Ethernet PG/OP поместите в слот 4 стойки модуль Siemens CP 343-1 (6GK7 343-1EX30 0XE0 V3.0). Двойным кликом по CP 343-1EX30 откройте диалоговое окно ‘Properties’ и в поле "Ethernet address" введите требуемый IP-адрес. Предварительно необходимо получить у администратора сети допустимый IP-адрес.

TIA Portal сетевая стойка MICRO и добавление порта Ethernet

Настройка порта Ethernet PG/OP MICRO

Подключение библиотек в ПО TIA Portal

Распакуйте ZIP-файл с библиотекой VIPA Modbus в рабочий каталог Siemens TIA Portal.

Перейдите в Project view в своем проекте и выберите вкладку "Libraries" из вертикального меню справа, выберите "Global library" и потом "Open global library", перейдите в рабочий каталог и загрузите файл ..._TIA.al1x. Скопируйте нужные блоки из библиотеки в раздел "Program blocks" менеджера проектов Project tree активного проекта. Теперь специализированные функциональные блоки VIPA готовы для использования в пользовательской программе проекта.

Добавление библиотек в проект в ПО TIA Portal

Добавление библиотек в проект в ПО TIA Portal

Программа клиента Modbus TCP

Для организации связи по Modbus TCP используются функциональные блоки, разработанные YASKAWA VIPA Controls для своих контроллеров. Их мы и будем использовать в нашей программе.

FB 70 - TCP_MB_CLIENT – этот функциональный блок позволяет использовать порт Ethernet PG/OP в качестве клиента Modbus/TCP.

Параметры вызова Наименование Тип переменной Тип данных Описание
REQ ВХОД BOOL (Двоичное значение) Запуск работы блока по переходу 0-1.
ID ВХОД WORD (16-разрядное значение) ID из TCON.
MB_FUNCTION ВХОД BYTE (Байт) Modbus: Код функции.
MB_DATA_ADDR ВХОД WORD (16-разрядное значение) Modbus: Начальный адрес или код подфункции.
MB_DATA_LEN ВХОД INT (Целое) Modbus: Количество регистров/бит
MB_DATA_PTR ВХОД ANY (любой) Modbus: Буфер данных (допустима только область флагов или блок данных с типом данных BYTE) при использовании функций с кодами 03h, 06h и 10h.
DONE * ВЫХОД BOOL (Двоичное значение) Работа блока завершена без ошибок.
BUSY ВЫХОД BOOL (Двоичное значение) Задание выполняется.
ERROR * ВЫХОД BOOL (Двоичное значение) Работа блока завершена с ошибкой - Параметр STATUS содержит информацию об ошибке.
STATUS * ВЫХОД WORD (16-разрядное значение) Расширенная информация о состоянии и об ошибках.
*) Параметр сохраняет свое состояние до следующего вызова FB

 

Параметры DB Наименование Тип переменной Тип данных Описание
PROTOCOL_TIMEOUT STAT INT (Целое) Время блокировки до того, как пользователь может отменить активное задание. Значение по умолчанию: 3 c
RCV_TIMEOUT STAT INT (Целое) Контрольное время для задания. Значение по умолчанию: 2 с
MB_TRANS_ID STAT WORD (16-разрядное значение) Modbus: Начальное значение для идентификатора транзакции. Значение по умолчанию: 1
MB_UNIT_ID STAT BYTE (Байт) Modbus: Идентификация устройства. Значение по умолчанию: 255

Обратите внимание на следующее:

  • Параметры вызова должны быть заданы при вызове блока. Кроме параметров вызова имеются также параметры, содержащиеся в DB.
  • Предварительно коммуникационное соединение должно быть инициализировано с помощью FB 65 (TCON).
  • Для использования блока требуются FB 63 (TSEND) и FB 64 (TRCV).
  • В процессе исполнения задания DB блокируется для других клиентов.

Обратите внимание на то, что в процессе исполнения задания изменение состояния входных параметров не воспринимается.

Исполнение задания завершается или отменяется при одном из следующих условий:

  • DONE = 1 (исполнение без ошибки);
  • ERROR = 1 (исполнение с ошибкой);
  • Превышение интервала RCV_TIMEOUT;
  • REQ = FALSE после истечения времени PROTOCOL_TIMEOUT.

Если REQ сбрасывается до того, как установлен выход DONE или ERROR или истекло время PROTOCOL_ TIMEOUT, на выходе STATUS будет установлено значение 8200h. При этом текущее задание будет по-прежнему исполняться.

С помощью функции 03h с сервера Modbus/TCP должны быть считаны 100 регистров, начиная с адреса 2000, и сохраняться в области памяти флагов с начальным адресом MB200. Коды ошибок при их возникновении должны быть сохранены.

Пример программного кода

CALL FB 65 , DB65 REQ :=M100.0 ‘ Вызов FB 65 (TCON) для соединения с сервером
          ID                           :=W#16#1
          DONE                    :=M100.1
          BUSY                     :=
          ERROR :=M100.2
          STATUS                :=MW102 ‘ Если соединение с сервером отсутствует, то содержит код 7000h
          CONNECT           :=P#DB255.DBX 0.0 BYTE 64

          UN M 100.2
          SPB ERR1
          L MW 102
          T MW 104

ERR1: NOP 0            U M 100.1
           R M 100.0

CALL FB 70 , DB70 ‘ Вызов блока обработки данных клиента Modbus/TCP
          REQ                       :=M101.0
          ID                           :=W#16#1
          MB_FUNCTION :=B#16#3 MB_DATA_ADDR:=W#16#7D0 MB_DATA_LEN :=100
          MB_DATA_PTR :=P#M 200.0 BYTE 200 DONE :=M101.1
          BUSY                     :=
          ERROR :=M101.2
          STATUS                :=MW106

          UN M 101.2
          SPB ERR2
          L MW 106
          T MW 108 ‘код 0000h – задание выполнено, 7004h FB готов к выполнению нового запроса, другие коды это ошибки

ERR2: NOP 0
            U M 101.1
            R M 101.0

При включении бита M100.0, если M100.0 автоматически сбрасывается, то это означает, что соединение установлено и ячейка памяти MW108 в этом случае содержит код 7004h.

При включении бита M101.0, посылается запрос Modbus и ожидается ответ. В случае если M101.0 сбрасывается автоматически, задание исполнено без ошибок, а считанные данные сохранены в ЦПУ в области памяти флагов, начиная с байта 200. MW108 содержит код 7004h, что сигнализирует о готовности к выполнению нового запроса. Если M101.0 не сбрасывается автоматически, а MW108 возвращает значение, отличное от 0, то это означает наличие ошибки обмена. Причину ошибки можно определить с помощью кода в MW108 (например, MW108 = 8382h, если начальный адрес 2000 отсутствует на сервере).

YASKAWA VIPA Control контроллер MICRO получил IF Award 2018

YASKAWA VIPA Control контроллер MICRO получил награду IF Award 2018