(57)【要約】【課題】通信時間帯域が制限されているリング形状ネットワークにおけるメッセージ通信において、より効率的にメッセージ帯域を利用することが可能なメッセージ伝送装置、及びメッセージ伝送方法を提供する。【解決手段】各通信局間で送受信する伝送フレームに、最終フレーム情報（Ｌ＝１）と、メッセージ帯域残り時間情報（Ｒ＿ＴＩＭＥ）とを付加する。そして、各送信要求局は、Ｌ＝１となる伝送フレームを受信したとき、Ｒ＿ＴＩＭＥ≧自局送信メッセージ伝送時間であるとき、受信した伝送フレームの最終フレーム情報をリセットすると共に、自局送信メッセージと、最終フレーム情報（Ｌ＝１）と、メッセージ帯域残り時間（Ｒ＿ＴＩＭＥ＝Ｒ＿ＴＩＭＥ−自局送信メッセージ伝送時間）とを付加した伝送フレームを送出する。【選択図】      図３
2010093551.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信局のうち、一つの通信局をマスタ局、他の通信局をスレーブ局とし、各通信局をリング状に接続したリング形状ネットワークに伝送フレームを周回させるメッセージ伝送装置であって、
前記伝送フレームは、連続的に送信される伝送フレームのうちの最終フレームであるか否かを示す最終フレーム情報と、メッセージ交換が可能な帯域の残り時間を示すメッセージ帯域残り時間情報とを少なくとも有し、
前記マスタ局は、前記メッセージ交換が可能な帯域の開始時に、前記最終フレームであることを示す最終フレーム情報を付加した伝送フレームを送出するメッセージ帯域開始手段を備え、
前記マスタ局及び前記スレーブ局は、
自局からの送信メッセージを有し、且つ前記最終フレーム情報が付加された伝送フレームを受信したとき、前記送信メッセージを送信した後のメッセージ帯域残り時間を算出する第１の算出手段と、
前記第１の算出手段で算出したメッセージ帯域残り時間が正値であるとき、前記最終フレーム情報を非最終フレーム情報に変更する第１の受信フレーム情報更新手段と、
前記第１の受信フレーム情報更新手段により前記変更がなされたとき、前記送信メッセージと、前記最終フレーム情報と、前記メッセージ帯域残り時間とを付加した伝送フレームを生成するメッセージフレーム生成手段と、
前記メッセージフレーム生成手段により伝送フレームが生成されたとき、前記生成された伝送フレームを前記受信した伝送フレームに引き続いて送出するメッセージフレーム送信手段と、を備えることを特徴とするメッセージ伝送装置。
【請求項２】
前記第１の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間から前記自局からの送信メッセージの伝送時間を差し引いた差分を、前記送信メッセージを送信した後のメッセージ帯域残り時間として算出することを特徴とする請求項１に記載のメッセージ伝送装置。
【請求項３】
前記マスタ局の前記第１の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間から前記送信メッセージの伝送時間を差し引いた差分から前記リング形状ネットワークにおける総伝送遅延時間を減算した結果を、前記送信メッセージを送信した後のメッセージ帯域残り時間として算出することを特徴とする請求項１に記載のメッセージ伝送装置。
【請求項４】
前記マスタ局は、
前記最終フレーム情報が付加された伝送フレームを受信したとき、前記受信した伝送フレームの前記最終フレーム情報を非最終フレーム情報に変更する第２の受信フレーム情報更新手段と、
前記自局からの送信メッセージが無い状態で、前記最終フレーム情報が付加された伝送フレームを受信したとき、及び前記第１の算出手段で算出したメッセージ帯域残り時間が負値であるときの何れかであるとき、前記受信した伝送フレームのメッセージ帯域残り時間に応じたメッセージ帯域残り時間を算出する第２の算出手段と、
前記第２の算出手段により前記メッセージ帯域残り時間を算出したとき、前記最終フレーム情報と、前記第２の算出手段で算出した前記メッセージ帯域残り時間とを付加した伝送フレームを生成するダミーメッセージフレーム生成手段と、
前記第２の算出手段で算出したメッセージ帯域残り時間が正値であるとき、受信した前記伝送フレームに引き続いて前記ダミーメッセージフレーム生成手段で生成した伝送フレームを送出するダミーメッセージフレーム送信手段と、を備えることを特徴とする請求項１〜３の何れか１項に記載のメッセージ伝送装置。
【請求項５】
前記第２の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間をそのまま前記メッセージ帯域時間として算出することを特徴とする請求項４に記載のメッセージ伝送装置。
【請求項６】
前記第２の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間から前記リング形状ネットワークにおける総伝送遅延時間を減算した結果を、前記メッセージ帯域時間として算出することを特徴とする請求項４に記載のメッセージ伝送装置。
【請求項７】
前記マスタ局は、
前記最終フレーム情報が付加された伝送フレームを受信したとき、前記受信した伝送フレームの前記最終フレーム情報を非最終フレーム情報に変更する第２の受信フレーム情報更新手段と、
自局から他局へ優先的に伝送すべき優先メッセージを複数有し、且つ前記最終フレーム情報が付加された伝送フレームを受信したとき、前記メッセージ帯域残り時間を零として算出する第３の算出手段と、
前記第３の算出手段により前記メッセージ帯域残り時間を算出したとき、前記優先メッセージと、前記最終フレーム情報と、前記第３の算出手段で算出した前記メッセージ帯域残り時間とを付加した伝送フレームを生成する優先メッセージフレーム生成手段と、
前記優先メッセージフレーム生成手段により伝送フレームが生成されたとき、受信した前記伝送フレームに引き続いて前記優先メッセージフレーム生成手段で生成した伝送フレームを送出する優先メッセージフレーム送信手段と、を備えることを特徴とする請求項１〜６の何れか１項に記載のメッセージ伝送装置。
【請求項８】
複数の通信局のうち、一つの通信局をマスタ局、他の通信局をスレーブ局とし、各通信局をリング状に接続したリング形状ネットワークに伝送フレームを周回させるメッセージ伝送方法であって、
前記伝送フレームは、連続的に送信される伝送フレームのうちの最終フレームであるか否かを示す最終フレーム情報と、メッセージ交換が可能な帯域の残り時間を示すメッセージ帯域残り時間情報とを少なくとも有し、
前記マスタ局は、前記メッセージ交換が可能な帯域の開始時に、前記最終フレームであることを示す最終フレーム情報を付加した伝送フレームを送出し、
前記マスタ局及び前記スレーブ局は、自局からの送信メッセージを有し、且つ前記最終フレーム情報が付加された伝送フレームを受信したとき、前記送信メッセージを送信した後のメッセージ帯域残り時間を算出し、算出したメッセージ帯域残り時間が正値であるとき、前記最終フレーム情報を非最終フレーム情報に変更すると共に、前記送信メッセージと、前記最終フレーム情報と、前記メッセージ帯域残り時間とを付加した伝送フレームを生成し、前記受信した伝送フレームに引き続いて送出することを特徴とするメッセージ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リング形状ネットワークを使用する複数の通信局間のメッセージ伝送に関し、特にメッセージ伝送帯域が時間により制限されている場合のメッセージ帯域の利用効率向上を行うメッセージ伝送装置及びメッセージ伝送方法に関する。
【背景技術】
【０００２】
従来のリング形状ネットワークにおけるメッセージ伝送方法としては、トークンパッシング方式が知られている。トークンとはある特定の信号またはフレームで、これをリングネットワーク上で巡回させて、トークンを受けた局にメッセージの送信権を与える伝送方式である。
トークンパッシング方式のネットワークでは、上流局から受けたデータを一旦ＦＩＦＯに受けて、ＦＩＦＯに蓄えられたデータのヘッダ部分を解析することで、受けたデータがトークンかメッセージか、自局宛か否か、あるいは自局送信データかどうかの判定を行い、それにしたがって中継、受信、削除、送信などの動作を行う。
【０００３】
図１０（ａ）は、従来のネットワークの構成を示す図、図１０（ｂ）は従来のトークンパッシング方式のメッセージ伝送例を示す図である。
図１０（ａ）に示すように、このネットワークは、ノード１０１をマスタ局とする５局構成のリングネットワークである。
そして、図１０（ｂ）に示すように、マスタ局であるノード１０１は、メッセージ送信権を与えるためのトークン（フリートークンＴｆ）を下流へ送信する。フリートークンを受けたノード１０２は、自局に送信メッセージがあるか否かを確認する。例えば、ノード１０４への送信メッセージがある場合には、フリートークンのフレームの一部を書き換えビジートークン（Ｔｂ：メッセージフレームを意味する）とし、そこにメッセージを付加して下流へ送信する。
【０００４】
メッセージを受信したノード１０３は、受け取ったデータがビジートークン（メッセージ）であること、自局宛メッセージではないこと、自局送信メッセージでないことを確認し、下流局へ中継する。
メッセージを受信したノード１０４は、メッセージが自局宛であることを認識し、メッセージデータを自局受信バッファへ格納する。受信バッファへの格納が終わったことで正常受信を示す情報（ＡＣＫ）を付加して下流へ送信する。
メッセージ送信ノード１０２は、ノード１０４から正常に受信できたことを示すＡＣＫ情報が返ってきたことを確認し、トークンをフリートークンに変えて、下流局へ送信する。以下これを繰り返すことで、メッセージの送信を各局で行っていく。
【０００５】
また、複数のプロセッサをそれぞれノード装置を介してリングバスに接続したリング形状ネットワークにおけるデータ転送方式として、各プロセッサに、他のプロセッサ宛の複数の送信情報を、一括して対応するノード装置に転送し、該ノード装置からリングバスに送出させる手段を設け、各ノード装置にリングバスから到着する複数の受信情報を一旦蓄積する手段を設け、各プロセッサにノード装置に蓄積された複数の受信情報を一括して受信する手段を設けるというものが知られている（例えば、特許文献１参照）。
【０００６】
この特許文献１に記載のデータ転送方式では、複数の送信情報および複数の受信情報が、一括してプロセッサとノード装置との間で転送されるため、転送処理に伴うオーバーヘッド処理の所要回数を大幅に減少させることができる。
さらに、１つの通信局を複数の通信手段で構成して、それらに同一の物理アドレスを付与してフレームの受信負荷分散を図り、プロセッサに対してネットワークから受信された順番通りにフレームを受け渡すことを可能とした通信制御装置が知られている（例えば、特許文献２参照）。
【０００７】
ところで、リング形状ネットワークをプログラマブルコントローラ（ＰＬＣ）の制御ネットワークとして使用したシステムとして、センサやアクチュエータを接続するＩＯモジュールやＩＯモジュールから得られた情報をもとに制御演算を行うＣＰＵモジュールから構成されたものがある（本出願人の製品名はＭＩＣＲＥＸ−ＳＸシステム）。
このような制御ネットワーク（以下、ＳＸバス）では、ＣＰＵモジュールとＩＯモジュール間の制御データ更新（以下、ＩＯリフレッシュ）を、一定期間内に必ず行われなければならない。仮にＩＯリフレッシュが一定周期内に行われなかった場合、出力抜けなどが発生し、ＩＯモジュールに接続されている機器の異常動作となる。
【０００８】
また、このＳＸバスはＣＰＵモジュールを１システム上に複数構成することが可能であり、ＣＰＵモジュール間ではデータメッセージを交換する必要がある。データメッセージ交換プロトコルとＩＯリフレッシュプロトコルとは、異なるプロトコルであり、これらを同一バス上に共存させるために、ここでは、時分割によるプロトコル帯域管理を行っている。図１１は、ＣＰＵモジュールにおけるモジュール内部プロセッサと時分割帯域管理のイメージである。
【特許文献１】特開平７−５８７６２号公報
【特許文献２】特開平６−２６１０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記のようなＳＸバスにおけるメッセージ交換では、一定周期のうちの決まった帯域時間のみがメッセージ交換可能時間となる。このように決められた時間内で、トークンパッシング方式でメッセージ交換を行うためには、以下のようなやり方でメッセージ帯域時間を管理する必要がある。
第１の方法は、ネットワークを構成しているメッセージ通信可能局が最大サイズのメッセージを送信しても耐えられるだけのメッセージ送信時間をあらかじめメッセージ帯域として確保し、トークン１周でメッセージ帯域を終了するというものである。
【００１０】
第２の方法は、ある局がメッセージ送信を行い、ＡＣＫ応答を受け取ったら、トークンをマスタ局まで返し、トークンの返却を受けたマスタ局が自局の持つタイマをもとにメッセージ帯域の残り時間を計算することで、再度トークンを送信するかを決定するというものである。
すなわち、図１０（ｂ）のトークンパッシング方式の説明では、ノード１０２がメッセージを削除し、フリートークンを送信すると、ノード１０３がすぐにトークンを取得しているが、上記第２の方法では、これを一度マスタ局まで戻し、改めてフリートークンを生成することになる。
【００１１】
しかしながら、第１の方法では、メッセージ通信可能局がシステムに増えれば増えるほど、メッセージ送信帯域を大きく確保せねばならず、高速にＩＯリフレッシュを行いたいＰＬＣシステムには不向きであり、かつ、メッセージ送信要求局が偏って存在している場合、メッセージ帯域を余らせてしまう。
また、第２の方法では、１メッセージの送信に対して、必ずトークンを１周させ、残り時間の判断をマスタ局が行わねばならず、メッセージ帯域の利用効率の観点で必ずしもよい方法とはいえない。
そこで、本発明は、通信時間帯域が制限されているリング形状ネットワークにおけるメッセージ通信において、より効率的にメッセージ帯域を利用することが可能なメッセージ伝送装置、及びメッセージ伝送方法を提供することを課題としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、請求項１に係るメッセージ伝送装置は、複数の通信局のうち、一つの通信局をマスタ局、他の通信局をスレーブ局とし、各通信局をリング状に接続したリング形状ネットワークに伝送フレームを周回させるメッセージ伝送装置であって、前記伝送フレームは、連続的に送信される伝送フレームのうちの最終フレームであるか否かを示す最終フレーム情報と、メッセージ交換が可能な帯域の残り時間を示すメッセージ帯域残り時間情報とを少なくとも有し、前記マスタ局は、前記メッセージ交換が可能な帯域の開始時に、前記最終フレームであることを示す最終フレーム情報を付加した伝送フレームを送出するメッセージ帯域開始手段を備え、前記マスタ局及び前記スレーブ局は、自局からの送信メッセージを有し、且つ前記最終フレーム情報が付加された伝送フレームを受信したとき、前記送信メッセージを送信した後のメッセージ帯域残り時間を算出する第１の算出手段と、前記第１の算出手段で算出したメッセージ帯域残り時間が正値であるとき、前記最終フレーム情報を非最終フレーム情報に変更する第１の受信フレーム情報更新手段と、前記第１の受信フレーム情報更新手段により前記変更がなされたとき、前記送信メッセージと、前記最終フレーム情報と、前記メッセージ帯域残り時間とを付加した伝送フレームを生成するメッセージフレーム生成手段と、前記メッセージフレーム生成手段により伝送フレームが生成されたとき、前記生成された伝送フレームを前記受信した伝送フレームに引き続いて送出するメッセージフレーム送信手段と、を備えることを特徴としている。
【００１３】
これにより、自局からの送信メッセージを送信してもメッセージ帯域残り時間があるときに、受信したフレームに引き続いて自局の送信メッセージフレームを送信し、逆にメッセージ帯域残り時間がなければメッセージ送信を行わないようにすることができるので、効率的にメッセージ帯域を使用することができる。また、このようにした場合、メッセージのフレームが複数ネットワーク上を流れることになるが、伝送フレームに最終フレーム情報を追加することで、どのフレームに引き続いて自局のメッセージを送信するかを各局が判断することができる。
【００１４】
また、請求項２に係るメッセージ伝送装置は、請求項１に係る発明において、前記第１の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間から前記自局からの送信メッセージの伝送時間を差し引いた差分を、前記送信メッセージを送信した後のメッセージ帯域残り時間として算出することを特徴としている。
これにより、メッセージ帯域残り時間と自局がメッセージを送信することにより使われる時間とを比較し、メッセージ帯域の残り時間の方が大きければ、受信したフレームに引き続いて自局の送信メッセージフレームを送信し、逆にメッセージ帯域の残り時間の方が小さければメッセージ送信を行わないようにすることができるので、効率的にメッセージ帯域を使用することができる。
【００１５】
さらに、請求項３に係るメッセージ伝送装置は、請求項１に係る発明において、前記マスタ局の前記第１の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間から前記送信メッセージの伝送時間を差し引いた差分から前記リング形状ネットワークにおける総伝送遅延時間を減算した結果を、前記送信メッセージを送信した後のメッセージ帯域残り時間として算出することを特徴としている。
これにより、マスタ局は、自局送信メッセージを送信する際に、総伝送遅延時間（ネットワーク１周分の遅延時間）を減算したメッセージ帯域残り時間をセットすることができるので、各局でメッセージの中継や受信、送信、削除等の判定を行うことに起因して発生する遅延時間を考慮して、適正なメッセージ帯域残り時間をセットすることができる。
【００１６】
また、請求項４に係るメッセージ伝送装置は、請求項１〜３の何れか１項に係る発明において、前記マスタ局は、前記最終フレーム情報が付加された伝送フレームを受信したとき、前記受信した伝送フレームの前記最終フレーム情報を非最終フレーム情報に変更する第２の受信フレーム情報更新手段と、前記自局からの送信メッセージが無い状態で、前記最終フレーム情報が付加された伝送フレームを受信したとき、及び前記第１の算出手段で算出したメッセージ帯域残り時間が負値であるときの何れかであるとき、前記受信した伝送フレームのメッセージ帯域残り時間に応じたメッセージ帯域残り時間を算出する第２の算出手段と、前記第２の算出手段により前記メッセージ帯域残り時間を算出したとき、前記最終フレーム情報と、前記第２の算出手段で算出した前記メッセージ帯域残り時間とを付加した伝送フレームを生成するダミーメッセージフレーム生成手段と、前記第２の算出手段で算出したメッセージ帯域残り時間が正値であるとき、受信した前記伝送フレームに引き続いて前記ダミーメッセージフレーム生成手段で生成した伝送フレームを送出するダミーメッセージフレーム送信手段と、を備えることを特徴としている。
【００１７】
このように、マスタ局は、最終メッセージを中継する際に、最終フレーム情報とメッセージ帯域残り時間とをコピーしたダミーメッセージを生成し送信するので、メッセージの送達確認のために、メッセージ受信局がＡＣＫ情報をメッセージ送信局に対して送り返し、メッセージがメッセージ送信局により削除される構成の場合で、最後にメッセージ送信した局にメッセージが返るまでに、新規のメッセージを送信する局が現れない場合であっても、最後のメッセージを送信した局がメッセージを削除したあと、メッセージフレームが一切流れなくなり、メッセージ帯域が空いてしまう状態となるのを回避することができる。
【００１８】
さらに、請求項５に係るメッセージ伝送装置は、請求項４に係る発明において、前記第２の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間をそのまま前記メッセージ帯域時間として算出することを特徴としている。
このように、マスタ局は、ネットワークを構成するノード数が比較的少なく、各局で発生する遅延時間が無視できる程度である場合には、受信した伝送フレームのメッセージ帯域残り時間をそのままメッセージ帯域残り時間としてセットする。
【００１９】
また、請求項６に係るメッセージ伝送装置は、請求項４に係る発明において、前記第２の算出手段は、前記受信した伝送フレームのメッセージ帯域残り時間から前記リング形状ネットワークにおける総伝送遅延時間を減算した結果を、前記メッセージ帯域時間として算出することを特徴としている。
このように、マスタ局は、最終フレーム情報付きのメッセージコピーの際に、総伝送遅延時間を減算してメッセージ帯域残り時間をセットするので、ネットワークを構成するノード数が比較的多い場合であっても、各局でメッセージの中継や受信、送信、削除等の判定を行うことに起因して発生する遅延時間を考慮して、適正なメッセージ帯域残り時間をセットすることができる。
【００２０】
さらに、請求項７に係るメッセージ伝送装置は、請求項１〜６の何れか１項に係る発明において、前記マスタ局は、前記最終フレーム情報が付加された伝送フレームを受信したとき、前記受信した伝送フレームの前記最終フレーム情報を非最終フレーム情報に変更する第２の受信フレーム情報更新手段と、自局から他局へ優先的に伝送すべき優先メッセージを複数有し、且つ前記最終フレーム情報が付加された伝送フレームを受信したとき、前記メッセージ帯域残り時間を零として算出する第３の算出手段と、前記第３の算出手段により前記メッセージ帯域残り時間を算出したとき、前記優先メッセージと、前記最終フレーム情報と、前記第３の算出手段で算出した前記メッセージ帯域残り時間とを付加した伝送フレームを生成する優先メッセージフレーム生成手段と、前記優先メッセージフレーム生成手段により伝送フレームが生成されたとき、受信した前記伝送フレームに引き続いて前記優先メッセージフレーム生成手段で生成した伝送フレームを送出する優先メッセージフレーム送信手段と、を備えることを特徴としている。
このように、マスタ局が自局から他局へ優先的に伝送すべき優先メッセージを複数有するとき、メッセージ帯域残り時間を零として優先メッセージを送信するので、他局によるメッセージ送信を抑制して、連続して優先メッセージを送信することができる。
【００２１】
さらにまた、請求項８に係るメッセージ伝送方法は、複数の通信局のうち、一つの通信局をマスタ局、他の通信局をスレーブ局とし、各通信局をリング状に接続したリング形状ネットワークに伝送フレームを周回させるメッセージ伝送方法であって、前記伝送フレームは、連続的に送信される伝送フレームのうちの最終フレームであるか否かを示す最終フレーム情報と、メッセージ交換が可能な帯域の残り時間を示すメッセージ帯域残り時間情報とを少なくとも有し、前記マスタ局は、前記メッセージ交換が可能な帯域の開始時に、前記最終フレームであることを示す最終フレーム情報を付加した伝送フレームを送出し、前記マスタ局及び前記スレーブ局は、自局からの送信メッセージを有し、且つ前記最終フレーム情報が付加された伝送フレームを受信したとき、前記送信メッセージを送信した後のメッセージ帯域残り時間を算出し、算出したメッセージ帯域残り時間が正値であるとき、前記最終フレーム情報を非最終フレーム情報に変更すると共に、前記送信メッセージと、前記最終フレーム情報と、前記メッセージ帯域残り時間とを付加した伝送フレームを生成し、前記受信した伝送フレームに引き続いて送出することを特徴としている。
【発明の効果】
【００２２】
本発明の請求項１に係る発明によれば、伝送フレームにメッセージ帯域の残り時間をセットするので、送信要求局は、自局からの送信メッセージを送信してもメッセージ帯域残り時間があるときに、受信したフレームに引き続いて自局の送信メッセージフレームを送信し、逆にメッセージ帯域残り時間がなければメッセージ送信を行わないようにすることができ、効率的にメッセージ帯域を利用することができるという効果が得られる。
さらに、メッセージ帯域の開始時に、マスタ局が最終フレームであることを示す最終フレーム情報を付加した伝送フレームを送出するので、メッセージ帯域となった時点ですぐにメッセージを送れる状態とすることができ、効率的にメッセージ帯域を利用することができる。
【００２３】
このように、通信時間帯域が制限されているリング形状ネットワークにおけるメッセージ通信においても、各送信局の処理負荷がトークン方式による処理負荷と大きく変わることなく、より効果的にメッセージ帯域を利用することができ、例えば、ＰＬＣシステムなど制御データの定周期交換と大容量メッセージ交換とが混在するようなシステムバスにおけるメッセージ交換の効率化が図れる。
【００２４】
さらに、請求項２に係る発明によれば、メッセージ帯域の残り時間の方が大きければ、受信したフレームに引き続いて自局の送信メッセージフレームを送信し、逆にメッセージ帯域の残り時間の方が小さければメッセージ送信を行わないようにすることができるので、より効率的にメッセージ帯域を使用することができる。
また、請求項３に係る発明によれば、マスタ局が自局送信メッセージを送信する際、各局において発生する遅延時間を考慮してメッセージ帯域残り時間をセットするので、ネットワークを構成する局数が多く、ネットワーク全体の総伝送遅延時間が無視できないほど大きい場合であっても、メッセージ帯域残り時間を適正にセットすることができると共に、確実にメッセージを帯域時間内に送信することができ、次の帯域にメッセージが残ることはない。
【００２５】
また、請求項４に係る発明によれば、マスタ局は、最終メッセージを中継する際に、最終フレーム情報とメッセージ帯域残り時間とをコピーしたメッセージを生成し送信するので、メッセージ送信要求局の有無にかかわらず、最終フレーム情報が付加されたメッセージフレームを常に巡回させることができる。その結果、メッセージ帯域中にメッセージフレームがなくなる状態となるのを回避することができると共に、最後のメッセージを送信した局がメッセージを削除してから所定時間後にメッセージ送信要求局が現れたとき、メッセージが送信できなくなるのを回避することができるという効果が得られる。
【００２６】
また、請求項５に係る発明によれば、ネットワークを構成するノード数が比較的少なく、各局で発生する遅延時間が無視できる程度である場合には、受信した伝送フレームのメッセージ帯域残り時間をそのままメッセージ帯域残り時間としてセットすることができる。
さらにまた、請求項６に係る発明によれば、マスタ局は、各局において発生する遅延時間を考慮してメッセージ帯域残り時間をセットするので、ネットワークを構成する局数が多く、ネットワーク全体の総伝送遅延時間が無視できないほど大きい場合であっても、メッセージ帯域残り時間を適正にセットすることができる。
【００２７】
さらに、請求項７に係る発明によれば、マスタ局が自局から他局へ優先的に伝送すべき優先メッセージを複数有するとき、メッセージ帯域残り時間を零として優先メッセージを送信するので、他局によるメッセージ送信を抑制して、連続して優先メッセージを送信することができ、ＰＬＣシステムに由来するメッセージを優先的に処理して、システムの維持・管理を適正に行うことができる。
また、請求項８に係る発明によれば、通信時間帯域が制限されているリング形状ネットワークにおけるメッセージ通信において、より効率的にメッセージ帯域を利用することができるメッセージ伝送方法とすることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は、本発明におけるリングネットワークの構成図である。図中符号１はマスタ局、２〜５はスレーブ局であり、各通信局は通信ケーブル６ａ〜６ｅによってリング状に接続され、リング形状ネットワークを構成している。
本実施形態では、このリング形状ネットワークをプログラマブルコントローラ（ＰＬＣ）の制御ネットワークとして使用した場合について説明する。
【００２９】
図２は、プログラマブルコントローラシステムの構成を示す概略図である。
図中符号１０はベースボードであり、ベースボード１０上にＩＯモジュール１１、ＣＰＵモジュール１２および電源１３が構成されている。ベースボード１０間はケーブル１４によって接続されている。また、ケーブル１４はベースボード１０内にも配線されており、ベースボード１０内の各モジュール間もケーブル１４によって接続されている。なお、図２では、ＩＯモジュール１１、ＣＰＵモジュール１２に対してケーブル１４が２度通過しているが、どちらか一方でのみモジュールへの信号入力を行うようになっている。
【００３０】
ＩＯモジュール１１は、センサやアクチュエータ等が接続されてデータの収集等を行い、ＣＰＵモジュール１２は、ＩＯモジュール１１から得られた情報をもとに制御演算を行う。ＩＯモジュール１１とＣＰＵモジュール１２との間の制御データ更新（ＩＯリフレッシュ）は、一定期間内に行われる。
ここでは、ＣＰＵモジュール１２を１システム上に複数構成しているため、ＣＰＵモジュール１２間でデータメッセージを交換する必要がある。データ交換プロトコルとＩＯリフレッシュプロトコルとは異なるプロトコルであり、これを同一バス上に共存させるために、このようなネットワークシステムでは時分割によりプロトコル帯域管理を行う（図１１）。そのため、上記データメッセージ交換では、一定周期のうちの決まった帯域時間のみがメッセージ交換可能時間となる。
【００３１】
本実施形態では、上記のようにメッセージ交換可能時間が制限されている場合において、効率的にメッセージ帯域を利用できるようにする。具体的には、メッセージ帯域の残り時間を表すフィールドをメッセージヘッダ情報に追加し、そこに示される残り時間と自局がメッセージを送信することにより使われる時間とを比較して、メッセージ帯域の残り時間が大きければ、受信したフレームに引き続いて自局の送信メッセージフレームを送信し、逆にメッセージ帯域の残り時間の方が小さければメッセージ送信をあきらめることで、効率的にメッセージ帯域を使用する。このようにした場合、メッセージのフレームが複数ネットワーク上を流れるため、どのフレームに引き続いて自局のメッセージを送信するかを各局が判断しなければならない。そこで、メッセージヘッダに最終フレームであることを示す情報（以下、ラストフレームフラグと称す）を追加する。
【００３２】
図３は、メッセージフレームのフォーマットを示す図である。
この図３に示すように、メッセージフレームのフォーマットは、概略的には、メッセージヘッダ部とメッセージ本体部とから成る。
メッセージヘッダ部は、Ｌ（ラストフレームフラグ）４１と、ＦＣ（フレームコード）４２と、Ｒ＿ＴＩＭＥ（メッセージ帯域残り時間）４３と、ＳＡ（送信元局番）４４と、ＤＡ（宛先局番）４５と、ＳＩＺＥ（データサイズ）４６とから構成される。
【００３３】
ラストフレームフラグ４１は、連続的に送信されるフレームのうちの最終フレームであるか否かを示すものであり、例えば、このフレームが最終フレームであるときにＬ＝１にセット、最終フレームでないときにＬ＝０にリセットされるようになっている。
また、ＦＣ４２により、このデータがメッセージかどうかを判定する。例えば、フレームコードは、メッセージデータであるときにＦＣ＝１、メッセージデータでないときにＦＣ＝０にセットされるようになっている。また、このような２値でなく、任意の桁数の判別子であっても構わない。
【００３４】
Ｒ＿ＴＩＭＥ４３の値は、０〜「ＩＯリフレッシュ時間の最大値」までの値をとる。例えば図１１では、ＩＯリフレッシュを行うためのタクト周期を最大１０ｍｓとしているので、Ｒ＿ＴＩＭＥの最大値も同様に１０ｍｓまでの値となる。
メッセージ本体部は、ＤＡＴＡ（データ）４７から構成され、ここには実際にアプリケーションなどが使用する通信データが格納されている。
【００３５】
次に、この図３に示すメッセージフレームを使用したメッセージ伝送方法について説明する。
図４は、スレーブ局におけるメッセージ処理手順を示すフローチャートである。
先ず、ステップＳ１で、スレーブ局は、上流局からのメッセージを受信し、メッセージヘッダ部をＦＩＦＯに蓄えてからステップＳ２に移行する。
ステップＳ２では、スレーブ局は、前記ステップＳ１で蓄えたメッセージヘッダ部を解析し、受信したメッセージが自局で送信したものであるか否かを判定する。そして、自局が送信したものであると判定したときには、ステップＳ３に移行してこのメッセージを削除してからステップＳ４に移行し、自局が送信したものでないと判定したときには、そのままステップＳ４に移行する。
【００３６】
ステップＳ４では、スレーブ局は、前記ステップＳ１で蓄えたメッセージヘッダ部を解析し、受信したメッセージが自局宛のメッセージであるか否かを判定する。そして、自局宛のものであると判定したときには、ステップＳ５に移行してこのメッセージの受信動作を行ってからステップＳ６に移行し、自局宛のものでないと判定したときには、そのままステップＳ６に移行する。
【００３７】
ステップＳ６では、スレーブ局は、前記ステップＳ１で蓄えたメッセージヘッダ部を解析し、受信したメッセージのラストフレームフラグがＬ＝１であるか否かを判定する。そして、Ｌ＝０であると判定したときには、このフレームに引き続くメッセージフレームが存在すると判断してステップＳ７に移行し、送信フラグを、自局送信メッセージの送信可能状態でないことを示す“０”にリセットしてから後述するステップＳ１３に移行する。
【００３８】
一方、前記ステップＳ６でＬ＝１であると判定したときにはステップＳ８に移行して、自局に送信メッセージがあるか否かを判定する。そして、送信メッセージがないときには前記ステップＳ７に移行し、送信メッセージがあるときにはステップＳ９に移行する。
ステップＳ９では、スレーブ局は、前記ステップＳ１で蓄えたメッセージヘッダ部を解析し、受信フレームのメッセージ帯域残り時間（Ｒ＿ＴＩＭＥ）が自局送信データの伝送時間以上であるか否かを判定する。そして、このＲ＿ＴＩＭＥが自局送信データの伝送時間より短いときには、メッセージ送信をしないものと判断して前記ステップＳ７に移行し、Ｒ＿ＴＩＭＥが自局送信データの伝送時間以上であるときには、ステップＳ１０に移行する。
【００３９】
ステップＳ１０では、受信フレームのＲ＿ＴＩＭＥと自局送信データの伝送時間との差分を新たなＲ＿ＴＩＭＥとして算出する（Ｒ＿ＴＩＭＥ＝Ｒ＿ＴＩＭＥ−自局送信データの伝送時間）。
次にステップＳ１１に移行して、スレーブ局は、送信フラグを自局送信メッセージの送信可能状態であることを示す“１”にセットし、ステップＳ１２に移行する。
ステップＳ１２では、スレーブ局は、受信したメッセージのラストフレームフラグをＬ＝０にリセットし、ステップＳ１３に移行する。
ステップＳ１３では、スレーブ局は、受信したメッセージを下流局に中継し、ステップＳ１４に移行する。
【００４０】
ステップＳ１４では、スレーブ局は、前記送信フラグが“１”にセットされているか否かを判定し、送信フラグ＝１であるときには、ステップＳ１５に移行してラストフレームフラグをＬ＝１にセットした自局メッセージを送信してからメッセージ処理を終了する。このとき送信するメッセージフレームにおいて、Ｒ＿ＴＩＭＥには前記ステップＳ１０で計算した値をセットする。
【００４１】
一方、前記ステップＳ１４で、送信フラグ＝０であると判定したときには、自局メッセージの送信を行わずそのままメッセージ処理を終了する。
このように、スレーブ局は、メッセージヘッダ部をＦＩＦＯに受信した後、メッセージ削除判定、メッセージ受信判定、自局メッセージ送信判定を順次行って、下流局にメッセージを中継するようになっている。
【００４２】
なお、マスタ局は、メッセージ帯域の開始時に、Ｌ＝１にセットされた最初のメッセージを生成し送信する（メッセージ帯域開始手段）以外は、図４に示すスレーブ局における処理と同様の処理を実行する。
この図４において、ステップＳ９及びＳ１０が第１の算出手段に対応し、ステップＳ１２が第１の受信フレーム情報更新手段に対応し、ステップステップＳ１４及びＳ１５がメッセージフレーム生成手段およびメッセージフレーム送信手段に対応している。
【００４３】
次に、第１の実施形態における動作および効果について説明する。
図５は、第１の実施形態におけるメッセージ伝送例を示す図である。ここでは、図１に示すネットワーク構成において、ノード２がノード４宛に、ノード３がノード１宛にメッセージを送る場合について説明する。
なお、図５において、ＬＭはラストフレームフラグ付きメッセージ、Ｍは通常メッセージ、ＲＴｘはメッセージ帯域残り時間（ｘは付け直し回数）、Ｍａはメッセージデータ（ａは宛て先）、ＡＣＫｂはＡＣＫ情報を含むメッセージ（ｂはメッセージ送信元）を示している。
【００４４】
先ず、メッセージ帯域の開始時に、マスタ局（ノード１）が自局宛にサイズ０のメッセージ（ダミーメッセージ）を送信する（６１）。このダミーメッセージでは、ラストフレームフラグがＬ＝１にセットされると共に、メッセージ帯域残り時間（ＲＴ１）がセットされる。
メッセージ帯域残り時間は、実際のメッセージ帯域の時間から最大長のメッセージが１周するのに十分な時間を引いた値とする。これによりメッセージ帯域残り時間を全て使い切るメッセージを送信した場合でも、次の帯域にメッセージが残ることはない。
【００４５】
ここで、マスタ局がメッセージ帯域の開始を判断する方法としては、内蔵タイマによる定周期割り込みや、その他の帯域のデータ交換が終わったことを判定するなどいくつかの方法が考えられるが、ここでは特にその判定方式を問わない。
なお、ダミーメッセージは、マスタ局が送信データを持っていない場合でも、メッセージ帯域になった場合にすぐにメッセージが送れるようにするために送信するものである。したがって、マスタ局が送信メッセージを持っていた場合は、それを送信するようにしてもよい。
【００４６】
このように、メッセージ帯域の開始時にマスタ局がダミーメッセージを送信するので、メッセージ帯域となった時点ですぐにメッセージを送れる状態とすることができ、効率的にメッセージ帯域を利用することができる。
マスタ局から送信されたダミーメッセージはノード２が受信し、ノード２は図４に示すメッセージ処理を行う。
【００４７】
ノード２は、ステップＳ２で、受信したメッセージが自局送信メッセージかどうかを判定し、自局送信でないので削除は行わずにステップＳ４に移行し、受信したメッセージが自局宛かを判定し、自局宛ではないので受信も行わない。ここで、ダミーメッセージはラストフレームフラグのセットされているメッセージなので、ステップＳ６からステップＳ８に移行し、自局に送信メッセージがあるかを判定する。このとき、ノード４宛の送信メッセージがあるので、ステップＳ８からステップＳ９に移行して、送信メッセージの伝送時間とメッセージ帯域残り時間（ＲＴ１）とを比較する。
【００４８】
送信メッセージの伝送時間は、メッセージデータ部の長さとヘッダサイズおよび各局でメッセージを処理するためのメッセージ送信間隔から決定される。
このとき、メッセージ帯域残り時間（ＲＴ１）がノード２のメッセージ伝送時間以上であるものとすると、ステップＳ９からステップＳ１０に移行してメッセージ帯域残り時間Ｒ＿ＴＩＭＥを新たに算出し、ステップＳ１１に移行してメッセージ送信可能状態を示す送信フラグ（各ノードの内部レジスタ）を“１”にセットする。
【００４９】
次に、ノード２は現在受信しているダミーメッセージに続けて自局送信メッセージを送信することになるので、ステップＳ１２で、現在受信しているダミーメッセージのラストフレームフラグをＬ＝０にリセットする。このとき、メッセージ帯域残り時間の値をＲＴ１から前記ステップＳ１０で算出したＲ＿ＴＩＭＥに書き換える必要はない。
これらの操作を行ったうえで、ノード２は受信メッセージ（ダミーメッセージ）を下流局であるノード３に中継し、続けて自局の送信メッセージを送信する（６２）。このとき自局送信メッセージのラストフレームフラグはＬ＝１、メッセージ帯域残り時間は前記ステップＳ１０で再計算された値（ＲＴ２＝ＲＴ１−自局送信メッセージ伝送時間）となっている。
【００５０】
このように、受信メッセージのラストフレームフラグをリセットし、自局送信メッセージのラストフレームフラグをセットするので、下流局ではこの送信メッセージに引き続いてメッセージ送信を行うことができる。
また、ノード２は、メッセージ帯域残り時間をＲＴ２＝ＲＴ１−自局送信メッセージ伝送時間とするので、適正なＲ＿ＴＩＭＥがセットされた自局メッセージを送信することができる。
さらに、ノード２は、メッセージ帯域残り時間（ＲＴ１）が自局メッセージ伝送時間以上であるときにのみ、自局メッセージを送信するので、メッセージ帯域時間内に確実にメッセージ送信することができる。
【００５１】
ノード３では、図４に示すメッセージ処理を行って、受信したダミーメッセージおよびノード２から送信されたノード４宛の送信メッセージをそのまま下流局であるノード４に中継し、続けて自局の送信メッセージ（ノード１宛の送信メッセージ）を送信する（６３）。このとき、ノード４宛の送信メッセージのラストフレームフラグはリセットされる。また、自局送信メッセージのラストフレームフラグはセットされると共に、メッセージ帯域残り時間はステップＳ１０で再計算された値（ＲＴ３＝ＲＴ２−自局送信メッセージ伝送時間）がセットされる。
【００５２】
ノード４では、図４に示すメッセージ処理を行い、ノード１からのダミーメッセージ、ノード２から自局宛の送信メッセージ、ノード３からノード１宛の送信メッセージを順次受信し、ダミーメッセージを下流局であるノード５に中継すると共に、自局宛の送信メッセージに対して受信動作を行い、次いでノード１宛の送信メッセージをノード５に中継する。
【００５３】
ここで、自局宛の送信メッセージの受信動作では、ステップＳ２の自局送信判定の後、ステップＳ４の判定により受信メッセージが自局宛メッセージであることを認識し、ステップＳ５でメッセージデータを受信バッファへ格納すると共に、自局宛のデータを受信したことを示すＡＣＫ情報を受信メッセージに付加する。そして、ステップＳ１３で、このＡＣＫ情報が付加されたメッセージをメッセージ送信元であるノード２に送り返す（６４）。なお、自局宛のデータは削除しても構わないし、データにＡＣＫ情報を付加して送信しても構わない。これは、伝送路の負荷重視か、処理速度重視か等によって適宜設定する。
【００５４】
このように、メッセージ受信局は、メッセージ送信局に対してＡＣＫ情報を送り返すので、メッセージ受信局はメッセージの送達確認を行うことができる。
ノード５では、図４に示すメッセージ処理を行い、ノード１からのダミーメッセージ、ノード４からのＡＣＫ情報を含むメッセージ、ノード３からの送信メッセージを順次受信し、これらをそのままマスタ局に中継する。
【００５５】
マスタ局では、自局が送信したダミーメッセージ、ノード４からのＡＣＫ情報を含むメッセージ、ノード３からの送信メッセージを順次受信する。そして、自局が送信したダミーメッセージを削除し（６５）、ノード４からのＡＣＫ情報を含むメッセージをそのまま中継すると共に、ノード３から自局宛のメッセージを受信し、ＡＣＫ情報を付加したメッセージをメッセージ送信元であるノード３に送り返す。
【００５６】
自局が送信したメッセージを削除する際には、宛先局が正常にメッセージを受信できたかどうかＡＣＫ情報を確認する。これにより、自局の送信したメッセージが正しく宛先局に伝わったことがわかる。ただし、上記ダミーメッセージは自局宛の特殊なメッセージなので、（６５）のケースでは、ＡＣＫ情報の確認を行わずにメッセージの削除を行っても構わない。
【００５７】
一方、ノード２およびノード３では、ＡＣＫ情報の確認を行ってから自局が送信したメッセージを削除する（６６，６７）。
これらの操作により、メッセージ帯域を効率的に活用し、複数の局でメッセージのやり取りを行うことができる。
このように、上記第１の実施形態では、伝送フレームのヘッダ情報に、最終フレーム情報とメッセージ帯域残り時間情報とを追加するので、送信要求局は、自局送信メッセージの伝送時間がメッセージ帯域残り時間より長いときにはメッセージ送信せず、自局送信メッセージの伝送時間がメッセージ帯域残り時間以下であるときには、受信メッセージに引き続いて自局のメッセージ送信を行うので、効率的にメッセージ帯域を利用することができる。
【００５８】
また、このとき、メッセージのフレームが複数ネットワーク上を流れることになるが、伝送フレームに最終フレーム情報を追加しているので、どのフレームに引き続いて自局のメッセージを送信するかを各局が判断することができる。
さらに、メッセージ帯域の開始時に、マスタ局が最終フレームであることを示す最終フレーム情報を付加した伝送フレームを送出するので、メッセージ帯域となった時点ですぐにメッセージを送れる状態とすることができ、効率的にメッセージ帯域を利用することができる。
【００５９】
このように、通信時間帯域が制限されているリング形状ネットワークにおけるメッセージ通信において、各送信局の処理負荷がトークン方式による処理負荷と大きく変わることなく、より効率的にメッセージ帯域を利用することが可能となり、たとえばＰＬＣシステムなど制御データの定周期交換と大容量メッセージ交換が混在するようなシステムバスにおけるメッセージ交換の効率化が可能となる。
【００６０】
次に、本発明における第２の実施形態について説明する。
この第２の実施形態は、前述した第１の実施形態において、マスタ局に、メッセージフレームが流れなくなってしまう状態となることを回避する機能を設けるようにしたものである。
図６は、第２の実施形態におけるマスタ局のメッセージ処理手順を示すフローチャートである。なお、この図６では、メッセージ帯域の開始時に最初のダミーメッセージを送信する処理は省略している。
【００６１】
先ず、ステップＳ２１で、マスタ局は、上流局からのメッセージを受信し、メッセージヘッダ部をＦＩＦＯに蓄えてからステップＳ２２に移行する。
ステップＳ２２では、マスタ局は、前記ステップＳ２１で蓄えたメッセージヘッダ部を解析し、受信したメッセージが自局で送信したものであるか否かを判定する。そして、自局が送信したものであると判定したときには、ステップＳ２３に移行してこのメッセージを削除してからステップＳ２４に移行し、自局が送信したものでないと判定したときには、そのままステップＳ２４に移行する。
【００６２】
ステップＳ２４では、マスタ局は、前記ステップＳ２１で蓄えたメッセージヘッダ部を解析し、受信したメッセージが自局宛のメッセージであるか否かを判定する。そして、自局宛のものであると判定したときには、ステップＳ２５に移行してこのメッセージの受信動作を行ってからステップＳ２６に移行し、自局宛のものでないと判定したときには、そのままステップＳ２６に移行する。
【００６３】
ステップＳ２６では、マスタ局は、前記ステップＳ２１で蓄えたメッセージヘッダ部を解析し、受信したメッセージのラストフレームフラグがＬ＝１であるか否かを判定する。そして、Ｌ＝０であると判定したときには、このフレームに引き続くメッセージフレームが存在すると判断して後述するステップＳ２９に移行する。一方、前記ステップＳ２６でＬ＝１であると判定したときには、ステップＳ２７に移行する。
ステップＳ２７では、マスタ局は、受信したメッセージのラストフレームフラグをＬ＝０にリセットしてからステップＳ２８に移行し、送信フラグを、自局送信メッセージの送信可能状態を示す“１”にセットしてステップＳ２９に移行する。
ステップＳ２９では、マスタ局は、受信したメッセージを下流局に中継し、ステップＳ３０に移行する。
【００６４】
ステップＳ３０では、マスタ局は、前記送信フラグが“１”にセットされているか否かを判定し、送信フラグ＝０であるときには前記ステップＳ２１に移行し、後続のメッセージを受信後に処理を続ける。一方、送信フラグ＝１であるときには、ステップＳ３１に移行して自局に送信メッセージがあるか否かを判定する。
そして、送信メッセージがないときにはステップＳ３２に移行し、ダミーメッセージを生成してから後述するステップＳ３５に移行する。ここで、ダミーメッセージのラストフレームフラグはＬ＝１にセットすると共に、Ｒ＿ＴＩＭＥには、受信したフレームのＲ＿ＴＩＭＥと自局送信データの伝送時間との差分から総遅延時間を減算した値をセットする（Ｒ＿ＴＩＭＥ＝Ｒ＿ＴＩＭＥ−自局送信データの伝送時間−総遅延時間）。
【００６５】
総遅延時間は、ネットワークを構成する局数とＦＩＦＯ段数とに応じて計算されるネットワーク全体の総伝送遅延時間である。ネットワーク構成局数は、ネットワークユーザによる設定を用いてもよいし、マスタ局から順次スレーブ局にメッセージを送信し、その応答で確認してもよい。あるいは、自局宛メッセージの送信から受信までの時間差を計測し、これを総伝送遅延時間としてもよい。
【００６６】
一方、前記ステップＳ３１で、自局に送信メッセージがあると判定したときには、ステップＳ３３に移行して、メッセージ帯域残り時間が自局送信データの伝送時間以上であるか否かを判定する。メッセージ帯域残り時間が自局送信データの伝送時間より短いときには、メッセージ送信をしないものと判断して前記ステップＳ３２に移行し、メッセージ帯域残り時間が自局送信データの伝送時間以上であるときには、ステップＳ３４に移行してメッセージ帯域残り時間Ｒ＿ＴＩＭＥの計算を行うと共に、送信メッセージの生成を行ってから後述するステップＳ３５に移行する。
【００６７】
このステップＳ３４では、受信したフレームのＲ＿ＴＩＭＥと自局送信データの伝送時間との差分を新たなＲ＿ＴＩＭＥとする（Ｒ＿ＴＩＭＥ＝Ｒ＿ＴＩＭＥ−自局送信データの伝送時間）。また、送信メッセージのラストフレームフラグはＬ＝１にセットする。
ステップＳ３５では、マスタ局は、前記ステップＳ３２又はステップＳ３４で算出したＲ＿ＴＩＭＥが正値であるか否かを判定し、Ｒ＿ＴＩＭＥ＜０であるときにはメッセージ送信をしないものと判断して後述するステップＳ３７に移行する。
【００６８】
一方、前記ステップＳ３５でＲ＿ＴＩＭＥ≧０であると判定したときには、ステップＳ３６に移行して自局メッセージを送信し、ステップＳ３７に移行する。
ステップＳ３７では、マスタ局は、送信フラグを“０”にリセットし、メッセージ処理を終了する。
この図６において、ステップＳ２６及びＳ２７が第２の受信フレーム情報更新手段に対応し、ステップＳ３２が第２の算出手段及びダミーメッセージフレーム生成手段に対応し、ステップＳ３３が第１の算出手段に対応し、ステップＳ３４がメッセージフレーム生成手段に対応し、ステップＳ３５及びＳ３６がダミーメッセージフレーム送信手段及びメッセージ送信手段に対応している。
【００６９】
次に、第２の実施形態における動作および効果について説明する。
図７は、第２の実施形態におけるメッセージ伝送例を示す図である。
ここでは、前述した第１の実施形態と同様に、ノード２がノード４宛に、ノード３がノード１宛にメッセージを送る場合について説明する。但し、この第２の実施形態では、一巡後にマスタ局（ノード１）にてダミーメッセージフレームを生成し、結果、ノード５にてノード３へのメッセージ送信を継続して実行可能としている点で前述した第１の実施形態とは異なる。以下、相違点である一巡後からの処理について説明する。
【００７０】
マスタ局は、上述したように、ラストフレームフラグがＬ＝１となっているフレームを中継する際、自局に送信要求メッセージの有無にかかわらず、新規のメッセージを生成し送信するようになっている。
すなわち、マスタ局（ノード１）は、ラストフレームフラグがＬ＝１となったフレームを受信したとき、図６のステップＳ２６でＹｅｓと判定してステップＳ２７に移行し、受信フレームのラストフレームフラグをＬ＝０にしてから、ステップＳ２９でそのフレームをノード２に中継する（８１）。
【００７１】
このとき、マスタ局に自局送信メッセージが無いものとすると、ステップＳ３１からステップＳ３２に移行して、ラストフレームフラグがセットされ、Ｒ＿ＴＩＭＥに、受信したフレームのＲ＿ＴＩＭＥと自局送信データの伝送時間との差分から総遅延時間を減算した値（ＲＴ４＝ＲＴ３−自局送信データの伝送時間−総遅延時間）がセットされたダミーメッセージを生成し、ステップＳ３６でこれを送信する（８２）。このため、ノード３のメッセージ削除（８３）以降もメッセージフレームを巡回させることが可能となる。
【００７２】
これにより、ノード５がノード３宛のメッセージを送信するときには、この新規のダミーメッセージに続いてメッセージ送信を行うことができる（８４）。
メッセージ伝送を行う場合、メッセージ送信要求局が次々にメッセージを送信している場合問題がないが、ラストフレームフラグがＬ＝１のメッセージがネットワークを１周する間に新しい送信要求局が現れなかった場合、メッセージ送信局にラストフレームフラグがＬ＝１となっているメッセージが返ってきたところで、メッセージが削除されてしまい、それ以降メッセージ帯域が余っていた場合でも、次のメッセージを送信することが出来なくなる（図５の（６７）のケース）。
【００７３】
これに対して本実施形態では、マスタ局にこの状態を回避するための機能を追加しているので、メッセージ帯域中にメッセージフレームがなくなり、新しいメッセージが送信できなくなることがない。
また、前述したように、ネットワーク上の局は、受信したメッセージの中継、受信、送信および削除の判定を行うために、メッセージのヘッダ部分をＦＩＦＯに蓄える。単純に中継操作を行う際にもＦＩＦＯの段数分メッセージヘッダが蓄えられる時間が各局あたりの遅延時間となる。遅延時間はメッセージの送受信を行わない局であっても発生するので、ネットワークを構成するノード数が増加するほど、この遅延時間は大きくなり無視できない。
【００７４】
そこで、本実施形態では、マスタ局が新規のダミーメッセージを生成する際には、ネットワークを構成する局数とＦＩＦＯ段数とに応じて計算されるネットワーク全体の総伝送遅延時間をメッセージ帯域残り時間から減算し、その結果をＲ＿ＴＩＭＥとしてセットするようにする。これにより、メッセージ帯域内で適正にメッセージ送信を行うことができる。
【００７５】
このように、上記第２の実施形態では、マスタ局が最終メッセージを中継する際に、自局の送信要求メッセージの有無にかかわらず、新規のメッセージを生成し送信するので、メッセージ送信要求局の有無にかかわらず、ラストフレームフラグを持つメッセージをネットワーク上に巡回させることができ、メッセージ帯域中にメッセージフレームが一切流れなくなる状態となるのを回避することができる。
【００７６】
また、マスタ局は、上記新規のメッセージ生成する際、メッセージ帯域残り時間からネットワークの総伝送遅延時間を減算するので、各局でメッセージの中継や受信、送信、削除等の判定を行うことに起因して発生する遅延時間を考慮して、適正なメッセージ帯域残り時間をセットすることができる。さらに、総伝送遅延時間を考慮してもメッセージ帯域残り時間が余る場合にのみ、伝送フレームを送出することができるので、確実にメッセージを帯域時間内で送信することができる。
【００７７】
なお、上記第２の実施形態においては、図６のステップＳ３３で、受信したフレームのメッセージ帯域残り時間（Ｒ＿ＴＩＭＥ）が自局送信データの伝送時間以上であるか否かを判定する場合について説明したが、Ｒ＿ＴＩＭＥと自局送信データの伝送時間との差分から総伝送遅延時間を減算した値が正値であるか否かを判定するようにしてもよい。
また、上記第２の実施形態においては、ネットワークを構成するノード数が少なく、各局における遅延時間が無視できる程度である場合には、図６のステップＳ３２で、受信したフレームのメッセージ帯域残り時間をそのまま新たなメッセージ帯域残り時間として算出したり（Ｒ＿ＴＩＭＥ＝Ｒ＿ＴＩＭＥ）、ステップＳ３４で、受信したフレームのメッセージ帯域残り時間と自局送信データの伝送時間との差分を新たなメッセージ帯域残り時間として算出したり（Ｒ＿ＴＩＭＥ＝Ｒ＿ＴＩＭＥ−自局送信データの伝送時間）することもできる。
【００７８】
次に、本発明における第３の実施形態について説明する。
この第３の実施形態は、前述した第２の実施形態において、マスタ局に、他局に優先的に伝送すべき複数のメッセージ（以下、優先メッセージと称す）があるとき、他局のメッセージ送信を抑制し、この優先メッセージを連続して送信するようにしたものである。
図８は、第３の実施形態におけるマスタ局のメッセージ処理手順を示すフローチャートである。なお、この図８では、メッセージ帯域の開始時に最初のダミーメッセージを送信する処理は省略している。
【００７９】
また、この図８に示すメッセージ処理は、図６に示す前述した第２の実施形態におけるマスタ局のメッセージ処理において、ステップＳ３０の後に優先メッセージの有無を判定するステップＳ４１を追加し、当該ステップＳ４１で優先メッセージが有ると判定されたとき、優先メッセージを作成するステップＳ４２を追加したことを除いては、図６のメッセージ処理と同様の処理を行う。したがって、ここでは、図６と同一処理を行うステップには、同一のステップ番号を付し、処理の異なる部分を中心に説明する。
【００８０】
ステップＳ４１では、マスタ局は、自局に複数の優先メッセージがあるか否かを判定し、複数の優先メッセージがないと判定したときには前記ステップＳ３１に移行し、複数の優先メッセージがあると判定したときにはステップＳ４２に移行する。
ステップＳ４２では、マスタ局は、メッセージ帯域残り時間をＲ＿ＴＩＭＥ＝０とする共に上記優先メッセージを付加した送信メッセージの生成を行い、前記ステップＳ３５に移行する。このとき、生成した送信メッセージのラストフレームフラグはＬ＝１にセットする。
【００８１】
また、このステップＳ４２で、マスタ局は、実際のメッセージ帯域残り時間から送信する優先メッセージの通信時間を差し引いた値を算出し、これを新たな実際のメッセージ帯域残り時間として保持しておく。ここで保持したメッセージ帯域残り時間は、優先メッセージ処理が終了した後の通常メッセージ処理を行う際に使用する。
この図８において、ステップＳ４１が第３の算出手段に対応し、ステップＳ４２が優先メッセージフレーム生成手段に対応に対応し、ステップＳ３５及びＳ３６が優先メッセージフレーム送信手段に対応している。
【００８２】
次に、第３の実施形態における動作および効果について説明する。
図９は、第３の実施形態におけるメッセージ伝送例を示す図である。
ここでは、マスタ局（ノード１）がノード４とノード５とに送信する優先メッセージを有すると共に、ノード２がノード４宛の通常メッセージを有するものとし、以下、マスタ局（ノード１）が優先メッセージを送信する処理から説明する。
【００８３】
マスタ局に、ノード４とノード５とに送信する２つの優先メッセージがあるとき、図８のステップＳ４１でＹｅｓと判定してステップＳ４２に移行し、ステップＳ４２でラストフレームフラグがＬ＝１、メッセージ帯域残り時間がＲ＿ＴＩＭＥ＝０にセットされたノード４宛の優先メッセージを生成し、これをステップＳ３６で送信する（９１）。
マスタ局から送信された優先メッセージはノード２が受信し、ノード２は前述した図４に示すメッセージ処理を行う。このとき、ノード２はノード４宛の通常メッセージを有するため、図４のステップＳ８からステップＳ９に移行するが、メッセージ帯域残り時間がＲ＿ＴＩＭＥ＝０であるため、ステップＳ９でＮｏと判定されてメッセージ送信が行えない。したがって、ノード２は、マスタ局から送信された優先メッセージをノード３に中継する処理だけを行うことになる（９２）。
【００８４】
ノード３では、図４に示すメッセージ処理を行って、ノード２から送信されたノード４宛の優先メッセージをそのままノード４に中継する。
そして、ノード４は、図４に示すメッセージ処理を行って、自局宛の優先メッセージに対する受信動作を行い、ＡＣＫ情報を付加したメッセージをメッセージ送信元であるマスタ局に送り返す。
ノード５では、図４に示すメッセージ処理を行って、ノード４から送信されたメッセージをそのままマスタ局に中継する。
マスタ局では、自局が送信した優先メッセージのＡＣＫ情報を確認してから、この優先メッセージを削除する。次に、マスタ局は、ノード４宛の優先メッセージの生成・送信と同様にノード５宛の優先メッセージを生成し、これを送信する（９３）。
【００８５】
この場合にもメッセージ帯域残り時間はＲ＿ＴＩＭＥ＝０であるため、ノード２はノード４宛のメッセージ送信を行えない（９４）。
ノード３及びノード４では、図４に示すメッセージ処理を行って優先メッセージをそのまま中継し、ノード５では、図４に示すメッセージ処理を行って自局宛の優先メッセージに対する受信動作を行い、ＡＣＫ情報を付加したメッセージをメッセージ送信元であるマスタ局に送り返す。
【００８６】
マスタ局では、自局が送信した優先メッセージのＡＣＫ情報を確認してから、この優先メッセージを削除する。これにより優先メッセージの送信処理が終了し、マスタ局は通常メッセージ（ここでは自局宛のダミーメッセージ）の送信を行う（９５）。このとき、ダミーメッセージに付加されるメッセージ帯域残り時間Ｒ＿ＴＩＭＥは、ノード４，ノード５宛の優先メッセージの通信時間を差し引いた値（ＲＴ１）となる。
【００８７】
マスタ局から送信されたダミーメッセージはノード２が受信し、ノード２は図４に示すメッセージ処理を行う。このとき、ノード２はノード４宛の通常メッセージを有するため、受信したダミーメッセージに続けてノード４宛のメッセージを送信する（９６）。このとき、送信メッセージのラストフレームフラグはＬ＝１、メッセージ帯域残り時間はステップＳ１０で再計算された値（ＲＴ２＝ＲＴ１−自局送信メッセージ伝送時間）となる。
【００８８】
リングネットワークをプログラマブルコントローラ（ＰＬＣ）の制御ネットワークとして使用したシステムにおいて、ネットワークを介して交換するデータの種類としては大きく分けてＰＬＣアプリケーションに由来するメッセージとＰＬＣシステムに由来するメッセージとがある。
ＰＬＣシステムに由来するメッセージはシステムの維持、管理のために優先的に処理される必要がある。しかしながら、マスタ局とスレーブ局との間でメッセージの優先度に違いがなく両局が等しく扱われる場合、スレーブ局から送信されるＰＬＣアプリケーション由来のメッセージにより、マスタ局がＰＬＣシステムに由来するメッセージを直ちに送信できないという欠点がある。
【００８９】
これに対して本実施形態では、マスタ局に、他局に優先して伝送したいメッセージが複数ある場合、一時的にメッセージ帯域残り時間を“０”にセットして他局が通常メッセージを送信できない状態とすることで、マスタ局が優先的にメッセージ帯域を使えるようにし、連続して優先メッセージを送信する。このように、マスタ局に、他局と比較して高い優先度を持たせることができ、ＰＬＣシステムに由来するメッセージを優先的に処理することが可能となる。
【００９０】
なお、通常ネットワークのマスタ局は、ネットワークの構成・管理のためにスレーブ局と比較して複雑な処理が必要であり、且つネットワークの管理がＰＬＣシステムの管理に深く関連することから、ネットワークのマスタ局の優先がシステムのマスタ優先(＝システム管理メッセージの優先)と考えて差し支えない。
このように、上記第３の実施形態では、マスタ局が自局から他局へ優先的に伝送すべき優先メッセージを複数有するとき、フレームにセットするメッセージ帯域残り時間を零とするので、他局によるメッセージ送信を抑制し、連続して優先メッセージの送信が可能となる。その結果、ＰＬＣシステムに由来するメッセージを優先的に処理することができ、システムの維持・管理を適正に行うことができる。
【図面の簡単な説明】
【００９１】
【図１】本発明のリングネットワークの構成を示す図である。
【図２】プログラマブルコントローラシステムの構成図である
【図３】メッセージフレームのフォーマットを示す図である。
【図４】スレーブ局におけるメッセージ処理手順を示すフローチャートである。
【図５】第１の実施形態におけるメッセージ伝送例を示す図である。
【図６】第２の実施形態におけるマスタ局のメッセージ処理手順を示すフローチャートである。
【図７】第２の実施形態におけるメッセージ伝送例を示す図である。
【図８】第３の実施形態におけるマスタ局のメッセージ処理手順を示すフローチャートである。
【図９】第３の実施形態におけるメッセージ伝送例を示す図である。
【図１０】従来のネットワーク構成およびメッセージ伝送例を示す図である。
【図１１】従来のＣＰＵ内部プロセッサと時分割帯域管理のイメージを示す図である。
【符号の説明】
【００９２】
１〜５  ノード
６ａ〜６ｅ  通信ケーブル
１０  ベースボード
１１  ＩＯモジュール
１２  ＣＰＵモジュール
１３  電源
１４  ケーブル
４１  ラストフレームフラグ
４２  フレームコード
４３  メッセージ帯域残り時間
４４  送信元局番
４５  宛先局番
４６  データサイズ
４７  データ
【図１】
2010093551.tif 000003
【図２】
2010093551.tif 000004
【図３】
2010093551.tif 000005
【図４】
2010093551.tif 000006
【図５】
2010093551.tif 000007
【図６】
2010093551.tif 000008
【図７】
2010093551.tif 000009
【図８】
2010093551.tif 000010
【図９】
2010093551.tif 000011
【図１０】
2010093551.tif 000012
【図１１】
2010093551.tif 000013