IV. HMI-панель и SCADA
Подготовка данных, WinCC и Weintek

17. MetaView — подготовьте данные для HMI-панели и SCADA

В предыдущих главах мы проверяли программу и визуализацию в MetaPlatform Runtime: подавали тестовые сигналы, смотрели результаты и управляли компонентом с экрана. Конечная цель — перенести проект на целевые платформы: программу в ПЛК, а визуализацию — на панель оператора или в SCADA. Загрузку кода в Siemens и CODESYS мы уже рассмотрели. Теперь подготовим данные для сторонней визуализации.

MetaPlatform создаёт таблицы тегов, тревог и трендов для Weintek и WinCC. Данные берутся из того же проекта, из которого получена программа ПЛК. MetaGen рассчитывает адреса там, где это возможно, а для символьных и OPC UA-подключений используются адреса из соответствующего экспорта. MetaView собирает результат в формат, подходящий выбранному редактору.

Для какой визуализации Что получаем из MetaPlatform
Weintek Таблицы тегов, тревог и трендов для импорта в EasyBuilder Pro
WinCC Таблицы тегов, тревог и трендов для импорта в WinCC, файл настройки трендов
MetaView в Runtime Экраны из наших шаблонов и их привязки к данным ПЛК по OPC UA

На схеме показано, какие платформы можно соединить и каким способом. Сверху — подготовка файлов в MetaPlatform. Ниже — обмен данными после загрузки программы и настройки визуализации: ПЛК обменивается данными напрямую с HMI-панелью или программой визуализации.

Подготовка файлов MetaPlatform и подключения Siemens, CODESYS и MetaCore к Weintek, WinCC и MetaView Runtime

Нажмите на схему, чтобы открыть её крупнее. Двунаправленные стрелки показывают чтение значений и передачу команд; подписи — протокол или драйвер и используемую адресацию.

Например, один проект Siemens можно подготовить для Weintek по абсолютным адресам, Weintek по OPC UA или WinCC с PLC-тегами в TIA Portal. Для CODESYS 3.5 доступны символьные адреса Weintek, а для CODESYS 2.3 и 3.5 — Modbus для Weintek и WinCC. Выбираем нужное подключение и получаем соответствующие файлы; перечень этих файлов приведён в пункте 6.

Подключение MetaView Runtime к целевому ПЛК уже подготовлено в главе 16. В этой части работаем со сторонней визуализацией: выбираем профиль HMI, получаем таблицы и переносим их в EasyBuilder Pro или WinCC. Панель Weintek при необходимости можно сначала проверить с программой в MetaCore.

1. Проверьте HMI-панель с MetaCore

Теперь обратная задача: проект HMI-панели уже разрабатывается, а целевого ПЛК под рукой нет. Запустите программу в MetaCore и подключите к нему панель Weintek по OPC UA. Так можно проверить показания, ввод уставок, команды и реакцию экранов на изменение состояний до подключения к рабочему контроллеру.

Программа выполняется в нашем софт-ПЛК, а оператор работает с тем интерфейсом, который вы создаёте для объекта. Например, меняет поправку из Weintek, а результат рассчитывает MetaCore. Для подачи изменяющегося измерения можно использовать уже подготовленный сценарий MetaLab.

Для Weintek выберите в проекте платформу MetaCore, а в MetaView — профиль Weintek OPC UA. Адреса OPC UA создаются автоматически при генерации. Полученные файлы тегов, тревог и трендов предназначены для EasyBuilder Pro; в подключении панели укажите endpoint работающего MetaCore.

Если редактор внешней визуализации принимает описание тегов в XML, для MetaCore можно получить OPC UA NodeSet2. Экспорт этого файла рассмотрим в конце главы.

2. Выберите, какие файлы должен подготовить MetaView

Платформу ПЛК мы уже выбирали в меню Проект. Теперь укажем, для какой визуализации нужны файлы.

Откройте MetaView → Действия — кнопку с тремя точками рядом с разделом MetaView. Отметьте нужный профиль. Можно включить несколько вариантов, например подготовить и панель Weintek, и WinCC для одного проекта Siemens.

Выбор профилей MetaView OPC UA и Weintek OPC UA для Siemens

На снимке выбраны MetaView OPC UA и Weintek OPC UA: получим и экран для Runtime, и таблицы для панели. Для другой платформы состав меню изменится.

