III. Целевой ПЛК
Перенос программы и подключение Runtime

14. CoDeSys Control Win V3 x64 — загрузка программы и XML OPC UA

Перенесём учебный алгоритм в CODESYS 3.5, опубликуем переменные и получим XML для импорта адресов в MetaLab. Создайте проект под свой ПЛК; в нашем примере используется CODESYS Control Win V3 x64.

Эта глава и глава о TIA Portal / PLCSIM Advanced — два варианта загрузки программы. Пройдите вариант для своего ПЛК, затем переходите к импорту OPC UA XML.

1. Сгенерируйте программу для CODESYS 3.5

В MetaPlatform откройте свой учебный проект. В меню Проект → Действия выберите CoDeSys 3.5. В меню MetaView → Действия снимите галочки профилей визуализации: на этом этапе готовим программу ПЛК. Привязки MetaView Runtime подготовим в главе 16, а профили HMI — в главе 17.

Продолжая проект из глав о MetaCore, оставьте исходные входы fRaw1 и fRaw2 в глобальной таблице Signals. В строке global компонента Correction поле Area остаётся пустым, а Tag — |Input|. В шаблоне вход COffset получает in_fValue := |Input|; в ML Export имя входа также остаётся |Input|.

Если вы перед этим меняли проект для Siemens, верните эти обращения и уберите из исходника COffset добавленную строку BEGIN между объявлениями и алгоритмом. Различия имён между платформами разобраны в разделе global.

Выполните Проект → Действия → Сгенерировать. После завершения выберите Скачать и распакуйте результат. В архиве MetaGenArtifact.zip, в папке CoDeSys35, находится MetaGen.export — файл для импорта в CODESYS.

2. Создайте проект с нужным ПЛК

В CODESYS создайте стандартный проект и выберите свой контроллер. Для софт-ПЛК из этого примера выберите CODESYS Control Win V3 x64. Язык PLC_PRG — ST.

Сохраните проект. В дереве выделите Application и добавьте объект Символьная конфигурация через Добавление объекта. Включите поддержку OPC UA (Support OPC UA features) в её настройках.

Проект с выбранным ПЛК, PLC_PRG и символьной конфигурацией

На снимке проект называется MetaKit-CODESYS-Base. Вы можете использовать своё имя — оно также войдёт в имя XML, который получим после компиляции.

3. Импортируйте результат MetaGen

Выделите Application и выполните Проект → Импорт. Выберите MetaGen.export из папки CoDeSys35.

Команда Проект — Импорт и файл MetaGen.export

Используйте именно Импорт. Соседняя команда Импорт PLCopenXML предназначена для другого формата.

В окне импорта оставьте выбранными все объекты папки MetaGen и нажмите OK.

Выбор объектов MetaGen для импорта в Application

В приложении появятся типы _Conf и _View, функциональные блоки, функция makeView и глобальные таблицы Inst, MetaGen, Signals. Дополнительная библиотека MetaLib для этого примера не требуется.

4. Добавьте точку входа

Откройте PLC_PRG и добавьте в тело программы:

st
_MetaGen_Main_Inst();

Вызов _MetaGen_Main_Inst из PLC_PRG

В Конфигурации задач проверьте, что циклическая задача вызывает PLC_PRG. На снимке это задача Task.

_MetaGen_Main_Inst() уже вызывает проектный алгоритм, обработку сигнализации и обновление View. Этот вызов должен выполняться каждый цикл.

5. Выберите переменные для OPC UA

Откройте Символьную конфигурацию и нажмите кнопку Компиляция в её панели. После обновления списка расставьте флажки:

Ветка Что отметить
MetaGen Conf и View
Signals fRaw1 и fRaw2

Conf_Retain не выбираем. Для выбранных переменных установите права чтения и записи, как на снимке.

В символьной конфигурации выбраны Conf, View и исходные входы Signals

Conf содержит настройки, View — значения для отображения и команды. Исходные глобальные входы из Signals нужны MetaLab: имитация записывает данные именно в них. Поэтому одной публикации View недостаточно.

