(57)【特許請求の範囲】
【請求項１】
記憶手段に格納されたユーザプログラムを繰り返し実行して、デバイスを制御するデバイス制御手段と、上記ユーザプログラムを繰り返し実行する合間に、上記ユーザプログラムを外部機器からの指示に応じて変更するオンラインエディット手段とを有する制御装置において、
上記記憶手段は、書き換え可能な不揮発性メモリと、当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを備え、
上記オンラインエディット手段は、上記揮発性メモリに格納されたユーザプログラムを変更すると共に、上記揮発性メモリに格納されたユーザプログラムを、上記不揮発性メモリに格納する書き込み手段と、
上記揮発性メモリがユーザプログラムを正常に保持できなかった場合、上記不揮発性メモリからユーザプログラムを読み込む読み込み制御手段とを備え、
上記揮発性メモリの少なくとも一部は、バッテリバックアップされており、上記デバイス制御手段は、ユーザプログラムを展開したインストラクションリストを上記揮発性メモリに格納し、当該インストラクションリストを実行すると共に、
上記オンラインエディット手段は、オンラインエディット中、上記インストラクションリストを変更すると共に、オンラインエディット終了後、上記外部機器から、インストラクションリストに展開する前のユーザプログラムを受け取り、上記揮発性メモリのうち、バッテリバックアップされた領域に格納することを特徴とする制御装置。
【請求項２】
上記読み込み制御手段は、バッテリ切れが発生したか否かを識別するために、上記揮発メモリがバッテリバックアップされている間保持されるテキストを照合することを特徴とする請求項１記載の制御装置。
【請求項３】
上記オンラインエディット手段が上記揮発性メモリのユーザプログラムを変更した場合、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する報知手段を備え、
上記書き込み手段は、使用者からの指示に応じて、上記不揮発性メモリへユーザプログラムを書き込むことを特徴とする請求項１または２記載の制御装置。
【請求項４】
上記読み込み制御手段は、上記揮発性メモリのユーザプログラムと上記不揮発性メモリのユーザプログラムとを比較し、上記揮発性メモリのユーザプログラムと上記不揮発性メモリのユーザプログラムとが一致していない場合、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する報知手段を備え、上記書き込み手段は、使用者からの指示に応じて、上記不揮発性メモリへユーザプログラムを書き込むことを特徴とする請求項１または２記載の制御装置。
【請求項５】
上記デバイス制御手段がユーザプログラムを繰り返し実行する合間に、デバイスの状態に応じて、表示画面を更新する表示手段と、
オンラインエディットする場合、上記表示手段による表示更新処理よりも優先して、上記オンラインエディット手段にユーザプログラムを変更させる実行制御手段とを備えていることを特徴とする請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
書き換え可能な不揮発性メモリと、当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを有し、外部機器と通信可能なコンピュータを制御装置として動作させるためのプログラムが記録された記録媒体であって、
上記揮発性メモリに格納されたユーザプログラムを繰り返し実行して制御対象となるデバイスを制御する合間に、上記外部機器からの指示に応じて、当該揮発性メモリのユーザプログラムを変更するオンラインエディット手段、
上記揮発性メモリに格納されたユーザプログラムを上記不揮発性メモリに格納する書き込み手段、並びに、
上記揮発性メモリがユーザプログラムを正常に保持できなかった場合、上記不揮発性メモリからユーザプログラムを読み込む読み込み制御手段として、上記コンピュータを動作させるプログラムが記録され、
上記揮発性メモリの少なくとも一部は、バッテリバックアップされており、上記デバイス制御手段は、ユーザプログラムを展開したインストラクションリストを上記揮発性メモリに格納し、当該インストラクションリストを実行すると共に、
上記オンラインエディット手段は、オンラインエディット中、上記インストラクションリストを変更すると共に、オンラインエディット終了後、上記外部機器から、インストラクションリストに展開する前のユーザプログラムを受け取り、上記揮発性メモリのうち、バッテリバックアップされた領域に格納する記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、ラダープログラムなど、予め格納されたユーザプログラムに基づいて、デバイスを制御する制御装置に関し、特に、ユーザプログラムの安全な保持と、制御中のプログラム変更とを両立可能な制御装置に関するものである。
【０００２】
【従来の技術】
従来から、制御システムでは、ターゲットシステムのデバイスを制御するために、プログラム式の制御装置が広く使用されている。これらの制御装置では、例えば、制御装置の設置時やターゲットシステムの運転休止中など、制御装置がデバイスの制御を停止している間に、例えば、制御装置のメンテナンスポートなどに接続されるコンピュータから、デバイスの制御内容を示すラダープログラムがダウンロードされる。さらに、制御装置は、通常運転中、自機器に格納されたラダープログラムを繰り返し実行して、各デバイスを制御する。
【０００３】
また、例えば、上記制御装置に接続するデバイスを変更する場合など、ラダープログラムを大幅に変更する必要がある場合、上記制御装置は、通常運転を中断し、メンテナンスポートに再び接続されたコンピュータから、新たなラダープログラムをダウンロードする。
【０００４】
ここで、制御システムでは、動作停止が事故や業績の悪化に直結するため、ＯＡ機器などに比べて、常時運転することが強く求められている。したがって、近年では、オンラインエディット機能を有し、僅かな変更であれば、ラダープログラムを繰り返し実行する合間に、ラダープログラムの一部を変更可能な制御装置も用いられつつある。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記オンラインエディット機能を有する制御装置では、オンラインエディットの際、高速にラダープログラムを書き換えるために、ラダープログラムがＳＲＡＭ（Static RAM）に格納されている。したがって、当該ＳＲＡＭをバッテリバックアップしたとしても、長時間の停電などの事故によりバッテリ切れが発生すると、ラダープログラムを再度ダウンロードする必要があり、事故からの復旧に時間と手間とを要するという問題を生ずる。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ラダープログラムなどのユーザプログラムをオンラインエディットできるにも拘らず、ユーザプログラムを安全かつ確実に保持可能な制御装置を実現することにある。
【０００７】
【課題を解決するための手段】
請求項１の発明に係る制御装置は、上記課題を解決するために、記憶手段に格納されたユーザプログラムを繰り返し実行して、デバイスを制御するデバイス制御手段と、上記ユーザプログラムを繰り返し実行する合間に、上記ユーザプログラムを外部機器からの指示に応じて変更するオンラインエディット手段とを有する制御装置において、以下の手段を講じたことを特徴としている。
【０００８】
すなわち、上記記憶手段は、書き換え可能な不揮発性メモリと、当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを備えている。また、上記オンラインエディット手段は、上記揮発性メモリに格納されたユーザプログラムを変更する。さらに、制御装置には、上記揮発性メモリに格納されたユーザプログラムを、上記不揮発性メモリに格納する書き込み手段と、上記揮発性メモリがユーザプログラムを正常に保持できなかった場合、上記不揮発性メモリからユーザプログラムを読み込む読み込み制御手段とが設けられている。
【０００９】
上記構成において、オンラインエディット手段は、記憶手段のうち、不揮発性メモリよりも書き込み速度の速い揮発性メモリに格納されたユーザプログラムを変更する。これにより、オンラインエディット中のように、頻繁に、ユーザプログラムが変更される場合であっても、制御装置は、何ら支障なく、ユーザプログラムの実行を終了してから次にユーザプログラムの実行を開始するまでの間に、ユーザプログラムを変更できる。
【００１０】
さらに、オンラインエディットが終了すると、例えば、使用者の指示などに応じて、書き込み手段は、揮発性メモリに格納されたユーザプログラムを、不揮発性メモリにも格納する。一方、例えば、停電した場合や、揮発性メモリがバッテリバックアップされていてもバッテリが切れた場合など、揮発性メモリがユーザプログラムを保持できなかったとき、読み込み制御手段は、上記不揮発性メモリからユーザプログラムを読み込む。これにより、揮発性メモリがユーザプログラムを保持できなかった場合でも、制御装置は、外部機器と通信することなく、上記不揮発性メモリのユーザプログラムに基づいて、何ら支障なく、デバイスの制御を開始できる。
【００１１】
これらの結果、ユーザプログラムをオンラインエディットできるにも拘らず、停電やバッテリ切れなどの事故が発生しても、安全かつに確実にユーザプログラムを保持でき、上記事故が発生する度に外部機器からユーザプログラムをダウンロードする従来技術に比べて、事故から復旧する際の時間と手間とを削減できる。
【００１２】
また、請求項１の発明に係る制御装置は、さらに、上記揮発性メモリの少なくとも一部は、バッテリバックアップされており、上記デバイス制御手段は、ユーザプログラムを展開したインストラクションリストを上記揮発性メモリに格納し、当該インストラクションリストを実行すると共に、上記オンラインエディット手段は、オンラインエディット中、上記インストラクションリストを変更すると共に、オンラインエディット終了後、上記外部機器から、インストラクションリストに展開する前のユーザプログラムを受け取り、上記揮発性メモリのうち、バッテリバックアップされた領域に格納することを特徴としている。
【００１３】
上記構成では、オンラインエディット中、オンラインエディット手段は、インストラクションリストを変更しているので、展開前のユーザプログラムを更新した後、再度、インストラクションリストに展開する場合よりも、変更時の演算量を削減できる。また、オンラインエディットが終了すると、外部機器から、展開前のユーザプログラムを受け取って揮発性メモリに格納するので、インストラクションリストから、展開前のユーザプログラムを復元するよりも、少ない演算量で確実にユーザプログラムを揮発性メモリに格納できる。これらの結果、制御装置に負担をかけることなく、オンラインエディットできる。
【００１４】
さらに、揮発性メモリのうち、展開前のユーザプログラムを格納する領域がバッテリバックアップされているので、書き込み手段が不揮発性メモリへユーザプログラムを書き込んでいる最中に停電したとしても、ユーザプログラムを保持できる。この結果、再度、不揮発性メモリへの格納を試みることができ、より安全にユーザプログラムを保持できる。
【００１５】
また、請求項２の発明に係る制御装置は、請求項１の発明の構成において、上記読み込み制御手段は、バッテリ切れが発生したか否かを識別するために、上記揮発メモリがバッテリバックアップされている間保持されるテキストを照合することを特徴としている。
【００１６】
また、請求項３の発明に係る制御装置は、請求項１または２記載の発明の構成において、上記オンラインエディット手段が上記揮発性メモリのユーザプログラムを変更した場合、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する報知手段を備え、上記書き込み手段は、使用者からの指示に応じて、上記不揮発性メモリへユーザプログラムを書き込むことを特徴としている。
【００１７】
上記報知手段は、オンラインエディット手段が揮発性メモリのユーザプログラムを変更して、上記不揮発性メモリのユーザプログラムと揮発性メモリのユーザプログラムとが一致しない場合、例えば、画面に表示したり、音声で通知するなどして、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する。一方、デバイスの制御や表示に支障がでないときなどに、使用者が書き込みを指示すると、書き込み手段は、揮発性メモリのユーザプログラムを不揮発性メモリに書き込んで、不揮発性メモリの内容を更新する。この結果、制御装置の使用者が希望した時点で不揮発性メモリの内容を更新できるにも拘らず、更新のし忘れを防止できる。
【００１８】
なお、制御装置がデバイスの状態を表示する機能と使用者からの制御指示を受け取る機能とを有し、ＨＭＩ（Human-Machine Interface）装置としても使用される場合、使用者が指示している最中に、自動的に不揮発性メモリの内容を更新すると、内容更新処理によって、使用者の指示に対する応答時間が遅くなったり、応答できなくなる虞れがある。したがって、特に、ＨＭＩ装置としても使用する場合、書き込み手段は、使用者からの指示に応じて不揮発性メモリの内容を更新する方が望ましい。
【００１９】
さらに、請求項４の発明に係る制御装置は、請求項１または２記載の発明の構成において、上記読み込み制御手段は、上記揮発性メモリのユーザプログラムと上記不揮発性メモリのユーザプログラムとを比較し、上記揮発性メモリのユーザプログラムと上記不揮発性メモリのユーザプログラムとが一致していない場合、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する報知手段を備え、上記書き込み手段は、使用者からの指示に応じて、上記不揮発性メモリへユーザプログラムを書き込むことを特徴としている。
【００２０】
さらに、請求項５の発明に係る制御装置は、請求項１〜４のいずれか１項に記載の発明の構成において、上記デバイス制御手段がユーザプログラムを繰り返し実行する合間に、デバイスの状態に応じて、表示画面を更新する表示手段と、オンラインエディットする場合、上記表示手段による表示更新処理よりも優先して、上記オンラインエディット手段にユーザプログラムを変更させる実行制御手段とを備えていることを特徴としている。
【００２１】
上記構成では、制御装置が表示手段を備えているので、デバイス制御手段がユーザプログラムを繰り返し実行する合間には、当該表示手段が画面を更新するための期間が設けられている。ここで、実行制御手段は、オンラインエディットの際、例えば、表示更新処理の一部または全部を停止させるなどして、表示更新処理よりも優先的にユーザプログラムを変更させる。したがって、表示手段を持たず、通常は、ユーザプログラムの実行が終了すると同時に、ユーザプログラムの次のサイクルを実行し、オンラインエディット中は、ユーザプログラムの実行と、ユーザプログラムの変更とを交互に実行する構成、あるいは、表示手段が表示更新処理を全て実行した後、ユーザプログラムを変更する構成に比べて、ユーザプログラムの実行周期を余り変化させずに、オンラインエディットできる。
【００２２】
一方、請求項６の発明に係る記録媒体は、書き換え可能な不揮発性メモリと、当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを有し、外部機器と通信可能なコンピュータを制御装置として動作させるためのプログラムが記録された記録媒体であって、上記課題を解決するために、上記揮発性メモリに格納されたユーザプログラムを繰り返し実行して制御対象となるデバイスを制御する合間に、上記外部機器からの指示に応じて、当該揮発性メモリのユーザプログラムを変更するオンラインエディット手段、上記揮発性メモリに格納されたユーザプログラムを上記不揮発性メモリに格納する書き込み手段、並びに、上記揮発性メモリがユーザプログラムを正常に保持できなかった場合、上記不揮発性メモリからユーザプログラムを読み込む読み込み制御手段として、上記コンピュータを動作させるプログラムが記録され、上記揮発性メモリの少なくとも一部は、バッテリバックアップされており、上記デバイス制御手段は、ユーザプログラムを展開したインストラクションリストを上記揮発性メモリに格納し、当該インストラクションリストを実行すると共に、上記オンラインエディット手段は、オンラインエディット中、上記インストラクションリストを変更すると共に、オンラインエディット終了後、上記外部機器から、インストラクションリストに展開する前のユーザプログラムを受け取り、上記揮発性メモリのうち、バッテリバックアップされた領域に格納することを特徴としている。
【００２３】
上記構成のプログラムが上記記録媒体から読み出され、上記コンピュータにて実行されると、当該コンピュータは、請求項１記載の制御装置として動作する。したがって、ユーザプログラムをオンラインエディットできるにも拘らず、停電やバッテリ切れなどの事故から復旧する際の時間と手間とを削減できる。
【００２４】
【発明の実施の形態】
本発明の一実施形態について図１ないし図１４に基づいて説明すると以下の通りである。すなわち、図１に示すように、本実施形態に係る制御システム１は、例えば、モータやバルブあるいはセンサなどのデバイス２ａ…を含むターゲットシステム２の状態を制御するシステムであって、オペレータの操作に応じてターゲットシステム２を制御すると共に、オペレータへターゲットシステム２の状態を伝える制御／表示装置（制御装置）３と、上記各入出力機器２ａを制御する際に制御／表示装置３が参照するラダープログラムなどのユーザプログラムを作成するコンピュータ（外部機器）４とが設けられている。
【００２５】
本実施形態に係る制御／表示装置３は、例えば、上記入出力機器２ａを直接制御可能なプログラマブル・ロジック・コントローラ（ＰＬＣ）機能を併せ持つプログラマブル表示器として実現されており、例えば、図２に示すようなハードウェア構成を備えている。すなわち、制御／表示装置３は、プログラムやデータなどが格納されるメモリ部（記憶手段）１１と、上記コンピュータ４、表示装置としての液晶表示装置１３ａ、入力装置としてのタッチパネル１４ａに、それぞれ接続するための通信回路１２、ディスプレイ・コントローラ１３およびタッチパネル・コントローラ１４と、図１に示すデバイス２ａを直接制御するＩ／Ｏユニット１５と、上記メモリ部１１を参照して、上記各回路１２〜１５を制御するＣＰＵ（Central Processing Unit ）１６とを備えている。
【００２６】
上記通信回路１２は、例えば、イーサネット（登録商標）のインターフェース回路やシリアル・インターフェースであって、少なくとも、後述するオンラインエディット時や初期設定時などのメンテナンス時には接続されるコンピュータ４と通信して、コンピュータ４のラダーエディタで作成されたユーザプログラムや他のデータをダウンロードしたりできる。なお、上記通信回路１２と、コンピュータ４や他の制御／表示装置３とを常時接続して、互いに連携しながら、ターゲットシステム２を制御してもよい。
【００２７】
また、Ｉ／Ｏユニット１５は、各デバイス２ａと接続される多数の入出力端子および入出力回路と、入出力メモリ、Ｄ／Ａ変換器、Ａ／Ｄ変換器などとを備えており、入出力端子を介して入出力されるデジタルまたはアナログ信号を、上記ＣＰＵ１６とやり取りできる。
【００２８】
一方、メモリ部１１は、ＲＯＭ（Read Only Memory）１１ａと、書き換え可能な不揮発性メモリとしてのＦＥＰＲＯＭ（Flash Erasable and Programmable ROM ）１１ｂと、バッテリバックアップされた揮発メモリとしてのＳＲＡＭ（Static RAM）１１ｃと、例えば、ＤＲＡＭ（Dynamic RAM ）などからなる、揮発性メモリとしてのメインメモリ１１ｄとを備えている。
【００２９】
上記ＲＯＭ１１ａには、例えば、電源投入時に実行される初期化プログラムやフォントデータなどが格納され、上記ＦＥＰＲＯＭ１１ｂには、後述するユーザ画面データや、当該ユーザ画面データに基づいて表示／制御するための表示制御システムプログラムなどが格納される。また、ＳＲＡＭ１１ｃは、後述するラダーエディタで作成したユーザプログラムが格納される第１ユーザプログラム記憶部３１（図１参照）として使用される。さらに、メインメモリ１１ｄは、上記ユーザプログラムを展開したインストラクションリストが格納されるインストラクションリスト記憶部３２（図１参照）、あるいは、上記各メモリ１１ａ〜１１ｃに格納された他のプログラムを実行する際に展開する領域あるいは作業領域として使用される。これらのメモリ部１１は、いずれも半導体メモリなので、可動部を持たず、かつ、衝撃に強い。したがって、ターゲットシステム２の近傍などの劣悪な周囲環境でも安定して動作し続けることができる。
【００３０】
さらに、本実施形態では、オンラインエディット時にユーザプログラムが書き込まれる上記第１ユーザプログラム記憶部３１とは別に、ＦＥＰＲＯＭ１１ｂにも、ユーザプログラムを格納する第２ユーザプログラム記憶部３３（図１参照）が設けられている。上記第１ユーザプログラム記憶部３１となるＳＲＡＭ１１ｃは、例えば、数十ｎｓで１ワードの書き込みなど、上記ＦＥＰＲＯＭ１１ｂよりも高速に書き込みできる。一方、ＦＥＰＲＯＭ１１ｂは、上記ＳＲＡＭ１１ｃよりも書き込み速度が遅いが、比較的大容量化しやすく、電源が供給されていない状態でも内容を保持できる。したがって、長時間、制御／表示装置３への電力供給が停止された場合など、ＳＲＡＭ１１ｃをバックアップするバッテリが切れた場合でも、ユーザプログラムを保持できる。
【００３１】
上記ハードウェア構成の制御／表示装置３へ電源が投入されると、ＣＰＵ１６がメモリ部１１のプログラムを実行して、上記周辺回路１２〜１５を制御すると、図１に示す機能ブロック３１〜３８などが形成される。すなわち、状態メモリ３４は、上記メインメモリ１１ｄの一領域などとして実現され、各デバイス２ａの状態が格納される。また、Ｉ／Ｏ処理部３５は、Ｉ／Ｏユニット１５を介して上記各デバイス２ａと通信して、デバイス２ａの状態と、状態メモリ３４の内容とを一致させる。より詳細には、デバイス２ａが入力デバイスの場合、デバイス２ａからの入力信号に基づいて、上記状態メモリ３４の記憶領域のうち、各デバイス２ａに対応するアドレスへ、デバイス２ａの状態を書き込む。一方、デバイス２ａが出力デバイスの場合、状態メモリ３４の内容に応じた制御指示をデバイス２ａへ出力する。
【００３２】
さらに、デバイス制御部（デバイス制御手段）３６は、上記インストラクションリスト記憶部３２および状態メモリ３４を参照して上記状態メモリ３４に書き込むことで、ユーザプログラムに従って上記各デバイス２ａを制御できる。さらに、表示／操作処理部（表示手段）３７は、上記状態メモリ３４を参照して、各デバイス２ａの状態に応じて、液晶表示装置１３ａの表示画面を更新する。また、表示／操作処理部３７は、タッチパネル１４ａに入力されたユーザの指示に応じて、状態メモリ３４の内容を書き換えることができる。さらに、実行制御部３８（実行制御手段）は、Ｉ／Ｏ処理部３５、デバイス制御部３６、表示／操作処理部３７、あるいは、後述する通信処理部４１やプログラム編集部４２などによる処理のタイミングを制御する。
【００３３】
また、上記機能ブロックには、通信回路１２に接続されるコンピュータ４と通信する通信処理部４１と、オンラインエディットする際、通信結果に応じて、インストラクションリスト記憶部３２および第１ユーザプログラム記憶部３１の内容を書き換えるプログラム編集部（オンラインエディット手段）４２と、第１ユーザプログラム記憶部３１（ＳＲＡＭ１１ｃ）内のユーザプログラムが変更された場合、例えば、画面中に、”バックアップがありません”などの所定の文字列を表示するなどして、当該ユーザプログラムに合わせて、第２ユーザプログラム記憶部３３（ＦＥＰＲＯＭ１１ｂ）のユーザプログラムを更新するように、ユーザに促すと共に、ユーザからの指示に応じて、第２ユーザプログラム記憶部３３のユーザプログラムを更新するバックアップ処理部（書き込み手段；報知手段）４３とが含まれる。
【００３４】
さらに、上記機能ブロックには、制御／表示装置３の起動時に形成される起動制御部（読み込み制御手段）４４も含まれており、制御／表示装置３の起動時に、上記両ユーザプログラム記憶部３１・３３のいずれかから読み出したユーザプログラムを展開して、インストラクションリストを生成し、インストラクションリスト記憶部３２に格納できる。
【００３５】
上記構成では、通常運転中、制御／表示装置３は、例えば、約５０ｍｓ毎など、所定の期間（スキャンタイム）毎に、図３に示すステップ１〜ステップ６（以下では、Ｓ１〜Ｓ６のように略称する）の処理を順次繰り返している。
【００３６】
より詳細には、Ｉ／Ｏ処理部３５は、Ｓ１において、各デバイス２ａの状態を読み出し、状態メモリ３４の記憶領域のうち、各デバイス２ａに応じたアドレスに書き込む。また、Ｓ２において、デバイス制御部３６は、状態メモリ３４の内容を参照しながら、インストラクションリスト記憶部３２に格納されたインストラクションリスト内の各命令を順次実行する。なお、状態メモリ３４の内容は、各命令に従って変更される。さらに、エンド命令が実行され、インストラクションリストの実行が終了すると、Ｓ３において、Ｉ／Ｏ処理部３５は、状態メモリ３４の内容をデバイス２ａへ書き込む。これにより、デバイス制御部３６は、ＰＬＣと同様に、ユーザプログラムに従い、デバイス２ａの状態に応じて各デバイス２ａを制御できる。本実施形態の場合、上記Ｓ１〜Ｓ３の処理に要する期間は、例えば、２０ｍｓ程度である。
【００３７】
また、本実施形態に係る制御／表示装置３は、ＰＬＣ機能と表示／操作機能とを有するプログラム表示器であり、デバイス２ａの制御の合間に、表示画面更新用の期間（例えば、約３０ｍｓ程度）が設けられている。この期間中、表示／操作処理部３７は、コンピュータ４からオンラインエディットが指示されていなければ（Ｓ４にて、指示なしの場合）、ＦＥＰＲＯＭ１１ｂに格納されたユーザ画面データに基づいて、表示画面を更新する（Ｓ５）。
【００３８】
より詳細には、上記ユーザ画面データには、液晶表示装置１３ａに表示すべきベース画面や画像ブロックとしてのマークのデータおよび各マークに付与された処理指示語（タグ）などを含んでおり、表示内容プログラムを構成している。上記のマークは、タッチスイッチ、ランプ、各種表示器などの画像化された基本的な部品として予め用意されている。また、マークとしては、スイッチや数値表示器などの動的変化を画面上の任意の位置で表現させるために、所望の位置に設定された矩形エリアに所望の動画機能が設定された動画機能部も含まれる。
【００３９】
上記タグは、ベース画面上で実行されるべき事象毎に作成されており、基本的には、表示制御動作を実行すべきベース画面のファイル番号と、このベース画面上で実行されるべき動作内容を特定する事象名と、各実行事象毎に参照される１または複数のデータからなる参照情報とを一組として備えている。例えば、所定の画面領域（表示座標範囲）へ、所定のデバイスアドレスの内容に応じた部品図形を表示する表示タグの場合、参照情報には、表示座標範囲（Ｘ・Ｙ）と、デバイスアドレスと、例えば、部品図形がスイッチの場合、ＯＮを示す図形のファイルおよびＯＦＦを示す図形のファイルなど、表示時に参照するファイル番号とが含まれる。また、タグが入力タグの場合、参照情報として、有効入力座標範囲（Ｘ・Ｙ）と、入力結果が書き込まれるデバイスアドレスとが含まれる。
【００４０】
上記表示／操作処理部３７は、上記Ｓ５において、ＦＥＰＲＯＭ１１ｂに格納されたユーザ画面データから、ベース画面のファイル番号が現在表示中のベース画面である表示タグを抽出すると共に、各表示タグについて、状態メモリ３４から当該表示タグに関連するデバイスアドレスの内容を読み出し、読み出した値に応じた部品図形を、画面の表示座標範囲に表示する。ここで、上記Ｓ５は、オンラインエディット中でなければ、スキャンタイム毎に実行されている。したがって、デバイス２ａの現在の状態が液晶表示装置１３ａの画面に反映される。また、タッチパネル１４ａへの押し操作など、オペレータの入力操作を受け取ると、表示／操作処理部３７は、上記ユーザ画面データから、現在表示中のベース画面に対応し、当該入力操作にマッチする入力タグを検索し、入力結果に応じて、状態メモリ３４のうち、入力タグが示すデバイスアドレスの内容を変更する。ここで、状態メモリ３４の内容変更は、スキャンタイム毎にデバイス２ａへ反映されているので、オペレータの操作に応じて、各デバイス２ａを制御できる。
【００４１】
一方、コンピュータ４からオンラインエディットが指示されると（上記Ｓ４にて、指示ありの場合）、実行制御部３８は、Ｓ６において、表示／操作処理部３７の代わりにプログラム編集部４２にユーザプログラムをオンラインエディットさせ、余裕があれば、上記Ｓ５において表示画面を更新する。なお、オンラインエディット処理と表示画面更新処理との双方を実施すれば表示スキャンタイムが長くなる場合には、オンラインエディット処理を優先させ、表示画面更新処理の一部または全部を省略する。この場合、例えば、動きの速い場合などにコマ落ちが視認される虞れがあるが、オンラインエディットの期間が終了すれば、表示画面が更新されるので、オペレータは、何ら支障なく、制御／表示装置３の表示や操作によって、デバイスの状態を把握し、制御できる。
【００４２】
ここで、オンラインエディット中、コンピュータ４のユーザが操作可能なコマンドは、後述するように、短時間で処理可能な幾つかのコマンドに制限されており、プログラム編集部４２は、コンピュータ４からの指示に応じて、インストラクションリストを逐次変更する。さらに、インストラクションリストを逐次変更する間、制御／表示装置３は、表示処理よりも優先して、インストラクションリストを変更しており、表示処理の少なくとも一部を停止できる。これにより、オンラインエディット中であっても、スキャンタイムの長さは、ユーザプログラムに従う各デバイス２ａの制御処理と、デバイス２ａの状態の表示処理とを行う場合と略同様の長さに保たれる。したがって、オンラインエディット中であるか否かに拘らず、制御／表示装置３は、略一定の周期（例えば、約５０ｍｓなど）で、ユーザプログラムを繰り返し実行できる。
【００４３】
また、コンピュータ４からオンラインエディットの終了と共に、ユーザプログラムが送信されると、プログラム編集部４２は、第１ユーザプログラム記憶部３１に当該ユーザプログラムを格納する。これにより、編集後のインストラクションリストに基づいて、第１ユーザプログラム記憶部３１の内容を更新したり、ＦＥＰＲＯＭ１１ｂの一部である第２ユーザプログラム記憶部３３を書き換える場合よりも、正確かつ高速にユーザプログラムを更新できる。なお、プログラム編集部４２は、第１ユーザプログラム記憶部３１へユーザプログラムを書き込む際、ユーザプログラムのチェックサムも併せて格納している。
【００４４】
ここで、オンラインエディットを終了し、オフラインモードに移行した段階では、ユーザプログラムは、第１ユーザプログラム記憶部３１に書き込まれているが、第２ユーザプログラム記憶部３３には書き込まれていない。この状態で、例えば、タッチパネル１４ａの表示画面の４隅のうちの３点など、予め定められた特定操作が行われると、表示／操作処理部３７は、例えば、図４に示すように、メンテナンス用のメニュー画面を表示する。さらに、メニューの選択項目のうち、コントローラバックアップの項目が選択されると、バックアップ処理部４３は、図５に示すように、ユーザプログラム（ラダープログラム）保存の項目を表示し、当該項目が選択されると、第１ユーザプログラム記憶部３１に格納されたユーザプログラムを、第２ユーザプログラム記憶部３３へ書き込む。なお、第２ユーザプログラム記憶部３３は、ＦＥＰＲＯＭ１１ｂの一領域として実現されており、電源供給が長時間停止されても、ユーザプログラムを保持できる一方で、ＳＲＡＭ１１ｃに比べて、書き込み速度が遅い。したがって、バックアップ処理部４３は、ユーザプログラム（ラダープログラム）を書き込んでいる間、図６に示すように、書き込み中である旨を液晶表示装置１３ａの表示画面上に表示して、オペレータに電源をオフしないように伝える。
【００４５】
また、例えば、ターゲットシステム２の運転が停止された後、運転を再開した時点など、制御／表示装置３の電源が投入されると、制御／表示装置３のＣＰＵ１６は、ＲＯＭ１１ａやＦＥＰＲＯＭ１１ｂに予め格納された起動プログラムを実行し、機能ブロックとして、図１に示す起動制御部４４が形成される。当該起動制御部４４は、図７に示すＳ１１において、ＳＲＡＭ１１ｃの特定の領域に予め格納されたストリング（シグネチャー）を照合する。当該ストリングは、ＳＲＡＭ１１ｃの内容が正常であるか否かを確認するために格納される固定のテキストであって、ＳＲＡＭ１１ｃがバッテリバックアップされている間中、値が保持される。ところが、例えば、長時間の電源供給停止などで、バッテリが切れると、ＳＲＡＭ１１ｃは、上記ストリングを保持できない。したがって、上記ストリングを照合することで、バッテリ切れが発生したか否かを識別できる。
【００４６】
照合に成功した場合、起動制御部４４は、Ｓ１２において、例えば、ＳＲＡＭ１１ｃやＦＥＰＲＯＭ１１ｂの所定の領域あるいはディップスイッチなど、不揮発性の記憶手段に格納されたラダーフラグを参照し、ＳＲＡＭ１１ｃおよびＦＥＰＲＯＭ１１ｂのうち、いずれに設けられたユーザプログラム記憶部３１・３３から、ユーザプログラムを読み出すかを判定する。
【００４７】
ここで、通常、ラダーフラグは、ＳＲＡＭ１１ｃ（第１ユーザプログラム記憶部３１）からユーザプログラムを読み出すように設定されている（Ｓ１２にて、ＳＲＡＭの場合）。したがって、起動制御部４４は、Ｓ１３において、第１ユーザプログラム記憶部３１からユーザプログラムを読み出し、第１ユーザプログラム記憶部３１に格納されたチェックサムと、読み出したユーザプログラムから算出したチェックサムとを比較して、第１ユーザプログラム記憶部３１のユーザプログラムが正しく保存されていたか否かを確認する。なお、チェックサムの照合に失敗した場合、起動制御部４４は、Ｓ３１において、例えば、”メジャー異常”を液晶表示装置１３ａに表示するなどして、制御／表示装置３のオペレータに、通常起こり得ない異常が発生し、処理を続けることができない旨を通知する。
【００４８】
チェックサムの照合に成功した場合、すなわち、上記両チェックサムが一致した場合、起動制御部４４は、Ｓ１４において、第１ユーザプログラム記憶部３１に格納されたユーザプログラムと、第２ユーザプログラム記憶部３３に格納されたユーザプログラムとを比較し、両者が一致していない場合、起動制御部４４は、Ｓ１５において、バックアップ処理部４３へ指示して、液晶表示装置１３ａに”バックアップがありません”と表示させるなどして、制御／表示装置３のオペレータにバックアップを促す。なお、両ユーザプログラムは、例えば、それぞれのチェックサムを比較するなどして比較される。
【００４９】
また、起動制御部４４は、バックアップの有無に拘らず、Ｓ１６において、第１ユーザプログラム記憶部３１からユーザプログラムを読み出すと共に、Ｓ１７において、当該ユーザプログラムを展開してインストラクションリストを作成し、メインメモリ１１ｄのインストラクションリスト記憶部３２に格納する。
【００５０】
上記Ｓ１１〜Ｓ１７の処理により、ユーザプログラムに応じたインストラクションリストがインストラクションリスト記憶部３２に格納されると、制御／表示装置３は、通常運転状態に移行し、上述したように、図３に示すＳ１ないしＳ６の処理を繰り返して各デバイス２ａを制御する。
【００５１】
一方、上記Ｓ１１での照合に失敗した場合は、ＳＲＡＭ１１ｃの内容が失われたことを示している。この場合、起動制御部４４は、Ｓ２１において、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出すと共に、Ｓ２２において、液晶表示装置１３ａに”マイナー異常”と表示するなどして、制御／表示装置３のオペレータにバッテリ切れが発生するなどして、ＳＲＡＭ１１ｃの内容が失われたことを報知する。
【００５２】
また、起動制御部４４は、Ｓ２３において、ラダーフラグを”ＳＲＡＭ”に設定すると共に、ストリングを書き込む。当該ストリングは、次にバッテリ切れが発生するまでの間、保持されるので、制御／表示装置３は、各起動時（上記Ｓ１１）に当該ストリングを参照することで、バッテリ切れの有無を確認できる。
【００５３】
さらに、起動制御部４４は、Ｓ２４において、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出して、ＳＲＡＭ１１ｃの第１ユーザプログラム記憶部３１に格納した後、上記Ｓ１６以降の処理を行う。このように、ＳＲＡＭ１１ｃの内容が失われた場合であっても、制御／表示装置３は、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出すことで、コンピュータ４などの他の機器と通信することなく、自力で起動できる。
【００５４】
なお、上記Ｓ１２の判定にて、ラダーフラグが”ＦＥＰＲＯＭ”を示している場合、起動制御部４４は、Ｓ２４以降の処理を行い、第２ユーザプログラム記憶部３３からユーザプログラムを読み出す。また、例えば、バックアップしていない状態など、第２ユーザプログラム記憶部３３にユーザプログラムが格納されていない場合、上記Ｓ１１におけるストリングの照合に失敗し、上記Ｓ２１にて、第２ユーザプログラム記憶部３３からユーザプログラムを読み出そうとしても、読み出しに失敗する。このとき、起動制御部４４は、Ｓ３２において、液晶表示装置１３ａに”ラダープログラムなし”と表示するなどして、第２ユーザプログラム記憶部３３にもユーザプログラムが記憶されていないことを、オペレータに報知する。この場合、オペレータは、制御／表示装置３に通信回路１２からのユーザプログラム読み込みを指示するなどして、コンピュータ４など、他の機器からユーザプログラムを制御／表示装置３に読み込ませる。
【００５５】
ここで、図３に示すＳ６の処理を、図８ないし図１２に基づき、さらに詳細に説明すると以下の通りである。すなわち、制御／表示装置３に接続されたコンピュータ４は、図８に示すＳ４１において、制御／表示装置３へ、オンラインエディット要求を送信する。また、コンピュータ４は、Ｓ４２において、ユーザへ入力を促したり、予めパスワードを保存していたファイルを参照するなどして、パスワードを取得し、制御／表示装置３へ送信する。なお、送信タイミングは、例えば、オンラインエディット要求と共に送信してもよいし、オンラインエディット要求を受信した制御／表示装置３からの要求に応えて送信してもよい。
【００５６】
一方、制御／表示装置３では、図５に示すＳ５１において、通信処理部４１がオンラインエディット要求を受け取ると、プログラム編集部４２が動作を開始する。さらに、Ｓ５２において、プログラム編集部４２は、コンピュータ４からパスワードを受信し、Ｓ５３において、例えば、予め記憶された正規のパスワードと比較するなどして、受信したパスワードを照合する。照合に成功すると、プログラム編集部４２は、Ｓ５４において、照合成功を示すＯＫレスポンスをコンピュータ４に送信する。なお、照合に失敗した場合は、Ｓ５５にて、照合失敗を示すＮＧレスポンスがコンピュータ４に送信される。
【００５７】
また、コンピュータ４は、図８に示すＳ４３において、制御／表示装置３からＯＫレスポンスを受信すると、Ｓ４４において、図１０に示すように、編集対象となるユーザプログラム（ラダープログラム）を、ラダー図として表示し、コンピュータ４のユーザに、編集を促す。なお、上記Ｓ４３にて、ＮＧレスポンスを受け取った場合、コンピュータ４は、オンラインエディット処理を中止する。また、ラダー図として表示するラダープログラムは、コンピュータ４のファイルから読み出してもよいし、制御／表示装置３から読み出してもよい。
【００５８】
例えば、図１０中、破線で示すように、ユーザが編集対象回路へ接点ｃを追加し、編集の確定および制御／表示装置３への送信を指示すると、コンピュータ４は、編集確定回路から、必要なオンラインエディットコマンドを識別し、制御／表示装置３に送信する。この場合、ラダー図では、接点ａと出力回路ｂとの間に、新たな接点ｃが追加されており、ラダープログラムには、図１１に示すように、接点ａおよび出力回路ｂに対応するコマンド”ＬＤ ａ”および”ＯＵＴ ｂ”の間に、上記接点ｃに対応する新たなコマンド”ＡＮＤ ｃ”を追加する必要がある。したがって、コンピュータ４は、両コマンド”ＬＤ ａ”および”ＯＵＴ ｂ”の間、すなわち、アドレス２に、コマンド”ＡＮＤ ｃ”を追加するように指示する。また、この場合、接点ｃが新たなデバイスに対応しているので、当該デバイスの実際のデバイスアドレスと、ラダープログラム上での識別子ｃとを関連付ける変数の追加を示すコマンドが発行される。これに応じて、制御／表示装置３のプログラム編集部４２は、インストラクションリストを変更する。これにより、デバイス制御部３６は、インストラクションリストの変更後に実施されるＳ２の処理（図３参照）では、変更後のインストラクションリストに基づいて、各デバイス２ａを制御できる。本実施形態では、ラダープログラム上での識別子は、変数を介して、デバイスアドレスと関連付けられている。したがって、ある識別子のデバイスアドレスが変更される場合は、識別子に対応する変数のデバイスアドレスを変更するだけで、ラダープログラム上の当該識別子に対応する箇所全てに、デバイスアドレスの変更を反映できる。
【００５９】
ここで、本実施形態では、オンラインエディット中に、コンピュータ４が発行可能なコマンドとして、上述したように、指定ラング間にラダー回路を１行追加する行追加コマンド、および、変数追加コマンドに加えて、既存行のラダー回路を編集する行置換コマンド、既存行を削除する行削除コマンド、ラダープログラムにおけるＪＭＰコマンドの飛び先など、プログラム制御用のラベルを追加するラベル追加コマンド、および、一連のサブルーチンの追加を指示するサブルーチン追加コマンドが定義されている。なお、本実施形態では、行削除コマンドの発行時であっても、変数は削除されない。また、変数追加コマンドは、行追加コマンドや行置換コマンドにより、必要になった場合にのみ発行される。
【００６０】
これらのコマンドが用意されていれば、オンラインエディットの用途、すなわち、デバイス２ａの制御を中断することなく、ラダープログラムの一部を変更する用途に十分対応できる。さらに、上記コマンドは、ラダープログラム全体を伝送する場合と比較して、伝送されるデータ量が少なく、図３に示すデバイス制御の休止期間（例えば、約２０ｍｓ）のように、表示更新用に設けられた期間で十分に処理できる。
【００６１】
図８に示す上記Ｓ４４では、ユーザがラダー図を変更して編集確定を通知すると、コンピュータ４は、変更に応じたオンラインエディットコマンドを、制御／表示装置３へ逐次発行する。一方、制御／表示装置３は、当該オンラインエディットコマンドに応じて、インストラクションリスト記憶部３２の内容を更新し、変更されたインストラクションリストに基づいて、デバイス２ａを制御する。さらに、コンピュータ４のユーザは、例えば、デバイス２ａの挙動や制御／表示装置３からの応答などによって、正しくインストラクションリストが変更されたことを確認できると、次に編集すべき箇所をオンラインエディットする。
【００６２】
上記Ｓ４４でのオンラインエディットが終了すると、Ｓ４５において、コンピュータ４は、例えば、ハードディスクなど、自機器に設けられた記憶装置へ、編集後の回路を格納すると共に、Ｓ４６において、編集後の回路を制御／表示装置３へ転送する。
【００６３】
一方、制御／表示装置３のプログラム編集部４２は、図１２に示すＳ６１において、ラダープログラム（ユーザプログラム）を示すパケットを受信すると、Ｓ６２において、チェックサムを生成し、Ｓ６３において、ＳＲＡＭ１１ｃの第１ユーザプログラム記憶部３１へユーザプログラムを書き込む。さらに、Ｓ６４において、図７に示すＳ２３と同様、ラダーフラグを”ＳＲＡＭ”に設定すると共に、ストリングを書き込む。
【００６４】
また、コンピュータ４は、図８に示すＳ４７において、自機器の表示画面上に、ＳＲＡＭへの転送完了を示す通知と、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３へのコピーを促す旨の通知とを表示する。なお、コンピュータ４は、制御／表示装置３へ指示して、制御／表示装置３の液晶表示装置１３ａへ、コピーを促す旨を表示させてもよい。
【００６５】
ところで、上記では、制御／表示装置３にユーザプログラムが既に格納されており、オンラインエディットでユーザプログラムの一部を変更する場合について説明したが、例えば、制御／表示装置３の設置時など、ユーザプログラムや、Ｉ／Ｏユニット１５を介してデバイス２ａを制御するためのＩ／Ｏドライバが、制御／表示装置３に格納されていない場合には、図１３および図１４の処理が行われる。すなわち、図１３のＳ７１において、コンピュータ４は、ユーザの指示などに応じて、制御／表示装置３にダウンロード要求を送信する。また、図８に示すＳ４２と同様に、コンピュータ４は、パスワードを送信する。一方、図１４に示すＳ８１において、制御／表示装置３の通信処理部４１がダウンロード要求を受け取ると、起動制御部４４は、Ｓ８２およびＳ８３において、図９に示すＳ５２およびＳ５３と同様に、受信したパスワードを照合する。照合に成功した場合、起動制御部４４は、Ｓ８４において、ラダーフラグを”ＦＥＰＲＯＭ”に設定し、ＳＲＡＭ１１ｃにストリングを書き込むと共に、Ｓ８５において、照合成功を示すＯＫレスポンスを返信する。一方、上記Ｓ８３での照合に失敗すると、起動制御部４４は、通信処理部４１を介して、コンピュータ４へＮＧレスポンスを返信する（Ｓ８６）。
【００６６】
一方、コンピュータ４は、図１３に示すＳ７３において、パスワード照合結果として、ＯＫレスポンスを受け取ると、Ｓ７４において、オフライン転送の準備として、例えば、必要なＩ／Ｏドライバを選択するようにユーザへ促すなどして、予め記憶されているＩ／Ｏドライバ群の中から、制御／表示装置３へ転送すべきＩ／Ｏドライバを選択する。また、制御／表示装置３へ転送すべきユーザプログラムも選択される。
【００６７】
上記Ｓ７４にて、オフライン転送の準備が整い、転送すべきデータが決まると、Ｓ７５において、コンピュータ４は、これらのデータを制御／表示装置３へオフライン転送し、制御／表示装置３の起動制御部４４は、Ｉ／ＯドライバおよびユーザプログラムをＦＥＰＲＯＭ１１ｂに書き込む。
【００６８】
ここで、制御／表示装置３では、図１２の上記Ｓ８４にて、ラダーフラグが”ＦＥＰＲＯＭ”に設定されており、ＳＲＡＭ１１ｃにストリングも書き込まれている。したがって、次に、制御／表示装置３が起動する際には、図７に示すＳ１１、Ｓ１２およびＳ２４以降の処理が行われ、起動制御部４４は、ＦＥＰＲＯＭ１１ｂの第２ユーザプログラム記憶部３３からユーザプログラムを読み出す。
【００６９】
なお、上記では、ＰＬＣとしての機能とプログラマブル表示器としての機能とを併せ持つ制御／表示装置３を例にして説明したが、オンラインエディット中は、メインメモリ１１ｄやＳＲＡＭ１１ｃなどの揮発性メモリを変更し、オンラインエディット後、ＦＥＰＲＯＭ１１ｂなどの不揮発性メモリに格納されたユーザプログラムを更新する構成であれば、例えば、ＰＬＣなどの制御装置に適用した場合でも、略同様の効果が得られる。
【００７０】
ただし、本実施形態のように、表示機能を備えている場合は、ユーザプログラムを実行した後、表示更新処理のための時間が設けられている。したがって、この時間中に、オンラインエディットすることで、オンラインエディットによるスキャンタイムの変動を抑えることができる。さらに、表示機能を備えている場合、当該表示機能を用いることで、新たに表示用の手段を追加することなく、オペレータへ、ユーザプログラムの更新を促すことができる。
【００７１】
なお、本実施形態では、ユーザプログラムとして、ラダーエディタで作成／編集されるラダープログラムを例にして説明したが、これに限るものではない。例えば、コンピュータ４は、フローチャートに基づいてユーザプログラムを作成してもよいし、インストラクションコードのソースコードを直接記述してもよい。いずれの場合であっても、制御／表示装置３がユーザプログラムを繰り返して実行すれば、略同様の効果が得られる。ただし、ラダーエディタのように、シンボルで編集する方が、ソースコードの記述になれていないユーザにとって操作しやすい。
【００７２】
【発明の効果】
請求項１の発明に係る制御装置は、以上のように、不揮発性メモリおよび揮発性メモリと、ユーザプログラムを実行する合間に、上記揮発性メモリのユーザプログラムを変更するオンラインエディット手段と、上記揮発性メモリのユーザプログラムを、上記不揮発性メモリへ格納する書き込み手段と、上記揮発性メモリがユーザプログラムを正常に保持できなかった場合、上記不揮発性メモリからユーザプログラムを読み込む読み込み制御手段とを備えている構成である。
【００７３】
上記構成によれば、オンラインエディット手段が揮発性メモリのユーザプログラムを変更するので、オンラインエディット中に、頻繁にユーザプログラムを変更しても、制御装置は、何ら支障なく、ユーザプログラムを変更できる。また、停電やバッテリ切れなどの事故が発生して、揮発性メモリがユーザプログラムを保持できなかった場合、読み込み制御手段が不揮発性メモリからユーザプログラムを読み込むので、制御装置は、外部機器と通信することなく、デバイスの制御を開始できる。これらの結果、ユーザプログラムをオンラインエディットできるにも拘らず、上記事故が発生しても、安全かつに確実にユーザプログラムを保持でき、事故から復旧する際の時間と手間とを削減できるという効果を奏する。
【００７４】
請求項１の発明に係る制御装置は、さらに、上記オンラインエディット手段は、オンラインエディット中、ユーザプログラムを展開して生成されたインストラクションリストを変更すると共に、オンラインエディット終了後、上記外部機器から、インストラクションリストに展開する前のユーザプログラムを受け取り、上記揮発性メモリのうち、バッテリバックアップされた領域に格納する構成である。
【００７５】
上記構成では、オンラインエディット中は、インストラクションリストを変更し、オンラインエディットが終了すると、外部機器から、展開前のユーザプログラムを受け取って揮発性メモリに格納するので、オンラインエディット時およびユーザプログラム格納時の演算量を削減できるという効果を奏する。また、展開前のユーザプログラムを格納する領域がバッテリバックアップされているので、書き込み手段が不揮発性メモリへユーザプログラムを書き込んでいる最中に停電したとしても、ユーザプログラムを保持できるという効果を併せて奏する。
【００７６】
請求項２の発明に係る制御装置は、以上のように、請求項１の発明の構成において、上記読み込み制御手段は、バッテリ切れが発生したか否かを識別するために、上記揮発メモリがバッテリバックアップされている間保持されるテキストを照合する構成である。
【００７７】
請求項３の発明に係る制御装置は、以上のように、請求項１または２記載の発明の構成において、上記オンラインエディット手段が上記揮発性メモリのユーザプログラムを変更した場合、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する報知手段を備え、上記書き込み手段は、使用者からの指示に応じて、上記不揮発性メモリへユーザプログラムを書き込む構成である。
【００７８】
それゆえ、制御装置の使用者が希望した時点で不揮発性メモリの内容を更新できるにも拘らず、更新のし忘れを防止できるという効果を奏する。
【００７９】
請求項４の発明に係る制御装置は、以上のように、請求項１または２記載の発明の構成において、上記読み込み制御手段は、上記揮発性メモリのユーザプログラムと上記不揮発性メモリのユーザプログラムとを比較し、上記揮発性メモリのユーザプログラムと上記不揮発性メモリのユーザプログラムとが一致していない場合、上記不揮発性メモリのユーザプログラムを更新するよう使用者に報知する報知手段を備え、上記書き込み手段は、使用者からの指示に応じて、上記不揮発性メモリへユーザプログラムを書き込むことを特徴としている。
【００８０】
請求項５の発明に係る制御装置は、以上のように、請求項１〜４のいずれか１項に記載の発明の構成において、上記デバイス制御手段がユーザプログラムを繰り返し実行する合間に、デバイスの状態に応じて、表示画面を更新する表示手段と、オンラインエディットする場合、上記表示手段による表示更新処理よりも優先して、上記オンラインエディット手段にユーザプログラムを変更させる実行制御手段とを備えている構成である。
【００８１】
上記構成において、制御装置が表示手段を備えているので、デバイス制御手段がユーザプログラムを繰り返し実行する合間には、当該表示手段が画面を更新するための期間が設けられている。また、実行制御手段は、オンラインエディットの際、表示更新処理よりも優先的にユーザプログラムを変更させる。それゆえ、ユーザプログラムの実行周期を余り変化させることなく、オンラインエディットできるという効果を奏する。
【００８２】
請求項６の発明に係る記録媒体は、以上のように、書き換え可能な不揮発性メモリと、当該不揮発性メモリよりも書き込み速度が速い揮発性メモリとを有し、外部機器と通信可能なコンピュータを、請求項１記載の制御装置として動作させるためのプログラムが記録された記録媒体である。
【００８３】
当該構成の記録媒体からプログラムが読み出され、上記コンピュータにて実行されると、当該コンピュータは、請求項１記載の制御装置として動作する。したがって、ユーザプログラムをオンラインエディットできるにも拘らず、停電やバッテリ切れなどの事故から復旧する際の時間と手間とを削減できるという効果を奏する。
【図面の簡単な説明】
【図１】  本発明の一実施形態を示すものであり、制御システムの要部構成を示すブロック図である。
【図２】  上記制御システムにおいて、制御／表示装置のハードウェア構成を例示するブロック図である。
【図３】  上記制御／表示装置の通常運転中の動作を示すフローチャートである。
【図４】  上記ＳＲＡＭに格納されたユーザプログラムをＦＥＰＲＯＭに格納するように指示する際、制御／表示装置が表示する画面例を示す説明図である。
【図５】  上記ＳＲＡＭに格納されたユーザプログラムをＦＥＰＲＯＭに格納するように指示する際、制御／表示装置が表示する画面の他の例を示す説明図である。
【図６】  上記ＳＲＡＭに格納されたユーザプログラムをＦＥＰＲＯＭに格納している間に、制御／表示装置が表示する画面の例を示す説明図である。
【図７】  上記制御／表示装置が起動する際の動作を示すフローチャートである。
【図８】  オンラインエディット時におけるコンピュータの動作を詳細に示すフローチャートである。
【図９】  上記制御／表示装置の動作を示すものであり、オンラインエディットを開始する際の動作を詳細に示すフローチャートである。
【図１０】  オンラインエディットの際、コンピュータに表示されるユーザプログラムの例を示す説明図である。
【図１１】  オンラインエディットによって変更されるインストラクションリストの例を示す説明図である。
【図１２】  上記制御／表示装置の動作を示すものであり、オンラインエディット終了時に伝送されるユーザプログラムを格納する際の動作を示すフローチャートである。
【図１３】  初期設定時における上記コンピュータの動作を示すフローチャートである。
【図１４】  初期設定時における上記制御／表示装置の動作を示すフローチャートである。
【符号の説明】
３ 制御／表示装置（制御装置）
４ コンピュータ（外部機器）
１１ メモリ部（記憶手段）
１１ｂ ＦＥＰＲＯＭ（不揮発性メモリ）
１１ｃ ＳＲＡＭ（揮発性メモリ）
１１ｄ メインメモリ（揮発性メモリ）
３６ デバイス制御部（デバイス制御手段）
３７ 表示／操作処理部（表示手段）
３８ 実行制御部（実行制御手段）
４２ プログラム編集部（オンラインエディット手段）
４３ バックアップ処理部（書き込み手段；報知手段）
４４ 起動制御部（読み込み制御手段）
【図１】
0003853581.tif 000002
【図２】
0003853581.tif 000003
【図３】
0003853581.tif 000004
【図４】
0003853581.tif 000005
【図５】
0003853581.tif 000006
【図６】
0003853581.tif 000007
【図７】
0003853581.tif 000008
【図８】
0003853581.tif 000009
【図９】
0003853581.tif 000010
【図１０】
0003853581.tif 000011
【図１１】
0003853581.tif 000012
【図１２】
0003853581.tif 000013
【図１３】
0003853581.tif 000014
【図１４】
0003853581.tif 000015