シームレスな gRPC 統合:Python スクリプトを PLCnext エンジニア プロジェクトに接続
以下の情報は、2022 年からのこの投稿の更新と拡張の両方として役立ちます。
このアプローチは AXC F 2152 と AXC F 3152 で同じように機能しますが、違いは必要なライブラリのインストール方法にあります。
重要: このアプローチはテストされ、FW 2024.x および 2025.0 で機能することが確認されています。
AXC F 2152 の場合:
ライブラリ grpcio および grpcio-tools は、デバイスからクロスコンパイルして手動でインストールする必要があります。 QEMU を使用してクロス コンパイルを実行するために私が採用しているアプローチの概要は、このフォーラム エントリにあります。
Python 3.11 のクロスコンパイルされたライブラリは、この投稿に続く残りのファイルとともに、このリンクから入手できます。
次の手順では、gRPC を利用するスクリプトを実行できる Python 3.11 でコンテナを作成できます。
<オル>grpc2152/
├── include/
│ └── google/
│ └── (empty folder for now)
│
├── whl_files311/
│ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl
│ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl
│
├── generate_googlegrpc.py
├── grpc_test.py
└── Readme.txt
<オル> grpc2152/
├── include/
│ └── google/
│ └── protobuf/
│ └── (content of the protobuf folder from the PLCnext github repo)
│
├── whl_files311/
│ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl
│ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl
│
├── generate_googlegrpc.py
├── grpc_test.py
└── Readme.txt
<オル> $ podman pull docker.io/library/python:3.11.10-slim-bookworm
<オル> $ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
<オル> $ cd /grpc2152/whl_files311/
$ pip install *.whl
<オル> $ cd /grpc2152
$ python3 generate_googlegrpc.py
<オル> スクリプトの実行が正常に終了すると、新しいフォルダー (pxc_grpc) が存在するはずです。 grpc2152 内には、grpc の Python スニペットが配置されています。これで、サンプル プロジェクトとスクリプトを使用して gRPC 機能をテストできるようになりました。
PLCnext エンジニア プロジェクト「TestingGRPC.pcwex」をコントローラにダウンロードして開始します。
「grpc_test.py」スクリプトを実行して、コンテナのコンソールから gRPC 機能をテストします。 PLCnext エンジニア プロジェクトでは、デバッグ モードで変数にアクセスし、変数の内容にスクリプトの値を入力する必要があります。
AXC F 3152 の場合。
2152 についても上記と同じ手順に従いますが、ステップ 5 で、ライブラリを pypi.org から直接インストールします。
$ pip install grpcio==1.71.0
$ pip install grpcio-tools==1.71.0
データ型とコード スニペットの利用。
これで、変数にアクセスするために gRPC を使用する場合は、コード スニペットが生成されたフォルダーをスクリプトで使用する Python パスに含め、必要なクラス (指定された grpc_test.py ファイルの 6 行目から 14 行目) をインポートします。
この記事の冒頭で述べた古い投稿で概説されているデータ型を忘れずに考慮してください。
注:
Makers Blog には、フエニックス・コンタクトによってテストまたはレビューされていないアプリケーションとコミュニティ メンバーのユーザー ストーリーが表示されます。ご自身の責任で使用してください。
産業技術
- SRF04を使用した全自動水位コントローラー
- 薄肉射出成形設計のヒントとコツ
- 74LS74:デュアル フリップフロップの包括的なガイド
- クライミング ミルとアップ ミルを区別するのに役立つ記事
- CNC加工の基本、特性|ロックパーツCNC機械加工
- 科学者は、画面をより明るく効率的にするための新しい方法を開発します
- ネガティブエッジトリガーフリップフロップ:基本的な電子知識
- 太陽光発電のDCウォーターポンプを設計する方法は?
- ロールフォーミングまたはプレスブレーキ:次の製造プロジェクトに最適なのはどれですか?
- 製造業が製造物責任保険を必要とする理由
- 小さな部品と精密機械加工:工具と技術に関する専門家からのアドバイス