Подключение s7 1200 к компьютеру
На промышленных предприятиях различных отраслей большое распространение получили программируемые логические контроллеры (ПЛК) торговой марки Siemens (практика последних 30 лет). В некоторых случаях требуется экономичное, но не менее технологичное решение. Возможным вариантом модернизации существующих систем автоматизации (или новым самостоятельным устройством визуализации) может стать применение компонентов ELHART в качестве человеко-машинного интерфейса (HMI). В данной статье будут рассмотрены примеры подключения панелей оператора ELHART к ПЛК Сименс по различным интерфейсам и протоколам.
Добавление S7 1200 в проект Tia Portal
После создания проекта в STEP 7 необходимо добавить наш контроллер в конфигураторе устройств. Делается это на вкладке Devices&networks — Add new Devices
Здесь нам представлены все доступные в данной версии программы модели CPU. Выбираем нашу модель CPU 1214C DC/DC/Rly и в раскрывающемся списке находим серийный номер процессора. Справа мы видим его описание, версию, вверху можно ввести имя устройства, которое будет отображаться в проекте. Нажимаем кнопку Add .
Если по каким-то причинам вы не можете точно идентифицировать свою модель, то можно выбрать в списке Unspecified CPU 1200 (Неопределенный CPU). Tia Portal сам должен определить вашу модель, главное чтобы контроллер был подключен к компьютеру.
В рабочей области открывшегося окна появится изображение выбранного нами CPU. Что мне например нравится, визуально сделано все реалистично.
На вкладке Properties можно сконфигурировать различные параметры нашего контроллера — IP адрес, по умолчанию он не задан, поведение цифровых и аналоговых выходов, когда ЦПУ находится в режиме STOP, быстродействующих счетчиков (HSC), генераторов последовательных импульсов (PTO) и широтно-импульсной модуляции (PWM), поведение контроллера при запуске системы, время цикла и многие другие параметры.
Далее, если это необходимо, добавляем модули расширения. Делается это простым перетаскиванием модуля из каталога Hardware catalog на рабочую область.
Таким образом, мы добавили все необходимые модули контроллера в проект. Наша аппаратная конфигурация готова, можно переходить к программной части, но это уже отдельная история.
Добавление S7 1200 в проект Tia Portal
После создания проекта в STEP 7 необходимо добавить наш контроллер в конфигураторе устройств. Делается это на вкладке Devices&networks - Add new Devices
Здесь нам представлены все доступные в данной версии программы модели CPU. Выбираем нашу модель CPU 1214C DC/DC/Rly и в раскрывающемся списке находим серийный номер процессора. Справа мы видим его описание, версию, вверху можно ввести имя устройства, которое будет отображаться в проекте. Нажимаем кнопку Add .
Если по каким-то причинам вы не можете точно идентифицировать свою модель, то можно выбрать в списке Unspecified CPU 1200 (Неопределенный CPU). Tia Portal сам должен определить вашу модель, главное чтобы контроллер был подключен к компьютеру.
В рабочей области открывшегося окна появится изображение выбранного нами CPU. Что мне например нравится, визуально сделано все реалистично.
На вкладке Properties можно сконфигурировать различные параметры нашего контроллера - IP адрес, по умолчанию он не задан, поведение цифровых и аналоговых выходов, когда ЦПУ находится в режиме STOP, быстродействующих счетчиков (HSC), генераторов последовательных импульсов (PTO) и широтно-импульсной модуляции (PWM), поведение контроллера при запуске системы, время цикла и многие другие параметры.
Далее, если это необходимо, добавляем модули расширения. Делается это простым перетаскиванием модуля из каталога Hardware catalog на рабочую область.
Таким образом, мы добавили все необходимые модули контроллера в проект. Наша аппаратная конфигурация готова, можно переходить к программной части, но это уже отдельная история.
В рамках базового курса в системе WinCC OA используются только внутренние переменные системы. Никаких внешних подключений не предполагается. Однако, слушатели базового курса всегда под завершение учебы просят продемонстрировать, как же считать переменную с «настоящего живого ПЛК». Поскольку WinCC OA относится к продуктам компании Siemens, то логичным будет продемонстрировать подключение к контроллеру компании Siemens и чтению с него нескольких переменных. В нашем случае будем подключаться к PLC серии S7-1200.
Набор драйверов WinCC OA включает в себя два вида драйверов для контроллеров Simatic — это s7 и s7plus. Разница в них следующая: s7 предназначен для связи с ПЛК классической серии S7-300 / S7-400, а s7plus — для современной линейки S7-1200 / S7-1500. Драйвер s7plus указывается при установке отдельно. Он может отсутствовать в вашей системе, если вы его не устанавливали. Вне зависимости от того, какой используется драйвер (хоть iec104), общие принципы сохраняются. Необходимо в консоли добавить соответствующий драйвер. Далее сконфигурировать соединение с устройством и задать этому соединению номер добавленного драйвера, активировать. Так же требуется на DPE навесить конфиг Periphery Address и выполнить настройки, указав корректный адрес переменной.
Для начала необходимо прописать в консоли драйвер. Технически добавление драйвера в систему не отличается от добавления менеджера. Откроем консоль, нажмем в ней Append a new manager
Выберем в списке драйвер S7plus и зададим в опциях «-num 2». Это связано с тем, что в системе уже есть драйвер с номером 1, это Simulation Driver, а номер драйвера в системе должен быть уникален. К слову, по словам разработчиков WinCC OA, симуляционный драйвер в реальных проектах не используется.
Теперь новый драйвер добавлен в систему и запущен
Теперь добавленный драйвер с номером 2 в системе необходимо сконфигурировать. Для этого (например через меню редактора gedi) необходимо открыть модуль System Management.
Далее открываем Driver S7
Выбираем S7+ Driver
В настоящий момент в системе нет сконфигурированных соединений. Для создания связи с существующим контроллером нажимаем кнопку Create.
Тут необходимо указать имя для соединения и способ работы с данными — либо оффлайновый проект, находящийся во вложенной папке проекта WinCC OA, либо онлайн связь с уже готовым и настроенным ПЛК. В нашем случае S7-1214 с залитой конфигурацией и программой лежит на столе рядом с ПК и доступен по протоколу TCP/IP, так что, работаем онлайн. Указываем номер только что добавленного и запушенного драйвера, это номер 2. Имя соединения далее превратиться в системную точку данных, с которой возможно работать посредством программного кода.
Далее требуется указать тип контроллера, я задам его явно — S7-1200, а так же ввести ip-адрес моего ПЛК. Дополнительно, если вы еще не настраивали, требуется вызвать окно настройки сетевой карты компьютера, нажав кнопку Set PC/PG Interface. По нажатию этой кнопки откроется окно, знакомое всем, кто работал с классическим Step 7 или настраивал запуск операторской системы WinCC 7, TIA Portal WinCC и т.д. Если вы незнакомы с этим окном, то там необходимо указать ту сетевую карту, при помощи которой ваш ПК подключен к вашему ПЛК. У меня данный интерфейс давно настроен, и это окно выглядит следующим образом
Моя сетевая карта присутствует тут в трех экземплярах, с окончаниями ISO, TCPIP и TCPIP.Auto. Как правило, применяется последний вариант, TCPIP.Auto. После внесения настроек связи данное окно имеет следующий вид
Ставим галочку напротив Establish Connection и нажимаем кнопку Apply. После чего WinCC OA несколько секунд тратит на установление связи. Eсли все было сделано правильно, окно приобретает следующий вид
Нажимаем кнопку ОК, а после — закрываем окно модуля System Management. Далее необходимо связаться с тэгами контроллера, которые в нем уже прописаны. Ограничимся двумя дискретными переменными и одной вещественной. Для работы с точками данных у нас есть модуль para, открываем его. В нем уже есть несколько готовых типов точек данных — ExampleDP_bit и ExampleDP_float, их и будем использовать. Создадим точку данных MyBlinker типа ExampleDP_bit
Добавим к точке данных конфиг «переферийный адрес».
Выбираем тип драйвера SIMATIC S7PLUS
Указываем номер драйвера 2. Указываем «направление данных» — Input, только чтение. Указываем тип преобразования — Bool. Вводим способ сбора данных — Polling (непрерывный опрос).
Далее нажимаем на кнопку Poll groups, надо создать группу циклического (непрерывного) опроса данных. В следующем окне жмем Create, задаем имя группы и ее настройки. Переменные этой группы будут опрашиваться кажые 100 мс. В соответствии со справкой организовать опрос быстрее таким способом невозможно, любые значения цикла опроса меньше 100 мс будут считаться за 100 мс. Делаем группу активной и жмем ОК.
В графе Reference необходимо указать имя переменной в контроллере. Поскольку ПЛК у меня сконфигурирован и на связи, я могу просматривать его тэги в режиме онлайн. Нажимаем кнопку Selection в верхней части окна.
Открывается окно со всеми «живыми» тэгами контроллера, доступными для операторской системы. Я выбираю двоичный тэг Clock_1Hz, который меняет свое значение каждую секунду.
Теперь ставим галочку Address active, жмем Apply и можно перейти на конфиг original и посмотреть, меняется ли значение тэга в нашей SCADA.
Да, значение тэга меняется каждую секунду
Точно так же пропишем в системе бит Emulation, находящийся в блоке данных Modes. Действуем по аналогии с предыдущим битом за исключением «Направления» (Direction), тут ставим режим доступа чтение и запись. Все остальные настройки (кроме, разумаеется, символьного имени тэга ПЛК) аналогичны.
Сейчас значение бита — FALSE, бит читается.
Изменим в ПЛК его значение на TRUE
В модуле para его значение так же изменилось
Теперь попробуем поменять его значение на FALSE и посмотрим состояние бита средствами TIA Portal. Выполнить эту операцию средствами para не удается. Скорее всего, это связано с тем, что поллинг переменной идет 10 раз в секунду, в para он обновляется так же быстро, и я просто физически не успеваю внести в Original value значение FALSE, вместо TRUE. Даже выделить значение дабл-кликом или кнопками Ctrl+A не удается. Пробуем изменить DPE кнопками на панели операторской системы. Для этого в верхнюю часть главного экрана Main я размещаю две кнопки — Turn On и Turn Off и создаю скрипты для них, соответственно
Пробуем теперь «отключить» тэг.
По нажатию кнопки в модуле para значение изменилось на FALSE
Значение изменилось и в блоке данных контроллера.
Оставляем его настройки, как есть — сравнение «старого» значения с «новым». Не забываем нажать Apply.
Переходим на конфиг original этой точки данных и наблюдаем, что метка времени тэга (как online, там original) перестала меняться, как сумасшедшая. Обращаем внимание и на то, что теперь в модуле para возможно изменить значение бита, и оно доходит на контроллера.
Теперь пропишем вещественную переменную, которая находится в ПЛК по адресу Robicon.SCADAmanSP. Для переменной в WinCC OA воспользуемся готовым типом DP ExampleDP_float. Ее создание и настройка переферийного адреса аналогична предыдущим настройкам, за исключением очевидных деталей — имя, адрес, тип данных. «Направление» зададим, как чтение/запись. На этот раз я не выбирал тэги онлайн, а вбил символьное имя переменной непосредственно в поле ввода Reference. Не забываем добавить конфиг smoothing и для этой DP.
Делаем адрес активным и смотрим конфиг original. Видим, что связь установлена, значение с ПЛК приходит.
Изменение значения так же доходит и до контроллера.
Напоследок отобразим значение этой переменной на мнемосхеме FLAPS (не создавать же новую панель ради одной проверки). Разместим на панели элемент Textfield из палитры.
Визардом на событии Initialization создами скрипт отображения значения DPE (Display value)
Значение с ПЛК отображается
Добавим еще один скрипт при помощи визарда для возможности редактирования значения прямо с операторского экрана. Для этого нам потребуется вызвать визард на событие Command.
Довелось устанавливать линию облицовывания ORMA.
PLC (S7-1200), HMI (серии Comfort), привода SIEMENS.
Все это соединено через сетевой коммутатор в локальную сеть (PROFINET).
Пришлось получить опыт подключения к данным устройствам для определения логики работы некоторых узлов.
Для подключение необходимо иметь:
- ПК с интерфейсом ETHERNET (в моем случае был обычный ноутбук);
- провод витая пара (доступно и очень удобно для диагностики, т.к. можно находится далеко от электрического шкафа);
- набор программ TIA PORTAL (можно скачать с официального сайта версию TRIAL после регистрации)
TIA PORTAL объединяет программы: STEP 7 (программирование PLC), WinCC (программирование HMI), Startdrive (ввод в эксплуатацию приводов). Скачивать каждую из этих программ необходимо отдельно. Скачивать все программы не обязательно.
tia_portal_v13_sp1
Версию Basic или Professional необходимо выбирать в зависимости от модели PLC.
- Устанавливаем TIA PORTAL и запускаем (на слабом ПК может занять несколько часов).
- Задаем интерфейсу ETHERNET на ПК IP адрес из подсети PROFINET (у меня было 192.168.0.ххх 255.255.255.0, определил через дисплей частотного преобразователя).
- Соединяем ПК с сетевым коммутатором.
- Создаем в TIA PORTAL новый проект и открываем его.
- Выбираем в списке "Devices and networks"
- Задаем тип интерфейса PG/PC - PN/IE и имя интерфейса ETHERNET
- Нажимаем "Start search". В таблице отобразятся найденные устройства.
- Выбираем в списке устройство и нажимаем "Upload". Программа из PLC будет выгружена и добавлена в созданный проект. Повторяем для всех устройств, которые необходимо добавить в проект.
Выгрузить не компилированную копию программы из HMI в проект возможно только, если ранее эта копия в неё была загружена. Мне так не повезло. Я смог сделать только резервную копию содержимого памяти HMI. Открыть эту копию не получится.
Не бойся поломать. Бойся не починить ))
Правила русской речи на производстве
У меня стояла такая же задача, только никак не получается выгрузить.
Имеется объект на котором установлен контроллер S7-1200, пять панелей TP700 COMFORT. Всё оборудование подключено к роутеру SCALANCE X-200 кабелем Profinet. Я подключил к этой сети комп с TIA Portal v13, настроил сеть IP-192.168.1.250, маска 255.255.255.0 (подсмотрел в панели). Все устройства были обнаружены через "Online access", зашёл в "Online&diagnostics" s7-1200, просмотрел настройки IP адреса - прописан IP 192.168.100.15, маска 255.255.255.0 и включена опция "use router" и адрес роутера 192.168.100.1. При этом контроллер пингуется, а адрес 192.168.100.1 не пингуется.
Но суть не в этом, не получается у меня выгрузить бекапы ни с s7-1200 ни с панелей.
Пробовал сделать бекапы двумя способами.
Способ 1. Пустой проект в TIA portal v13. В меню "Online" выбирал пункт "Upload device as new station(hardware and software)". После выбирал в списке устройств контроллер и нажимал "Upload". Результат ошибка на третьем скрине снизу.
Способ 2. В проекте добавляю контроллер 1200 серии как неизвестное устройство. Нажимаю на нём "Detect". Появляется список с найденным устройством, выбираю его, нажимаю "Detect". Результат Ошибка на втором скрине снизу.
Просто не понимаю что, делаю не так, почему не могу сделать бекап, с паней TP700 также не могу сделать бекап, хотя они все в сети обнаруживаются.
Отвлечемся немного от программирования и поговорим про контроллеры, для которых собственно и пишутся программы — в частности про Siemens SIMATIC S7-1200, их особенности, аппаратные средства, добавление аппаратной конфигурации в Tia Portal.
Контроллеры данного семейства являются, пожалуй, наиболее востребованными из всей линейки SIMATIC, благодаря своей универсальности, функционалу и приемлемой цене. Конечно, по своим возможностям, они уступают SIMATIC S7-1500, но здесь решающую роль играет цена — у S7-1200 она на порядок ниже. А для большинства задач их функциональных возможностей вполне достаточно.
S7-1200 поддерживают все версии Tia Portal, включая Lite — упрощенную версию, работающую только с контроллерами данного семейства.
Контроллер S7-1200 имеет модульную структуру, представляющую набор различных компонентов.
1.2 Настройка панели оператора ECP-10
Настройка параметров связи панели оператора с ПЛК может производится как в новом проекте, так и в существующем. В меню Настройки, пункте Настройки HMI программного обеспечения (ПО) ELHART HMI Soft необходимо задать IP-адрес панели оператора, маску и адрес основного шлюза сети:
Рисунок 8 — Сетевые параметры панели оператора
Важным условием является несовпадение адресов панели и ПЛК друг с другом и с другими устройствами сети.
В меню Настройки – Настройки связи – Удалённое подключение необходимо выбрать вкладку Ethernet ПЛК и нажать кнопку Добавить, в появившемся окне необходимо выбрать производителя Siemens и тип устройства (в примере используется ПЛК Siemens S7-1200_Network), задать IP-адрес ПЛК и номер порта (102 или 502), номер станции по умолчанию можно оставить любым:
Рисунок 9 — Настройки Ethernet ПЛК
В рабочую область окна проекта необходимо добавить два элемента: Bit-индикатор и Цифровой дисплей. Настройки элементов для опроса регистров ПЛК приведены на рисунках ниже:
Рисунок 10 — Настройки элемента «Bit-индикатор» Рисунок 11 - Настройки элемента «Цифровой индикатор»
Настройка панели оператора завершена.
3.3 Описание подключения интерфейсов панели оператора ELHART ECP-10* и ПЛК CPU 1212C
Со стороны панели оператора используются клеммы «A+» и «B-» порта СОМ2 (СОМ1 в случае использования панелей оператора серии ELP). Со стороны ПЛК (модуля CB 1241) - «T/RA» и «T/RB». Клемма «A+» панели ЕСР-10 подключается к клемме «T/RB» модуля СВ 1241.
4. Вывод
Таким образом, приведенное выше описание показывает, что настройка панелей оператора ELHART для связи с ПЛК Siemens по различным стандартам (Profinet и протокол Modbus RTU по интерфейсу RS-485) является достаточно несложной.
Связь по стандарту Profinet проще для реализации, чем по интерфейсу RS-485, однако цена панелей оператора без интерфейса Ethernet ниже. Большая часть настроек в обоих случаях касается стороны ПЛК Siemens.
Панели оператора ELHART серии ECP могут выступать только в качестве ведущего устройства по протоколу Profinet, а по протоколу Modbus RTU – в качестве ведущего или ведомого.
Стоит также отметить, что одна панель и один ПЛК могут быть подключены по двум интерфейсам (Profinet и RS-485) одновременно.
*Примечание. Пример настроек связи для обмена данными по интерфейсу RS-485 актуален для панелей оператора серии ELP (номер порта в этом случае - СОМ1).
Поговорим сегодня про контроллеры, в частности про Siemens SIMATIC S7-1200, их особенности, аппаратные средства, добавление аппаратной конфигурации в Tia Portal.
Siemens SIMATIC S7-1200
Контроллеры данного семейства являются, пожалуй, наиболее востребованными из всей линейки SIMATIC, благодаря своей универсальности, функционалу и приемлемой цене. Конечно, по своим возможностям, они уступают SIMATIC S7-1500, но здесь решающую роль играет цена - у S7-1200 она на порядок ниже. А для большинства задач их функциональных возможностей вполне достаточно.
Данную серию поддерживают все версии Tia Portal, включая Lite - упрощенную версию, работающую только с контроллерами данного семейства.
Контроллер S7-1200 имеет модульную структуру, представляющую набор различных компонентов.
Центральный процессор CPU
Основой всей системы является процессорный модуль CPU (Central Processing Unit), который отвечает непосредственно за обработку, хранение данных, выполнение программы. Данное семейство представлено 5 моделями центральных процессоров, различающихся производительностью, количеством входов-выходов, объемом памяти. Кроме того, эти модели имеют несколько различных модификаций — DC/DC/RLY с напряжением питания = 24 В, дискретными входами = 24 В, дискретными выходами релейного типа, DC/DC/DC с напряжением питания = 24 В, дискретными входами и дискретными выходами 24 В на основе транзисторных ключей, AC/DC/RLY с напряжением питания ~115/230 В, дискретными входами 24 В, дискретными выходами релейного типа.
Также их отличительной особенностью является возможность подключения определенного количества дополнительных сигнальных модулей. Так например CPU 1211 не поддерживает такую возможность, для CPU 1212 таких модулей может быть только 2, а для остальных моделей — 8.
Для каждой модели CPU характерно наличие встроенного PROFINET интерфейса, используемого для программирования, диагностики, коммуникации с HMI панелями и другими устройствами, но опять же разные модели имеют различное количество портов. CPU 1215 и CPU 1217 имеют на борту 2-х портовый коммутатор.
Стоит отметить наличие у всех моделей процессоров встроенного Web-сервера, позволяющего просматривать различную информацию о подключенном контроллере с помощью ПК или смартфона, через обычный Web-браузер.
Стандартные HTML страницы отображают следующую информацию об устройстве:
Еще стоит отметить из особенностей процессорных модулей наличие слота для карт памяти (SIMATIC Memory Card).
Можно задействовать ее в качестве внешней загрузочной памяти для процессорного модуля, для обновления встроенного программного обеспечения, для копирования программ во внутреннюю память устройства. Кстати, S7-1500 не имеют встроенной загрузочной памяти и без Memory Card не работают.
2.3 Описание подключения интерфейсов панели оператора ELHART ECP-10 и ПЛК CPU 1212C
Со стороны панели оператора используются клеммы «A+» и «B-» порта СОМ2. Со стороны ПЛК (модуля CB 1241) – «T/RA» и «T/RB». Клемма «A+» панели ЕСР-10 подключается к клемме «T/RB» модуля СВ 1241.
3.2 Настройка панели оператора ELHART ECP-10*
В качестве примера для панели оператора будет настроен порт COM2, интерфейс RS-485. В меню Настройки — Настройки связи — Местные подключения необходимо выбрать вкладку СОМ2, установить флажок Master, выбрать производитель Modbus compatible, тип устройства Modbus RTU, номер станции 7 и настройки связи как показано на рисунке 33:
Рисунок 33 — Настройки интерфейса панели оператора
В рабочую область окна проекта необходимо добавить 4 элемента Цифровой ввод. Настройки элементов на примере первого приведены на рисунке 9, адреса элементов начинаются с 1:
Рисунок 34 — Настройка элемента «Цифровой ввод»
Сигнальные модули SM
Для расширения возможностей процессора применяются сигнальные модули (SM - Signal Modules) и сигнальные платы (SB - Signal Boards). Они позволяют задействовать в случае необходимости дополнительные дискретные (DI, DQ) и аналоговые (AI, AQ) входа и выхода.
Также есть сигнальные модули измерения температуры, специально для подключения термопар и термосопротивлений. В частности это модуль SM 1231 Thermocouple для термопар и SM 1231 RTD для термосопротивлений.
Кроме того, могут быть задействованы технологические модули SM 1278 4xIO-Link Master, работающие и как сигнальный модуль, и как коммуникационный. Каждый модуль позволяет подключить до 4 устройств IO Link.
Для работы с тензометрическими датчиками в системах взвешивания, измерения силы и прочих измерительных задачах применяются модули SIWAREX WP231. В отличии от всех предыдущих модулей, он имеет возможность работать как с CPU по стандартной внутренней шине, так и без него, например с HMI панелями, через Ethernet (Modbus TCP/IP) или RS 485 (Modbus RTU). У модуля SIWAREX имеется собственное ПО для настройки и обслуживания SIWATOOL V7, но при этом он может быть легко интегрирован в Tia Portal.
2. Связь панели оператора ELHART ECP-10* с ПЛК Siemens по интерфейсу RS-485 и протоколу Modbus RTU (ПЛК ведущий)
Коммуникационные модули CM
Коммуникационные модули (CM - Communications Modules ) и коммуникационные процессоры (CP - Communications Processors) существенно расширяют возможности контроллера в построении промышленных сетей.
Линейка коммуникационных устройств включает в себя ряд модулей, обеспечивающих обмен данными по сетям:
Модули CM1242-5 (slave) и CM 1243-5 (master) позволяют использовать контроллеры в сетях PROFIBUS DP для построения систем распределенного ввода-вывода. Для S7-1200 возможно подключение до трех таких модулей. Каждый модуль, в свою очередь, способен обслуживать до 32 ведомых DP-устройств (в качестве ведомых DP могут выступать частотные преобразователи, распределительные станции ET-200, контроллеры S7, другие различные устройства).
Модули CM 1241 и платы CB 1241 обеспечивают обмен данными через PtP (Point-to-Point) соединение на основе интерфейсов RS-232 или RS-485 и с поддержкой протоколов Modbus RTU и ASCII, а также USS (Протокол обмена данными между контроллером и приводами серий MICROMASTER и SINAMICS).
Модули CM 1243-2 используются для подключения контроллеров S7-1200 к сетям AS-Interface (Actuator Sensor Interface) в качестве ведущего сетевого устройства. Позволяют подключить к контроллеру до 62 ведомых устройств в сети ASI.
Процессоры CP 1242 и 1243 позволяют интегрировать S7-1200 в системы телеуправления и поддерживают обмен данными через мобильные беспроводные сети GSM и LTE.
Коммуникационные модули CM
Коммуникационные модули (CM — Communications Modules ) и коммуникационные процессоры (CP — Communications Processors) существенно расширяют возможности контроллера в построении промышленных сетей.
Линейка коммуникационных устройств включает в себя ряд модулей, обеспечивающих обмен данными по сетям:
- Модули CM1242-5 (slave) и CM 1243-5 (master) позволяют использовать контроллеры в сетях PROFIBUS DP для построения систем распределенного ввода-вывода. Для S7-1200 возможно подключение до трех таких модулей. Каждый модуль, в свою очередь, способен обслуживать до 32 ведомых DP-устройств (в качестве ведомых DP могут выступать частотные преобразователи, распределительные станции ET-200, контроллеры S7, другие различные устройства).
- Модули CM 1241 и платы CB 1241 обеспечивают обмен данными через PtP (Point-to-Point) соединение на основе интерфейсов RS-232 или RS-485 и с поддержкой протоколов Modbus RTU и ASCII, а также USS (Протокол обмена данными между контроллером и приводами серий MICROMASTER и SINAMICS).
- Модули CM 1243-2 используются для подключения контроллеров S7-1200 к сетям AS-Interface (Actuator Sensor Interface) в качестве ведущего сетевого устройства. Позволяют подключить к контроллеру до 62 ведомых устройств в сети ASI.
- Процессоры CP 1242 и 1243 позволяют интегрировать S7-1200 в системы телеуправления и поддерживают обмен данными через мобильные беспроводные сети GSM и LTE.
3.1 Настройка ПЛК Siemens
Для реализации данного функционала можно использовать предыдущий пример.
В существующий проект необходимо добавить 2 новых типа данных: mb_data (data: array[0..3] of word) — для создания в памяти ПЛК массива данных, опрашиваемых ведущим устройством; mb_slave (ndr: bool, dr: bool, error: bool, status: word) — для создания в памяти ПЛК флагов и регистра состояния ФБ «Modbus_Slave_DB».
В существующий блок данных «modbus» добавить структуру mb_slave с заданным типом mb_slave. Создать новый блок данных process с вложенной структурой mbholding с заданным типом «mb_data».
Рисунок 26 — Задание типа данных «mb_slave» Рисунок 27 — Задание типа данных «mb_data» Рисунок 28 — Задание структуры «mbslave» Рисунок 29 — Задание структуры «mbholding»
Важное примечание. Для обеспечения доступа ведущего устройства по протоколу Modbus RTU к массиву mbholding необходимо в свойствах блока данных process снять флажок Оптимизированный доступ к блоку:
Рисунок 30 — Свойства блока данных «process»
Важное примечание. После добавления новых структур и переменных в существующие блоки данных или добавления новых блоков данных необходимо провести перекомпиляцию программной части ПЛК:
Рисунок 31 — Перекомпиляция проекта
В существующий программный блок Main_1 необходимо добавить вызов ФБ "Modbus_Slave_DB". На вход MB_DB ФБ "Modbus_Comm_Load_DB" добавить ссылку на экземпляр ФБ "Modbus_Slave_DB", существующий в проекте:
Рисунок 32 — Добавление ФБ "Modbus_Slave_DB"
Листинг кода инструкции "Modbus_Slave_DB":
Строка 1 — вызов экземпляра ФБ "Modbus_Slave_DB"; вход MB_ADDR – адрес ПЛК как ведомого сети Modbus.
Строка 2 — выход NDR отображает приём нового значения регистра/регистров от ведущего сети.
Строка 3 — выход DR активен на протяжении 1 цикла после последнего удачного приёма от ведущего.
Строка 4 — выход ERROR активен на протяжении 1 цикла после последнего неудачного приёма от ведущего.
Строка 5 — выход STATUS содержит код ошибки связи.
Строка 6 — вход MB_HOLD_REG является указателем на область памяти ПЛК, содержащую регистры для обмена данными с ведущим устройством.
Конфигурация модуля связи СВ 1241 остаётся такой же, как в предыдущем примере.
Настройка ПЛК CPU 1212C в качестве ведомого сети завершена.
Сигнальные модули SM
Для расширения возможностей процессора применяются сигнальные модули (SM — Signal Modules) и сигнальные платы (SB — Signal Boards). Они позволяют задействовать в случае необходимости дополнительные дискретные (DI, DQ) и аналоговые (AI, AQ) входа и выхода.
Также есть сигнальные модули измерения температуры, специально для подключения термопар и термосопротивлений. В частности это модуль SM 1231 Thermocouple для термопар и SM 1231 RTD для термосопротивлений.
Кроме того, могут быть задействованы технологические модули SM 1278 4xIO-Link Master, работающие и как сигнальный модуль, и как коммуникационный. Каждый модуль позволяет подключить до 4 устройств IO Link.
Для работы с тензометрическими датчиками в системах взвешивания, измерения силы и прочих измерительных задачах применяются модули SIWAREX WP231. В отличии от всех предыдущих модулей, он имеет возможность работать как с CPU по стандартной внутренней шине, так и без него, например с HMI панелями, через Ethernet (Modbus TCP/IP) или RS 485 (Modbus RTU). У модуля SIWAREX имеется собственное ПО для настройки и обслуживания SIWATOOL V7, но при этом он может быть легко интегрирован в Tia Portal.
2.1 Настройка ПЛК Siemens
Создание проекта и добавление ПЛК описаны в предыдущем примере. В данном примере интерфейс RS-485 реализован на коммуникационном модуле 6ES7 241-1CH30-1XB0 (CB 1241). Модуль добавляется в проект методом drag-and-drop (перетягиванием объекта мышкой):
Рисунок 12 — Добавление коммуникационного модуля 6ES7 241-1CH30-1XB0 (CB 1241)
Параметры порта для модуля будут задаваться программно. Для организации обмена данными в проект необходимо добавить новые типы данных и блоки данных. Новый тип данных добавляется в меню PLC data types – Add new data type, новый блок данных из меню Program blocks – Add 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_block_1 содержит переменные times: time (ввод циклического времени опроса), paneltags: array[0..3] of word и paneltagsprev: array[0..3] of word (массивы переменных для ввода и индикации на панели Simatic). Блок данных modbus содержит структуры mbmaster: mbPtrmaster, mbcomm: mb_comm, mb_master: mb_master, mbslave: mb_slave. Назначение структур соответствует назначению их типов данных (описаны выше).
В тэги ПЛК необходимо добавить переменную step: int.
Переменным slave_addr, reg_addr, length структуры mb_master и переменной times блока данных Data_block_1 необходимо задать начальные значения для запуска опроса при старте ПЛК как показано на рис. 15 — 16:
Рисунок 15 — Начальные значения переменных структуры «mb_master» Рисунок 16 — Начальное значение переменной «times»
Для отражения возможности одновременного изменения параметров ПЛК с нескольких человеко-машинных интерфейсов добавим в проект панель оператора Siemens KTP400 Basic PN по интерфейсу Profinet (вкладка Add new device в корневом каталоге проекта):
Рисунок 17 — Добавление панели оператора Simatic HMI
На появившемся экране на вкладке PLC connections необходимо выбрать существующий в проекте ПЛК:
Рисунок 18 — Выбор ПЛК для связи с панелью Simatic
Панель оператора Simatic появится в дереве проекта (HMI_1). В панель необходимо добавить новый экран (пункт Add new screen) и на экран элемент I/O field:
Рисунок 19 — Добавление нового экрана и элемента экрана
В свойствах элемента необходимо выбрать привязку к тэгу paneltags[0]. В формате данных (Format pattern) можно выбрать четыре разряда (9999):
Рисунок 20 — Свойства экранного элемента
Программная реализация обмена по интерфейсу.
В проекте необходимо создать новый организационный блок с использованием языка программирования SCL:
Рисунок 21 — Добавление нового организационного блока в проект
Условия работы программы: создать циклический опрос переменной ведомого устройства с возможностью одновременного изменения времени опроса при помощи панелей оператора ELHART ECP-10 (ведомое устройство по интерфейсу RS-485) и KTP400 Basic PN (связь по интерфейсу Profinet). Значение переменной ведомого является временем опроса.
Общий вид кода программы приведён на рисунке 8:
Рисунок 22 — Общий вид кода программы
Подробный листинг кода:
Строка 3 — вызов ФБ "R_TRIG_DB".
Строки 4..15 — вызов ФБ "Modbus_Comm_Load_DB". ФБ конфигурирует коммуникационный модуль (в данном примере — CB 1241). Необходимые для определения входы ФБ: REQ – старт инструкции ФБ, в данном примере используется переменная Initial call, формирующая передний фронт при запуске ПЛК; PORT — выбор физического порта, в данном примере — Local~CB_1241_(RS485); BAUD и PARITY – настройка скорости передачи данных и проверки бита чётности; MB_DB — ссылка на экземпляр ФБ "Modbus_Master_DB", существующий в проекте.
Строки 16..18 — проверка изменения переменной paneltags[0] (циклическое время опроса) с панели оператора KTP400 Basic PN. В случае, если эта переменная была изменена, то переменной step присваивается значение 1.
Строки 19..24 — перевод инструкции "Modbus_Master_DB" в режим записи из режима чтения. Область данных для записи в ведомое устройство — "modbus".mbmaster.datamaster[0].
Строки 25..27 — проверка изменения переменной из области памяти панели оператора ЕСР-10. Если переменная была изменена, то циклическому времени опроса присваивается значение этой переменной.
Строка 28 — преобразование типа данных для переменной paneltags[0] из WORD в TIME.
Строки 29..31 — при срабатывании выхода ФБ "R_TRIG_DB" происходит инкрементирование переменной i - подсчёт количества запросов по интерфейсу RS-485.
Стркоки 32..41 — вызов ФБ "Modbus_Master_DB" для опроса ведомого устройства. Необходимые для определения входы ФБ: REQ — старт инструкции ФБ, используется выход ФБ "R_TRIG_DB"; MB_ADDR — адрес ведомого устройства; MODE — режим работы ФБ "Modbus_Master_DB", значение данного входа задаёт номер команды модбас (более подробное описание дано в документации на ФБ); DATA_ADDR — адрес регистра/регистров ведомого для опроса; DATA_LEN — количество опрашиваемых регистров; DATA_PTR — указатель на область данных (1 переменная или массив), используемую для обмена с ведомым устройством.
Строка 42 — вызов ФБ "F_TRIG_DB" для формирования импульса по заднему фронту флага BUSY ФБ "Modbus_Master_DB".
Строки 43..46 — завершение процесса записи нового значения в регистр ведомого и перевод ФБ "Modbus_Master_DB" в режим чтения.
Важное примечание. Для обеспечения правильной работы коммуникационного модуля CB 1241 по двухпроводному интерфейсу RS-485 (полудуплексный режим) необходимо перейти в свойства экземпляра ФБ "Modbus_Comm_Load_DB" и присвоить начальное значение 4 входу MODE:
Рисунок 23 — Включение полудуплексного режима для интерфейса RS-485
Настройка ПЛК и панели оператора Siemens завершена.
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. Панель оператора выступает в качестве ведущего устройства.
2.2 Настройка панели оператора ELHART ECP-10*
В качестве примера для панели оператора будет настроен порт COM2, интерфейс RS-485. В меню Настройки — Настройки связи — Местные подключения необходимо выбрать вкладку СОМ2, установить флажок Slave, выбрать тип устройства Modbus RTU Server, номер станции 7 и настройки связи как показано на рисунке 10:
Рисунок 24 — Настройки интерфейса панели оператора
В рабочую область окна проекта необходимо добавить элемент Цифровой ввод. Настройки элемента приведены на рисунке 11:
Рисунок 25 — Настройка элемента «Цифровой ввод»
Панель оператора ECP-10 настроена для работы в качестве ведомого устройства по интерфейсу RS-485 порта COM2.
3. Связь панели оператора ELHART ECP-10* с ПЛК Siemens по интерфейсу RS-485 и протоколу Modbus RTU (ПЛК ведомый)
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):
Рисунок 4 — Настройка параметров интерфейса Profinet
Для наглядности процесса обмена данными можно создать программный организационный блок с изменяемыми переменными разного типа (язык программного блока - SCL):
Рисунок 5 — Создание программного блока
В проекте необходимо объявить ряд переменных (тэгов). Это можно сделать во вкладке PLC tags, пункт Show all tags:
Рисунок 6 — Объявление переменных
В результате в проекте будут объявлены 2 переменных типа Bool: Tag_1 связана с первым дискретным входом ПЛК (I0.0), Tag_2 - с первым дискретным выходом (Q0.0). Пример программного кода, реализующего повторение состояния первого входа первым выходом, приведён ниже. Также, программа реализует инкрементирование переменной i (тип Int по адресу %MW0) 1 раз в секунду:
Рисунок 7 — Программный код
Листинг кода для копирования:
Настройка ПЛК завершена.
Центральный процессор CPU
Основой всей системы является процессорный модуль CPU (Central Processing Unit), который отвечает непосредственно за обработку, хранение данных, выполнение программы.
Данное семейство представлено 5 моделями центральных процессоров, различающихся производительностью, количеством входов-выходов, объемом памяти.
Кроме того, эти модели имеют несколько различных модификаций - DC/DC/RLY с напряжением питания = 24 В, дискретными входами = 24 В, дискретными выходами релейного типа, DC/DC/DC с напряжением питания = 24 В, дискретными входами и дискретными выходами 24 В на основе транзисторных ключей, AC/DC/RLY с напряжением питания ~115/230 В, дискретными входами 24 В, дискретными выходами релейного типа.
Также их отличительной особенностью является возможность подключения определенного количества дополнительных сигнальных модулей. Так например CPU 1211 не поддерживает такую возможность, для CPU 1212 таких модулей может быть только 2, а для остальных моделей - 8.
Стоит отметить наличие у всех моделей процессоров встроенного Web-сервера, позволяющего просматривать различную информацию о подключенном контроллере с помощью ПК или смартфона, через обычный Web-браузер.
Можно задействовать ее в качестве внешней загрузочной памяти для процессорного модуля, для обновления встроенного программного обеспечения, для копирования программ во внутреннюю память устройства. Кстати, S7-1500 не имеют встроенной загрузочной памяти и без Memory Card не работают.
Подключение модулей контроллера
Подключение модулей между собой осуществляется по внутренней шине. Сделано, кстати, очень удобно — достаточно установить процессор на DIN рейку, снять крышку соединителя, установить сигнальный модуль и перевести шинный соединитель в положение влево. И все, сигнальный модуль с процессором надежно зафиксированы между собой.
Также легко соединяются и коммуникационные модули, только шинный соединитель у них не выдвижной и соединять их с процессором удобно до установки на DIN рейку.
Все сигнальные модули подключаются к процессору с правой стороны, а коммуникационные — с левой, а вот сигнальные и коммуникационные платы устанавливаются одинаково — в отсек на фронтальной части процессора. В этот же отсек возможна установка батарейной платы — BB (Battery Board), для резервирования часов реального времени CPU от перебоев в питании.
Подключение модулей контроллера
Подключение модулей между собой осуществляется по внутренней шине. Сделано, кстати, очень удобно - достаточно установить процессор на DIN рейку, снять крышку соединителя, установить сигнальный модуль и перевести шинный соединитель в положение влево. И все, сигнальный модуль с процессором надежно зафиксированы между собой.
Читайте также: