(57)【要約】【課題】階層的にメニューを表示できるにも拘わらず、ユーザインターフェースの設計者の負担を軽減可能なユーザインターフェース装置を実現する。【解決手段】メニューオブジェクトＯ１は、テキストファイルＦ１を参照して、親階層のメニューを表示すると共に、選択結果を示す選択行変数を選択行変数記憶部Ａ１４に格納する。子階層のメニューを表示するメニューオブジェクトＯ２は、メニューオブジェクトＯ１の選択行変数を監視している。親階層において、項目が選択されると、メニューオブジェクトＯ２は、テキストファイルＦ２を参照して、当該選択項目に応じた、子階層のメニューを表示する。当該構成では、子階層用のメニューオブジェクトが親階層を監視してメニュー表示するので、親階層用のメニューオブジェクトの動作を変更せずに、子階層の追加が可能になる。【選択図】  図１
2004178307.tif 000002
【特許請求の範囲】
【請求項１】
親メニューの選択項目を示す親メニュー変数を監視する監視手段と、
当該監視手段に対応して設けられ、当該監視手段によって監視されている親メニュー変数が示す選択項目に応じたメニューを、自メニューとして提示する提示手段と、
上記監視手段に対応して設けられ、自メニューへの操作に応じて、自メニューにおける選択項目を示す自メニュー変数を更新する更新手段とを備えていることを特徴とするユーザインターフェース装置。
【請求項２】
上記提示手段は、それぞれに対応して設けられたファイルを参照して、当該ファイルに含まれるブロックであって、しかも、親メニューにおける選択項目の順番に応じた順番のブロックが示す各項目を、自メニューの各項目として提示すると共に、
上記ファイルには、親メニューの各選択項目に対応するメニュー毎にブロックが設けられ、
当該ブロックは、予め定められたブロック区切りで区切られており、
上記各ブロックには、それぞれのメニューの各項目に対応する提示内容が、各項目の提示順に記述されていることを特徴とする請求項１記載のユーザインターフェース装置。
【請求項３】
上記監視手段、提示手段および更新手段は、コンピュータが予め定められたプログラムを実行することによって実現されていると共に、
上記親メニュー変数および自メニュー変数の組み合わせを含むユーザインターフェースデータに基づいて、それぞれの組み合わせ毎に、上記監視手段、提示手段および更新手段を形成する生成手段を備えていることを特徴とする請求項１記載のユーザインターフェース装置。
【請求項４】
親メニューの選択項目を示す親メニュー変数を監視する監視手段と、当該監視手段に対応して設けられ、当該監視手段によって監視されている親メニュー変数が示す選択項目に応じたメニューを、自メニューとして提示する提示手段と、上記監視手段に対応して設けられ、自メニューへの操作に応じて、自メニューにおける選択項目を示す自メニュー変数を更新する更新手段とをユーザインターフェース装置に生成させるためのユーザインターフェースデータの生成装置であって、
上記親メニュー変数および自メニュー変数の組み合わせを受け付ける受け付け手段と、
それぞれの組み合わせに応じた上記監視手段、提示手段および更新手段を上記ユーザインターフェース装置に生成させるためのユーザインターフェースデータを生成するデータ生成手段とを備えていることを特徴とするユーザインターフェースデータの生成装置。
【請求項５】
請求項１、２または３記載の各手段として、コンピュータを動作させるプログラム。
【請求項６】
請求項４記載の受け付け手段およびデータ生成手段としてコンピュータを動作させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、階層的にメニューを提示可能なユーザインターフェース装置、および、ユーザインターフェース装置がメニューを表示するためのユーザインターフェースデータの生成装置、並びに、それらのプログラムに関するものである。
【０００２】
【従来の技術】
従来から、より詳細な情報を段階的に提示するため、あるいは、オペレータの操作を受け付ける際、段階的に、より狭いカテゴリーの操作対象が提示されるように、階層的にメニューを表示可能なユーザインターフェース装置が広く用いられている。
【０００３】
例えば、図１２に示す従来のグラフィック操作パネル１１４において、ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ  ）ランタイム部１２６は、予め記憶部１２５に格納された画面データに基づいて、操作を受け付けると共に、操作およびデバイス１０２ａの状態に応じて、画面表示している。
【０００４】
ここで、上記グラフィック操作パネル１１４が、階層的に画面を表示するための画面データは、以下のように生成される。例えば、アラームの概要を表示するメニューを表示するための画面データを生成する場合を例にして説明すると、図示しない画面データの生成装置では、図１３に示すように、上記メニュー表示時に参照されるテキスト画面Ｔ１０１が登録される。当該テキスト画面Ｔ１０１では、各種類のアラームが発生した場合の表示内容を示す行Ｌ１１１…が、それぞれの種類に応じた順番に記述されている。さらに、上記生成装置では、上記メニューの設定項目として、いずれの種類のアラームが発生しているかを指示するための監視対象デバイスＤ１０１が設定される。
【０００５】
さらに、上記生成装置は、ユーザの指示に応じて、メニューの設定項目として、サブ表示（下位の階層のテキスト表示）の要否と、サブ表示する場合に表示されるテキスト画面Ｔ１１１…とを設定する。なお、当該テキスト画面の内容も、上記生成装置によって設定される。
【０００６】
一方、上記ＨＭＩランタイム部１２６は、上記設定に応じて生成された画面データを参照して動作しており、上記監視対象デバイスＤ１０１がアラームの発生を示す状態になると、上記テキスト画面Ｔ１０１の行のうち、当該アラームの種類に応じた行の内容を表示する。
【０００７】
さらに、上記メニューの項目が選択されると、上記ＨＭＩランタイム部１２６は、上記画面データを参照して、サブ表示が必要であることと、そのサブ表示を表示するためのテキスト画面（例えば、Ｔ１１１）とを把握し、当該テキスト画面を表示する。これにより、上記グラフィック操作パネル１１４では、２階層のメニュー表示が可能になる（後述の非特許文献１参照）。
【０００８】
また、他の階層表示方法を採用した装置として、制御システムのＨＭＩとして動作するプログラマブル表示器の中には、ＨＴＭＬ文書を表示可能なものも存在しており、このプログラマブル表示器では、リンクされたＨＴＭＬ文書を順に下っていくことで、階層的にメニューを表示できる（後述の特許文献１参照）。
【０００９】
【非特許文献１】
書名：「ＧＰ−ＰＰＲＯ／ＰＢＩＩＩ  ｆｏｒ  Ｗｉｏｎｄｏｗｓ９５  Ｖｅｒ２．１  タグリファレンスマニュアル」，発行所：株式会社デジタル，１９９８年５月１日発行，ｐ．２−１〜ｐ．２−１２
【００１０】
【特許文献１】
特開２００１−２８２５０１号（公開日：２００１年１０月１２日）
【００１１】
【発明が解決しようとする課題】
しかしながら、上記従来の構成では、階層的にメニューを表示させるための画面データを設計する際の操作が煩雑になりやすく、ユーザインターフェースの設計者に負担がかかるという問題を生ずる。
【００１２】
具体的には、図１３の画面データを参照するグラフィック操作パネル１１４の場合、あるメニューにサブ表示を付け加える際、新たなサブ表示を示すテキスト画面を作成すると共に、上記メニューの設定を変更して、新たな行を追加し、さらに、当該行の呼び出し先として、上記追加したテキスト画面を設定する必要がある。
【００１３】
ここで、ユーザインターフェースの設計者にとって重要なのは、新たな選択項目の内容と、その項目が選択された場合の表示内容とであって、メニューの設定を変更して、新たな選択項目の呼び出し先として、当該表示内容を示すテキスト画面を設定する操作に集中することは難しい。
【００１４】
一方、ＨＴＭＬ文書（Ａ）を表示する場合には、あるメニューに、新たな選択項目を追加する際、当該項目が選択された場合に表示されるＨＴＭＬ文書（Ｂ）を新たに作成すると共に、呼び出し元となるメニューを表示するためのＨＴＭＬ文書（Ａ）を編集して、新たな選択項目の内容と、その選択項目が選択された場合に表示されるＨＴＭＬ文書（Ｂ）へのリンクとの双方を呼び出し元に対応するＨＴＭＬ文書（Ａ）に記述している。
【００１５】
同様に、上記では、メニューに新たな項目を追加する際に、呼び出し元および呼び出し先のＨＴＭＬ文書（Ａ・Ｂ）の双方を編集するだけではなく、呼び出し元のＨＴＭＬ文書（Ａ）の編集時には、上記リンクも記述する。ところが、ユーザインターフェースの設計者にとって重要なのは、新たな選択項目の内容と、その項目が選択された場合の表示内容とであって、上記ＨＴＭＬ文書（Ｂ）へのリンクの設定操作に集中することは難しい。
【００１６】
これらの結果、いずれの場合であっても、ユーザインターフェースの設計者の負担が大きくなりがちである。
【００１７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ユーザインターフェース装置が階層的にメニューを表示できるにも拘わらず、ユーザインターフェース装置のユーザインターフェースの設計者の負担を軽減可能なユーザインターフェース装置、および、当該ユーザインターフェース装置がメニューを表示するためのユーザインターフェースデータの生成装置、並びに、それらのプログラムを提供することにある。
【００１８】
【課題を解決するための手段】
請求項１記載の発明に係るユーザインターフェース装置は、上記課題を解決するために、親メニューの選択項目を示す親メニュー変数を監視する監視手段と、当該監視手段に対応して設けられ、当該監視手段によって監視されている親メニュー変数が示す選択項目に応じたメニューを、自メニューとして提示する提示手段と、上記監視手段に対応して設けられ、自メニューへの操作に応じて、自メニューにおける選択項目を示す自メニュー変数を更新する更新手段とを備えていることを特徴としている。
【００１９】
上記構成において、監視手段Ａ１に対応して、提示手段Ｂ１および更新手段Ｃ１が設けられている。監視手段Ａ１は、親メニュー変数Ｄ１を監視しており、親メニューＥ１が操作されて親メニュー変数Ｄ１が更新されると、提示手段Ｂ１は、親メニューＥ１の選択項目に応じたメニューＦ１を、自メニューとして提示する。また、更新手段Ｃ１は、自メニューＦ１への操作に応じて、自メニューＦ１における選択項目を示す自メニュー変数Ｇ１を更新する。
【００２０】
同様に、上記自メニューＦ１を親メニューＤ２とする子メニューＦ２を表示する場合、上記自メニュー変数Ｇ１を監視する監視手段Ａ２と、それに対応する提示手段Ｂ２および更新手段Ｃ２が設けられる。この場合は、上記自メニューＦ１が操作されて、上記親メニュー変数Ｄ１を監視対象とする監視手段Ａ１に対応して設けられた更新手段Ｃ１が、自メニュー変数Ｇ１を更新すると、当該自メニュー変数Ｇ１を監視対象とする監視手段Ａ２に対応して設けられた提示手段Ｂ２が、上記自メニューＦ１の選択項目に応じたメニューＦ２を、新たな自メニュー（上述の自メニューＦ１から見ると、子メニュー）として提示する。これにより、ユーザインターフェース装置は、各メニューを階層的に提示できる。
【００２１】
上記構成では、ユーザインターフェース装置が階層的にメニューを表示できるにも拘わらず、上記各監視手段および更新手段は、親メニューの親メニュー変数を監視し、自メニューの自メニュー変数を更新できればよく、自メニューの項目が選択されたときに、子メニューが呼び出されるか否かを把握しなくてもよい。この結果、ユーザインターフェースの設計者の負担を軽減でき、メンテナンスしやすいユーザインターフェース装置を実現できる。
【００２２】
例えば、新たな階層の子メニューを追加する場合、すなわち、自メニューにおける項目の提示だけでは不十分になり、これまでの項目提示から、より詳細な項目を提示するための子メニューの呼び出しへ変更する場合であっても、自メニューの提示手段と、それに対応する監視手段および更新手段との動作を変更する必要がなく、単に、自メニューの自メニュー変数を監視する監視手段と、それに対応する更新手段および提示手段とを設けるだけで、子メニューの呼び出しに変更できる。
【００２３】
なお、子メニューが呼び出される場合は、子メニューを表示するための提示手段に対応する監視手段が、親メニュー変数として、自メニューの自メニュー変数を監視するので、親メニューとしての自メニューを提示する提示手段と、それに対応する監視手段および更新手段の動作を変更しなくても、何ら支障なく、子メニューが呼び出される。
【００２４】
また、請求項２の発明に係るユーザインターフェース装置は、請求項１記載の構成に加えて、上記提示手段は、それぞれに対応して設けられたファイルを参照して、当該ファイルに含まれるブロックであって、しかも、親メニューにおける選択項目の順番に応じた順番のブロックが示す各項目を、自メニューの各項目として提示すると共に、上記ファイルには、親メニューの各選択項目に対応するメニュー毎にブロックが設けられ、当該ブロックは、予め定められたブロック区切りで区切られており、上記各ブロックには、それぞれのメニューの各項目に対応する提示内容が、各項目の提示順に記述されていることを特徴としている。
【００２５】
上記構成では、ファイルには、親メニューの互いに同じメニューが、１つのファイルにまとめて記述されている。また、当該ファイルでは、各メニューに対応するブロックが、親メニューにおける選択項目に応じた順番で、記述されている。一方、各ブロックには、それぞれのメニューの各項目に対応する提示内容が、各項目の提示順に記述されている。
【００２６】
したがって、新たな子メニューを追加する場合、子メニューに対応するファイルに含まれるブロックのうち、ある順番（例えば、最後）に、子メニューを示すブロックを追加し、自メニューに対応するファイルにおいて、当該子メニューを呼び出すブロックに記述された各提示内容のうち、上記順番（例えば、最後）に、上記子メニューを呼び出すための選択項目の提示内容を追加するだけで、子メニューを追加できる。このように、上記両ファイルにおいて、提示順に対応する順番に、提示内容あるいはブロックを追加するだけで、子メニューを追加できるので、例えば、子メニューを表示するためのファイルのＵＲＬ、ファイルの保管場所あるいは名前を記憶し、それに応じて、子メニューに関連する設定と自メニューに関連する設定とを更新する場合よりも、ユーザインターフェース装置のユーザインターフェースの設計者の負担を軽減できる。
【００２７】
さらに、請求項３の発明に係るユーザインターフェース装置は、請求項１記載の発明の構成において、上記監視手段、提示手段および更新手段は、コンピュータが予め定められたプログラムを実行することによって実現されていると共に、上記親メニュー変数および自メニュー変数の組み合わせを含むユーザインターフェースデータに基づいて、それぞれの組み合わせ毎に、上記監視手段、提示手段および更新手段を形成する生成手段を備えていることを特徴としている。
【００２８】
当該構成では、上記ユーザインターフェースデータに基づいて、各監視手段、提示手段および更新手段が形成される。したがって、ユーザインターフェース装置のユーザインターフェースの設計者は、親メニュー変数および自メニュー変数の組み合わせを設定するだけで、ユーザインターフェース装置に、階層的なメニュー提示を指示でき、設計時の手間を軽減できる。
【００２９】
また、請求項４の発明に係るユーザインターフェースデータの生成装置は、上記課題を解決するために、親メニューの選択項目を示す親メニュー変数を監視する監視手段と、当該監視手段に対応して設けられ、当該監視手段によって監視されている親メニュー変数が示す選択項目に応じたメニューを、自メニューとして提示する提示手段と、上記監視手段に対応して設けられ、自メニューへの操作に応じて、自メニューにおける選択項目を示す自メニュー変数を更新する更新手段とをユーザインターフェース装置に生成させるためのユーザインターフェースデータの生成装置であって、上記親メニュー変数および自メニュー変数の組み合わせを受け付ける受け付け手段と、それぞれの組み合わせに応じた上記監視手段、提示手段および更新手段を上記ユーザインターフェース装置に生成させるためのユーザインターフェースデータを生成するデータ生成手段とを備えていることを特徴としている。
【００３０】
当該ユーザインターフェースデータの生成装置において、受け付け手段は、ユーザインターフェース装置に形成すべき監視手段、提示手段および更新手段の組み合わせ毎に、自メニュー変数および親メニュー変数の組み合わせの入力を受け付け、データ生成手段は、各組み合わせ毎に、監視手段、提示手段および更新手段を、ユーザインターフェース装置に生成させるためのユーザインターフェースデータを作成する。さらに、ユーザインターフェース装置は、当該ユーザインターフェースデータに基づいて、監視手段、提示手段および更新手段を生成し、メニューを階層的に提示する。
【００３１】
当該構成でも、上記各監視手段および更新手段は、メニューを階層的に提示できるにも拘わらず、親メニューの親メニュー変数を監視し、自メニューの自メニュー変数を更新できればよく、自メニューの項目が選択されたときに、子メニューが呼び出されるか否かを把握しなくてもよい。したがって、ユーザインターフェース装置のユーザインターフェースの設計者は、ユーザインターフェース装置に生成すべき監視手段、提示手段および更新手段の組み合わせ毎に、自メニュー変数および親メニュー変数の組み合わせを入力するだけでよい。したがって、階層を追加／変更する際に、ユーザインターフェース装置のユーザインターフェースの設計者の負担を軽減できる。
【００３２】
ところで、上記ユーザインターフェース装置、および、ユーザインターフェースデータの生成装置は、ハードウェアで実現してもよいが、プログラムをコンピュータに実行させて実現してもよい。
【００３３】
これらのプログラムがコンピュータで実行されると、当該コンピュータは、請求項１記載のユーザインターフェース装置、または、請求項４記載のユーザインターフェースデータの生成装置として動作する。したがって、請求項１および４と同様、ユーザインターフェース装置のユーザインターフェースの設計者の負担を軽減できる。
【００３４】
なお、上記プログラムは、上記各動作の全手順をＣＰＵなどの演算手段へ指示するコードであってもよいし、所定の手順で呼び出すことで、上記各動作の一部または全部を実行可能な基本プログラム（例えば、オペレーティングシステムやライブラリなど）が既に存在していれば、当該基本プログラムの呼び出しを上記演算手段へ指示するコードやポインタなどで、上記全手順の一部または全部を置き換えてもよい。さらに、上記手順の一部を実行可能な他のコンピュータへ上記手続きを指示できれば、当該コンピュータとの通信処理によって、当該手順の一部を置き換えてもよい。
【００３５】
【発明の実施の形態】
本発明の一実施形態について図１ないし図１１に基づいて説明すると以下の通りである。すなわち、本実施形態に係る制御システムは、オペレータによって操作されるグラフィック操作パネルが表示するメニューを設計する際の手間を削減可能なシステムであって、例えば、ターゲットシステムがベルトコンベアー式の自動組付機の場合など、複数のプログラマブル・ロジック・コントローラ（以下では、ＰＬＣと略称する）が互いに連携して制御するようなターゲットシステムを制御する場合に、特に好適に使用されている。
【００３６】
以下では、メニューを設計するときの手間を削減するための構成について説明する前に、制御システム全体の概略構成および動作について説明する。すなわち、図２に示すように、当該制御システム１では、複数の制御ユニット１１がローカルエリアネットワーク（ＬＡＮ）１２を介して接続されている。各制御ユニット１１には、上記ターゲットシステム２のデバイス２ａを制御する制御装置としてのＰＬＣ１３と、例えば、シリアルケーブルなどを介して、当該ＰＬＣ１３に接続されると共に、制御システム１のＨＭＩとして、デバイス２ａの状態を表示し、オペレータによるデバイス２ａへの操作を受け付けるグラフィック操作パネル（ユーザインターフェース装置）１４とが設けられている。
【００３７】
なお、図２では、説明の便宜上、ＬＡＮ１２に２つの制御ユニット１１が接続され、各制御ユニット１１のグラフィック操作パネル１４に、ＰＬＣ１３がそれぞれ１台ずつ接続されると共に、各ＰＬＣ１３にデバイス２ａが１台ずつ接続されている場合を例示しているが、当然ながら、それぞれの接続台数は任意に設定できる。
【００３８】
また、デバイスは、デバイスアドレスやシンボル名により特定可能で、しかも、状態を取得したり、制御（変更）できるものであればよく、例えば、デバイス２ａ自体であってもよいし、例えば、ＰＬＣ１３やグラフィック操作パネル１４の記憶装置など、制御システム１に設けられた記憶装置の一領域を示していてもよい。
【００３９】
さらに、本実施形態に係る制御システム１では、上記各制御ユニット１１間を接続する際、グラフィック操作パネル１４同士が、例えば、イーサネット（登録商標）などのＬＡＮ１２を介して接続されている。
【００４０】
このように、本実施形態に係る制御システム１では、制御システム１に必須の構成であり、しかも、ＨＭＩとして動作するため、演算能力に余力のあるグラフィック操作パネル１４が通信の大半を処理するように構成されている。さらに、各グラフィック操作パネル１４は、自らに接続されているＰＬＣ１３の機種に固有の専用プロトコルと、ＬＡＮ１２での共通プロトコルとを変換して、他のグラフィック操作パネル１４など、ＬＡＮ１２内の機器と、ＰＬＣ１３との通信を中継する。なお、共通プロトコルと専用プロトコルとの間のプロトコル変換には、同じ指示に同じコードが割り当てられるように予め定められた共通のコマンドと上記共通のコマンドに対応するＰＬＣ１３固有のコマンドとの間の変換や、データやアドレスの表現方法の変換、シンボル名とデバイスアドレスとの間の変換なども含まれる。
【００４１】
これにより、ＬＡＮ１２内の機器（グラフィック操作パネル１４など）は、他のグラフィック操作パネル１４に接続されているＰＬＣ１３の機種に拘らず、ＬＡＮ１２を介して共通のプロトコルで通信できる。この結果、互いに異なる機種のＰＬＣ１３の混在する制御システム１が比較的容易に実現されている。
【００４２】
より詳細には、上記グラフィック操作パネル１４は、表示／制御動作を規定する画面データ（ユーザインターフェースデータ）に基づいて、入力受け付け動作および画面表示動作を行う表示器であって、例えば、液晶表示パネルなどからなり、デバイス２ａの状態を表示する表示部２１と、例えば、上記パネル上に配されたタッチパネルなどからなり、オペレータからの操作を受け付ける入力部２２と、上記ＰＬＣ１３に接続されるＰＬＣ・インターフェース部（ＰＬＣ・ＩＦ部）２３と、上記ＬＡＮ１２に接続されるＬＡＮ・ＩＦ部２４と、上記画面データが予め格納されると共に、デバイス２ａの状態などが記憶される記憶部２５と、記憶部２５の画面データを参照しながら、上記部材２１〜２４を制御するＨＭＩランタイム部（生成手段）２６とを備えている。
【００４３】
なお、上記各部材２１〜２６、および、後述の各部材５１〜５４は、ＣＰＵなどの演算手段が、ＲＯＭやＲＡＭなどの記憶手段に格納されたプログラムを実行し、タッチパネルや液晶表示装置などの入出力手段、あるいは、インターフェース回路などの通信回路を制御することによって実現される機能ブロックである。したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体（例えば、ＣＤ−ＲＯＭなど）を読み取り、当該プログラムを実行するだけで、本実施形態に係るグラフィック操作パネル１４、あるいは、制御用ホストコンピュータ１５（後述）を実現できる。なお、例えば、ＬＡＮ１２、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
【００４４】
本実施形態に係る画面データは、画面を表示し、操作を受け付ける際の動作を特定するデータであって、例えば、解像度などの点で互いに異なる表示部２１を有するグラフィック操作パネル１４間、あるいは、後述する制御用ホストコンピュータ１５であっても当該画面データを共用できるように、抽象化されたオブジェクトデータ（手続きおよびデータ）として表現されている。一方、ＨＭＩランタイム部２６は、当該画面データを、自機器に応じた機械語に翻訳して実行することで画面表示や操作受付などの動作を実行する。なお、オブジェクトの内部変数やデバイス２ａの状態を記憶する領域、あるいは、作業領域など、ＨＭＩランタイム部２６が画面データを実行する際に必要な記憶領域は、上記記憶部２５に確保される。
【００４５】
より詳細には、本実施形態に係るエディタデータは、表示部２１の画面に表示可能な部品（図形要素）に対応するオブジェクトの集合としてのパネルオブジェクトを含んでいる。また、パネルオブジェクトには、デバイスに対応付け可能な変数のうち、上記各オブジェクトのいずれかから参照されている変数のリストが含まれている。さらに、デバイスに対応付けられた変数には、属性として、デバイスの状態を示す内容と、デバイスアドレスなど、デバイスを特定するための情報とが設けられている。
【００４６】
また、上記各オブジェクトは、上記変数のいずれかに対応付け可能であり、表示に関連するオブジェクトは、変数の内容に応じて、上記図形要素の表示を変更できる。また、各オブジェクトは、各種のメッセージを受け取り、当該メッセージに応じて動作できる。例えば、デバイスの状態を表示するオブジェクトは、デバイスの状態を示すメッセージを受け取ると、当該メッセージの内容、すなわち、デバイスの状態に応じて図形表示を変更できる。
【００４７】
一方、上記ＨＭＩランタイム部２６は、予め定められた周期で、上記リストに含まれた各変数の内容を取得する。具体的には、ＨＭＩランタイム部２６は、変数の属性のうち、デバイスを特定するための情報から、デバイスへの通信路を特定する。通信路が特定されると、必要に応じて、両ＩＦ部２３・２４へ指示して、自機器に接続されているＰＬＣ１３や、他のグラフィック操作パネル１４と通信し、デバイス２ａの状態を取得する。また、ＨＭＩランタイム部２６は、取得したデバイス２ａの状態を、変数の内容として、記憶部２５に格納する。
【００４８】
さらに、ＨＭＩランタイム部２６は、各変数を参照するオブジェクトへ、変数の内容をメッセージし、各オブジェクトは、メッセージに応じて画面表示を変更できる。例えば、あるオブジェクトが、線や円などの線画を示す基本図形を組み合わせて、部品を表示している場合、当該オブジェクトは、デバイスの状態に応じて、基本図形の色や大きさ、組み合わせられる各基本図形の相対位置などを変更して、部品の表示を変更できる。また、オブジェクトが、部品として、画像ファイルを表示している場合、当該オブジェクトは、デバイスの状態に応じて、参照する画像ファイルを変更して、部品の表示を変更できる。なお、画像ファイルを表示する際の色や大きさを変更し、表示を変更してもよい。
【００４９】
一方、オペレータが入力部２２によって画面上の部品を操作した場合、ＨＭＩランタイム部２６は、画面データに基づいて、操作対象となるデバイス２ａ、および、当該デバイス２ａへ送信すべき制御指示を特定する。さらに、ＨＭＩランタイム部２６は、必要に応じて、各ＩＦ部２３・２４を介し、ＰＬＣ１３や他のグラフィック操作パネル１４と通信し、デバイス２ａの状態制御指示を送信できる。
【００５０】
なお、デバイスがグラフィック操作パネル１４内の記憶領域に対応している場合など、状態取得に通信が不要な場合、ＨＭＩランタイム部２６は、通信不要と判断する。この場合、ＨＭＩランタイム部２６は、通信せずにデバイスの状態を取得したり、デバイスの状態を制御する。
【００５１】
本実施形態では、上記画面データが、例えば、Ｊａｖａ（登録商標）のソースコードをコンパイルして生成したバイトコードとして実現されている。また、上記ＨＭＩランタイム部２６は、図３に示すように、当該バイトコードを逐次翻訳・実行するＪａｖａ仮想マシン（ＶＭ）層３１と、グラフィック操作パネル１４のオペレーティングシステム（ＯＳ）層３０および上記ＪａｖａＶＭ層３１間に介在し、ＯＳ層３０間の相違を吸収する中間層３２とを備えており、上記バイトコードを実行することで、デバイス２ａの状態に応じたマーク（部品）を表示部２１の画面上に表示できる。
【００５２】
上記中間層３２は、例えば、ＪａｖａＶＭ層３１から呼び出し（使用）可能な関数、コマンドあるいはユーティリティ群として実現されており、グラフィック操作パネル１４の機種に拘わらず、ＪａｖａＶＭ層３１からの呼び出し（使用）方法（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ  ）が統一されている。上記関数、コマンドあるいはユーティリティとしては、上記ＪａｖａＶＭ層３１がバイトコードを実行してデバイス２ａの状態を表示する際に必要な処理、具体的には、ＪａｖａＶＭ層３１が表示部２１への画面表示を指示したり、ＰＬＣ１３との通信、あるいは、ＰＬＣ１３の状態に連動するように制御されるグラフィック操作パネル１４上のメモリへのアクセスしたりする際に必要な処理を行うものが用意されている。したがって、ＪａｖａＶＭ層３１から見て、ＯＳ層３０の相違を隠蔽できる。
【００５３】
ここで、ＨＭＩランタイム部２６は、画面データ（バイトコード）に基づいて画面表示するので、画面データを変更すれば、異なる画面を表示できる。したがって、用途が異なるグラフィック操作パネル１４であっても、機種が同一であれば共用できる。また、図３では、ＨＭＩランタイム部２６の一例として、例えば、ＯＳ層３０が、ＷｉｎｄｏｗｓＮＴ（登録商標）、ＷｉｎｄｏｗｓＣＥ（登録商標）、あるいは、ｐＳＯＳ（登録商標）を採用する機種用のＨＭＩランタイム部２６ａ〜２６ｄを、それぞれ例示している。なお、同図において、ＨＭＩランタイム部２６ｂおよび２６ｃは、ＷｉｎｄｏｗｓＣＥを採用しているが、ＣＰＵが互いに異なっている。
【００５４】
一方、図２に示すように、画面データ作成装置（ユーザインターフェースデータの生成装置）としての制御用ホストコンピュータ１５には、ＬＡＮ１２と接続するためのＬＡＮ・ＩＦ部５１と、ユーザの操作に応じて、予め格納された画面データを修正したり、新規作成したりして、表示画面を設計し、新たな画面データを生成する作画処理部（受け付け手段およびデータ生成手段）５２と、作画処理部５２などの要求に応じて、上記ＬＡＮ・ＩＦ部５１およびＬＡＮ１２を介して、グラフィック操作パネル１４と通信するサーバ部５３とを備えている。これにより、作画処理部５２が生成した画面データを、グラフィック操作パネル１４に送信し、グラフィック操作パネル１４の記憶部２５に格納させることができる。
【００５５】
さらに、本実施形態に係る制御用ホストコンピュータ１５には、ターゲットシステム２を監視制御するために、グラフィック操作パネル１４のＨＭＩランタイム部２６と略同一構成のＨＭＩランタイム部５４が設けられており、上記サーバ部５３が当該ＨＭＩランタイム部５４の要求に応じて、グラフィック操作パネル１４と通信することによって、ＨＭＩランタイム部５４は、ユーザの操作に応じた制御指示をグラフィック操作パネル１４へ伝えると共に、グラフィック操作パネル１４から受け取ったデータを表示することができる。
【００５６】
上記構成では、図４に示すステップ１（以下では、Ｓ１のように略称する）において、例えば、図２に示す制御用ホストコンピュータ１５の作画処理部５２は、ユーザの指示に応じて、グラフィック操作パネル１４の画面データを作成する。ここで、画面データでは、各オブジェクトが変数を介してデバイスと対応付けられているので、デバイスのアドレスなど、デバイスを特定する情報は、画面データの生成までに決定していればよく、画面にオブジェクトを配置した時点に決定しておく必要がない。また、変更があった場合でも、デバイスのアドレスとオブジェクトとを直接関連付ける場合とは異なり、変数の属性のうち、デバイスを特定する情報のみを変更すればよく、オブジェクト全てを変更する必要がない。したがって、画面データ設計時または変更時の手間を削減できる。
【００５７】
上記Ｓ１にて、画面設計が終了し、設計した画面に対応するＪａｖａのソースコードを、上記作画処理部５２がコンパイルして画面データを作成すると、Ｓ２において、上記サーバ部５３は、各グラフィック操作パネル１４へ当該画面データを送信する。これにより、当該画面データは、グラフィック操作パネル１４の記憶部２５に格納される。
【００５８】
これにより、グラフィック操作パネル１４は、Ｓ３において、画面データに基づいて、デバイスの状態を表示部２１に表示すると共に、入力部２２への操作に応じて、デバイスの状態を変更する。
【００５９】
ここで、制御システム１のグラフィック操作パネル１４において、ＨＭＩランタイム部２６は、オペレータに情報を提示する際に、より詳細な情報を段階的に提示するため、あるいは、オペレータの操作を受け付ける際、段階的に、より狭いカテゴリーの操作対象が提示されるように、階層的にメニューを表示できるように構成されている。
【００６０】
さらに、本実施形態に係る制御システムでは、当該階層的なメニュー表示ができるにも拘わらず、メニュー作成時および変更時の手間を抑制できるように、画面データが形成されており、上記グラフィック操作パネル１４は、当該画面データに基づいて、階層的に画面表示する。
【００６１】
具体的には、本実施形態に係る画面データは、階層メニューを表示するためのメニューオブジェクトを含むことができる。当該メニューオブジェクトには、属性（設定項目／プロパティ）として、表示する各項目の内容が格納されたファイルを示すファイル名変数と、当該メニューオブジェクトによって表示された項目のうち、オペレータの操作によって選択された項目（選択項目）を示す行データ変数と、親メニューの選択項目を参照するためのブロック変数と、メニュー表示時の画面領域とが設定されている。また、本実施形態に係るグラフィック操作パネル１４は，複数の単位画面を切り換え表示可能であり、上記メニューオブジェクトには、属性として、メニューを表示する単位画面も設定されている。
【００６２】
なお、本実施形態に係るメニューオブジェクトには、他の属性として、使用言語を示すランゲージ変数が設けられており、ランゲージ変数が設定されている場合、ランゲージ変数と上記ファイル名変数との組み合わせにより、表示に使用するファイルを特定することによって、表示時に利用するファイルを使用言語に応じて切り換えることができる。
【００６３】
また、本実施形態では、上記各テキストファイルが、例えば、着脱可能な半導体メモリなど、着脱可能な記録媒体に記録されており、これらの記録媒体を取り換えることによって、メニューとして表示する項目の内容を切り換えたり、他のコンピュータ（制御用ホストコンピュータ１５など）で編集されたテキストファイルを記録した記録媒体を、グラフィック操作パネル１４に装着することによって、テキストファイルをグラフィック操作パネル１４にインストールできる。特に、本実施形態では、上記ファイルが、テキストファイルのように、汎用のコンピュータでも編集可能な形式で記録されているので、上記メニューとして表示する項目の内容を比較的容易に編集できる。
【００６４】
さらに、本実施形態に係るメニューオブジェクトには、項目として表示される文字の色およびフォント、背景の色、行間隔、文字列の横位置合わせ、罫線表示の有無、罫線の色、スクロールバーの使用の有無、文字列の背景、並びに、カーソル表示時の文字色および背景色なども設定することができる。
【００６５】
ここで、これらの各属性は、上述した他のオブジェクトと同様に、制御用ホストコンピュータ１５の作画処理部５２によって設定され、作画処理部５２は、上記各属性の設定指示を受け付けると、それらの属性を有するオブジェクトを生成するための画面データを作成する。
【００６６】
一方、グラフィック操作パネル１４のＨＭＩランタイム部２６が、上記メニューオブジェクトを含む画面データに基づいて動作すると、ＨＭＩランタイム部２６には、図１に示すメニューオブジェクトＯ１…が形成される。図１では、一例として、図５〜図８に示すように、最も親となるメニューＭ１と、その子メニューとなるメニューＭ２と、当該メニューＭ２のさらに子メニューとなるメニューＭ３（メニューＭ１から見れば、孫メニュー）とを表示する場合に形成されるメニューオブジェクトＯ１〜Ｏ３を示しており、メニューＭ１に関連するメニューオブジェクトＯ１と、メニューＭ２に関連するメニューオブジェクトＯ２と、メニューＭ３に関連するメニューオブジェクトＯ３とが形成される。
【００６７】
上記メニューオブジェクトＯ１の変数記憶部Ａ１１には、上記ファイル名変数、ブロック変数および選択行変数を記憶するための各記憶部Ａ１２〜Ａ１４と、ブロック変数記憶部Ａ１３に格納されたブロック変数（親メニュー変数）を監視する監視処理部（監視手段）Ｐ１１と、ファイル名変数記憶部Ａ１２に格納されたファイル名変数を参照して、メニューに表示する項目の内容が記述されたテキストファイル（ファイル）Ｆ１を特定すると共に、当該テキストファイルＦ１の内容と、上記監視処理部Ｐ１１が監視しているブロック変数の内容とに基づいて、メニューの各項目を表示する表示処理部（提示手段）Ｐ１２と、表示しているメニューへの操作を受け付け、操作に応じて、上記選択行変数記憶部Ａ１４に格納された選択行変数（自メニュー変数）の内容を更新する入力処理部（更新手段）Ｐ１３とを備えている。なお、上記変数記憶部Ａ１１には、当該メニューオブジェクトＯ１の他の属性も格納されている。
【００６８】
同様に、メニューオブジェクトＯ２およびＯ３には、それぞれ、各記憶部Ａ２１〜Ａ２４およびＡ３１〜Ａ３４と、各処理部Ｐ２１〜Ｐ２３およびＰ３１〜Ｐ３３とが設けられている。
【００６９】
また、上述したように、各メニューオブジェクトＯ２・Ｏ３のブロック行変数は、それぞれの親メニューＭ１・Ｍ２の選択項目を示すために、当該親メニューＭ１・Ｍ２に関連するメニューオブジェクトＯ１・Ｏ２の選択行変数を指すように設定されている。なお、最も親になるメニューＭ１に関連するメニューオブジェクトＯ１のブロック変数は、例えば、メニューＭ１の表示を指示するイベント（例えば、図５に示す文字列Ｓへのタッチ操作など）に応じた内容が格納されるデバイスを指している。
【００７０】
一方、上記テキストファイルＦ１〜Ｆ３は、図９〜図１１に示すように、各メニューオブジェクトＯ１〜Ｏ３毎に設けられている。各テキストファイルには、自らによって表示されるメニューの親階層のメニューにおける選択項目に応じた数のブロックが設けられている。ここで、最も親となるメニューの場合は、その親メニューが存在しないので、表示の指示を、予め定められた１つの項目の選択として扱う。したがって、最も親となるメニューに対応するテキストファイルでは、１つのブロックが設けられる。
【００７１】
さらに、当該各ブロックは、親メニューにおいて、自ブロックに対応する選択項目の順番に応じて並べられている。なお、本実施形態では、各ブロックが、予め定められたセパレータ（図９〜図１１の例では「；；」からなる行）で区切られている。
【００７２】
また、各ブロックには、それぞれの親メニューにおいて、それぞれに対応した項目が選択されているときに、自メニューとして表示される項目に応じた行が設けられており、各行が、各項目の内容を示している。
【００７３】
例えば、メニューオブジェクトＯ１によって表示されるメニューＭ１は、最も親なので、メニューオブジェクトＯ１が参照するテキストファイルＦ１には、図９に示すように、１つのブロックＢ１が設けられている。また、メニューＭ１では、図６に示すように、３つの項目Ｉ１１〜Ｉ１３が表示されるので、当該ブロックＢ１には、３つの行Ｌ１１〜Ｌ１３が設けられている。なお、各行Ｌ１１〜Ｌ１３の内容は、各項目Ｉ１１〜Ｉ１３の内容を示している。
【００７４】
一方、メニューオブジェクトＯ２によって表示されるメニューＭ２は、上記メニューＭ１の子メニューなので、図１０に示すように、メニューオブジェクトＯ２が参照するテキストファイルＦ２には、上記メニューＭ１の項目Ｉ１１〜Ｉ１３の数に応じたブロックＢ１１〜Ｂ１３が設けられている。
【００７５】
また、上記項目Ｉ１２が選択されたときに表示されるメニューＭ２には、図７に示すように、４つの項目Ｉ１２１〜Ｉ１２４が表示されるので、ブロックＢ１２には、４つの行Ｌ１２１〜Ｌ１２４が設けられている。同様に、図１０の例では、項目Ｉ１１に対応して設けられたブロックＢ１１には、２つの行Ｌ１１１・Ｌ１１２が記述され、項目Ｉ１３に対応して設けられたブロックＢ１３には、３つの行Ｌ１３１〜Ｌ１３３が記述されている。
【００７６】
さらに、メニューオブジェクトＯ３によって表示されるメニューＭ３は、上記メニューＭ２の子メニューなので、メニューオブジェクトＯ３が参照するテキストファイルＦ３には、メニューＭ２に表示される可能性がある項目の累計、すなわち、親階層の項目数のブロックＢ１１１〜Ｂ１３３が設けられている。上記の例では、メニューＭ２には、メニューＭ１で項目Ｉ１１が選択された場合、２個の項目Ｉ１１１・Ｉ１１２が表示され、メニューＭ１で項目Ｉ１２あるいはＩ１３が選択されたときには、それぞれ、４個の項目Ｉ１２１〜Ｉ１２４および３個の項目Ｉ１３１〜Ｉ１３３が表示されるので、９（＝２＋４＋３）個のブロックＢ１１１・Ｂ１１２、Ｂ１２１〜Ｂ１２４およびＢ１３１〜Ｂ１３３の計９個のブロックが設けられている。なお、図１１では、それらのブロックのうち、ブロックＢ１２１〜Ｂ１２４のみを記載している。
【００７７】
また、テキストファイルＦ３において、これらのブロックが出現する順番は、親メニュー（Ｍ２）において、自ブロックに対応する選択項目の順番、言い換えると、親メニュー（Ｍ２）に対応するテキストファイルＦ２において、各ブロックに対応する行が出現する順番に設定されており、例えば、メニューＭ２の項目Ｉ１２４に対応する行Ｌ１２４は、テキストファイルＦ２において、メニューＭ２の各項目に対応する行のうちの６番目である。したがって、当該項目Ｉ１２４が選択されたときに、メニューＭ３に表示される項目群を示すブロックＢ１２４は、テキストファイルＦ３において、６つ目のブロックとして記述されている。
【００７８】
上記のように設定された画面データによって、上記各メニューオブジェクトＯ１〜Ｏ３が形成され、しかも、それぞれの入力操作部Ｐ１３〜Ｐ３３が入力を待ち受けているときであっても、それぞれのブロック変数が指し示す監視対象が、それぞれの非表示を示している場合には、図５に示すように、各メニューオブジェクトＯ１〜Ｏ３の表示処理部Ｐ１２〜Ｐ３２は、メニューＭ１〜Ｍ３を表示していない。
【００７９】
この状態において、例えば、オペレータが文字列Ｓをタッチするなどして、上記メニューオブジェクトＯ１の監視処理部Ｐ１１の監視対象が、メニューＭ１の表示を示す状態になると、メニューオブジェクトＯ１の表示処理部Ｐ１２は、テキストファイルＦ１の参照結果に基づいて、メニューＭ１として表示すべき項目の内容を決定し、それらの項目からなるメニューＭ１を表示する。
【００８０】
ここで、上記メニューＭ１は、最上位のメニューであり、監視対象は、メニューＭ１の表示を指示しているだけである。したがって、上記表示処理部Ｐ１２は、テキストファイルＦ１のうち、最初のブロックＢ１に含まれる各行Ｌ１１〜Ｌ１３の内容を、図６に示すように、メニューＭ１の項目Ｉ１１〜Ｉ１３として表示する。
【００８１】
なお、この状態では、メニューＭ１の項目Ｉ１１〜Ｉ１３は、いずれも選択されていないので、メニューオブジェクトＯ１の選択行変数記憶部Ａ１４に記憶されている選択行変数は、メニューの非表示を示す値のままである。したがって、当該選択行変数を監視対象とするメニューオブジェクトＯ２において、表示処理部Ｐ２２は、メニューＭ２を表示していない。同様に、メニューオブジェクトＯ２の選択行変数を監視対象とするメニューオブジェクトＯ３も、メニューＭ３を表示していない。
【００８２】
この状態で、メニューオブジェクトＯ１の入力処理部Ｐ１３が、例えば、メニューＭ１の項目のうちのいずれかへのタッチを検出するなどして、メニューＭ１の項目の選択指示を受け付けると、入力処理部Ｐ１３は、選択行変数記憶部Ａ１４に記憶されている選択行変数を、選択に応じた値に変更する。
【００８３】
ここで、メニューオブジェクトＯ２の監視処理部Ｐ２１は、上述したように、メニューオブジェクトＯ１の選択行変数を監視対象としているので、当該監視処理部Ｐ２１によって、当該選択行変数の変化が検出される。さらに、メニューオブジェクトＯ２において、監視処理部Ｐ２１が監視対象の変化を検出すると、表示処理部Ｐ２２は、監視対象、すなわち、テキストファイルＦ２のうち、メニューオブジェクトＯ１の選択行変数に応じたブロックの内容に基づいて、メニューＭ２を表示する。
【００８４】
例えば、メニューＭ１において、図６に示す項目Ｉ１２が選択されると、選択行変数は、項目Ｉ１２を示す値（例えば、テキストファイルＦ１において、項目Ｉ１２に対応する行Ｌ１２の順番を示す値２）に変化する。この場合、表示処理部Ｐ２３は、テキストファイルＦ２のうち、項目Ｉ１２に応じたブロックＢ１２（例えば、テキストファイルＦ２のうち、上記値が示す順番のブロックＢ１２）に含まれる各行Ｌ１２１〜Ｌ１２４の内容を、図７に示すように、各項目Ｉ１２１〜Ｉ１２４とするメニューＭ２を表示する。
【００８５】
なお、この状態では、メニューＭ２の項目Ｉ１２１〜Ｉ１２４は、いずれも選択されていないので、メニューオブジェクトＯ２の選択行変数記憶部Ａ２４に記憶されている選択行変数は、メニューの非表示を示す値のままである。したがって、当該選択行変数を監視対象とするメニューオブジェクトＯ３において、表示処理部Ｐ３２は、メニューＭ３を表示していない。
【００８６】
同様に、メニューＭ２の項目のうち、項目Ｉ１２４が選択されると、メニューオブジェクトＯ２の選択行変数が、テキストファイルＦ２において、項目Ｉ１２３に対応する行Ｌ１２４の順番を示す値（６）に変化するので、当該選択行変数を監視対象とするメニューオブジェクトＯ３において、表示処理部Ｐ３３は、テキストファイルＦ３のうち、上記値の順番のブロック（Ｂ１２４）の各行Ｌ１２４１〜Ｌ１２４５の内容を、図８に示すように、メニューＭ３の項目Ｉ１２４１〜Ｉ１２４５として表示する。
【００８７】
さらに、例えば、各メニューＭ１〜Ｍ３が表示されている領域外をタッチするなどして、メニューＭ１〜Ｍ３の非表示が指示されると、各メニューオブジェクトＯ１〜Ｏ３の入力処理部Ｐ１３〜Ｐ３３は、それぞれの選択行変数を非選択を示す値に変更する。また、この場合、メニューオブジェクトＯ１の監視対象の内容も、非選択を示す値に変更される。この結果、各メニューオブジェクトＯ１〜Ｏ３の表示処理部Ｐ１２〜Ｐ３２は、メニューＭ１〜Ｍ３の表示を停止する。これにより、グラフィック操作パネル１４の画面は、図５に示す状態に戻る。
【００８８】
なお、上記では、各項目が選択可能な場合を例にして説明したが、メニューオブジェクトには、属性として、メニュー全体、あるいは、各項目毎に、入力受け付けの可否を設定でき、メニューオブジェクトの入力処理部は、入力受け付け不可と設定されている場合、選択行変数を変更しない。これにより、これらの項目を単なる説明文として表示することができる。
【００８９】
このように、本実施形態では、グラフィック操作パネル１４が階層的にメニューを表示できるにも拘わらず、上記各階層のメニュー（Ｍ２・Ｍ３）を表示するためのメニューオブジェクト（Ｏ２・Ｏ３）は、それぞれの親階層のメニュー（Ｍ１・Ｍ２）を表示するためのメニューオブジェクト（Ｏ１・Ｏ２）の選択行変数を監視し、自らの選択行変数を更新できればよく、自らが表示しているメニュー（Ｍ２・Ｍ３）の各項目が選択されたときに、子メニューが呼び出されるか否かを把握しなくてもよい。この結果、グラフィック操作パネル１４のユーザインターフェースの設計者（制御用ホストコンピュータ１５のユーザ）の負担を軽減でき、メンテナンスしやすいグラフィック操作パネル１４を実現できる。
【００９０】
例えば、新たな階層のメニューＭ４を追加する場合、すなわち、メニューＭ３における項目の提示だけでは不十分になり、これまでの項目表示から、より詳細な項目を提示するための子メニューの呼び出しへ変更する場合であっても、メニューＭ１〜Ｍ３を表示するためのメニューオブジェクトＯ１〜Ｏ３の動作を変更する必要がなく、単に、メニューＭ４を表示するためのメニューオブジェクトＯ４を画面データに含めると共に、メニューオブジェクトＯ４のブロック変数が、メニューＭ４の親メニューとなるメニューＭ３を表示するためのメニューオブジェクトＯ３の選択行変数を指すように設定し、メニューオブジェクトＯ４用のテキストファイルＦ４を用意すればよい。
【００９１】
なお、メニューＭ４が呼び出される場合は、メニューオブジェクトＯ４の監視処理部が、メニューオブジェクトＯ３の選択行変数を監視している。したがって、メニューオブジェクトＯ４が表示するメニューＭ４よりも上層のメニューＭ１〜Ｍ３を表示するための各メニューオブジェクトＯ１〜Ｏ３の動作を変更しなくても、何ら支障なく、メニューＭ４をメニューＭ３の子メニューとして呼び出すことができる。
【００９２】
なお、上記では、メニューオブジェクトが階層毎に設けられている場合を例にして説明したが、これに限るものではない。各メニューを表示するためのメニューオブジェクトが、親メニューの選択項目を示す選択行変数を監視する監視して、当該選択行変数が示す選択項目に応じたメニューを、自メニューとして提示すると共に、自メニューへの操作に応じて、自メニューオブジェクトの選択行変数を更新できれば、自メニューオブジェクトは、自らの表示するメニューの項目が選択されたときに子メニューが呼び出されるか否かを把握しなくてもよいので、略同様の効果が得られる。
【００９３】
ただし、本実施形態のように、以下の構成を備えていれば、グラフィック操作パネル１４の画面の設計者の負担を、さらに軽減できる。具体的には、本実施形態では、上記各テキストファイルＦ１〜Ｆ３には、互いに同じ階層となるメニューを表示するためのブロックが、１つのファイルにまとめて記述されている。また、当該テキストファイルＦ１〜Ｆ３では、各メニューに対応するブロックが、親メニューにおける選択項目に応じた順番で、記述されている。一方、各ブロックには、それぞれのメニューの各項目の内容を示す行が、各項目の表示順に記述されている。
【００９４】
当該構成では、メニューＭ２に、新たな子メニューを追加する場合、子メニューに対応するテキストファイルＦ３に含まれるブロックのうち、ある順番（例えば、最後）に、新たな子メニューを示すブロック（例えば、Ｂ１３４）などを追加し、自メニューに対応するテキストファイルＦ２において、当該子メニューを呼び出すブロック（例えば、Ｂ１３）に記述された各表示内容のうち、上記順番（例えば、最後）に、上記子メニューを呼び出すための項目の内容を示す行（例えば、Ｌ１３４）を追加するだけで、子メニューを追加できる。
【００９５】
このように、上記構成では、上記テキストファイルＦ２・Ｆ３において、表示順に対応する順番に、行あるいはブロックを追加するだけで、子メニューを追加できるので、例えば、子メニューを表示するためのファイルのＵＲＬ、ファイルの保管場所あるいは名前を記憶し、それに応じて、子メニューに関連する設定と自メニューに関連する設定とを更新する場合よりも、グラフィック操作パネル１４の画面の設計者の負担を軽減できる。
【００９６】
ところで、上記では、ユーザインターフェース装置の一例として、制御システムのＨＭＩとして使用されるグラフィック操作パネル１４を例にして説明したが、これに限るものではない。階層的にメニューを表示可能なユーザインターフェース装置であれば、本発明を適用できる。
【００９７】
ただし、本実施形態のように、制御システムのＨＭＩとして使用されるグラフィック操作パネル１４では、その操作画面が、ターゲットシステム２の構成や制御システム１の構成（グラフィック操作パネル１４の種類および数、あるいは、デバイスの種類および数など）に応じて更新される。また、最適な操作画面は、オペレータの習熟度などにも左右される。これらの結果、グラフィック操作パネル１４の操作画面は、比較的頻繁に変更されることが多い。
【００９８】
また、ターゲットシステム２の構成や制御システム１の構成あるいはグラフィック操作パネル１４のオペレータの習熟度などに応じて、設計すべき操作画面が変わるため、操作画面の設計者が、制御システム１の運用者（制御用ホストコンピュータ１５のユーザ）を兼ねていることも多い。
【００９９】
したがって、本実施形態のグラフィック操作パネル１４の構成によって、階層的にメニュー表示するための画面データを作成する際の手間を削減することによって、特に大きな効果を得ることができる。
【０１００】
なお、上記では、メニューの提示方法として、各項目を画面に表示する場合を例にして説明したが、例えば、各項目を音声で提示してもよい。ユーザに階層的にメニューを提示可能なユーザインターフェース装置であれば、本発明を広く適用できる。
【０１０１】
【発明の効果】
請求項１記載の発明に係るユーザインターフェース装置は、以上のように、親メニューの選択項目を示す親メニュー変数を監視する監視手段と、当該監視手段に対応して設けられ、当該監視手段によって監視されている親メニュー変数が示す選択項目に応じたメニューを、自メニューとして提示する提示手段と、上記監視手段に対応して設けられ、自メニューへの操作に応じて、自メニューにおける選択項目を示す自メニュー変数を更新する更新手段とを備えている構成である。また、請求項５記載の発明に係るプログラムは、上記各手段としてコンピュータを動作させるプログラムであって、当該プログラムを実行することによって当該コンピュータは、上記ユーザインターフェース装置として動作する。
【０１０２】
上記構成では、ユーザインターフェース装置が階層的にメニューを表示できるにも拘わらず、上記各監視手段および更新手段は、親メニューの親メニュー変数を監視し、自メニューの自メニュー変数を更新できればよく、自メニューの項目が選択されたときに、子メニューが呼び出されるか否かを把握しなくてもよい。この結果、ユーザインターフェースの設計者の負担を軽減でき、メンテナンスしやすいユーザインターフェース装置を実現できるという効果を奏する。
【０１０３】
請求項２の発明に係るユーザインターフェース装置は、以上のように、請求項１記載の構成に加えて、上記提示手段は、それぞれに対応して設けられたファイルを参照して、当該ファイルに含まれるブロックであって、しかも、親メニューにおける選択項目の順番に応じた順番のブロックが示す各項目を、自メニューの各項目として提示すると共に、上記ファイルには、親メニューの各選択項目に対応するメニュー毎にブロックが設けられ、当該ブロックは、予め定められたブロック区切りで区切られており、上記各ブロックには、それぞれのメニューの各項目に対応する提示内容が、各項目の提示順に記述されている構成である。
【０１０４】
上記構成では、ファイルには、親メニューの互いに同じメニューが、１つのファイルにまとめて記述されている。また、当該ファイルでは、各メニューに対応するブロックが、親メニューにおける選択項目に応じた順番で、記述されている。一方、各ブロックには、それぞれのメニューの各項目に対応する提示内容が、各項目の提示順に記述されている。
【０１０５】
それゆえ、新たな子メニューを追加する場合、子メニューに対応するファイルと自メニューに対応するファイルとにおいて、提示順に対応する順番に、提示内容あるいはブロックを追加するだけで、子メニューを追加できる。したがって、ユーザインターフェース装置のユーザインターフェースの設計者の負担を軽減できるという効果を奏する。
【０１０６】
請求項３の発明に係るユーザインターフェース装置は、以上のように、請求項１記載の発明の構成において、上記監視手段、提示手段および更新手段は、コンピュータが予め定められたプログラムを実行することによって実現されていると共に、上記親メニュー変数および自メニュー変数の組み合わせを含むユーザインターフェースデータに基づいて、それぞれの組み合わせ毎に、上記監視手段、提示手段および更新手段を形成する生成手段を備えている構成である。
【０１０７】
当該構成では、上記ユーザインターフェースデータに基づいて、各監視手段、提示手段および更新手段が形成される。したがって、ユーザインターフェース装置のユーザインターフェースの設計者は、親メニュー変数および自メニュー変数の組み合わせを設定するだけで、ユーザインターフェース装置に、階層的なメニュー提示を指示でき、設計時の手間を軽減できるという効果を奏する。
【０１０８】
請求項４の発明に係るユーザインターフェースデータの生成装置は、以上のように、親メニューの選択項目を示す親メニュー変数を監視する監視手段と、当該監視手段に対応して設けられ、当該監視手段によって監視されている親メニュー変数が示す選択項目に応じたメニューを、自メニューとして提示する提示手段と、上記監視手段に対応して設けられ、自メニューへの操作に応じて、自メニューにおける選択項目を示す自メニュー変数を更新する更新手段とをユーザインターフェース装置に生成させるためのユーザインターフェースデータの生成装置であって、上記親メニュー変数および自メニュー変数の組み合わせを受け付ける受け付け手段と、それぞれの組み合わせに応じた上記監視手段、提示手段および更新手段を上記ユーザインターフェース装置に生成させるためのユーザインターフェースデータを生成するデータ生成手段とを備えている構成である。また、請求項６記載のプログラムは、上記受け付け手段およびデータ生成手段としてコンピュータを動作させるプログラムであって、当該プログラムを実行することによって、当該コンピュータは、上記ユーザインターフェースデータの生成装置として動作する。
【０１０９】
当該構成でも、上記各監視手段および更新手段は、メニューを階層的に提示できるにも拘わらず、親メニューの親メニュー変数を監視し、自メニューの自メニュー変数を更新できればよく、自メニューの項目が選択されたときに、子メニューが呼び出されるか否かを把握しなくてもよい。したがって、ユーザインターフェース装置のユーザインターフェースの設計者は、ユーザインターフェース装置に生成すべき監視手段、提示手段および更新手段の組み合わせ毎に、自メニュー変数および親メニュー変数の組み合わせを入力するだけでよい。したがって、階層を追加／変更する際に、ユーザインターフェース装置のユーザインターフェースの設計者の負担を軽減できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施形態を示すものであり、グラフィック操作パネルに生成されるメニューオブジェクトの要部構成を示すブロック図である。
【図２】上記グラフィック操作パネルを含む制御システムの要部構成を示すブロック図である。
【図３】上記グラフィック操作パネルのＨＭＩランタイム部の構成例を示すブロック図である。
【図４】上記制御システムの概略動作を示すフローチャートである。
【図５】上記グラフィック操作パネルの画面例を示すものであり、文字列が表示されている状態を示す図面である。
【図６】上記グラフィック操作パネルの画面例を示すものであり、親メニューが表示された状態を示す図面である。
【図７】上記グラフィック操作パネルの画面例を示すものであり、子メニューが表示された状態を示す図面である。
【図８】上記グラフィック操作パネルの画面例を示すものであり、孫メニューが表示された状態を示す図面である。
【図９】上記各メニューを表示するためのテキストファイルを示すものであり、親メニューに対応するテキストファイルを示す図面である。
【図１０】上記各メニューを表示するためのテキストファイルを示すものであり、子メニューに対応するテキストファイルを示す図面である。
【図１１】上記各メニューを表示するためのテキストファイルを示すものであり、孫メニューに対応するテキストファイルを示す図面である。
【図１２】従来例を示すものであり、制御システムの要部構成を示すブロック図である。
【図１３】上記制御システムのグラフィック操作パネルが参照するデータを示す図面である。
【符号の説明】
１４  グラフィック操作パネル（ユーザインターフェース装置）
１５  制御用ホストコンピュータ（ユーザインターフェースデータの生成装置）２６  ＨＭＩランタイム部（生成手段）
５２  作画処理部（受け付け手段およびデータ生成手段）
Ｐ１１〜Ｐ３１    監視処理部（監視手段）
Ｐ１２〜Ｐ３２    表示処理部（提示手段）
Ｐ１３〜Ｐ３３    入力処理部（更新手段）
Ｆ１〜Ｆ３        テキストファイル（ファイル）
Ｂ１１〜Ｂ１２４  ブロック
【図１】
2004178307.tif 000003
【図２】
2004178307.tif 000004
【図３】
2004178307.tif 000005
【図４】
2004178307.tif 000006
【図５】
2004178307.tif 000007
【図６】
2004178307.tif 000008
【図７】
2004178307.tif 000009
【図８】
2004178307.tif 000010
【図９】
2004178307.tif 000011
【図１０】
2004178307.tif 000012
【図１１】
2004178307.tif 000013
【図１２】
2004178307.tif 000014
【図１３】
2004178307.tif 000015