(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-29
(45)【発行日】2022-10-07
(54)【発明の名称】画面表示装置
(51)【国際特許分類】
G09G 5/00 20060101AFI20220930BHJP
G09G 5/36 20060101ALI20220930BHJP
G09G 5/377 20060101ALI20220930BHJP
G06F 3/14 20060101ALI20220930BHJP
G06T 11/00 20060101ALI20220930BHJP
【FI】
G09G5/00 530T
G09G5/36 520P
G09G5/00 510C
G09G5/00 550A
G09G5/36 520M
G09G5/36 520N
G06F3/14 310A
G06F3/14 400
G06T11/00
(21)【出願番号】P 2018227333
(22)【出願日】2018-12-04
【審査請求日】2021-12-01
(73)【特許権者】
【識別番号】317014747
【氏名又は名称】シュナイダーエレクトリックホールディングス株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】池添 剛
【審査官】塚本 丈二
(56)【参考文献】
【文献】特開2013-045401(JP,A)
【文献】特開2013-218478(JP,A)
【文献】特開2005-275028(JP,A)
【文献】米国特許出願公開第2017/0124981(US,A1)
【文献】特開2010-107924(JP,A)
【文献】特開2004-171283(JP,A)
【文献】特開2008-185885(JP,A)
【文献】特開2009-009405(JP,A)
【文献】特開2011-008689(JP,A)
【文献】特開平11-238027(JP,A)
【文献】国際公開第2017/033289(WO,A1)
【文献】特開平11-015983(JP,A)
【文献】米国特許出願公開第2009/0315901(US,A1)
【文献】米国特許第05436636(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09G 5/00-5/42
G06F 3/14
G06T 11/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのオブジェクトを含む画面を表示する画面表示装置であって、
前記画面の全てを描画する全体描画、および前記画面において変化する前記オブジェクトを描画する部分描画のいずれが前記画面を速く更新できるかを基準値に基づいて予測して、予測した前記全体描画または前記部分描画で前記画面を描画する描画部と、
少なくとも、前記部分描画に要した部分描画時間の前記全体描画に要した全体描画時間に対する長短に応じて前記基準値を更新する基準値更新部と、を備えていることを特徴とする画面表示装置。
【請求項2】
前記オブジェクトは、それぞれに固有の固有値を有し、
前記基準値は、前記画面における全ての前記オブジェクトについての前記固有値の総和に対する任意の比率で予め設定されており、
前記描画部は、変化する前記オブジェクトが有する前記固有値を前記画面において総計した総計値が前記基準値以上であるとき、前記全体描画を行う一方、前記総計値が前記基準値未満であるとき、前記部分描画を行い、
前記基準値更新部は、
前記部分描画時間が前記全体描画時間を超えるときに前記基準値を下げるように更新し、前記部分描画時間が前記全体描画時間以下であるときに前記基準値を上げるように更新するか、あるいは前記基準値を維持することを特徴とする請求項1に記載の画面表示装置。
【請求項3】
前記基準値更新部は、
規定回数の前記部分描画に要した時間の平均である部分描画平均時間が前記全体描画時間を超えるとき、前記基準値を前記全体描画時間に対する前記部分描画平均時間の割合に応じて下げるように更新し、
前記部分描画平均時間が前記全体描画時間以下であるとき、前記規定回数の前記部分描画によって描画された前記オブジェクトの1つ当たりの平均描画時間に前記基準値を乗じることによって前記画面について予測される前記部分描画に要する予測部分描画時間を算出し、
予測部分描画時間が前記全体描画時間未満であるときに、前記基準値を前記全体描画時間に対する前記予測部分描画時間の割合に応じて上げるように更新し、
予測部分描画時間が前記全体描画時間以上であるときに、前記基準値を維持することを特徴とする請求項2に記載の画面表示装置。
【請求項4】
前記オブジェクトは、それぞれに固有の固有値を有し、
前記描画部は、
前記画面の表示が切り替えられたときに前記全体描画を行うとともに、切り替え表示された前記画面の初回の描画更新時に前記部分描画を行い、
前記基準値更新部は、
前記全体描画時間および前記部分描画時間を登録するとともに、切り替え表示された前記画面の初回の描画更新時に描画された前記オブジェクトの前記固有値を前記画面において総計した初期総計値を前記基準値に設定し、
前記描画部は、2回目以降の描画更新時の、
前記部分描画時間が前記全体描画時間未満であるとき、かつ変化する前記オブジェクトが有する前記固有値を前記画面において総計した総計値が前記基準値以下となる第1状態であるとき、
前記部分描画時間が前記全体描画時間未満であるとき、かつ前記総計値が前記基準値を超える第2状態であるとき、または、
前記部分描画時間が前記全体描画時間以上であるとき、かつ前記総計値が前記基準値以下となる第3状態であるときに、前記部分描画を行い、
前記部分描画時間が前記全体描画時間以上であるとき、かつ前記総計値が前記基準値を超える第4状態であるときに、前記全体描画を行い、
前記基準値更新部は、2回目以降の描画更新時に、
前記第1状態における前記部分描画に要した実描画時間が前記全体描画時間以上であるとき、前記第2状態における前記実描画時間が前記全体描画時間未満であるとき、または前記第3状態であるとき、前記部分描画時間を前記実描画時間に更新するとともに、前記基準値を前記総計値に更新し、
前記第2状態における前記実描画時間が前記全体描画時間以上であるとき、前記基準値を前記総計値と前記基準値との平均値に更新するとともに、前記部分描画時間を前記実描画時間と前記部分描画時間との平均値に更新し、
前記第4状態であるとき、前記全体描画時間を新たに行われた前記全体描画に要した前記全体描画時間に更新することを特徴とする請求項1に記載の画面表示装置。
【請求項5】
前記固有値は単位数であることを特徴とする請求項2から4のいずれか1項に記載の画面表示装置。
【請求項6】
前記固有値は前記画面の全体の面積に対するオブジェクトの面積の割合であることを特徴とする請求項2から4のいずれか1項に記載の画面表示装置。
【請求項7】
前記固有値は前記オブジェクトの特性に応じて付与された重みであることを特徴とする請求項2から4のいずれか1項に記載の画面表示装置。
【請求項8】
前記描画部は、前記部分描画を行うときに、前記画面において複数の前記オブジェクトが重なっていることを、前記画面ごとに設定された、複数の前記オブジェクトが重なり合うことを示す重なり情報に基づいて判定し、複数の前記オブジェクトの少なくとも1つが変化するときに、重なり合う複数の前記オブジェクトを描画することを特徴とする請求項1から7のいずれか1項に記載の画面表示装置。
【請求項9】
前記描画部は、重なり合う複数の前記オブジェクトの描画に複数の描画順序が存在するときに、最も効率的に描画を行う前記描画順序を判定し、当該描画順序によって重なり合う複数の前記オブジェクトの描画を行うことを特徴とする請求項8に記載の画面表示装置。
【請求項10】
前記基準値は前記画面ごとに設定されていることを特徴とする請求項1から9のいずれか1項に記載の画面表示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクトを含む画面の描画を制御する画面表示装置に関する。
【背景技術】
【0002】
プログラマブル表示器などのHMI(Human Machine Interface)機器のような表示装置は、オブジェクトを含む、特定の形式で作成された画面を表示する。このような表示装置は、画面の表示を更新するときに、変化するオブジェクトが少なければ、画面の描画時間を短縮するために、画面全体を描画する全体描画を行わずに、変化するオブジェクトのみを描画する部分描画を行う。
【0003】
例えば、特許文献1には、通常の描画と、描画データの再利用とを切り替えて、全体の描画時間を短縮する情報機器が記載されている。この情報機器は、描画データの再利用率が再利用可否の判定のための閾値より大きいか否かに応じて、描画データを再利用するか否かを判定している。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-218478号公報(2013年10月24日公開)
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に、画面の表示更新においては、全てのオブジェクトが変化することは少ないので、全体描画よりも部分描画の方が描画時間を短縮することができる。しかしながら、多くのオブジェクトが同時に変化した場合や、オブジェクトの重なりが多い場合は、部分描画よりも全体描画の方が描画時間を短縮できることがある。
【0006】
これに対し、特許文献1に開示された情報機器では、上記の閾値が固定値であるため、オブジェクトの変化状況によっては、描画データの再利用の可否を適切に判定することができないことがある。その結果、描画データを再利用したにも関わらず、描画データを再利用しなかった場合(全体描画)よりも描画時間が長くなるという不都合が生じてしまう。
【0007】
本発明の一態様は、画面の表示更新時に全体画面描画および部分画面描画のいずれを行うかを効率的に判定することを目的とする。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本発明の一態様に係る画面表示装置は、少なくとも1つのオブジェクトを含む画面を表示する画面表示装置であって、前記画面の全てを描画する全体描画、および前記画面において変化する前記オブジェクトを描画する部分描画のいずれが前記画面を速く更新できるかを基準値に基づいて予測して、予測した前記全体描画または前記部分描画で前記画面を描画する描画部と、少なくとも、前記部分描画に要した部分描画時間の前記全体描画に要した全体描画時間に対する長短に応じて前記基準値を更新する基準値更新部と、を備えている。
【0009】
上記の構成によれば、基準値が部分描画時間の全体描画時間に対する長短に応じて更新されるので、基準値を適正な値に近づけることができる。これにより、部分描画を行ったにも関わらず、全体描画時間よりも部分描画時間が長くなったときには基準値を変更することで、全体描画を行う確率を高めるといった調整を行うことができる。
【0010】
前記画面表示装置において、前記オブジェクトは、それぞれに固有の固有値を有し、前記基準値は、前記画面における全ての前記オブジェクトについての前記固有値の総和に対する任意の比率で予め設定されており、前記描画部は、変化する前記オブジェクトが有する前記固有値を前記画面において総計した総計値が前記基準値以上であるとき、前記全体描画を行う一方、前記総計値が前記基準値未満であるとき、前記部分描画を行い、前記基準値更新部は、前記部分描画時間が前記全体描画時間を超えるときに前記基準値を下げるように更新し、前記部分描画時間が前記全体描画時間以下であるときに前記基準値を上げるように更新するか、あるいは前記基準値を維持する。
【0011】
上記の構成によれば、これにより、部分描画を行ったにも関わらず、全体描画時間よりも部分描画時間が長くなったときには基準値を下げることで適正に調整することができる。また、全体描画時間よりも部分描画時間が短いときには、基準値を上げることで適正に調整することができる。
【0012】
前記画面表示装置において、前記基準値更新部は、規定回数の前記部分描画に要した時間の平均である部分描画平均時間が前記全体描画時間を超えるとき、前記基準値を前記全体描画時間に対する前記部分描画平均時間の割合に応じて下げるように更新し、前記部分描画平均時間が前記全体描画時間以下であるとき、前記規定回数の前記部分描画によって描画された前記オブジェクトの1つ当たりの平均描画時間に前記基準値を乗じることによって前記画面について予測される前記部分描画に要する予測部分描画時間を算出し、予測部分描画時間が前記全体描画時間未満であるときに、前記基準値を前記全体描画時間に対する前記予測部分描画時間の割合に応じて上げるように更新し、予測部分描画時間が前記全体描画時間以上であるときに、前記基準値を維持する。
【0013】
上記の構成によれば、規定回数行われる部分描画に要した時間が部分描画平均時間として平均化される。これにより、規定回数の部分描画のうち例えばある1回の部分描画のみが突出して長時間を要する場合でも、部分描画平均時間では、その影響が緩和される。そして、基準値を更新する判断を、部分描画平均時間を全体描画時間と比較することによって行う。したがって、突発的に発生する可能性がある部分描画時間の大きな変化による、基準値の誤った更新を抑えることができる。また、全体描画時間に対する予測部分描画時間に対する割合に応じて、基準値を上げるか、基準値を維持するかを選択する。このように、基準値を上げるか維持するかを選択することで、基準値の不要な更新を回避して、より早く基準値を最適値に近づけることができる。
【0014】
前記画面表示装置において、前記オブジェクトは、それぞれに固有の固有値を有し、前記描画部は、前記画面の表示が切り替えられたときに前記全体描画を行うとともに、切り替え表示された前記画面の初回の描画更新時に前記部分描画を行い、前記基準値更新部は、前記全体描画時間および前記部分描画時間を登録するとともに、切り替え表示された前記画面の初回の描画更新時に描画された前記オブジェクトの前記固有値を前記画面において総計した初期総計値を前記基準値に設定し、前記描画部は、2回目以降の描画更新時の、前記部分描画時間が前記全体描画時間未満であるとき、かつ変化する前記オブジェクトが有する前記固有値を前記画面において総計した総計値が前記基準値以下となる第1状態であるとき、前記部分描画時間が前記全体描画時間未満であるとき、かつ前記総計値が前記基準値を超える第2状態であるとき、または、前記部分描画時間が前記全体描画時間以上であるとき、かつ前記総計値が前記基準値以下となる第3状態であるときに、前記部分描画を行い、前記部分描画時間が前記全体描画時間以上であるとき、かつ前記総計値が前記基準値を超える第4状態であるときに、前記全体描画を行い、前記基準値更新部は、2回目以降の描画更新時に、前記第1状態における前記部分描画に要した実描画時間が前記全体描画時間以上であるとき、前記第2状態における前記実描画時間が前記全体描画時間未満であるとき、または前記第3状態であるとき、前記部分描画時間を前記実描画時間に更新するとともに、前記基準値を前記総計値に更新し、前記第2状態における前記実描画時間が前記全体描画時間以上であるとき、前記基準値を前記総計値と前記基準値との平均値に更新するとともに、前記部分描画時間を前記実描画時間と前記部分描画時間との平均値に更新し、前記第4状態であるとき、前記全体描画時間を新たに行われた前記全体描画に要した前記全体描画時間に更新する。
【0015】
上記の構成によれば、初回の描画更新時の部分描画で得られる初期総計値が基準値に設定されるので、基準値を予め設定しておく必要がない。
【0016】
前記画面表示装置において、前記固有値は単位数である。
【0017】
上記の構成によれば、基準値が簡単に得ることができるオブジェクトの数で規定される。これにより、基準を得るための計算を簡素化することができる。
【0018】
前記画面表示装置において、前記固有値は前記画面の全体の面積に対するオブジェクトの面積の割合である。
【0019】
上記の構成によれば、画面に含まれるオブジェクト間で大きさに差があっても、全体描画および部分描画のいずれを行うかを、より適正に判定することができる。
【0020】
前記画面表示装置において、前記固有値は前記オブジェクトの特性に応じて付与された重みである。
【0021】
上記の構成によれば、画面に含まれるオブジェクト間で重みに差があっても、全体描画および部分描画のいずれを行うかを、より適正に判定することができる。
【0022】
前記画面表示装置において、前記描画部は、前記部分描画を行うときに、前記画面において複数の前記オブジェクトが重なっていることを、前記画面ごとに設定された、複数の前記オブジェクトが重なり合うことを示す重なり情報に基づいて判定し、複数の前記オブジェクトの少なくとも1つが変化するときに、重なり合う複数の前記オブジェクトを描画する。
【0023】
上記の構成によれば、重なり情報に基づいてオブジェクトの重なりを判定して、効率的に重なり合うオブジェクトを描画することができる。
【0024】
前記画面表示装置において、前記描画部は、重なり合う複数の前記オブジェクトの描画に複数の描画順序が存在するときに、最も効率的に描画を行う前記描画順序を判定し、当該描画順序によって重なり合う複数の前記オブジェクトの描画を行う。
【0025】
上記の構成によれば、描画をより短い時間で行うことができる順序を選択することで、画面の更新時間を短縮することができる。
【0026】
前記画面表示装置において、前記基準値は前記画面ごとに設定されている。
【0027】
上記の構成によれば、画面を切り替えたときに、基準値の最適化を改めて行う必要がなくなる。したがって、基準値が最適値に到達する時間を短くすることができる。
【発明の効果】
【0028】
本発明の一態様によれば、画面の表示更新時に全体画面描画および部分画面描画のいずれを行うかを効率的に判定することができる。
【図面の簡単な説明】
【0029】
【
図1】本発明の各実施形態に係る制御システムの構成を示すブロック図である。
【
図2】上記プログラマブル表示器のシステム構成を示すブロック図である。
【
図3】上記プログラマブル表示器による画面の表示更新の処理手順を示すフローチャートである。
【
図4】上記プログラマブル表示器による画面切替時の処理手順を示すフローチャートである。
【
図5】
図4のフローチャートの説明で参照する切り替えられる画面の例を示す図である。
【
図6】
図4のフローチャートにおける処理によってリスト化されたオブジェクト情報とオブジェクト重なり情報とを示す図である。
【
図7】上記プログラマブル表示器による基準値更新の処理手順を示すフローチャートである。
【
図8】
図7のフローチャートにおける処理で用いる第1計算方法で用いる時間比率と係数との関係を示すグラフである。
【
図9】
図7のフローチャートにおける処理で用いる第2計算方法で用いる時間比率と係数との関係を示すグラフである。
【
図10】上記プログラマブル表示器による他の基準値更新の処理手順を示すフローチャートである。
【
図11】(a)および(b)は上記基準値をオブジェクトの面積で規定する場合のオブジェクトと面積を規定する矩形との関係を示す図である。
【
図12】上記基準値をオブジェクトの面積とする場合の上記基準値の更新に利用される、画面全体の面積に対する各オブジェクト割合の例を示す図である。
【発明を実施するための形態】
【0030】
〔実施形態1〕
本発明の実施形態1について
図1~
図9に基づいて説明すると、以下の通りである。
【0031】
まず、本実施形態に係る制御システムについて説明する。
【0032】
図1は、本実施形態に係る制御システムの構成を示すブロック図である。
図2は、プログラマブル表示器1の要部の構成を示すブロック図である。
【0033】
プログラマブル表示器1(画面表示装置)は、専用のOS(Operating System)を実装した組み込み機器であり、プログラマブル表示器1の各種の機能を実現するためのHMIプログラムを実行する機能を備えている。プログラマブル表示器1は、工場などの厳しい環境に適合するように、防塵性、防滴性、耐振動性などを高めたHMI機器である。
【0034】
HMIプログラムは、外部機器との通信、当該外部機器から取得したデータの表示、入力装置を用いた操作者による操作の受け付けなどの各種の機能を実現するプログラムである。
【0035】
まず、プログラマブル表示器1のハードウェア構成について説明する。
【0036】
図1に示すように、プログラマブル表示器1は、CPU(Central Processing Unit)11と、メインメモリ12と、ROM(Read Only Memory)13と、ユーザメモリ14と、タッチパネルを15と、表示パネル16(表示部)と、インターフェース部17とを備えている。
【0037】
CPU11は、HMIプログラムを実行する処理装置である。具体的には、CPU11は、HMIプログラムの実行に際して、メインメモリ12、ユーザメモリ14、タッチパネル15などからデータを受け取り、当該データに対して演算または加工を施した結果を、メインメモリ12、ユーザメモリ14、表示パネル16などに出力する。
【0038】
メインメモリ12は、プログラマブル表示器1における主記憶装置を構成するメモリであり、DRAM(Dynamic Random Access Memory)によって構成される。
【0039】
ROM13は、プログラマブル表示器1の起動時やリセット時に実行されるBIOS(Basic Input Output System)などの、プログラマブル表示器1の動作に不可欠なプログラムを記憶している。
【0040】
ユーザメモリ14は、ユーザが作成したデータ、例えば後述するHMI画面を表示するためのメイン画面データを記憶する大容量の記憶装置である。ユーザメモリ14は、FEPROM(Flash Erasable and Programmable ROM)などで構成されている。
【0041】
タッチパネル15は、表示パネル16上に配置されており、表示パネル16に表示された画面上でのタッチ操作を受け入れて、タッチ操作信号を入力信号として出力する。
【0042】
表示パネル16は、ユーザメモリ14に記憶されているメイン画面データに基づいたHMI画面を表示する。表示パネル16としては、液晶表示パネルなどの平板型表示パネルが用いられる。
【0043】
インターフェース部17は、制御機器2と通信可能に接続するための接続部と、PC(パーソナルコンピュータ)4と通信可能に接続するための接続部とを含んでいる。インターフェース部17は、シリアルインターフェース、LAN(Local Area Network)、USB(Universal Serial Bus)などの各種のインターフェースを装備している。
【0044】
制御機器2は、PLC(Programmable Logic Controller)、温度調節計、インバータなどの外部機器であり、プログラマブル表示器1と通信する機能を備えている。制御機器2は、デバイス20との間でデータの授受を行なう。デバイス20としては、センサ、スイッチのような入力機器や、アクチュエータ、リレー、電磁弁、表示器のような出力機器が用いられる。
【0045】
続いて、プログラマブル表示器1のシステム構成について説明する。
【0046】
図2に示すように、プログラマブル表示器1は、制御機能を有する部分としてHMI制御部3を含んでいる。
【0047】
HMI制御部3は、HMIプログラムがCPU11によって実行されることで実現される、HMI機能を有する部分である。
【0048】
ここで、HMI機能とは、ユーザの入力操作に応じた制御機器2への指示の発生と、制御機器2からの各種データの取得と、取得した当該各種データの表示および上記入力操作の受け付けを行うためのHMI画面の表示とを含む機能である。HMI制御部3は、HMI機能として、ユーザの操作入力および制御機器2が保持するデータの変化に基づいて各部を制御する動作制御部31と、HMI画像の表示を制御する表示制御部32とを有している。
【0049】
HMI画面は、制御機器2に接続されたデバイス20の状態を表示したり、タッチパネル15への操作を受け付けたりするための各種のオブジェクトを含む画面である。HMI画面に設けられるオブジェクトとしては、ランプ画像、データ表示器画像、スイッチ画像などの各種の部品画像が用意されている。また、オブジェクトとしては、各種の図形(円形、矩形、多角形、直線など)、イメージなども利用することができる。
【0050】
このようなHMI画面を表示するための画面データは、PC4において作成されて、ユーザメモリ14に保存されている。PC4は、画面の作成および編集を行うアプリケーションプログラムによって実現される機能ブロックとして作画編集部41を備えている。
【0051】
動作制御部31は、タッチパネル15におけるユーザのタッチによる入力操作に応じた操作指示を発生する。この操作指示としては、制御機器2の起動・停止指示、制御機器2に与える制御データの変更、画面の切り替えなどがある。また、動作制御部31は、制御機器2のデータの変化に応じた制御指示を発生する。この制御指示としては、画面の切り替えなどがある。
【0052】
表示制御部32は、画面データに基づいて表示パネル16にHMI画面を表示させる制御処理を行う。また、表示制御部32は、インターフェース部17を介して取得した制御機器2のデータを、HMI画面に反映させる処理を行う。例えば、表示制御部32は、HMI画面において、上述のランプ画像を点灯・消灯させたり、上述のデータ表示器画像にデータを表示させたりする処理を行う。また、表示制御部32は、上記操作指示に応じてHMI画面の状態を変化させる処理を行う。例えば、表示制御部32は、上述のスイッチ画像を操作する上記操作指示を受けて、当該スイッチ画像の表示状態(色、形状など)を変化させる処理を行う。さらに、表示制御部32は、ユーザの操作に応じてHMI画面の切り替え処理を行なう。
【0053】
また、表示制御部32は、画面(HMI画面)の表示の更新において、画面の全てを描画する全体描画と、変化するオブジェクトを描画する部分描画とのいずれかで描画を行う描画制御機能を備えている。表示制御部32は、この描画制御機能を実現するために、描画部331と、描画時間計測部332と、基準値更新部333とを有している。
【0054】
描画部331は、ユーザメモリ14に記憶されている画面データに基づいて、表示パネルに表示させる。具体的には、描画部331は、画面データを、図示しないビデオメモリに一時的に展開し、表示パネル16に画素単位で転送する。ビデオメモリは、メインメモリ12の一部の記憶領域に割り当てられてもよいし、VRAM(Video RAM)として別途設けられてもよい。
【0055】
また、描画部331は、全体描画および部分描画のいずれが画面を速く更新できるかを基準値に基づいて予測して、予測した全体描画または部分描画で、画面をビデオメモリに描画する。
【0056】
基準値は、後述する基準値更新部333が、画面の表示更新時に全体描画および部分描画のいずれを行うかを判定する基準となる値である。本実施形態では、基準値をオブジェクトの数(オブジェクト数)で規定する。また、本実施形態において、オブジェクトは、それぞれに固有の固有値として単位数“1”を有するものとする。基準値の規定については、後述する第1の手法および第2の手法の説明において言及する。
【0057】
描画時間計測部332は、描画部331が行う描画の実行時間(描画時間)を計測する。具体的には、描画時間計測部332は、描画を開始したという通知を描画部331より受けてから、描画を終了したという通知を描画部331より受けるまでの時間を計測する。描画時間計測部332は、計測した描画時間をメインメモリ12に記憶させる。
【0058】
基準値更新部333は、上記の基準値を描画時間計測部332によって計測された描画時間に基づいて調整することにより更新する。具体的には、基準値更新部333は、少なくとも、描画部331が部分描画に要した部分描画時間の、描画部331が全体描画に要した全体描画時間に対する長短に応じて基準値を更新する。
【0059】
基準値更新部333による基準値の更新については、後に詳しく説明する。
【0060】
続いて、プログラマブル表示器1による描画の動作について説明する。
図3は、プログラマブル表示器1による画面の表示更新の処理手順を示すフローチャートである。
【0061】
図3に示すように、プログラマブル表示器1において、描画部331は、最初に画面を表示するとき、描画モードを全体描画に設定して(ステップS1)、当該画面モード、すなわち全体描画で画面を描画する(ステップS2)。
【0062】
次いで、描画部331は、オブジェクトに何らかの変化が生じることで画面に更新が必要であるか否かを判定する(ステップS3)。描画部331は、画面に更新が必要となるまで待機を続ける(ステップS3のNO)。また、描画部331は、画面に更新が必要であると判定すると(ステップS3のYES)、画面において更新しなければならないオブジェクト数が基準値以上であるか否かを判定する(ステップS4)。
【0063】
描画部331は、ステップS4において、更新しなければならないオブジェクト数(固有値“1”を総計した総計値)が基準値以上でないと判定すると(NO)、画面において更新しなければならないオブジェクトが重なりのないオブジェクトのみであるか否かを判定する(ステップS5)。
【0064】
描画部331は、ステップS4において、更新しなければならないオブジェクト数が基準値以上であると判定すると(YES)、描画モードを全体描画に設定して(ステップS6)、処理をステップS2に戻す。
【0065】
描画部331は、ステップS5において、更新しなければならないオブジェクトが重なりのないオブジェクトのみであると判定すると(YES)、描画モードを重なり検索を行わない部分描画に設定して(ステップS7)、処理をステップS2に戻す。また、描画部331は、ステップS5において、更新しなければならないオブジェクトが重なりのあるオブジェクトを含むと判定すると(NO)、描画モードを重なり検索を行う部分描画に設定して(ステップS8)、処理をステップS2に戻す。
【0066】
ここで、上記の重なり検索について説明する。
図4は、プログラマブル表示器1による画面切替時の処理手順を示すフローチャートである。
図5は、
図4のフローチャートの説明で参照する切り替えられる画面100の例を示す図である。
図6は、
図4のフローチャートにおける処理によってリスト化されたオブジェクト情報とオブジェクト重なり情報とを示す図である。
【0067】
図4に示すように、描画部331は、まず、タッチパネル15への操作などに応じて画面切替が発生すると、切り替えられる画面に含まれるオブジェクト情報をPC4で生成されたオブジェクト重なり情報と共にリスト化する(ステップS11)。
【0068】
図5に示す画面100が切り替えられて表示される場合、
図6に示すオブジェクト重なり情報が用いられる。オブジェクト重なり情報は、PC4の作画編集部41によって、画面の作成時に複数のオブジェクトが重なるように配置された場合に生成される。このオブジェクト重なり情報は、PC4からプログラマブル表示器1に画面データと併せて転送され、画面データと共にユーザメモリ14に記憶されている。
【0069】
画面100は、オブジェクトとして、スイッチ101、数値表示器102および円103,104を含んでいる。スイッチ101は、オン・オフ操作、切替操作などをするための操作部品である。数値表示器102は、制御機器2などからデータとして取得した数値を表示する表示部品である。円104は、円103よりも小さく、円103の上に重ねて配置されている。円103,104は、それぞれ異なる色で塗りつぶされている。
【0070】
画面100に対するオブジェクト重なり情報は、
図6に示すように、スイッチ101、数値表示器102および円103,104のそれぞれについて、重なりの有無を対応付けたリスト形式で作成される。このオブジェクト重なり情報においては、画面100において設けられる各種のオブジェクトについて、オブジェクト名に、序数として1,2,…が付与されている。
【0071】
描画部331は、重なり検索において、上記のように作成されたオブジェクト重なり情報において重なりのあるオブジェクトを検索する。そして、描画部331は、重なりのあるオブジェクトについて、画面の表示更新が効率的に行われるような描画更新順序を選択する。例えば、
図5に示す円103,104(二重円)の場合、2つのオブジェクトから構成される二重円は、一方のみが変化するが他方は変化しなくても、全体として描画しなおす必要があるので、他方も描画しなければならない。
【0072】
例えば、円104のみが変化する場合、円104のみを変化に応じて描画する。また、円103のみが変化する場合、円103を変化に応じて描画した後に、円104を描画前と同じ状態に描画するというように順序(描画順序)が決まっている。これに対し、円103,104の両方が変化する場合、どちらから先に変化させるかに応じて、描画順序が異なる。
【0073】
第1ケースでは、円104を変化させた後に円103を変化させて円104を変化させる。第1ケースは、円104を描画した後に、円104の上に大きい円103を描画するため、最後に円103の上に円104を描画する必要がある。第2ケースでは、円103を変化させた後に円104を変化させる。第2ケースが第1ケースより効率的であるので、描画部331は、円103,104の両方が変化する場合は、第2ケースによる順序を選択して円103,104を描画する。
【0074】
描画部331は、重なりの検索を行った上で、重なり合う複数のオブジェクトを探し出したときに、これらのオブジェクトの変化状況に応じて、効率的な描画の順序を選択し、選択した順序にしたがって描画を行う。このように、描画をより短い時間で行うことができる順序を選択することで、画面の更新時間を短縮することができる。
【0075】
重なり合うオブジェクトの描画を行う範囲の計算は、座標計算などが必要であり、多くの演算処理を必要とする。このため、パーソナルコンピュータのように処理能力の高いCPUを搭載した機器では、上記の演算処理によるCPUの負担が少ない。しかしながら、プログラマブル表示器1のような専用機では、処理能力の低いCPUを搭載していることが多いため、上記の演算処理によるCPUの負担が大きい。そこで、上記のように、オブジェクトの描画に複数の描画順序が存在するときに、描画部331が効率的に描画を行える描画順序を選択することにより、上記演算処理の量を少なくして、CPU11の負担を軽減することができる。
【0076】
また、描画部331は、位置、形状などが変化することによって重なる状態が変化するオブジェクトについても、上記のように、重なりの検索を行った上で、オブジェクトの変化状況に応じて、効率的な描画の順序を選択し、選択した順序にしたがって描画を行う。
【0077】
位置については、オブジェクトが移動したときに、重なりが生じる場合と重なりが生じない場合とがある。また、形状については、オブジェクトの大きさが変化したときに、重なりが生じる場合と重なりが生じない場合とがある。これらの場合、画面の作成時には重なりを定義できないので、プログラマブル表示器1が実際に描画動作しているときに重なりを判定する必要がある。このため、描画部331は、画面の更新を行う前に、これらの重なり状態を認識した上で重なり合うオブジェクトを描画する。
【0078】
引き続いて、プログラマブル表示器1による基準値の更新動作について説明する。
【0079】
ここでは、基準値の更新について、代表的な2つの手法について説明する。
【0080】
まず、第1の手法について説明する。
図7は、プログラマブル表示器1による基準値更新の処理手順を示すフローチャートである。
【0081】
なお、以降の説明では、描画部331が全体描画に要した時間を全体描画時間Taとし、描画部331が部分描画に要した時間を部分描画時間Tpとする。描画時間計測部332は、描画部331が全体描画および部分描画を行うごとに、全体描画時間Taおよび部分描画時間Tpを計測して、メインメモリ12に記憶させている。
【0082】
図7に示すように、まず、画面描画が繰り返し行われている状態で、描画部331は、部分描画がn回(規定回数)発生したか否かを判定する(ステップS21)。描画部331は、ステップS21において、部分描画がn回発生しなかったと判定すると(NO)、処理を終える。
【0083】
描画部331がステップS21において部分描画がn回発生したと判定すると(YES)、基準値更新部333は、その判定結果を受けて、n回の部分描画時間Tpの平均が全体描画時間Taを超えたか否かを判定する(ステップS22)。基準値更新部333は、ステップS22において、上記の平均が全体描画時間Taを超えたと判定すると(YES)、第1計算方法によって基準値を更新して(ステップS23)、処理を終える。
【0084】
また、基準値更新部333は、ステップS22において、上記の平均が全体描画時間Ta以下であると判定すると(NO)、さらに予測部分描画時間Tppが全体描画時間Ta未満であるか否かを判定する(ステップS24)。
【0085】
ここで、オブジェクト1つ分の平均描画時間Tavは、n回の部分描画時間Tp(Tp1,Tp2,…,Tpn)の合計をn回の更新されたオブジェクトの総数Nで除することで算出される(下記の式(1))。また、予測部分描画時間Tppは、オブジェクト1つ分の平均描画時間Tavに基準値Vrを乗じることで算出される(下記の式(2))。
【0086】
Tav=(Tp1+Tp2+,…,+Tpn)/N …(1)
Tpp=Tav*Vr …(2)
基準値更新部333は、ステップS24において、予測部分描画時間Tppが全体描画時間Ta未満であると判定すると(YES)、第2計算方法によって基準値を更新して(ステップS25)、処理を終える。また、基準値更新部333は、ステップS24において、予測部分描画時間Tppが全体描画時間Ta以上であると判定すると(NO)、基準値を維持したまま(ステップS26)、処理を終える。
【0087】
ステップS26においては、基準値Vrが以下の式で表される値になっている。
【0088】
(Vr-1)*Tav <Ta≦Tav*Vr
この場合、基準値を変更する必要はない。
【0089】
ここで、第1計算方法および第2計算方法について説明する。
【0090】
図8は、
図7のフローチャートにおける処理で用いる第1計算方法で用いる時間比率と係数との関係を示すグラフである。
図9は、
図7のフローチャートにおける処理で用いる第2計算方法で用いる時間比率と係数との関係を示すグラフである。
【0091】
まず、第1計算方法について説明する。第1計算方法は、基準値を下げる場合に用いられる。
【0092】
第1計算方法では、基準値が、画面における全てのオブジェクトについての固有値“1”の総和(オブジェクトの総数)に対する任意の比率で予め設定されている。
【0093】
n回の部分描画時間Tpの平均である平均部分描画時間Tpavが全体描画時間Taを超える場合、基準値更新部333は、次の式(3)により、比率Rt1、すなわち平均部分描画時間Tpavを全体描画時間Taと比較して、描画に余分にかかった時間の割合を算出する。比率Rt1の値が大きいほど、基準値を下げる割合が大きくなる。
【0094】
Rt1=(Tpav/Ta)*100-100(%) …(3)
基準値更新部333は、算出した比率Rt1に対応する係数を
図8に示す関係(グラフ)から求める。例えば、平均部分描画時間Tpavが1.5sであり、全体描画時間Taが1.0sである場合、基準値更新部333は、50%の比率Rt1を算出し、
図8の関係において、比率50%に対応する係数は20を求める。なお、
図8の横軸は、平均部分描画時間Tpavを全体描画時間Taと比較して、描画に余分にかかった時間の割合を示す。
【0095】
図8に示す関係は、描画に余分にかかった時間が長いほど、係数が大きくなる。描画に余分にかかった時間の割合がある一定値を超えて大きくなると、係数を大きくしない。また、描画に余分にかかった時間の割合がある一定値を超えて小さくなると、係数を小さくしない。
図8では、係数の上限を20と定め、係数の下限を0と定めている。
【0096】
係数が大きいほど、基準値の変化量が大きくなる。ただし、通常はそれほど係数が大きくならないのに、たまたま大きくなり過ぎると、基準値の変化量が大きくなって、その影響を受けてしまう。このため、基準値を最適値に更新するまでに時間がかかる。そこで、このような影響を受けないように、係数に上限値および下限値を設けている。
【0097】
係数の下限値が0であるのは、平均部分描画時間Tpavや予測部分描画時間Tppが全体描画時間Taと比較してあまり差がない場合の処理としては、基準値を変更する必要がほぼないと考えられるからである。また、割合の下限値を変更する(0に近づける)ことで、これらの時間に差がない場合でも(差が0ではない場合)、基準値を変更することが可能である。
【0098】
ここで、
図8における比率の上限値(50)および下限値(5)は一例であって、これらの値に限定されない。上限値および下限値は、環境に応じて適切な値に設定する。偶発的に生じる極端な変化によって基準値の変化量が大きくなり過ぎないように、比率の上限値および下限値を設けている。
【0099】
また、係数と、比率の上限値および下限値は予め設定することができる。
【0100】
そして、基準値更新部333は、新たな基準値Vrn+1を現在の基準値Vrnおよび係数Kに基づいて次の式(4)に基づいて算出する。
【0101】
Vrn+1=Vrn*(100-K)/100 …(4)
上記のように、第1計算方法は、更新するオブジェクトの数が基準値よりも少ないにも関わらず、部分描画した結果、全体描画よりも時間がかかってしまったときに使用される。この場合、基準値が大きすぎるために、基準値を下げる必要がある。
【0102】
次に、第2計算方法について説明する。第2計算方法は基準値を上げる場合に用いられる。
【0103】
第2計算方法でも、予め基準値が設定されている。
【0104】
平均部分描画時間Tpavが全体描画時間Ta以下である場合、基準値更新部333は、次の式(5)による比率Rt2、すなわち予測部分描画時間Tppが全体描画時間Taと比較して、短かった時間の割合を算出する。比率Rt2の値が大きいほど、基準値を上げる割合が大きくなる。式(5)における予測部分描画時間Tppは、上述したステップS24において算出されている。
【0105】
Rt2=100-(Tpp/Ta)*100(%) …(5)
基準値更新部333は、算出した比率Rt2に対応する係数を
図9に示す関係(グラフ)から求める。例えば、予測部分描画時間Tppが1.0sであり、全体描画時間Taが2.0sである場合、基準値更新部333は、50%の比率Rt2を算出し、
図9の関係において、比率50%に対応する係数は10を求める。なお、
図9の横軸は、予測部分描画時間Tppを全体描画時間Taと比較して、短かった時間の割合を示す。
【0106】
図9に示す関係では、予測部分描画時間Tppが全体描画時間Taよりも短かった時間が長いほど、係数が大きくなる。上記の短かった時間の割合がある一定値を超えて大きくなると、係数を大きくしない。また、上記の短かった時間の割合がある一定値を超えて小さくなると、係数を小さくしない。
図9では、係数の上限を10と定め、係数の下限を
図8に示す係数の下限と同様に0と定めている。
【0107】
ここで、
図9における比率の上限値(50)および下限値(10)は一例であって、これらの値に限定されない。上限値および下限値は、環境に応じて適切な値が設定される。偶発的に生じる極端な変化によって基準値の変化量が大きくなり過ぎないように、比率の上限値および下限値を設けている。
【0108】
また、係数と、比率の上限値および下限値は予め設定することができる。
【0109】
そして、基準値更新部333は、新たな基準値Vrn+1を現在の基準値Vrnおよび係数Kに基づいて次の式(6)に基づいて算出する。
【0110】
Vrn+1=Vrn*(100+K)/100 …(6)
上記のように、第2計算方法は、基準値よりも少ないオブジェクト数で部分描画した結果、全体描画より速かったときに使用される。そして、最新の1つのオブジェクトあたりの更新速度を利用して、基準値のオブジェクト数で部分描画に要する時間を計算し、この時間を全体描画時間と比較した結果に基づいて基準値を上げるか維持するかを選択する。これにより、適切な基準値に近づけていくことができる。
【0111】
以上に述べたように、第1の手法では、基準値更新部333が、平均部分描画時間Tpavが全体描画時間Taを超えるときに、基準値を下げるように更新する。また、基準値更新部333は、平均部分描画時間Tpavが全体描画時間Ta以下であるときに、予測部分描画時間Tppが全体描画時間Taより短ければ、基準値を上げるように更新し、予測部分描画時間Tppが全体描画時間Ta以上であれば、基準値を維持する。
【0112】
これにより、画面の表示更新の回数が多くなるほど、基準値が最適値に近づいていく。したがって、画面更新の効率を高めることができる。
【0113】
ところで、オブジェクトとして多数の数値表示器を含む画面の場合、数値表示器は、外形の矩形と数値との2つの基本要素で構成されている。矩形のみのオブジェクトでは、矩形のみを描画すればよいが、数値表示器では、矩形と数値とを描画する必要がある。したがって、多数の数値表示器の表示を更新する場合、描画に長い時間を要する。
【0114】
また、アラーム部品は、アラームを発報する時刻、アラームの内容、アラームの発生状況などを表示するため、それぞれの内容を表示する文字表示器が表に似た形式に組み合わされて構成される。例えば、発報したアラームについては、該当する文字表示器を赤色で表示し、復旧したアラームについては該当する文字表示器を緑色で表示する。
【0115】
また、トレンドグラフでは、1つの四角形の中に多数のグラフが表される。
【0116】
このように、複数の部品から構成される複合部品では、複数の部品が描画される。多数の複合部品を含む画面において、大半の複合部品が変化するような場合は、特に描画に時間がかかり、基準値が大きくなってしまう。
【0117】
これに対し、第1の手法では、平均部分描画時間Tpavに基づいて比率を求め、この比率に対応する係数に基づいて新たな基準値を算出する。これにより、特に、平均部分描画時間Tpavが全体描画時間Taに近い場合、突発的に発生する可能性がある部分描画時間Tpの大きな変化(例えば、上記のアラーム部品やトレンドグラフをスクロールした場合の表示更新)による、基準値の誤った更新を抑えることができる。
【0118】
なお、平均部分描画時間Tpavと全体描画時間Taとに大きな差がある場合は、部分描画時間Tpに大きな変化が突発的に発生しても、基準値にはあまり影響は及ばない。
【0119】
次に、第2の手法について説明する。
図10は、プログラマブル表示器1による他の基準値更新の処理手順を示すフローチャートである。
【0120】
図10に示すように、まず、画面が切り替えられると、描画部331は、全体描画を行う(ステップS31)。ステップS31において、描画時間計測部332は、当該全体描画に要した全体描画時間Taを計測してメインメモリ12に記録する。
【0121】
切り替えられた画面の初回の表示更新時に、描画部331は、部分描画を行う(ステップS32)。ステップS32において、描画時間計測部332は、当該部分描画に要した部分描画時間Tpを計測してメインメモリ12に記録(登録)する。また、ステップS32において、描画時間計測部332は、初回の表示更新時に描画されたオブジェクトの数(オブジェクト数上限値Nulmt)を、基準値(初期総計値)としてメインメモリ12に記録(設定)する。
【0122】
描画部331が上記の画面の2回目以降の更新に移行すると(ステップS33)、基準値更新部333は、記録された上記の部分描画時間Tpが全体描画時間Ta未満であるか否かを判定する(ステップS34)。この判定において、基準値更新部333は、部分描画時間Tpが全体描画時間Ta未満であると判定すると(YES)、更新が必要なオブジェクトの数(変化するオブジェクトの数)である更新オブジェクト数Nud(総計値)がオブジェクト数上限値Nulmt以下であるか否かを判定する(ステップS35)。
【0123】
この判定において、基準値更新部333が、更新オブジェクト数Nudがオブジェクト数上限値Nulmt以下であると判定すると(YES,第1状態)、描画部331は部分描画を行う(ステップS36)。ステップS35において、描画時間計測部332は、当該部分描画に要した実描画時間Trを計測してメインメモリ12に記録する。
【0124】
次いで、基準値更新部333は、上記の実描画時間Trが記録された最新の全体描画時間Ta以上であるか否かを判定する(ステップS37)。この判定において、基準値更新部333は、実描画時間Trが全体描画時間Ta以上であると判定すると(YES)、メインメモリ12における部分描画時間Tpを実描画時間Trに更新すると共に、メインメモリ12におけるオブジェクト数上限値Nulmtを更新オブジェクト数Nudの値に更新して(ステップS38)、処理をステップS33に戻す。また、ステップS37の判定において、基準値更新部333は、部分描画時間Tpが全体描画時間Ta未満であると判定すると(NO)、部分描画時間Tpおよびオブジェクト数上限値Nulmtの更新を行わずに、処理をステップS33に戻す。
【0125】
また、ステップS35において、基準値更新部333は、更新オブジェクト数Nudがオブジェクト数上限値Nulmtを超えると判定すると(NO,第2状態)、描画部331は部分描画を行う(ステップS39)。その後、基準値更新部333は、上記の実描画時間Trが記録された最新の全体描画時間Ta以上であるか否かを判定する(ステップS40)。この判定において、基準値更新部333は、実描画時間Trが全体描画時間Ta以上であると判定すると(YES)、部分描画時間Tpおよびオブジェクト数上限値Nulmtを以下のようにして計算すると共に更新して(ステップS41)、処理をステップS33に戻す。
【0126】
基準値更新部333は、ステップS41において、現状のオブジェクト数上限値Nulmtおよび更新オブジェクト数Nudの平均を算出し、その値を新たなオブジェクト数上限値Nulmtとして更新する。また、基準値更新部333は、ステップS41において、部分描画時間Tpおよび実描画時間Trの平均を算出し、その値を新たな部分描画時間Tpとして更新する。
【0127】
また、ステップS40において、基準値更新部333は、実描画時間Trが全体描画時間Ta未満であると判定すると(NO)、処理をステップS38に移行する。
【0128】
また、ステップS34において、基準値更新部333は、部分描画時間Tpが全体描画時間Ta以上であると判定すると(NO)、更新オブジェクト数Nudがオブジェクト数上限値Nulmt以下であるか否かを判定する(ステップS42)。
【0129】
この判定において、基準値更新部333が、更新オブジェクト数Nudがオブジェクト数上限値Nulmt以下であると判定すると(YES,第3状態)、描画部331は部分描画を行って(ステップS43)、処理をステップS33に戻す。ステップS43において、基準値更新部333は、メインメモリ12における部分描画時間Tpを実描画時間Trに更新すると共に、メインメモリ12におけるオブジェクト数上限値Nulmtを更新オブジェクト数Nudの値に更新する。
【0130】
また、ステップS42において、基準値更新部333が、更新オブジェクト数Nudがオブジェクト数上限値Nulmtを超えると判定すると(NO,第4状態)、描画部331は全体描画を行って(ステップS44)、処理をステップS33に戻す。また、ステップS44において、描画時間計測部332は、メインメモリ12における全体描画時間Taを、上記の全体描画に要した全体描画時間Taに更新する。
【0131】
続いて上記の処理を具体的に行った例について表1を参照して説明する。
【0132】
画面切替時に、描画部331は、100の更新オブジェクト数Nudで全体描画を行う。このとき、全体描画に要した実描画時間Trすなわち全体描画時間Taは1.1sである。描画時間計測部332は、この値をメインメモリ12に記録する。
【0133】
続く、画面の初回更新時において、描画部331は、30の更新オブジェクト数Nudで部分描画を行う。このとき、部分描画に要した実描画時間Trすなわち部分描画時間Tpは0.6sである。描画時間計測部332は、この値をメインメモリ12に記録する。また、基準値更新部333は、30の更新オブジェクト数Nudを基準オブジェクト数としてメインメモリ12に記録する。
【0134】
2回目の更新時において、部分描画時間Tp(0.6s)が全体描画時間Ta(1.1s)未満であり(ステップS34のYES)、かつ更新オブジェクト数Nud(40)がオブジェクト数上限値Nulmt(30)を超える(ステップS35のNO)。
【0135】
したがって、この場合、描画部331は、部分描画を行う(ステップS39)。また、実描画時間Trが全体描画時間Ta未満であるので(ステップS40のNO)、基準値更新部333は、その実描画時間Trを部分描画時間Tpとして更新すると共に、更新オブジェクト数Nudをオブジェクト数上限値Nulmtとして更新する(ステップS38)。
【0136】
3回目の更新時において、部分描画時間Tp(0.8s)が全体描画時間Ta(1.1s)未満であり(ステップS34のYES)、かつ更新オブジェクト数Nud(80)がオブジェクト数上限値Nulmt(40)を超える(ステップS35のNO)。
【0137】
したがって、この場合、描画部331は部分描画を行う(ステップS39)。また、部分描画の実描画時間Tr(1.6s)は、全体描画時間Ta以上であるので(ステップS40のYES)、基準値更新部333は、部分描画時間Tpおよび実描画時間Trの平均値である1.2sを部分描画時間Tpとして更新すると共に、更新オブジェクト数Nudおよびオブジェクト数上限値Nulmtの平均値である60をオブジェクト数上限値Nulmtとして更新する(ステップS41)。
【0138】
4回目の更新時において、部分描画時間Tp(1.2s)が全体描画時間Ta(1.1s)を超え(ステップS34のNO)、かつ更新オブジェクト数Nud(70)がオブジェクト数上限値Nulmt(60)を超える(ステップS42のNO)。したがって、この場合、描画部331は全体描画を行い、描画時間計測部332は全体描画時間Taを更新する(ステップS44)。
【0139】
5回目の更新時において、部分描画時間Tp(1.2s)が全体描画時間Ta(1.12s)を超え(ステップS34のNO)、かつ更新オブジェクト数Nud(55)がオブジェクト数上限値Nulmt(60)以下である(ステップS42のYES)。この場合、描画部331は部分描画を行う(ステップS43)。また、基準値更新部333は、部分描画の実描画時間Tr(1.1s)を部分描画時間Tpとして更新すると共に、更新オブジェクト数Nud(55)をオブジェクト数上限値Nulmtとして更新する。
【0140】
【0141】
以上に述べたように、第2の手法では、2回目以降の画面の表示更新から、全体描画時間Taに対する部分描画時間Tpの長短、およびオブジェクト数上限値Nulmtに対する更新オブジェクト数Nudの大小を評価し、その結果に基づいて部分描画時間Tpおよびオブジェクト数上限値Nulmtを更新する。
【0142】
これにより、画面の表示更新の回数が多くなるほど、基準値が最適値に近づいていく。したがって、画面更新の効率を高めることができる。
【0143】
また、第1の手法と異なり、基準値を予め設定しないことと、毎回の画面表示更新で全体描画時間Ta、部分描画時間Tpおよびオブジェクト数上限値Nulmtの各値を適宜更新する。これにより、基準値を短時間で最適値に近づけることができる。
【0144】
ところで、本実施形態において、基準値は画面ごとに設定されている。これにより、描画時間の長いオブジェクトを含む画面と、描画時間の短いオブジェクトを含む画面とで、基準値が異なる。画面に関わらず表示している画面で基準値を最適化すると、ある画面の基準値を最適化した後に他の画面を表示して基準値の最適化を改めてして、ある画面に表示を戻す場合、再度基準値の最適化が必要になって無駄が生じる。基準値が最適化されてない状態で、画面が切り替わっても、また同じ画面に戻すときに最初から最適化を行うのではなく、最適化を続けて行うことができるので、基準値が最適値に到達する時間を短くすることができる。
【0145】
例えば、数値表示器を100個含む2つの画面について、一方ではほぼ全ての数値表示器が100msごとに更新されるような制御機器2の計測値を表示する場合は、部分描画の要否を判定せずに、全体描画を行う方が速く画面を更新できる。これに対し、1sに1回変わるような制御機器2の計測値を表示する場合、全体描画では遅い。同じ画面であっても、オブジェクトの数や、オブジェクトへの変化の反映のさせ方によっても基準値の最適値が変わってくる。
【0146】
なお、
図3、
図7および
図10のフローチャートにおける各判定のステップにおける「以上」および「以下」については、前後の処理に矛盾が生じなければ、等しい場合を除外してもよい。また、各判定のステップにおける「超える」および「未満」についても、前後の処理に矛盾が生じなければ、等しい場合を含めてもよい。
【0147】
〔実施形態2〕
本発明の実施形態2について以下のとおり説明する。なお、本実施形態において、実施形態1における構成要素と同一の機能を有する構成要素については、同一の符号を付記して、その説明を省略する。
【0148】
図11の(a)および(b)は、基準値をオブジェクトの面積で規定する場合のオブジェクトと面積を規定する矩形との関係を示す図である。
図12は、基準値をオブジェクトの面積で規定する場合の基準値の更新に利用される、画面全体の面積に対する各オブジェクト割合の例を示す図である。
【0149】
実施形態1では、基準値をオブジェクト数で規定したが、本実施形態では、基準値を画面全体の面積に対するオブジェクトの面積の割合(面積割合)で規定する。
【0150】
具体的には、本実施形態に適用される第1の手法については、基準値が任意の面積割合で予め設定されている。本実施形態に適用される第2の手法については、オブジェクト数上限値に代えて、面積割合の上限値(変化したオブジェクトの面積割合の総和)で基準値を更新する。これら以外のプログラマブル表示器1の構成は、実施形態1におけるプログラマブル表示器1と同じである。
【0151】
ここで、オブジェクトの面積は、オブジェクトを含む最小の矩形エリアで求められる。オブジェクトが四角形である場合は、矩形エリアとオブジェクトとは等しい。これに対し、
図11の(a)に示すように、オブジェクトが円E1である場合は、円E1に外接する矩形エリアR1でオブジェクトの面積が算出される。また、
図11の(b)に示すように、オブジェクトが楕円E2である場合は、楕円E2に外接する矩形エリアR2でオブジェクトの面積が算出される。オブジェクトは、それぞれの固有値として面積割合を有している。
【0152】
PC4の作画編集部41は、オブジェクトの面積を計算するとともに、
図12に示すように、画面全体の面積に対するオブジェクトの面積の割合(%)を計算する。この面積割合の情報は、画面データとともに、PC4からプログラマブル表示器1に転送されて、ユーザメモリ14に記憶される。
【0153】
本実施形態に係るプログラマブル表示器1では、基準値がオブジェクトの面積割合で規定される。小さいオブジェクトは描画に要する時間が短いが、大きなオブジェクトは描画に要する時間が長い。このため、大きさの異なるオブジェクトを含む画面では、変化するオブジェクトの大きさに応じて描画の時間が異なる。そこで、基準値をオブジェクトの面積割合で規定することにより、画面に含まれるオブジェクト間で大きさに差があっても、全体描画および部分描画のいずれを行うかを、より適正に判定することができる。
【0154】
〔実施形態3〕
本発明の実施形態3について以下のとおり説明する。なお、本実施形態において、実施形態1における構成要素と同一の機能を有する構成要素については、同一の符号を付記して、その説明を省略する。
【0155】
実施形態1では、基準値をオブジェクト数で規定したが、本実施形態では、基準値をオブジェクトの重みで規定する。
【0156】
具体的には、本実施形態に適用される第1の手法については、基準値が画面における全てのオブジェクトについての重みの総和に対する任意の比率で予め設定されている。本実施形態に適用される第2の手法については、オブジェクト数上限値に代えて、オブジェクトの重み合計の上限値(変化したオブジェクトの重みの総和)で基準値を更新する。これら以外のプログラマブル表示器1の構成は、実施形態1におけるプログラマブル表示器1と同じである。
【0157】
ここで、重みは、基本重みと、オブジェクトを規定する上述の矩形エリアの解像度に対する大きさの割合と、オブジェクトの装飾の重みとの乗算で規定される。オブジェクトは、オブジェクトの特性に応じて付与された重みを、それぞれの固有値として有している。
【0158】
基本重みは、表2に示すように、図形の形状などに応じて値が予め定められている。基本重みは、描画に要する時間が長くなる複雑なオブジェクトほど大きい値が付与される。
【0159】
【0160】
装飾重みは、表3に示すように、装飾の種類、装飾の細かさなどに応じて値が予め定められている。装飾重みは、基本重みと同じく、描画に要する時間が長くなる装飾ほど大きい値が付与される。例えば、装飾は、塗り込みの有無、グラデーション(縦と横とで異なる)でも重みが異なる。縦方向のグラデーションの場合、各行の色は同じで、行ごとに濃淡を変えていく。横方向のグラデーションの場合、同じ行でも、角度などに応じて濃淡を変えていく。
【0161】
【0162】
なお、表2および表3に示す重みは、あくまでも一例であって、オブジェクトに付与される重みはオブジェクトの形態に応じて異なる。
【0163】
本実施形態に係るプログラマブル表示器1では、基準値がオブジェクトの重みで規定される。単純な形状のオブジェクトは描画に要する時間が短いが、複雑な形状のオブジェクトは描画に要する時間が長い。また、装飾の有無や形態に応じて描画に要する時間が異なる。このため、重みの異なるオブジェクトを含む画面では、変化するオブジェクトの重みに応じて描画の時間が異なる。そこで、基準値をオブジェクトの重みで規定することにより、画面に含まれるオブジェクト間で重みに差があっても、全体描画および部分描画のいずれを行うかを、より適正に判定することができる。
【0164】
〔ソフトウェアによる実現例〕
プログラマブル表示器1の制御ブロック(特に、表示制御部32)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
【0165】
後者の場合、プログラマブル表示器1は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えているとともに、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。
【0166】
そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU11を用いることができる。
【0167】
上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM13等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、プログラマブル表示器1は、上記プログラムを展開するメインメモリ12などを備えていてもよい。
【0168】
また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0169】
〔付記事項〕
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0170】
1 プログラマブル表示器(画面表示装置)
16 表示パネル
331 描画部
332 描画時間計測部
333 基準値更新部
Ta 全体描画時間
Tp 部分描画時間
Tpp 予測部分描画時間
Tr 実描画時間
Nulmt オブジェクト数上限値(基準値)
Nud 更新オブジェクト数(総計値)