再表2018-25491IP Force 特許公報全文掲載

(19)【発行国】日本国特許庁(JP)
【公報種別】再公表特許(A1)
(11)【国際公開番号】WO/0
(43)【国際公開日】2018年2月8日
【発行日】2018年11月22日
(54)【発明の名称】制御ネットワークシステム、そのノード装置
(51)【国際特許分類】
   H04L 12/44 20060101AFI20181026BHJP
【FI】
   H04L12/44 B
【審査請求】有
【予備審査請求】未請求
【全頁数】37
【出願番号】特願2018-531755(P2018-531755)
(21)【国際出願番号】PCT/0/0
(22)【国際出願日】2017年6月5日
(31)【優先権主張番号】特願2016-154931(P2016-154931)
(32)【優先日】2016年8月5日
(33)【優先権主張国】JP
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】久保隅 創
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA01
5K033BA03
5K033CA12
5K033CB15
5K033DA15
(57)【要約】
データ交換制御部31は、第1帯域において相互にデータ交換する為に任意のデータを送信する際に、メッセージ送信要求がある場合には該送信データに付加する。メッセージ許可判定部32は、第1帯域中の相互のデータ交換によって得られるメッセージ送信要求に基づいて、自装置のメッセージ送信可否を判定する。メッセージ送信制御部33は、自装置のメッセージ送信可と判定された場合には、第2帯域内の所定のタイミングでメッセージを送信する。
【特許請求の範囲】
【請求項1】
第1帯域と該第1帯域より後の第2帯域を有する通信サイクル毎に、複数のノード装置が中継装置を介して相互にデータ交換するネットワークシステムであって、
前記複数のノード装置がそれぞれ、
メッセージ送信要求がある場合には前記第1帯域においてメッセージ送信要求を送信するデータ交換制御手段と、
前記第1帯域中に得られる前記メッセージ送信要求に基づいて、自ノード装置のメッセージ送信可否を判定するメッセージ許可判定手段と、
自ノード装置がメッセージ送信可と判定された場合には、前記第2帯域内の所定のタイミングでメッセージを送信するメッセージ送信制御手段とを有する、
ことを特徴とする制御ネットワークシステム。
【請求項2】
前記ネットワークシステムは、スター型トポロジの全二重回線のネットワークシステムであることを特徴とする請求項1記載の制御ネットワークシステム。
【請求項3】
前記所定のタイミングは、前記第2帯域の開始時点であることを特徴とする請求項1記載の制御ネットワークシステム。
【請求項4】
前記各ノード装置は、前記メッセージを前記第2帯域の開始時点で同時に送信を開始することを特徴とする請求項3記載の制御ネットワークシステム。
【請求項5】
前記データ交換制御手段は、自ノード装置のメッセージ送信要求数を前記メッセージ送信要求に付加し、
前記メッセージ許可判定手段は、前記第1帯域で得られた前記メッセージ送信要求数と、前記第2帯域内にシステム全体で送信可能な最大メッセージ数である上限値と、各ノード装置の優先順位に基づいて、前記各ノード装置のメッセージ送信許可数を決定することで自ノード装置のメッセージ送信許可数を決定することを特徴とする請求項1から4のいずれか1項に記載の制御ネットワークシステム。
【請求項6】
前記上限値は、下記の算出式(1)によって算出する、
上限値={単位時間−(中継装置段数×中継装置遅延)−((中継装置段数+1)×フレーム伝送遅延)}÷{(1フレームサイズ/伝送性能)+α}・・・(1)式
ことを特徴とする請求項5記載の制御ネットワークシステム。
【請求項7】
前記上限値は、
前記各ノード装置間の通信に掛かる時間である遅延時間を実測して最も長い遅延時間である最長経路遅延時間実測値を求めて、
該最長経路遅延時間実測値を用いる所定の算出式によって算出することを特徴とする請求項5記載の制御ネットワークシステム。
【請求項8】
前記上限値は、下記の算出式(2)によって算出する、
上限値 = {(単位時間−(最長経路遅延時間実測値 − (1フレームサイズ/伝送性能)))}/(1フレームサイズ/伝送性能) ・・・(2)式
ことを特徴とする請求項7記載の制御ネットワークシステム。
【請求項9】
1台以上の前記ノード装置が、前記上限値を算出する上限値算出手段を更に有する請求項5記載の制御ネットワークシステム。
【請求項10】
第1帯域と該第1帯域より後の第2帯域を有する通信サイクル毎に、複数のノード装置が中継装置を介して相互にデータ交換するネットワークシステムにおける前記各ノード装置であって、
メッセージ送信要求がある場合には前記第1帯域においてメッセージ送信要求を送信するデータ交換制御手段と、
前記第1帯域中に得られる前記メッセージ送信要求に基づいて、自ノード装置のメッセージ送信可否を判定するメッセージ許可判定手段と、
自ノード装置がメッセージ送信可と判定された場合には、前記第2帯域内の所定のタイミングでメッセージを送信するメッセージ送信制御手段とを有する、
ことを特徴とするノード装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スター型トポロジの全二重ネットワークにおいて、ネットワーク全体の伝送量の大容量化を実現するためのネットワーク伝送方式
【背景技術】
【0002】
プラント制御用伝送システムにおいては、システムを構成する各機器が定期的に相互に行う、リアルタイム性を保証したデータ通信(データ交換)と、各機器に搭載されるアプリケーションによるアクセス要求の発生に応じてイベント的に一方向アクセスを行うデータ通信(メッセージ通信)の2種類のデータ通信がある。
【0003】
通信サイクルを、リアルタイム性を保証したデータ通信を行う帯域(コモンメモリ伝送帯域;TS帯域)と、イベント的に一方向アクセスを行うデータ通信を行う帯域(メッセージ伝送帯域;MSG帯域)とに分けて、2種類のデータ通信を実現する場合もある。尚、“リアルタイム性を保証する”とは、例えば、定周期の各期間(TS帯域)内に、データ交換が必要な全ての機器間のデータ交換を完了することを意味する。
【0004】
データ交換を実現する為のネットワーク上での効率的な同報通信(ブロードキャスト通信)手法については、既に様々な手法が提案されているが、一例として特許文献1、2の従来技術がある。
【0005】
特許文献1では、各ノードの内蔵タイマによる時分割多重アクセス方式と、マスタノードからの同期化フレームによるスレーブノードの内蔵タイマ補正とを併用することで、各ノードからの送信タイミング重複を防ぎつつ効率の高い伝送を実現している。
【0006】
あるいは、例えば、特許文献2にも、特許文献1と同類の従来技術が、開示されている。
【0007】
メッセージ通信のようなイベント的に一方向アクセスを行うデータ通信は、ネットワークに参加している局の「単位時間当たりのメッセージ送信要求数」に“ばらつき”があり、「単位時間当たりのメッセージ送信要求数」が「伝送可能なメッセージ送信数」を上回ることがある。このため、「単位時間当たりの(通信サイクル毎の)送信可能数」に上限を設け、この上限以下でメッセージ通信を行う必要がある。そこで、ある単位時間内で送信できる局数を管理し、送信権を割り当てられた局がデータ通信を行うことで、「単位時間当たりの送信可能数上限」内でのデータ通信を実現している。
【0008】
データ通信を実現するためのメッセージ通信手法についてはすでにさまざまな手法が提案されているが、ここでは一例としてトークン方式がある。トークン方式では、マスタ局が各局からのメッセージ送信要求を受け付け、送信要求を通知した一部の局に対してトークンにて送信権を付与する。送信権を付与された局のみがメッセージ通信を行うことができ、送信権を付与された局はメッセージフレームをネットワーク回線上に送信する。「単位時間当たりの送信可能数上限」内で送信権を付与することで、単位時間当たりの送信可能数を超えずに、イベント的に一方向アクセスを行うデータ通信を実現している。
【特許文献1】特開2005−159754号公報
【特許文献2】国際公開番号WO2013/121568号
【発明の開示】
【0009】
特許文献1,2等の従来手法では、物理層をバスあるいはシリアルケーブルのカスケードとしているので、ブロードキャストにより一度に全ての他局へデータ送信することができる。ブロードキャスト送信されたデータの受信タイミングは、各ノード同時あるいはほぼ無視できる時間差であることが想定できる。
【0010】
ここで、IEEE802.3u(100BASE-TX)やIEEE802.3ab(1000BASE-T)などによるスター型トポロジが知られている。
【0011】
前述のトークン方式によるメッセージ通信手法を、Ethernetを物理層としたスター型トポロジの全二重回線へ適用しようとした場合、以下の課題がある。
【0012】
100BASE-TXや1000BASE-TなどのEthernet を伝送路とした全二重回線である場合で、かつトポロジとしてスター型を採用した場合、メッセージ通信に際しては、ある局が送信したフレームデータをスイッチングハブなどの中継装置にて中継することを前提とした伝送を行う構成となる。一般的にスイッチングハブなどの中継装置にて中継する場合、一定の中継遅延が発生するため、1局のフレームデータを全局に同報通信する場合、最大で、最大の中継経路に配置された中継装置の台数分の伝送遅延及び伝送時間が必要となる。
【0013】
この前提でトークン方式によるメッセージ通信を行った場合、送信権を通知するためのトークンフレーム伝送状態と、フレームを中継するため中継待ち状態であるため、伝送帯域の大半が未使用状態もしくはメッセージ通信以外の伝送状態となる。この為、ネットワーク全体の伝送効率が下がり大容量化を実現することができないという課題がある。
【0014】
本発明の課題は、スター型トポロジの全二重回線のネットワークシステムにおいて、ネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量の向上を図ることができる制御ネットワークシステム、そのノード装置等を提供することである。
【0015】
本発明の制御ネットワークシステムは、第1帯域と該第1帯域より後の第2帯域を有する通信サイクル毎に、複数のノード装置が中継装置を介して相互にデータ交換するネットワークシステムであって、下記の構成を有する。
【0016】
前記複数のノード装置がそれぞれ、下記の各手段を有する。
・メッセージ送信要求がある場合には前記第1帯域においてメッセージ送信要求を送信するデータ交換制御手段;
・前記第1帯域中に得られる前記メッセージ送信要求に基づいて、自ノード装置のメッセージ送信可否を判定するメッセージ許可判定手段;
自ノード装置がメッセージ送信可と判定された場合には、前記第2帯域内の所定のタイミングでメッセージを送信するメッセージ送信制御手段。
【図面の簡単な説明】
【0017】
【図1】(a)、(b)は、本例の制御ネットワークシステムの全体構成図である。
【図2】(a)、(b)は、ノードのドライバの処理を示すフローチャート図である。
【図3】本例のデータ送受信動作の一例を示す図である。
【図4】ノードの処理部の処理を示すフローチャート図である。
【図5】中継装置段数が1段のMSG帯域におけるメッセージ送受信動作例(その1)である。
【図6】中継装置段数が1段のMSG帯域におけるメッセージ送受信動作例(その2)である。
【図7】中継装置段数が2段の場合のネットワーク構成例である。
【図8】中継装置段数が2段のMSG帯域におけるメッセージ送受信動作例(その1)である。
【図9】中継装置段数が2段のMSG帯域におけるメッセージ送受信動作例(その2)である。
【図10】中継装置段数が3段の場合のネットワーク構成例である。
【図11】最長経路遅延時間の実測の為の動作例である。
【図12】図10のネットワーク構成例における最長経路を示す図である。
【図13】上限値の算出式について説明する為の図である。
【図14】本例の制御ネットワークシステムの機能構成図である。
【図15】上限値を求める処理方法を示すフローチャート図である。
【図16】上限値を求める具体例の処理フローチャート図である。
【図17】スター型トポロジにおける通信動作の具体例を示す図である。
【図18】従来手法を適用した場合の各局における処理部の処理例を示すフローチャート図を示す。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照して本発明の実施の形態について説明する。
図1(a)、(b)は、本例の制御ネットワークシステムの全体構成図である。
【0019】
図1(a)には、本例の制御ネットワークシステムの概略構成を示す。
本例の制御ネットワークシステムは、複数台のノード10が、1台以上の中継装置20を介して、スター型トポロジにて全二重の通信回線によって接続される構成である。そして、TS帯域とMSG帯域を有する通信サイクル毎に、TS帯域において各ノード10が中継装置20を介して相互にデータ交換するネットワークシステムである。
【0020】
また、特に説明しないが、例えば特許文献1,2等の先願の同期手法によって、全てのノード10の通信サイクルが同期しており、以ってMSG帯域の開始タイミングも同一となっていることを前提としている。尚、通信サイクルを同期させる方法は、先願の同期手法に限るものではなく、何等かの既存の手法によって同期させればよい。
【0021】
このような制御ネットワークシステムにおいて、本手法では、TS帯域において各ノード10が、相互にデータ交換する際にメッセージ送信要求がある場合にはその旨を示す情報(コマンドや要求数など)を当該データに付加する。TS帯域におけるデータ交換完了後、各ノード10がそれぞれ全ノード10のメッセージ送信要求の有無と要求数とに基づいて同一のアルゴリズムによって許可局と許可数を判定する。これより、MSG帯域の開始時から(トークン無しで)許可局全てがメッセージ送信を開始できる。
【0022】
トークンによる許可通知(送信権付与)が必要なくなるため、MSG帯域をメッセージ伝送のためだけに効率良く使用でき、以って従来よりも多くのメッセージを送信可能となる。つまり、ネットワーク全体の単位時間当たりのメッセージ伝送量の向上(増大させる)を実現することができる。
【0023】
また、許可局・許可数の判定には所定の上限値を用いる。この上限値は、MSG帯域内に送信される全メッセージが、中継装置の伝送可能帯域の上限内(MSG帯域内)で伝送されるように決定されている。これより、MSG帯域内に全てのメッセージ送受信が確実に完了するができることになる。
【0024】
図1の構成例の説明に戻る。
の通り本例の制御ネットワークシステムは、スター型トポロジで全二重回線の構成であり、図示の例では、システムを構成する各機器(ノード10)が、それぞれ、全二重回線(通信線1,2)を介してHUB(スイッチングハブ)等の中継装置20に接続している。尚、図示の例では、ノード10は、図示の局1、局2、局3、局4の4台があるものとする。
【0025】
そして、各ノード10は、中継装置20を介して、他のノード10と通信可能である。ここでは、通信線1がノード10から中継装置20へのデータ送信用(上り回線)、通信線2が中継装置20からノード10へのデータ送信用(下り回線)であるものとする。
【0026】
中継装置20は、一般的な既存のスイッチングハブ等であってよく、従ってその構成・動作については特に図示・説明はしないが、当然、データフレーム等を中継する機能等を有する。これは例えば、受信したデータフレームを一時的に記憶するRAM等の記憶部22を備え、当該一時的に記憶したデータフレームを宛先のノードに転送する処理部23(CPU等)等を備える。処理部23の内蔵メモリには予め所定のプログラムが記憶されており、処理部23のCPUがこのプログラムを実行することで、中継装置20のパケット中継機能が実現される。中継装置20のパケット中継機能は、一般的なものであり、ここでは特に詳細には説明しない。
【0027】
中継装置20は、各通信線1,2が接続される各ポート(不図示)を有しており、任意のポートを介して受信したデータフレームを、当該データフレームの宛先局に対応するポートを介して送信することで、中継・転送を行っている。
【0028】
例えば、図1の構成で局1から局4へデータ送信する場合、局1から通信線1を介して中継装置20へデータフレームが伝送されて、このデータフレームが、中継装置20で一時的に記憶された後、中継装置20から通信線2を介して局4へ転送されることになる。
【0029】
なお、本説明では中継装置20は、例えば、ノンブロッキングタイプのスイッチングハブ等を想定としているが、勿論、この例に限らない。中継装置20の転送制御部21は、送信数の総和が各ポートの送信性能上限(例えば1G(ギガ)bit/sec)内であれば、送信可能である。それ故、例えば後述する算出式(1)によって上限値を決定することが望ましいが、この例に限らない。算出式(1)による上限値の算出に関しては後に詳細に説明するものとする。
【0030】
従来技術では、上述したように、トークンによる送信権付与の為の通信でメッセージ帯域を消費しており、実質的にメッセージ伝送を行っていない状態が少なくない。この為、全体としてのメッセージ伝送効率が悪いことになる。
【0031】
これに対して、本手法では、メッセージ伝送に関してはマスタ/スレーブを無くし、以ってマスタがトークンによって許可を与えることもなく、効率良いメッセージ伝送を実現することができる。尚、の通り、マスタ/スレーブを無くすのはメッセージ伝送に係わることであり、特定の局(マスタ)がメッセージ伝送に係わるトークンの管理を行うようなものではないという意味である。従って、メッセージ伝送に係わること以外についてはマスタ/スレーブがあっても構わない。
【0032】
本例の制御ネットワークシステムは、例えば100BASE-TXや1000BASE-TなどのEthernet を伝送路とした全二重回線であって、かつトポロジとしてスター型を採用したものである(例えばLANなど)。従って1台以上の中継装置20を有する構成であるが、図では簡単のため中継装置20は1台のみ示すが、この例に限らない。
【0033】
また、本例の制御ネットワークシステムは、従来技術と同様に、システムを構成する各機器(ノード10;局)が、自局が備えるタイマによって、データ交換周期(通信サイクル)を生成すると共に、通信サイクル内にTC帯域やデータ交換に使用するTS帯域を生成するが、更にイベント的に一方向アクセスを行うデータ通信(メッセージ通信など)を行う帯域(メッセージ帯域;MSG帯域)も生成する。尚、TC帯域やTS帯域については、ここでは特に説明しない。
【0034】
イベント的に一方向アクセスを行う通信(メッセージ通信等)に関しては、ネットワークに参加している局の単位時間当たりのメッセージ送信要求数に“ばらつき”があり、要求数の同一単位時間当たりの合計が、「伝送可能なメッセージ送信数」を上回ることがある。そのため、「単位時間当たりの全体のメッセージ送信数」に上限値を設け、上限値以内で通信を行う必要がある。そこで、ある単位時間内で送信できる局数を管理し、許可された局のみがメッセージ通信を行うことで、「単位時間当たりの全体のメッセージ送信数」が上限値以内となるようにしている。
【0035】
本例の制御ネットワークシステムは、一例としては、システムを構成する各機器(ノード10)が、TS帯域において相互にデータ交換を行う必要がある。一例としては、例えば通信サイクル内のTS帯域内に全ノード10間のデータ交換を完了させる必要がある。つまり、一例としては、各通信サイクル毎にそのTS帯域内に、全ノード10が、それぞれ、自局の任意のデータを、他の全てのノード10に渡す必要がある。交換するデータは、例えば自局の制御対象機器に係わる何等かのデータ(センサ測定値など)であるが、この例に限らない。尚、各ノード10は、例えば何等かの制御対象機器(不図示)を制御するコントローラ等であるが、この例に限らない。
【0036】
一方で、メッセージ伝送帯域(MSG帯域)におけるメッセージ送受信は、1回の通信サイクル内のMSG帯域内に、その時点で発生したメッセージ全てを送受信しなければならないわけではない。しかしながら、伝送効率を高めて、1回の通信サイクルで出来るだけ多くのメッセージを送受信出来るようになることが望ましい。その一方で、の通り、MSG帯域の長さは予め決められているので、メッセージ送受信処理が完了する前にMSG帯域が終了するという事態が起こることは、避けなければならない。
【0037】
本手法は、メッセージ伝送帯域(MSG帯域)におけるメッセージ送受信の伝送効率を高めるものである。
【0038】
その為に、まず、TS帯域におけるデータ交換を利用する。つまり、メッセージ送信要求があるノード10は、TS帯域の送信データ(コモンメモリフレームと呼ぶ)に、メッセージ送信要求(要求数等)を付加する。のように、TS帯域内に、全てのノード10が、それぞれ、自局のデータを、他の全てのノード10に渡すので、メッセージ送信要求を他の全ノードが受信することになる。
【0039】
これより、各ノード10がそれぞれ、同一のアルゴリズムによってメッセージ送信権の割当てを決定することで、全てのノード10で同一の送信権割当結果が得られることになる。そして、各ノード10は、それぞれ、自局で決定した送信権割当結果から、自局のメッセージ送信可否や許可数などを認識することができる。
【0040】
のように、本手法では、各ノード10が、それぞれ独自に、他局からのメッセージ送信要求(要求数等)に基づいて、自局のメッセージ送信可否や許可数等を判断することができる。これより、メッセージ伝送帯域において、トークンを送受信する必要なく、自局が許可局であると認識したノード10は全て、直ちにメッセージ送信を行うことができる。例えば、全てのメッセージ送信許可局が、MSG帯域になったら直ちに同時にメッセージの送信を中継装置20に対して行うように構成する。これより、MSG帯域におけるネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量(スループット)の向上を図ることができる。
【0041】
また、同一のアルゴリズムによってメッセージ送信権の割当てを決定する処理に関して、全体の許可数が、所定の上限値を越えないようにすることで、MSG帯域内に全てのメッセージの送受信が完了するように図ることができる。これに関して、本手法によれば、上限値として適切な値を算出することができる。これは例えば後述する算出式(1)等を用いて算出するものであり、詳しくは後述する。また、上限値の算出機能を任意の1台以上のノード10に搭載することで、運用中にネットワーク構成が変わった場合などでも、新たな構成に応じた適切な上限値を算出することもできる。
【0042】
図1(b)に、図1(a)の制御ネットワークシステムの詳細構成例を示す。
図示の例では、各ノード10は、ドライバ11、処理部12、サイクルタイマ13、センドタイマ14、メッセージ用センドタイマ15等を有している。サイクルタイマ13は、ここでの詳細な説明は省略するが、通信サイクルを生成する為のタイマであり、且つ、全ノード10で同期されている。センドタイマ14も、ここでの詳細な説明は省略するが、TS帯域における自局のデータ送信タイミングを決定するタイマである。
【0043】
メッセージ用センドタイマ15は、各ノード10において、MSG帯域における自局のデータ送信タイミングを決定するものである。尚、従来の不図示のメッセージ用センドタイマは、マスタ局のみが備えていれば良く、そのタイムアウトによりマスタ局からトークンが送信されるものであった。
【0044】
メッセージ用センドタイマ15は、本例では、全てのノード10で同一タイミングでタイムアウトするように設定されている。つまり、全てのノード10において、そのメッセージ用センドタイマ15のタイムアウトが、MSG帯域の開始タイミングとなるように、設定されている。例えば、全てのノード10のメッセージ用センドタイマ15に同一の設定値が設定されており、且つ、サイクルタイマ13のタイムアウトの時に起動するようにしている。
【0045】
尚、メッセージ用センドタイマ15は必ずしも設ける必要はなく、センドタイマ14を、MSG帯域の開始タイミングでタイムアウトするように再起動するようにしても良い。
【0046】
処理部12は、ノード10のメインの処理を実行するものであり、例えば不図示の制御対象機器の制御、その状態を示す計測データ等の収集、サイクルタイマ13、センドタイマ14、メッセージ用センドタイマ15等の設定・起動の管理、送信データフレーム(パケット)の生成など、様々な処理を行う。生成したパケットはドライバ11に渡す。
【0047】
ドライバ11は、例えば、処理部12からの要求に応じて送信データフレームを他ノードへ送信したり、他ノードからの送信データフレームを受信するとこれを処理部12に渡す等、通信回線1、2を介した通信処理を行う処理部(通信専用プロセッサ等)である。
【0048】
通信線1,2は、ドライバ11に接続している。また、の通り、通信線1,2は中継装置20に接続している。ドライバ11は、送信データフレームを他ノードへ送信する場合、当該他ノード宛のパケットを通信線1を介して中継装置20に伝送する。また、他ノードからの送信パケットを中継装置20が通信線を介して転送してくると、これを処理部12に渡す。
【0049】
中継装置20は、図示の転送制御部21を有しており、転送制御部21がパケットの中継・転送を実行する。
【0050】
図2(a)、(b)は、ノード10のドライバ11の処理を示すフローチャート図である。尚、ドライバ11内蔵の不図示の演算プロセッサが、内蔵の不図示のメモリに予め記憶されているアプリケーションプログラムを実行することで、図2(a)、(b)の処理が実現される。
【0051】
図2(a)は、自局データ送信の際のドライバ11の処理を示す。
ノード10が有する処理部12(CPU/MPU等)は、所定のソフトウェア(プログラム)等を実行することで、所定の制御処理等を実行している。そして、この処理の1つとして自局のデータを送信するイベントが発生した場合(一例がセンドタイマ14のタイマアップ)、このデータと送信要求をドライバ11に渡す。
【0052】
ドライバ11は、データと送信要求を受けると(ステップS11)、このデータフレームを送信する(ステップS12)。これは、の通り、通信線1を介して中継装置20へ送信して中継させる。
【0053】
また、他局の送信データ(パケット)を受信する場合もある。この場合は、の通り、中継装置20が通信線2を介して転送してくる。
【0054】
図2(b)は、データ受信の際のドライバ11の処理を示す。
ドライバ11は、通信線2を介して任意のパケットを受信すると、図2(b)の処理を実行する。まず、受信パケットの送信元をチェックして、送信元が自局である場合には(ステップS21,NO)、このパケットを破棄する(ステップS23)。あるいは、同じパケットを既に受信済みである場合にも(ステップS24,YES)、このパケットを破棄する(ステップS26)。これらは何れも正常な状態では有り得ないことであり、何等かの異常があったと見做せるので、受信パケットを破棄する。
【0055】
ステップS24がNOの場合、すなわち異常が無く正常受信と見做せる場合には、受信パケットのデータを処理部12に渡す(ステップS25)。処理部12は、このデータを用いて何等かの処理を行うことになる。
【0056】
尚、上述した図2(a)、(b)の処理におけるパケットは、TS帯域で送受信するデータパケット(コモンメモリフレーム)、MSG帯域で送受信するメッセージのパケットのどちらであってもよい。
【0057】
尚、言うまでもないが、各パケット(データフレーム)には、送信元ノードや宛先ノードの識別番号(局IDなど)が付与されている。
【0058】
図3は、本例のデータ送受信動作に一例を示す図である。
本例では、従来技術と同様、サイクルタイマ13によって図3に示す通信サイクルが生成される。サイクルタイマ13は、起動→タイマアップ→起動→タイマアップ→起動・・・を繰り返し実行し、定周期の図示の通信サイクルを生成する。
【0059】
1つの通信サイクルは、図示のTC帯域とTS帯域とMSG帯域とに分割される。
TC帯域、TS帯域については特に詳細には説明しないが、TS帯域は、各ノード10が相互にデータ交換する為の帯域である。ここでは“相互にデータ交換”とは、全てのノード10が、他の全てのノード10に、自局のデータを渡すことを意味する。TS帯域において各ノード10が自局のデータを送信するタイミングは、そのノード10のセンドタイマ14によって決定される。全てのセンドタイマ14は、サイクルタイマ13のタイマアップ時に起動される。
【0060】
リアルタイム性の保証が必要なコモンメモリ伝送を、コモンメモリ伝送帯域(TS帯域)にて実施する。イベント的に一方向アクセスを行うメッセージ伝送は、別途、メッセージ帯域(MSG帯域)を設け、実施している。
【0061】
TS帯域における各ノードのデータ送信動作は、詳しい説明は省略するが、簡単に説明する。まず、各ノード10のセンドタイマ14は、予め相互に異なる値が設定されており、以って相互に異なるタイミングでタイマアップする。各ノード10は、自局のセンドタイマ14のタイマアップによって、自局のデータを送信する。このデータの宛先は他のノード10全てであり(ブロードキャスト)、中継装置20に渡すと、中継装置20が他のノード10全てに対して当該データを転送する。
【0062】
尚、ここでは、図3における中継装置20の“受信”“送信”動作における“送信”動作は、そのパケットの宛先全て(の通り本例では送信元以外の全ノード10)に送信することを意味するものとする。例えばTS帯域に関して図上に「局2」で示す矩形は、局2からの送信パケットを意味する(“局2パケット”等と記すものとする)。中継装置20は、図示のようにこの“局2パケット”を受信完了すると直ちに送信(転送)開始し、送信先は送信元(局2)以外の全局である。これより、図示のように、この“局2パケット”は、局1、局3、局4で“受信”されているが、局2では受信されていない。
【0063】
動作は更に詳しくは、中継装置20は、局2に対応するポートを介して“局2パケット”を受信開始すると、これを内蔵メモリ(RAM等)に記憶していく。そして、“局2パケット”の全データを内蔵メモリに記憶完了したら(受信完了したら)、この“局2パケット”を、局1に対応するポートと局3に対応するポートと局4に対応するポートとから一斉に送信する。
【0064】
TS帯域における各ノード10の送信パケット数は、予め決まっており、例えば図示の例では局1は常に1つのパケットのみであるが、局2は常に3つのパケットを送信することになる。各ノード10のセンドタイマ14の設定値は、各ノード10の送信パケット数に応じて予め決められている。
【0065】
以上は先願のTS帯域に係わる動作であるが、本手法では、TS帯域に係わり更に下記の動作を行う。
【0066】
すなわち、本手法では、各ノード10は、メッセージを送信する必要がある場合、TS帯域で送信するコモンメモリフレームの一部にメッセージ送信要求を示す情報(本例では要求数等)を付与することで、他のノード10全てに対して、メッセージ送信要求がある旨と要求数を通知している。
【0067】
各ノード10は、送信要求数が付与されたコモンメモリフレームを受信した場合、送信元のノード10の識別情報と共にメッセージ送信要求数を一時的に記憶する。そして、各ノード10は、それぞれ、後に、一時的に記憶したデータに基づいて、メッセージの送信許可局と許可数を決定する。この決定処理として全てのノード10が同一のアルゴリズムを用いることで、正常であれば全てのノード10で同じ決定結果が得られるはずとなる。
【0068】
例えば、各ノード10が、それぞれ、ラウンドロビン等の同一の優先順づけ判定を行い、送信権割り当て局を判断する。この時、全コモンメモリフレームが全てのノード10に正しく伝送できれば、全てのノード10においての通り同一の判断アルゴリズム(送信権割り当て局の判断アルゴリズムと呼ぶ)を適用することで、全てのノード10において同一の送信権割り当て結果(許可局と許可数)が得られることになる。
【0069】
各ノード10は、送信権割り当て局の判断結果を元に、自局のメッセージ送信可否を判断し(送信可である場合には更に送信許可数を認識して)、送信可能である場合に、MSG帯域の開始時点からメッセージフレームの送信を開始する。これは、本例ではメッセージ送信許可された全てのノード10がMSG帯域開始と同時にメッセージ送信開始することになるが、この例に限らない。
【0070】
メッセージ送信数の総和が中継装置20の各ポートの送信性能上限内であれば、送信可能である。それ故、例えば後述する算出式(1)によって上限値を決定することが望ましいが、この例に限らない。算出式(1)による上限値の算出に関しては後に詳細に説明するものとする。
【0071】
のように、本手法では、TS帯域におけるデータ交換を利用して、メッセージ送信要求があるノード10は、自局が送信するデータフレームにメッセージ送信要求(要求数等)を付加することで、送信要求の有無や要求数等を他のノード10全てに通知することができる。
【0072】
そして、TS帯域の最後には、全てのノード10が、それぞれ、自局を含む全局のメッセージ送信要求の有無や要求数を知ることができるので、各ノード10が各々送信権割り当て局を判断する処理を実行し(後述するステップS44など)、の通り同一の判断結果が得られることになる。これは、例えば、全局のメッセージ送信要求の有無や要求数と、予め決定されている上限値と、現在の各局の優先順位などに基づいて、メッセージ送信の許可局や許可数を決定する。
【0073】
図3に示す例の場合、局1と局2と局3にはメッセージ送信要求があり、局4にはメッセージ送信要求が無い。また、局1は要求数が‘3’、局2は要求数が‘1’、局3は要求数が‘4’である。
【0074】
また、ここでは、仮にシステム全体でMSG帯域中に3通のメッセージフレームを伝送可能であるものとし(上限値=3とする;尚、上限値の算出方法は後述する)、且つ、優先順位は仮に局2、局3、局4、局1の順で優先度付けが行われたとする。この場合、局2→局3→局4→局1の順で許可を割り当てていく。まず、局2は、MSG帯域内で送信可能な3通のメッセージフレームに対して、メッセージ送信要求が1であるので、すべてのメッセージフレームを送信可能となり、許可数=‘1’となる。続いて、局3は、MSG帯域内で送信可能な残りの2通のメッセージフレームに対して、メッセージ送信要求が4であるので、許可数は‘2’となる。これで許可数の合計が上限値に達したので、局1は許可されない(局4は要求を出していない)。
【0075】
そして、各ノード10は、判断処理(ステップS44など)により各要求ノードの許可/不許可と許可数を得ることで、自局の許可/不許可と許可数を認識することになる(後述するステップS45)。
【0076】
一例では判断処理の結果、全てのノード10がそれぞれ「許可局は局2と局3であり、局2の許可数は‘1’、局3の許可数は‘2’である」と判断することになる。これより、局2は、自局のメッセージ送信が許可され、許可数が‘1’であるものと認識し、局3は、自局のメッセージ送信が許可され、許可数が‘2’であると認識する。一方、局1は、自局のメッセージ送信が今回は不許可であったと認識する。
【0077】
これより、図示のように、局2と局3は、それぞれ、MSG帯域になったら、トークンを受信する必要なく、直ちに自局のメッセージ送信を開始する。これは、の通り、局2は1通のメッセージを送信し、局3は2通のメッセージを送信する。
【0078】
このように、トークンに係わる通信動作が必要ないため、MSG帯域開始時点から全許可局がメッセージ送信開始できるので、従来技術と比較して、メッセージ伝送効率が向上して、より多くのメッセージ伝送を行うことが可能となることが分かる。
【0079】
尚、図3のMSG帯域の動作に関して、例えば図示の「局3−1MSG」の矩形は、局3からの送信メッセージを意味する。また、図示の中継装置20の“受信”動作において、同タイミングで「局3−1MSG」と「局2MSG」が重なっているのは、この2つのメッセージの受信処理を同時並行的に行っていることを意味している。そして、その後、局3からの2通目のメッセージである「局3−2MSG」を受信している。
【0080】
そして、本例では、仮に、3つのメッセージ全てが、宛先が全局であるものとしており、これより図示の中継動作となっている。つまり、中継装置20は、まず「局2MSG」を送信元(局2)以外の全てのノード10に転送し、これより図示のように局1、局3、局4が「局2MSG」を受信している。これは、「局3−1MSG」等の他のメッセージについても同様の動作であり、その説明は省略する。
【0081】
尚、優先順位は、例えば所定のカウンタ(不図示)の現在のカウント値に基づいて決定される。このカウンタは図示していないがステップS34がYESとなる毎にカウントアップされる(+1インクリメント)。また、このカウンタは、本例では、1→2→3→4→1→2→3→4→1・・・というように、1〜4の間をサイクリックにカウントする。そして、その局番がカウント値と同一であるノード10が、最も優先順位が高いものとする。例えばカウンタのカウンタ値が‘3’であるときには、局3が最も優先順位が高くなり、この例では優先順位が高い順に、局3→局4→局1→局2となる。
【0082】
後述するステップS44の処理は、例えばのような一例の場合には、所定のアルゴリズム(後述する算出式(1))と、データ交換によって得られた各ノード10のメッセージ送信要求の有無と要求数と、上限値と、現在の優先順位とに基づいて、各ノードのメッセージ送信可否と許可数を決定する処理と言うことができる。
【0083】
図4は、ノード10の処理部12の処理を示すフローチャート図である。
尚、処理部12は、不図示のCPU/MPU等の演算プロセッサや不図示のメモリ等の記憶部を有しており、記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサがこのアプリケーションプログラムを実行することで、例えば図4や図15に示す処理が実行され、図14に示す各種処理機能が実現される。
【0084】
メッセージ送信に関しては、従来ではマスタ局で送信権割り当て局判定を行っていたが、本例では全ノード10でそれぞれ図4の処理を行うことで各々で送信権(送信許可数)割当て判定を行う。この判定に伴って自局のメッセージ送信可否と割当数が判定される。
【0085】
このように、本例では、トークンフレームによる送信権の付与を行わず、各局が能動的にメッセージ送信可否や割当数などを判断する。そして、自局がメッセージ送信可能である場合には、メッセージ伝送帯域になったらトークンを待つことなく自局のメッセージを送信する。よって、本例では、マスタ局、スレーブ局の区別は必要ない。
【0086】
図4の処理は、随時実行されるものであり、基本的には何等かのイベント待ち状態であり(ステップS31)、何等かのイベントが発生する毎に(ステップS32,YES)、発生したイベントの内容を判定して(ステップS33)それに応じた処理を実行する。
【0087】
すなわち、発生したイベントが、サイクルタイマ13のタイムアウト(サイクルT.O.)である場合には(ステップS34,YES)、ステップS35〜S38の処理を実行する。
【0088】
つまり、基本的には、センドタイマ14に所定の設定値をセットして(ステップS35)センドタイマ14を起動する(ステップS38)が、この起動前に、自局のメッセージ送信要求の有無を確認して、ある場合には(ステップS36,YES)、メッセージ送信要求数(単に要求数という場合もあるものとする)をセット&エントリーする(ステップS37)。そして、センドタイマを起動する(ステップS38)。尚、セットとはコモンメモリフレーム中に格納することであり、エントリーするとは不図示の“送信権管理を行うためのエントリーテーブル”(以下、エントリーテーブルと記す)に記憶することである。
【0089】
これによって後述するステップS40の処理によって要求数が付加されたコモンメモリフレームが送信されると、上述した中継装置20の中継処理によって、他の全てのノード10にコモンメモリフレームが渡されることで、他の全てのノード10にメッセージ送信要求数が渡されることになる。渡されたメッセージ送信要求数は、各ノード10の“エントリーテーブル”に記憶される。そして、各ノード10毎に、それぞれ、自局の“エントリーテーブル”に記憶された各局のメッセージ送信要求数等に基づいて、後述するステップS44の処理を実行することになる。
【0090】
ここで、上述したことから、本例では、ステップS35でセンドタイマ14にセットする設定値は、先願と同様、全てのノード10で相互に異なる設定値となるようにし、以って全てのノード10で相互に異なるタイミングでコモンメモリフレームが送信されるようにするが、この例に限らない。本手法は、メッセージ送信に関するものであり、コモンメモリフレームの送信方法については何でも良い。
【0091】
また、発生したイベントが、センドタイマ14のタイムアウト(センドT.O.)である場合には(ステップS39,YES)、自局のデータ(コモンメモリフレーム)を送信させる(ステップS40)。これは、自局のデータ(場合によってはメッセージ送信要求が付加されている)を、ドライバ11に渡すものである。これより、の通り、ドライバ11は、ステップS11のデータ&送信要求を受けることになり、ステップS12によりこのデータを送信することになる。宛先は全局(ブロードキャスト)であり、自局が接続している中継装置20に送信して、中継装置20で中継・転送してもらうことになる。
【0092】
更に、メッセージ用センドタイマ15に所定の設定値をセットして(ステップS41)起動する(ステップS42)。これは、ステップS35,S38の処理の際に一緒に、ステップS41,S42の処理を行うようにしてもよい。全てのノード10で同時にメッセージ用センドタイマ15がタイマアップするように構成するのであれば、その実現方法は何でも良い。特に、先願の同期化方法により、全てのノード10のサイクルタイマは同期しているので、これを基準にして全ノード10のMSG帯域開始タイミングを同一とすることは、容易に実現できる。
【0093】
尚、の起動後、メッセージ用センドタイマ15がタイムアウトするイベントが発生したときに、後述するステップS43の判定がYESとなることになる。のように、全てのノード10で同一タイミングでMSG帯域となり、送信許可されたノード10は直ちに1通目のメッセージを送信する。勿論、複数送信許可されたノードは、続いて、2通目以降のメッセージ送信も行うことになる。
【0094】
尚、ステップS38で起動したセンドタイマ14が、タイマアップするイベントが発生したときに、ステップS39がYESとなることになる。
【0095】
また、発生したイベントが、メッセージ用センドタイマ15のタイムアウト(センドT.O.)である場合には(ステップS43,YES)、ステップS44〜S47の処理を実行する。
【0096】
すなわち、まず、メッセージ送信許可局判定を行う(ステップS44)。この処理は、各ノード10のメッセージ送信許可数を決定する処理でもあり、それによって自局のメッセージ送信可否とメッセージ送信許可数が決定される(ステップS45)。
【0097】
そして、ステップS45の決定に基づいて、自局のメッセージ送信要求があり且つ送信が許可された場合には(ステップS46,YES)、自局のメッセージ送信許可数の分だけ、メッセージフレームを送信する(ステップS47)。
【0098】
一方、そもそも自局のメッセージ送信要求がない場合あるいはメッセージ送信が許可されなかった場合などには(ステップS46,NO)、メッセージ送信は行われない。
【0099】
また、発生したイベントが、コモンメモリフレーム受信である場合には(ステップS48,YES)、このコモンメモリフレームのデータを、不図示のコモンメモリの該当領域に格納する(ステップS49)。尚、ここでは、ステップS40の処理で送信されるフレームを、コモンメモリフレームと呼ぶものとする。図2(b)等の処理により、任意の他局がステップS40の処理により送信したコモンメモリフレームをドライバ11が受信し、これをドライバ11がステップS25により処理部12に渡すと、ステップS48の判定がYESとなることになる。
【0100】
また、受信したコモンメモリフレーム中にその送信元ノード10でステップS37により格納されたメッセージ送信要求数が含まれている場合には、メッセージ送信要求があったものと見做して当該要求数を送信元ノード10のIDなどと共に“エントリーテーブル”に追加記憶しておく(ステップS50)。このエントリーテーブル”は、後にステップS44の処理の際に参照される。尚、各フレームには、当然、送信元ノードのID(識別情報)等が含まれている。
【0101】
尚、特に図示していないが、メッセージフレームを受信した場合、ドライバ11が受信したメッセージを処理部12に渡し、処理部12は、当該メッセージフレームの宛先が自局である場合には当該メッセージフレームを取込み、宛先が自局ではない場合には当該メッセージフレームを破棄するようにしてもよい。
【0102】
のように本例では、コモンメモリフレームを受信した各ノード10(各局)は、それぞれが、送信元局のメッセージ送信要求を受け付ける。つまり、ネットワークに参加する各局(ノード10)からのメッセージ送信要求(要求数)を、各局がそれぞれ受け付け、各局がそれぞれ独自に、メッセージの送信許可局と割当数(送信許可数)を判定する(ステップS44)。各々が独自に判定しても、判定アルゴリズムは同一であるので、同一のデータが与えられれば同じ判定結果が得られることになる。つまり、各局からの全コモンメモリフレームが全て正しく伝送できれば、全ての局で、同一の割当て結果(判定結果)が得られることになる。各局は、自局におけるメッセージ送信権割当て判定結果を元に、自局のメッセージ送信可否と割当数を判定する。そして、メッセージ送信可能である場合には、メッセージフレームの送信を、全局が同期したメッセージ用センドタイマ15を元に同時に行っている。
【0103】
ステップS44のメッセージの送信許可局と割当数(送信許可数)の判定方法は、既存の任意の方法であってよく、例えば均等割当てや、あるいは“重み付けラウンドロビン”等の優先順付け割当てを行ってもよいし、あるいはこれらの組み合わせであってもよいし、他の任意の既存手法を用いても良い。何れにしても、この判定方法自体は、特に制限はなく、既存の何等かの手法や、当該既存手法の組み合わせなど、何でもよい。
【0104】
ステップS44のメッセージの送信許可局と割当数(送信許可数)の判定処理は、従来ではマスタ局のみが行っていた処理を、全てのノード10で各々実行するようにしたものと見做してもよく、従ってこれ以上詳細には説明しないが、割当数(送信許可数)の合計値が、所定の上限値を越えないようにする必要がある。
【0105】
ここで、のように、MSG帯域におけるシステム全体でのメッセージ送信数には上限がある。この上限値を越える数のメッセージが送信された場合、MSG帯域内に全てのメッセージの送受信が終わらないことになる。この上限値は固定的には決まらず、システムの構成・性能等に応じたものとなる。
【0106】
この様な上限値の算出方法について、以下、説明する。
本例では、上限値(単位時間当たりのメッセージ送信可能数)は、例えば下記の算出式(1)により算出する。
上限値={単位時間−(中継装置段数×中継装置遅延)−((中継装置段数+1)×フレーム伝送遅延)}÷{(1フレームサイズ/伝送性能)+α}・・・(1)式
【0107】
上限値は、算出式(1)で得られる値を、小数点以下切捨てしたものである。
【0108】
これによって求められる上限値は、単位時間(MSG帯域の長さ)から、中継装置20を経由した際の伝送遅延時間や伝送に係わる遅延時間等を差し引いた時間内で、メッセージ送達完了することができる最大メッセージ数(システム全体で送信可能なメッセージ数)であると言える。1つの局のみが上限値のメッセージ数のメッセージを送信した場合が、“メッセージ送達完了するまでに掛かる時間”が最も多くなると考えられる(但し、中継装置20が1段の場合は例外)。
【0109】
また、中継装置段数が増えると、中継装置遅延とフレーム伝送遅延が増加するため、伝送可能なフレーム数は減少する。算出式(1)によれば、中継装置段数が増えるほど、上限値が減少することになる。
【0110】
算出式(1)における各項目について、図5に示す一例を参照しながら、以下に説明する。尚、図5は、中継装置段数が1段の場合(図1の場合など)におけるMSG帯域におけるメッセージ送受信動作例である。
【0111】
・単位時間;MSG伝送帯域の長さ
・中継装置段数;中継装置20の台数
【0112】
・中継装置遅延;中継装置20における中継処理に掛かる時間。ここでは一例として、中継装置20がストア&フォワード方式である場合に応じて、中継装置20が1フレームを受信完了するのに掛かる時間とするが(図5)、この例に限らない。例えば、中継装置20がカットスルー方式である場合には、1フレームを受信完了しなくても途中で転送開始できるので、それに応じた中継装置遅延の値(図5の例より短くなる)を設定すればよい。何れにしても開発者等が適宜判断して設定すればよいが、最悪なケースに応じて(最も遅延時間が長い中継装置20に合わせて)設定値を考えることが望ましい。
【0113】
・フレーム伝送遅延;ノード10−中継装置20間のデータ伝送に掛かる時間;図5に示すように、例えば局1のフレーム送信開始時から中継装置20のフレーム受信開始時までに一定の遅延が生じる。尚、各ノード10−中継装置20間の伝送路の長さにバラツキがある等で実際のフレーム伝送遅延にバラツキがある場合、最悪値(最も長いもの)を予め開発者等が固定値として設定しておく。
【0114】
・伝送性能;ノード10−中継装置20間の伝送路上の伝送性能;本例では例えば1Gbit/sec等とするが、この例に限らない。
【0115】
・α;フレーム間ギャップ。例えば図5に示すような、1つのメッセージフレーム送信完了時から次のメッセージフレーム送信開始出来るまでに掛かる時間。
【0116】
算出式(1)において、(1フレームサイズ/伝送性能)は、図5に示すように、1フレームの伝送時間を意味する。また、αは、図5に示すように、1フレーム送信終了から次のフレーム送信開始までに掛かる時間である。つまり、実質的に、1フレーム送信に掛かる時間βは、“(1フレームサイズ/伝送性能)+α”と見做せることになる。
【0117】
算出式(1)は、『中継装置20が最初のメッセージフレームを転送開始するまでに掛かる時間(中継装置段数が1段の場合、図5における“局1-1MSG”に係わる「フレーム伝送遅延+中継装置遅延」)、及び、中継装置20が転送する“局1-1MSG”に係わるフレーム伝送遅延』を、単位時間から差し引いた時間を、時間βで除算することを意味する。
【0118】
例えば、開発者等が予め算出式(1)を用いて上限値を算出して、この上限値を全てのノード10に設定・記憶するようにしてもよい。但し、その後、運用中に中継装置20の数が変わる(中継装置段数が変わる;多くの場合、増設される)場合がある。これより、任意の1台以上のノード10に予め算出式(1)と各項目の値(ユーザが任意に決めて設定しておく)を記憶しておく。そして、各項目のうち“中継装置段数”に関しては、運用中に中継装置20の数が変わったときにユーザ等が新たな中継装置段数を全てのノード10に設定する。これより、任意のノード10は、“中継装置段数”以外の各項目の値と、新たな“中継装置段数”の値と、算出式(1)を用いて、新たな上限値を算出して記憶する。また、この新たな上限値を他のノード10に通知して記憶させる。
【0119】
その後は、各ノード10は、新たな上限値を用いて、メッセージ送信許可局と許可数を決定する処理を行うことになる。
【0120】
このように、各ノード10がそれぞれ運用中の任意のときに上限値を算出できる上限値算出機能を有する形態であっても構わない。
【0121】
図5に示す例では、上限値は‘4’であるものとする。
ここで、図5、図6は、例えば図1に示すような中継が1段(中継装置20が1台)のネットワーク構成の場合のメッセージ送受信動作を示す。また、この例では、全てのメッセージが、宛先を他の全てのノード10とした場合を示している。尚、図5、図6は、MSG帯域の動作のみを示し、TS帯域等の他の帯域については省略している。これは後述する図8、図9についても同様である。
【0122】
そして、図5では、1台のノード10が上限値一杯のメッセージ(つまり、4通のメッセージ)を、全て他のノード10全てを宛先として(ブロードキャストで)送信する場合の動作を示しており、図示の通り、MSG帯域内で4通のメッセージ全ての送受信が完了している。
【0123】
図6では、図5と同じネットワーク構成において、4台のノード全てがそれぞれ1通ずつメッセージを送信すると共に、全て他のノード10全てを宛先として(ブロードキャストで)送信する場合の動作を示している。
【0124】
この場合も、図示の通り、MSG帯域内で4通のメッセージ全ての送受信が完了している。
【0125】
中継装置段数が1段の場合には、4台のノード10が4通のメッセージ全て送信する場合も、4台のノード10それぞれが1通ずつメッセージ送信する場合も、全体として掛かる時間は同じとなる。
【0126】
一方、中継装置段数が2段の場合には、両者で全体として掛かる時間は異なるものとなる。これについて、以下、図7、図8、図9を参照して説明する。
【0127】
まず、図7には、中継装置段数が2段の場合のネットワーク構成例を示す。
この例では、相互に接続された2台の中継装置20(HUB−A、HUB−B)があり、HUB−Aには局1、局2、局3の3台のノード10が接続され、HUB−Bには局4のみが接続されている。
【0128】
図8、図9には、図7の2段のネットワーク構成におけるメッセージ送受信動作例を示す。
【0129】
2段の場合も、1段の場合と同様、上限値が‘4’であり且つ全メッセージが他の全ノード宛であるものとして、1つの局(ここでは局1)が4通のメッセージを送信する場合(図8)と、各局が1通ずつで計4通のメッセージを送信する場合(図9)とを示す。図8と図9とを比較すれば分かるように、1つの局が4通全てを送信する場合の方が、全メッセージ送受信完了までに掛かる時間が長くなる。
【0130】
図8に示すように、局1が4通のメッセージを順次送信し、HUB−Aがこの4通のメッセージを受信しつつ、受信完了したメッセージから順次転送を開始する。メッセージの宛先は送信元以外の全ノード(局2、局3、局4)であるので、転送先は、局2、局3と、局4に係わる中継装置であるHUB−Bとなり、図示のようにまず最初のメッセージ“局1-1MSG”が、局2と局3とHUB−Bとに転送される。この最初のメッセージ“局1-1MSG”は、HUB−Bにおいて局4に転送される。
【0131】
のことから、図示のように、局2、局3に関しては、MSG帯域開始から最初のメッセージ“局1-1MSG”を受信開始するまでに掛かる時間は、「中継装置遅延+局1からHUB−Aまでのフレーム伝送遅延+HUB−Aから局2、局3までのフレーム伝送遅延」=「中継装置遅延+(2×フレーム伝送遅延)」となる。
【0132】
一方、局4に関しては、MSG帯域開始から最初のメッセージ“局1-1MSG”を局4が受信開始するまでに掛かる時間は、「中継装置遅延+局1からHUB−Aまでのフレーム伝送遅延+HUB−AからHUB−Bまでのフレーム伝送遅延+HUB−Bから局4までのフレーム伝送遅延」=「中継装置遅延+(3×フレーム伝送遅延)」となる。
【0133】
これに対して、中継装置段数が2段の場合の算出式(1)における「受信開始から受信終了までに掛かる時間以外の時間は、「中継装置遅延+(3×フレーム伝送遅延)」となる。従って、本例において最も時間が掛かる局4に関しても、MSG帯域内に全てのメッセージを受信完了できることになる。
【0134】
一方、図9に示す例の場合、MSG帯域開始と同時に全ての局(局1、局2、局3、局4)がメッセージを送信する。これより、HUB−Aは局1、局2、局3からのメッセージ(計3通)を受信し、HUB−Bは局4からのメッセージを受信する。
【0135】
メッセージを受信完了すると、HUB−Aは3通のメッセージのうち例えば局1からのメッセージ“局1MSG”を転送する。宛先は送信元局以外の全局であるので、図示の通り、局2、局3と、HUB−Bに転送されることになる。同じタイミングで、HUB−Bは、局4からのメッセージをHUB−Aに転送することになる。
【0136】
これより、HUB−Aは、“局1MSG”を転送完了したら、続いて、受信済みの局2、局3、局4からのメッセージも順次転送する。これは、局2、局3からのメッセージは(局4に転送する為に)HUB−Bに転送するが、局4からのメッセージは送信元には転送しないのでHUB−Bには転送しない。
【0137】
図9の例では、局4は、MSG帯域開始時点から最初のメッセージ受信開始までに掛かる時間は、図8と同様であるが、3通のメッセージを受信完了すれば済むので(自局の送信メッセージ“局4MSG”を受信する必要はない)、図8に比べて1メッセージ分だけ早く、メッセージ送受信が完了することになる。
【0138】
ここで、上述した算出式(1)を用いた上限値(単位時間当たりのメッセージ送信可能数)の算出方法は、一例を示したものであり、この例に限らない。以下、算出方法の他の例について説明する。尚、ここでは、算出式(1)を用いた上限値の算出方法を“上限値算出方法(その1)”と呼び、以下に説明する後述する算出式(2)を用いる上限値の算出方法を“上限値算出方法(その2)”と呼ぶものとする。 また、以下の説明では、システムを構成する複数のノード10の中で、予め任意に決められた1つのノード10をマスタ局と呼び、それ以外のノード10は全てスレーブ局と呼ぶものとする。但し、このマスタ局は、例えばメッセージ送信権の管理等を行うマスタ局とは、異なるものである。の通り、本手法では、メッセージ送信権の管理等を行うマスタ局は、必要ない。本説明におけるマスタ局は、単に、後述する各ノード10間の通信時間(遅延時間)を実測する処理を主導する局と見做すこともできる。
【0139】
“上限値算出方法(その1)”では、算出式(1)で説明したように、予め設定される“中継装置段数”等を用いる必要がある。また、”中継装置段数”等を用いて計算した“単位時間当たりのメッセージ送信可能数”等のパラメータを、ネットワークに参加する全局に設定する必要がある。
【0140】
”中継装置段数”は、システム構成によって様々であり、プラント設備の拡張や縮小に伴って段数が変化する。この為、システム構成が変化した場合、当然ながら、新たな”中継装置段数”等を設定し直して算出式(1)で“単位時間当たりのメッセージ送信可能数”等のパラメータを再度求めて、当該パラメータをネットワークに参加する全局に対して再設定することが必要となる。その際に、設定のためのエンジニアリングコスト発生や、設定ミスによるシステムの異常停止発生など、プラント運用コスト増となる可能性がある。
【0141】
これに対して、“上限値算出方法(その2)”では、自動的に、各ノード10間の通信時間(遅延時間)を実測して、当該実測値に基づいて“上限値”を算出するので、設定コストや設定ミスが生じることはない。以って、プラント運用コスト増となることを防止できる。
【0142】
“上限値算出方法(その2)”では、まず、マスタ局が、自局と全てのスレーブ局との間の通信時間(遅延時間)をそれぞれ実測して、この実測結果からマスタ局からの経路(遅延時間)が最長となるスレーブ局を特定する。
【0143】
マスタ局は、続いて、特定したスレーブ局(自局からの経路が最長の局)に対して、他局との遅延時間測定を依頼する要求(最長遅延時間測定要求)を通知する。
【0144】
この最長遅延時間測定要求を受信した特定したスレーブ局は、自局と全ての他のスレーブ局との間の通信時間(遅延時間)をそれぞれ実測して、全ての遅延時間実測値の中で最長の遅延時間を、システム全体の“最長経路遅延時間の実測値”としてマスタ局に通知する。尚、全ての遅延時間実測値にはマスタ局と特定したスレーブ局との間の遅延時間も含まれる。
【0145】
ここで、マスタ局、“特定したスレーブ局”は、どちらも、自局と他局との遅延時間の実測は、既存の任意の方法によって実現してよく、例えば一例としてはWO2013/121568に記載の方法を用いるが、この例に限らない。WO2013/121568に記載の遅延時間実測方法は、マスタ局による実測を例にすると、マスタ局は遅延時間実測用の特定のパケットを任意のスレーブ局に送信し、任意のスレーブ局は、受信したパケットが特定のパケットである場合には直ちに返信用パケットを返信する。
【0146】
マスタ局は、この返信用パケットを受信することで、特定のパケットの送信時から返信用パケットの受信時までの経過時間を計測できる。この計測時間は、マスタ局と任意のスレーブ局との間のパケットの往復に掛かる時間を計測したことになり、つまり、この2つの局間の往復の通信時間の実測値である。よって、この計測値を2で除算することで(この計測値の半分の時間が)、マスタ局と任意のスレーブ局との間の通信時間(遅延時間)となる。
【0147】
マスタ局は、通知された“最長経路遅延時間の実測値”を受信すると、以下の算出式(2)を用いて、上限値(単位時間当たりのメッセージ送信可能数)を算出する。
上限値 = {(単位時間−(最長経路遅延時間実測値 − (1フレームサイズ/伝送性能)))}/(1フレームサイズ/伝送性能) ・・・(2)式
【0148】
マスタ局は、算出式(2)によって算出した上限値を、全てのスレーブ局へ通知する。
【0149】
各スレーブ局は、通知された上限値を保持する。そして、その後は、この上限値を用いて、上述した運用(メッセージ許可局や許可数の判定)を行うことになる。これは、勿論、マスタ局も同様である。
【0150】
任意の局の脱落や復旧が発生する毎に、上述した一例の手順で新たな上限値(単位時間当たりのメッセージ送信可能数)を算出して、この新たな上限値を用いてメッセージフレームの送受信を行う。
【0151】
上述したように、“上限値算出方法(その2)”によれば、システム構成の変化に対して、設定変更を行うことなく自動的に・動的に上限値(単位時間当たりのメッセージ送信可能数)を新たに算出することができる。以って、新たなシステム構成に応じた適切なメッセージ送信可能上限数で、メッセージ通信を行うことが可能となる。
【0152】
以下、“上限値算出方法(その2)”について、具体例を用いて、更に詳細に説明する。
【0153】
ここでは、ネットワーク構成が、図1(a)や図7に示す中継装置段数が1段や2段の構成から、図10に示すような中継装置段数が3段の構成に変更された場合を例にして説明するものとする。
【0154】
図10に示す構成では、局1、局2、局3、局4の4台のノード10を有し、これらのうち局3がマスタ局、それ以外がスレーブ局となっている。尚、既に述べた通り、本例におけるマスタ局は、“上限値算出方法(その2)”に係わる処理を主導する局であり、メッセージ送信権を管理するマスタ局とは、異なるものである。
【0155】
また、3台の中継装置20(HUB−A、HUB−B、HUB−C)を有している。HUB−Bには、HUB−A、HUB−Cと、局3が、接続されている。HUB−Aには局1と局2が接続されている。HUB−Cには局4が接続されている。
【0156】
尚、ノード10自体の構成・機能、中継装置20自体の構成・機能は、基本的には上述した図1(a)(b)や図7に示すものと同じであってよく、それ故、同一符号を付してある。但し、ここでの各ノード10は、“上限値算出方法(その2)”による上限値算出を実現する為の処理を、行うものである。
【0157】
図10に示す構成では、局1−局4間の通信には、3台の中継装置20(HUB−A、HUB−B、HUB−C)全てによって中継する必要がある為、局1−局4間が最長経路となる。
【0158】
図10に示す構成において上述した“上限値算出方法(その2)”の処理を実行する場合、まず、マスタ局である局3が、上述したように、自局と他の全てのスレーブ局との通信時間(遅延時間)を実測して、マスタ局から最も離れた(遅延時間が最長となる)スレーブ局を特定する。ここでは、仮に、局1が最長となるものとする(図示の点線矢印で示す経路が、最長であったものとする)。つまり、局1が特定局となるものとする。これより、局3は局1に対して最長遅延時間測定要求を通知する。
【0159】
この通知を受けた局1は、上述した自局と全ての他のスレーブ局との間の通信時間(遅延時間)をそれぞれ実測する処理を実行する。
【0160】
図11に、このような具体例の局1、局3の動作例を示す。
図11には、局3(マスタ局)が、特定局を局1とした後の動作例を示す。
【0161】
図11に示すように、具体例の場合には、まず、局3(マスタ局)が、コモンメモリ伝送帯域において、自局のデータを含むコモンメモリフレーム41に、最長遅延時間測定要求を示すコードと局1の局番とを付与して、ブロードキャストで送信する。
【0162】
このコモンメモリフレーム41は、各中継装置20で中継されて、各スレーブ局1,2,4に渡される。尚、これは2段の中継が行われるが(例えば局4に対してはHUB−BとHUB−Cとによる2段の中継が行われる)、図11では省略しており、1段であるかのように示している。この為、図11では、中継装置20による中継遅延時間は、実際とは異なる(実際には2段の中継に応じた中継遅延時間が掛かる)。
【0163】
各スレーブ局1,2,4は、受信したコモンメモリフレーム41に付与される局番と最長遅延時間測定要求を示すコードを参照し、これが自局宛の最長遅延時間測定要求であるか否かを判定する。
【0164】
自局宛の最長遅延時間測定要求であると判定したスレーブ局(ここでは局1)のみが、自局と全ての他のスレーブ局との間の通信時間(遅延時間)を実測する。この実測処理は、メッセージ伝送帯域において実行する。
【0165】
スレーブ局は、一方で、受信したコモンメモリフレーム41に、最長遅延時間測定要求を示すコードが付与され、かつ局番≠自局番であった場合には、他局宛の測定要求があったと判断する。そして、この場合には、一時的にメッセージ伝送は停止し、遅延時間測定に対応するモードとなる。このモードでは、メッセージ伝送帯域において自局宛のパケットを受信したら直ちに返信する処理を行う。また、このモード中にはの通り、通常のメッセージ伝送処理は行わない。
【0166】
尚、マスタ局も、コモンメモリフレーム41(最長遅延時間測定要求を含む)を送信したら、一時的にメッセージ伝送を停止するようにしてもよい。こうすることによって遅延時間測定とメッセージ伝送がかち合うことによる測定誤差を防止する。
【0167】
尚、図11では、この実測の為の動作の一部のみを示す。つまり、図11では局1−局2間の遅延時間の実測動作のみを示すが、局1−局4間についても後の通信サイクルのメッセージ帯域において、同様の動作により遅延時間を実測する。
【0168】
図11の例では、局1は、メッセージ帯域において、局2の局番が付与された遅延時間測定用パケット44を、ブロードキャスト送信する。このパケット44は、中継装置20で中継されて全てのノード10で受信されるが、局2のみが当該パケット44を受信したら直ちに返信用パケット46を返信する。
【0169】
この返信用パケット46は、各中継装置20で中継されて、各局1,3,4に渡されるが、局1以外は受信パケットを破棄する。局1は、遅延時間測定用パケット44の送信時点から返信用パケット46受信時までの経過時間を計測している。この計測時間の半分の時間が、局1−局2間の遅延時間の実測値となる。
【0170】
そして、図11には示していないが、その後、次の通信サイクルにおけるメッセージ伝送帯域で、局1は、今度は局4の局番が付与された遅延時間測定用パケット44を、ブロードキャスト送信する。局4は、当該パケット44を受信したら直ちに返信用パケット46を返信する。これより、局1は、局1−局4間の遅延時間を実測することになる。そして、この例では、この時点で、局1は、全ての他のスレーブ局との遅延時間の実測処理を、完了したものと判定して、取得した各遅延時間の中から、最も大きい遅延時間を抽出する。
【0171】
ここでは、一例として、“取得した各遅延時間”には、マスタ局−局1間の遅延時間も含まれるものとする。その為には、勿論、マスタ局からのコモンメモリフレーム41には、マスタ局−局1間の遅延時間も含まれている必要がある。この例の場合には抽出された“最も大きい遅延時間”が、最長経路遅延時間実測値となる。
【0172】
但し、この例に限らず、例えば“取得した各遅延時間”にはマスタ局−局1間の遅延時間は含まれない場合には、抽出された“最も大きい遅延時間”をマスタ局に通知して、マスタ局において“最も大きい遅延時間”とマスタ局−局1間の遅延時間の何れか大きい方を、最長経路遅延時間実測値とする。
【0173】
但し、本説明では、“最も大きい遅延時間”が最長経路遅延時間実測値となる例を用いて説明する。従って、局1において最長経路遅延時間実測値が得られることになり、その後、局1は、得られた最長経路遅延時間実測値を、例えば後述するようにしてマスタ局に通知する。
【0174】
尚、遅延時間の実測処理中も、各通信サイクルにおいて、全て局は、コモンメモリ伝送帯域におけるコモンメモリ伝送フレームの送受信は、行っている(中断しているのは、通常のメッセージ送受信処理である)。
【0175】
上述した処理によって、システム構成全体における最も通信に時間を要する経路を特定し、その遅延時間(最長経路遅延時間実測値)を得ることができる。
【0176】
図10のシステム構成例の場合、“システム構成全体における最も通信に時間を要する経路(最長経路)”は、図12に点線矢印で示す局1−局4間の経路となり、局1−局4間の遅延時間の実測値が、全ての遅延時間実測値の中で最も大きいものとなる。
【0177】
その後、次の通信サイクルにおけるコモンメモリ伝送帯域で、局1は、最長経路遅延時間実測値と“測定完了を示すコード”を、自局のコモンメモリ伝送フレームに含めて送信することで、マスタ局(局3)に通知する。
【0178】
マスタ局(局3)は、コモンメモリ伝送帯域で受信する各コモンメモリ伝送フレームをチェックして、特定局(局1)からのコモンメモリ伝送フレーム上の“測定完了を示すコード”の有無をチェックし、測定完了を示すコードがある場合は、この伝送フレームに含まれる最長経路遅延時間実測値を取得する。
【0179】
そして、取得した最長経路遅延時間実測値を用いて算出式(2)により、上限値(単位時間におけるメッセージ送信可能数上限)を求めて、全局に通知する。この通知は、例えばコモンメモリ伝送帯域におおいて自局のコモンメモリ伝送フレーム上に上限値を含めて送信することで実現するが、この例に限らない。各局は、通知された上限値により、自局が保持する上限値を更新する。
【0180】
マスタ局(局3)は、のように上限値の算出と各局への通知を行った後、自局のコモンメモリ伝送フレーム上の“最長遅延時間測定要求を示すコード”を削除する。
【0181】
これより、各スレーブ局は、マスタ局からのコモンメモリ伝送フレーム上に“最長遅延時間測定要求を示すコード”無しと判断したら、メッセージ送信の中止を解除して、メッセージ送信可能な状態に戻る。当然、その後は、通知された上限値を用いて、メッセージ通信を行うことになる。
【0182】
尚、上述した一例ではマスタ局が一元管理して上限値を算出して各局に通知したが、この例に限らない。例えば、特定局(局1)が、最長経路遅延時間実測値を全ての局に通知し、全局それぞれで最長経路遅延時間実測値と算出式(2)を用いて上限値を算出する構成でもよい。
【0183】
ここで、以下、算出式(1)(2)について更に説明する。
の通り、算出式(1)は下記の内容となる。
上限値={単位時間−(中継装置段数×中継装置遅延)−((中継装置段数+1)×フレーム伝送遅延)}÷{(1フレームサイズ/伝送性能)+α}・・・(1)式
【0184】
の通り、算出式(2)は下記の内容となる。
上限値 = {(単位時間−(最長経路遅延時間実測値 − (1フレームサイズ/伝送性能)))}/(1フレームサイズ/伝送性能) ・・・(2)式
【0185】
これら算出式(1)(2)に共通の考え方は、下記の算出式(3)で表わすことができる。
上限値 = ((単位時間−(最長経路遅延時間))/(1フレームサイズ/伝送性能) ・・・ (3)式
【0186】
算出式(1)における“(中継装置段数×中継装置遅延)+((中継装置段数+1)×フレーム伝送遅延)”が、算出式(3)における“最長経路遅延時間”に相当する。
【0187】
算出式(2)における“(最長経路遅延時間実測値 − (1フレームサイズ/伝送性能)”が、算出式(3)における“最長経路遅延時間”に相当する。
【0188】
図13は、算出式(特に算出式(2))について説明する為の図である。
【0189】
図13には、図10のシステム構成において、任意の通信サイクルのメッセージ伝送帯域において局1のみがメッセージを送信し、且つ、4通のメッセージを送信した場合のメッセージ送受信の様子を示す。尚、メッセージ伝送帯域の長さが単位時間となる。
【0190】
図では、メッセージを矩形で示し、4通のメッセージを区別する為に、それぞれ、矩形内に「局1-1 MSG」、「局1-2 MSG」、「局1-3 MSG」、「局1-4 MSG」と記す。図示のように、局1は、まず最初にメッセージ「局1-1 MSG」を送信し、続けて、メッセージ「局1-2 MSG」、「局1-3 MSG」、「局1-4 MSG」の順に送信している。
【0191】
また、の通り、図10のシステム構成例では、局1−局4間が最長経路となる。
算出式(3)における“最長経路遅延時間”は、最長経路となる局間で送信側局のメッセージ送信開始から受信側局のメッセージ受信開始までに掛かる時間に相当する。
【0192】
“最長経路遅延時間”は、図13の例の場合、図示の太線点線で示す時間、すなわち局1におけるメッセージ「局1-1 MSG」送信開始時から、局4がこのメッセージ「局1-1 MSG」を受信開始する時点までの時間となる。
【0193】
図13に示す例では、図示のように、単位時間から“最長経路遅延時間”を差し引いた残りの時間が、局4が4通のメッセージ全てを受信開始から受信完了するまでに必要な時間、すなわち「(1フレームサイズ/伝送性能)×4」となっている。つまり、この例では、算出式(3)による上限値が‘4’となる。
【0194】
一方、図13の例では、算出式(2)における“最長経路遅延時間実測値”は、図示の一点鎖線で示す時間となる。つまり、局1におけるメッセージ「局1-1 MSG」送信開始時から、局4におけるメッセージ「局1-1 MSG」受信完了時までの時間となる。これは、遅延時間の実測では、受信側局は、パケットを受信完了してから返信を行うためである。つまり、算出式(2)における“最長経路遅延時間実測値”は、算出式(3)における“最長経路遅延時間”よりも、受信側局が1メッセージを受信開始から受信完了するのに掛かる時間(図上、2点鎖線で示す)の分だけ、長くなる。この為、算出式(2)ではこの分を差し引くことで、つまり“(最長経路遅延時間実測値 −(1フレームサイズ/伝送性能)”によって、算出式(3)における“最長経路遅延時間”に相当する時間を求めている。
【0195】
マスタ局は、システム構成が変化したことを検出する毎に(例えば任意の局の脱落や復旧が発生する毎に)、上述した新たな上限値の決定・設定の処理を実行開始する。例えばマスタ局は、一定期間フレームを受信できない局を脱落と判断した場合や、これまで存在しなかった局番からのフレームを受信し新規加入または復旧と判断した場合に、上述した新たな上限値の決定・設定の処理を開始する。
【0196】
上述した“上限値算出方法(その2)”によれば、システム構成の変化に対して、ユーザが設定変更を行うことなく自動的に、新たなシステム構成に応じた最適な上限値(単位時間におけるメッセージ送信可能数上限)を決定・設定できる。新たなシステム構成に応じた最適なメッセージ送信可能数上限でメッセージ通信を行うことが可能となる。
【0197】
図14は、本例の制御ネットワークシステムの機能構成図である。
本例の制御ネットワークシステムは、第1帯域と第2帯域を有する通信サイクル毎に、第1帯域において複数のノード10が1台以上の中継装置20を介して相互にデータ交換するネットワークシステムである。第1帯域の一例がTS帯域であり、第2帯域の一例がMSG帯域である。
【0198】
尚、処理部12は、不図示のCPU/MPU等の演算プロセッサや不図示のメモリ等の記憶部を有しており、記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサがこのアプリケーションプログラムを実行することで、例えば図14に示すノード10の各種処理機能が実現される。
【0199】
図示の例は、ノード10は、データ交換制御部31、メッセージ許可判定部32、メッセージ送信制御部33、上限値算出部34を有する。
【0200】
データ交換制御部31は、第1帯域において相互にデータ交換する為に任意のデータを送信する際に、メッセージ送信要求がある場合には該送信データに付加する。
【0201】
メッセージ許可判定部32は、第1帯域中に相互のデータ交換によって得られるメッセージ送信要求に基づいて、自装置のメッセージ送信可否を判定する。
【0202】
メッセージ送信制御部33は、自装置のメッセージ送信可と判定された場合には、第2帯域内の所定のタイミングでメッセージを送信する。
【0203】
所定のタイミングは、例えば、第2帯域の開始時点である。
メッセージ許可判定部32は、例えば、各ノード10のメッセージ送信可否を判定することで、自装置のメッセージ送信可否を判定する。
【0204】
例えば、各ノード10の各メッセージ許可判定部32が同一のアルゴリズムを用いることで、各ノード10のメッセージ送信可否の判定結果が同一となる。これより、各ノード10がそれぞれ独立して個々に判定を行って自局の判定結果に従ってメッセージ送信しても、システム全体としてメッセージ送受信動作に何等問題が生じることはない。
【0205】
また、例えば、データ交換制御部11は、自装置のメッセージ送信要求数を相互交換の為の送信データに付加する。
【0206】
この場合、例えば、メッセージ許可判定部32は、相互のデータ交換によって得られるメッセージ送信要求数と、第2帯域内にシステム全体で送信可能な最大メッセージ数である上限値とに基づいて、各ノード10のメッセージ送信許可数を決定することで、自装置のメッセージ送信許可数を決定する。
【0207】
また、例えば、メッセージ許可判定部32は、全てのメッセージ送信許可数の合計値が上限値以下となるように、各ノード10のメッセージ送信許可数を決定する。
【0208】
また、例えば、メッセージ許可判定部32は、メッセージ送信要求数と上限値と、現在の各ノード装置の優先順位とに基づいて、各ノード10のメッセージ送信許可数を決定する。
【0209】
また、上限値算出部34は、上限値を算出する。これは、例えば算出式(1)を用いて、上限値を算出する。あるいは、“上限値算出方法(その2)”によって上限値を算出する。
【0210】
“上限値算出方法(その2)”によって上限値を算出する手法の場合には、例えば図15に示すように、まず、各ノード10間の遅延時間を実測して最も長い遅延時間である最長経路遅延時間実測値を求める(ステップS61)。そして、この最長経路遅延時間実測値を用いる所定の算出式によって、上限値を算出する(ステップS62)。所定の算出式は、例えば一例が算出式(2)であるが、この例に限らない。
【0211】
最長経路遅延時間の実測方法は、例えば一例としては図16に示す方法であるが、この例に限らない。
【0212】
図16に示す処理例では、まず、マスタ局の上限値算出部34が、自局と各スレーブ局との通信時間(遅延時間)を実測し(ステップS71)、遅延時間が(換言すれば、マスタ局からの経路が)最大となるスレーブ局を特定し(ステップS72)、この特定した局(特定局)に対して遅延時間実測を依頼する(ステップS73)。
【0213】
特定局の上限値算出部34は、自局と各スレーブ局との遅延時間を実測することで(ステップS81)、実測した各遅延時間のなかで最大のものを最長経路遅延時間の実測値とする(ステップS82)。尚、例えば一例としては、“実測した各遅延時間”には、マスタ局−特定局間の遅延時間も含まれている。この例の場合、マスタ局は、ステップS73の依頼の際に、マスタ局−特定局間の遅延時間を特定局へ通知する。
【0214】
特定局は、例えば、最長経路遅延時間実測値を、マスタ局へ通知する(ステップS83)。この通知を受信したマスタ局は、通知された最長経路遅延時間実測値を用いて所定の算出式によって上限値を算出する(ステップS74)。所定の算出式は、例えば一例が算出式(2)であるが、この例に限らない。
【0215】
そして、算出した上限値を、各スレーブ局に通知する(ステップS75)。
マスタ局、各スレーブ局は、これ以降は、算出された新たな上限値を用いて、上述したメッセージ送信管理を行うことになる。
【0216】
尚、最長経路遅延時間の実測値を用いた算出式(2)による上限値の算出処理は、のようにマスタ局の上限値算出部34が行っても良いが、この例に限らず、任意のスレーブ局の上限値算出部34で行っても良い。何れの場合でも、算出した上限値は全ての他局に通知する。あるいは、上限値の算出処理は各局の上限値算出部34でそれぞれ行ってよく、この場合には他局に上限値を通知する必要はないが、特定局は最長経路遅延時間実測値を全ての他局に通知する必要がある。何れにしても、上限値の算出処理を行う局に対して、最長経路遅延時間実測値を渡す必要はある。
【0217】
あるいは、最長経路遅延時間の実測値の求め方は、の例に限らず、例えば全てのノード10が、それぞれ、自局と全ての多局との遅延時間を実測して、全てのノード10の全ての遅延時間実測値を任意のノード10に集めて、任意のノード10で最長経路遅延時間の実測値の求めるようにしてもよい。この様に、最長経路遅延時間の実測値の求め方は、様々な方法であってよく、要するに「各ノード10間の通信に掛かる時間である遅延時間を実測して最も長い遅延時間である最長経路遅延時間実測値を求める」ものであれば、何でも良い。
【0218】
尚、マスタ局は、メッセージ送信権管理に係わるマスタ装置を意味するものではない。本手法では、メッセージ送信権管理に係わるマスタ装置は、必要ない。マスタ局は、単に、新たな上限値算出の為の処理を開始する局であると見做しても構わない。
【0219】
上限値算出部34による算出式(2)を用いた上限値の算出処理は、例えば、任意の局の脱落や加入、復旧の発生を検知する毎に、実行される。これより、システム構成の変化(局の脱落/加入や復旧など)が生じても、自動的に、変化後のシステム構成に応じた適切なメッセージフレーム送信可能数上限に調節しながら、メッセージフレームの伝送を行うことができる。
【0220】
尚、データ交換制御部31、メッセージ許可判定部32、メッセージ送信制御部33、上限値算出部34の各処理機能は、例えば、処理部12によって実行され、あるいは処理部12とドライバ11とにより実行される。処理部12やドライバ11は、内蔵する不図示のCPU/MPU等が、内蔵する不図示のメモリに予め記憶されているプログラムを実行することで、データ交換制御部31、メッセージ許可判定部32、メッセージ送信制御部33、上限値算出部34の各処理機能を実現させる。
【0221】
本発明によれば、スター型トポロジの全二重ネットワークにおいて、ネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量の向上を図ることができ、単位時間当たりに、従来より多くのメッセージを送ることができるようになる。
【0222】
最後に、本発明との比較の為に、従来手法をスター型トポロジのネットワークに適用した場合について、図17、図18に示し、以下、説明するものとする。
【0223】
図17に、スター型トポロジのネットワークシステムにおける通信動作の具体例を示す。
【0224】
尚、ここではスター型トポロジのネットワークシステムの構成は特に示さないが、図17に示すように、4台のノード100(局1、局2、局3、局4)と、1台の中継装置(HUB)110を有する構成であるものとする。図示しないが、各ノード100は、それぞれ、中継装置110と通信線により接続しており、中継装置110を介して他のノード100とデータ送受信を行う。中継装置110は、任意のノード100から送信された任意のデータフレームを受信すると、これを内蔵メモリに一時的に記憶した後、宛先のノード100へ中継・転送する。
【0225】
中継装置110は、各通信線に接続する各ポートを有しており、どのポートにどのノード100の通信線が接続されているのか認識しており、宛先のノード100に対応するポートから、一時的に記憶したデータフレームを送信することで、中継・転送を行うことになる。
【0226】
図17に示す例では、通信サイクルを複数の帯域に時分割しており、ここでは図示のコモンメモリ伝送帯域(TS帯域)、メッセージ伝送帯域(MSG帯域)等に時分割している。
【0227】
TS帯域は、リアルタイム性を保証したデータ通信(データ交換)を行う帯域であり、全ての各ノード100がそれぞれ自装置のデータを他の全てのノード100に渡す必要がある。
【0228】
TS帯域におけるデータ送受信動作は、図示の例では先願(特許文献1,2)等と同様であり、ここでは特に詳細には説明しないが、全ノード100が相互に異なるタイミングで自装置のデータを送信している。このデータの宛先は全てブロードキャスト(自局以外の全局)であり、送信先は中継装置110となる。これより、中継装置110は、受信したデータを、その送信元以外の全局に転送する。この様にして、全ての各局が、全ての他局に自ノードのデータを渡すことができる。
【0229】
ここで、図示の例では、局3がマスタ局であり、それ以外の局は全てスレーブ局であるものとする。そして、メッセージ送信要求がある局は、TS帯域において自局のデータを送信する際に、この送信データにメッセージ送信要求を付加する。の通り、この送信データは全局に渡されるので、マスタ局である局3にも渡され、以って局3にメッセージ送信要求が渡されることになる。
【0230】
図示の例では、局1、局2、局3が(つまり局4以外は)、メッセージ送信要求を付加して送信している。尚、複数のデータフレームを送信する局は、例えば最初のデータフレームにのみメッセージ送信要求を付加して送信する。
【0231】
そして、マスタ局である局3が、これらメッセージ送信要求に基づいて、何等かの既存の許可局判定方法(例えばラウンドロビン等の優先順付けにより判定する)、許可局を決定する。そして、トークンフレームにて送信権割り当て局情報(割り当て局の局番等)を各局に通知する。図示の例では、局2をメッセージ送信許可局としたものとする。これより、局3は、MSG帯域になると、局2を許可するトークン101を送信する。これは図示の例では全局宛(ブロードキャスト)でトークン送信し、これより中継装置110はこのトークン101を送信元以外の全局(局1、局2、局4)へ転送する。
【0232】
そして、各局は、受信したトークン101より自局のメッセージ送信可否を判断し、送信可能である場合に、メッセージの送信を行う。ここではの通り、局2に送信権が割り当てられているので、局2は、トークン101を受信すると、自局のメッセージフレーム102(図示の“局2MSG”)を送信する。
【0233】
尚、図示の例では、このメッセージ102は全局宛(ブロードキャスト)であり、これより中継装置110はこのメッセージ102を送信元以外の全局(局1、局3、局4)へ転送する。
【0234】
尚、図には示していないが、マスタ局(局3)は、複数局に許可を与える場合には、続いて更に別の局を許可するトークンフレームを送信し、と同様に、許可された局がこのトークンフレームを受信すると、自局のデータを送信開始することになる。
【0235】
図18に、従来手法を適用した場合の各局における処理部の処理例を示すフローチャート図を示す。
【0236】
処理部は、特許文献2等の既存の局同期方法によってマスタ局のタイマと同期されたサイクルタイマと、コモンメモリおよびメッセージの伝送を行うためのセンドタイマを用いて、各タイマのタイムアウトイベントや各種フレームの受信イベントごとに特定の処理を行う。
【0237】
図18の処理は、随時実行されるものであり、基本的には何等かのイベント待ち状態であり(ステップS101)、何等かのイベントが発生する毎に(ステップS102,YES)、発生したイベントの内容を判定して(ステップS103)それに応じた処理を実行する。
【0238】
すなわち、発生したイベントが、サイクルタイマのタイムアウト(サイクルT.O.)である場合には(ステップS104,YES)、ステップS105〜S110の処理を実行する。
【0239】
つまり、基本的には、コモンメモリ用センドタイマに所定の設定値をセットして(ステップS105)当該コモンメモリ用センドタイマを起動する(ステップS110)が、この起動前に、ステップS106〜S109の処理を実行する。
【0240】
すなわち、まず、自局のメッセージ送信要求の有無を確認して、ある場合には(ステップS106,YES)、メッセージ送信要求をセットする(ステップS107)。尚、セットするとは、コモンメモリフレーム中に格納することである。これによって後述するステップS112の処理によってコモンメモリフレームが送信されると、HUB等の中継装置による中継処理によって、全ての局で当該コモンメモリフレームを受信することになる。これより、当然、マスタ局もコモンメモリフレームを受信することになり、以ってメッセージ送信要求を認識することになる。
【0241】
更に、自局がマスタ局である場合には(ステップS108,YES)、自局のメッセージ送信要求をエントリーする(ステップS109)。尚、エントリーするとは、例えば不図示の「“送信権管理を行うためのエントリーテーブル”に記憶する」ことである。尚、後述するステップS122のように他局のメッセージ送信要求もエントリーする。そして、後述するステップS117では、エントリーされたメッセージ送信要求に基づいて、許可局判定を行うことになる。
【0242】
また、発生したイベントが、コモンメモリ用センドタイマのタイムアウト(コモンメモリ用センドT.O.)である場合には(ステップS111,YES)、つまりTS帯域における自局のデータ送信タイミングとなった場合には、自局のデータ(コモンメモリフレーム)を送信する(ステップS112)。これは、自局のデータ(コモンメモリフレーム)を、場合によってはメッセージ送信要求を付加して、不図示のドライバを介して送信するものである。
【0243】
ステップS112に続いて、更に、メッセージ用センドタイマをセットして(ステップS113)、当該メッセージ用センドタイマを起動する(ステップS114)。尚、この起動後、メッセージ用センドタイマがタイムアウトしたときに、後述するステップS115の判定がYESとなることになる。尚、ステップS113,S114の処理は、マスタ局のみが行うようにしてもよい。
【0244】
また、発生したイベントが、メッセージ用センドタイマのタイムアウト(メッセージ用センドT.O.)である場合には(ステップS115,YES)、自局がマスタ局である場合には(ステップS116,YES)、“送信権管理を行うためのエントリーテーブル”の記憶内容に基づいて、メッセージ送信許可局判定を行って、判定結果に応じたトークンフレームを生成して(ステップS117)、当該トークンフレームを送信する(ステップS118)。
【0245】
尚、ステップS117のメッセージ送信許可局判定処理は、既存の任意の方法を用いればよく、特に説明しないが、例えば一例としては、均等割当てや、あるいは“重み付けラウンドロビン”等の優先順付け割当てを行ってもよいし、あるいはこれらの組み合わせであってもよいし、他の任意の既存手法を用いても良い。何れにしても、この判定方法自体は、特に制限はなく、既存の何等かの手法や、当該既存手法の組み合わせなど、何でもよい。
【0246】
また、発生したイベントが、コモンメモリフレーム受信である場合には(ステップS119,YES)、このコモンメモリフレームの受信処理を行う(例えば不図示のコモンメモリの該当領域に格納する)(ステップS120)。
【0247】
更に、自局がマスタ局である場合には(ステップS121,YES)、受信したコモンメモリフレームにメッセージ送信要求が付加されている場合には、この他局のメッセージ送信要求をエントリーする(ステップS122)。
【0248】
そして、発生したイベントが、ステップS118でマスタ局から送信されたトークンフレームの受信である場合には(ステップS123,YES)、このトークンフレームには許可局の局番等が含まれているので、これを参照することで自局が許可局であるか否かを判定し(ステップS124)、自局が許可局である場合には(自局に送信権を与えられた場合には)(ステップS125,YES)、自局のメッセージフレームを送信する(ステップS126)。
【0249】
のように、従来手法をスター型トポロジのネットワークシステムに適用した場合、主にトークンの送受信に係わる時間の分、効率が悪くなり、MSG帯域内に送受信可能なメッセージ数が少なくなる。
【0250】
これに対して、上述した本手法によれば、のようにこの様な問題を解決できる。
本発明の制御ネットワークシステム、そのノード装置等によれば、スター型トポロジの全二重回線のネットワークシステムにおいて、ネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量の向上を図ることができる。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【国際調査報告】

[広告欄]

ログインすれば広告は減ります

ログインすれば広告は減ります