(57)【要約】  通信システムの少なくとも一部を構成する情報処理装置が提供される。情報処理装置は、第１の通信ラインに接続されるマスター部と、マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含む。マスター部は、第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するための第１の通信部と、第２の通信ラインを介して周期より短い時間内でスレーブ部との間でデータを送受信するための第２の通信部と、第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、第２の通信ラインを介してスレーブ部との間でデータを更新するための更新部とを含む。
2013137023.tif 000002
【特許請求の範囲】
【請求項１】
制御システムの少なくとも一部を構成する制御装置であって、
第１の通信ラインに接続されるマスター制御部と、
前記マスター制御部と第２の通信ラインを介して接続される少なくとも１つのスレーブ制御部とを備え、
前記マスター制御部は、
前記第１の通信ラインを介して予め定められた制御周期毎に他の装置との間でデータを送受信するための第１の通信部と、
前記第２の通信ラインを介して前記制御周期より短い時間内で前記スレーブ制御部との間でデータを送受信するための第２の通信部と、
前記第１の通信ラインを介して先行のデータを受信した後、次の制御周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ制御部との間でデータを更新するための更新部とを含む、制御装置。
【請求項２】
前記スレーブ制御部は、外部入力される信号の状態値を収集するための入力部を含み、
前記更新部は、更新処理として、前記入力部に、新たに状態値を収集させるとともに、収集された状態値を前記マスター制御部へ送信させる、請求項１に記載の制御装置。
【請求項３】
前記更新部は、前記収集された状態値の前記マスター制御部への送信を複数回指示する、請求項２に記載の制御装置。
【請求項４】
前記更新部は、前記後続のデータが到来するとされている時点を基準とした予め定められた時間だけ前の時点から、前記入力部についての更新処理を開始する、請求項２に記載の制御装置。
【請求項５】
前記スレーブ制御部は、指定された状態値の信号を出力するための出力部を含み、
前記更新部は、更新処理として、前記第１の通信ラインを介して受信したデータの少なくとも一部に従って、前記出力部が出力する信号を更新する、請求項２〜４のいずれか１項に記載の制御装置。
【請求項６】
前記更新部は、前記出力部が出力する信号を更新するための指令を複数回送信する、請求項５に記載の制御装置。
【請求項７】
前記マスター制御部は、
前記第１の通信ラインを伝送するデータを格納するための第１のバッファメモリと、
前記第２の通信ラインを伝送するデータを格納するための第２のバッファメモリと、
前記第１のバッファメモリと前記第２のバッファメモリとの間のデータ転送を制御するための転送回路とを含み、
前記更新部は、前記入力部で収集された状態値の前記第２のバッファメモリへの格納、および引き続く前記第２のバッファメモリから前記第１のバッファメモリへのデータ転送が、前記後続のデータが到来する前に完了するように、前記入力部についての更新処理を開始する、請求項５または６に記載の制御装置。
【請求項８】
前記更新部は、前記先行のデータの受信、および引き続く前記第１のバッファメモリから前記第２のバッファメモリへの当該データの転送が完了した後に、前記出力部についての更新処理を開始する、請求項７に記載の制御装置。
【請求項９】
前記更新部は、
前記第１のバッファメモリから前記第２のバッファメモリへの前記先行のデータの転送と並行して、前記入力部についての更新処理を行うとともに、
前記第２のバッファメモリから前記第１のバッファメモリへの前記入力部で収集された状態値の転送と並行して、前記出力部についての更新処理を行う、請求項７または８に記載の制御装置。
【請求項１０】
前記マスター制御部は、前記第１の通信ラインを介して接続される他の装置との間で共通のタイマを有しており、
前記更新部は、前記タイマで計時される値に基づいて、更新処理の開始タイミングを決定する、請求項１〜９のいずれか１項に記載の制御装置。
【請求項１１】
通信システムの少なくとも一部を構成する情報処理装置であって、
第１の通信ラインに接続されるマスター部と、
前記マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを備え、
前記マスター部は、
前記第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するための第１の通信部と、
前記第２の通信ラインを介して前記周期より短い時間内で前記スレーブ部との間でデータを送受信するための第２の通信部と、
前記第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ部との間でデータを更新するための更新部とを含む、情報処理装置。
【請求項１２】
第１の通信ラインに接続されるマスター制御部と、前記マスター制御部と第２の通信ラインを介して接続される少なくとも１つのスレーブ制御部とを含み、制御システムの少なくとも一部を構成する制御装置、における制御方法であって、
前記マスター制御部において、前記第１の通信ラインを介して予め定められた制御周期毎に他の装置との間でデータを送受信するステップと、
前記マスター制御部において、前記第２の通信ラインを介して前記制御周期より短い時間内で前記スレーブ制御部との間でデータを送受信するステップと、
前記マスター制御部において、前記第１の通信ラインを介して先行のデータを受信した後、次の制御周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ制御部との間でデータを更新するステップとを含む、制御方法。
【請求項１３】
第１の通信ラインに接続されるマスター部と、前記マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含み、通信システムの少なくとも一部を構成する情報処理装置、における制御方法であって、
前記マスター部において、前記第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するステップと、
前記マスター部において、前記第２の通信ラインを介して前記周期より短い時間内で前記スレーブ部との間でデータを送受信するステップと、
前記マスター部において、前記第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ部との間でデータを更新するステップとを含む、制御方法。
【請求項１４】
第１の通信ラインに接続されるマスター制御部と、前記マスター制御部と第２の通信ラインを介して接続される少なくとも１つのスレーブ制御部とを含み、制御システムの少なくとも一部を構成するコンピュータで実行されるプログラムを格納したコンピュータ読取可能な記録媒体であって、前記プログラムは前記コンピュータに
前記マスター制御部が前記第１の通信ラインを介して予め定められた制御周期毎に他の装置との間でデータを送受信するステップと、
前記マスター制御部が前記第２の通信ラインを介して前記制御周期より短い時間内で前記スレーブ制御部との間でデータを送受信するステップと、
前記マスター制御部が前記第１の通信ラインを介して先行のデータを受信した後、次の制御周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ制御部との間でデータを更新するステップとを実行させる、コンピュータ読取可能な記録媒体。
【請求項１５】
第１の通信ラインに接続されるマスター部と、前記マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含み、通信システムの少なくとも一部を構成するコンピュータで実行されるプログラムを格納したコンピュータ読取可能な記録媒体であって、前記プログラムは前記コンピュータに
前記マスター部が前記第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するステップと、
前記マスター部が前記第２の通信ラインを介して前記周期より短い時間内で前記スレーブ部との間でデータを送受信するステップと、
前記マスター部が前記第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ部との間でデータを更新するステップとを実行させる、コンピュータ読取可能な記録媒体。
【請求項１６】
第１の通信ラインに接続されるマスター制御部と、前記マスター制御部と第２の通信ラインを介して接続される少なくとも１つのスレーブ制御部とを含み、制御システムの少なくとも一部を構成するコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに
前記マスター制御部が前記第１の通信ラインを介して予め定められた制御周期毎に他の装置との間でデータを送受信するステップと、
前記マスター制御部が前記第２の通信ラインを介して前記制御周期より短い時間内で前記スレーブ制御部との間でデータを送受信するステップと、
前記マスター制御部が前記第１の通信ラインを介して先行のデータを受信した後、次の制御周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ制御部との間でデータを更新するステップとを実行させる、プログラム。
【請求項１７】
第１の通信ラインに接続されるマスター部と、前記マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含み、通信システムの少なくとも一部を構成するコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに
前記マスター部が前記第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するステップと、
前記マスター部が前記第２の通信ラインを介して前記周期より短い時間内で前記スレーブ部との間でデータを送受信するステップと、
前記マスター部が前記第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、前記第２の通信ラインを介して前記スレーブ部との間でデータを更新するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信ラインを含む構成におけるデータ通信に関する。
【背景技術】
【０００２】
単一の情報処理装置が異なる複数の通信ラインを利用可能な構成が採用されることがある。例えば、一般的なコンピュータでは、イーサネット（登録商標）などの通信ネットワーク（すなわち、第１の通信ライン）に接続されるとともに、内部バス（すなわち、第２の通信ライン）などを介して各種のデバイスを利用可能になっている。このような構成は、各種の情報処理装置に適用される。【０００３】
例えば、多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ；以下「ＰＬＣ」とも称す）などからなる制御システムによって制御される。このようなＰＬＣにおいても、複数の通信ラインが可能になっていることがある。【０００４】
制御システムは、機械や設備などの動作を制御するために用いられる。より具体的には、制御システムは、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）装置を含む。このようなＩＯ装置は、生産現場の様々な場所に配置されることが好ましい。一般的な制御システムでは、ＩＯ装置を、各種の制御プログラムを実行するためのプロセッサを含むメイン処理装置から離れた位置に配置できるようになっている。このようなメイン処理装置から離れて配置されるという意味で、このようなＩＯ装置は「リモートＩＯ装置」などとも称される。【０００５】
このようなメイン処理装置とリモートＩＯ装置との間は、各種の通信ラインを介して接続される。このような通信ラインは「フィールドバス」などとも称される。このようなフィールドバスでは、入出力データの更新タイミングと制御プログラムの実行タイミングとの同期を取り易くするために、予め定められた周期で通信可能（すなわち、リアルタイム通信可能）な通信方式が採用される。このようなフィールドバスとして利用される通信方式の一つとして、イーサネット（登録商標）をベースとするＥｔｈｅｒＣＡＴ（登録商標）が知られている（非特許文献１など参照）。【０００６】
一般的なリモートＩＯ装置は、複数の入力ユニットおよび出力ユニットで構成されている場合が多い。このような場合、複数の入力ユニットおよび出力ユニットは、リモートＩＯ装置の内部バスを介して通信を行うことになる。このように、リモートＩＯ装置は、フィールドバスに接続されるとともに、内部バスを内蔵する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｍａｒｔｉｎ  Ｒｏｓｔａｎ，ＥｔｈｅｒＣＡＴ  Ｔｅｃｈｎｏｌｏｇｙ  Ｇｒｏｕｐ，“ＥｔｈｅｒＣＡＴ：Ｅｔｈｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ａｕｔｏｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ”，［ｏｎｌｉｎｅ］，２００９年４月２４日，  ［平成２４年２月２９日検索］，インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｅｔｈｅｒｃａｔ．ｏｒｇ／ｐｄｆ／ｊａｐａｎｅｓｅ／ＥｔｈｅｒＣＡＴ＿Ｉｎｔｒｏｄｕｃｔｉｏｎ＿０９０４＿ＪＰＮ．ｐｄｆ〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のような制御システムにおいては、フィールドバスを介してメイン処理装置ユニットなどとの間でデータが更新される周期と、これらの入力ユニットおよび出力ユニットのデータが内部的に更新される周期とは必ずしも一致しない。そのため、データ更新のタイミングが遅くなる場合があった。【０００９】
また、上述したような単一の情報処理装置が異なる複数の通信ラインを利用可能になっている構成においても、同様の課題があった。【００１０】
複数の通信ラインを含む構成において、装置間のデータ更新をより適切に行うことができる構成が望まれる。
【課題を解決するための手段】
【００１１】
本発明のある局面によれば、制御システムの少なくとも一部を構成する制御装置が提供される。制御装置は、第１の通信ラインに接続されるマスター制御部と、マスター制御部と第２の通信ラインを介して接続される少なくとも１つのスレーブ制御部とを含む。マスター制御部は、第１の通信ラインを介して予め定められた制御周期毎に他の装置との間でデータを送受信するための第１の通信部と、第２の通信ラインを介して制御周期より短い時間内でスレーブ制御部との間でデータを送受信するための第２の通信部と、第１の通信ラインを介して先行のデータを受信した後、次の制御周期に対応する後続のデータが到来する前に、第２の通信ラインを介してスレーブ制御部との間でデータを更新するための更新部とを含む。【００１２】
好ましくは、スレーブ制御部は、外部入力される信号の状態値を収集するための入力部を含み、更新部は、更新処理として、入力部に、新たに状態値を収集させるとともに、収集された状態値をマスター制御部へ送信させる。【００１３】
さらに好ましくは、更新部は、収集された状態値のマスター制御部への送信を複数回指示する。【００１４】
好ましくは、更新部は、後続のデータが到来するとされている時点を基準とした予め定められた時間だけ前の時点から、入力部についての更新処理を開始する。【００１５】
好ましくは、スレーブ制御部は、指定された状態値の信号を出力するための出力部を含み、更新部は、更新処理として、第１の通信ラインを介して受信したデータの少なくとも一部に従って、出力部が出力する信号を更新する。【００１６】
さらに好ましくは、更新部は、出力部が出力する信号を更新するための指令を複数回送信する。【００１７】
さらに好ましくは、マスター制御部は、第１の通信ラインを伝送するデータを格納するための第１のバッファメモリと、第２の通信ラインを伝送するデータを格納するための第２のバッファメモリと、第１のバッファメモリと第２のバッファメモリとの間のデータ転送を制御するための転送回路とを含む。更新部は、入力部で収集された状態値の第２のバッファメモリへの格納、および引き続く第２のバッファメモリから第１のバッファメモリへのデータ転送が、後続のデータが到来する前に完了するように、入力部についての更新処理を開始する。【００１８】
さらに好ましくは、更新部は、先行のデータの受信、および引き続く第１のバッファメモリから第２のバッファメモリへの当該データの転送が完了した後に、出力部についての更新処理を開始する。【００１９】
さらに好ましくは、更新部は、第１のバッファメモリから第２のバッファメモリへの先行のデータの転送と並行して、入力部についての更新処理を行うとともに、第２のバッファメモリから第１のバッファメモリへの入力部で収集された状態値の転送と並行して、出力部についての更新処理を行う。【００２０】
好ましくは、マスター制御部は、第１の通信ラインを介して接続される他の装置との間で共通のタイマを有しており、更新部は、タイマで計時される値に基づいて、更新処理の開始タイミングを決定する。【００２１】
本発明の別の局面によれば、通信システムの少なくとも一部を構成する情報処理装置が提供される。情報処理装置は、第１の通信ラインに接続されるマスター部と、マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含む。マスター部は、第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するための第１の通信部と、第２の通信ラインを介して周期より短い時間内でスレーブ部との間でデータを送受信するための第２の通信部と、第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、第２の通信ラインを介してスレーブ部との間でデータを更新するための更新部とを含む。【００２２】
本発明のさらに別の局面によれば、第１の通信ラインに接続されるマスター制御部と、マスター制御部と第２の通信ラインを介して接続される少なくとも１つのスレーブ制御部とを含み、制御システムの少なくとも一部を構成する制御装置、における制御方法が提供される。制御方法は、マスター制御部において、第１の通信ラインを介して予め定められた制御周期毎に他の装置との間でデータを送受信するステップと、第２の通信ラインを介して制御周期より短い時間内でスレーブ制御部との間でデータを送受信するステップと、第１の通信ラインを介して先行のデータを受信した後、次の制御周期に対応する後続のデータが到来する前に、第２の通信ラインを介してスレーブ制御部との間でデータを更新するステップとを含む。【００２３】
本発明のさらに別の局面によれば、コンピュータで上記の制御方法を実現するためのプログラムおよび当該プログラムを格納したコンピュータ読取可能な記録媒体が提供される。【００２４】
本発明のさらに別の局面によれば、第１の通信ラインに接続されるマスター部と、マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含み、通信システムの少なくとも一部を構成する情報処理装置、における制御方法が提供される。制御方法は、マスター部において、第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信するステップと、第２の通信ラインを介して周期より短い時間内でスレーブ部との間でデータを送受信するステップと、第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、第２の通信ラインを介してスレーブ部との間でデータを更新するステップとを含む。【００２５】
本発明のさらに別の局面によれば、コンピュータで上記の制御方法を実現するためのプログラムおよび当該プログラムを格納したコンピュータ読取可能な記録媒体が提供される。
【発明の効果】
【００２６】
本発明によれば、複数の通信ラインを含む構成において、装置間のデータ更新をより適切に行うことができる。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態の概要を説明するための図である。
【図２】本実施の形態に係る情報処理装置における処理を説明するためのタイムチャートである。
【図３】実施の形態１〜３に係るＰＬＣシステムの全体構成を示す模式図である。
【図４】実施の形態１〜３に係るＰＬＣシステムにおけるデータ更新の手順を説明するための図である。
【図５】実施の形態１〜３に係るリモートＩＯ装置のハードウェア構成を示す模式図である。
【図６】実施の形態１〜３に係るリモートＩＯ装置におけるＯＵＴリフレッシュの動作の一例を示すタイムチャートである。
【図７】実施の形態１〜３に係るリモートＩＯ装置におけるＩＮリフレッシュの動作の一例を示すタイムチャートである。
【図８】実施の形態１に係るリモートＩＯ装置におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。
【図９】実施の形態２に係るリモートＩＯ装置におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。
【図１０】図９に示すＯＵＴリフレッシュ／ＩＮリフレッシュの動作における再送限界を示すタイムチャートである。
【図１１】実施の形態３に係るリモートＩＯ装置におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。
【図１２】実施の形態３の変形例に係るリモートＩＯ装置におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。
【図１３】図１２に示すＯＵＴリフレッシュ／ＩＮリフレッシュの動作における再送限界を示すタイムチャートである。
【図１４】実施の形態４に係る通信システムの全体構成を示す模式図である。
【図１５】実施の形態４の変形例に係る通信システムの全体構成を示す模式図である。
【発明を実施するための形態】
【００２８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２９】
＜Ａ．概要＞
まず、本発明の実施の形態に係る情報処理装置の概要について説明する。図１は、本実施の形態の概要を説明するための図である。
【００３０】
図１には、３つの情報処理装置（情報処理装置Ａ，Ｂ，Ｃ）を含む通信システムの構成例を示す。情報処理装置は、任意のコンピュータであってもよい。情報処理装置の間は、第１の通信ラインを介して接続されている。すなわち、情報処理装置Ａ，Ｂ，Ｃの各々は、通信システムの少なくとも一部を構成する。
【００３１】
より具体的には、情報処理装置Ａは、第１の通信ラインに接続されるマスター部と、マスター部と第２の通信ラインを介して接続される少なくとも１つのスレーブ部とを含む。マスター部は、第１の通信ラインを介して他の装置との間でデータの遣り取りを行うとともに、スレーブ部との間で第２の通信ラインを介してデータの遣り取りも行う。これらの機能に関して、マスター部は、第１の通信部と、第２の通信部と、更新部とを含む。
【００３２】
第１の通信部は、第１の通信ラインを介して予め定められた周期毎に他の装置との間でデータを送受信する。すなわち、第１の通信部は、他の情報処理装置（図１の例では、情報処理装置Ｃ）や図示しない各種装置との間で、周期Ｔ１毎にデータを遣り取りする。
【００３３】
第２の通信部は、第２の通信ラインを介して周期Ｔ１より短い時間（図１の例では、処理時間Ｔ２（Ｔ２＜Ｔ１））内でスレーブ部との間でデータを送受信する。更新部は、第１の通信ラインを介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、第２の通信ラインを介してスレーブ部との間でデータを更新する。
【００３４】
すなわち、第２の通信部は、マスター部が他の装置との間でデータを送受信する周期より短い時間内に、スレーブ部との間のデータの送受信を完了する。更新部は、マスター部があるタイミングで他の装置との間でデータを送受信し、次のタイミングが到来する前に、スレーブ部との間でのデータの送受信を完了する。
【００３５】
図２は、本実施の形態に係る情報処理装置における処理を説明するためのタイムチャートである。図２を参照して、情報処理装置の第１の通信部は、他の装置（情報処理装置ＢまたはＣ）との間で周期Ｔ１毎にデータ送受信を行う。このデータ送受信は、他の装置からのデータ受信および他の装置へのデータ送信の少なくとも一方を含む。すなわち、第１の通信部では、他の装置からのデータ受信のみ、または、他の装置へのデータ送信のみが実行される場合もある。
【００３６】
第１の通信部によってデータが受信される場合には、その受信データは、更新部を介して第２の通信部へ与えられる。第２の通信部は、第１の通信部によるデータ送受信の次のタイミングが到来する前に、スレーブ部との間のデータ送受信を完了する。すなわち、第２の通信部は、周期Ｔ１より短い処理時間Ｔ２で、スレーブ部との間のデータ送受信を完了させる。
【００３７】
この第２の通信部によるデータ送受信は、スレーブ部からのデータ受信およびスレーブ部へのデータ送信の少なくとも一方を含む。すなわち、第２の通信部では、スレーブ部からのデータ受信のみ、または、スレーブ部へのデータ送信のみが実行される場合もある。更新部を介して受信データが与えられる場合には、第２の通信部は、その受信データを対象のスレーブ部へ送信する。
【００３８】
また、スレーブ部からデータを受信した場合には、その受信したデータは、新データとして更新部を介して第１の通信部へ与えられる。第１の通信部は、第２の通信部を介して与えられたスレーブ部からの新データを次の周期において、他の装置へ送信する。
【００３９】
このような構成を採用することで、他の装置から情報処理装置へ送信されたデータは、周期Ｔ１より小さい遅れ時間内にスレーブ部へ与えられる。あるタイミングにおいて第１の通信部から送信されるデータには、その直前のタイミング以降に、スレーブ部にて取得されたデータを反映させることができる。
【００４０】
このような処理によって、第１の通信部が次のタイミングにおいて他の装置との間で遣り取りするデータを最新のものに更新しておくことができる。よって、装置間のデータ更新をより適切に行うことができる。また、スレーブ部に対しても、より少ない遅れ時間でデータを与えることができる。
【００４１】
他の情報処理装置ＢおよびＣについても、同様の処理を行うような構成を採用してもよいし、情報処理装置Ａのみが上述したような構成を採用してもよい。このような情報処理装置における機能および処理は、コンピュータである情報処理装置がプログラムを実行することで実現することもできる。このようなプログラムは、任意のコンピュータ読取可能な記録媒体に格納されてコンピュータにインストールされる。コンピュータ読取可能な記録媒体としては、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）といった光学的な記録媒体、フラッシュメモリなどの半導体の記録媒体、フレキシブルディスクなどの磁気的な記録媒体などを用いることができる。さらに、ネットワークを介してプログラムを配信するような構成を採用してもよい。
【００４２】
本実施の形態に係るプログラムとしては、機能や処理の実現に必要なすべての命令群などが含まれている態様に加えて、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が提供するモジュールやライブラリを利用する態様も含み得る。この場合、コンピュータ読取可能な記録媒体に格納されるプログラムは、ＯＳが提供するモジュールやライブラリなどを含まないことになるが、このような場合であっても、本発明に係るプログラムに含まれ得る。
【００４３】
以下、より具体的な実装例について説明する。実施の形態１〜３およびそれらの変形例においては、通信システムの一例として、機械や設備などの動作を制御するための制御システムを取り上げる。より具体的には、ＰＬＣを中心とする制御システムについて例示する。但し、このような制御システムとしては、ＰＬＣだけではなく、各種の産業用コンピュータを中心として構成を採用することもできる。さらに、技術に進展によって、新たな処理装置（演算装置）が開発された場合には、そのような新たな処理装置を採用することもできる。実施の形態４およびその変形例においては、汎用的なコンピュータ（典型的には、パーソナルコンピュータ）を含む通信システムを取り上げる。
【００４４】
実施の形態１〜３において説明する情報処理装置の一例である制御装置は、基本的には、少なくとも１つの出力機能を有する。この出力機能は、他の装置などへ信号を出力する機能である。制御装置の典型例であるＰＬＣは、原則として、入力機能および出力機能の両方を有している。この入力機能は、他の装置などから信号を受取る機能である。但し、制御装置としては、入力機能を有さないものも存在する。
【００４５】
一方、情報処理装置という概念において、入力機能および出力機能の存在は無関係であるので、入力機能および出力機能のいずれも有さない装置であっても、情報処理装置に含まれ得る。但し、情報処理装置のうち、入力機能のみを有しており、出力機能を有していないものは、制御装置には分類されないであろう。
【００４６】
＜Ｂ．ＰＬＣシステムの全体構成＞
まず、実施の形態１〜３に係るＰＬＣシステムの全体構成について説明する。図３は、本発明の実施の形態１〜３に係るＰＬＣシステム１の全体構成を示す模式図である。
【００４７】
図３を参照して、ＰＬＣシステム１は、メイン処理装置２と、１つ以上のリモートＩＯ装置３とを含む。メイン処理装置２は、第１の通信ラインであるフィールドバス４を介して、リモートＩＯ装置３と接続されている。リモートＩＯ装置３の各々は、フィールドバス４に接続される通信モジュール１２を有している。
【００４８】
メイン処理装置２は、制御プログラムを実行し、外部のスイッチやセンサからの入力信号に応答して、外部のリレーやアクチュエータへの出力信号を生成する。
【００４９】
より具体的には、メイン処理装置２は、電源ユニット４０と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）ユニット５０と、ＩＯユニット６０とを含む。ＣＰＵユニット５０およびＩＯユニット６０は、内部バス７０を介して互いにデータ通信可能に接続されている。
【００５０】
電源ユニット４０は、ＣＰＵユニット５０およびＩＯユニット６０へ適切な電圧の電源を供給する。ＣＰＵユニット５０は、制御プログラムを実行するためのプロセッサおよびメインメモリを含む演算主体である。ＩＯユニット６０は、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当する。
【００５１】
ＣＰＵユニット５０は、フィールドバス４を介して、リモートＩＯ装置３との間でデータを遣り取りするための通信モジュール５２を含む。フィールドバス４は、予め定められた制御周期で通信可能（すなわち、リアルタイム通信可能）な通信方式が採用される。すなわち、フィールドバス４では、予め定められた制御周期毎に、フィールドバス４に接続されているすべての装置の間でデータが更新されるとする。言い換えれば、実施の形態１〜３に係るフィールドバス４は、定時性が確保されている。
【００５２】
このようなフィールドバス４としては、典型的には、各種の産業用のイーサネット（登録商標）を用いることができる。産業用のイーサネット（登録商標）としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、ＰＲＯＦＩＮＥＴ（登録商標）、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用のイーサネット（登録商標）以外のフィールドネットワークを用いてもよい。例えば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ／ＩＰ（登録商標）などを用いてもよい。以下の説明では、フィールドバス４としてＥｔｈｅｒＣＡＴ（登録商標）を想定している。
【００５３】
リモートＩＯ装置３は、ＰＬＣシステム１の少なくとも一部を構成する制御装置である。リモートＩＯ装置３は、外部のスイッチやセンサからの入力信号を受信し、フィールドバス４を介して、その受信した入力信号をメイン処理装置２へ送信するとともに、メイン処理装置２からフィールドバス４を介して受信した信号を、外部のリレーやアクチュエータへ出力する。
【００５４】
より具体的には、リモートＩＯ装置３は、マスターユニット１０と、１つ以上のスレーブユニット２０とを含む。マスターユニット１０およびスレーブユニット２０は、内部バス３０を介して互いにデータ通信可能に接続されている。すなわち、マスターユニット１０は、第１の通信ラインであるフィールドバス４に接続されている。１つ以上のスレーブユニット２０は、マスターユニット１０と第２の通信ラインである内部バス３０を介して接続される。
【００５５】
マスターユニット１０は、主として、スレーブユニット２０の動作（ＩＯデータの更新タイミングの制御など）を制御するとともに、メイン処理装置２との間のデータ通信を制御する。マスターユニット１０の詳細については、後述する。
【００５６】
スレーブユニット２０は、マスターユニット１０と内部バス３０を介してデータ通信する機能に加えて、一般的な入出力処理の機能を有する。典型的には、スレーブユニット２０は、オン／オフといった２値化されたデータを入力／出力する。例えば、スレーブユニット２０は、検出センサから、何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、スレーブユニット２０は、リレーやアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを与える。
【００５７】
上述の説明では、スレーブユニット２０の各々が入出力処理を行う構成について例示したが、入力処理に特化した構成（入力ユニット）または出力処理に特化した構成（出力ユニット）であってもよい。
【００５８】
＜Ｃ．データ更新の概要＞
次に、フィールドバス４およびリモートＩＯ装置３の内部バス３０を介したデータ更新について説明する。
【００５９】
図４は、実施の形態１〜３に係るＰＬＣシステム１におけるデータ更新の手順を説明するための図である。ＰＬＣシステム１のデータ更新は、リモートＩＯ装置３のスレーブユニット２０に入力される外部のスイッチやセンサからの信号（以下「ＩＮデータ」とも称す。）をメイン処理装置２へ送信する処理、および、メイン処理装置２での制御プログラムの実行によって算出された値（以下「ＯＵＴデータ」とも称す。）をスレーブユニット２０から出力させる処理を含む。
【００６０】
ＩＮデータおよびＯＵＴデータの更新処理を、以下「ＩＯリフレッシュ処理」とも総称する。
【００６１】
図４を参照して、マスターユニット１０は、フィールドバス４上を流れるデータ（以下「フィールドバスフレーム」とも称す。）をそれぞれ受信および送信する受信部１１２および送信部１１４、ならびに、受信部１１２および送信部１１４を制御するフィールドバス制御部１１０を含む。さらに、マスターユニット１０は、内部バス３０でのデータ伝送を制御するための内部バス制御部１３０を含む。フィールドバス制御部１１０および内部バス制御部１３０は、プロセッサ１００からの指示に従って動作する。
【００６２】
実施の形態１〜３においては、メイン処理装置２がフィールドバスフレームをフィールドバス４上に周期的に送出する。そして、リモートＩＯ装置３の各々は、メイン処理装置２からのフィールドバスフレームを受信すると、そのフレーム内の自装置宛のデータ（ＯＵＴデータ）を読取るとともに、自装置が送信すべきデータ（ＩＮデータ）を当該フレーム内の予め割当てられた領域へ書込んで、次段の装置へ再送出（フォワード）する。
【００６３】
すなわち、マスターユニット１０において、あるフィールドバスフレームを受信する前に、最新のＩＮデータを取得しておくことが好ましい。これは、ＩＮデータのメイン処理装置２への取込遅延の時間を少なくするためである。また、マスターユニット１０において、あるフィールドバスフレームに含まれるＯＵＴデータについては、次のフィールドバスフレームが到来する前に、実際に出力しておくことが好ましい。
【００６４】
図４には、このようなＩＯリフレッシュ処理の好ましい手順を示している。
具体的には、まず、マスターユニット１０のフィールドバス制御部１１０は、フィールドバスフレームを受信してＯＵＴデータを取得するとともに、ＩＮデータをフィールドバスフレームに書込みつつ、フォワード動作を行う（手順（１））。続いて、プロセッサ１００は、フィールドバス制御部１１０の受信バッファから取得したＯＵＴデータを読出して、内部バス制御部１３０の送信バッファ（後述する）に格納する（手順（２））。
【００６５】
続いて、プロセッサ１００がフィールドバス制御部１１０の転送テーブルを起動すると、フィールドバス制御部１１０は、ＯＵＴデータを含むフレーム（以下「ＯＵＴフレーム」とも称す。）を内部バス３０上に送出して、ＯＵＴリフレッシュを実行する（手順（３））。ＯＵＴフレームを受信したスレーブユニット２０の各々は、ＯＵＴデータのうち自ユニットに割当てられたデータに従って、信号出力を更新する。
【００６６】
続いて、プロセッサ１００がフィールドバス制御部１１０の転送テーブルを起動すると、フィールドバス制御部１１０は、ＩＮデータを要求するコマンドを含むフレーム（以下「ＩＮフレーム」とも称す。）を内部バス３０上に送出して、ＩＮリフレッシュを実行する（手順（４））。ＩＮフレームを受信したスレーブユニット２０の各々は、外部からの入力されている信号を更新し、その更新後のＩＮデータをマスターユニット１０へ送出する。各スレーブユニット２０から送出されたＩＮデータは、内部バス制御部１３０の受信バッファ１６４に格納される。
【００６７】
ＩＮリフレッシュの後、プロセッサ１００は、内部バス制御部１３０の受信バッファからＩＮデータを読出して、フィールドバス制御部１１０の送信バッファに格納する（手順（５））。そして、新たなフィールドバスフレームが到来すると、上述の手順（１）の処理を繰り返し実行する。
【００６８】
実施の形態１〜３に係るリモートＩＯ装置３は、図４に示すＩＯリフレッシュ処理に含まれる、フィールドバスフレームの制御周期を考慮して、ＩＮリフレッシュおよびＯＵＴリフレッシュの実行タイミングを適切化する。これにより、メイン処理装置２における制御プログラムの実行に必要なＩＮデータの更新の遅延量、および制御プログラムの実行により算出されるＯＵＴデータの出力の遅延量を可能な限り低減する。
【００６９】
＜Ｄ．リモートＩＯ装置３のハードウェア構成＞
次に、リモートＩＯ装置３のハードウェア構成について説明する。図５は、実施の形態１〜３に係るリモートＩＯ装置３のハードウェア構成を示す模式図である。リモートＩＯ装置３を構成するマスターユニット１０およびスレーブユニット２０の各コンポーネントは、処理高速化の観点から、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのハードウェアなどを実現することが好ましい。但し、一部または全部のコンポーネントをプロセッサがプログラムを実行することによって実現してもよい。
【００７０】
《ｄ１：マスターユニット１０の構成》
図５を参照して、リモートＩＯ装置３のマスターユニット１０は、プロセッサ１００と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００７１】
受信部１１２は、メイン処理装置２からフィールドバス４を介して送信されるフィールドバスフレームを受信してデータ列へ復号した上で、フィールドバス制御部１１０へ出力する。送信部１１４は、フィールドバス制御部１１０から出力されるデータ列からフィールドバスフレームを構成してフィールドバス４を介して再送出（フォワード）する。
【００７２】
フィールドバス制御部１１０は、受信部１１２および送信部１１４と協働して、フィールドバス４を介して予め定められた制御周期（以下「制御周期Ｔ１」とする。）毎に他の装置（この例では、メイン処理装置２および他のリモートＩＯ装置３）との間でデータを送受信する。より具体的には、フィールドバス制御部１１０は、フィールドバス通信コントローラ１２０と、メモリコントローラ１２２と、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリ１２４と、受信バッファ１２６と、送信バッファ１２８とを含む。
【００７３】
フィールドバス通信コントローラ１２０は、メイン処理装置２からフィールドバス４を介して送信されるコマンドなどを解釈して、フィールドバス４を介した通信を実現するために必要な処理を実行する。また、フィールドバス通信コントローラ１２０は、ＦＩＦＯメモリ１２４に順次格納されるフィールドバスフレームからのデータコピー、およびフィールドバスフレームに対するデータ書込みの処理を行う。
【００７４】
メモリコントローラ１２２は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）などの機能を実現する制御回路であり、ＦＩＦＯメモリ１２４、受信バッファ１２６および送信バッファ１２８などへのデータの書込み／読出しを制御する。
【００７５】
ＦＩＦＯメモリ１２４は、フィールドバス４を介して受信されたフィールドバスフレームを一時的に格納するとともに、その格納された順序に従ってフィールドバスフレームを順次出力する。受信バッファ１２６は、ＦＩＦＯメモリ１２４に順次格納されるフィールドバスフレームに含まれるデータのうち、必要なＩＮデータを抽出して一時的に格納する。送信バッファ１２８は、ＦＩＦＯメモリ１２４に順次格納されるフィールドバスフレームのうち、自装置に割当てられた領域に書込まれるべきＯＵＴデータを一時的に格納する。すなわち、ＦＩＦＯメモリ１２４、受信バッファ１２６および送信バッファ１２８は、フィールドバス４を伝送するデータを格納するためのバッファメモリに相当する。
【００７６】
プロセッサ１００は、フィールドバス制御部１１０および内部バス制御部１３０に対して指示を与えるとともに、フィールドバス制御部１１０と内部バス制御部１３０との間のデータ転送などを制御する。すなわち、プロセッサ１００は、フィールドバス制御部１１０のバッファメモリと内部バス制御部１３０のバッファメモリとの間でデータ転送を制御するための転送回路としても機能する。
【００７７】
マスターユニット１０とスレーブユニット２０との間の内部バス３０は、下りリンク（Ｄｏｗｎ  Ｌｉｎｋ）および上りリンク（Ｕｐ  Ｌｉｎｋ）が対になった通信チャネルで構成される。図５に示す構成例においては、この通信チャネルが２回線分（１ｃｈおよび２ｃｈ）設けられている例を示すが、１回線であってもよいし、さらに多くの回線が用意されていてもよい。
【００７８】
内部バス制御部１３０は、フィールドバス４における制御周期（制御周期Ｔ１）より短い時間内で、内部バス３０を介してスレーブユニット２０との間でデータを送受信する。例えば、制御周期Ｔ１は１２５μｓｅｃに設定され、内部バス３０を介したマスターユニット１０とスレーブユニット２０との間でのデータ送信に要する時間は数〜１０数μｓｅｃである。
【００７９】
より具体的には、内部バス制御部１３０は、内部バス通信コントローラ１３２と、送信回路１４２，１５２と、受信回路１４４，１５４と、記憶部１６０とを含む。
【００８０】
内部バス通信コントローラ１３２は、内部バス３０を介したデータ通信を主体的に（すなわち、マスターとして）管理する。例えば、内部バス通信コントローラ１３２は、プロセッサ１００からの指示に従って、ＩＮフレームまたはＯＵＴフレームを内部バス３０上に送出して、ＩＮリフレッシュまたはＯＵＴリフレッシュを実行する。このＩＮフレームまたはＯＵＴフレームは、特定のスレーブユニット２０に対して個別に送出してもよいし、内部バス３０に接続されているすべてのスレーブユニット２０に対して一斉に送出してもよい。
【００８１】
送信回路１４２は、内部バス通信コントローラ１３２からの指示に従って、内部バス３０の下りリンク（１ｃｈ）用のフレームを生成して送出する。受信回路１４４は、内部バス３０の上りリンク（１ｃｈ）上を流れるフレームを受信して、内部バス通信コントローラ１３２へ出力する。送信回路１５２および受信回路１５４は、それぞれ内部バス３０の下りリンク（２ｃｈ）および上りリンク（２ｃｈ）について、同様の処理を行う。
【００８２】
記憶部１６０は、内部バス３０を伝送するデータを格納するためのバッファメモリに相当する。より具体的には、記憶部１６０は、共有メモリ１６２と、受信バッファ１６４と、送信バッファ１６６とを含む。共有メモリ１６２は、フィールドバス制御部１１０と内部バス制御部１３０との間で遣り取りされるデータを一時的に格納する。受信バッファ１６４は、内部バス３０を介してスレーブユニット２０から受信したＩＮデータを一時的に格納する。送信バッファ１６６は、フィールドバス制御部１１０で受信されたフィールドバスフレームに含まれるＯＵＴデータを一時的に格納する。
【００８３】
《ｄ２：スレーブユニット２０の構成》
図５を参照して、リモートＩＯ装置３のスレーブユニット２０の各々は、ＩＯモジュール２００と、ＩＯメモリ２１０とを含む。さらに、スレーブユニット２０の各々は、内部バス３０の１ｃｈに関連付けられた、通信コントローラ２２０と、受信回路２２２，２３２と、送信回路２２４，２３４とを含む。また、スレーブユニット２０の各々は、内部バス３０の２ｃｈに関連付けられた、通信コントローラ２４０と、受信回路２４２，２５２と、送信回路２４４，２４４とを含む。
【００８４】
ＩＯモジュール２００は、外部のスイッチやセンサからの入力信号を受信し、その値をＩＯメモリ２１０に書込むとともに、ＩＯメモリ２１０の対応する領域に書込まれた値に従って、その信号を外部のリレーやアクチュエータへ出力する。すなわち、ＩＯモジュール２００は、外部入力される信号の状態値（ＩＮデータ）を収集するための入力部、および、指定された状態値（ＯＵＴデータ）の信号を出力するための出力部の少なくとも一方を含む。
【００８５】
受信回路２２２は、内部バス３０の下りリンク（１ｃｈ）上を流れるフレームを受信してデータ列へ復号した上で、送信回路２２４および通信コントローラ２２０へ出力する。送信回路２２４は、通信コントローラ２２０からの指示に従って、受信回路２２２からのデータ列から内部バス３０の下りリンク（１ｃｈ）上を流れるフレームを再生成して再送出（フォワード）する。
【００８６】
受信回路２３２は、内部バス３０の上りリンク（１ｃｈ）上を流れるフレームを受信してデータ列へ復号した上で、送信回路２３４および通信コントローラ２２０へ出力する。送信回路２３４は、通信コントローラ２２０からの指示に従って、受信回路２３２からのデータ列から内部バス３０の上りリンク（１ｃｈ）上を流れるフレームを再生成して再送出（フォワード）する。
【００８７】
通信コントローラ２２０は、受信回路２２２または受信回路２３２からのデータ列（フレーム）に含まれるコマンドなどを解釈して対応する処理を実行する。
【００８８】
通信コントローラ２４０、受信回路２４２，２５２、および送信回路２４４，２５４については、内部バス３０の２ｃｈについて、通信コントローラ２２０、受信回路２２２，２３２、および送信回路２２４，２３４とそれぞれ同様の処理を実行する。
【００８９】
＜Ｅ．ＯＵＴリフレッシュおよびＩＮリフレッシュ＞
次に、リモートＩＯ装置３の内部バス３０におけるＯＵＴリフレッシュおよびＩＮリフレッシュについて説明する。
【００９０】
図６は、実施の形態１〜３に係るリモートＩＯ装置３におけるＯＵＴリフレッシュの動作の一例を示すタイムチャートである。図７は、実施の形態１〜３に係るリモートＩＯ装置３におけるＩＮリフレッシュの動作の一例を示すタイムチャートである。
【００９１】
図６を参照して、ＯＵＴリフレッシュは、フィールドバスフレームの受信完了のタイミングで開始される。すなわち、フィールドバスフレームの先頭が時刻ｔ１１に到来し、時刻ｔ１２にフィールドバスフレームのすべての受信が完了したとすると、プロセッサ１００は、時刻ｔ１２から、フィールドバス制御部１１０の受信バッファ１２６に格納されているＯＵＴデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）を開始する。そして、このＯＵＴデータのコピー処理が時刻ｔ１２において完了すると、内部バス制御部１３０は、内部バス３０を介して、ＯＵＴデータを含むＯＵＴフレームのスレーブユニット２０への送出を開始する。実施の形態１〜３においては、内部バス３０はフィールドバス４に比較して、搬送周波数がより高いので、このＯＵＴフレームの送出は、フィールドバスフレームやＯＵＴデータのコピー処理に比較して短時間で終了する。
【００９２】
各スレーブユニット２０は、ＯＵＴフレームを受信すると、その受信したＯＵＴフレームに含まれるＯＵＴデータのうち、自ユニットに割当てられたＯＵＴデータを抽出し、出力する状態値を更新する。すなわち、リモートＩＯ装置３のプロセッサ１００および内部バス制御部１３０は、更新処理として、フィールドバス４を介して受信したＯＵＴデータの少なくとも一部に従って、スレーブユニット２０の出力部が出力する信号を更新する。
【００９３】
図７を参照して、後続のフィールドバスフレームに応じた、フィールドバス制御部１１０の受信バッファ１２６に格納されているＩＮデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）の開始タイミングに間に合うように、ＩＮリフレッシュが実行される。すなわち、フィールドバス４を介して先行のフィールドバスフレームを受信した後、次の制御周期に対応する後続のフィールドバスフレームが到来する前に、内部バス３０を介してスレーブユニット２０との間でＩＮデータが更新される。このように、リモートＩＯ装置３のプロセッサ１００および内部バス制御部１３０は、更新処理として、スレーブユニット２０の入力部に、新たに状態値を収集させるとともに、収集された状態値（ＩＮデータ）をマスターユニット１０へ送信させる。
【００９４】
具体的な方法としては、プロセッサ１００が、次の制御周期に対応する後続のフィールドバスフレームが到来するタイミングを基準にしてＩＮリフレッシュを開始すべきタイミングを予め決定し、その決定したタイミングで、内部バス制御部１３０を起動することで、ＩＮリフレッシュを開始してもよい。
【００９５】
あるいは、内部バス制御部１３０のタイマ起動機能を用いて、プロセッサ１００が内部バス制御部１３０に対して起動時刻（すなわち、ＩＮリフレッシュの開始タイミング）を事前に通知してもよい。図７には、タイマ起動機能を用いた例を示す。このようなタイマ起動機能を用いることで、起動時刻をより正確に設定することができる。
【００９６】
より具体的には、プロセッサ１００は、時刻ｔ２１において、ＩＮリフレッシュの開始タイミングを管理するタイマを内部バス制御部１３０に起動させる。タイマの起動タイミングは、ＩＮリフレッシュを開始すべき時刻までのいずれかであればよい。図７の例では、時刻ｔ２２にＩＮリフレッシュを開始すべきことを指定してタイマが起動されている。ＩＮリフレッシュは、内部バス制御部１３０の受信バッファ１６４に格納されているＩＮデータのフィールドバス制御部１１０の送信バッファ１２８へのコピー（転送）の開始前（時刻ｔ２３）までに完了するようにタイミングが指定される。
【００９７】
そして、時刻ｔ２４において後続のフィールドバスフレームが到来すると、フィールドバス制御部１１０の送信バッファ１２８に格納されている更新後のＩＮデータが当該フィールドバスフレームに書込まれて、次段の装置へ再送出（フォワード）される。
【００９８】
このように、リモートＩＯ装置３のプロセッサ１００および内部バス制御部１３０は、フィールドバス４を介して先行のフィールドバスフレームを受信した後、後続のフィールドバスフレームが到来する前に、内部バス３０を介してスレーブユニット２０との間でＩＮデータを更新する。
【００９９】
＜Ｆ．実施の形態１＞
実施の形態１として、内部バス３０の帯域が相対的に狭く、かつノイズの影響を無視できるような構成に適した形態について例示する。
【０１００】
《ｆ１：概要》
図８は、実施の形態１に係るリモートＩＯ装置３におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。
【０１０１】
図８に示すタイムチャートにおいて、マスターユニット１０は、フィールドバスフレームの受信完了後に、内部バス３０を介したＯＵＴデータの送出を開始して、ＯＵＴリフレッシュを実行する。一方、スレーブユニット２０からのＩＮデータの収集は、（後続のフィールドバスフレーム受信時にＩＮデータを書込むための）ＩＮデータのコピー処理の開始に間に合うように開始される。すなわち、マスターユニット１０は、内部バス３０上でのＩＮフレームの送出開始をタイマ起動する。
【０１０２】
より具体的には、時刻ｔ３１において、先行のフィールドバスフレームの先頭が到来したとする。時刻ｔ３２において、この先行のフィールドバスフレームの受信が完了したとする。すると、時刻ｔ３２において、プロセッサ１００は、フィールドバス制御部１１０の受信バッファ１２６に格納されているＯＵＴデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）を開始する。そして、時刻ｔ３３において、このＯＵＴデータのコピー処理が完了すると、続いて、内部バス制御部１３０は、ＯＵＴデータを含むＯＵＴフレームを内部バス３０上に送出して、ＯＵＴリフレッシュを実行する。
【０１０３】
すなわち、プロセッサ１００および内部バス制御部１３０は、先行のフィールドバスフレームの受信、および引き続くフィールドバス制御部１１０の受信バッファ１２６から内部バス制御部１３０の送信バッファ１６６へのフィールドバスフレーム（より正確には、その中に含まれるＯＵＴデータ）の転送が完了した後に、スレーブユニット２０の出力部についての更新処理（すなわち、ＯＵＴリフレッシュ）を開始する。
【０１０４】
このＯＵＴリフレッシュは、時刻ｔ３４において完了したとする。その後、時刻ｔ３５において、プロセッサ１００は、内部バス制御部１３０のタイマ起動機能を用いて、ＩＮリフレッシュの開始タイミングを決定するタイマ（ＩＮリフレッシュタイマ）を起動する。時刻ｔ３６においてＩＮリフレッシュタイマがタイムアップすると、内部バス制御部１３０は、ＩＮフレームを内部バス３０上に送出して、ＩＮリフレッシュを実行する。各スレーブユニット２０は、内部バス３０を介してＩＮフレームを受信すると、ＩＯモジュール２００をリフレッシュし、それによって更新されるＩＯメモリ２１０の状態値（ＩＮデータ）を、内部バス３０を介してマスターユニット１０へ送出する。
【０１０５】
時刻ｔ３７において、プロセッサ１００は、内部バス制御部１３０の受信バッファ１６４に格納されているＩＮデータのフィールドバス制御部１１０の送信バッファ１２８へのコピー（転送）を開始する。実施の形態１においては、ＩＮリフレッシュは時刻ｔ３７までに完了するように制御される。そして、時刻ｔ３８において、後続のフィールドバスフレームが到来すると、フィールドバス制御部１１０は、当該到来したフィールドバスフレームにＩＮデータを書込む。
【０１０６】
時刻ｔ３１から時刻ｔ３８の間は、フィールドバス４の制御周期Ｔ１に相当する。フィールドバス４の制御周期Ｔ１は予め定められている（典型的には、メイン処理装置２から通知されている）ため、時刻ｔ３１を特定できれば、時刻ｔ３８、すなわち後続のフィールドバスフレームの到来タイミングを特定できる。そのため、プロセッサ１００は、これらのタイミング情報に基づいて、ＩＮリフレッシュの開始を設定するタイマの起動タイミング（図８では、時刻ｔ３５）、およびそのタイマ値を決定できる。すなわち、内部バス制御部１３０は、次の制御周期に対応する後続のフィールドバスフレームが到来するとされている時点（図８では、時刻ｔ３８）を基準とした予め定められた時間だけ前の時点（時刻ｔ３６）から、スレーブユニット２０の入力部についての更新処理を開始する。
【０１０７】
言い換えれば、プロセッサ１００は、スレーブユニット２０の入力部で収集された状態値（ＩＮデータ）の内部バス制御部１３０の受信バッファ１６４への格納、および引き続く内部バス制御部１３０からフィールドバス制御部１１０の送信バッファ１２８へのデータ転送が、後続のフィールドバスフレームが到来する前に完了するように、スレーブユニット２０の入力部についての更新処理（ＩＮリフレッシュ）を開始する。
【０１０８】
《ｆ２：タイミング決定》
フィールドバス４において定時性を担保するため、フィールドバス４に接続されている各装置に対して基準タイミングがメイン処理装置２から通知されている場合には、その基準タイミングに基づいて、ＩＮリフレッシュタイマを開始する時刻（図８では、時刻ｔ３６）を特定することができる。あるいは、先行のフィールドバス４を受信したタイミング（図８では、時刻ｔ３１）および制御周期Ｔ１に基づいて、時刻ｔ３６を決定してもよい。
【０１０９】
より具体的には、再度図３を参照して、メイン処理装置２は、フィールドバス４を介して接続されるリモートＩＯ装置３との間で共通のタイマ（通信モジュール５２内のタイマ５２ａ）を有している。このタイマは、各リモートＩＯ装置３の通信モジュール１２内のタイマ１２ａと同期されている。なお、タイマとしては、時刻を示すものではなく、予め定められた周期でカウントアップ／カウントダウンするカウンタであってもよい。
【０１１０】
そして、リモートＩＯ装置３のプロセッサ１００は、この同期されたタイマで計時される値（典型的には、カウント値）に基づいて、ＩＮリフレッシュの開始タイミングを決定する。すなわち、プロセッサ１００は、タイマに基づいて、図８に示す時刻ｔ３５および時刻ｔ３６を決定する。
【０１１１】
＜Ｇ．実施の形態２＞
実施の形態２として、上述の実施の形態１に比較して、ノイズ耐性を高めた構成に適した形態について例示する。
【０１１２】
《ｇ１：基本形》
図９は、実施の形態２に係るリモートＩＯ装置３におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。
【０１１３】
図９の（Ａ）を参照して、実施の形態２においては、ＯＵＴリフレッシュおよびＩＮリフレッシュの少なくとも一方が複数回実行される。これは、ＯＵＴフレームおよびＩＮフレームの少なくとも一方がノイズの影響などによって、正しく伝送されなかった場合を考慮したものである。スレーブユニット２０は、複数回送信されるＯＵＴフレームおよびＩＮフレームのうち、それぞれ１つを受信できれば、ＯＵＴリフレッシュおよびＩＮリフレッシュを完了できる。
【０１１４】
なお、ＯＵＴフレームおよびＩＮフレームについて、宛先のユニットが正しく受信したか否かを肯定応答／否定応答（ＡＣＫ／ＮＡＣＫ）などを用いて応答するように構成してもよい。しかしながら、実施の形態２のように、宛先の受信可否にかかわらず、ＯＵＴフレームおよびＩＮフレームを所定回数にわたって再送する方法を採用することで、より処理を簡素化できる。
【０１１５】
図９の（Ａ）には、ＯＵＴリフレッシュ（ＯＵＴフレーム）およびＩＮリフレッシュ（ＩＮフレーム）を２回ずつ再送する例を示すが、この再送回数については、予めノイズ耐性の性能を評価した上で決定してもよい。あるいは、ユーザが任意に設定してもよい。
【０１１６】
このように、実施の形態２においては、プロセッサ１００は、ＩＮフレームを再送することで、スレーブユニット２０において収集された状態値（ＩＮデータ）のマスターユニット１０への送信を複数回指示する。また、プロセッサ１００は、ＯＵＴフレームを再送することで、スレーブユニット２０の出力部が出力する信号（ＯＵＴデータ）を更新するための指令を複数回送信する。
【０１１７】
実施の形態２においては、ＩＮフレームを複数回送信するため、実施の形態１に比較して、ＩＮフレームの送出開始のタイミングをより早くする。すなわち、ＩＮリフレッシュの開始タイミングを管理するタイマの値は、再送フレームを考慮して、より早い時間に開始されるように設定される。これにより、最初のＩＮフレームではなく、後続のＩＮフレームでＩＮリフレッシュが実行されるようになった場合であっても、フィールドバス制御部１１０の受信バッファ１２６に格納されているＯＵＴデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）の開始に間に合う。すなわち、次の制御サイクルで、ＩＮデータをフィールドバスフレームに書込むことができる。
【０１１８】
《ｇ２：ノイズの影響》
次に、内部バス３０のノイズの影響について説明する。
【０１１９】
図９の（Ｂ）には、ＩＮリフレッシュを複数回実行、すなわちＩＮフレームを再送する場合に、そのＩＮリフレッシュの開始タイミングを上述の実施の形態１と同様に設定したときの例を示す。この場合には、最初のＩＮフレームでＩＮリフレッシュが完了すれば本来の処理が実行できる。すなわち、次の制御サイクルで、ＩＮデータをフィールドバスフレームに書込むことができる。しかしながら、実際にノイズが発生して２番目以降のＩＮフレームでＩＮリフレッシュが完了した場合には、さらにその次の制御サイクルで、ＩＮデータがフィールドバスフレームに書込まれることになる。すなわち、次の制御サイクルでは、既存のＩＮデータがフィールドバスフレームに書込まれることになる。
【０１２０】
そのため、内部バス３０の帯域が相対的に広くノイズの影響を受けやすい場合には、図９の（Ａ）に示すように、ＩＮリフレッシュを複数回実行するとともに、その実行開始のタイミングを早めることが好ましい。
【０１２１】
《ｇ３：再送限界》
図１０は、図９に示すＯＵＴリフレッシュ／ＩＮリフレッシュの動作における再送限界を示すタイムチャートである。図１０に示すタイムチャートにおいては、ＯＵＴリフレッシュおよびＩＮリフレッシュの再送回数を最大限まで増加させた例を示す。ＯＵＴフレームおよびＩＮフレームの再送回数の限界（すなわち、内部バス３０上でのＯＵＴフレームおよびＩＮフレームの伝送に割当てることのできる最大時間）は、以下のような式に従って算出できる。
【０１２２】
制御サイクル−（フィールドバスフレームの長さ＋ＯＵＴデータのコピーに要する時間＋ＩＮデータのコピーに要する時間）
但し、ＯＵＴフレームおよびＩＮフレームの生成に係る時間（バジェット）が生じるので、実際の再送回数の最大値は、これらのオーバヘッドを考慮して決定される。
【０１２３】
＜Ｈ．実施の形態３＞
実施の形態３として、マスターユニット１０内のＩＮデータおよびＯＵＴデータのコピー処理と、内部バス３０上のＯＵＴリフレッシュおよびＩＮリフレッシュを並行して実行する構成について例示する。
【０１２４】
《ｈ１：基本形》
図１１は、実施の形態３に係るリモートＩＯ装置３におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。図１１に示す例では、フィールドバス制御部１１０の受信バッファ１２６に格納されているＯＵＴデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）の後、続いて、内部バス制御部１３０の受信バッファ１６４に格納されているＩＮデータのフィールドバス制御部１１０の送信バッファ１２８へのコピー（転送）が実行される。そのため、このＩＮデータのコピーの開始に間に合うように、ＩＮリフレッシュの開始タイミングが決定される。
【０１２５】
より具体的には、時刻ｔ４１において、先行のフィールドバスフレームの先頭が到来し、時刻ｔ４２において、この先行のフィールドバスフレームの受信が完了したとする。すると、時刻ｔ４２において、プロセッサ１００は、フィールドバス制御部１１０の受信バッファ１２６に格納されているＯＵＴデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）を開始する。そして、時刻ｔ４３において、このＯＵＴデータのコピー処理が完了すると、続いて、プロセッサ１００は、内部バス制御部１３０の受信バッファ１６４に格納されているＩＮデータのフィールドバス制御部１１０の送信バッファ１２８へのコピー（転送）を開始する。そして、時刻ｔ４４において、次のフィールドバスフレームが到来する。
【０１２６】
このコピー動作と並行して、内部バス制御部１３０は、時刻ｔ４３において、ＯＵＴデータを含むＯＵＴフレームを内部バス３０上に送出して、ＯＵＴリフレッシュを実行する。
【０１２７】
また、プロセッサ１００は、ＯＵＴデータのコピー開始と同時に（時刻ｔ４２）、ＩＮリフレッシュの開始タイミングを管理するタイマを内部バス制御部１３０に起動させる。このとき、ＩＮデータのコピー処理の開始（時刻ｔ４３）に間に合うように、内部バス３０上でのＩＮフレームの送出開始のタイミングが決定される。
【０１２８】
このように実施の形態３においては、プロセッサ１００は、フィールドバス制御部１１０の受信バッファ１２６から内部バス制御部１３０の送信バッファ１６６へのデータ（ＯＵＴデータ）の転送と並行して、スレーブユニット２０の入力部についての更新処理（ＩＮリフレッシュ）を行う。これとともに、プロセッサ１００は、内部バス制御部１３０の受信バッファ１６４からフィールドバス制御部１１０の送信バッファ１２８へのスレーブユニット２０の入力部で収集された状態値（ＩＮデータ）の転送と並行して、スレーブユニット２０の出力部についての更新処理（ＯＵＴリフレッシュ）を行う。
【０１２９】
実施の形態３に示すような方法を採用することで、フィールドバス４における制御周期をより短くできる。すなわち、フィールドバス４における制御周期の最小値は、以下のような式に従って算出できる。
【０１３０】
制御周期の最小値＝フィールドバスフレームの長さ＋ＯＵＴデータのコピーに要する時間＋ＩＮデータのコピーに要する時間
《ｈ２：再送型》
図１１に示すＯＵＴリフレッシュ／ＩＮリフレッシュの動作に対しても、上述の図９に示すように、ＯＵＴリフレッシュおよびＩＮリフレッシュの少なくとも一方を複数回実行してもよい。
【０１３１】
図１２は、実施の形態３の変形例に係るリモートＩＯ装置３におけるＯＵＴリフレッシュ／ＩＮリフレッシュの動作の一例を示すタイムチャートである。図１２には、ＯＵＴリフレッシュ（ＯＵＴフレーム）およびＩＮリフレッシュ（ＩＮフレーム）を２回ずつ再送する例を示すが、この再送回数については、予めノイズ耐性の性能を評価した上で決定してもよい。あるいは、ユーザが任意に設定してもよい。
【０１３２】
この場合においても、図１０の場合と同様に、ＩＮフレームの送出開始のタイミングをより早くすることが好ましい。図１２に示すＩＮフレームの送出開始のタイミング（時刻ｔ４５）は、図１１に示すＩＮフレームの送出開始のタイミングより早く設定されている。すなわち、ＩＮリフレッシュの開始タイミングを管理するタイマの値は、再送フレームを考慮して、より早い時間に開始されるように設定される。これにより、最初のＩＮフレームではなく、後続のＩＮフレームでＩＮリフレッシュが実行されるようになった場合であっても、フィールドバス制御部１１０の受信バッファ１２６に格納されているＯＵＴデータの内部バス制御部１３０の送信バッファ１６６へのコピー（転送）の開始に間に合う。すなわち、次の制御サイクルで、ＩＮデータをフィールドバスフレームに書込むことができる。
【０１３３】
《ｈ３：再送限界》
図１３は、図１２に示すＯＵＴリフレッシュ／ＩＮリフレッシュの動作における再送限界を示すタイムチャートである。図１３に示すタイムチャートにおいては、ＯＵＴリフレッシュおよびＩＮリフレッシュの再送回数を最大限に増加させた例を示す。ＯＵＴフレームおよびＩＮフレームの再送回数の限界（すなわち、内部バス３０上でのＯＵＴフレームおよびＩＮフレームの伝送に割当てることのできる最大時間）は、フィールドバス４における制御周期Ｔ１と一致する。そのため、制御周期Ｔ１内で、ＯＵＴフレームおよびＩＮフレームの再送回数の最大値を決定すればよい。但し、ＯＵＴフレームおよびＩＮフレームの生成に係る時間（バジェット）が生じるので、実際の再送回数の最大値は、これらのオーバヘッドを考慮して決定される。
【０１３４】
＜Ｉ．実施の形態１〜３の変形例＞
上述の実施の形態においては、マスターユニット１０のプロセッサ１００がＩＮリフレッシュの開始タイミングを都度通知する構成について例示したが、スレーブユニット２０の各々が自律的にＩＮデータリフレッシュを行うような構成を採用してもよい。
【０１３５】
例えば、メイン処理装置２が有するフィールドバス４の通信に係るタイマをマスターユニット１０およびスレーブユニット２０の間で共有しているような場合には、フィールドバスフレームの到来タイミング（制御周期Ｔ１および位相（オフセット時間））に基づいて、ＩＮリフレッシュのタイミングを、マスターユニット１０からスレーブユニット２０へ予め通知するようにしてもよい。このような方法を採用することで、各スレーブユニット２０は、自律的に、適切なタイミングでＩＮリフレッシュを行う。
【０１３６】
また、スレーブユニット２０のすべてに対してＩＮリフレッシュを行うように指示してもよいし、特定のスレーブユニット２０に対してＩＮリフレッシュを行うように指示してもよい。例えば、出力部のみを有するスレーブユニット２０に対しては、ＩＮリフレッシュの指示を省略することができ、これによって内部バス３０内のデータ転送をより高速化できる。
【０１３７】
＜Ｊ．実施の形態４＞
実施の形態４として、汎用的なコンピュータ（典型的には、パーソナルコンピュータ）を含む通信システムについて説明する。
【０１３８】
図１４は、実施の形態４に係る通信システム５の全体構成を示す模式図である。図１４を参照して、通信システム５は、ＬＡＮ（ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）７を介して互いに接続された複数のパーソナルコンピュータ６を含む。
【０１３９】
パーソナルコンピュータ６は、汎用的なアーキテクチャを有しており、チップセット３００と、メインメモリ３０８と、ＣＰＵ３１０と、ネットワークカード３１２と、１つ以上の拡張カード３２０とを含む。チップセット３００は、パーソナルコンピュータ６の全体を制御するコンポーネントであり、メモリコントローラ３０２と、システムコントローラ３０４と、ＩＯコントローラ３０６とを含む。
【０１４０】
メモリコントローラ３０２は、メインメモリ３０８に対するデータ書込および読出を制御する。ＩＯコントローラ３０６は、ネットワークカード３１２や拡張カード３２０といった周辺装置との間のデータの遣り取りを制御する。ＩＯコントローラ３０６と周辺装置との間は、任意の内部バス３２２を介して接続される。システムコントローラ３０４は、メモリコントローラ３０２およびＩＯコントローラ３０６と連係しつつ、ＣＰＵ３１０に対する命令コードの発行や結果の取得などを適切な順序およびタイミングで実行する。
【０１４１】
メインメモリ３０８は、不揮発性メモリからなり、ＣＰＵ３１０でのプログラム実行に必要な命令やデータを保持する。ＣＰＵ３１０は、指定された命令コードを順次実行する演算装置である。
【０１４２】
ネットワークカード３１２は、ＬＡＮ７を介して他の装置との間でデータを送受信するためのインターフェイスである。ネットワークカード３１２は、ＩＯコントローラ３０６からの指令に従って、データの送受信を実行する。
【０１４３】
拡張カード３２０は、チップセット３００およびＣＰＵ３１０で提供される機能に加えて、補助的な機能を提供する装置を含む。拡張カード３２０の一例としては、グラフィックカードやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ）のように、ＣＰＵ３１０と協働して処理を実行する補助的な演算装置や、ＡＤ（Ａｎａｌｏｇ  ｔｏ  Ｄｉｇｉｔａｌ）変換やＤＡ（Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ）変換などを実行する信号変換装置などが含まれる。
【０１４４】
例えば、パーソナルコンピュータ６が他の装置（典型的には、他のパーソナルコンピュータ６）に対してデータを所定周期毎に送信する場合を考える。このような場合には、拡張カード３２０における処理によって生成されたデータが、内部バス３２２を介してチップセット３００（ＩＯコントローラ３０６）へ伝送され（図１４の経路３４０）、その伝送されたデータを含むデータパケットが、ネットワークカード３１２からＬＡＮ７を介して他の装置へ送信される（図１４の経路３３０）。
【０１４５】
また、パーソナルコンピュータ６が他の装置（典型的には、他のパーソナルコンピュータ６）からデータを所定周期毎に受信する場合には、他の装置から送信されたデータパケットが、ＬＡＮ７を介してネットワークカード３１２で受信されてチップセット３００（ＩＯコントローラ３０６）へ伝送され（図１４の経路３３０）、その伝送されたデータパケットに含まれるデータが、内部バス３２２を介して拡張カード３２０へ送信される（図１４の経路３４０）。
【０１４６】
図１に示す構成と、図１４に示す通信システム５との対応関係については、ＬＡＮ７が第１の通信ラインに相当し、内部バス３２２が第２の通信ラインに相当する。また、チップセット３００およびネットワークカード３１２がマスター部に相当し、拡張カード３２０がスレーブ部に相当する。より具体的には、ネットワークカード３１２が第１の通信部に相当し、ＩＯコントローラ３０６が第２の通信部に相当し、システムコントローラ３０４（およびメモリコントローラ３０２）が更新部に相当する。
【０１４７】
このような構成においても、図２に示すような手順でデータ伝送が実行される。より具体的には、あるタイミングにおいて他の装置との間でデータパケットの送受信が完了し、次のデータパケットの送受信のタイミングが到来するまでの間に、拡張カード３２０との間のデータ送受信が完了するように処理される。すなわち、更新部に相当するシステムコントローラ３０４は、ＬＡＮ７を介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、内部バス３２２を介して拡張カードとの間でデータを更新する。一般的には、内部バス３２２の伝送レートは、ＬＡＮ７の伝送レートに比較して十分に高いので、内部バス３２２を介したデータ送受信の完了に要する時間は、データパケットの周期に比較して十分に小さくできる。
【０１４８】
このような処理手順を採用することで、例えば、複数のパーソナルコンピュータ６が協働して処理を実行するような場合において、拡張カード３２０において生成または取得されたデータをより少ない遅れ時間で他の装置へ伝送できる。また、他の装置から与えられたデータをより少ない遅れ時間で拡張カード３２０へ与えることもできる。これによって、処理を高速化できるとともに、データの不整合などの問題を回避できる。
【０１４９】
なお、内部バス３２２を介して複数の拡張カード３２０が接続されている場合において、チップセット３００と拡張カード３２０の各々との間が互いに独立して接続されているときには、図２に示すような処理が拡張カード３２０の各々についてそれぞれ独立に実行される。これに対して、共通の内部バス３２２に複数の拡張カード３２０が並列に接続されている場合には、チップセット３００は、データの送受信が必要な拡張カード３２０を時系列で順次選択するとともに、データの送受信を各選択された時間内に行い、次のデータパケットの送受信のタイミングが到来するまでの間に、必要なデータ送受信を完了する。
【０１５０】
＜Ｋ．実施の形態４の変形例＞
実施の形態４においては、内部バス３２２を介して接続された内蔵の拡張カード３２０がスレーブ部になる構成を例示したが、このスレーブとしては、パーソナルコンピュータに接続される外部機器であってもよい。以下、実施の形態４の変形例として、パーソナルコンピュータに接続される周辺機器をスレーブ部とする例について説明する。
【０１５１】
図１５は、実施の形態４の変形例に係る通信システム５＃の全体構成を示す模式図である。図１５を参照して、通信システム５＃を構成するパーソナルコンピュータ６＃は、図１４に示すパーソナルコンピュータ６に比較して、周辺機器３６０が接続されている点、および、当該周辺機器３６０を接続するための機器インターフェイス３５０が設けられている点が異なっている。
【０１５２】
機器インターフェイス３５０は、任意の通信方式に従って周辺機器３６０とデータを遣り取りすることができる。通信方式の一例としては、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ１３９４、ＲＳ−２３２（Ｒｅｃｏｍｍｅｎｄｅｄ  Ｓｔａｎｄａｒｄ  ２３２）準拠のシリアルバス、ＩＥＥＥ１２８４準拠のパラレルバスなどがある。
【０１５３】
周辺機器３６０は、パーソナルコンピュータ６＃からアクセスされる任意の装置を含む。例えば、周辺機器３６０の一例として、ハードディスクなどの外部記憶装置や、ＤＶＤ−ＲＯＭなどの記録媒体からデータを読取る光学読取装置などが挙げられる。
【０１５４】
例えば、パーソナルコンピュータ６＃が他の装置（典型的には、他のパーソナルコンピュータ６＃）に対してデータを所定周期毎に送信する場合を考える。このような場合には、周辺機器３６０からのデータが、通信ライン３６２を介して、機器インターフェイス３５０からチップセット３００（ＩＯコントローラ３０６）へ伝送され（図１５の経路３４２）、その伝送されたデータを含むデータパケットが、ネットワークカード３１２からＬＡＮ７を介して他の装置へ送信される（図１５の経路３３０）。
【０１５５】
また、パーソナルコンピュータ６＃が他の装置（典型的には、他のパーソナルコンピュータ６＃）からデータを所定周期毎に受信する場合には、他の装置から送信されたデータパケットが、ＬＡＮ７を介してネットワークカード３１２で受信されてチップセット３００（ＩＯコントローラ３０６）へ伝送され（図１５の経路３３０）、その伝送されたデータパケットに含まれるデータが、機器インターフェイス３５０から通信ライン３６２を介して周辺機器３６０へ送信される（図１５の経路３４２）。
【０１５６】
図１に示す構成と、図１５に示す通信システム５＃との対応関係については、ＬＡＮ７が第１の通信ラインに相当し、通信ライン３６２（および内部バス３２２）が第２の通信ラインに相当する。また、チップセット３００およびネットワークカード３１２がマスター部に相当し、周辺機器３６０がスレーブ部に相当する。より具体的には、ネットワークカード３１２が第１の通信部に相当し、ＩＯコントローラ３０６が第２の通信部に相当し、システムコントローラ３０４（およびメモリコントローラ３０２）が更新部に相当する。
【０１５７】
このような構成においても、図２に示すような手順でデータ伝送が実行される。より具体的には、あるタイミングにおいて他の装置との間でデータパケットの送受信が完了し、次のデータパケットの送受信のタイミングが到来するまでの間に、拡張カード３２０との間のデータ送受信が完了するように処理される。すなわち、更新部に相当するシステムコントローラ３０４は、ＬＡＮ７を介して先行のデータを受信した後、次の周期に対応する後続のデータが到来する前に、通信ライン３６２を介して周辺機器３６０との間でデータを更新する。
【０１５８】
機器インターフェイス３５０および通信ライン３６２を介して複数の周辺機器３６０が互いに独立に接続されている場合には、図２に示すような処理が周辺機器３６０の各々についてそれぞれ独立に実行される。
【０１５９】
このような処理手順を採用することで、例えば、複数のパーソナルコンピュータが協働して処理を実行するような場合において、周辺機器３６０からのデータをより少ない遅れ時間で他の装置へ伝送できる。また、他の装置から与えられたデータをより少ない遅れ時間で周辺機器３６０へ与えることもできる。これによって、処理を高速化できるとともに、データの不整合などの問題を回避できる。
【０１６０】
＜Ｌ．利点＞
上述の実施の形態１〜３によれば、フィールドバス４を介して周期的にフィールドバスフレームを受信するたびに、リモートＩＯ装置３は、その直前にフィールドバスフレームを受信した後のタイミングでリフレッシュしたＩＮデータを書込むことができる。また、受信したフィールドバスフレームに含まれるＯＵＴデータについては、後続のフィールドバスフレームが到来するまでに、スレーブユニット２０に対して出力される。
【０１６１】
このようなフィールドバス４および内部バス３０を介したデータ更新のタイミングを適切化することで、装置間でのデータ更新をより高速に行うことができる。そのため、メイン処理装置２において実行される制御プログラムの精度を高めることができる。例えば、本実施の形態に係る制御システムは、位置精度が重要なモーション制御などに好適である。
【０１６２】
また、実施の形態４およびその変形例によれば、パーソナルコンピュータ間の周期的なデータ送受信パーソナルコンピュータ内部または周辺機器からのデータをより小さい遅れ時間で反映できるので、複数のパーソナルコンピュータが連係して処理を行うような構成において、より適切な処理を実現できる。
【０１６３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６４】
１  ＰＬＣシステム、２  メイン処理装置、３  リモートＩＯ装置、４  フィールドバス、５，５＃  通信システム、６，６＃  パーソナルコンピュータ、１０  マスターユニット、１２，５２  通信モジュール、１２ａ，５２ａ  タイマ、２０  スレーブユニット、３０，７０，３２２  内部バス、４０  電源ユニット、５０  ＣＰＵユニット、６０  ＩＯユニット、１００  プロセッサ、１１０  フィールドバス制御部、１１２  受信部、１１４  送信部、１２０  フィールドバス通信コントローラ、１２２，３０２  メモリコントローラ、１２４  ＦＩＦＯメモリ、１２６，１６４  受信バッファ、１２８，１６６  送信バッファ、１３０  内部バス制御部、１３２  内部バス通信コントローラ、１４２，１５２，２２４，２３４，２４４，２５４  送信回路、１４４，１５４，２２２，２３２，２４２，２５２  受信回路、１６０  記憶部、１６２  共有メモリ、２００  ＩＯモジュール、２１０  ＩＯメモリ、２２０，２４０  通信コントローラ、３００  チップセット、３０４  システムコントローラ、３０６  コントローラ、３０８  メインメモリ、３１０  ＣＰＵ、３１２  ネットワークカード、３２０  拡張カード、３５０  機器インターフェイス、３６０  周辺機器、３６２  通信ライン。
【図１】
2013137023.tif 000003
【図２】
2013137023.tif 000004
【図３】
2013137023.tif 000005
【図４】
2013137023.tif 000006
【図５】
2013137023.tif 000007
【図６】
2013137023.tif 000008
【図７】
2013137023.tif 000009
【図８】
2013137023.tif 000010
【図９】
2013137023.tif 000011
【図１０】
2013137023.tif 000012
【図１１】
2013137023.tif 000013
【図１２】
2013137023.tif 000014
【図１３】
2013137023.tif 000015
【図１４】
2013137023.tif 000016
【図１５】
2013137023.tif 000017
【国際調査報告】
2013137023.tif 000018
2013137023.tif 000019
2013137023.tif 000020