本発明の一実施形態について図1ないし図13に基づいて説明すると以下の通りである。すなわち、本実施形態に係る制御システムは、例えば、製造プラントなどに設けられたターゲットシステムを制御するために好適に用いられており、例えば、ベルトコンベアー式の自動組付機など、当該ターゲットシステムのデバイス(制御対象)を制御するために用いられている。
以下では、上記制御システムのHMIとして機能するグラフィック操作パネルがCSV出力や印刷などのデータ出力を行うための構成について説明する前に、制御システム全体の概略構成および動作について説明する。すなわち、図2に示すように、当該制御システム1では、複数の制御ユニット11がローカルエリアネットワーク(LAN)12を介して互いに接続されている。各制御ユニット11には、上記ターゲットシステム2のデバイス3を制御する制御装置としてのPLC13と、例えば、シリアルケーブルなどの通信経路を介して、当該PLC13に接続されると共に、制御システム1のHMIとして、デバイス3の状態を表示し、オペレータによるデバイス3への操作を受け付けるグラフィック操作パネル(タッチパネル装置)14とが設けられている。さらに、本実施形態に係る制御システム1では、上記LAN12に、多くの場合は上記グラフィック操作パネル14よりも離れた場所から、制御システム1全体を管理する制御用ホストコンピュータ15が接続されている。
なお、図2では、説明の便宜上、LAN12に2つの制御ユニット11が接続され、各制御ユニット11のグラフィック操作パネル14の一方には、2台のPLC13が、他方には、3台のPLC13が接続されると共に、各PLC13には、1台ずつのデバイス3が接続されている場合を例示しているが、当然ながら、それぞれの接続台数は任意に設定できる。また、デバイスは、デバイスアドレスにより特定可能で、しかも、状態を取得したり、制御(変更)できるものであればよく、例えば、デバイス3自体であってもよいし、例えば、PLC13やグラフィック操作パネル14の記憶装置など、制御システム1に設けられた記憶装置の一領域を示していてもよい。
さらに、本実施形態に係る制御システム1では、上記各制御ユニット11間を接続する際、グラフィック操作パネル14同士が、例えば、イーサネット(登録商標)などのLAN12を介して接続されている。
このように、本実施形態に係る制御システム1では、制御システム1に必須の構成であり、しかも、HMIとして動作するため、演算能力に余力のあるグラフィック操作パネル14が通信の大半を処理するように構成されている。さらに、各グラフィック操作パネル14は、自らに接続されているPLC13の機種に固有の専用プロトコルと、LAN12での共通プロトコルとを変換して、他のグラフィック操作パネル14など、LAN12内の機器と、PLC13との通信を中継する。なお、共通プロトコルと専用プロトコルとの間のプロトコル変換には、同じ指示に同じコードが割り当てられるように予め定められた共通のコマンドと上記共通のコマンドに対応するPLC13固有のコマンドとの間の変換や、データやアドレスの表現方法の変換なども含まれる。
これにより、LAN12内の機器(グラフィック操作パネル14など)は、他のグラフィック操作パネル14に接続されているPLC13の機種に拘らず、LAN12を介して共通のプロトコルで通信できる。この結果、互いに異なる機種のPLC13の混在する制御システム1が比較的容易に実現されている。
より詳細には、上記グラフィック操作パネル14は、表示/制御動作を規定する画面データに基づいて、入力受け付け動作および画面表示動作を行う表示器であって、例えば、液晶表示パネルなどからなり、デバイス3の状態を表示するディスプレイ21と、例えば、上記ディスプレイ21の表示画面上に配され、オペレータからの操作を受け付けるタッチパネル22と、上記PLC13と接続するためのPLC・インターフェース部(PLC・IF部)23と、上記LAN12と接続するためのLAN・IF部24と、上記画面データが予め格納されると共に、デバイス3の状態などが記憶される記憶部25と、記憶部25の画面データを参照しながら、上記部材21〜24を制御するHMI処理部26とを備えている。
なお、上記各部材23〜26、並びに、後述の各61〜63および71〜74は、CPUなどの演算手段が、ROMやRAMなどの記憶手段に格納されたプログラムを実行し、ディスプレイ21やタッチパネル22などの入出力手段、あるいは、インターフェース回路などの通信回路を制御することによって実現される機能ブロックである。なお、これらの部材のうち、各記憶部25・62・71は、ROMやRAMなどの記憶装置自体であってもよい。
したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体(例えば、CD−ROMなど)を読み取り、当該プログラムを実行するだけで、本実施形態に係るグラフィック操作パネル14、あるいは、後述する作画エディタ装置16を実現できる。なお、例えば、LAN12、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
本実施形態に係る画面データは、オブジェクトを、グラフィック操作パネル14に生成するためのデータであって、グラフィック操作パネル14のHMI処理部26は、当該画面データの指示するパラメータ(属性値)を持ち、しかも、当該画面データの指示する種類のオブジェクトを生成できる。
ここで、画面データの指示によりHMI処理部26が生成可能なオブジェクトには、文字列あるいは画像など、予め定められた情報を表示するオブジェクトだけではなく、例えば、デバイス3の状態を取得して操作画面上に表示する動作、操作画面への操作を受け付けてデバイス3の状態変更を指示する動作など、種々の動作を行う部品オブジェクト(図示せず)も含まれている。
当該部品オブジェクトは、HMI処理部26により生成されると、上記種々の動作を行って、操作画面にデバイス3の状態を表示したり、操作画面への操作に従ってデバイス3の状態変更を指示する。これにより、グラフィック操作パネル14は、画面データの示す各デバイス3の状態を操作画面上に表示したり、デバイス3の状態変更操作を受け付けたりできる。
より詳細に説明すると、本実施形態に係る表示部品オブジェクトは、デバイスの状態の表示方法(表示データ形式)を、自らの種類と表示データ形式属性AFの値とによって特定しており、表示部品オブジェクトの種類として、例えば、数値でデバイスの状態を表示するものと、図形の形状でデバイスの状態を表示するものと、グラフでデバイスの状態を表示するものなどが設けられている。
ここで、PLC13のメモリ13aには、種々の表示データ形式のデータを格納可能であり、各データの表示データ形式としては、各データの用途などに応じた値に設定できる。例えば、数値の場合、表示データ形式として、例えば、Decとして表現すべきデータであるか、Hexとして表現すべきデータであるか、BCDとして表現すべきデータであるか、または、Octとして表現すべきデータなど、いずれの表現方法で表現すべきデータであるかと、符号ありか否かと、データ長とのいずれか、あるいは、それらの組み合わせなどが挙げられる。また、文字列の場合、表示データ形式として、文字長、終端文字、文字コード、改行コードなどが挙げられる。なお、PLC13の機種、あるいは、PLC13に格納される制御プログラムが変更されれば、互いに同じ用途(例えば、あるデバイス3の状態を示すデータなど)であっても、それまでとは異なる表示データ形式で格納されることもある。
一方、本実施形態に係る表示部品オブジェクトのうち、数値を表示する表示部品オブジェクトには、図3および図4に示すように、PLC13に格納されたデータが、いずれの表示データ形式のデータであったとしても、正しくデータを表示できるように、表示データ形式の属性(表示データ形式属性)AFが付されており、表示部品オブジェクトは、取得したデータが、当該表示データ形式属性AFの示す表示データ形式であると判断して、表示すべき値を特定できる。
本実施形態では、一例として、いずれの表現方法で表現すべきデータであるかと、符号ありか否かと、データ長との組み合わせで、数値の表示データ形式を特定しており、図4に示す例では、あるオブジェクトは、”D01000”のデータを、符号なし、かつ、16ビット長のDec表現で表現すべきデータとして処理するように設定されている。
また、上記部品オブジェクトのうち、デバイス3の状態を取得して表示する表示部品オブジェクトである場合には、図3および図4に示すように、状態を取得すべきデバイス3を特定するためのデバイス属性ADが付されており、当該表示部品オブジェクトは、例えば、PLC・IF部23へ指示してデバイス3の状態を取得したり、PLC・IF部23が予め定められたタイミングで取得しているデバイス3の状態を参照したりして、デバイス3の状態を取得することができる。なお、本実施形態では、上記デバイス属性ADとして、例えば、図4に示すように、PLC13のメモリ13aにおけるアドレスを示す値(図4の例では、”D01000”)が設定されている。
さらに、上記表示部品オブジェクトには、図3に示すように、当該デバイス3の状態を表示する領域の位置を示す位置属性ALも付されており、表示部品オブジェクトは、操作画面のうち、当該位置属性ALの示す領域に、上記取得したデバイス3の状態を表示できる。なお、位置属性ALとしては、各オブジェクトの占める領域を特定できれば、いずれの値でもよいが、本実施形態では、位置属性ALとして、左上のXY座標と右下のXY座標の組み合わせが用いられている。
ここで、HMI処理部26に上記表示部品オブジェクトが生成され、例えば、HMI処理部26からの指示、あるいは、自らの判断によって、デバイス3の状態の表示タイミングになったと判断すると、当該表示部品オブジェクトは、上述したように、デバイス属性ADの示すデバイス3の状態を取得する。さらに、当該表示部品オブジェクトは、操作画面のうち、位置属性ALの示す領域に、表示データ形式属性AFの示すように、当該値を表示する。これにより、操作画面には、デバイス3の状態が数値表示される。
また、予め設定された文字列を表示する文字列オブジェクトには、表示部品オブジェクトと同様の位置属性ALに加えて、文字列の内容を示す内容属性が含まれている。HMI処理部26に上記文字列オブジェクトが生成されると、当該文字列オブジェクトは、内容属性の示す文字列を、位置属性ALの示す位置に表示する。これにより、例えば、銘板など、予め設定された文字列を操作画面上に表示できる。
同様に、オブジェクトが操作を受け付ける入力オブジェクトであった場合、当該入力オブジェクトには、操作を受け付けた場合に状態を変更すべきデバイスを示すデバイス属性ADと、当該デバイス3への操作を受け付ける領域の位置を示す位置属性ALが付されている。一方、当該入力オブジェクトは、位置属性ALの示す領域への操作の有無を監視するなどして、上記領域への操作受け付けを検出した場合、例えば、PLC・IF部23を制御して、デバイス3の状態変更指示をPLC13へ送信させるなどして、上記デバイス3の状態を、受け付けた操作に応じて変更できる。なお、各デバイス3に対応する領域がグラフィック操作パネル14のメモリ(図示せず)に設けられており、PLC・IF部23が、予め定められたタイミングで、当該メモリの領域の内容を、それぞれに対応するデバイス3へ書き戻すように、PLC13へ指示している場合は、上記入力オブジェクトは、デバイス属性ADに対応する領域の内容を書き換えて、デバイス3の状態変更指示をPLC13へ送信させてもよい。また、当該入力オブジェクトにも、操作によって指示された値を、PLC13のメモリ13aに格納すべき値に変換するための表示データ形式属性AFが付されている。
また、HMI処理部26に上記入力オブジェクトが生成され、上記領域への操作受け付けを検出すると、上記入力オブジェクトは、上述したように、操作によって指示された値を、表示データ形式属性AFの示す形式の値に変換して、PLC13のメモリ13aに格納すべき値を決定する。さらに、入力オブジェクトは、デバイス属性ADの示すデバイス3の状態を、当該値に変更する。これにより、操作画面への操作に応じて、デバイス3の状態が変更される。
これにより、グラフィック操作パネル14は、画面データの示す各デバイス3の状態を操作画面上に表示したり、デバイス3の状態変更操作を受け付けたりできる。
なお、本実施形態では、上記画面データには、複数の画面を含むことができ、上記各オブジェクトには、画面を示す画面属性が付加されている。一方、グラフィック操作パネル14は、例えば、現在表示中の画面を画面属性の値が示しているオブジェクトのみを生成したり、既に生成されたオブジェクトのうち、現在表示中の画面を画面属性の値とするオブジェクトのみに画面表示を指示するとともに、現在表示中の画面を画面属性の値とするオブジェクトのみに画面への操作を通知したりできる。
ところで、本実施形態に係る制御システム1には、ユーザの操作に応じて、予め格納された画面データを修正したり、新規作成したりして、表示画面を設計し、新たな画面データを生成可能な作画エディタ装置16が設けられている。なお、例えば、上記制御用ホストコンピュータ15など、グラフィック操作パネル14と常時通信可能な装置が作画エディタ装置の機能を兼ね備え、例えば、LAN12などを介して、画面データをグラフィック操作パネル14にダウンロードしてもよいが、本実施形態に係る制御システム1では、図2に示すように、作画エディタ装置16が別途設けられている。また、画面データをグラフィック操作パネル14に格納する場合は、例えば、グラフィック操作パネル14に作画エディタ装置16を一時的に接続して画面データを転送したり、作画エディタ装置16の生成した画面データを記録媒体(例えば、コンパクトフラッシュ(登録商標)など)に格納し、当該記録媒体の内容をグラフィック操作パネル14に読み取らせたりして、画面データをグラフィック操作パネル14に格納できる。
より詳細には、図5に示すように、作画エディタ装置16は、ユーザの操作に応じて、予め格納された画面データを修正したり、新規作成したりして、表示画面を設計し、新たな画面データを生成する作画処理部61と、上記作画処理部61の生成した画面データを格納する記憶部62とを備えている。また、図5に示す作画エディタ装置16は、一例として、グラフィック操作パネル14と通信して画面データを伝送する構成であり、記憶部62に格納された画面データをグラフィック操作パネル14へ通信する通信処理部63が設けられている。なお、記録媒体経由で画面データを格納する場合は、通信処理部63に代えて/加えて記録媒体に記憶部62に格納された画面データを書き込む記録装置を設ければよい。
上記作画処理部61は、画面データに対応する情報が一時的に格納される作業用の記憶部71と、ユーザの指示を受け付けて、当該記憶部71の内容を書き換える編集処理部72と、編集処理部72によって編集される記憶部71の内容を図2に示すディスプレイ21に表示させる表示処理部73と、上記記憶部62に格納された画面データを当該記憶部71に展開したり、編集後の記憶部71の内容に応じた画面データを記憶部62へ書き込むデータ入出力処理部74とを備えている。
ここで、上記画面データは、上述したように、画面上の領域と、当該領域への表示や入力に対応するデバイスを特定可能なアドレスとの対応関係を示すオブジェクトを組み合わせて構成されており、作画処理部61の編集処理部72は、例えば、オブジェクトの雛型となるクラスのパレットを表示し、パレット中のクラスを選択して画面上に所望のオブジェクトを配置するようにユーザへ促す。また、編集処理部72は、ユーザによるオブジェクトの配置操作を受け付けると、当該操作に応じて、編集中の画面データが上記配置されたオブジェクトのデータを含むように、記憶部71の内容を変更し、表示処理部73は、記憶部71の内容に基づいて、当該オブジェクトを指定された座標に表示する。また、編集処理部72は、ユーザのドラッグ&ドロップなどの操作に応じて記憶部71の内容を変更して、当該オブジェクトの位置属性ALの値を調整し、表示処理部73は、変更後の位置にオブジェクトを表示する。また、編集処理部72は、オブジェクトに関連するアドレスを入力するようにユーザへ促すと共に、入力されたアドレスが当該オブジェクトに関連するように、記憶部71の内容(より詳細には、オブジェクトのデバイス属性ADの値)を変更する。
同様に、編集処理部72は、例えば、図4に示すように、オブジェクトの属性を表示する画面を表示するなどして、現在、そのオブジェクトに設定されている各属性値を表示すると共に、当該オブジェクトの属性のうち、ある属性の属性値の変更指示を受け付けると、当該オブジェクトの各属性のうち、指定された属性の属性値が、指示された値になるように記憶部71の内容を更新する。
なお、本実施形態に係るグラフィック操作パネル14は、複数の画面(操作画面)を切り換えて表示可能であり、上記編集処理部72は、操作画面の追加操作や、それぞれの操作画面に対する編集操作を受け付けると共に、各操作画面に関連付けて、当該操作画面に配置された各オブジェクトのデータを、記憶部71に格納できる。
一方、編集終了指示を受け付けると、データ入出力処理部74は、記憶部71の内容に応じた画面データを生成して、記憶部62に書き込む。これにより、編集されたオブジェクトをグラフィック操作パネル14に生成するためのデータが含まれた画面データを生成できる。
これらの結果、設計者は、作画エディタ装置16を操作して、画面上の所望の位置にオブジェクトを配置すると共に、各オブジェクトとデバイスのアドレスとを対応付けるだけで、画面データを作成できる。したがって、グラフィック操作パネル14の表示プログラムを修正する場合に比べて容易に、各グラフィック操作パネル14の表示や操作を決定(変更)でき、制御システム1のユーザ(作画エディタ装置16を操作する設計者)は、ターゲットシステム2の実情や、グラフィック操作パネル14のオペレータの習熟度、あるいは、ユーザの好みや判断基準に合わせることができる。
ここで、上記では、PLC13に接続されたデバイス3の現状を表示したり、操作したりする場合を例にして説明したが、上述したように、デバイスは、PLC13のメモリ13aであってもよく、例えば、予め定められた事象(例えば、アラームなど)が発生すると、予め定められたフォーマットで、その事象を示すデータ(この場合、アラームのデータ)を、PLC13の予め定められた領域に順次蓄積しておき、当該領域のデータを表示することも行われている。
一例として、アラームの履歴を表示する場合について説明すると、PLC13は、例えば、ラダープログラムなどとして、PLC13のユーザが記述した制御プログラムの一部に従って動作したり、製造時などに予め定められたプログラムに従って動作したりして、アラームが発生しているか否かを監視し、アラーム発生を検出すると、そのアラームを示すデータ(アラームデータ)を生成してメモリ13aのアラーム記憶領域に格納している。
本実施形態に係るアラームデータのフォーマットは、例えば、図6に示すように定められている。具体的には、上記アラームデータは、それぞれ、20ワードのデータであって、各アラームデータの最初の3ワードには、アラームが発生した時点を示すデータが記憶されている。
当該3ワードのうちの最初の1ワード(16ビット)には、年(西暦)を示すデータが、BCD形式で保存されている。また、上記3ワードのうち、次の1ワード、および、さらに次の1ワードには、それぞれ、月および日を示すデータがBCD形式で保存されている。
また、上記3ワードの次の5ワードには、アラームが発生したデバイス3の型式を示すデータがASCIIコードのデータ列として記憶されている。また、先頭から数えて11ワード目の1ワード(例えば、”D01010”)には、アラームが発生した時点でデバイス3を制御していたオペレータの社員コードを示すデータが、16ビット、符号無かつDecのデータとして記憶されている。なお、上記アラームデータには、他のデータも記憶されているが、それらの説明は省略する。
一方、上記PLC13は、アラームの発生を検出する毎に、上記フォーマットのアラームデータを生成し、上記アラーム記憶領域のうち、最新のアラームデータが格納された領域の次の領域に、当該新たに生成されたアラームデータを格納する。これにより、図7に示すように、上記アラーム記憶領域には、アラームデータが蓄積されていく。
また、グラフィック操作パネル14には、当該アラーム記憶領域に蓄積されたアラームデータを表示するために、図8に示すようにオブジェクトを配置するための画面データが格納されている。
具体的には、アラームデータの履歴を表示するためのオブジェクトは、図8に示すように、アラームデータの履歴の表示画面(履歴画面)に、マトリクス状に配置されている。図8では、一例として、1レコード(1アラーム)を1行に表示する場合を示しており、1回目のアラームデータを示す表示部品オブジェクトO1a…が1行に並び、次の行に、2回目のアラームデータを示す表示部品オブジェクトO2a…が配置されている。
上記1回目のアラームを表示するための表示部品オブジェクトO1a…のうち、表示部品オブジェクトO1a〜O1cは、数値表示のための表示部品オブジェクトであって、当該アラームが発生した年月日を表示するために使用されている。これらの表示部品オブジェクトO1a〜O1cのデバイス属性ADは、アラームデータを格納する領域のうち、当該アラームの年月日を示すデータを記憶する領域のアドレス(上述した例では、”D01000”、”D01001”、”D01002”)に設定されている。また、表示部品オブジェクトO1a〜O1cの表示データ形式属性AFは、BCD形式を示す値に設定されている。
一方、上記表示部品オブジェクトO1a…のうち、表示部品オブジェクトO1dは、文字列表示のための表示部品オブジェクトであって、当該アラームが発生したデバイス3の型式を示すために使用されている。当該表示部品オブジェクトO1dのデバイス属性ADは、当該アラームのデバイス3の型式を示すデータを記憶する領域のアドレス(上述した例では、”D01003〜D01007”)に設定されている。
さらに、上記表示部品オブジェクトO1a…のうち、表示部品オブジェクトO1eは、数値表示のための表示部品オブジェクトであって、当該アラームが発生したときのオペレータの社員コードを表示するために使用されている。当該表示部品オブジェクトO1eのデバイス属性ADは、当該アラームのアラームデータのうち、社員コードの領域のアドレス(上述した例では、”D01010”)に設定されており、表示データ形式属性AFは、Dec形式を示す値に設定されている。
同様に、2回目および3回目のアラームデータを示す表示部品オブジェクトO2a…およびO3a…の表示データ形式属性AFは、1回目のアラームデータを示す表示部品オブジェクトO1a…のうちの対応する表示部品オブジェクトと同じ値に設定されている。なお、各表示部品オブジェクトのデバイス属性ADの値は、2回目あるいは3回目のアラームデータのうちの対応箇所を示す値に変更されている。また、1回目のアラームデータの表示部品オブジェクトも含め、上記各表示部品オブジェクトの位置属性には、それぞれの操作画面上における位置を示すデータが格納されている。なお、以下では、説明の便宜上、操作画面上に3個のアラームデータが表示される場合について説明するが、当然ながら、操作画面上に表示されるアラームデータの数や内容は、この例に限るものではない。また、図8では、説明の便宜上、各オブジェクトの行間を実際よりも空けて表示している。
また、上記履歴画面には、次の頁、前の頁を表示したり、履歴画面の表示終了を指示するボタンを示す入力オペレータO51・O53・O52、および、現在の日時を示す表示部品オブジェクトO54・O55も配されている。
上記のように設定されたオブジェクトを生成するためのデータを含む画面データがグラフィック操作パネル14に格納され、例えば、上記履歴画面の表示指示などに応じて、上記のように設定された属性を有する各オブジェクトが生成され、各表示部品オブジェクトが表示タイミングになったと判断すると、各表示部品オブジェクトは、デバイス3の状態を表示する場合と同様にして、上記PLC13のメモリ13aに格納されたアラームデータを取得し、その内容を表示する。これにより、グラフィック操作パネル14のディスプレイ21には、図9に示すように、アラームデータの一覧が表示される。
ここで、上述したように、表示部品オブジェクトO1a〜O1c・O2a〜O2c・O3a〜O3cは、数値表示のための表示部品オブジェクトであり、その表示データ形式属性AFがBCDに設定されている。したがって、表示部品オブジェクトO1a〜O1c・O2a〜O2c・O3a〜O3cは、ディスプレイ21の操作画面のうち、それぞれの位置属性ALの示す位置に、それぞれのデバイス属性ADから読み出したデータを、2進化10進表現で表現されたデータとして扱い、例えば、”D01001”に格納された値(”0011h”)を、”11”と表示する。
一方、表示部品オブジェクトO1e・O2e・O3eは、数値表示のための表示部品オブジェクトであるが、その表示データ形式属性AFがDecに設定されている。したがって、表示部品オブジェクトO1e・O2e・O3eは、ディスプレイ21の操作画面のうち、それぞれの位置属性ALの示す位置に、それぞれのデバイス属性ADから読み出したデータを10進データとして表示する。
例えば、”D01010”には、上述した”D01001”と同じ値(”0011h”)が格納されているが、この値は、”D01010”とは異なって、10進表記すべきデータである。したがって、表示部品オブジェクトO1dは、上記表示部品オブジェクトO1a…とは異なって、”17”を表示する。
なお、表示部品オブジェクトO1d・O2d・O3dは、文字列表示のための表示部品オブジェクトなので、ディスプレイ21の操作画面のうち、それぞれの位置属性ALの示す位置に、それぞれのデバイス属性ADから読み出したデータを文字列として表示している。
これにより、グラフィック操作パネル14は、PLC13のメモリ13aに種々の表示データ形式のデータが格納されていたとしても、それぞれの表示データ形式を適切に把握して、正しい形式で表示できる。
さらに、本実施形態に係る制御システム1では、余り手間をかけずに、デバイスのデータを適切な形式で、印刷したり、CSV出力できるようにするために、以下の構成を備えている。
すなわち、本実施形態に係る画面データには、印刷/CSV出力(以下では、データ出力と総称する)のための赤枠オブジェクトを格納可能である。当該赤枠オブジェクトO31は、データ出力の対象とするオブジェクトを特定するためのものであって、データ出力の対象とするオブジェクトが存在すべき範囲を示す範囲属性AAが付与されている。また、赤枠オブジェクトO31は、データ出力が指示された場合、詳細は後述するように、当該範囲属性AAの示す範囲内に存在するオブジェクトのうち、表示に関係するオブジェクトの内容をデータ出力する動作を繰り返すことができる。
さらに、上記画面データには、上記赤枠オブジェクトO31へデータ出力を指示する入力オブジェクトを生成するためのデータも含まれており、入力オブジェクトは、印刷あるいはCSVデータ出力を指示する操作を受け付けた場合、例えば、その属性値などとして、予め設定された赤枠オブジェクトに、印刷あるいはCSVデータ出力を指示できる。
より詳細には、赤枠オブジェクトO31には、上記データ出力の対象とするオブジェクトが存在すべき範囲として、格子状に並べられた範囲A11〜A45が設けられており、上記範囲属性AAには、格子の形状および配置を示す値として、当該格子を構成する各縦枠の位置を示す値と、当該格子を構成する各横枠の位置を示す値とが設定されている。
ここで、図8に示す例では、各オブジェクトのうち、時計やボタンなどのオブジェクトO51〜O55は、データ出力の際には不要であり、表題を示す文字列オブジェクトO11a〜O11eと、表示部品オブジェクトO1a〜O3eとをデータ出力することが望まれる。
この場合は、赤枠オブジェクトO31は、図10に示すように、横5列×縦4行の格子状の範囲A11〜A45を示すように設定される。より詳細には、当該格子状の範囲A11〜A45は、縦枠Fa〜Ffと横枠F1〜F5とによって特定されている。したがって、赤枠オブジェクトO31の範囲属性AAには、例えば、縦枠Fa〜FfのX座標を示す6個の値と、横枠F1〜F5のY座標を示す5個の値とが設定される。なお、上記各範囲A11〜A45は、オブジェクトO11a〜O11eおよび表示部品オブジェクトO1a〜O3eの表示領域を含むように設定されている。
また、上記赤枠オブジェクトO31は、CSVデータ出力のために、上記格子状に並べられた各範囲と、CSVのレコードおよびフィールドとを、予め定められた手順で対応付けており、CSVデータの各レコードの各フィールドを、それぞれに対応付けられた範囲に含まれているオブジェクトの内容に基づいて生成すると共に、各フィールドのデータから、それらのフィールドを含むレコードのデータを生成し、それらのレコードのデータを順に出力できる。
上記対応付けも属性によって決定してもよいが、本実施形態では、対応関係が固定されており、例えば、横1行に並べられた範囲群(例えば、範囲A11〜A15)が1レコードに対応付けられ、各レコードに対応付けられた範囲群を構成する範囲は、その横方向の位置によって定められるフィールドと対応付けられている。例えば、上記各範囲A11〜A45のうち、各行において、最も左に配置されている範囲A11・A21・A31・A41が、各レコードの最初のフィールドに対応している。
なお、本実施形態では、上記各フィールドには、それぞれに対応する範囲が左のもの程早い順番が割り当てられている。また、上記各レコードには、それぞれに対応する範囲群が上のもの程早い順番が割り当てられている。一方、本実施形態に係る赤枠オブジェクトO31は、各範囲を左から右に走査して、各範囲に対応するフィールドのデータを生成する。また、赤枠オブジェクトO31は、例えば、予め定められたフィールド・セパレータを介して各フィールドのデータを連結するなどして、1行分のフィールドのデータをまとめる。これにより、1レコードのデータが生成される。また、赤枠オブジェクトO31は、この動作を、より上の行(範囲群)から順に繰り返し、例えば、予め定められたレコード・セパレータを介して連結するなどして、各行のレコードのデータをまとめる。これにより、赤枠オブジェクトO31は、指定されたレコード群のデータを生成できる。
また、本実施形態に係る赤枠オブジェクトO31は、範囲属性AAの示す範囲内に存在するオブジェクトの全てについて、内容のデータ出力が終了すると、予め定められた手順で次の画面(次の頁)の赤枠オブジェクトを検索し、当該赤枠オブジェクトにデータ出力を指示できる。本実施形態では、一例として、各操作画面には、予め定められた連続する番号が付されており、上記赤枠オブジェクトは、次の赤枠オブジェクトを検索する際、当該赤枠オブジェクトが配置されている操作画面の次の画面(次の番号の画面)に、赤枠オブジェクトが配置されているか否かを判定し、配置されている場合は、その赤枠オブジェクトにデータ出力を指示する。一方、配置されていない場合は、その時点でデータ出力動作を終了している。
ここで、図10と同様のレイアウトの履歴画面が複数設定されている場合、表題を示す文字列オブジェクトO11a〜O11eは、最初の画面の場合にだけデータ出力され、残余の画面の場合にはデータ出力されない方が望ましい。
これに応じて、上記赤枠オブジェクトO31には、各範囲について、最初の画面の場合にのみデータ出力するか、全ての画面でデータ出力するかを示す頁属性APも付されており、赤枠オブジェクトO31は、例えば、上述した入力オブジェクトからデータ出力指示を受けた場合など、最初の画面の場合は、頁属性APの値に拘らず、オブジェクトの内容をデータ出力する。一方、例えば、他の赤枠オブジェクトからデータ出力指示を受けた場合など、最初の画面でない場合は、頁属性APが、全ての画面でデータ出力することを示している範囲の場合にのみ、その範囲内のオブジェクトの内容をデータ出力し、最初の画面の場合にのみデータ出力することを示している範囲の場合は、その範囲内のオブジェクトの内容をデータ出力しない。これにより、履歴画面が複数設定されている場合であっても、最初の画面の分だけ、表題をデータ出力し、残余の画面の表題のデータ出力を防止できる。
上記構成では、データ出力が指示されると、図1に示すS1において、赤枠オブジェクトO31は、未処理の範囲が存在しているか否かを判定する。未処理の範囲が見つかると、その赤枠オブジェクトO31が最初の画面に配置されているか、あるいは、その赤枠オブジェクトO31が最初の画面に配置されていなくても、赤枠オブジェクトO31の頁属性APの値が、全ての画面で、その範囲のオブジェクトをデータ出力することを示している場合(S1にてYES またはS3にてYES の場合)、赤枠オブジェクトO31は、S11において、当該範囲内に、データ出力に関連するオブジェクトとして予め定められたオブジェクト(本実施形態では、表示部品オブジェクトまたは部品オブジェクト)が配置されているか否かを判定し、存在しない場合(上記S11にてNOの場合)、S12において、データなしを示す値(例えば、空白の文字コードあるいはNULLコードなど)を出力したり、データ出力自体を中止したりして、データがない場合の処理を行う。
また、赤枠オブジェクトO31は、上記範囲内に文字列オブジェクトが存在している場合(上記S11にてYES かつS13にて文字列の場合)、S14において、その文字列オブジェクトの示す文字列を出力する。
さらに、赤枠オブジェクトO31は、上記範囲内に表示部品オブジェクトが存在している場合(S11にてYES かつS13にて表示部品の場合)、S15において、その表示部品オブジェクトが示しているデバイスの状態を示す値を取得して、取得した値を、その表示部品オブジェクトが示す表示データ形式のデータとして処理する。
上記S1〜S15の処理は、未処理の範囲がなくなるまでの間(上記S1にてNOになるまでの間)、繰り返される。未処理の範囲がなくなると(上記S1にてYES の場合)、赤枠オブジェクトO31は、S21において、次の画面の赤枠オブジェクトを検索し、見つかった場合(S21にてYES の場合)、見い出された赤枠オブジェクトにS1以降の処理を指示する。
ここで、赤枠オブジェクトO31が2番目以降の画面に配置されており、しかも、赤枠オブジェクトO31の頁属性APの値が、最初の画面のみでその範囲のデータを出力することを示している場合(S2およびS3の双方でNOの場合)、赤枠オブジェクトO31は、S11以降の処理を行わず、上記S1以降の処理を繰り返す。
上記S1〜S21の処理は、次の画面の赤枠オブジェクトが見つかるまでの間(上記S21にてYES の間)、繰り返され、次の画面の赤枠オブジェクトを見つけられなかった場合、赤枠オブジェクトは、処理を終了する。
なお、上記S12、S14およびS15の処理は、CSV出力におけるフィールド・セパレータおよびレコード・セパレータの出力処理、あるいは、印刷における改行処理も含んでおり、赤枠オブジェクトO31は、CSV出力の場合、その範囲に対応するフィールドが、その範囲に対応するレコードの最後のフィールドである場合は、レコード・セパレータを出力し、最後のフィールドではない場合は、フィールド・セパレータを出力する。また、印刷の場合、赤枠オブジェクトO31は、その範囲に対応するフィールドが、その範囲に対応するレコードの最後のフィールドである場合は、図示しないプリンタに改行を指示する。
例えば、図10の例では、上述したように、左から右に範囲を走査するという動作を、上の行から順に繰り返すことによって、未処理の範囲を検索しているので、最初は、左上の範囲A11内に配置された文字列オブジェクトO11aが見い出され、次いで、文字列オブジェクトO11b〜O11eが順次見い出される。したがって、赤枠オブジェクトO31へCSVデータ出力が指示された場合、図11に示すP1のように、「"西暦","月","日","型式","社員番号"」というデータが出力され、最後に、レコード・セパレータとしての改行コードが出力される。
次に、赤枠オブジェクトO31は、範囲A21〜A25に含まれるオブジェクトとして、表示部品オブジェクトO1a〜O1eを見い出す。この場合、赤枠オブジェクトO31は、例えば、各表示部品オブジェクトO1a〜O1eのデバイス属性ADおよび表示データ形式属性AFを取得する。さらに、赤枠オブジェクトO31は、各表示部品オブジェクトO1a〜O1eと同様にして、デバイス属性ADの示すデバイスの状態を取得すると共に、その表示データ形式属性AFの示す表示データ形式のデータとして、当該値を処理する。これにより、図11に示すP2のように、「2004,11,8,"YAS-ABC123",17 」というデータを出力する。
ここで、上述したように、赤枠オブジェクトは、自らに設定された範囲に表示部品オブジェクトが含まれている場合、その表示部品オブジェクトが示しているデバイスの状態を示す値を取得して、取得した値を、その表示部品オブジェクトが示す表示データ形式のデータとして処理する。
したがって、その表示部品オブジェクトに、そのデバイスおよび表示データ形式が設定されていれば、CSV出力や印刷用に、これらのデータを新たに設定しなくても、赤枠オブジェクトは、何ら支障なく、適切な表示データ形式でデータ出力でき、設定の手間を削減できる。
また、上記赤枠オブジェクトは、自らに設定された範囲に含まれている表示部品オブジェクトまたは文字列オブジェクトについては、その内容をデータ出力する。一方、表示部品オブジェクトまたは文字列オブジェクトであっても、赤枠オブジェクトの範囲に含まれていなければ、赤枠オブジェクトは、その内容をデータ出力しない。したがって、表示部品オブジェクトに設定された情報を参照してデータ出力しているにも拘らず、履歴画面をキャプチャーする構成とは異なって、例えば、図10に示すように、表示の際には必要であったがデータ出力時には出力不要なデータについては、データ出力を停止させることができる。
以下では、図5および図10、図12および図13を参照しながら、赤枠オブジェクトを設定するための構成、および、赤枠オブジェクト設定時の動作について説明する。すなわち、本実施形態に係る編集処理部72は、例えば、赤枠オブジェクトのパレットも表示するなどして、上述した各オブジェクトに加えて、赤枠オブジェクトの配置操作も受付可能に構成されている。また、編集処理部72は、ユーザによる赤枠オブジェクトの配置操作を受け付けると、当該操作に応じて、編集中の画面データが上記配置された赤枠オブジェクトのデータを含むように、記憶部71の内容を変更し、表示処理部73は、記憶部71の内容に基づいて、当該赤枠オブジェクトを指定された座標範囲に表示する。
上述したように、本実施形態に係る赤枠オブジェクトには、格子状の範囲が設定されている。これに伴って、上記編集処理部72は、例えば、配置操作を受け付けた時点で、例えば、予め定められた行数および列数の初期値を変更可能に表示するなどして、行数および列数の入力をユーザに促す。さらに、行数および列数の入力操作を受け付けると、編集処理部72は、入力された値を、赤枠オブジェクトの行数および列数として設定する。なお、上記編集処理部72は、赤枠オブジェクトが配置された後、行数または列数の変更操作を受け付けた時点で、ユーザからの行数および列数の入力操作に応じて、行数または列数を変更してもよい。
また、本実施形態では、ユーザから行数および列数が入力された場合、編集処理部72は、各列の列幅および各行の行高が予め定められた値になるように、上記赤枠オブジェクトO31の範囲属性AAを設定する。なお、本実施形態では、一例として、各列の列幅の初期値は、互いに同じ値に設定され、各行の行高の初期値は互いに同じ値に設定されている。
さらに、上記編集処理部72は、赤枠オブジェクトO31を配置した後、例えば、縦枠または横枠へのドラッグ&ドロップ操作など、赤枠オブジェクトO31の各縦枠および横枠の位置変更操作を受け付けると、赤枠オブジェクトO31の範囲属性AAの値をその操作に応じた値に変更できる。
ここで、作画処理部61が図8に示す履歴画面を編集している状態で、赤枠オブジェクトの生成が指示され、行数および列数として4および5が入力されると、表示処理部73は、図12に示すように、各縦枠および各横枠が均等に割り付けられた赤枠オブジェクトO31を表示する。ただし、この状態では、出力すべきオブジェクトO11a〜O11e・O1a〜O3aと、赤枠オブジェクトO31の各範囲A11〜A45とは不適切な位置関係にあり、出力すべきオブジェクトO11a〜O11e・O1a〜O3aの中には、各範囲A11〜A45から、はみ出ているもの(図12の例では、オブジェクトO11d・O1d・O2d・O3d)がある。
この状態で、これらのオブジェクトがはみ出ないように、ユーザが縦枠Feを右に移動させ、編集処理部72が、それに応じて、範囲属性AAの値を変更すると、表示処理部73は、図13に示すように、赤枠オブジェクトO31の各範囲A11〜A45に、上記各オブジェクトO11a〜O11e・O1a〜O3aが入った状態になる。
さらに、編集処理部72は、他のボタンなどの入力オブジェクトと同様に、ユーザの操作に応じて、赤枠オブジェクトO31へのデータ出力指示を受け付ける入力オブジェクトO21を配置すると、図10に示すように、データ出力を指示するボタンが配置された画面が設計される。
このように、本実施形態に係る制御システム1では、赤枠オブジェクトO31が、その範囲内に、予め定められた種類のオブジェクトが配置されているか否かを判定し、配置されている場合は、オブジェクトの内容をデータ出力している。また、当該オブジェクトが表示部品オブジェクトの場合、赤枠オブジェクトO31は、その表示部品オブジェクトが示しているデバイスの状態を示す値を取得して、取得した値を、その表示部品オブジェクトが示す表示データ形式のデータとして処理して、データ出力する。
したがって、これまでに設計されている履歴画面の画面データを余り修正することなく、履歴画面に表示されているデータを、表示時と同様の形式で処理できる。この結果、データ出力可能な履歴画面を設計する際の手間を大幅に削減できる。
なお、上記では、各赤枠オブジェクトが次にデータ出力すべき赤枠オブジェクトを検索する際、自らが配置されている画面の次の画面に配置されている赤枠オブジェクトを検索していたが、これに限るものではない。例えば、作画エディタ装置16は、ユーザの指示に応じて、各赤枠オブジェクトに次にデータ出力すべき赤枠オブジェクトを示す情報を、例えば、属性などとして設定し、次にデータ出力すべき赤枠オブジェクトがない場合には、当該属性などに、予め定められた終端コードを設定してもよい。この場合、赤枠オブジェクトは、当該属性の値を参照して、次の赤枠オブジェクトの有無を判定すると共に、次の赤枠オブジェクトがある場合は、その赤枠オブジェクトにデータ出力を指示できる。
また、上記では、1レコードの各フィールドのデータに対応するオブジェクトが、1枚の表示画面および1つの赤枠オブジェクトに配置されている場合を例にして説明したが、これに限るものではない。例えば、複数の赤枠オブジェクトに、1レコードの各フィールドのデータに対応するオブジェクトが配置されていてもよい。
この場合、例えば、作画エディタ装置16は、ユーザの指示に応じて、互いに異なる画面に配置された各赤枠オブジェクトを関連付け、例えば、各赤枠オブジェクトの属性などに、当該関係を記憶する。一方、各赤枠オブジェクトは、各レコードのデータを出力する際、自らの範囲属性AAの示す各範囲のうち、1レコード分のデータ出力が終了すると、上記属性を参照して、当該赤枠オブジェクトに関連付けられた赤枠オブジェクトを特定し、当該赤枠オブジェクトに、当該レコードの他のフィールドを出力するように指示する。なお、上記属性に最後であることを示す値が格納されている場合、当該赤枠オブジェクトは、自らがレコードのデータが分散配置されている赤枠オブジェクトの最後のものであると判断し、例えば、レコード・セパレータを出力するなど、レコードの最後の場合の処理を行う。これにより、例えば、互いに異なる画面に配置された複数の赤枠オブジェクトに、1レコードの各フィールドのデータに対応するオブジェクトが分散配置されていても、何ら支障なく、各フィールドのデータを出力できる。
さらに、上記では、表示部品オブジェクトの種類によって、表示データ形式の大分類(例えば、数値として表示するか、グラフとして表示するかなど)を設定し、その表示データ形式属性に、表示データ形式の小分類を設定する構成について説明したが、これに限るものではない。作画エディタ装置16は、これらの組み合わせを、表示データ形式属性として設定してもよいし、これらの組み合わせを、表示部品オブジェクトの種類によって設定してもよい。
また、上記では、オブジェクト、および、その属性によって、デバイス情報と位置情報と表示データ形式情報との組み合わせを記憶する場合について説明したが、これに限るものではない。作画エディタ装置16は、例えば、関係データベースの各フィールドとしてこれらの情報を記憶するなど、これらの情報を他の方法で互いに関連付けて記憶してもよい。
いずれの場合であっても、デバイス情報と位置情報と表示データ形式情報とを互いに関連付けて記憶されており、グラフィック操作パネル14が、表示処理として、当該デバイス情報によって特定されるデバイスを制御する制御装置と通信して、当該デバイスの値を取得すると共に、画面のうち、当該デバイス情報に関連付けて記憶された位置情報の示す位置に、当該デバイス情報に関連付けて記憶された表示データ形式情報の示す形式で上記取得した値を表示する処理を行うものであれば、同様の効果が得られる。
なお、上記各部材23〜26、並びに、後述の各部材31〜33、61〜63および71〜74は、CPUなどの演算手段が、ROMやRAMなどの記憶手段に格納されたプログラムを実行し、ディスプレイ21やタッチパネル22などの入出力手段、あるいは、インターフェース回路などの通信回路を制御することによって実現される機能ブロックである。なお、これらの部材のうち、各記憶部25・62・71は、ROMやRAMなどの記憶装置自体であってもよい。
したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体(例えば、CD−ROMなど)を読み取り、当該プログラムを実行するだけで、本実施形態に係るグラフィック操作パネル14、あるいは、後述する作画エディタ装置16を実現できる。なお、例えば、LAN12、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。