(57)【要約】【課題】バスシステム、及びこのバスシステムを用いるＰＬＣにおいて、高速なデータ転送を可能にする。【解決手段】バスシステムは、プログラムを実行するＣＰＵユニットと、１つ以上のＩＯユニットと、データ転送を行うバスとを備える。ＣＰＵユニットは、バスアクセスタイム設定用レジスタを有する。バスアクセスタイム設定用レジスタは、バスに接続されたＩＯユニットの接続台数に応じたバスアクセスタイム（データ転送速度）を格納している。ＣＰＵユニットは、バスアクセスタイムに固定バスアクセスタイムを設定した後（Ｓ１）、バスに接続されている接続ＩＯユニット数を検出する（Ｓ２〜Ｓ５）。そして、ＣＰＵユニット１１は、接続ＩＯユニット数の検出値に応じたバスアクセスタイムの値をバスアクセスタイム設定用レジスタから読出し（Ｓ６）、バスアクセスタイムを読出した値に変更する（Ｓ７）。【選択図】図３
2011227822.tif 000002
【特許請求の範囲】
【請求項１】
スタッキング接続用コネクタを有し、プログラムを実行するＣＰＵユニットと、
スタッキング接続用コネクタを有し、外部機器に対して信号の入出力を行う１つ以上の入出力ユニットと、
前記ＣＰＵユニットのスタッキング接続用コネクタと前記１つ以上の入出力ユニットのスタッキング接続用コネクタとを互いに接続することにより形成されたデータ転送用のバスとを備え、
前記ＣＰＵユニットと前記１つ以上の入出力ユニットとが前記バスを介してデータ転送を行うバスシステムにおいて、
前記ＣＰＵユニットは、前記バスに接続された前記入出力ユニットの台数に応じて、該ＣＰＵユニットと該入出力ユニットとの間のデータ転送速度を変更することを特徴とするバスシステム。
【請求項２】
前記１つ以上の入出力ユニットは、該入出力ユニットがデータの転送準備ができていないことを前記ＣＰＵユニットに通知するための信号を送信する機能を有していないタイプの入出力ユニットを含み、
前記ＣＰＵユニットは、前記１つ以上の入出力ユニットのうちの全ての入出力ユニットについて、これらの入出力ユニットの各々によって送受信可能である最高速度のデータ転送速度の情報を格納した転送速度情報格納手段を有し、
前記ＣＰＵユニットは、該ＣＰＵユニットと前記１つ以上の入出力ユニットとの間のデータ転送速度を、前記転送速度情報格納手段に格納されたデータ転送速度の情報に基づいて算出することを特徴とする請求項１に記載のバスシステム。
【請求項３】
前記１つ以上の入出力ユニットは、該入出力ユニットがデータの転送準備ができていないことを前記ＣＰＵユニットに通知するための信号を送信する機能を有していないタイプの入出力ユニットを含み、
前記１つ以上の入出力ユニットの各々は、該入出力ユニットによって送受信可能である最高速度のデータ転送速度の情報を格納した入出力ユニット側転送速度情報格納手段を有し、
前記ＣＰＵユニットは、該ＣＰＵユニットと前記１つ以上の入出力ユニットとの間のデータ転送速度を、前記入出力ユニット側転送速度情報格納手段に格納されたデータ転送速度の情報に基づいて算出することを特徴とする請求項１に記載のバスシステム。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のバスシステムを用いるＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステム、及びバスシステムを用いるＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）に関する。
【背景技術】
【０００２】
従来から、バスを介して接続されたＣＰＵユニットとＩＯユニットとの間のデータ転送速度（以下、バスアクセスタイムという）が、バスに接続可能な最大のＩＯユニット数（以下、最大ＩＯユニット数という）に応じたバスアクセスタイム（以下、固定バスアクセスタイムという）に固定されているものが知られている。すなわち、固定バスアクセスタイムは、最大ＩＯユニット数だけＩＯユニットをバスに接続した場合に、ＣＰＵユニットとＩＯユニットとの間にデータ転送の遅延等が生じない設計値であり、常に一定の値である。従って、ＣＰＵユニットとＩＯユニットとの間は、実際には固定バスアクセスタイムよりも高速にデータ転送が可能である場合であっても、バスアクセスタイムが制限されるため、高速なデータ転送が行えなかった。
【０００３】
上記具体例としては、バスの最大ＩＯユニット数が１６台であり、このときの固定バスアクセスタイムが１５０ｎｓであるバスシステムがあるものとする。このバスシステムにおいて、ＩＯユニットが４台だけ接続されている場合に、実現可能なバスアクセスタイムが７０ｎｓであったとすると、固定バスアクセスタイム（１５０ｎｓ）でデータ転送を行うことになる。従って、８０ｎｓ（１５０ｎｓ−７０ｎｓ）もバスアクセスタイムが遅くなってしまう。
【０００４】
ところで、ＩＯユニットの中には、データの転送準備ができていないことをＣＰＵユニットに通知するための信号（以下、Ｗａｉｔ信号という）を送信する機能を有していないＩＯユニット（以下、ＩＯユニットＡという）がある。従来、この種のＩＯユニットＡがバスに接続された場合には、バス全体のバスアクセスタイムを、ＣＰＵユニットとＩＯユニットＡとの間でデータ転送に確実に遅延等が生じないバスアクセスタイム（以下、制限バスアクセスタイム）に制限している。
【０００５】
例えば、ＣＰＵユニットとＩＯユニットＡとの間の制限バスアクセスタイムが３００ｎｓである場合、ＩＯユニットＡがバスに接続されたバスシステムでは、ＩＯユニットの接続台数に係わらず、バス全体におけるバスアクセスタイムが３００ｎｓとなる。従って、バスに接続されるＩＯユニットの数が少ない場合であっても、ＩＯユニットとＣＰＵユニットとの間のバスアクセスタイムが制限バスアクセスタイムに制限されてしまう。また、Ｗａｉｔ信号を送信できるＩＯユニットとＣＰＵユニットとの間のバスアクセスタイムも、制限バスアクセスタイムに制限されてしまうため、高速なデータ転送が行えない。
【０００６】
これに対して、特許文献１には、複数のローカルＩＯモジュールを収納したＩＯユニットをマルチドロップで一つのシリアルバスに接続し、同じシリアルバスにリモートＩＯモジュールを接続するＰＬＣシステムが開示されている。このＰＬＣシステムでは、ＩＯユニットにそれぞれに設けられているＩＦモジュールが順次次段のＩＯユニットにデータを中継することで、一つのシリアルバスによりローカルＩＯモジュールとリモートＩＯモジュールとを一元管理することができる。しかしながら、このＰＬＣシステムでは、上記問題を解決できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１１４７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上述した問題点を解決するためになされたものであり、高速なデータ転送が可能なバスシステム、及びこのバスシステムを用いるＰＬＣを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために請求項１の発明は、スタッキング接続用コネクタを有し、プログラムを実行するＣＰＵユニットと、スタッキング接続用コネクタを有し、外部機器に対して信号の入出力を行う１つ以上の入出力ユニットと、前記ＣＰＵユニットのスタッキング接続用コネクタと前記１つ以上の入出力ユニットのスタッキング接続用コネクタとを互いに接続することにより形成されたデータ転送用のバスとを備え、前記ＣＰＵユニットと前記１つ以上の入出力ユニットとが前記バスを介してデータ転送を行うバスシステムにおいて、前記ＣＰＵユニットは、前記バスに接続された前記入出力ユニットの台数に応じて、該ＣＰＵユニットと該入出力ユニットとの間のデータ転送速度を変更するものである。
【００１０】
また、請求項２の発明は、請求項１に記載のバスシステムにおいて、前記１つ以上の入出力ユニットは、該入出力ユニットがデータの転送準備ができていないことを前記ＣＰＵユニットに通知するための信号を送信する機能を有していないタイプの入出力ユニットを含み、前記ＣＰＵユニットは、前記１つ以上の入出力ユニットのうちの全ての入出力ユニットについて、これらの入出力ユニットの各々によって送受信可能である最高速度のデータ転送速度の情報を格納した転送速度情報格納手段を有し、前記ＣＰＵユニットは、該ＣＰＵユニットと前記１つ以上の入出力ユニットとの間のデータ転送速度を、前記転送速度情報格納手段に格納されたデータ転送速度の情報に基づいて算出するものである。
【００１１】
また、請求項３の発明は、請求項１に記載のバスシステムにおいて、前記１つ以上の入出力ユニットは、該入出力ユニットがデータの転送準備ができていないことを前記ＣＰＵユニットに通知するための信号を送信する機能を有していないタイプの入出力ユニットを含み、前記１つ以上の入出力ユニットの各々は、該入出力ユニットによって送受信可能である最高速度のデータ転送速度の情報を格納した入出力ユニット側転送速度情報格納手段を有し、前記ＣＰＵユニットは、該ＣＰＵユニットと前記１つ以上の入出力ユニットとの間のデータ転送速度を、前記入出力ユニット側転送速度情報格納手段に格納されたデータ転送速度の情報に基づいて算出するものである。
【００１２】
また、請求項４の発明は、請求項１乃至請求項３のいずれか一項に記載のバスシステムを用いるＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）である。
【発明の効果】
【００１３】
本発明によれば、バスに接続された入出力ユニットの台数に応じて、ＣＰＵユニットと入出力ユニットとの間のデータ転送速度を変更できるため、従来と異なり、ＣＰＵユニットと入出力ユニットとの間のデータ転送速度が、バスに接続可能な最大の入出力ユニット数に応じた転送速度に固定されない。従って、バスに接続されている入出力ユニット数が、上記の最大の入出力ユニット数未満である場合には、従来よりも高速なデータ転送を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るバスシステムを備えるＰＬＣの概略構成を示すブロック図。
【図２】上記バスシステムの一例を示す概略構成図。
【図３】上記ＰＬＣにおけるバスアクセスタイム変更処理の手順を示すフローチャート。
【図４】本発明の第２の実施形態に係るバスシステムを備えるＰＬＣの概略構成を示すブロック図。
【図５】上記ＰＬＣにおけるバスアクセスタイム変更処理の手順を示すフローチャート。
【図６】本発明の第３の実施形態に係るバスシステムを備えるＰＬＣの概略構成を示すブロック図。
【図７】上記バスシステムの一例を示す概略構成図。
【図８】上記ＰＬＣにおけるバスアクセスタイム変更処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、本発明の第１の実施形態に係るバスシステム、及びこのバスシステムを備えるＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）について、図１及び図２を参照して説明する。図１は、バスシステム１ａを備えるＰＬＣ１の概略構成のブロック図を示し、図２は、バスシステム１ａの概略構成の一例を示す。
【００１６】
ＰＬＣ１は、ラダーシーケンスプログラムを実行するＣＰＵユニット１１、及び複数のＩＯユニット２１〜２４を有するバスシステム１ａと、入出力装置（外部機器）１０１、１０２と、データ転送を行うためのバス３１とを備える。入出力装置１０１、１０２は、バスシステム１ａのＩＯユニット２１、２２を介して接続された、例えば、映像やメッセージを表示可能なモニタ装置や、ユーザによって操作されるキーボード等である。
【００１７】
バス３１は、ＣＰＵユニット１１に設けられたスタッキング接続用コネクタ１１ａと、複数のＩＯユニット２１〜２４のそれぞれに設けられたスタッキング接続用コネクタ２１ａ〜２４ａとが連結して形成されている。
【００１８】
ＣＰＵユニット１１は、スタッキング接続用コネクタ１１ａに加えて、ＣＰＵ１１ｂと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１ｃと、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１ｄと、バスアクセスタイム設定用レジスタ１１ｅとを有する。
【００１９】
ＣＰＵ１１ｂは、各種制御や演算処理等を行う中央演算処理装置である。ＲＡＭ１１ｃは、ＣＰＵ１１ｂによる演算処理の結果等を格納する。ＲＯＭ１１ｄは、ラダーシーケンスプログラム等を格納している。バスアクセスタイム設定用レジスタ１１ｅは、バス３１に接続されたＩＯユニット２１〜２４の接続台数に応じたバスアクセスタイム（データ転送速度）を格納している。また、バスアクセスタイム設定用レジスタ１１ｅは、接続可能な最大数のＩＯユニットがバス３１に接続された場合に、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のデータ転送に遅延を生じないバスアクセスタイム（以下、固定バスアクセスタイムという）も格納している。
【００２０】
ＣＰＵユニット１１は、ＰＬＣ１の電源投入時に、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを、バス３１に接続されたＩＯユニット２１〜２４の台数に応じた値に変更（設定）する処理（以下、バスアクセスタイム変更処理という）を行う。ＣＰＵユニット１１は、バスアクセスタイム変更処理を行った後に、バス３１を介してＩＯユニット２１〜２４から転送された入力信号に基づいて演算を実行したり、実行結果をＩＯユニット２１〜２４に出力したりするシーケンス制御処理を行う。
【００２１】
複数のＩＯユニット２１〜２４のそれぞれは、入出力装置１０１、１０２等に対して制御信号やデータの入出力を行うものであり、スタッキング接続用コネクタ２１ａ〜２４ａに加えて、ステータスデータ２１ｂ〜２４ｂを有する。ステータスデータ２１ｂ〜２４ｂには、自ＩＯユニット２１〜２４のステータス状態を示す値が格納されている。具体的には例えば、ステータスデータ２１ｂ〜２４ｂには、入出力装置として出力装置が接続されていることを示す値や、入出力装置として入力装置が接続されていることを示す値が格納される。また、スタッキング接続用コネクタ２１ａ〜２４ａに次段のＩＯユニット２１〜２４が接続されていないことを示す値（例えば「ＦＦｈ」）が格納される。
【００２２】
次に、上記バスアクセスタイム変更処理について、図３に示すフローチャートを参照して説明する。まず、ＣＰＵユニット１１は、バスアクセスタイム設定用レジスタ１１ｅから上記の固定バスアクセスタイムを読出して、この固定バスアクセスタイムをバスアクセスタイムに設定する（Ｓ１）。そして、ＣＰＵユニット１１は、バス３１に接続されているＩＯユニット数（以下、接続ＩＯユニット数という）の検出値を初期化する（Ｓ２）。すなわち、ここで検出値を「０」にする。
【００２３】
そして、ＣＰＵユニット１１は、バス３１に接続されているＩＯユニット２１〜２４のステータスデータ２１ｂ〜２４ｂを順に読出し（Ｓ３）、読出したステータスデータが「ＦＦｈ」でない場合（Ｓ４でＮＯ）、接続ＩＯユニット数の検出値を＋１（検出値＋１＝検出値）する（Ｓ５）。一方、読出したステータスデータ２１ｂ〜２４ｂが「ＦＦｈ」である場合（Ｓ４でＹＥＳ）、ＣＰＵユニット１１は、接続ＩＯユニット数の検出値に応じたバスアクセスタイムの値をバスアクセスタイム設定用レジスタ１１ｅから読出す（Ｓ６）。そして、ＣＰＵユニット１１は、バス３１のバスアクセスタイムを、上記Ｓ６で読出したバスアクセスタイムの値に変更する（Ｓ７）。
【００２４】
具体的には例えば、バスアクセスタイムの単位が「１０ｎｓ」であり、バス３１の接続ＩＯユニット数が「4台」である場合、バスアクセスタイム設定用レジスタ１１ｅから「７」の値が読出されたとする（上記Ｓ６に相当）。その場合、７×１０ｎｓ＝７０ｎｓであるから、ＣＰＵユニット１は、バスアクセスタイムを「７０ｎｓ」に変更する（上記Ｓ７に相当）。
【００２５】
上述したように、本実施形態に係るバスシステム１ａ、及びバスシステム１ａを備えるＰＬＣ１においては、バス３１に接続されたＩＯユニット２１〜２４の台数に応じて、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを変更できる。そのため、従来と異なり、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムが最大ＩＯユニット数を接続した場合のバスアクセスタイム（固定バスアクセスタイム）に固定されないので、従来よりも高速なデータ転送を行うことができる。従って、処理を迅速に行うことができる。なお、上記実施形態においては、バスアクセスタイム設定用レジスタ１１ｅを、ＣＰＵユニット１１内のＣＰＵ１１ａが管理する、例えばＲＡＭ１１ｃやＲＯＭ１１ｄ等のメモリ内に設けてもよい。また、バスアクセスタイム設定用レジスタ１１ｅは、ＣＰＵユニット１１とバス３１との間の通信を制御する回路部（図示せず）内に設けてもよい。
【００２６】
次に、本発明の第２の実施形態に係るバスシステム、及びこのバスシステムを備えるＰＬＣについて、図４を参照して説明する。本実施形態に係るバスシステム１ａ、及びバスシステム１ａを備えるＰＬＣ１は、ＣＰＵユニット１１が全ＩＯユニットアクセスタイム設定用レジスタ（転送速度情報格納手段）１１ｆをさらに有すること以外は、前出の図１に示した構成と同様である。また、バスシステム１ａの概略構成の一例は、前出の図２と同様である。バス３１に接続されるＩＯユニット２１〜２４のいずれかは、データの転送準備ができていないことをＣＰＵユニット１１に通知するための信号（Ｗａｉｔ信号）を送信する機能を有していないタイプのものである。
【００２７】
全ＩＯユニットアクセスタイム設定用レジスタ１１ｆは、ＩＯユニット２１〜２４のそれぞれについて、ＣＰＵユニット１１とデータの送受信が可能である最高速度のデータ転送速度（バスアクセスタイム）の情報を格納している。Ｗａｉｔ信号を送信できないＩＯユニットについては、Ｗａｉｔ信号が送信可能であるＩＯユニットよりも遅いバスアクセスタイムの情報が格納されている。
【００２８】
ＣＰＵユニット１１は、バスアクセスタイム設定用レジスタ１１ｅ及び全ＩＯユニットアクセスタイム設定用レジスタ１１ｆの情報に基づいて、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを変更するためのバスアクセスタイム変更処理を行う。
【００２９】
次に、バスアクセスタイム変更処理について、図５に示すフローチャートを参照して説明する。まず、ＣＰＵユニット１１は、バス３１に接続されているＩＯユニット数に応じたバスアクセスタイムをバスアクセスタイム設定用レジスタ１１ｅから読出す処理を行う（Ｓ１１）。この処理は、前出の図３に示したＳ１〜Ｓ６に相当する処理であるため、その説明を省略する。
【００３０】
そして、ＣＰＵユニット１１は、全ＩＯユニットアクセスタイム設定用レジスタ１１ｆからＩＯユニット２１〜２４のそれぞれに対応するバスアクセスタイムの情報を読出す（Ｓ１２）。そして、ＣＰＵユニット１１は、バス３１に接続されているすべてのＩＯユニット２１〜２４に対応したバスアクセスタイムの情報を読出す（Ｓ１３でＹＥＳ）。そして、ＣＰＵユニット１１は、読出した全てのＩＯユニット２１〜２４に対応した各バスアクセスタイムの情報と、上記Ｓ１１で読出したＩＯユニット数に応じたバスアクセスタイムとに基づいて、実際に使用するバスアクセスタイムを算出する（Ｓ１４）。ＣＰＵユニット１１は、バス３１のバスアクセスタイムを、上記Ｓ１４で算出したバスアクセスタイムの値に変更する（Ｓ１５）。
【００３１】
具体的には例えば、バスアクセスタイムの単位が「１０ｎｓ」であり、バスアクセスタイム設定用レジスタ１１ｅから読み出された値が「７」であるとする（上記Ｓ１１に相当）。そして、全ＩＯユニットアクセスタイム設定用レジスタ１１ｆからの読み出し値の最大値が「５」（上記Ｓ１２に相当）であるとき、ＣＰＵユニット１１は、バスアクセスタイムとして（７×１０ｎｓ）＋（５×１０ｎｓ）＝１２０ｎｓを算出する（上記Ｓ１４に相当）。そして、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを１２０ｎｓに変更する（上記Ｓ１５に相当）。
【００３２】
なお、上記バスアクセスタイム変更処理では、ＣＰＵユニット１１とＩＯユニット２１〜２４のそれぞれとの間の個別のバスアクセスタイムを変更してもよい。具体的には例えば、バス３１に接続されたＩＯユニット２１〜２４の台数が4台であるときに、バスアクセスタイム設定用レジスタ１１ｅから読み出された値が「７」であるとする（上記Ｓ１１に相当）。そして、バスアクセスタイムの単位が「１０ｎｓ」であり、ＩＯユニット２１に対応する全ＩＯユニットアクセスタイム設定用レジスタ１１ｆの値として「３」を読み出したものとする（上記Ｓ１２に相当）。この場合、ＣＰＵユニット１１は、バスアクセスタイムとして（７×１０ｎｓ）＋（３×１０ｎｓ）＝１００ｎｓを算出し（上記Ｓ１４に相当）、ＣＰＵユニット１１とＩＯユニット２１との間のバスアクセスタイムについては、上記の１２０ｎｓではなく、１００ｎｓに変更する（上記Ｓ１５に相当）。
【００３３】
上述したように、本実施形態に係るバスシステム１ａ、及びバスシステム１ａを備えるＰＬＣ１においては、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを、バスアクセスタイム設定用レジスタ１１ｅ及び全ＩＯユニットアクセスタイム設定用レジスタ１１ｆの情報に基づいて算出する。そして、バスアクセスタイムを、算出した値に変更する。そのため、バス３１に接続されたＩＯユニット２１〜２４の台数に応じた、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムに基づいて、Ｗａｉｔ信号を送信できないＩＯユニットを含むＩＯユニット２１〜２４とＣＰＵユニット１１との間のバスアクセスタイムを変更できる。従って、ＣＰＵユニット１１とＩＯユニット２１〜２４とは、従来よりも高速なデータ転送を行うことができるので、処理を迅速に行うことができる。
【００３４】
また、図５に示したバスアクセスタイム変更処理では、ＣＰＵユニット１１と各ＩＯユニット２１〜２４との間の個別のバスアクセスタイムを変化させることができる。そのため、Ｗａｉｔ信号を送信できるＩＯユニットとＣＰＵユニットとの間のバスアクセスタイムは、Ｗａｉｔ信号を送信できないＩＯユニットとＣＰＵユニットとの間のバスアクセスタイムよりも、短くできる。つまり、より高速なデータ転送を行うことができる。
【００３５】
なお、上記実施形態においては、全ＩＯユニットアクセスタイム設定用レジスタ１１ｆの情報を、ＣＰＵユニット１１内のＣＰＵ１１ａが管理する、例えばＲＡＭ１１ｃやＲＯＭ１１ｄ等のメモリ内に設けてもよい。また、全ＩＯユニットアクセスタイム設定用レジスタ１１ｆは、ＣＰＵユニット１１とバス３１との間の通信を制御する回路部（図示せず）内に設けてもよい。
【００３６】
次に、本発明の第３の実施形態に係るバスシステム、及びこのバスシステムを備えるＰＬＣについて、図６及び図７を参照して説明する。本実施形態に係るバスシステム１ａ、及びバスシステム１ａを備えるＰＬＣ１は、ＩＯユニット２１〜２４のそれぞれが、個別ＩＯユニットアクセスタイム設定用レジスタ（入出力ユニット側転送速度情報格納手段）２１ｃ〜２４ｃをさらに有すること以外は、前出の図１及び図２に示した構成と同様である。
【００３７】
個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃ〜２４ｃは、それぞれのＩＯユニット２１〜２４によって送受信可能である最高速度のデータ転送速度（バスアクセスタイム）の情報を格納している。Ｗａｉｔ信号を送信できないＩＯユニットについては、Ｗａｉｔ信号が送信可能なＩＯユニットよりも遅い。
【００３８】
ＣＰＵユニット１１は、バスアクセスタイム設定用レジスタ１１ｅ、及び個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃ〜２４ｃの情報に基づいて、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを変更するためのバスアクセスタイム変更処理を行う。
【００３９】
次に、バスアクセスタイム変更処理について、図８に示すフローチャートを参照して説明する。まず、ＣＰＵユニット１１は、バス３１に接続されているＩＯユニット数に応じたバスアクセスタイムをバスアクセスタイム設定用レジスタ１１ｅから読出す処理を行う（Ｓ２１）。この処理は、前出の図３に示したＳ１〜Ｓ６に相当する処理であるため、その説明を省略する。
【００４０】
そして、ＣＰＵユニット１１は、ＩＯユニット２１〜２４のそれぞれから個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃ〜２４ｃに格納されている情報を読出す（Ｓ２２）。そして、ＣＰＵユニット１１は、バス３１に接続されているすべてのＩＯユニット２１〜２４の個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃ〜２４ｃから、各ＩＯユニット２１〜２４に対応したバスアクセスタイムの情報を読出した場合がある（Ｓ２３でＹＥＳ）。その場合、ＣＰＵユニット１１は、読出した各バスアクセスタイムの情報と、上記Ｓ２１で読出したＩＯユニット数に応じたバスアクセスタイムの情報とに基づいて、実際に使用するバスアクセスタイムを算出する（Ｓ２４）。そして、ＣＰＵユニット１１は、バス３１のバスアクセスタイムを、上記Ｓ２４で算出したバスアクセスタイムの値に変更する（Ｓ２５）。
【００４１】
具体的には例えば、バスアクセスタイムの単位が「１０ｎｓ」であり、バスアクセスタイム設定用レジスタ１１ｅから読み出された値が「７」であるとする（上記Ｓ２１に相当）。そして、個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃ〜２４ｃからの読み出し値の最大値が「５」（上記Ｓ２２に相当）であるとき、ＣＰＵユニット１１は、バスアクセスタイムとして（７×１０ｎｓ）＋（５×１０ｎｓ）＝１２０ｎｓを算出する（上記Ｓ２４に相当）。そして、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを１２０ｎｓに変更する（上記Ｓ２５に相当）。
【００４２】
なお、上記バスアクセスタイム変更処理では、ＣＰＵユニット１１とＩＯユニット２１〜２４のそれぞれとの間の個別のバスアクセスタイムを変更してもよい。具体的には例えば、バス３１に接続されたＩＯユニット２１〜２４の台数が4台であるときに、バスアクセスタイム設定用レジスタ１１ｅから読み出された値が「７」であるとする（上記Ｓ２１に相当）。そして、バスアクセスタイムの単位が「１０ｎｓ」であり、ＩＯユニット２１の個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃから「１」を読み出したものとする（上記Ｓ２２に相当）。この場合、ＣＰＵユニット１１は、バスアクセスタイムとして（７×１０ｎｓ）＋（１×１０ｎｓ）＝８０ｎｓを算出し（上記Ｓ２４に相当）、ＣＰＵユニット１１とＩＯユニット２１との間のバスアクセスタイムについては、上記の１２０ｎｓではなく、８０ｎｓに変更する（上記Ｓ２５に相当）。
【００４３】
上述したように、本実施形態に係るバスシステム１ａ、及びバスシステム１ａを備えるＰＬＣ１においては、ＣＰＵユニット１１内に各ＩＯユニット２１〜２４についての個別のバスアクセスタイムの情報を格納することなしに、バスアクセスタイムを適切な値に変更する。すなわち、ＣＰＵユニット１１は、バスアクセスタイム設定用レジスタ１１ｅ、及びＩＯユニット２１〜２４がそれぞれ有する個別ＩＯユニットアクセスタイム設定用レジスタ２１ｃ〜２４ｃの情報に基づいて、ＣＰＵユニット１１とＩＯユニット２１〜２４との間のバスアクセスタイムを変更する。そのため、新たなＩＯユニットがバス３１に接続された場合や、バス３１に接続されたＩＯユニットの送受信可能なバスアクセスタイムが変更された場合であっても、ＣＰＵユニット１１に格納される値の再設定等を行う必要がない。従って、バス３１に接続されるＩＯユニットを容易に追加・変更できるため、ユーザにとって使い勝手がよい。
【００４４】
なお、本発明は、上記各実施形態の構成に限られず、発明の趣旨を変更しない範囲で種々の変形が可能である。例えば、上記各実施形態において、バス３１に接続されるＩＯユニット２１〜２４が４つである例を示したが、１つ以上であればよい。
【符号の説明】
【００４５】
１  ＰＬＣ
１１  ＣＰＵユニット
２１〜２４  ＩＯユニット（入出力ユニット）
側転送速度情報格納手段）
３１  バス
１０１、１０２  入出力装置（外部機器）
１ａ  バスシステム
１１ａ、２１ａ〜２４ａ  スタッキング接続用コネクタ
１１ｆ  ＩＯユニットアクセスタイム設定用レジスタ（転送速度情報格納手段）
２１ｃ〜２４ｃ  個別ＩＯユニットアクセスタイム設定用レジスタ（入出力ユニット側転送速度情報格納手段）
【図１】
2011227822.tif 000003
【図２】
2011227822.tif 000004
【図３】
2011227822.tif 000005
【図４】
2011227822.tif 000006
【図５】
2011227822.tif 000007
【図６】
2011227822.tif 000008
【図７】
2011227822.tif 000009
【図８】
2011227822.tif 000010