本発明の一実施形態について図1ないし図7に基づいて説明すると以下の通りである。すなわち、本実施形態に係る制御システムは、バッテリバックアップされたSRAMを有するプログラマブル表示器を、バッテリバックアップされたSRAMを有していないパネルコンピュータで代替しているにも拘わらず、パネルコンピュータの動作速度を余り低下させずに、必要なデータが消失する可能性を抑制可能な制御システムである。
以下では、パネルコンピュータの構成の詳細、特に、パネルコンピュータにおいて、揮発性のメインメモリを記憶媒体として使用して上記SRAMを代替する擬似SRAM処理部の内容を、不揮発性の記憶装置にバックアップするタイミングについて説明する前に、制御システム全体の概略構成および動作について説明する。
すなわち、本実施形態に係る制御システム1は、図2に示すように、ターゲットシステム2のデバイス2aを制御するためのシステムであって、例えば、ベルトコンベアー式の自動組付機などのデバイス2aの制御に好適に用いられている。
上記制御システム1には、上記デバイス2aを制御する制御装置としてのPLC(プログラマブル・ロジック・コントローラ)11と、多くの場合、制御対象近傍に配されると共に、制御システム1のHMIとして、デバイス2aの状態を表示し、オペレータによるデバイス2aへの操作を受け付けるプログラマブル表示器13とを備えている。なお、当該プログラマブル表示器13が特許請求の範囲に記載の「制御対象となる各デバイスの状態を取得して動作する特殊制御装置」に対応する。
本実施形態に係る制御システム1では、各プログラマブル表示器13は、イーサネット(登録商標)などのLAN(ローカルエリアネットワーク)15によって互いに接続されている。さらに、上記LAN15には、多くの場合、プログラマブル表示器13よりも離れた場所から、制御システム1全体を管理する制御用ホストコンピュータ(データ生成装置)17が接続されている。当該制御用ホストコンピュータ17は、例えば、プログラマブル表示器13あるいは後述するパネルコンピュータ41など、LAN15に接続された機器と通信して、これらの機器13・41、あるいは、ターゲットシステム2やPLC11を管理すると共に、それらの機器13・41、ターゲットシステム2あるいはPLC11の状態を表示したり制御したりできる。
また、上記各プログラマブル表示器13は、シリアルケーブルなどの通信路を介して、それぞれに対応するPLC11と接続されている。なお、図2では、説明の便宜上、LAN15にプログラマブル表示器13が2台接続されると共に、各プログラマブル表示器13に1台ずつのPLC11、各PLC11に1台ずつのデバイス2aがそれぞれ接続されている場合を例示しているが、当然ながら、それぞれの接続台数は任意に設定できる。
また、デバイスは、デバイスアドレスにより特定可能で、しかも、状態を取得したり、制御(変更)したりできるものであれば、例えば、デバイス2a自体であってもよいし、例えば、PLC11やプログラマブル表示器13の記憶装置など、制御システム1に設けられた記憶装置の一領域を示していてもよい。
ここで、上記制御システム1では、制御システム1に必須の構成であり、しかも、HMIとして動作するため、演算能力に余力のあるプログラマブル表示器13が通信の大半を処理するように構成されている。さらに、各プログラマブル表示器13は、自らに接続されているPLC11の機種に固有の専用プロトコルと、LAN15での共通プロトコルとを変換して、他のプログラマブル表示器13や制御用ホストコンピュータ17と、PLC11との通信を中継する。なお、共通プロトコルと専用プロトコルとの間のプロトコル変換には、同じ指示に同じコードが割り当てられるように予め定められた共通のコマンドと上記共通のコマンドに対応するPLC11固有のコマンドとの間の変換や、データやアドレスの表現方法の変換、デバイスアドレスと、当該デバイスアドレスに対応し、しかも、デバイスアドレスとは異なる値に設定可能な変数や変数の名称(変数名)との変換なども含まれる。
これにより、プログラマブル表示器13および制御用ホストコンピュータ17は、他のプログラマブル表示器13に接続されているPLC11の機種に拘らず、LAN15を介して共通のプロトコルで通信できる。この結果、互いに異なる機種のPLC11の混在する制御システム1が比較的容易に実現されている。
上記プログラマブル表示器13は、図3に示すように、CPU(Central Processing Unit )21と、例えば、ハードディスクドライブ、フラッシュメモリあるいはROM(Read Only Memory)などからなり、当該CPU21によって実行されるプログラムおよび当該CPU21によって参照されるデータ(例えば、フォントデータなど)が格納される不揮発性の記憶装置22と、例えば、例えば、DRAM(Dynamic Randam Acess Memory )などからなり、上記CPU21が上記プログラムを実行する際に、例えば、作業領域などとして使用される揮発性のメインメモリ23とを備えている。
本実施形態では、上記不揮発性の記憶装置22の一例として、上記CPU21に接続されたROM22aと、I/O回路24を介してCPU21に接続されたフラッシュメモリ22bとが採用されており、上記CPU21は、これらの記憶装置22から、プログラムやデータなどを読み取ったり、プログラムおよびデータを更新したりできる。
さらに、上記プログラマブル表示器13には、入出力装置として、液晶表示装置などの表示装置25およびタッチパネル26とを備えており、上記I/O回路24は、上記CPU21の指示に応じて、表示装置25およびタッチパネル26を制御できる。
また、プログラマブル表示器13は、RS−232Cなどの規格のシリアルポート27aを介して通信する通信回路27も備えており、上記CPU21は、当該通信回路27およびシリアルポート27aを介して、例えば、上述したPLC11や後述する作画エディタ装置19などの外部装置と通信できる。さらに、プログラマブル表示器13には、図2に示すLAN15と通信するためのネットワーク・インターフェース回路28も設けられており、上記CPU21は、当該ネットワーク・インターフェース回路28およびLAN15を介して、上述した制御用ホストコンピュータ17あるいは他のプログラマブル表示器13と通信できる。
さらに、本実施形態に係るプログラマブル表示器13には、不揮発性の記憶装置22よりも高速に読み書き可能な不揮発性の半導体メモリ(不揮発性の特殊メモリ)として、バッテリバックアップされたSRAM29が設けられている。当該SRAM29は、CPU21のアドレス空間にマップされており、CPU21は、予め設定されるベースアドレスを基準に、そのベースアドレスからのオフセットによって、上記SRAM29の記憶領域のうちのアクセス対象とする記憶領域を指定し、当該記憶領域にアクセスすることができる。
上記SRAM29は、不揮発性の記憶装置22よりも高速に読み書き可能であり、しかも、不揮発性のメモリである。したがって、プログラマブル表示器13は、重要なデータを当該SRAM29に記憶させておくことによって、不所望な電源断などがあった場合でも、当該データの消失を防止できる。また、上記SRAM29は、メインメモリ23と同様に高速にランダムアクセスできる。さらに、上記SRAM29は、ハードディスクドライブやフラッシュメモリなどと比較して、データの読み書きによるデバイスの劣化が発生しにくく、より確実にデータの消失を防止できる。
ここで、上記プログラムには、ハードウェアの制御処理、あるいは、文字や図形の表示処理やタッチパネルへの入力を受け付ける処理など、多くのプログラムで一般的に使用される処理を行うシステムプログラムと、予め定められた通信プロトコルで通信するためのプロトコルプログラムとが含まれている。また、本実施形態に係るプログラマブル表示器13は、デバイスの状態を取得して表示する動作、および、受け付けた操作あるいは取得した他のデバイスの状態に応じてデバイスの状態を変更(制御)する動作を規定する画面データに基づいて、入力および画面表示を制御可能な表示器であって、上記プログラムには、さらに、プログラマブル表示器13の表示/制御動作を規定する上記画面データと、例えば、当該画面データに基づいて上記システムプログラムを呼び出して、プログラマブル表示器13の各ハードウェアに、画面データが示す表示/制御動作を行わせるアプリケーションプログラムなどの拡張プログラムとが含まれている。
上記CPU21が上記各プログラムを実行して上記各部材21〜24および27〜28を制御すると、プログラマブル表示器13には、機能ブロックとして、図4に示すように、PLC11と通信するPLC・IF部31と、上記LAN15に接続するためのLAN・IF部32と、上記各部材31・32並びに表示装置25およびタッチパネル26を制御するHMI処理部(特殊制御手段)33と、上記記憶装置22、メインメモリ23およびSRAM29のいずれかを記憶媒体として使用することによって実現され、上記画面データを記憶する画面データ記憶部34と、上記記憶装置22、メインメモリ23およびSRAM29のいずれかを記憶媒体として使用することによって実現され、上記HMI処理部33が取得したデバイスの状態を記憶する状態記憶部35と、上記SRAM29の少なくとも一部を記憶媒体として使用することによって実現され、デバイスとして扱われる不揮発性記憶部36とが形成される。
なお、上記各部材31〜36は、上記各プログラムを実行して上記各部材21〜24および27〜29を制御することによって実現される機能ブロックである。また、これらの部材のうち、上記各記憶部34〜36は、記憶装置自体であってもよい。したがって、これらの部材を有するコンピュータが、上記プログラムを記録した記録媒体(例えば、CD−ROMなど)を読み取り、当該プログラムを実行すれば、本実施形態に係るプログラマブル表示器13を実現できる。なお、例えば、LAN15、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
一方、上記画面データは、上記プログラマブル表示器13の上記各動作を規定するデータであれば、例えば、画面上の領域およびデバイスを特定するための属性を有し、当該領域への表示や入力に対応するオブジェクトを生成するためのデータなどから構成されていてもよいが、本実施形態に係る画面データは、画面上の領域と、当該領域への表示や入力に対応するデバイスとの対応関係を示すタグを組み合わせて構成されている。本実施形態では、HMI処理部33が複数の単位画面(ベース画面)を切り換え表示可能であり、上記タグは、当該タグが有効となる単位画面を示すファイル番号と、単位画面上で実行すべき動作内容を特定する事象名と、各事象毎に参照される参照情報とを含んでいる。
例えば、上記タグが所定の画面領域(表示座標範囲)へ所定のデバイスの状態に応じた部品図形を表示する表示タグの場合、上記参照情報には、表示座標範囲と、デバイスを特定可能な変数と、例えば、部品図形がスイッチの場合、ONを示す図形のファイルおよびOFFを示す図形のファイルなど、表示時に参照するファイル番号とが含まれる。さらに、タグが入力タグの場合、参照情報として、有効入力座標範囲と、入力結果が書き込まれるデバイスの変数とが含まれる。
また、状態記憶部35には、各変数について、変数の名称(変数名)と、変数に対応するデバイス2aまたは内部メモリを特定するための情報(例えば、アドレスなど)と、変数の内容との組み合わせが記憶されている。なお、本実施形態では、変数に対応するデバイス2aの機種に拘わらず、変数の内容を格納する際の表現方法(例えば、ワード長や符号の有無、あるいは、BCD/2進表記など)が予め定められた表現方法に統一されており、変数が実在のデバイス2aに対応する場合、状態記憶部35には、実際の機種での表現方法も格納されている。この場合、HMI処理部33は、PLC・IF部31を介してデバイス2aの状態を取得あるいは制御する際、表現方法を形式変換して、格納時の表現方法を統一している。
一方、上記HMI処理部33は、所定の時間間隔で、画面データ記憶部34に格納された画面データから、ベース画面のファイル番号が、現在表示中のベース画面である表示タグを抽出する。さらに、HMI処理部33は、状態記憶部35に格納された変数を参照して、タグに対応する変数の内容を読み出し、内容に応じた部品図形を表示装置25に表示する。ここで、PLC・IF部31に接続されたPLC11により制御されるデバイス2aに、上記変数が対応している場合、HMI処理部33は、PLC・IF部31によるPLC11との通信によって、デバイス2aの状態を取得し、上記変数の内容を当該状態に応じて更新している。これにより、表示装置25には、デバイス2aの状態を示す操作画面が表示される。
なお、変数が他のプログラマブル表示器13に接続されたPLC11によって制御されるデバイス2aの場合、HMI処理部33は、LAN・IF部32、LAN15および他のプログラマブル表示器13を介して当該PLC11と通信するなどして、デバイスの状態を取得し、それに応じて変数の内容を更新する。
一方、タッチパネル26への押し操作など、オペレータの入力操作を受け付けると、HMI処理部33は、上記画面データから、現在表示中のベース画面に対応し、当該入力操作にマッチする入力タグを検索すると共に、入力結果に応じて、タグに対応する変数の内容を更新する。さらに、HMI処理部33は、デバイス2aの状態を取得する場合と略同様に、PLC11やプログラマブル表示器13と通信するなどして、上記変数の内容に応じて、デバイス2aの状態を制御させる。ここで、入力操作の後も、HMI処理部33は、デバイス2aの状態を画面表示するので、操作結果が画面表示に反映される。
なお、HMI処理部33は、例えば、他のプログラマブル表示器13や制御用ホストコンピュータ17など、LAN15に接続された機器から自らに接続されたPLC11のデバイス2aへの制御指示を受け取った場合や、これとは逆に、上記機器へ報告すべきデバイス2aの状態を自らのPLC11から受け取った場合には、上述したプロトコル変換によって、LAN15での通信とPLC11相手の通信との間を中継できる。
ここで、本実施形態に係るSRAM29の記憶領域の少なくとも1部は、上述したように、デバイスとしても扱われる不揮発性記憶部36を実現するために使用されており、例えば、上記画面データにおいて、外部のデバイス2aを指定する場合と同様に、当該記憶領域を示すデバイスアドレス(例えば、”[#INTERNAL]LS0000”)を指定した場合、プログラマブル表示器13のHMI処理部33は、当該記憶領域にアクセスできる。
これにより、プログラマブル表示器13は、プログラマブル表示器13の設計者によって予め重要と判断されたデータだけではなく、画面データによって指定されたデータ、すなわち、画面データの作成者(後述する作画エディタ装置19のユーザ)が重要と判断して上記不揮発性記憶部36に格納するように画面データに設定したデータも不揮発性記憶部36(SRAM29)に格納できる。したがって、不所望な電源断などがあった場合でも、画面データの作成者が重要と判断したデータの消失を防止できる。
より詳細には、本実施形態に係るHMI処理部33としてCPU21を動作させるプログラムにおいて、不揮発性記憶部36の指定されたアドレスへアクセスするルーチンでは、例えば、不揮発性記憶部36としてのSRAM29の先頭アドレスをベースアドレスに設定する手順、および、上記指定されたアドレスを、そのベースアドレスからのオフセットとして指定することによって、上記指定されたアドレスへアクセスする手順が記述されており、CPU21は、当該手順に従って、ベースアドレスを設定し、上記指定されたアドレスへアクセスしている。
一方、上記画面データをプログラマブル表示器13に格納する際には、例えば、上記制御用ホストコンピュータ17など、プログラマブル表示器13と常時通信可能な装置が作画エディタ装置の機能を兼ね備え、例えば、LAN15などを介して、画面データをプログラマブル表示器13にダウンロードしてもよいが、本実施形態に係る制御システム1では、図2に示すように、作画エディタ装置19が別途設けられている。また、画面データをプログラマブル表示器13に格納する場合は、例えば、プログラマブル表示器13に作画エディタ装置19を一時的に接続して画面データを転送したり、作画エディタ装置19の生成した画面データを記録媒体(例えば、コンパクトフラッシュ(登録商標)など)に格納し、当該記録媒体の内容をプログラマブル表示器13に読み取らせたりして、画面データをプログラマブル表示器13に格納できる。
より詳細には、作画エディタ装置19は、図5に示すように、ユーザの操作に応じて、予め格納された画面データを修正したり、新規作成したりして、表示画面を設計し、新たな画面データを生成する作画処理部91と、上記作画処理部91の生成した画面データを格納する記憶部92とを備えている。また、図2に示す作画エディタ装置19は、一例として、プログラマブル表示器13、あるいは、それを代替するパネルコンピュータ41(後述)と通信して画面データを伝送する構成であり、記憶部92に格納された画面データを、これらプログラマブル表示器13などの機器へ通信する通信処理部93が設けられている。なお、記録媒体経由で画面データを格納する場合は、通信処理部93に代えて/加えて記録媒体に記憶部92に格納された画面データを書き込む記録装置を設ければよい。
なお、上記各部材91〜93は、CPUなどの演算手段が、ROMやRAMなどの記憶手段に格納されたプログラムを実行し、タッチパネルや液晶表示装置などの入出力手段、あるいは、インターフェース回路などの通信回路を制御することによって実現される機能ブロックである。また、これらの部材のうち、各記憶部91a・92は、ROMやRAMなどの記憶装置自体であってもよい。したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体(例えば、CD−ROMなど)を読み取り、当該プログラムを実行するだけで、本実施形態に係る作画エディタ装置19を実現できる。なお、例えば、LAN15、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
上記作画処理部91は、画面データに対応する情報が一時的に格納される作業用の記憶部91aと、ユーザの指示を受け付けて、当該記憶部91aの内容を書き換える編集処理部91bと、編集処理部91bによって編集される記憶部91aの内容を図示しないディスプレイに表示させる表示処理部91cと、上記記憶部92に格納された画面データを当該記憶部91aに展開したり、編集後の記憶部91aの内容に応じた画面データを記憶部92へ書き込むデータ入出力処理部91dとを備えている。
ここで、上記画面データは、上述したように、画面上の領域と、当該領域への表示や入力に対応するデバイスを特定可能なアドレスとの対応関係を示すタグを組み合わせて構成されており、作画処理部91の編集処理部91bは、例えば、配置可能なタグの種類を示すパレットを表示し、パレット中のタグの種類を選択して画面上に所望の種類のタグを配置するようにユーザへ促す。また、編集処理部91bは、ユーザによるタグの配置操作を受け付けると、当該操作に応じて、編集中の画面データが上記配置されたタグのデータを含むように、記憶部91aの内容を変更し、表示処理部91cは、記憶部91aの内容に基づいて、当該タグを指定された座標に表示する。また、編集処理部91bは、ユーザのドラッグ&ドロップなどの操作に応じて記憶部91aの内容を変更して、当該タグの表示座標範囲の値を調整し、表示処理部91cは、変更後の位置にタグを表示する。また、編集処理部91bは、タグに関連するデバイスを特定するための情報としてアドレスや変数を入力するようにユーザへ促すと共に、入力されたアドレスや変数が当該タグに関連するように、記憶部91aの内容(より詳細には、タグのデバイスの変数の値)を変更し、表示処理部91cは、ユーザの指示に応じて、各タグに関連つけられているアドレスや変数を表示する。さらに、編集処理部91bは、変数に対するデバイスアドレスの入力操作を受け付け、入力されたアドレスを示すように、記憶部91aの内容(より詳細には、当該変数に関連付けて記憶されるデバイスアドレスの値)を変更し、表示処理部91cは、ユーザの指示に応じて、各変数に関連付けられているアドレスを表示できる。
また、本実施形態に係る編集処理部91bは、上述したように、タグの表示座標範囲の値として、タグを配置可能な領域の範囲を示す値を設定する操作を受け付けると共に、当該操作に応じて、記憶部91aの内容(より詳細には、タグの表示座標範囲の値)を変更できる。
なお、本実施形態に係るプログラマブル表示器13は、複数の画面(操作画面)を切り換えて表示可能であり、上記編集処理部91bは、操作画面の追加操作や、それぞれの操作画面に対する編集操作を受け付けると共に、例えば、タグのファイル番号の値を当該タグが配置された単位画面を示すように変更するなどして、各操作画面に関連付けて当該操作画面に配置された各タグのデータを、記憶部91aに格納できる。
一方、編集終了指示を受け付けると、データ入出力処理部91dは、記憶部91aの内容に応じた画面データを生成して、記憶部92に書き込む。これにより、編集されたタグを含む画面データを生成できる。
これらの結果、設計者は、作画エディタ装置19を操作して、画面上の所望の位置にタグを配置すると共に、各タグと変数とを対応付け、変数とデバイスのアドレスとを対応付けるだけで、画面データを作成できる。したがって、プログラマブル表示器13の表示プログラムを修正する場合に比べて容易に、各プログラマブル表示器13の表示や操作を決定(変更)でき、制御システム1のユーザ(作画エディタ装置19を操作する画面設計者)は、ターゲットシステム2の実情や、プログラマブル表示器13のオペレータの習熟度、あるいは、ユーザの好みや判断基準に合わせることができる。この結果、プログラマブル表示器13のオペレータは、当該画面データに基づいて表示された画面(操作画面)を確認することによって、デバイス2aの状態を的確に把握して、デバイス2aの状態変更の要否を判断できると共に、当該操作画面を操作することによって、デバイス2aの状態変更指示を的確に入力することができる。
また、本実施形態に係るプログラマブル表示器13のHMI処理部33は、スクリプト(プログラム)によって指定された動作も実行できるように構成されており、上記画面データには、プログラマブル表示器13が実行すべきスクリプトを示す情報(スクリプト情報)も含めることができる。ここで、スクリプト中では、式を評価する動作や、評価結果に応じて、スクリプトのうち、次に実行する部分を変更する動作を記述できるだけではなく、デバイスの状態を評価する動作や、デバイスの状態を評価結果に応じて変更する動作も記述できる。言い換えると、当該スクリプトには、動作を示す情報だけではなく、動作を示す情報に関連付けて、デバイスを特定するための情報も記述できる。
これに伴なって、上記作画エディタ装置19の編集処理部91bは、スクリプトの編集操作を受け付け、記憶部91aに格納されたスクリプト情報を、受け付けた編集操作に応じて更新できる。一方、表示処理部91cは、更新されたスクリプト情報の示すスクリプトを表示できる。さらに、データ入出力処理部91dは、画面データを生成する際、当該更新されたスクリプト情報を含めた画面データを生成できる。
また、本実施形態に係る編集処理部91bは、上記スクリプトを表示すべき操作画面またはウィンドウに関連付ける操作を受け付けることができ、データ入出力処理部91dは、操作画面またはウィンドウに関連付けたスクリプト情報を生成できる。一方、プログラマブル表示器13の画面データにおいて、あるスクリプト情報が、ある操作画面またはウィンドウに関連付けられている場合、HMI処理部33は、当該操作画面またはウィンドウが表示されているときに当該スクリプトを実行できる。
これにより、スクリプトを実行するプログラマブル表示器13は、デバイスの状態を、上記操作画面の設計者に指示された評価方法で評価し、それに応じて、デバイスの状態を変更することができる。
なお、プログラマブル表示器13(より詳細には、HMI処理部33)は、テキストで表現されたスクリプトの構成要素(例えば、文や式など)を逐次変換(インタープリト)して実行してもよいし、スクリプトを、中間コードなどのコードに、予め翻訳(コンパイル)しておき、そのコードを実行してもよい。
ここで、上述したように、不揮発性記憶部36はデバイスとして扱われる。したがって、上記作画エディタ装置19のユーザは、重要なデータをSRAM29に格納するように設定する際、プログラマブル表示器13外のデバイス2aの状態を当該データの示す状態に制御する場合と同様に、当該データをデバイスに書き込むためのタグ(例えば、入力タグやスクリプトなど)を画面データに設定し、当該デバイスに対応する変数に、不揮発性記憶部36の記憶領域を示すデバイスアドレス(例えば、”[#INTERNAL]LS0000”)を設定するだけで、当該データをSRAM29に格納できる。
一方、HMI処理部33は、不慮の電源断などから復帰した場合、上記SRAM29(不揮発性記憶部36)に記憶されているデータを参照して、電源断の直前の状態へと速やかに復旧できる。
さらに、本実施形態に係る制御システム1には、図2に示すように、プログラマブル表示器13を代替するパネルコンピュータ41が設けられている。なお、パネルコンピュータ41は、全てのプログラマブル表示器13を代替してもよいが、図2では、一例として、プログラマブル表示器13を代替したパネルコンピュータ41と、パネルコンピュータ41に代替される前のプログラマブル表示器13とが混在した制御システム1を例示している。また、当該パネルコンピュータ41が特許請求の範囲に記載の「特殊制御装置を代替する制御装置」に対応する。
上記パネルコンピュータ41は、汎用のコンピュータを、入力装置としてタッチパネルを採用し、防水処理を施すなどして、耐環境性能を向上させたものであって、電気的、あるいは、ソフトウェアから見たときのハードウェア構成は、OA用途で使用されている汎用のコンピュータと略同一のものが使用されている。当該パネルコンピュータ41の一例としては、例えば、OS(Operating System)として、Windows(登録商標)が動作するコンピュータなどが挙げられる。
具体的には、図6に示すように、本実施形態に係るパネルコンピュータ41は、図3に示すプログラマブル表示器13とSRAM29を除いて同様に、CPU51と、例えば、ハードディスクドライブ、フラッシュメモリあるいはROMなどからなり、当該CPU51によって実行されるプログラムおよび当該CPU51によって参照されるデータ(例えば、フォントデータなど)が格納される不揮発性の記憶装置52と、例えば、例えば、DRAMなどからなる揮発性のメインメモリ(揮発性メモリ)53とを備えている。当該メインメモリ53は、CPU51のアドレス空間にマップされており、CPU51は、上記プログラムを実行する際に、例えば、作業領域などとして、当該メインメモリ53を使用できる。
本実施形態では、上記不揮発性の記憶装置52の一例として、上記CPU51に接続されたROM52aと、I/O回路54を介してCPU51に接続されたハードディスクドライブ52bとが採用されており、上記CPU51は、これらの記憶装置52から、プログラムやデータなどを読み取ったり、プログラムおよびデータを更新したりできる。
さらに、パネルコンピュータ41には、プログラマブル表示器13と同様に、入出力装置として、液晶表示装置などの表示装置55およびタッチパネル56とを備えており、上記I/O回路54は、上記CPU51の指示に応じて、表示装置55およびタッチパネル56を制御できる。
また、パネルコンピュータ41は、プログラマブル表示器13と同様に、RS−232Cなどの規格のシリアルポート57aを介して通信する通信回路57も備えており、上記CPU51は、当該通信回路57およびシリアルポート57aを介して、例えば、上述したPLC11や後述する作画エディタ装置19などの外部装置と通信できる。さらに、パネルコンピュータ41には、プログラマブル表示器13と同様、図2に示すLAN15と通信するためのネットワーク・インターフェース回路58も設けられており、上記CPU51は、当該ネットワーク・インターフェース回路58およびLAN15を介して、上述した制御用ホストコンピュータ17、プログラマブル表示器13、あるいは、他のパネルコンピュータ41と通信できる。
ただし、上記パネルコンピュータ41には、プログラマブル表示器13とは異なって、バッテリバックアップされたSRAM29が省略されており、詳細は後述するように、揮発性のメインメモリ53と不揮発性の記憶装置52とが協調して動作することによって、上記バッテリバックアップされたSRAM29を代替している。
具体的には、上記プログラマブル表示器13と同様、パネルコンピュータ41のCPU51が不揮発性の記憶装置52に格納されたプログラムを実行して上記各部材51〜54および57〜58のうちの必要な部材を制御すると、パネルコンピュータ41には、機能ブロックとして、図1に示すように、PLC11と通信するPLC・IF部61と、上記LAN15に接続するためのLAN・IF部62と、上記各部材61・62並びに表示装置55およびタッチパネル56を制御するHMI処理部(制御手段)63と、上記記憶装置52およびメインメモリ53のいずれかを記憶媒体として使用することによって実現され、上記画面データを記憶する画面データ記憶部64と、上記記憶装置52およびメインメモリ53のいずれかを記憶媒体として使用することによって実現され、上記HMI処理部63が取得したデバイスの状態を記憶する状態記憶部65とが形成される。
なお、HMI処理部63は、HMI処理部33と同様に、画面データに基づいて、デバイスの状態を取得して表示する動作、および、受け付けた操作あるいは取得した他のデバイスの状態に応じてデバイスの状態を変更(制御)する動作を行っており、HMI処理部33と同様に、スクリプト(プログラム)によって指定された動作も実行できる。さらに、HMI処理部63は、スクリプト内に、以下の検出結果に応じた動作、すなわち、HMI処理部63自体の起動/終了、各種エラーの発生、時間、画面切り替え、あるいは、ボタン押下などの検出結果に応じた動作も記述できるように構成されている。
ここで、OA用途などで使用される汎用のコンピュータであれば、各部材51〜54および57〜58を備えているので、これらの部材を有するコンピュータが、上記あるいは後述のプログラム、すなわち、上記各部材61〜65および71〜73(後述)を実現するためのプログラムを記録した記録媒体(例えば、CD−ROMなど)を読み取り、当該プログラムを実行するだけで、本実施形態に係るパネルコンピュータ41を実現できる。なお、これらの部材のうち、各記憶部64および65は、記憶装置自体であってもよい。なお、例えば、LAN15、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
さらに、パネルコンピュータ41には、メインメモリ53の少なくとも一部を記憶媒体として使用する擬似SRAM処理部(代替手段)71と、予め定められた事象(イベント)が発生した場合に、上記メインメモリ53のうち、上記擬似SRAM処理部71の記憶媒体として使用する記憶領域の内容をバックアップするバックアップ処理部(バックアップ手段)72と、上記バックアップ処理部72がバックアップするタイミングを設定するタイミング設定部(第1および第2トリガ設定手段)73とが設けられている。
なお、これらの部材71〜73も、上記各部材61〜65と同様に、パネルコンピュータ41のCPU51が不揮発性の記憶装置52に格納されたプログラムを実行して上記各部材51〜54および57〜58のうちの必要な部材を制御することによって実現される機能ブロックである。また、本実施形態では、一例として、上記各部材61〜73を実現するためのプログラムがOS上で動作するアプリケーションプログラムとして実装されている。
上記擬似SRAM処理部71は、SRAM29を模擬するものであって、例えば、OSのメモリ管理部へ依頼するなどして、メインメモリ53の記憶領域のうち、模擬の対象するSRAM29と同じ広さの記憶領域を確保できる。また、擬似SRAM処理部71は、問い合わせに応じて、当該記憶領域の先頭アドレスを返答できる。なお、以下では、当該記憶領域を、擬似SRAM処理部71の記憶領域と称する。
また、バックアップ処理部72は、上記予め定められたイベントが発生したか否かを監視すると共に、当該イベントの発生を検出した場合、上記擬似SRAM処理部71の記憶領域の内容を、不揮発性の記憶装置52に書き込むことができる。さらに、例えば、パネルコンピュータ41の電源投入時など、正常動作の再開時には、バックアップ処理部72は、不揮発性の記憶装置52に書き込んだ内容を、擬似SRAM処理部71の記憶領域に書き込むことができる。
なお、上述したように、本実施形態に係る擬似SRAM処理部71の記憶領域は、擬似SRAM処理部71が動作を開始する度(電源投入毎など)に確保されるので、その度に、記憶領域の位置が変化する可能性がある。したがって、バックアップ処理部72は、例えば、擬似SRAM処理部71が動作を開始する度(電源投入毎など)など、記憶領域の位置が変わる可能性があると予め定められたタイミングになる度に、擬似SRAM処理部71へ問い合わせて、記憶領域の位置を取得している。
また、本実施形態では、これらの部材71〜73を制御するためのAPI(Application Programming Interface )として、バックアップ処理部72へバックアップタイミングを設定するためのインターフェース、擬似SRAM処理部71が代替するSRAM29のサイズを擬似SRAM処理部71に設定するためのインターフェース、擬似SRAM処理部71の内容のバックアップおよび不揮発性の記憶装置52からのリカバリーをバックアップ処理部72へ指示するためのインターフェース、あるいは、擬似SRAM処理部71の内容を読み書きするためのインターフェースなども設定されている。これにより、上記HMI処理部63以外のアプリケーションからも、上記各部材71〜73を制御したり、擬似SRAM処理部71の内容を読み書きしたりすることができる。
ここで、本実施形態に係るタイミング設定部73は、例えば、図7に示すように、バックアップ処理部72の監視対象として、HMI処理部63が取得/制御可能なデバイスの状態を設定でき、バックアップ処理部72は、監視対象としてデバイスの状態が設定された場合、予め定めれたタイミング(例えば、予め定められたスキャンタイム毎など)で、例えば、状態記憶部65の記憶領域のうち、設定されたデバイスの状態が記憶された領域の内容を確認したり、PLC11との通信を監視したりして、設定されたデバイスの状態を監視できる。したがって、例えば、PLC11からのトリガ信号の内容、PLC11に接続されているデバイス2aの信号(接点信号やアナログ信号)の内容をはじめとして、HMI処理部63が取得/制御可能なデバイスの状態を監視できる。また、タイミング設定部73は、上記イベントとして、上記監視対象となるデバイスの内容変更時に発生するイベント、当該デバイスの内容が所定の値に設定されている場合に発生するイベントなどを設定でき、バックアップ処理部72は、設定されたデバイスの状態を監視して、設定されたイベントが発生したか否かを判定できる。
なお、本実施形態では、HMI処理部63は、画面を表示するために、上記デバイスの状態を取得しており、バックアップ処理部72は、HMI処理部63によって取得されるデバイスの状態を監視している。これにより、バックアップ処理部72において、デバイスの状態を取得するための構成の殆どは、HMI処理部63がデバイスの状態を取得するための構成と共有されている。
また、本実施形態に係るタイミング設定部73は、バックアップ処理部72に対して周期的に書き込むように設定でき、バックアップ処理部72は、周期的な書き込みが設定されている場合、前回のバックアップした時点から予め定められた時間が経過する度に、擬似SRAM処理部71の記憶領域の内容を不揮発性の記憶装置52に書き込むことができる。
例えば、図7の例では、タイミング設定部73は、バックアップのトリガとなるイベントを選択するセレクトボックスB1を表示して、上記デバイスの状態によって発生するイベントおよび上記周期的に発生するイベントのうち、いずれを選択するかの入力(監視すべきイベントの種類の入力)を促している。なお、図7では、一例として、上記セレクトボックスB1が、「周期的に発生するイベントと、デバイスとしてのビットデバイスの内容が変化したときに発生するイベントと、ビットデバイスがONのときに発生するイベントとのいずれかが発生したときに、バックアップする」ように設定された状態を図示している。
また、図7の例では、タイミング設定部73は、上記セレクトボックスB1に加えて、周期の入力を促すテキストボックスB2を表示して、周期の入力を受け付けている。さらに、タイミング設定部73は、監視対象とするデバイスを特定するための情報の入力を促す入力欄として、例えば、テキストボックスB3を表示して、当該情報の入力を受け付けている。
さらに、タイミング設定部73は、例えば、上記イベントの種類、デバイスを特定するための情報あるいは周期など、監視すべきイベントを特定するための情報の入力を受け付けると、当該イベントを監視するように、バックアップ処理部72へ指示できる。
ここで、本実施形態に係るタイミング設定部73は、バックアップ処理部72が監視対象とするデバイスを指定する際、作画エディタ装置19にてデバイスを指定する際と同じ名称による指定を受け付けており、作画エディタ装置19と、タイミング設定部73とで、互い同じ名称でデバイスが指定された場合、タイミング設定部73は、バックアップ処理部72に対して、HMI処理部63が状態を取得したり制御するデバイスと同じデバイス、あるいは、それを代替するデバイスの状態を監視するように設定する。
例えば、図7の例では、テキストボックスB3には、擬似SRAM処理部71の記憶領域を示すデバイスアドレス(例えば、”[#INTERNAL]LS0000”)が入力されている状態を示している。ここで、上述したように、”[#INTERNAL]LS0000”は、作画エディタ装置19でSRAM29の一部としてのデバイスを指定したときと同じ名称が使用されている。さらに、プログラマブル表示器13では、SRAM29の記憶領域の一部を示しているが、パネルコンピュータ41では、擬似SRAM処理部71の記憶領域の一部で代替されている。したがって、タイミング設定部73において、”[#INTERNAL]LS0000”と設定された場合、バックアップ処理部72は、擬似SRAM処理部71の記憶領域のうち、SRAM29の”[#INTERNAL]LS0000”で指定される記憶領域を代替する記憶領域の内容を監視する。
なお、上記では、バックアップ処理部72に設定可能なイベントが、デバイスの状態によって発生するイベントと、周期的に発生するイベントとである場合を例にして説明したが、他のイベントを設定可能に構成してもよい。例えば、タイミング設定部73は、バックアップ処理部72の監視対象としてOSからの通知も設定でき、バックアップ処理部72は、OSからの通知が設定されている場合、設定された通知を受け取った時点で、擬似SRAM処理部71の記憶領域の内容を不揮発性の記憶装置52に書き込んでもよい。なお、OSからの通知としては、例えば、UPS(Uninterrupted Power Supply)から電源断を報告する信号を受け取ったことの通知、レジューム状態に入ることまたはレジューム状態から復帰したことの通知、あるいは、OS上で動作しているプログラムまたはOSが開始/終了することの通知などが挙げられる。一例として、バックアップ処理部72は、レジュームに入る時にOSから出される通知を受けて、擬似SRAM処理部71の記憶領域の内容を不揮発性の記憶装置52に書き込むことができる。また、他の例として、バックアップ処理部72は、OSまたはプログラムが終了すること(終了したこと)の通知をOSから受けて、擬似SRAM処理部71の記憶領域の内容を不揮発性の記憶装置52に書き込むことができる。
また、本実施形態に係るバックアップ処理部72は、上記記憶領域の内容を不揮発性の記憶装置52に書き込む際、RAWデータの書き込みによって、上記記憶装置52の予め定められた記憶領域に上記内容を書き込んでいる。
ここで、当該記憶装置52に構築されたファイルシステム経由で書き込む構成では、ファイルシステムには、データとは別に、当該データの格納場所を管理するための管理領域も設けられており、データの更新に伴なって、当該管理領域も更新される可能性がある。この場合、管理領域の更新中に予期しない電源断によって、管理領域の内容が破壊され、ファイルシステムが破壊されると、データ自体は正しく書き込めているにも拘わらず、管理領域の内容が破壊されているため、記憶装置52のデータにアクセスできなく虞れがある。
これに対して、本実施形態に係るバックアップ処理部72は、RAWデータの書き込みによって、上記記憶装置52の予め定められた記憶領域に、上記擬似SRAM処理部71の記憶領域の内容を書き込んでいる。したがって、当該内容の書き込み中に不慮の電源断が発生しても、上述の不具合の発生を防止でき、正常動作の再開時において、バックアップ処理部72は、電源断までに書き込んだところまでのデータを正しく読み出すことができる。
加えて、本実施形態に係るタイミング設定部73は、図7に示すように、バックアップ処理部72に対して、自らの状態(書き込み中ステータス)に応じてデバイスの状態を変更するように設定できる。一方、バックアップ処理部72は、当該設定がなされている場合、不揮発性の記憶装置52に擬似SRAM処理部71の記憶領域の内容を書き込んでいるか否かに応じて、設定されたデバイスの内容を変更できる。なお、本実施形態に係るバックアップ処理部72は、例えば、上記状態記憶部35の記憶領域のうち、上記設定されたデバイスの状態が格納される領域を変更して、当該デバイスの内容を変更している。
例えば、図7の例では、タイミング設定部73は、バックアップ処理部72の状態に応じてデバイスの状態を変更するようにバックアップ処理部72に指示するか否かの入力を促すチェックボックスB4を表示すると共に、バックアップ処理部72の状態に応じて変更すべきデバイスを特定するための情報の入力を促す入力欄として、例えば、テキストボックスB5を表示している。さらに、タイミング設定部73は、バックアップ処理部72の状態に応じて状態を変更すべきデバイスの入力を受け付けると、バックアップ処理部72に対して、自らの状態に応じて、上記デバイスの状態を変更するように指示する。
これにより、バックアップ処理部72は、不揮発性の記憶装置52に擬似SRAM処理部71の記憶領域の内容を書き込んでいる場合、上記デバイス(図の例では、”[#INTERNAL]LS0001”)の値を、書き込み中を示す値に設定する。また、バックアップ処理部72は、書き込みが終了すると、当該デバイスの値を、書き込みしていないことを示す値に設定する。
ここで、上記デバイスは、HMI処理部63が状態を把握可能なデバイスである。したがって、制御システム1のユーザ(作画エディタ装置19を操作する画面設計者)は、ターゲットシステム2のデバイス2aの状態を表示したり、状態に応じて他のデバイスの状態を変更するようにプログラマブル表示器13(パネルコンピュータ41)を設定する場合と同様に、作画エディタ装置19を操作して画面データを変更することによって、上記バックアップ処理部72によって変更されるデバイスの状態、上記バックアップ処理部72の状態を表示したり、当該状態に応じて他のデバイスの状態を変更するように、パネルコンピュータ41を設定できる。
一方、上記プログラムのうち、部材61〜65を実現するためのプログラムは、プログラマブル表示器13の各部材31〜35を実現するためのプログラムを、パネルコンピュータ41でも動作するように移植したものであって、上記各部材61〜65は、基本的には、上記各部材31〜35と同様に動作する。
これにより、パネルコンピュータ41は、プログラマブル表示器13と同様に、画面データ記憶部64に格納された画面データに基づいて、デバイスの状態を取得して表示したり、受け付けた操作あるいは取得した他のデバイスの状態に応じてデバイスの状態を変更したりできる。なお、プログラマブル表示器13のHMI処理部33と同様、パネルコンピュータ41のHMI処理部63は、取得したデバイスの状態を状態記憶部64に記憶し、デバイスの状態表示する際、あるいは、デバイスの状態を変更する際などに、上記画面データを参照している。
ただし、上述したように、パネルコンピュータ41には、プログラマブル表示器13とは異なってSRAM29が設けられていない。したがって、上記HMI処理部63は、SRAM29を記録媒体とする不揮発性記憶部36へアクセスする代わりに、上記擬似SRAM処理部71にアクセスするように変更されている。
より詳細に説明すると、上述したように、本実施形態に係るHMI処理部33としてCPU21を動作させるプログラムにおいて、不揮発性記憶部36の指定されたアドレスへアクセスするルーチンでは、例えば、不揮発性記憶部36としてのSRAM29の先頭アドレスをベースアドレスに設定する手順、および、上記指定されたアドレスを、そのベースアドレスからのオフセットとして指定することによって、上記指定されたアドレスへアクセスする手順が記述されている。なお、1度ベースアドレスが設定されると、そのベースアドレスが他の用途のために変更されない限り、再度のベースアドレスの設定は不要である。したがって、一般には、不揮発性記憶部36の指定されたアドレスへアクセスするルーチンでは、1度のベースアドレス設定に対して、各アドレスへのアクセスは、複数回行われている。
これに対して、本実施形態に係るHMI処理部63としてCPU51を動作させるプログラムにおいて、上記擬似SRAM処理部71の指定されたアドレスへアクセスするルーチンでは、不揮発性記憶部36としてのSRAM29の先頭アドレスをベースアドレスに設定する手順に代えて、上記擬似SRAM処理部71に、その記憶領域の先頭アドレスを問い合わせると共に返された値をベースアドレスに設定する手順が記述されている。なお、その後の手順、すなわち、各アドレスへアクセスする手順は、変更されていないが、当該手順は、ベースアドレスを基準にしたオフセットによって、アクセス対象とする記憶領域のアドレスを指定しているので、何ら支障なく、各アドレスへアクセスできる。
ここで、比較例として、上記擬似SRAM処理部71の記憶領域をファイル上に確保する構成では、上記各アドレスへアクセスする手順の全てを、ファイルに読み書きする手順に変更する必要がある。したがって、移植に手間がかかってしまう。
これに対して、本実施形態に係る擬似SRAM処理部71の記憶領域は、メインメモリ53上に確保されている。したがって、ファイルに確保する構成と異なって、上記各アドレスへアクセスする手順は、何ら変更する必要がない。
なお、上記擬似SRAM処理部71の記憶領域は、メインメモリ53上に確保されているので、ファイルに確保する構成とは異なって、SRAM29にアクセスする場合と略同じ速度でアクセスできる。したがって、アクセスする際のタイミングを変更する必要もない。
これらの結果、HMI処理部33として動作するプログラムを修正してHMI処理部63として動作させるプログラムを作成する際、ファイルに格納する構成と比較して、プログラムの変更箇所の数を削減でき、移植時の手間を削減できる。
一方、不慮の電源断などの後、電力供給が再開された場合、バックアップ処理部72は、上記不揮発性の記憶装置52の予め定められた記憶領域に書き込まれていた、上記擬似SRAM処理部71の記憶領域の内容を読み出して、擬似SRAM処理部71の記憶領域に書き込んで、擬似SRAM処理部71の内容をリカバリーできる。さらに、HMI処理部63は、不慮の電源断などの後、電力供給が再開された場合、プログラマブル表示器13のHMI処理部33と同様に、上記擬似SRAM処理部71に記憶されているデータを参照し、電源断の直前の状態へと速やかに復旧できる。
以上のように、本実施形態に係るパネルコンピュータ41は、バッテリバックアップされたSRAM29が設けられたプログラマブル表示器13を代替しており、パネルコンピュータ41のHMI処理部63は、プログラマブル表示器13のHMI処理部33と同様、制御対象となる各デバイスの状態を取得する動作と、当該取得した各デバイスの状態を表示する動作と、当該取得した各デバイスの状態に基づいて各デバイスの状態を制御する動作とを行っている。
ここで、プログラマブル表示器13には、SRAM29が設けられており、上記HMI処理部33の取得したデバイスの状態変化に応じて内容が更新されるのに対して、パネルコンピュータ41には、揮発性のメインメモリ53と、それよりもアクセス速度の遅い不揮発性の記憶装置52としか設けられていない。したがって、上記SRAM29の更新タイミングと同様のタイミングで、常に、不揮発性の記憶装置52の内容を更新すると、上記不揮発性の記憶装置52のアクセス速度の遅さによって、パネルコンピュータ41の動作速度が低下してしまう。一方、揮発性のメインメモリ53は、不揮発性の記憶装置52よりもアクセス速度が速いため、上記SRAM29の更新タイミングと同様のタイミングで常時内容を更新しても、動作速度の低下が発生しない。ところが、不所望な電源断が発生すると、上記プログラマブル表示器13のSRAM29とは異なって書き込んだ内容が失われてしまう。
これに対して、上記構成では、パネルコンピュータ41の擬似SRAM処理部71が、上記揮発性のメインメモリ53の記憶領域の少なくとも一部を上記SRAM29の代替領域として使用して、上記SRAM29を代替している。さらに、パネルコンピュータ41のバックアップ処理部72は、予め定められたトリガが発生すると、上記擬似SRAM処理部71の内容を上記不揮発性の記憶装置52に書き込んでいる。
ここで、SRAM29(あるいはそれを代替する擬似SRAM処理部71)の内容が更新されるタイミングは、HMI処理部33(あるいは、それを代替するHMI処理部63)の動作、あるいは、デバイスの種類などによって変化する。また、デバイスがPLC11を介して上記パネルコンピュータ41に接続されている場合は、PLC11の動作(ラダープログラムなどの制御プログラム)などによっても変化する。この結果、制御システム1毎に、上記擬似SRAM処理部71の内容が更新されるタイミングも互いに異なっており、当該擬似SRAM処理部71の内容を不揮発性の記憶装置52に格納する際の適切なタイミングも、互いに異なってしまう。なお、不適切なタイミングで擬似SRAM処理部71の内容を不揮発性の記憶装置52に書き込むと、書き込み頻度が高過ぎてパネルコンピュータ41の動作速度を低下させたり、書き込み頻度が低過ぎて不所望な電源断時に必要なデータを消失させてしまったりしてしまう。
これに対して、上記パネルコンピュータ41のタイミング設定部73は、上記バックアップ処理部72のトリガの指定として、上記HMI処理部63が状態を取得する各デバイスの状態または各デバイスの状態変化のうちの少なくとも1つの指定を受け付け、当該指定されたトリガを上記バックアップ処理部72のトリガとして設定する。したがって、バックアップ処理部72は、制御システム1の実情に即したタイミングで擬似SRAM処理部71の内容を不揮発性の記憶装置52に書き込むことができ、パネルコンピュータ41の動作速度を余り低下させずに、必要なデータが消失する可能性を抑制できる。
また、本実施形態では、上記HMI処理部33・63は、上記制御対象となる各デバイスの状態を取得する動作と当該取得した各デバイスの状態を表示する動作と当該取得した各デバイスの状態に基づいて各デバイスの状態を制御する動作とを規定する画面データであって、各動作を特定する情報と各デバイスを特定する情報との対応関係が記述された画面データに基づいて、上記取得動作、表示動作および制御動作を行っている。
当該構成では、上記HMI処理部33・63は、各動作を特定する情報と各デバイスを特定する情報との対応関係が記述された画面データに基づいて、上記取得動作、表示動作および制御動作を行っている。したがって、画面データの設計者は、制御システム1の実情に即して上記画面データに当該対応関係を記述するだけで、上記HMI処理部33・63に上記取得動作、表示動作および制御動作を行わせることができ、各動作を全てをプログラムする構成よりも容易に、上記HMI処理部33・63の動作を制御システム1の実情に合わせて設定できる。この結果、パネルコンピュータ41は、パネルコンピュータ41の製造者よりも制御システム1の運営者に近い者(例えば、運営者自体、あるいは、運営者からの委託を受けた設計者など)が設計した画面データに基づいて動作することによって、当該パネルコンピュータ41が配備された制御システム1の実情に即した状態取得動作、表示動作および制御動作を行うことができる。
ここで、上述したように、バックアップ処理部72が擬似SRAM処理部71の内容を不揮発性の記憶装置52に格納する際の適切なタイミングは、HMI処理部33(あるいは、それを代替するHMI処理部63)の動作によっても変化する。
ところが、上記パネルコンピュータ41では、タイミング設定部73は、上記バックアップ処理部72のトリガの指定として、上記HMI処理部63が状態を取得する各デバイスの状態または各デバイスの状態変化のうちの少なくとも1つの指定を受け付け、当該指定されたトリガを上記バックアップ処理部72のトリガとして設定できる。したがって、例えば、上記画面データの設計者など、HMI処理部33(あるいは、それを代替するHMI処理部63)の動作を把握している者が、タイミング設定部73を操作することによって、制御システム1の実情にさらに即したトリガを上記バックアップ処理部72に設定できる。この結果、バックアップ処理部72は、制御システム1の実情に即したタイミングで擬似SRAM処理部71の内容を不揮発性の記憶装置52に書き込むことができ、パネルコンピュータ41の動作速度を余り低下させずに、必要なデータが消失する可能性を抑制できる。
さらに、本実施形態では、上記SRAM29の記憶領域の一部の領域と、上記擬似SRAM処理部71の記憶領域のうち、それに対応する領域とは、上記画面データにてデバイスとして記述可能である。
上記構成では、上記SRAM29の記憶領域の一部の領域と、上記擬似SRAM処理部71の記憶領域のうち、それに対応する領域とは、上記画面データにてデバイスとして記述できる。したがって、画面データの設計者は、重要と判断したデータを当該領域に書き込むように、画面データを記述することによって、当該データが消失する可能性を低減できる。
ここで、当該データがどの程度重要であるかは、画面データの設計者によって判断されるが、上記パネルコンピュータ41では、上述したように、パネルコンピュータ41のタイミング設定部73の設定によって、バックアップ処理部72のトリガを設定できる。したがって、例えば、画面データの設計者など、上記データの重要度を把握している者がタイミング設定部73を操作することによって、制御システム1の実情にさらに即したトリガを上記バックアップ処理部72に設定できる。この結果、バックアップ処理部72は、制御システム1の実情に即したタイミングで擬似SRAM処理部71の内容を不揮発性の記憶装置52に書き込むことができ、パネルコンピュータ41の動作速度を余り低下させずに、必要なデータが消失する可能性を抑制できる。
また、本実施形態に係るタイミング設定部73は、上記画面データを作成する作画エディタ装置19が上記各動作に関連するデバイスの指定を受け付ける際の手順と同じ手順で、その状態または状態変化が上記バックアップ処理部72のトリガとなるデバイスの指定を受け付けている。
当該構成では、上記タイミング設定部73は、上記画面データを作成する作画エディタ装置19が上記各動作に関連するデバイスの指定を受け付ける際の手順と同じ手順で、その状態または状態変化が上記バックアップ処理部72のトリガとなるデバイスの指定を受け付けることができるので、画面データの設計者は、作画エディタ装置19を操作して、上記各動作に関連するデバイスを指定するときと同じ手順で、バックアップ処理部72のトリガとなるデバイスを指定でき、パネルコンピュータ41の操作性を向上できる。
さらに、本実施形態に係るタイミング設定部73は、予め定められた時間間隔で、上記バックアップ処理部72が上記擬似SRAM処理部71の内容を上記不揮発性の記憶装置52に書き込むように設定できる。
当該構成では、バックアップ処理部72は、予め定められた時間間隔で、上記擬似SRAM処理部71の内容を上記不揮発性の記憶装置52に書き込むことができる。したがって、上記デバイスの状態に関連するトリガが発生しない場合でも、上記擬似SRAM処理部71の内容は、上記不揮発性の記憶装置52に格納される。この結果、必要なデータが消失する可能性を、さらに抑制できる。
なお、この場合、上記擬似SRAM処理部71の内容は、上記デバイスの状態に関連するトリガが発生した場合にも上記不揮発性の記憶装置52に格納される。したがって、周期的なトリガの設定のみが可能な構成と比較すると、上記時間間隔をより長く設定しても、必要なデータが消失する可能性を充分に低く設定できる。このように、本実施形態に係るパネルコンピュータ41では、イベントドリブンなトリガの設定と周期的な書き込みトリガの設定とを、制御システム1の実情に合わせて設定できるので、システムの仕様に影響させずに(必要なデータが電源断があっても保持されているのに)、パネルコンピュータ41の動作速度低下を、充分低いレベルに抑えることができる。
また、本実施形態に係るバックアップ処理部72は、上記擬似SRAM処理部71の内容を不揮発性の記憶装置52に書き込んでいる期間であるか否かに応じて、上記各デバイスのうち、予め定められたデバイスの状態を変更している。
当該構成では、上記各デバイスのうち、予め定められたデバイスの状態は、上記擬似SRAM処理部71の内容の書き込み期間中であるか否かに応じて変更されるので、上記HMI処理部63は、当該デバイスの状態を取得し、当該取得した各デバイスの状態を表示する動作および当該取得した各デバイスの状態に基づいて各デバイスの状態を制御する動作の少なくとも一方を行うことができる。この結果、パネルコンピュータ41は、書き込み期間中であるか否かに応じて、表示を変更したり各デバイスの制御動作を変更したりでき、より適切な動作を行うことができる。
一例として、パネルコンピュータ41は、書き込み期間中、電源を遮断しないように表示したりして、オペレータに通知できる。なお、本実施形態では、HMI処理部63が画面データに基づいて動作しているので、画面データの設計者は、書き込み期間中であるか否かに応じて上記各動作を変更するように画面データを設計できる。したがって、より制御システム1の実情に即した動作をパネルコンピュータ41に行わせることができる。
さらに、本実施形態に係るタイミング設定部73は、上記バックアップ処理部72が状態を変更するデバイスの指定を受け付けると共に、当該指定されたデバイスの状態を変更するように上記バックアップ処理部72に設定している。
ここで、バックアップ処理部72が状態を変更するデバイスの状態が固定されていると、変更可能な構成と比較して、HMI処理部63に所望の動作を行わせる際に、HMI処理部63の動作を変更する必要のある箇所が多くなる可能性がある。この場合、例えば、画面データの設計者が画面データの記述を変更したり、パネルコンピュータ41の製造者がHMI処理部63のプログラム自体を変更したりすることが必要になり、HMI処理部63の動作を変更する際に手間がかかる虞れがある。
これに対して、本実施形態では、タイミング設定部73へ指示することによって、バックアップ処理部72が状態を変更するデバイスの状態を変更できる。この結果、当該デバイスが固定されている構成と比較して、HMI処理部63の動作変更が必要な箇所の数を削減でき、パネルコンピュータ41の製造者(例えば、各部材61〜73としてコンピュータを動作させるプログラムの製作者など)、あるいは、画面データの設計者の手間を削減できる。
本実施形態に係る不揮発性の記憶装置には、ファイルシステムを介してアクセスする第1領域と、当該ファイルシステムを介さずにアクセスする第2領域とが設けられており、上記バックアップ処理部72は、上記擬似SRAM処理部71の内容を当該第2領域に書き込んでいる。
ここで、比較例として、擬似SRAM処理部71の内容をファイルシステムを介してアクセスされる第1領域に書き込む構成の場合、擬似SRAM処理部71の内容だけではなく、ファイルシステムの管理情報も更新される可能性がある。したがって、実際に不揮発性の記憶装置52に書き込まれるデータ量が増大する虞れがある。また、例えば、不慮の電源断などによって、管理情報の更新に失敗すると、ファイルシステム全体が壊れて、ファイルシステム上に配置されたデータにアクセスできなくなる虞れがある。この場合は、電源断までの間に、一部のデータの書き込みに成功していたとしても、当該データにアクセスできなくなってしまい、復旧が困難になるだけではなく、完全な復旧ができなくことさえある。
これに対して、本実施形態では、擬似SRAM処理部71の内容が第1領域ではなく、第2領域に書き込まれるので、第1領域に書き込む構成と比較して、実際に不揮発性の記憶装置52に書き込まれるデータ量を抑制でき、擬似SRAM処理部71の内容の書き込みに要する時間を短縮できる。また、擬似SRAM処理部71の内容を書き込んでいる最中に不慮の電源断などが発生しても、管理情報の更新失敗に伴なうファイルシステムの破壊が発生しないので、電源断が発生するまでのデータには、何ら支障なくアクセスできる。この結果、必要なデータが消失する可能性を、さらに抑制できる。
なお、上記では、パネルコンピュータ41およびプログラマブル表示器13に、PLC11が外付けされる場合を例にして説明したが、これに限るものではない。パネルコンピュータ41およびプログラマブル表示器13が、ラダープログラムなどの制御プログラムを実行することによって、PLC11としても動作して、ターゲットシステム2のデバイスを直接制御してもよい。
また、上記では、パネルコンピュータ41およびプログラマブル表示器13が、画面データに基づいて、制御対象となる各デバイスの状態を取得する動作と、当該取得した各デバイスの状態を表示する動作と、当該取得した各デバイスの状態に基づいて各デバイスの状態を制御する動作とをの少なくとも一方とを行う場合について説明したが、これに限るものではない。制御対象となる各デバイスの状態を取得する動作と、当該取得した各デバイスの状態を表示する動作および当該取得した各デバイスの状態に基づいて各デバイスの状態を制御する動作の少なくとも一方とを行う場合でも、上記タイミング設定部73によって、バックアップ処理部72は、制御システム1の実情に即したタイミングで擬似SRAM処理部71の内容を不揮発性の記憶装置52に書き込むことができるので、パネルコンピュータ41の動作速度を余り低下させずに、必要なデータが消失する可能性を抑制できる。
さらに、上記構成では、パネルコンピュータ41がプログラマブル表示器13を代替する構成について説明したが、これに限るものではない。パネルコンピュータ41は、以下のような特殊な制御装置、すなわち、各デバイスの状態を取得する動作と、当該取得した各デバイスの状態を表示する動作および当該取得した各デバイスの状態に基づいて各デバイスの状態を制御する動作の少なくとも一方とを行うと共に、当該取得したデバイスの状態変化に応じて内容が更新される不揮発性の特殊メモリとを有する制御装置であれば、例えば、PLC11を代替してもよい。
なお、この場合であっても、PLC11の特殊メモリを代替する擬似SRAM処理部の内容をバックアップする際の適切なタイミングは、PLC11がデバイスを制御する際の動作(例えば、ラダープログラムなどの制御プログラムなど)に大きく影響される。したがって、パネルコンピュータ41にバックアップ処理部72およびタイミング設定部73を設け、各デバイスの状態または各デバイスの状態変化のうちの少なくとも1つの指定をタイミング設定部73が受け付け、当該指定されたトリガを上記バックアップ処理部72のトリガとして設定すれば、同様の効果が得られる。