HOME > ソフテックだより > 第327号(2019年4月3日発行) 技術レポート「FL-netについて」

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

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


ソフテックだより 第327号(2019年4月3日発行)
技術レポート

「FL-netについて」

1. はじめに

私はソフテックに入社して3年目の社員になります。ソフテックでは工場向けのシステム構築などで、フィールドネットワークを利用する機会が多々ありますが、私もその一つであるFL-netに関する案件に携わる機会がありました。
そのため、今回の技術レポートでは、フィールドネットワークの一つであるFL-netについてご紹介させていただきます。

2. FL-netとは

FL-netとは、日本電機工業会(JEMA)によって制定された、コモンメモリシステム(4-1で簡単にご紹介します)を基本とする産業用オープンネットワークです。
FL-netのネットワークには最大254台のノードを接続でき、接続されたノード間にはマスタ/スレーブの区別はありません。また、ネットワークには、任意のタイミングで参加、離脱可能となっています。
ノード間の通信は、UDP/IPのブロードキャストによって、データの送信権であるトークンを受け渡しながら行われます。データの伝送にはコモンメモリを同期するために周期的に行われるサイクリック伝送と、任意のタイミングでデータや要求を送るメッセージ伝送があります。
ここでは、FL-netのネットワークへの参加の流れと、データの伝送についてご紹介します。

3. ネットワークへの参加

FL-netのノードがネットワークに参入するまでの状態遷移を図1に示します

FL-net 状態遷移
図1. FL-net 状態遷移

FL-netのノードは起動すると、初期化要求待ち状態(図1状態遷移図の黄色上側)になります。ノードに初期設定を行うと、ノードは加入トークン検出時間待ち状態(図1状態遷移図の黄色下側)に遷移し、サイクリック伝送が行われているかネットワークを監視します。
サイクリック伝送が行われていない場合、ネットワーク初期状態(図1状態遷移図の左側青で囲った状態)に遷移し、ネットワークの新規確立を行います。サイクリック伝送が行われている場合、途中参加状態(図1状態遷移図の右側赤で囲った状態)に遷移し、ネットワークへの途中参加を行います。
ネットワークへの参加後は、トークンを保持し、データの送信権を得た状態と、トークンを持たず他ノードからのデータを受信する状態を行き来します。(図1状態遷移図の下側緑で囲った状態)
ネットワークへ参加する際の注意点として、ノード番号の重複と、コモンメモリ割り当ての重複があります。
ノード番号が他ノードと重複している場合、ネットワークに参加することができません。この場合、ノード番号を再設定する必要があります。
また、コモンメモリ割り当てが他ノードと重複している場合、ネットワークに参加することは出来ますが、自身の割当領域がなくなり、コモンメモリに設定した自ノードのデータを送信することができません。

3.1 ネットワーク初期状態の場合

ノード起動時に、サイクリック伝送を行っているネットワークが存在しない場合、ネットワークの新規立ち上げを行います。(図1状態遷移図の左側青で囲った状態)
ネットワークの新規立ち上げは以下の順で行われます。

3.1.1 トリガフレームによる、ネットワーク参加待ちノードの同期

ネットワーク初期状態に入ったノードは、一定時間経過後トリガフレームを送信します。

ネットワーク初期状態:トリガフレーム送信
図2. ネットワーク初期状態:トリガフレーム送信

トリガフレームにより、ネットワーク上の初期状態ノードが同期されます。
複数のノードが同時に立ち上がった場合、ノード番号最小のノードがトリガフレームを送信します。
トリガフレームを送信または受信した場合、参加要求フレームの送信を行います。

3.1.2 参加要求フレームの一斉送信

トリガフレームを送信または受信したネットワーク初期状態のノードは、ノード番号によって決まるタイミングにそれぞれ参加要求フレームを送信します。

ネットワーク初期状態:参加要求フレーム送信
図3. ネットワーク初期状態:参加要求フレーム送信

各ノードは受信した参加要求フレームによって、ノード番号の重複、コモンメモリ割り当ての重複がないかチェックを行います。
ノード番号が重複しているノードがなければ、参加要求フレームを送信したノード間でネットワークを確立します。

3.1.3 ネットワークの確立

最小ノード番号のノードがトークンを発行し、サイクリック伝送を開始します。(図1状態遷移図の下側緑で囲った状態)

ネットワーク初期状態:ネットワーク確立
図4. ネットワーク初期状態:ネットワーク確立

3.2 途中参加状態の場合

ノード起動時に、サイクリック伝送を行っているネットワークが存在する場合、ネットワークへの途中参加を行います。(図1状態遷移図の右側赤で囲った状態)
ネットワークへの途中参加は以下の順で行われます。

3.2.1 トークン周回の監視による重複チェック

