TF6311によるソケット通信

6.5. TF6311によるソケット通信#

TF6311は、TwinCATのリアルタイムモジュールとして動作するソケット通信プログラムです。他の方法として、TF6310というソケット通信のミドルウェアがあります。こちらはADSを経由してWindows上のWinSockを用いた通信を行うため、Windowsのタスク制御の影響を受けて遅延が生じやすい傾向があります。

対してTF6311は、ファイヤウォール機能などのWindowsのセキュリティフレームワークの恩恵は受けられないものの、リアルタイムEthernetドライバを用い、TwinCATのリアルタイムタスクとしてデータフローを制御するため、高速な通信が可能になっています。

この章では、TF6311を用いたサンプルコードおよび、その使い方について説明します。

参考にするサイトは以下のとおりです。

https://infosys.beckhoff.com/content/1033/tf6311_tc3_tcpudp/index.html?id=9004581143610845071

サンプルコードの説明#

最初にダミーサーバとしてPythonにてバイトデータを交換するシンプルなUDPサーバを用意します。また、TwinCAT側については、以下のサイトで掲載されているサンプルコードをベースにしたクライアントソフトを実装します。この間で相互に通信するデモ環境を構築することを目指します。

https://infosys.beckhoff.com/content/1033/tf6311_tc3_tcpudp/1077365387.html?id=5050344951114154524

詳細は後述しますが、上記サンプルコードはUDPメッセージをそのまま返す、「エコーサーバ」として機能する仕様です。本章ではこれをベースに改造することで、任意の構造体変数に送受信データをマッピングできる仕様とします。