Lokale gRPC-Interaktion mit PLCnext Control über grpcurl im OCI-Container
Dies ist der neueste Teil einer Reihe über die Verwendung von gRPC zur Interaktion mit der PLCnext Runtime auf einem PLCnext-Steuerungsgerät.
Zu den früheren Beiträgen der Serie gehörten:
- Remote-gRPC mit grpcurl
- Remote-gRPC mit grpcurl sichern
- Remote-gRPC mit Reflection
Die oben aufgeführten Artikel zeigen, wie Sie von einer Remote auf den gRPC-Server auf einem PLCnext Control-Gerät zugreifen Client-Gerät. Dieser Beitrag gibt ein Beispiel für ein lokales gRPC-Client – also ein gRPC-Client, der auf einem PLCnext-Steuerungsgerät läuft und auf den gRPC-Server auf demselben Gerät zugreift.
Weitere Beispiele für lokal gRPC-Clients auf PLCnext Control-Geräten finden Sie hier:
- So erstellen Sie einen Client für den PLCnext Control gRPC-Server in C#
- Verwenden Sie gRPC, um Python-Skripte mit PLCnext Engineer-Projekten zu verbinden.
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 passenden Image von Dockerhub ausführt.
Voraussetzungen
-
Ein geeignetes PLCnext-Steuergerä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. Das in diesem Artikel verwendete OCI-Image ist derzeit nicht für armv7-Ziele wie den AXC F 2152 verfügbar.
-
Öffnen Sie in einem Browser die Web-based Management (WBM)-Site auf dem Gerät und stellen Sie auf der Seite „Systemdienste“ sicher, dass die GRPC LOCAL SERVER-Funktion aktiviert ist.
Vorgehensweise:
-
Öffnen Sie eine Secure 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-alpineDadurch wird ein OCI-Image mit dem grpcurl-Befehlszeilentool auf das PLCnext-Steuerungsgerät heruntergeladen.
-
Listen Sie die auf dem lokalen PLCnext-Steuerungsgerä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 Platinentemperatur vom PLCnext-Steuergerä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 User Stories von Community-Mitgliedern, die nicht von Phoenix Contact getestet oder überprüft wurden. Die Nutzung erfolgt auf eigene Gefahr.
Industrietechnik
- Oberschwingungen in Mehrphasenstromsystemen
- Welche Funktion hat das Druckhalteventil in der Kälteanlage?
- Sichere Datenverwaltung mit der Fusion 360-Verwaltungserweiterung
- Was ist die beste Schleifscheibe für meine Anwendung?
- Bedeutung der Planung von Lieferkettenunterbrechungen
- Was ist das Übersetzungsverhältnis? Es ist Formel und Berechnung des Übersetzungsverhältnisses
- Was ist ein Identifikationssystem für Strommasten?
- 3 Regeln für die Analysatorgenauigkeit
- Blechkonstruktion:Tipps und Tricks
- LM324-Schaltungen:Verschiedene Schaltungen, die Sie mit dem LM324 herstellen können