(57)【要約】【課題】  タクト周期に依存せず高い時間精度で各ＩＯの入力値の変化に関する情報を収集することができるコントローラシステムを提供する。【解決手段】  コントローラのＩＯ１は、タクト周期に同期してリセットされるタイマ１２１を有している。入力値変化検出部１２２は、ＩＯ１に対する入力値の変化を検出したとき、タイマ１２１のタイマ値を変化点タイマ値として変化点タイマ値保持部１２３に保持させる。フレーム生成部１２４は、タクト周期の切り換わり時、変化点タイマ値保持部１２３に保持された変化点タイマ値とＩＯ１の入力値を含むフレームをＣＰＵ１１に送る。ＣＰＵ１１の変化時刻計算・記録部１４２は、ＩＯ１からのフレーム内の変化点タイマ値と、タクトカウンタ１４１のカウント値に基づき、フレーム内の入力値の変化時刻を特定する。【選択図】図２
2015118505.tif 000002
【特許請求の範囲】
【請求項１】
入出力装置とプロセッサとを各々含む１または複数のコントローラとサーバとをコントローラレベルネットワークを介して接続してなるコントローラシステムにおいて、
各コントローラのプロセッサは、互いに同期化され、共通のタクト周期の回数をカウントするタクトカウンタを有し、
各コントローラに属する入出力装置は、前記タクト周期に同期してリセットされるタイマを各々有し、当該入出力装置に対する入力信号の変化時における当該タイマのタイマ値を検出し、
各コントローラのプロセッサは、当該コントローラに属する入出力装置に対する入力信号とその変化時におけるタイマ値を当該入出力装置から収集し、前記タクトカウンタのカウント値と前記入出力装置から収集したタイマ値とに基づいて、当該入出力装置から収集した入力信号の変化時刻を特定し、当該入出力装置から収集した入力信号とその変化時刻を示すタイムスタンプとを前記コントローラレベルネットワークを介して前記サーバに送信することを特徴とするコントローラシステム。
【請求項２】
各コントローラの入出力装置は、入力値の変化時における前記タイマのタイマ値を変化点タイマ値として保持する変化点タイマ値保持部を有し、前記入力値の変化を検出したタクト周期の次のタクト周期において、その時点における入力値と、前記変化点タイマ値保持部に保持された変化点タイマ値とを含むフレームを当該入出力装置が属するコントローラのプロセッサに送信し、
当該プロセッサは、前記フレーム内の変化点タイマ値と前記タクトカウンタのカウント値に基づいて、前記フレーム内の入力値の変化時刻を特定することを特徴とする請求項１に記載のコントローラシステム。
【請求項３】
前記コントローラのプロセッサは、当該コントローラに属する入出力装置から収集した入力信号およびその変化時刻を示すタイムスタンプを記憶手段に記憶させ、その後、前記記憶手段に記憶された入力信号およびタイムスタンプを前記サーバに送信することを特徴とする請求項１または２に記載のコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のコントローラとサーバとをネットワーク接続してなるコントローラシステムに関する。
【背景技術】
【０００２】
製造工程等の監視制御のための手段として、１または複数のコントローラとこれらのコントローラを管理するサーバとを備えたコントローラシステムが用いられる。ここで、各コントローラは、１または複数の入出力装置（以下、ＩＯという）と、各ＩＯを管理するプロセッサであるＣＰＵとを有する。各ＩＯは、監視対象の状態を検知するセンサ等に接続されている。各コントローラのＣＰＵは、コントローラ間で共通のタクト周期に同期して、配下のＩＯの制御を行う。各コントローラのＣＰＵは、配下のＩＯがセンサ等からの入力値の変化を検知した場合、その入力値の変化に関する情報を当該ＩＯから収集し、その入力値の変化時点が属するタクト周期を示すタイムスタンプを生成する。そして、コントローラのＣＰＵは、変化後のＩＯの入力値と、タイムスタンプを含むフレームをサーバに送信する。サーバでは、このようにして各コントローラのＣＰＵから受信されるフレームを蓄積する。なお、このコントローラシステムは、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２０１２−６８８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年の金属圧延加工等の工程を対象としたコントローラシステムでは、コントローラの各ＩＯにより、圧延ローラの回転速度、圧力、圧延対象の温度、板厚等の測定値の変化時刻を高い時間精度で求めたいという要求がある。これらの測定値の変化時刻を高い時間精度で求めることができれば、その結果の解析を行うことにより、圧延工程を構成する各種の機器のパラメータのチューニングや故障診断に役立て、製品品質を向上させることができるからである。しかしながら、監視対象が金属圧延加工等の大規模な工程になると、コントローラのＣＰＵの配下のＩＯ数を増やす必要がある。そして、上述した従来のコントローラシステムでは、ＣＰＵの配下のＩＯ数が増えると、ＣＰＵの制御負担が増えるため、各コントローラに共通のタクト周期の時間長が長くなる。しかし、タクト周期が長くなると、サーバが収集する各ＩＯの入力値の変化時刻の時間精度が粗くなるという問題が発生する。
【０００５】
この発明は以上のような事情に鑑みてなされたものであり、タクト周期に依存せず高い時間精度で各ＩＯの入力値の変化時刻に関する情報を収集することができるコントローラシステムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
この発明は、入出力装置とプロセッサとを各々含む１または複数のコントローラとサーバとをコントローラレベルネットワークを介して接続してなるコントローラシステムにおいて、各コントローラのプロセッサは、互いに同期化され、共通のタクト周期の回数をカウントするタクトカウンタを有し、各コントローラに属する入出力装置は、前記タクト周期に同期してリセットされるタイマを各々有し、当該入出力装置に対する入力信号の変化時における当該タイマのタイマ値を検出し、各コントローラのプロセッサは、当該コントローラに属する入出力装置に対する入力信号とその変化時におけるタイマ値を当該入出力装置から収集し、前記タクトカウンタのカウント値と前記入出力装置から収集したタイマ値とに基づいて、当該入出力装置から収集した入力信号の変化時刻を特定し、当該入出力装置から収集した入力信号とその変化時刻を示すタイムスタンプとを前記コントローラレベルネットワークを介して前記サーバに送信することを特徴とするコントローラシステムを提供する。
【発明の効果】
【０００７】
この発明によれば、入出力装置に対する入力信号の変化時におけるタイマ値と、タクトカウンタのカウント値とに基づいて、入力信号の変化時刻が特定されるので、タクト周期の時間長に依存せず、入力信号の変化時刻を高い時間精度で特定することができる。従って、コントローラシステムの監視対象の測定の時間精度を高め、製造工程に設置された各種の機器のパラメータチューニングや故障診断に役立て、製品品質を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の一実施形態であるコントローラシステムの構成を示すブロック図である。
【図２】同実施形態におけるコントローラのＩＯとＣＰＵの機能構成を示すブロック図である。
【図３】同実施形態における同期化方法の例を示す図である。
【図４】同実施形態の動作例を示すタイムチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、この発明の実施形態について説明する。
図１はこの発明の一実施形態であるコントローラシステムの構成を示すブロック図である。このコントローラシステムは、サーバ１００と、コントローラ２０１および２０２とをコントローラレベルネットワーク３００により接続してなるものである。図１に示す例では、２台のコントローラ２０１および２０２がコントローラレベルネットワーク３００に接続されているが、１台または３台以上のコントローラをコントローラレベルネットワーク３００に接続してもよい。
【００１０】
図示の例において、コントローラ２０１は、ＩＯ１〜３と、これらのＩＯ１〜３の管理を行うＣＰＵ１１とを有する。ここで、ＣＰＵ１１と、ＩＯ１〜３の各々とはデバイスレベルネットワーク４０１により接続されている。ＩＯ１には、監視対象の状態を検出するセンサ等の入力機器２１が接続されている。図示は省略したが、他のＩＯ２および３にも同様な入力機器が接続されている。各ＩＯ１〜３は、各々の監視対象の状態を示す入力値を各々に接続された入力機器から取得し、この入力値をデバイスレベルネットワーク４０１を介してＣＰＵ１１に送信する。
【００１１】
コントローラ２０２も、コントローラ２０１のものと同様なＩＯ４〜ＩＯ６とこれらのＩＯを管理するＣＰＵ１２とを備えている。ＣＰＵ１２と、ＩＯ４〜６の各々は、デバイスレベルネットワーク４０２により接続されている。また、各ＩＯ４〜６には各々の監視対象の状態を検出する入力機器が接続されている。図１には、これらの入力機器のうちＩＯ４に接続された入力機器２４が図示されている。
【００１２】
そして、コントローラ２０１のＣＰＵ１１およびコントローラ２０２のＣＰＵ１２は、コントローラレベルネットワーク３００を介してサーバ１００に接続されている。コントローラ２０１のＣＰＵ１１は、ＩＯ１〜３から取得した入力値をコントローラレベルネットワーク３００を介してサーバ１００に送信する。また、コントローラ２０２のＣＰＵ１２は、ＩＯ４〜６から取得した入力値をコントローラレベルネットワーク３００を介してサーバ１００に送信する。
以上が本実施形態によるコントローラシステムの全体構成である。
【００１３】
図２はコントローラ２０１のＣＰＵ１１およびＩＯ１の機能構成を例示するブロック図である。図２に示すように、ＩＯ１は、フレーム送信部１０１と、データ収集部１０２とを有する。
【００１４】
データ収集部１０２は、タイマ１２１と、入力値変化検出部１２２と、変化点タイマ値保持部１２３と、フレーム生成部１２４とを有する。
【００１５】
タイマ１２１は、一定のタクト周期の計時を繰り返すタイマである。本実施形態において、コントローラ２０１のＩＯ１〜３、コントローラ２０２のＩＯ４〜６は、同様なタイマ１２１を有している。これらのタイマ１２１は、同期化されており、共通のタクト周期に同期してリセットされ、同タクト周期の計時を繰り返す。入力値変化検出部１２２は、入力機器２１（図１参照）からＩＯ１に与えられる入力値が変化したとき、その時点におけるタイマ１２１のタイマ値を変化点タイマ値として変化点タイマ値保持部１２３に保持させる手段である。フレーム生成部１２４は、変化点タイマ値保持部１２３に保持された変化点タイマ値と入力機器２１（図１参照）から与えられた入力値を含むフレームを生成する手段である。
【００１６】
フレーム送信部１０１は、このデータ収集部１０２のフレーム生成部１２４が生成したフレームをデバイスレベルネットワーク４０１を介してＣＰＵ１１に送信する手段である。以上がＩＯ１の構成である。なお、他のＩＯ２〜６の構成も同様である。
【００１７】
図２に示すように、ＣＰＵ１１は、フレーム受信部１０３と、ＩＯ情報収集部１０４と、フレーム送信部１０５とを有する。フレーム受信部１０３は、デバイスレベルネットワーク４０１を介してＩＯ１〜３からフレームを受信する手段である。ＩＯ情報収集部１０４は、タクトカウンタ１４１と、変化時刻計算・記録部１４２とを有する。タクトカウンタ１４１は、タクト周期の発生回数をカウントするカウンタである。本実施形態において、コントローラ２０１におけるＣＰＵ１１のタクトカウンタ１４１と、コントローラ２０２におけるＣＰＵ１２のタクトカウンタ１４１は同期化されており、常に同一時刻において同一のカウント値を保持するようになっている。変化時刻計算・記録部１４２は、フレーム受信部１０３が受信したフレームからＩＯの検知した入力値およびその変化点タイマ値を取り出し、タクトカウンタ１４１のカウント値と変化点タイマ値とに基づいて、当該入力値の変化時刻を計算し、入力値とともにＩＯ情報として記憶する手段である。なお、この入力値の変化時刻の計算方法については説明の重複を避けるため、本実施形態の動作説明において詳細を明らかにする。フレーム送信部１０５は、変化時刻計算・記録部１４２が記憶した各ＩＯの入力値とその変化時刻を示すＩＯ情報を含むフレームを生成し、コントローラレベルネットワーク３００を介してサーバ１００（図１参照）に送信する手段である。
以上が本実施形態の構成である。
【００１８】
本実施形態では、各コントローラのＩＯが有する各タイマ１２１を同期化させるとともに、各コントローラのＣＰＵ１１および１２の各タクトカウンタ１４１を同期化させる必要がある。そのための同期化方法として各種の方法が考えられるが、以下説明するように、例えば特許文献１に開示された同期化方法を用いてもよい。
【００１９】
図３に示す例において、マスタモジュールＭ０はサーバ１００に相当し、スレーブモジュールＭ１〜Ｍ３は、マスタモジュールＭ０であるサーバ１００に接続された各コントローラのＣＰＵに相当する。この例では、マスタモジュールＭ０およびスレーブモジュールＭ１〜Ｍ３は、各々タイマを有している。この例では、まず、このマスタモジュールＭ０およびスレーブモジュールＭ１〜Ｍ３が有する各タイマを同期化させる。その後、各コントローラにおけるＣＰＵのタイマとその配下の各ＩＯのタイマとを同期化させる。この場合、前者の同期化方法をそのまま後者の同期化に使用可能である。
【００２０】
図３に示す例において、各モジュールＭ０〜Ｍ３は、接続端子Ｊ１〜Ｊ４を有している。ここで、接続端子Ｊ１およびＪ３は入力端子、接続端子Ｊ２およびＪ４は出力端子である。また、各モジュールＭ０〜Ｍ３では、入力端子Ｊ１および出力端子Ｊ４が１つの組を構成し、入力端子Ｊ３および出力端子Ｊ２が他の１つの組を構成している。
【００２１】
図３に示す例では、モジュールＭ３およびＭ０間がケーブルＬ１により、モジュールＭ０およびＭ１間がケーブルＬ２により、モジュールＭ１およびＭ２間がケーブルＬ３により接続されている。さらに詳述すると、ケーブルＬ１は、同じ長さ（すなわち、同じ伝送遅延時間）の信号線Ｌ１ＡおよびＬ１Ｂからなる。そして、信号線Ｌ１ＡによりモジュールＭ３の出力端子Ｊ２とモジュールＭ０の入力端子Ｊ１とが接続され、信号線Ｌ１ＢによりモジュールＭ３の入力端子Ｊ３とモジュールＭ０の出力端子Ｊ４とが接続されている。モジュールＭ０およびＭ１間、モジュールＭ１およびＭ２間も同様である。
【００２２】
モジュールＭ０およびＭ１のように、全ての接続端子Ｊ１〜Ｊ４に信号線が接続されたモジュールは、入力端子Ｊ１により受信したフレームを出力端子Ｊ２から送信するとともに、入力端子Ｊ３により受信したフレームを出力端子Ｊ４から送信する。モジュールＭ２のように、接続端子Ｊ１およびＪ４のみに信号線が接続され、接続端子Ｊ２およびＪ３が開放されたモジュールは、入力端子Ｊ１により受信したフレームを折り返して出力端子Ｊ４から送信する。モジュールＭ３のように、接続端子Ｊ２およびＪ３のみに信号線が接続され、接続端子Ｊ１およびＪ４が開放されたモジュールは、入力端子Ｊ３により受信したフレームを折り返して出力端子Ｊ２から送信する。このように、図３に示す例では、モジュールＭ０→Ｍ１→Ｍ２→Ｍ１→Ｍ０→Ｍ３→Ｍ０というルートに沿ってフレームを一巡させるリング型ネットワークが構成されている。このリング型ネットワークが、図１におけるコントローラレベルネットワーク３００に相当する。
【００２３】
このような構成において、マスタモジュールＭ０は、タイマラッチ指示フレームをリング型ネットワークを介して全モジュール宛てにブロードキャストする。各モジュールは、このタイマラッチ指示フレームを受信した時点における当該モジュールのタイマのタイマ値を保持する。
【００２４】
この場合、スレーブモジュールＭ１は、マスタモジュールＭ０が送信したタイマラッチ指示フレームを入力端子Ｊ１により受信した時点におけるタイマ値と、スレーブモジュールＭ２により折り返されたタイマラッチ指示フレームを入力端子Ｊ３により受信した時点におけるタイマ値とを保持することになる。
【００２５】
次にマスタモジュールＭ０は、タイマ値収集フレームをスレーブモジュールＭ１〜Ｍ３に送信し、各スレーブモジュールＭ１〜Ｍ３からタイマラッチ指示フレーム受信時のタイマ値を収集する。
【００２６】
このようにして収集されるタイマ値から次のことが分かる。図３に示すように、スレーブモジュールＭ１が入力端子Ｊ３によりタイマラッチ指示フレームを受信した時点のタイマ値と、入力端子Ｊ１によりタイマラッチ指示フレームを受信した時点のタイマ値との差分ΔＴ１は、スレーブモジュールＭ１およびＭ２間をフレームが往復する間の伝送遅延時間に概略一致する。また、マスタモジュールＭ０が入力端子Ｊ１によりタイマラッチ指示フレームを受信した時点のタイマ値と、入力端子Ｊ３によりタイマラッチ指示フレームを受信した時点のタイマ値との差分ΔＴ２は、マスタモジュールＭ０およびスレーブモジュールＭ３間をフレームが往復する間の伝送遅延時間に概略一致する。そして、マスタモジュールＭ０が出力端子Ｊ２からタイマラッチ指示フレームを送信してから入力端子Ｊ１によりタイマラッチ指示フレームを受信するまでの時間ΔＴ０は、リング型ネットワークをフレームが一巡する間の伝送遅延時間である。
【００２７】
そこで、マスタモジュールＭ０は、これらの時間ΔＴ０〜ΔＴ２に基づいて、マスタモジュールＭ０が送信したフレームが各スレーブモジュールＭ１〜Ｍ３に到達するまでの伝送遅延時間を算出する。
【００２８】
次にマスタモジュールＭ０は、各スレーブモジュールＭ１〜Ｍ３宛てに、当該スレーブモジュールまでの伝送遅延時間を示す伝送遅延時間設定フレームを送信する。各スレーブモジュールＭ１〜Ｍ３は、各々を宛先とする伝送遅延時間設定フレームを受信すると、その伝送遅延時間設定フレームが示す伝送遅延時間を記憶する。
【００２９】
次にマスタモジュールＭ０は、当該マスタモジュールＭ０のタイマ値を示すタイマ値設定フレームを全フレームに宛ててブロードキャストする。このタイマ値設定フレームを受信した各スレーブモジュールＭ１〜Ｍ３は、記憶した伝送遅延時間と、受信したタイマ値設定フレームが示すタイマ値とを加算し、加算結果であるタイマ値を当該スレーブモジュールのタイマに設定する。
このようにして全てのモジュールＭ０〜Ｍ３のタイマが同期化される。
【００３０】
コントローラにおけるＣＰＵのタイマ（モジュールＭ１〜Ｍ３）とＩＯのタイマとの同期化も同様な方法により行えばよい。各コントローラのＣＰＵのタクトカウンタは、定期的にリセットされる。そして、各コントローラのＣＰＵのタクトカウンタは、当該ＣＰＵのタイマがタクト周期相当の計時を行う都度、カウントアップされる。ここで、各コントローラのＣＰＵのタイマは、上述した方法により同期化されている。従って、各コントローラのＣＰＵのタクトカウンタは、同一時刻において同一カウント値を保持することになる。
【００３１】
図４は本実施形態の動作例を示すタイムチャートである。以下、このタイムチャートを参照し、本実施形態の動作を説明する。
【００３２】
図４に示すように、ＩＯ１およびＩＯ４では、図示のように、共通のタクト周期に同期して各々のタイマ１２１のタイマ値を０にリセットし、その後、一定の時間レートで増加させる動作を繰り返す。従って、各時刻において、ＩＯ１のタイマ値とＩＯ４のタイマ値は同じ値を示す。図示は省略したが、他のＩＯ２、３、５および６のタイマ値も同様である。また、コントローラ２０１のＣＰＵ１１およびコントローラ２０２のＣＰＵ１２では、各々のタクトカウンタ１４１によりタクト周期の回数のカウントが行われる。ここで、ＣＰＵ１１のタクトカウンタ１４１とＣＰＵ１２のタクトカウンタ１４１は同期化されている。従って、各時刻において、ＣＰＵ１１のタクトカウンタ１４１のカウント値であるタクトＮｏと、ＣＰＵ１２のタクトカウンタ１４１のカウント値であるタクトＮｏは同じ値を示す。
【００３３】
図４に示す例では、タクトＮｏ＝Ｎ＋０のタクト周期内において、ＩＯ１のタイマ１２１のタイマ値がｔ１であるときに、ＩＯ１に対する入力値がＬＯＷからＨＩＧＨに変化している。このため、ＩＯ１の入力値変化検出部１２２は、この入力値の変化を検出し、その時点におけるタイマ１２１のタイマ値ｔ１を変化点タイマ値として変化点タイマ値保持部１２３に保持させる。タイマ１２１のリセットタイミングを過ぎ、タクトＮｏ＝Ｎ＋１のタクト周期になると、フレーム生成部１２４は、その時点におけるＩＯ１に対する入力値＝ＨＩＧＨと、変化点タイマ値保持部１２３に保持された変化点タイマ値ｔ１を含むフレーム１を生成する。そして、ＩＯ１のフレーム送信部１０１は、このフレーム１をデバイスレベルネットワーク４０１を介してＣＰＵ１１に送信する。このように、タクトＮｏ＝Ｎ＋０のタクト周期内において検知した入力値の変化を示すフレーム１をタクトＮｏ＝Ｎ＋１のタクト周期において送信するのは、前者のタクト周期内の任意のタイミングにおける入力値の変化を検知し、その入力値の変化を示すフレームを送信するためである。
【００３４】
ＣＰＵ１１はＩＯ１からのフレーム１を受信する。すると、ＣＰＵ１１の変化時刻計算・記録部１４２は、このフレーム１から入力値＝ＨＩＧＨと変化点タイマ値ｔ１とを取り出し、変化点タイマ値ｔ１と、現タクトＮｏ（タクトカウンタ１４１のカウント値）の１つ前のタクトＮｏ＝Ｎ＋０に基づき、ＩＯ１から受け取った入力値の変化時刻を計算する。具体的には、次式に従って変化時刻Ｘを計算する。
Ｘ＝（Ｎ＋０）×タクト周期＋ｔ１        ……（１）
【００３５】
そして、ＣＰＵ１１の変化時刻計算・記録部１４２は、ＩＯ１に対応付けて、入力値ＨＩＧＨと、その変化時刻Ｘを示すタイムスタンプとをＩＯ情報として記憶する。その後、ＣＰＵ１１は、適量のＩＯ情報が蓄積されたとき、あるいはコントローラレベルネットワーク３００が混雑していない時間帯を利用して、蓄積したＩＯ情報を含むフレームをサーバ１００に送信する。
【００３６】
一方、タクトＮｏ＝Ｎ＋０のタクト周期では、ＩＯ４のタイマ１２１のタイマ値がｔ２であるときに、ＩＯ４に対する入力値がＨＩＧＨからＬＯＷに変化している。このため、ＩＯ４の入力値変化検出部１２２は、この入力値の変化を検出し、その時点における変化点タイマ値ｔ２を変化点タイマ値保持部１２３に保持させる。そして、タクトＮｏ＝Ｎ＋１のタクト周期になると、ＩＯ４のフレーム生成部１２４は、入力値＝ＬＯＷと、変化点タイマ値ｔ２を含むフレーム１’を生成し、フレーム送信部１０１は、このフレーム１’をデバイスレベルネットワーク４０２を介してＣＰＵ１２に送信する。
【００３７】
ＣＰＵ１２はこのフレーム１’を受信する。すると、ＣＰＵ１２の変化時刻計算・記録部１４２は、このフレーム１’から入力値＝ＬＯＷと変化点タイマ値ｔ２とを取り出し、変化点タイマ値ｔ２と、現タクトＮｏの１つ前のタクトＮｏ＝Ｎ＋０に基づき、ＩＯ４から受け取った入力値の変化時刻Ｘを計算する。そして、ＣＰＵ１２の変化時刻計算・記録部１４２は、ＩＯ４に対応付けて、入力値ＬＯＷと、その変化時刻Ｘを示すタイムスタンプとをＩＯ情報として記憶する。その後、ＣＰＵ１２は、蓄積したＩＯ情報を含むフレームをサーバ１００に送信する。
【００３８】
図４に示す例では、タクトＮｏ＝Ｎ＋３のタクト周期内において、ＩＯ１のタイマ値がｔ４になったとき、ＩＯ１に対する入力値がＨＩＧＨからＬＯＷに変化している。また、同タクト周期内において、ＩＯ４のタイマ値がｔ５になったとき、ＩＯ４に対する入力値がＬＯＷからＨＩＧＨに変化している。これらの入力値の変化に対応した動作も以上の動作と同様である。
【００３９】
以上、コントローラ２０１内のＩＯ１およびコントローラ２０２内のＩＯ４に対する入力値の変化に対応した動作例を説明したが、他のＩＯに対する入力値の変化に対応した動作も同様である。
【００４０】
ＣＰＵ１１および１２から送信されたＩＯ情報のフレームは、サーバ１００によって受信され、サーバ１００の記憶装置（図示略）に蓄積される。そして、この蓄積されたＩＯ情報に基づいて、本コントローラシステムの監視対象の状態の解析が行われ、製品品質を向上させるためのパラメータチューニング等が行われる。
以上が本実施形態の動作である。
【００４１】
次に本実施形態の効果について説明する。
図４において、ＩＯ１の入力値はタイマ値がｔ１である時刻において、ＩＯ４の入力値はタイマ値がｔ２である時刻において変化している。従来技術の下では、図４に示すようにＩＯ４の入力値が変化した後にＩＯ１の入力値が変化しているにも拘わらず、これらの変化時刻が同じタクト周期（タクトＮｏ＝Ｎ＋０）に属することから、ＩＯ１の入力値およびＩＯ４の入力値は同じ時刻において変化したものとして取り扱われる。
【００４２】
これに対し、本実施形態では、コントローラの各ＩＯにおいて、タクト周期に同期してリセットされるタイマによって計時が行われ、各ＩＯの入力値の変化時点におけるタイマ値が保持される。そして、各コントローラのＣＰＵでは、配下の各ＩＯにおいて保持されたタイマ値に基づいて、各ＩＯの入力値の変化時刻が特定される。従って、図４において、タクト周期（タクトＮｏ＝Ｎ＋０）におけるＩＯ１の入力値の変化時刻はタイマ値ｔ１に基づいて特定され、ＩＯ４の入力値の変化時刻はタイマ値ｔ２に基づいて特定される。このように本実施形態では、複数の入力値の変化が同一タクト周期内において発生した場合でも、それらの変化の時間的前後関係を正確に把握することができる。
【００４３】
以上説明したように、本実施形態によれば、タクト周期の長さに依存せず、各ＩＯの入力値の変化時刻を高い時間精度で特定することができる。従って、従来のコントローラシステムよりも高精度にシステムパラメータチューニングや故障診断を行うことが可能となる。
【００４４】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００４５】
（１）上記実施形態では、各ＩＯに対する入力値が１ビットにより構成されていたが、各ＩＯに対する入力値は２ビット以上のデータであってもよい。
【００４６】
（２）ＩＯの入力値はアナログ値であってもよい。この場合、入力値のとり得る範囲を複数の区分に分け、区分を跨る入力値の変化があった場合に入力値の変化があったものとして、その時点におけるタイマ値の保持を行ってもよい。
【００４７】
（３）各ＩＯのタイマは、共通のタクト周期に同期してリセットされることを要するが、各タクト周期においてタイマ値を変化させる際の時間レートは、ＩＯ間で異なっていてもよい。すなわち、入力値の変化時刻を求める際の時間精度をＩＯ間で異ならせてもよい。
【００４８】
（４）上記実施形態においてＩＯは、あるタクト周期において入力値の変化を検出した場合、次のタクト周期への切り換わりタイミングにおけるＩＯの入力値を検出し、変化点タイマ値とともにＣＰＵに送信した。しかし、そのようにする代わりに、ＩＯは、あるタクト周期において入力値の変化を検出した場合、その変化時刻の所定時間後の入力値を変化後の入力値として保持し、次のタクト周期への切り換わり後に、変化点タイマ値とともにＣＰＵに送信してもよい。
【符号の説明】
【００４９】
１００……サーバ、２０１，２０２……コントローラ、３００……コントローラレベルネットワーク、１１，１２……ＣＰＵ、１〜６……ＩＯ、２１，２４……入力機器、４０１，４０２……デバイスレベルネットワーク、１０３……フレーム受信部、１０１，１０５……フレーム送信部、１０２……データ収集部、１２１……タイマ、１２２……入力値変化検出部、１２３……変化点タイマ値保持部、１２４……フレーム生成部、１４１……タクトカウンタ、１４２……変化時刻計算・記録部。
【図１】
2015118505.tif 000003
【図２】
2015118505.tif 000004
【図３】
2015118505.tif 000005
【図４】
2015118505.tif 000006