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

Externe gRPC met behulp van grpcurl

WAARSCHUWING:De procedure beschreven in deze blog maakt gebruik van functies van de PLCnext Runtime die momenteel niet worden ondersteund. Gebruik deze functies op eigen risico en gebruik deze functies zeker niet in productietoepassingen.

Van het gRPCurl github-project:

In recente firmwareversies was het mogelijk om toegang te krijgen tot de gRPC-server op PLCnext Control-apparaten, maar alleen met behulp van gRPC-clients die op het lokale apparaat draaien. Eerdere blogposts van Makers hebben voorbeelden gegeven van gRPC-clients die zijn geschreven in C# en Python.

In toekomstige firmwareversies zal het ook mogelijk zijn om toegang te krijgen tot de gRPC-server op PLCnext Control-apparaten vanaf remote apparaten. In feite is deze functie al opgenomen in firmwareversie 2022.6, maar deze is nog in ontwikkeling en wordt momenteel niet ondersteund. In dit artikel wordt beschreven hoe u deze functie kunt activeren voor test- en ontwikkelingsdoeleinden, met behulp van een open-source gRPC-client genaamd gRPCurl.

Houd er rekening mee dat de gRPC-server NIET momenteel op afstand toegankelijk zijn in productietoepassingen.

Procedure

Op het PLCnext Control-apparaat (met firmware 2022.6)

  • Bewerk het bestand /etc/plcnext/Packages.acf.settings en verander de waarde van de omgevingsvariabele ARP_PACKAGE:Arp.Services.GrpcRemote tot "true"

In de toekomst zal deze instelling worden gemaakt via de pagina Beheer via een webbrowser "Systeemservices".

  • Controleer de inhoud van het bestand /opt/plcnext/config/Services/Grpc/Remote.grpc.config . U zou een waarde van "0.0.0.0:50051" . moeten zien voor het listener-socketadres. Dit betekent dat de gRPC-server op poort 50051 luistert naar berichten van gRPC-clients.

  • Start de PLCnext Runtime opnieuw.

Op het externe apparaat

  • Installeer gRPCurl volgens de instructies op Github.

  • Download de protobuf directory, met daarin de gRPC-servicedefinitiebestanden, uit de PLCnext/gRPC-repository op Github

  • Geef op de opdrachtregel een grpcurl . op commando om de printtemperatuur in het PLCnext Control-apparaat af te lezen:

grpcurl -insecure -import-path Documents/plcnext-grpc/protobuf -proto Device/Interface/IDeviceStatusService.proto -d '{"identifier":"Status.Board.Temperature.Centigrade"}' 192.168.1.10:50051 Arp.Device.Interface.Services.Grpc.IDeviceStatusService/GetItem

... waar -import-path is het pad naar de protobuf-directory en het IP-adres is het adres van het PLCnext Control-apparaat.

Het antwoord moet een JSON-object zijn met de bordtemperatuur in graden Celsius:

{
  "ReturnValue": {
    "TypeCode": "CT_Int8",
    "Int8Value": 43
  }
}

Veelgestelde vragen

Dit is misschien mogelijk, maar grpcurl zou moeten worden gebouwd vanuit de bron voor het doelplatform, en gezien het aantal afhankelijkheden dat waarschijnlijk niet eenvoudig zal zijn.

Voor meer hulp...

Gebruik grpcurl -help voor meer informatie over beschikbare opties.

Voor vragen over de gRPC Server in de PLCnext Runtime kunt u gebruik maken van het PLCnext Community Forum.


Industriële technologie

  1. C# met behulp van
  2. Bewaking op afstand van het weer met Raspberry Pi
  3. IR-afstandsbediening gebruiken met Raspberry Pi zonder LIRC
  4. 5 voordelen van productiecontrole op afstand
  5. Externe gRPC met behulp van grpcurl
  6. Clusterbeheer op PLCnext?
  7. PLCnext Tableau-dashboard
  8. PLCnext Power BI-rapporten
  9. PLCnext Grafana Dashboards
  10. Java-toepassing op PLCnext Control
  11. Installeren van apt(-get) pakketbeheerder op PLCnext