Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Бесшовная интеграция 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.

  1. Используя WinSCP (или другое программное обеспечение, позволяющее получить доступ к файловой системе вашего контроллера), создайте папку в /opt/plcnext, которая будет использоваться для связи gRPC. В этом примере этой папке будет присвоено имя «grpc2152». В grpc2152 создайте следующую структуру папок.
  2. 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
    
    1. Загрузите репозиторий «https://github.com/PLCnext/gRPC», затем возьмите папку «protobuf» и поместите ее в ранее созданную папку Google. В результате структура папок будет выглядеть следующим образом:
    2. 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
      
      1. Создайте сеанс SSH к вашему ПЛК, войдите в систему как пользователь root (su) и получите упрощенную версию Python 3.11. (на этом этапе для получения образа Python необходимо подключение к Интернету)
      2. $ podman pull docker.io/library/python:3.11.10-slim-bookworm
        
        1. Запускаем и прикрепляем к контейнеру (связывая папку grpc2152 как том и второй том (запуск), необходимый для подключения к сокету grpc):
        2. $ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
          
          1. После подключения к консоли контейнера перейдите в папку whl_files311 и установите библиотеки grpcio. (для зависимостей необходимо подключение к Интернету)
          2.  $ cd /grpc2152/whl_files311/
             $ pip install *.whl
            
            1. Вернитесь в родительскую папку grpc2152 внутри контейнера и выполните скрипт Python "generate_googlegrpc.py" (должны появиться некоторые сообщения - работает!-)
            2.  $ 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. Используйте их на свой страх и риск.


Промышленные технологии

  1. Контрактные производители повышают привлекательность для OEM-производителей, используя IoT для совместного уп…
  2. BOPIS:революция в розничной торговле, изменившая способ доставки
  3. Что нужно знать о налоговых вычетах для заемщиков ГЧП
  4. Использование цифрового маркетинга для развития бизнеса от компаний из списка Fortune 1000
  5. Транзистор SL100:подробное руководство
  6. Как сделать чертеж с ЧПУ:Руководство по проектированию станков с ЧПУ, правила, советы и ограничения | CNCLATHING
  7. Разреженное заполнение и сплошные детали FDM
  8. Четыре основных промышленного применения меди
  9. Как выбрать регулятор
  10. FEMA обеспечивает дополнительные наборы тестов на COVID-19 без использования Закона об оборонном производстве