(57)【特許請求の範囲】
【請求項１】
各装置に対応した識別子を付加したデータをネットワークに送信する外部装置と、
ネットワークからデータを受信し、割り込み信号を出力する割り込み受信部と、
ネットワークに送信されたデータの中から、設定された識別子と識別子が一致したデータを受信する識別子付受信部と、
前記割り込み信号が出力されたときに前記割り込み受信部に取り込まれた前記データを前記割り込み受信部から一時記憶部に転送する通信ドライバタスクと、前記一時記憶部に記憶された前記データを所定の転送レートで、記憶部に転送するデータ管理タスクと、前記記憶部に記憶されたデータに基づいて演算処理または送信を行う演算処理タスクを予め設定された優先順位に基づいて順次実行する制御部を備え、
該制御部は、前記一時記憶部がオーバーライト状態となったことを検知するオーバーライト検知手段と、
オーバーライト状態となった一時記憶部に記憶されたデータ内容を解析し、正常な送信レートより高いレートで送信されているデータの識別子リストを作成するオーバーレート識別子リスト作成手段と、
前記オーバーレート識別子リストの識別子を前記識別子付受信部の識別子として設定する識別子設定手段と、
所定レートで、前記識別子付受信部で受信されたデータを前記記憶部へ転送するオーバーレート識別子データ転送手段を有し、
前記割り込み受信部は、前記識別子付受信部に識別子が設定されていない識別子が付与されたデータをネットワーク上から取り込むことを特徴とするマルチタスク処理システム。
【請求項２】
前記一時記憶部がリングバッファであることを特徴とする請求項１記載のマルチタスク処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上からデータを受信してマルチタスク方式でデータ処理を行うマルチタスク処理システムに関し、特にネットワーク上に送信されたデータの受信を最優先で実行するために、割り込み受信部を備えたマルチタスク処理システムに関する。
【０００２】
【従来の技術】
従来複数の外部装置とデータを交換する際に、個々の装置に応じた識別子であるＩＤを付与したデータをネットワークを介して送受信する情報処理システムが開発されている。
従来のシステムとしては、例えば図１０に示すように、外部装置Ｕ１〜Ｕ１５と、割り込みレジスタＩＲ’、汎用レジスタＲ１６、制御部６、リングバッファ２およびデータテーブル３からなるマルチタスク処理装置が、ネットワークＮを介して接続されている。
ネットワークＮ上に、外部装置Ｕ１〜Ｕ１５からデータが送信されると、割り込みレジスタＩＲ’は、データを受信し、直ちに割り込み信号ＩＳを制御部６へ出力する。
【０００３】
制御部６における制御動作は、割り込みレジスタＩＲ’に保存されたデータをリングバッファ２に転送する通信ドライバタスクと、リングバッファ２に格納されたデータをデータテーブル３に転送するデータ管理タスク、そしてデータテーブル３に格納されたデータに基づいて、演算処理または送信を行う演算処理タスクからなり、各タスクは予め設定された優先順位に従って順次実行される。
【０００４】
具体的には、通信ドライバタスクが最も高い優先順位にあり、割り込み信号ＩＳが入力された場合には、直ちに実行される。他のタスクが実行されていた場合には、そのタスクの動作は、一時的に停止状態に切り換えられ、通信ドライバタスクの処理が終了した後再開される。
次の優先順位は、演算処理タスクにあり、予め定められた所定の制御で起動され、通信ドライバタスクが実行されていなければ、実行される。通信ドライバタスクが実行されている場合には、通信ドライバタスクの動作が終了するまで、待機状態となる。
【０００５】
データ管理タスクは最も低い優先順位のタスクである。このタスクはポーリング式で起動し、通信ドライバタスクまたは演算処理タスクが実行されていなければ、実行される。
通信ドライバタスクまたは演算処理タスクが起動された場合には、一時停止状態となり、通信ドライバタスクまたは演算処理タスクの処理が終了後再開される。
【０００６】
正常に動作が行われるためには、これらのタスクが実行される実行時間や実行回数のバランスが所定範囲に保たれる必要がある。
このため、不図示の監視装置により、各タスクの実行状態を監視し、タスクの実行状態にアンバランスが生じた場合には、エラーリカバリー処置を実行する。
【０００７】
例えば、ウオッチドッグタイマにより各タスクの実行状態を監視し、いずれかのタスクが所定時間を経過しても一回も実行されない場合には、処理装置内に何らかのトラブルが発生しているとみなし、一旦処理装置の動作を停止し、再起動させている。
あるいは、特開平８−２０２４０９号公報に記載されているマルチプロセッサシステム等では、一つのＣＰＵでタスク実行状態にアンバランスが検出された場合には、そのＣＰＵのランタイムが不足しているとみなし、他のＣＰＵに負荷の一部を移すことにより、タスク実行状態のアンバランスを解消している。
【０００８】
【発明が解決しようとする課題】
しかしながら、マルチタスク処理装置において、タスクのバランスが崩れる原因のひとつとして、マルチタスク処理装置自身には異常はないが、データを送信している外部装置に異常が生じている場合がある。
特に、外部装置の異常により、通常の送信レートより高いオーバーレートでデータが送信された場合には、そのオーバーレートデータを割り込みレジスタで受信すると、割り込みレジスタによる受信、割り込み信号ＩＳの出力および通信ドライバタスクによるデータの転送が頻繁に繰り返され、他のタスクを実行する時間が不足し、タスク実行状態にアンバランスが生じることがある。
【０００９】
この場合には、処理装置を再起動しても、タスクの実行状態のアンバランスは解消されず、また他のＣＰＵにオーバーレートデータの受信を移しても、オーバーレートデータを受信するＣＰＵにおいて、再びタスク実行状態のアンバランスが生じてしまう。
このため、本来受信側のマルチタスク処理装置には、異常が生じていないにも係わらず、受信側おけるエラーリカバリー動作が頻繁に繰り返され、動作に支障が生じてしまうという問題があった。
【００１０】
本発明は、このような従来の問題点に鑑み、外部装置の異常により、所定送信レートより高いオーバーレートでデータが送信された場合でも、受信側の動作に支障が生じることがない、信頼性の向上したマルチタスク処理システムを提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記課題を解決するために、請求項１記載の発明では各装置に対応した識別子を付けたデータをネットワークに送信する外部装置と、ネットワークからデータを受信し、割り込み信号を出力する割り込み受信部と、ネットワークに送信されたデータの中から、設定された識別子と識別子が一致したデータを受信する識別子付受信部と、割り込み信号が出力されたときに割り込み受信部に取り込まれたデータを割り込み受信部から一時記憶部に転送する通信ドライバタスクと、一時記憶部に記憶されたデータを所定の転送レートで、記憶部に転送するデータ管理タスクと、記憶部に記憶されたデータに基づいて演算処理または送信を行う演算処理タスクを予め設定された優先順位に基づいて順次実行する制御部を備え、制御部は、一時記憶部がオーバーライト状態となったことを検知するオーバーライト検知手段と、オーバーライト状態となった一時記憶部に記憶されたデータ内容を解析し、正常な送信レートより高いレートで送信されているデータの識別子リストを作成するオーバーレート識別子リスト作成手段と、オーバーレート識別子リストの識別子を識別子付受信部の識別子として設定する識別子設定手段と、所定レートで、識別子付受信部で受信されたデータを前記記憶部へ転送するオーバーレート識別子データ転送手段を有し、割り込み受信部は、識別子付受信部に識別子が設定されていない識別子が付与されたデータをネットワーク上から取り込むものとする。
【００１２】
請求項２記載の発明では、上記一時記憶部がリングバッファであるものとした。
【００１３】
【発明の効果】
請求項１記載の発明では、外部装置が正常な状態でデータを送信している場合には、データはすべて割り込み受信部で受信され、制御部の通信ドライバタスクにより、データが受信される毎に、割り込み受信部から一時記憶部に転送され、データ管理タスクにより、一時記憶部から記憶部に転送される。演算処理タスクは、記憶部に記憶されたデータに基づいて、演算処理を行う。
【００１４】
外部装置に異常が生じ、通常の送信レートより高いオーバーレートでデータが送信されると、割り込み受信部から一時記憶部へのデータの転送が頻繁に行われ、一時記憶部がオーバーライト状態となる。
制御部では、オーバーライト検知手段により、一時記憶部のオーバーライト状態が検知されると、オーバーレート識別子リスト作成手段は、一時記憶部に記憶されたデータの中から、オーバーレートで送信されているデータのリストであるオーバーレート識別子リストを作成し、オーバーレート識別子設定手段により、オーバーレート識別子リストの識別子を識別子付受信部の識別子として設定する。
【００１５】
識別子付受信部に識別子が設定されると、ネットワークに送信されたデータのうち、識別子が識別子付受信部に設定されているデータは、該当する識別子付受信部で受信され、識別子が識別子付受信部に設定されていないデータのみが、割り込み受信部で受信される。
【００１６】
このため、割り込み受信部では、正常な送信レートで送信されたデータのみを受信するため、通信ドライバタスクによる割り込み受信部から一時記憶部へのデータ転送が、他のタスクの実行を妨げるほど頻繁に行われることはない。
したがって、外部装置の異常により、正常な送信レートより高いレートでデータが送信された場合でも、受信側の処理装置の動作に支障が生じることを防止でき、マルチタスク処理システムの信頼性を向上させることができる。
【００１７】
請求項２記載の発明では、一時記憶部としてリングバッファを用いることにより、容易にオーバーライト状態を検出できる。
【００１８】
【発明の実施の形態】
本発明の実施の形態を実施例により説明する。
図１は本発明の実施例の構成を示すブロック図である。
制御部１には、割り込みレジスタＩＲ、ＩＤ付レジスタＲ１〜Ｒ７、汎用レジスタＲ８〜Ｒ１５、リングバッファ２およびデータテーブル３が接続されている。
割り込みレジスタＩＲおよびＩＤ付レジスタＲ１〜Ｒ７は、ＩＤマスク部４を介して、ネットワークＮに接続されている。汎用レジスタＲ８〜Ｒ１５は、ネットワークＮに直接接続されている。
【００１９】
ネットワークＮには、外部装置Ｕ１〜Ｕ１５が接続され、外部装置Ｕ１はＩＤ＝１が付与されたデータを送信し、外部装置Ｕ２はＩＤ＝２を、同様に外部装置Ｕ３〜Ｕ１５はＩＤ＝３〜ＩＤ＝１５が付与されたデータを送信する。
制御部１には、ＩＤ＝０が設定されている。
【００２０】
ＩＤ付レジスタＲ１〜Ｒ７は、オーバーレートデータ受信用のレジスタであり、通常は使用されない。
後述するオーバーライトエラー処理により、ＩＤが設定されると、予め設定されたＩＤと一致したＩＤが付加されたデータを受信する。
ＩＤ付レジスタＲ１〜Ｒ７で受信されたデータは、一定周期で制御部１により読み出され、転送される。ＩＤ付レジスタＲ１〜Ｒ７は、一旦データを受信して保管すると、制御部１により保管したデータが読み出されて、転送されるまでの間は、データを受信しない。
【００２１】
割り込みレジスタＩＲは、ＩＤ付レジスタに設定されたＩＤと一致しないＩＤが付加されたデータを受信する。ＩＤ付レジスタのＩＤが設定されていない場合には、全てのデータを受信する。
データを受信すると、直ちに割り込み信号ＩＳを制御部１に出力する。
汎用レジスタＲ８〜Ｒ１５は、必要に応じて、種々の記憶部として用いられる。
【００２２】
リングバッファ２は、図２に示すような複数個のポジションから構成されるリング状のバッファである。格納されたデータの最初のポジションをＨｅａｄポジション、最後のポジションをＴａｉｌポジションとする。
データテーブル３は、受信されたデータを記憶できる十分な記憶容量を備えた記憶部である。
割り込みレジスタＩＲおよびＩＤマスク部４は、発明の割り込み受信部を構成する。また、ＩＤ付レジスタＲ１〜Ｒ７は、発明の識別子付受信部を構成し、リングバッファ２は発明の一時記憶部を、データテーブル３は記憶部を構成する。
【００２３】
次に、制御部１の動作を中心に、本発明のマルチタスク処理システムの動作を説明する。
制御部１における制御動作は、次の３つのタスクから構成されている。
まず、通信ドライバタスクは、割り込みレジスタＩＲに保存されたデータをリングバッファ２に転送する。またリングバッファ２がオーバーライト状態となった場合に、後述するオーバーライトエラー処理を行い、通常の送信レートより高いレートで送信されているオーバーレートデータのＩＤをＩＤ付レジスタＲ１〜Ｒ７のＩＤとして設定する。
【００２４】
データ管理タスクは、リングバッファ２に格納されたデータをデータテーブル３に転送する。またオーバーライトエラー処理が行われた場合には、ＩＤ付レジスタＲ１〜Ｒ７で受信したデータを一定周期で、データテーブル３に転送する。演算処理タスクは、データテーブル３に格納されたデータに基づいて、演算処理または送信を行う。また、オーバーライトエラー処理が実行されている間、制御部１をフェイルセーフ状態に保つ。
【００２５】
各タスクは予め設定された優先順位に従って、複数の動作状態間で遷移しながら、順次実行される。
通信ドライバタスクは、起動されていないスリーピング状態、処理を行っているオペレーション状態、起動され待機しているレディ状態の３つの状態を遷移し、演算処理タスクはスリーピング状態、オペレーション状態、レディ状態、処理が中断されているブロックド状態の４つの状態を遷移し、データ管理タスクはオペレーション状態とブロックド状態の２つの状態を遷移する。
【００２６】
まず、図３を用いて、通信ドライバタスクにおける動作状態の遷移条件を説明する。
通信ドライバタスクは、最も高い優先順位にあり、割り込みレジスタＩＲから割り込み信号ＩＳが入力されると、レディ状態になり、直ちにオペレーション状態となり、処理を実行する。他のタスクが実行されていた場合には、そのタスクの動作は、中断されてブロックド状態に切り換えられ、通信ドライバタスクの処理が優先的に実行される。
通信ドライバタスクは、処理が終了すると、オペレーション状態からスリーピング状態となり、次に割り込み信号ＩＳが入力されるまで、スリーピング状態を保つ。
最も優先順位の高いタスクであるため、ブロックド状態になることはない。
【００２７】
次に、図４を用いて第２の優先順位を有する、演算処理タスクにおける動作状態の遷移条件を説明する。
予め定められた一定周期で起動され、通信ドライバタスクが起動されていない、すなわちスリーピング状態であれば、レディ状態から直ちにオペレーション状態に移り、実行される。
通信ドライバタスクが起動されている場合には、通信ドライバタスクの処理動作が終了するまで、レディ状態で待機する。
オペレーション状態で処理を実行中に、通信ドライバタスクが起動された場合には、処理は中断されブロックド状態に切り換えられる。通信ドライバタスクの処理が終了し、通信ドライバタスクがスリーピング状態に移行すると、演算処理タスクは、ブロックド状態からオペレーション状態に移行し、処理を再開する。
【００２８】
最も優先順位が低いデータ管理タスクにおける動作状態の遷移条件を図５に示す。
データ管理タスクは、ポーリング式で起動され、通信ドライバタスクおよび演算処理タスクが起動されていなければ、常時実行される。
通信ドライバタスクまたは演算処理タスクが起動された場合には、すぐにブロックド状態となり、起動された通信ドライバタスクまたは演算処理タスクの処理が終了後再開される。
なお、システムにエラーが発生した場合には、上記遷移条件よりエラー処理における処理が優先される。
【００２９】
次に、図６、図８および図９に示すフローチャートを用いて、制御部１における動作を詳細に説明する。
図６は、通信ドライバタスクの流れを示すフローチャートである。
ステップ１０１では、割り込みレジスタＩＲから割り込み信号ＩＳが入力されるとスリーピング状態からレディ状態、オペレーション状態に遷移し、ステップ１０２へ進む。
【００３０】
割り込み信号ＩＳが入力されない場合には、スリーピング状態で割り込み信号ＩＳの入力の監視を継続する。
ステップ１０２では、リングバッファ２にデータを書き込む空きポジションが残っていないオーバーライト状態であるか否かを判定する。
具体的には、格納されたデータの最後のポジションであるＴａｉｌポジションに１を加えた値と格納されたデータの先頭のポジションであるＨｅａｄポジションの値を比較し、等しい場合には、オーバーライト状態であると判定し、ステップ１０５へ進み、ステップ１０５〜ステップ１１８において、オーバーライトエラー処理を行う。
【００３１】
Ｔａｉｌポジションに１を加えた値とＨｅａｄポジションの値が等しくなければ、リングバッファ２には、データを書き込む余裕が残っている状態であり、すなわち外部装置から異常に高いレートで送信されたデータを受信してはいないので、通常の動作として、ステップ１０３へ進み、データを割り込みレジスタＩＲからリングバッファ２へ転送する。
ステップ１０４では、Ｔａｉｌポジションの値に１を加え、ステップ１０２へ戻る。
【００３２】
ステップ１０５では、リングバッファ２には、データを書き込む余裕が残っていないオーバーライト状態であり、オーバーライトエラーフラグを設定する。
ステップ１０６では、システムエラーを示すシステムエラーフラグも設定する。
ステップ１０７では、一旦通信ドライバタスクをスリーピング状態に遷移させ、演算処理タスクから返答信号Ａが入力されるまで、スリーピング状態で待機する。
返答信号Ａが入力されると、ステップ１０８へ進み、ステップ１０８〜ステップ１１１において、通常の送信レートより高い送信レートで送信されているオーバーレートデータのＩＤをリストアップする。
【００３３】
ステップ１０８では、まず、リングバッファ２の全ポジションにデータが蓄積されるまでに経過したデータ蓄積時間を算出する。
具体的には、データ管理タスクに記憶されている、リングバッファ２のデータをデータテーブル３に転送し、リングバッファ２の全ポジションを空き状態にしたデータ転送時刻から、リングバッファ２のオーバーライト状態が検出された時刻までの経過時間を算出し、データ蓄積時間とする。
【００３４】
次にステップ１０９で、リングバッファ２に格納されている全データのＩＤ毎の格納数を示すＩＤ格納数表を作成する。
具体的には、リングバッファ２に格納されたデータを順次読み出して、読み出されたデータのＩＤを検出し、ＩＤ毎の個数を算出する。
リングバッファ２に格納された全てのデータのＩＤ毎の個数を算出し、ＩＤ格納数表とする。
【００３５】
ステップ１１０では、ＩＤ格納数表の値をステップ１０８で算出したデータ蓄積時間で除算することにより、ＩＤ毎の受信レートを示す、ＩＤ受信レート表を作成する。
ステップ１１１では、各ＩＤ毎に、受信レートが通常の送信レートに対応した正常な受信レートより高いレートであるか、すなわちデータがオーバーレートデータであるか否かをしらべ、オーバーレートデータのＩＤの一覧表であるオーバーレートＩＤリストを作成する。
この際には、各外部装置の送信レートが異なる場合には、ＩＤ毎に対応する外部装置の正常な送信レートと比較すればよい。
【００３６】
ステップ１１２では、オーバーレートＩＤリストを受信レートの高いものから低いものへ順次並ぶように、並べ替えるソーティングを行う。
ステップ１１３では、ＩＤ付レジスタＲ１〜Ｒ７に、オーバーレートＩＤリストの受信レートの高い順からＩＤ番号を割り当てる。
例えば、オーバーレートＩＤリストとして、図７の（ａ）に示すようなリストが作成された場合には、ＩＤ付レジスタＲ１にはＩＤ＝４を設定し、ＩＤ付レジスタＲ２にはＩＤ＝６を、ＩＤ付レジスタＲ３にはＩＤ＝１０を設定する。
【００３７】
また、図７の（ａ）に示すようなオーバーレートＩＤリストが作成された場合には、さらに、ＩＤ付レジスタＲ４にはＩＤ＝１５を設定し、ＩＤ付レジスタＲ５にはＩＤ＝１を、ＩＤ付レジスタＲ６にはＩＤ＝２を設定し、ＩＤ付レジスタＲ７にはＩＤ＝９を設定する。この際には、ＩＤ＝１３のデータは、ＩＤ付レジスタＲ１〜Ｒ７では受信できないため、割り込みレジスタＩＲで受信されてしまうが、受信レートは、比較的低いので、マルチタスク制御装置の動作に支障をきたす確率は低くなる。
【００３８】
ステップ１１４では、オーバーライトエラーフラグを消去する。
ステップ１１５では、オーバーレートデータモードフラグを設定する。このフラグは、データ管理タスクにおいて、通常の転送のみを行うか、オーバーレートデータ用のＩＤ付レジスタ内のデータの転送を行うかの判定に用いる。
【００３９】
ステップ１１６は、システムエラーフラグも消去する。
ステップ１１７は、エラー処理終了信号ＥＳを出力する。
ステップ１１８は、一旦通信ドライバタスクをスリーピング状態に遷移させ、演算処理タスクから返答信号Ａが入力されるまで、スリーピング状態で待機する。
返答信号Ａが入力されると、ステップ１０１へ戻る。
【００４０】
次に、データ管理タスクにおける動作を図８に示すフローチャートを用いて説明する。
ステップ２０１では、ポーリング式で起動され、通信ドライバタスクおよび演算処理タスクがスリーピングであるか否かを判定する。両方のタスクがスリーピング状態であれば、ステップ２０２へ進む。どちらかのタスクがスリーピング状態でなければ、ブロックド状態で、両方のタスクがスリーピング状態になるまで待機する。
【００４１】
ステップ２０２では、リングバッファ２にデータが格納されているか否かを判定する。
データが格納されていなければ、ステップ２０５へ進む。
データが格納されていれば、ステップ２０３へ進み、リングバッファ２に格納されたデータをデータテーブル３へ転送し、ステップ２０４で、転送した時刻データ転送時刻として記憶する。
【００４２】
ステップ２０５では、オーバーレートデータモードフラグが設定されているか否かを判定する。
オーバーレートデータモードフラグが設定されていなければ、ステップ２０１に戻る。
オーバーレートデータモードフラグが設定されていれば、ステップ２０６へ進む。
【００４３】
ステップ２０６では、ＩＤ付レジスタに格納されたオーバーレートデータの転送時間であるか否かを判定する。
具体的には、オーバーレートデータを転送後の経過時間をオーバーレートクロックにより計測し、所定時間経過している場合には、オーバーレートデータの転送時間であるとみなし、ステップ２０７へ進む。
オーバーレートデータの転送時間でなければ、ステップ２０１へ戻る。
ステップ２０７では、ＩＤレジスタＲ１〜Ｒ７に、データが格納されているか否かを調べ、データが格納されている場合には、そのデータをＩＤ付レジスタからデータテーブル３に転送する。
【００４４】
さらに、図９に示すフローチャートを用いて、演算処理タスクにおける動作を説明する。
ステップ３０１では、所定周期のクロックからクロック信号ＣＳが入力されると、起動され、レディ状態となる。
ステップ３０２では、通信ドライバタスクがスリーピング状態であるか否かを判定する。
スリーピング状態であれば、ステップ３０３へ進む。
スリーピング状態でなければ、通信ドライバタスクがスリーピング状態になるまで、レディ状態で待機する。
【００４５】
ステップ３０３では、システムエラーフラグが設定されているか否かを判定する。
システムエラーフラグが設定されていなければ、ステップ３０４へ進み、制御演算に必要なデータをデータテーブルから読み出し、通常の演算処理を行い、ステップ３０１へ戻る。
システムエラーフラグが設定されていれば、ステップ３０５へ進む。
【００４６】
ステップ３０５では、オーバーライトエラーフラグが設定されているか否かを判定する。
オーバーライトエラーフラグが設定されていなければ、ステップ３０６へ進み、エラー内容に適した処理を行い、ステップ３０１へ戻る。
オーバーライトエラーフラグが設定されている場合にはステップ３０７へ進む。
ステップ３０７では、オーバーライト状態に応じたフェイルセーフ処理を制御部１に施す。
【００４７】
ステップ３０８では、データ管理タスクの動作停止を要求する。
ステップ３０９では、返答信号Ａを通信ドライバタスクへ出力し、通信ドライバタスクがオーバーライトエラー処理を開始するように促す。
ステップ３１０では、エラー処理終了信号ＥＳが、通信ドライバタスクから入力されるまで、待機する。
【００４８】
ステップ３１１では、オーバーレートデータモードフラグが設定されているか否かを判定する。
オーバーレートデータモードフラグが設定されている場合には、正常なエラー処理が終了したとみなし、ステップ３１３へ進む。
エラー処理終了信号ＥＳが入力されたにも係らず、オーバーレートデータモードフラグが設定されていない場合には、制御部１に何らかの異常が生じている恐れがあるため、ステップ３１２へ進み、フェイルセーフ状態を解除せず、適切な対応を警報等により促す。
ステップ３１３では、データ管理タスクの動作開始を要求する。
ステップ３１４では、フェイルセーフ状態を解除し、通常動作状態に戻り、その後ステップ３０１へ戻る。
【００４９】
なお、図６に示すフローチャートのステップ１０２は、発明のオーバーライト検知手段を構成し、ステップ１０８〜ステップ１１１はオーバーレート識別子リスト作成手段を、ステップ１１３は識別子設定手段を構成する。
また、図８に示すフローチャートのステップ２０７は、発明のオーバーレート識別子データ転送手段を構成し、図９に示すフローチャートのステップ３０７は、フェイルセーフ手段を構成する。
【００５０】
上記の動作により、外部装置Ｕ１〜Ｕ１５が正常な状態でデータを送信している場合には、データはすべて割り込みレジスタＩＲで受信され、制御部１の通信ドライバタスクにより、データが受信される毎に、割り込みレジスタＩＲからリングバッファ２に転送され、データ管理タスクにより、リングバッファ２からデータテーブル３に転送される。演算処理タスクは、データテーブル３に記憶されたデータに基づいて、演算処理を行う。
【００５１】
外部装置に異常が生じ、通常の送信レートより高いオーバーレートでデータが送信されると、オーバーライト状態が検知され、オーバーレートで送信されているデータのリストであるオーバーレートＩＤリストを作成し、ＩＤ付レジスタＲ１〜Ｒ７に、オーバーレートデータのＩＤを設定する。
ＩＤ付レジスタにＩＤが設定されると、ＩＤマスク部４により、ネットワークＮに送信されたデータのうち、ＩＤがＩＤ付レジスタに設定されているデータは、該当するＩＤレジスタで受信され、ＩＤがＩＤ付レジスタに設定されていないデータのみが、割り込みレジスタＩＲで受信される。
【００５２】
このため、割り込みレジスタＩＲでは、正常な送信レートで送信されたデータのみを受信するため、通信ドライバタスクによる割り込みレジスタＩＲからリングバッファ２へのデータ転送が、他のタスクの実行を妨げるほど頻繁に行われることはない。
【００５３】
したがって、外部装置Ｕ１〜Ｕ１５の異常により、正常な送信レートより高いレートでデータが送信された場合でも、受信側の処理装置の動作に支障が生じることを防止でき、マルチタスク処理システムの信頼性を向上させることができる。
また、オーバーレートデータを送信する外部装置の数が、予めオーバーレートデータ受信用に設置されたＩＤ付レジスタの個数より多い場合には、レートの高いデータのＩＤから順にＩＤを設定し、割り込みレジスタＩＲでは、オーバーレートデータの中でもなるべく低いレートで送信されているデータを受信するので、ＩＤ付レジスタを最も有効に利用することができる。
【００５４】
さらに、リングバッファ２のオーバーライト状態が検出されると、制御部１はフェイルセーフ状態に保たれるため、その後の動作に支障が生じることがなく、マルチタスク処理システムの信頼性を一層向上させることができる。
割り込みレジスタＩＲからのデータの転送先としてリングバッファ２を用いることにより、容易にオーバーライト状態を検出できる。
【図面の簡単な説明】
【図１】本発明の実施例の構成を示すブロック図である。
【図２】リングバッファを示す図である。
【図３】通信ドライバタスクにおける状態遷移条件を示す図である。
【図４】演算処理バタスクにおける状態遷移条件を示す図である。
【図５】データ管理タスクにおける状態遷移条件を示す図である。
【図６】通信ドライバタスクにおける動作の流れを説明するフローチャートである。
【図７】オーバーレートＩＤリストを説明する図である。
【図８】データ管理タスクにおける動作の流れを説明するフローチャートである。
【図９】演算処理タスクにおける動作の流れを説明するフローチャートである。
【図１０】従来例の構成を示すブロック図である。
【符号の説明】
１、６            制御部
２                リングバッファ
３                データテーブル
４                ＩＤマスク部
ＩＲ、ＩＲ’      割り込みレジスタ
Ｒ１〜Ｒ７        ＩＤ付レジスタ
Ｒ８〜Ｒ１６      汎用レジスタ
Ｕ１〜Ｕ１５      外部装置
【図１】
0003775135.tif 000002
【図２】
0003775135.tif 000003
【図３】
0003775135.tif 000004
【図４】
0003775135.tif 000005
【図５】
0003775135.tif 000006
【図６】
0003775135.tif 000007
【図７】
0003775135.tif 000008
【図８】
0003775135.tif 000009
【図９】
0003775135.tif 000010
【図１０】
0003775135.tif 000011