Бесшовная gRPC-интеграция: Подключение Python-скриптов к проектам PLCnext Engineer
Следующая информация служит как обновлением, так и расширением этого поста 2022 года.
Подход работает одинаково для AXC F 2152 и AXC F 3152, разница заключается в том, как установить необходимые библиотеки.
ВАЖНО: Подход протестирован и работает для FW 2024.x и 2025.0
Для AXC F 2152:
Библиотеки grpcio и grpcio-tools нужно кросскомпилировать вне устройства и установить вручную. Обзор подхода, который я использую для кросскомпиляции с помощью QEMU, можно найти в этой записи форума.
Кросскомпилированные библиотеки для Python 3.11 вместе с остальными файлами для следования этому посту были доступны по этой ссылке.
Следующие инструкции позволяют создать контейнер с Python 3.11, где можно запускать скрипты, использующие gRPC.
- Используя WinSCP (или другое ПО, позволяющее доступ к файловой системе вашего контроллера), создайте папку в /opt/plcnext для gRPC-коммуникации, в этом примере назовем её «grpc2152». Внутри grpc2152 создайте следующую структуру папок.
grpc2152/ ├── include/ │ └── google/ │ └── (пустая папка пока) │ ├── whl_files311/ │ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl │ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl │ ├── generate_googlegrpc.py ├── grpc_test.py └── Readme.txt
- Скачайте репозиторий «https://github.com/PLCnext/gRPC» и оттуда возьмите папку «protobuf» и поместите её внутрь ранее созданной папки google. Получившаяся структура папок выглядит так:
grpc2152/ ├── include/ │ └── google/ │ └── protobuf/ │ └── (содержимое папки protobuf из PLCnext github repo) │ ├── whl_files311/ │ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl │ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl │ ├── generate_googlegrpc.py ├── grpc_test.py └── Readme.txt
- Создайте SSH-сессию к вашему ПЛК, войдите как root-пользователь (su) и получите slim-версию python 3.11. (в этот момент необходимо интернет-соединение для получения образа python)
$ podman pull docker.io/library/python:3.11.10-slim-bookworm
- Запустите и подключитесь к контейнеру (смонтируйте папку grpc2152 как том и второй том (run), необходимый для подключения к gRPC-сокету):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
- После подключения к консоли контейнера перейдите в папку whl_files311 и установите библиотеки grpcio. (интернет-соединение необходимо для зависимостей)
$ cd /grpc2152/whl_files311/ $ pip install *.whl
- Вернитесь в родительскую папку grpc2152 внутри контейнера и выполните python-скрипт «generate_googlegrpc.py» (должны появиться некоторые сообщения -working!-)
$ cd /grpc2152 $ python3 generate_googlegrpc.py
После успешного завершения скрипта должна появиться новая папка (pxc_grpc). Внутри grpc2152 python-сниппеты для grpc теперь находятся там. Теперь вы можете протестировать gRPC-функциональность с примером проекта и скриптом.
Скачайте и запустите проект PLCnext Engineer «TestingGRPC.pcwex» на контроллере.
Протестируйте gRPC-функциональность из консоли контейнера, выполнив скрипт «grpc_test.py». В проекте PLCnext Engineer, обращаясь к переменным в режиме отладки, содержимое переменных должно заполниться значениями из скрипта.
Для AXC F 3152.
Следуйте той же процедуре, что и выше для 2152, но в шаге 5 установите библиотеки напрямую с pypi.org
$ pip install grpcio==1.71.0 $ pip install grpcio-tools==1.71.0
Типы данных и использование сниппетов кода.
Теперь, когда вы хотите использовать gRPC для доступа к переменным, включите папку, где были сгенерированы сниппеты кода, в Python path, используемый вашими скриптами, и импортируйте необходимые классы (строки 6–14 данного файла grpc_test.py).
Помните, что нужно учитывать типы данных, описанные в старом посте, который я упоминал в начале этой статьи.
Примечание:
Блог Makers демонстрирует приложения и пользовательские истории членов сообщества, которые не тестировались и не проверялись Phoenix Contact. Используйте их на свой страх и риск.
Промышленные технологии
- Почему управление производством критически важно для успеха бизнеса
- 5 проверенных стратегий для более экологичной доставки последней мили
- Как правильно чистить и дезинфицировать защитные очки для максимальной защиты
- 13 обязательных квантовых языков программирования и инструментов для 2026 года
- Индивидуальное производство в 2026 году: преимущества, процесс и цифровые решения
- Как строительные компании используют префабрикацию для ускорения проектов
- Ступица для расточки со смещением: повышение точности и качества отверстий
- Ключевые переменные, влияющие на эффективность вихретокового контроля
- Экономия $2,2 трлн в год: как полиуретановые покрытия предотвращают коррозию
- Материалы и конструкция гибких печатных плат: создание надежных высокопроизводительных PCB