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

Pseudo TTYを使用したPLCnext PLCへのリモートRS232/RS485接続を容易に実現

このメーカーズブログ記事では、Com ServerがPLCnextプラットフォームにもたらす可能性と利点について説明します。Pseudo TTYを使用したPLCnext PLCへのリモートRS232/RS485接続を容易に実現

導入

Phoenix ContactがPLC用に提供する拡張モジュールには、たとえば以下のようなシリアルアダプターがあります:

すべての拡張モジュールには共通点があります:プロセスデータを介して巡回的にアクセスできます。これにより、リアルタイムアプリケーションからシリアルデバイスと直接やり取りすることが可能です。

しかし、場合によってはこれが望ましくありません。代わりに、既存の(C/C++)ライブラリを再利用したく、リアルタイムコンテキストは必要ありません。しかし、これらのライブラリは通常、COMまたはTTYインターフェースへの直接アクセスを前提としてプログラムされています。

PLCnext ControlでTTYインターフェースを作成するには2つのオプションがあります:

  1. PLCnext Runtime内部から、AXLまたはILシリアルアダプター用のTTYインターフェースを作成する関数(C++/C#)を実装する。
  2. GW Device ServerのようなCOMサーバーデバイスを使用する。

GW Device Serverは、透過的なTCP to Serialインターフェースを提供します。Socatのようなツールを使用すると、シリアル/TCPトラフィックを直接疑似TTYインターフェースに転送できます。GW Device Serverを使用すると、TLS暗号化チャネル経由でリモートロケーションのシリアルデバイスと通信することも可能です。

注記

このチュートリアルでは、PLCがクライアントとして動作し、GW Device Serverへの接続を確立します。
(ただし、PLCのSocatをリスニングオプションに切り替え、GWをクライアントとしてPLCに積極的に接続させることも可能です。)

セットアップ

Pseudo TTYを使用したPLCnext PLCへのリモートRS232/RS485接続を容易に実現

GW Device Serverの設定

GW Device ServerにWebベースド管理で接続します。GW Device ServerのデフォルトIPアドレスは192.168.254.254です。

以下の設定を使用します:

LAN設定 - セキュリティ
シリアル設定

GW Device Serverのテスト

セットアップが正しいかテストするには、まずPLCをGW Device ServerとEthernetで接続します。次に、GW Device Serverの2つのDSUBアダプターを互いに接続します。

Telnetツールを使用してセットアップを迅速にテストできます。このツールを使用すると、PLCからGW Device Serverのポート8000/COM1にデータを送信し、シリアルケーブルを経由してポート8001/COM2に到達し、最終的にPLCで受信できます。

以下のコマンドを使用します:

ssh admin@192.168.1.10
sudo passwd root
su root
ip addr add 192.168.254.10 dev eth0
telnet 192.168.254.254 8000 ## 別のシェルセッションを開く
telnet 192.168.254.254 8001 # メッセージを入力
Pseudo TTYを使用したPLCnext PLCへのリモートRS232/RS485接続を容易に実現

Socatのビルド

Linux OSでSocatを簡単にビルドするには、以下のコマンドを使用します:

mkdir tmp
cd tmp
git clone git://repo.or.cz/socat.git
cd socat
## TODO: SDKの場所に合わせて修正
source /opt/pxc/release/axcf2152/2020/0/environment-setup-cortexa9t2hf-neon-pxc-linux-gnueabi
. /opt/pxc/release/axcf2152/2020/0/site-config-cortexa9t2hf-neon-pxc-linux-gnueabi
mkdir install
autoconf
./configure $CONFIGURE_FLAGS --prefix=$(pwd)/install --enable-openssl-method
make -j2
make install

Socatの展開とインストール

Socatのインストールを展開するには、次のスクリプトを実行します:

cd tmp
mkdir -p deploy
cd deploy
mkdir -p usr
cp -r ../../Daemon/* .
cp -r ../socat/install/* usr/
# パッケージ作成
tar -cf ../socat-binaries.tar .
cd ..
scp socat-binaries.tar admin@192.168.188.41:~
ssh -ttt admin@192.168.188.41 \
"mkdir -p /opt/plcnext/socat-binaries && \
tar -xf /opt/plcnext/socat-binaries.tar -C /opt/plcnext/socat-binaries"

展開後、PLCにSSH接続できます。まず、以下のコマンドを実行してPLCのディレクトリと設定ファイルを準備します:

deploy$ ssh admin@192.168.1.10
admin@192.168.1.10:~$ su root
root@192.168.1.10$ mkdir -p /etc/default/socat
root@192.168.1.10$ touch /etc/default/socat/socat.conf
root@192.168.1.10$ touch /etc/init.d/SocatDaemon

次に、socat.confファイルを修正して、シリアルインターフェースのパラメータをニーズに合わせて設定します。

nano /etc/default/socat/socat.conf

ファイルの内容は以下のようになります。

TARGETIP="192.168.254.254"
TARGETPORT="8000"
TTYNAME="/dev/ttyGWDeviceServer"
OPTIONS="pty,link=$TTYNAME tcp-connect:$TARGETIP:$TARGETPORT,forever,interval=15"
BAUD="9600"
PARITY=""
DATABITS="cs8"
STOPBITS="-cstopb"
FLOWCONTROLL=""

さらにパラメータを変更する必要がある場合は、SocatDaemonファイルも修正する必要があります。TTYパラメータの詳細については、sttyのマニュアルページを参照してください。

次に、Socatデーモンを使用してGW Device Serverに自動的に接続するSocatDaemonファイルを作成します。

注記:

このSocatDaemonファイルは、エラー/切断管理などを含まない例です。ご注意ください。

nano /etc/init.d/SocatDaemon

ファイルの内容は以下の通りです。(クリックで表示/非表示)

すべての設定ファイルが準備できたら、SocatバイナリのセットアップとSocatデーモンの登録に進みます。

chmod +x /etc/init.d/SocatDaemon
cd /opt/plcnext/socat-binaries
chmod +x usr/bin/*
cp -r usr /
update-rc.d -s -v SocatDaemon 99
/etc/init.d/SocatDaemon start

すべてが正しく設定されていれば、ps -e | grep socatのようなコマンドで実行中のデーモンを確認できます。また、cat /var/log/socat.logでSocatログを確認できます。

ターミナルからTTYインターフェースにアクセス

これでTTYインターフェース経由でメッセージを送信できます。

sudo echo "PLC to GW $var" > /dev/GWDeviceServer

疑似TTYを継続的にテストするには、次のようなコマンドを使用できます:

while true; do sleep 5 && sudo echo "PLC to GW $var" >/dev/ttyUSB0 && var=$((var+1)); done

着信トラフィックはcat /dev/GWDeviceServerを実行して表示できます。これで、GW Device Serverに接続されたシリアルデバイスに、あたかもPLCに直接接続されているかのようにアクセスできます。


産業技術

  1. 産業用PLCが可変速ドライブを駆動する
  2. PCBビアテント処理の解説:メリット、プロセス、ベストプラクティス
  3. クラウド監視:リアルタイム資産管理のためのリモート制御システム
  4. モダン産業におけるリモート生産制御の5つの主要メリット
  5. PLCnextデバイスでgrpcurlを用いた安全なリモートgRPCアクセス
  6. SNMPでPLCnext Controlデバイスを最適化:実践ガイド
  7. PLCnextでのクラスタ管理:産業オートメーションにおけるKubernetesの活用
  8. TableauダッシュボードでPLCnextをリアルタイム監視
  9. PLCnextクラウドデータからPower BIダッシュボードを作成
  10. Azure IoT HubのPLCnext ControlデータでリアルタイムGrafanaダッシュボードを作成
  11. JlinkでPLCnext Control上のJava 9アプリを最適化