(57)【要約】【課題】簡単な構成、かつ、仕組みでサイクリックデータの同期性が保証できるサイクリック通信同期システムを提供する。【解決手段】ネットワーク上に接続された複数の計算機間において各計算機に有するサイクリックメモリ１、２を用いて各計算機のサイクリックデータの同期を取るためのサイクリック通信を行うサイクリック通信同期システムにおいて、計算機におけるサイクリックメモリ１に対してサイクリックデータが更新中であるか否かを示す送信同期フラグ１ａと、計算機におけるサイクリックメモリ１に対してサイクリックデータが送信中であるか否かを示す送信中フラグ１ｂと、送信同期フラグ１ａの設定および送信中フラグ１ｂに基づいてサイクリックデータの更新を行うアプリケーション１０と、送信中フラグ１ｂの設定および送信同期フラグ１ａに基づいてサイクリックデータの送信を行う送信制御部１ｃとを備える。【選択図】図１
2007328589.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に接続された複数の計算機間において上記各計算機に有するサイクリックメモリを用いて上記各計算機のサイクリックデータの同期を取るためのサイクリック通信を行うサイクリック通信同期システムにおいて、上記計算機におけるサイクリックメモリに対して上記サイクリックデータが更新中であるか否かを示す送信同期フラグと、上記計算機における上記サイクリックメモリに対して上記サイクリックデータが送信中であるか否かを示す送信中フラグと、上記送信同期フラグの設定および上記送信中フラグに基づいて上記サイクリックデータの更新を行う更新手段と、上記送信中フラグの設定および上記送信同期フラグに基づいて上記サイクリックデータの送信を行う送信制御部とを備えたこと特徴とするサイクリック通信同期システム。
【請求項２】
ネットワーク上に接続された複数の計算機間において上記各計算機に有するサイクリックメモリを用いて上記各計算機のサイクリックデータの同期を取るためのサイクリック通信を行うサイクリック通信同期システムにおいて、上記計算機に他の計算機から入力される上記サイクリックデータを蓄積するバッファと、上記計算機におけるサイクリックメモリに対して上記サイクリックデータが読込中であるか否かを示す受信同期フラグと、上記計算機における上記サイクリックメモリに対して上記バッファからの上記サイクリックデータが更新中であるか否かを示す更新フラグと、上記受信同期フラグの設定および上記更新フラグに基づいて上記サイクリックデータの読込を行う読込手段と、上記更新フラグの設定および上記受信同期フラグに基づいて上記サイクリックデータの上記バッファからの更新を行う受信制御部とを備えたこと特徴とするサイクリック通信同期システム。
【請求項３】
ネットワーク上に接続された複数の計算機間において上記各計算機に有するサイクリックメモリを用いて上記各計算機のサイクリックデータの同期を取るためのサイクリック通信を行うサイクリック通信同期システムにおいて、上記計算機におけるサイクリックメモリに対して上記サイクリックデータが更新中であるか否かを示す送信同期フラグと、上記計算機における上記サイクリックメモリに対して上記サイクリックデータが送信中であるか否かを示す送信中フラグと、上記送信同期フラグの設定および上記送信中フラグに基づいて上記サイクリックデータの更新を行う更新手段と、上記送信中フラグの設定および上記送信同期フラグに基づいて上記サイクリックデータの送信を行う送信制御部と、上記計算機に他の計算機から入力される上記サイクリックデータを蓄積するバッファと、上記計算機におけるサイクリックメモリに対して上記サイクリックデータが読込中であるか否かを示す受信同期フラグと、上記計算機における上記サイクリックメモリに対して上記バッファからの上記サイクリックデータが更新中であるか否かを示す更新フラグと、上記受信同期フラグの設定および上記更新フラグに基づいて上記サイクリックデータの読込を行う読込手段と、上記更新フラグの設定および上記受信同期フラグに基づいて上記バッファからの上記サイクリックデータの更新を行う受信制御部とを備えたこと特徴とするサイクリック通信同期システム。
【請求項４】
上記バッファのデータ量がフルであるか否かを示す強制更新フラグを備え、上記読込手段は上記強制更新フラグに基づいて警告処理を行い、上記受信制御部は上記強制更新フラグの設定および上記強制更新フラグに基づいて上記バッファからの上記サイクリックデータの強制更新を行うことを特徴とする請求項２または請求項３に記載のサイクリック通信同期システム。
【請求項５】
上記サイクリックメモリが複数のブロックに分割されている場合、上記各ブロック毎に上記バッファ、上記受信同期フラグ、上記更新フラグをそれぞれ備え、上記サイクリックデータには上記各ブロックのいずれかブロックに受信するべきデータであるかが記録され、上記受信制御部は上記サイクリックデータを受信すると何れの上記ブロックに更新するべきデータであるかを判断して更新を行うことを特徴とする請求項２ないし請求項４のいずれかに記載のサイクリック通信同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、簡単な構成、かつ、仕組みでサイクリックデータの同期性が保証できるサイクリック通信同期システムに関するものである。
【背景技術】
【０００２】
従来のサイクリック通信の同期システムは、ネットワークに接続された全計算機が、共有メモリの形式で通信を行い、各計算機のアプリケーションは、通常のメモリにアクセスする方式と同様にデータをライトし、その他の計算機のアプリケーションは、通常のメモリにアクセスする方式と同様にデータをリードしていた。本方式の利点は、通信において、他計算機に伝えるためのフォーマットを定義し、伝えるデータをフォーマット変換し送信するためのアプリケーションインタフェースを呼び出す等のわずらわしい手順が不要になること、アプリケーション動作中にアプリケーションインタフェースをコールした際に、アプリケーションインタフェースのリターンまでまたなければ次の処理を継続することができないというリアルタイム性を損なう手順を排除できるという利点がある。
【０００３】
このように、サイクリック通信方式は、ネットワークに接続された計算機間で同一のメモリイメージを擬似的に生成し、アプリケーションから使いやすい通信方式を定義することが可能であるという大きな利点がある反面、書き手のアプリケーションがデータを更新している最中に、読み手のアプリケーションがデータをリードしてしまい、一貫性のないデータを瞬間的に参照してしまう可能性がある。本問題に対処するために、各計算機においてサイクリックメモリを２つ持ち、それぞれをアプリケーションがライトするサイクリックメモリと、ネットワーク機構により送信されるサイクリックメモリに分け、アプリケーションによるサイクリックメモリ更新後に、それぞれの役目を切り替えることにより、アプリケーションによるサイクリックメモリ更新と、ネットワークによるサイクリックデータ送信が同時に発生しないような同期機構を設けたものがある（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００５−３０３５３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のサイクリック通信同期システムは、ある容量のサイクリックメモリを実現する際に、その２倍のメモリが必要になり、２面あるサイクリックメモリを切り替える複雑な仕組みが必要になるという問題点があった。
【０００６】
この発明は上記のような課題を解決するためになされたものであり、簡単な構成、かつ、仕組みでサイクリックデータの同期性が保証できるサイクリック通信同期システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明は、ネットワーク上に接続された複数の計算機間において各計算機に有するサイクリックメモリを用いて各計算機のサイクリックデータの同期を取るためのサイクリック通信を行うサイクリック通信同期システムにおいて、計算機におけるサイクリックメモリに対してサイクリックデータが更新中であるか否かを示す送信同期フラグと、計算機におけるサイクリックメモリに対してサイクリックデータが送信中であるか否かを示す送信中フラグと、送信同期フラグの設定および送信中フラグに基づいてサイクリックデータの更新を行う更新手段と、送信中フラグの設定および送信同期フラグに基づいてサイクリックデータの送信を行う送信制御部とを備えたものである。
【発明の効果】
【０００８】
この発明のサイクリック通信同期システムは、ネットワーク上に接続された複数の計算機間において各計算機に有するサイクリックメモリを用いて各計算機のサイクリックデータの同期を取るためのサイクリック通信を行うサイクリック通信同期システムにおいて、計算機におけるサイクリックメモリに対してサイクリックデータが更新中であるか否かを示す送信同期フラグと、計算機におけるサイクリックメモリに対してサイクリックデータが送信中であるか否かを示す送信中フラグと、送信同期フラグの設定および送信中フラグに基づいてサイクリックデータの更新を行う更新手段と、送信中フラグの設定および送信同期フラグに基づいてサイクリックデータの送信を行う送信制御部とを備えたので、簡単な構成、かつ、仕組みでサイクリックデータの同期性が保証できる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
以下、本願発明の実施の形態について説明する。図１はこの発明の実施の形態１におけるサイクリック通信同期システムの構成を示すブロック図、図２は図１に示したサイクリック通信同期システムの送信制御部の動作を説明するためのフローチャート、図３は図１に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。図において、図１は、複数の計算機がネットワークを介して接続され各計算機間においてサイクリックデータの同期を行うサイクリック通信同期システムであって、計算機のサイクリックメモリ１と、他計算機の他サイクリックメモリ２と、計算機におけるサイクリックメモリ１に対してサイクリックデータが更新中であるか否かを示す送信同期フラグ１ａと、計算機におけるサイクリックメモリ１に対してサイクリックデータが送信中であるか否かを示す送信中フラグ１ｂと、送信同期フラグ１ａの設定および送信中フラグ１ｂに基づいてサイクリックデータの更新を行う更新手段としてのアプリケーション１０と、送信中フラグ１ｂの設定および送信同期フラグ１ａに基づいてサイクリックデータの送信を行う送信制御部１ｃとを備えている。
【００１０】
次に上記のように構成された実施の形態１におけるサイクリック通信同期システムの送信同期の動作について説明する。まず、送信制御部１ｃの動作が開始される（図２のステップＳ１１）と、送信制御部１ｃでは現時点がサイクリック送信タイミングであるか否かが判断される（図２のステップＳ１２）。ここで言うサイクリック送信タイミングとは、サイクリック通信同期システムの送信制御部１ｃにおいて予め決められた周期に基づいて実施されるものであるため、本機構についての説明は省略する。次に、サイクリック送信タイミングでないと判断された場合（ＮＯ）には、再度ステップＳ１２に戻り、再びサイクリック送信タイミングであるか否かが判断される。
【００１１】
また、サイクリック送信タイミングであると判断された場合（ＹＥＳ）には、送信同期フラグ１ａがＯＮであるか否かが判断される。次に、送信同期フラグ１ａがＯＮであると判断された場合（ＹＥＳ）には、サイクリック送信タイミングであったとしてもサイクリックデータが送信されることはなく、再度ステップＳ１２に戻り上記に示した動作を繰り返す。また、送信同期フラグ１ａがＯＮでない（ＯＦＦである）と判断された場合（ＮＯ）には、送信制御部１ｂはサイクリックデータの送信が可能であると判断して、送信中フラグ１ｂをＯＮに設定する（図２のステップＳ１４）。次に、サイクリックメモリ１からサイクリックデータをリードし、このリードしたサイクリックデータをネットワーク通信フォーマットに変換し、他計算機の他サイクリックメモリ２への送信を開始する（図２のステップＳ１５）。次に、事前に指定されていた領域分のサイクリックデータを送信完了した（図２のステップＳ１６）後、送信中フラグ１ｂをＯＦＦに設定する（図２のステップＳ１７）。次に、再びステップＳ１２に戻り上記に示した動作を繰り返す。
【００１２】
次に、アプリケーション１０のサイクリックデータの更新手順について説明する。まず、アプリケーション１０の処理が開始される（図３のステップＳ２１）と、アプリケーションではデータライトタイミングであるか否かが判断される（図３のステップＳ２２）。ここで言うデータライトタイミングとは、サイクリック通信同期システムのアプリケーション１０において予め決められたデータライト周期に基づいて実施されるものであるため、本機構についての説明は省略する。次に、データライトタイミングでないと判断された場合（ＮＯ）には、再度ステップＳ２２に戻り、再びデータライトタイミングであるか否かが判断される。また、データライトタイミングであると判断された場合（ＹＥＳ）には、サイクリックデータの更新を開始することを示す送信同期フラグ１ａをＯＮに設定する（図３のステップＳ２３）。このように、送信同期フラグ１ａがＯＮに設定されていれば、図２において示したように送信制御部１ｃにおいて、サイクリックデータの送信が行われることはない。次に、アプリケーション１０は送信制御部１ｃが設定する送信中フラグ１ｂがＯＮであるか否かを判断する（図３のステップＳ２４）。
【００１３】
次に、送信中フラグ１ｂがＯＮであると判断された場合（ＹＥＳ）には、データライトタイミングであったとしてもサイクリックデータは更新されることはなく、再びステップＳ２４に戻り上記に示した動作を繰り返し、送信中フラグ１ｂがＯＦＦになるまでデータライトは待機することとなる。また、送信中フラグ１ｂがＯＮでない（ＯＦＦである）と判断された場合（ＮＯ）には、アプリケーションはサイクリックデータの更新が可能であると判断して、サイクリックデータのデータライト（更新）を開始する（図３のステップＳ２５）。次に、アプリケーションがサイクリックメモリ１へのサイクリックデータのデータライトが完了する（図３のステップＳ２６）と、送信同期フラグ１ａがＯＦＦに設定され（図３のステップＳ２７）、再びステップＳ２２に戻り上記に示した動作が繰り返される。そして、このように送信同期フラグ１ａがＯＦＦに設定されていれば、図２において示したように送信制御部１ａは、サイクリックメモリ１からデータをリードし、サイクリックデータの送信が可能な状態となる。
【００１４】
上記のように構成された実施の形態１によれば、送信同期フラグと送信中フラグと設けたことにより、余分なサイクリックメモリを必要とせずに、簡単な構成かつ仕組みにて、アプリケーションが更新途中にサイクリックデータがネットワーク上に送信され、他計算機の他サイクリックメモリに更新途中のデータをライトすることなく完全に同期することが可能となり、かつ、サイクリック通信の一貫性を保証することができる。
【００１５】
実施の形態２．
上記実施の形態１では、サイクリックデータの送信における送信制御部とアプリケーションとの同期について示したが、本実施の形態２においては、サイクリックデータの受信の同期について説明する。図４はこの発明の実施の形態２におけるサイクリック通信同期システムの構成を示すブロック図、図５は図４に示したサイクリック通信同期システムの受信制御部の動作を説明するためのフローチャート、図６は図４に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。
【００１６】
図において、上記実施の形態１と同様の部分は同一符号を付して説明を省略する。計算機に他の計算機から入力されるサイクリックデータを蓄積するバッファ３ｄと、計算機におけるサイクリックメモリ１に対してサイクリックデータが読込中であるか否かを示す受信同期フラグ３ａと、計算機におけるサイクリックメモリ１に対してバッファ３ｄからのサイクリックデータが更新中であるか否かを示す更新フラグ３ｂと、受信同期フラグ３ａの設定および更新フラグ３ｂに基づいてサイクリックデータのリード（読込）を行う読込手段としてのアプリケーション１０と、更新フラグ３ｂの設定および受信同期フラグ３ａに基づいてサイクリックデータのバッファ３ｄからの更新を行う受信制御部３ｃとを備える。
【００１７】
次に上記のように構成された実施の形態２におけるサイクリック通信同期システムの受信同期の動作について説明する。まず、受信制御部３ｃの動作が開始される（図５のステップＳ３１）と、バッファ３ｄに受信データが存在するか否かを判断する（図５のステップＳ３２）。次に、受信データが存在しないと判断された場合（ＮＯ）には、再びステップＳ３２に戻り、再度受信データの有無を判断する。また、受信データが存在すると判断された場合（ＹＥＳ）には、受信同期フラグ３ａがＯＮであるか否かを判断する（図５のステップＳ３３）。次に、受信同期フラグ３ａがＯＮであると判断された場合（ＹＥＳ）には、バッファ３ｄに受信データが存在したとしても受信データが更新されることはなく、再びステップＳ３２に戻り上記に示した動作を繰り返す。尚、本ステップ実行中に、ネットワークから到達する受信データは、図４のバッファ３ｄに蓄積されている。次に、受信同期フラグ３ａがＯＮでないと判断された場合（ＮＯ）には、受信制御部３ｃはサイクリックデータの受信（更新）が可能であると判断して、更新フラグ３ｂをＯＮに設定する（図５のステップＳ３４）。次に、サイクリックデータの更新を行う（図５のステップＳ３５）。次に、サイクリックデータの更新が完了した（図５のステップＳ３６）後に、更新フラグ３ｂをＯＦＦに設定する（図５のステップＳ３７）。次に、再度ステップＳ３２に戻り上記に示した動作を繰り返す。
【００１８】
次に、アプリケーション１０のサイクリックデータのデータリード（読込）手順について図６のフローチャートを用いて説明する。まず、アプリケーション１０の処理が開始される（図６のステップＳ４１）と、データリードタイミングであるか否かが判断される（図６のステップＳ４２）。ここで言う、データリードタイミングとは、サイクリック通信同期システムのアプリケーション１０において予め決められたデータリード周期に基づいて実施されるものであるため、本機構についての説明は省略する。尚、以下におけるデータリードタイミングにおいても、同義であるためその説明は適宜省略する。次に、データリードタイミングではないと判断された場合（ＹＥＳ）には、再びステップＳ４２に戻り、データリードタイミングであるか否かが判断される。また、データリードタイミングであると判断された場合（ＹＥＳ）には、受信同期フラグ３ａをＯＮに設定する（図６のステップＳ４３）。このように、受信同期フラグ３ａがＯＮに設定されていれば、図５において示したように受信制御部３ｃにおいて、受信データの受信が行われることはない。
【００１９】
次に、アプリケーションは更新フラグ３ｂがＯＮであるか否かを判断する（図６のステップＳ４４）。次に、更新フラグ３ｂがＯＮであると判断された場合（ＹＥＳ）、データリードタイミングであったとしてもデータリードされることはなく、再びステップＳ４４に戻り上記に示した動作を繰り返し更新フラグ３ｂがＯＦＦになるまでデータリードを待機することとなる。また、更新フラグ３ｂがＯＮでない（ＯＦＦである）と判断された場合（ＮＯ）には、データリードが開始される（図６のステップＳ４５）。次に、データリードが完了する（図６のステップＳ４６）と、受信同期フラグ３ａがＯＦＦに設定され（図６のステップＳ４７）、再びステップＳ４２に戻り上記に示した動作が繰り返される。そして、このように受信同期フラグ３ａがＯＦＦに設定されていれば、図５において示したように受信制御部３ｃは、バッファ３ｄから受信データが受信可能な状態となる。
【００２０】
上記のように構成された実施の形態２によれば、受信同期フラグと、更新フラグと、アプリケーションがサイクリックデータをリードしている間のデータを蓄積しておくバッファとを設けたので、サイクリックメモリの更新途中にアプリケーションがサイクリックメモリをリードすることがなくなる。また、サイクリックデータをリードしている途中に受信制御部がサイクリックメモリを更新することが無くなるため完全に同期することが可能となり、かつ、サイクリック通信の一貫性を保証することができる。また、アプリケーションがリードしている間だけ、データを蓄積可能なバッファを設ければよいので、サイクリックメモリを２面持つ必要がなく、安価に受信同期の機構を設けることができる。
【００２１】
尚、上記実施の形態１においてはサイクリックデータの送信の同期についてのみを、また、上記実施の形態２においてはサイクリックデータの受信の同期についてのみをそれぞれ示したが、これに限られることはなく、これらを各実施の形態を組み合わせて実施することが可能であることは言うまでもなく、上記各実施の形態の両方の効果を奏することができる。また、以下の実施の形態においても同様のことが言えるためその説明は適宜省略する。
【００２２】
実施の形態３．
上記実施の形態２では、バッファ３ｄに入力されるデータ量について特に示していないが、本実施の形態３においては、バッファ３ｄのデータ量を監視する場合について説明する。図７はこの発明の実施の形態３におけるサイクリック通信同期システムの構成を示すブロック図、図８は図７に示したサイクリック通信同期システムの受信制御部の動作を説明するためのフローチャート、図９は図７に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。図において、上記各実施の形態と同様の部分は同一符号を付して説明を省略する。バッファ３ｄに入っているデータ量を受信制御部３ｃが監視する監視回路３ｅと、監視回路３ｅからの結果に応じて受信制御部３ｃがバッファ３ｄのデータ量がフルであるか否かを示す強制更新フラグ３ｆとを備え、アプリケーション１０は強制更新フラグ３ｆに基づいて警告処理を行い、受信制御部３ｃは強制更新フラグ３ｆの設定および強制更新フラグ３ｆに基づいてバッファ３ｄからのサイクリックデータの強制更新を行うものである。
【００２３】
次に上記のように構成された実施の形態３におけるサイクリック通信同期システムの受信同期の動作について説明する。まず、上記実施の形態２と同様に、受信制御部３ｃの動作が開始される（図８のステップＳ５１）と、バッファ３ｄに受信データが存在するか否かを判断する（図８のステップＳ５２）。次に、受信データが存在しないと判断された場合（ＮＯ）には、再びステップＳ５２に戻り、再度受信データの有無を判断する。また、受信データが存在すると判断された場合（ＹＥＳ）には、受信同期フラグ３ａがＯＮであるか否かを判断する（図８のステップＳ５３）。次に、受信同期フラグ３ａがＯＮであると判断された場合（ＹＥＳ）には、バッファ３ｄを監視回路３ｅにより監視し、バッファ３ｄがフル状態であるか否かを判断する（図８のステップＳ５８）。
【００２４】
次に、バッファ３ｄがフル状態でないと判断された場合には、バッファ３ｄに受信データが存在したとしても受信データが受信されることはなく、再びステップＳ５２に戻り上記に示した動作を繰り返す。また、バッファ３ｄがフル状態であると判断された場合、受信データを強制的にサイクリックメモリ１に書き出すため、強制更新フラグ３ｆがＯＮに設定される（図８のステップＳ５９）。尚、ここで強制更新フラグ３ｆが、いったんＯＮに設定されると、アプリケーション１０によらなければリセットできないように構成されている。次に、受信同期フラグ３ａがＯＮでないと判断された場合（ＮＯ）および強制更新フラグ３ｆがＯＮに設定された場合には、上記実施の形態２と同様に、更新フラグ３ｂをＯＮに設定する（図８のステップＳ５４）。次に、サイクリックデータの更新を行う（図８のステップＳ５５）。次に、サイクリックデータの更新が完了した（図８のステップＳ５６）後に、更新フラグ３ｂをＯＦＦに設定する（図８のステップＳ５７）。次に、再度ステップＳ５２に戻り上記に示した動作を繰り返す。
【００２５】
次に、アプリケーション１０のサイクリックデータのデータリード手順について図９のフローチャートを用いて説明する。まず、アプリケーション１０の処理が開始される（図９のステップＳ６１）と、データリードタイミングであるか否かが判断される（図９のステップＳ６２）。次に、データリードタイミングではないと判断された場合（ＹＥＳ）には、再びステップＳ６２に戻り、データリードタイミングであるか否かが判断される。また、データリードタイミングであると判断された場合（ＹＥＳ）には、受信同期フラグ３ａをＯＮに設定する（図９のステップＳ６３）。次に、アプリケーションは更新フラグ３ｂがＯＮであるか否かを判断する（図９のステップＳ６４）。次に、更新フラグ３ｂがＯＮであると判断された場合（ＹＥＳ）、データリードタイミングであったとしてもデータリードはされることはなく、再びステップＳ６４に戻り上記に示した動作を繰り返し更新フラグ３ｂがＯＦＦになるまでデータリードを待機することとなる。また、更新フラグ３ｂがＯＮでない（ＯＦＦである）と判断された場合（ＮＯ）には、データリードが開始される（図９のステップＳ６５）。次に、データリードが完了する（図９のステップＳ６６）と、受信同期フラグ３ａがＯＦＦに設定される（図９のステップＳ６７）。
【００２６】
次に、強制更新フラグ３ｆがＯＮであるか否かを判断する（図９のステップＳ６８）。次に、強制更新フラグ３ｆがＯＮでないと判断された場合（ＮＯ）には、再度ステップＳ６２に戻り上記に示した動作を繰り返す。また、強制更新フラグ３ｆがＯＮであると判断された場合（ＹＥＳ）には、受信制御部３ｃにおいてサイクリックメモリ１の強制更新がなされたとし警告処理を実施する（図９のステップＳ６９）。その後、再びステップＳ６２に戻り、上記に示した動作を繰り返す。このように、ステップＳ６８において強制更新フラグ３ｅがＯＮである場合とは、アプリケーション１０のデータリード処理がアプリケーション１０の問題により遅くなってしまった状態を示している。また、ステップＳ６９にて行う警告処理とは、本状態を警告しアプリケーション１０のデバッグ、もしくは、システムに応じて問題があることを通知するなどの適当な処理が行われることとなる。
【００２７】
上記のように構成された実施の形態３によれば、上記実施の形態２と同様の効果を奏するのはもちろんのこと、強制更新フラグを設けたので、アプリケーションの処理が遅くなり、サイクリックメモリの更新を停止する時間が長くなった場合でも、強制的にサイクリックメモリを更新し、かつ、バッファフルの状態が発生したことをアプリケーションに伝えることができる。
【００２８】
実施の形態４．
図１０はこの発明の実施の形態４におけるサイクリック通信同期システムの構成を示すブロック図、図１１は図１０に示したサイクリック通信同期システムのサイクリック通信に使用される通信フレームの構造を示した図、図１２は図１０に示したサイクリック通信同期システムの受信制御部の動作を説明するためのフローチャート、図１３は図１０に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。図において、上記各実施の形態と同様の部分は同一符号を付して説明を省略する。
【００２９】
後述する更新フラグの設定および後述する受信同期フラグに基づいてサイクリックデータの後述するバッファ３ｄからの更新を行う受信制御部４ｃと、各計算機のサイクリックメモリ毎にサイクリックの同期フラグテーブル４ｄとを備える。同期フラグテーブル４ｄは、ネットワークに接続される各計算機毎にエントリ４ｄ１が存在する。各計算機毎の１エントリはさらに、サイクリックメモリの送信ブロック数分に分割される。例えばサイクリックメモリ１では送信ブロックＡ、送信ブロックＢ、送信ブロックＣのように送信ブロックが３つある、すなわちエントリ４ｄ１はエントリａ、エントリｂ、エントリｃに分割されている。ここで送信ブロックとは、各計算機が定義できるサイクリックメモリの連続領域１つを指し、この例では各計算機は、１台につき３つの連続したサイクリック送信領域、すなわち送信するための３つのブロックを有している。ここで、１エントリは、計算機におけるサイクリックメモリ１に対してサイクリックデータがデータリード中（読込中）であるか否かを示す受信同期フラグ４ｄ２と、計算機におけるサイクリックメモリ１に対してバッファ４ｄ３からのサイクリックデータが更新中であるか否かを示す更新フラグ４ｄ４と、サイクリックメモリ１に対して他サイクリックメモリ２からのサイクリックデータを更新する前に一端蓄積するためのバッファ４ｄ３とを備え、受信制御部４ｃは、サイクリックデータ受信時にどの計算機から送信されたサイクリックデータか判定した後、エントリ４ｄ１に含まれるバッファ４ｄ３に、各計算機毎、かつ、各ブロック毎に蓄積するように構成されている。
【００３０】
サイクリックデータの受信フレーム５は、いずれかの計算機からのサイクリックデータで有るかを示すためのノードＩＤ５ａと、サイクリックメモリ１のいずれかの送信ブロックに受信するためのデータであるかを示すためのブロックＮＯ５ｂ、受信したサイクリックデータをサイクリックメモリ１のどこからライトするかを示すオフセット５ｃ、どれだけのサイズ分をライトするかを示すサイズ５ｄ、データ５ｅから構成される。受信制御部４ｃは、これらの情報から同期フラグテーブル４ｄに示す何れのエントリ４ｄ１の何れのブロックの何れのバッファ４ｄ３にデータを蓄積すればよいかを判定することができる。
【００３１】
次に上記のように構成された実施の形態４におけるサイクリック通信同期システムの受信同期の動作について説明する。まず、受信制御部４ｃの動作が開始される（図１２のステップＳ７１）と、受信データを受信したか否かを判断する（図１２のステップＳ７２）。次に、受信データを受信していないと判断された場合（ＮＯ）には、再びステップＳ７２に戻り、再度受信データの受信の有無を判断する。また、受信データを受信したと判断された場合（ＹＥＳ）には、その受信データの図１１に示すような受信フレーム５の構成のノードＩＤ５ａおよびブロックＮＯ５ｂより、この受信データが同期フラグテーブル４ｄの何れのエントリ４ｄ１の何れの送信ブロックであるかが決定される（図１２のステップＳ７３）。次に、決定された送信ブロックにおける受信同期フラグ４ｄ２がＯＮであるか否かを判断する（図１２のステップＳ７４）。次に、受信同期フラグ４ｄ２がＯＮであると判断された場合（ＹＥＳ）には、この受信データが更新されることはなく、決定された送信ブロックのバッファ４ｄ３に受信データを蓄積し（図１２のステップＳ７５）、再びステップＳ７２に戻り上記に示した動作を繰り返す。次に、受信同期フラグ４ｄ２がＯＮでないと判断された場合（ＮＯ）には、更新フラグ４ｄ４をＯＮに設定する（図１２のステップＳ７６）。次に、サイクリックデータの更新を行う（図１２のステップＳ７７）。次に、サイクリックデータの更新が完了した（図１２のステップＳ７８）後に、更新フラグ４ｄ４をＯＦＦに設定する（図１２のステップＳ７９）。次に、再度ステップＳ７２に戻り上記に示した動作を繰り返す。
【００３２】
また、これと同時に受信制御部４ｃの動作が開始される（図１２のステップＳ７１）と、同期フラグテーブル４ｄの全てのエントリ４ｄ１のバッファ４ｄ３にデータがあるか否かを判断する（図１２のステップＳ９１）。次に、バッファ４ｄ３にデータがないと判断された場合（ＮＯ）には、再びステップＳ９１に戻り、再度バッファ４ｄ３のデータの有無を判断する。また、バッファ４ｄ３にデータがあると判断された場合（ＹＥＳ）には、そのバッファ４ｄ３に対応する受信同期フラグ４ｄ２がＯＮであるか否かを判断する（図１２のステップＳ９２）。次に、受信同期フラグ４ｄ２がＯＮであると判断された場合（ＹＥＳ）には、この受信データが更新されることはなく、再びステップＳ９１に戻り、再度バッファ４ｄ３のデータの有無を判断する。次に、受信同期フラグ４ｄ２がＯＮでないと判断された場合（ＮＯ）には、更新フラグ４ｄ４をＯＮに設定する（図１２のステップＳ９３）。次に、サイクリックデータの更新を行う（図１２のステップＳ９４）。次に、サイクリックデータの更新が完了した（図１２のステップＳ９５）後に、更新フラグ４ｄ４をＯＦＦに設定する（図１２のステップＳ９６）。次に、再度ステップＳ９１に戻り上記に示した動作を繰り返す。この動作を繰り返すことにより、ステップＳ７５にてバッファ４ｄ３に蓄積されたデータは受信のタイミング以外にて更新することができる。
【００３３】
次に、アプリケーション１０のサイクリックデータのデータリード手順について図１３のフローチャートを用いて説明する。まず、アプリケーション１０の処理が開始される（図１３のステップＳ８１）と、データリードタイミングであるか否かが判断される（図１３のステップＳ８２）。次に、データリードタイミングではないと判断された場合（ＹＥＳ）には、再びステップＳ８２に戻り、データリードタイミングであるか否かが判断される。また、データリードタイミングであると判断された場合（ＹＥＳ）には、サイクリックデータの受信フレーム５のノードＩＤ５ａおよびブロックＮＯ５ｂから同期フラグテーブル４ｄの何れの受信同期フラグ４ｄ２であるかを選択する（図１３のステップＳ８３）。そして、この選択された受信同期フラグ４ｄ２をＯＮに設定する（図１３のステップＳ８４）。このように、受信同期フラグ４ｄ２がＯＮに設定されていれば、図１２において示したように受信制御部４ｃにおいて、受信データの更新が行われることはない。
【００３４】
次に、アプリケーションは更新フラグ４ｄ４がＯＮであるか否かを判断する（図１３のステップＳ８５）。次に、更新フラグ４ｄ４がＯＮであると判断された場合（ＹＥＳ）、データリードタイミングであったとしてもデータリードされることはなく、再びステップＳ８５に戻り上記に示した動作を繰り返し更新フラグ４ｄ４がＯＦＦになるまでデータリードを待機することとなる。また、更新フラグ４ｄ４がＯＮでない（ＯＦＦである）と判断された場合（ＮＯ）には、データリードが開始される（図１３のステップＳ８６）。次に、データリードが完了する（図１３のステップＳ８７）と、受信同期フラグ４ｄ２がＯＦＦに設定され（図１３のステップＳ８８）、再びステップＳ８２に戻り上記に示した動作が繰り返される。そして、このように受信同期フラグ４ｄ２がＯＦＦに設定されていれば、図１２において示したように受信制御部４ｃは、バッファ４ｄ３から受信データが受信可能な状態となる。
【００３５】
上記のように構成された実施の形態４によれば、上記各実施の形態と同様の効果を奏するのはもちろんのこと、各計算機毎に送信同期フラグを持つようにしたので、アプリケーションがサイクリックメモリの更新を停止する際に、各ノード毎にサイクリックメモリの更新を停止することができる。そのためアプリケーションがある計算機のサイクリックメモリ領域を参照するためサイクリックの更新を停止している場合でも、受信制御部は他計算機のサイクリックメモリ領域の更新をすることができ、サイクリックメモリの更新を停滞しないようにすることができる。
【図面の簡単な説明】
【００３６】
【図１】この発明の実施の形態１におけるサイクリック通信同期システムの構成を示すブロック図である。
【図２】図１に示したサイクリック通信同期システムの送信制御部の動作を説明するためのフローチャート。
【図３】図１に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。
【図４】この発明の実施の形態２におけるサイクリック通信同期システムの構成を示すブロック図である。
【図５】図４に示したサイクリック通信同期システムの受信制御部の動作を説明するためのフローチャートである。
【図６】図４に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。
【図７】この発明の実施の形態３におけるサイクリック通信同期システムの構成を示すブロック図である。
【図８】図７に示したサイクリック通信同期システムの受信制御部の動作を説明するためのフローチャートである。
【図９】図７に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。
【図１０】この発明の実施の形態４におけるサイクリック通信同期システムの構成を示すブロック図である。
【図１１】図１０に示したサイクリック通信同期システムの受信フレームの構成を示した図である。
【図１２】図１０に示したサイクリック通信同期システムの受信制御部の動作を説明するためのフローチャートである。
【図１３】図１０に示したサイクリック通信同期システムのアプリケーションの動作を説明するためのフローチャートである。
【符号の説明】
【００３７】
１  サイクリックメモリ、１ａ  送信同期フラグ、１ｂ  送信中フラグ、
１ｃ  送信制御部、２  他サイクリックメモリ、３ａ，４ｄ２  受信同期フラグ、
３ｂ，４ｄ４  更新フラグ、３ｃ，４ｃ  受信制御部、３ｄ，４ｄ３  バッファ、
３ｅ  監視回路、３ｆ  強制更新フラグ、４ｄ  同期フラグテーブル、
４ｄ１  エントリ、５  受信フレーム、５ａ  ノードＩＤ、５ｂ  ブロックＮＯ、
Ａ，Ｂ，Ｃ  ブロック、ａ，ｂ，ｃ  エントリ。
【図１】
2007328589.tif 000003
【図２】
2007328589.tif 000004
【図３】
2007328589.tif 000005
【図４】
2007328589.tif 000006
【図５】
2007328589.tif 000007
【図６】
2007328589.tif 000008
【図７】
2007328589.tif 000009
【図８】
2007328589.tif 000010
【図９】
2007328589.tif 000011
【図１０】
2007328589.tif 000012
【図１１】
2007328589.tif 000013
【図１２】
2007328589.tif 000014
【図１３】
2007328589.tif 000015