(57)【要約】【課題】充電可能なバックアップ手段の有無に依存しない制御プログラムの実施手段を実現することができる計算機装置を提供する。【解決手段】不揮発性メモリと揮発性メモリを含むメモリと、演算装置を備え、メモリの制御プログラムテーブルに記述された制御プログラムを演算装置で実行する計算機装置であって、不揮発性メモリに第１の制御プログラムテーブルを、揮発性メモリに第２の制御プログラムテーブルを備え、電源投入時に、充電可能なバックアップ手段の有無と第１と第２の制御プログラムテーブルのいずれを優先的に使用するかを確認し、充電可能なバックアップ手段の接続が無くかつ第２の制御プログラムテーブルを使用するときには第１の制御プログラムテーブルの内容を第２の制御プログラムテーブルに転写し、第２の制御プログラムテーブルにより演算中は、定めた制御周期ごとに第２の制御プログラムテーブルの内容を第１の制御プログラムテーブルに転写していることを特徴とする。【選択図】図１
2015170077.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと揮発性メモリを含むメモリと、演算装置を備え、前記メモリの制御プログラムテーブルに記述された制御プログラムを前記演算装置で実行する計算機装置であって、
前記不揮発性メモリに第１の制御プログラムテーブルを、前記揮発性メモリに第２の制御プログラムテーブルを備え、
また前記揮発性メモリは、前記不揮発性メモリ内の前記第１の制御プログラムテーブルのアドレスを定義した第１の制御プログラムアドレステーブルと、前記揮発性メモリ内の前記第２の制御プログラムテーブルのアドレスを定義した第２の制御プログラムアドレステーブルと、前記演算装置で実行する前記制御プログラムが参照するアドレスを定義した第３の制御プログラムアドレステーブルと、電源断したときの充電可能なバックアップ手段の有無を示すバックアップ手段有無フラグテーブルとを備え、
制御プログラムアドレステーブル格納処理機能は、前記バックアップ手段有無フラグテーブルを参照し、前記第３の制御プログラムアドレステーブルに前記第１の制御プログラムアドレステーブルと前記第２の制御プログラムアドレステーブルを選択して格納する処理を含み、
バックアップ手段有無判定処理機能は、計算機装置が起動した際に前記バックアップ手段有無フラグテーブルを参照し、前記第２の制御プログラムテーブルに、前記第１の制御プログラムテーブルの内容を転写する処理を含み、
制御プログラムテーブルバックアップ処理機能は、前記バックアップ手段有無フラグテーブルを参照し、前記第２の制御プログラムテーブルを周期的に前記第１の制御プログラムテーブルへ転写する処理を含み、
前記制御プログラム処理機能は、前記制御プログラムテーブルを参照して演算を行う処理を含む、ことを特徴とする計算機装置。
【請求項２】
請求項１に記載の計算機装置であって、
前記バックアップ手段有無フラグテーブルには、バックアップ手段有無情報と、プライマリ情報を有し、
前記バックアップ手段有無情報は、前記計算機装置に対する充電可能なバックアップ手段の接続有無を示し、
前記プライマリ情報は、前記制御プログラムを前記演算装置で実行する際に、前記第３の制御プログラムアドレステーブルにおいて前記第１の制御プログラムテーブルと、前記第２の制御プログラムテーブルのいずれかを選択するための情報を示す、ことを特徴とする計算機装置。
【請求項３】
請求項１または２に記載の計算機装置であって、
前記第１と第２の制御プログラムテーブルは、バックアップ周期と、制御プログラム用テーブルを有し、
前記バックアップ周期は、前記制御プログラムテーブルバックアップ処理機能が周期的に転写処理を行うためのバックアップ周期を示し、
前記制御プログラム用テーブルは、前記制御プログラム処理機能で使用するテーブルを示し、
前記制御プログラム処理機能が、前記制御プログラムアドレステーブルを参照し、各テーブルアドレスを取得することで参照可能となる、ことを特徴とする計算機装置。
【請求項４】
請求項１から３のいずれか１項に記載の計算機装置であって、
前記制御プログラムアドレステーブルは、プライマリ用テーブルと、セカンダリ用テーブルを有し、
前記プライマリ用テーブルは、前記制御プログラム処理機能が参照するアドレステーブルを示し、
前記セカンダリ用テーブルは、前記制御プログラムテーブルバックアップ処理機能が参照するアドレステーブルを示す、ことを特徴とする計算機装置。
【請求項５】
不揮発性メモリと揮発性メモリを含むメモリと、演算装置を備え、前記メモリの制御プログラムテーブルに記述された制御プログラムを前記演算装置で実行する計算機装置であって、
前記不揮発性メモリに第１の制御プログラムテーブルを、前記揮発性メモリに第２の制御プログラムテーブルを備え、
電源投入時に、充電可能なバックアップ手段の有無と第１と第２の制御プログラムテーブルのいずれを優先的に使用するかを確認し、充電可能なバックアップ手段の接続が無くかつ第２の制御プログラムテーブルを使用するときには第１の制御プログラムテーブルの内容を第２の制御プログラムテーブルに転写し、
第２の制御プログラムテーブルにより演算中は、定めた制御周期ごとに第２の制御プログラムテーブルの内容を第１の制御プログラムテーブルに転写していることを特徴とする計算機装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば上下水道プラント等の監視制御を行うプラント監視制御システムに使用される制御コントローラなどの計算機装置に関する。
【背景技術】
【０００２】
近年、プラント監視制御システムとして用いられる計算機は、メモリの大容量化が進み、加えてプロセッサの演算性能も向上してきたことから、大容量の演算プログラムを用いた高速演算が実現可能である。
【０００３】
中でも、ＰＬＣ（プログラマブルロジックコントローラ）をはじめとした制御コントローラは、１台で多数の制御機器の監視や操作を実現でき、プラントの維持保守の面から見ても、低コストかつ高効率化が進んできている。
【０００４】
本技術分野の背景技術として特許文献１がある。特許文献１では、充電可能なバックアップ手段と、揮発性の主メモリと、主メモリの初期パラメータをバックアップするための不揮発性のバックアップメモリを備えた制御コントローラにおいて、停電時間の長さによってバックアップメモリから主メモリへパラメータを転写する手段を提案している。
【０００５】
これにより特許文献１では、停電後にも継続して安定運転を実行することを可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−５３９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
然るに、特許文献１の手法を適用するには、充電可能なバックアップ手段を有する制御コントローラであることが前提条件としてある。このため、充電可能なバックアップ手段がない制御コントローラでは他の手段を検討しなければならない。また、充電可能なバックアップ手段としては一次電池や二次電池があるが、制御コントローラを設置する場所の環境によっては、これらの電池を接続できないことがあり、結果として不揮発性のメモリの有用性が低下する。
【０００８】
以上のことから、実際に制御コントローラを構成して納品するに当たり、充電可能なバックアップ手段の設置の有無に応じて、停電対策を変更し、あるいは制御コントローラの構成を工夫する必要があった。
【０００９】
本発明は係る課題を解決し、充電可能なバックアップ手段の有無に依存しない制御プログラムの実施手段を実現することができる計算機装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
以上のことから本発明においては、不揮発性メモリと揮発性メモリを含むメモリと、演算装置を備え、メモリの制御プログラムテーブルに記述された制御プログラムを演算装置で実行する計算機装置であって、不揮発性メモリに第１の制御プログラムテーブルを、揮発性メモリに第２の制御プログラムテーブルを備え、電源投入時に、充電可能なバックアップ手段の有無と第１と第２の制御プログラムテーブルのいずれを優先的に使用するかを確認し、充電可能なバックアップ手段の接続が無くかつ第２の制御プログラムテーブルを使用するときには第１の制御プログラムテーブルの内容を第２の制御プログラムテーブルに転写し、第２の制御プログラムテーブルにより演算中は、定めた制御周期ごとに第２の制御プログラムテーブルの内容を第１の制御プログラムテーブルに転写していることを特徴とする。
【発明の効果】
【００１１】
本発明により、計算機装置に対して長時間停電が生じた場合においても、制御に必要なデータをメモリ上に保持することが可能となる。加えて、充電可能なバックアップ手段を有した場合は、揮発性メモリの不揮発性メモリよりも高速にアクセスが可能である特徴を利用し、大容量の制御処理を実現できる。
【図面の簡単な説明】
【００１２】
【図１】本実施例に係る制御コントローラの内部構成を示したブロック図。
【図２】制御プログラムアドレステーブルの構成例を示す図。
【図３】バックアップ手段有無フラグ及び制御プログラムテーブル構成例を示す図。
【図４】バックアップ手段有無判定処理フローを示す図。
【図５】図４のフローによる判断結果を表形式にして示した図。
【図６】制御プログラムアドレステーブル格納処理フローを示す図。
【図７】制御プログラムテーブルバックアップ処理フローを示す図。
【発明を実施するための形態】
【００１３】
本発明の一実施例である計算機装置について、その一例である制御コントローラを例にとって図１から図６により説明する。
【実施例】
【００１４】
図１は、本実施例に係る制御コントローラの内部構成を示したブロック図である。
【００１５】
一般的な制御コントローラ１は、演算装置２とメモリ３などで構成されており、演算装置２がメモリ３を参照して各種演算を実行し、また適宜外部機器と制御情報の送信や受信を行う。
【００１６】
制御コントローラ１には、図示していないが制御電源が供給されている。また制御電源が喪失したときのバックアップとして充電可能なバックアップ手段Ｂａｔが接続されることがある。本発明では、充電可能なバックアップ手段Ｂａｔの有無にかかわらず停電後の対応が可能である点に特徴を有している。
【００１７】
メモリ３には、複数種別の記憶手段が備えられている。図示の例では、データの書換えや消去の処理速度は高速であるが、電源を切るとデータが消去される揮発性メモリ４、データの書換えや消去の処理速度は低速であるが、大容量かつ電源を切ってもデータが保存される不揮発性メモリ６、その他書き換え可能であり電源断してもデータが消えない半導体メモリであるフラッシュメモリ５などが使用されている。
【００１８】
このうち揮発性メモリ４としてはＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などが用いられる。不揮発性メモリ６としてはＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。フラッシュメモリ５はＥＥＰＲＯＭの一種である。
【００１９】
次に、図１のメモリ４における処理機能及び記憶内容を説明する。まず記憶内容は、データベースあるいはテーブルの形式（以下単にテーブルＴＢという）で保持されている。テーブルＴＢに記憶される内容は、ごく簡単に言うと制御プログラムと、制御プログラムのアドレスと、その他のフラグなどのデータである。
【００２０】
このうち制御プログラムは、揮発性メモリ４と不揮発性メモリ６のそれぞれに確保された制御プログラムテーブルＴＢ１、ＴＢ２に保持される。低速ではあるが大容量の不揮発性メモリ６の制御プログラムテーブルＴＢ１と、高速ではあるが小容量の揮発性メモリ４の制御プログラムテーブルＴＢ２には、基本的に同一内容のプログラムを保持している。
【００２１】
制御プログラムのアドレスに関して、コントローラ１での演算に使用するプログラムのアドレスを管理する制御プログラムアドレステーブルＴＢ１Ａ、ＴＢ２Ａが、揮発性メモリ４内に準備されている。制御プログラムアドレステーブルＴＢ１Ａは制御プログラムテーブルＴＢ１のアドレスを監視記憶し、制御プログラムアドレステーブルＴＢ２Ａは制御プログラムテーブルＴＢ２のアドレスを監視記憶している。
【００２２】
さらに制御プログラムのアドレスに関して、第３の制御プログラムアドレステーブルとしてＴＢ３Ａを揮発性メモリ４の内部に備えており、ここには２つの制御プログラムアドレステーブルＴＢ１Ａ、ＴＢ２Ａの記憶内容がプライマリとセカンダリのいずれかの領域にそれぞれ記憶される。
【００２３】
また揮発性メモリ４には、バックアップ手段の有無を表すフラグを記憶する領域としてバックアップ手段有無フラグテーブルＴＢ４が備えられている。
【００２４】
次に、図１のメモリ４における処理機能を説明する。メモリ３内に保持された上記の記憶内容を用いて、図示せぬメモリ制御装置により以下の処理機能が実施される。このための処理機能が、揮発性メモリ４内に、制御プログラムアドレステーブル格納処理機能ＰＲ１と、バックアップ手段有無判定処理機能ＰＲ２と、制御プログラムテーブルバックアップ処理機能ＰＲ３と、制御プログラム処理機能ＰＲ４として図示され、備えられている。
【００２５】
まず係る処理機能のうち、最初の制御プログラムアドレステーブル格納処理機能ＰＲ１は、バックアップ手段有無フラグテーブルＴＢ４を参照し、制御プログラムアドレステーブルＴＢ２Ａと制御プログラムアドレステーブルＴＢ１Ａの記憶内容を、制御プログラムアドレステーブルＴＢ３Ａに一方を第１優先（プライマリ）とし、他方を第２優先（セカンダリ）に位置付けたうえで格納する。
【００２６】
次にバックアップ手段有無判定処理機能ＰＲ２は、バックアップ手段有無フラグテーブルＴＢ４と、制御プログラムテーブルＴＢ２と、制御プログラムテーブルＴＢ１を参照して処理を実行する。
【００２７】
制御プログラムテーブルバックアップ処理機能ＰＲ３は、バックアップ手段有無フラグテーブルＴＢ４を参照し、制御プログラムテーブルＴＢ２のデータを制御プログラムテーブルＴＢ１に格納する。
【００２８】
制御プログラム処理機能ＰＲ４では、制御プログラムテーブルＴＢ２あるいは制御プログラムテーブルＴＢ１のアドレスが記載された制御プログラムアドレステーブルＴＢ３Ａを参照し、制御プログラムテーブルＴＢ２と制御プログラムテーブルＴＢ１］のいずれかのテーブルを参照して処理を実行する。
【００２９】
以下図面を参照してメモリ４における処理機能及び記憶内容を詳細に説明する。まず記憶内容について、図２と図３を用いて説明する。このうち図２は、図１の構成のうち、制御プログラムアドレステーブルＴＢ１Ａ、ＴＢ２Ａ、ＴＢ３Ａの具体的な構成（記憶内容と相互の関係）例を示している。
【００３０】
図２において、まず制御プログラムアドレステーブルＴＢ３Ａには、プライマリ用テーブルＴＢ３ＡＰとセカンダリ用テーブルＴＢ３ＡＳの２つのテーブルが準備されている。プライマリ用テーブルＴＢ３Ａでは、制御プログラムアドレス情報の記憶のために、テーブル１先頭アドレス６０ａからテーブルｎ先頭アドレス６０ｎのｎ個のテーブル先頭アドレスを備える。またセカンダリ用テーブル５１では、制御プログラムアドレス情報の記憶のために、テーブル２先頭アドレス６１ａからテーブルｎ先頭アドレス６１ｎのｎ個のテーブル先頭アドレスを備える。
【００３１】
他方、制御プログラムアドレステーブルＴＢ２Ａでは、制御プログラムアドレス情報の記憶のために、揮発性メモリ用テーブル１先頭アドレス７０ａから揮発性メモリ用テーブルｎ先頭アドレス７０ｎを備える。また制御プログラムアドレステーブルＴＢ１Ａでは、制御プログラムアドレス情報の記憶のために、不揮発性メモリ用テーブル１先頭アドレス７１ａから不揮発性メモリ用テーブルｎ先頭アドレス７１ｎを備える。
【００３２】
制御プログラムアドレステーブルＴＢ２Ａ、ＴＢ１Ａに保持された制御プログラムアドレス情報は、一方がプライマリ用テーブルＴＢ３ＡＰに記憶され、他方がセカンダリ用テーブルＴＢ３ＡＳに記憶される。いずれをプライマリ用テーブルＴＢ３ＡＰに記憶するのかは、後述するようにバックアップ手段有無フラグテーブルＴＢ４の記憶内容により定まる。
【００３３】
なお演算装置２が、演算実行に当たり参照するのはプライマリ用テーブルＴＢ３ＡＰに記述された制御プログラムアドレスであり、セカンダリ用テーブルＴＢ３ＡＳに記述された制御プログラムアドレスはバックアップ用として待機使用される。
【００３４】
次に図３には、図１の構成のうち、バックアップ手段有無フラグテーブルＴＢ４と、制御プログラムテーブルＴＢ２と、制御プログラムテーブルＴＢ１の記憶内容が図示されている。
【００３５】
図３のバックアップ手段有無フラグテーブルＴＢ４には、バックアップ手段有無１００とプライマリ情報１０１を備える。本実施例では、バックアップ手段有無１００に保有するデータとして、「０」ならば制御コントローラ１において充電可能なバックアップ手段Ｂａｔが接続されていない状態、「１」ならば制御コントローラ１において充電可能なバックアップ手段Ｂａｔが接続されている状態とする。なおここで、充電可能なバックアップ手段Ｂａｔが接続されている（いない）状態というのは、単に機械的な接続の有無を意味するものではなく、仮に充電可能なバックアップ手段Ｂａｔが接続されていたとしても、十分な充電容量を保持していない状態であればこれは接続されていないのと等価であるとされてもよい。このバックアップ手段有無１００には、常に最新の充電可能なバックアップ手段Ｂａｔの接続状態が保持されている。
【００３６】
プライマリ情報１０１に保有するデータが、「０」ならば揮発性メモリ４をプライマリ用メモリＴＢ３ＡＰとし、「１」ならば不揮発性メモリ６をプライマリ用メモリＴＢ３ＡＰとする。
【００３７】
他方、図３の２組の制御プログラムテーブルＴＢ１、ＴＢ２についてみると、制御プログラムテーブルＴＢ２では、バックアップ周期ＴＢ３Ａ０と、制御プログラム用テーブル１ａ（ＴＢ３Ａ１ａ）から制御プログラム用テーブルｎａ（ＴＢ３Ａ１ｎ）のｎ個のデータテーブルを備える。また制御プログラムテーブルＴＢ１においても制御プログラムテーブルＴＢ２と同様に、バックアップ周期１２０と、制御プログラム用テーブル１ｂ（１２１ａ）から制御プログラム用テーブルｎｂ（１２１ｎ）のｎ個のデータテーブルを少なくとも備える。
【００３８】
以上メモリ４における記憶内容を、図２、３を用いて説明した。次に図４、６、７を参照してメモリ４における処理機能を詳細に説明する。まず図４には、図１で示したバックアップ手段有無判定処理機能ＰＲ２の処理フローを示している。
【００３９】
図４の最初の処理である処理ステップＳ１５０では、制御コントローラ１の電源投入後、バックアップ手段有無判定処理機能ＰＲ２が１回目の動作か否かを判定する処理を行う。バックアップ手段有無判定処理機能ＰＲ２が既に動作していた場合は処理を終了し、バックアップ手段有無判定処理機能ＰＲ２が初回動作である場合は処理ステップＳ１５１へ移行する。
【００４０】
処理ステップＳ１５１では、図３のバックアップ手段有無判定処理フラグテーブルＴＢ４内のプライマリ情報１０１を参照し、これを条件とした判別処理を行う。ここには、プライマリ情報１０１として、「０」ならば揮発性メモリ４をプライマリ用メモリＴＢ３ＡＰとし、「１」ならば不揮発性メモリ６をプライマリ用メモリＴＢ３ＡＰとすることが記述されている。処理ステップＳ１５１での判定結果、プライマリ情報１０１が「０」の場合、処理ステップＳ１５４へ移行する。またプライマリ情報１０１が「１」の場合、処理ステップＳ１５２へ移行する。
【００４１】
プライマリ情報１０１が「１」であり、「不揮発性メモリ６をプライマリ用メモリＴＢ３ＡＰとする」状態であることが示された時の次の処理である処理ステップＳ１５２では、図３のバックアップ手段有無判定処フラグテーブルＴＢ４内のバックアップ手段有無１００を参照し、これを条件とした判別処理を行う。バックアップ手段有無１００には、制御コントローラ１において充電可能なバックアップ手段が接続されていない状態が「０」として記憶されており、制御コントローラ１において充電可能なバックアップ手段が接続されている状態が「１」として記憶されている。この判断では、バックアップ手段有無１００が「０」の場合、処理ステップＳ１５３へ移行する。またバックアップ手段有無１００が「１」の場合、処理ステップＳ１５４へ移行する。
【００４２】
処理ステップＳ１５３では、制御プログラムテーブルＴＢ２に対して、制御プログラムテーブルＴＢ１のデータを転写し、処理ステップＳ１５４へ移行する。処理ステップＳ１５４では、バックアップ手段有無１００を「１」に書換え、処理を終了する。
【００４３】
図５は、図４のフローによる判断結果を表形式にして示した図である。この図で縦方向には、処理ステップＳ１５０からＳ１５４の判断を横方向には判断結果を示している。この結果の表から明らかなように、図４の処理では初回起動時の処理を示しており、２回目以降は処理の対象としない。
【００４４】
初回の場合、最終的にバックアップ手段有無１００の設定は「１」とされるが、ここに至る過程で幾つかのケース分けがされる。プライマリ情報１０１が「０」の場合は、直接バックアップ手段有無１００の設定を「１」とする。この場合は不揮発性メモリ６内の制御プログラムテーブルＴＢ１を参照して演算するモードなので停電により制御プログラムは損傷せず確保されているので、バックアップ手段有としてもよい。
【００４５】
プライマリ情報１０１が「１」、かつバックアップ手段有無１００が「１」の場合は、バックアップ手段有無１００の設定を「１」とする。この場合は、揮発性メモリ４内の制御プログラムテーブルＴＢ２を参照して演算するモードであるが、事実上バックアップ手段Ｂａｔが接続されているので、バックアップ手段Ｂａｔの接続を再確認したという程度の意味合いである。
【００４６】
プライマリ情報１０１が「１」、かつバックアップ手段有無１００が「０」の場合は、揮発性メモリ４内の制御プログラムテーブルＴＢ２を参照して演算するモードであるが、バックアップ手段Ｂａｔが接続されていないので電源断中における制御プログラムテーブルＴＢ２内のデータ喪失が懸念される。そのため、不揮発性メモリ６内の制御プログラムテーブルＴＢ１の内容を揮発性メモリ４内の制御プログラムテーブルＴＢ２に転写してから、バックアップ手段有とする。
【００４７】
次に、図１に示した制御プログラムアドレステーブル格納処理機能ＰＲ１の具体的な処理内容について説明する。図６は制御プログラムアドレステーブル格納処理機能ＰＲ１における処理フローを示す。ここでは、プライマリ情報１０１に従って、制御プログラムアドレステーブルＴＢ３Ａ内のプライマリとセカンダリの領域に格納する制御プログラムアドレステーブルＴＢ１Ａ、ＴＢ２Ａを決定する。
【００４８】
最初の処理ステップＳ２００では、制御コントローラ１の電源投入後、制御プログラムアドレステーブル格納処理機能ＰＲ１が１回目の動作か否かを判定する処理を行う。制御プログラムアドレステーブル格納処理機能ＰＲ１が既に動作していた２回目以降の処理である場合は処理を終了する。
【００４９】
制御プログラムアドレステーブル格納処理機能ＰＲ１が初回動作である場合は処理ステップＳ２０１へ移行する。処理ステップＳ２０１では、図３のプライマリ情報１０１を条件とした判別処理を行う。プライマリ情報１０１が「１」の場合（揮発性メモリ４をプライマリ用メモリＴＢ３ＡＰとする）処理ステップＳ２０２へ移行し、プライマリ情報１０１が「０」の場合（不揮発性メモリ６をプライマリ用メモリＴＢ３ＡＰとする）処理ステップＳ２０４へ移行する。
【００５０】
揮発性メモリ４をプライマリ用メモリＴＢ３ＡＰとする仕様である時の処理ステップＳ２０２では、図２のプライマリ用テーブルＴＢ３ＡＰのテーブル１先頭アドレス６０ａからテーブルｎ先頭アドレス６０ｎの領域に、制御プログラムアドレステーブルＴＢ２Ａの揮発性メモリ用テーブル１先頭アドレス７０ａから揮発性メモリ用テーブルｎ先頭アドレス７０ｎの情報を格納し、処理ステップＳ２０３へ移行する。
【００５１】
続いて処理ステップＳ２０３では、セカンダリ用テーブルＴＢ３ＡＳのテーブル１先頭アドレス６１ａからテーブルｎ先頭アドレス６１ｎの領域に、制御プログラムアドレステーブルＴＢ１Ａの不揮発性メモリ用テーブル１先頭アドレス７１ａから不揮発性メモリ用テーブルｎ先頭アドレス７１ｎを格納し、処理を終了する。
【００５２】
不揮発性メモリ６をプライマリ用メモリＴＢ３ＡＰとする仕様である時の処理ステップＳ２０４では、プライマリ用テーブルＴＢ３ＡＰのテーブル１先頭アドレス６０ａからテーブルｎ先頭アドレス６０ｎの領域に、制御プログラムアドレステーブルＴＢ１Ａの不揮発性メモリ用テーブル１先頭アドレス７１ａから不揮発性メモリ用テーブルｎ先頭アドレス７１ｎを格納し、処理ステップＳ２０５へ移行する。
【００５３】
処理ステップＳ２０５では、セカンダリ用テーブルＴＢ３ＡＳのテーブル１先頭アドレス６１ａからテーブルｎ先頭アドレス６１ｎの領域に、制御プログラムアドレステーブルＴＢ１Ａの不揮発性メモリ用テーブル１先頭アドレス７１ａから不揮発性メモリ用テーブルｎ先頭アドレス７１ｎを格納し、処理を終了する。
【００５４】
以上述べた図４と図５のフローでの処理により、起動初回に以後の制御プログラムテーブルと、これに対応する制御プログラムアドレステーブルが選択されたことになる。
【００５５】
また充電可能なバックアップ手段Ｂａｔを有している場合は、揮発性メモリ４にてマッピングされた制御プログラムテーブルＴＢ２を用いて制御プログラム処理機能ＰＲ４が動作する。ここでは制御コントローラ１の電源が瞬断した場合においても、充電可能なバックアップ手段により制御プログラムテーブルＴＢ２にて格納されたデータは保存されたままとなる。従って、電源再投入後においても、制御プログラム処理機能ＰＲ４は電源が瞬断する直前の制御プログラムテーブルＴＢ２のデータを参照することが可能となり、揮発性メモリ４上にて処理を実行できる。
【００５６】
これに対し充電可能なバックアップ手段Ｂａｔが無い場合では、不揮発性メモリ６にてマッピングされた制御プログラムテーブルＴＢ１を用いて制御プログラム処理機能ＰＲ４が動作する。ここでは制御コントローラ１の電源が瞬断した場合においても、電源が無い環境下でデータが保存可能な不揮発性メモリ６の特性を利用して、制御プログラムテーブルＴＢ１は電源が瞬断する直前のデータを保存できる。従って、電源再投入後においても、制御プログラム処理機能ＰＲ４は電源が瞬断する直前の制御プログラムテーブルＴＢ１のデータを参照することが可能となり、不揮発性メモリ６上にて処理を実行できる。
【００５７】
次に、図１に示した制御プログラムテーブルバックアップ処理機能ＰＲ３における具体的な処理内容について図７を用いて説明する。図７は制御プログラムテーブルバックアップ処理機能ＰＲ３における具体的な処理内容を示すフローチャートである。ここでは、バックアップ手段有無フラグＴＢ４を参照し、制御プログラムテーブルＴＢ２のデータを制御プログラムテーブルＴＢ１に格納する。
【００５８】
制御プログラムテーブルバックアップ機能ＰＲ３における処理フローを示す図７における最初の処理ステップＳ２５０では、プライマリ情報１０１を条件とした判別処理を行う。プライマリ情報１０１が「０」の場合、処理を終了する。プライマリ情報１０１が「１」の場合、処理ステップＳ２５１へ移行する。
【００５９】
処理ステップＳ２５１では、バックアップ周期Ｔと、制御コントローラ１が有する制御周期ｔを参照し、処理ステップＳ２５２へ移行する。処理ステップＳ２５２では、バックアップ周期Ｔと、制御コントローラ１が有する制御周期ｔとを比較し、バックアップを行う周期か否かを判定する。この結果、バックアップを行う制御周期Ｔとなった場合は処理ステップＳ２５３へ移行し、バックアップは行わない制御周期であった場合は次の制御周期で処理ステップＳ２５２へ再度移行する。
【００６０】
処理ステップＳ２５３では、図３に示す制御プログラムテーブルＴＢ１の制御プログラム用テーブル１２１ａから制御プログラム用テーブル１２１ｎの領域に、制御プログラムテーブルＴＢ２の制御プログラム用テーブル１１ａから制御プログラム用テーブル１１ｎを格納し、処理を終了する。図３にはこのデータ移動を点線で示している。
【００６１】
本処理により、プライマリ用テーブルＴＢ３ＡＰに対して、制御プログラムアドレステーブルＴＢ２Ａが格納されていた際に、途中で充電可能なバックアップ手段が無くなってしまった場合においても、図４で示したバックアップ手段有無判定処理機能ＰＲ２と組合わせることにより、電源を停復電した後に、周期的にバックアップしていた制御プログラムテーブルＴＢ１を制御プログラムテーブルＴＢ２へ転写する事で、バックアップした周期のデータを用いて制御プログラム処理機能ＰＲ４を再開することができる。
【００６２】
最後に、制御プログラム処理機能ＰＲ４では、制御プログラムテーブルＴＢ２あるいは制御プログラムテーブルＴＢ１のアドレスが記載された制御プログラムアドレステーブルＴＢ３Ａを参照し、制御プログラムテーブルＴＢ２と制御プログラムテーブルＴＢ１のいずれかのテーブルを参照して処理を実行する。
【００６３】
上記処理を通して本発明の制御コントローラにおいては、制御プログラムが用いるプログラムテーブルのアドレスを記載したアドレステーブルを、揮発性のメモリに配置した場合と不揮発性のメモリに配置した場合の２通り定義し格納する。加えて充電可能なバックアップ手段の有無情報を備えることで、いずれかのアドレステーブルを決定し、制御プログラムを実行開始する。
【００６４】
そのうえで制御コントローラに充電可能なバックアップ手段が接続されていた場合は、揮発性のメモリをプライマリとし、不揮発性のメモリをセカンダリとして用い、プライマリのデータを定周期で転写する。制御コントローラの電源が長時間停電した場合は復電時にセカンダリからプライマリへデータを転写する。
【００６５】
制御コントローラに充電可能なバックアップ手段が接続されていない場合は、不揮発性のメモリをプライマリとし、プライマリのみで制御プログラムを実行する。
【符号の説明】
【００６６】
１：制御コントローラ
２：演算装置
３：メモリ
４：揮発性メモリ
５：フラッシュメモリ
６：不揮発性メモリ
ＰＲ１：制御プログラムアドレステーブル格納処理機能
ＰＲ２：バックアップ手段有無判定処理機能
ＰＲ３：制御プログラムテーブルバックアップ処理機能
ＰＲ４：制御プログラム処理機能
ＴＢ１Ａ、ＴＢ２Ａ、ＴＢ３Ａ：制御プログラムアドレステーブル
ＴＢ４：バックアップ手段有無フラグテーブル
ＴＢ１、ＴＢ２：制御プログラムテーブル
ＴＢ３ＡＰ：プライマリ用テーブル
ＴＢ３ＡＳ：セカンダリ用テーブル
６０ａ：テーブル１先頭アドレス
６０ｂ：テーブル２先頭アドレス
６０ｎ：テーブルｎ先頭アドレス
６１ａ：テーブル１先頭アドレス
６１ｂ：テーブル２先頭アドレス
６１ｎ：テーブルｎ先頭アドレス
７０ａ：揮発性メモリ用テーブル１先頭アドレス
７０ｂ：揮発性メモリ用テーブル２先頭アドレス
７０ｎ：揮発性メモリ用テーブルｎ先頭アドレス
７１ａ：不揮発性メモリ用テーブル１先頭アドレス
７１ｂ：不揮発性メモリ用テーブル２先頭アドレス
７１ｎ：不揮発性メモリ用テーブルｎ先頭アドレス
１００：バックアップ手段有無
１０１：プライマリ情報
１１０、１２０：バックアップ周期
１１１ａ：制御プログラム用テーブル１ａ
１１１ｂ：制御プログラム用テーブル２ａ
１１１ｎ：制御プログラム用テーブルｎａ
１２１ａ：制御プログラム用テーブル１ｂ
１２１ｂ：制御プログラム用テーブル２ｂ
１２１ｎ：制御プログラム用テーブルｎｂ
【図１】
2015170077.tif 000003
【図２】
2015170077.tif 000004
【図３】
2015170077.tif 000005
【図４】
2015170077.tif 000006
【図５】
2015170077.tif 000007
【図６】
2015170077.tif 000008
【図７】
2015170077.tif 000009