工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

シームレスなgRPC統合:PythonスクリプトをPLCnext Engineerプロジェクトに接続

以下の情報は、2022年の投稿に対する更新および拡張です。

このアプローチはAXC F 2152とAXC F 3152で同じように機能します。違いは、必要なライブラリのインストール方法にあります。

重要: このアプローチはFW 2024.xおよび2025.0でテスト済みであり、動作確認されています。

AXC F 2152の場合:

ライブラリgrpcioとgrpcio-toolsをデバイス外でクロスコンパイルし、手動でインストールする必要があります。QEMUを使用したクロスコンパイルのアプローチの概要は、このフォーラム エントリで確認できます。

Python 3.11用のクロスコンパイル済みライブラリは、この投稿をフォローするためのその他のファイルとともに、このリンクで入手可能です。

以下の手順で、Python 3.11を搭載したコンテナを作成し、gRPCを利用するスクリプトを実行できます。

  1. WinSCP(またはコントローラのファイルシステムにアクセスできるその他のソフトウェア)を使用して、/opt/plcnextにgRPC通信用のフォルダを作成します。この例ではそのフォルダに「grpc2152」という名前を割り当てます。grpc2152内に以下のフォルダ構造を作成します。
grpc2152/
├── include/
│ └── google/
│ └── protobuf/
│ └── (PLCnext GitHubリポジトリからprotobufフォルダの内容)
│ ├── 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
  1. リポジトリ「https://github.com/PLCnext/gRPC」をダウンロードし、そこから「protobuf」フォルダを取り出し、先ほど作成したgoogleフォルダ内に配置します。結果として以下のフォルダ構造になります:
grpc2152/
├── include/
│ └── google/
│ └── protobuf/
│ └── (PLCnext GitHubリポジトリからprotobufフォルダの内容)
│ ├── 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
  1. PLCへのSSHセッションを作成し、rootユーザー(su)でログインして、Python 3.11のスリム版を取得します(この時点でインターネット接続が必要です):
$ podman pull docker.io/library/python:3.11.10-slim-bookworm
  1. コンテナを実行してアタッチします(grpc2152フォルダをボリュームとしてリンクし、grpcソケットへの接続に必要な2つ目のボリュームrunもリンク):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
  1. コンテナのコンソールにアタッチしたら、whl_files311フォルダに移動し、grpcioライブラリをインストールします(依存関係のためインターネット接続が必要です):
 $ cd /grpc2152/whl_files311/
 $ pip install *.whl
  1. コンテナ内で親フォルダgrpc2152に戻り、Pythonスクリプト「generate_googlegrpc.py」を実行します(いくつかのメッセージが表示されます -working!-):
 $ cd /grpc2152
 $ python3 generate_googlegrpc.py
  1. スクリプトが正常に完了すると、新しいフォルダ(pxc_grpc)が作成されます。grpc2152内に、gRPC用のPythonスニペットが配置されます。これで、サンプル プロジェクトとスクリプトでgRPC機能をテストできます。
  2. PLCnext Engineerプロジェクト「TestingGRPC.pcwex」をコントローラにダウンロードして開始します。
  3. コンテナのコンソールから「grpc_test.py」スクリプトを実行してgRPC機能をテストします。PLCnext Engineerプロジェクトでデバッグモードで変数にアクセスすると、変数の内容がスクリプトからの値で設定されているはずです。

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は、Phoenix Contactによってテストまたはレビューされていないコミュニティ メンバーのアプリケーションとユーザー ストーリーを紹介しています。自己責任でご利用ください。

産業技術

  1. 成果を出す製造業セールストレーニング:信頼できる実践ノウハウ
  2. 加工プロジェクトを前進させるエンジニアリング専門知識
  3. Brown & Sharpe CMM:CAMとCNCレトロフィットにおける部品検査の向上
  4. 初回ロボット導入を成功させるための実践ガイド
  5. 公差積み上げのマスター:実践ガイド
  6. 電気接地(アース)完全ガイド: 方式、種類、設置基準、部品解説
  7. 産業用流体システム部品の寿命延長:コスト削減につながる実証済み戦略
  8. レギュレーターフローカーブの習得:ドループを最小限に抑え安定圧力を確保する技術
  9. コンデンサバンク容量(µF・kVAR)の正確な計算法:力率改善のための3つの手法
  10. 処方薬配送サービスの拡大:あなたの薬局は準備できていますか?
  11. あなたの購買が語る物語:ブランドが購買習慣をターゲットマーケティングに活用する仕組み(インフォグラフィック)