はじめに
PLCnext Control は、Phoenix Contact が提供する Linux ベースの次世代 PLC プラットフォームです。
従来の PLC 制御に加えて、Linux OS を搭載している点が大きな特徴で、
IEC 61131-3 言語による制御だけでなく、外部アプリケーションや IT 技術との連携を前提とした設計になっています。
PLCnext Control では、制御プログラムと外部アプリケーションを連携させるために、
REST API、OPC UA、SNMP など、さまざまな API / 通信インターフェースが用意されています。
その中の一つが gRPC(Remote Procedure Call) です。

gRPC は、Protocol Buffers(.proto)で定義されたインターフェースをもとに、
高速かつ型安全な通信を実現する RPC フレームワークです。
PLCnext Control では、この gRPC を用いることで、PLC 内部の変数(GDS: Global Data Space)に対して、
外部プログラムから直接読み書きすることが可能となっています。
本記事では、PLCnext コントローラ AXC F 2152 を対象に、
gRPC を用いたデータアクセスが実際にどのように動作するのかを確認するため、
Python スクリプトを用いた動作検証を行っております。
手順
本記事は、特定の環境における PLCnext Control AXC F 2152 と gRPC(Python)通信の動作検証結果を紹介するものです。
すべての環境での動作を保証するものではありません。
記事内の手順には root 権限での操作やコンテナ操作が含まれます。
実施する場合は、検証環境で内容を十分に理解したうえで行ってください。
