Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Naadloze gRPC-integratie:verbind Python-scripts met PLCnext Engineer-projecten

De volgende informatie dient zowel als update als als uitbreiding op dit bericht uit 2022.

De aanpak werkt hetzelfde voor de AXC F 2152 en de AXC F 3152, het verschil zit hem in de manier waarop de vereiste bibliotheken moeten worden geïnstalleerd.

BELANGRIJK: De aanpak is getest en werkt voor FW 2024.x en 2025.0

Voor de AXC F 2152:

De bibliotheken grpcio en grpcio-tools moeten buiten het apparaat worden gecompileerd en handmatig worden geïnstalleerd. Een overzicht van de aanpak die ik volg om de kruiscompilatie uit te voeren met behulp van QEMU is te vinden op dit forumartikel

De kruisgecompileerde bibliotheken voor Python 3.11, samen met de rest van de bestanden die op dit bericht volgen, zijn beschikbaar gesteld via deze link

Met de volgende instructies kunt u een container maken met Python 3.11 waarin u de scripts kunt uitvoeren die gebruik maken van gRPC.

  1. Maak met behulp van WinSCP (of andere software die toegang geeft tot het bestandssysteem van uw controller) een map in /opt/plcnext die moet worden gebruikt voor de gRPC-communicatie. In dit voorbeeld wordt de naam "grpc2152" aan die map toegewezen. Binnen grpc2152 maakt u de volgende mapstructuur.
grpc2152/
├── include/
│ └── google/
│ └── (empty folder for now) 
│
├── 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. Download de repository "https://github.com/PLCnext/gRPC" en neem van daaruit de map "protobuf" en plaats deze in de eerder gemaakte Google-map. De resulterende mapstructuur ziet er dan als volgt uit:
grpc2152/
├── include/
│ └── google/
│ └── protobuf/ 
│ └── (content of the protobuf folder from the 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. Maak een SSH-sessie op uw PLC, log in als rootgebruiker (su) en download de slanke versie van Python 3.11. (op dit moment is een internetverbinding nodig om de Python-afbeelding te krijgen)
$ podman pull docker.io/library/python:3.11.10-slim-bookworm
  1. Uitvoeren en koppelen aan de container (waarbij de map grpc2152 wordt gekoppeld als een volume en een tweede volume (run) dat nodig is voor de verbinding met de grpc-socket):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
  1. Eenmaal gekoppeld aan de containerconsole, navigeert u naar de map whl_files311 en installeert u de grpcio-bibliotheken. (internetverbinding is noodzakelijk voor de afhankelijkheden)
 $ cd /grpc2152/whl_files311/
 $ pip install *.whl
  1. Ga terug naar de bovenliggende map grpc2152 in de container en voer het Python-script "generate_googlegrpc.py" uit (sommige berichten zouden moeten verschijnen -werkend!-)
 $ cd /grpc2152
 $ python3 generate_googlegrpc.py
  1. Zodra het script met succes is uitgevoerd, zou er een nieuwe map aanwezig moeten zijn (pxc_grpc). Binnen grpc2152 bevinden zich nu de Python-fragmenten voor grpc. Nu kunt u de gRPC-functionaliteit testen met het voorbeeldproject en -script.

  2. Download en start het PLCnext Engineer-project "TestingGRPC.pcwex" op de besturing.

  3. Test de gRPC-functionaliteit vanaf de console van de container door het script "grpc_test.py" uit te voeren. In het PLCnext Engineer-project moet bij toegang tot de variabelen in de debug-modus de inhoud van de variabelen worden gevuld met de waarden uit het script.

Voor de AXC F 3152.

Volg dezelfde procedure als hierboven voor de 2152, maar installeer in stap 5 de bibliotheken rechtstreeks vanaf pypi.org

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

Gegevenstypen en gebruik maken van de codefragmenten.

Wanneer u nu gebruik wilt maken van gRPC voor toegang tot variabelen, voegt u de map waarin de codefragmenten zijn gegenereerd toe aan het Python-pad dat door uw scripts wordt gebruikt en importeert u de benodigde klassen (regel 6 tot 14 van het gegeven grpc_test.py-bestand).

Vergeet niet om rekening te houden met de gegevenstypen die zijn beschreven in het oude bericht dat ik aan het begin van dit artikel noemde.

Opmerking:

Op de Makers Blog worden toepassingen en gebruikersverhalen van communityleden getoond die niet door Phoenix Contact zijn getest of beoordeeld. Gebruik ze op eigen risico.


Industriële technologie

  1. DVIRC werkt samen met MxD om fabrikanten vooruit te helpen met digitale tools en expertise
  2. VietnamWood 2019:Wereldbeurs voor houtbewerking en CNC-gereedschappen – Ho Chi Minh-stad
  3. Plaatwerkproductie 101:een basiskennisgids
  4. Bedien Robot draadloos via Bluetooth-commando's Scriptierapport | Diy-project
  5. Innovatie in inkoop:hoe CPO's waarde kunnen leveren
  6. Progressive Die vs. Transfer Die Stamping
  7. 3D-printtechnologieën (deel 2)
  8. Belangrijke overwegingen voor het beheren van door COVID-19 veroorzaakte commerciële eisen
  9. Diodeschakelcircuits
  10. RapidDirect, waardoor uw productideeën werkelijkheid worden.
  11. Kunstmatige neuronen kunnen net zo efficiënt zijn als het menselijk brein