Lokale gRPC-Interaktion mit PLCnext Control via grpcurl in OCI-Container
Dies ist der neueste Teil einer Serie über die Verwendung von gRPC zur Interaktion mit der PLCnext Runtime auf einem PLCnext Control Gerät.
Frühere Beiträge der Serie umfassten:
- Remote gRPC mit grpcurl
- Sicheres Remote gRPC mit grpcurl
- Remote gRPC mit Reflection
Die oben aufgeführten Artikel zeigen, wie man von einem Remote-Client-Gerät auf den gRPC-Server eines PLCnext Control Geräts zugreift. Dieser Beitrag gibt ein Beispiel für einen lokalen gRPC-Client – also einen gRPC-Client, der auf einem PLCnext Control Gerät läuft und auf den gRPC-Server desselben Geräts zugreift.
Weitere Beispiele für lokale gRPC-Clients auf PLCnext Control Geräten finden Sie hier:
- Erstellung eines Clients für den PLCnext Control gRPC-Server in C#
- Verwendung von gRPC zum Verbinden von Python-Skripten mit PLCnext Engineer Projekten.
Da auf PLCnext Control Geräten standardmäßig keine gRPC-Client-Software installiert ist, zeigt dieser Artikel, wie man einen gRPC-Client (in diesem Fall grpcurl) in einem OCI-Container mit Podman und einem geeigneten Image von Docker Hub ausführt.
Voraussetzungen
Ein geeignetes PLCnext Control Gerät mit Internetzugang. Beispiele: AXC F 3152 mit Firmware-Version 2025.0 oder höher; AXC F 1252 mit Firmware-Version 2026.0 oder höher. Derzeit ist das in diesem Artikel verwendete OCI-Image für armv7-Ziele wie den AXC F 2152 nicht verfügbar.
Öffnen Sie im Browser die webbasierte Management-Oberfläche (WBM) des Geräts und stellen Sie auf der Seite Systemdienste sicher, dass die Funktion GRPC LOCAL SERVER aktiviert ist.
Vorgehensweise:
Öffnen Sie eine sichere Shell-Sitzung auf dem PLCnext Control Gerät mit dem Admin-Benutzerkonto.
Führen Sie in der Shell-Sitzung den folgenden Befehl aus:
podman pull docker.io/fullstorydev/grpcurl:latest-alpineDies lädt ein OCI-Image mit dem grpcurl-Kommandozeilen-Tool auf das PLCnext Control Gerät herunter.
Listen Sie die auf dem lokalen PLCnext Control Gerät verfügbaren gRPC-Dienste auf:
podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine --plaintext unix:///run/plcnext/grpc.sock listAntwort:
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(Optional) Erstellen Sie einen Alias, um nachfolgende grpcurl-Befehle zu vereinfachen:
alias grpcurl="podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine"Rufen Sie die Platinen-Temperatur vom PLCnext Control Gerät ab:
grpcurl -format json -d '{"identifier":"Status.Board.Temperature.Centigrade"}' --plaintext unix:///run/plcnext/grpc.sock Arp.Device.Interface.Services.Grpc.IDeviceStatusService.GetItemAntwort:
{ "_ReturnValue": { "TypeCode": "CT_Int8", "Int8Value": 46 } }
Hinweis:
Der Makers Blog zeigt Anwendungen und Benutzerberichte von Community-Mitgliedern, die nicht von Phoenix Contact getestet oder überprüft wurden. Verwendung auf eigenes Risiko.
Industrietechnik
- Fußgängerbrücken aus Stahlbau planen: Moderner Konstruktionsansatz
- Traditionelle Möbelhändler kämpfen mit wachsenden E-Commerce-Anforderungen
- NJMEP im Fokus: Automatisierung in New Jersey Fertigung im The Knotts Company Podcast
- AC-Spulenkreise verstehen: Blindwiderstand, Phasenverschiebung und Leistungsdynamik
- Top 3 bewährte Strategien für nahtlose MRO-Systemintegration
- Umweltauswirkungen des grenzüberschreitenden E-Commerce bewerten
- KiCad-Grundlagen: Praktischer Leitfaden zum PCB-Design für Einsteiger
- Top CMMS-Features laut Facility Managern: Wichtige Erkenntnisse aus Hippos Umfrage
- DIY Spulengenerator & Alternator – Eigene Stromquelle aus einfachen Mitteln bauen
- Roboterarm meistert Jenga mit Vision & Tast-KI