[go: up one dir, main page]

JP2016005247A - ネットワーク伝送システム、そのマスタノード、スレーブノード - Google Patents

ネットワーク伝送システム、そのマスタノード、スレーブノード Download PDF

Info

Publication number
JP2016005247A
JP2016005247A JP2014126525A JP2014126525A JP2016005247A JP 2016005247 A JP2016005247 A JP 2016005247A JP 2014126525 A JP2014126525 A JP 2014126525A JP 2014126525 A JP2014126525 A JP 2014126525A JP 2016005247 A JP2016005247 A JP 2016005247A
Authority
JP
Japan
Prior art keywords
node
message
band
transmission
message transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014126525A
Other languages
English (en)
Other versions
JP6265058B2 (ja
Inventor
幸輝 湯尾
Yukiteru Yuo
幸輝 湯尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2014126525A priority Critical patent/JP6265058B2/ja
Publication of JP2016005247A publication Critical patent/JP2016005247A/ja
Application granted granted Critical
Publication of JP6265058B2 publication Critical patent/JP6265058B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明は、各ノードがコモンメモリデータを共有するシステムに関する。
ネットワークにおける通信の分類として、ブロードキャスト送信(以下、BC送信)とユニキャスト送信(以下、UC送信)の分類がある。BC送信は、ネットワーク参加局全局にあてて自局データを送信する方法である。UC送信は、自局から特定相手局に向けて1対1で通信する場合に使用される。
BC送信は、同一データを複数局に同時に送る場合にデータ伝送の効率が良いが、全ての局が正しくデータを受信できたかどうかを確認する手段がなく、データ伝送の確実性という意味では課題がある。
一方で、UC送信は、特定相手局に向けてデータ伝送されるため、データ伝送効率はBC送信に比べ劣るが、相手局からの応答をもらうことで送信を完了する手順(プロトコル)を確立すれば、BC送信に比べデータ伝送の確実性は高い。
トークンを用いたコモンメモリ交換とメッセージ通信の併用による通信サイクルの短縮に関しては、特許文献1に開示されている従来例がある。
特許文献1の従来技術では、メッセージの送信機会をネットワークの参加局に均等に割り当てたり、予め決められた割合で送信権を割り当てるなどして、メッセージ送信を管理することで、サイクリック周期を短縮している。しかしながら、メッセージ通信は、本来、突発的に不特定の局から発生するものであり、メッセージ負荷の動的変動に対して効率が悪い方式と言える。
また、例えば、従来のプラント制御用伝送システム等のような産業用ネットワークでは、システムを構成する各機器(各ノード;各局)が、リアルタイム性を保証したうえで相互に大容量のデータ交換を行う必要がある。したがって、例えば各機器に搭載されるアプリケーションによるアクセス要求の発生に応じてイベント的に相互アクセスを行うような場合には、ネットワーク負荷がアプリケーションに依存してしまい、リアルタイム性を保証することができない。
尚、リアルタイム性を保証するとは、例えば後述するTS帯域内で全てのノードのコモンメモリデータ送信処理が完了すると共に、これが後述する定周期Tで繰り返し実行されることである。換言すれば、定周期Tを維持しつつ、全てのノードのコモンメモリが同一且つ最新のデータを保持できるようにすることである。
そこで、従来では、各局に仮想的な共有メモリ(コモンメモリ)を備えて、各局が相互に異なるタイミングで、ネットワーク上の全局へ自局のコモンメモリデータの送信を行う技術(共有メモリ方式と呼ぶ)が存在する。上記コモンメモリデータを受信した各局が、それによって自局のコモンメモリの格納データを更新することにより、リアルタイム性を保証したデータ交換方式を実現している。
また、例えば特許文献2には、各局に任意のタイムスロットが割り当てられ、各局が自己に割り当てられたタイムスロットのタイミングでデータ送信等を行うこと等が開示されている。特許文献2の従来技術では、各ノードの内蔵タイマによる時分割多重アクセス方式と、マスタノードからの同期化フレームによってスレーブノードの内蔵タイマを補正する方式とを併用している。また、特許文献2の手法では、伝送路を、バス又はシリアルケーブルで接続されたネットワークとして構成している。
特開平9−149059号公報 特開2005−159754号公報
ところで、最近では、産業用ネットワークにおいてもイーサネット(Ethernet)(登録商標)の適用が進んでおり、情報系機器との連携も考慮されたコントローラレベルでのネットワークにおいては主流となりつつある。特許文献2の手法を、イーサネットを物理層とした回線へ適用しようとした場合には、以下のような課題がある。
例えば、特許文献2の手法では、物理層をバス或いはシリアルケーブルのカスケードとしている。そのため、ブロードキャスト送信されたデータの受信タイミングは、各局同時或いはほぼ無視できる時間差であることが想定できる。
しかしながら、例えば100BASE−TXや1000BASE−T等のEthernetを伝送路とした場合では、トポロジとしてスター型が採用され、HUB(ハブ)のような中継装置を含めた構成となる。
一般的に、HUBにおいては、フレームデータの中継に際し、ストア&フォワードといわれる中継方式を採用しており、全フレームデータを受信しきらなければ宛先ノードへの送信を行わない。このため、ブロードキャスト送信データの各ノードでの受信タイミング遅延量は、経由するHUBの段数によって変化する。したがって、例えば1000BASE−T等の高速な通信回線を用いて高効率なデータ交換を実現しようとする場合には、上述したような遅延を無視できない。
また、例えば、マスタ局が送信する同期化フレームを各スレーブ局が受信するタイミングが、ばらついた場合には、各スレーブ局のタイマ補正タイミングがばらついてしまい、各局でのデータ送信タイミングの重複(輻輳)が発生してしまう。輻輳によって、データの延着だけでなく、HUB等のバッファ容量等によってはフレームデータの破棄が発生する。これは、産業用ネットワークとしては致命的と成り得ることである。特に、マスタ局からの同期化フレームに対して輻輳が発生した場合には、フレーム破棄が発生しなくとも、同期化フレームの受信タイミングがさらに遅くなるだけでなく、輻輳したフレームのサイズや種類によって遅れ時間が不確定となる。そのため、従来手法では、システム全体でのデータ交換周期が乱れてしまう問題がある。
ここで、本出願人は、先願(WO 2013121568 A1)の発明を提案している。
先願では、高効率なコモンメモリデータ交換手法を実現しているが、コモンメモリデータ交換手法は、予め決められた構造を持つデータの更新を定期的に行うことに向いており、例えば各局において突発的に発生する特定相手局向けのデータ(メッセージ)を扱うことが難しい。すなわち、一般的に、メッセージ通信処理は、1対1のデータ交換として実装され、相手局が送信データを確実に受信したことを確認する為に、相手局が確認応答を返信する。しかしながら、BC送信では、複数局がほぼ同タイミングでデータを受信するため、確認応答が困難である。
上記のことから、メッセージ通信を行うのであれば、UC送信を用い、送信したメッセージに対して確認応答が返信されるような通信方式がふさわしい。尚、確認応答は、肯定応答(ACK;ACKnowledgement)または否定応答(NACK;Negative ACKnowledgement)等となる。
また、メッセージ通信に関して、各々の局で突発的にメッセージ送信要求が発生するので、データの衝突を防ぐため、メッセージ送信権を用いた送信権管理が行われることが一般的である。これに関して、例えばトークン方式の場合、トークンをネットワーク参加局に巡回させて、トークンを取得した局がメッセージの送信を行うことができる。
上記トークン方式では、各トークン周回におけるメッセージ送信要求局の数の多寡に応じて、トークン巡回時間が伸び縮みしてしまうため、時間確定的に通信を行いたい上記コモンメモリデータ交換手法とは相いれない。つまり、トークン巡回時間が変動する為にメッセージ通信に掛かる時間も変動するので、上記コモンメモリデータ交換手法のリアルタイム性を保証できなくなる。
本発明の課題は、特に共有メモリを有するノード間で定周期で共有メモリデータ交換するシステムにおいて、リアルタイム性を保証しつつ輻輳が生じることなくメッセージ通信も行うことができるネットワーク伝送システム等を提供することである。
本発明のネットワーク伝送システムは、マスタノードとスレーブノードを含む複数のノード各々が共有メモリを有し、各ノードが、所定の通信サイクルでネットワークを介して前記共有メモリのデータを相互に送受信するシステムであって、下記の特徴を有する。
前記通信サイクル内に、前記各ノードが自ノードの前記共有メモリのデータを相互に異なるタイミングで送信する帯域であるコモンメモリ帯域と、メッセージ帯域とが含まれる構成とする。
そして、前記スレーブノードは、前記自ノードの共有メモリデータ送信時に、任意の他のノードへのメッセージがある場合には、メッセージ送信要求を付加して送信するメッセージ送信要求手段と、該メッセージ送信要求に対して、前記マスタノードから許可通知があった場合には、前記メッセージ帯域において前記メッセージの送信処理を行うメッセージ送信処理手段とを有する。
また、前記マスタノードは、前記メッセージ送信要求に応じて、該要求を許可するか否かを決定する許可決定手段と、該要求を許可するノードに対して前記許可通知を送信する許可通知手段とを有する。
本発明のネットワーク伝送システムによれば、特に共有メモリを有するノード間で定周期で共有メモリデータ交換するシステムにおいて、リアルタイム性を保証しつつ輻輳が生じることなくメッセージ通信も行うことができる。
本例のネットワーク伝送システムの概略構成例である。 各ノードの各タイマに応じた動作例である。 スレーブノードのサイクルタイマ補正のための処理手順の一例を示す図である。 共有メモリについて示す図である。 先願のシステムのデータ送信動作を示す図である。 本例のシステムのデータ送信動作を示す図(その1)である。 (a)はコモンメモリデータフレーム、(b)は許可フレームのデータ構成例である。 本例のシステムのデータ送信動作を示す図(その2)である。 許可フレームのデータ構成例(その2)である。 本例のシステムのデータ送信動作を示す図(その3)である。 各ノードのタイマ動作とそれに応じたデータ送信タイミングを示す図である。 マスタノードにおける送信タイマ処理のフローチャート図である。 マスタノードにおける受信処理のフローチャート図である。 マスタノードにおける許可フレーム生成処理のフローチャート図である。 スレーブノードにおける送信タイマ処理の処理フローチャート図である。 スレーブノードにおけるメッセージ送信要求に係わる状態遷移図である。 本例のネットワーク伝送システムの機能ブロック図である。 本例のノードの概略ハードウェア構成図である。
以下、図面を参照して本発明の実施の形態について説明する。
尚、以下に説明する1実施形態は、先願(WO 2013121568 A1)をベースにした例であるが、この様な例に限らない。但し、基本的には、定周期でコモンメモリのデータ交換を行うシステムを前提とする。そして、本手法は、この定周期の通信サイクルにおいて、コモンメモリのデータ交換を行う為の帯域に加えて、メッセージ通信を行う為の帯域も設ける。そして、先願はコモンメモリデータ交換の上記リアルタイム性を保証できるものであり、本手法では、これを損なうことなく、メッセージ通信も行えるようにしている。
また、先願では、各ノードが、共有メモリ(コモンメモリ)を備えると共にサイクルタイマ、センドタイマ等を備える構成であったが、以下の1実施形態でも基本的にこの構成を備えるものとする。但し、タイマに関しては、この様な一例に限らない。
また、先願では、各スレーブノードのサイクルタイマを、マスタノードのサイクルタイマと同期させる為の処理も行っており、以下の1実施形態でも基本的に同様の処理を行うものとする。但し、この例に限らない。尚、上記サイクルタイマは、上記通信サイクル(一定周期T)を生成する為のタイマである。
上述したことから、以下に説明する一実施例では、まず、例えば、ネットワークを構成する各ノード(スレーブ局)のサイクルタイマの起動タイミングを、同期化フレーム受信タイミングではなく、マスタ局の同期化フレーム送信タイミングに合わせ込む。つまり、例えば図1のようなシステム構成では、通信路上の各中継装置(例えば、HUB等)でフレームの中継遅延が生じるが、この中継遅延による影響(同期誤差)を最小限とするための同期合わせを行う。これによって、各ノードの通信サイクルの同期化等を高精度に行うことができる。
尚、本説明における“同期”とは、例えば各ノードのタイマのカウンタ動作(起動タイミング;位相等)が合っている状態をいうが、これに限定されるものではない。
図1は、本実施形態におけるネットワーク伝送システムの概略構成の一例を示す図である。
図1に示すネットワーク伝送システム10は、一例として、複数のノード装置11と、1又は複数のHUB(ハブ)12とを有する。なお、ノード装置や中継装置の数や種類、接続方法については、図示の例に限定されるものではない。また、HUB12は、中継装置の一例であり、この例に限るものではない。
また、図1の例では、HUB12は、HUB12−1〜12−5の5台あるものとする。また、ノード装置11は、ノード装置11−1、ノード装置11−2、ノード装置11−3の3台あるものとし、以下、基本的にこれらをノードA、ノードB、ノードCと記すものとする。但し、特に区別しない場合にはノード装置11と記すものとする。
ここで、図1の例では、ノードAをマスタノード(マスタ局)とし、ノードB、ノードCをスレーブノード(スレーブ局)とする。これより、マスタノードA、スレーブノードB、C等と記す場合もあるものとする。
また、図1の例に示すように、ネットワーク伝送システム10の通信路は、各ノード間に中継装置(HUB12)を有するスター型である。各ノード装置11は、通信路を介して相互に接続されている。図示の例では、ノードA及びノードCが同一のHUB12−1に接続されており、ノードBは、5段のHUB12を経由してノードA及びノードCと接続されている。
なお、中継装置は、一例としてHUB12を示すが、この例に限定されるものではなく、例えばルータ、リピータ、光コンバータ等であってもよい。
また、各ノード装置11は、例えばプログラマブルコントローラ(PLC)、PC(Personal Computer)、サーバ、入出力(I/O)モジュール、各種ドライブ装置(例えば、インバータ、サーボ等)等であるが、これらの例に限らない。
ここで、ネットワーク伝送システム10は、上記背景技術で説明した共有メモリ方式が用いられているものとする。よって、各ノードA,B、Cは、図1では図示しない共有メモリ(コモンメモリ)を有している。そして、各ノードは、所定の通信サイクル(後述する定周期T)で、相互に異なるタイミングで、ネットワーク上の全局へ自局の共有メモリデータの送信を行うことを繰り返す。これを受信した各ノード(各局)は、当該受信データを自ノードの共有メモリの該当領域に上書き格納することで、データを更新する。この様にして、リアルタイム性を保証したデータ交換方式を実現している。
尚、各ノードにおいて、任意のアプリケーションの処理実行に伴って、共有メモリにアクセスするが、上記処理によってリアルタイムに最新の更新データにアクセスできることになる。上記アプリケーションは、例えばプラント等の各種機器の制御用のアプリケーションであるが、この例に限らない。
尚、リアルタイム性を保証するとは、上述したように、例えば後述する図5、図6等に示すTS帯域内に、全てのノードのコモンメモリデータ送信処理が完了すると共に、これが定周期Tで繰り返し実行されることである。換言すれば、定周期Tを維持しつつ、全てのノードのコモンメモリが同一且つ最新のデータを保持できるようにすることである。
ここで、図4に、共有メモリについて示す。
図1に示すシステム構成例の場合、全てのノードにおいて、その共有メモリは、ノードA用の記憶領域とノードB用の記憶領域とノードC用の記憶領域とを有する。各ノードが、自己の共有メモリにおいて任意にデータ更新できる記憶領域は、自ノード用の記憶領域のみであり、それ以外の記憶領域については他ノードから送信されてくるデータを、上書き格納するだけである。例えば、ノードAの場合、自己の共有メモリにおいて上記ノードA用の領域に対してのみ任意のデータ更新が行える。これは、例えば上記制御用等のアプリケーションの処理実行に伴って、自ノード用の記憶領域のデータを更新するものである。
そして、ノードAは、通信サイクル毎に所定の送信タイミングになると、自己の共有メモリにおけるノードA用の記憶領域の格納データを、ブロードキャスト送信する。他のノードB、Cは、この送信データを受信すると、これを自己の共有メモリのノードA用の記憶領域に上書き格納する。
この様にして、全てのノードA,B、Cの共有メモリのノードA用の記憶領域には、同じデータが格納された状態とする。これは、ノードB用の記憶領域、ノードC用の記憶領域についても同様であり、これによって全てのノードA,B、Cの共有メモリには同じデータが格納された状態とすることができる。そして、この共有メモリ格納データは、リアルタイムのほぼ最新のデータであると言える。
尚、上記のように各ノード装置11が送信するのは、共有メモリの全データではなく自ノード用の記憶領域の格納データであるが、本説明ではこの点について逐一述べずに、単に共有メモリデータ(コモンメモリデータ)を送信すると記すものとする。
ここで、上記各ノード装置11が上記コモンメモリデータを送信するタイミングが、相互に異なるようにする必要がある。つまり、各局でのデータ送信タイミングの重複(輻輳)が発生しないようにする必要がある。
その為に、本例では上述したように、上記先願と同様に、全てのノードA,B、Cが、同一の時間(T)が設定されたサイクルタイマ(第1のタイマ)や、センドタイマ等を有している。そして、各ノードは、自己のサイクルタイマによって規定される定周期T(通信サイクル)を基準にして動作する。そして、各ノードが、この基準に基づいて自己のセンドタイマ(第2のタイマ)を動作させて、センドタイマのタイマアップ時を自己の上記送信タイミングとする。各局のセンドタイマの設定値が相互に異なるように設定することで、各局のデータ送信タイミングの重複(輻輳)が発生しないようにできるはずである。
しかしながら、実際には、例えばサイクルタイマの位相ズレ等が原因となって、誤った送信タイミングとなってしまう場合がある。その一例を図2に示す。
図2の例では、スレーブノードBのサイクルタイマの位相が、マスタノードAのサイクルタイマとズレており、その為にノードBのコモンメモリデータ送信タイミングが遅れて、ノードAの同期化フレーム送信タイミングと重なっている状態を示している。
以下、図2について説明する。
図2は、各ノードの各タイマに応じた動作例である。
図2は、ノードBが新規にネットワーク伝送システム10に加入した後、未だ先願の手法によるズレ補正を行う前の状態を示している。尚、このとき、スレーブノードCのサイクルタイマは、既にマスタノードAのサイクルタイマと同期化済みであるものとする。従って、図ではノードCのサイクルタイマの動作は示していないが、図示のサイクルタイマ(A)(ノードAのサイクルタイマ)の動作と同じであることになる。
一方で、図示のサイクルタイマ(B)(ノードBのサイクルタイマ)には、サイクルタイマ(A)に対して図示の遅延26が発生している。つまり、この遅延26の分の位相ズレが生じている。尚、この様なサイクルタイマの表記と同様、センドタイマに関しても例えばノードBのセンドタイマはセンドタイマ(B)と図示・表記するものとする。
ここで、マスタノードAは、周期Tの通信サイクル毎に、最初に同期化フレーム21をブロードキャスト送信する。各スレーブノードは、例えば後述するサイクルタイマの位相補正を未だ行っていないときには、この同期化フレーム受信に応じて自己のサイクルタイマをクリア(起動)する。また、自己のサイクルタイマの起動に合わせて自己のセンドタイマをクリア(起動)する。これより、上記遅延26は、ノードAからノードBへ上記同期化フレームが届くまでに掛かる伝送遅延と見做すこともできる。
各ノード装置11では、基本的には、自己のサイクルタイマがタイマアップする毎に直ちに当該サイクルタイマをクリア(起動)すると共に、自己のセンドタイマも併せてクリアする。そして、センドタイマがタイマアップしたときを上記コモンメモリデータ送信タイミングとして、自己の共有メモリの自ノード用の記憶領域の格納データを、通信路上にブロードキャスト送信する。例えばノードAは図示のタイミングで図示のデータ23を送信し、ノードCは図示のタイミングで図示のデータ24を送信する。また、ノードBも図示のタイミングで図示のデータ25を送信するが、これは正常なタイミングでのデータ送信ではない。これについて以下に説明する。
各センドタイマは、相互に異なる時間が設定されており、従って同一タイミングでクリアした場合には、必ず相互に異なるタイミングでタイマアップすることになる。更に、最も長い時間が設定されているセンドタイマを有するノード装置11であっても、そのデータ送信処理がその周期T内に完了するように、予めセンドタイマの時間が設定されているものとする。図示の例では、センドタイマ(B)に最も長い時間が設定されている。
しかしながら、上記のようにサイクルタイマ(B)の位相ズレ(遅延26)があると、センドタイマ(B)のタイマアップタイミングが遅れてしまい、図示のようにデータ送信処理が次の周期Tまで及んでしまう場合もあり得る。この為、図示のように、次の周期Tにおける同期化フレーム21の送信タイミングと重なってしまい、輻輳が発生する。
この様な問題が生じないようにする為に、本手法では、上記先願と同様にして、例えばサイクルタイマ(B)がサイクルタイマ(A)と同期するように、上記位相ズレを修正する。この位相ズレ修正処理については、図3を参照して説明するが、その前にタイマ補正を行う必要性に関して以下に更に説明する。
ここで、一般的なイーサネットのHUBでは、ストア&フォワードといわれるインタフェース方式が採用されている。この場合、送られてきたフレームは、全てをHUB内の受信バッファに蓄え、HUB内部処理(例えば、異常判定や宛先判定等)を行ってから送信される。また、送信先ポートが使用中の場合を想定した受信バッファは、余裕を持ったサイズが確保されているのが普通であり、多少の輻輳であればデータの消失は発生せずに通信を行うことができる。しかしながら、同期化フレームは、その受信タイミングが同期を行ううえでの重要な要素であり、同期化フレームの遅延受信は致命的である。
また、例えばイーサネットでは、QoS(Quality of Service)等によるフレームの優先度制御を行うことができる。しかしながら、図2の例では、すでにノードBからのデータ25が受信状態になっているため、優先度の設定によらず同期化フレーム21はノード装置Cでの受信も遅れてしまい、システム上の各ノードの同期が崩れてしまう。
イーサネットで使用されるHUBは、IPアドレス(Internet Protocol Address)を持っておらず、通常、システム構成ノードからは認識されない。また、HUBは、スター型のトポロジで構築可能なため、システム構成ノード間で何段ものHUBを経由してシステムを構築することが可能であり、またHUBによる遅延時間もメーカや機種等によって異なる場合が多い。そのため、実際には、システムが構成されるまで、マスタノードからスレーブの各ノードへの遅れ時間を設定することは困難であった。
そこで、本例では先願と同様に、マスタノードが自己と各スレーブノード間の伝送遅延時間を実測にて求めて、これを各スレーブノードに通知することで、マスタノードのサイクルタイマと各スレーブノードのサイクルタイマとを同期させることができる。この処理は、例えば各スレーブノードのシステムへの加入時に行う。但し、この例に限らず、例えばシステム起動時や運用中に行うようにしてもよい。
ここで、図3に、スレーブノードのサイクルタイマ補正のための処理手順の一例を示す。尚、これは、上記先願のサイクルタイマ補正手順と略同様と見做しても構わない。
尚、図2では示していないが、図3においては、上記周期Tの通信サイクル内を、図示にTC帯域とTS帯域とに分割しているものと見做している。TC帯域は同期化フレームの送信用の帯域であり、TS帯域は上記共有メモリデータ送信用の帯域である。同期化フレーム送信や返信の処理は、TC帯域内に完了するように設定されていると共に、全てのノードの共有メモリデータ送信処理がTS帯域内に完了するように設定されている。但し、上記の様にサイクルタイマの位相ズレ等が原因で、設定通りに動作しない場合もあり得る。
また、図3に示す矩形の枠はデータフレームを示し、枠の中の文字はデータフレームの種別を示す。つまり、“TC”は上記同期化フレームを意味し、“TS*”は、上記共有メモリデータの送信フレーム(ノードデータと呼ぶものとする)を意味する。尚、“TS*”における*は、送信元ノードを意味し、例えば“TSC”は、ノードCが送信する上記ノードデータを意味する。各ノードA〜Cに対する横線の上側の矩形は送信フレームを示し、下側の矩形は受信フレームを示している。
また、枠内の文字によって各フレームを呼ぶものとする。例えば、枠内に“OK”となるフレームは、OKフレームと呼ぶ。
また、図3において、reqフレーム33は加入要求を示し、OKフレーム34は加入許可を示し、dlyフレーム35は同期化フレームに対する返信を示し、SETフレーム36は遅延時間設定用のフレームを示す。
また、図3は、ノードA,Cによって運用中にノードBが新規加入した場合を示している。これより、図上左側に示すように、ノードCのサイクルタイマ(C)は、既に図示のようにノードAのサイクルタイマ(A)に同期しているが、ノードBのサイクルタイマ(B)は、図示のように未だノードAのサイクルタイマ(A)に同期していない状態となっている。尚、図示の状態では、ノードBは、マスタノードAからの上記同期化フレーム受信タイミングで、自己のサイクルタイマ(B)をクリア(起動)している。この為、上記の通り、TCフレームの伝送遅延があるので、ノードBのサイクルタイマ(B)と、ノードAのサイクルタイマ(A)とには、図示のように位相ズレが生じている。
ここで、新規加入ノードであるノードBは、任意のTS帯域中に、加入要求フレームであるreqフレーム33を、マスタノードであるノードAに対して送信する。ノードAは、加入要求したノードBの加入可否を判断したうえで、加入許可をする場合はOKフレーム34を、同期化フレームTCの送信の際に送信する。
ノードAからOKフレーム34を受け取ったノードBは、次の同期化フレームTC受信時に直ちにマスタ宛に返信フレーム(dlyフレーム35)を送信する。
そして、上記dlyフレーム35を受信したノードAは、例えば、そのときのサイクルタイマのカウント値等を記録する。サイクルタイマのスタート時に同期化フレームが送信されているので、このカウント値は同期化フレーム送信時からdlyフレーム35受信時までの時間を示すことになる。ノードBは、TCフレーム受信時に直ちに上記dlyフレーム35を返信しているので、上記dlyフレーム35の受信時のサイクルタイマ値と同期化フレームTC送信時のサイクルタイマ値(=0)との差分が、ノードA−ノードB間の往復の伝送時間(往復伝送遅延時間)の実測値と見做すことができる。
よって、この往復伝送遅延時間の半分の値が、片道の伝送遅延時間と見做せる。そして、この片道の伝送遅延時間は、上記TCフレームのノードAの送信時からノードB受信時までの時間と見做せ、以ってサイクルタイマの位相ズレ量(図2の例では上記遅延26)と見做せる。尚、以下、“往復”と言わない限りは、伝送遅延時間は、片道分の時間を意味するものとする。
上述したことから、ノードAは、上述した処理によって得られた上記伝送遅延時間を、加入要求したスレーブノード(ノードB)に対して図示のSETフレーム36にて通知する。尚、SETフレーム36は、例えばTCフレームと共に送信する。
ノードBは、SETフレーム36を受信することで得た上記伝送遅延時間によって自己のサイクルタイマ設定値を減算する。すなわち、ノードBは、「T−伝送遅延時間」をサイクルタイマ(B)にセットしてサイクルタイマ(B)を起動する。これによって、例えば図3に示す時間39の分だけタイマアップのタイミングが早まることになり、以ってサイクルタイマ(A)との位相ズレが補正されることになる。これによって、ノードBは、自己のサイクルタイマ(B)を、マスタノードであるノードAのサイクルタイマ(A)と同期させることができる。尚、ノードBは、その後は、サイクルタイマの設定時間をTとして動作させる。
尚、図3の例では、ノードBのサイクルタイマ(B)が、ノードAのサイクルタイマ(A)より遅れていたため、上述した減算処理により同期させたが、これに限定されるものではない。
例えば、ノードBのサイクルタイマ(B)が、ノードAのサイクルタイマ(A)より進んでいた場合には、ノードBは、SETフレーム36で通知された伝送遅延時間を自己のサイクルタイマ設定値に加算する。すなわち、「T+伝送遅延時間」をサイクルタイマ(B)にセットしてサイクルタイマ(B)を起動する。これによって、自己のサイクルタイマ(B)を、マスタノードであるノードAのサイクルタイマ(A)と同期させることができる。
尚、上記サイクルタイマ設定値の減算/加算は、サイクルタイマの本来の設定値(周期T)に対する加算/減算であり、上記のように「T±伝送遅延時間」で表される。但し、これは補正の為の一時的な措置であり、その後は再び周期Tでサイクルタイマを動作させる。
このように、自己のサイクルタイマ(B)の調整を終えたノードBは、システムへの加入が許可されたものとして、TS帯域でデータ送信可能とする。
<システム運用中における同期ずれの検出方法及び修正方法>
次に、システム運用中における同期ズレの検出方法及び修正方法について、具体的に説明する。これは、基本的に、各スレーブノード側で独自に行うことができる。
まず、各スレーブノード側では、上記図3で説明した、加入時にマスタノードAから通知される上記伝送遅延時間を保持しておく。上記のことから、各スレーブノードでは、マスタノードと同期できている状態であれば、自己のサイクルタイマのカウント値が上記伝送遅延時間となったタイミングで上記TCフレームを受信するはずである。つまり、スレーブノードは、マスタノードAと同期できている状態であれば、マスタノードAから送信される同期化フレームTCを、遅延時間分遅れて受信することになる。
上記のことから、例えば、各スレーブノードは、自己のサイクルタイマで同期化フレームTCの受信タイミングを測定して、同期ズレの有無やズレ量を検出する。つまり、TCフレーム受信時のサイクルタイマのカウント値と、上記保持されている伝送遅延時間との差分を求める。差分が‘0’の場合は、正常(同期がとれている)と判定する。但し、この例に限らず、差分の絶対値が所定の閾値未満である場合も、正常(同期がとれている)と判定するようにしてもよい。
上記のことから、上記差分が‘0’ではない場合、あるいは上記差分の絶対値が上記閾値以上である、異常(同期ズレが生じている)と判定する。そして、異常と判定した場合には、上記差分を用いて、上記図3で説明した加入時と同様にして、自己のサイクルタイマの補正を行う。
尚、上記の例に限らず、例えば複数回連続して異常(同期ズレが生じている)と判定された場合に、上記自己のサイクルタイマの補正を行うようにしてもよい。また、この場合における補正量は、例えば上記複数回の上記差分の平均値を用いるようにしてもよいが、この例に限らない。
ここで、図5に、上述した先願のシステムのデータ送信動作を概略的に示す。
図3で示したように、先願のシステムでは、一定の周期時間Tを定め、この周期Tの通信サイクルを、図5に示すように、同期用の帯域であるTC帯域と、コモンメモリのデータ交換用の帯域であるTS帯域とに分割している。
TC帯域では、マスタノードから同期化フレーム41が送信され、これに基づき各スレーブノードが自局のサイクルタイマを調整する。TS帯域中では、各ノードが、自局の送信タイミングでコモンメモリデータフレーム42をブロードキャスト送信する。この送信タイミングは、上述した通り、各局毎に自局のサイクルタイマとセンドタイマに基づいて決定され、基本的には全ての局で相互に異なるタイミングと成るように設定されている。また、上記コモンメモリデータフレーム42は、上述した自己の共有メモリにおける自ノード用の記憶領域の格納データを送信するデータフレームである。
このようにすることで、メッセージ型通信プロトコルで用いられるトークンを排除し、ネットワークの効率的運用を可能としている。
一方、本手法では、図6に示すように、上記周期Tの通信サイクルを、上記TC帯域と上記TS帯域と図示のMSG帯域とに分割している。MSG帯域は、任意のノード間で1対1のメッセージ通信を行う為の帯域である。尚、ここでも、ノードAがマスタノードであり、他のノードB,C等がスレーブノードであるものとする。また、ここでも、図示の矩形がデータフレームを示し、矩形内の文字がフレーム種別または送信元ノードを示すものとする。例えば、図示の「b」は、ノードBが送信元であるデータフレームを意味する。あるいは、例えば図示の「同期」が、上記同期化フレームを意味する。
ここで、MSG帯域の長さは、任意に決めて構わないが、固定的とする必要がある。もし、MSG帯域の長さを、例えばメッセージ数に応じて可変とした場合、それによって定周期Tを維持出来なくなってしまう。つまり、上記リアルタイム性を保証できなくなる。例えば、マスタがトークンを送信し、このトークンがシステムを巡回してマスタに戻ってくるまでを、MSG帯域とする場合、メッセージ数が多ければその分MSG帯域が長くなる。
この為、上記の通りMSG帯域の長さを固定的とする必要があるが、メッセージ送信要求は、突発的に生じる場合が多く、メッセージ数がゼロとなる場合もあれば、メッセージ数が多数となる場合もある。メッセージ数がゼロのときにはMSG帯域が無駄となることになる。特に、MSG帯域の長さを長く設定すると、メッセージ数がゼロのときにはこのMSG帯域が無駄が大きいことになる。
何れにしても、周期Tは、TC帯域+MS帯域+MSG帯域によって決まることになる。そして、TC帯域の長さは、例えば上記往復伝送遅延時間によって決まることになり、TS帯域の長さは、基本的にはシステム全体のコモンメモリデータ量によって決まることになる。そして、例えば周期Tの長さが一定に決まっているのであれば、MSG帯域の長さも、これらTC帯域とTS帯域の長さに応じて固定的に決まることになる。但し、この例に限らず、MSG帯域の長さを任意に決めてよく、これに応じて周期Tの長さが決まるようにしてもよい。
図6に示す例では、MSG帯域の長さは、1つのメッセージだけを送信可能な程度の長さとしている。この例では、任意の通信サイクルにおいて複数のノードでメッセージ送信要求が発生した場合、そのなかで1つの局だけがメッセージを送信出来ることになる。この為、何れか1つの局だけがMSG帯域におけるメッセージ送信権を得るようにする必要がある。
本手法では、その為に、TS帯域における上記コモンメモリデータフレーム42を利用する。すなわち、図6に示すように、スレーブノードは、メッセージ送信が必要な場合、自己のコモンメモリデータフレーム42にメッセージ送信要求51を含めてブロードキャスト送信する。スレーブノードは、例えばフレーム42中にあるメッセージ送信要求の有無を示すフラグ(後述するCTRL66))を、セットすることで、マスタノードへメッセージ送信要求51を出すことができる。図6の例では、ノードBはメッセージ送信要求51を出しているが、ノードCはメッセージ送信要求51を出していない。
尚、マスタノードAは、自局でメッセージ送信要求が発生した場合には、メッセージ送信要求51を出す必要はなく、自局もメッセージ送信を要求するノードの1つとして他の要求ノードと同様に扱うものとする。そして、自局内の処理によって自局にもメッセージ送信許可を与えることができる。図6の例では、マスタノードAでは、自局のメッセージ送信要求は発生していないものとする。
例えば、この様にして、各スレーブノードは、マスタノードに対して、メッセージ送信要求51を通知する。そして、これに対して、マスタノードは、許可/不許可を判定して、これをMSG帯域の初めに図示の許可フレーム52によって各スレーブノードへ通知する。許可されたスレーブノードのみが、当該MSG帯域中にメッセージの送信を行う。この例では、マスタノードはノードBのメッセージ送信を許可すると判定して、これを許可フレーム52によってノードBへ通知する。これより、この通知を受けたノードBが、MSG帯域内で図示のメッセージ53を送信することになる。
尚、マスタノードは、自局のみ許可する場合には、許可フレーム52を送信することなく、MSG帯域において所定のタイミングでメッセージ送信を行うようにしてもよい。
ここで、図7(a)に、本例のコモンメモリデータフレーム42のデータ構成例を示す。
図示の例では、コモンメモリデータフレーム42は、フレーム種別を示すFC61、フレームサイズを表すSIZE62、送信元局番、宛先局番を示すSA63,DA64等と、F_NO65、コントロールビット(CTRL)66、DATA67、FCS68等から成る。
F_NO65は、個別のフレームを識別し、フレーム抜け等の監視を行うためのフレーム番号である。DATA67が、他のノードと共有させる為に送信する自己のコモンメモリの自ノード用領域の格納データ(コモンメモリデータ)である。FCS68は、フレームデータ化けなどの異常をチェックするためのフレームチェックシーケンスコードである。
そして、上記コントロールビット(CTRL)66が、上記メッセージ送信要求51を示すフラグ情報である。コントロールビット(CTRL)66は、メッセージ送信の要求の有/無を示す1bitのフラグなどでよい。スレーブノードは、メッセージ送信要求がある場合には、コントロールビット(CTRL)66をONしてコモンメモリデータフレーム42を送信する。尚、ここに示すフレーム構成は一例であって、この例に限らず、これら以外の情報が付加されていても構わない。
また、図7(b)に、上記許可フレーム52のデータ構成例を示す。
図7(b)の例では、許可フレーム52は、フレーム種別を示すFC71、フレームサイズを表すSIZE72、送信元局番、宛先局番を示すSA73,DA74等と、F_NO75、ME_A76、FCS77等から成る。F_NO75、FCS77は、F_NO65、FCS68と同様と見做してよく、ここでの説明は省略する。
そして、ME_A76は、メッセージ送信許可局番であり、マスタノードがメッセージ送信許可したスレーブノードの識別情報(ここでは局番とする)である。
許可フレーム52は、ブロードキャスト送信され、基本的には全てのスレーブノードが受信することになる。そして、各スレーブノードは、受信した許可フレーム52の上記メッセージ送信許可局番(ME_A)76が、自ノードの局番と一致するか否かをチェックし、一致した局のみがメッセージを送信することができる。但し、要求51を出していないスレーブノードは、この様なチェックは行わなくてもよい。
図6の例では、メッセージ送信許可局番(ME_A)76はノードBの局番となっており、これより図6に示すようにノードBがメッセージを任意の相手局へ送信することになる。
尚、メッセージ通信の場合、一般的に、メッセージを受信した局はACK/NACK等の応答を送信元へ返信する必要があるが、これはネットワークLSIなどのハードウェアレベルで判断可能な処理であるので、上記メッセージ送信されたMSG帯域内に当該メッセージ受信後すぐに応答することも可能である。尚、上記ハードウェアレベルで判断可能な処理とは、例えば、自局番とメッセージフレームの宛先局番とが等しいか否かをチェックする処理や、FCSまでを受信した結果、フレームに異常がないか等をチェックする処理等である。
但し、この例に限らず、例えば、次の通信サイクルにおいて例えばCTRLフィールドの別のビットを使用して応答することも可能である。尚、図7(a)に示すCTRL66は、例えば8ビットのフィールドであり、これをCTRLフィールドと呼ぶものとするが、上記の通りメッセージ送信の要求の有/無を示す1bitのデータがあれば済むので、残りの7bitは不使用となっている。上記CTRLフィールドの別のビットとは、この7bitのうちの任意の1bitまたは複数bitであり、これをACK/NACK等の応答用に割り当てておくものである。
また、上記許可されたノードは、基本的に、MSG帯域内にメッセージ送信処理を完了するはずである。しかしながら、例えば、何等かの優先度が高い処理が発生していた為に、メッセージ送信処理開始が遅れることも想定し得る。この想定に対応して、例えば、任意のメッセージ送信許容時間を予め設定しておき、許可されたスレーブノードが許可フレーム52受信時からメッセージ送信許容時間内にメッセージ送信できない場合は、当該スレーブノードにおいて送信を断念すると判定するようにしてもよい。このようにすることで、固定的な長さのメッセージ帯域内でメッセージに関する処理(送信または断念)を完了でき、ネットワークの同期を乱すことなく、コモンメモリデータ交換とメッセージ送信とを実現できる。
上記図6に示す例は、上記の通り、1周期に1つのメッセージのみ送信可能な例であるが、当然、この様な例に限らない。例えば図8等に示すように、任意の通信サイクルのMSG帯域内で複数のメッセージを送信可能としてもよい。尚、図6と図8との違いは、基本的に、MSG帯域の長さである。つまり、図8は図6よりもMSG帯域が長い。
ここで、メッセージは、不特定局が非同期に要求を行うので、任意の通信サイクルにおいて複数局でメッセージ送信要求が発生することがある。図6の例の場合、マスタ局は、複数局からメッセージ送信要求51があった場合には、何れか1つの局に対してのみ送信許可を与え、残りの局に対しては後の通信サイクルにおいて送信許可を与える。
図8の例でも、基本的にはこれと同様であってよい。すなわち、1周期内に送信可能なメッセージ数(最大送信許可数)をM個とすると、任意の通信サイクルにおけるメッセージ要求局数をN台とした場合、N≦Mである場合には、N台の局全てに対してその通信サイクル内での送信許可を与える。一方、N>Mである場合には、要求局のなかで任意のM台に対してのみ、その通信サイクル内での送信許可を与え、残りの局については後の通信サイクルにおいて送信許可を与えるようにする。
尚、MSG帯域を長くすることで、上記最大送信許可数Mを多くすることができるので、たとえ任意の通信サイクル内にシステムを構成する全局からメッセージ送信要求が発生しても、全局にその通信サイクル内での送信許可を与えることも可能となる。しかしながら、上記の通り、メッセージは、不特定局が非同期に要求を行うので、メッセージ送信要求局が1つもない通信サイクルもあり得る。この様な場合、その通信サイクルではMSG帯域中には何等データ送受信が行われないので、無駄となる。そして、上記のようにMSG帯域を長くしている場合には、この無駄が非常に大きいことになる。この為、MSG帯域をあまり長くすると、実用上問題となる。
そして、図8の例では、例えば1周期内に、2つのメッセージを送信可能となっているものとする。そして、図示の例では、任意の1つの通信サイクル内のTS帯域内に、ノードBとノードCの2台のノードが、それぞれ、メッセージ送信要求51を出している。尚、マスタノードAは、自身のメッセージ送信要求はないものとする。この場合、マスタノードAは、ノードB,Cの両方とも許可するものと判定して、上記許可フレーム52によって、これら2つのノードB.Cに対してメッセージ送信許可を通知することになる。
ここで、図9に、許可フレーム52のデータ構成例(その2)を示す。これは、本例のように、1つの通信サイクル内で複数のメッセージ送信が許可され得る場合に応じたものである。
尚、図9において、上記図7(b)に示すデータ構成と同一のものには同一符号を付してあり、その説明は省略する。これより、図9のデータ構成が図7(b)と異なる点は、メッセージ送信許可数(ME_NO)81が追加されていると共に、メッセージ送信許可局番群82を有する点である。尚、メッセージ送信許可局番群82は、複数の上記メッセージ送信許可局番(ME_A)76から成るものと見做してよい。
図8の例の場合、メッセージ送信許可数(ME_NO)81は‘2’となり、メッセージ送信許可局番群82には、ノードBとノードCの局番が格納されることになる。これより、MSG帯域でこの許可フレーム52を受信したノードBとノードCは、それぞれ、自ノードがメッセージ送信許可されたものと見做して、同MSG帯域中に自ノードのメッセージ送信処理を実行する。
但し、ノードBとノードCとで、データ送信タイミングの重複(輻輳)が発生しないようにする必要がある。例えば図8に符号53で示すタイミングで各々のメッセージ送信させる必要がある。これを実現する為に、例えば、メッセージ送信許可局番群82における並び順に従って、許可フレーム受信時から所定の時間間隔で順番にメッセージ送信するようにする。この具体例は後述するが、このようにすれば、メッセージ通信が輻輳することはない。
また、1つの局が一度に複数のメッセージ要求を出す場合もあり得る。
この様な場合に対応する為には、まず、上記図7(a)に示すコモンメモリデータフレーム42のデータ構成において、上記コントロールビットCTRL66は、メッセージ送信の要求の有/無を示す1bitのデータとしたが、これを変更する。すなわち、コントロールビットCTRL66を、送信要求フレーム数を表す数値とする。よって、基本的には、1bitではなく、複数bitとする。この様にすることで、一つの局から複数のメッセージ送信要求を行うことができる。
例えば、図10の例では、任意の通信サイクルにおいて、ノードBのみが上記メッセージ送信要求51を出しているが、これは上記コントロールビットCTRL66を‘2’としているものであるものとする。尚、図10では、図8と同様、1周期内に2つのメッセージ送信可能となっているものとする。つまり、最大送信許可数M=‘2’となっているものとする。
ここで、マスタノードAは、任意の通信サイクルにおけるトータルのメッセージ要求数が、最大送信許可数M=‘2’以下である場合には、
これより、上記のように要求局がノードBのみであり且つメッセージ送信要求数が‘2’である例では、マスタノードAは、トータルのメッセージ要求数が2となることから、全てのメッセージ送信要求を許可するものと判定する。そして、ノードBに対して、当該通信サイクル内に上記2つのメッセージ送信を行うことを許可する旨を通知する。これは、例えば、図9に示す許可フレーム52において、上記メッセージ送信許可数(ME_NO)81を‘2’とすると共に、メッセージ送信許可局番群82にノードBの識別ID(ここでは「b」と記すものとする)を2つ格納すればよい。つまり、図9に示すME_A_1とME_A_2の両方に「b」が格納されていればよい。これによって、この許可フレーム52を受信したノードBは、自局が当該通信サイクル内に2つのメッセージ送信を許可されたものと判定できる。
尚、図8、図10の何れの例においても、マスタノードAは、任意の通信サイクルにおいて上記最大送信許可数Mよりも多いメッセージ送信要求があった場合には、上記の通り、そのうちの一部のみにその通信サイクルにおける送信許可を与えるが、残りについては一旦これを保留する。そして、それ以降の通信サイクルにおいて、保留した局について優先的に送信許可を与える。そして、保留した局全てについて送信許可を与えた後で、改めて各局から通知されるメッセージ送信要求を取り込むようにし、メッセージ送信機会が均等に与えられるようにする。
以下、図11以降の図面を参照して、本手法について更に詳細に説明する。
本手法では、上記の通り、一定周期Tの通信サイクル毎に、コモンメモリのデータ交換を行うことを、基本動作としている。そして、当該コモンメモリデータ交換に係わる上記リアルタイム性を保証しつつ、メッセージ送信も行えるようにしている。つまり、本手法の通信プロトコルは、所定の周期Tで処理が一巡する定周期型のプロトコルであって、コモンメモリデータ交換だけでなくメッセージ送信も行えるようにしているものと言える。
そして、図11に示すように、周期Tの通信サイクルは、上記同期タイミング生成の為のTC帯域と、コモンメモリデータ交換の為のTS帯域と、メッセージ通信の為のMSG帯域とに分割される。
図11は、本手法における各ノードのタイマ動作とそれに応じたデータ送信タイミングの一例を示す図である。
ここで、図11に示すシステム全体の動作例では、システムは、マスタノードAと、3台のスレーブノードB、C,Dを有するものとする。そして、既に説明したように、周期Tは、各ノードがそれぞれ有するサイクルタイマによって規定される。ここでは全てのスレーブノードのサイクルタイマが、既にマスタノードAのサイクルタイマと同期している状態であるものとする。よって、図11では、1つのサイクルタイマの動作のみを示すが、これは全てのノードのサイクルタイマの動作を示すものと見做してよい。
尚、既に説明した通り、マスタノードAは、TC帯域において上記同期化フレーム41をブロードキャスト送信し、この同期化フレーム41に基づいて各スレーブノードのサイクルタイマの同期化が行われることになる。尚、全ノードにおいて、自己のサイクルタイマがタイマアップする毎に直ちにクリア(再起動)する。
また、本例では、マスタノードAと各スレーブノードは、上記サイクルタイマに加えてセンドタイマも備えている。センドタイマは、基本的に、TS帯域における自局のコモンメモリデータ送信タイミングを生成するタイマである。但し、本手法では、更に、マスタノードにおいては上記許可フレーム52の送信タイミングも生成する。また、各スレーブノードにおいては、自己のメッセージ送信タイミングも生成する。但し、メッセージ送信タイミング生成の為にセンドタイマに設定する時間は、固定的ではなく動的に決定されるものであり、例えば上記メッセージ送信許可局番群(ME_A)82の格納内容(自局の順番)に基づいて決定されるものである。詳しくは後述する。
全てのノードにおいて、自己のサイクルタイマをクリアするタイミングで、自己のセンドタイマもクリアするが、その際にセンドタイマに設定する時間は、予め登録されている固定値であり且つ各ノードで相互に異なる値となっている。これより、図11に示すように、全てのノードで相互に異なるタイミングでセンドタイマがタイマアップすることになる。
マスタノードは、自局のサイクルタイマのクリア(起動)の際に、自局のコモンメモリデータの送信タイミングを示す設定時間をセンドタイマにセットして起動する。この設定時間(第1設定時間)は、予め登録されている固定値であり、図示の例ではTC帯域の長さと同じであり、従って図示のようにTS帯域の始まりのタイミングでセンドタイマはタイマアップする。そして、タイマアップしたら、上記の通り、コモンメモリデータフレーム42をブロードキャスト送信する。尚、この例は、マスタノードのコモンメモリデータの送信タイミングを、TS帯域の最初としている場合に応じてものであり、この例に限るものではない。
また、マスタノードは、上記センドタイマがタイマアップしたら直ちにセンドタイマに第2設定時間をセットして再起動する。この第2設定時間は、予め登録されている固定値であり、例えばTS帯域の長さとする。そして、センドタイマがタイマアップしたら、上記許可フレーム52をブロードキャスト送信する。
一方、各スレーブノードにおいても、自局のサイクルタイマのクリア(起動)の際に、自局のコモンメモリデータの送信タイミングを示す設定時間を自局のセンドタイマにセットして起動する。この設定時間(コモンメモリ設定時間と呼ぶものとする)は、予め登録されている固定値であり、更に、少なくとも上記第1設定時間より大きく且つ「第1設定時間+第2設定時間」よりも小さい値とする。換言すれば、TS帯域内にタイマアップするように設定されている。更に、このコモンメモリ設定時間は、全てのスレーブノードで相互に異なる値となるように設定されている。更に、コモンメモリ設定時間は、上記第1設定時間とは異なるように設定されている。
これより、図11に示すように、各ノードのセンドタイマは、TS帯域内に相互に異なるタイミングでタイマアップすることになる。
そして、各スレーブノードも、各々、自己のセンドタイマのタイマアップにより、コモンメモリデータをブロードキャスト送信する。その際、メッセージ送信要求が発生していた場合には、上記メッセージ送信要求51を含めて送信する。図11の例では、スレーブノードB,Dで、メッセージ送信要求が発生しているものとする。
メッセージ送信要求が無いスレーブノードCは、その通信サイクル内ではセンドタイマを再起動しない。
一方、上記メッセージ送信要求51を送信したスレーブノードB.Dは、許可された場合には、その通信サイクル内で所定のタイミングで自己のセンドタイマを再設定・再起動する。所定のタイミングとは、上記許可フレーム52受信時等である。また、再設定する値は、上記コモンメモリ設定時間とは異なる。再設定する値は、許可フレーム52の内容に基づいて決定する。
すなわち、許可フレーム52受信したスレーブノードは、その上記メッセージ送信許可局番群(ME_A)82を参照することで、当該通信サイクル内でのメッセージ送信が許可されたか否かと、許可された場合にはその順番(メッセージ送信許可位置)を知ることができる。本例では最大2つまで許可されるので、メッセージ送信許可位置は‘1’と‘2’の何れかとなる。図9の例では、“ME_A_1”に自局の局番があればメッセージ送信許可位置は‘1’であるものと判定し、“ME_A_2”に自局の局番があればメッセージ送信許可位置は‘2’であると判定する。
これより、マスタ局からメッセージ送信許可が与えられたスレーブ局は、「メッセージ送信許可位置×メッセージ送信許容時間」を求めて、この算出値に基づいてセンドタイマを再設定して再起動する。そして、センドタイマがタイマアップしたタイミングで、メッセージの送信を行う。
メッセージ送信許容時間は、予め任意に設定されており、例えば図示のスレーブノードBのセンドタイマ再起動からタイマアップまでの長さ“α”に相当する。図示の例では、メッセージ送信許可位置は、ノードBが‘1’、ノードDが‘2’となっているものとする。これより、ノードDのセンドタイマの再設定値は、ノードBのセンドタイマの再設定値の約2倍となり、図示のように、ノードBとノードDとは相互に異なるタイミングで自己のメッセージ送信を行うことになる。
尚、図11では、図示表現上、MSG帯域開始時点でセンドタイマを再起動しているように見えるかもしれないが、これは伝送遅延無しで許可フレーム52を受信したと仮定した場合のイメージを示しているだけであり、実際には多少は伝送遅延が生じているはずである。よって、実際には、MSG帯域開始時点から多少時間が経過した時点で、センドタイマの再設定・再起動が行われることになる。
また、この場合、センドタイマの再設定値を、例えばノードBに関して図示の長さαとすると、タイマアップのタイミングは、実際には図示のタイミングよりも遅れることになる。これは、上記伝送遅延の分だけ遅れることになる。よって、この点を考慮してセンドタイマの再設定値を決定するようにしてもよい。つまり、上記例では上記メッセージ送信許容時間=αと見做してよいので、例えば「メッセージ送信許可位置×メッセージ送信許容時間」から伝送遅延時間を差し引いた値を、センドタイマに再設定するようにしてもよい。例えばこの様にして適宜調整することで、自己のメッセージ送信許可位置に応じた所定のタイミングで、メッセージ送信することができる。尚、上記の通り、各スレーブノード毎の伝送遅延時間は既に分かっている。
尚、タイマによる処理は、マイコン等が持つ割込み機能により起動される。基本的にタイマ割込みによる処理は、自局からの送信フレーム(同期化フレーム、コモンメモリデータ、許可フレーム、メッセージ等)の送信タイミングを生成しており、これら送信するデータは、これらの処理とは非同期に準備される。例えば、メッセージは、上位のアプリケーションが送信要求を行ったタイミングで生成される。
尚、上記一例では、センドタイマを再設定して利用する例を示したが、この例に限らず、メッセージ送信タイミング生成用のタイマ(3つ目のタイマ)を設けるようにしてもよい。あるいは、その逆に、特にマスタノードにおいては、センドタイマを更に再設定することでMSG帯域終了タイミングも生成させることで、図11に示すTC帯域、TS帯域の終了タイミング生成と組み合わせて周期Tを規定できるようにすることもできる。つまり、この場合、サイクルタイマは不要とすることができ、タイマ数を削減できることになる。
以下、図12〜図15のフローチャート図を参照して、マスタノード、スレーブノードの処理動作例について説明する。図12〜図14は、マスタノードの処理フローチャート図である。
マスタノードの処理は、例えば、送信タイマ処理、受信処理、許可フレーム生成処理等である。図12は送信タイマ処理、図13は受信処理、図14は許可フレーム生成処理のフローチャート図である。
まず、図12を参照して、マスタノードにおける送信タイマ処理について説明する。
図12の処理は、タイマ割込み発生毎に実行される。タイマ割込みは、サイクルタイマまたはセンドタイマがタイマアップする毎に発生する。尚、サイクルタイマとセンドタイマのどちらがタイマアップしたものであるのかは、区別できるようになっている。また、例えば、センドタイマの設定時間(設定の種別)が、設定時に記録されるようになっていてもよい。
そして、まず、発生したタイマ割込みが、サイクルタイマのタイマアップによるタイマ割込みである場合には、同期化フレーム送信タイミングであるものと判定して(ステップS11,YES)、同期化フレームをブロードキャスト送信すると共に(ステップS12)、センドタイマに上記第1設定時間を設定して起動する(ステップS13)。更に、サイクルタイマを再起動して(ステップS14)、本処理を終了する。
また、発生したタイマ割込みが、上記第1設定時間が設定されたセンドタイマのタイマアップによるものである場合には、コモンメモリデータ送信タイミングであると判定して(ステップS15,YES)、自局のコモンメモリデータをブロードキャスト送信する(ステップS16)。そして、センドタイマに上記第2設定時間を設定して再起動して(ステップS17)、本処理を終了する。
また、発生したタイマ割込みが、上記第2設定時間が設定されたセンドタイマのタイマアップによるものである場合には、許可フレーム送信タイミングであると判定して(ステップS18,YES)、許可フレーム52をブロードキャスト送信する(ステップS19)。尚、許可フレーム52の生成処理は、図14に示し後に説明する。
更に、マスタノード自身にメッセージ送信要求が生じる場合もあり得るので、図14の処理によって送信許可したノードとして自ノードがある場合には(ステップS20、YES)、センドタイマを再々設定して再々起動する(ステップS21)。このときの設定時間は、例えば上記「メッセージ送信許可位置×メッセージ送信許容時間」によって求めるが、この例に限らない。そして、本処理を終了する。
また、発生したタイマ割込みが、上記ステップS21で再々起動されたセンドタイマのタイマアップによるものである場合には、自己のメッセージ送信タイミングであるものと判定して(ステップS18,NO)、メッセージ送信処理を行い(ステップS22)、本処理を終了する。
上述したように、送信タイマ処理では、割込みの要因等に基づいて次回タイマ割込み時の動作が決められる。マスタ局もメッセージを送信することがあるため、自局に送信許可を与える場合は、さらにセンドタイマを使用して自局のメッセージ送信タイミングを生成する。
図13は、TS帯域における受信処理のフローチャート図である。
上記の通り、TS帯域においては、各ノードは、自局のコモンメモリデータをブロードキャスト送信する。よって、マスタノードAは、TS帯域中に各ノードから送信されるコモンメモリデータを順次受信することになる。図13の処理は、この様なコモンメモリデータ受信毎に実行されるものである。つまり、何等かのデータ受信毎に受信割込みが発生し、それによって図13の処理が開始される。
尚、コモンメモリデータ受信時には、自己のコモンメモリの該当領域に受信データを上書きする処理等も行うが、ここでは直接関係ない処理であるので、その説明は省略するものとする。これは、コモンメモリデータ受信以外のデータ受信時に関しても同様である。
図13の処理では、まず、受信したデータがコモンメモリデータであるか否かを判定し(ステップS31)、コモンメモリデータ以外のデータ(例えば同期化フレーム等)受信である場合には(ステップS31,NO)、本処理を終了する。尚、上記の通り、省略しているだけであり、実際には同期化フレーム受信に応じた所定の処理が実行されることになる。
コモンメモリデータ受信である場合には(ステップS31,YES)、その上記コントロールビット(CTRL)66を参照することで、メッセージ送信要求があるか否かを判別する(ステップS32)。そして、メッセージ送信要求が無ければ(ステップS32,NO)本処理を終了する。
一方、メッセージ送信要求がある場合には(ステップS32,YES)、前回の通信サイクルにおいて許可しなかったメッセージ送信要求は無いのであれば(ステップS33,YES)、受信した要求をバッファに登録する(ステップS34)。登録するデータは、要求元のノードの識別IDや要求されたメッセージ数等である。
尚、バッファに登録された要求の数が、後述する図14における送信可能数を超える場合には、その一部はバッファに残った状態のまま(そして後述する送信残フラグがONの状態で)、次回の通信サイクルに移行することになる。上記ステップS33の処理は、例えばこの送信残フラグがONの場合にNOと判定するものであるが、この例に限らない。
尚、前回の通信サイクルで許可しなかったメッセージ送信要求がバッファに残っている場合には(ステップS33,NO)、図示していないが例えば今回の通信サイクルで受信したメッセージ送信要求は、別領域に記憶して、本処理を終了する。
尚、例えばTS帯域開始直後に、上記別領域に1以上の要求が記憶されているか否かをチェックし、記憶されている場合には、当該記憶されている要求全てを上記バッファに転送して格納すると共に後述する送信残フラグをONするようにしてもよい。これによって、前回の通信サイクルの際に受け付けられなかった要求を、優先的に許可させるようにすることができる。
そして、例えばTS帯域の最後の空き時間に(全てのノードからのコモンメモリデータ受信処理が完了した後に)、あるいは上記ステップS19の処理の際に、上記バッファの格納データ等に基づいて、例えば図14に示す許可フレーム生成処理を実行する。
図14に示す例では、まず、メッセージ送信要求の有無を確認する(ステップS41)。これは、例えば上記バッファにデータがあればメッセージ送信要求ありと判定して(ステップS41,YES)、ステップS42へ移行する。尚、メッセージ送信要求無しと判定した場合には(ステップS41,NO)、本処理を終了する。
ステップS42では、上記バッファに格納されている要求の数が、予め設定されている送信可能数を超えているか否かを判定する。尚、送信可能数は、1つの周期(そのMSG帯域)で送信出来るメッセージの数であり、本例では上記の通り‘2’となることになる。
もし、上記バッファの要求数が、上記送信可能数を超えている場合には(要求数>送信可能数)(ステップS42,YES)、送信残フラグをONして(ステップS43)、変数“ループ最大”に上記送信可能数をセットする(ステップS44)。一方、上記バッファの要求数が、上記送信可能数以下である場合には(ステップS42,NO)、送信残フラグをOFFしたうえで(ステップS45)、変数“ループ最大”に上記要求数をセットする(ステップS46)。尚、送信残フラグは、上記の通りステップS33の判定の際に利用される。
そして、上記ステップS42の判定がYES/NOの何れであっても、上記変数“ループ最大”の数の分だけ、ステップS47の処理を繰り替して、本処理を終了する。
ステップS47の処理は、許可フレーム生成処理であり、上記バッファから任意の1つのメッセージ送信要求を取り出して、例えばこの要求に含まれる局番(要求元ノードの識別情報)を、許可フレーム52の上記メッセージ送信許可局番(ME_A)76または上記メッセージ送信許可局番群82に格納する処理である。尚、取り出された要求は、バッファから消去される。
また、上記ステップS47のループ処理が完了したら、最後に、上記変数“ループ最大”の数を、上記メッセージ送信許可数(ME_NO)81に格納する。
上記のように生成した許可フレーム52は、例えば、MSG帯域の開始直後等に送信されることになる。
尚、「要求数>送信可能数」である場合に、バッファに格納されている複数の要求のなかでどの要求に対して許可を与えるのかについては、その決定方法は特に限定しない。例えば一例としては、各要求の要求元の局番に基づいて、局番が小さい順、あるいは局番が大きい順に、許可を与えるようにしてもよい。あるいは、バッファへの格納順により許可を与えるようにしてもよい。つまり、最も最初にバッファに格納された要求から順に、許可を与えるようにしてもよい。
以上、マスタノードの処理動作について説明した。
以下、各スレーブノードの処理動作について、図15、図16を参照して説明する。
図15は、スレーブノードにおける送信タイマ処理の処理フローチャート図である。
尚、ここではサイクルタイマは調整済み(マスタと同期している)の状態であるものとする。
尚、図15の処理は、基本的には、上記図12の処理と同様、サイクルタイマまたはセンドタイマがタイマアップする毎に発生するタイマ割込みに応じて実行開始される。但し、例外として、許可フレーム52を受信した場合にも、図15の処理が実行される。
そして、まず、発生したタイマ割込みが、サイクルタイマのタイマアップによるタイマ割込みである場合に(ステップS51,YES)、センドタイマに上記“コモンメモリ設定時間”をセットしてセンドタイマを起動する(ステップS52)。更に、サイクルタイマを再起動する(ステップS53)。そして、本処理を終了する。
また、発生したタイマ割込みが、上記ステップS52で起動されたセンドタイマのタイマアップによるものである場合には、コモンメモリデータ送信タイミングであると判定して(ステップS54,YES)、自局のコモンメモリデータをブロードキャスト送信する(ステップS55)。尚、その際、メッセージ送信要求がある場合には、上記メッセージ送信要求51を含めて送信する。そして、本処理を終了する。
また、許可フレーム52を受信した場合には(ステップS56,YES)、その上記メッセージ送信許可局番(ME_A)76または上記メッセージ送信許可局番群82を参照することで、自局がメッセージ送信許可されたか否かを判定する(ステップS57)。そして、自局がメッセージ送信許可された場合には(ステップS57,YES)、センドタイマを再設定して再起動する(ステップS58)。このときの設定時間は、例えば上記「メッセージ送信許可位置×メッセージ送信許容時間」によって求めるが、この例に限らない。そして、本処理を終了する。
尚、許可フレーム52を受信した場合でも、上記メッセージ送信要求51を送信していなかった場合には、何も処理を行わないようにしてもよい。
そして、発生したタイマ割込みが、上記ステップS58で再起動したセンドタイマがタイマアップしたものである場合には、メッセージ送信タイミングであるものと判定して(ステップS56,NO)、メッセージ送信処理を行い(ステップS59)、本処理を終了する。
図16は、スレーブノードにおけるメッセージ送信要求に係わる状態遷移図である。
各ノードは、メッセージ送信要求に係わり、図16に示す「送信要求なし」91、「送信要求あり」92、「送信要求中」93、「送信待ち」94、「応答待ち」95の5つの状態を持つ。これらの状態は、メッセージ送信要求の有無、コモンメモリフレームの送信、許可フレームの受信、メッセージの送信などのイベントにより遷移する。ここでは、「送信要求なし」91の状態から、状態遷移について説明する。
まず、そのノード内部で何等かのメッセージ送信イベントが発生した場合、「送信要求なし」91から「送信要求あり」92の状態へ遷移する。そして、「送信要求あり」92の状態でコモンメモリデータ送信タイミングとなったら、コモンメモリデータフレーム42にメッセージ送信要求51を含めてブロードキャスト送信する。そして、これに伴って「送信要求あり」92から「送信要求中」93の状態へと遷移する。
そして、「送信要求中」93の状態で、許可フレーム52を受信し、且つ、自局が送信許可されていた場合には、上記センドタイマの再起動を行う等して、「送信待ち」94の状態へと遷移する。そして、「送信待ち」94で、上記センドタイマがタイマアップしたら、メッセージを送信して、「応答待ち」95の状態へと遷移する。
「応答待ち」95の状態は、メッセージ送信相手局からのACK/NACK応答待ち状態である。そして、ACKを受信した場合には、今回のメッセージ送信処理は正常に完了したものとして、「送信要求なし」91の状態へ遷移する。
また、応答がNACKの場合、または応対が無いままタイムアウトした場合には、リトライ処理を実行する。これは、メッセージ送信相手局の処理負荷を勘案し、応答受信から一定時間後に同一メッセージを再送する。この時、リトライカウンタをアップする。そして、「送信要求中」93の状態へと遷移する。
尚、リトライによって「送信要求中」93となった場合には、例えばリトライ有りを記録しておく。そして、例えばTS帯域において、メッセージ送信処理の有無だけでなくリトライの有無もチェックし、リトライ有りが記憶されている場合にも、コモンメモリデータフレーム42にメッセージ送信要求51を含めてブロードキャスト送信するようにしてもよい。尚、この場合、必ずしも上記に同一メッセージの再送が行えるわけではなく、許可されなかった場合には、その通信サイクルでは同一メッセージの再送は行わない。そして、次の通信サイクルで再びメッセージ送信要求51を出すことになる。
その後も、上記「応答待ち」95の状態でNACK応答受信またはタイムアウトすると、上記処理を行ってリトライカウンタをアップするが、その際、リトライカウンタが一定数に達したか否かをチェックする。もし、リトライカウンタが一定数以上となったら、メッセージ送信をあきらめて異常終結(リトライオーバ)する。そして、「送信要求なし」91の状態へと遷移する。
尚、リトライカウンタは、ACK受信による正常完了またはリトライオーバにてリセットされる。
尚、上記ACK/NACK応答は、例えば相手局からのコモンメモリフレーム上の情報として通知されるように構成してもよい。また、もし、自局宛のACK/NACK応答がない場合は、例えば3周期分までコモンメモリフレームを受信する毎に自局宛のACK/NACK応答の有無をチェックし、それでも応答がない場合にメッセージ送信に失敗したとみなし、つまり上記タイムアウトと見做して、同一メッセージを再送するようにしてもよい。
尚、図示の処理中に新たな要求が発生した場合は、この要求はキューイングされる。
図17は、本例のネットワーク伝送システム10の機能ブロック図である。
本例のネットワーク伝送システム10は、各々が共有メモリを有する複数のノードから成り、各ノードが、所定の通信サイクルでネットワークを介して上記共有メモリのデータを相互に送受信するシステムであって、上記複数のノードのうち1台をマスタノード110とし、他をスレーブノード120とする。
また、上記通信サイクル内に、上記各ノードが自ノードの共有メモリデータを相互に異なるタイミングで送信する帯域であるコモンメモリ帯域と、メッセージ帯域とが含まれるように構成する。
そして、上記スレーブノード120は、メッセージ送信要求部121、メッセージ送信処理部122等を有する。
メッセージ送信要求部121は、上記自ノードの共有メモリデータ送信時に、任意の他のノードへのメッセージがある場合には、メッセージ送信要求を付加して送信する。
メッセージ送信処理部122は、該メッセージ送信要求に対して、上記マスタノード110から許可通知があった場合には、上記メッセージ帯域において上記メッセージの送信処理を行う。
また、上記マスタノード110は、許可決定部111、許可通知部112等を有する。
許可決定部111は、上記メッセージ送信要求に応じて、該要求を許可するか否かを決定する。
許可通知部112は、該要求を許可するノードに対して例えば上記メッセージ帯域の初めに上記許可通知を送信する。
ここで、例えば、上記許可決定部111は、上記メッセージ帯域の長さに応じて予め設定されている最大数に基づいて、上記メッセージ送信要求を行ったノードのなかで許可するノードを決定する。これは、例えば、許可するノードの数を最大数までとする。あるいは、許可するメッセージ数を最大数までとする。これは、例えば、メッセージ送信要求を行ったノードの数が1つであり、且つ、該ノードが複数のメッセージの送信を要求した場合に、最大数までメッセージ送信を許可する。
上記許可決定部111は、例えば、上記メッセージ送信要求のなかに許可しなかった送信要求がある場合には、該送信要求を未許可要求として保留しておき、次の通信サイクルにおいて該未許可要求を優先的に許可する。
また、例えば、上記メッセージ送信処理部122は、上記メッセージ帯域において、上記許可通知に基づいて決定される所定のタイミングで、上記メッセージの送信処理を行う。これは、例えば、上記許可通知に基づいて自ノードの順番を認識して、該順番に予め設定される所定値を乗じることで、上記所定のタイミングを決定する。これは例えば上記「メッセージ送信許可位置×メッセージ送信許容時間」によって求めるが、この例に限らない。
また、上記マスタノード110の上記許可決定部111は、自ノードに任意の他のノードへのメッセージがある場合には、自ノードも含めて上記要求を許可するノードを決定する。
あるいは、マスタノード110は、上記コモンメモリ帯域内に各スレーブノードから相互に異なるタイミングで送信されてくる共有メモリデータを受信すると、該共有メモリデータにメッセージ送信要求が含まれているか否かを確認することで、その通信サイクルにおいてメッセージ送信を要求するスレーブノードを判別するメッセージ送信要求ノード判別部113を更に有するものと見做しても良い。
図18は、本例のノードの概略ハードウェア構成図である。
尚、ここでは、各ノードのハードウェア構成のうちの一部のみを示すものとする。つまり、上述したデータ送受信動作に関係する構成のみを示すものとする。
図示の構成例では、ノード装置11は、プロセッサ200、メモリ210等を有する。
プロセッサ200は、例えばCPU/MPU等の演算プロセッサ等である。
メモリ210には、予め所定のアプリケーションプログラム211が記憶されている。また、図示の例では、メモリ210の記憶領域の一部を、共有メモリ212として使用しているが、この例に限らない。
プロセッサ200は、アプリケーション実行エンジン201、ネットワーク制御部202等を有する。アプリケーション実行エンジン201は、例えば上記メモリ210に記憶されているアプリケーションプログラム211を実行することで、例えば上記図12〜図14に示す処理、あるいは上記図15、図16に示す処理、図17に示す各種機能部の処理等を実行する。但し、これらの処理におけるネットワークを介したデータ送受信制御は、ネットワーク制御部202が実行する。
また、ここでは図示していないが、プロセッサ200は、上記サイクルタイマやセンドタイマ等を備えている。アプリケーション実行エンジン201が、これら各種タイマを制御しながら、所定のタイミングで上記ネットワーク制御部202を介してデータ送信することになる。また、ネットワーク制御部202は、例えば受信したデータがコモンメモリデータである場合には、これを上記共有メモリ212の該当領域に上書き記憶する。
また、上記アプリケーションプログラム211には、例えば不図示の制御対象の制御用のプログラムも含まれていても良い。プロセッサ200は、この様な制御プログラムを実行中、必要に応じて、共有メモリ212における自ノード用の記憶領域のデータを更新する。
尚、メモリ210は、例えばDDR−SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)であるが、この例に限らない。
本手法によれば、特に上記共有メモリを有する複数のノード間で定周期でコモンメモリデータ交換する通信を行う必要があるシステムにおいて、上記リアルタイム性を保証しつつ更にメッセージ通信も行うことができる。
すなわち、例えば上記先願(WO 2013121568 A1)のような時分割型のコモンメモリデータ交換手法は、上述したように、予め決められた構造を持つデータの更新を定期的に行うことに向いており、例えば各局において突発的に発生する特定相手局向けのデータ(メッセージ)を扱うことが難しい。また、メッセージ通信に関して局間での送信競合・データの衝突を防ぐため、トークン方式を利用した場合、上述したように、トークン巡回時間が伸び縮みしてしまうため、時間確定的に通信を行いたいコモンメモリ交換プロトコルと相いれない。つまり、コモンメモリデータ交換に係わる上記リアルタイム性を保証できなくなる可能性がある。換言すれば、定周期のコモンメモリデータ交換を維持できなくなる可能性がある。
これに対して、上述した本手法によれば、上記先願の同期ネットワーク上のコモンメモリデータ交換に係わるリアルタイム性の保証を維持しつつ、メッセージ通信機能を付加することが可能となり、高速・大容量のコモンメモリデータ交換とメッセージ通信を同期ネットワーク上で実現することができる。更に、動的に変化するメッセージ通信要求元、要求数に対応して最適な送信権割付けを行うことが可能となる。
その為に、本手法では、上述したように、一定の周期Tを分割してコモンメモリデータ交換帯域であるTS帯域とメッセージ帯域を設ける。そして、TS帯域で送信されるフレーム上にメッセージ送信要求を示すデータを付加することで、マスタ局に対して送信権を要求する。マスタ局は、自局も含めて要求のあったノードのなかから決められたルールに従ってメッセージ帯域における送信権を与える。
但し、上記リアルタイム性を保証するために、メッセージ帯域の長さは固定的とし、以って各周期T内でメッセージ帯域中に送信可能なメッセージ数が決められている。つまり、上限が決まっている。この上限を超えないようにして、上記送信権を与える。送信権を与えられなかったノードに関しては、次回以降の通信サイクルにおいて送信権を与える。
上記上限は、1または複数であってよい。複数である場合には、一度に複数のノードに対して上記送信権を与えてもよい。あるいは、上限が複数である場合であって、複数のメッセージの送信要求するノードがあった場合に、このノードに複数のメッセージの送信権を与えるようにしてもよい。
10 ネットワーク伝送システム
11(11−1〜11−3) ノード装置
12(12−1〜12−5) HUB
21 同期化フレーム
23 (ノードAの)送信データ
24 (ノードCの)送信データ
25 (ノードBの)送信データ
26 遅延
33 reqフレーム
34 OKフレーム
35 dlyフレーム
36 SETフレーム
41 同期化フレーム
42 コモンメモリデータフレーム
51 メッセージ送信要求
52 許可フレーム
53 メッセージ
61 フレーム種別(FC)
62 フレームサイズ(SIZE)
63 送信元局番(SA)
64 宛先局番(DA)
65 フレーム番号(F_NO)
66 コントロールビット(CTRL)
67 コモンメモリデータ(DATA)
68 フレームチェックシーケンスコード(FCS)
71 フレーム種別(FC)
72 フレームサイズ(SIZE)
73 送信元局番(SA)
74 宛先局番(DA)
75 フレーム番号(F_NO)
76 メッセージ送信許可局番(ME_A)
77 フレームチェックシーケンスコード(FCS)
81 メッセージ送信許可数(ME_NO)
82 メッセージ送信許可局番群
91 「送信要求なし」
92 「送信要求あり」
93 「送信要求中」
94 「送信待ち」
95 「応答待ち」
110 マスタノード
111 許可決定部
112 許可通知部
113 メッセージ送信要求ノード判別部
120 スレーブノード
121 メッセージ送信要求部
122 メッセージ送信処理部
200 プロセッサ
201 アプリケーション実行エンジン
202 ネットワーク制御部
210 メモリ
211 アプリケーションプログラム
212 共有メモリ

