(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラと、表示装置などの外部のデータ取扱機器との間などにおいてデータを授受する方式であって、プログラマブルコントローラのデバイス番号に対応して、デバイス情報を格納する中間メモリを設けておき、その中間メモリにプログラマブルコントローラからのデバイス情報を逐次メモリし、データ取扱機器は、必要時に前記中間メモリのデバイス情報を参照してそのデバイス情報を用いて自己のプロジェクトを実行するプログラマブルコントローラとの間のデータ授受方式において、
データ取扱機器は、実行しようとするプロジェクトに、プログラマブルコントローラの、異なるデバイスサイズのデバイス情報を使用する複数のオブジェクトが割り当てられる一方、
プロジェクト実行前に、
（１）複数のオブジェクトから各オブジェクトで必要とするプログラマブルコントローラ番号、デバイス番号、デバイスサイズなどのオブジェクト情報を読み出してオブジェクトテーブルを作成し、
（２）そのオブジェクトテーブルをプログラマブルコントローラ番号別でかつデバイス番号順に並べ替え、
（３）そのデバイス番号順にデバイス単位毎で順次展開してオブジェクトデバイスイメージテーブルを作成し、
（４）オブジェクトデバイスイメージテーブルから、実際にデバイス情報を格納する中間メモリとしてのオブジェクトイメージを作成し、オブジェクトイメージ内でのデータ位置を示すポインタを前記オブジェクトテーブルに算出する処理を実施し、
（５）オブジェクトデバイスイメージテーブルの全範囲にわたって、１回の通信で読み出し、書き込み可能な複数のデバイス範囲を設定し、各デバイス範囲の先頭となるデバイス情報と、その先頭から一括して通信するデバイスまでの通信サイズとを、通信スキャンテーブルとして書き出す前処理を行い、
前処理終了後に、プログラマブルコントローラとの間で１回に通信できる情報サイズで、常時、若しくは適宜のタイミングで前記通信スキャンテーブルの内容に従って、プログラマブルコントローラとデータ取扱機器との間で通信を行い、
プログラマブルコントローラからのデバイス情報を前記オブジェクトイメージ内に逐次記録する一方、
前記データ取扱機器は、自己の動作に必要なデバイス情報を、前記オブジェクトイメージを参照して取り込むようにし、
特定のデバイス情報に対応するオブジェクトイメージに対応した通信スキャンテーブルの位置を計算し、その通信スキャンテーブル位置から次の通信を行い、表示更新するオブジェクトの優先順位を変更できるようにしたことを特徴とするプログラマブルコントローラとの間のデータ授受方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、表示装置などの外部データ取扱機器などとプログラマグルコントローラとの間でデータを授受する方式に関する。
【０００２】
【従来の技術】
従来、例えば、パーソナルコンピュータによって制御される表示装置では、図１に示すように、ある一つの画面表示動作（プロジェクト）には、プログラマブルコントローラの複数のデバイス情報が用いられて、いくつかの異なる内容表示（オブジェクト）が行われている。このような複数のオブジェクトを実行するとき、従来では、オブジェクト１つづつに対して、表示装置側からプログラマブルコントローラへ必要とするデバイス情報を要求し、プログラマブルコントローラから、その要求に応じたデバイス情報を表示装置へ返し、その通信の都度、表示装置の表示アプリケーションが同期して動作して、表示動作を行うようになっている。
【０００３】
【発明が解決しようとする課題】
前記従来の通信方式では、１つ１つのオブジェクト毎に通信を行っているので、オブジェクトが多数あるようなプロジェクトにおいては、非常に応答性の悪いシステムとなる。また、プロジェクトに含まれる複数のオブジェクトでは、デバイス情報が重複したりする場合もあり、そうすると、同じデバイス情報を何度も通信する結果、ますます応答性が落ちる結果になる。
この発明の課題は、応答性のよいプログラマブルコントローラとの間のデータ通信方式を提供することにある。また、プロジェクト側のアプリケーションが通信システムと全く非同期でデバイス情報を入手できるシンプルな通信制御を実現できるデータ通信方式を提供することにある。
【０００４】
【課題を解決するための手段】
上記課題解決のため、本願では、プログラマブルコントローラと、表示装置などの外部のデータ取扱機器との間などにおいてデータを授受する方式であって、プログラマブルコントローラのデバイス番号に対応して、デバイス情報を格納する中間メモリを設けておき、その中間メモリにプログラマブルコントローラからのデバイス情報を逐次メモリし、データ取扱機器は、必要時に前記中間メモリのデバイス情報を参照してそのデバイス情報を用いて自己のプロジェクトを実行するプログラマブルコントローラとの間のデータ授受方式において、
データ取扱機器は、実行しようとするプロジェクトに、プログラマブルコントローラの、異なるデバイスサイズのデバイス情報を使用する複数のオブジェクトが割り当てられる一方、プロジェクト実行前に、複数のオブジェクトから各オブジェクトで必要とするプログラマブルコントローラ番号、デバイス番号、デバイスサイズなどのオブジェクト情報を読み出してオブジェクトテーブルを作成し、そのオブジェクトテーブルをプログラマブルコントローラ番号別でかつデバイス番号順に並べ替え、そのデバイス番号順にデバイス単位毎で順次展開してオブジェクトデバイスイメージテーブルを作成し、オブジェクトデバイスイメージテーブルから、実際にデバイス情報を格納する中間メモリとしてのオブジェクトイメージを作成し、オブジェクトイメージ内でのデータ位置を示すポインタを前記オブジェクトテーブルに算出する処理を実施し、オブジェクトデバイスイメージテーブルの全範囲にわたって、１回の通信で読み出し、書き込み可能な複数のデバイス範囲を設定し、各デバイス範囲の先頭となるデバイス情報と、その先頭から一括して通信するデバイスまでの通信サイズとを、通信スキャンテーブルとして書き出す前処理を行い、前処理終了後に、プログラマブルコントローラとの間で１回に通信できる情報サイズで、常時、若しくは適宜のタイミングで前記通信スキャンテーブルの内容に従って、プログラマブルコントローラとデータ取扱機器との間で通信を行い、プログラマブルコントローラからのデバイス情報を前記オブジェクトイメージ内に逐次記録する一方、前記データ取扱機器は、自己の動作に必要なデバイス情報を、前記オブジェクトイメージを参照して取り込むようにし、特定のデバイス情報に対応するオブジェクトイメージに対応した通信スキャンテーブルの位置を計算し、その通信スキャンテーブル位置から次の通信を行い、表示更新するオブジェクトの優先順位を変更できるようにしたことを特徴とする（請求項１）。これによれば、データ取扱機器では、必要時に中間メモリの必要データ部分を参照することで自己の動作（プロジェクト）を実行でき、プログラマブルコントローラからのデバイス情報取得動作に同期してデータ取扱機器側のアプリケーションを制御する必要がない。
また、デバイス情報を一旦デバイス単位に展開することで、オブジェクトが重複したデバイス情報や、ビットデバイス情報を混在して使用する場合であっても、重複したデバイス情報を取得しなくてよく、通信時間を短縮できる。さらに、高速な更新が必要な特定のオブジェクトに対しては、優先的に通信することができる。
【０００６】
【発明の実施の形態】
以下、表示装置１にプログラマブルコントローラのデバイス情報を表示する態様で本願発明を説明する。図１において、制御対象機器をコントロールするために、複数のプログラマブルコントローラＰＬＣｎ，ｎ＋１…が設けてある。演算制御装置（例えばパーソナルコンピュータ）２がプログラマブルコントローラＰＬＣｎ，ｎ＋１…と接続され、パーソナルコンピュータ２は、表示装置１に接続されている。パーソナルコンピュータ２は、表示装置１に、プログラマブルコントローラＰＬＣｎ，ｎ＋１…のデバイス情報を表示するための表示アプリケーション３を備えている。この表示アプリケーション３により、表示装置１上には、例えば図１に示すように、所定の画面位置に、デバイス情報が単一に、あるいは、複数のデバイス情報からなるデバイス情報群として表示されるようになっている。この画面表示動作をプロジェクトと呼び、そのプロジェクトは、前述のようにいくつかのデバイス情報表示から構成され、これらのデバイス情報表示をオブジェクトと呼び、ここでは、オブジェクト１〜７の７つのオブジェクトにより１つのプロジェクトが構成されている。
【０００７】
各オブジェクト１〜７には、それの含まれるプロジェクト（画面表示動作）において、固有の番号が与えられており、これをテーブル番号として表示位置情報として利用している。各オブジェクト１〜７は、プログラマブルコントローラＰＬＣｎ，ｎ＋１…のＰＬＣ番号ｎ，ｎ＋１…、そのプログラマブルコントローラＰＬＣｎ，ｎ＋１…のデバイス番号、１デバイスの大きさを示すテーブルバイトサイズ（デバイスの種類などにより、「１デバイス」を構成する基本バイト単位は異なる。後述のオブジェクトイメージを参照するときの、展開イメージオフセット位置からのバイトサイズであり、デバイスサイズである）、デバイスがビットデバイスであった場合の、「１デバイスを構成する基本バイト単位」にした場合のそのデバイスの先頭からのオフセット量、及び、後述のオブジェクトイメージの先頭からのオフセット位置とを持っている（図２参照）。
【０００８】
演算処理装置２は、プロジェクトが実行される（画面表示のアプリケーションが実行される）のに先立ち、前記各オブジェクト１〜７で使用されるデバイス情報を整理する前処理プログラム４を有する。この前処理プログラム４では、以下の処理が行われる。
（１）プロジェクト（画面表示アプリケーション）から、そのプロジェクトに含まれる複数のオブジェクト情報を読み出し、これを演算処理装置２のメモリ領域に、図２に示すようなオブジェクトテーブル５として記憶する。各オブジェクト１〜７のオブジェクト情報は前記した通りであり、ここでは、７つのオブジェクト１〜７のデータが順に記憶され、メモリ領域において、各オブジェクトデータの先頭アドレスが順にＳ１、Ｓ２…Ｓ７となっている。
（２）次に、こうして作られたオブジェクトテーブル５のテーブルデータを、プログラマブルコントローラ番号別でデバイス番号順にソートし、その並べ替えた結果を、各オブジェクトデータの先頭アドレスＳ１〜Ｓ７により図３に示すようにオブジェクトソートポインタ６として保存する。
（３）次にオブジェクトソートポインタ６の示す内容に従って、オブジェクトテーブル５を参照すると、図４の右側のテーブルの並びとなるので、この並べ替えられたオブジェクトテーブルの内容に従って、プログラマブルコントローラＰＬＣｎ，ｎ＋１…毎に、しかも、デバイス番号順に、デバイス単位毎で順に展開してオブジェクトデバイスイメージテーブル７を作成する。
【０００９】
いま、１デバイスが２バイトで構成され、テーブル番号２のオブジェクト２では、プログラマブルコントローラｎのデバイス番号ｍから８バイト分を使用するので、８バイト／２バイトで４デバイスのデータ、つまり、デバイス番号ｍからデバイス番号ｍ＋３までを使用し、テーブル番号４のオブジェクト４では同様にしてデバイス番号ｍ＋２からデバイス番号ｍ＋５までを使用し、テーブル番号６のオブジェクトではデバイス番号ｍ＋１０のみを使用し、テーブル番号５のオブジェクトではデバイス番号ｍ＋１０から５デバイス分つまりデバイス番号ｍ＋１４までを使用する。また、テーブル番号７，３，１のオブジェクト７，オブジェクト３，オブジェクト１は、夫々ビットデバイスであって、順にビットデバイスｐ、ｐ＋４、ｐ＋５の夫々１ビットデータを使用するとする。尚、ビットデバイスとは、例えばプログラマブルコントローラｎ内のデバイス番号ｐの１６ビット（２バイト）のメモリエリアの各１ビット単位のデバイスを指し、ビットデバイスオフセット量とは、デバイス番号ｐの１６ビットの先頭ビットからのオフセット量である。
オブジェクトイメージデバイステーブル７では、デバイス単位で展開されているので、並べ替えられたオブジェクトテーブルの内容をこのオブジェクトイメージデバイステーブル７に対応づけていくと、テーブル番号２，４のオブジェクトデータは、図４のように、オブジェクトイメージデバイステーブル７において、デバイス番号ｍ＋２、ｍ＋３の部分で重なる。また、テーブル番号６，５のオブジェクトデータは、デバイス番号ｍ＋１０で重なる。このことは、プロジェクト中に、重複するデバイス情報を含んでいる複数のオブジェクトがある場合には、それらの重複するデバイス番号即ち通信情報の重複は、このオブジェクトイメージデバイステーブル７を作成することで吸収されることを示している。また、テーブル番号７，３，１の各ビットデバイスは、そのビットデバイスの存在するデバイス番号ｐの１６ビット内に含まれるので、デバイス単位で通信することで、これら複数のビットデバイス情報も一度に取得されることになる。
【００１０】
（４）次に、プログラマブルコントローラｎ，ｎ＋１…からのデバイス情報を実際にバイト単位で格納する為のオブジェクトイメージ８を作成する。オブジェクトイメージ８は、前述のオブジェクトデバイスイメージテーブル７を参照して、各デバイス番号に対応してバイト単位で展開して作成される。即ち、デバイス番号ｍに対して、オブジェクトイメージ＋０，＋１の２バイト領域が対応し、デバイス番号ｍ＋１に対してオブジェクトイメージ＋２、＋３の２バイト領域が対応し、というように対応づけてある。そして、このオブジェクトイメージ８の先頭から、前記オブジェクトテーブル５におけるオブジェクトデータの展開イメージオフセット位置がポインタとして夫々算出され、オブジェクトテーブル５の、対応するオブジェクトデータの展開イメージオフセット位置Ｔ１〜Ｔ７に書き込まれる。例えば、オブジェクト２（テーブル番号２）では、デバイス番号ｍから８バイト分のデータを必要とするので、オブジェクトイメージ＋０を先頭とするためオフセット位置は「０」、オブジェクト４（テーブル番号４）では、デバイス番号ｍ＋２から８バイト分のデータを必要とするので、オブジェクトイメージ＋４を先頭とするためオフセット位置は「４」というように書き込まれ、同様に、オブジェクト５，６では、オフセット位置は「１２」、ビットデバイスであるオブジェクト７，３，１では、オフセット位置は「２２」となり、これらが対応する展開イメージオフセット位置Ｔ５、Ｔ６、Ｔ７、Ｔ３、Ｔ１に書き込まれる。書き込まれた様子を、図２ではこれらの数値を括弧で囲んで表現している。
【００１１】
（５）更に、オブジェクトデバイスイメージテーブル７の先頭デバイスをチェックし、その先頭デバイスから、１回の通信で読み出し、書き込み可能なデバイスまで検索する。そのデバイス群を通信するためのサイズ（一括通信サイズ）を算出し、先の先頭通信デバイス情報と共に、通信スキャンテーブル９の最初のポインタに設定する。次に、先の一括通信サイズの最終となった次のデバイスを先頭デバイスとして、上記同様に１回の通信で読み出し、書き込み可能なデバイスまで検索し、一括通信サイズを算出し、先頭通信デバイス情報と共に、通信スキャンテーブル９の次のポインタに設定する、という処理をオブジェクトデバイスイメージテーブル７の最終ポインタまで繰り返し、通信スキャンテーブル９を作成する。
【００１２】
前処理プログラム４により、以上の前処理が終了した後、演算処理装置２は、常時、通信スキャンテーブル９の内容に従って、その先頭からプログラマブルコントローラｎ，ｎ＋１…との間で通信を行う。すると、プログラマブルコントローラｎ，ｎ＋１…からのデバイス情報は、オブジェクトイメージ８の、各デバイス番号に対応付けられた位置にバイト単位で逐次記録されていく。一方、表示アプリケーション３は、そのようにして逐次書き換えられていくプログラマブルコントローラｎ，ｎ＋１…からのデバイス情報を、必要に応じてオブジェクトに対応したオブジェクトテーブル５の展開イメージオフセット位置のデータと、オブジェクトイメージ８におけるテーブルデータサイズを用いて、前記オブジェクトイメージ８を参照し、画面表示を行う。例えば、プロジェクト２では、展開イメージオフセット位置が「０」でテーブルバイトサイズが「８」なので、オブジェクトイメージ８の先頭（オブジェクトイメージ＋０）から８バイト分（オブジェクトイメージ＋７まで）のデータを取得して表示する。このように、表示アプリケーション３は、デバイス情報を逐次書き換えていく通信システムと非同期でデバイス情報をやりとりできるので、通信制御が極めてシンプルとなる。また、オブジェクト２とオブジェクト４のように、各オブジェクトで重複するデバイス情報を扱っている場合でも、そうした重複デバイス情報をデバイス単位に展開することで排除しており、重複してデバイス情報を取得する必要がなく、通信データサイズを小さくできる。
【００１３】
なお、通信スキャンテーブル９に基づいてオブジェクトイメージ８が逐次書き換えられていくが、例えばオブジェクト２で利用するデバイス番号ｍ〜ｍ＋３に対応するオブジェクトイメージ８のオブジェクトイメージ＋０〜＋８の途中（例えばオブジェクトイメージ＋５）まで書き換えが行われたときに、オブジェクト２がオブジェクトイメージ８を参照すると、オブジェクトイメージ＋０〜＋５までは新しいデータであるが、オブジェクトイメージ＋６以後は、１回前のデータである。これをそのまま取得すると、１つのオブジェクトに新旧のデバイス情報が混在して取得されてしまって好ましくないので、このような場合にはオブジェクトイメージ＋０〜＋８のデータを取得しないようにする。具体的には、オブジェクトイメージ８の１バイト毎のデータエリアに書き込まれる各デバイス情報に、オブジェクトイメージ８のすべてのデータの書き換えが行われる度にカウントするカウントデータを付加し、そのカウントデータが、取り込もうとするオブジェクトイメージ８の対象データ範囲で一致していれば、デバイス情報を取得し、一致していなければ、取得しないというようにする。
【００１５】
【発明の効果】
以上のように本発明では、データ取扱機器では、必要時に中間メモリの必要データ部分を参照することでプロジェクトを実行でき、プログラマブルコントローラからのデバイス情報取得動作にデータ取扱機器側のアプリケーションを同期する必要がなく、単純な通信制御となる。また、デバイス情報をデバイス単位に展開することで、オブジェクトが重複したデバイス情報や、ビットデバイス情報を混在して使用する場合であっても、重複したデバイス情報を取得しなくてよく、１つのプロジェクトにおけるデータ通信時間を短縮できる利点がある。
また、上記実施形態では、通信スキャンテーブルをその先頭から順に読み出してデータ通信を行っているが、特定のデバイス情報の即時の表示更新を行いたい場合には、そのデバイス情報に対応するオブジェクトイメージに対応した通信スキャンテーブルの位置を計算し、その通信スキャンテーブル位置から次の通信を行うようにすればよく、オブジェクトに重みを持たせて、高速な更新が必要なオブジェクトに対しては、優先的に通信させることができる。
【図面の簡単な説明】
【図１】本願発明の全体構成を示すブロック図である。
【図２】オブジェクトテーブルを示す図である。
【図３】オブジェクトソートポインタの説明図である。
【図４】オブジェクトデバイスイメージテーブルの説明図である。
【図５】オブジェクトイメージの説明図である。
【図６】通信スキャンテーブルの説明図である。
【符号の説明】
１  表示装置
２  演算制御装置
３  表示アプリケーション
５  オブジェクトテーブル
７  オブジェクトデバイスイメージテーブル
８  オブジェクトイメージ
９  通信スキャンテーブル
ＰＬＣｎ、ＰＬＣｎ＋１  プログラマブルコントローラ
【図１】
0004433492.tif 000002
【図２】
0004433492.tif 000003
【図３】
0004433492.tif 000004
【図４】
0004433492.tif 000005
【図５】
0004433492.tif 000006
【図６】
0004433492.tif 000007