8.3. TwinCATと外部機器と通信するにはどんな方法がありますか?#
各種Ethernetベースのフィールドバス
TwinCATに各種フィールドバスの通信機能ライセンスを追加し、 さまざまなフィールドバスプロトコル経由でPLCの変数を送受信できます。たとえばModbusは仕様上、それぞれ256個のBool変数の入出力、それぞれ256個のWord変数の入出力です。
- ModbusTCP
-
IPCのイーサネットポートを使用してModbus TCPの通信が可能です。サーバ、クライアント両方の役割を担います。この製品はModbus serverと呼ばれるWindowsのサービスプログラムをインストールした上で、ADSを経由してWindows Socketを使って通信を行います。後述の他のフィールドバス対応のTF製品はリアルタイムEthernetドライバを用いますが、こちらはリアルタイムドライバは用いませんので、厳密に通信サイクルタイムを守ることはできません。技術情報
-
- Profinet RT
TF6270 | TwinCAT 3 PROFINET RT Device
IPCがProfinet RTの端末(デバイス)となる機能製品。技術情報
TF6271 | TwinCAT 3 PROFINET RT Controller
IPCがProfinet RTのマスタ(コントローラ)となる機能製品。技術情報
- EtherNet/IP
TF6280 | TwinCAT 3 EtherNet/IP Adapter
IPCがEtherNet/IPの端末(アダプタ)となる機能製品。技術情報
TF6281 | TwinCAT 3 EtherNet/IP Scanar
IPCがEtherNet/IPのマスタ(スキャナ)となる機能製品。技術情報
EtherCATブリッジ
EtherCATのスレーブ機器として、以下のフィールドバスの通信を実現するカプラを用意しています。
- Profinet RT
- Ethernet/IP
EL6652-0010 | EtherNet/IP Adapter
EtherCATのフレーム長の制限により、1つのプロセスデータオブジェクトで送受信可能な最大サイズが1kByteとなります。TF6280/TF6281にはこの制約はありません。技術情報
シリアル通信ベースのプロトコル
-
IPCにシリアルポートがある、またはEtherCATスレーブとしてEL60xxのシリアルポートデバイスを追加してModbus RTUの通信が可能です。Modbus通信は他のマスター・スレーブとは異なり、PLCプログラムで通信を行います。技術情報およびPLCでModbus通信に使用するFunction Blockは下記ページをご覧ください。技術情報
-
ADS通信
ソフトウェアコストを掛けずプログラミングでPLC内の変数にアクセスする方法として、.NETやVC++などの外部プログラムでベッコフ独自のADS通信があります。TwinCATにADS通信のライブラリが付属し、ADS機能は無償です。 ADSはライセンス費用はかかりません。TC1000 TwinCAT 3 ADSはダウンロードエリアから入手して無償で使用できます。特に最大データサイズはありませんが、1kbyte程度の構造体をPLCとADSクライアントアプリ上で定義してそれを送受信すれば1つのメッセージになって効率が上がります。 技術情報に.NETやVC++などのサンプルプログラムがあります。
OPC-UA
TwinCATにOPC-UAサーバー機能を追加し、PLCの変数のうち外部にOPC-UA経由で公開する変数を設定できます。全世界的にはこの方法が主流になっていきます。 こちらも製品と技術情報ページのみお知らせします。技術情報生のソケット通信
Ethernetを使ってTCP/UDPソケット通信機能をお使い頂く事が可能です。5層(セッション層)以上においてオリジナルのプロトコルで通信する場合にご利用ください。よって内部変数やメモリアドレスを指定して通信するのではなく、相互に通信路確立(オープン)や、データ送信、受信などのプログラムを実装する必要があります。ソケット通信を行うためのTwinCAT側の実装には、TF6310とTF6311の二つの製品があります。その違いは、TF6310がADSを通じてWindows側でWinSockを用いて通信しているのに対して、TF6311 がTcCOMリアルタイムタスクでソケット通信している点が異なります。TF6311はWindowsのファイヤウォール機能を使う事ができませんから、隔離されていないネットワークでお使いの場合は、TF6310をご利用いただくことをお勧めします。