Платформа проекта Доступные профили MetaView
MetaCore MetaView OPC UA; Weintek OPC UA
TIA Portal MetaView OPC UA; Weintek OPC UA; Weintek Siemens Absolute; WinCC Internal
CoDeSys 3.5 MetaView OPC UA; Weintek CoDeSys V3; Weintek Modbus; WinCC Modbus
CoDeSys 2.3 Weintek Modbus; WinCC Modbus

Каждая галочка отвечает за одноимённую папку в архиве. Для экранов Runtime включите MetaView OPC UA — это правило действует и для MetaCore, и для Siemens, и для CODESYS 3.5. Если профиль выключен, его папка не создаётся. Если снять все галочки, MetaViewArtifact.zip не будет в результате генерации.

Сохраните выбор в проекте. Дальше для каждого подключения разберём, откуда берутся адреса и какие файлы получит редактор визуализации.

3. Подготовьте подключение для рабочей визуализации

После проверки алгоритма переходим к той связке, которая будет работать на объекте: программа в выбранном ПЛК, визуализация — на HMI-панели или в SCADA. Здесь MetaView готовит адреса и таблицы для конкретного способа связи.

Siemens и Weintek: абсолютные адреса

Для платформы TIA Portal MetaGen при генерации автоматически рассчитывает абсолютные адреса опубликованных данных Conf и View. Они появляются в Теги HMI с типом Siemens Absolute.

Вот несколько адресов из нашего примера:

Данные программы Адрес Что находится по этому адресу
Conf.Offset_1 DB1.DBD0 Поправка первого канала, REAL
Conf.Offset_2 DB1.DBD4 Поправка второго канала, REAL
View.Signals_fRaw1 DB2.DBD0 Копия исходного измерения, REAL
View.Correction_Inst_inout_bManual_1 DB2.DBX8.0 Флаг ручного режима, BOOL

В записи DB1.DBD0 указаны блок DB1 и начальный байт 0 для 32-битного значения. В DB2.DBX8.0 — блок DB2, байт 8 и бит 0. Номера смещений генератор рассчитывает по составу данных.

Поставьте галочку Weintek Siemens Absolute. MetaView подготовит Conf.db, View.db и таблицы HMI в формате EasyBuilder Pro. Например, адрес DB1.DBD0 представляется в полях импорта Weintek как тип DBDn и адрес 10000, а DB2.DBX8.0 — как DBnBit и 200080. Это преобразование уже выполняет генератор.

Так панель Weintek можно подключить к аппаратному Siemens, а для предварительной проверки — к PLCSIM Advanced с настроенной связью Ethernet. В EasyBuilder Pro используется драйвер Siemens S7-1200/S7-1500 (Absolute Addressing) (Ethernet). Для этого варианта OPC UA XML не требуется.

В проекте TIA должны совпадать принятые генератором номера: Conf — DB1, View — DB2, оба блока со стандартным, неоптимизированным доступом. Если изменить номера DB или расположение полей, прежние абсолютные адреса перестанут соответствовать программе.

Siemens и WinCC: PLC-теги в общем проекте TIA Portal

Если программа Siemens и визуализация WinCC находятся в одном проекте TIA Portal, удобно связать HMI-теги с символами программы. При генерации MetaGen подготавливает адреса типа PLC Tag: например, Conf.Offset_1 и View.Signals_fRaw1.

Поставьте галочку WinCC Internal. В результате получите таблицы тегов, тревог и трендов для WinCC. Например, строка тега Conf_Offset_1 будет ссылаться на PLC-тег Conf.Offset_1. В TIA этот тег относится к настроенной связи с вашим Siemens PLC.

Это уже рабочая визуализация объекта: оператор меняет настройку на экране WinCC, программа читает её из Conf, а результат возвращается на экран через View. Для подготовки этих символьных связей экспорт OPC UA не нужен.

Siemens и Weintek: OPC UA

Если для панели выбрана связь по OPC UA, используйте сервер Siemens. Программа может выполняться в аппаратном ПЛК или в PLCSIM Advanced.

Поставьте галочку Weintek OPC UA и импортируйте XML из TIA Portal в Теги HMI, как показано ниже. MetaView сопоставит имена с NodeId сервера и подготовит файлы для OPC UA-подключения Weintek.

Настройки, команды и значения остаются теми же. Меняется способ обращения к ним: например, к поправке обращаемся по ns=3;s="Conf"."Offset_1" из нашего XML. Панели затем задаётся endpoint выбранного Siemens PLC.

