HOME > ソフテックだより > 第427号(2023年6月7日発行) 技術レポート「FINS/TCP 〜内蔵Ethernet機能の使用〜」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第427号(2023年6月7日発行)
技術レポート

「FINS/TCP 〜内蔵Ethernet機能の使用〜」

1. はじめに

組込みソフトウェア開発とパソコンソフトウェア開発を担当している入社17年目の社員です。
入社してから様々な通信プロトコルに対応したプログラムを担当してきました。
通信相手は、市販の機器、マイコン、パソコン、PLC等です。
通信プロトコルは、メーカーから提供されるプロトコルや弊社で設計するプロトコル等の経験をしました。

メーカーから提供されるプロトコルのひとつにオムロン社製のFINSコマンドがあります。
オムロン社製PLCでFINS(Factory Interface Network Service)コマンドをEthernet上で通信させる場合、CPUユニットの内蔵Ethernet機能を使用することが可能です。
今回は、内蔵Ethernet機能を使用したFINSコマンドについて、ご紹介します。

2. 内蔵Ethernet機能とは

オムロン社製PLCのCPUユニットの機能のひとつで以下の機能に対応しています。

  • TCP/IP、UDP/IP による任意データの送受信(ソケットサービス)
  • SNTPによるオムロン社製PLC 内蔵時計の自動調整(時計情報自動調整機能)
  • FINS による各種コマンドの発行(FINS通信サービス)

FINS通信サービスは、TCP/IP、UDP/IP上での使用が可能です。(それぞれFINS/TCP、FINS/UDPと呼びます。)
オムロン社製PLCにFINSコマンドの通信処理やソケットのオープン/クローズのソフト実装は不要です。
本機能により、オムロン社製PLCとCX-Programmer(プログラミング、デバッグ用ソフトウェア)やFINSコマンドに対応したソフトウェアとのオンライン接続が可能です。

3. FINSコマンドとは

FINS(Factory Interface Network Service)コマンドは、オムロンのFAネットワークに共通で使用できるメッセージサービス用のコマンド体系です。
データの送信/受信や、動作モード変更・強制セット/リセット・ファイル操作等の各種制御が可能です。
以下の特長があります。

  • アプリケーション層に定義され、物理層やデータリンク層に依存しません
    例えば、Ethernetやシリアル通信上で通信が可能です。
  • FINSコマンドに対応していれば、通信相手は、PLCやパソコンなどの機器を問いません。
  • ネットワークの中継機能をサポートしています。
    階層を越えて他のネットワーク上の機器にアクセスできます。

4. 通信フレーム

フレームの種類は、コマンドフレームとレスポンスフレームの2種類あります。
任意のコマンドを発行する場合にコマンドフレームを送信して、通信相手から応答として、レスポンスフレームを受信します。
以下に通信フレーム例を示します。

通信フレーム例
図1. 通信フレーム例

5. FINSコマンドの種類

FINS コマンドには、以下のとおり各種コマンドが用意されています。

  • I/O メモリエリアの読み出し/書き込み
  • パラメータエリアの読み出し/書き込み
  • プログラムエリアの読み出し/書き込み
  • 動作モード変更
  • 機器構成の読み出し
  • CPU ユニットのステータスの読み出し
  • 時間情報のアクセス
  • メッセージの読み出し/解除
  • アクセス権の獲得・開放
  • 異常履歴の読み出し
  • ファイル操作
  • 強制セット/リセット

実際に使用したPLCでは、内蔵Ethernet機能に含まれるFINS通信サービスを使用しました。
本機能により、例えば、PLCにソフトが入っていない場合でも、FINSコマンドに対応したパソコンソフトウェアを使うことによって、Ethernet経由でPLCのメモリやパラメータの更新が可能です。

6. 開発事例

パソコンとオムロン社製PLCをEthernetで接続して、TCP/IP上でFINSコマンドを発行するパソコンソフトウェアを開発した事例を紹介します。
本事例では、オムロン社製PLCと接続して、PLCのデータの読み込み/書き込みを行いました。

6.1 システム構成

