Подключение панели оператора ELHART ECP к ПЛК Siemens S7-1200

На промышленных предприятиях различных отраслей большое распространение получили программируемые логические контроллеры (ПЛК) торговой марки Siemens (практика последних 30 лет). В некоторых случаях требуется экономичное, но не менее технологичное решение. Возможным вариантом модернизации существующих систем автоматизации (или новым самостоятельным устройством визуализации) может стать применение компонентов ELHART в качестве человеко-машинного интерфейса (HMI). В данной статье будут рассмотрены примеры подключения панелей оператора ELHART к ПЛК Сименс по различным интерфейсам и протоколам.

1. Связь панели оператора ELHART ECP-10 с ПЛК Siemens по стандарту Profinet

Далее будут описаны необходимые настройки для связи панели оператора ELHART ECP-10 с ПЛК Siemens (модель 6ES7 212-1BE40-0XB0 из семейства S7-1200) по интерфейсу и протоколу Profinet (стандарт Profinet). Все модели семейства S7-1200 поддерживают стандарт Profinet, поэтому настройка актуальна для всех контроллеров Сименс данного семейства. Проект для ПЛК Siemens выполнен в пакете программирования TIA Portal v. 17. Панель оператора выступает в качестве ведущего устройства.

1.1 Настройка ПЛК Siemens

Настройка ПЛК Сименс
Рисунок 1 — Создание конфигурации устройства в проекте
Настройка ПЛК Сименс-Выбор устройства
Рисунок 2 — Выбор устройства

Устройство (ПЛК) необходимо выбрать из списка каталога. Выбранный ПЛК появится в конфигурации проекта (в текущем примере модель ПЛК CPU 1212C AC/DC/Rly):

Настройка доступа к ПЛК Сименс
Рисунок 3 — Настройка параметров доступа к устройству

На рисунке 3 также указаны необходимые для доступа к ПЛК по протоколу Profinet настройки. Во вкладке Protection & Security в пункте Access level необходимо установить флажок Full access, в пункте меню Connection mechanisms установить флажок Permit access with PUT/GET communication from remote partner.

Во вкладке PROFINET interface [X1] в пункте Interface networked with нажать кнопку Add new subnet (появится новый интерфейс PN/IE_1), в пункте IP protocol поставить флажок Set IP address in project и установить IP-адрес ПЛК и маску сети (в примере — 192.168.0.203 и 255.255.255.0):

Настройка параметров интерфейса Profinet
Рисунок 4 — Настройка параметров интерфейса Profinet

Для наглядности процесса обмена данными можно создать программный организационный блок с изменяемыми переменными разного типа (язык программного блока - SCL):

Создание программного блока ПЛК
Рисунок 5 — Создание программного блока

В проекте необходимо объявить ряд переменных (тэгов). Это можно сделать во вкладке PLC tags, пункт Show all tags:

Настройка ПЛК Siemens
Рисунок 6 — Объявление переменных

В результате в проекте будут объявлены 2 переменных типа Bool: Tag_1 связана с первым дискретным входом ПЛК (I0.0), Tag_2 - с первым дискретным выходом (Q0.0). Пример программного кода, реализующего повторение состояния первого входа первым выходом, приведён ниже. Также, программа реализует инкрементирование переменной i (тип Int по адресу %MW0) 1 раз в секунду:

Настройка контроллера Siemens
Рисунок 7 — Программный код

Листинг кода для копирования:

IF "Tag_1" THEN
    "Tag_2" := 1;
ELSE
    "Tag_2" := 0;
END_IF;
"IEC_Timer_0_DB".TP(IN:="R_TRIG_DB".Q,
        PT:=t#1000ms);
"R_TRIG_DB"(CLK := NOT "IEC_Timer_0_DB".Q);
IF "R_TRIG_DB".Q THEN
    "i" := "i" + 1;
END_IF;

Настройка ПЛК завершена.

1.2 Настройка панели оператора ECP-10

Настройка параметров связи панели оператора с ПЛК может производится как в новом проекте, так и в существующем. В меню Настройки, пункте Настройки HMI программного обеспечения (ПО) ELHART HMI Soft необходимо задать IP-адрес панели оператора, маску и адрес основного шлюза сети:

Сетевые параметры панели оператора
Рисунок 8 — Сетевые параметры панели оператора

Важным условием является несовпадение адресов панели и ПЛК друг с другом и с другими устройствами сети.

В меню НастройкиНастройки связиУдалённое подключение необходимо выбрать вкладку Ethernet ПЛК и нажать кнопку Добавить, в появившемся окне необходимо выбрать производителя Siemens и тип устройства (в примере используется ПЛК Siemens S7-1200_Network), задать IP-адрес ПЛК и номер порта (102 или 502), номер станции по умолчанию можно оставить любым:

Настройки Ethernet ПЛК
Рисунок 9 — Настройки Ethernet ПЛК

В рабочую область окна проекта необходимо добавить два элемента: Bit-индикатор и Цифровой дисплей. Настройки элементов для опроса регистров ПЛК приведены на рисунках ниже:

Настройки ПО ПЛК
Рисунок 10 — Настройки элемента «Bit-индикатор»
Настройки ПО контроллера
Рисунок 11 - Настройки элемента «Цифровой индикатор»

Настройка панели оператора завершена.

2. Связь панели оператора ELHART ECP-10* с ПЛК Siemens по интерфейсу RS-485 и протоколу Modbus RTU (ПЛК ведущий)

2.1 Настройка ПЛК Siemens

Создание проекта и добавление ПЛК описаны в предыдущем примере. В данном примере интерфейс RS-485 реализован на коммуникационном модуле 6ES7 241-1CH30-1XB0 (CB 1241). Модуль добавляется в проект методом drag-and-drop (перетягиванием объекта мышкой):

Добавление коммуникационного модуля
Рисунок 12 — Добавление коммуникационного модуля 6ES7 241-1CH30-1XB0 (CB 1241)

Параметры порта для модуля будут задаваться программно. Для организации обмена данными в проект необходимо добавить новые типы данных и блоки данных. Новый тип данных добавляется в меню PLC data typesAdd new data type, новый блок данных из меню Program blocksAdd new blocks:

Настройка ПО контроллера Сименс
Рисунок 13 — Добавление нового типа данных
Добавление нового блока данных в ПО контроллера
Рисунок 14 — Добавление нового блока данных

В проект будут добавлены следующие типы данных: mb_comm(done: bool, error: bool, error_status: word) – для индикации работы функционального блока (ФБ) Modbus_Comm_Load_DB; mbPtrmaster(datamaster: array[0..3] of word) – указатель на область данных для хранения полученных от ведомого значений регистров; mb_master(done: bool, busy: bool, error: bool, status: word, startstop: bool, mode: word, slave_addr: word, reg_addr: word, length: word) – для инициализации ФБ Modbus_Master.

В проект будут добавлены следующие блоки данных: Data_block_1, modbus. Data_