連載
» 2014年05月12日 10時30分 公開

産業用ネットワーク技術解説:いまさら聞けないFL-net入門 (3/4)

[町井和美,MONOist]

データ発信の権利、トークン

 FL-netはトークンパッシング通信制御方式を採用しています。通信の確立は、前述のネットワーク参加機能によってトークンと呼ばれるデータ発信の権利をFL-net上に1つ作ることに始まり、トークンを獲得したノードだけが唯一送信できる権利を持ちます。トークンはノード番号の若いものから順に最高位ノード番号までパスされたのち、再び最も若い番号のノードにパスされるルールになっています。トークンは通信確立中、常に巡回します。

 ノードが自身宛てのトークンを獲得したら必要なデータフレーム送信を行うとともに、後続のノードに宛てたトークンを送信することでトークンを引き継ぎます。

 実際にトークンが乗るトークンフレームはUDPブロードキャストとして配信されるので、全てのノードはそれを監視していて、各ノードは自分以外に何番のノードがいるのか、自ノード直前のノード番号、後続のノード番号、今トークンがどのノードにあるのか、などを常に理解できているということになります。

トークンの仕組み FL-netにおけるトークンの仕組み

ホットプラグ機能に対応

 ノードはネットワーク確立中に着脱できる機能、プラグ&プレイに対応しています。これによってノードの電源のON/OFFや、個別に取り外してメンテナンスすることが可能です。また、ネットワークへの復帰も行えます。

 ノードの離脱は、絶えず全てのノードがトークンフレームを受信している仕組みと、トークンを保有できる最大時間をオーバーしていないか全てのノードが互いに監視し合っていることよって把握しています。最大時間を超えてもトークンフレームが送信されない場合は、次にトークンを獲得するはずのノードがトークンを再発行して通信が継続されます。トークンが発行されないノードに対しても3度まではトークンが届けられますが、それでも回復しない場合、全てのノードは該当ノードが離脱したと判断してネットワークが再構成されます。

 ノードの途中参加は、参加要求フレームを発行して、他のノードに参加を認めてもらう形で実現されます。参加要求フレームだけはトークンを持たなくとも送信できます。参加の過程で、既に確立しているネットワークのフレーム流通を観察してネットワーク構成を理解するという形です。

ノード離脱 ノード離脱からトークン再発行を行う流れ

目的に応じて使い分けられる2種類の通信機能

 FL-netで扱える通信機能には、周回するトークンを獲得するたびにノードごとのメモリ領域を送信し合うことで自動的にシステム全体が同じメモリ内容を維持できる仕組み「サイクリック伝送」と、任意のタイミングで指定ノードへ任意のデータや要求を送るための「メッセージ伝送」の2種類があります。

最大の特長であるサイクリック伝送とコモンメモリ

 サイクリック伝送は、ノードがトークンを獲得する度に送信するサイクリックフレームで成り立ちます。このサイクリックフレームも例外なくUDPブロードキャストです。トークンはいつも規則的に周回するので、いつも決まった時間でサイクリック伝送が行われます。つまりリアルタイム性があるといえます。

 コモンメモリとは、FL-netに接続された全てのノードが共通認識しているメモリブロックのことで、「FL-netのシステムでグローバルな共有メモリ空間」と捉えることができます。ノードはブロードキャストで届くサイクリックフレームごとにメモリエリアの書き換えを繰り返すことでメモリ内容の同一性を保ちます。

 コモンメモリには、ビット単位に扱われるデータに適した「領域1(8192ビット分)」と、ワード単位(16ビット単位)に扱われるデータに適した「領域2(8192ワード分)」の2ブロックがあります。各ノードはコモンメモリ領域1、コモンメモリ領域2内に自身が書き込めるエリアを持つことができます。

 このためノードには、コモンメモリ先頭からのオフセットアドレスと、確保するワードサイズを設定する項目があります。コモンメモリ中の自ノードエリア以外はリードオンリーであることに注意してください。他ノードのデータを参照するのみでデータを公開する必要がないノードは書き込みエリアを持たないように設定することもできます。

 書き込みエリアは他ノードで確保されているエリアと重複してはいけません。FL-netに参加する際、自身が書き込めるエリアと他ノードが確保済のエリアとの重複がチェックされ、重複する場合は参加が許されないからです。コモンメモリと各ノードのエリア割り付けはあらかじめ設計しておく必要があります。

 コモンメモリはサイクリック伝送によって自動的にリフレッシュされるため、通信ロジックをプログラミングすることなく自ノードのデータ公開と、他ノードのデータ参照がいつでも可能となります。これがFL-netの最も特徴的な機能です。

FL-net3 サイクリック伝送とコモンメモリによりホットプラグが可能となる仕組み

50ms/32ノードの応答性能

 各ノードは、コモンメモリを介して他ノードのメモリエリアをいつでも参照できます。32ノードが接続された構成で、それぞれに2Kビット+2Kワードのメモリエリアを持たせた場合では、およそ50ミリ秒でトークンが1周します。これはつまりコモンメモリに存在するデータは最も古いものでも50ミリ秒以内の状態が格納されていることを意味します。ただしトークンの周回時間はノード数を増やすほど比例して伸びることになります。

Copyright © ITmedia, Inc. All Rights Reserved.