Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Integración gRPC Perfecta: Conecte Scripts Python a Proyectos PLCnext Engineer

La siguiente información sirve tanto como actualización como expansión a esta publicación de 2022.

El enfoque funciona igual para el AXC F 2152 y el AXC F 3152, la diferencia radica en cómo instalar las bibliotecas requeridas.

IMPORTANTE: El enfoque ha sido probado y visto funcionando para FW 2024.x y 2025.0

Para el AXC F 2152:

Las bibliotecas grpcio y grpcio-tools necesitan ser compiladas cruzadamente (cross-compiled) fuera del dispositivo e instaladas manualmente. Una visión general del enfoque que tomo para realizar la compilación cruzada usando QEMU se puede encontrar en esta entrada del foro.

Las bibliotecas compiladas cruzadamente para Python 3.11, junto con el resto de los archivos para seguir esta publicación, han sido puestos a disposición a través de este enlace.

Las siguientes instrucciones le permiten crear un contenedor con Python 3.11 donde puede ejecutar los scripts que hacen uso de gRPC.

  1. Usando WinSCP (u otro software que permita acceder al sistema de archivos de su controlador), cree una carpeta en /opt/plcnext para usarla para la comunicación gRPC, este ejemplo asignará el nombre "grpc2152" a esa carpeta. Dentro de grpc2152, cree la siguiente estructura de carpetas.
grpc2152/
├── include/
│ └── google/
│ └── protobuf/
│ └── (contenido de la carpeta protobuf del repo PLCnext github)
│ ├── 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. Descargue el repositorio "https://github.com/PLCnext/gRPC" y de allí, tome la carpeta "protobuf" y colóquela dentro de la carpeta google creada anteriormente. La estructura de carpetas resultante se ve así:
grpc2152/
├── include/
│ └── google/
│ └── protobuf/
│ └── (contenido de la carpeta protobuf del repo PLCnext github)
│ ├── 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. Cree una sesión SSH a su PLC, inicie sesión como usuario root (su) y obtenga la versión slim de python 3.11. (en este punto, la conexión a internet es necesaria para obtener la imagen de python)
$ podman pull docker.io/library/python:3.11.10-slim-bookworm
  1. Ejecute y adjúntese al contenedor (vinculando la carpeta grpc2152 como volumen y un segundo volumen (run) necesario para la conexión al socket grpc):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
  1. Una vez adjunto a la consola del contenedor, navegue a la carpeta whl_files311 e instale las bibliotecas grpcio. (la conexión a internet es necesaria para las dependencias)

$ cd /grpc2152/whl_files311/
$ pip install *.whl
  1. Vuelva a la carpeta padre grpc2152 dentro del contenedor y ejecute el script de Python "generate_googlegrpc.py" (deberían aparecer algunos mensajes -working!-)

$ cd /grpc2152
$ python3 generate_googlegrpc.py
  1. Una vez que el script ha terminado exitosamente, debería estar presente una nueva carpeta (pxc_grpc). Dentro de grpc2152, los fragmentos de código Python para gRPC ahora están ubicados allí. Ahora puede probar la funcionalidad gRPC con el proyecto de ejemplo y script.

  2. Descargue e inicie el proyecto PLCnext Engineer "TestingGRPC.pcwex" al controlador.

  3. Pruebe la funcionalidad gRPC desde la consola del contenedor ejecutando el script "grpc_test.py". En el proyecto PLCnext Engineer, accediendo a las variables en modo depuración, el contenido de las variables debería poblarse con los valores del script.

Para el AXC F 3152.

Siga el mismo procedimiento dado arriba para el 2152 pero en el paso 5, instale las bibliotecas directamente desde pypi.org


$ pip install grpcio==1.71.0
$ pip install grpcio-tools==1.71.0

Tipos de Datos y uso de los fragmentos de código.

Ahora, cada vez que quiera hacer uso de gRPC para acceder a variables, incluya la carpeta donde se generaron los fragmentos de código en la ruta de Python usada por sus scripts e importe las clases necesarias (líneas 6 a 14 del archivo grpc_test.py dado).

Recuerde considerar los tipos de datos descritos en la publicación anterior que mencioné al principio de este artículo.

Nota:

El Makers Blog muestra aplicaciones e historias de usuarios de miembros de la comunidad que no son probadas ni revisadas por Phoenix Contact. Úselas bajo su propio riesgo.

Tecnología Industrial

  1. Carly Loonstyn: Líder experta en investigación de tecnología avanzada en DVIRC
  2. 8 Causas Comunes de Rendimiento Lento en Computadoras y Soluciones Rápidas
  3. Terminología Esencial de Chorro de Agua para Profesionales
  4. Determinación Precisa del Número de Interruptores para Paneles Residenciales
  5. Arduino al Descubierto: Domina Proyectos DIY con Microcontroladores
  6. Guía Esencial de Motores Servo para Principiantes: Fundamentos y Aplicaciones
  7. Claves de un Taller de Mecanizado de Élite: Análisis de la Encuesta Top Shops 2017
  8. Gestión Integrada de Instalaciones (IFM): Definición, Beneficios y Mejores Prácticas
  9. SCR Desmitificado: Cómo los Rectificadores Controlados de Silicio Impulsan la Electrónica Moderna
  10. Dimensionamiento Preciso de Inductores: Fórmulas de Wheeler para Núcleo Aire y PCB
  11. Avance en IA: análisis de mamografías en 1 segundo detecta riesgo de cáncer de mama mediante densidad de tejido