(57)【要約】【課題】  エンジニアリングツールで設定される変数毎のトラッキングするかしないかのトラッキング情報を、エンジニアリングツールからコントローラに転送する回数を大幅に減少することができる二重化システムを得る。【解決手段】  制御系コントローラ１２及び待機系コントローラ１３で実行されるプログラムを作成するエンジニアリングツール１１は、プログラムを作成するプログラムエディタ１６と、プログラムで使用される変数を定義する変数エディタ１７と、制御系コントローラ１２から待機系コントローラ１３へトラッキングするトラッキング範囲を設定するトラッキング範囲設定機能１８と、設定されたトラッキング範囲及びデータメモリの空き情報を格納するデータメモリ管理テーブルと、データメモリ管理テーブルを参照して変数エディタ１７により定義された変数にトラッキング範囲にあるメモリを割付けるコンパイラ１９とを有している。【選択図】図１
2007080116.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行することによりプラント機器を制御する制御系コントローラとこの制御系コントローラが故障したとき上記制御系コントローラの動作を継続して上記プラント機器を制御する待機系コントローラとの二つのコントローラにより構成され、上記コントローラは、実行するプログラムで参照される変数の値を格納するデータメモリと、上記制御系コントローラのデータメモリのデータを待機系コントローラのデータメモリにコピーするトラッキング手段を有する二重化システムにおいて、
上記コントローラで実行されるプログラムを作成するとともに上記データメモリのトラッキングするデータの範囲を設定するエンジニアリングツールを備え、
上記エンジニアリングツールは、ユーザが上記プログラムを作成するプログラムエディタと、ユーザがトラッキング対象の変数を定義する変数エディタと、上記制御系コントローラから上記待機系コントローラへトラッキングする上記データメモリ上のデータの範囲であるトラッキング範囲をユーザが設定するトラッキング範囲設定手段と、このトラッキング範囲設定手段により設定されたトラッキング範囲及び上記データメモリの空き情報を格納するデータメモリ管理テーブルと、上記データメモリ管理テーブルを参照して上記変数エディタにより定義された変数に上記トラッキング範囲にあるメモリを割付けるように上記プログラムエディタによって作成されたプログラムをコンパイルするコンパイラと、このコンパイラによってコンパイルされたプログラム及び上記トラッキング範囲設定手段により設定されたトラッキング範囲設定を上記コントローラに転送する転送手段とを有することを特徴とする二重化システム。
【請求項２】
上記エンジニアリングツールは、上記プログラムを変更し、コンパイルしたとき、上記転送手段により上記コンパイルされたプログラムを転送する直前に、上記コントローラの保有するトラッキング範囲と、上記エンジニアリングツールのトラッキング範囲設定機能により設定されているトラッキング範囲をチェックして、上記コントローラの保有するトラッキング範囲が小さい場合は、上記プログラムを転送しないようにするコントローラパラメータチェック手段を有することを特徴とする請求項１記載の二重化システム。
【請求項３】
上記エンジニアリングツールは、上記コントローラのデータメモリの使用量を表示するメモリ使用量表示手段を有することを特徴とする請求項１記載の二重化システム。
【請求項４】
上記エンジニアリングツールは、上記トラッキング範囲設定手段によりトラッキング範囲が小さく変更されたときに、ユーザに上記変数エディタにより定義された変数への上記トラッキング範囲にあるメモリの割付けを上記コンパイラにより行う必要があることを警告するとともに、上記コンパイラによるメモリの割付が完了するまで上記プログラム及びトラッキング範囲設定を転送しないよう、上記転送手段に通知するトラッキング範囲変更通知手段を有することを特徴とする請求項１記載の二重化システム。
【請求項５】
上記エンジニアリングツールは、上記トラッキング範囲設定手段によりトラッキング範囲が小さく変更されるときに、上記データメモリ管理テーブルを参照して、上記小さくされるトラッキング範囲に上記変数エディタにより定義された変数が入らなくなる場合には、エラーとして、上記トラッキング範囲を変更できないようにするトラッキング範囲変更チェック手段を有することを特徴とする請求項１記載の二重化システム。
【請求項６】
上記コントローラは、上記エンジニアリングツールから上記プログラム及び上記トラッキング範囲設定が転送されたことを検知し、待機系コントローラに上記転送されたプログラム及びトラッキング範囲設定を転送するプログラム・パラメータトラッキング手段を有し、
上記エンジニアリングツールの転送手段は、上記コンパイルされたプログラム及び上記トラッキング範囲設定手段により設定されたトラッキング範囲設定を上記制御系コントローラに転送するとともに、上記制御系コントローラは、上記転送されたプログラム及びトラッキング範囲設定を上記プログラム・パラメータトラッキング手段により上記待機系コントローラに転送することを特徴とする請求項１記載の二重化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プラント機器を制御するコントローラを二重化した二重化システムに関するものである。
【背景技術】
【０００２】
従来の二重化コントローラは、制御系から待機系へどのメモリをトラッキングするかの指定方法として、例えば、特許文献１では、変数単位に「トラッキングする、しない」の設定をコントローラのデータメモリに持つようにし、必要なエリアだけをトラッキングすることで、性能を上げる方法を提案している。
また、特許文献２では、エンジニアリングツールで、トラッキングする・しないの属性が指定されていないユーザプログラムを解析し、トラッキングが必要な変数にはトラッキングする属性を自動的に与え、それ以外の変数にはトラッキングしない属性を与えるようにし、ユーザプログラムでのユーザによるトラッキング指定を不要にする方法の記載がある。
これらによれば、指定された変数のメモリをトラッキングすることで、高速なトラッキングが可能となる。
【０００３】
【特許文献１】特開２００３−１３１８９９号公報（第３〜７頁、図２）
【特許文献２】特開２００２−２６８７１４号公報（第３〜４頁、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１、２に示される従来の二重化コントローラは、以上のように構成されているので、以下のような問題点がある。
特許文献１の「トラッキングする・しない」の設定は、安全のためにコントローラを一旦ストップしてエンジニアリングツールから転送する必要がある。「トラッキングする・しない」の設定を、コントローラを動作させたまま変更すると、「トラッキングする・しない」の設定書換え中に通信路の障害で書換えエラーが発生した場合など、一部の変数だけが「トラッキングする」の指定になり、トラッキングされるべき変数が「トラッキングしない」の指定となった不整合な状態でプログラムが動作する可能性があり、この状態で制御系・待機系コントローラの切り替えが発生すると、ユーザが予期しない危険なメモリの状態で待機系が動作開始する可能性があるからである。
また、特許文献２では、ユーザプログラムの変数への「トラッキングする・しない」の設定が、エンジニアリングツールで自動的に行われ、ユーザプログラムをコンパイルするとき、トラッキングデータが生成されるため、ユーザはプログラムを書き換えてコントローラに転送する度に、トラッキングデータが転送されることになる。このため、トラッキングデータの転送時には、上述のように、コントローラをストップする必要があり、制御用のコントローラとしては使用できない。
これは、制御用コントローラは、制御系をストップせずにプログラムを書き換えることができる必要があるためである。因みに、エンジニアリングツールからコントローラへのプログラムだけの転送では、転送が失敗したときは、コントローラは古いプログラムで動作できるので、転送時にコントローラをストップする必要がない。
特許文献１、２は、このように変数の「トラッキングする・しない」の設定を変更するつど、コントローラをストップしてエンジニアリングツールからコントローラへ転送する必要があった。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、エンジニアリングツールで設定される変数毎のトラッキングするかしないかのトラッキング情報を、エンジニアリングツールからコントローラに転送する回数を大幅に減少し、コントローラを停止する回数を減少することができる二重化システムを得ることを目的にしている。
【課題を解決するための手段】
【０００６】
この発明に係わる二重化システムにおいては、プログラムを実行することによりプラント機器を制御する制御系コントローラとこの制御系コントローラが故障したとき制御系コントローラの動作を継続してプラント機器を制御する待機系コントローラとの二つのコントローラにより構成され、コントローラは、実行するプログラムで参照される変数の値を格納するデータメモリと、制御系コントローラのデータメモリのデータを待機系コントローラのデータメモリにコピーするトラッキング手段を有する二重化システムにおいて、
コントローラで実行されるプログラムを作成するとともにデータメモリのトラッキングするデータの範囲を設定するエンジニアリングツールを備え、
エンジニアリングツールは、ユーザがプログラムを作成するプログラムエディタと、ユーザがトラッキング対象の変数を定義する変数エディタと、制御系コントローラから待機系コントローラへトラッキングするデータメモリ上のデータの範囲であるトラッキング範囲をユーザが設定するトラッキング範囲設定手段と、このトラッキング範囲設定手段により設定されたトラッキング範囲及びデータメモリの空き情報を格納するデータメモリ管理テーブルと、データメモリ管理テーブルを参照して変数エディタにより定義された変数にトラッキング範囲にあるメモリを割付けるようにプログラムエディタによって作成されたプログラムをコンパイルするコンパイラと、このコンパイラによってコンパイルされたプログラム及びトラッキング範囲設定手段により設定されたトラッキング範囲設定をコントローラに転送する転送手段とを有するものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、プログラムを実行することによりプラント機器を制御する制御系コントローラとこの制御系コントローラが故障したとき制御系コントローラの動作を継続してプラント機器を制御する待機系コントローラとの二つのコントローラにより構成され、コントローラは、実行するプログラムで参照される変数の値を格納するデータメモリと、制御系コントローラのデータメモリのデータを待機系コントローラのデータメモリにコピーするトラッキング手段を有する二重化システムにおいて、
コントローラで実行されるプログラムを作成するとともにデータメモリのトラッキングするデータの範囲を設定するエンジニアリングツールを備え、
エンジニアリングツールは、ユーザがプログラムを作成するプログラムエディタと、ユーザがトラッキング対象の変数を定義する変数エディタと、制御系コントローラから待機系コントローラへトラッキングするデータメモリ上のデータの範囲であるトラッキング範囲をユーザが設定するトラッキング範囲設定手段と、このトラッキング範囲設定手段により設定されたトラッキング範囲及びデータメモリの空き情報を格納するデータメモリ管理テーブルと、データメモリ管理テーブルを参照して変数エディタにより定義された変数にトラッキング範囲にあるメモリを割付けるようにプログラムエディタによって作成されたプログラムをコンパイルするコンパイラと、このコンパイラによってコンパイルされたプログラム及びトラッキング範囲設定手段により設定されたトラッキング範囲設定をコントローラに転送する転送手段とを有するので、ユーザにて必要最低限なメモリをトラッキングするようにトラッキング範囲を設定でき、この設定したトラッキング範囲設定をエンジニアリングツールからコントローラへ転送するだけで、トラッキングに要する時間を短くすることができるとともに、コントローラをストップすることなく、作成したプログラムをエンジニアリングツールからコントローラに転送することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
以下、この発明の実施の形態１を図１と図２に基づいて説明する。
図１は、この発明の実施の形態１による二重化システムを示すシステム構成図である。
図１において、エンジニアリングツール１１は、ユーザが制御用プログラムを作成するのに用いられる。コントローラ１２、１３は、制御用プログラムを実行してプラント機器を制御する。コントローラは、通常動作する制御系コントローラ１２と、通常は止まっているが、制御系コントローラ１２が故障などでダウンしたときに、瞬時に動作を開始する待機系コントローラ１３から構成される。制御系コントローラ１２と待機系コントローラ１３は同じ構成であり、まとめてコントローラ１２、１３ということもある。
待機系コントローラ１３は、制御系コントローラ１２の状態を引き継いで動作を開始する必要がある。すなわち、待機系コントローラ１３のデータメモリ１Ｂの値は、制御系コントローラ１２のデータメモリ１Ｂと一致した状態から運転を開始する必要がある。待機系コントローラ１３のデータメモリ１Ｂに、制御系コントローラ１２のデータメモリ１Ｂの内容を一致させることをトラッキングという。
なお、一部のデータは、運転開始後、プログラムの演算結果から出力される。このデータについては、運転開始時に制御系と待機系で一致している必要は無い。つまり、一致する必要のあるデータと、そうでないデータがある。
【０００９】
コントローラ１２、１３は、ユーザがエンジニアリングツール１１で作成したプログラムを格納するプログラムメモリ１Ｃと、プログラムが参照する変数の値を格納するデータメモリ１Ｂと、エンジニアリングツール１１で設定されたトラッキング範囲を記憶するトラッキング範囲１Ｄと、制御系コントローラ１２のデータメモリ１Ｂの値を、待機系コントローラ１３のデータメモリ１Ｂにトラッキングするトラッキング機能１Ｆ（トラッキング手段）から構成される。このトラッキング機能１Ｆは、ユーザがエンジニアリングツール１１で設定するトラッキング範囲１Ｄのデータメモリ１Ｂのデータを、制御系コントローラ１２から待機系コントローラ１３に、トラッキングケーブル１５経由でコピーする。
このトラッキング中は制御系コントローラ１２でプログラムを実行できないので、高速周期で実行する必要のある制御用プログラムの場合は、できるだけトラッキング時間が短いことが望ましい。
【００１０】
エンジニアリングツール１１は、コントローラ１２、１３に、メンテナンスＬＡＮ１４を介して接続されている。
このエンジニアリングツール１１は、ユーザがプラント制御用のプログラム（プログラム言語で記述したソースコード）を作成するプログラムエディタ１６と、ユーザがトラッキング対象の変数を定義する変数エディタ１７と、ソースコードを機械語コード（プログラムオブジェクト）に変換するとともに、変数にメモリを割付けるようなコンパイルを行うコンパイラ１９と、制御系コントローラ１２から待機系コントローラ１３にデータメモリ１Ｂのトラッキングする範囲を設定するトラッキング範囲設定機能１８（トラッキング範囲設定手段）と、コンパイル結果のプログラムオブジェクトと、設定されたトラッキング範囲設定をメンテナンスＬＡＮ１４を介してコントローラ１２、１３に転送する転送機能１Ａ（転送手段）とを有している。
【００１１】
図２は、この発明の実施の形態１による二重化システムのエンジニアリングツールの詳細を示す構成図である。
図２において、１６〜１９は図１におけるものと同一のものである。図２では、図１の構成に加えて、エンジニアリングツールのさらに詳細な構成を示している。図１に加えて、コンパイラ１９が変数にデータメモリのメモリを割付けるときに、データメモリのどこが空いているかの情報を格納するデータメモリ管理テーブル２１と、コンパイラ１９から要求され、変数に割当てるメモリがトラッキング範囲内にあるかどうかをチェックして返すトラッキング範囲チェック機能２２と、トラッキングが不要な変数として、トラッキングされないメモリが割付けられている演算用テンポラリ変数２３とを有している。
【００１２】
次に、図２を用いてエンジニアリングツール１１の基本動作について説明する。
ユーザは、変数エディタ１７を用いて、トラッキング対象の変数を定義する。次に、プログラムエディタ１６を用いて、プログラム（ソースコード）を作成する。ここで作成されるプログラムは、図２のように、ファンクションブロック形式のプログラム図を採用している。箱はファンクションブロックと呼ばれる命令である。なお、ラダーやテキスト形式のプログラム図でも本方式を採用できる。
プログラムを作成するときは、変数エディタ１７で定義した変数を用いてプログラムを作成する。図２では、例示のように、ＰＵＭＰ＿ＯＮ変数の値を入力として、ＴＯＮ命令（入力オンすると、指定された時間が経過した後に出力をオンする命令）を実行し、結果をＶＡＬＶＥ＿ＯＮ変数に格納し、次にＶＡＬＶＥ＿ＯＮ変数を入力として、ＴＯＮ命令を実行し、ＭＯＴＯＲ＿ＯＮ変数に値を格納している。このとき、ユーザには見えないが、ＴＯＮ命令を実行するために、演算用テンポラリ変数２３が使用される。
図３は、この発明の実施の形態１による二重化システムのエンジニアリングツールのトラッキング範囲設定及び転送動作を示すフローチャートである。
【００１３】
次に、図３のフローチャートを用いてエンジニアリングツールの動作についてさらに詳しく説明する。
ＳＴ３１で、ユーザは、トラッキング範囲設定機能１８により、必要最低限の範囲のメモリをトラッキングするように設定する。図２では、先頭メモリ番地０から１００番地分のサイズをトラッキングするように設定している。これによって、最低限のサイズをトラッキングすることになるので、高速なトラッキングが可能となる。この値は、ユーザで調整することになるが、コントローラをストップできる出荷前の試験中は、小さめにとっておいて、コントローラをストップするのが困難になる工場での運用開始前に、実際の変数の使用量を見て、以降のプログラムの変更で変数を追加しても問題にならないように調整すればよい。このため、この調整作業がユーザの負担になることはない。
【００１４】
ＳＴ３２で、作成したプログラム（ソースコード）を機械語コードにコンパイルすると、コンパイラ１９は、データメモリ管理テーブル２１を参照して、空きメモリから各変数に対してメモリを割付ける。割付けたメモリは、データメモリ管理テーブル２１上で使用済みとする。
このとき、変数エディタ１７で定義された変数に対しては、トラッキング範囲設定機能１８で定義された範囲から割付け、それ以外の演算用テンポラリ変数２３に対しては、ＳＴ４２により、トラッキングメモリ範囲外から割付けを行う。
すなわち、ＳＴ３３で、コンパイラは、変数エディタ１７で定義された変数に、トラッキングされるメモリからメモリを割付ける場合かどうかチェックし、トラッキングされるメモリからメモリを割付ける場合は、ＳＴ３４で、トラッキング範囲チェック機能２２を使用して、割付けるメモリが範囲内に収まっているかどうかをチェックする。ＳＴ３５で、範囲外の場合は、ＳＴ３６で、コンパイルエラーとし、ユーザにトラッキング範囲設定を変更するようにメッセージを表示する。これによって、トラッキングされなければならない変数が、トラッキング範囲外のメモリを割付けられて、不正な状態で実行されることを防止できる。
【００１５】
ユーザは、ＳＴ３７で、コンパイルが正常終了すると、図１の転送機能１Ａを使用して、プログラムとトラッキング範囲設定を、制御系コントローラ１２と待機系コントローラ１３とに転送する。ＳＴ３８で、トラッキング範囲設定を転送するかどうかをユーザが判断し、トラッキング範囲設定を転送する場合は、ＳＴ３９で、コントローラをストップしてから、ＳＴ３１０で転送する。
但し、トラッキング範囲は、トラッキング範囲設定機能１８にて変更していた場合のみ転送すれば良い。従って、プログラムのみ転送する場合は、ＳＴ３１１でコントローラをストップすることなく、変更したプログラムのみを転送することができる。
なお、変数エディタ１７により定義される変数を追加または削除しても、それがトラッキング範囲内のメモリへの割付または削除に対応するものであれば、トラッキング範囲を変更する必要がなく、したがって、トラッキング範囲設定をコントローラをストップして転送する必要もない。
【００１６】
実施の形態１によれば、トラッキングの範囲をユーザで設定可能なトラッキング範囲設定機能をエンジニアリングツールに備えるので、ユーザにて必要最低限なメモリをトラッキングするように設定できる。
また、コンパイル時、トラッキングが必要な変数にはトラッキング範囲の空きメモリからメモリを割付け、演算結果を一時的に格納するようなトラッキング不要な変数にはトラッキング範囲外のメモリを割付けるコンパイラを備えるので、ユーザでどの変数をトラッキングするかをプログラムで設定する必要が無い。
さらに、コンパイル時に、トラッキング範囲のメモリを変数に割付けるときに、トラッキング範囲内に収まったかどうかをチェックするトラッキング範囲チェック機能を備えるので、トラッキングされるべき変数がトラッキング範囲外のメモリを割付けられた不正な状態で、転送されることが防止される。
これらの機構により、通常はコントローラを止めることなくプログラムを転送できる。ユーザがトラッキングする範囲を変更した場合は、コントローラを止めて転送する必要があるが、プラントで運用が開始されたあとは、トラッキングの範囲を変更するようなケースは殆ど無いので、問題にはならない。
【００１７】
実施の形態２．
以下、この発明の実施の形態２を図４に基づいて説明する。
図４は、この発明の実施の形態２による二重化システムを示すシステム構成図である。
図４において、１Ａ〜１Ｆ、１１〜１９は図１におけるものと同一のものである。図４では、エンジニアリングツール１１と同じ構成の他のエンジニアリングツール５２がメンテナンスＬＡＮ１４に接続され、各エンジニアリングツール１１、５２には、コントローラ１２、１３のトラッキング範囲１Ｄと、プログラムを転送するエンジニアリングツールのトラッキング範囲をチェックするコントローラパラメータチェック機能５１（コントローラパラメータチェック手段）が設けられている。
【００１８】
実施の形態１では、エンジニアリングツール１１が１台の場合について説明したが、実施の形態２は、エンジニアリングツール１１と同じ構成の他のエンジニアリングツール５２がメンテナンスＬＡＮ１４に接続され、複数のユーザによってプログラムが作成される構成である。
複数のユーザによってプログラムが作成される場合には、他のエンジニアリングツール５２で、エンジニアリングツール１１で設定された範囲と異なるトラッキング範囲を設定され、コントローラ１２、１３に転送される可能性がある。
この後、エンジニアリングツール１１でプログラムを変更してコンパイルし、コントローラ１２、１３に転送するとき、プログラムで使用する変数は、エンジニアリングツール１１上のトラッキング範囲内には収まっているが、コントローラ１２、１３側の、他のエンジニアリングツール５２で転送されたトラッキング範囲１Ｄには収まっていない可能性がある。
これを防止するために、エンジニアリングツール１１、５２にコントローラパラメータチェック機能５１を設け、プログラムの転送前に、コントローラ１２、１３のトラッキング範囲１Ｄと、エンジニアリングツールのトラッキング範囲設定をチェックするようにし、このチェック結果、コントローラ１２、１３のトラッキング範囲１Ｄが小さい場合は、プログラムを転送しないようにする。
なお、コントローラ１２、１３のトラッキング範囲１Ｄが、プログラムを転送しょうとするエンジニアリングツールのトラッキング範囲と同じかまたは大きい場合は、プログラムを転送しても何ら問題はない。
【００１９】
実施の形態２によれば、コントローラパラメータチェック機能５１を設けたことにより、複数のユーザによりプログラムが作成される場合にも、プログラムとトラッキング範囲設定が不一致の状態でプログラムがコントローラに転送されることを防止できる。
【００２０】
実施の形態３．
以下、この発明の実施の形態３を、図５に基づいて説明する。
図５は、この発明の実施の形態３による二重化システムのエンジニアリングツールの詳細を示す構成図である。
図５において、１６〜１９、２１〜２３は図２におけるものと同一のものである。図５では、データメモリ１Ｂの使用量を表示するメモリ使用量表示機能６１（メモリ使用量表示手段）が設けられている。
【００２１】
実施の形態３は、エンジニアリングツール１１に、データメモリ管理テーブル２１を参照して、トラッキングされるメモリの使用量と残量、及びトラッキングされないメモリの使用量と残量を表示するメモリ使用量表示機能６１を設けたものである。
【００２２】
実施の形態３によれば、メモリの使用量と残量が表示されることにより、ユーザは、この情報を参照して、トラッキング範囲を容易に調整することができる。
【００２３】
実施の形態４．
以下、この発明の実施の形態４を、図６に基づいて説明する。
図６は、この発明の実施の形態４による二重化システムのエンジニアリングツールの詳細を示す構成図である。
図６において、１６〜１９、２１〜２３は図２におけるものと同一のものである。図６では、トラッキング範囲が狭められたことを検知し、再コンパイルの必要性を通知するとともにコンパイルが完了するまではコントローラに転送されないようにガードするトラッキング範囲変更通知機能７１（トラッキング範囲変更通知手段）を設けている。
【００２４】
トラッキング範囲設定機能１８にて、トラッキング範囲を狭められたとき、トラッキングされるメモリの内のすでに変数に割当てられたメモリ位置が、トラッキングされないメモリに変更されてしまう可能性がある。
もし、トラッキングされるメモリの内のすでに変数に割当てられたメモリ位置が、トラッキングされないメモリに変更されてしまった場合、これに気付かずにトラッキング範囲設定がコントローラに転送されると、トラッキングされるべき変数がトラッキングされないまま、コントローラが動作することになる。
実施の形態４は、これを防止するために、トラッキング範囲設定機能１８でトラッキング範囲が狭められたとき、トラッキング範囲変更通知機能７１は、これを検知し、ユーザにプログラムの再度のコンパイル（コンパイラ１９による変数へのトラッキング範囲内のメモリの割付）が必要であることを通知するとともに、転送機能１Ａに、コンパイルが完了するまでは、プログラムとトラッキング範囲がコントローラに転送されないようにガードする情報を通知する。再コンパイルすれば、トラッキングされないメモリに割付けられた変数を、トラッキングされるメモリの空きエリアに割付け直すことができる。
【００２５】
実施の形態４によれば、トラッキング範囲が狭められたとき、トラッキングされるメモリの内のすでに変数に割当てられたメモリ位置が、トラッキングされないメモリに変更されたときでも、ユーザに、プログラムの再コンパイルが必要であることを通知するとともに、転送機能１Ａに、コンパイルが完了するまでは、プログラムとトラッキング範囲がコントローラに転送されないようにガードする情報を通知することができ、トラッキングされるべき変数がトラッキングされないまま、コントローラが動作することを防ぐことができる。
【００２６】
実施の形態５．
以下、この発明の実施の形態５を、図７に基づいて説明する。
図７は、この発明の実施の形態５による二重化システムのエンジニアリングツールの詳細を示す構成図である。
図７において、１６〜１９、２１〜２３は図２におけるものと同一のものである。図７では、トラッキング範囲が、ユーザにてトラッキング範囲設定機能１８を用いて小さく変更されたとき、この変更を検知するトラッキング範囲変更チェック機能８１（トラッキング範囲変更チェック手段）を設けている。
【００２７】
実施の形態５は、トラッキング範囲が、ユーザにてトラッキング範囲設定機能１８を用いて小さく変更されたとき、トラッキング範囲変更チェック機能８１により、この変更を検知して、データメモリ管理テーブル２１を参照して、トラッキング範囲が小さくされたことによって、トラッキングされるメモリを割付けられた変数のメモリが、トラッキングされないように変更されることになる場合は、エラーとし、トラッキング範囲設定を変更できないようにガードするようにした。
【００２８】
実施の形態５によれば、トラッキング範囲変更チェック機能８１を設け、トラッキング範囲が小さくされたことによって、トラッキングされるメモリを割付けられた変数のメモリが、トラッキングされないように変更されることを防ぎ、トラッキング範囲を誤って変更できないようにすることができる。
【００２９】
実施の形態６．
以下、この発明の実施の形態６を、図８に基づいて説明する。
図８は、この発明の実施の形態６による二重化システムを示すシステム構成図である。
図８において、１Ａ〜１Ｆ、１１〜１９は図１におけるものと同一のものである。図８では、コントローラ１２、１３に、エンジニアリングツール１１から制御系コントローラにトラッキング範囲設定やプログラムが転送されると、これを検知するとともに、転送されたトラッキング範囲設定及びプログラムを待機系コントローラに転送するプログラム・パラメータトラッキング機能９１（プログラム・パラメータトラッキング手段）を設けている。
【００３０】
ユーザによって、トラッキング範囲設定機能１８を利用してトラッキング範囲が変更され、プログラムエディタ１６によってプログラムが変更され、転送機能１Ａによって、コントローラ１２、１３にこれらを転送するときは、制御系コントローラ１２と待機系コントローラ１３の両コントローラに確実に転送する必要がある。制御系コントローラ１２と待機系コントローラ１３で一致していないと、切換え時に正常動作しないからである。
ところで、この転送時に、制御系コントローラ１２への転送は正常終了したが、待機系コントローラ１３には何らかのエラーで転送できなかった場合、これに気付かないで運用していると、制御系コントローラ１２から待機系コントローラ１３への切換え時に、予想していなかった動きとなり危険である。
実施の形態６は、これを防止するために、エンジニアリングツール１１から制御系コントローラ１２にのみプログラム及びトラッキング範囲設定を転送し、制御系コントローラ１２のプログラム・パラメータトラッキング機能９１が、プログラム及びトラッキング範囲設定が転送されたことを検知して、このエンジニアリングツール１１から転送されたプログラム及びトラッキング範囲設定を、トラッキングケーブル１５経由で待機系コントローラ１３に転送するようにして、両コントローラにトラッキング範囲設定及びプログラムを転送する。
なお、制御系コントローラ１２のプログラム・パラメータトラッキング機能９１によるプログラム及びトラッキング範囲設定の待機系コントローラ１３への転送が失敗（待機系コントローラ１３からの応答を受信しないことにより）した場合（何回かのリトライの結果の失敗を含む）は、制御系コントローラ１２でも、エンジニアリングツール１１から転送されたプログラム及びトラッキング範囲設定を破棄し、これによるプログラムメモリ１Ｃまたはトラッキング範囲１Ｄの書換えを行わないようにする。
【００３１】
実施の形態６によれば、トラッキング範囲設定及びプログラムをエンジニアリングツールから制御系コントローラにまず転送し、制御系コントローラから待機系コントローラへ転送するようにしたので、制御系及び待機系コントローラのプログラムとトラッキング範囲が不一致になることを防止できる。
【図面の簡単な説明】
【００３２】
【図１】この発明の実施の形態１による二重化システムを示すシステム構成図である。
【図２】この発明の実施の形態１による二重化システムのエンジニアリングツールの詳細を示す構成図である。
【図３】この発明の実施の形態１による二重化システムのエンジニアリングツールの動作を示すフローチャートである。
【図４】この発明の実施の形態２による二重化システムを示すシステム構成図である。
【図５】この発明の実施の形態３による二重化システムのエンジニアリングツールの詳細を示す構成図である。
【図６】この発明の実施の形態４による二重化システムのエンジニアリングツールの詳細を示す構成図である。
【図７】この発明の実施の形態５による二重化システムのエンジニアリングツールの詳細を示す構成図である。
【図８】この発明の実施の形態６による二重化システムを示すシステム構成図である。
【符号の説明】
【００３３】
１Ａ  転送機能、１Ｂ  データメモリ、１Ｃ  プログラムメモリ、
１Ｄ  トラッキング範囲、１Ｆ  トラッキング機能、
１１  エンジニアリングツール、１２  制御系コントローラ、
１３  待機系コントローラ、１４  メンテナンスＬＡＮ、
１５  トラッキングケーブル、１６  プログラムエディタ、１７  変数エディタ、
１８  トラッキング範囲設定機能、１９  コンパイラ、
２１  データメモリ管理テーブル、２２  トラッキング範囲チェック機能、
２３  演算用テンポラリ変数、５１  コントローラパラメータチェック機能、
５２  他のエンジニアリングツール、６１  メモリ使用量表示機能、
７１  トラッキング範囲変更通知機能、
８１  トラッキング範囲変更チェック機能、
９１  プログラム・パラメータトラッキング機能。
【図１】
2007080116.tif 000003
【図２】
2007080116.tif 000004
【図３】
2007080116.tif 000005
【図４】
2007080116.tif 000006
【図５】
2007080116.tif 000007
【図６】
2007080116.tif 000008
【図７】
2007080116.tif 000009
【図８】
2007080116.tif 000010