(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための最良の形態】
【0023】
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラマブル表示器1を含むシステム全体の概略構成図である。
尚、
図1に示す構成は、一例であり、この例に限らない。例えば、必ずしもプログラマブル表示器1が通信ライン3を介して作画エディタ装置5に接続された構成でなくてもよい。プログラマブル表示器1と作画エディタ装置5とが別々に存在していてもよい。プログラマブル表示器1が、本手法による画面データを格納して、この画面データを用いてプログラマブル表示器用の画面の表示等を行うものであれば、何でも良い。
【0024】
図1に示すプログラマブルコントローラシステムは、各種接続機器4と、通信ライン6を介して各種接続機器4に接続するプログラマブル表示器1とを有する。更に、プログラマブル表示器1が、通信ライン3を介して作画エディタ装置5に接続された構成となっている。プログラマブル表示器1には、複数の通信インタフェース2(通信ポート)が備えられており、各通信インタフェース2に接続された通信ライン3/通信ライン6によって各種接続機器4や作画エディタ装置5と接続されている。
【0025】
作画エディタ装置5は、上記背景技術における支援装置に相当するものであり、上記操作表示画面をプログラマブル表示器1で表示させる為のデータ等(画面データ)を、ユーザが任意に作成できるように支援する機能を有する。従来では、予め各種アイテム画像が用意されており、ユーザは所望のアイテム画像を選択して所望の位置に配置させる作業を繰り返して、上記画面データ作成を行う。
【0026】
作画エディタ装置5は、プログラマブル表示器用の画面(画面データ)の作成を支援するための支援装置の一例と見做してよい。
そして、本手法では、上記既存のアイテム画像だけでなく、後述するオーバーラップ画像も、予め作成されて作画エディタ装置5等に記憶されている。このオーバーラップ画像は、基本的には、単独で表示させるものではなく、任意のアイテム画像に対して透過的に合成させる(後述するアルファブレンドによる合成など)ための合成用画像である。
【0027】
オーバーラップ画像は、特定の表現が成された画像である。これにより、上記アイテム画像にオーバーラップ画像を透過的に合成させて成る合成画像は、当該合成対象のアイテム画像に上記特定の表現が反映された画像となる。上記特定の表現とは、例えば一例としては、ガラスが反射したような表現、あるいは立体的に見せるためのスポット的な表現であるが、勿論、この様な例に限るものではない。
【0028】
換言すれば、本手法では、特定の表現のアイテム表示(例えばガラスが反射したような表現や、立体的に見せるためのスポット的な表現等のアイテム表示)を、予め作成される特定の表現用の画像であるオーバーラップ画像を用いて実現させる。すなわち、アイテム画像にオーバーラップ画像を透過的に合成(アルファブレンド等)することによって、上記特定の表現のアイテム表示を実現する。
【0029】
尚、本例では、上記透過的に合成させる手法の一例としてアルファブレンドを例にして説明するが、この例に限らない。透過的に合成させる手法として他の手法を用いるようにしてもよい。
【0030】
アルファブレンド処理における所謂“背景”がアイテム画像となり、“前景”がオーバーラップ画像となる。
オーバーラップ画像は、予め作画エディタ装置5上で任意に作成されたものであってもよいし、予め不図示の他の開発環境の所定の装置上で任意に作成されて、作画エディタ装置5に記憶されているものであってもよい。
【0031】
作画エディタ装置5において、ユーザは、上記選択・配置したアイテム画像に対して所望の特殊加工を行う場合、各種オーバーラップ画像のなかから所望のオーバーラップ画像を選択して当該アイテム画像に関連付ける作業を行う。1種類のオーバーラップ画像が複数のアイテム画像に関連付けられてもよい。この様にして作成された画面データには、配置されたアイテム画像に加えて、アイテム画像に関連付けられたオーバーラップ画像も含まれる。
【0032】
上記画面データは、プログラマブル表示器1にダウンロードされる。
プログラマブル表示器1は、従来と同様に画面データの各アイテム画像を所定の配置位置に表示する処理を行うが、上記オーバーラップ画像が関連付けられたアイテム画像に関しては更に当該オーバーラップ画像を用いた合成処理(アルファブレンド処理等)を実行する。これによって例えば上記ガラスが反射したような表現がアイテム画像に加わることになる。
【0033】
尚、作画エディタ装置5は、例えば一般的な汎用コンピュータ(パソコン等)で実現される。よって、特に図示等はしないが、一般的なパソコン等の構成を有する。すなわち、例えば、CPU等の演算プロセッサ、メモリ、ハードディスク等の記憶装置、キーボードやマウス等の操作部、ディスプレイ等の表示部、通信機能部等を有している。
【0034】
上記記憶装置には予め所定のアプリケーションプログラムが記憶されており、上記演算プロセッサがこのアプリケーションプログラムを実行することにより、作画エディタ装置5の各種機能(例えば
図3に示す各種機能)が実現される。作画エディタ装置5の各種機能は、既に簡単に説明したが、後に詳細に説明する。
【0035】
また、プログラマブル表示器1も、ハードウェア構成自体は、一般的なものであってよい。よって、以下、
図2を参照して簡単に説明する。
図2は、本例のプログラマブル表示器1のハードウェア構成例である。
【0036】
プログラマブル表示器1は、上述した従来例と略同様に上述した画面データ等に基づく操作表示画面の表示等を行う機能を有するが、更に、上記のようにオーバーラップ画像を用いた合成表示(アルファブレンド等)等も行う。詳しくは後述する。
【0037】
図示のプログラマブル表示器1は、表示操作制御装置10と、タッチパネル18、ディスプレイ19、上記通信インタフェース2等を有する。
表示操作制御装置10は、CPU11、ROM12(フラッシュメモリ等)、RAM13、通信コントローラ14、グラフィックコントローラ15、タッチパネルコントローラ16等より成り、これらがバス17に接続されている。
【0038】
CPU11は、表示操作制御装置10全体を制御する中央処理装置(演算プロセッサ)である。CPU11は、ROM12に予め格納されているプログラム(例えば後述する本体プログラム21等)を実行することで、プログラマブル表示器1の各種演算動作(処理)を行う。この処理についても、既に簡単に説明したが、後に詳細に説明するものとする。
【0039】
また、ROM12には、上記背景技術で説明した画面データ(後述する画面データ22)等が格納されている。上記のように、画面データは、例えば上述した画面上に配置されたスイッチ、ランプ等の各アイテム毎に、そのアイテムの画像や表示位置座標や大きさ等のような表示に係わるデータを有する。また、画面データは、上記割当メモリアドレス(割当メモリ領域のアドレス)等のようなメモリアクセスに係わるデータ等も有する。そして、本例の場合、更にそのアイテムに関連付けられた上記オーバーラップ画像または当該オーバーラップ画像の識別情報等も含まれている場合がある。
【0040】
CPU11による上記処理には、上記割当メモリ領域へのアクセス処理等や、画面データに基づく操作表示画面の生成・表示の為の処理がある。本手法によるプログラマブル表示器1の特徴は、主にこの画面表示に関するものである。
【0041】
上記CPU11の処理によって、例えば上記画面データや上記割当メモリ領域へのアクセス処理による取得データ等に基づく表示対象データが、例えばRAM13(あるいは不図示のビデオRAM)上に展開(描画)される。詳しくは後述する。この描画に基づいてグラフィックコントローラ15が、ディスプレイ19上に上述した操作表示画面等を表示する。
【0042】
ディスプレイ19は、例えば液晶パネル等より成り、この液晶パネル上に重ねるようにしてタッチパネル18が設けられる。ディスプレイ19上には、基本的には、複数のアイテム画像が所定位置に配置されて成る上記操作表示画面が表示される。但し、本手法の場合、上記の通り、上記オーバーラップ画像が関連付けられているアイテム画像に関しては、当該アイテム画像に当該オーバーラップ画像を合成して(アルファブレンド等)表示することになる。
【0043】
また、通信コントローラ14は、通信インタフェース2を介して、不図示のPLC本体等や温調装置等である接続機器4や作画エディタ装置5との通信(データ送受信等)を行う。
【0044】
オペレータ等によるタッチパネル18上での押圧操作(タッチ)位置の検知結果は、タッチパネルコントローラ16を介してCPU11等に取り込まれて解析される。例えば各アイテムの上記表示位置座標や大きさのデータ等に基づいて、解析することになる。例えば、スイッチの画像の表示位置をオペレータ等がタッチすると、CPU11等は、このスイッチに対する操作が行われたものと解析することになる。
【0045】
図3に、上記本システムのソフトウェア構成図を示す。
プログラマブル表示器1においては、本体プログラム21、画面データ22、通信プログラム23等の各種プログラム/データが、例えば上記ROM12(フラッシュメモリ等)に格納されている。これらのプログラム/データ等をCPU11が読出し・実行/参照等することで、プログラマブル表示器用の上記操作表示画面等の表示制御等が行なわれる。
【0046】
この操作表示画面は、上述した数値表示、ランプ、スイッチ等の各種アイテムの画像表示から成り、各アイテムの表示内容は、例えば各接続機器4(外部メモリ;割当メモリ領域)から取得したデータ(取得データ)を反映させる形で随時更新される。
【0047】
つまり、CPU11は、本体プログラム21と画面データ22と上記取得データに基づいて、上記操作表示画面の表示制御を実行する。その際、この操作表示画面上の各アイテム(各画面部品)の表示内容は、上記取得データの内容を反映させたものとなる(温度等の数値表示やランプの点灯/消灯など)。
【0048】
上記画面データ22は、例えば予め作画エディタ装置5側で任意に作成された画面データファイル32が、プログラマブル表示器1にダウンロードされて格納されたものである。また、上記通信プログラム23も、例えば予め作画エディタ装置5側に格納されていた通信プログラムファイル33(その一部)が、プログラマブル表示器1にダウンロードされて格納されたものである。
【0049】
プログラマブル表示器1の通信プログラム23は、通信ライン6を介して接続機器4と通信を行うためのプログラムである。通常、接続機器4の機種毎等に固有の通信プロトコル(通信規定)を持ち、この通信規定に従って、プログラマブル表示器1−接続機器4間での通信を行う。そのため、通信プログラム23は、各接続機器4の機種毎等に開発が必要となる。尚、当然、CPU11などが通信プログラム23を実行することで、接続機器4との通信処理が実現される。
【0050】
PLC本体等である接続機器4は、様々なメーカー・機種があり、各メーカー/機種毎に独自の通信プログラムがあり、上記通信プログラム23は、接続機器4のメーカー/機種に応じて場合によっては複数種類備えられるものとなる。
【0051】
尚、プログラマブル表示器1−作画エディタ装置5間の通信は、例えば本体プログラム21と作画エディタ31とによって行う(通信機能が作画エディタ31に組み込まれている)。これについては特に関係ないので、図示・説明しない。
【0052】
通信プログラム23は、通常、作画エディタ装置5内の不図示のHD(ハードディスク)内に、複数の通信プログラムファイル33群(各機種毎に開発済の複数の通信プログラム)として予め記憶されている。そして、作画エディタ装置5は、作画エディタ31によりユーザが任意の接続機器4を選択・指定すると、該選択された接続機器4に応じた通信プログラムファイル33を、プログラマブル表示器1に転送して、上記通信プログラム23として記憶させる。
【0053】
尚、上記割当メモリ領域へのアクセスや画面表示等の各種処理を実現させるプログラムは、例えば本体プログラム21に含まれていてもよいし、画面データファイル32(画面データ22)に含まれていてもよい。何れにしても、この様なプログラムを例えば上記CPU11が実行することで、プログラマブル表示器1の各種動作が実現されることになる。
【0054】
ここで、作画エディタ装置5の作画エディタ31は、ユーザに所望の操作表示画面(その画面データ)を作成させる支援機能も有する。これは既に述べたように、予め作成済みの各種アイテム画像が、作画エディタ装置5のハードディスク等に記憶されている。作画エディタ31による操作表示画面の作成支援機能によって、これら各種アイテム画像が一覧表示されて、ユーザは所望のアイテム画像を選択して所望の位置に配置する。この機能自体は従来と略同様である。
【0055】
そして、本例の作画エディタ31は、更に図示の各種機能部31a,31b,31c,31dの処理機能を有する。尚、これら各種機能部は、上記作画エディタ装置5が有する不図示のCPUが、不図示の記憶部に記憶されたプログラムを実行することにより実現される。
【0056】
本例の作画エディタ31は、上記既存の画面データ作成支援機能等に加えて、図示のアイテム画像記憶部31a、オーバーラップ画像記憶部31b、画面データ生成部31c、転送部31dの各種機能部を有する。
【0057】
アイテム画像記憶部31aは、プログラマブル表示器の画面に用いられる(画面データ作成に用いられる)各種アイテム画像を記憶する。
オーバーラップ画像記憶部31bは、アイテム画像に対して透過的に合成させるオーバーラップ画像を記憶する。
【0058】
画面データ生成部31cは、任意のアイテム画像に対して任意のオーバーラップ画像を関連付けさせて、該関連付け情報を含む画面データ32(22)を生成する。
転送手段は、この画面データ32(22)をプログラマブル表示器1へ転送して記憶させる。
【0059】
ここで、
図4(a)に、従来の一般的な各アイテム画像例を示す。
ここでは、一例として図示の数値表示アイテム、グラフアイテム、スイッチアイテム等の各種アイテムの表示例を示している。例えば、数値表示アイテムの場合、図示の矩形の枠等が上記アイテム画像であり、この枠内に表示される図示の‘1234’は上記取得データを表示したものである。あるいは、図示しないがランプアイテムの場合、そのアイテム画像として点灯画像と消灯画像の2種類の画像が登録されており、取得データが‘1’の場合は点灯画像が表示され、取得データが‘0’の場合は消灯画像が表示される。この様に、操作表示画面上では、アイテム画像と取得データに基づいて、取得データの内容が反映される形で、各アイテム(画面部品)の表示が行われることになる。
【0060】
ここで、従来においてガラスが反射したような表現が要望された場合、例えば
図4(a)の既存の各アイテム画像に基づいて何らかの加工を行うことになるが、上述したように、この様な加工を行っても例えば
図4(b)に示すような表示とはならない。例えば、数値表示アイテムを例にすると、図示のガラスの反射を示す2本の斜め線の上に、‘1’や‘2’が描画されるために、2本の斜め線の一部が隠れてしまう。この為、ユーザからは、ガラス上に数値‘1234’が表示されるように見えてしまう。
【0061】
一方、
図4(b)の表示は、表示部分の上にガラスが存在するように見えるものである。つまり、よりリアルな表示が行える。
更に、例えば
図4(a)に示すグラフアイテムは、様々なグラフアイテム画像のなかの1つを示しているだけであり、他にも様々な形状のグラフアイテム画像や、あるいは同一形状に対して色違いのグラフアイテム画像等が、予め作成されて作画エディタ装置5に登録されているものである。これは、図示の数値表示アイテムやスイッチアイテムについても同様である。
【0062】
この為、例えばユーザが全てのグラフアイテムに対してガラスが反射したような表現とすることを希望した場合、全ての既存のグラフアイテム画像毎に、それぞれ、加工を行う作業が必要となる。これは、数値表示アイテムやスイッチアイテムについても同様である。この為、アイテム画像の種類の数によっては、開発者等の作業負荷が非常に大きくなることになる。
【0063】
これに対して、本手法では、開発者等は、例えば
図4(c)に示すようなオーバーラップ画像を追加作成すれば済むようになる。つまり、
図4(b)に示すような各アイテム画像を追加作成する必要はない。作画エディタ装置5の記憶装置には、
図4(a)の既存の各アイテム画像と、
図4(c)のオーバーラップ画像とが、予め記憶されていることになる。
【0064】
尚、
図4(c)において、白い部分は透明色を意味している。つまり、白い部分については、アイテム画像に合成しても、アイテム画像がそのまま表示されることになる。例えば図示の数値表示アイテムの場合、図示の2本の斜め線以外は、透明となり、これを
図4(a)の数値表示アイテムと合成した結果は、
図4(b)の数値表示アイテムのようになる。
【0065】
図5(a)〜(d)に、作画エディタ31上での本手法による操作表示画面(画面データファイル32)の作成の為の作画エディタ画面例と作業例を示す。
作画エディタ31は、まず、ユーザに所望のアイテムの選択・配置を行わせる。例えば
図5(a)に示すように、ユーザは所望のアイテム画像(ここでは数値表示アイテム)を画面上の所望の位置に配置する。尚、図示の‘1234’はプレビュー用に設定されている任意の数値であるが、この様な数値は表示されなくてもよい。
【0066】
そして、配置したアイテム画像をユーザがクリック操作(指定)すると、例えば
図5(b)に示すアイテム設定ウィンドウが表示される。
そして、このアイテム設定ウィンドウ上でユーザが図示の「オーバーラップ画像選択」ボタンをクリックすると、
図5(c)に示すオーバーラップ画像選択ウィンドウが表示される。上記の様に、予め作成済みの各種オーバーラップ画像が、作画エディタ装置5の記憶装置されている。作画エディタ31は、これら各種オーバーラップ画像を、
図5(c)に示すオーバーラップ画像選択ウィンドウ内に一覧表示して、ユーザに所望のオーバーラップ画像を選択させる。これによって、上記
図5(a)で指定されたアイテムに、上記選択されたオーバーラップ画像が関連付けられる。
【0067】
尚、その前に、例えば
図5(d)に示すように、指定されたアイテム画像とオーバーラップ画像とを合成(アルファブレンド等)して成るプレビュー画面を表示するようにしてもよい。この例の場合、ユーザはこのプレビュー画面を確認後、不図示の確定ボタン等を操作することで、上記指定されたアイテムに、上記選択されたオーバーラップ画像が関連付けられる。これは、例えば、上記指定されたアイテムの情報(アイテム画像や配置座標、大きさ、割当メモリアドレス等)に、上記選択されたオーバーラップ画像等が、追加される。
【0068】
ユーザが、上記所望のアイテムを所望の位置に配置する作業や、場合によってはこのアイテムに所望のオーバーラップ画像を関連付ける作業を繰り返すことで、任意の操作表示画面(画面データファイル32)が作成される。
【0069】
従来より、画面データ22(画面データファイル32)には、上記画面上に配置された各アイテムの情報(アイテム画像や配置座標、大きさ、割当メモリアドレス等)が含まれる。本手法では更に、上記作業でオーバーラップ画像が関連付けられたアイテムに関しては、当該関連付けられたオーバーラップ画像の情報(画像自体、あるいはオーバーラップ画像の識別情報等)が追加されることになる。
【0070】
この様に作成された画面データファイル32は、プログラマブル表示器1にダウンロードされて、上記画面データ22として格納される。
図6は、本例のプログラマブル表示器の処理機能図である。
【0071】
CPU11が、例えば上記ROM12に記憶されている所定のプログラム(例えば上記本体プログラム21、通信プログラム23等)を実行することにより、例えば
図6の点線内に示す各種処理機能部が実現される。すなわち、図示のアイテム生成部41、アイテム処理スケジュール部42、アイテム処理部43(アイテム表示手段を含む)、通信処理部44(44−1、44−2等)等の各種処理機能部の下記の処理機能が実現される。
【0072】
尚、上記アイテム表示手段は、例えば、画面データに含まれる関連付け情報に基づいて、オーバーラップ画像とアイテム画像とを透過的に合成した合成画像を生成し表示する機能部である。上記関連付け情報は、任意のアイテム画像に対して任意のオーバーラップ画像を関連付けさせた情報であり、例えば作画エディタ装置5側で任意に作成されたものである(例えば画面データ22に含まれる情報である)。
【0073】
尚、例えば、アイテム生成部41とアイテム処理スケジュール部42とアイテム処理部43とは、本体プログラム21によって実現される。通信処理部44は、本体プログラム21と通信プログラム23とによって実現される。
【0074】
また、これら処理機能の処理実行の際には、上記画面データ22や図示のオーバーラップ画像データ47が用いられる。尚、オーバーラップ画像データ47は、実際には上記のように画面データ22に含まれているが、図では別途示しているだけと見做してよい。但し、この例に限らない。例えば予め全てのオーバーラップ画像が上記オーバーラップ画像データ47としてプログラマブル表示器1に格納されていてもよい。この例の場合には、例えば画面データ22には上記関連付けられたオーバーラップ画像の識別情報等が含まれている(尚、各オーバーラップ画像には予め識別用のIDが割り当てられている)。
【0075】
アイテム生成部41は、上記画面データ22等に基づいて、アイテムリスト46を生成する。これは、例えば、画面データ22の一部を抽出する形で生成する。
ここで、
図7(c)に、アイテムリスト46のデータ構成図を示す。
【0076】
図示の例のアイテムリスト46は、アイテムタイプ61、座標62、サイズ63、デバイス名64、アドレス65、“アイテムタイプ毎のデータ”66、オーバーラップ画像67の各データ項目より成る。オーバーラップ画像67以外は従来と同様と見做してよく、以下、簡単に説明する。
【0077】
アイテムタイプ61には、そのアイテムの種類(スイッチ、ランプ、数値表示等)を示すアイテム種別識別情報が格納される。
“アイテムタイプ毎のデータ”66には、そのアイテムの画像データ(アイテム画像;アイテムタイプがスイッチであれば何らかのスイッチの画像)等の付随情報等が格納される。このアイテム画像の画面上での表示位置と大きさを示すデータが、上記座標62、サイズ63に格納される。これらが、各アイテムの操作表示画面上での画像表示に係わるデータである。
【0078】
また、デバイス名64とアドレス65は、各アイテムに関するメモリ割当情報であり、上記割当メモリアドレスに相当する。つまり、デバイス名64が示すメモリにおけるアドレス65が示す記憶領域が、そのアイテムに割り当てられた領域(上記割当メモリ領域)である。この記憶領域に、例えばアイテムタイプ61がランプであれば、ランプの点灯/消灯を示すフラグデータ等が格納されることになる。例えばアイテムタイプ61が数値表示であれば、何らかの数値データ(例えば温度計測値やモータ回転数、圧力値等)がこの記憶領域に格納されることになる。
【0079】
アイテム処理スケジュール部42は、アイテム処理部43による各アイテム画像の表示状態更新処理等のスケジュール管理を行う。つまり、アイテム処理スケジュール部42は、例えば定期的にアイテム処理部43を呼び出して例えば後述する
図9の処理を実行させる(換言すれば、
図9の処理をサイクリックに実行させる)。
【0080】
アイテム処理部43は、上記アイテムリスト46や後述する共有メモリ45の格納データ等に基づいて、各アイテム画像をRAM13上に描画(展開)する。その際、アイテムの種類によっては上記取得データも一緒にRAM13上に描画(展開)する。ここまでは従来と略同様であってよいが、本手法では更に、オーバーラップ画像が関連付けられているアイテムに関しては、当該アイテム画像にオーバーラップ画像を合成(アルファブレンド等)する処理も行われる。
【0081】
尚、グラフィックコントローラ15が上記RAM13上の描画データをディスプレイ上に表示することで、上記操作表示画面が表示されることになる。
通信処理部44は、各接続機器4(4−1、4−2)毎に備えられる通信処理部44−1、44−1である。すなわち、図示の通信処理部44−1は、接続機器4−1に対応する通信ポートWAY1を使用して、通信ライン6を介して、接続機器4−1との通信を行って、そのメモリの所定領域(割当メモリ領域)の格納データを取得する。取得データは、共有メモリ45の所定領域に上書き格納する。
【0082】
同様に、図示の通信処理部44−2は、接続機器4−2に対応する通信ポートWAY2を使用して、通信ライン6を介して、接続機器4−2との通信を行って、そのメモリの所定領域(割当メモリ領域)の格納データを取得する。取得データは、共有メモリ45の所定領域に上書き格納する。
【0083】
尚、上記割当メモリ領域の格納データの取得処理や共有メモリへの格納処理自体は、従来と略同様であってよい。
図7(a)、(b)に、上記共有メモリ45の具体例を示す。
【0084】
図7(a)には共有メモリ45のデータ構造例、
図7(b)にはデータ格納例を示す。
図7(a)に示す例では、共有メモリ45の格納データ50は、ポート51、デバイス名52、アドレス53、データ54の各データ項目より成る。
【0085】
ポート51は、上記通信ポートの識別情報等であり、実質的には通信相手の接続機器4を識別する情報となる。デバイス52は、通信相手の接続機器4内のメモリデバイスの識別情報である。アドレス53は、デバイス52が示すメモリデバイスにおける所定の記憶領域のアドレスであり、データ54にはこの記憶領域から取得したデータが格納される。
【0086】
尚、ポート51とデバイス名52とアドレス53とが、各アイテムの上記“割当メモリアドレス”に相当すると見做してよい。つまり、
図7(b)に示す各レコードは、各アイテムに対応するものである。画面データ22等に含まれる各アイテム毎の上記割当メモリアドレスを、デバイス名52及びアドレス53に格納することで、
図7(b)に示す各レコードが生成される。尚、例えばデバイス名52等に基づいて該当するポート番号等が判別できるものとし、判別したポート番号等がポート51に格納されるものであってもよいが、この例に限らない。
【0087】
サイクリックな画面更新処理(
図9の処理等)の際には、各アイテム毎に、共有メモリ45における該当レコードの情報も参照することになる。
図8は、通信処理部44の処理フローチャート図である。
【0088】
例えば
図6の例では各通信処理部44−1、44−2が、各々、
図8の処理をサイクリックに(定周期で)実行するものである。
図8の処理例では、まず、共有メモリ45を参照して、自己が担当する接続機器4に係るメモリリスト70を生成する(ステップS1)。例えば、通信処理部44−1による処理の場合には、接続機器4−1に係るメモリリスト70を生成することになる。
【0089】
図10に、このメモリリスト70のデータ構成例を示す。
図示の例では、メモリリスト70は、デバイス名71、アドレス72、データ73、エラー情報74の各データ項目より成る。例えば上記通信処理部44−1の例の場合、共有メモリ45からポート51が“WAY1”であるレコードを全て抽出する。そして、抽出した各レコードのデバイス名52、アドレス53、データ54の情報を、上記デバイス名71、アドレス72、データ73に格納することで、上記接続機器4−1に係るメモリリスト70を生成することになる。尚、データ73とエラー情報74は、必ずしも必要ないものである。代わりに、処理済みか否かを示すフラグ情報が格納されるものであってもよい。
【0090】
その後は、生成したメモリリスト70を参照しながら、ステップS5の判定がNOとなるまで、ステップS2〜S5の処理を繰り返し実行する。
すなわち、メモリリスト70から未処理のレコードを取り出して(処理対象レコードとし)、このレコードの内容に基づくメモリ読込コマンドを生成して、このコマンドを自己が担当する接続機器4に通信ライン6を介して送信する(ステップS2)。そして、このコマンドに対する接続機器4からの応答待ちとなる(ステップS3)。このコマンドには、上記デバイス名71やアドレス72等のアクセス先を特定する情報(割当メモリアドレス)が含まれ、接続機器4はこの割当メモリアドレスが示す記憶領域(割当メモリ領域)からデータを読み出して、この読出しデータを返信する応答処理を行う。
【0091】
接続機器4からの応答があると、この応答に含まれる上記読出しデータを、上記共有メモリ45において処理対象レコードに相当するレコードにおける上記データ54の欄に格納する(ステップS4)。
【0092】
そして、メモリリスト70に未処理のレコードが残っているか否かをチェックし、残っている場合には(ステップS5,YES)ステップS2に戻り、残っていない場合には(ステップS5,NO)本処理を終了する。
【0093】
尚、
図8では割当メモリ領域からのデータ読出しに係る処理例を示すが、この例に限らない。アイテムがスイッチ等である場合には、割当メモリ領域へのデータ書込み処理が行われることになるが、これについては図示・説明は省略する。尚、書込みの場合、書込みデータが上記データ73のフィールドに格納されることになる。
【0094】
図9は、アイテム処理部43の処理フローチャート図である。
上記の通り、
図9の処理は、アイテム処理スケジュール部42の管理のもとでサイクリックに実行される。
【0095】
図9の処理例では、アイテム処理部43は、まず、アイテムリスト46の初期化処理を実行する(ステップS11)。これは、例えば、アイテムリスト46の全レコードの不図示のフラグ(処理済みか否かを示すフラグ)を‘0’(未処理)にする。その後は、後述するステップS19がNOとなるまで、ステップS12〜S19の処理を繰り返し実行する。
【0096】
すなわち、アイテムリスト46において未処理のレコード(上記不図示のフラグが‘0’(未処理)であるレコード)の中から任意のレコードを処理対象レコードとして選択する。そして、当該処理対象レコードのデバイス名64、アドレス65等を取得して(ステップS12)、これらを用いて共有メモリ45の該当レコードを検索してそのデータを取得する(ステップS13)。つまり、例えば、そのデバイス名52及びアドレス53が、上記取得したデバイス名64及びアドレス65と同一であるレコードが、上記該当レコードである。そして、該当レコードのデータ54(割当メモリ領域から取得したデータ等)を取得する(ステップS13)。
【0097】
そして、上記処理対象レコードの表示に係わる各データと、ステップS13で取得したデータ54等に基づいて、上記RAM13上に描画(展開)する処理を行う。尚、ここでは、数値表示アイテムについて描画する場合を例にして図示・説明する。
【0098】
すなわち、まず、処理対象レコードの“アイテムタイプ毎のデータ”66に基づいて、そのアイテムの所定の画像データ(アイテム画像)等を描画する(ステップS14)。これより、例えば図示のような矩形の枠が描画される(アイテム画像の一例)。
【0099】
続いて、データ54を上記アイテム画像に対応させて描画する(ステップS15)。例えば図示のように上記矩形の枠の内部に例えば“1234”等の数値が描画される。
そして、オーバーラップ画像が関連付けられているか否かを判定する(ステップS16)。これは、例えば、処理対象レコードのオーバーラップ画像67にデータ(ここではオーバーラップ画像自体とする)が格納されているか否かにより判定する。オーバーラップ画像がある場合には(ステップS16,YES)、このオーバーラップ画像を、上記アイテム画像と数値の描画領域にα(アルファ)ブレンドする合成処理を実行する(ステップS17)。
【0100】
これより、例えば図示のようなガラスが反射したような表現とすることができる。
上記の処理では、特に、ステップS14のアイテム画像の描画後に、このアイテム画像の描画領域にステップS15の数値描画を行った後に、これらの描画に対してオーバーラップ画像をαブレンドしている。つまり、「アイテム画像+数値」描画を背景描画とするオーバーラップ画像のαブレンド処理を行っている。これによって、上記
図4(b)に示すようなリアルな表示が行えるようになる。換言すれば、従来のようなガラス上に数値が表示されるように見える表示とはならない。
【0101】
尚、既に述べた通り、グラフィックコントローラ15が、RAM13上の描画データ等をディスプレイ上に表示させることで、上記描画データに応じた操作表示画面が表示されることになる。
【0102】
上記ステップS14,S15の処理、場合によっては更にステップS17の処理を実行完了したら、アイテムリスト46の処理対象レコードの上記不図示のフラグを‘1’(処理済)に変更する(ステップS18)。
【0103】
そして、アイテムリスト46に未処理のレコードが残っていれば(ステップS19,YES)ステップS12に戻り、全て処理済みであれば(ステップS19,NO)本処理を終了する。
【0104】
従来では、予め逐一、特定の表現のアイテム画像(例えばガラスが反射したような表現の画像)を作成・登録しておく必要があった。これに対して、本手法では、複数のアイテムに適用可能なオーバーラップ画像を、予め作成・登録しておけば済むようになり、開発の手間が軽減できる。更に、本手法では、従来よりもリアルな表現(リアルな質感)のアイテム表示を行うことができ、デザイン性能を向上させることができる。
【0105】
図11(a)、(b)は、αブレンド処理について説明する為の図である。
アルファブレンド処理自体は、既存の処理であり、以下、簡単に説明する。
まず、この場合の画像データは、RGBデータではなく、RGBAデータである。
【0106】
図11(a)に、RGBAデータのデータフォーマットを示す。
一般的に、透明度を持つ画像データは、1画素当たり、
図11(a)に示すようなデータフォーマットの色情報を保持する。
【0107】
図11(a)に示すように、透明度を示すA、赤色を示すR、緑色を示すG、青色を示すBは、それぞれ8ビット情報(十進数表記で0〜255)より成っている。
そして、図示のデータ例では、R,G,Bがそれぞれ全ビットが‘1’となっており、これは白色を意味するものである。一方、Aは、十進数表記で127のデータ値となっており、これは上記255の約半分(50%)である。従って、図示のデータ例は、透明度50%の白色を意味するものとなる。
【0108】
上記αブレンドによる合成処理は、この様なRGBAデータである上記アイテム画像及びオーバーラップ画像67を用いて行われる。
透明度を持つ画像データのαブレンドは、一般的に
図11(b)に示すような下記の計算を、画像の各点(各画素)毎に行う。
【0109】
out
A=src
A+dst
A(1−src
A)
out
RGB=(src
RGB×src
A+dst
RGB×dst
A(1−src
A)/out
A
out
A=0 ⇒ out
RGB=0
但し、out
X;出力画像(合成画像)
src
X;ブレンド画像(前景;本例ではオーバーラップ画像)
dst
X;被ブレンド画像(背景;本例ではアイテム画像)
(尚、xは、A(透明度),R(赤),G(緑),B(青)を表す。例えば、out
Aは、出力画像(合成画像)における透明度を意味する)
また、本手法によれば、例えば
図12に示すようなアイテム表示も実現できる。
【0110】
例えば、
図12に示す既存のアイテム画像があったものとする。これは、単なる棒グラフを表示するものであり、取得データの値に応じて棒の長さが変化するものである。
この様な既存のアイテム画像に対して、図示のオーバーラップ画像を透過的に合成することで、図示のような合成画像を表示させることができる。すなわち、砂時計のような表現とすることができる。尚、図示のオーバーラップ画像は、例えば砂時計のガラス及びガラス内の空間(砂が入る空間)に相当する部分は、全て完全に透明とすると共に、それ以外の部分は全て例えば白一色等としている。これによって、棒グラフの表示は、ガラス内の空間の部分は見えるが、それ以外は見えなくなることで、図示のような合成画像が表示されることになる。
【0111】
以上説明したように、本例のプログラマブルコントローラシステム、そのプログラマブル表示器1、作画エディタ装置5等によれば、特定の表現のアイテム画像の表示を、予め作成される特定の表現用の画像を、各アイテム画像に対して所定のブレンド率で合成することで実現させることができる。これより、作画工数/時間の削減を実現できる。
【0112】
更に、従来よりもリアルな(リアルな質感の)表現のアイテム表示を実現でき、アイテム表示に係るデザイン性能の向上を実現できる。