6. Очистите сборку и сгенерируйте код

Сохраните проект, затем выполните:

  1. Компиляция → Очистить всё.
  2. Компиляция → Генерировать код или F11.

Генерация кода после настройки публикации переменных

В окне сообщений проверьте отсутствие ошибок. При генерации кода CODESYS также создаёт XML символьной конфигурации рядом с файлом проекта. К нему вернёмся после проверки связи с ПЛК.

7. Подключитесь к своему ПЛК

Если используете софт-ПЛК, запустите CODESYS Control Win V3 x64. Для аппаратного контроллера этот шаг пропустите.

Запущенный CODESYS Control Win V3 x64

В CODESYS откройте устройство → Установки соединения → Сканировать сеть. Выберите нужный контроллер в списке и подтвердите выбор.

Поиск и выбор контроллера для подключения

Имя устройства в вашем списке может отличаться. Важно выбрать тот ПЛК, в который будете загружать программу.

8. Загрузите программу и запустите её

Выполните Онлайн → Логин (Alt+F8) и подтвердите загрузку приложения в выбранный ПЛК.

Команда Онлайн — Логин для подключения и загрузки приложения

После загрузки выполните Отладка → Старт. Приложение должно перейти в RUN.

9. Проверьте связь в UaExpert

Для подключения используйте IP-адрес своего ПЛК и порт его OPC UA сервера. В нашем проходе endpoint — opc.tcp://192.168.56.101:4840/. Это адрес показанного стенда; замените его на свой.

Проверить доступность порта можно в PowerShell:

powershell
Test-NetConnection 192.168.56.101 -Port 4840

Ожидаемый результат — TcpTestSucceeded : True. Эта проверка подтверждает доступность порта; чтение переменных проверим в UaExpert.

В UaExpert выполните Servers → Add и на вкладке Advanced укажите:

Поле Значение в нашем примере
Endpoint Url opc.tcp://192.168.56.101:4840/
Security Policy None
Message Security Mode None
Authentication Settings Anonymous

Параметры подключения UaExpert к OPC UA серверу CODESYS

Нажмите OK, затем Connect в меню добавленного сервера. На показанном ПЛК разрешено подключение None / Anonymous. Если ваш контроллер использует другие настройки доступа OPC UA, укажите параметры, настроенные на нём.

В Address Space раскройте ветку своего устройства → Resources → Application → GlobalVars → MetaGen → Conf. Перетащите Offset_1 и Offset_2 в Data Access View.

UaExpert читает Offset_1 и Offset_2 со статусом Good

В нашем примере значения — 2 и -1.5, статус обеих переменных — Good. В той же ветке GlobalVars доступны MetaGen → View и исходные входы в Signals.

10. Найдите XML рядом с проектом

Откройте папку, в которой сохранён проект CODESYS. После Генерировать код в ней находится XML символьной конфигурации. Имя составляется из имени проекта, устройства и приложения:

text
<проект>.<устройство>.<приложение>.xml

В нашем примере файл называется:

text
MetaKit-CODESYS-Base.CODESYS_Control_Win_V3_x64.Application.xml

Он находится в D:\downloads, рядом с проектом MetaKit-CODESYS-Base.project. У вас это будет папка, выбранная при сохранении своего проекта.

Это XML символьной конфигурации: при открытии в текстовом редакторе его корневой элемент называется Symbolconfiguration. Файл содержит описание опубликованных Conf, View, Signals.fRaw1 и Signals.fRaw2. Этот же файл используем для импорта в MetaLab и, в главе MetaView, для профилей Weintek CoDeSys V3 и MetaView OPC UA. Отдельно экспортировать их из UaExpert не требуется.

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

Что дальше

Программа загружена в ПЛК, связь проверена, XML получен. Перейдите к импорту OPC UA XML в MetaLab и генерации артефакта.

← 13. TIA Portal / PLCSIM Advanced15. MetaLab и целевой ПЛК →