CODESYS 3.5 и Weintek: символьные адреса

Для этой связки поставьте галочку Weintek CoDeSys V3. Импортируйте XML символьной конфигурации, полученный рядом с проектом CODESYS после генерации кода. В таблице появятся адреса вида Application.MetaGen.Conf.Offset_1 и Application.MetaGen.View.fRaw1.

В EasyBuilder Pro выберите драйвер CoDeSys V3 Ethernet. Он использует символьную адресацию CODESYS. Так можно подготовить панель для своего CODESYS-контроллера и проверить её с софт-ПЛК перед подключением к оборудованию.

Тот же XML символьной конфигурации мы использовали при подготовке MetaLab. Файл описывает данные программы, а выбранный профиль определяет формат их адресов для визуализации. Отдельный профиль Weintek OPC UA для CODESYS 3.5 не поддерживается.

CODESYS 2.3 и 3.5: Weintek или WinCC по Modbus

Для обеих платформ CODESYS MetaGen автоматически рассчитывает карту регистров Modbus для опубликованных данных Conf и View. Она появляется в Теги HMI с типом адреса Modbus — подобно тому, как для Siemens создаются абсолютные адреса DB.

В нашем примере CODESYS 3.5 получаются такие адреса:

Данные программы Адрес в таблице MetaView Назначение
Conf.Offset_1 %MW0 Поправка первого канала
Conf.Offset_2 %MW2 Поправка второго канала
View.fRaw1 %MW4 Копия исходного измерения
View.Correction_Inst_inout_bManual_1 %MW8.0 Бит ручного режима

REAL занимает два 16-битных регистра, поэтому следующая поправка начинается с %MW2. Адрес %MW8.0 обозначает бит 0 соответствующего слова. Это формат карты MetaPlatform; представление адреса в драйвере HMI зависит от выбранного профиля.

Для панели Weintek поставьте галочку Weintek Modbus, для WinCC — WinCC Modbus. Можно выбрать оба профиля. Генератор подготовит таблицы для нужных редакторов; XML OPC UA для этого не требуется.

Так к WinCC или панели Weintek можно подключить ПЛК на CODESYS 2.3 или CODESYS 3.5. На стороне контроллера нужно настроить сервер Modbus и связать его регистры с Conf и View по рассчитанной карте. Генерация карты сама по себе сервер связи в ПЛК не запускает.

4. Подготовьте адреса своего профиля

Для Siemens Absolute, WinCC Internal, Modbus и MetaCore OPC UA адреса создаются генератором. Для Siemens по OPC UA и CODESYS 3.5 по символьным адресам нужен XML своего ПЛК.

Если вы уже выполнили импорт в MetaView → Теги HMI по главе 16, повторять его не требуется: эти же адреса используются соответствующим профилем Weintek.

Подключение Команда в MetaView → Теги HMI → Действия Файл
Siemens OPC UA Импорт адресов OPC UA XML из TIA Portal
CODESYS 3.5 Импорт адресов CoDeSys V3 XML символьной конфигурации рядом с проектом CODESYS

Пошаговый импорт со скриншотами приведён в главе 16. Импорт XML только в MetaLab → OPC UA Tags не заполняет таблицу HMI: у модулей отдельные таблицы с разным назначением.

5. Посмотрите, что будет видеть оператор

Откройте Теги HMI и найдите поправки, измерения и команды нашего компонента. В учебном примере для каждого подготовленного типа адреса получается 13 HMI-тегов. Один тег может повторяться с разными типами адреса: это варианты обращения к одному значению для разных подключений.

Убедитесь, что у нужных строк заполнен Адрес, а Тип адреса соответствует выбранному варианту. Например, для Weintek с CODESYS нужны строки CoDeSys V3, для Siemens по OPC UA — OPC UA. Номер строки после генерации может измениться; ориентируйтесь на имя тега.

Исходный вход и его копия выполняют разные задачи. MetaLab подаёт сигнал в fRaw1, а визуализация показывает View.fRaw1 при пустом Area или View.Signals_fRaw1 при Area = Signals. Настройки оператор меняет через Conf, команды передаёт через соответствующие поля View. Этот путь данных мы разобрали в разделе global.

Если после импорта нужная привязка не появилась, проверьте, что XML относится к текущему проекту и содержит соответствующие поля Conf и View, затем повторите импорт.

6. Получите файлы для выбранной визуализации