受信したトークンフレームから、ノード番号、コモンメモリ割り当ての重複がないかチェックを行います。

ネットワーク途中参加状態:トークン周回監視
図5. ネットワーク途中参加状態:トークン周回監視

トークンがネットワークを3周する間チェックを続け、ノード番号の重複がなければ参加要求フレームの送信を行います。

3.2.2 参加要求フレームの送信

トークン周回監視終了後、参加要求フレームを送信します。参加要求フレームの送信は、トークンの周回とは関係なく行われます。

ネットワーク途中参加状態:参加要求フレーム送信
図6. ネットワーク初期状態:参加要求フレーム送信

3.2.3 ネットワークへの参加

参加要求フレームを送信することで、ネットワーク上のノードに存在を通知し、ネットワークに加入します。自ノード宛のトークンが送られるようになり、サイクリック伝送に参加します。(図1状態遷移図の下側緑で囲った状態)

ネットワーク途中参加状態:ネットワーク加入
図7. ネットワーク途中参加状態:ネットワーク加入

4. データの伝送

FL-netのデータの伝送には、コモンメモリを同期するために周期的に行われるサイクリック伝送と、任意のタイミングでデータや要求を送るメッセージ伝送があります。
サイクリック伝送では、コモンメモリのデータを持つサイクリックフレームと、保持しているトークンを次のノードに渡すトークンフレームを送信します。
メッセージ伝送では、任意のデータ、要求を送るメッセージフレームを送信します。
FL-netで用いられるフレームはUDP/IPのブロードキャストによって送信され、ネットワーク上のすべてのノードがデータを受信します。

4.1 サイクリック伝送

FL-netの特徴といえるのが、サイクリック伝送による、コモンメモリと呼ばれる仮想メモリの同期です。
コモンメモリには領域1、領域2の2つの領域があり、各ノードに領域1、2それぞれの領域を割り付けることができます。
サイクリック伝送では、トークンを保持しているノードが自ノードに割り当てられた領域のデータをブロードキャストで送信することで、他ノードとその領域の状態を同期します。
トークンをノード番号の順で周回させることで、各ノードに割り当てられたコモンメモリの状態を、ネットワーク上の全ノードが同期させることができます。

サイクリック伝送
図8. サイクリック伝送

サイクリック伝送は、トークンがネットワーク上に1つ存在することを前提としています。
そのため、トークンが複数存在する場合やトークンが発行されなくなった場合、ネットワーク上のトークンが1つになるように管理が行われます。

4.1.1 トークンが複数存在する場合

トークンが複数存在する場合、トークンを保持しているノードの中でノード番号最小のものが優先されます。トークンを保持しているノードが、自身よりノード番号が小さいノード宛のトークンフレームを受信した場合、自身のトークンを破棄します。

トークン多重化
図9. トークン多重化

4.1.2 トークンが発行されなくなった場合

トークンが発行されなくなった場合、現在トークンを保持しているノードの次にトークンを保持することになっているノードが、新たにトークンを発行します。同じノードが3回続けてトークンを発行しなかった場合、そのノードはネットワークから離脱したとみなされます。

トークン再発行
図10. トークン再発行

ノードがトークンを発行しないという判断は、トークン監視時間と、リフレッシュサイクル許容時間の2つの時間によって行われます。
トークン監視時間は、各ノードに設定される、そのノードがトークンを獲得してから次のノードへトークンを発行するまでの最大時間です。
リフレッシュサイクル許容時間は、メッセージフレームが送信されないでトークンが1周する時間の120%です。
この2つの時間のどちらかがタイムアウトした場合、トークンが発行されないと判断され、トークンの再発行が行われます。

4.2 メッセージ伝送

任意のタイミングで要求やデータを送る機能として、メッセージ伝送があります。
ただし、任意のタイミングと言ってもネットワーク上のノードに送信権があるのはトークンを保持しているときであり、下図の通り、メッセージ伝送はトークン保持時のサイクリック伝送直前に行います。

メッセージフレーム送信
図11. メッセージフレーム送信

5. おわりに

今回はFL-netの仕組みについてご紹介させていただきました。ソフテックでは、FL-netを使用したシステム構築の経験だけでなく、組み込み機器にFL-netプロトコルを実装する開発を行った実績もあります。
JEMAからサンプルソースコード「FL-net Ver.3.0公開用ソースコード」が公開されていますので、そちらを参照していただくとFL-netの仕様、実装方法の把握に役立つと思います。

フィールドネットワークにはさまざまな種類があり、いくつかはこれまでのソフテックだよりで取り上げられております。まだご紹介できていないものもいくつかありますので、また別な機会にご紹介したいと思います。

(A.F.)

[参考URL]
JEMA 一般社団法人日本電機工業会 https://www.jema-net.or.jp/

関連ページへのリンク

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

ページTOPへ