(57)【特許請求の範囲】
【請求項１】
冗長構成に適用可能なコントローラであって、
冗長化された他のコントローラの種別を、他のコントローラが採用するエンディアンに応じて第１種別または第２種別のいずれかに設定する設定部と、
冗長化された全てのコントローラの種別が第１種別である場合に、第１種別のコントローラが採用する第１エンディアンを用いてコントローラ間のデータの同期処理を制御する一方、冗長化された何れかのコントローラの種別が第２種別である場合に、第２種別のコントローラが採用する第２エンディアンを用いてコントローラ間のデータの同期処理を制御する制御部と、
を備え、
前記制御部は、
自コントローラが、第２種別のコントローラから第１種別のコントローラに交換された後、自コントローラの前記設定部により最初に設定される前記冗長化された他のコントローラの種別が第１種別である場合に、自コントローラが待機系列から稼働系列に切り換わるまでの間、第１種別である他のコントローラから受信したデータを、第２エンディアンを用いて第２エンディアン用の記憶領域に記憶し、
自コントローラが待機系列から稼働系列に切り換えられたときに、第２エンディアン用の記憶領域に記憶したデータを、第１エンディアンを用いたデータに変換して第１エンディアン用の記憶領域に記憶し、
自コントローラが待機系列から稼働系列に切り換えられた後に、稼働系列から待機系列に切り換えられて停止した他のコントローラの前記設定部により設定される前記冗長化された他のコントローラの種別が第１種別であり、かつ前記停止した他のコントローラが起動した場合に、第１エンディアンを用いてコントローラ間のデータの同期処理を制御する、
ことを特徴とするコントローラ。
【請求項２】
冗長構成に適用可能なコントローラの制御方法であって、
冗長化された他のコントローラの種別を、他のコントローラが採用するエンディアンに応じて第１種別または第２種別のいずれかに設定し、
冗長化された全てのコントローラの種別が第１種別である場合に、第１種別のコントローラが採用する第１エンディアンを用いてコントローラ間のデータの同期処理を制御する一方、冗長化された何れかのコントローラの種別が第２種別である場合に、第２種別のコントローラが採用する第２エンディアンを用いてコントローラ間のデータの同期処理を制御し、
コントローラ間のデータの同期処理を制御する際に、
自コントローラが、第２種別のコントローラから第１種別のコントローラに交換された後、自コントローラにおいて最初に設定される前記冗長化された他のコントローラの種別が第１種別である場合に、自コントローラが待機系列から稼働系列に切り換わるまでの間、第１種別である他のコントローラから受信したデータを、第２エンディアンを用いて第２エンディアン用の記憶領域に記憶し、
自コントローラが待機系列から稼働系列に切り換えられたときに、第２エンディアン用の記憶領域に記憶したデータを、第１エンディアンを用いたデータに変換して第１エンディアン用の記憶領域に記憶し、
自コントローラが待機系列から稼働系列に切り換えられた後に、稼働系列から待機系列に切り換えられて停止した他のコントローラにおいて設定される前記冗長化された他のコントローラの種別が第１種別であり、かつ前記停止した他のコントローラが起動した場合に、第１エンディアンを用いてコントローラ間のデータの同期処理を制御する、
コントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラおよびその制御方法に関する。
【背景技術】
【０００２】
工場等におけるプロセスを制御するシステムでは、プラント内に配置した機器から定期的にプロセスデータ等を収集してプロセスを管理している。このようなシステムでは、コントローラの予期せぬ故障等による障害に備え、コントローラを二重化する等の冗長構成を採用し、システムの信頼性を高めている。代表的な冗長構成として、例えば、並列冗長構成と待機冗長構成とがあり、下記特許文献１には、並列冗長構成を採用したプロセス制御システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１９１６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、コントローラを冗長化したシステムでは、どのコントローラを稼働させても同様に動作することが要求される。したがって、コントローラを冗長化する場合には、ハードウェアやオペレーティングシステム（ＯＳ）等のアーキテクチャが同じコントローラを用いて冗長化することが望ましい。
【０００５】
その一方、同じコントローラを長期間使い続けると、部品の劣化等により部品交換が必要となる。しかしながら、長期間使用しているコントローラでは、交換する部品の製造が既に終了していることがある。このような場合、代替部品で対応するか、新しい別のコントローラに交換することとなるが、そのような交換によりコントローラのアーキテクチャが変わる可能性がある。アーキテクチャが変わると、アーキテクチャに依存するエンディアンがコントローラ間で相違することも起こり得る。エンディアンは、データをメモリに格納する際の記録や転送方法を規定するものであるため、コントローラ間でエンディアンが相違すると、その相違を解消するしくみがなければ、コントローラ間のデータの整合性を維持することが困難となり、冗長機能に支障を来すことになる。
【０００６】
本発明は、上述した従来技術による問題点を解消するためになされたものであり、冗長構成されたコントローラ間でエンディアンが異なる場合であっても、コントローラ間のデータの整合性を維持することができるコントローラおよびその制御方法を提供することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一態様であるコントローラは、冗長構成に適用可能なコントローラであって、冗長化された他のコントローラの種別を、他のコントローラが採用するエンディアンに応じて第１種別または第２種別のいずれかに設定する設定部と、冗長化された全てのコントローラの前記種別が第１種別である場合に、第１種別のコントローラが採用する第１エンディアンを用いてコントローラ間のデータの同期処理を制御する一方、冗長化された何れかのコントローラの前記種別が第２種別である場合に、第２種別のコントローラが採用する第２エンディアンを用いてコントローラ間のデータの同期処理を制御する制御部と、を備える。
【０００８】
前記制御部は、自コントローラが交換された後、最初に設定される前記種別が第１種別である場合に、自コントローラが待機系列から稼働系列に切り換わるまでの間、他のコントローラから受信したデータを、第２エンディアンを用いて第２エンディアン用の記憶領域に記憶し、自コントローラが待機系列から稼働系列に切り換えられたときに、第２エンディアン用の記憶領域に記憶したデータを、第１エンディアンを用いたデータに変換して第１エンディアン用の記憶領域に記憶する、こととしてもよい。
【０００９】
前記制御部は、自コントローラが待機系列から稼働系列に切り換えられた後に、停止した他のコントローラの前記設定部により前記種別が第１種別に設定され、他のコントローラが起動した場合に、第１エンディアンを用いてコントローラ間のデータの同期処理を制御する、こととしてもよい。
【００１０】
本発明の一態様であるコントローラの制御方法は、冗長構成に適用可能なコントローラの制御方法であって、冗長化された他のコントローラの種別を、他のコントローラが採用するエンディアンに応じて第１種別または第２種別のいずれかに設定し、冗長化された全てのコントローラの前記種別が第１種別である場合に、第１種別のコントローラが採用する第１エンディアンを用いてコントローラ間のデータの同期処理を制御する一方、冗長化された何れかのコントローラの前記種別が第２種別である場合に、第２種別のコントローラが採用する第２エンディアンを用いてコントローラ間のデータの同期処理を制御する。
【発明の効果】
【００１１】
本発明によれば、冗長構成されたコントローラ間でエンディアンが異なる場合であっても、コントローラ間のデータの整合性を維持することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るコントローラの構成を示す図である。
【図２】本発明の実施形態に係るコントローラの機能構成を示す図である。
【図３】冗長化された旧型のコントローラを、プロセス制御の連続性を保ちながら、それぞれ新型のコントローラに交換する際の手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。なお、添付図面を参照しながら本発明の実施の形態について説明する。理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付し、重複する説明は省略する。
【００１４】
図１は、本発明の実施形態に係るコントローラの構成を例示する図である。図１に示すコントローラ１ａ、１ｂは、冗長化されており、一方を稼動側のコントローラとし、他方を待機側のコントローラとする待機冗長方式により構成されている。コントローラ１ａ、１ｂは、それぞれの冗長接続用の通信ポートに差し込まれた接続ケーブル２を介して接続される。
【００１５】
以下において、各コントローラ１ａ、１ｂに共通する事項を説明する場合には、「コントローラ１」という。なお、本実施形態では、例示的に二つのコントローラ１ａ、１ｂで冗長化する場合について説明するが、三つ以上のコントローラで冗長化する場合についても同様に本発明を適用することができる。
【００１６】
コントローラ１は、例示的に、工場等におけるプロセスを制御するプロセス制御システムに適用することができる。プロセス制御システムは、例えば、コントローラ１の上位側に位置する機器管理装置および運転監視装置、ならびにコントローラ１の下位側に位置する変換器およびプロセス機器を備える。
【００１７】
機器管理装置は、プロセス機器を管理するための装置であり、パラメータの一元管理やアラート情報の管理等を行う。運転監視装置は、コントローラ１を介して収集されるプロセス機器の運転内容をモニタに表示し、運用者の指示に従ってプロセス機器の運転状態を操作するための装置である。
【００１８】
プロセス機器は、プラント内に配置される機器であり、例えば、ファウンデーションフィールドバス技術に対応する機器や、ＨＡＲＴ（Highway Addressable Remote Transducer）通信機能を搭載した機器、プロフィバス（Profibus）技術に対応する機器等が該当する。具体的に、流量や圧力、温度等を検出する各種センサ機器、流量制御弁や圧力制御弁等の各種バルブを制御するバルブポジショナ、ポンプやファン等を動作させる各種アクチュエータ等がプロセス機器として例示される。
【００１９】
変換器は、コントローラ１とプロセス機器とを仲介する機器であり、コントローラ１側のプロトコルとプロセス機器側のプロトコルとを変換する。
【００２０】
コントローラ１は、生産プロセスの実行状態を制御する。例示的に、コントローラ１は、センサ機器から取得した流量や圧力等の測定値に基づいて、バルブポジショナを制御することで、配管に設けられたバルブの開度を調節する。
【００２１】
図２を参照して、本実施形態におけるコントローラ１の機能構成について説明する。コントローラ１は、機能的には、例えば、設定部１１および制御部１２を有する。
【００２２】
設定部１１は、冗長化された他のコントローラ１の種別を設定する。他のコントローラ１の種別は、例えば、ディップスイッチ等の設定用のスイッチを用いて設定することができる。
【００２３】
他のコントローラ１の種別は、例えば、他のコントローラ１が採用するエンディアンに応じて割り当てることができる。なお、自コントローラ１の種別はメモリ等に保持されており、自コントローラ１で判別できるように構成されている。
【００２４】
ここで、エンディアンとは、多バイトからなるデータをバイト単位に記憶領域（メモリ）に格納する際に、どのデータから順に格納するのかを規定するものであり、バイトオーダーともいう。エンディアンには、例えば、最上位側のデータから順に格納するビッグエンディアンや、最下位側のデータから順に格納するリトルエンディアンがある。
【００２５】
本実施形態では、例示的に、ビッグエンディアン（第１エンディアン）を採用するコントローラ１の種別を「第１種別」とし、リトルエンディアン（第２エンディアン）を採用するコントローラ１の種別を「第２種別」とする。また、本実施形態では、例示的に、コントローラの形式が比較的新しい「新型」のコントローラ１がビッグエンディアンを採用し、コントローラの形式が比較的古い「旧型」のコントローラ１がリトルエンディアンを採用するものとする。
【００２６】
なお、コントローラ１が採用するエンディアンは、上記例示には限定されず、コントローラの種別ごとに特定のエンディアンが採用されることとすればよい。
【００２７】
また、本実施形態における新型のコントローラ１は、接続ケーブル２を差し込む通信ポートとして、Ｅｔｈｅｒｎｅｔ(登録商標)（ＬＡＮ）とＣＯＭ（シリアル）とを使用することができ、旧型のコントローラ１は、接続ケーブル２を差し込む通信ポートとして、Ｅｔｈｅｒｎｅｔ(登録商標)が設けられておらず、ＣＯＭを使用することとする。
【００２８】
したがって、新型のコントローラ１同士で冗長化する場合には、Ｅｔｈｅｒｎｅｔ(登録商標)を介した比較的高速な通信を行うことが可能となるが、旧型のコントローラ１を含めて冗長化する場合には、ＣＯＭを介した比較的低速な通信を行うこととなる。
【００２９】
制御部１２は、冗長化された各コントローラ１の種別に基づいて、コントローラ１間のデータの同期処理を制御する。データの同期処理は、各コントローラ１が記憶するデータの整合性を保持するために各コントローラ間において適宜行われる処理である。各コントローラ１の種別に基づく制御は、例えば、以下の（１）、（２）に記載するように制御する。
【００３０】
（１）冗長化された全てのコントローラ１の種別が第１種別（新型）である場合：
各コントローラ１の制御部１２は、新型のコントローラ１が採用するビッグエンディアンを用いてコントローラ１間のデータの同期処理を制御する。
【００３１】
（２）冗長化された何れかのコントローラ１の種別が第２種別（旧型）である場合（全てが第２種別である場合を含む）：
各コントローラ１の制御部１２は、旧型のコントローラ１が採用するリトルエンディアンを用いてコントローラ１間のデータの同期処理を制御する。
【００３２】
上記（１）、（２）の具体的な制御内容は、以下の手順を説明する中で詳細に説明する。
【００３３】
次に、図３を参照し、冗長化された旧型のコントローラ１ａ、１ｂを、プロセス制御の連続性を保ちながら、それぞれ新型のコントローラ１ａ、１ｂに交換する際の手順について説明する。
【００３４】
最初に、旧型のコントローラ１ａが稼働系列として稼働し（ステップＳ１０１）、旧型のコントローラ１ｂが待機系列として待機している（ステップＳ１０２）こととする。このとき、コントローラ１ａ、１ｂ間におけるデータの同期処理は、旧型のコントローラが採用するリトルエンディアンを用いて制御される。
【００３５】
続いて、待機系列のコントローラ１ｂが故障して、新型のコントローラ１ｂに交換され（ステップＳ１０３）、その交換されたコントローラ１ｂの設定部１１により、冗長相手のコントローラ１ａの種別が第２種別（旧型）に設定される（ステップＳ１０４）。交換された新型のコントローラ１ｂは、待機系列として待機する（ステップＳ１０５）。
【００３６】
このとき、コントローラ１ａ、１ｂ間におけるデータの同期処理は、旧型のコントローラが採用するリトルエンディアンを用いて制御される。また、ＣＯＭ用通信ポートを介して通信することとなるため、比較的低速な通信によりデータの送受信が行われる。
【００３７】
続いて、稼働系例のコントローラ１ａが故障する（ステップＳ１０６）と、待機系列のコントローラ１ｂが稼働系列として稼働する（ステップＳ１０７）。
【００３８】
続いて、故障したコントローラ１ａが新型に交換され（ステップＳ１０８）、その交換されたコントローラ１ａの設定部１１により、冗長相手のコントローラ１ｂの種別が第１種別（新型）に設定される（ステップＳ１０９）。交換された新型のコントローラ１ａは、待機系列として待機する（ステップＳ１１０）。
【００３９】
このとき、稼働系列として稼働するコントローラ１ｂは、冗長相手のコントローラ１ａの種別に第２種別（旧型）が設定されているため、コントローラ１ａ、１ｂ間におけるデータの同期処理を、旧型のコントローラが採用するリトルエンディアンを用いて制御する。一方、待機系列のコントローラ１ａは、稼働系列のコントローラ１ｂから受信する同期処理用のデータを、リトルエンディアンを用いてリトルエンディアン用の記憶領域に記憶する。また、接続ケーブル２を双方のＥｔｈｅｒｎｅｔ(登録商標)用通信ポートに差し込むことができるため、Ｅｔｈｅｒｎｅｔ(登録商標)を介した比較的高速な通信によりデータの送受信を行うことが可能となる。
【００４０】
続いて、例えば運用者によって、稼働系例と待機系列とが切り換えられる（ステップＳ１１１）と、コントローラ１ａが稼働系列として稼働し（ステップＳ１１２）、コントローラ１ｂが待機系列として待機する（ステップＳ１１３）。
【００４１】
このとき、稼働系列に切り換わったコントローラ１ａは、上記リトルエンディアン用の記憶領域に記憶したデータを、ビッグエンディアンを用いたデータに変換し、ビッグエンディアン用の記憶領域に記憶する。また、Ｅｔｈｅｒｎｅｔ(登録商標)用通信ポートを介して通信することとなるため、比較的高速な通信によりデータの送受信を行うことができる。
【００４２】
続いて、待機系列のコントローラ１ｂを一旦停止し（ステップＳ１１４）、その停止したコントローラ１ｂの設定部１１により、冗長相手のコントローラ１ａの種別が第１種別（新型）に変更され、その後、コントローラ１ｂの起動が指示される（ステップＳ１１５）。起動したコントローラ１ｂは、待機系列として待機する（ステップＳ１１６）。
【００４３】
このとき、コントローラ１ａ、１ｂ間におけるデータの同期処理は、新型のコントローラが採用するビッグエンディアンを用いて制御される。また、Ｅｔｈｅｒｎｅｔ(登録商標)用通信ポートを介して通信するため、比較的高速な通信によりデータの送受信を行うことができる。
【００４４】
上述したように、実施形態におけるコントローラ１によれば、冗長化された他のコントローラの種別を、当該他のコントローラが採用するエンディアンに応じて第１種別（新型）または第２種別（旧型）のいずれかに設定することができ、冗長化された全てのコントローラの種別が第１種別である場合に、新型のコントローラが採用するビッグエンディアンを用いてコントローラ間のデータの同期処理を制御する一方、冗長化された何れかのコントローラの種別が第２種別である場合に、旧型のコントローラが採用するリトルエンディアンを用いてコントローラ間のデータの同期処理を制御することができる。
【００４５】
したがって、冗長構成されたコントローラ間でエンディアンが異なる場合であっても、コントローラ間のデータの整合性を維持することが可能となる。
【００４６】
また、実施形態におけるコントローラ１によれば、自コントローラが交換された後、最初に設定される種別が新型である場合には、自コントローラが待機系列から稼働系列に切り換わるまでの間、他のコントローラから受信したデータを、リトルエンディアンを用いて処理し、リトルエンディアン用の記憶領域に記憶することができ、自コントローラが待機系列から稼働系列に切り換えられたときに、リトルエンディアン用の記憶領域に記憶したデータを、ビッグエンディアンを用いたデータに変換してビッグエンディアン用の記憶領域に記憶することができる。その後、他のコントローラが停止し、当該他のコントローラの設定部１１により種別が新型に設定され、当該他のコントローラが起動した場合には、ビッグエンディアンを用いてコントローラ間のデータの同期処理を制御することができるようになる。
【００４７】
それゆえ、新型および旧型のコントローラ１が混在し、コントローラ間でエンディアンが異なる場合であっても、プロセス制御を止めることなく、旧型のエンディアンに合わせてデータの同期処理を制御することができ、全てが新型に交換された後に、新型のエンディアンに合わせてデータの同期処理を制御することができるようになる。
【００４８】
なお、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述した各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更し、または並列に実行することができる。
【符号の説明】
【００４９】
１…コントローラ
２…接続ケーブル
１１…設定部
１２…制御部
【図１】
0006633415.tif 000002
【図２】
0006633415.tif 000003
【図３】
0006633415.tif 000004