(57)【特許請求の範囲】
【請求項１】
バッファメモリを備えるバスインタフェースを夫々備える複数のコントローラユニットと、前記バスインタフェースを介して前記複数のコントローラシステムを接続し、前記複数のコントローラユニットのうちの送信側のコントローラユニットのバスインタフェースが備えるバッファメモリの記憶内容を受信側のコントローラユニットのバスインタフェースが備えるバッファメモリに転送するユニット間転送処理を第１の時間間隔で実行するバスと、を備えるプログラマブルコントローラシステムであって、
前記送信側のコントローラユニットは、
前記第１の時間間隔よりも大きい第２の時間間隔で交信データを生成するデータ生成部と、
前記データ生成部が生成した交信データを分割して前記第２の時間間隔を前記第１の時間間隔で除して得られる値以下の数の転送単位データを生成するデータ分割部と、
前記データ分割部が生成した複数の転送単位データの夫々を自コントローラユニットのバスインタフェースが備えるバッファメモリに前記第１の時間間隔で順次格納するデータ格納部と、
を備え、
前記受信側のコントローラユニットは、
前記ユニット間転送処理により自コントローラユニットのバッファメモリに前記第１の時間間隔で順次転送されてくる複数の転送単位データを前記第１の時間間隔で順次読み出すデータ読み出し部と、
前記データ読み出し部が読み出した複数の転送単位データを結合して前記データ生成部が生成した交信データを再構築するデータ結合部と、
を備える、
ことを特徴とするプログラマブルコントローラシステム。
【請求項２】
前記バッファメモリはダブルバッファ構成を備え、
前記データ格納部が転送単位データを格納する処理と、前記ユニット間転送処理と、前記データ読み出し部が転送単位データを読み出す処理と、を前記ダブルバッファ構成のバッファメモリを使用してパイプライン処理的に実行する、
ことを特徴とする請求項１に記載のプログラマブルコントローラシステム。
【請求項３】
前記第１の時間間隔は、前記複数のコントローラユニットの夫々に排他的に割り当てられる複数のタイムスロットに時分割されており、
前記データ格納部が転送単位データを格納する処理と、前記ユニット間転送処理と、前記データ読み出し部が転送単位データを読み出す処理とは、前記送信側のコントローラユニットに割り当てられたタイムスロットにおいて実行される、
ことを特徴とする請求項２に記載のプログラマブルコントローラシステム。
【請求項４】
前記第１の時間間隔は、前記複数のコントローラユニットの夫々に排他的に割り当てられる第１のタイムスロットであって前記ユニット間転送処理が実行される第１のタイムスロットと、前記データ格納部が転送単位データを格納する処理と前記データ読み出し部が転送単位データを読み出す処理とが実行される第２のタイムスロットとを含む複数のタイムスロットに分割されている、
ことを特徴とする請求項１に記載のプログラマブルコントローラシステム。
【請求項５】
前記第２のタイムスロットは、前記第１の時間間隔の末尾に位置し、
前記データ分割部は、前記第１の時間間隔毎に、交信データの完成を待つことなく当該交信データの生成済みの一部から転送単位データを生成する、
ことを特徴とする請求項４に記載のプログラマブルコントローラシステム。
【請求項６】
前記データ分割部は、前記データ生成部が生成した交信データにおける位置を特定するための識別番号を夫々の分割データに付して前記複数の転送単位データを生成し、
前記データ結合部は、前記複数の転送データに付されている識別番号に基づいて前記データ生成部が生成した交信データを再構築する、
ことを特徴とする請求項１乃至請求項５のうちの何れか一項に記載のプログラマブルコントローラシステム。
【請求項７】
バッファメモリを備えるバスインタフェースを夫々備える複数のコントローラユニットと、前記バスインタフェースを介して前記複数のコントローラシステムを接続し、前記複数のコントローラユニットのうちの送信側のコントローラユニットが備えるバッファメモリの記憶内容を受信側のコントローラユニットが備えるバッファメモリに第１の時間間隔で転送するユニット間転送処理を実行するバスと、を備えるプログラマブルコントローラシステムであって、
前記送信側のコントローラユニットは、前記第１の時間間隔よりも大きい第２の時間間隔毎に完成する交信データを前記第２の時間間隔を前記第１の時間間隔で除して得られる値以下の数で分割した分割データを、自コントローラユニットのバスインタフェースが備えるバッファメモリに、前記第１の時間間隔毎に順次生成するデータ生成部を備え、
前記受信側のコントローラユニットは、
前記ユニット間転送処理により自コントローラユニットのバスインタフェースが備えるバッファメモリに前記第１の時間間隔で順次転送されてくる複数の分割データを前記第１の時間間隔で順次読み出す第１データ読み出し部と、
前記第１データ読み出し部が読み出した複数の分割データを結合して前記データ生成部が完成する交信データを構築する第１データ結合部と、
を備える、
ことを特徴とするプログラマブルコントローラシステム。
【請求項８】
前記送信側のコントローラユニットは、
前記データ生成部が自コントローラユニットのバスインタフェースが備えるバッファメモリに順次格納した複数の分割データを前記第１の時間間隔で順次読み出す第２データ読み出し部と、
前記第２データ読み出し部が読み出した複数の分割データを結合して前記データ生成部が完成する交信データを構築する第２データ結合部と、
を備える、
ことを特徴とする請求項７に記載のプログラマブルコントローラシステム。
【請求項９】
前記第２データ読み出し部が分割データを読み出す処理と、当該分割データにかかる前記ユニット間転送処理と、を同時並行的に実行する、
ことを特徴とする請求項７に記載のプログラマブルコントローラシステム。
【請求項１０】
前記バッファメモリはダブルバッファ構成を備え、
前記データ生成部が分割データを格納する処理と、前記ユニット間転送処理と、前記第１データ読み出し部が分割データを読み出す処理と、を前記ダブルバッファ構成のバッファメモリを使用してパイプライン処理的に実行する、
ことを特徴とする請求項７または請求項８に記載のプログラマブルコントローラシステム。
【請求項１１】
前記第１の時間間隔は、前記複数のコントローラユニットの夫々に排他的に割り当てられる複数のタイムスロットに時分割されており、
前記データ生成部が分割データを格納する処理と、前記ユニット間転送処理と、前記第１データ読み出し部が分割データを読み出す処理とは、前記送信側のコントローラユニットに割り当てられたタイムスロットにおいて実行される、
ことを特徴とする請求項９に記載のプログラマブルコントローラシステム。
【請求項１２】
前記第１の時間間隔は、前記複数のコントローラユニットの夫々に排他的に割り当てられる第１のタイムスロットであって前記データ生成部が分割データを生成して格納する処理と前記ユニット間転送処理とが同時並行的に実行される第１のタイムスロットと、前記第１の時間間隔の末尾に位置し、前記第１データ読み出し部が分割データを読み出す処理に割り当てられてられる第２のタイムスロットと、を含む複数のタイムスロットに分割されている、
ことを特徴とする請求項７または請求項８に記載のプログラマブルコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用機器を制御するプログラマブルコントローラシステムに関する。
【背景技術】
【０００２】
従来、交信データを生成する周期（演算周期）が交信データの交信を行う周期（交信周期）よりも大きい場合において、交信データを分割して送信する技術がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１３３５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラマブルコントローラシステムにおけるコントローラユニット間の制御データの交信には時間的な信頼性が求められる。即ち、所定のサイズのデータを所定の時間で確実に相手に届けることが求められる。しかしながら、上記特許文献１の技術によれば、ソケットを用いて分割データを送信するため、送信元が複数存在する場合、交信データの衝突が発生するなどにより分割データが意図したタイミングで送信先に到着しない場合が考えられる。即ち、上記特許文献１の技術では、信頼性のあるデータ交信を行うことができないという問題があった。【０００５】
本発明は、上記に鑑みてなされたものであって、演算周期が交信周期よりも大きい場合でも交信データの時間的な信頼性を保障したプログラマブルコントローラシステムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、バッファメモリを備えるバスインタフェースを夫々備える複数のコントローラユニットと、前記バスインタフェースを介して前記複数のコントローラシステムを接続し、前記複数のコントローラユニットのうちの送信側のコントローラユニットのバスインタフェースが備えるバッファメモリの記憶内容を受信側のコントローラユニットのバスインタフェースが備えるバッファメモリに転送するユニット間転送処理を第１の時間間隔で実行するバスと、を備えるプログラマブルコントローラシステムであって、前記送信側のコントローラユニットは、前記第１の時間間隔よりも大きい第２の時間間隔で交信データを生成するデータ生成部と、前記データ生成部が生成した交信データを分割して前記第２の時間間隔を前記第１の時間間隔で除して得られる値以下の数の転送単位データを生成するデータ分割部と、前記データ分割部が生成した複数の転送単位データの夫々を自コントローラユニットのバスインタフェースが備えるバッファメモリに前記第１の時間間隔で順次格納するデータ格納部と、を備え、前記受信側のコントローラユニットは、前記ユニット間転送処理により自コントローラユニットのバッファメモリに前記第１の時間間隔で順次転送されてくる複数の転送単位データを前記第１の時間間隔で順次読み出すデータ読み出し部と、前記データ読み出し部が読み出した複数の転送単位データを結合して前記データ生成部が生成した交信データを再構築するデータ結合部と、を備える、ことを特徴とする。
【発明の効果】
【０００７】
本発明にかかるプログラマブルコントローラシステムは、演算周期（第２の時間間隔）毎に生成される交信データを当該演算周期よりも小さい交信周期（第１の時間間隔）でデータ転送を行うバスを介して確実に到着せしめることができるので、演算周期が交信周期よりも大きい場合でも交信データの時間的な信頼性を保障することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１のプログラマブルコントローラシステムの構成を示す図である。
【図２】図２は、実施の形態１のコントローラユニット間でデータの交信が行われる様子を説明する図である。
【図３】図３は、実施の形態１のコントローラユニットの構成を説明する図である。
【図４】図４は、実施の形態１におけるデータの送受信のタイミングを説明するタイミングチャートである。
【図５】図５は、実施の形態１の構成要素間のデータの流れを説明する図である。
【図６】図６は、実施の形態２のプログラマブルコントローラシステムの構成を示す図である。
【図７】図７は、実施の形態２のコントローラユニットの構成を説明する図である。
【図８】図８は、実施の形態２のコントローラユニット間でデータの交信が行われる様子を説明する図である。
【図９】図９は、実施の形態２におけるデータの送受信のタイミングを説明するタイミングチャートである。
【図１０】図１０は、実施の形態２の構成要素間のデータの流れを説明する図である。
【図１１】図１１は、実施の形態３のプログラマブルコントローラシステムの構成を示す図である。
【図１２】図１２は、実施の形態３のコントローラユニットの構成を説明する図である。
【図１３】図１３は、実施の形態３におけるデータの送受信のタイミングを説明するタイミングチャートである。
【図１４】図１４は、実施の形態４のプログラマブルコントローラシステムの構成を示す図である。
【図１５】図１５は、実施の形態４のコントローラユニットの構成を説明する図である。
【図１６】図１６は、実施の形態４におけるデータの送受信のタイミングを説明するタイミングチャートである。
【図１７】図１７は、実施の形態５のプログラマブルコントローラシステムの構成を示す図である。
【図１８】図１８は、実施の形態５のコントローラユニットの構成を説明する図である。
【図１９】図１９は、実施の形態５におけるデータの送受信のタイミングを説明するタイミングチャートである。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかるプログラマブルコントローラシステムの実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、本発明にかかる実施の形態１のプログラマブルコントローラシステムの構成を示す図である。図１に示すように、プログラマブルコントローラシステム１は、コントローラユニット１０Ａ〜１０Ｃとベースユニット２０とを備えて構成されている。
【００１１】
コントローラユニット１０Ａ〜１０Ｃは、内部にＣＰＵ（後述するＣＰＵ１１）を具備しており、夫々が備えるＣＰＵ１１を使用してプログラマブルコントローラシステム１の制御を役割分担して実行する。コントローラユニット１０Ａ〜１０Ｃ間の連携は、互いに制御データを送受信することによって行われる。具体的には、コントローラユニット１０Ａ〜１０Ｃの夫々は、コントローラユニット１０Ａ〜１０Ｃのうちの他のコントローラユニットから送られてきた制御データを用いて自身が備えるＣＰＵ１１で夫々所定の演算を行い、その結果を制御データとして前記他のコントローラユニットに送信する。コントローラユニット１０Ａ〜１０Ｃは、例えばＰＬＣユニット、モーションコントローラユニット、ロボットコントローラユニット、ＣＮＣユニットが該当する。以降、コントローラユニット１０Ａ〜１０Ｃをコントローラユニット１０と総称することがある。
【００１２】
ベースユニット２０は定周期バス３０を備えている。定周期バス３０は、コントローラユニット１０Ａ〜１０Ｃの夫々にデータ送信可能なタイムスロットを時分割で割り当てる。コントローラユニット１０Ａ〜１０Ｃの夫々は、定周期バス３０を介して、送受信用のバッファメモリ（後述する送信用交信メモリ１５ａ、１５ｂ、および受信用交信メモリ１６ａ、１６ｂ）のサイズよりも小さいサイズのデータを自コントローラユニット１０に割り当てられたタイムスロット内で送信先に確実に転送することができる。
【００１３】
図２は、コントローラユニット１０間でデータの交信が行われる様子を説明する図である。図示するように、交信周期を構成する３つのタイムスロットは、コントローラユニット１０Ａ〜１０Ｃに夫々排他的に割り当てられている。即ち、夫々のタイムスロットにおいてコントローラユニット１０Ａ〜１０Ｃのうちの１つのみが送信側のコントローラユニット１０となることができ、定周期バス３０上で交信データが衝突しないようになっている。送信元となったコントローラユニット１０は、他の２つのコントローラユニット１０を送信先として、自コントローラユニット１０に割り当てられたタイムスロット内でデータを転送している。
【００１４】
一般に、プログラマブルコントローラシステム１の製品ライフサイクルは家庭用の電化製品等に比較して長い。そのため、将来の技術進歩によりコントローラユニット１０が送信対象の制御データを用意する周期（演算周期）が向上しても当該コントローラユニット１０を接続可能にするために、定周期バス３０は、往々にして、同時期に市場にリリースされているコントローラユニット１０よりも高速な交信周期でデータの交信を行うことができる場合がある。また、送受信用のバッファメモリは、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの高速メモリが送受信のためのインタフェース回路（後述する定周期バスＩ／Ｆ１４）に組み込まれて構成されているため、サイズの柔軟な変更が困難である一方、コントローラユニット１０が生成する送信対象の制御データのサイズは、ユーザの設定などにより比較的に容易に変動する。即ち、ユーザは、コントローラユニット１０の演算周期を大きくしてより大きなサイズの制御データを生成させることができる。その結果、制御データのサイズが送受信用のバッファメモリのサイズよりも大きくなることがある。
【００１５】
そこで、本発明の実施の形態１では、演算周期が交信周期よりも大きい場合であってもデータ交信の時間的な信頼性を担保するために、制御データを分割して予め決められた回数の交信周期で送信先に送信するようにしている。すなわち、図２において、１つのタイムスロットで転送されるデータ（転送単位データ）は、ヘッダ部１００とデータ部１０１とを備えている。１つの制御データは複数のタイムスロットで送信できるように複数に分割されており、当該分割後の夫々のデータ（分割データ）は転送単位データが備えるデータ部１０１に格納される。ヘッダ部１００は、データ部１０１に格納されている分割データの、分割前の制御データ（以下、交信データ）における先頭からの位置を示すブロック番号を含んでいる。
【００１６】
なお、ベースユニット２０に接続可能なユニットには、コントローラユニット１０のほかにも、例えばＡ／Ｄ変換ユニットや温度調節ユニットなど、夫々異なる機能を有する多様なユニット（機能ユニット）が用意されている。ユーザは、プログラマブルコントローラシステム１の使用目的に合わせて所望の機能ユニットを選択してベースユニット２０に接続することができる。また、ここでは、ベースユニット２０の内部バスとしての定周期バス３０によってコントローラユニット１０間が接続されるものとして説明しているが、定周期でデータ交信を行うことができるのであれば、外部バス（あるいはネットワーク）で接続されるように構成してもよい。
【００１７】
図３は、コントローラユニット１０の構成を説明する図である。図示するように、コントローラユニット１０は、ＣＰＵ１１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスインタフェース（Ｉ／Ｆ）１４を備えている。ＣＰＵ１１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ１４は夫々バスに接続されている。
【００１８】
ＣＰＵ１１は、演算周期毎に交信データを生成する。そして、生成した交信データを分割し、夫々の分割データから転送単位データを生成して夫々ＤＲＡＭ１２に格納する。なお、順次生成される交信データを全て受信されるために、ＣＰＵ１１は、交信データを最大で演算周期を交信周期で除算した数まで分割することが可能である。交信データのサイズを大きくしたい場合、当該交信データを生成するためにかかる時間（演算周期）が交信データのサイズに応じて大きくなるため、当該交信データの分割数を大きくすることで交信データのサイズ増加に対応することができる。
【００１９】
また、ＣＰＵ１１は、自コントローラユニット１０が交信データの受信側であるとき、転送されてきた複数の分割データを結合して分割前の交信データを再構築する。
【００２０】
ＤＲＡＭ１２は、ＣＰＵ１１が生成した交信データや、他のコントローラユニット１０から送られてくる交信データが格納される。
【００２１】
定周期バスＩ／Ｆ１４は定周期バス３０に接続するための接続インタフェースである。実施の形態１の定周期バスＩ／Ｆ１４は、データ送信用のバッファメモリおよびデータ受信用のバッファメモリは夫々ダブルバッファ構成を有している。即ち、定周期バスＩ／Ｆ１４は、データ送信用のバッファメモリとして、送信用交信メモリ１５ａおよび送信用交信メモリ１５ｂを備え、データ受信用のバッファメモリとして、受信用交信メモリ１６ａおよび受信用交信メモリ１６ｂを備えている。これにより、コントローラユニット１０は、データの送信時には、送信対象の分割データのデータ送信用のバッファメモリへのセットと分割データの送信とを並行して実行することで、データの送信を効率的に実行することができる。また、データの受信時には、分割データの受信とデータ受信用のバッファメモリに格納された分割データの取り込みとを並行して実行することで、データの受信を効率的に実行することができる。なお、送信用交信メモリ１５ａ、１５ｂを送信用交信メモリ１５と総称することがある。同様に、受信用交信メモリ１６ａ、１６ｂを受信用交信メモリ１６と総称することがある。
【００２２】
ＤＭＡコントローラ１３はＣＰＵ１１からの指令に基づいてＤＲＡＭ１２と送信用交信メモリ１５または受信用交信メモリ１６との間のデータ転送（ＤＭＡ転送）を実行する。
【００２３】
次に、図４および図５を参照して、本発明の実施の形態１のプログラマブルコントローラシステム１の動作を説明する。図４は、データの送受信のタイミングを説明するタイミングチャートであり、図５は、構成要素間のデータの流れを説明する図である。なお、ここでは、説明を簡単にするために、コントローラユニット１０Ａが送信元となり、コントローラユニット１０Ｂおよびコントローラユニット１０Ｃが送信先となるデータ交信について説明する。また、演算周期は交信周期の２倍の大きさを有し、交信データの分割数は２つであるとして説明する。なお、送信先となったコントローラユニット１０Ｂとコントローラユニット１０Ｃの動作は同じであるので、ここでは代表としてコントローラユニット１０Ｂの動作を説明する。また、図４に示す夫々の交信周期（第１〜第６交信周期の夫々）は、簡単のためにタイムスロットの表記を省略しているが、実際には既に述べたように夫々３つのタイムスロットから構成されており、コントローラユニット１０Ａからコントローラユニット１０Ｂ、１０Ｃへのデータ交信はそのうちの１つのタイムスロットを使用して実行される。
【００２４】
まず、第１演算周期において、コントローラユニット１０ＡのＣＰＵ１１は、交信データを生成する。そして、コントローラユニット１０ＡのＣＰＵ１１は、生成した交信データを分割し、夫々の分割データ（分割データＤ０、分割データＤ１）から夫々転送単位データを生成し、生成した夫々の転送単位データをＤＲＡＭ１２に格納する（ステップＳ１）。なお、コントローラユニット１０ＡのＣＰＵ１１は、転送単位データを生成する際には、夫々のヘッダ部１００にブロック番号を記入する。以降、データ部１０１に分割データＤ０を含む転送単位データを転送単位データＤ０、データ部１０１に分割データＤ１を含む転送単位データを転送単位データＤ１と表記する。
【００２５】
第３交信周期においては、コントローラユニット１０ＡのＣＰＵ１１は、ＤＭＡコントローラ１３に指令して、ＤＲＡＭ１２に格納されている転送単位データＤ０をＤＲＡＭ１２から送信用交信メモリ１５ａに転送させる（ステップＳ２）。
【００２６】
第４交信周期においては、コントローラユニット１０Ａの定周期バスＩ／Ｆ１４は、送信用交信メモリ１５ａに格納されている転送単位データＤ０をコントローラユニット１０Ｂの受信用交信メモリ１６ａに送信する（ステップＳ３）。また、当該第４交信周期において、コントローラユニット１０ＡのＣＰＵ１１は、ＤＭＡコントローラ１３に指令して、ＤＲＡＭ１２に格納されている転送単位データＤ１をＤＲＡＭ１２から送信用交信メモリ１５ｂに転送させる（ステップＳ４）。
【００２７】
第５交信周期においては、コントローラユニット１０ＢのＣＰＵ１１は、受信用交信メモリ１６ａに格納されている転送単位データＤ０のヘッダ部１００に記述されているブロック番号を参照するとともに、ＤＭＡコントローラ１３に指令して、データ部１０１に格納されている分割データＤ０を受信用交信メモリ１６ａからＤＲＡＭ１２に転送させる（ステップＳ５）。また、当該第５交信周期において、コントローラユニット１０Ａの定周期バスＩ／Ｆ１４は、送信用交信メモリ１５ｂに格納されている転送単位データＤ１をコントローラユニット１０Ｂの受信用交信メモリ１６ｂに送信する（ステップＳ６）。
【００２８】
第６交信周期においては、コントローラユニット１０ＢのＣＰＵ１１は、受信用交信メモリ１６ｂに格納されている転送単位データＤ１のヘッダ部１００に記述されているブロック番号を参照するとともに、ＤＭＡコントローラ１３に指令して、データ部１０１に格納されている分割データＤ１を受信用交信メモリ１６ｂからＤＲＡＭ１２に転送させる（ステップＳ７）。なお、コントローラユニット１０ＢのＣＰＵ１１は、分割データＤ０および分割データＤ１を夫々のブロック番号の順番でアドレスが連続するように夫々ＤＲＡＭ１２に格納させることによって、自コントローラユニット１０ＢのＤＲＡＭ１２内に格納完了したときに分割データＤ１、Ｄ２が自動的に結合され、結果として分割前の交信データが再構築されるようにしてもよい。または、コントローラユニット１０ＢのＣＰＵ１１は、分割データＤ０および分割データＤ１を夫々別々の位置にＤＲＡＭ１２に一時的に格納させ、夫々ＤＲＡＭ１２に別々に一時的に格納された分割データＤ０および分割データＤ１を読み出して１つに結合して分割前の交信データを再構築するようにしてもよい。
【００２９】
このように、プログラマブルコントローラシステム１は、第１演算周期で送信元のコントローラユニット１０が生成した交信データを第３演算周期の終わりまでに送信先に確実に到着せしめることができる。なお、ここでは簡単のために１つの交信データに着目してデータ転送の動作を説明したが、コントローラユニット１０は、演算周期毎に交信データを生成し、生成した交信データをパイプライン処理的に順次転送する。即ち、プログラマブルコントローラシステム１は、第ｉ演算周期で送信元のコントローラユニット１０が生成した交信データを第（ｉ＋２）演算周期の終わりまでに送信先に到着せしめ、送信先のコントローラユニット１０は第（ｉ＋３）演算周期から当該交信データを利用することができる。
【００３０】
なお、以上の説明においては、コントローラユニット１０の定周期バス３０への接続数は３つであるとして説明したが、コントローラユニットの接続数は３つに限定されない。コントローラユニット１０の接続数が３つから増減しても、交信周期内で割り当てられる自コントローラユニット１０用のタイムスロットの時間が変化するだけで、送信元のコントローラユニット１０が交信データを作成してから送信先のコントローラユニット１０が当該交信データを利用できるようになるまでの一連の処理のタイミングは変化しない。
【００３１】
また、以上の説明においては、ＣＰＵ１１が交信データの分割、転送単位データの生成、および交信データの再構築を行うものとして説明したが、コントローラユニット１０にこれらの処理の一部または全部を実行する専用の回路またはプロセッサをＣＰＵ１１とは別に具備するように構成してもよい。
【００３２】
以上説明したように、本発明の実施の形態１によれば、送信側のコントローラユニット１０では、ＣＰＵ１１は、定周期バス３０の交信間隔よりも大きい演算周期で交信データを生成し、前記生成した交信データを分割して演算周期を交信周期で除して得られる値以下の数の転送単位データを生成し、ＤＭＡコントローラ１３は、複数の転送単位データの夫々を送信用交信メモリ１５ａ、１５ｂに交信間隔で順次転送し、受信側のコントローラユニット１０では、ＤＭＡコントローラ１３は、受信用交信メモリ１６ａ、１６ｂに順次転送されてくる複数の転送単位データを交信間隔で順次読み出して、ＣＰＵ１１は、前記ＤＭＡコントローラ１３が読み出した複数の転送単位データを結合して交信データを再構築する、ように構成したので、演算周期毎に生成される交信データを当該演算周期よりも小さい交信周期でデータ転送を行う定周期バス３０を介して確実に到着せしめることができる。即ち、演算周期が交信周期よりも大きい場合でも交信データの時間的な信頼性が保障される。
【００３３】
また、送信用交信メモリ１５および受信用交信メモリ１６は夫々ダブルバッファを構成し、ＤＲＡＭ１２と送信用交信メモリ１５との間のデータ転送、送信用交信メモリ１５と受信用交信メモリ１６との間のデータ転送（ユニット間転送処理）、および受信用交信メモリ１６とＤＲＡＭ１２との間のデータ転送をパイプライン処理的に実行するように構成したので、交信周期毎に転送単位データをデータ転送することができる。
【００３４】
また、交信周期は、複数のコントローラユニット１０の夫々に排他的に割り当てられる複数のタイムスロットに時分割されており、送信側のコントローラユニット１０におけるＤＲＡＭ１２と送信用交信メモリ１５との間のデータ転送、前記送信側のコントローラユニット１０の送信用交信メモリ１５と受信側のコントローラユニット１０の受信用交信メモリ１６との間のデータ転送、および前記受信側のコントローラユニット１０における受信用交信メモリ１６とＤＲＡＭ１２との間のデータ転送は、前記送信側のコントローラユニット１０に割り当てられたタイムスロットにおいて実行される、ように構成したので、複数のコントローラユニット１０間の交信データの衝突を防止することができる。
【００３５】
また、送信側のコントローラユニット１０が備えるＣＰＵ１１は、生成された交信データにおける位置を特定するためのブロック番号を夫々の分割データに付して転送単位データを生成し、受信側のコントローラユニット１０が備えるＣＰＵ１１は、受信した転送データに付されている識別番号に基づいて分割前の交信データを再構築する、ように構成した。
【００３６】
実施の形態２．
図６は、本発明にかかる実施の形態２のプログラマブルコントローラシステムの構成を示す図である。なお、ここでは、実施の形態１と同じ構成要素には同一の符号を付して、重複する説明を省略する。図６に示すように、プログラマブルコントローラシステム２は、コントローラユニット４０Ａ〜４０Ｃとベースユニット２０とを備えて構成されている。以降、コントローラユニット４０Ａ〜４０Ｃをコントローラユニット４０と総称する場合がある。
【００３７】
図７は、コントローラユニット４０の構成を説明する図である。図示するように、コントローラユニット４０は、ＣＰＵ４１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ４２を備えている。ＣＰＵ４１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ４２は夫々バスに接続されている。
【００３８】
定周期バスＩ／Ｆ４２は定周期バス３０に接続するための接続インタフェースである。実施の形態２の定周期バスＩ／Ｆ４２は、送信用交信メモリ４３および受信用交信メモリ４４を備えている。
【００３９】
図８は、コントローラユニット４０間でデータの交信が行われる様子を説明する図である。図示するように、交信周期は、４つのタイムスロットで構成されており、当該４つのタイムスロットのうちの最初の１つは、ＤＭＡ転送に割り当てられる。そして、残りの３つは、コントローラユニット４０Ａ〜４０Ｃに夫々割り当てられている。即ち、本発明の実施の形態２によれば、ＤＲＡＭ１２と送受信用のバッファメモリ（送信用交信メモリ４３または受信用交信メモリ４４）との間のデータ転送と、送信用交信メモリ４３と受信用交信メモリ４４との間のデータ転送と、を１つの交信周期に相当する時間内で連続して実行することができる。
【００４０】
次に、図９および図１０を参照して、本発明の実施の形態２のプログラマブルコントローラシステム２の動作を説明する。図９は、データの送受信のタイミングを説明するタイミングチャートであり、図１０は、構成要素間のデータの流れを説明する図である。なお、ここでは、説明を簡単にするために、コントローラユニット４０Ａが送信元となり、コントローラユニット４０Ｂおよびコントローラユニット４０Ｃが送信先となるデータ交信について説明する。なお、図９に示す夫々の交信周期（第１〜第６交信周期の夫々）は、簡単のためにコントローラユニット４０に割り当てられているタイムスロットの表記を省略しているが、実際には既に述べたように夫々４つのタイムスロットから構成されており、コントローラユニット４０Ａからコントローラユニット４０Ｂ、４０Ｃへのデータ交信にかかる処理のうちのＤＭＡ転送以外の処理はそのうちの１つのタイムスロットを使用して実行される。
【００４１】
まず、第１演算周期においては、コントローラユニット４０ＡのＣＰＵ４１は、交信データを生成する。そして、コントローラユニット４０ＡのＣＰＵ４１は、生成した交信データを分割し、夫々の分割データ（分割データＤ０、分割データＤ１）から夫々転送単位データを生成し、生成した夫々の転送単位データをＤＲＡＭ１２に格納する（ステップＳ１１）。なお、コントローラユニット４０ＡのＣＰＵ４１は、転送単位データを生成する際には、夫々のヘッダ部１００にブロック番号を記入する。
【００４２】
第３交信周期のＤＭＡ転送用のタイムスロットにおいて、コントローラユニット４０ＡのＣＰＵ４１は、ＤＭＡコントローラ１３に指令して、ＤＲＡＭ１２に格納されている転送単位データＤ０をＤＲＡＭ１２から送信用交信メモリ４３に転送させる（ステップＳ１２）。その後、第３交信周期のコントローラユニット４０Ａに割り当てられているタイムスロットにおいて、コントローラユニット４０Ａの定周期バスＩ／Ｆ４２は、送信用交信メモリ４３に格納されている転送単位データＤ０をコントローラユニット４０Ｂの受信用交信メモリ４４に転送する（ステップＳ１３）。
【００４３】
第４交信周期のＤＭＡ転送用のタイムスロットにおいて、コントローラユニット４０ＢのＣＰＵ４１は、受信用交信メモリ４４に格納されている転送単位データＤ０のヘッダ部１００に記述されているブロック番号を参照するとともに、ＤＭＡコントローラ１３に指令して、データ部１０１に格納されている分割データＤ０を受信用交信メモリ４４からＤＲＡＭ１２に転送させる（ステップＳ１４）。ステップＳ１４の処理と同時並行的に、コントローラユニット４０ＡのＣＰＵ４１は、ＤＭＡコントローラ１３に指令して、ＤＲＡＭ１２に格納されている転送単位データＤ１をＤＲＡＭ１２から送信用交信メモリ４３に転送させる（ステップＳ１５）。その後、第４交信周期のコントローラユニット４０Ａに割り当てられているタイムスロットにおいて、コントローラユニット４０Ａの定周期バスＩ／Ｆ４２は、送信用交信メモリ４３に格納されている転送単位データＤ１をコントローラユニット４０Ｂの受信用交信メモリ４４に転送する（ステップＳ１６）。
【００４４】
第５交信周期のＤＭＡ転送用のタイムスロットにおいては、コントローラユニット４０ＢのＣＰＵ４１は、受信用交信メモリ４４に格納されている転送単位データＤ１のヘッダ部１００に記述されているブロック番号を参照するとともに、ＤＭＡコントローラ１３に指令して、データ部１０１に格納されている分割データＤ１を受信用交信メモリ４４からＤＲＡＭ１２に転送させる（ステップＳ１７）。なお、コントローラユニット４０ＢのＣＰＵ４１は、実施の形態１のＣＰＵ１１と同様に、分割データＤ０および分割データＤ１から分割前の交信データを再構築する。
【００４５】
このように、本発明の実施の形態２によれば、交信周期を複数のタイムスロットに時分割し、夫々のタイムスロットを複数のコントローラユニット４０の夫々とＤＭＡ転送とに割り当てて、夫々のコントローラユニット４０に割り当てられたタイムスロットにおいてユニット間転送処理を実行するように構成したので、ステップＳ１２とステップＳ１３、あるいはステップＳ１３とステップＳ１４に示すように、ユニット間転送処理とＤＭＡ転送とを１つの交信周期にかかる時間で実行することができる。その結果として、図９に示したように、第１演算周期で生成された交信データが第３演算周期の半ば（第６交信周期の始め）から利用できるようになる。即ち、実施の形態２によれば、送信側のコントローラユニット４０が交信データを生成してから受信側のコントローラユニット４０が当該交信データを利用できるようになるまでの時間を実施の形態１に比較して短縮することができる。
【００４６】
実施の形態３．
実施の形態２では、各交信周期の先頭のタイムスロットがＤＭＡ転送用に割り当てられていた。実施の形態３においては、各交信周期の末尾のタイムスロットがＤＭＡ転送用に割り当てられる。
【００４７】
図１１は、本発明にかかる実施の形態３のプログラマブルコントローラシステムの構成を示す図である。なお、ここでは、実施の形態１または実施の形態２と同じ構成要素には同一の符号を付して、重複する説明を省略する。図１１に示すように、プログラマブルコントローラシステム３は、コントローラユニット５０Ａ〜５０Ｃとベースユニット２０とを備えて構成されている。以降、コントローラユニット５０Ａ〜５０Ｃをコントローラユニット５０と総称する場合がある。
【００４８】
図１２は、コントローラユニット５０の構成を説明する図である。図示するように、コントローラユニット５０は、ＣＰＵ５１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ４２を備えている。ＣＰＵ５１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ４２は夫々バスに接続されている。
【００４９】
定周期バスＩ／Ｆ４２は定周期バス３０に接続するための接続インタフェースである。実施の形態３の定周期バスＩ／Ｆ４２は、送信用交信メモリ４３および受信用交信メモリ４４を備えている。
【００５０】
次に、本発明の実施の形態３のプログラマブルコントローラシステム３の動作を説明する。図１３は、データの送受信のタイミングを説明するタイミングチャートである。なお、ここでは、説明を簡単にするために、コントローラユニット５０Ａが送信元となり、コントローラユニット５０Ｂおよびコントローラユニット５０Ｃが送信先となるデータ交信について説明する。なお、図１３に示す夫々の交信周期（第１〜第６交信周期の夫々）は、簡単のためにコントローラユニット５０に割り当てられているタイムスロットの表記を省略しているが、実際には既に述べたように夫々４つのタイムスロットから構成されており、コントローラユニット５０Ａからコントローラユニット５０Ｂ、５０Ｃへのデータ交信にかかる処理のうちのＤＭＡ転送以外の処理はそのうちの１つのタイムスロットを使用して実行される。
【００５１】
まず、第１交信周期において、コントローラユニット５０ＡのＣＰＵ５１は、交信データのうちの前半部分を生成すると、当該前半部分の交信データ（分割データＤ０）から転送単位データＤ０を生成し、生成した転送単位データＤ０をＤＲＡＭ１２に格納する（ステップＳ２１）。その後、第２交信周期において、コントローラユニット５０ＡのＣＰＵ５１は、交信データのうちの後半部分を生成すると、当該後半部分の交信データ（分割データＤ１）から転送単位データＤ１を生成し、生成した転送単位データＤ１をＤＲＡＭ１２に格納する（ステップＳ２２）。なお、コントローラユニット５０ＡのＣＰＵ５１は、転送単位データを生成する際には、夫々のヘッダ部１００にブロック番号を記入する。
【００５２】
第２交信周期の末尾のＤＭＡ転送用のタイムスロットにおいては、コントローラユニット５０ＡのＣＰＵ５１は、ＤＭＡコントローラ１３に指令して、ＤＲＡＭ１２に格納されている転送単位データＤ０をＤＲＡＭ１２から送信用交信メモリ４３に転送させる（ステップＳ２３）。
【００５３】
第３交信周期においては、コントローラユニット５０Ａの定周期バスＩ／Ｆ４２は、送信用交信メモリ４３に格納されている転送単位データＤ０をコントローラユニット５０Ｂの受信用交信メモリ４４に転送する（ステップＳ２４）。その後、第３交信周期のＤＭＡ転送用のタイムスロットにおいて、コントローラユニット５０ＢのＣＰＵ５１は、受信用交信メモリ４４に格納されている転送単位データＤ０のヘッダ部１００に記述されているブロック番号を参照するとともに、ＤＭＡコントローラ１３に指令して、データ部１０１に格納されている分割データＤ０を受信用交信メモリ４４からＤＲＡＭ１２に転送させる（ステップＳ２５）。また、ステップＳ２５の処理と同時並行的に、コントローラユニット５０ＡのＣＰＵ５１は、ＤＭＡコントローラ１３に指令して、ＤＲＡＭ１２に格納されている転送単位データＤ１をＤＲＡＭ１２から送信用交信メモリ４３に転送させる（ステップＳ２６）。
【００５４】
第４交信周期においては、コントローラユニット５０Ａの定周期バスＩ／Ｆ４２は、送信用交信メモリ４３に格納されている転送単位データＤ１をコントローラユニット５０Ｂの受信用交信メモリ４４に転送する（ステップＳ２７）。その後、第４交信周期のＤＭＡ転送用のタイムスロットにおいては、コントローラユニット５０ＢのＣＰＵ５１は、受信用交信メモリ４４に格納されている転送単位データＤ１のヘッダ部１００に記述されているブロック番号を参照するとともに、ＤＭＡコントローラ１３に指令して、データ部１０１に格納されている分割データＤ１を受信用交信メモリ４４からＤＲＡＭ１２に転送させる（ステップＳ２８）。なお、コントローラユニット５０ＢのＣＰＵ５１は、実施の形態１のＣＰＵ１１と同様に、分割データＤ０および分割データＤ１から分割前の交信データを再構築する。
【００５５】
このように、本発明の実施の形態３によれば、ＤＭＡ転送用のタイムスロットを交信周期の末尾に確保し、ＣＰＵ５１は、交信周期毎に、交信データの完成を待つことなく当該交信データの生成済みの一部から転送単位データを生成する、ように構成したので、図１３のステップＳ２３に示すように、交信データが完成する前に当該交信データにかかるＤＭＡ転送を開始することができるようになる。即ち、送信側のコントローラユニット５０が交信データを生成してから受信側のコントローラユニット５０が当該交信データを利用できるようになるまでの時間を実施の形態２に比べてさらに短縮することができる。
【００５６】
実施の形態４．
図１４は、本発明にかかる実施の形態４のプログラマブルコントローラシステムの構成を示す図である。なお、ここでは、実施の形態１と同じ構成要素には同一の符号を付して、重複する説明を省略する。図１４に示すように、プログラマブルコントローラシステム４は、コントローラユニット６０Ａ〜６０Ｃとベースユニット２０とを備えて構成されている。以降、コントローラユニット６０Ａ〜６０Ｃをコントローラユニット６０と総称する場合がある。
【００５７】
図１５は、コントローラユニット６０の構成を説明する図である。図示するように、コントローラユニット６０は、ＣＰＵ６１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ１４を備えている。ＣＰＵ６１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ１４は夫々バスに接続されている。
【００５８】
定周期バスＩ／Ｆ１４は定周期バス３０に接続するための接続インタフェースである。実施の形態４の定周期バスＩ／Ｆ１４は、送信用交信メモリ１５ａ、送信用交信メモリ１５ｂ、受信用交信メモリ１６ａ、および受信用交信メモリ１６ｂを備えている。
【００５９】
次に、本発明の実施の形態４のプログラマブルコントローラシステム４の動作を説明する。図１６は、データの送受信のタイミングを説明するタイミングチャートである。なお、ここでは、説明を簡単にするために、コントローラユニット６０Ａが送信元となり、コントローラユニット６０Ｂおよびコントローラユニット６０Ｃが送信先となるデータ交信について説明する。なお、図１６に示す夫々の交信周期（第１〜第６交信周期の夫々）は、簡単のためにコントローラユニット６０に割り当てられているタイムスロットの表記を省略しているが、実際には夫々３つのタイムスロットから構成されており、コントローラユニット６０Ａからコントローラユニット６０Ｂ、６０Ｃへのデータ交信にかかる処理はそのうちの１つのタイムスロットを使用して実行される。
【００６０】
まず、第１交信周期において、コントローラユニット６０ＡのＣＰＵ６１は、交信データのうちの前半部分を生成すると、当該前半部分の交信データ（分割データＤ０）から転送単位データＤ０を生成し、生成した転送単位データＤ０を送信用交信メモリ１５ａに格納する（ステップＳ３１）。
【００６１】
第２交信周期において、コントローラユニット６０Ａの定周期バスＩ／Ｆ１４は、送信用交信メモリ１５ａに格納されている転送単位データＤ０をコントローラユニット６０Ｂの受信用交信メモリ１６ａに転送する（ステップＳ３２）。ステップＳ３２の処理と同時並行的に、コントローラユニット６０ＡのＣＰＵ６１は、ＤＭＡコントローラ１３に指令して、送信用交信メモリ１５ａに格納されている転送単位データＤ０を送信用交信メモリ１５ａからＤＲＡＭ１２に転送させる（ステップＳ３３）。さらに、第２交信周期において、コントローラユニット６０ＡのＣＰＵ６１は、交信データのうちの後半部分を生成すると、当該後半部分の交信データ（分割データＤ１）から転送単位データＤ１を生成し、生成した転送単位データＤ１を送信用交信メモリ１５ｂに格納する（ステップＳ３４）。なお、コントローラユニット６０ＡのＣＰＵ６１は、転送単位データを生成する際には、夫々のヘッダ部１００にブロック番号を記入する。
【００６２】
第３交信周期において、コントローラユニット６０ＡのＣＰＵ６１は、ＤＭＡコントローラ１３に指令して、送信用交信メモリ１５ｂに格納されている転送単位データＤ１を送信用交信メモリ１５ｂからＤＲＡＭ１２に転送させる（ステップＳ３５）。また、コントローラユニット６０Ａの定周期バスＩ／Ｆ１４は、送信用交信メモリ１５ｂに格納されている転送単位データＤ１をコントローラユニット６０Ｂの受信用交信メモリ１６ｂに転送する（ステップＳ３６）。また、コントローラユニット６０ＢのＣＰＵ６１は、ＤＭＡコントローラ１３に指令して、受信用交信メモリ１６ａに格納されている転送単位データＤ０を受信用交信メモリ１６ａからＤＲＡＭ１２に転送させる（ステップＳ３７）。ステップＳ３６およびステップＳ３７の処理は、ステップＳ３５の処理と同時並行的に実行される。
【００６３】
第４交信周期において、コントローラユニット６０ＢのＣＰＵ６１は、ＤＭＡコントローラ１３に指令して、受信用交信メモリ１６ｂに格納されている転送単位データＤ１を受信用交信メモリ１６ｂからＤＲＡＭ１２に転送させる（ステップＳ３８）。なお、コントローラユニット６０ＢのＣＰＵ６１は、実施の形態１のＣＰＵ１１と同様に、分割データＤ０および分割データＤ１から分割前の交信データを再構築する。
【００６４】
このように、本発明の実施の形態４によれば、送信側のコントローラユニット６０では、ＣＰＵ６１は、交信周期よりも大きい演算周期で完成する交信データを、交信周期毎に分割して生成し、生成した分割データの夫々をＤＲＡＭ１２を介さずに送信用交信メモリ１５に直接格納し、受信側のコントローラユニット６０では、ＤＭＡコントローラ１３は、ユニット間転送処理により受信用交信メモリ１６に転送されてきた複数の分割データを交信周期毎に順次読み出して、ＣＰＵ６１は、ＤＭＡコントローラ１３が読み出した複数の分割データを結合して交信データを構築する、ように構成したので、ＤＲＡＭ１２を介して送信用交信メモリ１５に分割データを格納する場合に比べて、送信側のコントローラユニット６０が交信データを生成してから受信側のコントローラユニット６０が当該交信データを利用できるようになるまでの時間を短縮することができる。
【００６５】
また、送信側のコントローラユニット６０では、ＤＭＡコントローラ１３は、送信用交信メモリ１５に順次格納した複数の分割データを交信周期毎に順次読み出して、ＣＰＵ６１は、ＤＭＡコントローラ１３が読み出した複数の分割データを結合して交信データを構築する、ように構成したので、生成した分割データをＤＲＡＭ１２を介さずに送信用交信メモリ１５に格納する本発明の実施の形態４においても、送信側のコントローラユニット６０は受信側のコントローラユニット６０に送信済みの交信データを利用することができる。
【００６６】
また、送信用交信メモリ１５および受信用交信メモリ１６は夫々ダブルバッファを構成し、ＤＲＡＭ１２と送信用交信メモリ１５との間のデータ転送、ユニット間転送処理、および受信用交信メモリ１６とＤＲＡＭ１２との間のデータ転送をパイプライン処理的に実行するように構成したので、交信周期毎に転送単位データをデータ転送することができる。
【００６７】
また、交信周期は、複数のコントローラユニット６０の夫々に排他的に割り当てられる複数のタイムスロットに時分割されており、送信側のコントローラユニット６０における分割データを送信用交信メモリ１５に格納する処理、送信側のコントローラユニット６０と受信側のコントローラユニット６０との間のユニット間転送処理、および受信側のコントローラユニット６０における受信用交信メモリ１６とＤＲＡＭ１２との間のデータ転送は、送信側のコントローラユニット６０に割り当てられたタイムスロットにおいて実行される、ように構成したので、複数のコントローラユニット６０間の交信データの衝突を防止することができる。
【００６８】
実施の形態５．
図１７は、本発明にかかる実施の形態５のプログラマブルコントローラシステムの構成を示す図である。なお、ここでは、実施の形態１と同じ構成要素には同一の符号を付して、重複する説明を省略する。図１７に示すように、プログラマブルコントローラシステム５は、コントローラユニット７０Ａ〜７０Ｃとベースユニット２０とを備えて構成されている。以降、コントローラユニット７０Ａ〜７０Ｃをコントローラユニット７０と総称する場合がある。
【００６９】
図１８は、コントローラユニット７０の構成を説明する図である。図示するように、コントローラユニット７０は、ＣＰＵ７１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ７２を備えている。ＣＰＵ７１、ＤＲＡＭ１２、ＤＭＡコントローラ１３、および定周期バスＩ／Ｆ７２は夫々バスに接続されている。
【００７０】
定周期バスＩ／Ｆ７２は定周期バス３０に接続するための接続インタフェースである。実施の形態５の定周期バスＩ／Ｆ７２は、送信用交信メモリ７３ａ、送信用交信メモリ７３ｂ、および受信用交信メモリ７４を備えている。
【００７１】
次に、本発明の実施の形態５のプログラマブルコントローラシステム５の動作を説明する。図１９は、データの送受信のタイミングを説明するタイミングチャートである。なお、ここでは、説明を簡単にするために、コントローラユニット７０Ａが送信元となり、コントローラユニット７０Ｂおよびコントローラユニット７０Ｃが送信先となるデータ交信について説明する。なお、図１９に示す夫々の交信周期（第１〜第６交信周期の夫々）は、簡単のためにコントローラユニット７０に割り当てられているタイムスロットの表記を省略しているが、実際には夫々４つのタイムスロットから構成されており、コントローラユニット７０Ａからコントローラユニット７０Ｂ、７０Ｃへのデータ交信にかかる処理は、ＤＭＡ転送にかかる処理を除き、そのうちの１つのタイムスロットを使用して実行される。
【００７２】
まず、第１交信周期において、コントローラユニット７０ＡのＣＰＵ７１は、交信データのうちの前半部分を生成すると、当該前半部分の交信データ（分割データＤ０）から転送単位データＤ０を生成し、生成した転送単位データＤ０を送信用交信メモリ７３ａに格納する（ステップＳ４１）。その後、第１交信周期のＤＮＡ転送用のタイムスロットにおいては、コントローラユニット７０ＡのＣＰＵ７１は、ＤＭＡコントローラ１３に指令して、送信用交信メモリ７３ａに格納されている転送単位データＤ０を送信用交信メモリ７３ａからＤＲＡＭ１２に転送させる（ステップＳ４２）。
【００７３】
第２交信周期において、コントローラユニット７０Ａの定周期バスＩ／Ｆ７２は、送信用交信メモリ７３ａに格納されている転送単位データＤ０をコントローラユニット７０Ｂの受信用交信メモリ７４に転送する（ステップＳ４３）。ステップＳ４３の処理と同時並行的に、コントローラユニット７０ＡのＣＰＵ７１は、交信データのうちの後半部分を生成すると、当該後半部分の交信データ（分割データＤ１）から転送単位データＤ１を生成し、生成した転送単位データＤ１を送信用交信メモリ７３ｂに格納する（ステップＳ４４）。なお、コントローラユニット７０ＡのＣＰＵ７１は、転送単位データを生成する際には、夫々のヘッダ部１００にブロック番号を記入する。
【００７４】
ステップＳ４３、ステップＳ４４の処理の後、第２交信周期のＤＮＡ転送用のタイムスロットにおいては、コントローラユニット７０ＡのＣＰＵ７１は、ＤＭＡコントローラ１３に指令して、送信用交信メモリ７３ｂに格納されている転送単位データＤ１を送信用交信メモリ７３ｂからＤＲＡＭ１２に転送させる（ステップＳ４５）。ステップＳ４５と同時並行的に、コントローラユニット７０ＢのＣＰＵ７１は、ＤＭＡコントローラ１３に指令して、受信用交信メモリ７４に格納されている転送単位データＤ０を受信用交信メモリ７４からＤＲＡＭ１２に転送させる（ステップＳ４６）。
【００７５】
第３交信周期において、コントローラユニット７０Ａの定周期バスＩ／Ｆ７２は、送信用交信メモリ７３ｂに格納されている転送単位データＤ１をコントローラユニット７０Ｂの受信用交信メモリ７４に転送する（ステップＳ４７）。その後、第３交信周期のＤＭＡ転送用のタイムスロットにおいては、コントローラユニット７０ＢのＣＰＵ７１は、ＤＭＡコントローラ１３に指令して、受信用交信メモリ７４に格納されている転送単位データＤ１を受信用交信メモリ７４からＤＲＡＭ１２に転送させる（ステップＳ４８）。なお、コントローラユニット７０ＢのＣＰＵ７１は、実施の形態１のＣＰＵ１１と同様に、分割データＤ０および分割データＤ１から分割前の交信データを再構築する。
【００７６】
このように、本発明の実施の形態５によれば、ＤＭＡ転送用のタイムスロットを交信周期の末尾に確保し、ＣＰＵ７１は、交信周期毎に、交信データの完成を待つことなく当該交信データの生成済みの一部である分割データを送信用交信メモリ７３に格納する、ように構成したので、図１９のステップＳ４２に示すように、交信データが完成する前に当該交信データにかかるＤＭＡ転送を開始することができるようになる。即ち、送信側のコントローラユニット７０が交信データを生成してから受信側のコントローラユニット７０が当該交信データを利用できるようになるまでの時間を実施の形態４に比べてさらに短縮することができる。
【符号の説明】
【００７７】
１、２、３、４、５  プログラマブルコントローラシステム
１０、４０、５０、６０、７０、１０Ａ〜１０Ｃ、４０Ａ〜４０Ｃ、５０Ａ〜５０Ｃ、６０Ａ〜６０Ｃ、７０Ａ〜７０Ｃ  コントローラユニット
１１、４１、５１、６１、７１  ＣＰＵ
１２  ＤＲＡＭ
１３  ＤＭＡコントローラ
１４、４２、７２  定周期バスＩ／Ｆ
１５、１５ａ、１５ｂ、４３、７３ａ、７３ｂ  送信用交信メモリ
１６、１６ａ、１６ｂ、４４、７４  受信用交信メモリ
２０  ベースユニット
３０  定周期バス
１００  ヘッダ部
１０１  データ部
【図１】
0005523630.tif 000002
【図２】
0005523630.tif 000003
【図３】
0005523630.tif 000004
【図４】
0005523630.tif 000005
【図５】
0005523630.tif 000006
【図６】
0005523630.tif 000007
【図７】
0005523630.tif 000008
【図８】
0005523630.tif 000009
【図９】
0005523630.tif 000010
【図１０】
0005523630.tif 000011
【図１１】
0005523630.tif 000012
【図１２】
0005523630.tif 000013
【図１３】
0005523630.tif 000014
【図１４】
0005523630.tif 000015
【図１５】
0005523630.tif 000016
【図１６】
0005523630.tif 000017
【図１７】
0005523630.tif 000018
【図１８】
0005523630.tif 000019
【図１９】
0005523630.tif 000020