Откройте Проект → Действия → Сгенерировать. После завершения выберите в том же меню Скачать.

Команды генерации и скачивания проекта

Распакуйте полученный общий архив и возьмите MetaViewArtifact.zip. Используйте результат генерации, выполненной после импорта адресов и выбора профилей.

Если генерация сообщает, что для выбранного профиля не подготовлены адреса, исправьте указанную причину и повторите генерацию. Вернитесь к подготовке выбранного подключения: проверьте платформу проекта, наличие рассчитанных адресов и, где требуется, импорт XML.

Изменение только импортированных адресов или профилей визуализации не требует повторной загрузки программы в ПЛК. Если менялся состав данных или PLC-код, сначала обновите программу и XML в среде разработки ПЛК.

Откройте MetaViewArtifact.zip. Найдите папку своего профиля: из неё будем брать файлы при импорте в EasyBuilder Pro или WinCC.

Папка Что в ней находится Где используется
MetaView OPC UA Экраны, описание сцен и привязки тегов MetaView в RT; загружается весь MetaViewArtifact.zip
Weintek OPC UA HMI Tags.csv, HMI Alarms.xls, HMI Trends.xls EasyBuilder Pro, подключение OPC UA
Weintek CoDeSys V3 HMI Tags.csv, HMI Alarms.xls, HMI Trends.xls EasyBuilder Pro, драйвер CoDeSys V3 Ethernet
Weintek Siemens Absolute Conf.db, View.db, таблицы тегов, тревог и трендов EasyBuilder Pro, абсолютная адресация Siemens
Weintek Modbus HMI Tags.csv, HMI Alarms.xls, HMI Trends.xls EasyBuilder Pro, Modbus
WinCC Internal или WinCC Modbus HMI Tags.csv, HMI Alarms.csv, HMI Trends.csv, TrendView_Loaded_Body.vbs WinCC, соответствующий вариант подключения

Например, для Siemens с отмеченными MetaView OPC UA и Weintek OPC UA в архиве будут только эти две папки. При следующей генерации состав архива снова определяется выбранными галочками. Для CODESYS с профилем Weintek CoDeSys V3 берите файлы из папки Weintek CoDeSys V3. Имена файлов похожи, но адреса и формат подготовлены для соответствующего редактора.

Тревоги и тренды берутся из описания проекта. При добавлении каналов и повторной генерации их таблицы обновляются вместе с тегами. Экраны для Weintek и WinCC вы разрабатываете в этих редакторах; HTML-карточки из MetaView OPC UA используются в MetaView Runtime.

7. Получите XML OPC UA для MetaCore

У MetaCore тоже есть описание опубликованных тегов в XML. Оно нужно, когда внешняя программа умеет импортировать OPC UA NodeSet2: можно передать ей имена, типы и NodeId нашего софт-ПЛК вместо заполнения адресов вручную.

Данные обслуживает MetaCore в Runtime, а файл описания подготавливается в MetaPlatform по сгенерированному проекту:

  1. Выберите платформу MetaCore и выполните генерацию проекта.
  2. Откройте MetaView → Теги HMI.
  3. В меню Действия этой таблицы выберите Экспорт OPC UA NodeSet2.
  4. Сохраните файл MetaCore.NodeSet2.xml.

Экспорт OPC UA NodeSet2 для MetaCore из меню Теги HMI

В XML содержатся адреса вида ns=2;s=Conf.Offset_1 и ns=2;s=View.fRaw1. Они соответствуют публикации того проекта, который загружается в MetaCore. Текущие значения и endpoint в этот файл не входят: адрес подключения к работающему MetaCore задайте во внешней программе отдельно.

Для подключения MetaView Runtime к MetaCore отдельный XML не требуется: достаточно выбрать MetaView OPC UA и сгенерировать артефакты. Для профиля Weintek OPC UA также уже подготовлены таблицы CSV/XLS. Экспорт NodeSet2 используйте, когда описание тегов нужно другой программе, принимающей этот формат.

Теперь у нас есть выбор: проверить алгоритм с экраном Runtime, отладить проект HMI-панели с программой в MetaCore или подготовить рабочую связку ПЛК с Weintek либо WinCC. Для выбранного варианта файлы получены. Дальше импортируем их в редактор визуализации: WinCC Professional — глава 18, Weintek и EasyBuilder Pro — глава 19.

← 16. MetaView Runtime и целевой ПЛК18. WinCC Professional →