Claims (10)

  1. マスタノードとスレーブノードを含む複数のノード各々が共有メモリを有し、各ノードが、所定の通信サイクルでネットワークを介して前記共有メモリのデータを相互に送受信するシステムであって、
    前記通信サイクル内に、前記各ノードが自ノードの前記共有メモリのデータを相互に異なるタイミングで送信する帯域であるコモンメモリ帯域と、メッセージ帯域とが含まれており、
    前記スレーブノードは、
    前記自ノードの共有メモリデータ送信時に、任意の他のノードへのメッセージがある場合には、メッセージ送信要求を付加して送信するメッセージ送信要求手段と、
    該メッセージ送信要求に対して、前記マスタノードから許可通知があった場合には、前記メッセージ帯域において前記メッセージの送信処理を行うメッセージ送信処理手段とを有し、
    前記マスタノードは、
    前記メッセージ送信要求に応じて、該要求を許可するか否かを決定する許可決定手段と、
    該要求を許可するノードに対して前記許可通知を送信する許可通知手段と、
    を有することを特徴とするネットワーク伝送システム。
  2. 前記許可決定手段は、前記メッセージ帯域の長さに応じて予め設定されている最大数に基づいて、前記メッセージ送信要求を行ったノードのなかで許可するノードを決定することを特徴とする請求項1記載のネットワーク伝送システム。
  3. 前記許可決定手段は、許可するノードの数を前記最大数までとすることを特徴とする請求項2記載のネットワーク伝送システム。
  4. 前記許可決定手段は、許可するメッセージ数を前記最大数までとすることを特徴とする請求項2記載のネットワーク伝送システム。
  5. 前記許可決定手段は、前記メッセージ送信要求のなかに許可しなかった送信要求がある場合には、該送信要求を未許可要求として保留しておき、次の通信サイクルにおいて該未許可要求を優先的に許可することを特徴とする請求項1〜4の何れかに記載のネットワーク伝送システム。
  6. 前記メッセージ送信処理手段は、前記メッセージ帯域において、前記許可通知に基づいて決定される所定のタイミングで、前記メッセージの送信処理を行うことを特徴とする請求項1〜5の何れかに記載のネットワーク伝送システム。
  7. 前記メッセージ送信処理手段は、前記許可通知に基づいて自ノードの順番を認識して、該順番に予め設定される所定値を乗じることで、前記所定のタイミングを決定することを特徴とする請求項6記載のネットワーク伝送システム。
  8. 前記マスタノードの前記許可決定手段は、自ノードに任意の他のノードへのメッセージがある場合には、自ノードも含めて前記要求を許可するノードを決定することを特徴とする請求項1〜7の何れかに記載のネットワーク伝送システム。
  9. 各々が共有メモリを有する複数のノードから成り、各ノードが、所定の通信サイクルでネットワークを介して前記共有メモリのデータを相互に送受信し、前記複数のノードのうち1台をマスタノードとし、他をスレーブノードとするシステムにおける該マスタノードにおいて、
    前記通信サイクル内に、前記各ノードが自ノードの前記共有メモリのデータを相互に異なるタイミングで送信する帯域であるコモンメモリ帯域と、メッセージ帯域とが含まれており、
    前記コモンメモリ帯域内に各スレーブノードから相互に異なるタイミングで送信されてくる前記共有メモリデータを受信すると、該共有メモリデータにメッセージ送信要求が含まれているか否かを確認することで、その通信サイクルにおいてメッセージ送信を要求するスレーブノードを判別するメッセージ送信要求ノード判別手段と、
    該各メッセージ送信要求ノードに対して、該要求を許可するか否かを決定する許可決定手段と、
    該要求を許可するノードに対して許可通知を送信する許可通知手段と、
    を有することを特徴とするネットワーク伝送システムのマスタノード。
  10. 各々が共有メモリを有する複数のノードから成り、各ノードが、所定の通信サイクルでネットワークを介して前記共有メモリのデータを相互に送受信し、前記複数のノードのうち1台をマスタノードとし、他をスレーブノードとするシステムにおける該スレーブノードにおいて、
    前記通信サイクル内に、前記各ノードが自ノードの前記共有メモリのデータを相互に異なるタイミングで送信する帯域であるコモンメモリ帯域と、メッセージ帯域とが含まれており、
    前記自ノードの共有メモリデータ送信時に、任意の他のノードへのメッセージがある場合には、メッセージ送信要求を付加して送信するメッセージ送信要求手段と、
    該メッセージ送信要求に対して、前記マスタノードから許可通知があった場合には、前記メッセージ帯域において前記メッセージの送信処理を行うメッセージ送信処理手段と、
    を有することを特徴とするネットワーク伝送システムのスレーブノード。
