Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Intégration gRPC transparente : Connexion de scripts Python à des projets PLCnext Engineer

Les informations suivantes servent à la fois de mise à jour et d'extension à cet article de 2022.

L'approche fonctionne de la même manière pour l'AXC F 2152 et l'AXC F 3152, la différence réside dans la façon d'installer les bibliothèques requises.

IMPORTANT : L'approche a été testée et fonctionne pour FW 2024.x et 2025.0

Pour l'AXC F 2152 :

Les bibliothèques grpcio et grpcio-tools doivent être compilées croisées (cross-compiled) hors appareil et installées manuellement. Un aperçu de l'approche que j'utilise pour effectuer la compilation croisée avec QEMU se trouve sur cette entrée de forum.

Les bibliothèques compilées croisées pour Python 3.11, ainsi que le reste des fichiers pour suivre cet article, ont été mis à disposition via ce lien.

Les instructions suivantes vous permettent de créer un conteneur avec Python 3.11 où vous pouvez exécuter les scripts qui utilisent gRPC.

  1. En utilisant WinSCP (ou un autre logiciel permettant d'accéder au système de fichiers de votre contrôleur), créez un dossier dans /opt/plcnext pour la communication gRPC, cet exemple attribuera le nom « grpc2152 » à ce dossier. Dans grpc2152, créez la structure de dossiers suivante.
grpc2152/ ├── include/ │ └── google/ │ └── (dossier vide pour l'instant) │ ├── 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. Téléchargez le dépôt « https://github.com/PLCnext/gRPC » et, à partir de là, prenez le dossier « protobuf » et placez-le dans le dossier google créé précédemment. La structure de dossiers résultante ressemble alors à ceci :
grpc2152/ ├── include/ │ └── google/ │ └── protobuf/ │ └── (contenu du dossier protobuf du dépôt GitHub PLCnext) │ ├── 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. Créez une session SSH vers votre automate, connectez-vous en tant qu'utilisateur root (su) et récupérez la version slim de Python 3.11. (à ce stade, une connexion Internet est nécessaire pour obtenir l'image Python)
$ podman pull docker.io/library/python:3.11.10-slim-bookworm 
  1. Exécutez et attachez-vous au conteneur (liant le dossier grpc2152 comme volume et un second volume (run) nécessaire pour la connexion au socket gRPC) :
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash 
  1. Une fois attaché à la console du conteneur, naviguez vers le dossier whl_files311 et installez les bibliothèques grpcio. (une connexion Internet est nécessaire pour les dépendances)
 $ cd /grpc2152/whl_files311/ $ pip install *.whl 
  1. Revenez au dossier parent grpc2152 dans le conteneur et exécutez le script python « generate_googlegrpc.py » (des messages devraient apparaître -working!-)
 $ cd /grpc2152 $ python3 generate_googlegrpc.py 
  1. Une fois l'exécution du script terminée avec succès, un nouveau dossier devrait être présent (pxc_grpc). Dans grpc2152, les extraits de code Python pour gRPC sont maintenant situés là. Vous pouvez maintenant tester la fonctionnalité gRPC avec le projet d'exemple et le script.

  2. Téléchargez et démarrez le projet PLCnext Engineer « TestingGRPC.pcwex » sur le contrôleur.

  3. Testez la fonctionnalité gRPC depuis la console du conteneur en exécutant le script « grpc_test.py ». Dans le projet PLCnext Engineer, en accédant aux variables en mode débogage, le contenu des variables doit être peuplé avec les valeurs du script.

Pour l'AXC F 3152.

Suivez la même procédure donnée ci-dessus pour le 2152 mais à l'étape 5, installez les bibliothèques directement depuis pypi.org

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

Types de données et utilisation des extraits de code.

Maintenant, chaque fois que vous voulez utiliser gRPC pour accéder aux variables, incluez le dossier où les extraits de code ont été générés dans le chemin Python utilisé par vos scripts et importez les classes nécessaires (lignes 6 à 14 du fichier grpc_test.py donné).

N'oubliez pas de prendre en compte les types de données décrits dans l'ancien article mentionné au début de cet article.

Note :

Le blog Makers présente des applications et des histoires d'utilisateurs de membres de la communauté qui ne sont pas testés ou revus par Phoenix Contact. Utilisez-les à vos propres risques.

Technologie industrielle

  1. Comprendre la rugosité de surface : Facteurs clés et techniques d'amélioration éprouvées
  2. Camcode présente ses étiquettes LDAR innovantes au Symposium ISA sur les émissions fugitives, 17-19 mai 2011
  3. Maîtriser la Panélisation PCB : Guide Étape par Étape pour un Assemblage Efficace
  4. Implémentation de l'Authentification Multi-Facteurs : Pourquoi C'est Essentiel pour la Sécurité Moderne
  5. Séquenceur LED avec timer 555 et compteur 4017 — Division de fréquence et anti-rebond
  6. Conception PCB CMS : directives pour pads de composants standards – Partie 1
  7. Maîtriser les Standards d'Étalonnage : Naviguer les Défis de la Mesure Précise
  8. Top 3 stratégies pour les PME pour réussir leur expansion internationale
  9. La pénurie de main-d'œuvre qualifiée aux États-Unis : causes, impact et solutions