Бесшовная интеграция 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 создайте следующую структуру папок. ол>
- Загрузите репозиторий «https://github.com/PLCnext/gRPC», затем возьмите папку «protobuf» и поместите ее в ранее созданную папку Google. В результате структура папок будет выглядеть следующим образом: ол>
- Создайте сеанс SSH к вашему ПЛК, войдите в систему как пользователь root (su) и получите упрощенную версию Python 3.11. (на этом этапе для получения образа Python необходимо подключение к Интернету) ол>
- Запускаем и прикрепляем к контейнеру (связывая папку grpc2152 как том и второй том (запуск), необходимый для подключения к сокету grpc): ол>
- После подключения к консоли контейнера перейдите в папку whl_files311 и установите библиотеки grpcio. (для зависимостей необходимо подключение к Интернету) ол>
- Вернитесь в родительскую папку grpc2152 внутри контейнера и выполните скрипт Python "generate_googlegrpc.py" (должны появиться некоторые сообщения - работает!-) ол>
grpc2152/
├── include/
│ └── google/
│ └── (empty folder for now)
│
├── 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
grpc2152/
├── include/
│ └── google/
│ └── protobuf/
│ └── (content of the protobuf folder from the 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
$ podman pull docker.io/library/python:3.11.10-slim-bookworm
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
$ cd /grpc2152/whl_files311/
$ pip install *.whl
$ 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, используемый вашими сценариями, и импортируйте необходимые классы (строки с 6 по 14 данного файла grpc_test.py).
Не забудьте учитывать типы данных, описанные в старом сообщении, которое я упоминал в начале этой статьи.
Примечание.
В блоге Makers представлены приложения и пользовательские истории членов сообщества, которые не тестировались и не проверялись Phoenix Contact. Используйте их на свой страх и риск.
Промышленные технологии
- Контрактные производители повышают привлекательность для OEM-производителей, используя IoT для совместного уп…
- BOPIS:революция в розничной торговле, изменившая способ доставки
- Что нужно знать о налоговых вычетах для заемщиков ГЧП
- Использование цифрового маркетинга для развития бизнеса от компаний из списка Fortune 1000
- Транзистор SL100:подробное руководство
- Как сделать чертеж с ЧПУ:Руководство по проектированию станков с ЧПУ, правила, советы и ограничения | CNCLATHING
- Разреженное заполнение и сплошные детали FDM
- Четыре основных промышленного применения меди
- Как выбрать регулятор
- FEMA обеспечивает дополнительные наборы тестов на COVID-19 без использования Закона об оборонном производстве