OCI コンテナの grpurl を介したローカル gRPC と PLCnext コントロールの対話
これは、gRPC を使用して PLCnext コントロール デバイス上の PLCnext ランタイムと対話するシリーズの最新回です。
シリーズの以前の投稿には次のものが含まれていました。
- grpurl を使用したリモート gRPC
- grpurl を使用してリモート gRPC を保護する
- リフレクションを使用したリモート gRPC
上記の記事では、リモートから PLCnext Control デバイス上の gRPC サーバーにアクセスする方法を示しています。 クライアントデバイス。この投稿ではローカルの例を示します。 gRPC クライアント - つまり、PLCnext Control デバイス上で実行され、同じデバイス上の gRPC サーバーにアクセスする gRPC クライアントです。
ローカルのその他の例 PLCnext Control デバイス上の gRPC クライアントはここにあります:
- C# で PLCnext Control gRPC サーバーのクライアントを作成する方法
- gRPC を使用して、Python スクリプトを PLCnext エンジニア プロジェクトと接続します。
PLCnext Control デバイスには gRPC クライアント ソフトウェアが標準でインストールされていないため、この記事では、Podman と dockerhub からの適切なイメージを使用して、OCI コンテナで gRPC クライアント (この場合は grpcurl) を実行する方法を示します。
前提条件
<オル>インターネット アクセスを備えた適切な PLCnext コントロール デバイス。例:ファームウェア バージョン 2025.0 以降を搭載した AXC F 3152。ファームウェア バージョン 2026.0 以降を搭載した AXC F 1252。現在、この記事で使用されている OCI イメージは、AXC F 2152 などの armv7 ターゲットでは使用できません。
ブラウザで、デバイス上の Web ベース管理 (WBM) サイトを開き、[システム サービス] ページで、GRPC LOCAL SERVER 機能がアクティブになっていることを確認します。
手順:
<オル>管理者ユーザー アカウントを使用して、PLCnext Control デバイス上でセキュア シェル セッションを開きます。
シェル セッションで、次のコマンドを実行します。
podman pull docker.io/fullstorydev/grpcurl:latest-alpine
これにより、grpurl コマンドライン ツールを含む OCI イメージが PLCnext コントロール デバイスにダウンロードされます。
ローカル 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 制御デバイスからボード温度を取得します。
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 には、フエニックス・コンタクトによってテストまたはレビューされていないアプリケーションとコミュニティ メンバーのユーザー ストーリーが表示されます。ご自身の責任で使用してください。
産業技術
- 低温PCB材料
- IMTS 2018:新しい製造技術で記録を更新
- 成長中のチームに加わる有能な人材を求める地元企業の検索
- CNC フライス加工でびびりを減らす方法 – 機械加工の振動を最小限に抑えるためのヒント | CNCLATHING
- 相互インダクタンス
- MEPは航空宇宙部品製造から優位に立つ
- HP マルチ ジェット フュージョンの設計ガイドライン
- カスタム シート メタル パーツ:仕上げの追加
- ウォータージェット切断:持続可能な製造のための環境に優しい、精密動力を備えたソリューション
- 貿易戦争の懸念への対応:シックスシグマ戦略
- デジタルおよびアナログマルチメータを使用して電流を測定する方法は?