FINS/TCPは、TCP/IP上で通信を行うプロトコルのため、サーバーとクライアントに分けることができます。
本事例では、PLCがサーバー、パソコンがクライアントです。
以下に開発事例のシステム構成を示します。

システム構成
図2. システム構成

6.2 通信の流れ

本事例のパソコンソフトウェアの主な機能は、FINSコマンドの送信とPLCからの応答(実行結果)の表示です。
以下に本事例の通信の流れを示します。

通信の流れ
図3. 通信の流れ

6.3 通信シーケンス

本事例は、TCP/IP通信と同様に送受信の前に接続を確立する必要があります。
以下にコネクション開始からコネクション終了までのシーケンスを示します。

通信シーケンス
図4. 通信シーケンス

6.4 処理の流れ

パソコンソフトウェアの処理は、コネクション開始処理、コネクション終了処理、コマンドフレーム送信処理、レスポンスフレーム受信処理、FINSコマンド作成処理の大きく5つに分けることができます。
コネクション開始/終了は、ソフトウェア起動/終了時に実行します。
コネクション中の処理の流れは、以下の通りです。

パソコンソフトウェアは、ボタン操作待ちとなります。
ボタン操作を検出して、FINSコマンド作成処理でPLCへ送信するコマンドフレームを作成します。
作成したデータをコマンドフレーム送信処理でPLCへ送信します。
PLCは、CPUユニットに内蔵されているEthernet機能のひとつのFINS通信サービスにより、コマンドフレームの受信とレスポンスフレームの送信(応答)をします。
(PLC側のソフト実装は、不要です。)
パソコンソフトウェアでPLCからのレスポンスフレームを受信して、結果を画面に表示します。
パソコンソフトウェアは、ボタン操作待ちになります。(@に戻ります。)

6.5 通信電文のモニタリング

開発中に通信内容をモニタリングする際に、フリーのプロトコルアナライザーとして有名なWiresharkを使用しました。
最新バージョンのWiresharkでは、FINS/TCPのプロトコルに対応しています。
プロトコルに対応していない場合は、通信フレームの先頭からデータを1バイトずつ確認する必要がありますが、今回の場合は、Wiresharkでフレームの項目ごとのモニタリングが可能です。
Wiresharkの活用法については、以下のソフテックだよりで紹介しています。
技術レポート第213号「Wiresharkの活用法 〜長時間モニタリングとデータ解析について〜」
技術レポート第269号「Wiresharkの活用法 その2 〜専用プロトコルを表示させる〜」
技術レポート第335号「Wiresharkの活用法 その3 〜表示フィルタで絞り込む〜」

Wiresharkモニタ画面(FINSコマンド未対応版)
図5. Wiresharkモニタ画面(FINSコマンド未対応版)

Wiresharkモニタ画面(FINSコマンド対応版)
図6. Wiresharkモニタ画面(FINSコマンド対応版)

7. おわりに

今回は、オムロン社製PLCの内蔵Ethernet機能を使用したFINSコマンドについて、紹介させていただきました。
開発事例で紹介したシステムをオリジナルのプロトコルで開発した場合、PLC側の通信処理が必要となり、開発ボリュームは大幅に増えていたと思います。
さらに今回は、CPUユニットの内蔵Ethernet機能を使用したため、FINS通信サービスが自動で応答し、PLC側のソフトウェアは不要でした。
そのため、通信処理のデバッグで問題がある場合にパソコン側とPLC側の問題の切り分けが不要となり、パソコン側のデバッグに専念できました。
また、Wiresharkを利用することで通信内容をフレームの項目毎にモニタリングできるので、通信データの解析が簡単に行えました。

今回は、オムロンPLCを利用したFINSプロトコルを紹介しましたが、三菱PLCではMCプロトコルなど、各社プロトコルを準備していますので、弊社でもプロトコルや機能を把握して、お客様により良い提案をしていきたいと思います。

最後までお読みいただき、ありがとうございました。

(T.M.)

[参考文献]
  • ・通信コマンド リファレンスマニュアル (SBCA-304T)
  • ・CPシリーズCP2E CPUユニット ユーザーズマニュアル ソフトウェア編(SBCA-478)

関連ページへのリンク

関連するソフテックだより

ページTOPへ