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

シームレスな 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 でコンテナを作成できます。

<オル>
  • WinSCP (またはコントローラのファイル システムにアクセスできるその他のソフトウェア) を使用して、gRPC 通信に使用するフォルダーを /opt/plcnext に作成します。この例では、そのフォルダーに「grpc2152」という名前を割り当てます。grpc2152 内に次のフォルダー構造を作成します。
  • 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
    
    <オル>
  • リポジトリ「https://github.com/PLCnext/gRPC」をダウンロードし、そこからフォルダ「protobuf」を取得し、以前に作成した Google フォルダ内に配置します。結果のフォルダ構造は次のようになります。
  • 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
    
    <オル>
  • PLC への SSH セッションを作成し、root ユーザー (su) としてログインし、Python 3.11 のスリム バージョンを入手します。 (この時点で、Python イメージを取得するにはインターネット接続が必要です)
  • $ podman pull docker.io/library/python:3.11.10-slim-bookworm
    
    <オル>
  • 実行してコンテナにアタッチします (フォルダー grpc2152 をボリュームとしてリンクし、grpc ソケットへの接続に必要な 2 番目のボリューム (実行) をリンクします):
  • $ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash
    
    <オル>
  • コンテナ コンソールに接続したら、whl_files311 フォルダに移動し、grpcio ライブラリをインストールします。 (依存関係にはインターネット接続が必要です)
  •  $ cd /grpc2152/whl_files311/
     $ pip install *.whl
    
    <オル>
  • コンテナ内の親フォルダ grpc2152 に戻り、Python スクリプト「generate_googlegrpc.py」を実行します(いくつかのメッセージが「-working!-」と表示されるはずです)
  •  $ 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 には、フエニックス・コンタクトによってテストまたはレビューされていないアプリケーションとコミュニティ メンバーのユーザー ストーリーが表示されます。ご自身の責任で使用してください。


    産業技術

    1. SRF04を使用した全自動水位コントローラー
    2. 薄肉射出成形設計のヒントとコツ
    3. 74LS74:デュアル フリップフロップの包括的なガイド
    4. クライミング ミルとアップ ミルを区別するのに役立つ記事
    5. CNC加工の基本、特性|ロックパーツCNC機械加工
    6. 科学者は、画面をより明るく効率的にするための新しい方法を開発します
    7. ネガティブエッジトリガーフリップフロップ:基本的な電子知識
    8. 太陽光発電のDCウォーターポンプを設計する方法は?
    9. ロールフォーミングまたはプレスブレーキ:次の製造プロジェクトに最適なのはどれですか?
    10. 製造業が製造物責任保険を必要とする理由
    11. 小さな部品と精密機械加工:工具と技術に関する専門家からのアドバイス