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