「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
組込みソフトウェア開発とパソコンソフトウェア開発を担当している入社17年目の社員です。
入社してから様々な通信プロトコルに対応したプログラムを担当してきました。
通信相手は、市販の機器、マイコン、パソコン、PLC等です。
通信プロトコルは、メーカーから提供されるプロトコルや弊社で設計するプロトコル等の経験をしました。
メーカーから提供されるプロトコルのひとつにオムロン社製のFINSコマンドがあります。
オムロン社製PLCでFINS(Factory Interface Network Service)コマンドをEthernet上で通信させる場合、CPUユニットの内蔵Ethernet機能を使用することが可能です。
今回は、内蔵Ethernet機能を使用したFINSコマンドについて、ご紹介します。
オムロン社製PLCのCPUユニットの機能のひとつで以下の機能に対応しています。
FINS通信サービスは、TCP/IP、UDP/IP上での使用が可能です。(それぞれFINS/TCP、FINS/UDPと呼びます。)
オムロン社製PLCにFINSコマンドの通信処理やソケットのオープン/クローズのソフト実装は不要です。
本機能により、オムロン社製PLCとCX-Programmer(プログラミング、デバッグ用ソフトウェア)やFINSコマンドに対応したソフトウェアとのオンライン接続が可能です。
FINS(Factory Interface Network Service)コマンドは、オムロンのFAネットワークに共通で使用できるメッセージサービス用のコマンド体系です。
データの送信/受信や、動作モード変更・強制セット/リセット・ファイル操作等の各種制御が可能です。
以下の特長があります。
フレームの種類は、コマンドフレームとレスポンスフレームの2種類あります。
任意のコマンドを発行する場合にコマンドフレームを送信して、通信相手から応答として、レスポンスフレームを受信します。
以下に通信フレーム例を示します。
図1. 通信フレーム例
FINS コマンドには、以下のとおり各種コマンドが用意されています。
実際に使用したPLCでは、内蔵Ethernet機能に含まれるFINS通信サービスを使用しました。
本機能により、例えば、PLCにソフトが入っていない場合でも、FINSコマンドに対応したパソコンソフトウェアを使うことによって、Ethernet経由でPLCのメモリやパラメータの更新が可能です。
パソコンとオムロン社製PLCをEthernetで接続して、TCP/IP上でFINSコマンドを発行するパソコンソフトウェアを開発した事例を紹介します。
本事例では、オムロン社製PLCと接続して、PLCのデータの読み込み/書き込みを行いました。
FINS/TCPは、TCP/IP上で通信を行うプロトコルのため、サーバーとクライアントに分けることができます。
本事例では、PLCがサーバー、パソコンがクライアントです。
以下に開発事例のシステム構成を示します。
図2. システム構成
本事例のパソコンソフトウェアの主な機能は、FINSコマンドの送信とPLCからの応答(実行結果)の表示です。
以下に本事例の通信の流れを示します。
図3. 通信の流れ
本事例は、TCP/IP通信と同様に送受信の前に接続を確立する必要があります。
以下にコネクション開始からコネクション終了までのシーケンスを示します。
図4. 通信シーケンス
パソコンソフトウェアの処理は、コネクション開始処理、コネクション終了処理、コマンドフレーム送信処理、レスポンスフレーム受信処理、FINSコマンド作成処理の大きく5つに分けることができます。
コネクション開始/終了は、ソフトウェア起動/終了時に実行します。
コネクション中の処理の流れは、以下の通りです。
開発中に通信内容をモニタリングする際に、フリーのプロトコルアナライザーとして有名なWiresharkを使用しました。
最新バージョンのWiresharkでは、FINS/TCPのプロトコルに対応しています。
プロトコルに対応していない場合は、通信フレームの先頭からデータを1バイトずつ確認する必要がありますが、今回の場合は、Wiresharkでフレームの項目ごとのモニタリングが可能です。
Wiresharkの活用法については、以下のソフテックだよりで紹介しています。
技術レポート第213号「Wiresharkの活用法 〜長時間モニタリングとデータ解析について〜」
技術レポート第269号「Wiresharkの活用法 その2 〜専用プロトコルを表示させる〜」
技術レポート第335号「Wiresharkの活用法 その3 〜表示フィルタで絞り込む〜」
図5. Wiresharkモニタ画面(FINSコマンド未対応版)
図6. Wiresharkモニタ画面(FINSコマンド対応版)
今回は、オムロン社製PLCの内蔵Ethernet機能を使用したFINSコマンドについて、紹介させていただきました。
開発事例で紹介したシステムをオリジナルのプロトコルで開発した場合、PLC側の通信処理が必要となり、開発ボリュームは大幅に増えていたと思います。
さらに今回は、CPUユニットの内蔵Ethernet機能を使用したため、FINS通信サービスが自動で応答し、PLC側のソフトウェアは不要でした。
そのため、通信処理のデバッグで問題がある場合にパソコン側とPLC側の問題の切り分けが不要となり、パソコン側のデバッグに専念できました。
また、Wiresharkを利用することで通信内容をフレームの項目毎にモニタリングできるので、通信データの解析が簡単に行えました。
今回は、オムロンPLCを利用したFINSプロトコルを紹介しましたが、三菱PLCではMCプロトコルなど、各社プロトコルを準備していますので、弊社でもプロトコルや機能を把握して、お客様により良い提案をしていきたいと思います。
最後までお読みいただき、ありがとうございました。
(T.M.)
関連ページへのリンク
関連するソフテックだより