Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

Nahtlose gRPC-Integration: Python-Skripte mit PLCnext Engineer Projekten verbinden

Die folgenden Informationen dienen sowohl als Update als auch als Erweiterung zu diesem Beitrag aus dem Jahr 2022.

Der Ansatz funktioniert gleich für AXC F 2152 und AXC F 3152; der Unterschied liegt in der Installation der erforderlichen Bibliotheken.

WICHTIG: Der Ansatz wurde für FW 2024.x und 2025.0 getestet und funktioniert.

Für den AXC F 2152:

Die Bibliotheken grpcio und grpcio-tools müssen gerätefremd cross-kompiliert und manuell installiert werden. Eine Übersicht über den Ansatz, den ich für die Cross-Kompilierung mit QEMU verwende, finden Sie in diesem Foreneintrag.

Die cross-kompilierten Bibliotheken für Python 3.11, zusammen mit den restlichen Dateien für diesen Beitrag, wurden über diesen Link verfügbar gemacht.

Die folgenden Anweisungen ermöglichen es Ihnen, einen Container mit Python 3.11 zu erstellen, in dem Sie die Skripte ausführen können, die gRPC nutzen.

  1. Erstellen Sie mit WinSCP (oder anderer Software, die den Zugriff auf das Dateisystem Ihres Controllers ermöglicht) einen Ordner in /opt/plcnext für die gRPC-Kommunikation; dieses Beispiel weist dem Ordner den Namen „grpc2152“ zu. Innerhalb von grpc2152 erstellen Sie die folgende Ordnerstruktur.
grpc2152/ ├── include/ │ └── google/ │ └── (leerer Ordner für jetzt) │ ├── 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. Laden Sie das Repository „https://github.com/PLCnext/gRPC“ herunter und nehmen Sie daraus den Ordner „protobuf“ und platzieren Sie ihn in dem zuvor erstellten google-Ordner. Die resultierende Ordnerstruktur sieht dann so aus:
grpc2152/ ├── include/ │ └── google/ │ └── protobuf/ │ └── (Inhalt des protobuf-Ordners aus dem PLCnext GitHub Repo) │ ├── 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. Erstellen Sie eine SSH-Sitzung zu Ihrer SPS, melden Sie sich als Root-Benutzer (su) an und holen Sie die schlanke Version von Python 3.11 (an dieser Stelle ist eine Internetverbindung erforderlich, um das Python-Image zu erhalten):
$ podman pull docker.io/library/python:3.11.10-slim-bookworm 
  1. Führen Sie den Container aus und hängen Sie sich daran an (Verknüpfen des grpc2152-Ordners als Volume und eines zweiten Volumes (run), das für die Verbindung zum gRPC-Socket notwendig ist):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash 
  1. Sobald Sie an der Container-Konsole angekommen sind, navigieren Sie zum Ordner whl_files311 und installieren Sie die grpcio-Bibliotheken (Internetverbindung für Abhängigkeiten erforderlich).
 $ cd /grpc2152/whl_files311/ $ pip install *.whl 
  1. Gehen Sie zurück zum übergeordneten Ordner grpc2152 innerhalb des Containers und führen Sie das Python-Skript „generate_googlegrpc.py“ aus (einige Meldungen sollten erscheinen -working!-)
 $ cd /grpc2152 $ python3 generate_googlegrpc.py 
  1. Nachdem das Skript erfolgreich ausgeführt wurde, sollte ein neuer Ordner vorhanden sein (pxc_grpc). Innerhalb von grpc2152 befinden sich nun die Python-Snippets für gRPC. Jetzt können Sie die gRPC-Funktionalität mit dem Beispielprojekt und Skript testen.

  2. Laden Sie das PLCnext Engineer Projekt „TestingGRPC.pcwex“ auf den Controller herunter und starten Sie es.

  3. Testen Sie die gRPC-Funktionalität von der Konsole des Containers aus, indem Sie das Skript „grpc_test.py“ ausführen. Im PLCnext Engineer Projekt, beim Zugriff auf die Variablen im Debug-Modus, sollten die Variableninhalte mit den Werten aus dem Skript gefüllt sein.

Für den AXC F 3152.

Führen Sie dieselbe Prozedur wie oben für den 2152 aus, aber in Schritt 5 installieren Sie die Bibliotheken direkt von pypi.org:

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

Datentypen und Verwendung der Code-Snippets.

Wenn Sie gRPC für den Zugriff auf Variablen nutzen möchten, fügen Sie den Ordner, in dem die Code-Snippets generiert wurden, zum Python-Pfad hinzu, der von Ihren Skripten verwendet wird, und importieren Sie die notwendigen Klassen (Zeilen 6 bis 14 der gegebenen grpc_test.py-Datei).

Beachten Sie die Datentypen, die im alten Beitrag, den ich am Anfang dieses Artikels erwähnt habe, beschrieben sind.

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

  1. Flüssigkeitssystem-Lecks erkennen und verhindern: Ein umfassender Leitfaden
  2. Industrial IoT Security: Herausforderungen meistern und robuste Lösungen implementieren
  3. Rohrsysteme meistern: Die drei T's für komplexe Flüssigkeitsnetzwerke
  4. Exportwachstum mit LiteCures innovativen Lasertechnologien vorantreiben
  5. Wassersensor-Schaltung bauen: Schutz vor Wasserschäden (3 Varianten)
  6. Wesentliche Sicherheitsrichtlinien für Metallfertigungsarbeit
  7. 4 wesentliche Sicherheitstipps für Schweißen & Metallbearbeitung am Arbeitsplatz
  8. NC-Bearbeitung verstehen: Definition, Prozess & Hauptvorteile
  9. 9 Hauptvorteile der Pulverbeschichtung für die Metallfertigung
  10. Wettbewerb meistern: Smarte Strategien für Geschäftserfolg