(57)【特許請求の範囲】
【請求項１】
シーケンス制御の終了時においてデータを保持する保持エリアを持つデータメモリと、
前記データメモリの保持エリアに保存されたデータを保存するための不揮発性の補助記憶手段と、
前記データメモリ中のどの保持エリアのデータを補助記憶手段に保存するかの情報を格納する保持エリア情報テーブルと、
データメモリの保持エリアのデータを読み書きし、ユーザプログラムを実行してシーケンス制御を行うともに、前記保持エリア情報テーブルを参照して、シーケンス制御装置の終了時に前記データメモリの保持エリアに保持されたデータを前記補助記憶手段に書き込み、シーケンス制御装置の起動時に前記補助記憶手段に保存されているデータを読み出して前記データメモリの保持エリアのメモリに書き込むランタイムエンジンと、を具備し、
前記ランタイムエンジンは、
保持エリアのデータの初期化処理のための保持エリア初期化プログラムを実行することにより、
ユーザプログラムのダウンロードが行われてシーケンス制御を起動する場合には、データメモリの保持エリアのデータを初期値に初期化し、
オンラインエディットの実行時に、保持エリアに変数のデータが追加された場合には、新たに追加された変数のデータのみを初期値に初期化する、
ことを特徴とするシーケンス制御装置。
【請求項２】
前記ランタイムエンジンは、ユーザプログラムのダウンロードが行われる際に、前記補助記憶手段に保存されている前回終了時のデータを削除することを特徴とする請求項１に記載のシーケンス制御装置。
【請求項３】
前記ランタイムエンジンが前記保持エリア情報テーブルを参照して、シーケンス制御装置の終了時に前記データメモリの保持エリアに保持されたデータを前記補助記憶手段に書き込む処理は、ランタイムエンジンが初期化プログラムを実行することにより行われるものであることを特徴とする請求項１に記載のシーケンス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、保持エリアを有していて、システム終了時に保持エリアのデータが補助記憶手段に格納され、システム開始時に補助記憶手段から保持エリアにデータが読み込まれるように構成したシーケンス制御装置、同装置における保持エリアの保全方法、並びに、同方法を実行するためのコンピュータプログラムを格納した記録媒体に関する。
【０００２】
【従来の技術】
シーケンス制御装置（ＰＬＣ：Programable Logic Controller等とも称する）におけるシステムの起動時においては、システムの終了時における保持エリアのメモリに格納されたデータに基づいて制御動作が実行される。
【０００３】
このシーケンス制御装置に用いられる保持エリアを構成する記録媒体としては、不揮発性メモリを用いたもの、或いは揮発性メモリに電池によるバックアップ電源を併用したものが知られている。
【０００４】
前記不揮発性メモリ、或いは揮発性メモリに電池によるバックアップ電源を併用した構成によると、シーケンス制御装置の動作電源を遮断した場合においても、前記メモリに構築された保持エリアにおけるデータは保全され、システムの起動時において、これを利用することができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来における保持エリアを構築する不揮発性メモリは、その価格が非常に高く、装置のコストを上昇させるという問題を抱えている。
【０００６】
また、揮発性メモリに電池によるバックアップ電源を併用した構成によると、バックアップ電源としての電池を定期的に交換しなければならず、保守管理上において難点を有している。
【０００７】
また、いわゆるパソコンを用いてシーケンス制御装置を構築する場合においては、専用のボードを追加しなければならず、保持エリアのサイズを自由に設定することも困難であった。
【０００８】
本発明は、上述した従来の問題点に着目してなされたものであり、その目的するところは、例えばパソコンやワークステーション等に備えられているハードディスクなどの記憶装置を利用し、システムの起動時において保持エリアを構築できるようにしたシーケンス制御装置、同装置における保持エリアの保全方法、並びに、同方法を実行するためのコンピュータプログラムを格納した記録媒体を提供することにある。
【０００９】
【課題を解決するための手段】
この出願に係る発明は、シーケンス制御の終了時においてデータを保持する保持エリアを持つデータメモリと、前記データメモリの保持エリアに保存されたデータを保存するための不揮発性の補助記憶手段と、前記データメモリ中のどの保持エリアのデータを補助記憶手段に保存するかの情報を格納する保持エリア情報テーブルと、データメモリの保持エリアのデータを読み書きし、ユーザプログラムを実行してシーケンス制御を行うともに、前記保持エリア情報テーブルを参照して、シーケンス制御装置の終了時に前記データメモリの保持エリアに保持されたデータを前記補助記憶手段に書き込み、シーケンス制御装置の起動時に前記補助記憶手段に保存されているデータを読み出して前記データメモリの保持エリアのメモリに書き込むランタイムエンジンと、を具備し、前記ランタイムエンジンは、保持エリアのデータの初期化処理のための保持エリア初期化プログラムを実行することにより、ユーザプログラムのダウンロードが行われてシーケンス制御を起動する場合には、データメモリの保持エリアのデータを初期値に初期化し、オンラインエディットの実行時に、保持エリアに変数のデータが追加された場合には、新たに追加された変数のデータのみを初期値に初期化する、ことを特徴とするシーケンス制御装置にある。
【００１０】
本発明の好ましい実施の形態においては、前記ランタイムエンジンは、ユーザプログラムのダウンロードが行われる際に、前記補助記憶手段に保存されている前回終了時のデータを削除するようにしてもよい。
【００１１】
さらに、本発明の好ましい実施の形態においては、前記ランタイムエンジンが前記保持エリア情報テーブルを参照して、シーケンス制御装置の終了時に前記データメモリの保持エリアに保持されたデータを前記補助記憶手段に書き込む処理は、ランタイムエンジンが初期化プログラムを実行することにより行われるようにしてもよい。
【００１２】
以上の構成を採用することで、シーケンス制御装置の終了時において保持エリアに格納されているデータは、補助記憶手段に書き込まれ、シーケンス制御装置の起動時には補助記憶手段に保存されているデータがランタイムエンジンによって読み出され、前記保持エリアのメモリに書き込まれる。
【００１３】
この場合、保持エリア情報テーブルに、データメモリ中のどの保持エリアのデータを補助記憶手段に保存するかの情報が格納されていれば、ランタイムエンジンはこのテーブルに格納された情報に基づいて、保持エリアをアクセスし、保持エリアにおけるデータを補助記憶装置に対して書き込む操作、ならびに補助記憶装置から読み出したデータを保持エリアに書き込む操作を実行することができる。
【００１４】
また、保持エリアに割り当てられた変数を初期化する保持エリア初期化プログラムを利用することで、保持エリアに割り当てられた変数に初期値を設定することができ、前回システムを終了した時点の保持エリアのデータが保存されているので、初期化処理によって保持エリアのデータを、前回システムを終了した時点のデータに戻すことができる。また、オンラインエディットにおいても保持エリアに初期値を設定した変数を追加することができ、追加された変数のみを初期化することができる。
【００１５】
さらに、ユーザプログラムのダウンロードが行われる際に、補助記憶手段に保存されている前回終了時のデータを削除することにより、新たにダウンロードしたユーザプログラムに処理に適したデータを保持エリアに作成することができる。
【００１６】
加えて、シーケンス制御装置の終了時に、前記データメモリの保持エリアに保持されたデータを補助記憶手段に書き込む処理が初期化プログラムの実行時に行われることにより、ランタイムエンジンは、初期化処理によって保持エリアのデータを前回システムが終了した時点のデータに戻すことができる。
【００１７】
【発明の実施の形態】
以下に、本発明の好適な実施の一形態を添付図面に従って詳細に説明する。図１は、本発明にかかるシーケンス制御装置のシステム構成をブロック図によって示したものである。
同図において、符号１はランタイムエンジンを示し、このランタイムエンジン１を中心としてデータメモリ２、補助記憶手段としての補助記憶装置３、および保持エリア情報テーブル４の間において、データの授受がなされるように構成されている。
【００１８】
データメモリ２には保持エリア２Ａが定義されており、この保持エリア２Ａは、シーケンス制御装置を終了させた後も格納されているデータの内容を保持し続け、再度シーケンス制御装置を起動したときには、前回終了時の値で起動される。
【００１９】
また、補助記憶装置３は不揮発性のデータ記録媒体、好ましくは、パソコンやワークステーション等に具備されているハードディスクにより構成され、シーケンス制御装置を終了する際に、保持エリア２Ａにおけるデータが補助記憶装置３に書込まれる。また、シーケンス制御装置を起動する際には、補助記憶装置３に書き込まれているデータが前記保持エリア２Ａに書込まれる。
【００２０】
そして、ランタイムエンジン１は、シーケンス制御装置中で論理演算を行う機能を持ち、この実施の形態においては、シーケンス制御装置の起動時において補助記憶装置３に格納されているデータを読み出して前記保持エリア２Ａに書き込む機能を有し、また装置の終了時に、前記保持エリア２Ａに格納されているデータを読み出して補助記憶装置３に書き込む機能を有している。
【００２１】
また、保持エリア情報テーブル４には、前記データメモリ２における保持エリア２Ａの開始アドレス、および保持エリア２Ａのサイズが格納されている。そして、前記ランタイムエンジン１は、このテーブル４に格納された情報に基づいて、保持エリア２Ａをアクセスし、保持エリア２Ａにおけるデータを前記補助記憶装置３に対して書き込む操作、ならびに補助記憶装置３から読み出したデータを保持エリア２Ａに書き込む操作を実行する。
【００２２】
また、ランタイムエンジン１には、保持エリア初期化プログラムＰが搭載されており、この初期化プログラムＰは、保持エリア２Ａに割付けられた変数の内、初期値が設定されているものについて初期化処理を行う機能を有している。そして、この初期化プログラムＰには、シーケンス制御装置の起動時のためのものと、オンラインエディット用のものとの２つのプログラムが用意されている。
【００２３】
次に図２は、図１に示されたシステムの起動から終了までにおいて、主にランタイムエンジンによってなされる保持エリアの保全方法について示したフローチャートであり、また図３に示すフローチャートは図２に示すシステムの初期処理においてなされる保持エリアへのデータの書き込み処理について示している。
【００２４】
図２において、ステップ２０１に示すユーザプログラムのダウンロード処理は、新たにプログラムを作成した場合や、プログラムを変更した場合に必要であるが、そうでない場合は省略される。この場合、ダウンロードを行うか行わないかは、ツールで指定する。
【００２５】
そして、ステップ２０２においては、システムの初期処理が実行される。この初期処理のステップにおいて、ランタイムエンジン１は図３に示す手順を経て、補助記憶装置３に保存されているデータを保持エリア２Ａに書き込む。
【００２６】
すなわち図３に示すステップ３０１において、まずデータメモリ２における保持エリア２Ａを含むデータがクリアされる。続いてステップ３０２において、保持エリア初期化プログラムＰによって、前記データメモリ２（保持エリア２Ａも含む）に初期値が設定される。そして、ステップ３０３に移り、補助記憶装置３に保存されているデータがあるか否かが判定される。
【００２７】
前記ステップ３０３において、補助記憶装置３にデータが書き込まれていないと判定されると、図２に示す次のステップ２０３に移行する。ステップ３０３において、補助記憶装置３にデータが書き込まれていると判定されると、ステップ３０４において、補助記憶装置３に書き込まれていたデータが読み出され、そのデータは保持エリア２Ａのメモリに書き込まれ、図２におけるステップ２０３に移行する。
【００２８】
以上の手順を踏んでシステムの初期処理がなされると、図２に示すステップ２０３において、シーケンス処理プログラムが実行される。そして、ステップ２０３においてシーケンス処理プログラムの実行が終了したが否かが判定され、ステップ２０４において終了したと判定されると、ステップ２０５においてシステムの終了処理が実行される。
【００２９】
すなわち、ステップ２０５においてランタイムエンジン１は、前記保持エリア情報テーブル４を参照し、データメモリ２における保持エリア２Ａの該当アドレスから保持エリアのデータを読み出す。そして、保持エリア２Ａから読み出されたデータを、補助記憶装置３に書き込む。
【００３０】
このようにして、システム終了時に保持エリアのデータは補助記憶装置に書き込まれ、またシステム開始時には前記したように補助記憶装置に格納されているデータは保持エリアに書き込まれ、保持エリアの保全がなされる。
【００３１】
なお、前記した保持エリア２Ａは、ユーザプログラムに対応したものである。したがって、ユーザプログラムを変更した際には、補助記憶装置３に保存されている保持エリアのデータは削除しなければならない。この削除処理は、ユーザプログラムをランタイムエンジン１にダウンロードする際に行なわれる。
【００３２】
また、保持エリア情報テーブル４は、前記したように保持エリア２Ａのアドレスとサイズを記述したものである。この内容はツ一ル側にて設定し、ユーザプログラムとともにランタイムにダウンロードされる。この設定内容を変更することで、保持エリアを変更することができる。
【００３３】
また、保持エリアに割り当てられた変数に初期値が設定されている場合はその初期値を、設定されていない場合はＩＥＣ１１３１−３で規定されたデフォルトの初期値に初期化する。初期化処理は初期化用のプログラムＰをランタイムエンジン１が実行することにより行われる。
【００３４】
そして、前記したようにユーザプログラムをダウンロードする際に、補助記憶装置３に保存されているデータは削除されるので、保持エリア２Ａの値は、
（１）ダウンロードを行って起動するときには、変数に割り当てられた初期値
（２）ダウンロードを行わずに起動するときは、前回システムを終了した際の値に初期化される。
【００３５】
また、初期化処理は、図２に示したシステムの初期処理タイミング以外にも、ツールからの操作で可能である。補助記憶装置３には前回システムを終了した時点の保持エリア２Ａのデータが保存されているので、初期化処理によって保持エリア２Ａのデータを、前回システムを終了した時点のデータに戻すことができる。
【００３６】
この機能は、ユーザプログラムのデバッグの際に便利な機能であるが、従来の不揮発性メモリや電池によるメモリバックアップでは、このような操作は不可能であり、これは補助記憶装置３を使うことで実現可能となる。
【００３７】
なお、図２に示すシーケンスプログラムを実行するステップ（ステップ２０３）において、プログラムを変更する処理をオンラインエディットと称呼されるが、オンラインエディットで新たに保持エリアの変数を追加した場合、新たに追加されたものの初期化プログラムによって初期値が設定される。
【００３８】
オンラインエディット時には、ツールで初期化プログラムを生成するが、以下の２種類のものを生成する。
【００３９】
（Ａ）オンラインエディットで追加された変数のみの初期化プログラム
（Ｂ）初期値が設定されているすべての変数についての初期化プログラム
前記（Ａ）は、オンラインエディット時に実行され、また（Ｂ）は、一旦システムを終了後、再度起動したときに実行される。
【００４０】
このようにすることで、オンラインエディット時には、追加された変数のみが初期化され、それ以外は以前の値を引き継ぐことが可能となる。また、次回にシステムを起動したとき、あるいはプログラムをダウンロードした際に、適切に初期値が設定される。
【００４１】
なお以上の構成によると、製造情報などを保持エリアに割り付けておき、補助記憶に保存された保持エリアのデータを別のユニークな名前のファイルに保存しておくことにより、システム終了時の製造情報などを履歴として残すことができ、製造情報として他のアプリケーションにおいて有効に利用することができる。
【００４２】
また、補助記憶装置に保存されているデータにシーケンス処理プログラムに対応する識別情報を持たせ、システムの初期化の際にチェックすることで、なんらかの原因でプログラムと補助記憶装置に保存されたデータとの対応がとれなくなった場合に、エラー処理を行うことができる。
【００４３】
以上は、シーケンス制御装置のシステム構成および同装置に用いられる保持エリアの保全方法について説明したが、保持エリアの保全ステップを実行するプログラムを格納した読み取り可能な記録媒体、例えばＣＤ−ＲＯＭを購入することで、または通信ネットワークを介して同様のプログラムを取得することもでき、これにより前記した保持エリアの保全方法を容易に再現し、実行することができる。
【００４４】
【発明の効果】
以上の説明で明らかなとおり、本発明によれば、保持エリアにおけるデータを保存するための補助記憶手段を備え、保持エリアにおけるデータを補助記憶装置に対して書き込む操作、ならびに補助記憶装置から読み出したデータを保持エリアに書き込む操作を実行することが可能なシーケンス制御装置を構築するできる。
【００４５】
さらに保持エリアに割り当てられた変数を初期化する保持エリア初期化プログラムを利用することで、保持エリアに割り当てられた変数に初期値を設定することができ、前回システムを終了した時点の保持エリアのデータが保存されているので、初期化処理によって保持エリアのデータを、前回システムを終了した時点のデータに戻すことができる。また、オンラインエディットにおいても保持エリアに初期値を設定した変数を追加することができ、追加された変数のみを初期化することができる。
【図面の簡単な説明】
【図１】  本発明にかかるシーケンス制御装置のシステム構成を示したブロック図である。
【図２】  図１に示されたシステムの起動から終了までにおいてなされる保持エリアの保全方法について示したフローチャートである。
【図３】  図２に示すシステムの初期処理においてなされる保持エリアへのデータの書き込み処理について示したフローチャートである。
【符号の説明】
１      ランタイムエンジン
２      データメモリ
２Ａ    保持エリア
３      補助記憶装置
４      保持エリア情報テーブル
Ｐ      保持エリア初期化プログラム
【図１】
0003835508.tif 000002
【図２】
0003835508.tif 000003
【図３】
0003835508.tif 000004