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) в её настройках.

На снимке проект называется MetaKit-CODESYS-Base. Вы можете использовать своё имя — оно также войдёт в имя XML, который получим после компиляции.
3. Импортируйте результат MetaGen
Выделите Application и выполните Проект → Импорт. Выберите MetaGen.export из папки CoDeSys35.

Используйте именно Импорт. Соседняя команда Импорт PLCopenXML предназначена для другого формата.
В окне импорта оставьте выбранными все объекты папки MetaGen и нажмите OK.

В приложении появятся типы _Conf и _View, функциональные блоки, функция makeView и глобальные таблицы Inst, MetaGen, Signals. Дополнительная библиотека MetaLib для этого примера не требуется.
4. Добавьте точку входа
Откройте PLC_PRG и добавьте в тело программы:
_MetaGen_Main_Inst();

В Конфигурации задач проверьте, что циклическая задача вызывает PLC_PRG. На снимке это задача Task.
_MetaGen_Main_Inst() уже вызывает проектный алгоритм, обработку сигнализации и обновление View. Этот вызов должен выполняться каждый цикл.
5. Выберите переменные для OPC UA
Откройте Символьную конфигурацию и нажмите кнопку Компиляция в её панели. После обновления списка расставьте флажки:
| Ветка | Что отметить |
|---|---|
MetaGen |
Conf и View |
Signals |
fRaw1 и fRaw2 |
Conf_Retain не выбираем. Для выбранных переменных установите права чтения и записи, как на снимке.

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

В окне сообщений проверьте отсутствие ошибок. При генерации кода CODESYS также создаёт XML символьной конфигурации рядом с файлом проекта. К нему вернёмся после проверки связи с ПЛК.
7. Подключитесь к своему ПЛК
Если используете софт-ПЛК, запустите CODESYS Control Win V3 x64. Для аппаратного контроллера этот шаг пропустите.

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

Имя устройства в вашем списке может отличаться. Важно выбрать тот ПЛК, в который будете загружать программу.
8. Загрузите программу и запустите её
Выполните Онлайн → Логин (Alt+F8) и подтвердите загрузку приложения в выбранный ПЛК.

После загрузки выполните Отладка → Старт. Приложение должно перейти в RUN.
9. Проверьте связь в UaExpert
Для подключения используйте IP-адрес своего ПЛК и порт его OPC UA сервера. В нашем проходе endpoint — opc.tcp://192.168.56.101:4840/. Это адрес показанного стенда; замените его на свой.
Проверить доступность порта можно в 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 |

Нажмите OK, затем Connect в меню добавленного сервера. На показанном ПЛК разрешено подключение None / Anonymous. Если ваш контроллер использует другие настройки доступа OPC UA, укажите параметры, настроенные на нём.
В Address Space раскройте ветку своего устройства → Resources → Application → GlobalVars → MetaGen → Conf. Перетащите Offset_1 и Offset_2 в Data Access View.

В нашем примере значения — 2 и -1.5, статус обеих переменных — Good. В той же ветке GlobalVars доступны MetaGen → View и исходные входы в Signals.
10. Найдите XML рядом с проектом
Откройте папку, в которой сохранён проект CODESYS. После Генерировать код в ней находится XML символьной конфигурации. Имя составляется из имени проекта, устройства и приложения:
<проект>.<устройство>.<приложение>.xml
В нашем примере файл называется:
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 и генерации артефакта.