OCIコンテナでgrpcurlを使用したPLCnext ControlへのローカルgRPC通信
これは、PLCnext Controlデバイス上のPLCnext RuntimeとgRPCでやり取りするシリーズの最新記事です。
シリーズの過去の記事:
- grpcurlを使用したリモートgRPC
- grpcurlを使用したセキュアなリモートgRPC
- リフレクションを使用したリモートgRPC
上記の記事では、リモート クライアント デバイスからPLCnext Controlデバイス上のgRPCサーバにアクセスする方法を示しています。この投稿では、ローカル gRPCクライアント、つまりPLCnext Controlデバイス上で実行されるgRPCクライアントが、同じデバイス上のgRPCサーバにアクセスする例を紹介します。
PLCnext Controlデバイス上のローカル gRPCクライアントの他の例:
- C#でPLCnext Control gRPCサーバのクライアントを作成する方法
- gRPCを使用してPythonスクリプトをPLCnext Engineerプロジェクトとインターフェースする
PLCnext Controlデバイスには標準でgRPCクライアント ソフトウェアがインストールされていないため、この記事では、PodmanとDocker Hubから適切なイメージを使用して、gRPCクライアント(この場合はgrpcurl)をOCIコンテナで実行する方法を示します。
前提条件
- インターネットアクセスを備えた適切なPLCnext Controlデバイス。例:ファームウェアバージョン2025.0以降のAXC F 3152、ファームウェアバージョン2026.0以降のAXC F 1252。現在、この記事で使用するOCIイメージは、AXC F 2152のようなarmv7ターゲットでは利用できません。
- ブラウザでデバイスのWebベースド マネジメント(WBM)サイトを開き、[システム サービス]ページでGRPCローカル サーバ機能が有効になっていることを確認します。
手順:
- adminユーザー アカウントを使用して、PLCnext Controlデバイスでセキュア シェル セッションを開きます。
- シェル セッションで次のコマンドを実行します:
podman pull docker.io/fullstorydev/grpcurl:latest-alpine
これにより、grpcurlコマンドライン ツールを含むOCIイメージがPLCnext Controlデバイスにダウンロードされます。
- ローカル PLCnext Controlデバイスで利用可能なgRPCサービスを一覧表示します:
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 Blogは、Phoenix Contactによってテストまたはレビューされていないコミュニティ メンバーのアプリケーションとユーザー ストーリーを紹介しています。自己責任でご利用ください。
産業技術
- 初心者のためのPCB基礎知識:設計・材料・製造コストまで総合ガイド
- ステッピングモーター vs DCモーター vs サーボモーター:主要な違いを徹底解説
- CNC加工におけるコーナーラジアスの影響:精度・コスト・仕上げ品質を最適化
- スーパーバイザー標準作業の習得:リーダーシップ、説明責任、プロセス卓越性の構築
- Android build.prop 徹底チューニング22選:2024年更新版で体験を劇的改善
- 高品質PCB実装にIPC標準が不可欠な理由
- 航空宇宙・防衛業界の多面的リスクを乗り越える
- 複素数の理解:スカラーからフェーザへのAC回路解析
- E3.seriesデータベースチュートリアル:属性、接続等をマスター - ダウンロード&コース付き
- 主要な電気ショック危険と身を守る方法
- 放電加工機(EDM):種類、メリット、デメリット解説