(57)【特許請求の範囲】
【請求項１】
任意の接続機器に接続されたプログラマブル表示器であって、
表示画面上の各アイテムに応じた各アクセス先を示すアクセス情報が記憶されるアイテム情報記憶手段と、
定期的に、前記アクセス情報に基づいて、前記接続機器内の各アクセス先からデータを取得して内部メモリに記憶する第１データ取得手段と、
任意のロジック処理を実行すると共に、該ロジック処理に伴うアクセス先である不定期アクセス先へのアクセス処理が生じた場合、該不定期アクセス先が前記アクセス情報に統合されているか否かを判定し、該不定期アクセス先が前記アクセス情報に統合されている場合には、前記内部メモリから該不定期アクセス先に対応するデータを取得するロジック処理実行手段と、
所定期間経過する毎に、アクセス頻度が所定の第１閾値以上である前記不定期アクセス先を、格上状態アクセス先とする格付け手段と、
前記格上状態アクセス先となっている不定期アクセス先を、前記アクセス情報に統合する統合手段と、
を有することを特徴とするプログラマブル表示器。
【請求項２】
前記ロジック処理実行手段によって前記不定期アクセス先が前記アクセス情報に統合されていないと判定された場合に、前記接続機器内の該不定期アクセス先からデータを取得する第２データ取得手段を更に有することを特徴とする請求項１記載のプログラマブル表示器。
【請求項３】
前記第１データ取得手段は、任意の１以上の前記不定期アクセス先が前記アクセス情報に統合されている場合には、該各不定期アクセス先からもデータを取得して前記内部メモリに記憶することを特徴とする請求項１記載のプログラマブル表示器。
【請求項４】
前記ロジック処理実行手段は、前記不定期アクセス先が前記アクセス情報に統合されているか否かに係わらず、任意の前記不定期アクセス先へのアクセス処理が生じる毎に、該不定期アクセス先に係わる前記アクセス頻度を更新することを特徴とする請求項１記載のプログラマブル表示器。
【請求項５】
前記格付け手段は、前記格上状態アクセス先となっている前記不定期アクセス先に関する前記アクセス頻度が、所定の第２閾値未満である場合には、格下げを行うことで前記アクセス情報に統合させないことを特徴とする請求項１記載のプログラマブル表示器。
【請求項６】
前記表示画面上の各アイテムに応じた各アクセス先に基づいて、最適化された前記アクセス情報を生成するアクセス最適化手段を更に有し、
前記統合手段は、前記表示画面上の各アイテムに応じた各アクセス先と前記格上状態アクセス先とに基づく前記最適化処理を前記最適化手段で実行させることで、前記最適化されたアクセス情報を再生成させ、
前記第１データ取得手段は、該再生成された前記最適化されたアクセス情報に基づいて、前記データの取得と前記内部メモリへの記憶を行うことを特徴とする請求項１記載のプログラマブル表示器。
【請求項７】
前記第１データ取得手段によって取得された、前記各アイテムに応じた各アクセス先のデータを用いて、前記表示画面上の各アイテムの表示内容を制御するアイテム表示制御手段を更に有することを特徴とする請求項１記載のプログラマブル表示器。
【請求項８】
前記各アクセス先は、任意の前記接続機器内の任意のメモリデバイスにおける任意のアドレスであることを特徴とする請求項１記載のプログラマブル表示器。
【請求項９】
任意の接続機器に接続されたプログラマブル表示器のコンピュータを、
表示画面上の各アイテムに応じた各アクセス先を示すアクセス情報が記憶されるアイテム情報記憶手段と、
定期的に、前記アクセス情報に基づいて、前記接続機器内の各アクセス先からデータを取得して内部メモリに記憶する第１データ取得手段と、
任意のロジック処理を実行すると共に、該ロジック処理に伴うアクセス先である不定期アクセス先へのアクセス処理が生じた場合、該不定期アクセス先が前記アクセス情報に統合されているか否かを判定し、該不定期アクセス先が前記アクセス情報に統合されている場合には、前記内部メモリから該不定期アクセス先に対応するデータを取得するロジック処理実行手段と、
所定期間経過する毎に、アクセス頻度が所定の第１閾値以上である前記不定期アクセス先を、格上状態アクセス先とする格付け手段と、
前記格上状態アクセス先となっている不定期アクセス先を、前記アクセス情報に統合する統合手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル表示器に関する。
【背景技術】
【０００２】
プログラマブル表示器は、一般的に、ＰＬＣ本体や温調装置等の各種接続機器と接続して、これら接続機器の状態表示を行う数値表示やランプ等のアイテムや、ユーザが任意の指示を出す為のスイッチ等のアイテムの画像を表示する。尚、アイテムは、画面部品等とも呼ばれている。プログラマブル表示器の画面（操作表示画面と呼ぶものとする）には、通常、複数の画面部品（アイテム）の画像が表示される。【０００３】
この様な操作表示画面（スクリーン）を表示する為のデータ等（画面データ等と呼ばれる）は、予め不図示の支援装置において開発者等によって任意に作成されて、支援装置からプログラマブル表示器にダウンロードされている。【０００４】
上記画面データには、上記各アイテム毎に、そのアイテムの画像（スイッチの画像やランプの画像；あるいは画像の識別ＩＤ等）や表示位置座標、更に後述する外部メモリの所定領域のアドレス（割当メモリアドレス）等のデータが含まれている。更に何らかのプログラム等が含まれている場合もある。【０００５】
上記各アイテムは、例えば、それぞれが任意の接続機器の任意の構成要素に対応して、当該構成要素の状態表示を行ったり、当該構成要素のＯＮ／ＯＦＦの指示を受け付けるものである。例えば、温調装置の温度測定値を数値表示するアイテムの場合、随時、現在の温度を数値で表示することになる。【０００６】
プログラマブル表示器における上記各種アイテムに係る表示制御は、上記各アイテム毎に、例えば定期的に所定の処理を実行することで実現される。所定の処理とは、例えば、接続機器内のメモリデバイス（外部メモリとする）の上記所定領域（割当メモリアドレスの領域）の格納データを読出して、この読み出した格納データ（“取得データ”）に基づいてアイテムの表示内容を決定・表示するものである。尚、接続機器は、随時、上記外部メモリの所定領域の格納データを更新している（例えば上記温調装置において上記温度測定値を随時更新している）。【０００７】
また、上記外部メモリから読出したデータを、プログラマブル表示器内のメモリデバイス（内部メモリとする）の所定領域に一時的に格納して、この格納データに基づいてアイテムの表示内容を決定・表示する構成もある。【０００８】
この例の場合、外部メモリの格納データを読み出して内部メモリに格納する処理は、プログラマブル表示器の所定の機能部（ここでは不図示の通信部とする）が、例えば定期的に実行する。上記通信部は、例えば、上記ＰＬＣ本体や温調装置等の各種接続機器と通信を行って、接続機器内の上記外部メモリの所定の記憶領域の格納データを取得して、このデータを上記内部メモリの所定領域に上書き格納する。そして、プログラマブル表示器における上記各種アイテムに係る表示制御を行う機能部（アイテム処理部というものとする）は、定期的に内部メモリにアクセスすることで、アイテム表示内容を制御する。【０００９】
上記支援装置には、予め各種アイテムの画像が記憶されている。これは、例えば各アイテム種別（スイッチ、ランプ、メータ等）毎に様々なデザインのアイテム画像が、予め作成されて支援装置の記憶部に記憶されている。【００１０】
上記アイテム画像は、例えば上記スイッチに関して、複数種類のスイッチ画像（例えばＯＮ用とＯＦＦ用；スイッチＯＮ画像とスイッチＯＦＦ画像）が、予め作成されて登録されている。同様に、ランプに関しても、複数種類のランプ画像（例えばＯＮ用とＯＦＦ用；ランプＯＮ画像とランプＯＦＦ画像）が、予め作成されて登録されている。【００１１】
開発者等は、任意のアイテムに係る上記アイテム画像を画面上の所望の位置に配置することでアイテムの選択・配置を行う。また、アイテムの配置を行うだけでなく、配置した各アイテム毎に、上記割当メモリアドレスを設定する作業も行われる。【００１２】
図２１、図２２は、従来のプログラマブル表示器の機能ブロック図（１／２）、（２／２）である。尚、以下、特に区別せずに、“図２１等”などと記すものとする。
従来のプログラマブル表示器２００は、ＣＰＵ２１１、ＲＡＭ２１３、グラフィックコントローラ２１５、ディスプレイ２１９等を有し、更に、不図示の不揮発性の記憶装置（フラッシュメモリ等）を有する。この記憶装置には、画面データ２２２や所定のアプリケーションプログラム等が記憶される。【００１３】
ＣＰＵ２１１が、例えば上記所定のアプリケーションプログラムを実行することにより、例えば図２１等において点線内に示す各種処理機能部が実現される。すなわち、図示のアイテム生成部２６１、アイテム処理部２６２、通信処理部２６３（２６３−１、２６３−２等）、ロジック処理部２６４、アイテム処理スケジュール部２６５、共有メモリ生成処理部２６６、ロジック処理スケジュール部２６７、ロジック指令生成部２６８、最適コマンド生成部２６９等の各種処理機能部の処理機能が実現される。【００１４】
アイテム生成部２６１は、上記画面データ２２２等に基づいて、アイテムリスト２５１を生成する。これは、例えば、画面データ２２２の一部をコピーする形で生成する。
共有メモリ生成処理部２６６は、上記アイテム生成部２６１によって生成されたアイテムリスト２５１に応じたデータを、共有メモリ２５５に格納する。換言すれば、共有メモリ２５５の格納データを更新する。【００１５】
共有メモリ２５５には、アイテムリスト２５１における各アイテムに応じた上記“取得データ”が記憶される。この“取得データ”の記憶内容は、通信処理部２６３によって更新される。【００１６】
各通信処理部２６３は、通信ライン６を介して、各接続機器４との通信を行って、その外部メモリの所定領域（割当メモリ領域）の格納データを取得する。そして、この“取得データ”を、共有メモリ２５５の該当領域に上書き格納する。【００１７】
通信処理部２６３は、最適コマンドリスト２５４に基づいて、上記割当メモリ領域の格納データを取得する処理を行う。
最適コマンドリスト２５４は、最適コマンド生成部２６９が、共有メモリ２５５に基づいて生成する。これは、共有メモリ２５５に格納されている各アイテム毎のアクセス先（割当メモリ領域）を、まとめてアクセスするようにアクセス先を生成するものである。【００１８】
アイテム処理部２６２は、アイテム処理スケジュール部２６５によって例えば定期的に（サイクリックに）呼び出されて、上記共有メモリ２５５の格納データ等に基づいて、各アイテム毎に、その表示内容の更新等に係わる処理を実行する。【００１９】
以上が、主に表示操作画面の各アイテムの表示内容の決定・更新処理（リフレッシュ処理）に係わる既存の処理機能部やデータ等である。
ここで、プログラマブル表示器では、上記サイクリックなリフレッシュ処理だけでなく、ユーザが任意に作成したロジックプログラム（例えばif〜then〜else文などを用いる何らかのプログラム）によるロジック処理も、実施している場合がある。このロジック処理中に、任意のアクセス先（任意の接続機器内の任意の外部メモリの任意の記憶領域）の格納データを、不定期に（突発的に）取得する必要が生じる場合がある。【００２０】
上記の様なロジック処理に係わる処理機能部が、上記ロジック処理部２６４、ロジック処理スケジュール部２６７、ロジック指令生成部２６８等である。
ロジック指令生成部２６８は、ロジック指令リスト２５２を生成する。ロジック指令リスト２５２には、例えば、上記任意のアクセス先と、当該アクセス先の格納データに応じた処理実行条件（分岐の条件など）等が格納される。【００２１】
ロジック処理部２６４は、ロジック処理スケジュール部２６７によるスケジュール管理の元で、ロジック指令リスト２５２に応じたデータ取得処理等を行う。例えば、ロジック指令リスト２５２に格納された上記アクセス先を、共有メモリ２５５に格納すると共に、当該アクセス先等を含むコマンドを、コマンドリスト（ＦＩＦＯ）２５３に格納する。【００２２】
ここで、ロジック処理部２６４が、データ取得するまで待機状態となる場合が少なくない。例えば、Ｉｆ文に係わるデータを取得する場合、データを取得しなければthenとelseのどちらを実行するのか分からないからである。【００２３】
通信処理部２６３は、コマンドリスト２５３に１以上のコマンドが格納されている場合、例えば先頭のコマンドを取り出して、当該コマンドに含まれる上記アクセス先にアクセスする処理も行う。そして、アクセス先からの取得データを共有メモリ２５５に格納すると共に、データ取得完了をロジック処理部２６４に通知する。【００２４】
この通知を受けたロジック処理部２６４は、共有メモリ２５５の格納データを取得することで、上記待機状態となっていたロジック処理を再開する。
また、例えば、特許文献１、２に記載の従来技術が知られている。【００２５】
特許文献１の発明は、下記の各工程を有する。
・定期的に外部機器のメモリのデータを読込むメモリデータ読込工程；
・該メモリデータ読込工程により前記メモリのデータを読込むに際し、予め指定された時間内に１読み込みコマンドでメモリデータ読み込み処理が終了するように、前記読み込みコマンドによって読み込むメモリデータ長を調整する読込データ長調整工程；
また、特許文献２の発明は、外部接続機器のメモリデータを読み込む際に、読込コマンドに、前記メモリデータが格納されているメモリデバイス、メモリアドレス、及び該メモリアドレスから読み出すメモリデータのサイズをそれぞれ１つのみ設定して読み込みを実行する電子機器における通信コマンド最適化方法に関する。【００２６】
そして、特許文献２の発明では、同一データ群分類工程、第１の時間算出工程、第２の時間算出工程、通信時間比較工程、メモリデータ読込工程等を有する。
・同一データ群分類工程は、外部接続機器毎及びメモリデバイス毎にメモリデータを分類して同一分類のメモリデータ群に分類する。
・第１の時間算出工程は、分類された前記同一分類の前記メモリデータ群に対し、該メモリデータ群の所望の複数のメモリデータを連結して前記読込コマンドの１回の実行で読み込みを行なう場合の連結データ読出通信時間を、算出する。これは、当該メモリデータ群を有する前記外部接続機器の通信速度、前記読込コマンドの送信時間、及び該読込コマンドに対応する前記所望のメモリデータの受信時間とから算出する；
・第２の時間算出工程は、分類された前記同一分類の前記メモリデータ群に対し、該メモリデータ群の所望の複数のメモリデータを連結せずに前記読込コマンドの複数回の実行で読み込みを行なう場合の非連結データ読出通信時間を、算出する。これは、当該メモリデータ群を有する前記外部接続機器の通信速度、前記読込コマンドの送信時間、及び該読込コマンドに対応する前記所望のメモリデータの受信時間とから算出する。
・通信時間比較工程は、前記連結データ読出通信時間と前記非連結データ読出通信時間とを比較する。
・メモリデータ読込工程は、該通信時間の比較において、前記連結データ読出通信時間のほうが前記非連結データ読出通信時間よりも速いときは前記所望のメモリデータを連結して前記読込コマンドの１回の実行で読み込みを行う。また、前記連結データ読出通信時間よりも前記非連結データ読出通信時間のほうが速いときは前記所望のメモリデータを連結せずに前記読込コマンドの複数回の実行で読み込みを行う。【００２７】
上記特許文献１，２には、例えば２つのアクセス先のアドレスがあるために２回の通信が必要であったものを、当該２つのアドレスを連結することで１回の通信で済むようにすることが開示されている。例えば特許文献２の図６には、アドレス‘X0000’とアドレス‘x0010’とを連結することで、１回の通信でアドレス‘X0000〜X0010’のデータを一括して取得することが開示されている。また、これら２つのアドレス間のデータは、一括して読み込まれた後に捨て去られるデータである旨、開示されている。
【特許文献１】特開２００９−５４０５５号公報
【特許文献２】特開２００９−５４０５６号公報
【発明の開示】
【００２８】
上記のように、従来では、例えばロジック処理部２６４は、任意のロジック処理実行に伴って、任意のアクセス先（任意の接続機器４内の任意の外部メモリの任意の記憶領域）からデータを取得する必要が生じた場合、下記のようになる。
【００２９】
コマンドリスト２５３に、上記アクセス先からのデータ取得の為のコマンドを格納した後、データ取得するまで待機状態となる。
従って、場合によっては待機時間が長くなり、処理効率が低下することになる。
【００３０】
また、通信処理部２６３は、上記外部メモリからのデータ取得処理の為に、通信ライン６を介した接続機器４との通信を行う必要があり、通常、この様な外部との通信を伴う処理は、内部的な処理に比べて時間が掛かるものである。そして、通信処理部２６３は、この様な通信を伴う外部メモリアクセス処理を、上記リフレッシュ処理に伴うサイクリックなアクセス処理だけでなく、上記ロジック処理に伴うアクセス処理も行うことになる。特に、上記ロジック処理に伴うアクセス処理は、不定期に（突発的に）発生するものであり、その都度、アクセス処理を実行することになる。
【００３１】
この為、ロジック処理に伴う外部メモリアクセス処理の頻度が高い場合（例えばロジック処理部２６４が頻繁に動作するような状況／設定では）、通信処理部２６３の処理負荷が増大して処理時間が掛かる状態となる。その結果、双方の（リフレッシュ処理とロジック処理）動作が著しく遅くなる場合があった（ボトルネック）。
【００３２】
上記のように、特にロジック処理実行に伴う外部メモリアクセスの頻度が高い状態では、リフレッシュ処理または／及びロジック処理の動作が遅くなる場合があるという問題がある。
【００３３】
本発明の課題は、表示画面上のアイテム表示のリフレッシュ処理に係わる外部メモリアクセスと、ロジック処理実行に伴う外部メモリアクセスとを行うプログラマブル表示器に関して、ロジック処理実行に伴う外部メモリアクセスの頻度が高い状態となっても、動作が遅くならないようにできるプログラマブル表示器、そのプログラム等を提供することである。
【００３４】
本発明のプログラマブル表示器は、任意の接続機器に接続されたプログラマブル表示器であって、例えば、下記の各手段を有する。
・表示画面上の各アイテムに応じた各アクセス先を示すアクセス情報が記憶されるアイテム情報記憶手段；
・定期的に、前記アクセス情報に基づいて、前記接続機器内の各アクセス先からデータを取得して内部メモリに記憶する第１データ取得手段；
・任意のロジック処理を実行すると共に、該ロジック処理に伴うアクセス先である不定期アクセス先へのアクセス処理が生じた場合、該不定期アクセス先が前記アクセス情報に統合されているか否かを判定し、該不定期アクセス先が前記アクセス情報に統合されている場合には、前記内部メモリから該不定期アクセス先に対応するデータを取得するロジック処理実行手段；
・所定期間経過する毎に、アクセス頻度が所定の第１閾値以上である前記不定期アクセス先を、格上状態アクセス先とする格付け手段；
・前記格上状態アクセス先となっている不定期アクセス先を、前記アクセス情報に統合する統合手段；
【図面の簡単な説明】
【００３５】
【図１】本例のプログラマブル表示器１を含むシステム全体の概略構成図である。
【図２】本例のプログラマブル表示器の構成例である。
【図３】本システムのソフトウェア構成を示す図である。
【図４】本例のプログラマブル表示器１の処理機能図（１／２）である。
【図５】本例のプログラマブル表示器１の処理機能図（２／２）である。
【図６】通信処理部の外部メモリアクセス処理のフローチャート図（１／２）である。
【図７】通信処理部の外部メモリアクセス処理のフローチャート図（２／２）である。
【図８】アイテム処理部の処理フローチャート図である。
【図９】共有メモリ生成処理部の処理フローチャート図である。
【図１０】ロジック処理部の処理フローチャート図（１／２）である。
【図１１】ロジック処理部の処理フローチャート図（２／２）である。
【図１２】ロジック処理に係わる外部メモリアクセス処理の処理フローチャート図（１／２）である。
【図１３】ロジック処理に係わる外部メモリアクセス処理の処理フローチャート図（２／２）である。
【図１４】格付け判定処理部の処理フローチャート図（１／２）である。
【図１５】格付け判定処理部の処理フローチャート図（２／２）である。
【図１６】（ａ）は共有メモリのデータ構造例、（ｂ）はサイクリックアクセスメモリリストの具体例である。
【図１７】（ａ）はメモリ情報の一例、（ｂ）はアイテムリストのデータ構成図である。
【図１８】ロジック指令リストの具体例である。
【図１９】コマンドのデータ構造例である。
【図２０】本例のプログラマブル表示器の他の処理機能図である。
【図２１】従来のプログラマブル表示器の機能ブロック図（１／２）である。
【図２２】従来のプログラマブル表示器の機能ブロック図（２／２）である。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例のプログラマブル表示器１を含むシステム全体の概略構成図である。
図１に示すプログラマブルコントローラシステムは、各種接続機器４と、通信ライン６を介して各種接続機器４に接続するプログラマブル表示器１とを有する。更に、プログラマブル表示器１が、通信ライン３を介して作画エディタ装置５（支援装置）に接続された構成であってもよい。プログラマブル表示器１には、複数の通信インタフェース２（通信ポート）が備えられており、各通信インタフェース２に接続された通信ライン３／通信ライン６によって各種接続機器４や作画エディタ装置５と接続されている。【００３７】
但し、作画エディタ装置５は、必ずしもプログラマブル表示器１に接続されている必要があるわけではない（一例を示しているに過ぎない）。例えば、プログラマブル表示器１に画面データをインストールする際に、作画エディタ装置５をプログラマブル表示器１に接続するようにしてもよい。これによって、作画エディタ装置５で作成される画面データ等が、作画エディタ装置５から通信ライン３を介してプログラマブル表示器１にダウンロードされる。勿論、この例に限らない。【００３８】
また、上記通信ライン３を介したダウンロードの代わりに、不図示の可搬型記録媒体（メモリカード等）を介して、上記画面データ等をプログラマブル表示器１に渡すようにしてもよい。何れにしても、基本的には、作画エディタ装置５で作成／更新等される画面データを、プログラマブル表示器１に記憶させることになる。そして、プログラマブル表示器１では、この画面データ等に基づいて、上記操作表示画面を表示することになる。【００３９】
あるいは、プログラマブル表示器１は、上述した任意のロジック処理（ロジックプログラム）を実行する場合がある。本手法は、基本的に、この様なロジック処理も実行するプログラマブル表示器１において、処理効率の向上を図り、以って上述した問題点（課題）を解決するものである。【００４０】
尚、以下の説明では、作画エディタ装置５を支援装置５と記す場合もあるものとする。
図２は、本例のプログラマブル表示器１のハードウェア構成例である。
図示のプログラマブル表示器１は、表示操作制御装置１０と、タッチパネル１８、ディスプレイ１９、上記通信インタフェース２等を有する。【００４１】
表示操作制御装置１０は、ＣＰＵ１１、ＲＯＭ１２（フラッシュメモリ等）、ＲＡＭ１３、通信コントローラ１４、グラフィックコントローラ１５、タッチパネルコントローラ１６等より成り、これらがバス１７に接続されている。【００４２】
ＣＰＵ１１は、表示操作制御装置１０全体を制御する中央処理装置（演算プロセッサ）である。ＣＰＵ１１は、ＲＯＭ１２に予め格納されているプログラム（例えば後述する本体プログラム２１等）を実行することで、所定の演算動作（処理）を行う。所定の処理とは、例えば上記操作表示画面の各アイテム毎の表示内容をサイクリックに更新する処理（上記リフレッシュ処理）である。その為に、各アイテムに対応する上記外部メモリへのアクセス処理（各アイテムの割当メモリ領域の格納データを取得する処理）を行う。そして、当該“取得データ”に基づく画面表示制御等を行う。尚、これらの処理は、上記の通り、従来技術である。【００４３】
更に、ここでは、本体プログラム２１には、ユーザ等が任意に作成したプログラム（ロジックプログラムと呼ぶ）も含まれるものとする。このロジックプログラムによる処理（ロジック処理）は、様々であるが、上記外部メモリにアクセスする処理が含まれる場合がある。上記の通り、このロジック処理自体は、従来でも存在するものである。そして、上述した通り、ロジック処理が上記リフレッシュ処理に影響して、例えばリフレッシュ処理とロジック処理の両方とも時間が掛かる等の問題が生じることになる。【００４４】
また、本体プログラム２１実行に伴う演算結果等は、例えばＲＡＭ１３やＲＯＭ１２に格納される。
また、ＲＯＭ１２には、上記背景技術で説明した画面データ（後述する画面データ２２）等が格納されている。上記のように、画面データ２２は、例えば上述したスイッチ、ランプ等の各アイテム毎に、その表示位置座標や大きさ等の表示に係わるデータや、上記割当メモリアドレス（割当メモリ領域）等のメモリアクセスに係わるデータ等を有する。また、画面データ２２には、各アイテムの画像（あるいはアイテム画像の識別ＩＤ等）が含まれている。【００４５】
上記本体プログラム２１等を用いるＣＰＵ１１の処理には、上記の通り“各アイテム毎の割当メモリ領域の格納データ”を取得する処理等が含まれる。この“取得データ”は、例えば後述する共有メモリ５５に一時的に格納される。尚、共有メモリ５５は、上記ＲＡＭ１３やＲＯＭ１２の記憶領域の一部であってもよいし、不図示の他のメモリであってもよい。【００４６】
また、上記ＣＰＵ１１の処理によって、例えば上記画面データや上記取得データ等に基づく表示対象データが、例えばＲＡＭ１３（あるいは不図示のビデオＲＡＭ）上に展開（描画）される。この描画に基づいてグラフィックコントローラ１５が、ディスプレイ１９上に上述した操作表示画面等を表示する。【００４７】
尚、従来より、画面データ２２には、各アイテム毎に、例えばＯＮ用とＯＦＦ用の２種類のアイテム画像が含まれている。そして、プログラマブル表示器１側では、例えば上記取得データが‘０’であればランプ消灯画像、‘１’であればランプ点灯画像が、上記表示対象データとなる（例えばビデオＲＡＭ上に描画される）。【００４８】
ディスプレイ１９は、例えば液晶パネル等より成り、この液晶パネル上に重ねるようにしてタッチパネル１８が設けられる。従来では、ディスプレイ１９上には、基本的には、複数のアイテムそれぞれのアイテム画像が、所定位置に配置されて成る操作表示画面が表示される。【００４９】
また、通信コントローラ１４は、通信インタフェース２を介して、不図示のＰＬＣ本体等や温調装置等である接続機器４や作画エディタ装置５との通信（データ送受信等）を行う。【００５０】
オペレータ等によるタッチパネル１８上での押圧操作（タッチ）位置の検知結果は、タッチパネルコントローラ１６を介してＣＰＵ１１等に取り込まれて解析される。例えば各アイテムの上記表示位置座標や大きさのデータ等に基づいて、解析することになる。例えば、上記スイッチの画像の表示位置をオペレータ等がタッチすると、ＣＰＵ１１等は、このスイッチに対する操作が行われたものと解析することになる。【００５１】
図３に、上記本システムのソフトウェア構成図を示す。
プログラマブル表示器１においては、本体プログラム２１、画面データ２２、通信プログラム２３等の各種プログラム／データが、例えば上記ＲＯＭ１２（フラッシュメモリ等）に格納されている。これらのプログラム／データ等をＣＰＵ１１が読出し・実行／参照等することで、プログラマブル表示器用の上記操作表示画面等の表示制御等が行なわれる。【００５２】
この操作表示画面は、従来と同様に、上述した数値表示、ランプ、スイッチ等の各種アイテムの画像表示から成り、各アイテム画像の表示内容は、例えば上記“取得データ”を反映させる形で随時更新される。【００５３】
基本的には、ＣＰＵ１１が、本体プログラム２１と画面データ２２とに基づく処理を行うことで、上記操作表示画面が表示される。そして、この操作表示画面上の各画面部品の表示内容（温度等の数値表示やランプの点灯／消灯など）は、通信プログラム２３による各接続機器４との通信結果（上記“取得データ”等）等に基づいて、随時、更新等されるものである。更に、本体プログラム２１には上記ロジックプログラムが含まれており、ＣＰＵ１１は、このロジックプログラムも実行することで、ユーザが作成した任意の処理も実行する。【００５４】
上記画面データ２２は、例えば予め作画エディタ装置５側で任意に作成された画面データファイル３２の一部または全部が、プログラマブル表示器１にダウンロードされて格納されたものである。尚、画面データファイル３２と画面データ２２とを特に区別せずに、画面データ２２と呼ぶ場合もあるものとする。【００５５】
また、上記通信プログラム２３も、例えば予め作画エディタ装置５側に格納されていた通信プログラムファイル３３の一部が、プログラマブル表示器１にダウンロードされて格納されたものである。【００５６】
上述したように、基本的には、ＣＰＵ１１が、本体プログラム２１と画面データ２２と上記外部メモリからの“取得データ”等に基づく上記操作表示画面の表示制御を行う。例えば、数値表示やランプ等のアイテムに関して、定期的に、そのアイテムの割当メモリ領域からデータを読み出して、そのアイテムの表示内容を当該読出データに基づいて更新する。あるいは、例えばスイッチ等のアイテムに関しては、ユーザが、この操作表示画面上の所望のスイッチをタッチすると（ＯＮ／ＯＦＦ操作すると）、スイッチＯＮ画像表示／スイッチＯＦＦ画像表示が行われる。【００５７】
また、ＣＰＵ１１は、このスイッチ操作に応じた接続機器４の制御も行う。例えば、スイッチに対応する割当メモリ領域の格納データ（スイッチのＯＮ／ＯＦＦを示すフラグ等）を、スイッチ操作に応じて更新する。これによって、接続機器４側の不図示コントローラ等が、このフラグに応じた動作を実行する。【００５８】
尚、既に従来で述べたように、上記外部メモリは、接続機器４が備えるメモリデバイスであって、各アイテムのメモリ割当が行われるメモリデバイスである。上記のように、各アイテムの表示内容は、この割当メモリ領域の格納データに基づいて決定・更新される。【００５９】
そして、従来で述べたように、この割当メモリ領域からの読出しデータを、プログラマブル表示器１内の上記内部メモリに一時的に格納し、これに基づいてアイテム表示制御を行う構成例がある。【００６０】
本例では、例えば後述する各通信処理部６３等によって定期的に、接続機器４内のメモリデバイス（外部メモリ）の所定の記憶領域からデータを読み出して、この読出データ（上記“取得データ”）を内部メモリ（後述する共有メモリ５５）に格納する処理が行われる。そして、例えば後述するアイテム処理部６２によって、上記内部メモリの格納データ等に基づいて、上記操作表示画面の表示制御が行われることになる。これによって、操作表示画面の表示内容は、各アイテムに対応する割当メモリ領域の現在の格納データの内容を反映させたものとなる（現在の制御対象の状態等に応じた表示内容となる）。【００６１】
また、支援装置５の作画エディタ３１は、開発者等が所望の画面データファイル３２を作成するのを支援する機能を有する。また、支援装置５は、予め記憶される各種通信プログラム群である通信プログラムファイル３３から、任意の１以上の通信プログラムをプログラマブル表示器１にダウンロードして、上記通信プログラム２３として記憶させる機能も有する。但し、これらの支援装置５の機能は、既存機能であり、ここではこれ以上説明しない。【００６２】
尚、作画エディタ装置５は、例えばパソコン等であり、特に図示しないが一般的な汎用コンピュータの構成（ＣＰＵ、記憶部（ハードディスク、メモリ等）、通信部、操作部（マウス等）、ディスプレイ）を有している。記憶部に予め記憶されているアプリケーションプログラムを、ＣＰＵが実行することにより、上記既存機能が実現される。【００６３】
図４、図５は、本例のプログラマブル表示器１の処理機能図（１／２）、（２／２）である。尚、以下、特に区別せずに、“図４等”などと記すものとする。
プログラマブル表示器１には、画面データ２２等が記憶される。【００６４】
ＣＰＵ１１が、例えば上記ＲＯＭ１２に記憶されている所定のプログラム（例えば上記本体プログラム２１、通信プログラム２３等）を実行することにより、例えば図４等において点線内に示す各種処理機能部が実現される。すなわち、図示のアイテム生成部６１、アイテム処理部６２、通信処理部６３（６３−１、６３−２等）、ロジック処理部６４、アイテム処理スケジュール部６５、共有メモリ生成処理部６６、ロジック処理スケジュール部６７、ロジック指令生成部６８、最適コマンド生成部６９、格付け判定処理部７０等の各種処理機能部の処理機能が実現される。【００６５】
尚、これら各種処理機能部６１〜７０のうち、処理機能部６１〜６３、６５〜６９は、基本的には従来と略同様の処理を行うものと見做して構わない。但し、後述するサイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７の何れかにに係わる処理が、実行される場合もある。後述するサイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７は、基本的には従来では存在しない情報である。よって、基本的に、これらカウンタやフラグに係わる処理は、本手法による新規の処理と見做して構わない。【００６６】
また、ロジック処理部６４も、基本的な処理機能は、従来と略同様と見做しても構わない。但し、ロジック処理部６４の機能の一部である後述する突発メモリアクセス部６４ａは、従来とは異なる。【００６７】
格付け判定処理部７０は、従来では存在しない処理機能部である。
尚、通信処理部６３は、本体プログラム２１と通信プログラム２３とによって実現される。通信処理部６３以外の処理機能部は、基本的には本体プログラム２１によって実現されるが、この例に限るわけではない。【００６８】
アイテム生成部６１は、上記画面データ２２等に基づいて、アイテムリスト５１を生成する。これは、例えば、画面データ２２の一部をコピーする形で生成する（更に後述する処理済みフラグ１１８を追加する）。【００６９】
共有メモリ生成処理部６６は、上記アイテム生成部６１によって生成されたアイテムリスト５１に応じたデータ（アクセス先など）を、共有メモリ５５に格納する。換言すれば、共有メモリ５５の各格納データ（各アクセス先など）を更新する。【００７０】
尚、上記アイテムリスト５１や共有メモリ５５の格納データは、例えば、現在表示中の操作表示画面（スクリーン）上の各アイテムに対応したものとなる。よって、スクリーン切替えが行われる毎に、再生成されることになる。また、共有メモリ５５には、更に、ロジック処理に伴うアクセス先などのデータも、格納されることになる。詳しくは後述する。【００７１】
共有メモリ５５には、上記現在表示中の操作表示画面（スクリーン）上の各アイテムに応じた上記“取得データ”が、通信処理部６３によって格納される（サイクリックに更新される）。【００７２】
通信処理部６３は、各接続機器４（４−１、４−２）毎に備えられる通信処理部６３−１、６３−１である。すなわち、図示の通信処理部６３−１は、接続機器４−１に対応する通信ポートＷＡＹ１を使用して、通信ライン６を介して、接続機器４−１との通信を行って、その外部メモリの所定領域（割当メモリ領域）の格納データを取得する。そして、この“取得データ”を、共有メモリ５５の該当領域に上書き格納する。【００７３】
同様に、図示の通信処理部６３−２は、接続機器４−２に対応する通信ポートＷＡＹ２を使用して、通信ライン６を介して、接続機器４−２との通信を行って、その外部メモリの所定領域（割当メモリ領域）の格納データを取得する。そして、この“取得データ”を、共有メモリ５５の該当領域に上書き格納する。【００７４】
上記各通信処理部６３による上記外部メモリからのデータの取得処理と当該“取得データ”による共有メモリ５５の格納データの更新処理は、定期的に（サイクリックに）実行される。【００７５】
ここで、本例の通信処理部６３は、最適コマンドリスト５４（５４−１，５４−２）に基づいて、上記割当メモリ領域の格納データを取得する処理を行う。最適コマンドリスト５４は、最適コマンド生成部６９が、共有メモリ５５に基づいて各接続機器４に応じて生成する。図示の最適コマンドリスト５４−１は接続機器４−１に応じたものであり，最適コマンドリスト５４−２は接続機器４−２に応じたものである。【００７６】
最適コマンド生成部６９は、例えば上記特許文献１，２等（特開２００９−５４０５６号公報、特開２００９−５４０５５号公報など）に開示されている既存の処理（上述したアドレスの連結など）を行う機能部であるので、ここでは特に説明しない。【００７７】
但し、簡単に説明するならば、共有メモリ５５に格納されている各アイテム毎のアクセス先（割当メモリ領域）を、まとめてアクセスするようにアクセス先を生成するものである。例えば、アイテムＡ，Ｂ，Ｃがあり、それぞれ、Ｄ１０１番地、Ｄ１０５番地、Ｄ１０８番地が割当メモリ領域である場合、Ｄ１０１番地〜Ｄ１０８番地までの領域を、まとめて１つのアクセス先として最適コマンドリスト５４に格納するものである。【００７８】
当然、この処理では、不要なデータも取得することになるので、必要なデータ（Ｄ１０１番地、Ｄ１０５番地、Ｄ１０８番地の各データ）のみを選別して共有メモリ５５の該当領域に格納する。そして、不要なデータは捨てる。【００７９】
通常、通信ライン６を介した接続機器４との通信処理に時間が掛かるものであり、従って、取得するデータ量が多少増えて選別処理が加わったとしても、処理時間は短縮されることになる。【００８０】
但し、上記のようにアドレスをひとまとめにして通信回数を減らすことで、必ずしも処理時間が短縮されるとは限らないので、最適コマンドリスト５４の生成は必須でない。しかし、最適コマンドリスト５４を生成しない場合でも、本手法では、後述するロジック処理に係わる外部メモリアクセスを、アイテム表示に係わるサイクリックな外部メモリアクセスに含める場合がある。【００８１】
尚、上記の通り、通信処理部６３や最適コマンドリスト５４（更に後述するコマンドリスト５３等）は、各接続機器４に応じて設けられる。よって、接続機器４が複数ある場合には、通信処理部６３や最適コマンドリスト５４等も複数設けられることになる。しかし、本説明では、通信処理部６３や最適コマンドリスト５４等について、各接続機器４（４−１，４−２）毎に説明せずに、まとめて説明するものとする。【００８２】
尚、最適コマンド生成部６９は、基本的には、例えばスクリーン切替えに伴ってアイテムリスト５１が更新され、更にこれに伴って共有メモリ５５が更新されたときに、当該新たな共有メモリ５５の格納内容に応じた新たな最適コマンドリスト５４を生成するものである。換言すれば、基本的には、このとき以外は最適コマンドリスト５４の内容は変化しないものとする。但し、本手法では、格付け判定処理部７０によって最適コマンドリスト５４の内容が変化する場合がある。例えば後述するロジック処理部６４等によるアクセス先が、最適コマンドリスト５４に追加される場合がある。尚、その際に、最適コマンド生成部６９によってロジック処理部６４等によるアクセス先も含めた最適化処理（上記アドレスの連結等；アドレスをひとまとめにする等）を行って、最適コマンドリスト５４を再生成することが望ましい。詳しくは後述する。【００８３】
アイテム処理部６２は、上記共有メモリ５５の格納データ（“取得データ”）等に基づいて、各アイテム毎に、その表示内容の更新（例えばＯＮ用画像／ＯＦＦ用画像切替）等に係わる処理を実行する。つまり、アイテム処理部６２は、例えば直近の上記割当メモリ領域からの取得データ等に基づいて、上記表示操作画面の表示内容を決定・更新する。【００８４】
上記アイテム処理部６２の処理も、定期的に行うものであり、そのスケジュール管理はアイテム処理スケジュール部６５が行う。すなわち、アイテム処理スケジュール部６５は、アイテム処理部６２による各アイテムの表示更新処理等のスケジュール管理を行う。つまり、アイテム処理スケジュール部６５は、例えば定期的にアイテム処理部６２を呼び出して例えば後述する図８の処理を実行させる（換言すれば、図８の処理をサイクリックに実行させる）。【００８５】
以上、主に表示操作画面上の各アイテムの表示内容の決定・更新処理（リフレッシュ処理）に係わる処理機能部、データ等について説明した（但し、格付け判定処理部７０は除く）。【００８６】
一方、上記の通り、ＣＰＵ１１は、上記ロジック処理も実行する。このロジック処理実行に係わる処理機能部、データ等が、図示のロジック処理部６４、ロジック処理スケジュール部６７、ロジック指令生成部６８、ロジック指令リスト５２、コマンドリスト５３（５３−１、５３−２）等である。【００８７】
上記ロジック処理実行に係わる処理機能部、データ等は、基本的に、ロジック処理部６４以外は従来と略同様であってよいので、以下、簡単に説明する。
ロジック指令生成部６８は、任意のロジックプログラムに関して、任意のアクセス先（任意の接続機器４の任意の外部メモリデバイスの任意のアドレス）のデータに基づく処理（例えば分岐処理；if〜then〜else文など）に係わる情報を、ロジック指令リスト５２に格納する。ロジック指令リスト５２については具体例を後に示して説明する。【００８８】
ロジック処理部６４は、ロジック処理スケジュール部６７によるスケジュール管理の元で、ロジック指令リスト５２に応じたデータ取得処理等を行う。例えば、ロジック指令リスト５２に格納された上記アクセス先を、共有メモリ５５に格納すると共に、当該アクセス先に基づくコマンドを生成してコマンドリスト（ＦＩＦＯ）５３に格納する。【００８９】
尚、以下の説明における「アクセス処理」とは、基本的に「外部メモリへのアクセス処理」を意味するものとする。同様に、「アクセス先」とは、基本的に「任意の接続機器４の任意の外部メモリデバイスの任意のアドレス」を意味するものとする。【００９０】
ここで、本例の通信処理部６３は、上記最適コマンドリスト５４に基づくアクセス処理だけでなく、コマンドリスト５３に基づくアクセス処理も実行する。すなわち、コマンドリスト５３に何らかのコマンド（例えば、後述するコマンド１３０等）が格納されている場合には、このコマンドを取り出して、このコマンドに基づくアクセス処理を行う。そして、アクセス処理結果（アクセス先からの“取得データ”）を、共有メモリ５５の該当領域に格納する。【００９１】
ロジック処理部６４は、通信処理部６３によって上記“取得データ”が上記共有メモリ５５の該当領域に格納されるのを待ち、格納されたら、当該取得データに基づく上記処理（例えば分岐処理等）を実行する。特に分岐処理の場合、thenとelseのどちらを実行するのかは、上記取得データが得られるまで分からないので、それまで待つことになる。この為、待機時間が長くなる場合もあり得る。また、この様なロジック処理に伴う不定期の（突発的な）アクセス処理が頻繁に行われると、上記リフレッシュ処理に係わるアクセス処理に影響し、表示内容更新に時間が掛かる場合にあり得る。【００９２】
これより、本手法では、ロジック処理に伴う不定期の（突発的な）アクセス処理のアクセス先のなかに、頻繁にアクセス処理が行われるアクセス先がある場合には、このアクセス先が最適コマンドリスト５４に含まれるようにする。これによって、このアクセス先に関しては、ロジック処理に伴う不定期の（突発的な）アクセス処理の発生の有無に関係なく、上記サイクリックなアクセスが行われて取得データが共有メモリ５５の該当領域に格納されることになる。【００９３】
そして、ロジック処理部６４は、アクセス先への不定期の（突発的な）アクセス処理が発生した場合、共有メモリ５５の該当領域の格納データを取得することになる。これによって上記待機時間が殆ど掛からなくなると共に、上記リフレッシュ処理に係わるアクセス処理の邪魔をすることもない。よって、アイテム表示内容の更新処理が遅くなることもない。【００９４】
尚、ロジック処理部６４には、不図示の後述する突発メモリアクセス部６４ａの処理機能も含まれるものとする。これより、ロジック処理部６４は、後述する図１０、図１１の処理だけでなく、後述する図１２、図１３の処理も行うものとする。詳しくは後述する。【００９５】
以下、上記各種処理機能部や各種データについて、更に詳しく説明する。
まず、通信処理部６３について、その詳細な処理例について説明する。
図６、図７は、各通信処理部６３（６３−１、６３−２）が、それぞれ、例えば定期的に（サイクリックに）実行する外部メモリアクセス処理のフローチャート図（１／２）、（２／２）である。尚、以下、特に区別せずに“図６等”などと記すものとする。【００９６】
図６等に示す処理例では、基本的には、上記リフレッシュ処理に係わるサイクリックな通信処理を実行するが、上記ロジック処理に係わる不定期の（突発的な）通信処理が必要な状況では当該通信処理を行う。尚、不定期な（突発的な）通信処理が必要な状況とは、例えば上記コマンドリスト５３に何等からのコマンド（アクセス先を示すもの；例えば後述するコマンド１３０等）が格納されたときである。【００９７】
尚、図６等に示す通信処理部６３の処理自体は、既存技術であってよい。また、当該処理に係わる各種データ（最適コマンドリスト５４、共有メモリ５５、後述する図１９に示す例のコマンド１３０）も、そのデータ構造自体は既存技術であってよい。但し、データの内容が、既存技術とは異なる場合がある。つまり、最適コマンドリスト５４には、上記サイクリックな通信処理に係わるアクセス先だけでなく、上記突発的な通信処理に係わるアクセス先も含まれる場合がある。詳しくは後述する。【００９８】
上記サイクリックな通信処理に関しては、まず、最適コマンドリスト５４から任意のメモリアクセスコマンドを取得する（ステップＳ１１）。これは、例えば、最適コマンドリスト５４内の不図示の実行ｉｎｄｅｘをキーにして該当するコマンドを取り出す。【００９９】
ここで、図１９に、上記コマンドのデータ構造例を示す。尚、最適コマンドリスト５４やコマンドリスト５３は、例えば図１９に示すようなコマンド１３０をリスト化したものである。【０１００】
図１９に示す例のコマンド１３０は、コマンド種別１３１、メモリブロック数１３２、各メモリブロック１３３（Ｎ個のメモリブロック１３３）等から成る。
コマンド種別１３１は、例えば一例しては、“ブロックリード”、“複数ブロックリード”等である。これらも既存技術であるので、特に詳細には説明しないが、簡単に説明するならば、下記の通りとなる。
・ブロックリード；任意の先頭アドレスとデータ数を指定するコマンド。先頭アドレスからデータ数分の領域のデータが取得されることになる。メモリブロック数１３２は固定的に‘１’となる。
・複数ブロックリード；ブロックリードを拡張したコマンドであり、複数のアクセス先を指定可能。つまり、メモリブロック数１３２は‘２’以上となる。【０１０１】
メモリブロック数１３２は、メモリブロック１３３の数である。
各メモリブロック１３３は、例えば図示の例では、ポート１４１、デバイス１４２、アドレス１４３、データ数１４４の各データ項目より成る。ポート１４１とデバイス１４２とアドレス１４３が、アクセス先（例えば上記割当メモリ領域の先頭アドレス）を示すものである。つまり、ポート１４１は、アクセス先の接続機器４に対応するポートの識別番号等である。デバイス１４２は、アクセス先の接続機器４内のアクセス先のメモリデバイスの識別情報等である。アドレス１４３は、当該メモリデバイスにおけるアクセス先の記憶領域の先頭アドレス等である。【０１０２】
そして、当該先頭アドレスからデータ数１４４分の領域が、アクセス先の記憶領域を意味し、当該記憶領域の格納データが読み出されることになる。
すなわち、図７等の処理において、上記ステップＳ１１の処理で取得したコマンド１３０を、アクセス先の接続機器４に送信することで（ステップＳ１２）、接続機器４側では上記各メモリブロック１３３が示す上記アクセス先の記憶領域から、格納データを読出して返信する。この返信を受信すると（ステップＳ１３）、この返信に含まれる“取得データ”（上記アクセス先の記憶領域から読み出したデータ）を、共有メモリ５５の該当領域に格納する（ステップＳ１４）。この処理自体は、従来と同様であってよいが、本例の場合、上記“取得データ”には、上記アイテム表示の為のサイクリックな通信処理に係わるデータだけでなく、上記突発的な通信処理に係わるデータも含まれる場合がある。【０１０３】
最後に、例えば上記最適コマンドリスト５４内の不図示の実行ｉｎｄｅｘを、次のコマンドへと進める（ステップＳ１５）。つまり、次の処理対象のコマンド１３０を指定しておく。【０１０４】
続いて、コマンドリスト５３に格納されている１以上のコマンド１３０群から先頭のコマンド１３０を取得する（ステップＳ１６）。但し、コマンドリスト５３にコマンド１３０が１つも無い場合には（ステップＳ１７，ＮＯ）、本処理を終了する。【０１０５】
コマンドリスト５３から任意の１つのコマンド１３０を取得できた場合には（ステップＳ１７，ＹＥＳ）、当該処理対象のコマンド１３０についても、上記最適コマンドリスト５４から取得したコマンド１３０に係わるステップＳ１２，Ｓ１３，Ｓ１４の処理と略同様の処理を行う（ステップＳ１８，Ｓ１９，Ｓ２０）。【０１０６】
すなわち、上記ステップＳ１６で取得したコマンド１３０を、アクセス先の接続機器４に送信することで（ステップＳ１８）、接続機器４側ではアクセス先の記憶領域から格納データを読出して返信する。この返信を受信すると（ステップＳ１９）、この返信に含まれる“取得データ”を、共有メモリ５５の該当領域に格納する（ステップＳ２０）。【０１０７】
そして、最後に、上記処理対象のコマンド１３０の要求元（例えばロジック処理部６４）に対して、完了を通知する（ステップＳ２１）。この完了通知を受けたロジック処理部６４等は、共有メモリ５５から上記ステップＳ２０で格納されたデータ等を読み出すことになる。【０１０８】
ここで、図１６（ａ）には共有メモリ５５のデータ構造例を示す。
図１６（ａ）に示す例では、共有メモリ５５の格納データは、ポート８１、デバイス名８２、アドレス８３、データ８４、サイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７の各データ項目より成る。【０１０９】
これらのうち、ポート８１、デバイス名８２、アドレス８３、データ８４は、従来と同様であってよく、以下、簡単に説明する。
ポート７１は、上記通信ポートの識別情報等であり、実質的には通信相手の接続機器４を識別する情報となる。デバイス７２は、通信相手の接続機器４内のメモリデバイス（外部メモリ）の識別情報である。アドレス７３は、デバイス７２が示す外部メモリにおける所定の記憶領域のアドレスであり、データ７４にはこの記憶領域から取得したデータが格納される。尚、ポート７１とデバイス名７２とアドレス７３とが、各アイテムの上記“割当メモリアドレス”に相当すると見做してよい。【０１１０】
上記従来のデータ項目に加えて、本例では上記サイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７が設けられている。これらについては後に説明するが、ここでは概略的に説明するものとする。【０１１１】
まず、共有メモリ５５には、上記リフレッシュ処理に係わるアクセス先や当該アクセス先からの取得データ等が格納されるが、上記突発的なアクセス処理に係わるアクセス先や当該アクセス先からの取得データ等も格納される。そして、上記リフレッシュ処理に係わるレコードに関しては、サイクリックアクセスカウンタ８５には強制的に所定の値（＋１等）が記憶されると共に、突発頻度アクセスカウンタ８６と格上げ判定フラグ８７は使用されない。一方、上記突発的なアクセス処理に係わるレコードに関しては、サイクリックアクセスカウンタ８５には強制的に‘０’等が記憶されると共に、突発頻度アクセスカウンタ８６と格上げ判定フラグ８７が使用される。【０１１２】
ここで、これらカウンタ８６やフラグ８７の使用方法について簡単に説明するならば、任意の上記突発的なアクセス処理が実行される毎に、対応するレコードの突発頻度アクセスカウンタ８６をカウントアップする。そして、カウンタ８６の値が所定の閾値を超えた場合、格上げ判定フラグ８７をフラグＯＮする。そして、上記サイクリックな通信処理の処理対象を、サイクリックアクセスカウンタ８５が所定値（＋１等）であるレコードだけでなく、格上げ判定フラグ８７がフラグＯＮであるレコードも含まれるものとする。【０１１３】
尚、上記突発頻度アクセスカウンタ８６は定期的にリセットされる。これより、上記突発的なアクセス処理であっても、所定期間内にカウンタ８６の値が上記閾値を超えるアクセス、すなわち頻繁に実行されるアクセスである場合には、サイクリックなアクセス処理に含めるようにする。そして、従来と同様、本手法では、サイクリックなアクセス処理に関しては最適化が行われる。これによって、突発的なアクセス処理を含めた外部メモリアクセス処理全体のアクセス効率が向上する。但し、この例に限らない。最適化が行われることなく、上記突発的なアクセス処理が単にサイクリックなアクセス処理に含まれるようにしてもよい。【０１１４】
次に、図８を参照して、アイテム処理部６２の処理について説明する。
図８は、アイテム処理部６２の処理フローチャート図である。
アイテム処理部６２は、上記のようにアイテム処理スケジュール部６５によって定期的に呼び出されて、図８の処理を実行するものである。【０１１５】
図示の処理例では、まず、アイテムリスト５１の全レコードの処理済みフラグ１１９を初期化（フラグＯＦＦ）する（ステップＳ３１）。
ここで、図１７（ｂ）に、アイテムリスト５１のデータ構成図を示す。【０１１６】
図示の例のアイテムリスト５１は、アイテムタイプ１１１、座標１１２、サイズ１１３、ポート１１４、デバイス名１１５、アドレス１１６、アイテムタイプ毎のデータ１１７、処理済みフラグ１１８の各データ項目より成る。アイテムリスト５１の各レコードが、操作表示画面の各アイテムに対応するものである。尚、図示の例に限らず、更に各アイテムの識別番号等があってもよい。【０１１７】
アイテムタイプ１１１には、そのアイテムの種別（スイッチ、ランプ、数値表示等）を示すアイテム種別識別情報が格納される。
また、ポート１１４とデバイス名１１５とアドレス１１６は、各アイテムに関するメモリ割当情報であり、上記割当メモリアドレスに相当する。つまり、ポート１１４に対応する接続機器４内のデバイス名１１５が示す外部メモリにおけるアドレス１１６が示す記憶領域が、そのアイテムに割り当てられた領域（上記割当メモリ領域）である。この割当メモリ領域の格納データが、そのアイテムに係わる制御／監視対象等の現在の状態を示すものである。例えばアイテムタイプ１１１がランプであれば、ランプの点灯／消灯を示すフラグデータ等が上記格納データである。【０１１８】
アイテムタイプ毎のデータ１１７は、例えばそのアイテムの画像（例えば、ランプＯＮ画像とランプＯＦＦ画像等）である。座標６２とサイズ６３は、このアイテム画像の表示位置と大きさを示すものである。【０１１９】
図８の説明に戻る。
上記ステップＳ３１の処理に続いて、アイテムリスト５１から任意の未処理のアイテム（その処理済みフラグ１１９がＯＦＦであるレコードに係わるアイテム）を、処理対象アイテムとする（ステップＳ３２）。そして、共有メモリ５５において上記処理対象アイテムに対応する該当レコードのデータ８４等を、メモリ情報７１として取得する（ステップＳ３３）。【０１２０】
尚、例えば、そのポート８１とデバイス名８２とアドレス８４が、上記処理対象アイテムのポート１１４とデバイス名１１５とアドレス１１６と同一であるレコードが、上記該当レコードである。【０１２１】
ここで、図１７（ａ）に上記メモリ情報７１の一例を示す。
図示の例のメモリ情報７１は、データ１０１、サイクリックアクセスカウンタ１０２、突発頻度アクセスカウンタ１０３、格上げ判定フラグ１０４等から成る。これらは、例えば上記該当レコードのデータ８４、サイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７をコピーしたものである。【０１２２】
但し、上記の例に限らず、例えばメモリ情報７１は上記データ１０１のみであっても構わない。
そして、上記取得したメモリ情報７１等を用いて、上記処理対象アイテムに係わる表示を行う（ステップＳ３４）。勿論、その際には、アイテムリスト５１における上記処理対象アイテムのデータ（座標１１２やサイズ１１３やアイテム画像等）も用いて、表示処理を行うことになる。【０１２３】
最後に、アイテムリスト５１における上記処理対象アイテムのレコードの処理済みフラグ１１８を処理済み（フラグＯＮ）にする（ステップＳ３５）。そして、アイテムリスト５１に未処理のアイテムが残っている場合には（ステップＳ３６，ＹＥＳ）、ステップＳ３２に戻る。アイテムリスト５１の全レコード（全アイテム）について上記ステップＳ３２〜Ｓ３５の処理を実行したら（ステップＳ３６，ＮＯ）、本処理を終了する。【０１２４】
次に、共有メモリ生成処理部６６について説明する。
図９は、共有メモリ生成処理部６６の処理フローチャート図である。
共有メモリ生成処理部６６は、例えば、アイテム生成部６１から呼び出される毎に、図９の処理を実行する。アイテム生成部６１は、例えば画面データ２２に基づいてアイテムリスト５１に新規リスト（新規レコード）を生成する毎に、共有メモリ生成処理部６６を呼び出す。その際、アイテム生成部６１は、上記生成した新規リスト（新規レコード）を示す情報（ポインタ）等を、共有メモリ生成処理部６６に渡す。【０１２５】
これより、共有メモリ生成処理部６６は、アイテムリスト５１における上記生成した新規リスト（新規レコード）を参照して、そのポート１１４、デバイス名１１５、アドレス１１６等を取得する（ステップＳ５１）。【０１２６】
そして、この取得データに基づいて、該当するレコードが既に共有メモリ５５に登録済みか否かを判定する（ステップＳ５２）。例えば、共有メモリ５５において、そのポート８１、デバイス名８２、アドレス８３が、上記取得したポート１１４、デバイス名１１５、アドレス１１６と同一であるレコードが存在する場合には、登録済みと判定する（ステップＳ５２、ＹＥＳ）。この場合には、ステップＳ５３の処理を行うことなく、ステップＳ５４の処理へ移行する。【０１２７】
一方、登録済みではない場合には（ステップＳ５２、ＮＯ）、共有メモリ５５に上記該当するレコードを追加登録する（ステップＳ５３）。すなわち、共有メモリ５５に新規レコードを追加して、そのポート８１、デバイス名８２、アドレス８３に、上記ステップＳ５１で取得したポート１１４、デバイス名１１５、アドレス１１６の各データを格納する。そして、ステップＳ５４の処理へ移行する。【０１２８】
ステップＳ５４では、共有メモリ５５における上記登録済みのレコードまたは上記ステップＳ５３で追加したレコードにおける上記サイクリックアクセスカウンタ８５を更新（＋１など）する（更新ではなく、強制的に所定値（ここでは‘１’）にするものと見做してもよい）。これによって、例えば後述するステップＳ７２の判定はＮＯとなる。そして、本処理を終了する。【０１２９】
次に、ロジック処理部６４の処理について説明する。
図１０、図１１は、ロジック処理部６４の処理フローチャート図（１／２）、（２／２）である。尚、以下、特に区別せずに“図１０等”などと記すものとする。【０１３０】
尚、ここでは、上記の通り、ロジック処理部６４は、後述する図１２、図１３の処理も行うものとする。
図１０等に示す処理例では、まず、ロジック指令リスト５２の全レコードの処理済みフラグ１２７を、初期化（フラグＯＦＦ）する（ステップＳ４１）。【０１３１】
ここで、ロジック指令リスト５２について説明する。
図１８は、ロジック指令リスト５２の具体例である。
図示の例のロジック指令リスト５２は、実行条件１２１、ポート１２２、デバイス名１２３、アドレス１２４、命令行数１２５、各命令１２６、処理済みフラグ１２７、指令メモリ前回値１２８等のデータ項目を有する。【０１３２】
ポート１２２とデバイス名１２３とアドレス１２４が、アクセス先を示すものである。すなわち、ポート１２２に対応する接続機器４内のデバイス名１２３が示す外部メモリデバイスにおけるアドレス１２４が示す記憶領域が、アクセス先である。これは、外部メモリへのアクセスを伴う任意のロジック処理に係わるアクセス先（以下、指令メモリと呼ぶ場合もあるものとする）である。そして、当該任意のロジック処理に係わる命令が、各命令１２６に１行ずつ格納される。そして、この命令１２６の数（行数）が、命令行数１２５に格納される。【０１３３】
そして、実行条件１２１には、上記各命令１２６を実行する為の条件が格納される。これは、基本的に、上記アクセス先の格納データに基づく条件となる。例えば、上記アクセス先の格納データが１ビットのフラグである場合、例えば、フラグＯＦＦ状態からフラグＯＮ状態への切り替わりが、実行条件１２１となる。この例では、例えば、ロジック処理部６４は、上記アクセス先のフラグが、ＯＦＦからＯＮに切り替わったと判定した場合に、上記各命令１２６を実行することになる。【０１３４】
上記実行条件１２１に係わる判定には、例えば指令メモリ前回値１２８が用いられる。すなわち、後述するように、ロジック処理部６４は、上記アクセス先の格納データを新たに取得する毎に、この取得データと指令メモリ前回値１２８とに基づいて上記判定を行う。例えば取得データがフラグＯＮで且つ指令メモリ前回値１２８がフラグＯＦＦの場合に、ＯＦＦからＯＮに切り替わったと判定する。また、判定結果に関係なく、上記アクセス先の格納データを新たに取得する毎に、この取得データを新たな指令メモリ前回値１２８として格納する。【０１３５】
尚、上記ロジック指令リスト５２における各レコード（特にその実行条件１２１、ポート１２２、デバイス名１２３、アドレス１２４、命令行数１２５、各命令１２６等）は、ロジック指令生成部６８が生成する。これは、例えば任意のロジックプログラムに基づいて生成する。この生成処理自体は、既存の処理であり、ここでは特に図示・説明はしないものとする。そして、ロジック処理部６４が、上記生成されたロジック指令リスト５２等を用いて図１０等の処理を実行する。図１０等の説明に戻る。【０１３６】
上記ステップＳ４１の処理を実行したら、上記ロジック指令リスト５２の各レコードを順次処理対象として図示のステップＳ４２−ステップＳ４６間の処理を繰り返す。
すなわち、上記ロジック指令リスト５２から未処理のレコード（ロジック指令）を参照して（ステップＳ４２）、例えばそのアクセス先（指令メモリ）を認識して、共有メモリ５５から、当該アクセス先から取得・格納されたデータであるデータ８４を取得する（ステップＳ４３）。すなわち、例えば、共有メモリ５５においてそのポート８１、デバイス名８２、アドレス８３が、上記処理対象のポート１２２、デバイス名１２３、アドレス１２４と同一であるレコードにおけるデータ８４を、取得する。【０１３７】
そして、取得したデータ８４と上記指令メモリ前回値１２８等に基づいて、指令メモリのデータに変化があったか否かを判定する（ステップＳ４４）。例えば上記一例のようにフラグＯＦＦからフラグＯＮの変化（あるいは逆に、フラグＯＮからフラグＯＦＦの変化）等があった場合には、指令メモリのデータに変化があったと判定する（ステップＳ４４，ＹＥＳ）。この場合、更に、上記実行条件１２１等に基づいて、実行トリガか否かを判定する（ステップＳ４７）。【０１３８】
上記一例では、フラグＯＦＦからフラグＯＮの変化であった場合には、実行トリガであると判定し（ステップＳ４７，ＹＥＳ）、ステップＳ４８の処理を実行し、その後、ステップＳ４９の処理を実行することになる。一方、上記一例では、フラグＯＮからフラグＯＦＦの変化であった場合には、実行トリガではないと判定し（ステップＳ４７，ＮＯ）、ステップＳ４８の処理を実行することなく、ステップＳ４９の処理を実行することになる。【０１３９】
ステップＳ４８の処理は、上記処理対象のロジック指令における上記各命令１２６を順次実行する処理である（１行目〜Ｎ行目までを順次実行する）。そして、各命令１２６の順次実行に伴って、任意の外部メモリアクセスが発生する毎に、例えばロジック処理部６４が有する不図示の突発メモリアクセス部６４ａによって、後述する図１２等の処理を実行させる。各ロジック指令毎に、ステップＳ４７がＹＥＳになるときしかステップＳ４８の処理は行われないので、図１２等の処理による外部メモリアクセスは、不定期の（突発的な）外部メモリアクセス処理となる。尚、アクセス先を示す情報は、例えば、命令１２６に含まれている。【０１４０】
また、ステップＳ４９の処理は、上記処理対象のロジック指令における上記指令メモリ前回値１２８を、上記ステップＳ４３で取得したデータ８４によって更新する処理である。【０１４１】
そして、最後に、上記処理対象のロジック指令における上記処理済みフラグ１２７を処理済み（フラグＯＮ）とする（ステップＳ４５）。
そして、上記ロジック指令リスト５２に未処理のレコード（ロジック指令）がある場合には（ステップＳ４６，ＹＥＳ）、ステップＳ４２に戻る。未処理のレコード（ロジック指令）がない状態になったら（ステップＳ４６，ＮＯ）、本処理を終了する。【０１４２】
図１２、図１３は、ロジック処理に伴う外部メモリアクセス処理（すなわち、上記不定期の（突発的な）アクセス処理）が生じた際のロジック処理部６４の処理フローチャート図（１／２）、（２／２）である。尚、以下、特に区別せずに“図１２等”などと記すものとする。【０１４３】
尚、上記の通り、図１２等の処理は、ロジック処理部６４が有する不図示の突発メモリアクセス部６４ａが実行するものと見做してもよい。但し、本説明では、突発メモリアクセス部６４ａについては特に言及せずに、ロジック処理部６４が実行するものと記す場合が多いものとする。【０１４４】
図１２等に示す処理では、ロジック処理部６４は、上記発生した不定期の（突発的な）アクセス処理のアクセス先を認識しており、このアクセス先のデータが共有メモリ５５に上記データ８４として格納されている場合には（換言すれば、サイクリックなアクセス処理に含まれている場合には）、このデータ８４を取得する。これは、例えば、まず、上記アクセス先が共有メモリ５５に登録されているか否かを判定する（ステップＳ６１）。これは、例えば、そのポート８１、デバイス名８２、アドレス８３が、上記アクセス先（そのポート、デバイス名、アドレス）と同一であるレコードが、共有メモリ５５に存在する場合には、登録されている（ステップＳ６１，ＹＥＳ）と判定する。【０１４５】
そして、もし、上記アクセス先が共有メモリ５５に登録されていないならば（ステップＳ６１，ＮＯ）、当該アクセス先を共有メモリ５５に新規登録する（ステップＳ６２）。これは、例えば、共有メモリ５５に新規レコードを追加して、当該新規レコードのポート８１、デバイス名８２、アドレス８３に、上記アクセス先（そのポート、デバイス名、アドレス）を格納する。また、当該新規レコードのサイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７は、予め決められた初期状態に設定する。すなわち、例えば、サイクリックアクセスカウンタ８５と突発頻度アクセスカウンタ８６は初期値‘０’に設定する。格上げ判定フラグ８７はフラグＯＦＦに設定する。【０１４６】
次に、共有メモリ５５から、該当レコード（上記アクセス先に係わる登録済みレコードまたは上記新規レコード）のデータ８４、サイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７を、メモリ情報７１として取得する。これらは、上記データ１０１、サイクリックアクセスカウンタ１０２、突発頻度アクセスカウンタ１０３、格上げ判定フラグ１０４として取得される（ステップＳ６３）。【０１４７】
そして、上記メモリ情報７１に基づいて、サイクリックなアクセス対象か否かを判定する（ステップＳ６４）。これは、ステップＳ６３で取得したメモリ情報７１におけるサイクリックアクセスカウンタ１０２が‘１’以上である場合もしくは格上げ判定フラグ１０４がフラグＯＮである場合は、サイクリックなアクセス対象であると判定する（ステップＳ６４，ＹＥＳ）。【０１４８】
尚、上記該当レコードが上記新規レコードである場合には、当然、ステップＳ６４の判定はＮＯとなる。
尚、ロジック処理に係わるアクセス先であっても後述する“格上げ”されたものに関しては、ステップＳ６４の判定はＹＥＳとなる。つまり、この様なアクセス先に関しては上記サイクリックなアクセス対象に含まれている。よって、上記アイテム表示に係わるサイクリックなアクセス処理と一緒にアクセスしているはずである。詳しくは後述する。【０１４９】
サイクリックなアクセス対象である場合には（ステップＳ６４，ＹＥＳ）、ステップＳ６３で取得したデータ８４（メモリ情報７１におけるデータ１０１）が、今回のアクセス処理で取得すべきデータであるはずである。つまり、サイクリックなアクセス処理によって上記アクセス先の記憶領域から取得された最新の（直近の）データが、データ８４として格納されているはずである。よって、この場合には、取得したデータ８４を用いて所定のロジック処理を実行することになる。そして、共有メモリ５５における上記アクセス先に係わる登録済みレコードの突発頻度アクセスカウンタ８６を更新して（＋１インクリメントする）（ステップＳ６８）、本処理を終了する。【０１５０】
一方、サイクリックなアクセス対象ではない場合には（ステップＳ６４，ＮＯ）、既存のアクセス処理を実行する。すなわち、上記アクセス先（ポート、デバイス名、アドレス）を含む上記コマンド１３０を生成して、これをコマンドリスト５３に追加格納する（ステップＳ６５）。そして、通信処理部６３がこのコマンド１３０について上記図６等の処理を実行して上記ステップＳ２１のアクセス完了イベント通知を行うのを待つ（ステップＳ６６）。そして、アクセス完了イベント通知を受信したら、そのときには上記該当レコードのデータ８４には上記アクセス先の最新の（直近の）データが格納されているはずである。よって、このデータ８４を取得して（ステップＳ６７）、取得したデータ８４を用いて上記所定のロジック処理を実行することになる。そして、共有メモリ５５における上記アクセス先に係わるレコードの突発頻度アクセスカウンタ８６を更新して（＋１インクリメントする）（ステップＳ６８）、本処理を終了する。【０１５１】
上記突発的なアクセスに係わる既存のアクセス処理では、上記ステップＳ６６の待ち時間が非常に長くなる場合もある。これは、例えば、コマンドリスト５３に他のコマンド１３０が既に格納されていて順番待ちを強いられる場合等である。これに対して、上記ステップＳ６４の判定がＹＥＳとなる場合には、共有メモリ５５から取得したデータ８４を用いて直ちにロジック処理を実行することができる。つまり、処理時間を短縮できる。また、コマンドリスト５３に格納されるコマンド１３０に係わる通信処理部６３の処理負荷を軽減できる。そして、突発的なアクセス処理によって上記リフレッシュ処理に係わるアクセス処理が邪魔されることが少なくなる。【０１５２】
また、ロジック処理に係わるアクセス先であっても後述する“格上げ”されたものに関しては、上記最適コマンド生成部６９による最適化の対象となるので、効率よくアクセス先のデータが取得されることが期待できる。詳しくは後述する。【０１５３】
上記“格上げ”等は、格付け判定処理部６６が行う。
図１４、図１５は、格付け判定処理部６６の処理フローチャート図（１／２）、（２／２）である。尚、以下、特に区別せずに“図１４等”などと記すものとする。【０１５４】
格付け判定処理部６６は、図１４等に示す処理を定期的に実行する。
まず、共有メモリ５５の各レコードを順次処理対象として、処理対象レコードについてステップＳ７１〜Ｓ７８の処理を実行することを繰り返す。【０１５５】
すなわち、まず、処理対象レコードのデータ８４、サイクリックアクセスカウンタ８５、突発頻度アクセスカウンタ８６、格上げ判定フラグ８７を、メモリ情報７１として取得する（ステップＳ７１）。但し、以下の説明では、メモリ情報７１の上記‘１０１’、‘１０２’等の符号を用いることなく、上記‘８４’、‘８５’等の符号をそのまま用いるものとする。【０１５６】
上記メモリ情報７１を用いて、まず、格付け対象か否かを判定する（ステップＳ７２）。上記ロジック処理に伴う突発的なアクセスに係わるレコードが、格付け対象となる。よって、上記処理対象レコードのサイクリックアクセスカウンタ８５が‘１’以上である場合には、処理対象レコードは上記リフレッシュ処理に係わるレコードであることになるので、格付け対象ではないと判定する（ステップＳ７２，ＮＯ）。【０１５７】
一方、サイクリックアクセスカウンタ８５が‘１’未満である（本例では‘０’である）場合には、処理対象レコードは格付け対象であると判定し（ステップＳ７２，ＹＥＳ）、続いて、処理対象レコードが格上げ対象であるか否かを判定する（ステップＳ７３）。これは、例えば、処理対象レコードの突発頻度アクセスカウンタ８６の値が、予め設定される第１の閾値以上である場合には、格上げ対象であると判定する（ステップＳ７３，ＹＥＳ）。そして、この場合には（ステップＳ７３，ＹＥＳ）、処理対象レコードの格上げ判定フラグ８７をフラグＯＮすることで“格上げ”する（ステップＳ７４）。そして、ステップＳ７７の処理へ移行する。【０１５８】
尚、ここでは“格上げ”とは、処理対象レコードに係わる突発的なアクセス処理が、上記リフレッシュ処理に係わるサイクリックなアクセス処理に含まれるようにすることを意味する。【０１５９】
また、処理対象レコードが格上げ対象ではないと判定された場合（ステップＳ７３，ＮＯ）、処理対象レコードが格下げ対象であるか否かを判定する（ステップＳ７５）。これは、例えば、処理対象レコードの突発頻度アクセスカウンタ８６の値が、予め設定される第２の閾値未満である場合には、格下げ対象であると判定する（ステップＳ７５，ＹＥＳ）。そして、この場合には（ステップＳ７５，ＹＥＳ）、処理対象レコードの格上げ判定フラグ８７をフラグＯＦＦすることで“格下げ”する（ステップＳ７６）。そして、ステップＳ７７の処理へ移行する。【０１６０】
つまり、本例では、処理対象レコードに係わる突発的なアクセス処理が、サイクリックなアクセス処理に含まれる状態となった後、ずっとこの状態を維持するとは限らず、サイクリックなアクセス処理から除外する場合（つまり“格下げ”する場合）もあり得るものとしている。尚、それ故に、上記の通り、ステップＳ６４がＹＥＳとなる場合であっても、ステップＳ６８の処理（突発頻度アクセスカウンタ８６を更新（＋１）する処理）を実行している。【０１６１】
尚、上記第１の閾値と第２の閾値の値は、任意に設定してよいが、「第１の閾値≧第２の閾値」の条件を満たすように設定することが望ましい。
また、尚、ステップＳ７５の判定がＮＯの場合には、そのままステップＳ７７の処理へ移行する。尚、格上げ判定フラグ８７がフラグＯＦＦであった場合には、強制的にステップＳ７５の判定をＮＯとするようにしてもよい。【０１６２】
図１４等の処理は、上記の通り定期的に（所定期間経過毎に）実行されるものであり、その都度、後述するステップＳ７７の処理によって、処理対象レコードの突発頻度アクセスカウンタ８６を初期状態（‘０’）に戻している。これより、図１４等の処理の際の突発頻度アクセスカウンタ８６の値は、上記所定期間内に突発的なアクセスが生じた回数（各アクセス先毎にロジック処理に伴って図１２等の処理が発生した回数）を、示すものと言える。【０１６３】
ここで、任意の所定期間Ａとその後の所定期間Ｂがあるものとする。そして、仮に、所定期間Ａにおいては任意のアクセス先に係わる突発的なアクセスの発生頻度が高かった為、所定期間Ａ経過時の図１４等の処理ではステップＳ７４の格上げ処理が実行されたものとする。これより、このアクセス先に関しては、その後の所定期間中の図１２等の処理では、ステップＳ６４がＹＥＳとなるが、上記の通りこの場合でもステップＳ６８の処理が実行される。ここで、仮に、所定期間Ｂにおいては上記アクセス先に係わる突発的なアクセスの発生頻度が低かった場合、所定期間Ｂ経過時の図１４等の処理ではステップＳ７６の格下げ処理が実行される場合もあり得ることになる。【０１６４】
そして、上述したステップＳ７２，Ｓ７３，Ｓ７５の判定結果が何であっても、処理対象レコードの突発頻度アクセスカウンタ８６を初期状態（‘０’クリア）にする（ステップＳ７７）。そして、共有メモリ５５に未処理のレコードがある場合には（ステップＳ７８，ＹＥＳ）、ステップＳ７１に戻る。【０１６５】
共有メモリ５５の各レコードを順次、上記処理対象レコードとして、上述した処理を実行し、全てのレコードについて処理実行したら（ステップＳ７８，ＮＯ）ステップＳ７９へ移行する。【０１６６】
ステップＳ７９、Ｓ８０の処理は、上記ステップＳ７１〜Ｓ７８の処理後の共有メモリ５５に基づいて、最適コマンドリスト５４を再作成するものである。
すなわち、まず、上記ステップＳ７１〜Ｓ７８の処理後の共有メモリ５５に基づいて、サイクリックアクセスメモリリスト７２を生成する（ステップＳ７９）。これは、共有メモリ５５の各レコードのなかで、所定の条件を満たすレコードを全て抽出して、当該抽出したレコードに基づいてサイクリックアクセスメモリリスト７２を生成する。上記所定の条件とは、サイクリックアクセスカウンタ８５が１以上であるか、格上げ判定フラグ８７がＯＮであることである（どちらか一方を満たせばよい）。【０１６７】
尚、ステップＳ７９，Ｓ８０の処理は、各ポート（接続機器４）を順次処理対象として処理実行するものである。よって、厳密には、上記所定の条件には更に、ポート８１が処理対象のポートであることも含まれる。【０１６８】
ここで、サイクリックアクセスメモリリスト７２の具体例を、図１６（ｂ）に示す。
図１６（ｂ）に示す例では、サイクリックアクセスメモリリスト７２は、デバイス名９１、アドレス９２から成る。この例では、上記抽出した各レコードのデバイス名８２、アドレス８３が、デバイス名９１、アドレス９２に格納されることになる。【０１６９】
そして、生成したサイクリックアクセスメモリリスト７２を最適コマンド生成部６９に渡す等して、最適コマンド生成部６９によって新たな最適コマンドリスト５４を生成させる（ステップＳ８０）。尚、最適コマンド生成部６９による最適コマンドリスト５４の生成処理は、上記特許文献１，２等に開示されている既存技術であるので、ここでは特に説明しないものとする。【０１７０】
最後に、未処理のポートがある場合には（ステップＳ８１，ＹＥＳ）、ステップＳ７９に戻り、次の処理対象のポートに関しても上記ステップＳ７９，Ｓ８０の処理を実行する。そして、全ポートについて処理実行したら（ステップＳ８１，ＮＯ）、本処理を終了する。【０１７１】
ここで、図２０に、本例のプログラマブル表示器１の処理機能図を示す。
尚、処理機能図は既に図４等に示しているが、図２０は他の観点から示したものである。【０１７２】
図２０に示す処理機能図では、プログラマブル表示器１は、ロジック制御部１５１、外部メモリ参照受付部１５２、データキャッシュ読込部１５３、参照頻度更新部１５４、格付け判定部１５５、統合部１５６、サイクリック読取部１５７、通信処理部１５８の各処理機能部を有する。尚、これら各種処理機能部は、例えば、上記ＣＰＵ１１が上記ＲＯＭ１２等に予め格納されているアプリケーションプログラムを実行することによって実現される。【０１７３】
ロジック制御部１５１は、任意のロジック処理を実行すると共に、該ロジック処理に伴う任意のアクセス先への不定期な（突発的な）アクセス処理が生じた場合、外部メモリ参照受付部１５２を介してアクセス先のデータを取得する。これは、例えば、外部メモリ参照受付部１５２に対して、アクセス先を示す外部メモリ識別子１６２を渡して、アクセス先からのデータ取得を依頼する。外部メモリ識別子１６２は、例えば、任意の接続機器４内の任意の外部メモリの任意のアドレス等である。【０１７４】
外部メモリ参照受付部１５２は、この依頼に応じて、データキャッシュ読込部１５３を介してデータバース１６０から上記アクセス先のデータ（外部メモリデータ１６１）を取得して、ロジック制御部１５１に渡す。更に、参照頻度更新部１５４によって、データベース１６０に記憶される上記アクセス先に係わる参照頻度データを更新させる。【０１７５】
尚、データベース１６０は、例えば上記共有メモリ５５に相当するものと見做してもよい。そして、データベース１６０には、例えば、アクセス先、データキャッシュ（アクセス先からの取得データ）、参照頻度、格付け状態等の各種データが記憶される。【０１７６】
また、尚、外部メモリ参照受付部１５２は、上記依頼されたアクセス先がデータベース１６０に未登録の場合には、当該アクセス先等をデータベース１６０に登録する。
また、尚、通信処理部１５８は、基本的に、何らかのデータ取得要求（アクセス処理）に応じて、通信線を介して接続機器４との通信処理を行う処理機能部である。そして、この通信処理によって取得したデータは、要求元に渡すか、あるいはデータベース１６０に格納する。【０１７７】
ここで、外部メモリ参照受付部１５２は、上記依頼に応じてデータバース１６０から該当データを取得する処理を、依頼を受けて直ちに行う場合と、通信処理部１５８によって接続機器４からデータ取得させてデータベース１６０に格納させた後に行う場合とがある。尚、後者は、既存技術のデータ取得方法と見做しても構わない。尚、これら２つの方法のどちらを行う場合でも、上記参照頻度データの更新は行う。【０１７８】
外部メモリ参照受付部１５２は、上記ロジック制御部１５１から依頼されたアクセス先が、後述する統合部１５６によって後述するサイクリックアクセス先群に統合されている場合には、直ちにデータベース１６０から該当データを取得する。一方、統合されていない場合には、上記依頼されたアクセス先を通信処理部１５８に渡してデータ取得を要求する。尚、上記統合されているか否かの判定は、例えば上記格付け状態に基づいて行う。例えば、上記格付け状態が後述する格上状態である場合には、統合されていると判定する。【０１７９】
上記データ取得要求を受けた通信処理部１５８は、接続機器４との通信処理を行って上記アクセス先のデータを取得し、この取得データをデータベース１６０に格納すると共に、データ取得完了を外部メモリ参照受付部１５２に通知する。【０１８０】
この通知を受けた外部メモリ参照受付部１５２は、データベース１６０から上記取得データを読出して、これを上記外部メモリデータ１６１としてロジック制御部１５１に渡す。【０１８１】
また、サイクリック読取部１５７は、不図示のサイクリックアクセス先群を保持しており、例えばサイクリックに、当該サイクリックアクセス先群の各アクセス先からのデータ取得を、上記通信処理部１５８を介して行う。不図示のサイクリックアクセス先群は、例えば上記リフレッシュ処理に係わる各アイテム毎のアクセス先である。【０１８２】
尚、上記不図示のサイクリックアクセス先群とは、例えば上述したリフレッシュ処理に係わるアクセス先群に相当する。つまり、上記表示画面上の各アイテムに係わるアクセス先群に相当する（特に、上記最適コマンドリスト５４に相当するが、この例に限らない）。【０１８３】
ここで、格付け判定部１５５は、例えば定期的に、上記データベース１６０に登録された各アクセス先毎に、対応する上記参照頻度データに基づいて、格付け判定を行い、判定結果を上記格付け状態として記憶する。格付け状態とは、普通状態と格上状態等である。格付け判定結果は、格上げ、格下げ、現状維持等である。普通状態において格上げと判定された場合には、格上状態に移行する。格上状態において格下げと判定された場合には普通状態に移行する。【０１８４】
例えば、参照頻度が所定の第１閾値以上であるならば、格上げと判定する。参照頻度が所定の第２閾値未満であるならば、格下げと判定する。尚、閾値の値は任意に設定してよいが、「第１閾値≧第２閾値」の条件を満たすように設定することが望ましい。【０１８５】
外部メモリ参照受付部１５２は、依頼されたアクセス先の格付け状態が、格上状態である場合には、上述した「直ちにデータベース１６０から該当データを取得する処理」を行う。一方、普通状態である場合には、上述したように、通信処理部１５８によるデータ取得を行わせることになる。【０１８６】
そして、統合部１５６は、例えば定期的に（所定期間経過する毎に）、データベース１６０において上記格付け状態が上記“格上状態”となっているアクセス先を判別する。そして、当該判別したアクセス先を格上状態アクセス先とし、該格上状態アクセス先を上記サイクリックアクセス先群に統合する。これによって、上記ロジック処理に伴うアクセス先であっても、上記リフレッシュ処理等に伴うサイクリックな接続機器４の外部メモリへのアクセス処理と一緒に、まとめて定期的にアクセス処理が行われることになる。そして、サイクリック読取部１５７は、当該サイクリックなアクセス処理で取得されたデータを、データベース１６０の該当領域に上書き格納する。【０１８７】
尚、統合部１５６は、格下げと判定されたアクセス先を、上記サイクリックアクセス先群から除外する処理も行うようにしてもよい。
また、尚、サイクリックアクセス先群は、一例として、上記最適コマンドリスト５４に相当するものであってもよい。そして、この例の場合には、統合部１５６は、上記最適コマンド生成部６９に相当する処理機能も有するものであってよい。また、この例の場合、格付け判定部１５５及び統合部１５６が、上記格付け判定処理部７０に相当するものと見做してもよい。【０１８８】
但し、上記サイクリックアクセス先群は、必ずしも最適化されたものでなくてもよい。つまり、サイクリックアクセス先群は、単なる上記リフレッシュ処理に係わる各アクセス先の集まりであっても構わない。【０１８９】
上述したように、本例のプログラマブル表示器１は、基本的に、表示画面上のアイテム表示のリフレッシュ処理に係わる外部メモリアクセスと、ロジック処理実行に伴う（不定期な；突発的な）外部メモリアクセスとを行うプログラマブル表示器を前提とする。そして、ロジック処理実行に伴う外部メモリアクセスの頻度が高い状態となっても、動作が遅くならないようにできる。【０１９０】
すなわち、本例のプログラマブル表示器１では、例えばロジック処理実行に伴う外部メモリアクセスのなかでアクセス頻度が高いアクセス先を、リフレッシュ処理に係わるアクセス先群に統合する。これによって、ロジック処理実行に伴う外部メモリアクセスが、リフレッシュ処理に係わる外部メモリアクセス処理を大きく妨げる事態を抑止できる。【０１９１】
特に、ロジック処理実行に伴う外部メモリアクセスのなかでアクセス頻度が高いアクセス先をリフレッシュ処理に係わるアクセス先群に含めたうえで最適化を行って上記最適コマンドリスト５４を生成する。これによって、外部メモリアクセスに係わる全体的な処理効率が向上する。【０１９２】
更に、ロジック処理実行に伴う突発的な外部メモリアクセスが生じる毎に逐一外部メモリアクセスする必要がなくなるので、ロジック処理に係わる処理効率が向上する。
尚、本例のプログラマブル表示器１は、例えば不図示の下記の処理機能部を有するもの見做すこともできる。【０１９３】
・表示画面上の各アイテムに応じた各アクセス先を示すアクセス情報が記憶されるアイテム情報記憶部；
・定期的に、上記アクセス情報に基づいて、上記接続機器内の各アクセス先からデータを取得して内部メモリに記憶する第１データ取得手段；
・任意のロジック処理を実行すると共に、該ロジック処理に伴うアクセス先である不定期アクセス先へのアクセス処理が生じた場合、該不定期アクセス先が上記アクセス情報に統合されているか否かを判定する。そして、該不定期アクセス先が上記アクセス情報に統合されていると判定した場合には、上記内部メモリから該不定期アクセス先に対応するデータを取得するロジック処理実行部；
・所定期間経過する毎に、アクセス頻度が所定の第１閾値以上である上記不定期アクセス先を、格上状態アクセス先とする格付け部；
・上記格上状態アクセス先となっている不定期アクセス先を、上記アクセス情報に統合する統合部；
・上記ロジック処理実行部によって不定期アクセス先がアクセス情報に統合されていないと判定された場合に、接続機器内の当該不定期アクセス先からデータを取得する第２データ取得部；
また、例えば、上記第１データ取得部は、任意の１以上の上記不定期アクセス先が上記アクセス情報に統合されている場合には、該各不定期アクセス先からもデータを取得して上記内部メモリに記憶する。【０１９４】
また、例えば、上記ロジック処理実行部は、上記不定期アクセス先が上記アクセス情報に統合されているか否かに係わらず、任意の上記不定期アクセス先へのアクセス処理が生じる毎に、該不定期アクセス先に係わる上記アクセス頻度を更新する。【０１９５】
また、例えば、上記格付け部は、上記格上状態アクセス先となっている上記不定期アクセス先に関する上記アクセス頻度が、所定の第２閾値未満である場合には、格下げを行うことで上記アクセス情報に統合させないようにする。【０１９６】
また、例えば、上記表示画面上の各アイテムに応じた各アクセス先に基づいて、最適化された上記アクセス情報を生成するアクセス最適化部を更に有するものであってもよい。
この例の場合、例えば、上記統合部は、上記表示画面上の各アイテムに応じた各アクセス先と上記格上状態アクセス先とに基づく上記最適化処理を上記最適化部で実行させることで、上記最適化されたアクセス情報を再生成させる。【０１９７】
また、この例の場合、上記第１データ取得部は、該再生成された上記最適化されたアクセス情報に基づいて、上記各アクセス先からのデータ取得と上記内部メモリへ記憶する処理を実行する。上記第１データ取得部によって取得された、上記各アイテムに応じた各アクセス先のデータを用いて、上記表示画面上の各アイテムの表示内容を制御するアイテム表示制御部を更に有するものであってもよい。【０１９８】
上記アイテム情報記憶部は、例えばアイテムリスト５１に相当すると見做してもよい。
上記第１データ取得手段は、例えば、上記サイクリック読取部１５７に相当すると見做してもよいし、最適コマンドリスト５４及び通信処理部６３に相当すると見做してもよい。【０１９９】
上記ロジック処理実行部は、例えば上記ロジック処理部６４等に相当すると見做してもよいし、上記ロジック制御部１５１及び外部メモリ参照受付部１５２に相当すると見做してもよい。【０２００】
上記格付け部は、例えば上記格付け判定部１５５に相当すると見做してもよい。
上記統合部は、例えば上記統合部１５６に相当すると見做してもよい。
あるいは、上記格付け部及び上記統合部が、上記格付け判定処理部７０に相当すると見做してもよい。【０２０１】
上記第２データ取得部は、例えば、上記外部メモリ参照受付部１５２及び通信処理部１５８に相当すると見做してもよい。あるいは、上記第２データ取得部は、上記コマンドリスト５３及び通信処理部６３に相当すると見做してもよい。【０２０２】
上記アクセス最適化部は、例えば上記最適コマンド生成部６９に相当すると見做してもよい。
例えば、アイテム表示に係わるアクセス先として、Ｄ１０２番地とＤ１０５番地があるものとする。この場合、上記最適コマンド生成部６９で生成される最適コマンドリスト５４では、アクセス先が「Ｄ１０２番地〜Ｄ１０５番地」となっている。よって、１回の通信で接続機器４から「Ｄ１０２番地〜Ｄ１０５番地」の格納データを纏めて取得することになる。これ自体は、上記の通り、既存技術である。【０２０３】
ここで、例えば、ロジック処理に係わる不定期アクセス先として例えばＤ１０８番地があるものとする。この例の場合、従来では、定期的に「Ｄ１０２番地〜Ｄ１０５番地」の格納データを纏めて取得する。そして、ロジック処理に伴って不定期に（突発的に）Ｄ１０８番地の格納データを取得することになる。よって、従来では、Ｄ１０８番地へのアクセス処理が頻繁に行われると、「Ｄ１０２番地〜Ｄ１０５番地」へのアクセス処理に影響し、リフレッシュ処理とロジック処理の両方の動作が遅くなる場合もあった。【０２０４】
これに対して、本手法では、上記不定期アクセス先が格上げされた場合、上記最適コマンド生成部６９で生成される最適コマンドリスト５４では、アクセス先が「Ｄ１０２番地〜Ｄ１０８番地」となるはずである。よって、１回の通信で接続機器４から「Ｄ１０２番地〜Ｄ１０８番地」の格納データを纏めて取得することになる。従って、上述した従来の問題を解消できることになる。【０２０５】
また、従来では、上記Ｄ１０８番地へのアクセス処理が発生する毎に、逐一、例えばコマンドリスト５３にコマンド１３０を格納することでアクセス処理を依頼して、データが取得されるまで待機する必要があった。これに対して、本手法では、上記定期的なリフレッシュ処理に伴って共有メモリ５５に格納されているデータを読み出せばよいので、ロジック処理に係わる処理効率が向上する。
【図１】
0005931276.tif 000002
【図２】
0005931276.tif 000003
【図３】
0005931276.tif 000004
【図４】
0005931276.tif 000005
【図５】
0005931276.tif 000006
【図６】
0005931276.tif 000007
【図７】
0005931276.tif 000008
【図８】
0005931276.tif 000009
【図９】
0005931276.tif 000010
【図１０】
0005931276.tif 000011
【図１１】
0005931276.tif 000012
【図１２】
0005931276.tif 000013
【図１３】
0005931276.tif 000014
【図１４】
0005931276.tif 000015
【図１５】
0005931276.tif 000016
【図１６】
0005931276.tif 000017
【図１７】
0005931276.tif 000018
【図１８】
0005931276.tif 000019
【図１９】
0005931276.tif 000020
【図２０】
0005931276.tif 000021
【図２１】
0005931276.tif 000022
【図２２】
0005931276.tif 000023