(57)【特許請求の範囲】
【請求項１】
データ処理を実行するデータ処理ユニットと、
前記データ処理ユニットによるデータ処理の処理対象データを生成する第１の制御ユニットを含む、夫々メモリを備える複数の制御ユニットと、
前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、
前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理対象データの任意のタイミングの転送が可能な非定周期通信バスと、
を備え、
前記第１の制御ユニットは、前記処理対象データを前記非定周期通信バスを介して前記データ処理ユニットに送信し、所定の条件が満たされたとき、前記複数の制御ユニットのうちの自制御ユニットよりも負荷が低い第２の制御ユニットを特定し、前記特定した第２の制御ユニットに前記処理対象データの送信を依頼するとともに当該処理対象データを自制御ユニットが備えるメモリに書き込み、
前記処理対象データの送信を依頼された第２の制御ユニットは、前記処理対象データが前記定周期通信バスにより自制御ユニットが備えるメモリに転送された後、当該転送された処理対象データを前記非定周期通信バスを介して前記データ処理ユニットに送信する、
ことを特徴とする制御装置。
【請求項２】
前記夫々の制御ユニットが備えるメモリは、１つの制御ユニットの書き込み内容が前記定周期通信バスの処理により他の制御ユニットの書き込み内容によって上書きされないように、制御ユニット毎の書き込み可能な領域が排他的に割り当てられ、
前記第１の制御ユニットは、自制御ユニットに割り当てられた領域に前記送信依頼対象の処理対象データを書き込む、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記第１の制御ユニットは、前記処理対象データの送信を依頼する際に、自制御ユニットに割り当てられた領域に依頼先の第２の制御ユニットの識別情報を書き込み、
前記第２の制御ユニットは、前記第１の制御ユニットが割り当てられた領域を監視し、当該領域に自制御ユニットの識別番号の書き込みを確認したとき、自制御ユニットが前記処理対象データの送信を依頼されたことを認識する、
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
データ処理を実行するデータ処理ユニットと、
前記データ処理ユニットによってデータ処理された処理後データを使用する第１の制御ユニットを含む、夫々メモリを備える複数の制御ユニットと、
前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、
前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理後データの任意のタイミングの転送が可能な非定周期通信バスと、
を備え、
前記第１の制御ユニットは、前記データ処理ユニットから前記非定周期通信バスを介して送られてくる処理後データを受信し、所定の条件が満たされたとき、前記複数の制御ユニットのうちの自制御ユニットよりも負荷が低い第２の制御ユニットを特定し、前記データ処理ユニットに、前記特定した第２の制御ユニットへの前記処理後データの宛先の変更を依頼し、
前記データ処理ユニットは、前記宛先の変更の依頼を受信すると、前記処理後データを前記非定周期通信バスを介して前記特定した第２の制御ユニットに送信し、
前記特定した第２の制御ユニットは、前記データ処理ユニットから前記非定周期通信バスを介して送られてくる処理後データを自制御ユニットが備える前記メモリに書き込み、
前記第１の制御ユニットは、前記特定した第２の制御ユニットが書き込んだ処理後データが前記定周期通信バスにより自制御ユニットが備えるメモリに転送された後、当該メモリから前記転送された処理後データを読み出す、
ことを特徴とする制御装置。
【請求項５】
前記夫々の制御ユニットが備えるメモリは、１つの制御ユニットの書き込み内容が前記定周期通信バスの処理により他の制御ユニットの書き込み内容によって上書きされないように、制御ユニット毎の書き込み可能な領域が排他的に割り当てられ、
前記特定された第２の制御ユニットは、自制御ユニットに割り当てられた領域に前記受信した処理後データを書き込む、
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記複数の制御ユニットは、夫々、自制御ユニットの負荷の状態を示す負荷情報を自制御ユニットに割り当てられた領域に書き込み、
前記第１の制御ユニットは、自制御ユニットが備えるメモリの他の制御ユニットに割り当てられた領域に格納されている負荷情報に基づいて自制御ユニットよりも負荷が低い第２の制御ユニットを特定する、
ことを特徴とする請求項２または請求項５に記載の制御装置。
【請求項７】
データ処理を実行するデータ処理ユニットと、
前記データ処理ユニットによるデータ処理対象の処理対象データを生成して出力するデータ出力制御ユニットを含む夫々メモリを備える複数の制御ユニットと、
前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、
前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理対象データの任意のタイミングの転送が可能な非定周期通信バスと、
を備える制御装置を構成する前記データ出力制御ユニットであって、
前記処理対象データを前記非定周期通信バスを介して前記データ処理ユニットに送信し、所定の条件が満たされたとき、前記処理対象データを自データ出力制御ユニットが備えるメモリに書き込むことによって前記定周期通信バスを介して前記複数の制御ユニットの夫々に当該処理対象データを転送するとともに、前記複数の制御ユニットのうちの自データ出力制御ユニットよりも負荷が低い他の制御ユニットを特定して、前記特定した制御ユニットに前記転送した処理対象データの送信を依頼する、
ことを特徴とするデータ出力制御ユニット。
【請求項８】
前記夫々の制御ユニットが備えるメモリは、１つの制御ユニットの書き込み内容が前記定周期通信バスの処理により他の制御ユニットの書き込み内容によって上書きされないように、制御ユニット毎の書き込み可能な領域が排他的に割り当てられ、
前記データ出力制御ユニットは、自データ出力制御ユニットに割り当てられた領域に前記送信依頼対象の処理対象データを書き込む、
ことを特徴とする請求項７に記載のデータ出力制御ユニット。
【請求項９】
前記処理対象データの送信を依頼する際に、自制御ユニットに割り当てられた領域に依頼先の制御ユニットの識別情報を書き込み、
前記依頼先の制御ユニットは、前記データ出力制御ユニットが割り当てられた領域を監視し、当該領域に自制御ユニットの識別番号の書き込みを確認したとき、自制御ユニットが前記処理対象データの送信を依頼されたことを認識する、
ことを特徴とする請求項８に記載のデータ出力制御ユニット。
【請求項１０】
前記複数の制御ユニットは、夫々、自制御ユニットの負荷の状態を示す負荷情報を自制御ユニットに割り当てられた領域に書き込み、
自データ出力制御ユニットが備えるメモリの他の制御ユニットに割り当てられた領域に格納されている負荷情報に基づいて自データ出力制御ユニットよりも負荷が低い他の制御ユニットを特定する、
ことを特徴とする請求項８に記載のデータ出力制御ユニット。
【請求項１１】
データ処理を実行するデータ処理ユニットと、
前記データ処理ユニットによるデータ処理対象の処理対象データを生成して出力するデータ出力制御ユニットを含む、夫々メモリを備える複数の制御ユニットと、
前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、
前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理対象データの任意のタイミングの転送が可能な非定周期通信バスと、
を備える制御装置を構成する前記制御ユニットであって、
自制御ユニットと異なるデータ出力制御ユニットから自制御ユニットが備えるメモリに前記処理対象データが前記定周期通信バスを介して転送されるとともに前記処理対象データの転送元のデータ出力制御ユニットからの前記処理対象データの送信の依頼があったとき、自制御ユニットが備えるメモリに転送された処理対象データを前記非定周期通信バスを介して前記データ処理ユニットに送信する、
ことを特徴とする制御ユニット。
【請求項１２】
前記夫々の制御ユニットが備えるメモリは、１つの制御ユニットの書き込み内容が前記定周期通信バスの処理により他の制御ユニットの書き込み内容によって上書きされないように、制御ユニット毎の書き込み可能な領域が排他的に割り当てられ、
前記データ出力制御ユニットは、自データ出力制御ユニットに割り当てられた領域に前記処理対象データを書き込む、
ことを特徴とする請求項１１に記載の制御ユニット。
【請求項１３】
前記データ出力制御ユニットは、前記処理対象データの送信を依頼する際に、自データ出力制御ユニットに割り当てられた領域に前記特定した制御ユニットの識別情報を書き込み、
自制御ユニットのうちの前記データ出力制御ユニットが割り当てられた領域を監視し、当該領域に自制御ユニットの識別番号の書き込みを確認したとき、自制御ユニットが前記処理対象データの送信を依頼されたことを認識する、
ことを特徴とする請求項１２に記載の制御ユニット。
【請求項１４】
データ処理を実行するデータ処理ユニットと、
前記データ処理ユニットによってデータ処理された処理後データが入力されるデータ入力制御ユニットを含む、夫々メモリを備える複数の制御ユニットと、
前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、
前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理後データの任意のタイミングの転送が可能な非定周期通信バスと、
を備える制御装置を構成する前記データ入力制御ユニットであって、
前記データ処理ユニットから前記非定周期通信バスを介して送られてくる処理後データを受信し、所定の条件が満たされたとき、前記複数の制御ユニットのうちの自データ入力制御ユニットよりも負荷が低い他の制御ユニットを特定して前記データ処理ユニットに前記特定した制御ユニットへの前記処理後データの宛先の変更を依頼し、
前記データ処理ユニットによって前記特定した制御ユニットに前記非定周期通信バスを介して送信された処理後データが前記指定した制御ユニットによって当該指定した制御ユニットが備える前記メモリに書き込まれ、当該書き込まれた処理後データが前記定周期通信バスにより自データ入力制御ユニットが備えるメモリに転送された後、当該データ入力制御ユニットが備えるメモリに転送された処理後データを読み出す、
ことを特徴とするデータ入力制御ユニット。
【請求項１５】
前記夫々の制御ユニットが備えるメモリは、１つの制御ユニットの書き込み内容が前記定周期通信バスの処理により他の制御ユニットの書き込み内容によって上書きされないように、制御ユニット毎の書き込み可能な領域が排他的に割り当てられ、
前記特定した制御ユニットは、当該特定した制御ユニットに割り当てられた領域に前記処理対象データを書き込む、
ことを特徴とする請求項１４に記載のデータ入力制御ユニット。
【請求項１６】
前記複数の制御ユニットは、夫々、自制御ユニットの負荷の状態を示す負荷情報を自制御ユニットに割り当てられた領域に書き込み、
自データ入力制御ユニットが備えるメモリの他の制御ユニットに割り当てられた領域に格納されている負荷情報に基づいて自データ入力制御ユニットよりも負荷が低い他の制御ユニットを特定する、
ことを特徴とする請求項１５に記載のデータ入力制御ユニット。
【請求項１７】
データ処理を実行するデータ処理ユニットと、
前記データ処理ユニットによってデータ処理された処理後データが入力されるデータ入力制御ユニットを含む、夫々メモリを備える複数の制御ユニットと、
前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、
前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理後データの任意のタイミングの転送が可能な非定周期通信バスと、
を備える制御装置を構成する前記制御ユニットであって、
前記データ処理ユニットから前記非定周期通信バスを介して自制御ユニットと異なる前記データ入力制御ユニットを最終転送先とする前記処理対象データを受信すると、当該受信した処理後データを自制御ユニットが備える前記メモリに書き込む、
ことを特徴とする制御ユニット。
【請求項１８】
前記夫々の制御ユニットが備えるメモリは、１つの制御ユニットの書き込み内容が前記定周期通信バスの処理により他の制御ユニットの書き込み内容によって上書きされないように、制御ユニット毎の書き込み可能な領域が排他的に割り当てられ、
自制御ユニットに割り当てられた領域に前記受信した自制御ユニットと異なる前記データ入力制御ユニットを最終転送先とする前記処理対象データを書き込む、
ことを特徴とする請求項１７に記載の制御ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置並びに当該制御装置を構成するデータ出力制御ユニット、データ入力制御ユニット、および制御ユニットに関する。
【背景技術】
【０００２】
制御装置は、複数の制御ユニットを備えて構成される場合がある。制御ユニットとは、ＭＰＵ（Micro  Processing  Unit）を内蔵し、当該ＭＰＵにて所定のプログラムを実行することによって所定の制御を実現するユニットをいう。制御ユニットが制御対象とするものは制御ユニットの種類に応じて異なる。制御ユニットの種類には、例えば、ラダープログラムに基づいて制御装置全体を統括的に制御するプログラマブルコントローラ（Programmable  Logic  Controller；ＰＬＣ）ユニットや、１以上のモータを制御対象とするモーションユニットや、工作機械を数値制御するＮＣユニットなどが存在する。制御装置は、ＰＬＣユニットのほかに所望の制御ユニットが装着されて構成される。
【０００３】
ところで、特許文献１は、個々のＰＬＣが、自己の負荷が高い場合に、自己の処理（ラダープログラム）の少なくとも一部を負荷の低い他のＰＬＣに依頼することで、ＰＬＣにかかる負荷を複数のＰＬＣ間で分散する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−０９１０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、特許文献１の技術によれば、依頼元の制御装置の一部の処理を他の制御装置に依頼する際、依頼する処理に必要な入出力情報を依頼元と依頼先で共有する処理が実行される。入出力情報を共有する処理は、少なからずオーバヘッドを発生する。制御装置は、依頼可能な処理のうち、どの処理を依頼するかを、各処理の依頼により生じるオーバヘッドができるだけ少ないものを選択することになる。
【０００６】
また、特許文献１の技術によれば、依頼する処理の選択が完了後、依頼元の制御装置は、当該処理のプログラムコードを依頼先の制御装置へ送信する。依頼先の制御装置は、依頼された処理をプログラム状態テーブルに登録する。プログラムコードの送信から当該プログラムコードのプログラム状態テーブルへの登録までの時間も、処理の依頼にかかるオーバヘッドとなる。
【０００７】
本発明は、上記に鑑みてなされたものであって、制御ユニットとデータ処理ユニットとの間の通信処理を可及的に効率よく実行することができる制御装置、データ出力制御ユニット、データ入力制御ユニット、および制御ユニットを得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、データ処理を実行するデータ処理ユニットと、前記データ処理ユニットによるデータ処理の処理対象データを生成する第１の制御ユニットを含む、夫々メモリを備える複数の制御ユニットと、前記複数の制御ユニット間を接続し、前記複数の制御ユニットのうちの１つの制御ユニットが備えるメモリに格納された内容を前記複数の制御ユニットの夫々が備えるメモリに定周期の時間間隔で転送する処理を転送元を逐次切り替えながら実行する定周期通信バスと、前記複数の制御ユニットの夫々と前記データ処理ユニットとを接続し、前記処理対象データの任意のタイミングの転送が可能な非定周期通信バスと、を備え、前記第１の制御ユニットは、前記処理対象データを前記非定周期通信バスを介して前記データ処理ユニットに送信し、所定の条件が満たされたとき、前記複数の制御ユニットのうちの自制御ユニットよりも負荷が低い第２の制御ユニットを特定し、前記特定した第２の制御ユニットに前記処理対象データの送信を依頼するとともに当該処理対象データを自制御ユニットが備えるメモリに書き込み、前記処理対象データの送信を依頼された第２の制御ユニットは、前記処理対象データが前記定周期通信バスにより自制御ユニットが備えるメモリに転送された後、当該転送された処理対象データを前記非定周期通信バスを介して前記データ処理ユニットに送信する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、依頼元が依頼先に処理対象データを非定周期通信バスを介して送り出す必要がなくなるため、処理対象データの送信の肩代わりにかかるオーバヘッドを低減することができ、結果として、制御ユニットとデータ処理ユニットとの間の通信処理を可及的に効率よく実行することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明にかかる制御装置の実施の形態の構成を示す図である。
【図２】図２は、本発明にかかる制御ユニットの実施の形態のハードウェア構成例を説明する図である。
【図３】図３は、メモリの構造を説明する図である。
【図４】図４は、データ転送用領域に格納されるデータを説明する図である。
【図５】図５は、制御ユニットとデータ処理ユニットとの間の非定周期通信に用いられる通信フレームを説明する図である。
【図６】図６は、データ処理ユニットのハードウェア構成例を説明する図である。
【図７】図７は、データ処理ユニットに送信するデータの源となる制御ユニットの動作を説明するフローチャートである。
【図８】図８は、依頼先ユニットとなった制御ユニットの動作を説明するフローチャートである。
【図９】図９は、データ処理ユニットからのデータの最終転送先の制御ユニットの動作を説明するフローチャートである。
【図１０】図１０は、データ処理ユニットからのデータの受信の肩代わりをする制御ユニットによるデータ転送の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる制御装置および制御ユニットの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態．
図１は、本発明にかかる制御装置の実施の形態の構成を示す図である。図示するように、制御装置１０００は、複数の制御ユニット（ここでは４つの制御ユニット１００ａ〜１００ｄ）と、１つのデータ処理ユニット２００とを備えている。制御ユニット１００ａ〜１００ｄは、定周期通信バス３００および非定周期通信バス４００に夫々接続され、データ処理ユニット２００は、非定周期通信バス４００に接続され、定周期通信バス３００には接続されていない。
【００１３】
なお、制御ユニット１００ａ〜１００ｄのうちの任意の制御ユニットを示したり、制御ユニット１００ａ〜１００ｄの何れにも当てはまる内容を説明したりする場合には、符号からアルファベットを削除して表記することがある。以降に説明する個別の構成要素で、アルファベットを含む符号を有する構成要素についても同様である。
【００１４】
定周期通信バス３００は、複数の制御ユニット１００間で、データを所定の時間内に確実に転送することができる。具体的には、例えば、定周期通信バス３００は、１周期分の送信時間を定周期通信バス３００に装着されている制御ユニット１００の数で時分割し、分割された送信時間を制御ユニット１００の夫々に排他的に割り当てる。そして、定周期通信バス３００は、送信時間が割り当てられた制御ユニット１００が送信対象とする制御データをその分割された送信時間内に他の３つの制御ユニット１００に同報転送する。これにより、同報転送対象のデータの送信元の制御ユニット１００が逐次切り替えられる。定周期通信バス３００は、１周期分のデータ転送の動作を繰り返し実行する。
【００１５】
非定周期通信バス４００は、定時性を必要としないデータを送受信するためのバスであって、ここでは、制御ユニット１００ａ〜１００ｄのうちの少なくとも１つとデータ処理ユニット２００との間のデータ転送に用いられる。即ち、制御ユニット１００ａ〜１００ｄのうちのデータ処理ユニット２００によるデータ処理対象のデータを生成して出力する制御ユニット１００は、生成したデータを、非定周期通信バス４００を介してデータ処理ユニット２００に任意のタイミングで送信することができる。また、データ処理ユニット２００は、制御ユニット１００ａ〜１００ｄのうちのデータ処理後のデータが入力され、当該データ処理後のデータを使用する制御ユニット１００に、当該データ処理後のデータを、非定周期通信バス４００を介して任意のタイミングで送信することができる。
【００１６】
データ処理ユニット２００は、データ処理を実行するユニットを総称するものであって、制御ユニット１００にデータ処理後のデータを送信するか、制御ユニット１００からデータ処理対象のデータを受信するか、またはその両方を行うことができる。データ処理の内容は、データ処理ユニット２００の種類により異なる。データ処理ユニット２００の種類には、例えば、制御ユニット１００の内部データをロギングするロギングユニットや、制御ユニット１００と外部の機器との間でネットワーク通信を行うためのネットワークユニットや、制御ユニット１００との間でデータの入出力を行うＩ／Ｏユニットなどが該当する。
【００１７】
ここで、本発明の実施の形態によれば、非定周期通信バス４００を介してデータ処理ユニット２００と通信を行う制御ユニット１００が高負荷となった場合、当該制御ユニット１００は、同一の定周期通信バス３００に接続されている他の制御ユニット１００に非定周期通信バス４００を介したデータ処理ユニット２００との間の通信を肩代わりしてもらうことができる。
【００１８】
図２は、制御ユニット１００のハードウェア構成例を説明する図である。図示するように、制御ユニット１００は、マイクロプロセッサ１１０、メモリ１２０、定周期通信バスインタフェース（Ｉ／Ｆ）回路１３０、非定周期通信バスＩ／Ｆ回路１４０、制御Ｉ／Ｆ回路１５０、およびこれらをバス接続する内部バス１６０を備えて構成される。
【００１９】
マイクロプロセッサ１１０は、所定のプログラムに基づいて制御ユニット１００が担当する制御機能および本発明の実施の形態の処理を実行する機能を実現する。制御Ｉ／Ｆ回路１５０は、モータやＩ／Ｏなど、外部との接続インタフェースであって、制御ユニット１００の種類によっては省略されて構成されたり、複数具備されたりする場合がある。定周期通信バスＩ／Ｆ回路１３０は、定周期通信バス３００に接続するための接続インタフェースであって、定周期通信バス３００と協働して定周期通信を行う。非定周期通信バスＩ／Ｆ回路１４０は、非定周期通信バス４００に接続するための接続インタフェースである。
【００２０】
図３は、メモリ１２０の構造を説明する図である。図示するように、メモリ１２０には、定周期通信バス３００を介した定周期通信のための共有メモリ領域として使用される定周期通信データ領域１２１と、非定周期通信のためのデータを含むワークデータを保持するワーク領域１２２とが確保されている。定周期通信データ領域１２１は、定周期通信バス３００に接続されている制御ユニット１００ａ〜１００ｄの数だけ確保されており、夫々の定周期通信データ領域１２１ａ〜１２１ｄは、制御ユニット１００ａ〜１００ｄと夫々対応する。
【００２１】
即ち、定周期通信データ領域１２１ｉ（ｉはａ〜ｄのうちの任意の１つ）は、制御ユニット１００ｉに割り当てられている。制御ユニット１００ｉが定周期通信データ領域１２１ｉにデータを書き込むと、定周期通信バス３００の機能により、制御ユニット１００ｉに送信時間が割り当てられているときに、当該データが他の全ての制御ユニット１００のメモリ１２０が備える定周期通信データ領域１２１ｉに転送される。このように、夫々の制御ユニット１００が備えるメモリ１２０は、１つの制御ユニット１００の書き込み内容が定周期通信バス３００の処理により他の制御ユニット１００の書き込み内容によって上書きされないように、制御ユニット１００毎の定周期通信データ領域１２１が排他的に割り当てられている。
【００２２】
ここで、定周期通信データ領域１２１は、本来的に定周期通信の対象とされるデータ（定周期通信対象データ１２３）が格納されるほか、本来的に非定周期通信の対象であるデータを制御ユニット１００間で転送するためのデータ転送用領域１２４が確保されている。制御ユニット１００とデータ処理ユニット２００との間の転送データの送受信の肩代わりは、当該データ転送用領域１２４を用いて行われる。
【００２３】
図４は、データ転送用領域１２４に格納されるデータを説明する図である。データ処理ユニット２００に対する送信データの転送の肩代わりを他の制御ユニット１００に依頼しているときには、肩代わりの依頼を行う制御ユニット１００（以降、単に依頼元ユニット１００）に対応する定周期通信データ領域１２１に確保されているデータ転送用領域１２４には、肩代わりの依頼先の制御ユニット１００（以降、単に依頼先ユニット１００）の識別情報である依頼先ユニット番号１２５と、依頼元ユニット１００がデータ処理ユニット２００に送信する対象の送信データ１２６とが格納される。
【００２４】
また、データ処理ユニット２００から送られてきたデータの受信を肩代わりしている際には、データの受信を肩代わりしている制御ユニット１００に対応する定周期通信データ領域１２１に確保されているデータ転送用領域１２４には、当該受信したデータ（受信データ１２７ａ〜１２７ｄ）が格納される。なお、受信データ１２７ａ〜１２７ｄの符号に付されたアルファベットは、制御ユニット１００ａ〜１００ｄのうちの最終転送先の制御ユニット１００に対応する。即ち、最終転送先の制御ユニット１００は、自制御ユニット１００が備えるメモリ１２０のうちの肩代わり中の制御ユニット１００に対応する定周期通信データ領域１２１から、データ処理ユニット２００から送られてきたデータを取得することができる。
【００２５】
また、データ転送用領域１２４には、当該データ転送用領域が属する定周期通信データ領域１２１が割り当てられた制御ユニット１００の負荷の状態を示す情報である負荷情報１２８が格納される。個々の制御ユニット１００は、自制御ユニット１００が割り当てられた定周期通信データ領域１２１内のデータ転送用領域１２４に負荷情報１２８を記録する。制御ユニット１００の夫々は、自メモリ１２０内の他の制御ユニット１００が割り当てられたデータ転送用領域１２４に格納されている負荷情報１２８を参照することによって、当該他の制御ユニット１００の負荷の状態を認識することができる。なお、負荷情報１２８は、マイクロプロセッサ１１０にかかっている負荷を定量化した情報であればどのようなものであってもよい。例えば、マイクロプロセッサ１１０におけるアイドルタスクの時間や命令の実行時間が負荷情報１２８として採用される。また、負荷情報１２８の更新タイミングは特に限定されない。負荷情報１２８は、リアルタイムの負荷の監視が可能なように、例えば所定の短い時間間隔で更新されるようにしてよい。
【００２６】
図５は、制御ユニット１００とデータ処理ユニット２００との間の非定周期通信に用いられる通信フレームを説明する図である。図示するように、通信フレーム４１０は、送信先ユニット番号が格納されるフィールド４１１と、送信元のユニット番号が格納されるフィールド４１２と、データ送信の源（Source）のユニットの識別情報または最終転送先（Destination）のユニットの識別情報が格納されるフィールド４１３と、通信対象のデータが格納されるフィールド４１４とを備えている。
【００２７】
送信を肩代わりしている制御ユニット１００（即ち依頼先ユニット１００）は、データをデータ処理ユニット２００にデータを送信する際、フィールド４１１にデータ処理ユニット２００の識別番号を、フィールド４１２に自制御ユニット１００の識別番号を、フィールド４１３に依頼元ユニット１００の識別情報を、フィールド４１４に、依頼元ユニット１００に対応する定周期通信データ領域１２１のうちのデータ転送用領域１２４に格納されている送信データ１２６を、夫々セットして、通信フレーム４１０を生成する。
【００２８】
また、データ処理ユニット２００は、受信を肩代わりしている制御ユニット１００にデータを送信する際、フィールド４１１に当該受信を肩代わりしている制御ユニット１００の識別情報を、フィールド４１２にデータ処理ユニット２００の識別情報を、フィールド４１３に最終転送先の制御ユニット１００の識別情報を、フィールド４１４に最終転送先の制御ユニット１００へのデータを、夫々セットして、通信フレーム４１０を生成する。
【００２９】
受信を肩代わりしている制御ユニット１００は、当該通信フレーム４１０を受信すると、フィールド４１３に格納されている識別情報に基づいて最終転送先の制御ユニット１００を特定し、自制御ユニット１００に対応する定周期通信データ領域１２１のうちのデータ転送用領域１２４に、前記最終転送先の制御ユニット１００に対する受信データ１２７として格納する。最終転送先の制御ユニット１００は、定周期通信により自制御ユニット１００のメモリ１２０が更新されると、受信を肩代わりしている制御ユニット１００が割り当てられた定周期通信データ領域１２１のうちのデータ転送用領域１２４から、自制御ユニット１００に対する受信データ１２７を取り出すことができる。
【００３０】
図６は、データ処理ユニット２００のハードウェア構成例を説明する図である。なお、ここでは、データ処理ユニット２００は、ネットワークユニットであるものとして説明する。図示するように、データ処理ユニット２００は、マイクロプロセッサ２１０、メモリ２２０、ネットワークＩ／Ｆ回路２３０、非定周期通信バスＩ／Ｆ回路２４０、およびこれらをバス接続する内部バス２５０を備えている。マイクロプロセッサ２１０は、所定のプログラムに基づいてデータ処理ユニット２００のデータ処理機能および通信フレーム４１０を用いて非定周期通信バス４００を介したデータ通信を実行する機能を実現する。メモリ２２０は、マイクロプロセッサ２１０を制御するプログラムを記憶する。ネットワークＩ／Ｆ回路２３０は、ネットワークに接続するための接続インタフェースである。非定周期通信バスＩ／Ｆ回路２４０は、非定周期通信バス４００に接続するための接続インタフェースである。
【００３１】
次に、本発明の実施の形態の制御装置１０００の動作を説明する。
【００３２】
図７は、データ処理ユニット２００に送信するデータの源となる制御ユニット１００（データ出力制御ユニット）の動作を説明するフローチャートである。なお、本図に示すフローチャートを実行する動作主体は、正確にはマイクロプロセッサ１１０であるが、理解しやすくするために制御ユニット１００を動作主体として説明する。
【００３３】
制御ユニット１００は、自制御ユニット１００の負荷状態を常時監視しており、自制御ユニット１００の負荷が所定のレベルよりも高くなったか否かを判定する（ステップＳ１）。負荷が所定レベルよりも高くなった場合（ステップＳ１、Ｙｅｓ）、制御ユニット１００は、依頼先ユニット１００を選択（特定）する（ステップＳ２）。
【００３４】
ここで、制御ユニット１００は、自制御ユニット１００のメモリ１２０に定周期通信により定周期で更新される他の制御ユニット１００の負荷情報１２８を参照し、例えば、他の制御ユニット１００のうちの最も負荷の小さい制御ユニット１００を依頼先ユニット１００に選択することができる。なお、負荷情報１２８に基づいて依頼先ユニット１００を選択するアルゴリズムは、最も負荷が小さい制御ユニット１００を選ぶ方法だけに限定されない。自制御ユニット１００よりも負荷が小さい制御ユニット１００のうちの任意の制御ユニット１００を依頼先ユニット１００として選ぶようにしてもよい。
【００３５】
続いて、制御ユニット１００は、自制御ユニット１００に割り当てられている定周期通信データ領域１２１のデータ転送用領域１２４に、ステップＳ２にて選択した依頼先ユニット１００の識別情報を依頼先ユニット番号１２５として記録し（ステップＳ３）、ステップＳ１の処理を再び実行する。
【００３６】
負荷が所定レベルよりも低くなった場合（ステップＳ１、Ｎｏ）、制御ユニット１００は、ステップＳ３にて記録した依頼先ユニット番号１２５を消去し（ステップＳ４）、ステップＳ１の処理を再び実行する。
【００３７】
なお、制御ユニット１００は、少なくとも依頼先ユニット番号１２５を設定してから消去するまでの間は、データ処理ユニット２００に送信する対象のデータを自制御ユニット１００にかかる定周期通信データ領域１２１のデータ転送用領域１２４に送信データ１２６として格納する。依頼先ユニット番号１２５が消去されている場合には、制御ユニット１００は、データ処理ユニット２００に送信する対象のデータをワーク領域１２２に格納して、当該ワーク領域１２２に格納されたデータを非定周期通信バス４００を介して送信するようにしてよい。
【００３８】
図８は、依頼先ユニット１００となった制御ユニット１００の動作を説明するフローチャートである。制御ユニット１００は、他の制御ユニット１００が割り当てられた定周期通信データ領域１２１のデータ転送用領域１２４の依頼先ユニット番号１２５を監視しており、依頼先ユニット番号１２５が自制御ユニット１００の識別番号を指す場合には、自制御ユニット１００が依頼先ユニット１００として選択されたことを認識することができる。即ち、制御ユニット１００は、依頼先ユニット番号１２５を監視することによって、他の制御ユニット１００からの送信の依頼があったか否かを判定する（ステップＳ１１）。他の制御ユニット１００からの送信の依頼があった場合（ステップＳ１１、Ｙｅｓ）、依頼先となったこの制御ユニット１００は、依頼元ユニット１００に割り当てられた定周期通信データ領域１２１のデータ転送用領域１２４に格納されている送信データ１２６をフィールド４１４に設定した通信フレーム４１０を作成し（ステップＳ１２）、作成した通信フレーム４１０を非定周期通信バス４００を介してデータ処理ユニット２００に送信する（ステップＳ１３）。他の制御ユニット１００からの送信の依頼がなかった場合（ステップＳ１１、Ｎｏ）、またはステップＳ１３の処理の後、制御ユニット１００は、ステップＳ１１の判定処理を再び実行する。
【００３９】
図９は、データ処理ユニット２００からのデータの最終転送先の制御ユニット１００（データ入力制御ユニット）の動作を説明するフローチャートである。図示するように、制御ユニット１００は、ステップＳ１の処理と同様に、自制御ユニット１００の負荷が所定のレベルよりも高くなったか否かを判定する（ステップＳ２１）。ステップＳ２１での判定のためのしきい値に使用される値は、ステップＳ１と同じであってもよいし、異なっていてもよい。負荷が所定レベルよりも高くなった場合（ステップＳ２１、Ｙｅｓ）、制御ユニット１００は、データの受信の肩代わりを依頼する依頼先ユニット１００を選択する（ステップＳ２２）。依頼先ユニット１００を選択する手法としては、ステップＳ２と同じ手法を採用することができる。
【００４０】
続いて、制御ユニット１００は、選択した依頼先ユニット１００の識別番号をデータ処理ユニット２００に通知して、宛先の切り替えを依頼する（ステップＳ２３）。ステップＳ２３の依頼は、非定周期通信バス４００を介して行われる。データ処理ユニット２００は、当該依頼を受信すると、以降、依頼元ユニット１００に対するデータを依頼先ユニット１００を宛先として送信する。即ち、データ処理ユニット２００は、フィールド４１１に依頼先ユニット１００の識別情報を、フィールド４１２に自データ処理ユニット２００の識別情報を、フィールド４１３に依頼元ユニット１００の識別情報を、フィールド４１４に依頼元ユニット１００へのデータを夫々格納した通信フレーム４１０を非定周期通信バス４００に送信する。
【００４１】
負荷が所定レベルよりも低くなった場合（ステップＳ２１、Ｎｏ）、制御ユニット１００は、データ処理ユニット２００からのデータの受信する制御ユニット１００が他の制御ユニット１００に切り替えられているか否かを判定する（ステップＳ２４）。宛先が切り替え中である場合（ステップＳ２４、Ｙｅｓ）、制御ユニット１００は、データ処理ユニット２００に宛先の切り戻しを依頼する（ステップＳ２５）。データ処理ユニット２００は、この依頼を受信すると、宛先を依頼先ユニット１００から依頼元ユニット１００に変更し、以降、この依頼元ユニット１００に対するデータを依頼元ユニット１００を宛先として送信する。
【００４２】
ステップＳ２３の処理の後、ステップＳ２５の処理の後、または宛先が切り替え中でない場合（ステップＳ２４、Ｎｏ）、制御ユニット１００は、ステップＳ２１の判定処理を再び実行する。
【００４３】
図１０は、データ処理ユニット２００からのデータの受信の肩代わりをする制御ユニット１００によるデータ転送の動作を説明するフローチャートである。図示するように、制御ユニット１００は、最終転送先の制御ユニット１００へのデータが格納された通信フレーム４１０を受信すると（ステップＳ３１）、当該通信フレーム４１０のフィールド４１４から通信データを読み出して、読み出したデータを自制御ユニット１００に対応する定周期通信データ領域１２１のうちのデータ転送用領域１２４の、最終転送先の制御ユニット１００に対応する位置に受信データ１２７として格納し（ステップＳ３２）、データ転送の動作を終了する。最終転送先の制御ユニット１００は、自制御ユニット１００のメモリ１２０が定周期通信バス３００により更新された後、当該受信データ１２７を読み出すことができる。
【００４４】
なお、以上の説明においては、依頼元の制御ユニット１００は、自制御ユニット１００の負荷が所定レベルを超えたタイミングで受信または送信の肩代わりを依頼するものとして説明したが、受信または送信の肩代わりの依頼を出すトリガは、負荷が所定レベルを超えるという条件が満たされたタイミングだけに限定されない。例えば、制御ユニット１００ａ〜１００ｄの負荷を監視し、自制御ユニット１００よりも負荷が小さい制御ユニット１００が存在するという条件が満たされたときに、依頼を出すようにしてもよい。
【００４５】
以上述べたように、本発明の実施の形態によれば、データ処理ユニット２００によるデータ処理対象のデータ（処理対象データ）を生成する制御ユニット１００は、処理対象データを非定周期通信バス４００を介してデータ処理ユニット２００に送信し、所定の条件が満たされたとき、複数の制御ユニット１００ａ〜１００ｄのうちの自制御ユニット１００よりも負荷が低い制御ユニット１００を特定し、特定した制御ユニット１００に処理対象データの送信を依頼するとともに当該処理対象データを自制御ユニット１００が備えるメモリ１２０に書き込み、依頼先の制御ユニット１００は、処理対象データが定周期通信バス３００により自制御ユニット１００が備えるメモリ１２０に転送された後、当該転送された処理対象データを非定周期通信バス４００を介してデータ処理ユニット２００に送信する、ように構成した。これにより、依頼元の制御ユニット１００が処理対象データを自制御ユニット１００のメモリ１２０の所定の箇所に格納するだけで当該処理対象データを依頼元と依頼先とで共有することができるので、依頼元が依頼先に処理対象データを非定周期通信バス４００を介して送り出す必要がなくなるため、処理対象データの送信の肩代わりにかかるオーバヘッドを低減することができる。即ち、制御ユニットとデータ処理ユニットとの間の通信処理を可及的に効率よく実行することができる。
【００４６】
データ処理ユニット２００によってデータ処理されたデータ（処理後データ）を使用する制御ユニット１００は、複数の制御ユニット１００ａ〜１００ｄの負荷を監視しながらデータ処理ユニット２００から非定周期通信バス４００を介して送られてくる処理後データを受信し、所定の条件が満たされたとき、データ処理ユニット２００に、複数の制御ユニット１００ａ〜１００ｄのうちの自制御ユニット１００よりも負荷が低い制御ユニット１００に処理後データの宛先の変更を依頼し、データ処理ユニット２００は、宛先の変更の依頼を受信すると、処理後データを非定周期通信バス４００を介して宛先の変更の依頼先の制御ユニット１００に送信し、新たに処理後データの宛先となった制御ユニット１００は、データ処理ユニット２００から非定周期通信バス４００を介して送られてくる処理後データを自制御ユニット１００が備えるメモリ１２０に書き込み、宛先の変更の依頼元の制御ユニット１００は、処理後データの受信を肩代わりした制御ユニット１００が書き込んだ処理後データが定周期通信バス３００により自制御ユニット１００が備えるメモリ１２０に転送された後、当該メモリ１２０から処理後データを読み出す、ように構成した。これにより、処理後データの受信を肩代わりしている制御ユニット１００が処理後データをメモリ１２０に格納するだけで当該制御ユニット１００と最終転送先の制御ユニット１００との間で当該処理後データを共有することができるので、処理後データの受信を肩代わりしている制御ユニット１００が最終転送先の制御ユニット１００に処理後データを非定周期通信バス４００を介して送り出す必要がなくなるため、処理後データの受信の肩代わりにかかるオーバヘッドを低減することができる。即ち、制御ユニットとデータ処理ユニットとの間の通信処理を可及的に効率よく実行することができる。
【００４７】
また、夫々の制御ユニット１００が備えるメモリ１２０は、１つの制御ユニット１００の書き込み内容が定周期通信バス３００の処理により他の制御ユニット１００の書き込み内容によって上書きされないように、制御ユニット１００毎の書き込み可能な領域である定周期通信データ領域１２１が排他的に割り当てられ、処理対象データの送信の依頼元の制御ユニット１００は、処理対象データを自制御ユニット１００に割り当てられた定周期通信データ領域１２１に書き込むことで依頼先の制御ユニット１００との間で処理対象データの転送を行うようにしたので、処理対象データの送信の依頼元の制御ユニット１００は、処理対象データを確実に依頼先の制御ユニット１００に転送することができる。
【００４８】
また、処理対象データの送信の依頼元の制御ユニット１００は、自制御ユニット１００に割り当てられた定周期通信データ領域１２１に依頼先の制御ユニット１００の識別番号である依頼先ユニット番号１２５を書き込むことによって処理対象データの送信を依頼し、依頼先の制御ユニット１００は、自制御ユニット１００が備えるメモリ１２０のうちの依頼先の制御ユニット１００が割り当てられた定周期通信データ領域１２１に自制御ユニット１００の識別番号に一致する依頼先ユニット番号１２５が格納されているか否かに基づいて自制御ユニット１００が処理対象データの送信を依頼されたか否かを判定するように構成したので、特段の追加構成なしに制御ユニット１００間の依頼を実現することができる。
【００４９】
また、制御ユニット１００ａ〜１００ｄは、夫々、自制御ユニット１００の負荷の状態を示す負荷情報１２８を自制御ユニット１００に割り当てられた定周期通信データ領域１２１に書き込み、処理後データの受信の依頼元の制御ユニット１００は、自制御ユニット１００が備えるメモリ１２０の他の制御ユニット１００に割り当てられた定周期通信データ領域１２１に格納されている負荷情報１２８を監視することによって制御ユニット１００ａ〜１００ｄの負荷を監視する、ように構成したので、夫々の制御ユニット１００による他の制御ユニット１００の負荷の監視が、負荷監視用の専用信号などの特段の追加構成を必要とすることなく実現される。
【産業上の利用可能性】
【００５０】
以上のように、本発明にかかる制御装置、データ出力制御ユニット、データ入力制御ユニット、および制御ユニットは、データ処理ユニットを備える制御装置並びに当該制御装置を構成するデータ出力制御ユニット、データ入力制御ユニット、および制御ユニットに適用して好適である。
【符号の説明】
【００５１】
１００、１００ａ〜１００ｄ  制御ユニット
１１０  マイクロプロセッサ
１２０  メモリ
１２１、１２１ａ〜１２１ｄ  定周期通信データ領域
１２２  ワーク領域
１２３  定周期通信対象データ
１２４  データ転送用領域
１２５  依頼先ユニット番号
１２６  送信データ
１２７、１２７ａ〜１２７ｄ  受信データ
１２８  負荷情報
１３０  定周期通信バスＩ／Ｆ回路
１４０  非定周期通信バスＩ／Ｆ回路
１５０  制御Ｉ／Ｆ回路
１６０  内部バス
２００  データ処理ユニット
２１０  マイクロプロセッサ
２２０  メモリ
２３０  ネットワークＩ／Ｆ回路
２４０  非定周期通信バスＩ／Ｆ回路
２５０  内部バス
３００  定周期通信バス
４００  非定周期通信バス
４１０  通信フレーム
４１１〜４１４  フィールド
１０００  制御装置
【図１】
0005752087.tif 000002
【図２】
0005752087.tif 000003
【図３】
0005752087.tif 000004
【図４】
0005752087.tif 000005
【図５】
0005752087.tif 000006
【図６】
0005752087.tif 000007
【図７】
0005752087.tif 000008
【図８】
0005752087.tif 000009
【図９】
0005752087.tif 000010
【図１０】
0005752087.tif 000011