JP2014126525A 2014-06-19 2014-06-19 ネットワーク伝送システム、そのマスタノード、スレーブノード Active JP6265058B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014126525A JP6265058B2 (ja) 2014-06-19 2014-06-19 ネットワーク伝送システム、そのマスタノード、スレーブノード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014126525A JP6265058B2 (ja) 2014-06-19 2014-06-19 ネットワーク伝送システム、そのマスタノード、スレーブノード

Publications (2)

Publication Number Publication Date
JP2016005247A true JP2016005247A (ja) 2016-01-12
JP6265058B2 JP6265058B2 (ja) 2018-01-24

Family

ID=55224207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014126525A Active JP6265058B2 (ja) 2014-06-19 2014-06-19 ネットワーク伝送システム、そのマスタノード、スレーブノード

Country Status (1)

Country Link
JP (1) JP6265058B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017135499A (ja) * 2016-01-26 2017-08-03 ファナック株式会社 通信設定通知装置
WO2017145567A1 (ja) * 2016-02-22 2017-08-31 富士電機株式会社 制御ネットワークシステム、そのノード装置
WO2018025491A1 (ja) * 2016-08-05 2018-02-08 富士電機株式会社 制御ネットワークシステム、そのノード装置
WO2018096678A1 (ja) * 2016-11-28 2018-05-31 三菱電機株式会社 中継装置、中継方法及び中継プログラム
KR20190089155A (ko) * 2018-01-18 2019-07-30 미쓰비시덴키 가부시키가이샤 Plc, 네트워크 유닛, cpu 유닛, 및 데이터 전송 방법
CN113393235A (zh) * 2020-03-13 2021-09-14 富士通株式会社 处理写入请求的信息处理装置和发送控制方法
CN113507498A (zh) * 2021-06-02 2021-10-15 浪潮软件股份有限公司 一种政务大厅设备数据交换方法和模型
CN113746647A (zh) * 2020-05-27 2021-12-03 中国联合网络通信集团有限公司 数据传输方法、节点、电子设备及可读存储介质
CN114868371A (zh) * 2019-12-25 2022-08-05 三菱电机株式会社 数据收集管理装置及数据收集系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002051050A (ja) * 2000-08-02 2002-02-15 Sony Corp 無線伝送方法及び無線伝送装置
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
WO2013121568A1 (ja) * 2012-02-16 2013-08-22 富士電機株式会社 ノード同期方法、ネットワーク伝送システム、及びノード装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002051050A (ja) * 2000-08-02 2002-02-15 Sony Corp 無線伝送方法及び無線伝送装置
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
WO2013121568A1 (ja) * 2012-02-16 2013-08-22 富士電機株式会社 ノード同期方法、ネットワーク伝送システム、及びノード装置

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459816B2 (en) 2016-01-26 2019-10-29 Fanuc Corporation Communication setting notification apparatus
JP2017135499A (ja) * 2016-01-26 2017-08-03 ファナック株式会社 通信設定通知装置
WO2017145567A1 (ja) * 2016-02-22 2017-08-31 富士電機株式会社 制御ネットワークシステム、そのノード装置
CN107925606A (zh) * 2016-02-22 2018-04-17 富士电机株式会社 控制网络系统及其节点装置
TWI734743B (zh) * 2016-02-22 2021-08-01 日商富士電機股份有限公司 控制網路系統及其節點裝置
JPWO2017145567A1 (ja) * 2016-02-22 2018-06-14 富士電機株式会社 制御ネットワークシステム、そのノード装置
WO2018025491A1 (ja) * 2016-08-05 2018-02-08 富士電機株式会社 制御ネットワークシステム、そのノード装置
KR20180099777A (ko) * 2016-08-05 2018-09-05 후지 덴키 가부시키가이샤 제어 네트워크 시스템, 그 노드 장치
JPWO2018025491A1 (ja) * 2016-08-05 2018-11-22 富士電機株式会社 制御ネットワークシステム、そのノード装置
TWI716620B (zh) * 2016-08-05 2021-01-21 日商富士電機股份有限公司 控制網路系統、其節點裝置
KR102073847B1 (ko) * 2016-08-05 2020-02-05 후지 덴키 가부시키가이샤 제어 네트워크 시스템, 그 노드 장치
CN109997338B (zh) * 2016-11-28 2021-02-05 三菱电机株式会社 中继装置、中继方法及计算机可读取的存储介质
TWI643472B (zh) * 2016-11-28 2018-12-01 三菱電機股份有限公司 Relay device, relay method, and relay program product
WO2018096678A1 (ja) * 2016-11-28 2018-05-31 三菱電機株式会社 中継装置、中継方法及び中継プログラム
KR102034468B1 (ko) 2016-11-28 2019-10-21 미쓰비시덴키 가부시키가이샤 중계 장치, 중계 방법 및 기억 매체에 저장된 중계 프로그램
CN109997338A (zh) * 2016-11-28 2019-07-09 三菱电机株式会社 中继装置、中继方法及中继程序
KR20190059996A (ko) * 2016-11-28 2019-05-31 미쓰비시덴키 가부시키가이샤 중계 장치, 중계 방법 및 기억 매체에 저장된 중계 프로그램
JPWO2018096678A1 (ja) * 2016-11-28 2019-02-28 三菱電機株式会社 中継装置、中継方法及び中継プログラム
KR20190089155A (ko) * 2018-01-18 2019-07-30 미쓰비시덴키 가부시키가이샤 Plc, 네트워크 유닛, cpu 유닛, 및 데이터 전송 방법
KR102016629B1 (ko) 2018-01-18 2019-08-30 미쓰비시덴키 가부시키가이샤 Plc, 네트워크 유닛, cpu 유닛, 및 데이터 전송 방법
CN114868371A (zh) * 2019-12-25 2022-08-05 三菱电机株式会社 数据收集管理装置及数据收集系统
CN113393235A (zh) * 2020-03-13 2021-09-14 富士通株式会社 处理写入请求的信息处理装置和发送控制方法
CN113746647A (zh) * 2020-05-27 2021-12-03 中国联合网络通信集团有限公司 数据传输方法、节点、电子设备及可读存储介质
CN113746647B (zh) * 2020-05-27 2023-12-19 中国联合网络通信集团有限公司 数据传输方法、节点、电子设备及可读存储介质
CN113507498A (zh) * 2021-06-02 2021-10-15 浪潮软件股份有限公司 一种政务大厅设备数据交换方法和模型

