本発明の一実施形態について図1ないし図10に基づいて説明すると以下の通りである。すなわち、本実施形態に係る制御システムは、例えば、製造プラントなどに設けられたターゲットシステム2を制御するために好適に用いられており、例えば、ベルトコンベアー式の自動組付機など、当該ターゲットシステム2のデバイス(制御対象)3を制御するために用いられている。
以下では、上記制御システムのHMIとして機能するグラフィック操作パネルにおいて制御のためのデータとしてのレシピデータ(後述)を入力する際の手間を削減するための構成について説明する前に、制御システム全体の概略構成および動作について説明する。すなわち、図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、並びに、後述の各部材31〜33、61〜63および71〜74は、CPUなどの演算手段が、ROMやRAMなどの記憶手段に格納されたプログラムを実行し、ディスプレイ21やタッチパネル22などの入出力手段、あるいは、インターフェース回路などの通信回路を制御することによって実現される機能ブロックである。なお、これらの部材のうち、各記憶部25・62・71は、ROMやRAMなどの記憶装置自体であってもよい。
したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体(例えば、CD−ROMなど)を読み取り、当該プログラムを実行するだけで、本実施形態に係るグラフィック操作パネル14、あるいは、後述する作画エディタ装置16を実現できる。なお、例えば、LAN12、あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、これらの通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
本実施形態に係る画面データは、グラフィック操作パネル14が、デバイス3の状態を表示する操作画面を表示し、デバイス3への操作を受け付ける際の動作を特定するデータであって、例えば、解像度などの点で互いに異なるディスプレイ21を有するグラフィック操作パネル14間、あるいは、後述する制御用ホストコンピュータ15であっても当該画面データを共用できるように、抽象化されたオブジェクトデータ(手続きおよびデータ)として表現されている。一方、HMIランタイム部26は、当該画面データを、自機器に応じた機械語に翻訳して実行することで画面表示や操作受付などの動作を実行する。なお、オブジェクトの内部変数やデバイス3の状態を記憶する領域、あるいは、作業領域など、HMIランタイム部26が画面データを実行する際に必要な記憶領域は、上記記憶部25に確保される。
より詳細には、本実施形態に係る画面データは、HMIランタイム部26がオブジェクトを生成するためのデータであって、ディスプレイ21の画面に表示可能な部品(図形要素)に対応するオブジェクトの集合としてのパネルオブジェクトを生成するためのデータを含んでいる。
また、本実施形態に係る画面データでは、オブジェクトがアドレスによって直接デバイスと関連付けられているのではなく、デバイスを特定する情報(アドレスなど)に対応する変数を介してデバイスと対応付けられている。本実施形態では、オブジェクトは、属性によって変数と対応付けられており、上記各オブジェクトのうち、デバイスに関連するオブジェクトは、それぞれに対応付けられた変数を示すデバイス属性ADを有しており、当該属性ADによって、上記変数のいずれかに対応付けできる。
一方、デバイスに対応付けられた変数には、属性として、デバイスの状態を示す内容と、デバイスアドレスなど、デバイスを特定するための情報とが設けられている。また、上記パネルオブジェクトを生成するためのデータには、デバイスに対応付け可能な変数のうち、上記各オブジェクトのいずれかから参照されている変数のリストが含まれている。
また、上記各オブジェクトは、画面上の領域と対応付けることができる。本実施形態では、当該対応付けも、オブジェクトの属性によって行われており、上記各オブジェクトのうち、例えば、画面上の一領域にデバイスの状態を表示するオブジェクトや、画面上の一領域への操作を受け付けるオブジェクトには、当該領域を示す領域属性AAが付加されている。これにより、オブジェクトは、当該領域属性AAの値を参照すれば、自らがデバイスの状態を表示すべき画面上の領域を特定したり、操作を受け付けるべき画面上の領域をHMIランタイム部26へ伝えたりすることができる。
さらに、各オブジェクトは、自らの属性を参照しながら、メッセージに応じて、あるいは、予め定められたタイミングで、例えば、他のオブジェクトとのやり取りや、他の部材21〜26とのやり取りなど、予め定められた処理を行うことができる。なお、当該処理としては、例えば、変数の内容取得や、変数の内容変更、ディスプレイ21への表示などが挙げられる。
例えば、デバイスの状態を表示するオブジェクトは、例えば、デバイスの状態表示を示すメッセージを受け取った時点や、予め定められたタイミング(例えば、予め定められた時間が経過した時点など)になると、上記デバイス属性ADの値に基づいて、自らに対応付けられた変数の内容を取得すると共に、上記領域属性AAの値に基づいて、自らがデバイスの状態を表示すべき、画面上の領域を特定する。さらに、オブジェクトは、予め定められた手順に従って、変数の内容、すなわち、デバイスの状態に応じて、上記領域における図形表示を変更できる。
一例として、あるオブジェクトが、線や円などの線画を示す基本図形を組み合わせて、部品を表示している場合、当該オブジェクトは、デバイスの状態に応じて、基本図形の色や大きさ、組み合わせられる各基本図形の相対位置などを変更して、部品の表示を変更できる。また、オブジェクトが、部品として、画像ファイルを表示している場合、当該オブジェクトは、デバイスの状態に応じて、参照する画像ファイルを変更して、部品の表示を変更できる。なお、画像ファイルを表示する際の色や大きさを変更し、表示を変更してもよい。
また、オペレータがタッチパネル22によって画面上の部品を操作した場合、HMIランタイム部26は、画面データに基づいて、あるいは、オブジェクトからの応答に基づいて、操作対象となるオブジェクトを特定し、当該オブジェクトに、操作内容に応じたメッセージを送信できる。一方、上記各オブジェクトのうち、操作を受け付け可能なオブジェクトは、例えば、画面へのタッチなどによる、オブジェクトへの操作受け付けを示すメッセージを受け取ると、メッセージの示す操作に応じて、自らに対応付けられた変数の内容を変更できる。
さらに、上記HMIランタイム部26は、変数の内容と、それに対応するデバイスの状態とが一致するように、変数の内容と、それに対応するデバイスの状態との少なくとも一方を更新できる。具体的には、HMIランタイム部26は、例えば、予め定められた周期など、予め定められたタイミングで、上記リストに含まれた各変数に対応するデバイスの状態を取得し、当該状態に応じて、それに対応する変数の内容を更新できる。また、HMIランタイム部26は、例えば、予め定められた周期など、予め定められたタイミングで、変数の内容に応じて、変数に対応するデバイスの状態を変更できる。
より詳細には、HMIランタイム部26は、変数の属性のうち、デバイスを特定するための属性の値に基づいて、デバイスへの通信経路を特定する。通信路が特定されると、必要に応じて、両IF部23・24へ指示して、自機器に接続されているPLC13、あるいは、他のグラフィック操作パネル14と通信し、デバイス3の状態を取得する。また、HMIランタイム部26は、取得したデバイス3の状態を、変数の内容として、記憶部25に格納できる。
一方、変数の内容に応じてデバイス3の状態を変更する場合には、HMIランタイム部26は、変数の属性のうち、デバイスを特定するための属性の値から、デバイス3への通信路を特定すると共に、デバイスへ送信すべき制御指示を特定する。さらに、通信経路および制御指示が特定されると、必要に応じて、両IF部23・24へ指示して、自機器に接続されているPLC13、あるいは、他のグラフィック操作パネル14と通信し、デバイス3の状態制御指示を送信できる。
なお、デバイスがグラフィック操作パネル14内の記憶領域に対応している場合など、状態取得に通信が不要な場合、HMIランタイム部26は、通信不要と判断する。この場合、HMIランタイム部26は、通信せずに上記記憶領域にアクセスして、デバイスの状態を取得したり、デバイスの状態を制御したりする。
これにより、グラフィック操作パネル14は、画面データの示すデバイスの状態を、画面データの示すように表示した画面(操作画面)を、ディスプレイ21の画面上に表示すると共に、画面データに基づいて、当該操作画面への操作を受け付け、当該操作に応じてデバイスの状態を変更できる。
一例として、本実施形態に係る画面データは、中間言語で記述されたコードとして実現されており、HMIランタイム部26は、当該中間言語のコードを、グラフィック操作パネル14のネイティブの機械語に逐次翻訳、あるいは、JIT(Just-In-Time)コンパイルして実行する仮想マシンとして実現されている。上記中間言語の一例としては、Java(登録商標)のソースコードをコンパイルして生成されたバイトコード、あるいは、マイクロソフト社が規定したMSIL(Microsoft(登録商標) Intermediate Language )などが挙げられる。なお、画面データとして、Java(登録商標)のバイトコードを採用した場合、上記HMIランタイム部26として、Java(登録商標)の仮想マシン(VM)が採用され、MSILのコードを採用した場合、例えば、CLR(Common Language Runtime)が採用される。これにより、HMIランタイム部26は、上記中間言語のコードを実行することで、デバイス3の状態に応じたマーク(部品)を操作画面上に表示したり、操作画面への操作に応じてデバイス3の状態を変更できる。
ここで、HMIランタイム部26は、画面データに基づいて画面表示するので、画面データを変更すれば、異なる画面を表示できる。したがって、グラフィック操作パネル14のハードウェアを、互いに異なる用途間で共用できる。
さらに、上記デバイスに対応付けられた変数には、アラームに関連する属性として、そのデバイスの状態が異常であるか否か(警告を発する必要があるか否か)を判定するための条件を示す属性(トリガ属性)と、異常が発生した場合の処理を示す属性(処理属性)とが含まれている。また、監視手段としての上記HMIランタイム部26は、画面データにおいて、これらのトリガ属性が設定されている各変数について、それに対応するデバイスの状態がトリガ属性の示す条件を満足しているか否かを監視し、条件が満たされた場合、処理属性の示す処理を実行できる。
一例として、本実施形態では、上記トリガ属性にて設定可能な条件(トリガ)として、例えば、デバイスの状態が予め定められた値になったこと、デバイスの状態が予め定められた上限値を上回ったこと、デバイスの状態が予め定められた下限値を下回ったこと、デバイスの状態が変化したこと、あるいは、予め定められた周期毎などを設定可能であり、HMIランタイム部26は、これらのトリガの発生を検出できる。
また、本実施形態では、上記処理属性にて設定可能な処理として、予め定められた画面/メッセージを表示する処理、予め定められたデバイスの状態が上記発生したトリガに応じた値に設定する処理などを設定可能であり、HMIランタイム部26は、上記トリガの発生を検出した場合、これらの処理のうち、変数の処理属性として設定された処理を実行できる。
ところで、本実施形態に係る制御システム1には、ユーザの操作に応じて、予め格納された画面データを修正したり、新規作成したりして、表示画面を設計し、新たな画面データを生成可能な作画エディタ装置16が設けられている。なお、例えば、上記制御用ホストコンピュータ15など、グラフィック操作パネル14と常時通信可能な装置が作画エディタ装置の機能を兼ね備え、例えば、LAN12などを介して、画面データをグラフィック操作パネル14にダウンロードしてもよいが、本実施形態に係る制御システム1では、図2に示すように、作画エディタ装置16が別途設けられている。また、画面データをグラフィック操作パネル14に格納する場合は、例えば、グラフィック操作パネル14に作画エディタ装置16を一時的に接続して画面データを転送したり、作画エディタ装置16の生成した画面データを記録媒体(例えば、コンパクトフラッシュ(登録商標)など)に格納し、当該記録媒体の内容をグラフィック操作パネル14に読み取らせたりして、画面データをグラフィック操作パネル14に格納できる。
より詳細には、図3に示すように、作画エディタ装置16は、ユーザの操作に応じて、予め格納された画面データを修正したり、新規作成したりして、表示画面を設計し、新たな画面データを生成する作画処理部61と、上記作画処理部61の生成した画面データを格納する記憶部62とを備えている。また、図1に示す作画エディタ装置16は、一例として、グラフィック操作パネル14と通信して画面データを伝送する構成であり、記憶部62に格納された画面データをグラフィック操作パネル14へ通信する通信処理部63が設けられている。なお、記録媒体経由で画面データを格納する場合は、通信処理部63に代えて/加えて記録媒体に記憶部62に格納された画面データを書き込む記録装置を設ければよい。
上記作画処理部61は、画面データに対応する情報が一時的に格納される作業用の記憶部71と、ユーザの指示を受け付けて、当該記憶部71の内容を書き換える編集処理部72と、編集処理部72によって編集される記憶部71の内容を図2に示すディスプレイ21に表示させる表示処理部73と、上記記憶部72に格納された画面データを当該記憶部71に展開したり、編集後の記憶部71の内容に応じた画面データを記憶部62へ書き込むデータ入出力処理部74とを備えている。
ここで、上記画面データは、上述したように、画面上の領域と、当該領域への表示や入力に対応するデバイスを特定可能なアドレスとの対応関係を示すオブジェクトを組み合わせて構成されており、作画処理部61の編集処理部72は、例えば、オブジェクトの雛型となるクラスのパレットを表示し、パレット中のクラスを選択して画面上に所望のオブジェクトを配置するようにユーザへ促す。また、編集処理部72は、ユーザによるオブジェクトの配置操作を受け付けると、当該操作に応じて、編集中の画面データが上記配置されたオブジェクトのデータを含むように、記憶部71の内容を変更し、表示処理部73は、記憶部71の内容に基づいて、当該オブジェクトを指定された座標に表示する。また、編集処理部72は、ユーザのドラッグ&ドロップなどの操作に応じて記憶部71の内容を変更して、当該オブジェクトの領域属性AAの値を調整し、表示処理部73は、変更後の位置にオブジェクトを表示する。また、編集処理部52は、オブジェクトに関連するアドレスや変数を入力するようにユーザへ促すと共に、入力されたアドレスや変数が当該オブジェクトに関連するように、記憶部71の内容(より詳細には、オブジェクトのデバイス属性ADの値)を変更し、表示処理部73は、ユーザの指示に応じて、各オブジェクトに関連つけられているアドレスや変数を表示する。さらに、編集処理部72は、変数に対応するデバイスを示す情報(デバイスアドレスなど)、そのデバイスの状態が異常であるか否かを判定するための条件、あるいは、異常が発生した場合の処理などの入力操作を受け付け、入力された内容を示すように、記憶部71の内容(より詳細には、当該変数の属性の値)を変更し、表示処理部73は、ユーザの指示に応じて、各変数に関連付けられている属性の値を表示できる。
なお、本実施形態に係るグラフィック操作パネル14は、複数の画面(操作画面)を切り換えて表示可能であり、上記編集処理部72は、操作画面の追加操作や、それぞれの操作画面に対する編集操作を受け付けると共に、各操作画面に関連付けて、当該操作画面に配置された各オブジェクトのデータを、記憶部71に格納できる。
一方、編集終了指示を受け付けると、データ入出力処理部74は、記憶部71の内容に応じた画面データを生成して、記憶部62に書き込む。これにより、編集されたオブジェクトをグラフィック操作パネル14に生成するための情報が含まれた画面データを生成できる。
これらの結果、設計者は、作画エディタ装置16を操作して、画面上の所望の位置にオブジェクトを配置すると共に、各オブジェクトと変数とを対応付け、変数とデバイスのアドレスとを対応付けるだけで、画面データを作成できる。したがって、グラフィック操作パネル14の表示プログラムを修正する場合に比べて容易に、各グラフィック操作パネル14の表示や操作を決定(変更)でき、制御システム1のユーザ(作画エディタ装置16を操作する設計者)は、ターゲットシステム2の実情や、グラフィック操作パネル14のオペレータの習熟度、あるいは、ユーザの好みや判断基準に合わせることができる。
なお、上記作画エディタ装置16は、複数の縦線および横線を格子状に表示してレシピデータの入力を受け付ける画面(後述)を表示するための情報を、画面データの一部として作成してもよい。この場合、後述するレシピデータ入力処理部31は、画面データの当該部分を参照して、上記画面を表示すればよい。
また、本実施形態に係るグラフィック操作パネル14は、制御のためのデータとしてのレシピデータ(後述)の入力を受け付けて、記憶部25に格納すると共に、記憶部25に格納されたレシピデータに応じてPLC13と通信して、PLC13が当該レシピデータに応じてデバイス3を制御するように設定できる。
より詳細には、上記レシピデータには、各時点における、温度や圧力といった制御条件が含まれており、PLC13は、グラフィック操作パネル14から送信されたレシピデータに基づいて、各時点における温度や圧力といった制御条件が、当該レシピデータにおいて各時点と関連付けて記憶されている設定値になるように、PLC13に接続されている各デバイス3を制御できる。
一例として、図4は、設定値が温度の場合を示しており、図4に示すように、各時点と、その時点における温度との組み合わせがレシピデータとして記憶されている場合、PLC13は、例えば、デバイス3としてのヒータの発熱量を制御するなどして、デバイス3としての温度センサの値が、5分後には、10℃、10分後には、15℃、15分後には、20℃になるように制御する。
なお、グラフィック操作パネル14(より詳細には、後述するHMIランタイム部26のレシピデータ送信部32)は、各時点において、その時点における設定値(レシピデータ)をPLC13に送信してもよいし、レシピデータとして各時点における設定値の情報をまとめてPLC13に送信してもよい。
一方、本実施形態に係るHMIランタイム部26には、図1に示すように、タッチパネル22による操作画面へのタッチ位置の座標入力に基づいてレシピデータを生成し、上記記憶部25に設けられたレシピデータ記憶領域ARに記憶するレシピデータ入力処理部(受付手段、選択手段)31と、当該レシピデータ記憶領域ARに記憶されたレシピデータを、PLC・IF部23を介してPLC13に送信するレシピデータ送信部(制御手段)32とを備えている。
ここで、本実施形態に係るレシピデータ入力処理部31は、図5に示すステップ11(以下では、S11のように略称する)において、例えば、図6に示すように、複数の縦線および横線を格子状に表示しており、これらの縦線および横線が形成されている入力エリアAiへのタッチ操作を受け付けている。
具体的には、上記記憶部25には、各縦線および横線の位置を示す格子情報を記憶する格子情報記憶領域AGが設けられており、上記レシピデータ入力処理部31は、格子情報記憶領域AGの格子情報が示す位置に、各縦線および横線を表示している。
一例として、図6は、上記格子情報記憶領域AGに、縦線の位置として、0分、5分、10分、15分、20分および25分の位置を示す格子情報と、横線の位置として、0℃、5℃、10℃、15℃、20℃および25℃の位置を示す格子情報とが記憶されている場合を例示しており、入力エリアAiには、6×6の格子が表示されている。
この状態において、レシピデータ入力処理部31がタッチ位置の座標入力を受け付けると(S12)、レシピデータ入力処理部31は、S13において、予め定められた手順で、格子情報記憶領域AGの格子情報によって特定される格子点のうちの1つを選択する。これにより、中途半端な位置がタッチされたとしても、入力された位置は、正しい位置(格子点上の位置)に補正される。
また、本実施形態に係るレシピデータ入力処理部31は、タッチ入力に応じた格子点が決定される度に、ディスプレイ21の画面のうち、タッチパネル22の入力エリアAiに重畳される領域に、それまでに入力された格子点を描画する。
これにより、グラフィック操作パネル14のユーザは、時間的に変化するデータを、時間と設定値の値とを軸とするグラフとして把握でき、実際にどのように変化するレシピデータを入力しようとしているかを的確に把握しながら、直感的にレシピデータを入力できる。なお、本実施形態に係るレシピデータ入力処理部31は、各格子点と共に、各格子点を結ぶ曲線または直線も表示している。これにより、ユーザは、より的確に設定値の時間変化を把握できる。
また、入力エリアAi上の所望の位置を単にタッチするだけで、その位置に応じた値が上記各レシピデータとして入力されるので、数値の組み合わせを入力する構成よりもユーザの負担を軽減できる。
上記S12およびS13の処理は、グリッド入力による、一連のレシピデータの入力が終了するまでの間(S14にてNOの間)、繰り返される。なお、本実施形態に係るレシピデータ入力処理部31は、一連のレシピデータの入力が終わった後で、レシピデータをレシピデータ記憶領域ARに格納しており、レシピデータ入力処理部31は、選択された各格子点の情報を、レシピデータの入力が終わるまでの間、一時的に記憶している。
さらに、一連のレシピデータの入力が終了すると(上記S14にてYES の場合)、S15において、レシピデータ入力処理部31は、上記S12およびS13の繰り返しによって入力された一連のレシピデータを、記憶部25の予め指定されているエリア、すなわち、レシピデータ記憶領域ARに記憶する。より詳細には、レシピデータ入力処理部31は、ある格子点に対応するレシピデータとして、当該格子点のX座標の示す時点と当該格子点のY座標の示す設定値との組み合わせを格納する。
なお、本実施形態に係るレシピデータ入力処理部31は、一例として、タッチ位置に最も近い格子点を選択しているが、タッチ位置の座標入力から格子点を特定できれば、レシピデータ入力処理部31は、例えば、格子点の検索範囲を、タッチ位置の示す時点よりも早い(若しくは遅い)範囲、および/または、タッチ位置の示す設定値よりも大きい(若しくは小さい)範囲に制限するなど、他の手順で格子点を特定してもよい。
ここで、図6および後述する図面では、説明の便宜上、実際のタッチ位置を白丸で、レシピデータを黒丸で示し、両者の対応関係を白丸から黒丸への矢印で示している。例えば、図6の例では、5分よりもやや早い時点で10℃を若干超える値を示す位置がタッチされているが、レシピデータ入力処理部31は、そのタッチ位置の座標入力によって、5分の時点と10℃の設定値との組み合わせを示すレシピデータを生成している。
さらに、上記HMIランタイム部26には、図1に示すように、ユーザの指示に応じて、上記格子情報記憶領域AGに記憶されている更新情報を更新する格子情報更新部(格子位置設定手段)33が設けられている。当該格子情報更新部33は、図6に示すS11よりも前に配されたS1において、例えば、上限値と、下限値と、縦線および横線の数との入力を受け付けた場合、上限値から下限値までの間に、上限値および下限値の位置にそれぞれ配された縦線および横線を含めた合計で上記数の縦線および横線が等間隔で配置されるように、各縦線および横線の位置を調整し、各縦線および横線の位置を示す位置情報を格子情報記憶領域AGに格納できる。
一例として、図6は、時間については、上限値および下限値が0分および25分で、しかも、縦線の数が6本に設定され、温度については、上限値および下限値が0℃および25℃で、しかも、横線の数が6本に設定された場合を例示している。また、図7は、図6と略同様に設定されているが、温度については、上限値および下限値が100℃および125℃に設定された場合を例示している。
このように、上記構成では、時点の軸と設定値の軸とを持った入力エリアAi内のうち、いずれの位置にタッチしたかによって、時点と設定値との組み合わせを示すレシピデータを、タッチ操作によって入力している。この結果、図4に示す時点を示す数値の入力と設定値を示す数値の入力とによって、レシピデータを入力する構成と比較して、直感的なレシピデータの入力が可能になる。この結果、設定値入力時におけるユーザの負担を軽減できる。
また、仮に、常時、タッチパネル22の分解能で設定値入力を受け付ける構成とすると、設定値入力に不要な精度(桁数)の設定値が入力される虞れがある。この場合、ユーザは、例えば、不要な桁数まで所望の値に一致するように、タッチ操作する位置を決定したり、タッチ操作によって設定された設定値を、タッチ操作後に修正したりして、所望の値を設定するので、ユーザの手間がかかってしまう。
これに対して、上記構成では、格子情報更新部33が格子位置の変更指示を受け付けると、上記入力エリアAiを格子状に区分する縦線および横線の少なくとも1つの位置が変更される。例えば、図8は、時間については、上限値および下限値が0分および30分で、しかも、縦線の数が4本に設定され、温度については、上限値および下限値が0℃および30℃で、しかも、横線の数が4本に設定された場合を例示している。このように、格子情報更新部33は、上限値と下限値と縦線および横線の数との入力を受け付けると、それに応じて縦線および横線の位置を変更できる。
したがって、グラフィック操作パネル14は、上記設定値入力に応じた分解能での設定値入力を受け付けることができる。例えば、図6および図7の例では、レシピデータを入力する際の分解能は、6×6になり、図8の例では、レシピデータを入力する際の分解能は、4×4に変更される。このように、入力すべき設定値に応じた分解能でレシピデータの入力を受け付けることができるので、常時、タッチパネル22の分解能で設定値入力を受け付ける構成と比較して、設定値入力時におけるユーザの負担を軽減できる。
ところで、上記では、格子情報更新部33が上限値と下限値と縦線および横線の数との入力を受け付ける場合について説明したが、本実施形態に係る格子情報更新部33は、各縦線および横線の位置の個別入力を受け付けて、それらの位置を示す格子情報を格子情報記憶領域AGに記憶することもできる。
一例として、本実施形態に係る格子情報更新部33は、縦線および横線の数の入力を受け付けて、各縦線および横線の位置の個別入力が指示されると、例えば、入力された数だけ、縦線および横線の位置の入力を促すと共に、入力結果に応じて、各縦線および横線の位置を示す格子情報を格子情報記憶領域AGに記憶できる。
例えば、図9は、温度について横線の位置の個別入力が指示された場合を例示しており、例えば、6本の横線の位置として、50℃、70℃、90℃、110℃、120℃、および、125℃が、それぞれ入力された場合を示している。なお、図9では、時間については、図6と同様に入力された場合を例示しているが、時間についても個別入力を受け付けることができる。
このように、本実施形態に係る格子情報更新部33は、各縦線同士および横線同士の間隔の少なくとも1つが他の縦線同士および横線同士の間隔とは異なる値になるように、上記縦線および横線の位置を設定できる。したがって、ある期間と他の期間との間、あるいは、ある設定値(各図の例では、温度)の範囲と他の設定値の範囲との間で、分解能を互いに異なる値に設定できる。
この結果、ある期間における時点の設定が、他の期間における時点の設定よりも高精度に設定する必要がある場合、あるいは、ある範囲における設定値の設定が、他の範囲における設定値の設定よりも高精度に設定する必要がある場合であっても、それぞれに応じた分解能で各時点における設定値を入力できる。したがって、常に縦線および横線の間隔が一定に設定されている構成と比較して、各時点における設定値を入力する際のユーザの負担を軽減できる。
ところで、上記では、格子情報更新部33が、上限値と、下限値と、縦線および横線の数との入力を受け付けた場合、各縦線および横線の間隔が等間隔になるように各縦線および横線の位置を決定する場合について説明したが、本実施形態に係る格子情報更新部33は、これらの入力を受け付けると共に、予め定められた手順による不均一な自動配置が指示された場合、予め定められた手順で、各縦線および横線の間隔のうちの少なくとも1つが、他の間隔と異なるように、上限値と下限値と縦線および横線の数とに基づいて、各縦線および横線の位置を決定できる。
一例として、図9では、上限値に近づく程(高温になる程)、設定値の横線同士の間隔が短くなるように設定する手順を格子情報更新部33に予め設定している場合を例示しており、格子情報更新部33は、上限値と下限値と横線の数とに基づいて、各横線の位置を決定する。なお、図9の例では、上限値から数えて、2本目の横線と3本目の横線との間隔は、最初の2本の横線の間隔よりも長く、それ以降の横線の間隔(この例では一定値)よりも短くなるように設定する手順が定められている。なお、この手順は、一例であり、各横線の位置を決定できれば、横線の位置を決定する手順は、どのような手順に定められていてもよい。
なお、上記では、予め定められた手順として、上限値から離れた縦線および横線同士の間隔の中に、上限値に近い縦線および横線同士の間隔よりも短く設定されたものがあるように、各縦線および横線の位置を設定する場合について説明したが、下限値から、どの程度離れているかによって、上記入力エリアにおける縦線および横線の間隔が変化するように、各縦線および横線の位置を設定する手順が予め定められていてもよい。
また、上記では、格子情報更新部33が、例えば、上限値および下限値の組み合わせの入力などして、入力エリアの範囲の入力を受け付ける場合について説明したが、本実施形態に係る格子情報更新部33は、例えば、自動設定を指示するボタンのタッチなど、範囲の自動入力の指示を受け付けると、画面データを参照して、入力エリアの範囲の抽出を試み、抽出できた場合は、その値を入力エリアの範囲の初期値として設定できる。
具体的には、上述したように、本実施形態に係るHMIランタイム部26は、画面データにおいて、トリガ属性が設定されている各変数について、それに対応するデバイスの状態がトリガ属性の示す条件を満足しているか否かを監視し、条件が満たされた場合、処理属性の示す処理を実行している。また、デバイスの状態が異常と定められた条件として、デバイスの状態の上限値および下限値が設定されることがある。さらに、レシピデータの設定値と、それに対応するデバイスの状態との関係は、デバイスが交換されたり、制御プログラムが変更されたりしない限り固定されているため、画面データを設定した時点で、例えば、作画エディタ装置16が画面データ中に両者の関係を示すデータを挿入し、格子情報更新部33が、それを参照するなどして、格子情報更新部33に、両者の関係を設定しておくことができる。
一方、格子情報更新部33は、ある設定値に関する入力エリアの範囲の自動設定指示を受け付けると、当該設定値に関連付けて設定されたデバイスを特定し、さらに、記憶部25に記憶された画面データのうち、当該デバイスの属性のトリガ属性を参照して、上限値および下限値が設定されているか否かを判定する。さらに、上限値および下限値が設定されていれば、格子情報更新部33は、その値を入力エリアの範囲の初期値とすることができる。なお、上記のように設定した入力エリアの範囲が誤っており、範囲の修正指示を受け付けた場合、格子情報更新部33は、指示に応じて入力エリアの範囲を修正できる。
当該構成では、デバイスの状態がトリガ属性の示す条件を満足しているか否かをHMIランタイム部26が監視する際に参照されるデバイスの状態の範囲を参照して、格子情報更新部33が入力エリアの範囲の初期値を設定している。したがって、入力エリアの範囲を設定値毎に入力する場合よりもユーザの負担を軽減できる。
また、本実施形態に係る格子情報更新部33は、当該入力範囲の自動設定と上述した縦線および横線の間隔の不均一設定との双方を行うこともできる。ここで、上限値や下限値に近い場合など、デバイスの状態が異常と定められた条件の近傍にある場合と、上記条件から離れている場合とでは、設定値に必要な分解能が互いに異なっていることが多い。また、例えば、上記条件がデバイスの状態を示す値の下限値および/または上限値とを示している場合など、設定値として入力可能な範囲が上記条件によって決定される場合もある。
したがって、例えば、入力すべき設定値と上記条件とが、どの程度離れているかによって、上記入力エリアにおける縦線および横線の間隔を変更したり、上記条件に応じて、入力可能な設定値の範囲を変更すると共に上記入力エリアにおける各縦線および横線の位置を設定するなど、上記格子情報更新部33が上記監視の条件を参照して上記縦線および横線の位置を設定すれば、格子情報更新部33は、デバイスの状態を時間の経過に伴って制御するための設定値を入力する際に適切な縦線および横線の位置を的確に推定できる。この結果、設定値毎にユーザが縦線および横線の位置を設定する構成と比較して、ユーザの負担をさらに軽減できる。
ところで、上記では、格子情報更新部33が、トリガ属性の情報、すなわち、画面データ中に含まれているアラームに関する情報であって、HMIランタイム部26がデバイスの状態が異常であるか否かを判定する際に参照される情報に基づいて、入力エリアの範囲を自動設定する場合について説明したが、これに限るものではない。
例えば、グラフィック操作パネル14の中には、デバイスの状態が異常であるか否かを判定するための条件を記憶しておき、デバイスの状態を監視して、当該条件の成否を確認すると共に、条件が成立した場合、予め配信先に、予め定められたデバイスの状態を送信するものが存在している。
このように、グラフィック操作パネル14に、上記デバイスの状態が予め異常と定められた条件を満足するか否かを監視する監視手段が設けられている場合は、格子情報更新部33が当該監視手段の条件を参照して上記縦線および横線の位置を設定することによって、略同様の効果が得られる。
なお、上記では、タッチ操作の一例として、入力エリアAi内の複数点をタッチ操作する場合について説明したが、これに限るものではない。例えば、図10に示すように、レシピデータ入力処理部31が、タッチパネル22へのなぞり操作を受け付けると共に、例えば、時点または設定値のうちの一方の各縦線および横線について、それぞれの縦線および横線上にあり、しかも、入力エリアAi内をなぞって生成された曲線と当該縦線および横線との交点に最も近い格子点を選択するなどして、当該曲線に対応する複数の格子点を選択し、各格子点に応じたレシピデータを生成してもよい。