Локальное gRPC-взаимодействие с PLCnext Control через grpcurl в OCI-контейнере
Это последняя часть серии об использовании gRPC для взаимодействия с PLCnext Runtime на устройстве PLCnext Control.
Ранние посты в серии включали:
- Удаленный gRPC с использованием grpcurl
- Безопасный удаленный gRPC с использованием grpcurl
- Удаленный gRPC с использованием рефлексии
Статьи, перечисленные выше, показывают, как получить доступ к gRPC-серверу на устройстве PLCnext Control с удаленного клиентского устройства. Этот пост дает пример локального gRPC-клиента — то есть gRPC-клиента, работающего на устройстве PLCnext Control, который обращается к gRPC-серверу на том же устройстве.
Другие примеры локальных gRPC-клиентов на устройствах PLCnext Control можно найти здесь:
- Как создать клиент для gRPC-сервера PLCnext Control на C#
- Использование gRPC для взаимодействия Python-скриптов с проектами PLCnext Engineer.
Поскольку на устройствах PLCnext Control не установлено gRPC-клиентское ПО по умолчанию, эта статья показывает, как запустить gRPC-клиент (в данном случае grpcurl) в OCI-контейнере с помощью Podman и подходящего образа с dockerhub.
Предварительные требования
Подходящее устройство PLCnext Control с доступом в интернет. Примеры: AXC F 3152 с версией прошивки 2025.0 или выше; AXC F 1252 с версией прошивки 2026.0 или выше. В настоящее время OCI-образ, используемый в этой статье, недоступен для целей armv7, таких как AXC F 2152.
В браузере откройте веб-интерфейс управления (WBM) на устройстве и на странице System Services (Системные службы) убедитесь, что функция GRPC LOCAL SERVER активирована.
Процедура:
Откройте безопасную сессию оболочки на устройстве PLCnext Control с использованием учетной записи пользователя admin.
В сессии оболочки выполните следующую команду:
podman pull docker.io/fullstorydev/grpcurl:latest-alpineЭто загружает OCI-образ, содержащий инструмент командной строки grpcurl, на устройство PLCnext Control.
Получите список доступных gRPC-сервисов на локальном устройстве PLCnext Control:
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Ответ:
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(Опционально) Создайте псевдоним для упрощения последующих команд grpcurl:
alias grpcurl="podman run -it --rm -v /run/plcnext/:/run/plcnext/ --userns=keep-id docker.io/fullstorydev/grpcurl:latest-alpine"Получите температуру платы с устройства PLCnext Control:
grpcurl -format json -d '{"identifier":"Status.Board.Temperature.Centigrade"}' --plaintext unix:///run/plcnext/grpc.sock Arp.Device.Interface.Services.Grpc.IDeviceStatusService.GetItemОтвет:
{ "_ReturnValue": { "TypeCode": "CT_Int8", "Int8Value": 46 } }
Примечание:
Блог Makers демонстрирует приложения и пользовательские истории членов сообщества, которые не тестировались и не проверялись Phoenix Contact. Используйте их на свой страх и риск.
Промышленные технологии
- Основные столярные стамески: виды и сфера применения
- Переменные частотные приводы: повышение энергоэффективности — Часть 2
- Столярные соединения: виды, прочность и применение
- Проактивный мониторинг состояния заводского оборудования: предотвращение простоев и повышение надежности
- Топ-5 проверенных советов по обслуживанию электротрансформаторов
- Выбор правильного заполнителя пустот: руководство по лучшим упаковочным решениям
- Высокоскоростная обработка: ключевые преимущества для производства механических деталей
- Повышение эффективности комплектации заказов на складе: проверенные стратегии и инструменты
- Ультразвуковая обработка: Принципы, процесс и ключевые преимущества
- Виртуальная электростанция Tesla: трансформация глобальной энергетической сети