Interacción gRPC Local con PLCnext Control mediante grpcurl en Contenedor OCI
Esta es la última entrega de una serie sobre el uso de gRPC para interactuar con el Runtime de PLCnext en un dispositivo PLCnext Control.
Publicaciones anteriores en la serie incluyeron:
- gRPC remoto usando grpcurl
- gRPC remoto seguro usando grpcurl
- gRPC remoto usando reflexión
Los artículos listados arriba muestran cómo acceder al servidor gRPC en un dispositivo PLCnext Control desde un dispositivo cliente remoto. Esta publicación da un ejemplo de un cliente gRPC local, es decir, un cliente gRPC que se ejecuta en un dispositivo PLCnext Control, que accede al servidor gRPC en el mismo dispositivo.
Otros ejemplos de clientes gRPC locales en dispositivos PLCnext Control se pueden encontrar aquí:
- Cómo crear un cliente para el servidor gRPC de PLCnext Control en C#
- Use gRPC para interconectar scripts Python con proyectos PLCnext Engineer.
Dado que no hay software cliente gRPC instalado en dispositivos PLCnext Control como estándar, este artículo muestra cómo ejecutar un cliente gRPC (en este caso, grpcurl) en un contenedor OCI usando Podman y una imagen adecuada de dockerhub.
Requisitos previos
-
Un dispositivo PLCnext Control adecuado, con acceso a internet. Ejemplos: AXC F 3152 con versión de firmware 2025.0 o posterior; AXC F 1252 con versión de firmware 2026.0 o posterior. Actualmente, la imagen OCI usada en este artículo no está disponible para objetivos armv7 como el AXC F 2152.
-
En un navegador, abra el sitio de Gestión Basada en Web (WBM) en el dispositivo y, en la página Servicios del Sistema, asegúrese de que la función SERVIDOR GRPC LOCAL esté activada.
Procedimiento:
-
Abra una sesión de shell seguro en el dispositivo PLCnext Control usando la cuenta de usuario admin.
-
En la sesión de shell, ejecute el siguiente comando:
podman pull docker.io/fullstorydev/grpcurl:latest-alpineEsto descarga una imagen OCI que contiene la herramienta de línea de comandos grpcurl al dispositivo PLCnext Control.
-
Liste los servicios gRPC disponibles en el dispositivo PLCnext Control local:
podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine --plaintext unix:///run/plcnext/grpc.sock listRespuesta:
Arp.Device.Interface.Services.Grpc.IDeviceControlService Arp.Device.Interface.Services.Grpc.IDeviceInfoService Arp.Device.Interface.Services.Grpc.IDeviceSettingsService Arp.Device.Interface.Services.Grpc.IDeviceStatusService Arp.Io.Axioline.Services.Grpc.IAcyclicCommunicationService Arp.Io.Axioline.Services.Grpc.IAxioMasterService Arp.Plc.Gds.Services.Grpc.IDataAccessService Arp.Plc.Gds.Services.Grpc.IForceService Arp.Plc.Gds.Services.Grpc.ISubscriptionService Arp.Services.DataLogger.Services.Grpc.IDataLoggerService2 Arp.Services.NotificationLogger.Services.Grpc.INotificationLoggerService Arp.System.Commons.Services.Io.Grpc.IDirectoryService Arp.System.Commons.Services.Io.Grpc.IFileService Arp.System.Commons.Services.Io.Grpc.IFileSystemInfoService Arp.System.Lm.Services.Grpc.ILicenseStatusService Arp.System.Nm.Services.Grpc.INotificationManagerService Arp.System.Security.Services.Grpc.IAuthenticationService Arp.System.Um.Services.Grpc.IAuthorizationInfoService Arp.System.Um.Services.Grpc.IPasswordAuthenticationService grpc.reflection.v1.ServerReflection grpc.reflection.v1alpha.ServerReflection -
(Opcional) Cree un alias para simplificar comandos grpcurl posteriores:
alias grpcurl="podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine" -
Recupere la temperatura de la placa del dispositivo PLCnext Control:
grpcurl -format json -d '{"identifier":"Status.Board.Temperature.Centigrade"}' --plaintext unix:///run/plcnext/grpc.sock Arp.Device.Interface.Services.Grpc.IDeviceStatusService.GetItemRespuesta:
{ "_ReturnValue": { "TypeCode": "CT_Int8", "Int8Value": 46 } }
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
- ADC Aproximación Sucesiva – Método Más Rápido y Preciso de Conversión Digital-Analógica
- Guía de reapertura COVID-19 para fabricantes: Seguridad, cumplimiento y consejos de producción
- Guía completa del moldeo por inyección: Proceso paso a paso y mejores prácticas
- Router CNC vs Fresadora CNC: Diferencias Clave y Usos
- Dominando las Uniones de Cola de Milano: Técnicas, Herramientas y Consejos para Conexiones Fuertes
- Cómo el content marketing impulsa el crecimiento para fabricantes industriales, OEMs y distribuidores
- Soldadura y Fabricación: Construya una Carrera Gratificante y Lucrativa
- Revolucionando las cadenas de suministro para un futuro resiliente
- Dominando el acabado superficial: su guía completa para piezas metálicas superiores
- Consejos de Expertos para Diseñar y Moldear Piezas de Paredes Finas por Inyección
- Domine la incertidumbre de la cadena de suministro con 3 KPIs esenciales