(57)【要約】【課題】通信ラインを介したデータ伝送を優先度に応じてより効率的に行うことのできる制御装置およびそれに向けられた制御方法を提供する。【解決手段】制御装置は、通信ラインを介して他のユニットへフレームとしてデータを送信するための送信部と、他のユニットへ送信すべきデータを生成する生成部とを含む。送信部が第１のフレームを送信中に、受信部または制御部においてより優先度の高い送信すべきデータが生じると、送信部は、送信中の第１のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む第２のフレームを送信する。【選択図】図９
2014138206.tif 000002
【特許請求の範囲】
【請求項１】
制御システムの少なくとも一部を構成する制御装置であって、
通信ラインを介して接続される複数のユニットを備え、
前記複数のユニットの各々は、
制御部と、
前記通信ラインを介して他のユニットからフレームとして送信されるデータを受信するための受信部と、
前記通信ラインを介して他のユニットへフレームとしてデータを送信するための送信部と、
他のユニットへ送信すべきデータを生成する生成部とを含み、
各フレームは、１または複数のブロックから構成されるとともに、その中に含まれるデータの優先度を示す情報を含み、
前記送信部が第１のフレームを送信中に、前記受信部または前記制御部においてより優先度の高い送信すべきデータが生じると、前記送信部は、送信中の第１のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む第２のフレームを送信する、制御装置。
【請求項２】
前記送信部は、前記第２のフレームの送信が完了するまで、前記第１のフレームのうち未送信の部分の送信を中断する、請求項１に記載の制御装置。
【請求項３】
前記送信部は、前記第１のフレームのうち未送信の部分を破棄する、請求項１に記載の制御装置。
【請求項４】
前記送信すべきデータが生じたときに送信待ちの第３のフレームが存在しており、かつ、前記第３のフレームに含まれるデータの優先度が前記送信すべきデータの優先度より低ければ、前記送信部は、前記第２のフレームを前記第３のフレームより先に送信する、請求項１〜３のいずれか１項に記載の制御装置。
【請求項５】
前記送信すべきデータが生じたときに送信待ちの第３のフレームが存在しており、かつ、前記第３のフレームに含まれるデータの優先度が前記送信すべきデータの優先度と同等であれば、前記送信部は、前記第３のフレームを送信し、その後に前記第２のフレームを送信する、請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記複数のユニットの各々は、
複数のバッファと、
前記受信部で受信されたフレームに含まれるデータおよび前記生成部が生成したデータの少なくとも一方について、対象のデータに含まれる優先度を示す情報に基づいて、当該データを格納するバッファを決定する判断部とをさらに含む、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記生成部は、データ種別に応じて、生成するデータに優先度を示す情報を付加する、請求項１〜６のいずれか１項に記載の制御装置。
【請求項８】
通信ラインを介して接続される複数のユニットを含む制御装置を少なくとも一部として構成される制御システムにおける制御方法であって、
前記複数のユニットのうち第１のユニットが前記通信ラインを介して他のユニットからフレームとして送信されるデータを受信するステップを含み、各フレームは、１または複数のブロックから構成されるとともに、その中に含まれるデータの優先度を示す情報を含み、
前記第１のユニットが前記通信ラインを介して他のユニットへフレームとしてデータを送信するステップと、
前記第１のユニットが他のユニットへ送信すべきデータを生成するステップと、
前記第１のユニットがフレームを他のユニットへ送信中に、より優先度の高い送信すべきデータが生じると、送信中の第１のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む第２のフレームを送信するステップとを含む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械や設備などの動作を制御するために用いられる制御システムにおけるデータ伝送に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable Logic Controller；以下「ＰＬＣ」とも称す）などからなる制御システムによって制御される。このような制御システムは、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Input Output）ユニットを含む。このようなＩＯユニットは、生産現場の様々な場所に配置されることが予定されている。
【０００３】
このようなＩＯユニットは、プロセッサなどを含む処理ユニットとの間で所定の通信ラインを介して接続されている。このような通信ラインとしては、内部バスとして構成される場合もある。このような内部バスを用いた場合には、比較的高いクロック周波数（伝送周波数）を採用することで、伝送能力（伝送速度および伝送帯域など）を高めることができる。
【０００４】
特開２０１１−１９２０６８号公報（特許文献１）には、データ通信をする場合にノイズの影響を考慮して、ＰＬＣを構成するユニット間の通信を確実かつ高速に行うための構成を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９２０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
伝送能力が高い通信ラインを採用した場合であっても、多くのデータが伝送される場合には、先行のデータが存在して後続のデータが送信できない状態、すなわち「送信待ち」の状態が生じ得る。一方で、通信ラインを介して送受信されるデータの間では、その内容などに応じた優先度が存在し得る。
【０００７】
本発明の目的は、通信ラインを介したデータ伝送を優先度に応じてより効率的に行うことのできる制御装置およびそれに向けられた制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明のある局面によれば、制御システムの少なくとも一部を構成する制御装置が提供される。制御装置は、通信ラインを介して接続される複数のユニットを含む。複数のユニットの各々は、制御部と、通信ラインを介して他のユニットからフレームとして送信されるデータを受信するための受信部と、通信ラインを介して他のユニットへフレームとしてデータを送信するための送信部と、他のユニットへ送信すべきデータを生成する生成部とを含む。各フレームは、１または複数のブロックから構成されるとともに、その中に含まれるデータの優先度を示す情報を含む。送信部が第１のフレームを送信中に、受信部または制御部においてより優先度の高い送信すべきデータが生じると、送信部は、送信中の第１のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む第２のフレームを送信する。
【０００９】
好ましくは、送信部は、第２のフレームの送信が完了するまで、第１のフレームのうち未送信の部分の送信を中断する。
【００１０】
好ましくは、送信部は、第１のフレームのうち未送信の部分を破棄する。
好ましくは、送信すべきデータが生じたときに送信待ちの第３のフレームが存在しており、かつ、第３のフレームに含まれるデータの優先度が送信すべきデータの優先度より低ければ、送信部は、第２のフレームを第３のフレームより先に送信する。
【００１１】
好ましくは、送信すべきデータが生じたときに送信待ちの第３のフレームが存在しており、かつ、第３のフレームに含まれるデータの優先度が送信すべきデータの優先度と同等であれば、送信部は、第３のフレームを送信し、その後に第２のフレームを送信する。
【００１２】
好ましくは、複数のユニットの各々は、複数のバッファと、受信部で受信されたフレームに含まれるデータおよび生成部が生成したデータの少なくとも一方について、対象のデータに含まれる優先度を示す情報に基づいて、当該データを格納するバッファを決定する判断部とをさらに含む。
【００１３】
好ましくは、生成部は、データ種別に応じて、生成するデータに優先度を示す情報を付加する。
【００１４】
本発明の別の局面によれば、通信ラインを介して接続される複数のユニットを含む制御装置を少なくとも一部として構成される制御システムにおける制御方法が提供される。制御方法は、複数のユニットのうち第１のユニットが通信ラインを介して他のユニットからフレームとして送信されるデータを受信するステップを含む。各フレームは、１または複数のブロックから構成されるとともに、その中に含まれるデータの優先度を示す情報を含む。制御方法は、さらに、第１のユニットが通信ラインを介して他のユニットへフレームとしてデータを送信するステップと、第１のユニットが他のユニットへ送信すべきデータを生成するステップと、第１のユニットがフレームを他のユニットへ送信中に、より優先度の高い送信すべきデータが生じると、送信中の第１のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む第２のフレームを送信するステップとを含む。
【発明の効果】
【００１５】
本発明によれば、通信ラインを介したデータ伝送を優先度に応じてより効率的に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るＰＬＣシステムの全体構成を示す模式図である。
【図２】本発明の実施の形態に係るリモートＩＯ装置の接続構成を示す模式図である。
【図３】本発明の実施の形態に係るリモートＩＯ装置を構成するマスターユニットのハードウェア構成を示す模式図である。
【図４】本発明の実施の形態に係るリモートＩＯ装置のＩＯユニットのハードウェア構成を示す模式図である。
【図５】本発明の実施の形態に係るメイン処理装置の接続構成を示す模式図である。
【図６】本発明の実施の形態に係るメイン処理装置を構成するＣＰＵユニットのハードウェア構成を示す模式図である。
【図７】本発明の実施の形態に係る内部バス上を伝送されるフレームの構造を示す模式図である。
【図８】本発明の実施の形態に係るＩＯユニットのフォワードコントローラのより具体的な構成を示す模式図である。
【図９】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１０】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１１】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１２】本発明の実施の形態に係るフレームの割り込みが生じた場合のフレームの構造を示す模式図である。
【図１３】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１４】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１５】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１６】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１７】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１８】本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。
【図１９】本発明の実施の形態に係る優先度に応じたデータ伝送の処理手順を示すフローチャートである。
【図２０】本発明の実施の形態に係る優先度に応じたデータ伝送を用いたリモートＩＯ装置における低消費電力化の実現方法を説明するための図である。
【図２１】本発明の実施の形態に係る優先度に応じたデータ伝送を用いたリモートＩＯ装置における通信手順を示すタイムチャートである。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１８】
本発明の実施の形態においては、制御システムの一例として、ＰＬＣを中心とするシステムについて例示する。但し、このような制御システムとしては、ＰＬＣだけではなく、各種の産業用コンピュータを中心として構成を採用することもできる。さらに、技術に進展によって、新たな処理装置（演算装置）が開発された場合には、そのような新たな処理装置を採用することもできる。
【００１９】
＜Ａ．ＰＬＣシステムの全体構成＞
まず、本実施の形態に係るＰＬＣシステムの全体構成について説明する。図１は、本発明の実施の形態に係るＰＬＣシステム１の全体構成を示す模式図である。
【００２０】
図１を参照して、ＰＬＣシステム１は、メイン処理装置２と、１つ以上のリモートＩＯ装置３とを含む。メイン処理装置２は、フィールドバス４を介して、リモートＩＯ装置３と接続されている。リモートＩＯ装置３の各々は、フィールドバス４と接続するための通信モジュール１２を有している。
【００２１】
メイン処理装置２は、ＰＬＣシステム１の少なくとも一部を構成する制御装置である。メイン処理装置２は、制御プログラムを実行し、外部のスイッチやセンサからの入力信号に応答して、外部のリレーやアクチュエータへの出力信号を算出する。
【００２２】
より具体的には、メイン処理装置２は、電源ユニット３０と、ＣＰＵユニット４０と、ＩＯユニット２０とを含む。ＣＰＵユニット４０およびＩＯユニット２０は、内部バス５を介して互いにデータ伝送可能に接続されている。
【００２３】
電源ユニット３０は、ＣＰＵユニット４０およびＩＯユニット２０へ適切な電圧の電力を供給する。ＣＰＵユニット４０は、制御プログラムを実行するためのプロセッサおよびメインメモリを含む演算主体である。ＩＯユニット２０は、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当する。
【００２４】
ＣＰＵユニット４０は、フィールドバス４を介して、リモートＩＯ装置３との間でデータを遣り取りするための通信モジュール４２を含む。フィールドバス４は、予め定められた制御周期で通信可能な（リアルタイム通信可能な）通信方式が好ましい。言い換えれば、本実施の形態に係るフィールドバス４は、定時性が確保されていることが好ましい。
【００２５】
このようなフィールドバス４としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット（登録商標）以外のフィールドネットワークを用いてもよい。例えば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ／ＩＰ（登録商標）などを用いてもよい。
【００２６】
リモートＩＯ装置３は、ＰＬＣシステム１の少なくとも一部を構成する制御装置である。リモートＩＯ装置３は、外部のスイッチやセンサからの入力信号を受信し、フィールドバス４を介して、その受信した入力信号をメイン処理装置２へ送信するとともに、メイン処理装置２からフィールドバス４を介して受信した信号を、外部のリレーやアクチュエータへ出力する。
【００２７】
より具体的には、リモートＩＯ装置３は、マスターユニット１０と、１つ以上のＩＯユニット２０とを含む。マスターユニット１０およびＩＯユニット２０は、内部バス５を介して互いにデータ伝送可能に接続されている。
【００２８】
マスターユニット１０は、主として、ＩＯユニット２０の動作（ＩＯデータの更新タイミングなど）を制御するとともに、メイン処理装置２との間のデータ伝送を制御する。マスターユニット１０の詳細については、後述する。
【００２９】
ＩＯユニット２０は、マスターユニット１０（または、ＣＰＵユニット４０）と内部バス５を介してデータ伝送する機能に加えて、一般的な入出力処理の機能を有する。典型的には、ＩＯユニット２０は、オン／オフといった２値化されたデータを入力／出力する。例えば、ＩＯユニット２０は、検出センサから、何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット２０は、リレーやアクチュエータといった出力先に対して、アクティブ化（活性化）するための指令（オン）および非アクティブ化（非活性化）するための指令（オフ）のいずれかを与える。
【００３０】
上述の説明では、ＩＯユニット２０の各々が入出力処理を行う構成について例示したが、入力処理に特化した構成（入力ユニット）または出力処理に特化した構成（出力ユニット）であってもよい。
【００３１】
＜Ｂ．優先度に応じたより効率的なデータ伝送について＞
本実施の形態に係るＰＬＣシステム１の内部バス５では、機器同士がデジチェーン接続されている。より具体的には、内部バス５は、マスター／スレーブ構成になっており、マスター側からスレーブ側へデータを送信するダウンリンク（Down Link：以下「ＤＬ」とも記す。）と、スレーブ側からマスター側へデータを送信するアップリンク（Up Link：以下「ＵＬ」とも記す。）とが対になった通信ラインからなる。なお、この通信ラインは、１チャネル（回線）であってもよいし、さらに多くのチャネルが用意されていてもよい。
【００３２】
このＰＬＣシステム１の内部バス５において、基本的には、各機器の送受信制御はフレーム単位で行われる。後述するように、各フレームは、１つ以上のフレーム境界同期コードと、１つ以上のブロックとからなる。各ブロックは、送受信されるデータの単位であり、予め定められたフォーマットに従って生成される。すなわち、各ブロックに含まれるデータ量は予め定められているので、送受信されるデータは、その量に応じた数のブロックに分割されて伝送されることになる。典型的には、ブロックのデータサイズは、各機器が一度に処理（並列処理）できるデータ量に設定される。そのため、１つのフレームに係る送受信処理を中断／再開するような場合には、その中に含まれるブロック単位で中断／再開を行うことが好ましい。
【００３３】
本実施の形態に係る通信ラインでは、各フレームに含まれるデータの優先度に応じて、その伝送順序が入れ替えられる。すなわち、より優先度の高いデータを含むフレームを送信すべき状態が生じると、ＩＯユニット２０は、先に送信中の（より優先度の低いデータを含む）フレームを所定の区切り（後述する「ブロック」の境界）まで送信した上で、それ以降の送信を中断し、当該より優先度の高いデータを含むフレームの送信を開始する。
【００３４】
このように、ＩＯユニット２０の送信部が先行のフレームを送信中に、その受信部またはその制御部においてより優先度の高い送信すべきデータが生じると、ＩＯユニット２０の送信部は、送信中の第１のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む第２のフレームを送信する。
【００３５】
以下、先にハードウェア構成について説明した後、本実施の形態に係る、各種の状況におけるデータ伝送の処理について説明する。
【００３６】
＜Ｃ．リモートＩＯ装置３のハードウェア構成＞
次に、本実施の形態に係るＰＬＣシステム１の一部を構成する制御装置であるリモートＩＯ装置３のハードウェア構成について説明する。
【００３７】
図２は、本発明の実施の形態に係るリモートＩＯ装置３の接続構成を示す模式図である。図３は、本発明の実施の形態に係るリモートＩＯ装置３を構成するマスターユニット１０のハードウェア構成を示す模式図である。図４は、本発明の実施の形態に係るリモートＩＯ装置３のＩＯユニット２０のハードウェア構成を示す模式図である。
【００３８】
《ｃ１：接続構成》
図２を参照して、リモートＩＯ装置３では、マスターユニット１０および１つ以上のＩＯユニット２０−１，２０−２，２０−３（以下「ＩＯユニット２０」と総称する場合もある。）が通信ラインである内部バス５（ダウンリンク５１およびアップリンク５２）を介して互いにデータ伝送可能になっている。すなわち、リモートＩＯ装置３は、通信ラインを介して接続される複数のユニット（マスターユニット１０およびＩＯユニット２０）を含む。
【００３９】
一例として、ダウンリンク５１およびアップリンク５２では、シリアル通信が採用されており、対象のデータは、時系列に一列に並べられた形で伝送する。より具体的には、ダウンリンク５１では、マスター制御部として機能するマスターユニット１０からスレーブ制御部として機能するＩＯユニット２０へ向けて、ダウンリンク５１を介して一方向にデータが送信される。一方、アップリンク５２では、いずれかのＩＯユニット２０からマスターユニット１０へ向けて、アップリンク５２を介して一方向にデータが送信される。
【００４０】
本実施の形態においては、データは、ヘッダ情報を含むフレームとして送信される。各フレームは、１または複数のブロックから構成される。ヘッダ情報は、当該フレーム内のデータの優先度を示す情報を含む。また、ヘッダ情報は、当該フレームの長さに関する情報を含む。フレームの構造などの詳細については後述する。
【００４１】
ＩＯユニット２０の各々は、ダウンリンク５１またはアップリンク５２を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、ＩＯユニット２０の各々は、フレームを再生成した上で、次段のＩＯユニット２０へ再送信（フォワード）する。
【００４２】
データを含むフレームのこのような順次転送を実現するために、各ＩＯユニット２０は、ダウンリンク５１に関して、受信部（以下「ＲＸ」とも記す。）２１０ａおよび送信部（以下「ＴＸ」とも記す。）２１０ｂを含むとともに、アップリンク５２に関して、受信部２２０ａおよび送信部２２０ｂを含む。受信部２１０ａおよび２２０ａは、通信ラインである内部バス５を介して他のユニットからフレームとして送信されるデータを受信する。送信部２１０ｂおよび２２０ｂは、通信ラインである内部バス５を介して他のユニットへフレームとしてデータを送信する。
【００４３】
各ＩＯユニット２０は、制御部であるプロセッサ２００を含み、プロセッサ２００がこれらのデータの処理を制御する。
【００４４】
マスターユニット１０は、プロセッサ１００と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。すなわち、マスターユニット１０は、内部バス５（ダウンリンク５１およびアップリンク５２）と接続されるだけではなく、受信部１１２および送信部１１４を介して、上位通信ネットワークであるフィールドバス４とも接続される。フィールドバス制御部１１０は、フィールドバス４を介したデータ伝送を管理し、内部バス制御部１３０は、内部バス５を介したデータ伝送を管理する。
【００４５】
《ｃ２：マスターユニット１０の構成》
図３を参照して、リモートＩＯ装置３のマスターユニット１０は、プロセッサ１００と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００４６】
受信部１１２は、メイン処理装置２からフィールドバス４を介して送信される上位通信フレームを受信してデータへ復号した上で、フィールドバス制御部１１０へ出力する。送信部１１４は、フィールドバス制御部１１０から出力されるデータから上位通信フレームを再生成してフィールドバス４を介して再送信（フォワード）する。
【００４７】
フィールドバス制御部１１０は、受信部１１２および送信部１１４と協働して、フィールドバス４を介して予め定められた制御周期毎に他の装置（メイン処理装置２および他のリモートＩＯ装置３）との間でデータを送受信する。より具体的には、フィールドバス制御部１１０は、上位通信コントローラ１２０と、メモリコントローラ１２２と、ＦＩＦＯ（First In First Out）メモリ１２４と、受信バッファ１２６と、送信バッファ１２８とを含む。
【００４８】
上位通信コントローラ１２０は、メイン処理装置２からフィールドバス４を介して送信されるコマンドなどを解釈して、フィールドバス４を介した通信を実現するために必要な処理を実行する。また、上位通信コントローラ１２０は、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームからのデータコピー、および上位通信フレームに対するデータ書込みの処理を行う。
【００４９】
メモリコントローラ１２２は、ＤＭＡ（Dynamic Memory Access）などの機能を実現する制御回路であり、ＦＩＦＯメモリ１２４、受信バッファ１２６および送信バッファ１２８などへのデータの書込み／読出しを制御する。
【００５０】
ＦＩＦＯメモリ１２４は、フィールドバス４を介して受信された上位通信フレームを一時的に格納するとともに、その格納された順序に従って上位通信フレームを順次出力する。受信バッファ１２６は、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームに含まれるデータのうち、自装置に接続されているＩＯユニット２０の出力部から出力すべき状態値を示すデータを抽出して一時的に格納する。送信バッファ１２８は、ＩＯユニット２０の入力部で検出された状態値を示すプロセスデータであって、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームの所定領域に書込むべきデータを一時的に格納する。
【００５１】
プロセッサ１００は、フィールドバス制御部１１０および内部バス制御部１３０に対して指示を与えるとともに、フィールドバス制御部１１０と内部バス制御部１３０との間のデータ転送などを制御する。
【００５２】
内部バス制御部１３０は、内部バス５（ダウンリンク５１およびアップリンク５２）を介してＩＯユニット２０との間でフレーム（データ）を送受信する。
【００５３】
より具体的には、内部バス制御部１３０は、内部バス通信コントローラ１３２と、送信回路１４２と、受信回路１４４と、記憶部１６０とを含む。
【００５４】
内部バス通信コントローラ１３２は、内部バス５を介したデータ伝送を主体的に（マスターとして）管理する。
【００５５】
送信回路１４２は、内部バス通信コントローラ１３２からの指示に従って、内部バス５のダウンリンク上を流れるフレームを生成して送信する。受信回路１４４は、内部バス５のアップリンク上を流れるフレームを受信して、内部バス通信コントローラ１３２へ出力する。
【００５６】
記憶部１６０は、内部バス５を伝送するフレーム（データ）を格納するバッファメモリに相当する。より具体的には、記憶部１６０は、共有メモリ１６２と、受信メモリ１６４と、送信メモリ１６６とを含む。共有メモリ１６２は、フィールドバス制御部１１０と内部バス制御部１３０との間で遣り取りされるデータを一時的に格納する。受信メモリ１６４は、内部バス５を介してＩＯユニット２０から受信したデータを一時的に格納する。送信メモリ１６６は、フィールドバス制御部１１０で受信された上位通信フレームに含まれるデータを一時的に格納する。
【００５７】
《ｃ３：ＩＯユニット２０の構成》
図４を参照して、リモートＩＯ装置３のＩＯユニット２０の各々は、逆シリアル変換器（de-serializer：以下「ＤＥＳ部」とも称す。）２１２，２２２と、シリアル変換器（ＳＥＲ：serializer：以下「ＳＥＲ部」とも称す。）２１６，２２６と、フォワードコントローラ２１４，２２４とを含む。さらに、ＩＯユニット２０の各々は、バス２５０を介して互いに接続された、受信処理部２３０と、送信処理部２４０と、プロセッサ２００と、共有メモリ２０２と、ＩＯモジュール２０６と、不揮発性メモリ２０８とを含む。
【００５８】
ＤＥＳ部２１２、フォワードコントローラ２１４およびＳＥＲ部２１６は、図２に示すダウンリンク５１についての受信部２１０ａおよび送信部２１０ｂに対応する。すなわち、これらの部分は、ダウンリンク５１を流れるフレームの送受信に係る処理を実行する。同様に、ＤＥＳ部２２２、フォワードコントローラ２２４およびＳＥＲ部２２６は、図２に示すアップリンク５２についての受信部２２０ａおよび送信部２２０ｂに対応する。すなわち、これらの部分は、アップリンク５２を流れるフレームの送受信に係る処理を実行する。
【００５９】
受信処理部２３０は、復号部２３２と、ＣＲＣチェック部２３４とを含む。復号部２３２は、受信されたフレームを所定のアルゴリズムに従ってデータへ復号する。ＣＲＣチェック部２３４は、フレームの最後に付加されるフレームチェックシーケンス（Frame Check Sequence：ＦＣＳ）などに基づいて誤りチェック（例えば、ＣＲＣ（Cyclic Redundancy Check）符号）を行う。
【００６０】
送信処理部２４０は、フォワードコントローラ２１４および２２４に接続され、プロセッサ２００などからの指示に従って、次段のＩＯユニット２０へ再送信（フォワード）するフレームの生成およびタイミング制御などを行う。また、送信処理部２４０は、プロセッサ２００などと協働して、次段のＩＯユニット２０へ送信すべきデータを生成する。すなわち、送信処理部２４０は、データ生成部の少なくとも一部を構成する。より具体的には、送信処理部２４０は、ＣＲＣ生成部２４２と、符号化部２４４とを含む。ＣＲＣ生成部２４２は、プロセッサ２００などからのデータに対して誤り制御符号（ＣＲＣ）を算出して、当該データを格納するフレームに付加する。符号化部２４４は、ＣＲＣ生成部２４２からのデータを符号化し、対応するフォワードコントローラ２１４または２２４へ出力する。
【００６１】
プロセッサ２００は、ＩＯユニット２０を主体的に制御する演算主体である。より具体的には、プロセッサ２００は、予め格納されたプログラムなどを実行することによって、受信処理部２３０を介して受信されたフレームを共有メモリ２０２に格納し、あるいは共有メモリ２０２から所定のデータを読み出して送信処理部２４０へ出力し、フレームを生成させる。
【００６２】
共有メモリ２０２は、受信処理部２３０を介して受信されたフレームを一時的に格納するための受信バッファ２０３と、送信処理部２４０へ介して送信するためのフレームを一時的に格納するための送信バッファ２０４とを含む。また、共有メモリ２０２は、各種データを格納するための領域を含む。
【００６３】
ＩＯモジュール２０６は、外部のスイッチやセンサからの入力信号を受信し、その値を共有メモリ２０２に書込むとともに、共有メモリ２０２の対応する領域に書込まれた値に従って、その信号を外部のリレーやアクチュエータへ出力する。すなわち、ＩＯモジュール２０６は、外部入力される信号の状態値（ＩＮデータ）を収集する入力部、および、指定された状態値（ＯＵＴデータ）の信号を出力する出力部の少なくとも一方を含む。
【００６４】
不揮発性メモリ２０８は、各種データを不揮発的に格納する。より具体的には、不揮発性メモリ２０８は、各ＩＯユニット２０の設定値を記述する設定情報（configuration）などを保持する。
【００６５】
《ｃ４：その他》
リモートＩＯ装置３を構成するマスターユニット１０およびＩＯユニット２０の各コンポーネントは、処理高速化の観点から、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアなどを実現することが好ましい。但し、一部または全部のコンポーネントをソフトウェアとして実装してもよい。例えば、図２に示す受信部２１０ａ，２２０ａおよび送信部２１０ｂ，２２０ｂに相当する部分のみをＡＳＩＣなどの物理的な回路を用いて実装し、その他の部分については、プロセッサがプログラムを実行することで実現してもよい。
【００６６】
＜Ｄ．メイン処理装置２のハードウェア構成＞
次に、本実施の形態に係るＰＬＣシステム１の一部を構成する制御装置であるメイン処理装置２のハードウェア構成について説明する。
【００６７】
図５は、本発明の実施の形態に係るメイン処理装置２の接続構成を示す模式図である。図６は、本発明の実施の形態に係るメイン処理装置２を構成するＣＰＵユニット４０のハードウェア構成を示す模式図である。
【００６８】
《ｄ１：接続構成》
図５を参照して、メイン処理装置２においても、上述のリモートＩＯ装置３（図２参照）と同様に、ＣＰＵユニット４０および１つ以上のＩＯユニット２０−１，２０−２，２０−３が通信ラインである内部バス５（ダウンリンク５１およびアップリンク５２）を介して互いにデータ伝送可能になっている。すなわち、メイン処理装置２は、通信ラインを介して接続される複数のユニット（ＣＰＵユニット４０およびＩＯユニット２０）を含む。
【００６９】
ＩＯユニット２０の各々は、ダウンリンク５１またはアップリンク５２を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、ＩＯユニット２０の各々は、フレームを再生成した上で、次段のＩＯユニット２０へ再送信（フォワード）する。各ＩＯユニット２０は、ダウンリンク５１に関して、受信部（ＲＸ）２１０ａおよび送信部（ＴＸ）２１０ｂを含むとともに、アップリンク５２に関して、受信部２２０ａおよび送信部２２０ｂを含む。
【００７０】
ＣＰＵユニット４０は、プロセッサ１５０と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００７１】
《ｄ２：ＣＰＵユニット４０の構成》
図６を参照して、メイン処理装置２のＣＰＵユニット４０は、プロセッサ１５０と、主メモリ１５２と、不揮発性メモリ１５４と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。ＣＰＵユニット４０のデータ伝送に係る基本的な構成は、上述のマスターユニット１０（図２）と同様であるので、対応する部分（同一の参照符号を付している）についての説明は繰り返さない。
【００７２】
ＣＰＵユニット４０のプロセッサ１５０は、対象の制御に係るユーザプログラムを実行する。より具体的には、ＣＰＵユニット４０は、不揮発性メモリ１５４などからユーザプログラム１５６を読み出すとともに、主メモリ１５２に展開して実行する。このユーザプログラムの実行によって、ＩＯユニット２０の入力部によって検出された状態値に基づいて、ＩＯユニット２０の出力部から出力すべき状態値が順次算出される。
【００７３】
《ｄ３：ＩＯユニット２０の構成》
メイン処理装置２のＩＯユニット２０の構成については、上述したリモートＩＯ装置３のＩＯユニット２０の構成（図４参照）と同様であるので、詳細な説明は繰り返さない。
【００７４】
《ｄ４：その他》
メイン処理装置２を構成するＣＰＵユニット４０およびＩＯユニット２０の各コンポーネントについても、処理高速化の観点から、ＡＳＩＣやＦＰＧＡなどのハードウェアなどを実現することが好ましい。但し、一部または全部のコンポーネントをソフトウェアとして実装してもよい。
【００７５】
＜Ｅ．フレーム構造＞
次に、本実施の形態に係るＰＬＣシステム１の内部バス５上を伝送されるフレームの構造について説明する。図７は、本発明の実施の形態に係る内部バス５上を伝送されるフレーム３００の構造を示す模式図である。
【００７６】
図７を参照して、フレーム３００は、１つ以上のフレーム境界同期コード３０２と、１つ以上のブロックとから構成される。図７に示すフレーム３００は、連続配置された４つのフレーム境界同期コード３０２（フレーム同期）を含む例を示す。フレーム境界同期コード３０２は、フレームの先頭を意味するコードであり、互いに異なる４つのコードからなる。この互いに異なる４つのコードが配置される順序は予め定められており、このコードの配置順序に基づいて、フレームの開始位置が特定される。すなわち、予め定められた配置順序で４つのフレーム境界同期コード３０２が受信された場合に限って、後続のフレームの受信処理が開始される。
【００７７】
また、後述するように、先行のフレームの送信中に別のフレームを割り込ませて送信する場合には、先行のフレーム（通常フレーム）と、割込フレームとの間で、フレーム境界同期コード３０２の値および／または配置順序を異ならせることが好ましい。このような割込処理を行うことで、先行のフレームが時間的に分断された送信されることになるが、このような変則的な送信であっても、受信側で検知することができる。
【００７８】
フレーム３００の１番目のブロックは、ヘッダ情報が格納されるヘッダ部３０４であり、ヘッダ部３０４に引き続く１つ以上のブロック（２番目以降のブロック）は、送信対象のデータが格納される本体部３１０である。各ブロックは、データ部と訂正符号部とからなる。ヘッダ部３０４についてみれば、データ部３０６は、後続の本体部３１０に格納されるデータを示す情報を格納し、訂正符号部３０８は、データ部３０６に格納されるデータについての訂正符号を格納する。同様に、本体部３１０についてみれば、データ部３１２は、送信対象のデータを所定量毎に分割した一部を格納し、訂正符号部３１４は、データ部３１２に格納されるデータについての訂正符号を格納する。
【００７９】
例えば、リードソロモン符号を採用した場合には、情報シンボルがデータ部３０６に割り当てられ、冗長シンボルが訂正符号部３０８に割り当てられる。典型的には、冗長シンボルは、情報シンボルから生成される。この訂正符号部３０８に格納される情報量（シンボルの数）は、必要な冗長度（訂正可能距離）などに応じて決定される。
【００８０】
なお、フレームの最終ブロック（図７に示す例では、ブロックＮ）に、送信対象の全データから算出されるＣＲＣなどをフレームチェックシーケンスとして格納してもよい。これにより、受信側では、フレームが正しく受信されたか否かを判断できる。
【００８１】
ヘッダ部３０４には、送信対象のデータに関する属性情報が格納される。属性情報は、後述するように、当該送信対象のデータについての優先度を示す情報を含む。本実施の形態においては、典型例として、３段階に優先度が設定されるものとする。以下の説明では、優先度が高い順に、「高優先」、「中優先」、「低優先」とも称する。例えば、２ビットを用いて、それぞれ「０」、「１」、「２」の値を用いることで、優先度を示すようにしてもよい。
【００８２】
＜Ｆ．優先度に応じたデータ伝送に係る構成＞
次に、本実施の形態に係る優先度に応じたデータ伝送に係る構成について説明する。図８は、本発明の実施の形態に係るＩＯユニット２０のフォワードコントローラのより具体的な構成を示す模式図である。
【００８３】
図８を参照して、フォワードコントローラ２１４および２２４の各々は、アービトレータ２６０と、優先度判断部２６２と、フォワードＱｕｅ２７０と、送信Ｑｕｅ２８０とを含む。フォワードＱｕｅ２７０および送信Ｑｕｅ２８０は、基本的には、ＦＩＦＯ形式のバッファメモリで構成される。
【００８４】
前段のＩＯユニット２０から受信したフレームは、ＤＥＳ部２１２からフォワードコントローラ２１４へ入力され、あるいは、ＤＥＳ部２２２からフォワードコントローラ２２４へ入力される。ＤＥＳ部２１２またはＤＥＳ部２２２から出力されるフレームは、時系列に並んだ状態（シリアルデータ）からパラレルデータへ変換されており、ブロック単位で同時に入力される。
【００８５】
優先度判断部２６２は、この入力されたフレームのヘッダ部３０４に含まれるヘッダ情報に基づいて、入力されたフレームに含まれるデータの優先度を判断する。フォワードＱｕｅ２７０は、通常Ｑｕｅ２７２および高優先Ｑｕｅ２７４とを含む。優先度判断部２６２は、「高優先」に設定されたフレームについては高優先Ｑｕｅ２７４へ格納し、「中優先」または「低優先」に設定されたフレームについては通常Ｑｕｅ２７２へ格納する。
【００８６】
また、ＩＯユニット２０の内部で生成したデータを送信する場合には、当該対象のデータが送信Ｑｕｅ２８０へ一旦格納される。送信Ｑｕｅ２８０は、通常Ｑｕｅ２８２および高優先Ｑｕｅ２８４とを含む。プロセッサ２００および送信処理部２４０が協働して、他のユニットへ送信すべきデータを生成した場合には、そのデータ種別に応じて、生成したデータに優先度を示す情報が付加される。このデータ種別としては、後述するような、各種トリガーとなるフレームであるか、あるいは、通常のデータを搬送するフレームであるかといった属性が想定される。
【００８７】
その上で、送信処理部２４０は、生成したデータからフレームを生成するとともに、それに含まれるデータの優先度に応じて、各フレームを通常Ｑｕｅ２８２または高優先Ｑｕｅ２８４へ格納する。
【００８８】
アービトレータ２６０は、フォワードＱｕｅ２７０（通常Ｑｕｅ２７２および高優先Ｑｕｅ２７４）および送信Ｑｕｅ２８０（通常Ｑｕｅ２８２および高優先Ｑｕｅ２８４）に格納されているフレームの送信順序を裁定する。より具体的には、各Ｑｕｅに格納されているフレームの優先度を互いに比較し、基本的には、より優先度の高いフレームを先に送信する。
【００８９】
このように、ＩＯユニット２０の各々は、複数のバッファ（フォワードＱｕｅ２７０および送信Ｑｕｅ２８０）を含む。そして、優先度判断部２６２は、受信部で受信されたフレームに含まれるデータおよびデータ生成部（送信処理部２４０およびプロセッサ２００）が生成したデータの少なくとも一方について、対象のデータに含まれる優先度を示す情報に基づいて、当該データを格納するバッファを決定する。
【００９０】
以下、いくつかの状況について、フレームの送信順序がどのように決定されるのかについて例示する。
【００９１】
＜Ｇ．優先度に応じたデータ伝送＞
基本的には、「低優先」フレームまたは「中優先」フレームの送信中に、「高優先」フレームの受信または生成が生じると、あるいは、「低優先」フレームの送信中に、「中優先」フレームまたは「高優先」フレームの受信または生成が生じると、当該送信中のフレームを予め定められたブロックまで送信した上でその送信が中断され、続いてより優先の高いフレームの送信が開始される。
【００９２】
《ｇ１：中断されたフレームの送信を再開する処理例》
図９〜図１１は、本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。図９〜図１１は、いずれも「低優先」のフレームを送信中に、「高優先」のフレームが受信または生成された例を示す。これらの処理例においては、「高優先」のフレームが優先的に送信され、先に送信中であった「低優先」のフレームは、「高優先」のフレームの送信完了後に、その送信が再開される。
【００９３】
より具体的には、図９（ａ）には、自ユニット内で「低優先」のフレーム３５０を生成し、そのフレーム３５０が通常Ｑｕｅ２８２に一次的に格納された上で、順次送信されている状態を示す。図９（ａ）に示す状態において、他のユニットから「高優先」のフレーム３５２を受信した場合に実行される処理例を図９（ｂ）に示す。この例では、フレーム３５０についてみれば、その３番目のブロックと４番目のブロックとの境界において送信が中断され、フレーム３５０の４番目のブロックが送信される予定だった位置（あるいは順序）に、フレーム３５２が挿入される。すなわち、「高優先」のフレーム３５２が「低優先」のフレーム３５０を追い越して、先に、次段のＩＯユニット２０へ送信される。
【００９４】
次段のＩＯユニット２０へのフレーム３５２の送信が完了すると、送信が中断されていたフレーム３５０の送信が再開される。図９に示す例では、途中の中断を挟んでも、フレーム３５０の送信は正常に完了する。
【００９５】
同様に、図１０（ａ）には、前段のＩＯユニット２０から「低優先」のフレーム３６０を受信し、そのフレーム３６０が通常Ｑｕｅ２７２に一次的に格納された上で、順次送信されている状態を示す。図１０（ａ）に示す状態において、自ユニット内で「高優先」のフレーム３６２を生成した場合に実行される処理例を図１０（ｂ）に示す。この例では、フレーム３６０についてみれば、その３番目のブロックと４番目のブロックとの境界において送信が中断され、フレーム３６０の４番目のブロックが送信される予定だった位置（あるいは順序）に、フレーム３６２が挿入される。すなわち、「高優先」のフレーム３６２が「低優先」のフレーム３６０を追い越して、先に、次段のＩＯユニット２０へ送信される。
【００９６】
次段のＩＯユニット２０へのフレーム３５２の送信が完了すると、送信が中断されていたフレーム３６０の送信が再開される。図１０に示す例では、途中の中断を挟んでも、フレーム３６０の送信は正常に完了する。
【００９７】
一方、図１１（ａ）には、自ユニット内で「低優先」のフレーム３５０を生成し、そのフレーム３５０が通常Ｑｕｅ２８２に一次的に格納された上で、順次送信されている状態を示す。図１１（ａ）に示す状態において、自ユニット内で「高優先」のフレーム３５４を生成した場合に実行される処理例を図１１（ｂ）に示す。この例では、フレーム３５０についてみれば、その３番目のブロックと４番目のブロックとの境界において送信が中断され、フレーム３５０の４番目のブロックが送信される予定だった位置（あるいは順序）に、フレーム３５４が挿入される。すなわち、「高優先」のフレーム３５４が「低優先」のフレーム３５０を追い越して、先に、次段のＩＯユニット２０へ送信される。
【００９８】
次段のＩＯユニット２０へのフレーム３５４の送信が完了すると、送信が中断されていたフレーム３５０の送信が再開される。図１１に示す例では、途中の中断を挟んでも、フレーム３５０の送信は正常に完了する。
【００９９】
このように、同種類のフレームの間においても、優先度に応じて、送信の順序が変更される。なお、前段のＩＯユニット２０から「低優先」のフレームを受信し、そのフレームが通常Ｑｕｅ２７２に一次的に格納された上で、順次送信されている状態において、さらに他のユニットから「高優先」のフレームを受信した場合の処理例についても、図１１と同様である。すなわち、この例においても、「高優先」のフレームが「低優先」のフレームを追い越して、先に、次段のＩＯユニット２０へ送信される。
【０１００】
上述のように、ＩＯユニット２０の送信部が「低優先」のフレームを送信中に、受信部または制御部においてより優先度の高い送信すべきデータが生じると、ＩＯユニット２０の送信部は、送信中の「低優先」のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む「高優先」のフレームを送信する。そして、ＩＯユニット２０の送信部は、割り込んだ「高優先」のフレームの送信が完了するまで、「低優先」のフレームのうち、未送信部分の送信を中断する。
【０１０１】
なお、上述の図９〜図１１においては、先に送信中のフレームの優先度が「低優先」であり、後から生じたフレームが「高優先」である場合の処理例を示したが、（１）先のフレームが「低優先」であって、後のフレームが「中優先」である場合、および、（２）先のフレームが「中優先」であって、後のフレームが「高優先」である場合、のいずれにおいても同様の処理を行うことができる。
【０１０２】
《ｇ２：割込時のフレーム構造》
次に、上述の図９〜図１１に示すようなフレームの割り込みが生じた場合のフレームの構造について説明する。
【０１０３】
図１２は、本発明の実施の形態に係るフレームの割り込みが生じた場合のフレームの構造を示す模式図である。図１２には、先行のフレーム３００の送信中に後続のフレーム３２０が割り込んだ場合に内部バス５を伝送するフレームの構造を示す。
【０１０４】
図１２（ａ）に示すように、先行のフレーム３００は、通常フレームの開始を示すフレーム境界同期コード３０２と、それに引き続く複数のブロック３０３−１〜３０３−５とからなる。なお、フレーム３００の最終ブロック３０３−５には、誤りチェックを行うためのフレームチェックシーケンス（ＦＣＳ）が付加されている。このフレーム３００に対してフレーム３２０が割り込んだ場合には、フレーム３２０は、割込フレームの開始を示すフレーム境界同期コード３２２と、それに引き続くブロック３２３とからなる。説明の便宜上、フレーム３２０が１個のブロック３２３を含む例を示すが、複数のブロック３２３を含むようにしてもよい。また、フレーム３２０の最終部分にも、誤りチェックを行うためのフレームチェックシーケンス（ＦＣＳ）が付加されている。
【０１０５】
図１２（ａ）に示すように、フレーム３００の途中にフレーム３２０が割り込んだことは、割込フレームを示すフレーム境界同期コード３２２によって検知できる。その上で、フレーム３２０は、ヘッダ情報として、フレーム３２０に含まれるデータ量を含んでいるので、受信側ではフレーム３２０の終了位置を特定できる。そのため、フレーム３２０の後に、フレーム３００の３番目のブロック３０３−３が引き続いて送信されたとしても、フレーム３００およびフレーム３２０をそれぞれ正しく識別した上で受信できる。
【０１０６】
さらに、図１２（ｂ）に示すように、送信が再開されたフレームであることを示すフレーム境界同期コード３０２Ａをフレーム３２０の後に付加してもよい。これにより、送信が再開されたフレーム３００をより正しく受信できる。すなわち、受信側では、フレーム境界同期コード３２２によって、フレーム３２０の開始位置を特定することができ、その後、フレーム境界同期コード３０２Ａによって、送信再開されたフレーム３００の開始位置を特定することができる。
【０１０７】
《ｇ３：中断されたフレームを破棄する処理例》
上述の図９〜図１１においては、送信が中断された先行のフレームについて、割込フレームの送信が完了した後に、その送信を再開する処理例について例示した。一方で、これらのフレームを用いて通信するアプリケーションには、データを正しく受信できなかった場合に、そのデータを再送するための処理が組み込まれている。そのため、内部バス５上のデータ伝送処理において、送信が中断された先行のフレームの未送信部分を破棄しても、最終的なアプリケーションでの処理への影響度は少ない場合がある。以下、このような送信中断されたフレームの未送信部分を破棄する場合の処理例について説明する。
【０１０８】
図１３〜図１５は、本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。図１３〜図１５は、いずれも「低優先」のフレームを送信中に、「中優先」のフレームが受信または生成された例を示す。これらの処理例においては、「中優先」のフレームが優先的に送信され、先に送信中であった「低優先」のフレームの未送信部分は破棄される。これは、「中優先」のフレームを構成するブロックが相対的に多い場合などに有効である。すなわち、「低優先」のフレームの送信中断時間が長くなるほど、受信側での復号の成功確率が低くなることを考慮したものである。
【０１０９】
より具体的には、図１３（ａ）には、自ユニット内で「低優先」のフレーム３５０を生成し、そのフレーム３５０が通常Ｑｕｅ２８２に一次的に格納された上で、順次送信されている状態を示す。図１３（ａ）に示す状態において、他のユニットから「中優先」のフレーム３５４を受信した場合に実行される処理例を図１３（ｂ）に示す。この例では、フレーム３５０についてみれば、その３番目のブロックと４番目のブロックとの境界において送信が中断され、フレーム３５０の４番目のブロックが送信される予定だった位置（あるいは順序）に、フレーム３５４が挿入される。すなわち、「中優先」のフレーム３５４が「低優先」のフレーム３５０を追い越して、先に、次段のＩＯユニット２０へ送信される。このとき、送信が中断されていたフレーム３５０のうち、未送信部分である３番目および４番目のブロックについては破棄される。
【０１１０】
同様に、図１４（ａ）には、前段のＩＯユニット２０から「低優先」のフレーム３６０を受信し、そのフレーム３６０が通常Ｑｕｅ２７２に一次的に格納された上で、順次送信されている状態を示す。図１４（ａ）に示す状態において、自ユニット内で「中優先」のフレーム３６４を生成した場合に実行される処理例を図１４（ｂ）に示す。この例では、フレーム３６４についてみれば、その３番目のブロックと４番目のブロックとの境界において送信が中断され、フレーム３６０の４番目のブロックが送信される予定だった位置（あるいは順序）に、フレーム３６４が挿入される。すなわち、「中優先」のフレーム３６４が「低優先」のフレーム３６０を追い越して、先に、次段のＩＯユニット２０へ送信される。このとき、送信が中断されていたフレーム３６０のうち、未送信部分である３番目および４番目のブロックについては破棄される。
【０１１１】
一方、図１５（ａ）には、自ユニット内で「低優先」のフレーム３５０を生成し、そのフレーム３５０が通常Ｑｕｅ２８２に一次的に格納された上で、順次送信されている状態を示す。図１５（ａ）に示す状態において、自ユニット内で「中優先」のフレーム３５６を生成した場合に実行される処理例を図１５（ｂ）に示す。この例では、フレーム３５０についてみれば、その３番目のブロックと４番目のブロックとの境界において送信が中断され、フレーム３５０の４番目のブロックが送信される予定だった位置（あるいは順序）に、フレーム３５６が挿入される。すなわち、「中優先」のフレーム３５６が「低優先」のフレーム３５０を追い越して、先に、次段のＩＯユニット２０へ送信される。このとき、送信が中断されていたフレーム３５０のうち、未送信部分である３番目および４番目のブロックについては破棄される。
【０１１２】
このように、同種類のフレームの間においても、優先度に応じて、送信の順序が変更されるとともに、送信が中断されていたフレームの未送信部分は破棄される。なお、前段のＩＯユニット２０から「低優先」のフレームを受信し、そのフレームが通常Ｑｕｅ２７２に一次的に格納された上で、順次送信されている状態において、さらに他のユニットから「中優先」のフレームを受信した場合の処理例についても、図１１と同様である。すなわち、この例においても、「中優先」のフレームが「低優先」のフレームを追い越して、先に、次段のＩＯユニット２０へ送信される。
【０１１３】
上述のように、ＩＯユニット２０の送信部が「低優先」のフレームを送信中に、受信部または制御部においてより優先度の高い送信すべきデータが生じると、ＩＯユニット２０の送信部は、送信中の「低優先」のフレームを予め定められたブロックまで送信した後に、当該送信すべきデータを含む「中優先」のフレームを送信する。そして、ＩＯユニット２０の送信部は、「低優先」のフレームのうち未送信部分を破棄する。
【０１１４】
なお、上述の図１３〜図１４においては、先に送信中のフレームの優先度が「低優先」であり、後から生じたフレームが「中優先」である場合の処理例を示したが、（１）先のフレームが「低優先」であって、後のフレームが「高優先」である場合、および、（２）先のフレームが「中優先」であって、後のフレームが「高優先」である場合、のいずれにおいても同様の処理を行うことができる。
【０１１５】
《ｇ４：フレームの追い越しの処理例》
図８を参照して説明したように、「低優先」および「中優先」のフレームは、通常Ｑｕｅ２７２または２８２へ格納され、「高優先」のフレームは、高優先Ｑｕｅ２７４または２８４へ格納される。そのため、先に、「低優先」または「中優先」のフレームが通常Ｑｕｅ２７２または２８２へ格納されていたとしても、後続の「高優先」のフレームを、先に、次段のＩＯユニット２０へ送信することもできる。すなわち、相対的に優先度の低いフレームを追い越して、後続のフレームを送信することもできる。以下、このような相対的に優先度の高いフレームの追い越し処理の処理例について説明する。
【０１１６】
図１６は、本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。図１６（ａ）には、自ユニット内で「中優先」のフレーム３７０を生成し、そのフレーム３７０が通常Ｑｕｅ２８２に一次的に格納された上で、順次送信されている状態を示す。併せて、前段のＩＯユニット２０から「中優先」のフレーム３７２を受信し、通常Ｑｕｅ２８２に格納した上で、フレーム３７０の送信完了を待っている状態を示す。
【０１１７】
そして、図１６（ａ）に示す状態において、他のユニットから「高優先」のフレーム３７４を受信した場合を考える。この例では、後から入力された「高優先」のフレーム３７４は、先に格納されているフレーム３７２を追い越した上で、フレーム３５０の４番目のブロックが送信される予定だった位置（あるいは順序）に挿入される。また、フレーム３７０は、その３番目のブロックと４番目のブロックとの境界において送信が中断される。このように、「高優先」のフレーム３７４は、送信中の「中優先」のフレーム３７０および先に格納されている「中優先」のフレーム３７２を追い越して、先に、次段のＩＯユニット２０へ送信される。
【０１１８】
上述のように、送信すべきデータが生じたときに送信待ちの「中優先」のフレームが存在しており、かつ、当該送信待ちのフレームに含まれるデータの優先度が送信すべきデータの優先度より低ければ、ＩＯユニット２０の送信部は、「高優先」のフレームを「中優先」のフレームより先に送信する。なお、上述の図１６においては、通常Ｑｕｅに先に格納されているフレームが「中優先」である場合の処理例を示したが「低優先」であっても、同様の手順で処理を行うことができる。
【０１１９】
また、図１６には、通常Ｑｕｅ２８２に１つの「中優先」のフレーム３７２が格納されている場合の処理例を示すが、「低優先」または「中優先」のフレームが通常Ｑｕｅ２８２に複数格納されている場合であっても、同様の処理が実行される。さらに、ＩＯユニット２０の内部で生成したフレームが通常Ｑｕｅ２７２に格納されている場合に、新たなフレームが生成されたときにも同様の処理が実行される。
【０１２０】
《ｇ５：同じ優先度のフレームが競合した場合の処理例》
上述の処理例においては、優先度が異なるフレーム間の送信順序について説明したが、以下では、同じ優先度のフレームが競合した場合の処理について説明する。優先度が同じであれば、原則として、先入れ先出し（ＦＩＦＯ）のルールに従う。すなわち、いずれかのＱｕｅにより早く格納されたフレームほど先に送信される。
【０１２１】
図１７は、本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。図１７（ａ）において、前段のＩＯユニット２０から受信した「高優先」のフレーム３８２が先に高優先Ｑｕｅ２７４に格納され、その後に、自ユニット内で生成した「高優先」のフレーム３８４が高優先Ｑｕｅ２８４に格納されているとする。さらにその後、前段のＩＯユニット２０から受信した「高優先」のフレーム３８６が高優先Ｑｕｅ２７４に格納され、その後に、自ユニット内で生成した「高優先」のフレーム３８８が高優先Ｑｕｅ２８４に格納されているとする。
【０１２２】
このような状況においては、図１７（ａ）に示すように、高優先Ｑｕｅ２７４または２８４へ格納された時間的な順序に従って、「高優先」のフレーム３８２，３８４，３８６，３８８が順次送信される。
【０１２３】
上述のように、送信すべきデータが生じたときに送信待ちの「高優先」のフレームが存在しており、かつ、「高優先」のフレームに含まれるデータの優先度が当該送信すべきデータの優先度と同等であれば、ＩＯユニット２０の送信部は、「高優先」のフレームを送信し、その後に、送信すべきデータを含むフレームを送信する。
【０１２４】
《ｇ６：マスター制御部での処理》
上述の説明においては、ＩＯユニット２０の内部でデータを生成する場合の処理について言及したが、マスターユニット１０またはＣＰＵユニット４０の内部でデータを生成する場合についても、同様の処理が実行される。
【０１２５】
図１８は、本発明の実施の形態に係る優先度に応じたデータ伝送の処理例を示す模式図である。図１８（ａ）を参照して、マスターユニット１０またはＣＰＵユニット４０からダウンリンク５１を介して、「低優先」のフレーム３９０を送信している場合を想定する。この状態において、プロセッサ１５０および内部バス制御部１３０が協働して、ＩＯユニット２０へ送信すべきデータを生成した場合には、その生成したデータを含むフレームを、ＩＯユニット２０へ送信されるフレーム間に割り込ませる。
【０１２６】
図１８（ｂ）に示すように、当該送信すべきデータの優先度が高い場合には、「高優先」のフレーム３９２を生成するとともに、送信中のフレーム３９０の送信を中断させ、フレーム３９２が挿入される。このフレーム３９２は、フレーム３９０の２番目のブロックが送信される予定だった位置（あるいは順序）に挿入される。すなわち、「高優先」のフレーム３９２が「低優先」のフレーム３９０を追い越して、先に、ＩＯユニット２０へ送信される。
【０１２７】
ＩＯユニット２０の内部でデータを生成する場合と同様に、そのデータ種別に応じて、優先度を示す情報が生成したデータ（フレーム）に付加される。
【０１２８】
＜Ｈ．処理手順＞
次に、上述したような優先度に応じたデータ伝送に係る処理手順について説明する。図１９は、本発明の実施の形態に係る優先度に応じたデータ伝送の処理手順を示すフローチャートである。図１９に示す各ステップは、基本的には、フォワードコントローラ２１４または２２４のアービトレータ２６０（図８）によって実行される。
【０１２９】
図１９を参照して、他のユニットからフレームを受信、または、ＩＯユニット２０の内部でフレームが生成される（ステップＳ１００においてＹＥＳの場合）と、当該フレームに含まれるデータの優先度に応じて、受信したフレームを通常Ｑｕｅまたは高優先Ｑｕｅに格納される（ステップＳ１０２）。
【０１３０】
アービトレータ２６０は、新たなフレームの格納先が高優先Ｑｕｅであるか否かを判断する（ステップＳ１０４）。新たなフレームの格納先が高優先Ｑｕｅではない場合（ステップＳ１０４においてＮＯの場合）、アービトレータ２６０は、現在送信中のフレームがあるか否かを判断する（ステップＳ１０６）。現在送信中のフレームがない場合（ステップＳ１０６においてＮＯの場合）には、アービトレータ２６０は、最も早くＱｕｅに格納されたフレームを選択し転送する（ステップＳ１０８）。そして、ステップＳ１００以下の処理が実行される。
【０１３１】
これに対して、現在送信中のフレームがある場合（ステップＳ１０６においてＹＥＳの場合）には、アービトレータ２６０は、新たなフレームに含まれるデータの優先度を判断する（ステップＳ１１２）。新たなフレームに含まれるデータの優先度が「低優先」である場合（ステップＳ１１２において「低優先」）には、現在送信中のフレームの送信を継続する（ステップＳ１１４）。そして、ステップＳ１００以下の処理が実行される。
【０１３２】
一方、新たなフレームに含まれるデータの優先度が「中優先」である場合（ステップＳ１１２において「中優先」）には、アービトレータ２６０は、現在送信中のフレームに含まれるデータの優先度を判断する（ステップＳ１１８）。現在送信中のフレームに含まれる優先度が「低優先」である場合（ステップＳ１１８において「低優先」）には、アービトレータ２６０は、現在送信中のフレームの送信を中断し、新たなフレームを割り込ませる（ステップＳ１２０）。そして、アービトレータ２６０は、先に送信中のフレームの未送信部分を破棄する（ステップＳ１２２）。そして、ステップＳ１００以下の処理が実行される。
【０１３３】
現在送信中のフレームに含まれる優先度が「中優先」である場合（ステップＳ１１８において「中優先」）には、ステップＳ１１４の処理が実行される。
【０１３４】
これに対して、新たなフレームの格納先が高優先Ｑｕｅである場合（ステップＳ１０４においてＹＥＳの場合）、アービトレータ２６０は、現在送信中のフレームがあるか否かを判断する（ステップＳ１２４）。現在送信中のフレームがない場合（ステップＳ１２４においてＮＯの場合）には、アービトレータ２６０は、新たなに高優先Ｑｕｅに格納されたフレームを選択し転送する（ステップＳ１２６）。そして、ステップＳ１００以下の処理が実行される。
【０１３５】
現在送信中のフレームがある場合（ステップＳ１２４においてＹＥＳの場合）には、アービトレータ２６０は、現在送信中のフレームに含まれるデータの優先度を判断する（ステップＳ１２８）。現在送信中のフレームに含まれる優先度が「中優先」または「低優先」である場合（ステップＳ１２８において「中優先」または「低優先」）には、アービトレータ２６０は、現在送信中のフレームの送信を中断し、新たなフレームを割り込ませる（ステップＳ１３０）。そして、ステップＳ１００以下の処理が実行される。
【０１３６】
現在送信中のフレームに含まれる優先度が「高優先」である場合（ステップＳ１２８において「高優先」）には、現在送信中のフレームの送信を継続する（ステップＳ１３２）。そして、ステップＳ１００以下の処理が実行される。
【０１３７】
＜Ｉ．適用例＞
次に、上述したような優先度に応じたデータ伝送の適用例について説明する。
【０１３８】
《ｉ１：内部バスにおける転送方式》
本実施の形態に係る内部バス５においては、典型的には、以下のような転送方式が可能である。
【０１３９】
（１）マスター制御部（マスターユニット１０またはＣＰＵユニット４０）に接続されているすべてのスレーブ制御部（ＩＯユニット２０）に対して、一斉にデータを転送する方式（マルチキャストまたはブロードキャスト）。この転送方式では、マスター制御部がダウンリンク５１を介して送信したデータフレームは、すべてのスレーブ制御部の間で転送される。
【０１４０】
（２）マスター制御部に接続されている特定のスレーブ制御部に対して、データを転送する方式（宛先指定転送）。この転送方式では、マスター制御部がダウンリンク５１を介して送信したデータフレームは、宛先のスレーブ制御部に到達するまで転送され続けるが、宛先のスレーブ制御部に到達した時点で、次段のスレーブ制御部へは転送されない。
【０１４１】
（３）マスター制御部からの要求に応答して、スレーブ制御部がマスター制御部に対して、データを転送する方式（通常転送）。この転送方式では、いずれかのスレーブ制御部がアップリンク５２を介して送信したデータフレームは、マスター制御部まで転送される。
【０１４２】
（４）マスター制御部から送信権を与えられたことを条件として、スレーブ制御部がマスター制御部に対して、データを転送する方式（メッセージ転送）。なお、マスター制御部からスレーブ制御部に対して送信権を与えるコマンド（トリガー）を含むデータフレーム（以下「ＴＲＧ＿ｆｒａｍｅ（ＭＳＧ）」とも称す。）が送信される。この転送方式では、先にマスター制御部がいずれかのスレーブ制御部に対してアップリンク５２についての送信権を付与する。送信権を付与されたスレーブ制御部がアップリンク５２を介して送信したデータフレームは、マスター制御部まで転送される。
【０１４３】
このような転送方式を採用する内部バス５において、本実施の形態に従う優先度に応じたデータ伝送方式を採用することで、内部バスを低消費電力化できる。以下、その低消費電力化を実現するための処理について説明する。
【０１４４】
《ｉ２：低消費電力化に係る基本的思想》
基本的な思想として、マスター制御部は、アップリンクを介したスレーブ制御部からのデータ送信が完了すると、アップリンクを非アクティブ化するための指令を、ダウンリンクを介してスレーブ制御部へ送信する。スレーブ制御部は、この指令に従ってアップリンクを非アクティブ化することで、データ伝送に係る消費電力を低減できる。また、マスター制御部は、スレーブ制御部からデータを取得したい場合には、アップリンクをアクティブ化するための指令を、ダウンリンクを介してスレーブ制御部へ送信する。スレーブ制御部は、この指令に従ってアップリンクをアクティブ化することで、データをマスター制御部へ送信できる。このように、スレーブ制御部は、マスター制御部からの指令に従って、データ伝送に必要な期間のみアクティブ化されるので、不要な電力消費を回避できる。
【０１４５】
このアクティブ化するための指令および非アクティブ化するための指令については、マスター制御部から可能な限り迅速にスレーブ制御部へ送信することが好ましい。アクティブ化するための指令を迅速に送信することで、マスター制御部がデータを受信するまでの時間を短縮でき、非アクティブ化するための指令を迅速に送信することで、電力消費をより多く削減できる。
【０１４６】
《ｉ３：低消費電力化に係る処理手順》
以下の説明では、上述の基本的思想をリモートＩＯ装置３の内部バス５に適用した例について説明する。すなわち、ダウンリンク５１については、常にアクティブに維持する一方で、アップリンク５２（図２に示す受信部２２０ａおよび送信部２２０ｂ）については、通信ｎ必要な期間に限ってアクティブにする。
【０１４７】
図２０は、本発明の実施の形態に係る優先度に応じたデータ伝送を用いたリモートＩＯ装置３における低消費電力化の実現方法を説明するための図である。図２０（ａ）には、ダウンリンク５１およびアップリンク５２のいずれもがアクティブである状態を示し、図２０（ｂ）には、ダウンリンク５１がアクティブに維持される一方で、アップリンク５２が休止している状態を示す。
【０１４８】
このとき、マスター制御部として機能するマスターユニット１０は、アップリンク５２を伝送する信号を受信する受信回路（内部バス制御部１３０内の受信回路１４４）を含み、アップリンク５２が非アクティブ化されている期間、当該受信回路１４４の電源も遮断される。これによって、ＩＯユニット２０だけでなく、ＣＰＵユニット４０においても消費電力を低減できる。
【０１４９】
本適用例においては、可能な限り図２０（ｂ）に示すような状態を維持することで、消費電力を低減する。一方で、ダウンリンク５１については、アクティブな状態に維持することで、アップリンク５２のアクティブ化／休止の制御を容易化する。
【０１５０】
リモートＩＯ装置３は、上位通信ネットワークであるフィールドバス４を通じて、メイン処理装置２からＯＵＴデータを受信するとともに、自装置の入力部で収集した状態値（ＩＮデータ）をメイン処理装置２へ送信する。また、フィールドバス４上では、上位通信フレームが周期的に伝送される。本適用例においては、この上位通信フレームが到達するタイミングを基準として、データ更新が実行される。
【０１５１】
より具体的には、到達した上位通信フレームに含まれるＯＵＴデータに基づいて、ＩＯモジュール２０６（図４）の出力値が更新される（以下「ＯＵＴデータリフレッシュ」とも称す。）。また、次の上位通信フレームが到達する前に、ＩＯモジュール２０６（図４）において検出されている最新の状態値（ＩＮデータ）がマスターユニット１０へ転送される（以下「ＩＮデータリフレッシュ」とも称す。）。これによって、上位通信フレームが到達したときに、最新の状態値（ＩＮデータ）をその上位通信フレームに書込むことができる。
【０１５２】
上述のようなアップリンク５２のアクティブ／非アクティブについては、マスター制御部がダウンリンク５１を介して制御する。より具体的には、マスター制御部として機能するマスターユニット１０は、ダウンリンク５１を介して、休止状態の受信部２２０ａおよび送信部２２０ｂをアクティブ化するための指令を含むデータフレーム（以下「ＷａｋｅＵＰ＿ｆｒａｍｅ」とも称す。）、および、アクティブ状態の受信部２２０ａおよび送信部２２０ｂを休止するための指令を含むデータフレーム（以下「ＰｏｗｅｒＤｏｗｎ＿ｆｒａｍｅ」とも称す。）をスケジュールに従って送信する。いずれかのデータフレームを受信したＩＯユニット２０は、指定された処理（受信部２２０ａおよび送信部２２０ｂのアクティブ化／休止）を実行する。
【０１５３】
以下、タイムチャートを参照しつつ、本適用例における内部バス５における通信スケジュールについて説明する。
【０１５４】
図２１は、本発明の実施の形態に係る優先度に応じたデータ伝送を用いたリモートＩＯ装置３における通信手順を示すタイムチャートである。図２１には、上位通信フレーム４００の到着ごとに、ＯＵＴデータリフレッシュおよびＩＮデータリフレッシュが実行される場合の通信手順を示す。そのため、図８に示す通信手順は、フィールドバス４の制御周期であるＴ１ごとに繰り返される。上位通信フレーム４００の到着直前においては、アップリンク５２は休止状態であるとする。
【０１５５】
図２１（ａ）は、上位通信ネットワークであるフィールドバス４を伝送されるデータフレームを示す。図２１（ｂ）は、マスターユニット１０と１番目のＩＯユニット２０−１との間のダウンリンク５１を伝送されるデータフレームを示す。図２１（ｃ）は、１番目のＩＯユニット２０−１とマスターユニット１０との間のアップリンク５２を伝送されるデータフレームを示す。図２１（ｄ）は、１番目のＩＯユニット２０−１と２番目のＩＯユニット２０−２との間のダウンリンク５１を伝送されるデータフレームを示す。図２１（ｅ）は、２番目のＩＯユニット２０−２と１番目のＩＯユニット２０−１との間のアップリンク５２を伝送されるデータフレームを示す。
【０１５６】
まず、上位通信フレーム４００が到着し、その受信が完了すると、マスターユニット１０は、ダウンリンク５１を介してＷａｋｅＵＰ＿ｆｒａｍｅ４０２を送信し、休止状態のアップリンク５２（受信部２２０ａおよび送信部２２０ｂ）をアクティブ化する。このＷａｋｅＵＰ＿ｆｒａｍｅ４０２は、マルチキャストまたはブロードキャストで送信される。そのため、ＷａｋｅＵＰ＿ｆｒａｍｅ４０２は、図８（ｂ）および（ｄ）に示すように、マスターユニット１０からＩＯユニット２０−１へ転送された後、ＩＯユニット２０−１からＩＯユニット２０−２へさらに転送される。
【０１５７】
このとき、ＷａｋｅＵＰ＿ｆｒａｍｅ４０２は「高優先」に設定されるため、「低優先」または「中優先」の他のフレームが内部バス５上を伝送されていても、それらを追い越して送信され、アクティブ化が完了するまでの時間を短縮できる。
【０１５８】
図２１（ｃ）および（ｅ）に示すように、ＷａｋｅＵＰ＿ｆｒａｍｅ４０２を受信したＩＯユニット２０は、その受信部２２０ａおよび送信部２２０ｂ（図４に示すＤＥＳ部２２２、フォワードコントローラ２２４およびＳＥＲ部２２６）をアクティブ化するとともに、近接するマスターユニット１０またはＩＯユニット２０の受信部２２０ａまたは送信部２２０ｂに対して自ユニットの存在を通知するために、トレーニング信号５０２を送信する。このトレーニング信号５０２は、基本的には意味の無い雑音信号であり、自ユニットがアクティブ化していることを他のユニットに知らせるためのものである。すなわち、ＩＯユニット２０は、アップリンク５２をアクティブ化するための指令（ＷａｋｅＵＰ＿ｆｒａｍｅ４０２）に応答して、予め定められた期間に亘ってアップリンク５２上にダミー信号を送信する。
【０１５９】
続いて、図２１（ｂ）に示すように、ＩＯユニット２０から必要なデータを受信すると、マスターユニット１０は、ダウンリンク５１を介してＯＵＴ＿ｆｒａｍｅ４０４を送信する。このＯＵＴ＿ｆｒａｍｅ４０４は、上位通信フレームから取り出されたＯＵＴデータを含む。ＯＵＴ＿ｆｒａｍｅ４０４を受信したＩＯユニット２０は、それに含まれるＯＵＴデータに基づいて、ＩＯモジュール２０６の出力値を更新する。さらに、マスターユニット１０は、特定のＩＯユニット２０に対して、メッセージ４０６を送信する。このメッセージ４０６がＩＯユニット２０−１に向けられたものである場合には、ＩＯユニット２０−１はこのメッセージ４０６を次段へは転送しない（図２１（ｄ）参照）。
【０１６０】
このように、マスターユニット１０は、アップリンク５２をアクティブ化するための指令（ＷａｋｅＵＰ＿ｆｒａｍｅ４０２）に引き続いて、ＩＯユニット２０へ渡すデータを、ダウンリンク５１を介してＩＯユニット２０へ送信する。
【０１６１】
一方、ＩＯユニット２０の各々は、トレーニング信号の送信が完了（トレーニング期間が終了）すると、マスターユニット１０へのデータ転送を開始する。例えば、ＩＯユニット２０−１に対して送信権が与えられていれば、図２１（ｂ）に示すように、ＩＯユニット２０−１は、メッセージ５０４をマスターユニット１０へ送信する。
【０１６２】
続いて、ＩＯユニット２０の各々は、ＩＮデータリフレッシュを実行する。すなわち、ＩＯユニット２０の各々は、ＩＯモジュール２０６に入力されている最新の状態値を取得し、その最新の状態値を含むＩＮ＿ｆｒａｍｅ５０６をマスターユニット１０へ送信する。このＩＮ＿ｆｒａｍｅ５０６は、それぞれのＩＯユニット２０から順次マスターユニット１０へ順次送信される。
【０１６３】
ＩＮ＿ｆｒａｍｅ５０６を受信したマスターユニット１０は、ＯＵＴデータリフレッシュおよびＩＮデータリフレッシュの実行が完了したと判断し、ダウンリンク５１を介してＰｏｗｅｒＤｏｗｎ＿ｆｒａｍｅ４０８を送信し、アクティブ状態のアップリンク５２（受信部２２０ａおよび送信部２２０ｂ）を休止させる。すなわち、マスター制御部として機能するマスターユニット１０は、アップリンク５２を介したスレーブ制御部として機能するＩＯユニット２０からのデータ送信が完了すると、アップリンク５２を非アクティブ化するための指令（ＰｏｗｅｒＤｏｗｎ＿ｆｒａｍｅ４０８）を、ダウンリンク５１を介してＩＯユニット２０へ送信する。このとき、ＰｏｗｅｒＤｏｗｎ＿ｆｒａｍｅ４０８は「高優先」に設定されるため、「低優先」または「中優先」の他のフレームが内部バス５上を伝送されていても、それらを追い越して送信され、アクティブ化が完了するまでの時間を短縮できる。
【０１６４】
このアップリンク５２の休止状態は、後続の上位通信フレームが到着するまで継続される。
【０１６５】
上述のように、本適用例においては、マスターユニット１０は、アップリンク５２を介したＩＯユニット２０からのデータ受信（ＩＮデータリフレッシュ）が完了すると、アップリンク５２を非アクティブ化するための指令（ＰｏｗｅｒＤｏｗｎ＿ｆｒａｍｅ）を、ダウンリンク５１を介してＩＯユニット２０へ送信する。
【０１６６】
また、ＩＯユニット２０は、ダウンリンク５１をアクティブに維持するとともに、ダウンリンク５１を介して送信されるマスターユニット１０からの指令（ＷａｋｅＵＰ＿ｆｒａｍｅ４０２／ＰｏｗｅｒＤｏｗｎ＿ｆｒａｍｅ４０８）に従って、アップリンク５２をアクティブ化／非アクティブ化する。
【０１６７】
本適用例によれば、内部バス５を介してデジチェーン接続されたマスター制御部（マスターユニット１０／ＣＰＵユニット４０）と１つ以上のＩＯユニット２０とからなるＰＬＣシステムにおいて、消費電力を低減することができる。
【０１６８】
＜Ｊ．利点＞
本実施の形態によれば、通信ラインを介したデータ伝送を優先度に応じてより効率的に行うことができる。すなわち、機器同士がデジチェーン接続されている構成において、優先度の高い（レイテンシをより小さくすることが要求される）フレームを送信したとしても、先行のフレームが転送中であれば、優先度の高いフレームの送信速度は、先行のフレームの転送処理によって律速されてしまう。これに対して、本実施の形態によれば、優先度の高いフレームは、先行の優先度の低いフレームの送信完了を待つことなく、そのフレームを追い越して転送されるので、レイテンシを小さくすることができる。
【０１６９】
このようなデータ伝送の処理を採用することで、通常のデータと、より即時性の要求されるシステムコマンドとを同一の通信ラインを介して送信をすることができる。
【０１７０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７１】
１  ＰＬＣシステム、２  メイン処理装置、３  リモートＩＯ装置、４  フィールドバス、５  内部バス、１０  マスターユニット、１２，４２  通信モジュール、２０  ＩＯユニット、３０  電源ユニット、４０  ＣＰＵユニット、５１  ダウンリンク、５２  アップリンク、１００，１５０，２００  プロセッサ、１１０  フィールドバス制御部、１１２，２１０ａ，２２０ａ  受信部、１１４，２１０ｂ，２２０ｂ  送信部、１２０  上位通信コントローラ、１２２  メモリコントローラ、１２４  メモリ、１２６，２０３  受信バッファ、１２８，２０４  送信バッファ、１３０  内部バス制御部、１３２  内部バス通信コントローラ、１４２  送信回路、１４４  受信回路、１５２  主メモリ、１５４，２０８  不揮発性メモリ、１５６  ユーザプログラム、１６０  記憶部、１６２，２０２  共有メモリ、１６４  受信メモリ、１６６  送信メモリ、２０６  ＩＯモジュール、２１２，２２２  ＤＥＳ部、２１４，２２４  フォワードコントローラ、２１６，２２６  ＳＥＲ部、２３０  受信処理部、２３２  復号部、２３４  チェック部、２４０  送信処理部、２４２  ＣＲＣ生成部、２４４  符号化部、２５０  バス、２６０  アービトレータ、２６２  優先度判断部、２７０  フォワードＱｕｅ、２７２，２８２  通常Ｑｕｅ、２７４，２８４  高優先Ｑｕｅ、２８０  送信Ｑｕｅ。
【図１】
2014138206.tif 000003
【図２】
2014138206.tif 000004
【図３】
2014138206.tif 000005
【図４】
2014138206.tif 000006
【図５】
2014138206.tif 000007
【図６】
2014138206.tif 000008
【図７】
2014138206.tif 000009
【図８】
2014138206.tif 000010
【図９】
2014138206.tif 000011
【図１０】
2014138206.tif 000012
【図１１】
2014138206.tif 000013
【図１２】
2014138206.tif 000014
【図１３】
2014138206.tif 000015
【図１４】
2014138206.tif 000016
【図１５】
2014138206.tif 000017
【図１６】
2014138206.tif 000018
【図１７】
2014138206.tif 000019
【図１８】
2014138206.tif 000020
【図１９】
2014138206.tif 000021
【図２０】
2014138206.tif 000022
【図２１】
2014138206.tif 000023