Also Published As

Publication number Publication date
JP6265058B2 (ja) 2018-01-24

Similar Documents

Publication Publication Date Title
JP6265058B2 (ja) ネットワーク伝送システム、そのマスタノード、スレーブノード
CN103155492B (zh) 通信系统及通信装置
Kalør et al. Network slicing in industry 4.0 applications: Abstraction methods and end-to-end analysis
US11316654B2 (en) Communication device and method for operating a communication system for transmitting time critical data
US11128571B2 (en) Communication system, communication apparatus, and communication method
US11758024B2 (en) Distributor node, automation network and method for transmitting telegrams
US11115343B2 (en) Transport layer providing deterministic transport across multiple deterministic data links
US11218383B2 (en) Simulation system and method for simulating processing of reservation enquiries for multicast data streams in communications networks
WO2016208020A1 (ja) 通信装置、時刻補正方法およびネットワークシステム
US11522762B2 (en) Coordination device and method for providing control applications via a communication network for transmitting time-critical data
US20220050440A1 (en) Communication Device and Method for Data Transmission within an Industrial Communication Network
US12276948B2 (en) Method and system for providing time-critical control applications
WO2018003117A1 (ja) 通信システムおよび通信方法
JP6687114B2 (ja) 制御ネットワークシステム、そのノード装置
CN114244680B (zh) 一种端到端确定性传输控制方法、装置、设备和介质
CN114448801B (zh) 实时通道组创建的方法、网络拓扑、设备及存储介质
CN114531943B (zh) 数据传输方法和自动化通信网络
US20170118072A1 (en) Communication control method, network system, and communication control device
JP5047099B2 (ja) データ通信システム、データ通信方法およびデータ通信システムを構成する情報処理装置
CN107925606A (zh) 控制网络系统及其节点装置
JP6528847B2 (ja) 制御ネットワークシステム、そのノード装置
WO2023236832A1 (zh) 数据调度处理方法、设备、装置及存储介质
CN121173618A (zh) 基于双链路架构的分布式io背板总线协议实现方法及装置
JP2008199130A (ja) ネットワーク中継方法、ネットワーク要素およびネットワーク中継システム
EP4144045A1 (en) Devices and methods for allocating transmission rights in communication networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171211

R150 Certificate of patent or registration of utility model

Ref document number: 6265058

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250