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

Lokale gRPC-interactie met PLCnext Control via grpcurl in OCI Container

Dit is de nieuwste aflevering in een serie over het gebruik van gRPC voor interactie met de PLCnext Runtime op een PLCnext Control-apparaat.

Eerdere berichten in de serie waren onder meer:

  • GRPC op afstand met grpcurl
  • Beveilig gRPC op afstand met grpcurl
  • GRPC op afstand met behulp van reflectie

De hierboven genoemde artikelen laten zien hoe u vanaf een afstandsbediening toegang krijgt tot de gRPC-server op een PLCnext Control-apparaat client-apparaat. Dit bericht geeft een voorbeeld van een lokaal gRPC-client - dat wil zeggen een gRPC-client die draait op een PLCnext Control-apparaat en die toegang heeft tot de gRPC-server op hetzelfde apparaat.

Andere voorbeelden van lokaal gRPC-clients op PLCnext Control-apparaten vindt u hier:

  • Hoe u een client voor de PLCnext Control gRPC-server in C# maakt
  • Gebruik gRPC om Python-scripts te koppelen aan PLCnext Engineer Projects.

Omdat er standaard geen gRPC-clientsoftware op PLCnext Control-apparaten is geïnstalleerd, laat dit artikel zien hoe u een gRPC-client (in dit geval grpcurl) in een OCI-container draait met behulp van Podman en een geschikte image van dockerhub.

Vereisten

  1. Een geschikt PLCnext Control-apparaat, met internettoegang. Voorbeelden:AXC F 3152 met firmwareversie 2025.0 of hoger; AXC F 1252 met firmwareversie 2026.0 of hoger. Momenteel is de OCI-image die in dit artikel wordt gebruikt niet beschikbaar voor armv7-doelen zoals de AXC F 2152.

  2. Open in een browser de webgebaseerde beheersite (WBM) op het apparaat en zorg er op de pagina Systeemservices voor dat de GRPC LOCAL SERVER-functie is geactiveerd.

Procedure:

  1. Open een beveiligde shell-sessie op het PLCnext Control-apparaat met behulp van het admin-gebruikersaccount.

  2. Voer in de shell-sessie de volgende opdracht uit:

     podman pull docker.io/fullstorydev/grpcurl:latest-alpine
    

    Hiermee wordt een OCI-image met de opdrachtregeltool grpcurl gedownload naar het PLCnext Control-apparaat.

  3. Maak een lijst van de gRPC-services die beschikbaar zijn op het lokale PLCnext Control-apparaat:

     podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine --plaintext unix:///run/plcnext/grpc.sock list
    

    Reactie:

    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
    
  4. (Optioneel) Maak een alias om de volgende grpcurl-opdrachten te vereenvoudigen:

     alias grpcurl="podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine" 
    
  5. Haal de printplaattemperatuur op van het PLCnext Control-apparaat:

    grpcurl -format json -d '{"identifier":"Status.Board.Temperature.Centigrade"}' --plaintext unix:///run/plcnext/grpc.sock Arp.Device.Interface.Services.Grpc.IDeviceStatusService.GetItem
    

    Reactie:

    {
     "_ReturnValue": {
     "TypeCode": "CT_Int8",
     "Int8Value": 46
     }
    }
    

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. Hoe Gerber-bestanden te genereren op basis van verschillende PCB-ontwerpsoftware
  2. De verschillen tussen face-to-face en digitale samenwerking uitpakken
  3. BJT-transistors:een inleiding tot het ontwerp van lichtgewicht elektronische apparatuur
  4. Polyurethaan, siliconen en rubber:de voor- en nadelen
  5. Automatisch schakelschema en bediening van de badkamerlichtschakelaar
  6. PCB-afwerkingen - onderdompelingstin
  7. Bewerking versus snijden van metalen buizen voor precisietoepassingen
  8. Kloof in vaardigheden vs. Perceptiekloof:wat Amerika vindt van uw maakindustrie
  9. Wat zijn de voordelen van software-interconnectie voor de slimme fabriek?
  10. Beheersing van nutsinspecties:moderne tactieken voor veiligheid en besparingen
  11. De verschillen tussen Mexicaanse en Amerikaanse douane-expediteurs