(58)【調査した分野】(Int.Cl.,DB名)
前記アイテムデータ処理手段は、前記外部メモリ領域からの読出しデータが、前回の読出しデータと同一である場合には、前記演算処理を実行しないことを特徴とする請求項1記載のプログラマブルコントローラシステム。
【発明を実施するための最良の形態】
【0022】
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラマブル表示器1を含むシステム全体の概略構成図である。
尚、
図1に示す構成は、一例であり、この例に限らない。例えば、必ずしもプログラマブル表示器1が作画エディタ装置5に接続された構成でなくてもよく、プログラマブル表示器1と作画エディタ装置5とが別々に存在していてもよい。プログラマブル表示器1が、本手法による画面データ(シンボル情報含む)等を格納して、この画面データ(シンボル情報含む)等を用いてプログラマブル表示器用の画面の表示等を行うものであれば、何でも良い。
【0023】
図1に示すプログラマブルコントローラシステムは、各種接続機器4と、通信ライン6を介して各種接続機器4に接続するプログラマブル表示器1とを有する。更に、プログラマブル表示器1が、通信ライン3を介して作画エディタ装置5に接続された構成となっている。
【0024】
プログラマブル表示器1には、複数の通信インタフェース2(通信ポート)が備えられており、各通信インタフェース2に接続された通信ライン3/通信ライン6によって各種接続機器4や作画エディタ装置5と接続されている。
【0025】
プログラマブル表示器1は、既存の機能としては、上記背景技術で説明したように、画面データに基づいて操作表示画面を表示すると共に、この画面上の各アイテム毎に接続機器4のメモリデバイス(外部メモリ)の所定の記憶領域(割当メモリ領域)からデータを取得してその表示内容を制御する。
【0026】
作画エディタ装置5は、上記背景技術における支援装置に相当するものであり、上記操作表示画面をプログラマブル表示器1で表示させる為のデータ等(画面データ)を、ユーザが任意に作成できるように支援する機能を有する。
【0027】
従来と同様に本例でも、作画エディタ装置5には予め各種アイテム画像が登録されており、ユーザは所望のアイテム画像を選択して所望の位置に配置させる作業を繰り返して、上記画面データの作成を行う。尚、作画エディタ装置5は、プログラマブル表示器用の画面(画面データ)の作成を支援するための支援装置の一例と見做してよい。更に、ユーザが、上記画面上に配置されるアイテムに関して、接続機器4内のメモリデバイスに係る所望の記憶領域を、割当メモリ領域として設定する場合もある。
【0028】
上記画面データには、上記画面上に配置される各アイテム毎の所定の情報(アイテム情報というものとする;例えば上記アイテム画像、配置位置座標、上記割当メモリ領域のアドレス(割当メモリアドレス)等)が含まれる。
【0029】
以上、本例の作画エディタ装置5に関して、従来と略同様の機能について述べた。
ここで、本手法では、上記割当メモリ領域が後述するシンボル情報に登録される場合もある。この場合、上記アイテム情報には該当するシンボル情報の識別情報(後述するシンボル名称やシンボルIDなど)等が含まれる。
【0030】
更に、従来では、上述した演算処理が必要なアイテムに関しては、そのアイテム情報に演算処理が登録されたが、本手法ではアイテム情報に演算処理が登録されることはない。本手法では、演算処理は、上記シンボル情報に登録される。
【0031】
上記シンボル情報は、上記画面データに付加されてプログラマブル表示器1へダウンロードされる。
プログラマブル表示器1は、上述した画面データ(シンボル情報含む)等に基づいて、上記操作表示画面の表示を行う。但し、上記演算処理は、接続機器4との通信処理に伴って実行されて、演算結果を格納しておく。操作表示画面の表示処理の際には(演算処理は実行しないで)演算結果を用いて表示を行う。詳しくは後述する。
【0032】
図2は、本例のプログラマブル表示器1の構成例である。
図示のプログラマブル表示器1は、表示操作制御装置10と、タッチパネル18、ディスプレイ19、上記通信インタフェース2等を有する。
【0033】
表示操作制御装置10は、CPU11、ROM12(フラッシュメモリ等)、RAM13、通信コントローラ14、グラフィックコントローラ15、タッチパネルコントローラ16等より成り、これらがバス17に接続されている。
【0034】
CPU11は、表示操作制御装置10全体を制御する中央処理装置(演算プロセッサ)である。CPU11は、ROM12に予め格納されているプログラム(例えば後述する本体プログラム21等)を実行することで、所定の演算動作(処理)を行う。各種の演算結果は、例えばRAM13やROM12に格納される。
【0035】
また、ROM12には、後述する画面データ22やシンボル情報51等が格納されている。尚、その意味で、ROM12は、画面データ記憶部あるいはシンボル情報記憶部と言うこともできる。
【0036】
上記背景技術で説明したように、画面データ22は、例えば上述したスイッチ、ランプ等の各アイテム毎に、そのアイテムの画像や表示位置座標や大きさ等の表示に係わるデータ等を有する。また、画面データ22は、従来と同様に、接続機器4のメモリへのアクセスに係わるデータ(割当メモリアドレス等)を有するものであってもよい。但し、本例では、この様な接続機器4のメモリへのアクセスに係わるデータは、画面データ22ではなくシンボル情報51に含まれる場合もある。尚、割当メモリアドレスは、上記割当メモリ領域のアドレスである。
【0037】
尚、割当メモリ領域は、上記“外部メモリ”(接続機器内のメモリデバイス)の記憶領域という点から“外部メモリ領域”と呼んでも良い。特に、シンボル情報51の場合には、“割当メモリ領域”よりは“外部メモリ領域”と呼ぶべきものである。なぜなら、シンボル情報51の場合「各アイテムに予め割り当てられるメモリ領域」ではないからである。
【0038】
但し、シンボルの“外部メモリ領域”は、そのシンボルにアイテムが関連付けられることによって、実質的にこのアイテムの割当メモリ領域に相当するものと見做せるものとなる。
【0039】
上記CPU11の処理には、例えば定期的に上記割当メモリ領域の格納データを取得する処理等が含まれる。この取得データは、例えば後述する共有メモリ53に一時的に格納される。このデータ取得・格納処理は、各アイテム毎に、画面データ22に基づいて(場合によってはシンボル情報51に基づいて)、実行される。また、アイテムによっては、シンボル情報51に基づいて、取得データに対する所定の演算処理が実行される場合もある。この演算処理結果は後述する演算結果格納メモリ54に格納される。
【0040】
尚、共有メモリ53や演算結果格納メモリ54は、上記RAM13やROM12の記憶領域の一部であってもよいし、不図示の他のメモリであってもよい。
また、上記CPU11の処理によって、例えば上記画面データ22や上記取得データや上記演算処理結果等に基づく表示対象データが、例えばRAM13(あるいは不図示のビデオRAM)上に展開(描画)される。この描画に基づいてグラフィックコントローラ15が、ディスプレイ19上に上述した操作表示画面等を表示する。
【0041】
ディスプレイ19は、例えば液晶パネル等より成り、この液晶パネル上に重ねるようにしてタッチパネル18が設けられる。ディスプレイ19上には、基本的には、複数のアイテム画像が所定位置に配置されて成る上記操作表示画面が表示される。
【0042】
また、通信コントローラ14は、通信インタフェース2を介して、不図示のPLC本体等や温調装置等である接続機器4や作画エディタ装置5との通信(データ送受信等)を行う。
【0043】
オペレータ等によるタッチパネル18上での押圧操作(タッチ)位置の検知結果は、タッチパネルコントローラ16を介してCPU11等に取り込まれて解析される。例えば各アイテムの上記表示位置座標や大きさのデータ等に基づいて、解析することになる。例えば、上記スイッチの画像の表示位置をオペレータ等がタッチすると、CPU11等は、このスイッチに対する操作が行われたものと解析することになる。
【0044】
図3に、上記本システムのソフトウェア構成図を示す。
作画エディタ装置5は、作画エディタ31を有する。作画エディタ31は、ユーザが、任意のプログラマブル表示器用の画面(操作表示画面)を作成するのを支援する機能を有する。この支援機能に係る既存の機能として、予め登録された各種アイテムのなかから所望の各アイテムを選択させて、これを画面上の所望の位置に配置させる機能がある。更に、ユーザに、当該画面上に配置させたアイテムに任意の接続機器4の任意のメモリデバイスのアドレス(割当メモリアドレス)を設定させる既存機能もある。
【0045】
そして、本例の作画エディタ31は、上記既存機能に加えて、図示のシンボル情報登録部31a、シンボル関連付部31bの各種機能を有する。
シンボル情報登録部31aは、例えば後述する
図4(a)〜(e)の各種ウィンドウを表示する等して、ユーザに所望のシンボルの情報を登録させる機能を有する。シンボル情報は、後に
図4(a)等で説明するように、シンボル名称、シンボルタイプ(「アドレス」または「演算」)、アドレス等である。この“アドレス”は、上記割当メモリアドレスに相当するものであるが、更に演算式が含まれる場合もある。尚、シンボル情報登録部31aはよって作成されたシンボル情報は、シンボル情報記憶部31cに記憶される。
【0046】
シンボル関連付部31bは、ユーザに、上記画面上に配置させた任意のアイテムに任意のシンボルを関連付けさせる機能部である。この関連付けは、例えば上記シンボル名称を用いて行うが、この例に限らない。尚、シンボルが関連付けられるアイテムについては、上記割当メモリアドレスを設定させる必要はないし、演算式を逐一設定する必要もない。
【0047】
また、1つのシンボルに複数のアイテムを関連付けても構わない。これによって、例えば割当メモリアドレスの設定の手間も軽減できる。
プログラマブル表示器1においては、本体プログラム21、画面データ22、通信プログラム23等の各種プログラム/データが、例えば上記ROM12(フラッシュメモリ等)に格納されている。これらのプログラム/データ等をCPU11が読出し・実行/参照等することで、プログラマブル表示器用の上記操作表示画面等の表示制御等が行なわれる。
【0048】
この操作表示画面は、上述した数値表示、ランプ、スイッチ等の各種アイテムの画像表示から成り、各アイテムの表示内容は、例えば各接続機器4内のメモリデバイスの割当メモリ領域から取得したデータ(上記取得データ)を反映させる形で随時更新される。尚、以下の説明では上記接続機器4内のメモリデバイスを“外部メモリ”と呼ぶ場合もあるものとする。尚、これより、後述する共有メモリ53や演算結果格納メモリ54等は、“内部メモリ”と呼んでも良い。
【0049】
基本的には、CPU11が、本体プログラム21や通信プログラム23に基づいて、上記取得データの取得・格納処理や、演算処理や、操作表示画面の表示制御処理などを行う。
画面データ22やシンボル情報51や取得データや演算処理結果等を用いることで、上記操作表示画面の表示制御処理が行われる。この様に、操作表示画面上の各アイテム画像の表示内容(温度等の数値表示やランプの点灯/消灯など)は、取得データや演算処理結果等に基づいて、随時、更新等されるものである。
【0050】
上記画面データ22(シンボル情報51が付加される)は、例えば予め作画エディタ装置5側で任意に作成された画面データファイル32(シンボル情報51が付加される)が、プログラマブル表示器1にダウンロードされて格納されたものである。また、上記通信プログラム23も、例えば予め作画エディタ装置5側に格納されていた通信プログラムファイル33群の一部が、プログラマブル表示器1にダウンロードされて格納されたものである。
【0051】
上述したように、基本的には、CPU11が、本体プログラム21、通信プログラム23、画面データ22、シンボル情報51、取得データ、当該取得データに基づく演算処理結果等に基づいて、上記操作表示画面の表示制御を行う。
【0052】
例えば、数値表示アイテムに関しては、定期的に、当該数値表示アイテムの割当メモリ領域からデータを読み出して、この取得データに応じて、あるいは当該取得データに基づく演算処理結果に応じて、当該数値表示アイテムの表示内容を更新する。
【0053】
プログラマブル表示器1の通信プログラム23は、通信ライン6を介して接続機器4と通信を行うためのプログラムである。通常、接続機器4の機種毎等に固有の通信プロトコル(通信規定)を持ち、この通信規定に従って、プログラマブル表示器1−接続機器4間での通信を行う。そのため、通信プログラム23は、各接続機器4の機種毎等に開発が必要となる。尚、当然、CPU11などが通信プログラム23を実行することで、接続機器4との通信処理が実現される。
【0054】
尚、プログラマブル表示器1−作画エディタ装置5間の通信は、例えば本体プログラム21と作画エディタ31とによって行う(通信機能が作画エディタ31に組み込まれている)。これについては特に関係ないので、図示・説明しない。PLC本体等である接続機器4は、様々なメーカー・機種があり、各メーカー/機種毎に独自の通信プログラムがあり、上記通信プログラム23は、接続機器4のメーカー/機種に応じて場合によっては複数種類備えられるものとなる。
【0055】
通信プログラム23は、通常、作画エディタ装置5内の不図示のHD(ハードディスク)内に、複数の通信プログラムファイル33(各機種毎に開発済の複数の通信プログラム)として予め記憶されている。そして、作画エディタ装置5は、作画エディタ31によりユーザが任意の接続機器4を選択・指定すると、該選択された接続機器4に応じた通信プログラムファイル33を、プログラマブル表示器1に転送して、上記通信プログラム23として記憶させる。
【0056】
本例のプログラマブル表示器1の各種処理機能は、基本的には、CPU11が、本体プログラム21や通信プログラム23を実行し、それによる処理中に必要な各種データを参照することで実現される。但し、取得データに基づく演算処理は、シンボル情報51に含まれる演算を実行することになる。
【0057】
また、この演算処理は、表示更新に係る処理中にではなく、データ取得(接続機器4との通信など)に係る処理中に実行されて、演算結果が後述する演算結果格納メモリ54に格納される。上記表示更新に係る処理は、演算結果格納メモリ54にアクセスして演算結果を取得して表示させる。これより、表示更新に係る処理毎に逐演算処理を実行する必要はなく、処理効率が向上する。詳しくは後述する。
【0058】
ここで、作画エディタ31は、上記シンボル情報をユーザ(開発者等)に任意に設定させる機能を有する。
図4に、シンボル情報の設定作業に係る各種ウィンドウ例を示す。
【0059】
図4(a)は、シンボル情報登録ウィンドウ34(メイン設定ウィンドウ)の一例である。ユーザが、例えばシンボル情報登録ウィンドウ34上の任意のアイテムのレコードの図示の“シンボルタイプ”の欄や“アドレス”の欄を指定(クリック等)すると、
図4(b)〜(d)に示す各種ウィンドウが表示される。これによって、ユーザによる設定作業を支援する。また、
図4(d)のウィンドウ37上の所定の操作によって
図4(e)のウィンドウ38が表示される。
【0060】
ユーザは、上記シンボル情報登録ウィンドウ34上で、各シンボル毎の図示のシンボル名称、シンボルタイプ、アドレス等の各種シンボル情報を任意に設定できる。尚、図示のシンボルIDは、各シンボルの識別用のIDであるが、本例では新規登録毎に順次、図示の0、1、2、・・・等のシリアル番号が割り当てられるものとする。
【0061】
ユーザは、各シンボル毎に、図示の“シンボル名称”の欄に所望の名称を設定できる。また、そのシンボルのタイプ(データ取得のみか演算も行うか等)を設定できる。これは、ユーザが図示の“シンボルタイプ”の欄を指定すると、例えば
図4(b)に示すシンボルタイプ選択ウィンドウ35が表示される。これより、ユーザは、シンボルタイプ選択ウィンドウ35上で、図示の「アドレス」と「演算」の何れか一方を選択する。データ取得のみの場合は「アドレス」を選択し、演算も行う場合には「演算」を選択する。
【0062】
また、ユーザは、シンボル情報登録ウィンドウ34上の“アドレス”の欄において、上記割当メモリアドレスに相当するアドレス等を設定できる。その際、シンボルタイプが「アドレス」のシンボルに関しては、
図4(c)に示すアドレス選択ウィンドウ36が表示される。これより、ユーザは、例えば所望の接続機器、その所望のメモリデバイス、当該メモリデバイスにおける所望の記憶領域のアドレスを、アドレス選択ウィンドウ36上で設定できる。
【0063】
尚、
図4(c)に示すように、所望の接続機器(ここでは“PLC1メモリ”)が設定されてもよく、この場合にはこの接続機器設定情報もアイテムリスト52またはシンボル情報51や共有メモリ53等に含まれることになる。但し、
図6(a)、(b)や
図7(a)に示す例や本説明では、基本的に、接続機器の設定情報については省略して示すものとする。但し、省略しているだけであり、実際には、デバイス名74、82や被演算デバイス名77には、メモリデバイス名だけでなく、上記設定された接続機器の識別情報(接続機器名とする)も含まれていてもよい。
【0064】
一方、シンボルタイプが「演算」のシンボル(「演算」タイプのシンボル)に関しては、
図4(d)に示す演算選択ウィンドウ37が表示される。これより、ユーザは、演算選択ウィンドウ37上で所望の演算式等を設定できる。この演算式は、例えば上記“取得データ”に基づく演算となる。これより、図示の“演算メモリ”の欄には上記割当メモリアドレスに相当するアドレス等が設定される。また、図示の“演算モード”の欄には、加減、減算等の演算が設定される。尚、これは例えば
図4(e)に示す演算モード選択ウィンドウ38上で選択できるものであってもよい。更に、演算選択ウィンドウ37上の図示の“被演算メモリ”の欄には、例えば100や1000等の数値が任意に設定できるが、上記割当メモリアドレス以外の他のアドレスも設定できる。
【0065】
図示の演算選択ウィンドウ37の例では、メモリデバイスDのアドレス02100を意味する「D02100」が“演算メモリ”に設定されると共に、「D00300」が“被演算メモリ”に設定される。また、“演算モード”は加算となっている。つまり、「D02100」の格納データに「D00300」の格納データを加算するという演算式が設定されている。
【0066】
上述したようにユーザ等によって任意に設定されたシンボル情報(例えば
図4(a)に示す内容を含む)は、作画エディタ装置5の記憶装置に記憶され、以下に
図4(f)で説明する関連付け作業の際に参照される。また、シンボル情報は、画面データと一緒にプログラマブル表示器1にダウンロードされる。
【0067】
図4(f)は、アイテムに対するシンボルの関連付け作業について説明する為の図である。
作画エディタ装置5上で任意の操作表示画面作成のためにユーザが画面上に所望の複数のアイテム画像を配置する等した状態で、任意のアイテム画像を選択指定すると、このアイテムに対する各種設定を行えるウィンドウが表示される。このウィンドウ上にはこのアイテムに任意のシンボルを関連付ける為の図示のシンボル情報関連付ウィンドウ39も表示される。
【0068】
シンボル情報関連付ウィンドウ39上では、例えば図示のようにシンボル名称一覧が表示され、ユーザがこの一覧中から所望のシンボル名称を選択すると、このシンボルがこのアイテムに関連付けられる。例えば、画面データファイル32におけるこのアイテムの情報(画像や配置座標等)として更に上記選択されたシンボルの名称あるいはIDが加わる。
【0069】
ここで、画面データ22において、シンボルが関連付けられたアイテムに関しては、割当メモリアドレスや演算式等の情報は無く、代わりに上記関連付けられたシンボルの名称等がある。一方、シンボル情報51には、
図4(a)に示す“アドレス”の欄に設定された情報(割当メモリアドレスまたは割当メモリアドレス等を用いた演算式等)が含まれる。これより、任意のシンボルが関連付けられたアイテムに関しては、当該関連付けられたシンボルの上記設定情報等を用いて、割当メモリ領域へのアクセスや演算処理等が行われることになる。
【0070】
尚、アイテムとシンボルとの対応付けは、1対1に限らず、例えば多対1であっても構わない。例えば、同一のアドレスの格納データに基づいて、異なる表示形態(例えば数値表示とグラフ表示)する場合もあるので、1つのシンボルに対して例えば数値表示アイテムとグラフ表示アイテムとを関連付けるものであってもよい。これによって、割当メモリアドレス等の設定の手間を軽減できる。
【0071】
図5は、本例のプログラマブル表示器の処理機能図である。
CPU11が、例えば上記ROM12に記憶されている所定のプログラム(例えば上記本体プログラム21、通信プログラム23等)を実行することにより、例えば
図5の点線内に示す各種処理機能部が実現される。すなわち、図示のアイテム生成部41、アイテム処理スケジュール部42、アイテム処理部43、通信処理部44(44−1、44−2等)、共有メモリ生成処理部45、メモリ読込処理部46、メモリ書込処理部47等の各種処理機能部の下記の処理機能が実現される。
【0072】
また、プログラマブル表示器1は、上記の通り、シンボル情報51が付加された画面データ22を保持している。また、プログラマブル表示器1内には、図示の共有メモリ53、演算結果格納メモリ54の各メモリ領域が存在している。
【0073】
尚、例えば、アイテム生成部41とアイテム処理スケジュール部42とアイテム処理部43と共有メモリ生成処理部45とメモリ読込処理部46とメモリ書込処理部47は、本体プログラム21によって実現される。通信処理部44は、本体プログラム21と通信プログラム23とによって実現される。また、上記各種処理機能の処理実行の際には、上記画面データ22やシンボル情報51等が参照される場合がある。
【0074】
アイテム生成部41は、上記画面データ22等に基づいて、アイテムリスト52を生成する。これは、例えば、画面データ22の一部を抽出する形で生成する(更に後述する処理済みフラグ68を追加してもよい)。
【0075】
ここで、
図6(a)に、アイテムリスト52のデータ構成図を示す。
図示の例のアイテムリスト52は、アイテムタイプ61、座標62、サイズ63、デバイス名64、アドレス65、“アイテムタイプ毎のデータ”66、シンボル情報67、処理済みフラグ68の各データ項目より成る。尚、詳しくは後述するが、シンボル情報67は、シンボルが関連付けられたアイテムの場合のみ登録される。シンボル情報67以外は従来と同様と見做してよく、以下、簡単に説明する。
【0076】
アイテムタイプ61には、そのアイテムの種類(スイッチ、ランプ、数値表示等)を示すアイテム種別識別情報が格納される。
“アイテムタイプ毎のデータ”66には、そのアイテムの画像データ(アイテム画像;アイテムタイプがスイッチであれば何らかのスイッチの画像)等の付随情報等が格納される。このアイテム画像の画面上での表示位置と大きさを示すデータが、上記座標62、サイズ63に格納される。これらが、各アイテムの操作表示画面上での画像表示に係わるデータである。
【0077】
また、デバイス名64とアドレス65は、各アイテムに関するメモリ割当情報であり、上記割当メモリアドレスに相当する。つまり、デバイス名64が示すメモリデバイスにおけるアドレス65が示す記憶領域が、そのアイテムに割り当てられた領域(上記割当メモリ領域)である。尚、デバイス名64が示すメモリデバイスは、接続機器4内のメモリデバイスである。
【0078】
ここで、シンボルが関連付けられているアイテムの場合、基本的には、シンボル情報67にはデータがある一方で、デバイス名64とアドレス65にはデータが無いことになる。その逆に、シンボルが関連付けられていないアイテムの場合、基本的には、シンボル情報67にはデータが無い一方で、デバイス名64とアドレス65にはデータがあることになる。
【0079】
シンボル情報67には、そのアイテムに関連付けられたシンボル(例えば上記
図4(f)で選択されたシンボル)を示す情報(シンボル名称やシンボルID等)が格納される。尚、シンボル名称やシンボルIDに限らず、アイテムに関連付けられたシンボルを特定できる情報であれば何でも良い。また、シンボル情報67には、更にアイテムタイプ(「アドレス」か「演算」か)が格納されるものであってもよい。
【0080】
また、
図6(b)に、シンボル情報51のデータ構成図を示す。
図示の例のシンボル情報51は、シンボルID71、シンボル名称72、シンボルタイプ73、デバイス名74、アドレス75、演算タイプ76、被演算デバイス名77、被演算アドレス78の各データ項目より成る。
【0081】
シンボルID71は、各シンボルの識別用IDであり、例えば
図4(a)に示す“シンボルID”のように新規シンボル登録毎に割り当てられる通番等であるが、この例に限らない。
【0082】
シンボル名称72は、各シンボルの名称であり、例えば
図4(a)でユーザが任意に設定した名称である。
シンボルタイプ73には、例えば
図4(a)で説明した「アドレス」と「演算」の何れかが格納される(例えば
図4(b)のシンボルタイプ選択ウィンドウ35上での選択結果が格納される)。
【0083】
シンボルタイプ73が「アドレス」の場合には、デバイス名74とアドレス75には、例えば
図4(a)や
図4(c)のウィンドウ上で設定されたメモリデバイス名とアドレスが格納される。しかし、演算タイプ76と被演算デバイス名77と被演算アドレス78にはデータは格納されない。
【0084】
一方、シンボルタイプ73が「演算」の場合には、デバイス名74とアドレス75には、例えば
図4(d)の“演算メモリ”の欄に設定されたメモリデバイス名とアドレスが格納される。更に、被演算デバイス名77、被演算アドレス78には、
図4(d)の“被演算メモリ”の欄に設定されたメモリデバイス名とアドレスが格納される。但し、
図4(d)の“被演算メモリ”の欄に任意の数値(例えば100のように、メモリデバイス名(例えばD)ではないもの)が設定された場合には、被演算デバイス名77にはデータはなく、被演算アドレス78に設定値が格納される。
【0085】
尚、これより例えば、通信処理部44による後述する処理の際には、被演算デバイス名77にデータがある場合には被演算デバイス名77と被演算アドレス78とに基づくデータ取得処理を行う。しかし、被演算デバイス名77にデータが無い場合には、被演算デバイス名77と被演算アドレス78とに基づくデータ取得処理は行わない。被演算デバイス名77にデータが無い場合には、被演算アドレス78の値をそのまま用いて演算を行う。更に、演算タイプ76には、
図4(d)のウィンドウ上の“演算モード”の欄に設定された加算、減算等の演算式が格納される。
【0086】
尚、既に述べたように、デバイス名74や被演算デバイス名77には、メモリデバイス名だけでなく更に上述した接続機器名等が含まれていても良い。また、尚、メモリデバイス名は、名称に限らず、何らかのメモリデバイス識別用の情報であってよい。
【0087】
後にプログラマブル表示器1が、シンボル情報51に基づいて割当メモリ領域へのアクセス(あるいは更に該アクセス結果に基づく演算)を行う場合には、例えば下記のような処理となる。
【0088】
シンボルタイプ73を参照して、「アドレス」と「演算」の何れであるかを認識する。
シンボルタイプ73が「アドレス」である場合には、デバイス名74とアドレス75によって示される割当メモリ領域の格納データを取得する。
【0089】
シンボルタイプ73が「演算」である場合には、デバイス名74とアドレス75によって示される割当メモリ領域の格納データを取得すると共に、被演算デバイス名77と被演算アドレス78によって示されるメモリアドレスの格納データを被演算用として取得する。そして、これら取得した2つのデータを用いて演算タイプ76が示す演算を実行する。
【0090】
アイテム処理スケジュール部42は、アイテム処理部43による各アイテム画像の表示状態更新処理等のスケジュール管理を行う。つまり、アイテム処理スケジュール部42は、例えば定期的にアイテム処理部43を呼び出して例えば後述する
図9の処理を実行させる(換言すれば、
図9の処理をサイクリックに実行させる)。
【0091】
アイテム処理部43は、上記アイテムリスト52や後述する共有メモリ53や演算結果格納メモリ54等の格納データ等に基づいて、各アイテム毎に、その画像の表示内容の更新等に係わる処理を実行する。その際、手法では、これらメモリ53,54からのデータ読出し処理は、メモリ読込処理部46が実行する。但し、メモリ読込処理部46はアイテム処理部43の機能の一部と見做してもよい。本説明では、基本的には、メモリ読込処理部46はアイテム処理部43の機能の一部として説明する。これより、後述する
図9のアイテム処理部43の処理フローチャート中にメモリ読込処理部46の処理も含まれている。
【0092】
尚、アイテム処理部43(メモリ読込処理部46含む)を、画面表示部と呼ぶ場合もあるものする。
メモリ読込処理部46は、各アイテム毎に該当するデータを読み出すが、これはアイテムによって、共有メモリ53から読み出す場合もあれば演算結果格納メモリ54から読み出す場合もある。
【0093】
共有メモリ生成処理部45は、アイテムリスト52やシンボル情報51等に基づいて、共有メモリ53に各アイテム毎のデータ格納領域(レコード)を生成する。
ここで、共有メモリ53と演算結果格納メモリ54について説明しておく。
【0094】
図7(a)に共有メモリ53の具体例を示し、
図7(b)に演算結果格納メモリ54の具体例を示す。
図7(a)に示す例の共有メモリ53は、ポート81、デバイス名82、アドレス83、データ84、“演算シンボルへの関連付け情報”85の各データ項目より成る。尚、これらのうち、“演算シンボルへの関連付け情報”85以外のデータ項目は、従来と略同様であっても構わない。よって、以下、簡単に説明する。
【0095】
ポート81は、上記通信ポートの識別情報(通信ポート番号とする)であり、実質的には通信相手の接続機器4を識別する情報となる。例えば上記デバイス名64(74)に含まれる上記接続機器名に基づいて、この接続機器に対応する通信ポート番号が判別できるようになっている(不図示の接続機器−通信ポート番号対応テーブル等が、予め登録されている)。
【0096】
デバイス82は、通信相手の接続機器4内のメモリデバイス(外部メモリ)の識別情報である。アドレス83は、デバイス82が示す外部メモリにおける所定の記憶領域のアドレスであり、データ84にはこの記憶領域から取得したデータが格納される。
【0097】
共有メモリ生成処理部45は、各アイテム毎に、上記判別した通信ポート番号をポート81に格納する。また、デバイス名82とアドレス83に関しては、下記のようにデータ格納することによって、上述した各アイテム毎のデータ格納領域(レコード)が生成される。
【0098】
例えば
図7(a)の例の場合、共有メモリ生成処理部45は、例えば、アイテムリスト52の各アイテムの情報毎に、シンボル情報67にデータが無い場合にはそのデバイス名64、アドレス65を、共有メモリ53のデバイス名82、アドレス83に格納する。
【0099】
一方、シンボル情報67にデータがあるアイテムの場合には、当該シンボル情報67を用いてシンボル情報51を検索して該当レコードを認識し、この該当レコードのデバイス名74、アドレス75を、共有メモリ53のデバイス名82、アドレス83に格納する。
【0100】
更に、シンボルタイプ73が「演算」である場合には、そのシンボルID71を“演算シンボルへの関連付け情報”85に格納する。換言すれば、“演算シンボルへの関連付け情報”85にデータが格納されるのは、「演算」タイプのシンボルに関連付けられたアイテムのみである。
【0101】
図8(b)に示す例の演算結果格納メモリ54は、シンボルID91に対応付けて演算結果92が格納されている。
「演算」タイプのシンボルに関連付けられたアイテムに関する割当メモリ領域からのデータ取得処理の際には、演算処理が実行され、この演算処理結果が上記演算結果92に格納されることになる。そして、この様なアイテムに関しては、メモリ読込処理部46は、演算結果92のデータを取得することになる。
【0102】
以下、メモリ読込処理部46について更に詳しく説明する。
メモリ読込処理部46は、まずアイテムリスト52を参照して、各アイテム毎に、そのアイテムがシンボルに関連付けられているか否かを判定する。本例では上記シンボル情報67にデータがある場合には、シンボルに関連付けられていると判定する。シンボルに関連付けられていないアイテムに関しては、上記デバイス名64とアドレス65にデータがあるはずであるので、これらに基づいて共有メモリ53の該当レコードのデータ84を読出す。
【0103】
一方、シンボルに関連付けられているアイテムに関しては、上記シンボル情報67を用いてシンボル情報51を検索して該当レコードを参照する。該当レコードにおける上記シンボルタイプ73が「アドレス」の場合、そのデバイス名74とアドレス75に基づいて共有メモリ53の該当レコードのデータ84を読出す。
【0104】
一方、該当レコードにおける上記シンボルタイプ73が「演算」の場合、そのシンボルID71に基づいて演算結果格納メモリ54から演算結果を読み出す。このように、本手法では、アイテム処理部43は、表示更新毎に逐一演算処理を実行する必要はなく、処理負荷が軽減される。演算処理は、後述するように通信処理部44が通信処理(割当メモリ領域からのデータ取得処理)の際に実行する。
【0105】
また、アイテム処理部43は、各アイテム画像をRAM13上に描画(展開)する。その際、アイテムの種類によっては上記取得データも一緒にRAM13上に描画(展開)する。これによって、グラフィックコントローラ15が当該描画データをディスプレイ上に表示することで、上記操作表示画面が表示されることになる。この描画データは、アイテム処理部43によって例えば後述する
図9の処理実行毎に随時更新される。
【0106】
通信処理部44は、各接続機器4(4−1、4−2)毎に備えられる通信処理部44−1、44−1である。すなわち、図示の通信処理部44−1は、接続機器4−1に対応する通信ポートWAY1を使用して、通信ライン6を介して、接続機器4−1との通信を行って、その外部メモリの所定領域(割当メモリ領域)の格納データを取得する。
【0107】
同様に、図示の通信処理部44−2は、接続機器4−2に対応する通信ポートWAY2を使用して、通信ライン6を介して、接続機器4−2との通信を行って、その外部メモリの所定領域(割当メモリ領域)の格納データを取得する。
【0108】
上記割当メモリ領域の格納データの取得処理自体は、基本的には従来と略同様であってよいが、本手法の場合、アイテムによっては、複数のメモリ領域からデータ取得する場合もある。この様なアイテムは、基本的に、「演算」タイプのシンボルと関連付けられたアイテムであって、且つ、上記被演算デバイス名77にもデータが格納されているものである。尚、上述したように、例えば「×100」などという演算の場合には、被演算デバイス名77にはデータは無い。
【0109】
そして、本例の各通信処理部44−1,44−2は、それぞれ、更にメモリ書込処理部47の処理機能も備える。尚、図では別にして示しているが、本説明ではメモリ書込処理部47は通信処理部44の機能の一部と見做して説明するものとする。よって、後述する
図8の通信処理部44のフローチャート中にメモリ書込処理部47の処理も含まれている。
【0110】
メモリ書込処理部47(アイテムデータ処理部)は、まず、上記取得した格納データ(取得データというものとする)を、共有メモリ53の所定領域に上書き格納する。更に、上記「演算」タイプのシンボルと関連付けられたアイテムに関しては、所定の演算を行って、この演算結果を演算結果格納メモリ54に格納する。
【0111】
但し、メモリ書込処理部47は、共有メモリ53の所定領域の既存のデータが、取得データと異なる場合のみ、上記取得データを共有メモリ53の所定領域に上書き格納するようにしてもよい。更に、上記取得データを共有メモリ53の所定領域に上書き格納した場合のみ、上記所定の演算処理を実行して演算結果を演算結果格納メモリ54に格納する処理を実行するようにしてもよい。これにより、無駄な演算(演算結果が前回と同じとなる演算)が実行されないようにでき、処理負荷を軽減でき、処理効率が向上する。
【0112】
図8は、通信処理部44の処理フローチャート図である。
例えば
図5の例では各通信処理部44−1、44−2が、各々、
図8の処理をサイクリックに(定周期で)実行するものである。
【0113】
図8の処理例では、まず、共有メモリ53を参照して、自己が担当する接続機器4に係るメモリリスト55を生成する(ステップS1)。例えば、通信処理部44−1による処理の場合には、接続機器4−1に係るメモリリスト55を生成することになる。
【0114】
図7(c)に、このメモリリスト55のデータ構成例を示す。
図示の例では、メモリリスト55は、デバイス名101、アドレス102、データ103、エラー情報104の各データ項目より成る。
【0115】
例えば上記通信処理部44−1は、共有メモリ53からポート81が“WAY1”であるレコードを全て抽出する。そして、該各抽出レコードのデバイス名82、アドレス83、データ84の情報を、上記デバイス名101、アドレス102、データ103に格納する。これによって、上記接続機器4−1に係るメモリリスト55が生成されることになる。
【0116】
尚、エラー情報74は、必ずしも必要ないものである。代わりに、処理済みか否かを示すフラグ情報が格納されていてもよい。
その後は、生成したメモリリスト55を参照しながら、ステップS7の判定がNOとなるまで、ステップS2〜S7の処理を繰り返し実行する。
【0117】
すなわち、メモリリスト55から未処理のレコードを取り出して(処理対象レコードとし)、このレコードの内容に基づくメモリ読込コマンドを生成して自己が担当する接続機器4に通信ライン6を介して送信する(ステップS2)。そして、このメモリ読込コマンドに対する接続機器4からの応答待ちとなる(ステップS3)。
【0118】
上記メモリ読込コマンドには、上記デバイス名71やアドレス72等のアクセス先を特定する情報(割当メモリアドレス)が含まれる。接続機器4は、この割当メモリアドレスが示す記憶領域からデータを読み出して、この読出しデータを返信する応答処理を行う。但し、何らかの理由でデータ読出しに失敗した場合には、メモリリードエラー等を返信する。
【0119】
通信処理部44は、接続機器4から正常応答があった場合には、この応答に含まれる読出しデータを、上記共有メモリ53において処理対象レコードに相当するレコードにおける上記データ84の欄に上書き格納する(ステップS4)。
【0120】
但し、既に述べたように、データ84の欄に格納されている既存のデータが、上記応答に含まれる読出しデータと同一の場合には、ステップS4の上書き格納処理は行わないようにしてもよい。
【0121】
そして、演算シンボルへの関連付けがあるか否かを判定する(ステップS5)。これは、例えば、上記ステップS4でデータ格納したレコードにおける上記“演算シンボルへの関連付け情報”55に、任意のシンボルIDが格納されている場合には、演算シンボルへの関連付けがあると判定する(ステップS5,YES)。
【0122】
上記ステップS5がYESの場合には、所定の演算処理(ステップS6)を実行する。
但し、既に述べたように、上記ステップS4の上書き格納処理を行わない場合には、ステップS5の判定結果に関係なく、ステップS6の処理は実行しないようにしてもよい。つまり、割当メモリ領域からの読出しデータが、当該割当メモリ領域からの前回の読出しデータと同一である場合には、演算結果が前回と同じとなるので、演算を行わないようにする。これによって、無駄な演算実行を回避することができる。
【0123】
ステップS6の処理は、例えば、上記“演算シンボルへの関連付け情報”55に格納されているシンボルIDを用いて、シンボル情報51における該当レコードを検索する。そして、該当レコードにおける被演算デバイス名77及び被演算アドレス78を用いて接続機器4にアクセスして該当記憶領域の格納データを取得して、この取得データと上記ステップS4で格納したデータ(データ84)とを用いて、上記該当レコードの演算タイプ76の演算を実行する。
【0124】
但し、該当レコードにおける被演算デバイス名77にデータが無い場合には、既に述べたように、被演算アドレス78の格納データはアドレスではなく任意の数値と見做す。よって、この場合には、被演算アドレス78の格納データと上記ステップS4で格納したデータ(データ84)とを用いて、上記該当レコードの演算タイプ76の演算を実行する。
【0125】
また、上記の例に限らず、例えば共有メモリ53、メモリリスト55に上記“被演算メモリ”(被演算デバイス名77及び被演算アドレス78)も格納するようにし、上記ステップS3、S4の処理の際に“被演算メモリ”の格納データの読出しと共有メモリ53への格納処理も実行するようにしてもよい。この場合、当然、上記ステップS6では“被演算メモリ”の格納データの読出しを行う必要はなくなる。
【0126】
そして、ステップS6では、最後に、上記演算結果を上記演算結果格納メモリ54の該当レコードに格納する。尚、この該当レコードとは、そのシンボルID91が上記“演算シンボルへの関連付け情報”55のシンボルIDと同一であるレコードである。
【0127】
上記ステップS5がNOの場合またはステップS6の処理を実行後、メモリリスト55に未処理のレコードが残っているか否かをチェックし、残っている場合には(ステップS7,YES)ステップS2に戻り、残っていない場合には(ステップS7,NO)本処理を終了する。
【0128】
図9は、アイテム処理部43の処理フローチャート図である。
上記の通り、
図9の処理は、アイテム処理スケジュール部42の管理のもとでサイクリックに実行される。
【0129】
図9の処理例では、アイテム処理部43は、まず、アイテムリスト52の初期化処理を実行する(ステップS11)。これは、例えば、アイテムリスト52の全レコードの処理済みフラグ68を“未処理”にする。その後は、後述するステップS20がNOとなるまで、ステップS12〜S20の処理を繰り返し実行する。
【0130】
すなわち、アイテムリスト52においてフラグ68が“未処理”であるレコードのなかの任意のレコードを処理対象レコードとして以下の各処理を実行する。
尚、ここでは、上記シンボル情報67には、関連付けられたシンボルの識別情報(シンボル名称、シンボルIDなど)だけでなく、シンボルタイプも含まれている例を用いて説明するものとする。尚、シンボル情報67がシンボル名称やシンボルIDだけである例の場合には、このシンボル名称やシンボルIDによってシンボル情報51を検索して該当するシンボルタイプ73を取得すればよい。
【0131】
本例の場合、まず、処理対象レコードのシンボル情報67を参照して、シンボルタイプが「演算」であるか「アドレス」であるか、あるいはシンボル関連付けが無いかを判別する。これは、上記の通り、シンボル情報67に格納データが無ければシンボル関連付けが無いと見做して(ステップS13がNO且つステップS14がNO)、そのままステップS17の処理を実行する。
【0132】
すなわち、この場合にはステップS17の処理では、処理対象レコードのデバイス名64、アドレス65を用いて共有メモリ53の該当レコードを検索してそのデータを取得する(ステップS17)。つまり、例えば、そのデバイス名82及びアドレス83が、上記処理対象レコードのデバイス名64及びアドレス65と同一であるレコードが、上記該当レコードである。そして、該当レコードのデータ84を取得する(ステップS17)。
【0133】
また、シンボル関連付けがある場合、上述した一例ではシンボル情報67にシンボルタイプ(「演算」または「アドレス」)も格納されるので、これを参照することで、「演算」であるか「アドレス」であるかを判定する。
【0134】
シンボルタイプが「アドレス」の場合には(ステップS13がNOでステップS14がYES)、シンボル情報67に格納されるシンボル名称を用いてシンボル情報51を検索して該当レコードのデバイス名74及びアドレス75を取得する(ステップS15)。そして、ステップS17の処理を実行する。この場合のステップS17の処理では、そのデバイス名82及びアドレス83が、上記取得したデバイス名74及びアドレス75と同一であるレコードが、上記該当レコードとなる。そして、該当レコードのデータ84を取得する(ステップS17)。
【0135】
一方、シンボルタイプが「演算」の場合には(ステップS13,YES)、上記シンボル情報67のシンボルIDを用いて上記演算結果格納メモリ54を検索して、該当レコードの演算結果92を取得する(ステップS16)。
【0136】
その後は、従来通りの表示処理を行うものであって構わない。すなわち、ステップS16またはステップS17で取得したデータを用いて、更に上記処理対象レコードの情報(アイテムの画像や座標、サイズ等)を用いて、通常のアイテム描画処理(例えばRAM13上に展開する)を行う(ステップS18)。
【0137】
上記ステップS18の処理を実行完了したら、アイテムリスト52の処理対象レコードの処理済みフラグ68を“処理済”に変更する(ステップS19)。
そして、アイテムリスト52に未処理のレコードが残っていれば(ステップS20,YES)ステップS12に戻り、全て処理済みであれば(ステップS19,NO)本処理を終了する。
【0138】
以上説明したように、本例のプログラマブルコントローラシステム、そのプログラマブル表示器、支援装置等によれば、支援装置において、予め任意の演算式が記述された各シンボル情報を登録しておき、任意のアイテムを任意のシンボル情報に関連付ける。これによって、プログラマブル表示器において、このアイテムに関して演算処理に基づく表示を行わせることができる。
【0139】
特に、割当メモリ領域からの取得データに基づいて所定の演算処理を行ってから表示等する必要があるアイテムに関しては、予め外部メモリ領域と所定の演算式が登録されたシンボル情報を用いることで、各アイテム毎に演算機能を付加する必要はなくなり、開発者等の手間を軽減できる。特に、従来では同じ演算機能を複数のアイテムに付加することがあり、その為の作業負担が少なくなく、また、リソースの無駄使いという問題もあったが、本手法ではこの様な従来の問題を解消できる。
【0140】
更に、プログラマブル表示器において、データ取得の際に演算処理を実行して演算結果を格納しておくことで、サイクリックの画面表示更新処理の際には、この演算結果を用いて表示更新を行えばよく、表示更新処理の度に演算処理を行う必要がなく、処理効率が良くなる。この効果は、特に、上記
図9の処理周期が、
図8の処理周期よりも短い場合、換言すれば
図9の処理が
図8の処理よりも頻繁に実行される場合に、顕著なものとなる。
【0141】
更に、無駄な演算実行を防止することもできる。