(57)【要約】  プロセスデータ管理部（３０４）は、ＰＩＯユニット（１０６）から繰り返し送信される、シーケンス番号が設定されている被演算データをＰＩＯユニット（１０６）から受信し、受信した被演算データに対する演算を行い、演算結果をＰＩＯユニット（１０６）に送信する。シーケンス番号管理部（３０６）は、プロセスデータ管理部（３０４）が演算を行う度に、プロセスデータ管理部（３０４）が次に演算を行う被演算データのシーケンス番号を次シーケンス番号として算出し、算出した次シーケンス番号を制御ネットワーク（１０１）を介して待機コントローラ（１１）に通知する。トラッキングデータ管理部（３０７）は、トラッキングデータの送信権が現用コントローラ（１１）に一時的に付与されている場合に、トラッキングデータを制御ネットワーク（１０１）を介して待機コントローラ（１１）に送信する。
2017195356.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と接続されている第１のネットワークを介してバックアップ装置と接続され、前記第１のネットワークと異なる第２のネットワークを介して機器と接続されているデータ処理装置であって、
前記機器から繰り返し送信される、シーケンス番号が設定されている被演算データを前記第２のネットワークを介して前記機器から受信し、受信した前記被演算データに対する演算を行い、演算結果を前記第２のネットワークを介して前記機器に送信する演算管理部と、
前記演算管理部が演算を行う度に、前記演算管理部が次に演算を行う被演算データのシーケンス番号を次シーケンス番号として算出し、算出した前記次シーケンス番号を前記第１のネットワークを介して前記バックアップ装置に通知するシーケンス番号管理部と、
前記演算管理部による演算結果と前記データ処理装置の内部状態とを通知するトラッキングデータの送信権が前記データ処理装置に一時的に付与されている場合に、前記トラッキングデータを前記第１のネットワークを介して前記バックアップ装置に送信するトラッキングデータ管理部とを有するデータ処理装置。
【請求項２】
前記トラッキングデータ管理部は、
前記送信権が前記データ処理装置に一時的に付与されている場合に、過去に前記トラッキングデータを前記バックアップ装置に送信したことがあるか否かを判定し、前記トラッキングデータを前記バックアップ装置に送信したことがない場合に、前記トラッキングデータを前記第１のネットワークを介して前記バックアップ装置に送信する請求項１に記載のデータ処理装置。
【請求項３】
前記トラッキングデータ管理部は、
前記送信権が前記データ処理装置に一時的に付与されている場合に、前記演算管理部による最新の演算結果と前記データ処理装置の現在の内部状態とを通知するトラッキングデータを前記第１のネットワークを介して前記バックアップ装置に送信する請求項１に記載のデータ処理装置。
【請求項４】
上位装置と接続されている第１のネットワークを介してバックアップ装置と接続され、前記第１のネットワークと異なる第２のネットワークを介して機器と接続されているコンピュータが、
前記機器から繰り返し送信される、シーケンス番号が設定されている被演算データを前記第２のネットワークを介して前記機器から受信し、受信した前記被演算データに対する演算を行い、演算結果を前記第２のネットワークを介して前記機器に送信し、
演算を行う度に、次に演算を行う被演算データのシーケンス番号を次シーケンス番号として算出し、算出した前記次シーケンス番号を前記第１のネットワークを介して前記バックアップ装置に通知し、
演算結果と前記コンピュータの内部状態とを通知するトラッキングデータの送信権が前記コンピュータに一時的に付与されている場合に、前記トラッキングデータを前記第１のネットワークを介して前記バックアップ装置に送信するデータ処理方法。
【請求項５】
上位装置と接続されている第１のネットワークを介してバックアップ装置と接続され、前記第１のネットワークと異なる第２のネットワークを介して機器と接続されているコンピュータに、
前記機器から繰り返し送信される、シーケンス番号が設定されている被演算データを前記第２のネットワークを介して前記機器から受信し、受信した前記被演算データに対する演算を行い、演算結果を前記第２のネットワークを介して前記機器に送信する演算管理処理と、
前記演算管理処理により演算が行われる度に、前記演算管理処理により次に演算が行われる被演算データのシーケンス番号を次シーケンス番号として算出し、算出した前記次シーケンス番号を前記第１のネットワークを介して前記バックアップ装置に通知するシーケンス番号管理処理と、
前記演算管理処理による演算結果と前記コンピュータの内部状態とを通知するトラッキングデータの送信権が前記コンピュータに一時的に付与されている場合に、前記トラッキングデータを前記第１のネットワークを介して前記バックアップ装置に送信するトラッキングデータ管理処理とを実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法及びデータ処理プログラムに関する。
【背景技術】
【０００２】
発電所や化学工場などのプラントでは、バルブの開閉などの制御がコントローラによって自動化されている。コントローラには、プラントの継続運転のために高い信頼性が求められる。このため、これらのプラントでは、コントローラを二重化することによって信頼性を維持している。【０００３】
まず、図７を用いて、コントローラを二重化したシステムの構成と動作を説明する。
図７に示すシステムでは、コントローラ１００ａとコントローラ１００ｂが制御ネットワーク１０１に接続されている。以下、コントローラ１００ａとコントローラ１００ｂを区別する必要がないときは、コントローラ１００ａとコントローラ１００ｂを総称してコントローラ１００という。
制御ネットワーク１０１には、ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）１０２が接続されている。
また、コントローラ１００は、プロセス入出力ユニット１０６ａ、１０６ｂ、１０６ｃ（以下、ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃという）とＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ネットワーク１０３を介して接続されている。
ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃを区別する必要がないときは、ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃを総称して、ＰＩＯユニット１０６という。
ＰＩＯユニット１０６ａは、入出力端１０４ａで取得したプラント１０９の状態を示すデータを、周期的にコントローラ１００へ送信する。
ＰＩＯユニット１０６ｂは、入出力端１０４ｂで取得したプラント１０９の状態を示すデータを、周期的にコントローラ１００へ送信する。
ＰＩＯユニット１０６ｃは、入出力端１０４ｃで取得したプラント１０９の状態を示すデータを、周期的にコントローラ１００へ送信する。
コントローラ１００ａ及びコントローラ１００ｂは、それぞれ、ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃからデータを受信する。
ＨＭＩ１０２は、作業員に対してプラント１０９の制御状態を表示し、作業員の入力に応じてプラント１０９の制御のための指令をコントローラ１００ａ及びコントローラ１００ｂへ送信する。ＨＩＭ１０２は、例えば、パネルコンピュータである。【０００４】
コントローラ１００ａは、ＰＩＯユニット１０６から受信したデータ（プラント１０９の状態）とＨＭＩ１０２から受信した指令をもとに演算を行い、演算結果を示すデータを周期的にＰＩＯユニット１０６へ送信する。また、コントローラ１００ａは、ＨＭＩ１０２にプラント１０９の状態を送信する。コントローラ１００ｂは、コントローラ１００ａが正常に動作している間は待機しており、コントローラ１００ａに異常が発生した場合に、コントローラ１００ａを代替する。コントローラ１００ａを現用コントローラ１００ともいい、コントローラ１００ｂを待機コントローラ１００ともいう。また、図面上は、コントローラ１００ａを「現用」と表記し、コントローラ１００ｂを「待機」と表記することがある。
ＰＩＯユニット１０６ａは、コントローラ１００ａからの演算結果を、入出力端１０４ａからプラント１０９に送信する。
ＰＩＯユニット１０６ｂは、コントローラ１００ａからの演算結果を、入出力端１０４ｂからプラント１０９に送信する。
ＰＩＯユニット１０６ｃは、コントローラ１００ａからの演算結果を、入出力端１０４ｃからプラント１０９に送信する。
なお、コントローラ１００とＰＩＯユニット１０６との間で送受信されるデータをプロセスデータと呼ぶ。
また、コントローラ１００ａとコントローラ１００ｂは、トラッキングバス１０５を介して接続されている。コントローラ１００ａは異常が発生したときに、直ちにコントローラ１００ｂが制御を継続できるようにするため、コントローラ１００ａの内部のデータを送信している。
図７に示すシステムでは、上記のコントローラ１００の対と複数のＰＩＯユニット１０６との組み合わせが複数存在している。コントローラ１００の対は制御ネットワーク１０１を介してＨＭＩ１０２と接続されている。また、コントローラ１００の対はトラッキングバス１０５を介して接続されている。【０００５】
次に、図８を用いて、図７のシステムの動作の詳細を説明する。【０００６】
ＰＩＯユニット１０６は、プロセスデータをプロセスデータ周期ｔｐで周期的にコントローラ１００に送信している。以下では、プロセスデータをＰＤ＃ｎとも表記する。ＰＤ＃ｎにおける「ｎ」は、何回目に送信されたプロセスデータかを示すシーケンス番号である。つまり、ｎ＝１、２…である。
コントローラ１００は、制御周期ｔｃで周期的にプロセスデータ取得処理、演算処理、プロセスデータ送信処理、トラッキングデータ送信処理を行う。
ＰＩＯユニット１０６は、プロセスデータ送信１にて、ＰＤ＃１をコントローラ１００に送信する。
コントローラ１００ａ及びコントローラ１００ｂは、ＰＤ＃１を受信する（図８のＰＤ＃１の吹き出し）。そして、コントローラ１００ａ及びコントローラ１００ｂは、それぞれ、受信したＰＤ＃１を内部のメモリに格納する。
時刻ｔ０においてコントローラ１００ａは、プロセスデータ取得処理を行う。プロセスデータ取得処理は、コントローラ１００内のプロセッサがコントローラ１００内のメモリからプロセスデータを読み出す処理である。時刻ｔ０では、プロセスデータ取得処理として、コントローラ１００ａ内のプロセッサが、最も最近に受信したプロセスデータであるＰＤ＃１をメモリから読み出し、読み出したＰＤ＃１をプロセッサ内のバッファに保存する。
次に、コントローラ１００ａ内のプロセッサがＰＤ＃１を用いた演算を行う。なお、演算結果は、ＨＭＩ１０２から受信した指令（目標値）と、それまでにＰＩＯユニット１０６に送信したデータの系列（演算に用いる系列のサイズはシステムにより異なる）と、演算に用いるＰＩＯデータのみにより定まるものとする。
さらに、コントローラ１００ａは、プロセスデータ送信処理にて、演算結果をＰＩＯユニット１０６へ送信する（送信の矢印の図示は省略）。
最後に、コントローラ１００ａは、トラッキングデータ送信処理を行う。トラッキングデータ送信処理では、コントローラ１００ａは、トラッキングデータをコントローラ１００ｂに送信する。トラッキングデータは、演算結果及びコントローラ１００ａの内部状態を通知するデータである。図８では、図示を省略しているが、コントローラ１００ｂは、トラッキングデータを受信し、受信したトラッキングデータを内部のメモリに格納する。【０００７】
次に、時刻ｔ１において、コントローラ１００ｂは、最も最近に受信したプロセスデータであるＰＤ＃２を用いて演算を行う。但し、コントローラ１００ｂは、演算結果をＰＩＯユニット１０６に送信しない。つまり、コントローラ１００ｂでは、プロセスデータ送信処理の時間は存在するが、実際には、演算結果は送信されない。
次に、時刻ｔ２において、コントローラ１００ｂは、トラッキングデータ取得処理を行う。トラッキングデータ取得処理では、コントローラ１００ｂ内のプロセッサが、トラッキングデータをメモリから読み出し、読み出したトラッキングデータをプロセッサ内のバッファに保存する。そして、コントローラ１００ｂ内のプロセッサは、トラッキングデータに基づき、以下を更新する。
・ＰＩＯユニット１０６への出力値（演算結果）
・内部状態【０００８】
仮に、コントローラ１００ｂがトラッキングデータを用いた上記の更新を行わない場合は、コントローラ１００ａとコントローラ１００ｂとが異なるプロセスデータの系列を用いて演算することになる。このような状況でコントローラ１００ａが故障し、コントローラ１００ｂに制御が引き継がれた場合に、コントローラ１００ｂからＰＩＯユニット１０６へ送信する値が急激に変化する現象（擾乱という）が生じ、不都合である。【０００９】
図７のシステムでは、コントローラ１００ａとコントローラ１００ｂとが、制御ネットワーク１０１とは別のトラッキングバス１０５により一対一で接続されている。このため、構成が複雑である。
特許文献１では、図７に示すシステムにおいて、構成を簡素化するために、トラッキングバス１０５を制御ネットワーク１０１と共用する方法が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−３２３４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１では、トラッキングバスを他のネットワークと統合する手法が提案されているが、コントローラ１００ａが演算を行う度に、コントローラ１００ａがコントローラ１００ｂにトラッキングデータを送信する。このため、トラッキングデータの送信によりネットワーク帯域が圧迫されるという課題がある。【００１２】
本発明は、このような課題を解決することを主な目的の一つとしている。より具体的には、本発明は、トラッキングデータの送信によってネットワーク帯域が圧迫される事態を回避することを主な目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るデータ処理装置は、
上位装置と接続されている第１のネットワークを介してバックアップ装置と接続され、前記第１のネットワークと異なる第２のネットワークを介して機器と接続されているデータ処理装置であって、
前記機器から繰り返し送信される、シーケンス番号が設定されている被演算データを前記第２のネットワークを介して前記機器から受信し、受信した前記被演算データに対する演算を行い、演算結果を前記第２のネットワークを介して前記機器に送信する演算管理部と、
前記演算管理部が演算を行う度に、前記演算管理部が次に演算を行う被演算データのシーケンス番号を次シーケンス番号として算出し、算出した前記次シーケンス番号を前記第１のネットワークを介して前記バックアップ装置に通知するシーケンス番号管理部と、
前記演算管理部による演算結果と前記データ処理装置の内部状態とを通知するトラッキングデータの送信権が前記データ処理装置に一時的に付与されている場合に、前記トラッキングデータを前記第１のネットワークを介して前記バックアップ装置に送信するトラッキングデータ管理部とを有する。
【発明の効果】
【００１４】
本発明によれば、トラッキングデータの送信が抑制され、トラッキングデータの送信によってネットワーク帯域が圧迫される事態を回避することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係るコントローラ１１のハードウェア構成例を示す図。
【図３】実施の形態１に係るコントローラ１１の機能構成例を示す図。
【図４】実施の形態１に係る動作例を示すデータフロー図。
【図５】実施の形態１に係るコントローラ１１ａの動作例を示すフローチャート図。
【図６】実施の形態１に係るコントローラ１１ｂの動作例を示すフローチャート図。
【図７】従来のシステム構成例を示す図。
【図８】従来の動作例を示すデータフロー図。
【発明を実施するための形態】
【００１６】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るシステム構成例を示す。
制御ネットワーク１０１、ＨＭＩ１０２、Ｉ／Ｏネットワーク１０３、入出力端１０４ａ、入出力端１０４ｂ、入出力端１０４ｃ、ＰＩＯユニット１０６ａ、ＰＩＯユニット１０６ｂ、ＰＩＯユニット１０６ｃ、プラント１０９は、図７に示したものと同じである。本実施の形態でも、ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃを区別する必要がないときは、ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃを総称して、ＰＩＯユニット１０６という。
コントローラ１１ａとコントローラ１１ｂは、制御ネットワーク１０１を介してＨＭＩ１０２に接続されている。ＨＭＩ１０２は、上位装置に相当する。制御ネットワーク１０１は、第１のネットワークに相当する。
また、コントローラ１１ａとコントローラ１１ｂは、Ｉ／Ｏネットワーク１０３を介してＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃと接続されている。ＰＩＯユニット１０６ａ、１０６ｂ、１０６ｃは、それぞれ機器に相当する。また、Ｉ／Ｏネットワーク１０３は第２のネットワークに相当する。
コントローラ１１ａは、ＰＩＯユニット１０６から受信したデータ（プラント１０９の状態）とＨＭＩ１０２から受信した指令をもとに演算を行い、演算結果を示すデータを周期的にＰＩＯユニット１０６へ送信する。また、コントローラ１１ａは、ＨＭＩ１０２にプラント１０９の状態を送信する。コントローラ１１ｂは、コントローラ１１ａが正常に稼動している間は待機しており、コントローラ１１ａに異常が発生した場合に、コントローラ１１ａを代替する。コントローラ１１ａを現用コントローラ１１ともいい、コントローラ１１ｂを待機コントローラ１１ともいう。また、図面上は、コントローラ１１ａを「現用」と表記し、コントローラ１１ｂを「待機」と表記することがある。
コントローラ１１ａは、データ処理装置に相当する。また、コントローラ１１ａにより行われる動作は、データ処理方法に相当する。
コントローラ１１ｂは、コントローラ１１ａをバックアップし、バックアップ装置に相当する。
以下、コントローラ１１ａとコントローラ１１ｂを区別する必要がないときは、コントローラ１１ａとコントローラ１１ｂを総称してコントローラ１１という。
【００１７】
図２は、コントローラ１１のハードウェア構成例を示す。
コントローラ１１は、コンピュータである。
コントローラ１１は、ハードウェアとして、プロセッサ２０１、メモリ２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、ＰＩＯインタフェース２０４及び制御ネットワークインタフェース２０５を備える。
ＲＯＭ２０３には、後述する制御部３０３の機能を実現するプログラムが記憶されている。
そして、制御部３０３の機能を実現するプログラムはＲＯＭ２０３からメモリ２０２にロードされ、プロセッサ２０１により実行される。
ＰＩＯインタフェース２０４は、Ｉ／Ｏネットワーク１０３とのインタフェースである。ＰＩＯインタフェース２０４は、ＰＩＯユニット１０６からのプロセスデータを受信し、また、ＰＩＯユニット１０６へのプロセスデータをＰＩＯユニット１０６に送信する。
制御ネットワークインタフェース２０５は、制御ネットワーク１０１とのインタフェースである。コントローラ１１ａの制御ネットワークインタフェース２０５は、コントローラ１１ｂにプロセスデータのシーケンス番号を通知するメッセージを送信し、また、トラッキングデータを送信する。また、コントローラ１１ｂの制御ネットワークインタフェース２０５は、コントローラ１１ａからシーケンス番号を通知するメッセージを受信し、また、トラッキングデータを受信する。
【００１８】
図３は、コントローラ１１の機能構成例を示す。
【００１９】
受信部３０１は、制御ネットワーク１０１又はＩ／Ｏネットワーク１０３からデータを受信する。
送信部３０２は、制御ネットワーク１０１又はＩ／Ｏネットワーク１０３にデータを送信する。
より具体的には、現用コントローラ１１の受信部３０１は、Ｉ／Ｏネットワーク１０３を介して、ＰＩＯユニット１０６からプロセスデータを受信する。また、コントローラ１１ａの受信部３０１は、制御ネットワーク１０１を介して、ＨＭＩ１０２から指令を受信する。また、コントローラ１１ａの送信部３０２は、制御ネットワーク１０１を介して、シーケンス番号を通知するメッセージ及びトラッキングデータをコントローラ１１ｂに送信する。
また、コントローラ１１ｂの受信部３０１は、Ｉ／Ｏネットワーク１０３を介して、ＰＩＯユニット１０６からプロセスデータを受信する。コントローラ１１ｂの受信部３０１は、制御ネットワーク１０１を介して、ＨＭＩ１０２から指令を受信する。また、コントローラ１１ｂの受信部３０１は、制御ネットワーク１０１を介して、シーケンス番号を通知するメッセージ及びトラッキングデータをコントローラ１１ａから受信する。
受信部３０１及び送信部３０２は、ＰＩＯインタフェース２０４及び制御ネットワークインタフェース２０５により実現される。
【００２０】
制御部３０３は、コントローラ１１の動作を制御する。
制御部３０３は、プロセスデータ管理部３０４、時間計測部３０５、シーケンス番号管理部３０６、トラッキングデータ管理部３０７で構成される。
【００２１】
現用コントローラ１１では、プロセスデータ管理部３０４は、ＰＩＯユニット１０６から繰り返し送信される、シーケンス番号が設定されているプロセスデータ（被演算データの例）をＩ／Ｏネットワーク１０３及び受信部３０１を介してＰＩＯユニット１０６から受信する。そして、プロセスデータ管理部３０４は、受信したプロセスデータに対する演算を行い、演算結果を送信部３０２及びＩ／Ｏネットワーク１０３を介してＰＩＯユニット１０６に送信する。
待機コントローラ１１では、プロセスデータ管理部３０４は、現用コントローラ１１から通知された次シーケンス番号（後述）に基づき、演算に用いるプロセスデータを選択する。そして、選択したプロセスデータに対する演算を行う。待機コントローラ１１では、プロセスデータ管理部３０４は、演算結果は送信しない。
現用コントローラ１１のプロセスデータ管理部３０４は、演算管理部に相当する。また、現用コントローラ１１のプロセスデータ管理部３０４により行われる処理は演算管理処理に相当する。
【００２２】
現用コントローラ１１では、時間計測部３０５は、後述する時間ｔｄを計測する。
【００２３】
現用コントローラ１１では、シーケンス番号管理部３０６は、プロセスデータ管理部３０４が演算を行う度に、プロセスデータ管理部３０４が次に演算を行うプロセスデータのシーケンス番号を次シーケンス番号として算出する。そして、シーケンス番号管理部３０６は、算出した次シーケンス番号を送信部３０２及び制御ネットワーク１０１を介して待機コントローラ１１に通知する。
また、待機コントローラ１１では、シーケンス番号管理部３０６は、現用コントローラ１１から通知された次シーケンス番号を記憶部３０８に格納する。
現用コントローラ１１のシーケンス番号管理部３０６により行われる処理はシーケンス番号管理処理に相当する。
【００２４】
現用コントローラ１１では、トラッキングデータ管理部３０７は、トラッキングデータの送信権が現用コントローラ１１に一時的に付与されている場合に、トラッキングデータを送信部３０２及び制御ネットワーク１０１を介して待機コントローラ１１に送信する。トラッキングデータは、プロセスデータ管理部３０４による演算結果と現用コントローラ１１の内部状態とを通知するデータである。
より具体的には、現用コントローラ１１のトラッキングデータ管理部３０７は、送信権が現用コントローラ１１に一時的に付与されている場合に、過去にトラッキングデータを待機コントローラ１１に送信したことがあるか否かを判定する。そして、トラッキングデータを待機コントローラ１１に送信したことがない場合に、プロセスデータ管理部３０４による最新の演算結果と現用コントローラ１１の現在の内部状態とを通知するトラッキングデータを待機コントローラ１１に送信する。
待機コントローラ１１では、トラッキングデータ管理部３０７は、制御ネットワーク１０１及び受信部３０１を介してトラッキングデータを受信し、受信したトラッキングデータを記憶部３０８に格納する。また、待機コントローラ１１では、トラッキングデータ管理部３０７は、トラッキングデータに基づき、演算結果の更新及び待機コントローラ１１の内部状態の更新を行う。
現用コントローラ１１のトラッキングデータ管理部３０７により行われる処理はトラッキングデータ管理処理に相当する。
【００２５】
プロセスデータ管理部３０４、時間計測部３０５、シーケンス番号管理部３０６及びトラッキングデータ管理部３０７の機能は、例えばプログラムにより実現される。プロセスデータ管理部３０４、時間計測部３０５、シーケンス番号管理部３０６及びトラッキングデータ管理部３０７の機能を実現するプログラムは、プロセッサ２０１により実行される。プロセスデータ管理部３０４、時間計測部３０５、シーケンス番号管理部３０６及びトラッキングデータ管理部３０７の機能を実現するプログラムは、データ処理プログラムに相当する。
【００２６】
記憶部３０８は、受信したプロセスデータ、プロセスデータ管理部３０４による演算結果、時間計測部３０５の計測時間、次シーケンス番号、トラッキングデータ等を記憶する。
記憶部３０８は、メモリ２０２により実現される。
【００２７】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る動作を、図４を用いて説明する。
【００２８】
本実施の形態では、トラッキングデータの送信権という概念を導入する。
現用コントローラ１１には、トラッキングデータの送信権が一時的に付与される。現用コントローラ１１は、トラッキングデータの送信権が付与されている間のみ、トラッキングデータを送信することができる。トラッキングデータの送信権が付与されていないときは、現用コントローラ１１は、トラッキングデータを送信することができない。つまり、現用コントローラ１１は、トラッキングデータ送信処理をスキップする。
制御ネットワーク１０１上に送信権は同時に１つしか存在しない。あらかじめ任意に定められた１つのノードがシステムで最初に送信権を持つものとする。以下では、ＨＭＩ１０２が最初に送信権を持つものとする。
【００２９】
システム起動後、ＨＭＩ１０２は、複数の現用コントローラ１１の中から１つの現用コントローラ１１を選択し、選択した現用コントローラ１１にトラッキングデータの送信権を送信する。
図４では、ＨＭＩ１０２は、コントローラ１１ａに送信権を送信している。
そして、時刻ｔ４００において、コントローラ１１ａの受信部３０１が、ＰＤ＃１を受信する。
コントローラ１１ａでは、時間計測部３０５が、ＰＤ＃１を時刻ｔ４００で受信してから、実際に時刻ｔ４０１で使用するまでの時間ｔｄを計測する。
時刻ｔ４０１において、コントローラ１１ａのプロセスデータ管理部３０４が、図８に示した従来のコントローラ１００ａと同様にプロセスデータの取得処理を行う。さらに、プロセスデータ管理部３０４が、図８に示した従来のコントローラ１００ａと同様に演算を行い、時刻ｔ４１２において、送信部３０２が、演算結果を通知するプロセスデータをＰＩＯユニット１０６に送信する。
【００３０】
またコントローラ１１ａでは、プロセスデータ送信後の時刻ｔ４１３において、シーケンス番号管理部３０６が、次シーケンス番号Ｐｎｅｘｔを計算する。次シーケンス番号Ｐｎｅｘｔは、前述したように、プロセスデータ管理部３０４が次に演算を行うプロセスデータのシーケンス番号である。
具体的には、シーケンス番号管理部３０６は、式１に従って次シーケンス番号Ｐｎｅｘｔを計算する。式１において、Ｐｌａｓｔは、最後の演算で使用したプロセスデータのシーケンス番号を示す。また、ｔｃは制御周期であり、ｔｐはプロセスデータ周期であり、ｔｄは時間計測部３０５が計測した時間である。
そして、シーケンス番号管理部３０６は、送信部３０２及び制御ネットワーク１０１を介して、コントローラ１１ｂに次シーケンス番号Ｐｎｅｘｔを通知する。
【００３１】
【数１】
2017195356.tif 000003
【００３２】
図４の例では、コントローラ１１ａはシーケンス番号４（ＰＤ＃４）をコントローラ１１ｂに通知する。さらに、このとき、コントローラ１１ａのトラッキングデータ管理部３０７は、以下の２つの条件を満たすか否かを判定する。以下の２つの条件を満たす場合は、コントローラ１１ａのトラッキングデータ管理部３０７は、コントローラ１１ｂに対してトラッキングデータを送信する。
・システムが起動してからコントローラ１１ｂに対して１度もトラッキングデータを送信していない。
・コントローラ１１ａがトラッキングデータの送信権を持っている。
コントローラ１１ａは、トラッキングデータを送信後、ＨＭＩ１０２にトラッキングデータの送信権を返却する。
【００３３】
時刻ｔ４０３において、コントローラ１１ｂがＰＤ＃５を受信するが、ＰＤ＃５は、コントローラ１１ａから通知された次シーケンス番号であるＰＤ＃４よりも大きいので、コントローラ１１ｂはＰＤ＃５を破棄する。
【００３４】
上記の動作により、以降は演算に使用するプロセスデータがコントローラ１１ａとコントローラ１１ｂとで一致するため、トラッキングデータの通信が不要となる。
【００３５】
次に、図５のフローチャートを参照して、コントローラ１１ａの動作例を説明する。
【００３６】
ステップＳ１００において、受信部３０１が、ＰＩＯユニット１０６から送信されたプロセスデータをＩ／Ｏネットワーク１０３から受信する。そして、プロセスデータ管理部３０４が、プロセスデータを記憶部３０８に格納する。
なお、ステップＳ１００と同時に、時間計測部３０５が時間ｔｄの計測を開始する。
【００３７】
次に、ステップＳ１１０において、プロセスデータ管理部３０４が記憶部３０８からプロセスデータを取得し、プロセスデータを用いた演算を行う。
また、ステップＳ１１０と同時に、時間計測部３０５が時間ｔｄの計測を停止する。
【００３８】
次に、ステップＳ１２０において、送信部３０２がＩ／Ｏネットワーク１０３から演算結果を通知するプロセスデータをＰＩＯユニット１０６に送信する。
【００３９】
次に、ステップＳ１３０において、シーケンス番号管理部３０６が上記の式１に従い、次シーケンス番号Ｐｎｅｘｔを計算し、送信部３０２が制御ネットワーク１０１からコントローラ１１ｂに次シーケンス番号Ｐｎｅｘｔを通知する。
【００４０】
次に、ステップＳ１４０において、トラッキングデータ管理部３０７が、コントローラ１１ａにトラッキングデータの送信権が付与されているか否かを判定する。
コントローラ１１ａにトラッキングデータの送信権が付与されている場合は、トラッキングデータ管理部３０７は、システム起動後にコントローラ１１ｂにトラッキングデータを送信したことがあるか否かを判定する。
コントローラ１１ｂにトラッキングデータを送信していない場合は、送信部３０２が制御ネットワーク１０１からコントローラ１１ｂにトラッキングデータを送信する。
【００４１】
最後に、ステップＳ１７０において、送信部３０２がＨＭＩ１０２にトラッキングデータの送信権を返却する。
【００４２】
次に、図６のフローチャートを参照して、コントローラ１１ｂの動作例を説明する。
【００４３】
ステップＳ２００において受信部３０１がトラッキングデータを受信すると、ステップＳ２１０において、トラッキングデータ管理部３０７がトラッキングデータに従って、コントローラ１１ｂの内部状態及び演算結果を更新する。また、トラッキングデータ管理部３０７は、更新後の内部状態及び演算結果を記憶部３０８に格納する。
【００４４】
また、ステップＳ２２０においてコントローラ１１ａから次シーケンス番号Ｐｎｅｘｔが通知された場合に、ステップＳ２３０において、シーケンス番号管理部３０６が次シーケンス番号Ｐｎｅｘｔを記憶部３０８に格納する。
【００４５】
また、ステップＳ２４０において受信部３０１がプロセスデータを受信すると、ステップＳ２５０において、プロセスデータ管理部３０４がプロセスデータを記憶部３０８に格納する。
【００４６】
次に、ステップＳ２６０において、プロセスデータ管理部３０４が、ステップＳ２４０で受信されたプロセスデータのシーケンス番号が次シーケンス番号Ｐｎｅｘｔに一致するか否かを判定する。
ステップＳ２４０で受信されたプロセスデータのシーケンス番号が次シーケンス番号Ｐｎｅｘｔに一致しない場合は、ステップＳ２７０において、プロセスデータ管理部３０４は、プロセスデータを破棄する。
一方、ステップＳ２４０で受信されたプロセスデータのシーケンス番号が次シーケンス番号Ｐｎｅｘｔに一致する場合は、プロセスデータ管理部３０４は、プロセスデータを用いた演算を行う。そして、プロセスデータ管理部３０４は、演算結果を記憶部３０８に格納する。
【００４７】
＊＊＊実施の形態の効果の説明＊＊＊
このように、本実施の形態では、現用コントローラ１１は、トラッキングデータの送信権が付与されている場合のみ、トラッキングデータを待機コントローラ１１に送信する。このため、トラッキングデータの送信によってネットワーク帯域が圧迫される事態を回避することができる。
本実施の形態で説明した手法を用いない場合は、制御周期ｔｃの度に、現用コントローラから待機コントローラにトラッキングデータが送信される。このため、本実施の形態で説明した手法を用いない場合に、１組の現用コントローラと待機コントローラの間のトラッキングデータの通信に要する帯域は、制御周期ｔｃの繰り返し数ｎｐと、トラッキングデータのデータサイズｄｔを乗じた値である。たとえばｎｐ＝５０（回）、データサイズｄｔ＝２４０Ｍｂｐｓとすると、トラッキングデータの通信に要する帯域は１２Ｇｂｐｓである。１Ｇｂｐを超える通信を実現するための方式（１０ＧＢＡＳＥ−Ｔなど）は、普及が進みつつあるものの依然高価であるため、本実施の形態で説明した手法を用いない場合は、制御ネットワーク１０１のコストが高くなる。
本実施の形態では、１組の現用コントローラと待機コントローラとの間でトラッキングデータが１回送信されるのみである。このため、１組の現用コントローラと待機コントローラ１１との間のトラッキングデータの通信に要する帯域は、トラッキングデータのデータサイズｄｔ（２４０Ｍｂｐｓ）のみである。
このため、本実施の形態によれば、広く普及しており安価な１０００ＢＡＳＥ−Ｔで制御ネットワーク１０１を構成することができる。
【００４８】
また、本実施の形態では、現用コントローラ１１のプロセスデータ管理部３０４によりプロセスデータを用いた演算が行われる度に、待機コントローラ１１に次シーケンス番号が通知される。このため、トラッキングデータの送信回数が減少しても、待機コントローラ１１では、現用コントローラ１１と同じプロセスデータを用いた演算を継続することができる。
【００４９】
また、本実施の形態によれば、トラッキングバスを制御ネットワークと統合することで、１台の現用コントローラ１１に対して複数台の待機コントローラ１１を接続することができる。このため、より信頼性の高いシステムを構築できる。
【００５０】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、コントローラ１１のハードウェア構成の補足説明を行う。
図２に示すプロセッサ２０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図２に示すメモリ２０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
また、ＲＯＭ２３の代わりに、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を用いてもよい。
図２に示すＰＩＯインタフェース２０４及び制御ネットワークインタフェース２０５は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
ＰＩＯインタフェース２０４及び制御ネットワークインタフェース２０５は、それぞれ、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００５１】
また、ＲＯＭ２０３には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ２０１により実行される。
プロセッサ２０１はＯＳの少なくとも一部を実行しながら、プロセスデータ管理部３０４、時間計測部３０５、シーケンス番号管理部３０６及びトラッキングデータ管理部３０７（以下、これらをまとめて「部」という）の機能を実現するプログラムを実行する。
プロセッサ２０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、コントローラ１１は、プロセッサ２０１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、「部」の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ２０１と同じように、プロセッシングを行うＩＣである。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ２０２、プロセッサ２０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００５２】
また、「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、コントローラ１１は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
この場合は、「部」は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【符号の説明】
【００５３】
１１  コントローラ、１００  コントローラ、１０１  制御ネットワーク、１０２  ＨＭＩ、１０３  Ｉ／Ｏネットワーク、１０４  入出力端、１０５  トラッキングバス、１０６  ＰＩＯユニット、１０９  プラント、２０１  プロセッサ、２０２  メモリ、２０３  ＲＯＭ、２０４  ＰＩＯインタフェース、２０５  制御ネットワークインタフェース、３０１  受信部、３０２  送信部、３０３  制御部、３０４  プロセスデータ管理部、３０５  時間計測部、３０６  シーケンス番号管理部、３０７  トラッキングデータ管理部、３０８  記憶部。
【図１】
2017195356.tif 000004
【図２】
2017195356.tif 000005
【図３】
2017195356.tif 000006
【図４】
2017195356.tif 000007
【図５】
2017195356.tif 000008
【図６】
2017195356.tif 000009
【図７】
2017195356.tif 000010
【図８】
2017195356.tif 000011
【国際調査報告】
2017195356.tif 000012
2017195356.tif 000013
2017195356.tif 000014
2017195356.tif 000015