MetaPlatform — разработка собственного компонента

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

Руководство рассчитано на программиста, знакомого с основами ST. Объявления переменных и вызовы блоков здесь не разбираем. Учимся собирать собственный проектный компонент MetaGen — задавать алгоритм один раз и получать программу для нужного количества однотипных устройств.

Если вы ещё не работали в MetaPlatform, начните с «Быстрого старта». Здесь подробнее разберём то, что происходит за таблицами и шаблоном.

Что будем делать

Наш первый компонент прибавляет поправку к температуре: 20 + 2 = 22. Затем появятся второй канал, собственный функциональный блок и ручная подстановка результата.

Это небольшой пример того же подхода, который применяется к оборудованию: описали один насос или клапан, заполнили строки параметров для остальных — получили отдельные экземпляры, настройки и вызовы. Чтобы изменить общий алгоритм, достаточно поправить шаблон.

Где будем смотреть результат

MetaCore — софт-ПЛК для проверки и отладки программы на компьютере перед загрузкой в реальную среду TIA Portal или CODESYS. Он входит в MetaPlatform Runtime, сокращённо RT. Здесь можно выполнить программу и увидеть значения прямо рядом со ST-кодом.

После первого рабочего компонента загрузим результат генерации в RT. Дальше будем изменять шаблон, генерировать заново и смотреть, что получилось. Дополнительная библиотека MetaLib в этих упражнениях не нужна: функциональный блок напишем сами.

Для переноса программы выберите в MetaPlatform другую целевую платформу и повторите генерацию. Полученные файлы импортируйте в TIA Portal или CODESYS. MetaPlatform формирует нужные объявления и вызовы автоматически; поддерживаемый алгоритм остаётся тем же. Подключение реальных входов и выходов выполняется в проекте целевого ПЛК.

Из чего складывается проект

Что создаём в MetaPlatform Для чего Что появляется в программе ПЛК
Глобальную таблицу Signals Хранить исходные измерения Глобальные переменные
Проектный компонент MetaGen Correction Описать обработку и повторить её по строкам параметров Функциональный блок Correction и его экземпляр Correction_Inst
ST-блок COffset Вынести обработку одного канала в отдельный блок Тип блока и экземпляры, указанные в таблице Instances

Экземпляры в MetaCore и CODESYS создаются в Inst. Тип блока описывает алгоритм, а экземпляр хранит данные конкретного канала. У двух одинаковых насосов были бы два экземпляра с собственными состояниями; в нашем примере так будут устроены два измерения.

Conf, View и makeView

Conf — настройки оператора или наладчика. Например, уставка температуры, задержка пуска или поправка нашего измерения. В программе будем обращаться к ней как к Conf.Offset_1.

View — команды оператора и значения для отображения. Здесь находятся результаты измерений, состояния, ручные задания и команды. К этим данным подключается визуализация.

makeView() обновляет значения для отображения после выполнения алгоритма. Например, копирует результат из выхода блока в View. Поля ручных команд, которые блок использует непосредственно из View, не перезаписываются этим копированием.

Объект MetaCore и CODESYS Siemens TIA Portal
Conf Глобальная структура в GVL MetaGen Блок данных Conf
View Глобальная структура в GVL MetaGen Блок данных View
Экземпляры блоков Объявления в GVL Inst Экземплярные блоки данных
makeView Функция обновления данных Функция обновления данных

В упражнениях выбрана MetaCore. Поэтому имена файлов и примеры сгенерированного кода приведены для неё.

Как устроено руководство

Мы последовательно разрабатываем один проект: сначала программу, затем визуализацию и сценарии проверки. После наладки в MetaPlatform переносим программу и данные визуализации на целевые платформы.

Часть Что делаем Результат
I. Разработка программы — MetaGen Описываем данные, компоненты, алгоритм и сигнализацию Программа учебного проекта готова
II. Визуализация и наладка в MetaPlatform Создаём MetaView и MetaLab, проверяем вместе с MetaCore Проект разработан и проверен; можно скачать финальный исходник
III. Перенос программы в целевой ПЛК Загружаем код, получаем адреса, подключаем средства наладки Программа работает в целевом софт-ПЛК или аппаратном контроллере
IV. Подключение HMI-панели и SCADA Готовим профили и импортируем данные в WinCC или Weintek Целевая визуализация связана с программой ПЛК

I. Разработка программы — MetaGen

Глава Что получится
1. Проект и глобальная таблица Объявим исходное измерение
2. Первый компонент: Conf и View Прибавим поправку и разберём результат генерации
3. Один шаблон — несколько каналов Получим обработку двух каналов
4. Собственный функциональный блок Создадим по экземпляру блока на канал
5. Mode — какой режим выбрать Разберём global, val, ref, inout, static
6. Встроенный интерпретатор Используем подстановки и выражения
7. Выбор настроек и строк Зададим условия генерации
8. Ошибки генерации Найдём и исправим ошибки в проекте
9. Аварии и предупреждения Разберём сигнализацию в программе ПЛК

Главы 6–9 дополняют учебный проект короткими примерами. Переносить каждый пример в основной компонент не требуется.

II. Визуализация и наладка в MetaPlatform

Глава Что получится
10. MetaView — визуализация и управление Карточки двух каналов, ввод поправки и ручное управление
11. MetaLab — изменяющийся сигнал Проверка алгоритма на имитируемом входе
12. MetaLab — один шаблон для каналов Автоматическое создание имитаторов и совместный запуск
Итог разработки и финальный проект Готовый исходный проект для скачивания и сверки

Здесь заканчивается разработка и проверка проекта в MetaPlatform. В следующих частях переносим полученный результат в целевые платформы.

III. Перенос программы в целевой ПЛК

Глава Что делаем
13. Siemens — TIA Portal и PLCSIM Advanced Импорт кода, загрузка программы и XML OPC UA
14. CODESYS 3.5 — свой ПЛК или CODESYS Control Импорт кода, символьная конфигурация, загрузка и XML
15. MetaLab — подключение к целевому ПЛК Привязываем прежние сценарии к адресам выбранного ПЛК
16. MetaView Runtime — подключение к целевому ПЛК Подключаем готовую визуализацию по OPC UA

Главы 13 и 14 — альтернативы. Выберите среду своего ПЛК. Имитация и визуализация работают по уже знакомому порядку; меняются адреса и endpoint.

IV. Подключение HMI-панели и SCADA

Глава Что делаем
17. MetaView — данные для HMI-панели и SCADA Выбираем подключение, профили и получаем файлы
18. WinCC Professional Переносим теги, тревоги и тренды; подключаем скрипт
19. Weintek и EasyBuilder Pro Импортируем адреса и настраиваем подключение HMI-панели

Выберите редактор своей визуализации. В главах о Weintek и WinCC берём файлы из результата генерации собственного проекта.

В таблицах руководства тире означает пустую ячейку, 1 в столбце Publish — включённый флажок. Имена параметров и теги выделены как код; их можно копировать в проект.

1. Проект и глобальные данные →