準備・設定#

環境設定とインストール方法#

python環境の構築方法

pip install 'pyads>=3.5.1'

Tip

TwinCAT RT Linuxへの対応はpyadsのバージョン3.5.1以降が必要です。

ADSルータ間の接続設定#

ADSルータをご覧いただき、ADSルーティング設定を行ってください。pyadsのルーティング機能は次の二つの方式をサポートしています。

pyads提供のADSルータ利用

TwinCAT RT Linux以外のLinuxの場合、pyads内包のadslib.soによりルーティングを行います。adslib.soは pip によりビルド時にオブジェクトが生成されます。このため、cmakeg++のビルドツールのインストールがあらかじめ必要となります。TwinCAT RT Linuxであるかどうかを判定する方法は、/usr/bin/TcSystemServiceUmが存在するか否かで判定しています。したがって、Beckhoffのaptリポジトリを設定した上であらかじめ以下のコマンドでビルドツールをインストールしておいてください。

sudo apt install cmake g++
ネイティブADSルータの利用

TwinCAT RT Linuxを含む、Windows、または、TwinCAT / BSDのOSでは、ライブラリパスにBeckhoffが提供する TcAdsDll.dll または TcAdsDll.so が存在するとこのADSルータ機能を利用します。

Tip

OSがLinuxの場合、pyads提供のadslib.soを使うか、Beckhoff製のTcAdsDll.soのどちらを使うかは、次のファイルの有無で判定します。

/usr/bin/TcSystemManagerUm

このファイルがあるとTwinCATがインストールされているものとみなされ、TcAdsDll.soを使用します。
たとえばコンテナなどでADS-over-MQTTを使用してADS通信する場合はネイティブADSルータが必要ですので、リスト 8.4のとおりTwinCATtc31-xar-umのインストールが必要となります。(参考 :TwinCAT Docker イメージの構築)

リスト 8.4 aptでTwinCATのルータ機能をインストールするDockerFileの抜粋#
RUN --mount=type=secret,id=apt \
    apt-get -o "Dir::Etc::netrc=/run/secrets/apt" update \
    && apt-get -o "Dir::Etc::netrc=/run/secrets/apt" install --yes \
    tc31-xar-um \
    && rm -rf /var/lib/apt/lists/*