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
-
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.
-
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:
-
Open een beveiligde shell-sessie op het PLCnext Control-apparaat met behulp van het admin-gebruikersaccount.
-
Voer in de shell-sessie de volgende opdracht uit:
podman pull docker.io/fullstorydev/grpcurl:latest-alpineHiermee wordt een OCI-image met de opdrachtregeltool grpcurl gedownload naar het PLCnext Control-apparaat.
-
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 listReactie:
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 -
(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" -
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.GetItemReactie:
{ "_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
- Hoe Gerber-bestanden te genereren op basis van verschillende PCB-ontwerpsoftware
- De verschillen tussen face-to-face en digitale samenwerking uitpakken
- BJT-transistors:een inleiding tot het ontwerp van lichtgewicht elektronische apparatuur
- Polyurethaan, siliconen en rubber:de voor- en nadelen
- Automatisch schakelschema en bediening van de badkamerlichtschakelaar
- PCB-afwerkingen - onderdompelingstin
- Bewerking versus snijden van metalen buizen voor precisietoepassingen
- Kloof in vaardigheden vs. Perceptiekloof:wat Amerika vindt van uw maakindustrie
- Wat zijn de voordelen van software-interconnectie voor de slimme fabriek?
- Beheersing van nutsinspecties:moderne tactieken voor veiligheid en besparingen
- De verschillen tussen Mexicaanse en Amerikaanse douane-expediteurs