6.12. シリアル通信¶
USBやシリアルポートといったハードウェアは、TF6340をお使いいただくことでPCのCOMポートにPLCから直接アクセスすることが可能です。
シリアルポートデバイスの扱いとライブラリ準備¶
TwinCATでシリアル通信を行うには、次のように3つの方式のデバイスアクセスが可能です。(参考InfoSys)

- PC COMポート
OS側で容易されたシリアルデバイスにアクセスすることができます。
- ELターミナル
EL60xxなどのバスターミナルを通じてEtherCAT経由でシリアル通信する方法です。
- 仮想シリアルポート
PCIに接続されたUARTデバイスではなく、USBシリアルデバイスなど、仮想的に作成されたOS上のシリアルデバイスにアクセスすることができます。
Tip
仮想シリアルポートを作成するためには、TF6340を別途インストールする必要があります。
また、別途PLCライブラリをインストールすることでPLC上のIOデバイスとして取り扱うことができ、いったん、ComBufferという通信データバッファ構造体を経由することで、3つのデバイス方式が違っていても同じPLCプログラムロジックでデータ送受信を行うことができます。
開発手順¶
まずはTwinCATでシリアルポートの受信データにアクセスする物理的なIOを作成します。
この物理IOにアクセスするには、TF6340パッケージを別途インストールしていただく必要があります。パッケージマネージャからTF6340を指定してインストールを実施してください。
インストール後、PLCプロジェクトにライブラリを追加します。
このライブラリには、ComBufferという構造体が用意され、ここに蓄えられたデータをファンクションブロックを使って順次アクセスします。
このサイト例のとおりPcComInData、PcComOutDataをそれぞれ先ほど作成したIOにリンクします。
SerialLineControlというファンクションブロックが、このIOを通じて、RxBufferPcCom、TxBufferPcComという変数のComBuffer構造体にデータを蓄積していきます。
このComBufferを通じて、Send*** や、Receive***というファンクションブロックを使ってバッファに溜まったデータを直列化する、という流れになります。