Interaction gRPC locale avec PLCnext Control via grpcurl dans le conteneur OCI
Il s'agit du dernier volet d'une série sur l'utilisation de gRPC pour interagir avec le runtime PLCnext sur un appareil PLCnext Control.
Les articles précédents de la série incluaient :
- GRPC distant à l'aide de grpcurl
- Sécuriser gRPC distant à l'aide de grpcurl
- GRPC distant à l'aide de la réflexion
Les articles répertoriés ci-dessus montrent comment accéder au serveur gRPC sur un appareil PLCnext Control à partir d'un distant. périphérique client. Cet article donne un exemple de projet local Client gRPC - c'est-à-dire un client gRPC exécuté sur un appareil PLCnext Control, qui accède au serveur gRPC sur le même appareil.
Autres exemples de local Les clients gRPC sur les appareils PLCnext Control peuvent être trouvés ici :
- Comment créer un client pour le serveur gRPC PLCnext Control en C#
- Utilisez gRPC pour interfacer les scripts Python avec les projets PLCnext Engineer.
Puisqu'aucun logiciel client gRPC n'est installé en standard sur les appareils PLCnext Control, cet article montre comment exécuter un client gRPC (dans ce cas, grpcurl) dans un conteneur OCI à l'aide de Podman et d'une image appropriée de Dockerhub.
Prérequis
-
Un appareil PLCnext Control approprié, avec accès à Internet. Exemples :AXC F 3152 avec la version de firmware 2025.0 ou ultérieure ; AXC F 1252 avec la version du micrologiciel 2026.0 ou ultérieure. Actuellement, l'image OCI utilisée dans cet article n'est pas disponible pour les cibles armv7 comme l'AXC F 2152.
-
Dans un navigateur, ouvrez le site Web-based Management (WBM) sur l'appareil et, sur la page Services système, assurez-vous que la fonctionnalité GRPC LOCAL SERVER est activée.
Procédure :
-
Ouvrez une session Secure Shell sur l'appareil PLCnext Control à l'aide du compte utilisateur admin.
-
Dans la session shell, exécutez la commande suivante :
podman pull docker.io/fullstorydev/grpcurl:latest-alpineCela télécharge une image OCI contenant l'outil de ligne de commande grpcurl sur le périphérique PLCnext Control.
-
Répertoriez les services gRPC disponibles sur le périphérique 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 listRéponse :
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 -
(Facultatif) Créez un alias pour simplifier les commandes grpcurl suivantes :
alias grpcurl="podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine" -
Récupérer la température de la carte depuis le dispositif PLCnext Control :
grpcurl -format json -d '{"identifier":"Status.Board.Temperature.Centigrade"}' --plaintext unix:///run/plcnext/grpc.sock Arp.Device.Interface.Services.Grpc.IDeviceStatusService.GetItemRéponse :
{ "_ReturnValue": { "TypeCode": "CT_Int8", "Int8Value": 46 } }
Remarque :
Le Makers Blog présente des applications et des témoignages d'utilisateurs de membres de la communauté qui ne sont ni testés ni examinés par Phoenix Contact. Utilisez-les à vos propres risques.
Technologie industrielle
- Circuit de batterie de secours :un guide complet pour en créer un
- Faites confiance à Camcode pour des services de gestion d'actifs complets et personnalisés
- Choisir le bon matériau pour votre projet d'usinage CNC
- Comment câbler un disjoncteur GFCI ? Câblage GFCI 1, 2, 3 et 4 pôles
- Périphériques quantiques
- Déficit de compétences :pourquoi vous devez développer une main-d'œuvre multigénérationnelle
- Mesure de distance à l'aide d'Arduino et d'un capteur à ultrasons
- Décodage des fiches matières
- Pressions étrangères sur les fabricants d'acier basés aux États-Unis