(57)【要約】  コントローラシステムは、コントローラ（１）と、コントローラ（１）と通信可能に接続された複数の入出力制御装置（４）と、複数の入出力制御装置（４）に接続されたセンサ機器（５）とを備える。複数の入出力制御装置（４）の各々は、当該入出力制御装置（４）の識別情報、コントローラ（１）側を上位側として規定された当該入出力制御装置（４）の階層の情報、および当該入出力制御装置（４）に接続されたセンサ機器（５）のうちワンショットタイマカウンタ（１２）を起動させる対象となっているものの個数であるセンサ接続数に基づいて、割り込みを発生させるタイミングを規定するワンショットタイマ起動カウント値を算出する起動カウント値算出部（１５）を備える。
2018229968.tif 000002
【特許請求の範囲】
【請求項１】
コントローラ（１）と、
前記コントローラ（１）と通信可能に接続された複数の入出力制御装置（４）と、
前記複数の入出力制御装置（４）に接続されたセンサ機器（５）と、
を備えたコントローラシステムであって、
前記複数の入出力制御装置（４）の各々は、
ワンショットタイマカウントをインクリメントまたはデクリメントするワンショットタイマカウンタ（１２）と、
前記ワンショットタイマカウンタ（１２）に前記ワンショットタイマカウントのインクリメントまたはデクリメントを実施させるトリガを生成するタイマ生成部（１１）と、
前記ワンショットタイマカウントと予め定められたワンショットタイマ起動カウント値との比較結果に基づいて、割り込みを発生させる割り込み発生部（１３）と、
当該入出力制御装置（４）の識別情報、前記コントローラ（１）側を上位側として規定された当該入出力制御装置（４）の階層の情報、および当該入出力制御装置（４）に接続された前記センサ機器（５）のうち前記ワンショットタイマカウンタ（１２）を起動させる対象となっているものの個数であるセンサ接続数に基づいて、前記ワンショットタイマ起動カウント値を算出する起動カウント値算出部（１５）と、
を備える、
ことを特徴とするコントローラシステム。
【請求項２】
前記複数の入出力制御装置（４）の各々において、
前記起動カウント値算出部（１５）は、さらに、当該入出力制御装置（４）と同じ階層の他の入出力制御装置（４）が前記センサ機器（５）のデータをコントローラ（１）へ通知するための所要時間であるワンショットタイマ割り込み所要時間と、当該入出力制御装置（４）の上位の階層に接続されている他の入出力制御装置（４）の前記ワンショットタイマ起動カウント値および前記センサ接続数を考慮に加えて、当該入出力制御装置（４）の前記ワンショットタイマ起動カウント値を算出する、
請求項１に記載のコントローラシステム。
【請求項３】
前記複数の入出力制御装置（４）の各々は、
前記ワンショットタイマカウンタ（１２）の起動間隔が規定起動間隔以上になると、前記コントローラ（１）に異常を通知するワンショットタイマ起動間隔異常管理部（１６）をさらに備え、
前記複数の入出力制御装置（４）の少なくとも１つは、
当該入出力制御装置（４）の前記センサ接続数に基づいて、前記規定起動間隔を算出する規定起動間隔算出部（１７）をさらに備える、
請求項１または請求項２に記載のコントローラシステム。
【請求項４】
前記複数の入出力制御装置（４）の各々は、
前記ワンショットタイマカウンタ（１２）の起動回数が一定回数に達する間隔が、規定起動間隔以上になると、前記コントローラ（１）に異常を通知するワンショットタイマ起動間隔異常管理部（１６）をさらに備え、
前記複数の入出力制御装置（４）の少なくとも１つは、
前記複数の入出力制御装置（４）に接続された全ての前記センサ機器（５）のうち、前記ワンショットタイマカウンタ（１２）を起動させる対象となっている前記センサ機器（５）の合計数と、前記一定回数の値とに基づいて、前記規定起動間隔を算出する規定起動間隔算出部（１７）をさらに備える、
請求項１または請求項２に記載のコントローラシステム。
【請求項５】
前記ワンショットタイマ起動間隔異常管理部（１６）は、
動作モードとして、前記ワンショットタイマカウンタ（１２）の１回ごとの起動を前記間隔の起点にして前記異常の検出を行う第１モードと、前記ワンショットタイマカウンタ（１２）の複数回ごとの起動を前記間隔の起点にして前記検出を行う第２モードと、を備えている、
請求項４に記載のコントローラシステム。
【請求項６】
前記複数の入出力制御装置（４）の各々は、
前記ワンショットタイマカウンタ（１２）による前記ワンショットタイマカウントのインクリメントまたはデクリメントの許可および禁止を制御するワンショットタイマ禁止制御部（１８）をさらに備える、
請求項１から請求項５のいずれか一項に記載のコントローラシステム。
【請求項７】
前記複数の入出力制御装置（４）の各々は、
前記ワンショットタイマカウンタ（１２）による前記ワンショットタイマカウントのインクリメントまたはデクリメントの許可および禁止を制御するワンショットタイマ禁止制御部（１８）をさらに備え、
当該入出力制御装置（４）に接続された前記センサ機器（５）の全てが、前記ワンショットタイマカウンタ（１２）を起動させる対象となっていない場合に、ワンショットタイマ起動間隔異常管理部（１６）による前記異常の検出を禁止する、
請求項３から請求項５のいずれか一項に記載のコントローラシステム。
【請求項８】
前記複数の入出力制御装置（４）の各々は、
当該入出力制御装置（４）に接続された前記センサ機器（５）が、前記ワンショットタイマカウンタ（１２）を起動させる対象となっている場合に、ワンショットタイマ起動間隔異常管理部（１６）による前記異常の検出の許可および禁止を制御可能である、
請求項７に記載のコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラと、それぞれがセンサ機器と接続可能な複数の入出力制御装置とを備えるコントローラシステムに関する。
【背景技術】
【０００２】
一定の周期でプロセッサへハードウェアの割り込み信号を出力する割り込み発生回路が知られている。例えば下記の特許文献１には、プロセッサ内の制御プログラムが、割り込み信号によって起動されるタイマ割り込みルーチンのタイマ処理により、カウンタを加算または減算し、そのカウンタの値に基づいて予め定められた制御を実行する技術が開示されている。この制御プログラムは、割り込み発生回路の故障に起因するカウンタの加算、減算または停止を検知することで、割り込み発生回路の障害を検出する。【０００３】
また、下記の特許文献２には、ＣＰＵ（Central Processing Unit）と、当該ＣＰＵに対して周期性の割り込み信号を発生する割り込み発生回路とを含むシステムが開示されている。当該システムでは、クロックパルスのカウント値が、割り込み発生回路が出力した割り込み信号によってリセットされる。そして、リセットされずにカウント値が特定の値に達したときに、割り込み発生回路が割り込み信号をＣＰＵへ出力する。この割り込み発生回路は、カウンタがリセットされる前の値が正常値か異常値かを判別することで、当該割り込み発生回路の異常を検出する。【０００４】
また、下記の特許文献３には、ＣＰＵに割り込み信号を出力する割り込み発生回路を有する割り込み信号監視回路が開示されている。この割り込み信号監視回路では、予め設定した監視時間内に発生した割り込み信号の数をカウントし、そのカウント値が一定の値を超えると、割り込み信号が異常であることをＣＰＵに通知する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１４６７９６号公報
【特許文献２】特開昭６３−０４９８５５号公報
【特許文献３】特開平３−０９７０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のような技術では、一定周期でＣＰＵに割り込みを発生させ、その割り込みによって起動したプログラム内でカウンタを増減させたり、割り込みの発生回数が正常か否かを判断したりしている。しかし、このような構成では、一定周期の割り込みを管理するために、ＯＳ（Operating system）が管理するタイムイベントキューを探索し、特定のタイミングでタイマ間隔の算出処理や異常通知処理を起動する必要がある。このため、一定周期ごとに起動検出およびタイムアウト検出を行うためのキュー探索が必要となり、ＣＰＵ、ひいてはＣＰＵを備えるコントローラの負荷が増加するという問題が生じる。【０００７】
本発明は以上のような課題を鑑みてなされたものであり、コントローラの負荷を抑制可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るコントローラシステムは、コントローラ（１）と、前記コントローラ（１）と通信可能に接続された複数の入出力制御装置（４）と、前記複数の入出力制御装置（４）に接続されたセンサ機器（５）と、を備えたコントローラシステムであって、前記複数の入出力制御装置（４）の各々は、ワンショットタイマカウントをインクリメントまたはデクリメントするワンショットタイマカウンタ（１２）と、前記ワンショットタイマカウンタ（１２）に前記ワンショットタイマカウントのインクリメントまたはデクリメントを実施させるトリガを生成するタイマ生成部（１１）と、前記ワンショットタイマカウントと予め定められたワンショットタイマ起動カウント値との比較結果に基づいて、割り込みを発生させる割り込み発生部（１３）と、当該入出力制御装置（４）の識別情報、前記コントローラ（１）側を上位側として規定された当該入出力制御装置（４）の階層の情報、および当該入出力制御装置（４）に接続された前記センサ機器（５）のうち前記ワンショットタイマカウンタ（１２）を起動させる対象となっているものの個数であるセンサ接続数に基づいて、前記ワンショットタイマ起動カウント値を算出する起動カウント値算出部（１５）と、を備える。
【発明の効果】
【０００９】
本発明によれば、複数の入出力制御装置のそれぞれが、自装置の階層を含む識別情報と、識別情報を持つ他装置のデータ送信の所要時間とに基づいて、ワンショットタイマ起動時間を算出する。そのため、コントローラの負荷を抑制することができる。【００１０】
この発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るコントローラシステムの全体構成を示すブロック図である。
【図２】実施の形態１に係る入出力制御装置の構成を示すブロック図である。
【図３】実施の形態１に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図４】実施の形態１に係るコントローラシステムの処理を説明するための図である。
【図５】実施の形態１に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図６】実施の形態１に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【図７】実施の形態１に係る入出力制御装置における、ワンショットタイマ割り込みの発生処理を示すフローチャートである。
【図８】実施の形態２に係るコントローラシステムの全体構成を示すブロック図である。
【図９】実施の形態２に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図１０】実施の形態２に係るコントローラシステムの処理を説明するための図である。
【図１１】実施の形態２に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図１２】実施の形態２に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【図１３】実施の形態３に係るコントローラシステムの全体構成を示すブロック図である。
【図１４】実施の形態３に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図１５】実施の形態３に係るコントローラシステムの処理を説明するための図である。
【図１６】実施の形態３に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図１７】実施の形態３に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【図１８】実施の形態４に係る入出力制御装置の構成を示すブロック図である。
【図１９】実施の形態４に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図２０】実施の形態４に係るコントローラシステムの処理を説明するための図である。
【図２１】実施の形態４に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図２２】実施の形態４に係る入出力制御装置の処理を示すフローチャートである。
【図２３】実施の形態５に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図２４】実施の形態５に係るコントローラシステムの処理を説明するための図である。
【図２５】実施の形態５に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図２６】実施の形態５に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【図２７】実施の形態５に係る入出力制御装置の処理を示すフローチャートである。
【図２８】実施の形態６に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図２９】実施の形態６に係るコントローラシステムの処理を説明するための図である。
【図３０】実施の形態６に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図３１】実施の形態６に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【図３２】実施の形態６に係る重ねモード起動間隔管理テーブルを示す図である。
【図３３】実施の形態６に係る入出力制御装置の処理を示すフローチャートである。
【図３４】実施の形態７に係る入出力制御装置の構成を示すブロック図である。
【図３５】実施の形態７に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図３６】実施の形態７に係るコントローラシステムの処理を説明するための図である。
【図３７】実施の形態７に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図３８】実施の形態７に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【図３９】実施の形態７に係る入出力制御装置の処理を示すフローチャートである。
【図４０】実施の形態７に係る入出力制御装置の処理を示すフローチャートである。
【図４１】実施の形態８に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図４２】実施の形態８に係るコントローラシステムの処理を説明するための図である。
【図４３】実施の形態８に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図４４】実施の形態８に係る入出力制御装置の処理を示すフローチャートである。
【図４５】実施の形態９に係るコントローラシステムの全体構成を示すブロック図である。
【図４６】実施の形態９に係るワンショットタイマ制御レジスタに格納されるパラメータを示す図である。
【図４７】実施の形態９に係るコントローラシステムの処理を説明するための図である。
【図４８】実施の形態９に係るワンショットタイマ制御レジスタに格納されるパラメータの具体例を示す図である。
【図４９】実施の形態９に係るコントローラシステムの処理を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るコントローラシステムの全体構成を示すブロック図である。なお、後述する実施の形態４〜８に係るコントローラシステムの全体構成も、図１と同様である。
【００１３】
実施の形態１のコントローラシステムは、コントローラ１と、ハブ１００と、複数の入出力制御装置４とを備えている。実施の形態１では図１のように、コントローラシステムが、入出力制御装置４として、入出力制御装置４−１，４−２，４−３の３つを備えるものとする。以下の説明において、入出力制御装置４−１，４−２，４−３のうちのいずれであるかを特定しない場合には、それぞれを単に「入出力制御装置４」と称すこともある。入出力制御装置４の個数は３つに限られず、２つ以上であればよい。
【００１４】
コントローラ１は、通信バス６およびハブ１００を介して入出力制御装置４−１，４−２，４−３と接続されており、コントローラ１と入出力制御装置４−１，４−２，４−３との間での通信が可能である。つまり、コントローラ１および複数の入出力制御装置４は、ハブ１００を中心にしてスター型に接続されている。
【００１５】
コントローラ１は、プロセッサ２および通信部３を備えている。プロセッサ２は、例えばＣＰＵなどから構成される。通信部３は、ハブ１００を介して複数の入出力制御装置４との通信を行う。
【００１６】
入出力制御装置４には１つ以上のセンサ機器５を接続可能である。図１の例では、入出力制御装置４−１は、センサ機器５−１，５−２と接続されている。入出力制御装置４−２は、センサ機器５−３と接続されている。入出力制御装置４−３は、センサ機器５−４，５−５，５−６と接続されている。以下の説明において、センサ機器５−１〜５−６のうちのいずれであるかを特定しない場合には、それぞれを単に「センサ機器５」と称すこともある。ここではセンサ機器５を６つ備えるコントローラシステムを示すが、センサ機器５の個数は１つ以上あればよい。
【００１７】
センサ機器５は、外部との間でセンサデータの入出力を行う。また、入出力制御装置４は、接続されたセンサ機器５と間でセンサデータの入出力を行う。
【００１８】
入出力制御装置４のそれぞれは、入出力部７と、ワンショットタイマ部８と、通信部９とを備える。すなわち、入出力制御装置４−１は、入出力部７−１と、ワンショットタイマ部８−１と、通信部９−１とを備える。同様に、入出力制御装置４−２は、入出力部７−２と、ワンショットタイマ部８−２と、通信部９−２とを備え、入出力制御装置４−３は、入出力部７−３と、ワンショットタイマ部８−３と、通信部９−３とを備える。
【００１９】
以下の説明において、入出力部７−１，７−２，７−３のうちのいずれであるかを特定しない場合には、それぞれを単に「入出力部７」と称すこともある。また、ワンショットタイマ部８−１，８−２，８−３のうちのいずれであるかを特定しない場合には、それぞれを単に「ワンショットタイマ部８」と称すこともある。さらに、通信部９−１，９−２，９−３のうちのいずれであるかを特定しない場合には、それぞれを単に「通信部９」と称すこともある。
【００２０】
入出力部７は、センサ機器５との間でセンサデータなどのデータの入出力を行う。ワンショットタイマ部８は、コントローラ１からの起動要求に応じて、割り込みを発生させる。具体的には、コントローラ１から起動要求を取得してからカウントした値が、特定の値（後述する「ワンショットタイマ起動カウント値」）と等しくなったときに、割り込みを発生させる。通信部９は、コントローラ１および他の２つの入出力制御装置４との間で、センサデータなどのデータの送受信を行う。以下の説明において、複数の入出力制御装置４のうち、着目している１つの入出力制御装置４を「自装置」と称し、自装置以外の他の入出力制御装置４を「他装置」と称すこともある。
【００２１】
図２は、実施の形態１に係る入出力制御装置４の構成を示すブロック図である。図２に示すように、入出力制御装置４のワンショットタイマ部８は、タイマ生成部１１と、ワンショットタイマカウンタ１２と、割り込み発生部１３と、ワンショットタイマ制御レジスタ１４と、起動カウント値算出部１５とを備える。
【００２２】
ここで、「ワンショットタイマカウンタ」とは、起動した後に１回だけ一定幅のパルス信号を出力する回路である。また、本明細書の全体を通して、「カウント」は、機器ごとの周波数に基づいて時間をカウントした値を表している。また、ソフトウェアまたはハードウェアが比較する値または時間は、間隔または時刻を定義するものとして使用されている。
【００２３】
タイマ生成部１１は、複数の入出力制御装置４で共通のタイマ生成用周波数を持ち、カウントをインクリメント（カウントアップ）するトリガを定期的に生成する。ワンショットタイマカウンタ１２は、起動した後、タイマ生成部１１が出力するトリガに基づいて定期的に「ワンショットタイマカウント」をインクリメントする。割り込み発生部１３は、そのワンショットタイマカウントが、「ワンショットタイマ起動カウント値」と等しくなったときに、割り込み（以下「ワンショットタイマ割り込み」と称す）を発生させる。
【００２４】
ワンショットタイマ制御レジスタ１４は、入出力制御装置４の動作を制御するためのパラメータを格納する。起動カウント値算出部１５は、自装置および他装置の「識別情報」、「階層」、「センサ接続数」、「データ送信所要時間」および「ワンショットタイマ起動時間」に基づいて、自装置の「ワンショットタイマ起動カウント値」を算出する。なお、データ送信所要時間およびワンショットタイマ起動時間は、タイマ生成用周波数を基準にする単位に変換された値が用いられる。起動カウント値算出部１５が算出したワンショットタイマ起動カウント値は、ワンショットタイマ制御レジスタ１４に格納される。
【００２５】
ここで、ワンショットタイマカウンタ１２がインクリメントするワンショットタイマカウントは、ワンショットタイマカウンタ１２が起動してからタイマ生成部１１がトリガを生成した回数を示す値となる。また、ワンショットタイマ起動カウント値とは、ワンショットタイマカウンタ１２がパルス信号を出力するタイミングを規定するものである。具体的には、ワンショットタイマカウンタ１２は、ワンショットタイマカウントとワンショットタイマ起動カウント値と比較し、両者が等しくなったときに、パルス信号を出力する。また、ワンショットタイマ起動時間は、タイマ生成用周波数に依存しない共通の間隔または時刻を示すものである。
【００２６】
図３は、実施の形態１に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。ワンショットタイマ制御レジスタ１４は、パラメータとして、「ワンショットタイマ起動カウント値」と、「センサ接続数」と、「データ送信所要時間」と、「ワンショットタイマ割り込み所要時間」と、「階層」と、「基底ワンショットタイマ起動カウント値」とを格納している。
【００２７】
ワンショットタイマ起動カウント値は、上述したように、ワンショットタイマカウンタ１２がパルス信号を出力するか否かを判定するためにワンショットタイマカウントと比較される値である。
【００２８】
「センサ接続数」は、自装置がワンショットタイマカウンタ１２を起動させる対象となっているセンサ機器５の数である。すなわち、「センサ接続数」は、ワンショットタイマカウントがワンショットタイマ起動カウント値と等しくなったときに、自装置がコントローラ１へセンサデータを送信する対象となっているセンサ機器５の数である。
【００２９】
データ送信所要時間は、センサ機器５から入出力制御装置４にデータを送信するための所要時間である。
【００３０】
「ワンショットタイマ割り込み所要時間」は、自装置のワンショットタイマ割り込みが発生し、ワンショットタイマの対象となっているセンサ機器５のセンサデータをコントローラ１へ通知するための所要時間である。
【００３１】
「階層」は、コントローラ１との間にある自装置を含む入出力制御装置４の数である。階層は、コントローラ１を基準にして、コントローラ１側を上位の階層、コントローラ１とは反対側を下位の階層とする。
【００３２】
「基底ワンショットタイマ起動カウント値」は、自装置のワンショットタイマ起動カウント値を算出する際に、基底となる値である。
【００３３】
図４は、実施の形態１に係るコントローラシステムの処理を説明するための図である。以下、図４に基づいて当該コントローラシステムの処理を説明する。なお、以下に示されるワンショットタイマ起動カウント値の算出は、入出力制御装置４−１，４−２，４−３のそれぞれの起動カウント値算出部１５によって行われる。
【００３４】
初めに、コントローラ１は、入出力制御装置４−１，４−２，４−３のそれぞれに対し、自装置の識別情報、階層およびセンサ接続数の情報の送信を要求し、データ送信所要時間を算出する。ここでは入出力制御装置４−１，４−２，４−３のデータ送信所要時間はいずれも「１００」であるものとする。
【００３５】
次に、終端の入出力制御装置４は、自装置のワンショットタイマ割り込み所要時間を、自装置のセンサ接続数およびデータ送信所要時間に基づいて算出する。「終端の入出力制御装置４」とは、自装置の下位の階層（コントローラ１とは反対側）に他装置が接続されていない入出力制御装置４のことであり、図４の例では、入出力制御装置４−１，４−２，４−３の全てが終端の入出力制御装置４である。
【００３６】
終端の入出力制御装置４のワンショットタイマ割り込み所要時間は、その入出力制御装置４のセンサ接続数とデータ送信所要時間との積として算出される。すなわち、ワンショットタイマ割り込み所要時間は、「センサ接続数×データ送信所要時間」として算出される。
【００３７】
よって、入出力制御装置４−１のワンショットタイマ割り込み所要時間は「２００（＝２×１００）」となり、入出力制御装置４−２のワンショットタイマ割り込み所要時間は「１００（＝１×１００）」となり、入出力制御装置４−３のワンショットタイマ割り込み所要時間は「３００（＝３×１００）」となる。
【００３８】
入出力制御装置４は、自装置の識別情報およびワンショットタイマ割り込み所要時間を含む返送データ４２０を、コントローラ１またはコントローラ１側（上位の階層）に接続されている他装置に送信する。実施の形態１では、全ての終端の入出力制御装置４が、他装置を介することなく、コントローラ１と接続されているため、各入出力制御装置４が送信した返送データ４２０は全て、コントローラ１に受信される。
【００３９】
次に、コントローラ１は、ワンショットタイマ制御レジスタ１４に格納するパラメータを規定するためのデータである初期化時登録データ３１０を、入出力制御装置４に送信する。実施の形態１に係る初期化時登録データ３１０は、図４に示すように、入出力制御装置４−１，４−２，４−３の識別情報、センサ接続数、データ送信所要時間、ワンショットタイマ割り込み所要時間および階層の情報を含んでいる。ここで、入出力制御装置４−１の識別情報は「４１」、入出力制御装置４−２の識別情報は「４２」、入出力制御装置４−３の識別情報は「４３」であるものとする。
【００４０】
図４の初期化時登録データ３１０において、入出力制御装置４−１のセンサ接続数は「２」、入出力制御装置４−２のセンサ接続数は「１」、入出力制御装置４−３のセンサ接続数は「３」である。また、入出力制御装置４−１のデータ送信所要時間は「１００」、入出力制御装置４−２のデータ送信所要時間は「１００」、入出力制御装置４−３のデータ送信所要時間は「１００」である。初期化時登録データ３１０の入出力制御装置４−１のワンショットタイマ割り込み所要時間は「２００」、入出力制御装置４−２のワンショットタイマ割り込み所要時間は「１００」、入出力制御装置４−３のワンショットタイマ割り込み所要時間は「３００」である。初期化時登録データ３１０の入出力制御装置４−１の階層は「１」、入出力制御装置４−２の階層は「１」、入出力制御装置４−３の階層は「１」である。また、実施の形態１では、ワンショットタイマ起動カウント値を階層が「１」の入出力制御装置４の基底ワンショットタイマ起動カウント値は「０」に設定される。
【００４１】
続いて、入出力制御装置４は、他装置のワンショットタイマ割り込み所要時間に基づいて、自装置のワンショットタイマ起動時間を算出する。実施の形態１では、入出力制御装置４のデータ送信所要時間のうちの最小時間と、自装置よりも小さい値の識別情報を持つ階層が「１」の全ての入出力制御装置４（自装置と同じ階層の全ての他装置）のワンショットタイマ割り込み所要時間の合計との和が、ワンショットタイマ起動時間として算出される。すなわち、ワンショットタイマ起動時間は、「データ送信所要時間のうちの最小時間＋自装置よりも小さい値の識別情報を持つ階層が「１」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計」として算出される。また、算出されたワンショットタイマ起動時間は、タイマ生成用周波数を基準にしたカウント値に換算されて、入出力制御装置４のワンショットタイマ制御レジスタ１４に格納される。
【００４２】
ここでは、ワンショットタイマ起動時間はミリ秒で定義されており、タイマ生成用周波数が１ＭＨｚであると仮定する。この場合、タイマは１マイクロ秒ごとにカウントアップされるため、入出力制御装置４−１のワンショットタイマ起動カウント値は、「１０００００（＝（１００＋０）×１０００）」となる。同様に、入出力制御装置４−２のワンショットタイマ起動カウント値は、「３０００００（＝（１００＋２００）×１０００）」となる。入出力制御装置４−３のワンショットタイマ起動カウント値は、「４０００００（＝（１００＋２００＋１００）×１０００）」となる。
【００４３】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図５に示すデータが格納されることとなる。
【００４４】
図６は、実施の形態１に係るコントローラシステムにおいて、入出力制御装置４が、ワンショットタイマ割り込みによって、コントローラ１へセンサデータを送信するタイミングを示すタイミングチャートである。
【００４５】
なお、図６における「入出力制御装置１」、「入出力制御装置２」および「入出力制御装置３」は、それぞれ入出力制御装置４−１，４−２，４−３に対応する。また、図６の「起動カウント値」は、ワンショットタイマ起動カウント値に対応する。さらに、図６の「INI」は初期化に用いられるデータを示しており、コントローラ１から入出力制御装置４へ送信される初期化時登録データ３１０に対応する。図６の「Ｓ１」、「Ｓ２」、「Ｓ３」、「Ｓ４」、「Ｓ５」、「Ｓ６」は、それぞれセンサ機器５−１，５−２，５−３，５−４，５−５，５−６のセンサデータを示している。このような表記は、以降のタイミングチャートにおいて同様に用いられる。
【００４６】
さて、図４で説明したように、コントローラ１が初期化時登録データ３１０を入出力制御装置４へ送信すると、入出力制御装置４のワンショットタイマ制御レジスタ１４に自装置のワンショットタイマ起動カウント値が設定される。
【００４７】
入出力制御装置４は、自装置のワンショットタイマ起動カウント値が設定されると、自装置のワンショットタイマカウンタ１２を起動させる。そして、ワンショットタイマカウンタ１２のワンショットタイマカウントが自装置のワンショットタイマ起動カウント値と等しくなると、入出力制御装置４は、自装置に接続されたセンサ機器５のセンサデータを、ハブ１００を介してコントローラ１へ送信する。
【００４８】
入出力制御装置４−１，４−２，４−３に、図５に示すワンショットタイマ起動カウント値が設定されると、図６に示すように、入出力制御装置４−１は、自装置のワンショットタイマカウンタ１２のワンショットタイマカウントが「１０００００」になると、センサ機器５−１，５−２のセンサデータを順にコントローラ１へ送信する。また、入出力制御装置４−２は、自装置のワンショットタイマカウンタ１２のワンショットタイマカウントが「３０００００」になると、センサ機器５−３のセンサデータをコントローラ１に送信する。また、入出力制御装置４−３は、自装置のワンショットタイマカウンタ１２のワンショットタイマカウントが「４０００００」になると、センサ機器５−４，５−５，５−６のセンサデータを順にコントローラ１に送信する。
【００４９】
図７は、実施の形態１に係る入出力制御装置４における、ワンショットタイマ割り込みの発生処理を示すフローチャートである。本フローチャートの処理は、タイマ生成部１１でトリガが生成されたとき、換言すればワンショットタイマカウンタ１２がトリガを受信したときに実行される。
【００５０】
ワンショットタイマカウンタ１２がトリガを受信すると、まず、割り込み発生部１３が、ワンショットタイマ割り込みをオフ状態にする（ステップＳＴ１）。次に、入出力制御装置４は、現時点でワンショットタイマカウンタ１２が起動しているか否かを判定する（ステップＳＴ２）。
【００５１】
ワンショットタイマカウンタ１２が起動している場合には、ワンショットタイマカウンタ１２は、ワンショットタイマカウントをインクリメントする（ステップＳＴ３）。そして、ワンショットタイマカウンタ１２は、ワンショットタイマカウントがワンショットタイマ起動カウント値と等しいか否かを判定する（ステップＳＴ４）。
【００５２】
ワンショットタイマカウントがワンショットタイマ起動カウント値と等しければ、割り込み発生部１３がワンショットタイマ割り込みをオン状態にして、ワンショットタイマ割り込みを発生させ、さらにワンショットタイマカウンタ１２の動作を停止させてから（ステップＳＴ５）、図７の処理は終了する。しかし、ワンショットタイマカウントがワンショットタイマ起動カウント値と等しくなければ、ワンショットタイマ割り込みを発生させることなく、図７の処理は終了する。
【００５３】
なお、ステップＳＴ２において、ワンショットタイマカウンタ１２が起動していない場合には、入出力制御装置４は、コントローラ１から、ワンショットタイマカウンタ１２の起動要求、例えば初期化時登録データ３１０などを受信したか否かを判定する（ステップＳＴ６）。ワンショットタイマカウンタ１２の起動要求が受信されていれば、ワンショットタイマカウンタ１２が、ワンショットタイマカウントをリセットして０にして起動してから（ステップＳＴ７）、図７の処理は終了する。ワンショットタイマカウンタ１２の起動要求が受信されていなければ、ワンショットタイマカウンタ１２が起動することなく、図７の処理は終了する。
【００５４】
実施の形態１に係るコントローラシステムによれば、複数の入出力制御装置４のそれぞれの起動カウント値算出部１５が、自装置の識別情報、階層およびセンサ接続数と、他装置の識別情報、階層およびデータ送信所要時間とに基づいて、自装置のワンショットタイマ起動カウント値を算出する。この構成によれば、コントローラ１がタイムイベントキューの管理、つまり割り込み発生のための時間の管理を行うことなく、コントローラ１は、時分割でデータを取得することが可能となる。このため、コントローラ１の負荷を抑制することができる。また、コントローラシステムの応答性の向上化も期待できる。
【００５５】
なお、本実施の形態では、割り込み発生部１３は、ワンショットタイマカウントがワンショットタイマ起動カウント値と等しいときに、ワンショットタイマ割り込みを発生させた。しかしこの例に限ったものではなく、例えば割り込み発生部１３は、ワンショットタイマカウントがワンショットタイマ起動カウント値を超えたときにワンショットタイマ割り込みを発生させてもよい。このことは以下の各実施の形態でも同様である。
【００５６】
また、本実施の形態では、ワンショットタイマカウンタ１２は、定期的にワンショットタイマカウントをインクリメントした。しかしこの例に限ったものではなく、ワンショットタイマカウンタ１２は、初期値が十分大きな値に設定されたワンショットタイマカウントを定期的にデクリメント（カウントダウン）してもよい。この場合、割り込み発生部１３は、ワンショットタイマカウントの初期値と現在の値との差が、ワンショットタイマ起動カウント値と等しくなったとき（あるいは超えたとき）に、ワンショットタイマ割り込みを発生させてもよい。つまり、割り込み発生部１３は、ワンショットタイマカウントとワンショットタイマ起動カウント値とに基づいて、ワンショットタイマ割り込みを発生させるように構成されていればよい。このことは以下の各実施の形態でも同様である。
【００５７】
＜実施の形態２＞
図８は、本発明の実施の形態２に係るコントローラシステムの全体構成を示すブロック図である。
【００５８】
図８のコントローラシステムは、コントローラ１と、ハブ１００と、５つの入出力制御装置４−１〜４−５とを備える。以下の説明において、入出力制御装置４−１〜４−５のうちのいずれであるかを特定しない場合には、それぞれを単に「入出力制御装置４」と称すこともある。なお、入出力制御装置４の個数は５つに限られず、２つ以上であればよい。
【００５９】
入出力制御装置４−１，４−２，４−３は、ハブ１００を介してコントローラ１に接続しており、コントローラ１との通信が可能である。入出力制御装置４−４は、入出力制御装置４−３に接続されており、入出力制御装置４−３およびハブ１００を介してコントローラ１と通信可能である。入出力制御装置４−５は、入出力制御装置４−４に接続されており、入出力制御装置４−３，４−４およびハブ１００を介してコントローラ１と通信可能である。
【００６０】
また、入出力制御装置４−１はセンサ機器５−１，５−２と接続されている。入出力制御装置４−２はセンサ機器５−３と接続されている。入出力制御装置４−３はセンサ機器５−４，５−５，５−６と接続されている。入出力制御装置４−４はセンサ機器５−７，５−８と接続されている。入出力制御装置４−５はセンサ機器５−９，５−１０，５−１１と接続されている。以下の説明において、センサ機器５−１〜５−１１のうちのいずれであるかを特定しない場合には、それぞれを単に「センサ機器５」と称すこともある。なお、センサ機器５の個数は１１個に限られず、１つ以上あればよい。
【００６１】
図９は、ワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態１と同様に、ワンショットタイマ制御レジスタ１４は、パラメータとして、「ワンショットタイマ起動カウント値」と、「センサ接続数」と、「データ送信所要時間」と、「ワンショットタイマ割り込み所要時間」と、「階層」と、「基底ワンショットタイマ起動カウント値」とを格納する。
【００６２】
図１０は、実施の形態２に係るコントローラシステムの処理を説明するための図である。なお、以下に示されるワンショットタイマ起動カウント値の算出は、入出力制御装置４−１〜４−５のそれぞれの起動カウント値算出部１５によって行われる。
【００６３】
実施の形態２では、初めに、終端の入出力制御装置４が、自装置のワンショットタイマ割り込み所要時間を、センサ接続数およびデータ送信所要時間に基づいて算出する。図１０の例では、終端の入出力制御装置４は、入出力制御装置４−１，４−２，４−５である。
【００６４】
終端の入出力制御装置４のワンショットタイマ割り込み所要時間は、その入出力制御装置４のセンサ接続数とデータ送信所要時間との積として算出される。すなわち、ワンショットタイマ割り込み所要時間は、「センサ接続数×データ送信所要時間」として算出される。よって、入出力制御装置４−１のワンショットタイマ割り込み所要時間は「２００（＝２×１００）」となり、入出力制御装置４−２のワンショットタイマ割り込み所要時間は「１００（＝１×１００）」となり、入出力制御装置４−５のワンショットタイマ割り込み所要時間は「３００（＝３×１００）」となる。
【００６５】
入出力制御装置４は、自装置の識別情報およびワンショットタイマ割り込み所要時間を含む返送データ４２０を、コントローラ１またはコントローラ１側に接続されている他装置に送信する。
【００６６】
次に、返送データ４２０を受信した入出力装置４が、自装置のワンショットタイマ割り込み所要時間を、センサ接続数とデータ送信所要時間と返送データ４２０のワンショットタイマ割り込み所要時間とに基づいて算出する。
【００６７】
返送データ４２０を受信した入出力制御装置４のワンショットタイマ割り込み所要時間は、自装置のセンサ接続数と自装置に接続した他装置の数との合計にデータ送信所要時間を乗じた値に、返送データ４２０のワンショットタイマ割り込み所要時間を加算して得られる。つまり、ワンショットタイマ割り込み所要時間は、「（センサ接続数＋接続されている入出力制御装置４の数）×データ送信所要時間＋返送データ４２０のワンショットタイマ割り込み所要時間」として算出される。
【００６８】
図１０の例では、入出力制御装置４−４は、入出力制御装置４−５が送信した返送データ４２０を受信する。よって、入出力制御装置４−４の割り込み所要時間は、「６００（＝（２＋１）×１００＋３００）」となる。入出力制御装置４−４は、自装置の識別情報およびワンショットタイマ割り込み所要時間を含む返送データ４２０を、入出力制御装置４−３へと送信する。
【００６９】
入出力制御装置４−４が送信した返送データ４２０を受信した入出力制御装置４−３は、上記と同様の手法で、自装置のワンショットタイマ割り込み所要時間を算出する。入出力制御装置４−３の割り込み送信所要時間は、「１０００（＝（３＋１）×１００＋６００）」となる。入出力制御装置４−４は、自装置の識別情報およびワンショットタイマ割り込み所要時間を含む返送データ４２０を、ハブ１００を介してコントローラ１へと送信する。
【００７０】
次に、コントローラ１は、ワンショットタイマ制御レジスタ１４のパラメータを規定するためのデータである初期化時登録データ３１０を、各入出力制御装置４へ送信する。図１０に示すように、初期化時登録データ３１０は、入出力制御装置４−１〜４−５の識別情報、センサ接続数、データ送信所要時間、ワンショットタイマ割り込み所要時間および階層の情報を含んでいる。
【００７１】
図１０の初期化時登録データ３１０において、初期化時登録データ３１０の入出力制御装置４−１の識別情報は「４１」、入出力制御装置４−２の識別情報は「４２」、入出力制御装置４−３の識別情報は「４３」、入出力制御装置４−４の識別情報は「４４」、入出力制御装置４−５の識別情報は「４５」である。また、入出力制御装置４−１のセンサ接続数は「２」、入出力制御装置４−２のセンサ接続数は「１」、入出力制御装置４−３のセンサ接続数は「３」、入出力制御装置４−４のセンサ接続数は「２」、入出力制御装置４−５のセンサ接続数は「３」である。入出力制御装置４−１のデータ送信所要時間は「１００」、入出力制御装置４−２のデータ送信所要時間は「１００」、入出力制御装置４−３のデータ送信所要時間は「１００」、入出力制御装置４−４のデータ送信所要時間は「１００」、入出力制御装置４−５のデータ送信所要時間は「１００」である。入出力制御装置４−１の割り込み所要時間は「２００」、入出力制御装置４−２の割り込み所要時間は「１００」、入出力制御装置４−３の割り込み所要時間は「１０００」、入出力制御装置４−４の割り込み所要時間は「６００」、入出力制御装置４−５の割り込み所要時間は「３００」である。入出力制御装置４−１の階層は「１」、入出力制御装置４−２の階層は「１」、入出力制御装置４−３の階層は「１」、入出力制御装置４−４の階層は「２」、入出力制御装置４−５の階層は「３」である。
【００７２】
次に、入出力制御装置４は、他装置のワンショットタイマ割り込み所要時間に基づいて、自装置のワンショットタイマ起動時間を算出する。実施の形態２では、階層が「１」である入出力制御装置４から、ワンショットタイマ起動カウント値を算出する。ここで、階層が「１」の入出力制御装置４の基底ワンショットタイマ起動カウント値は「０」に設定される。
【００７３】
階層が「１」である入出力制御装置４は、データ送信所要時間のうちの最小時間と、自装置よりも小さい値の識別情報を持つ階層が「１」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計との和を、自装置のワンショットタイマ起動時間として算出する。すなわち、ワンショットタイマ起動時間は「データ送信所要時間のうちの最小時間＋自装置よりも小さい値の識別情報を持つ階層が「１」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計」として算出される。さらに、入出力制御装置４は、算出されたワンショットタイマ起動時間を、タイマ生成用周波数を基準とするワンショットタイマ起動カウント値に換算し、ワンショットタイマ制御レジスタ１４に格納する。
【００７４】
ここでも、ワンショットタイマ起動時間はミリ秒で定義されており、タイマ生成用周波数が１ＭＨｚであると仮定する。この場合、タイマは１マイクロ秒ごとにカウントアップされるため、入出力制御装置４−１のワンショットタイマ起動カウント値は、「１０００００（＝（１００＋０）×１０００）」となる。同様に、入出力制御装置４−２のワンショットタイマ起動カウント値は、「３０００００（（＝１００＋２００）×１０００）」となる。入出力制御装置４−３のワンショットタイマ起動カウント値は、「４０００００（（＝１００＋２００＋１００）×１０００）」となる。
【００７５】
次に、階層が「２」の入出力制御装置４が、自装置のワンショットタイマ起動カウント値を算出する。階層が「２」である入出力制御装置４のワンショットタイマ起動カウント値は、識別情報と基底ワンショットタイマ起動カウント値と他装置のワンショットタイマ割り込み所要時間とに基づいて算出される。
【００７６】
基底ワンショットタイマ起動カウント値は、コントローラ１側に接続されている入出力制御装置４のワンショットタイマ起動カウント値に、センサ接続数とデータ送信所要時間との積を加算した値として算出される。すなわち、基底ワンショットタイマ起動カウント値は、「コントローラ１側に接続されている入出力制御装置４のワンショットタイマ起動カウント値＋センサ接続数×データ送信所要時間」として算出される。図１０の例では、階層が「２」である入出力制御装置４−４の基底ワンショットタイマ起動カウント値は、「７０００００（＝（４００＋３×１００）×１０００）」であり、入出力制御装置４−４のワンショットタイマ起動カウント値は「７０００００」となる。
【００７７】
次に、階層が「３」の入出力制御装置４が、自装置のワンショットタイマ起動カウント値を算出する。階層が「３」の入出力制御装置４は、階層が「２」の入出力制御装置４と同様に、基底ワンショットタイマ起動カウント値に基づいて、ワンショットタイマ起動カウント値を算出する。図１０の例では、階層が「３」である入出力制御装置４−５の基底ワンショットタイマ起動カウント値は、「９０００００（＝（７００＋２×１００）×１０００）」あり、入出力制御装置４−５のワンショットタイマ起動カウント値は、「９０００００」となる。
【００７８】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図１１に示すデータが格納されることとなる。
【００７９】
図１２は、実施の形態２に係るコントローラシステムにおいて、入出力制御装置４が、ワンショットタイマ割り込みによって、コントローラ１へセンサデータを送信するタイミングを示すタイミングチャートである。
【００８０】
図１０で説明したように、コントローラ１からの初期化時登録データ３１０が、入出力制御装置４に送信されることによって、入出力制御装置４のワンショットタイマ制御レジスタ１４にワンショットタイマ起動カウント値が設定される。
【００８１】
入出力制御装置４は、自装置のワンショットタイマ起動カウント値が設定されると、自装置のワンショットタイマカウンタ１２を起動させる。そして、ワンショットタイマカウンタ１２のワンショットタイマカウントが自装置のワンショットタイマ起動カウント値と等しくなると、入出力制御装置４は、自装置に接続されたセンサ機器５のセンサデータを、ハブ１００を介してコントローラ１へ送信する。
【００８２】
入出力制御装置４−１は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「１０００００」と等しくなると、センサ機器５−１，５−２のセンサデータを順にコントローラ１へ送信する。入出力制御装置４−２は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「３０００００」と等しくなると、センサ機器５−３のセンサデータをコントローラ１へ送信する。入出力制御装置４−３は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「４０００００」と等しくなると、センサ機器５−４，５−５，５−６のセンサデータを順にコントローラ１に送信する。入出力制御装置４−４は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「７０００００」と等しくなると、センサ機器５−７，５−８のセンサデータを順にコントローラ１へ送信する。入出力制御装置４−５は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「９０００００」と等しくなると、センサ機器５−９，５−１０，５−１１のセンサデータを順にコントローラ１に送信する。
【００８３】
実施の形態２に係るコントローラシステムによれば、複数の入出力制御装置４のそれぞれの起動カウント値算出部１５が、センサ接続数に基づいて、ワンショットタイマ起動カウント値を算出する。この構成によれば、コントローラ１がタイムイベントキューの管理、つまり割り込み発生のための時間の管理を行うことなく、コントローラ１は、時分割でデータを取得することが可能となる。このため、コントローラ１の負荷を抑制することができる。また、コントローラシステムの応答性の向上化も期待できる。
【００８４】
＜実施の形態３＞
図１３は、本発明の実施の形態３に係るコントローラシステムの全体構成を示すブロック図である。
【００８５】
図１３のコントローラシステムは、コントローラ１と、ハブ１００と、５つの入出力制御装置４−１〜４−５とを備える。以下の説明において、入出力制御装置４−１〜４−５のうちのいずれであるかを特定しない場合には、それぞれを単に「入出力制御装置４」と称すこともある。入出力制御装置４の個数は５つに限られず、２つ以上あればよい。
【００８６】
入出力制御装置４−１，４−２，４−３は、ハブ１００を介してコントローラ１に接続されており、コントローラ１との通信が可能である。入出力制御装置４−４，４−５は、ハブ２００を介して入出力制御装置４−３に接続されており、ハブ２００および入出力制御装置４−３を介してコントローラ１と通信可能である。
【００８７】
また、入出力制御装置４−１はセンサ機器５−１，５−２と接続されている。入出力制御装置４−２はセンサ機器５−３と接続されている。入出力制御装置４−４はセンサ機器５−４，５−５と接続されている。入出力制御装置４−５はセンサ機器５−６，５−７，５−８と接続されている。以下の説明において、センサ機器５−１〜５−８のうちのいずれであるかを特定しない場合には、それぞれを単に「センサ機器５」と称すこともある。なお、センサ機器５の個数は８つに限られず、１つ以上あればよい。
【００８８】
図１４は、実施の形態３に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態１と同様に、ワンショットタイマ制御レジスタ１４は、パラメータとして、「ワンショットタイマ起動カウント値」と、「センサ接続数」と、「データ送信所要時間」と、「ワンショットタイマ割り込み所要時間」と、「階層」と、「基底ワンショットタイマ起動カウント値」とを格納する。
【００８９】
図１５は、実施の形態３に係るコントローラシステムの処理を説明するための図である。なお、下記のワンショットタイマ起動カウント値の算出は、入出力制御装置４−１〜４−５のそれぞれの起動カウント値算出部１５によって行われる。
【００９０】
実施の形態３では、初めに、終端の入出力制御装置４が、自装置のワンショットタイマ割り込み所要時間をセンサ接続数およびデータ送信所要時間に基づいて算出する。図１５の例では、終端の入出力制御装置４は、入出力制御装置４−１，４−２，４−４，４−５である。
【００９１】
終端の入出力制御装置４は、自装置のワンショットタイマ割り込み所要時間を、自装置のセンサ接続数とデータ送信所要時間との積として算出する。すなわち、ワンショットタイマ割り込み所要時間は、「センサ接続数×データ送信所要時間」として算出される。よって、入出力制御装置４−１のワンショットタイマ割り込み所要時間は、「２００（＝２×１００）」である。入出力制御装置４−２のワンショットタイマ割り込み所要時間は、「１００（＝１×１００）」である。入出力制御装置４−４のワンショットタイマ割り込み所要時間は、「２００（＝２×１００）」である。入出力制御装置４−５のワンショットタイマ割り込み所要時間は、「３００（＝３×１００）」である。
【００９２】
終端の入出力制御装置４は、自装置の識別情報およびワンショットタイマ割り込み所要時間を含む返送データ４２０を、コントローラ１またはコントローラ１側に接続されている他装置へ送信する。
【００９３】
次に、返送データ４２０を受信した入出力制御装置４は、自装置のワンショットタイマ割り込み所要時間を、センサ接続数とデータ送信所要時間と返送データ４２０のワンショットタイマ割り込み所要時間に基づいて算出する。具体的には、返送データ４２０を受信した入出力制御装置４のワンショットタイマ割り込み所要時間は、センサ接続数と自装置に接続されている入出力制御装置４の数との合計にデータ送信所要時間を乗じた値に、受信した返送データ４２０のワンショットタイマ割り込み所要時間の合計との和として算出される。すなわち、ワンショットタイマ割り込み所要時間は、「（センサ接続数＋自装置に接続されている入出力制御装置４の数）×データ送信所要時間＋返送データ４２０のワンショットタイマ割り込み所要時間の合計」として算出される。
【００９４】
図１５の例では、返送データ４２０を受け取る入出力制御装置４は入出力制御装置４−３のみである。入出力制御装置４−３は、自装置のワンショットタイマ割り込み所要時間を、（センサ接続数＋接続されている入出力制御装置４の数）×データ送信所要時間＋入出力制御装置４−４のワンショットタイマ割り込み所要時間＋入出力制御装置４−５のワンショットタイマ割り込み所要時間として算出する。よって、入出力制御装置４−３のワンショットタイマ割り込み所要時間は、「７００（＝（（０＋２）×１００）＋２００＋３００）」となる。
【００９５】
入出力制御装置４−３は、自装置の識別情報およびワンショットタイマ割り込み所要時間を含む返送データ４２０を、コントローラ１へ送信する。
【００９６】
コントローラ１は、ワンショットタイマ制御レジスタ１４のパラメータを規定するためのデータである初期化時登録データ３１０を、入出力制御装置４に送信する。実施の形態３の初期化時登録データ３１０は、入出力制御装置４−１〜４−５の識別情報、センサ接続数、データ送信所要時間、ワンショットタイマ割り込み所要時間および階層の情報を含んでいる。
【００９７】
図１５の例では、初期化時登録データ３１０の入出力制御装置４−１の識別情報は「４１」、入出力制御装置４−２の識別情報は「４２」、入出力制御装置４−３の識別情報は「４３」、入出力制御装置４−４の識別情報は「４４」、入出力制御装置４−５の識別情報は「４５」である。入出力制御装置４−１のセンサ接続数は「２」、入出力制御装置４−２のセンサ接続数は「１」、入出力制御装置４−３のセンサ接続数は「０」、入出力制御装置４−４のセンサ接続数は「２」、入出力制御装置４−５のセンサ接続数は「３」である。入出力制御装置４−１のデータ送信所要時間は「１００」、入出力制御装置４−２のデータ送信所要時間は「１００」、入出力制御装置４−３のデータ送信所要時間は「１００」、入出力制御装置４−４のデータ送信所要時間は「１００」、入出力制御装置４−５のデータ送信所要時間は「１００」である。入出力制御装置４−１のワンショットタイマ割り込み所要時間は「２００」、入出力制御装置４−２のワンショットタイマ割り込み所要時間は「１００」、入出力制御装置４−３のワンショットタイマ割り込み所要時間は「７００」、入出力制御装置４−４のワンショットタイマ割り込み所要時間は「２００」、入出力制御装置４−５のワンショットタイマ割り込み所要時間は「３００」である。入出力制御装置４−１の階層は「１」、入出力制御装置４−２の階層は「１」、入出力制御装置４−３の階層は「１」、入出力制御装置４−４の階層は「２」、入出力制御装置４−５の階層は「２」である。
【００９８】
次に、入出力制御装置４は、他装置のワンショットタイマ割り込み所要時間に基づいて、自装置のワンショットタイマ起動時間を算出する。実施の形態３では、ワンショットタイマ起動カウント値の算出を、階層が「１」である入出力制御装置４から行う。また、階層が「１」の入出力制御装置４の基底ワンショットタイマ起動カウント値は「０」となる。
【００９９】
階層が「１」である入出力制御装置４は、入出力制御装置４のデータ送信所要時間のうちの最小時間と、自装置よりも小さい値の識別情報を持つ階層が「１」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計との和を、ワンショットタイマ起動時間として算出する。すなわち、ワンショットタイマ起動時間は、「データ送信所要時間のうちの最小時間＋自装置よりも小さい値の識別情報を持つ階層が「１」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計」として算出される。さらに、入出力制御装置４は、算出されたワンショットタイマ起動時間を、タイマ生成用周波数に基づいてワンショットタイマ起動カウント値に換算し、ワンショットタイマ制御レジスタ１４に格納する。
【０１００】
ここでも、ワンショットタイマ起動時間はミリ秒で定義されており、タイマ生成用周波数が１ＭＨｚであると仮定する。この場合、タイマは１マイクロ秒ごとにカウントアップされるため、入出力制御装置４−１のワンショットタイマ起動カウント値は、「１０００００（＝（１００＋０）×１０００）」となる。同様に、入出力制御装置４−２のワンショットタイマ起動カウント値は、「３０００００（（＝１００＋２００）×１０００）」となる。出力制御装置４−３のワンショットタイマ起動カウント値は、「４０００００（（＝１００＋２００＋１００）×１０００）」となる。
【０１０１】
次に、階層が「２」の入出力制御装置４が、自装置のワンショットタイマ起動カウント値を算出する。階層が「２」である入出力制御装置４のワンショットタイマ起動カウント値は、識別情報と基底ワンショットタイマ起動カウント値と他装置のワンショットタイマ割り込み所要時間に基づいて算出される。
【０１０２】
基底ワンショットタイマ起動カウント値は、実施の形態２と同様に、「コントローラ１側に接続されている入出力制御装置４のワンショットタイマ起動カウント値＋センサ接続数×データ送信所要時間」として算出される。図１５の例では、階層が「２」の入出力制御装置４−４，４−５の基底ワンショットタイマ起動カウント値は、「４０００００（＝（４００＋０×１００）×１０００）」となる。
【０１０３】
階層が「２」である入出力制御装置４のワンショットタイマ起動カウント値は、識別情報と基底ワンショットタイマ起動カウント値と他装置のワンショットタイマ割り込み所要時間に基づいて算出される。具体的には、階層が「２」である入出力制御装置４は、基底ワンショットタイマ起動カウント値と、自装置に接続され自装置よりも小さい識別情報を持つ階層が「２」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計との和を、ワンショットタイマ起動時間として算出する。すなわち、ワンショットタイマ起動時間は、「基底ワンショットタイマ起動カウント値＋自装置に接続され自装置よりも小さい識別情報を持つ階層が「２」の全ての入出力制御装置４のワンショットタイマ割り込み所要時間の合計」として算出される。また、入出力制御装置４は、算出されたワンショットタイマ起動時間を、タイマ生成用周波数を基準にしたカウント値に変換して、ワンショットタイマ制御レジスタ１４に格納する。
【０１０４】
図１５の例では、入出力制御装置４−４のワンショットタイマ起動カウント値は、「４０００００（＝（４００＋０）×１０００）」となる。また、入出力制御装置４−５のワンショットタイマ起動カウント値は、「６０００００（＝（４００＋２００）×１０００）」となる。
【０１０５】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図１６に示すデータが格納されることとなる。
【０１０６】
図１７は、実施の形態３に係るコントローラシステムにおいて、入出力制御装置４が、ワンショットタイマ割り込みによって、コントローラ１へセンサデータを送信するタイミングを示すタイミングチャートである。
【０１０７】
さて、図１５で説明したように、コントローラ１からの初期化時登録データ３１０が、入出力制御装置４に送信されることによって、入出力制御装置４のワンショットタイマ制御レジスタ１４にワンショットタイマ起動カウント値が設定される。
【０１０８】
入出力制御装置４は、自装置のワンショットタイマ起動カウント値が設定されると、ワンショットタイマカウンタ１２を起動させる。そして、ワンショットタイマカウントが自装置のワンショットタイマ起動カウント値と等しくなると、入出力制御装置４は、自装置に接続されたセンサ機器５のセンサデータを順に、ハブ１００，２００あるいはコントローラ１側に接続された他装置を介してコントローラ１へ送信する。
【０１０９】
入出力制御装置４−１は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「１０００００」と等しくなると、センサ機器５−１，５−２のセンサデータを順に、ハブ１００を介してコントローラ１に送信する。また、入出力制御装置４−２は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「３０００００」と等しくなると、センサ機器５−３のセンサデータをコントローラ１に送信する。入出力制御装置４−４は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「４０００００」と等しくなると、センサ機器５−４，５−５のセンサデータを順にコントローラ１に送信する。入出力制御装置４−５は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「６０００００」と等しくなると、センサ機器５−６，５−７，５−８のセンサデータをコントローラ１に送信する。
【０１１０】
なお、入出力制御装置４−３は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「４０００００」と等しくなると、センサデータをコントローラ１に送信することができるが、入出力制御装置４−３に接続されたセンサ機器５は存在しないため、入出力制御装置４−３はコントローラ１へ何も送信しない。
【０１１１】
実施の形態３に係るコントローラシステムによれば、複数の入出力制御装置４のそれぞれの起動カウント値算出部１５が、自装置の識別情報と階層と他装置の識別情報と階層とワンショットタイマ割り込み所要時間とセンサ接続数に基づいて、ワンショットタイマ起動カウント値を算出する。このような構成によれば、コントローラ１内にタイマを設けて、コントローラ１が、タイムイベントキューの管理、つまり割り込み発生のための時間の管理を行わなくても、コントローラ１は、時分割でデータを取得することが可能となる。このため、コントローラ１の負荷を抑制することができる。また、コントローラシステムの応答性の向上化も期待できる。
【０１１２】
＜実施の形態４＞
図１８は、本発明の実施の形態４に係る入出力制御装置４の構成を示すブロック図である。図１８のワンショットタイマ部８は、実施の形態１のワンショットタイマ部８の構成（図２）に、ワンショットタイマ起動間隔異常管理部１６と、規定起動間隔算出部１７とを追加した構成となっている。なお、実施の形態４のコントローラシステムの全体構成は、実施の形態１（図１）と同様であるものとする。
【０１１３】
ワンショットタイマ起動間隔異常管理部１６は、ワンショットタイマカウンタ１２が前回起動された時刻とその次に起動される時刻との間隔、つまりワンショットタイマカウンタ１２の起動間隔を検出し、その間隔が規定値（以下「規定起動間隔」という）以上である場合に異常（以下「ワンショットタイマ起動間隔異常」と称す）が生じたと判断し、その異常の発生をコントローラ１へ通知する。
【０１１４】
規定起動間隔算出部１７は、複数の入出力制御装置４に接続された全てのセンサ機器５のうち、ワンショットタイマカウンタ１２を起動させる対象となっているセンサ機器５の合計数に基づいて、「規定起動間隔カウント値」を算出する。この「規定起動間隔カウント値」は、上記の規定起動間隔を、タイマ生成用周波数を基準にしたカウント値に換算した値である。規定起動間隔算出部１７が算出した規定起動間隔カウント値は、ワンショットタイマ制御レジスタ１４に格納される。なお、規定起動間隔算出部１７は、複数の入出力制御装置４のそれぞれに設けられる必要はなく、複数の入出力制御装置４の少なくともいずれか１つに備えられればよい。
【０１１５】
図１９は、実施の形態４に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態４のワンショットタイマ制御レジスタ１４には、図３に示したパラメータに加えて、「規定起動間隔カウント値」と「総センサ接続数」とが格納される。
【０１１６】
上記したように、規定起動間隔カウント値は、ワンショットタイマカウンタ１２の起動の間隔が異常か否かを判定基準となる間隔（規定起動間隔）を表すカウント値である。総センサ接続数は、入出力制御装置４に接続された全てのセンサ機器５のうち、ワンショットタイマカウンタ１２を起動させる対象となっているセンサ機器５の合計数である。つまり、総センサ接続数は、コントローラシステムに接続されている全てのセンサ機器５のうち、ワンショットタイマカウンタ１２を起動させる対象となっているセンサ機器５の合計数である。本実施の形態では、入出力制御装置４−１〜４−３に接続されたセンサ機器５−１〜５−６の全てがワンショットタイマカウンタ１２を起動させる対象となっているものとする。
【０１１７】
図２０は、実施の形態４に係るコントローラシステムの処理を説明するための図である。コントローラ１は、実施の形態１と同様に、初期化時登録データ３１０を入出力制御装置４に送信する。ただし、実施の形態４における初期化時登録データ３１０は、実施の形態１の初期化時登録データ３１０の内容（図３）に加えて、「基本起動間隔カウント値」の情報をさらに含んでいる。ここでは、基本起動間隔カウント値が「２００００００」として設定されている。
【０１１８】
規定起動間隔算出部１７は、総センサ接続数に基づいて、規定起動間隔カウント値を算出する。具体的には、規定起動間隔算出部１７は、基本起動間隔カウント値と総センサ接続数との積を、規定起動間隔カウント値として算出する。すなわち、規定起動間隔カウント値は、「基本起動間隔カウント値×総センサ接続数」として算出される。図２０の例では、総センサ接続数は、全ての入出力制御装置４のセンサ接続数の合計である「６」となる。よって、規定起動間隔カウント値は、「１２００００００（＝２００００００×６）」となる。
【０１１９】
上記したように、規定起動間隔算出部１７は、複数の入出力制御装置４の少なくともいずれか１つに備えられればよい。実施の形態４では、入出力制御装置４−１，４−２，４−３がいずれも規定起動間隔算出部１７を有しているが、そのうち識別情報の値が最も大きい入出力制御装置４−３の規定起動間隔算出部１７のみが規定起動間隔カウント値を算出するものとする。
【０１２０】
この場合、入出力制御装置４−３のワンショットタイマ制御レジスタ１４に、規定起動間隔算出部１７が算出した規定起動間隔カウント値が格納される。また、入出力制御装置４−３は、総センサ接続数および規定起動間隔カウント値を含む初期化時返送データ４１０を、コントローラ１および他の入出力制御装置４−１，４−２へ送信する。入出力制御装置４−１，４−２それぞれのワンショットタイマ制御レジスタ１４は、入出力制御装置４−３から受信した初期化時返送データ４１０の規定起動間隔カウント値を格納する。
【０１２１】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図２１に示すデータが格納されることとなる。
【０１２２】
その後、入出力制御装置４のワンショットタイマ起動間隔異常管理部１６は、ワンショットタイマカウントが規定起動間隔カウント値以上になると、コントローラ１にワンショットタイマ起動間隔異常を通知する。
【０１２３】
図２２は、実施の形態４に係る入出力制御装置４における、総センサ接続数および規定起動間隔カウント値の算出処理を示すフローチャートである。
【０１２４】
入出力制御装置４が初期化時登録データ３１０を受信すると、入出力制御装置４は、自装置の識別情報の値が最も大きいか否か（他装置のいずれの識別情報よりも大きいか否か）を判定する（ステップＳＴ１１）。
【０１２５】
自装置の識別情報が最も大きければ、規定起動間隔算出部１７が、基本起動間隔カウント値と総センサ接続数との乗算を行い、その結果が規定起動間隔カウント値として自装置のワンショットタイマ制御レジスタ１４に格納される（ステップＳＴ１２）。そして、入出力制御装置４は、総センサ接続数および規定起動間隔カウント値を含む初期化時返送データ４１０を他装置およびコントローラ１へ送信し（ステップＳＴ１３）、図２２の処理が終了する。
【０１２６】
なお、ステップＳＴ１１で、自装置の識別情報が最も大きくなかった場合には、規定起動間隔算出部１７が起動することなく、図２２の処理が終了する。
【０１２７】
実施の形態４に係るコントローラシステムによれば、コントローラシステムの総センサ接続数に基づいて、規定起動間隔カウント値が算出される。このような構成によれば、総センサ接続数の増減が生じた場合であっても、規定起動間隔カウント値を適切に変更することができる。これにより、ワンショットタイマ起動間隔異常を適切に検出することができる。
【０１２８】
＜実施の形態５＞
実施の形態４では、ワンショットタイマカウンタ１２が１回の起動するごとの間隔に基づいて、ワンショットタイマ起動間隔異常を検出したが、実施の形態５では、ワンショットタイマカウンタ１２が一定回数起動するごとの間隔、すなわち、起動回数が一定回数に達する間隔に基づいてワンショットタイマ起動間隔異常が検出する。
【０１２９】
実施の形態５に係る入出力制御装置４の構成は、実施の形態４の入出力制御装置４の構成（図１８）と同様である。また、実施の形態５のコントローラシステムの全体構成も、実施の形態１（図１）と同様であるものとする。
【０１３０】
実施の形態５に係るワンショットタイマ起動間隔異常管理部１６は、ワンショットタイマカウンタ１２の起動回数が一定回数に達する間隔が規定起動間隔以上であるか否かを判断し、その間隔が規定起動間隔カウント値以上である場合に、ワンショットタイマカウンタ起動間隔異常をコントローラ１に通知する。
【０１３１】
また、規定起動間隔算出部１７は、上記の「一定回数」の値と、基本起動間隔カウント値と、ワンショットタイマカウンタ１２を起動させる対象となっているセンサ機器５の合計数（総センサ接続数）とに基づいて、規定起動間隔カウント値を算出する。
【０１３２】
図２３は、実施の形態５に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態５のワンショットタイマ制御レジスタ１４には、図１９に示したパラメータに加えて、「起動間隔数」を格納している。「起動間隔数」は、上記の「一定回数」の値である。
【０１３３】
図２４は、実施の形態５に係るコントローラシステムの処理を説明するための図である。コントローラ１は、実施の形態４と同様に、初期化時登録データ３１０を全ての入出力制御装置４に送信する。ただし、実施の形態５の初期化時登録データ３１０は、実施の形態４の初期化時登録データ３１０の内容（図１９）に加えて、起動間隔数の情報をさらに含んでいる。なお、図２４の例では、初期化時登録データ３１０の起動間隔数は「２」に設定されている。
【０１３４】
実施の形態５でも、識別情報の値が最も大きい入出力制御装置４−３の規定起動間隔算出部１７のみが規定起動間隔カウント値を算出するものとする。入出力制御装置４−３の規定起動間隔算出部１７は、基本起動間隔カウント値と総センサ接続数と起動間隔数との積を、規定起動間隔カウント値を算出する。すなわち、規定起動間隔カウント値は、「基本起動間隔カウント値×総センサ接続数×起動間隔数」として算出される。図２４の例では、規定起動間隔カウント値は「２４００００００（＝２００００００×６×２）」となる。
【０１３５】
入出力制御装置４−３のワンショットタイマ制御レジスタ１４には、規定起動間隔算出部１７が算出した規定起動間隔カウント値が格納される。また、入出力制御装置４−３は、総センサ接続数および規定起動間隔カウント値を含む初期化時返送データ４１０を、コントローラ１および他の入出力制御装置４−１，４−２へ送信する。入出力制御装置４−１，４−２それぞれのワンショットタイマ制御レジスタ１４は、入出力制御装置４−３から受信した初期化時返送データ４１０の規定起動間隔カウント値を格納する。
【０１３６】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図２５に示すデータが格納されることとなる。
【０１３７】
図２６は、実施の形態４のワンショットタイマ起動間隔異常管理部がワンショットタイマ起動間隔異常を検出する間隔と、実施の形態５のワンショットタイマ起動間隔異常管理部１６がワンショットタイマ起動間隔異常を検出する間隔とを比較するタイミングチャートである。図２６では、入出力制御装置４−１の例を示しているが、入出力制御装置４−２，４−３についても同様である。
【０１３８】
図２６の起動間隔数がないときの監視区間は、正確には起動間隔数が１であるときの監視区間を意味し、実施の形態４におけるワンショットタイマ起動間隔異常の検出間隔に対応する。実施の形態４におけるワンショットタイマ起動間隔異常の検出間隔は、ワンショットタイマカウンタ１２の１回分の起動の間隔に対応している。
【０１３９】
一方、起動間隔数が２のときの監視区間は、実施の形態５におけるワンショットタイマ起動間隔異常の検出間隔に対応する。実施の形態５におけるワンショットタイマ起動間隔異常の検出間隔は、ワンショットタイマカウンタ１２の２回分の起動の間隔、つまり起動間隔数に相当する回数だけ起動する間隔に対応している。
【０１４０】
図２７は、実施の形態５に係る入出力制御装置４における、ワンショットタイマ起動間隔異常の検出処理を示すフローチャートである。以下、タイマ生成部１１が発生したトリガがワンショットタイマカウンタ１２に受信されて、割り込みハンドラがすでに起動されていることを前提にして説明する。
【０１４１】
入出力制御装置４において、ワンショットタイマ起動間隔異常管理部１６が、タイマ生成部１１が生成したトリガを受信すると、起動間隔タイマカウンタ（不図示）が「起動間隔タイマカウント」をインクリメントする（ステップＳＴ２１）。次に、ワンショットタイマ起動間隔異常管理部１６は、起動間隔タイマカウントが規定起動間隔カウント値と一致するか否かを判定する（ステップＳＴ２２）。
【０１４２】
起動間隔タイマカウントが規定起動間隔カウント値と一致した場合、ワンショットタイマ起動間隔異常管理部１６は、割り込み発生部１３に割り込みを発生させ、コントローラ１へワンショットタイマ起動間隔異常を通知する（ステップＳＴ２３）。その後、図１７の処理は終了する。
【０１４３】
起動間隔タイマカウントが規定起動間隔カウント値と一致しない場合、ワンショットタイマ起動間隔異常管理部１６は、コントローラ１から、ワンショットタイマカウンタ１２の起動要求、例えば初期化時登録データ３１０などを取得したか否かを判定する（ステップＳＴ２４）。
【０１４４】
起動要求を取得した場合には、ワンショットタイマ起動間隔異常管理部１６は、起動カウントをインクリメントして（ステップＳＴ２５）、起動カウントが起動間隔数と一致するか否かを判定する（ステップＳＴ２６）。起動要求を取得していない場合には、ワンショットタイマ起動間隔異常管理部１６は、起動カウントをインクリメントせずに、起動カウントが起動間隔数と一致するか否かを判定する（ステップＳＴ２６）。
【０１４５】
起動カウントが起動間隔数と一致すれば、ワンショットタイマ起動間隔異常管理部１６は、起動カウントおよび起動間隔タイマカウントをリセットして０にし、その後、図１７の処理は終了する。起動カウントが起動間隔数と一致しなければ、起動カウントおよび起動間隔タイマカウントがリセットされることなく、図１７の処理が終了する。
【０１４６】
実施の形態５に係るコントローラシステムによれば、総センサ接続数と起動間隔数と基本起動間隔カウント値に基づいて、規定起動間隔カウント値が算出され、実施の形態４と同様の効果を得ることができる。また、起動間隔数のワンショットタイマカウンタ１２の起動が、規定起動間隔内に行われなかった場合に、ワンショットタイマ起動間隔異常を検出することができる。
【０１４７】
＜実施の形態６＞
実施の形態６に係る入出力制御装置４の構成は、実施の形態４の入出力制御装置４の構成（図１８）と同様である。また、実施の形態５のコントローラシステムの全体構成も、実施の形態１（図１）と同様であるものとする。
【０１４８】
実施の形態６に係るワンショットタイマ起動間隔異常管理部１６は、２つの動作モードを有している。第１モードは、ワンショットタイマ起動間隔異常管理部１６が、ワンショットタイマカウンタ１２の１回の起動を監視区間の起点（ワンショットタイマカウンタ１２の起動間隔の起点）としてワンショットタイマ起動間隔異常の検出を行う動作モードである。第２モードは、ワンショットタイマ起動間隔異常管理部１６が、ワンショットタイマカウンタ１２が起動間隔数に相当する回数だけ起動したときを監視区間の起点としてワンショットタイマ起動間隔異常の検出を行う動作モードである。ワンショットタイマ起動間隔異常管理部１６は、第１モードと第２モードとを選択的に実施する。以下、第１モードを「重ねモード」と称し、第２モードを「通常モード」と称す。
【０１４９】
図２８は、実施の形態６に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態６に係るワンショットタイマ制御レジスタ１４は、図２３のパラメータに加えて、「動作モード」を格納している。動作モードは、ワンショットタイマカウンタ１２の起動間隔の監視の制御方式が、通常モードおよび重ねモードのいずれであるかを示す。ここでは、動作モードの値が「０」であれば制御方式が通常モードであることを表し、動作モードが「１」であれば制御方式が重ねモードであることを表すものとする。
【０１５０】
図２９は、実施の形態６に係るコントローラシステムの処理を説明するための図である。コントローラ１は、実施の形態５と同様に、初期化時登録データ３１０を入出力制御装置４−１，４−２，４−３に送信する。ただし、実施の形態６の初期化時登録データ３１０は、実施の形態５の初期化時登録データ３１０の内容（図２３）に加えて、動作モードの情報をさらに含んでいる。
【０１５１】
図２９の例では、初期化時登録データ３１０における動作モードは重ねモードである。この場合、初期化時登録データ３１０を受信した入出力制御装置４−１，４−２，４−３のワンショットタイマ起動間隔異常管理部１６は重ねモードで動作するようになる。
【０１５２】
また、初期化時登録データ３１０における動作モードの内容は、ワンショットタイマ制御レジスタ１４に格納される。その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図３０に示すデータが格納されることとなる。
【０１５３】
図３１は、実施の形態４に係るコントローラシステムにおける、ワンショットタイマ起動間隔異常を検出する間隔を示すタイミングチャートである。なお、図３１では、入出力制御装置４−１について示しているが、入出力制御装置４−２，４−３についても同様である。また、ここでも起動間隔数は「２」に設定されている。
【０１５４】
図３１に示される「通常モード、且つ、起動間隔数が２のときの監視区間」は、ワンショットタイマカウンタ１２の２回分の起動の間隔に対応している。通常モード時には、起動間隔数に相当する間隔の起動ごとに、ワンショットタイマカウンタ１２の起動間隔の監視が開始され、ワンショットタイマ起動間隔異常の検出が行われる。
【０１５５】
一方、図３１に示される「重ねモード、且つ、起動間隔数が２のときの監視区間」は、ワンショットタイマカウンタ１２の１回の起動の間隔に対応している。重ねモード時では、ワンショットタイマカウンタ１２の１回ごとの起動を起点として、ワンショットタイマカウンタ１２の起動間隔の監視が開始され、ワンショットタイマ起動間隔異常の検出が行われる。ワンショットタイマカウンタ１２の起動間隔を監視する期間の長さは起動間隔数に相当するため、ワンショットタイマカウンタ１２の起動間隔を監視する期間同士が部分的に重なるようになる。
【０１５６】
また、入出力制御装置４のワンショットタイマ起動間隔異常管理部１６は、重ねモードでワンショットタイマカウンタ１２の起動間隔を管理するための情報を記録する「重ねモード起動間隔管理テーブル」を格納する。図３２は、重ねモード起動間隔管理テーブルの例を示す図である。
【０１５７】
重ねモード起動間隔管理テーブルは、起動間隔数と同じ数のレコードを持つ。「タイマ番号」は、レコードのＩＤを示す番号であり、０，１，２，…の順に数字が付与される。起動間隔タイマカウントは、ワンショットタイマカウンタ１２の起動間隔を監視するためにカウントアップされる。「リセットトリガ」は、何回目の起動要求がきたときに起動間隔タイマカウントをリセットするかを決めるためのデータであり、処理が進むと変更される変数である。規定起動間隔カウント値は上記したとおりである。「起動要求数」は、入出力制御装置４に設けられた起動間隔タイマカウンタ（不図示）が現時点までに起動された回数であり、処理が進むと変更される変数である。
【０１５８】
図３３は、実施の形態４に係る入出力制御装置４において、重ねモードを適用したときの起動間隔異常の検出処理を示すフローチャートである。なお、タイマ生成部１１のトリガが受信されて、割り込みハンドラがすでに起動されていることを前提にして、以下説明する。
【０１５９】
図３３に示すステップＳＴ３１〜ＳＴ３８のフローは、起動間隔数と同じ数、もしくはタイマ番号の個数と同じ数だけ繰り返し実行される。また、ステップＳＴ３１で比較されるタイマ番号（ｎ）は、ステップＳＴ３１〜ＳＴ３８のフローが繰り返されるごとに、０，１，２，…と順に大きくなるように変更される。
【０１６０】
入出力制御装置４において、ワンショットタイマ起動間隔異常管理部１６がタイマ生成部１１の生成したトリガを受信すると、入出力制御装置４は起動要求数がタイマ番号よりも大きいか否かを判定する（ステップＳＴ３１）。
【０１６１】
起動要求数がタイマ番号以下であれば、以下のステップＳＴ３２〜ＴＳ３８の処理はスキップされ、実質的に図３３の処理は終了する。これにより、起動要求を受けた場合にのみ、各タイマは異常検出をすることになる。起動要求数がタイマ番号よりも大きければ、入出力制御装置４の起動間隔タイマカウンタ（不図示）が起動間隔タイマカウントをインクリメントする（ステップＳＴ３２）。
【０１６２】
続いて、ワンショットタイマ起動間隔異常管理部１６は、起動間隔タイマカウントが規定起動間隔カウント値と一致するか否かを判定する（ステップＳＴ３３）。起動間隔タイマカウントが規定起動間隔カウント値と一致すれば、ワンショットタイマ起動間隔異常管理部１６は、割り込み発生部１３に割り込みを発生させ、コントローラ１へワンショットタイマ起動間隔異常を通知する（ステップＳＴ３４）。
【０１６３】
一方、起動間隔タイマカウントが規定起動間隔カウント値と一致しない場合には、ワンショットタイマ起動間隔異常管理部１６は、コントローラ１から、ワンショットタイマカウンタ１２の起動要求、例えば「初期化時登録データ」３１などを取得したか否かを判定する（ステップＳＴ３５）。
【０１６４】
ステップＳＴ３５において、ワンショットタイマカウンタ１２の起動要求を取得したと判断された場合、ワンショットタイマ起動間隔異常管理部１６が起動要求数をインクリメントし（ステップＳＴ３６）、起動要求数がリセットトリガの値と一致するか否かを判定する（ステップＳＴ３７）。一方、ワンショットタイマカウンタ１２の起動要求を取得していないと判定された場合には、ワンショットタイマ起動間隔異常管理部１６が、起動要求数をインクリメントせずに、起動要求数がリセットトリガの値と一致するか否かを判定する（ステップＳＴ３７）。
【０１６５】
ステップＳＴ３７において、起動要求数がリセットトリガの値と一致した場合、起動間隔タイマカウントをリセットして０にするとともに、リセットトリガの値を起動要求数だけ増やす（ステップＳＴ３８）。
【０１６６】
以上の処理が行われた後、ステップＳＴ３１〜ＳＴ３８のフローを繰り返した回数が確認され、その回数が起動間隔数に達していなければステップＳＴ３１に戻り、達していれば図２３の処理が終了する。
【０１６７】
実施の形態６に係るコントローラシステムによれば、ワンショットタイマカウンタ１２の１回の起動ごとにワンショットタイマ起動間隔異常の検出を行うことが可能な重ねモードと、起動間隔数に相当する回数のワンショットタイマカウンタ１２の起動ごとにワンショットタイマ起動間隔異常の検出を行うことが可能な通常モードとが、選択的に実施される。通常モードは、重ねモードよりもワンショットタイマ起動間隔異常の検出能力が下がるが、消費電力の低減に寄与できる。必要に応じて通常モードと重ねモードとを切り替えることで、入出力制御装置４の消費電力の低減を図ることができる。
【０１６８】
＜実施の形態７＞
図３４は、本発明の実施の形態７に係る入出力制御装置４の構成を示すブロック図である。以下、実施の形態７で説明する構成要素のうち、実施の形態６と同じまたは類似する構成要素については同じ参照符号を付し、異なる構成要素について主に説明する。なお、実施の形態７のコントローラシステムの全体構成は、実施の形態１（図１）と同様であるものとする。
【０１６９】
図３４のワンショットタイマ部８は、実施の形態４のワンショットタイマ部８（図１８）の構成に、ワンショットタイマ禁止制御部１８を追加したものとなっている。
【０１７０】
ワンショットタイマ禁止制御部１８は、ワンショットタイマカウンタ１２の動作の許可および禁止（開始および停止）を制御する。具体的には、ワンショットタイマ禁止制御部１８は、ワンショットタイマカウンタ１２が行うワンショットタイマカウントのインクリメントの許可および禁止を制御する。なお、ワンショットタイマカウンタ１２がワンショットタイマカウントデクリメントを行う構成では、ワンショットタイマ禁止制御部１８は、そのデクリメントの許可および禁止を制御する。
【０１７１】
また、実施の形態７の入出力制御装置４は、自装置に接続されたセンサ機器５の全てが、ワンショットタイマカウンタ１２を起動させる対象となっていない場合に、ワンショットタイマ起動間隔異常の検出を禁止する。
【０１７２】
図３５は、実施の形態７に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態７に係るワンショットタイマ制御レジスタ１４は、図２８のパラメータに加えて、「タイマイネーブル」を格納する。タイマイネーブルは、入出力制御装置４ごとのワンショットタイマカウンタ１２のインクリメントの許可および禁止を示す。ここでは、タイマイネーブルの値が「０」であれば、ワンショットタイマカウンタ１２の起動およびインクリメントが禁止されていることを示し、タイマイネーブルの値が「１」であれば、ワンショットタイマカウンタ１２の起動およびインクリメントが許可されていることを示す。
【０１７３】
図３６は、実施の形態７に係るコントローラシステムの処理を説明するための図である。コントローラ１は、実施の形態６と同様に、初期化時登録データ３１０を全ての入出力制御装置４に送信する。ただし、実施の形態７の初期化時登録データ３１０には、実施の形態６の初期化時登録データ３１０の内容（図２９）に加えて、タイマイネーブルのデータを含んでいる。図３６の例では、初期化時登録データ３１０のタイマイネーブルの値には、入出力制御装置４−１のワンショットタイマカウンタ１２の起動を許可する「１」と、入出力制御装置４−２のワンショットタイマカウンタ１２の起動を禁止する「０」と、入出力制御装置４−３のワンショットタイマカウンタ１２の起動を許可する「１」とを含んでいる。
【０１７４】
入出力制御装置４は、他装置のデータ送信所要時間とセンサ接続数とタイマイネーブルの値に基づいて、自装置のワンショットタイマ起動カウント値を算出する。実施の形態７では、入出力制御装置４は、「（データ送信所要時間のうちの最小時間＋（自装置よりも小さい識別情報を持つ全ての他装置のセンサ接続数の合計×データ送信所要時間×タイマイネーブル））×自装置のタイマイネーブル」によって得られる値を、ワンショットタイマ起動時間として算出する。また、入出力制御装置４は、算出されたワンショットタイマ起動時間を、タイマ生成用周波数を基準にしたワンショットタイマ起動カウント値に換算して、ワンショットタイマ制御レジスタ１４に格納する。
【０１７５】
ここでも、ワンショットタイマ起動時間はミリ秒で定義されており、タイマ生成用周波数が１ＭＨｚであると仮定する。この場合、タイマは１マイクロ秒ごとにカウントアップされるため、入出力制御装置４−１のワンショットタイマ起動カウント値は、「１０００００（＝（（１００＋０）×１×１０００）」となる。同様に、入出力制御装置４−２のワンショットタイマ起動カウント値は、「１０００００（＝（１００＋（１００×２×１）×０）×１０００）」となる。また、入出力制御装置４−３のワンショットタイマ起動カウント値は、「３０００００（＝（（１００＋（１００×２×１）＋（１００×１×０））×１）×１０００）」となる。
【０１７６】
また、実施の形態４と同様に、入出力制御装置４のうち最も大きい値の識別情報を持つ入出力制御装置４−３は、タイマイネーブルの値が「１」である入出力制御装置４と接続されているセンサ接続数の合計を、初期化時返送データ４１０として送信する。
【０１７７】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図３７に示すデータが格納されることとなる。
【０１７８】
図３８は、実施の形態７に係るコントローラシステムにおいて、入出力制御装置４が、ワンショットタイマ割り込みによって、コントローラ１へデータを送信するタイミングを示すタイミングチャートである。なお、図３８のうち、図１７に記載されていない「ＩＮＩ」は、図３６の初期化時返送データ４１０に対応する。
【０１７９】
入出力制御装置４−２のタイマイネーブルの値は「０」であるため、入出力制御装置４−２は、自装置に接続されているセンサ機器５−３に対してワンショットタイマカウンタ１２の起動を許可しない。このため、センサ機器５−３のセンサデータは、コントローラ１に送信されない。
【０１８０】
図３９は、実施の形態７に係る入出力制御装置４における、ワンショットタイマ割り込みの発生処理を示すフローチャートである。本フローチャートの処理は、タイマ生成部１１でトリガが生成された場合、換言すれば、ワンショットタイマカウンタ１２がトリガを受信したときに実行される。なお、図３９のフローは、図７のフローにおいて、ステップＳＴ４１を追加し、ステップＳＴ５をステップＳＴ４２に置き換えたものである。このため、図３９の処理のうちステップＳＴ４１およびＳＴ４２以外の処理については適宜説明を省略する。
【０１８１】
ワンショットタイマカウンタ１２がトリガを受信すると、まず、ワンショットタイマ禁止制御部１８が、タイマイネーブルの値が「１」であるか否か、つまりワンショットタイマカウンタ１２の起動およびインクリメントが許可されているか否かを判定する（ステップＳＴ４１）。タイマイネーブルの値が「１」であると判定された場合にはステップＳＴ１に進み、タイマイネーブルの値が「０」であると判定された場合には図３９の処理は終了する。
【０１８２】
ステップＳＴ１からステップＳＴ２，ＳＴ３を経てステップＳＴ４へ進み、ワンショットタイマカウントがワンショットタイマ起動時間と等しいと判定された場合には、ステップＳＴ４２に進む。
【０１８３】
ステップＳＴ４２では、割り込み発生部１３が、ワンショットタイマ割り込みをオン状態にして、ワンショットタイマ割り込みを発生させる。また、入出力制御装置４は、ワンショットタイマカウンタ１２を停止させるとともに、ワンショットタイマカウントをリセットして０にする。その後、図３９の処理が終了する。
【０１８４】
図４０は、実施の形態７に係る入出力制御装置４における、ワンショットタイマ起動間隔異常の検出処理を示すフローチャートである。なお、図４０のフローは、重ねモードを用いる実施の形態６の図３３のフローに対し、ステップＳＴ５１を追加したものである。このため、図４０の処理のうちステップＳＴ５１以外の処理については適宜説明を省略する。
【０１８５】
入出力制御装置４において、ワンショットタイマ起動間隔異常管理部１６がタイマ生成部１１の生成したトリガを受信すると、まず、入出力制御装置４が、タイマイネーブルの値が「１」であるか否か、つまりワンショットタイマカウンタ１２の起動およびインクリメントが許可されているか否かを判定する（ステップＳＴ５１）。タイマイネーブルの値が「１」である場合には、タイマ生成部１１のトリガが受信されて、割り込みハンドラが起動された後に、処理がステップＳＴ３１に進む。その後、実施の形態６で説明した図３３のフローと同様の処理が行われる。一方、タイマイネーブルの値が「０」であった場合には、図４０の処理が終了する。
【０１８６】
実施の形態７に係るコントローラシステムによれば、各ワンショットタイマカウンタ１２の起動および停止が制御されるため、必要な入出力制御装置４のみのワンショットタイマカウンタ１２を起動することができる。不要なセンサデータの収集および送信を行わなくて済むことから、コントローラ１の負荷を抑制することができる。
【０１８７】
また、実施の形態７に係るコントローラシステムによれば、ワンショットタイマカウンタ１２を起動させる対象となっていないセンサ機器５については、ワンショットタイマ起動間隔異常の検出が禁止される。この結果、不要なワンショットタイマ起動間隔異常の検出および通知が防止され、それによってもコントローラ１の負荷を抑制することができる。
【０１８８】
＜実施の形態８＞
実施の形態８に係る入出力制御装置４の構成は、実施の形態７の入出力制御装置４の構成（図３４）と同様である。また、実施の形態８のコントローラシステムの全体構成は、実施の形態１（図１）と同様であるものとする。
【０１８９】
実施の形態８に係る入出力制御装置４は、自装置に接続されたセンサ機器５が、ワンショットタイマカウンタ１２を起動させる対象となっている場合に、ワンショットタイマ起動間隔異常の検出の許可および禁止を制御可能となっている。
【０１９０】
図４１は、実施の形態８に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態８に係るワンショットタイマ制御レジスタ１４は、図３５のパラメータに加えて、「起動間隔イネーブル」を格納する。「起動間隔イネーブル」は、ワンショットタイマ起動間隔異常の検出の許可および禁止、ひいてはコントローラ１へのワンショットタイマ起動間隔異常の通知および非通知を示す。ここでは、起動間隔イネーブルが「０」であれば、ワンショットタイマ起動間隔異常の検出が禁止されていることを示し、起動間隔イネーブルが「１」であれば、ワンショットタイマ起動間隔異常の検出が許可されていることを示すものとする。
【０１９１】
図４２は、実施の形態８に係るコントローラシステムの処理を説明するための図である。コントローラ１は、実施の形態７と同様に、初期化時登録データ３１０を全ての入出力制御装置４に送信する。ただし、実施の形態８に係る初期化時登録データ３１０は、実施の形態７の初期化時登録データ３１０の内容（図３６）に加えて、起動間隔イネーブルを含んでいる。
【０１９２】
図４２の例では、初期化時登録データ３１０の起動間隔イネーブルは、入出力制御装置４−１のワンショットタイマ起動間隔異常の検出を禁止する「０」と、入出力制御装置４−２のワンショットタイマ起動間隔異常の検出を許可する「１」と、入出力制御装置４−３のワンショットタイマ起動間隔異常の検出を許可する「１」とを含んでいる。
【０１９３】
この場合、コントローラ１からの初期化時登録データ３１０が、入出力制御装置４−１，４−２，４−３に送信されることによって、入出力制御装置４−１のワンショットタイマ制御レジスタ１４に、起動間隔イネーブルとして「０」が設定され、入出力制御装置４−２，４−３のワンショットタイマ制御レジスタ１４に、起動間隔イネーブルとして「１」が設定される。
【０１９４】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図４３に示すデータが格納されることとなる。
【０１９５】
この結果、入出力制御装置４−１は、起動間隔イネーブルによってワンショットタイマ起動間隔異常の検出が禁止される。入出力制御装置４−２は、起動間隔イネーブルによってワンショットタイマ起動間隔異常の検出が許可されるが、タイマイネーブルによってワンショットタイマカウンタ１２の起動そのものが禁止されているので、ワンショットタイマ起動間隔異常の検出は行わない。入出力制御装置４−３は、起動間隔イネーブルによってワンショットタイマ起動間隔異常の検出が許可され、且つ、タイマイネーブルによってワンショットタイマカウンタ１２の起動が許可されているので、ワンショットタイマ起動間隔異常の検出を行う。
【０１９６】
図４４は、実施の形態８に係る入出力制御装置４における、ワンショットタイマ起動間隔異常の検出処理を示すフローチャートである。なお、図４６のフローは、重ねモードを用いる実施の形態６の図３３のフローに対し、ステップＳＴ５１およびステップＳＴ６１を追加したものである。このため、図４４の処理のうちステップＳＴ５１，ＳＴ６１以外の処理については適宜説明を省略する。
【０１９７】
入出力制御装置４において、ワンショットタイマ起動間隔異常管理部１６がタイマ生成部１１の生成したトリガを受信すると、まず、入出力制御装置４が、タイマイネーブルの値が「１」であるか否か、つまりワンショットタイマカウンタ１２の起動およびインクリメントが許可されているか否かを判定する（ステップＳＴ５１）。タイマイネーブルの値が「１」であった場合には、ステップＳＴ６１に進み、タイマイネーブルの値が「０」であった場合には、図４４の処理が終了する。
【０１９８】
ステップＳＴ６１では、入出力制御装置４が、起動間隔イネーブルが「１」であるか否か、つまりワンショットタイマ起動間隔異常の検出が許可されているか否かを判定する。起動間隔イネーブルが「１」であった場合には、タイマ生成部１１のトリガが受信されて、割り込みハンドラが起動された後に、ステップＳＴ３１に進む。その後、実施の形態６で説明した図３３の処理と同様の処理が行われる。一方、起動間隔イネーブルが「０」であった場合には、図４４の処理が終了する。
【０１９９】
実施の形態８に係るコントローラシステムによれば、センサ機器５がワンショットタイマカウンタ１２を起動させる対象となっていても、ワンショットタイマ起動間隔異常の検出の許可および禁止を制御するので、必要な入出力制御装置４のみのワンショットタイマ起動間隔異常の検出を行うことができる。この結果、不要なワンショットタイマ起動間隔異常の検出および送信を防止できるという効果をさらに高めることができ、コントローラ１の負荷を抑制することができる。
【０２００】
＜実施の形態９＞
図４５は、本発明の実施の形態９に係るコントローラシステムの全体構成を示すブロック図である。
【０２０１】
図４５のコントローラシステムは、コントローラ１と、３つの入出力制御装置４−１〜４−３とを備える。以下の説明において、入出力制御装置４−１〜４−３のうちのいずれであるかを特定しない場合には、それぞれを単に「入出力制御装置４」と称すこともある。なお、入出力制御装置４の個数は３つに限られず、複数であればよい。
【０２０２】
入出力制御装置４−１，４−３は、それぞれ異なる通信バス６を介してコントローラ１に接続している。入出力制御装置４−２は、通信バス６を介して出力制御装置４−１に接続すると共に、別の通信バス６を介して入出力制御装置４−３にも接続している。つまり、入出力制御装置４−２は、入出力制御装置４−１を通してコントローラ１に接続するとともに、入出力制御装置４−３を通してもコントローラ１に接続する。このように、図４５のコントローラシステムでは、複数の入出力制御装置４が、コントローラ１と通信可能にリング型に接続されている。
【０２０３】
また、入出力制御装置４−１はセンサ機器５−１，５−２と接続されている。入出力制御装置４−２はセンサ機器５−３と接続されている。入出力制御装置４−３はセンサ機器５−４，５−５，５−６と接続されている。以下の説明において、センサ機器５−１〜５−６のうちのいずれであるかを特定しない場合には、それぞれを単に「センサ機器５」と称すこともある。なお、センサ機器５の個数は６つに限られず、１つ以上あればよい。
【０２０４】
コントローラ１、入出力制御装置４、センサ機器５および通信バス６の基本的な構成は、実施の形態１〜８で説明したものと同様でよい。
【０２０５】
図４６は、実施の形態９に係るワンショットタイマ制御レジスタ１４に格納されるパラメータを示す図である。実施の形態１と同様に、ワンショットタイマ制御レジスタ１４は、パラメータとして、「ワンショットタイマ起動カウント値」と、「センサ接続数」と、「データ送信所要時間」と、「ワンショットタイマ割り込み所要時間」と、「階層」と、「基底ワンショットタイマ起動カウント値」とを格納している。
【０２０６】
実施の形態９では、コントローラ１からデータを受信する入出力制御装置４−１の階層を「１」、入出力制御装置４−１からデータを受信する入出力制御装置４−２の階層を「２」、入出力制御装置４−２からデータを受信する入出力制御装置４−３の階層を「３」と定義する。
【０２０７】
図４７は、実施の形態９に係るコントローラシステムの処理を説明するための図である。なお、以下に示すワンショットタイマ起動カウント値の算出は、入出力制御装置４−１，４−２，４−３のそれぞれの起動カウント値算出部１５によって行われる。
【０２０８】
実施の形態９では、階層の値の大きい入出力制御装置４から、自装置のワンショットタイマ割り込み所要時間の算出を行う。入出力制御装置４は、自装置のワンショットタイマ割り込み所要時間を、センサ接続数とデータ送信所要時間との積として算出する。すなわち、ワンショットタイマ割り込み所要時間は、「センサ接続数×データ送信所要時間」として算出される。
【０２０９】
まず、階層の値が最も大きい入出力制御装置４−３がワンショットタイマ割り込み所要時間を算出する。入出力制御装置４−２のワンショットタイマ割り込み所要時間は、「３００（＝３×１００）」となる。入出力制御装置４−３は、自装置の識別情報とワンショットタイマ割り込み所要時間を含む返送データ４２０を、自装置の次に階層の値が大きい入出力制御装置４−２に送信する。
【０２１０】
続いて、返送データ４２０を受信した入出力制御装置４−２がワンショットタイマ割り込み所要時間を算出する。入出力制御装置４−２のワンショットタイマ割り込み所要時間は、「１００（＝１×１００）」となる。入出力制御装置４−２は、自装置の識別情報とワンショットタイマ割り込み所要時間を含む返送データ４２０を、自装置の次に階層が大きい入出力制御装置４−１に送信する。
【０２１１】
続いて、返送データ４２０を受信した入出力制御装置４−１がワンショットタイマ割り込み所要時間を算出する。入出力制御装置４−１のワンショットタイマ割り込み所要時間は、「２００（＝２×１００）」となる。
【０２１２】
その後、コントローラ１は、ワンショットタイマ制御レジスタ１４のパラメータを規定するためのデータである初期化時登録データ３１０を、入出力制御装置４に送信する。実施の形態９の初期化時登録データ３１０は、入出力制御装置４−１，４−２，４−３の識別情報、センサ接続数、データ送信所要時間、ワンショットタイマ割り込み所要時間、階層、および基底ワンショットタイマ起動カウント値を含んでいる。
【０２１３】
図４７の例では、初期化時登録データ３１０において、入出力制御装置４−１の識別情報は「４１」、入出力制御装置４−２の識別情報は「４２」、入出力制御装置４−３の識別情報は「４３」である。入出力制御装置４−１のセンサ接続数は「２」、入出力制御装置４−２のセンサ接続数は「１」、入出力制御装置４−３のセンサ接続数は「３」である。入出力制御装置４−１のデータ送信所要時間は「１００」、入出力制御装置４−２のデータ送信所要時間は「１００」、入出力制御装置４−３のデータ送信所要時間は「１００」である。入出力制御装置４−１のワンショットタイマ割り込み所要時間は「２００」、入出力制御装置４−２のワンショットタイマ割り込み所要時間は「１００」、入出力制御装置４−３のワンショットタイマ割り込み所要時間は「３００」である。入出力制御装置４−１の階層は「１」、入出力制御装置４−２の階層は「２」、入出力制御装置４−３の階層は「３」である。
【０２１４】
実施の形態９では、階層が「１」である入出力制御装置４から、自装置のワンショットタイマ起動カウント値を算出する。また、実施の形態９では、基底ワンショットタイマ起動カウント値は「０」である。
【０２１５】
入出力制御装置４は、他装置のワンショットタイマ割り込み所要時間に基づいてワンショットタイマ起動時間を算出する。具体的には、入出力制御装置４は、ワンショットタイマ起動時間を、入出力制御装置４のデータ送信所要時間のうちの最小時間と、自装置よりも小さい値の階層を持つ全ての他装置のワンショットタイマ割り込み所要時間の合計との和として算出する。そして、入出力制御装置４は、ワンショットタイマ割り込み所要時間を、タイマ生成用周波数を基準にするワンショットタイマ起動カウント値に換算して、ワンショットタイマ制御レジスタ１４に格納する。
【０２１６】
ここでも、ワンショットタイマ起動時間はミリ秒で定義されており、タイマ生成用周波数が１ＭＨｚであると仮定する。この場合、タイマは１マイクロ秒ごとにカウントアップされるため、入出力制御装置４−１のワンショットタイマ起動カウント値は、「１０００００（＝（１００＋０）×１０００）」となる。また、入出力制御装置４−２のワンショットタイマ起動カウント値は、「３０００００（＝（１００＋２００）×１０００）」となる。さらに、入出力制御装置４−３のワンショットタイマ起動カウント値は、「４０００００（＝（１００＋２００＋１００）×１０００」となる。
【０２１７】
その結果、入出力制御装置４のワンショットタイマ制御レジスタ１４には、図４８に示すデータが格納されることとなる。
【０２１８】
図４９は、実施の形態１に係るコントローラシステムにおいて、ワンショットタイマ割り込みによって、コントローラ１へセンサデータを送信するタイミングを示すタイミングチャートである。
【０２１９】
図４７で説明したように、コントローラ１からの初期化時登録データ３１０が、入出力制御装置４に送信されることによって、入出力制御装置４のワンショットタイマ制御レジスタ１４にてワンショットタイマ起動カウント値が設定される。
【０２２０】
入出力制御装置４は、自装置のワンショットタイマ起動カウント値が設定されると、自装置のワンショットタイマカウンタ１２を起動させる。そして、ワンショットタイマカウンタ１２のワンショットタイマカウントが自装置のワンショットタイマ起動カウント値と等しくなると、入出力制御装置４は、自装置に接続されたセンサ機器５のセンサデータをコントローラ１へ送信する。
【０２２１】
入出力制御装置４−１は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「１０００００」と等しくなると、センサ機器５−１，５−２のセンサデータを順にコントローラ１へ送信する。入出力制御装置４−２は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「３０００００」と等しくなると、センサ機器５−３のセンサデータを、入出力制御装置４−１を介してコントローラ１に送信する。入出力制御装置４−３は、自装置のワンショットタイマ起動カウント値が設定された後、ワンショットタイマカウントが「４０００００」と等しくなると、センサ機器５−４，５−５，５−６のセンサデータを順に、入出力制御装置４−１，４−２を介してコントローラ１に送信する。
【０２２２】
実施の形態９に係るコントローラシステムによれば、複数の入出力制御装置４のそれぞれの起動カウント値算出部１５が、センサ接続数に基づいて、ワンショットタイマ起動カウント値を算出する。このような構成によれば、コントローラ１内にタイマを設けて、コントローラ１が、タイムイベントキューの管理、つまり割り込み発生のための時間の管理を行わなくても、コントローラ１は、時分割でデータを取得することが可能となる。このため、コントローラ１の負荷を抑制することができる。また、コントローラシステムの応答性の向上化も期待できる。
【０２２３】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【０２２４】
この発明は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、この発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０２２５】
１  コントローラ、２  プロセッサ、３  通信部、４  入出力制御装置、５  センサ機器、６  通信バス、７  入出力部、８  ワンショットタイマ部、９  通信部、１１  タイマ生成部、１２  ワンショットタイマカウンタ、１３  割り込み発生部、１４  ワンショットタイマ制御レジスタ、１５  起動カウント値算出部、１６  ワンショットタイマ起動間隔異常管理部、１７  規定起動間隔算出部、１８  ワンショットタイマ禁止制御部、１００，２００  ハブ、３１０  初期化時登録データ、４２０  返送データ、４１０  初期化時返送データ。
【図１】
2018229968.tif 000003
【図２】
2018229968.tif 000004
【図３】
2018229968.tif 000005
【図４】
2018229968.tif 000006
【図５】
2018229968.tif 000007
【図６】
2018229968.tif 000008
【図７】
2018229968.tif 000009
【図８】
2018229968.tif 000010
【図９】
2018229968.tif 000011
【図１０】
2018229968.tif 000012
【図１１】
2018229968.tif 000013
【図１２】
2018229968.tif 000014
【図１３】
2018229968.tif 000015
【図１４】
2018229968.tif 000016
【図１５】
2018229968.tif 000017
【図１６】
2018229968.tif 000018
【図１７】
2018229968.tif 000019
【図１８】
2018229968.tif 000020
【図１９】
2018229968.tif 000021
【図２０】
2018229968.tif 000022
【図２１】
2018229968.tif 000023
【図２２】
2018229968.tif 000024
【図２３】
2018229968.tif 000025
【図２４】
2018229968.tif 000026
【図２５】
2018229968.tif 000027
【図２６】
2018229968.tif 000028
【図２７】
2018229968.tif 000029
【図２８】
2018229968.tif 000030
【図２９】
2018229968.tif 000031
【図３０】
2018229968.tif 000032
【図３１】
2018229968.tif 000033
【図３２】
2018229968.tif 000034
【図３３】
2018229968.tif 000035
【図３４】
2018229968.tif 000036
【図３５】
2018229968.tif 000037
【図３６】
2018229968.tif 000038
【図３７】
2018229968.tif 000039
【図３８】
2018229968.tif 000040
【図３９】
2018229968.tif 000041
【図４０】
2018229968.tif 000042
【図４１】
2018229968.tif 000043
【図４２】
2018229968.tif 000044
【図４３】
2018229968.tif 000045
【図４４】
2018229968.tif 000046
【図４５】
2018229968.tif 000047
【図４６】
2018229968.tif 000048
【図４７】
2018229968.tif 000049
【図４８】
2018229968.tif 000050
【図４９】
2018229968.tif 000051
【手続補正書】
【提出日】平成29年9月12日(2017.9.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コントローラと、
前記コントローラと通信可能に接続された複数の入出力制御装置と、
前記複数の入出力制御装置に接続されたセンサ機器と、
を備えたコントローラシステムであって、
前記複数の入出力制御装置の各々は、
ワンショットタイマカウントをインクリメントまたはデクリメントするワンショットタイマカウンタと、
前記ワンショットタイマカウンタに前記ワンショットタイマカウントのインクリメントまたはデクリメントを実施させるトリガを生成するタイマ生成部と、
前記ワンショットタイマカウントと予め定められたワンショットタイマ起動カウント値との比較結果に基づいて、割り込みを発生させる割り込み発生部と、
当該入出力制御装置の識別情報、前記コントローラ側を上位側として規定された当該入出力制御装置の階層の情報、および当該入出力制御装置に接続された前記センサ機器のうち前記ワンショットタイマカウンタを起動させる対象となっているものの個数であるセンサ接続数に基づいて、前記ワンショットタイマ起動カウント値を算出する起動カウント値算出部と、
前記ワンショットタイマカウンタの起動回数が一定回数に達する間隔または前記ワンショットタイマカウンタの起動間隔が規定起動間隔以上になると、前記コントローラに異常を通知するワンショットタイマ起動間隔異常管理部と、
を備える、
ことを特徴とするコントローラシステム。
【請求項２】
前記複数の入出力制御装置の各々において、
前記起動カウント値算出部は、さらに、当該入出力制御装置と同じ階層の他の入出力制御装置が前記センサ機器のデータをコントローラへ通知するための所要時間であるワンショットタイマ割り込み所要時間と、当該入出力制御装置の上位の階層に接続されている他の入出力制御装置の前記ワンショットタイマ起動カウント値および前記センサ接続数を考慮に加えて、当該入出力制御装置の前記ワンショットタイマ起動カウント値を算出する、
請求項１に記載のコントローラシステム。
【請求項３】
前記ワンショットタイマ起動間隔異常管理部は、前記ワンショットタイマカウンタの起動間隔が規定起動間隔以上になると、前記コントローラに異常を通知し、
前記複数の入出力制御装置の少なくとも１つは、
当該入出力制御装置の前記センサ接続数に基づいて、前記規定起動間隔を算出する規定起動間隔算出部をさらに備える、
請求項１または請求項２に記載のコントローラシステム。
【請求項４】
前記ワンショットタイマ起動間隔異常管理部は、前記ワンショットタイマカウンタの起動回数が一定回数に達する間隔が、規定起動間隔以上になると、前記コントローラに異常を通知し、
前記複数の入出力制御装置の少なくとも１つは、
前記複数の入出力制御装置に接続された全ての前記センサ機器のうち、前記ワンショットタイマカウンタを起動させる対象となっている前記センサ機器の合計数と、前記一定回数の値とに基づいて、前記規定起動間隔を算出する規定起動間隔算出部をさらに備える、
請求項１または請求項２に記載のコントローラシステム。
【請求項５】
前記ワンショットタイマ起動間隔異常管理部は、
動作モードとして、前記ワンショットタイマカウンタの１回ごとの起動を前記間隔の起点にして前記異常の検出を行う第１モードと、前記ワンショットタイマカウンタの複数回ごとの起動を前記間隔の起点にして前記検出を行う第２モードと、を備えている、
請求項４に記載のコントローラシステム。
【請求項６】
前記複数の入出力制御装置の各々は、
前記ワンショットタイマカウンタによる前記ワンショットタイマカウントのインクリメントまたはデクリメントの許可および禁止を制御するワンショットタイマ禁止制御部をさらに備える、
請求項１から請求項５のいずれか一項に記載のコントローラシステム。
【請求項７】
前記複数の入出力制御装置の各々は、
前記ワンショットタイマカウンタによる前記ワンショットタイマカウントのインクリメントまたはデクリメントの許可および禁止を制御するワンショットタイマ禁止制御部をさらに備え、
当該入出力制御装置に接続された前記センサ機器の全てが、前記ワンショットタイマカウンタを起動させる対象となっていない場合に、ワンショットタイマ起動間隔異常管理部による前記異常の検出を禁止する、
請求項３から請求項５のいずれか一項に記載のコントローラシステム。
【請求項８】
前記複数の入出力制御装置の各々は、
当該入出力制御装置に接続された前記センサ機器が、前記ワンショットタイマカウンタを起動させる対象となっている場合に、ワンショットタイマ起動間隔異常管理部による前記異常の検出の許可および禁止を制御可能である、
請求項７に記載のコントローラシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明に係るコントローラシステムは、コントローラと、前記コントローラと通信可能に接続された複数の入出力制御装置と、前記複数の入出力制御装置に接続されたセンサ機器と、を備えたコントローラシステムであって、前記複数の入出力制御装置の各々は、ワンショットタイマカウントをインクリメントまたはデクリメントするワンショットタイマカウンタと、前記ワンショットタイマカウンタに前記ワンショットタイマカウントのインクリメントまたはデクリメントを実施させるトリガを生成するタイマ生成部と、前記ワンショットタイマカウントと予め定められたワンショットタイマ起動カウント値との比較結果に基づいて、割り込みを発生させる割り込み発生部と、当該入出力制御装置の識別情報、前記コントローラ側を上位側として規定された当該入出力制御装置の階層の情報、および当該入出力制御装置に接続された前記センサ機器のうち前記ワンショットタイマカウンタを起動させる対象となっているものの個数であるセンサ接続数に基づいて、前記ワンショットタイマ起動カウント値を算出する起動カウント値算出部と、前記ワンショットタイマカウンタの起動回数が一定回数に達する間隔または前記ワンショットタイマカウンタの起動間隔が規定起動間隔以上になると、前記コントローラに異常を通知するワンショットタイマ起動間隔異常管理部と、を備える。
【国際調査報告】
2018229968.tif 000052
2018229968.tif 000053