(57)【要約】      （修正有）【課題】  ラダープログラムを表示するに際し、入出力を容易に区別することが出来る記号を付記することが出来るＰＬＣ用ツール装置を提供すること。【解決手段】  プログラマブルコントローラ用の高機能ユニットの１ユニット当たりに設定されたメモリ領域が、何ユニット分必要かを特定する占有チャネル数と、その高機能ユニットが使用する入力チャネル数と、出力チャネル数とを含む機種情報を高機能ユニットの種類毎に定義した機種情報定義ファイルを取得する取得手段と、その取得手段により取得した機種情報に基づき、プログラマブルコントローラを構成する高機能ユニットが使用するメモリアドレスの割り付けを、入力と出力を区別しながら行なう手段と、前記プロブラマブルコントローラ用のラダープログラムに表示するアドレスに、入出力を区別する情報を付加して表示する機能と、を備えて構成した。【選択図】        図４
2006243841.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラのＣＰＵユニットに接続される各種の高機能ユニットについて、ＣＰＵユニットのメモリを割付けを自動的に行うＰＬＣ用ツール装置であって、
プログラマブルコントローラ用の各種の高機能ユニットについて、それぞれのユニットのデータのメモリ割付けに必要な占有チャネル数と入力チャネル数と出力チャネル数とを含む機種情報を、高機能ユニットの種類毎に定義した機種情報定義ファイルを取得する取得手段と、
その取得手段により取得した機種情報に基づき、高機能ユニットが使用するＣＰＵユニットのメモリのメモリアドレスの割り付けを、高機能ユニットにおける入力データと出力データとを区別しながら行なう手段と、
を備えた特徴とするＰＬＣ用ツール装置。
【請求項２】
前記高機能ユニットが使用するＣＰＵユニットのメモリのメモリアドレスの割り付けを行なう手段は、
入力チャネルと出力チャネルの割り付ける順番を予め決めており、
処理対象の高機能ユニットに設定されたユニット番号に基づき、その高機能ユニットが使用する先頭のメモリアドレスを求める機能と、
その先頭のメモリアドレスから前記割り付ける順番に従って入力チャネル数分と出力チャネル数分のメモリアドレスを連続して設定する機能と、
を備えたことを特徴とする請求項１に記載のＰＬＣ用ツール装置。
【請求項３】
前記ＰＬＣ用ツール装置は、
ユーザプログラムを作成する手段と、
作成したユーザプログラムと、その中のシンボル・接点と、対応するアドレスとを表示する手段と、を備え、
ユーザプログラムの中のシンボル・接点について、そのシンボル・接点が入力データなのか出力データなのかの区別ができるように記号を付して表示する、
ことを特徴とする請求項１に記載のＰＬＣ用ツール装置。
【請求項４】
プログラマブルコントローラのＣＰＵユニットに接続される基本ＩＯユニットについて、ＣＰＵユニットのメモリを割付けを自動的に行うＰＬＣ用ツール装置であって、
プログラマブルコントローラ用の各種の基本ＩＯユニットについて、それぞれのユニットのデータのメモリ割付けに必要な占有チャネル数と入出力タイプとを含む機種情報を、基本ＩＯユニットの種類毎に定義した機種情報定義ファイルを取得する取得手段と、
その取得手段により取得した機種情報に基づき、基本ＩＯユニットが使用するＣＰＵユニットのメモリのメモリアドレスの割り付けを、基本ＩＯユニットにおける入力データと出力データとを区別しながら行なう手段と、
ユーザプログラムを作成する手段と、
作成したユーザプログラムと、その中のシンボル・接点と、対応するアドレスとを表示する手段と、を備え、
ユーザプログラムの中のシンボル・接点について、そのシンボル・接点が入力データなのか出力データなのかの区別ができるように記号を付して表示する、
ことを特徴とするＰＬＣ用ツール装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣ用ツール装置に関するものである。
【背景技術】
【０００２】
生産工場の製造現場などに設置されるＦＡ（ファクトリーオートメーション）システムの制御を司るＰＬＣ（プログラマブルロジックコントローラ）は、制御プログラムに基づいて演算実行するＣＰＵユニット、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、上位端末装置などと接続してそれと情報をやりとりする通信ユニット、各ユニットに電源を供給する電源ユニット、などの複数のユニットを組み合わせることにより構成されている。
【０００３】
ＣＰＵユニットは、制御プログラムを記憶するプログラムメモリと、入力ユニットが取り込んだ入力信号と制御プログラムの演算結果である出力信号とをそれぞれ記憶するデータメモリと、制御プログラムに基づく演算処理等をする処理プロセッサ部とを含んで構成される。ＣＰＵユニットにおける制御プログラムは、ＰＬＣを稼働させる前に、ＰＬＣの使用者（ユーザ）がプログラミングツール装置を操作することにより、例えばラダー図（ラダーチャート）で表現されるラダー言語で記述して作成される。そして、作成されたユーザプログラムは、プログラミングツール装置によってラダー図のシンボルが命令語に変換され、個々のＣＰＵユニットに応じたオペランドが規定され、対象となるＣＰＵユニットにダウンロードされる。ＣＰＵユニットの処理プロセッサ部は、プログラムメモリからユーザプログラムの命令語を順次読み出して、この命令語のオペランドに従うメモリのアドレスに基づいてデータメモリから入力信号の情報を読み出して、このデータをユーザプログラムに従って論理演算し、演算結果をデータメモリに記憶し、記憶した演算結果を出力信号として出力ユニットへ出力する。ＣＰＵユニットの処理プロセッサ部は、この入力信号読み出し処理、ユーザプログラム実行処理、出力処理の出力処理、をサイクリックに実行する。
【０００４】
プログラミングツール装置を用いて作成したユーザプログラム（例えばラダー図を用いて作成したプログラム）は、後述する実施の形態でも記載したように、プログラム上で接点を表すシンボルの上に、そのユーザプログラムを実行するＣＰＵユニットにおいて使用するＩＯメモリ等におけるメモリアドレスを併記する。接点は、ＣＰＵユニットがＩＯデータとして扱う対象を指し、具体的にはセンサやスイッチの接点を言う。シンボルは、ラダープログラム上で接点を示す表現記号のことで、例えば、入力接点のシンボルは「−││−」であり、出力接点のシンボルは「−○−」である（以下の説明では、ラダープログラムにおけるシンボルまたは接点を特に区別しない場合は、「シンボル・接点」と書くこともある）。メモリアドレスは、接点に対応する各ＩＯデータをメモリ割付することで決まるもので、ＣＰＵユニットが演算に使用する各ＩＯデータが格納されるＩＯメモリのアドレス番号である。
【０００５】
従来、ＣＰＵユニットのメモリの使用アドレスと入出力データとの関係をプログラミングツール装置が自動的に行うこと、つまりメモリ割付をプログラミングツール装置に自動的にさせることができたのは、基本ＩＯユニットだけである。その理由は、接点数が同じ基本ＩＯユニットであれば、種別やモデル名が異なる基本ＩＯユニットであっても、占有チャネル数、入力チャネル数、出力チャネル数が同じなので、メモリ割付が単純だからである。
【０００６】
ところで、上記のメモリアドレスを表示するに際し、対応するシンボル・接点が入力なのか出力なのかを識別する記号をプログラム作成者が手動で付す、または基本ＩＯユニットの接点に限ってプログラミングツール装置が自動で付すことが行なわれている。例えば、入力の場合には、アドレスの前に「Ｉ」を付記し、出力の場合にはアドレスの前に「Ｑ」を付記している。
【０００７】
係る接点等が、入力ユニットや出力ユニットのような基本ＩＯユニットの場合には、ＣＰＵユニットのメモリ領域を使用するチャネル数が一定であり、接点に対応するアドレスは、単純に連続した値が割り当てられるので、比較的容易に判断できる。その理由は、入力タイプの入力ユニットなら、メモリ割当したアドレスはすべてＩＮデータに対応するし、出力タイプの出力ユニットならメモリ割当したアドレスはすべてＯＵＴデータに対応することがはっきりしているからである。また、入力と出力が混在していても、入力接点数や出力接点数が同じ基本ＩＯユニットであれば、種別やモデル名が異なる基本ＩＯユニットであっても、占有チャネル数、入力チャネル数、出力チャネル数がいつも同じなので、メモリ割付が単純だからである。つまり、ＩＮデータに対応するメモリアドレスであれば入力データであることがはっきり区別できるし、出力ユニットのＯＵＴデータに対応するメモリアドレスであれば出力データであることがはっきり区別できる。係る情報を利用し、基本ＩＯユニットにおいては、ユニットの名称等に基づいてプログラミングツール装置が自動的に上記の記号を付記する技術が開発されている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、位置制御ユニットや、モーションコントローラユニット等の高機能ユニットの場合、各ユニットの種別およびモデル名によって、使用するチャネル数が一定ではないばかりか、占有チャネル数、入力チャネルと、出力チャネルの使用数も各ユニットで異なる。なお、占有チャネル数とは、そのユニットについてメモリ割当をする際に必要とするＣＰＵユニットのＩＯメモリの領域の量である。入力／出力チャネル数は、入力データ、出力データをメモリ割付するのにそれぞれ必要なＣＰＵユニットのＩＯメモリの領域の量である。実際には、そのユニットの占有チャネル数に基づいて、ＣＰＵユニットのＩＯメモリを割付け、その割付けた占有チャネル数ぶんを、入力チャネル数と出力チャネル数とに配分する。そのように各種ユニットごとに占有チャネル数、入力チャネル数、出力チャネル数がことなると、その結果、従来技術にて上述したように、ＣＰＵユニットのメモリの使用アドレスと入出力データとの関係をプログラミングツール装置が自動的に行うこと、つまりメモリ割付をプログラミングツール装置に自動的にさせることができなくなる。そのため、プログラム作成者が使用する高機能ユニットの占有チャネル数と入力チャネル数と、出力チャネル数をそれぞれマニュアルで調べ、その調べた情報をユニット構成情報に高機能ユニットを登録するときに手動で入力し、使用アドレスと入出力の関係を手動で割り付けしていた。また、ラダープログラムのシンボル・接点の入力／出力の区別ができるように記号を付して表示することをプログラミングツール装置に自動的にさせることはできなかった。そのため、プログラム作成者がラダープログラムを作成するに際し、シンボル・接点の入出力を区別するための記号を都度、手動で付記するようにしていた。従って、ユーザは、係るマニュアル等を参考にしつつ上述した各チャネル数を調べるとともに、マニュアル操作で登録する必要があり、使用する高機能ユニットの種類が増えるほど、マニュアルを検索する回数も増えるため、煩雑である。
【０００９】
本発明は、ユニットの種別およびモデル名によって、ＣＰＵユニットのメモリ割付のための使用するチャネル数が変わり、入力チャネルと出力チャネルの使用数も異なるようなユニットであっても、自動的にメモリ割付をすることができるプログラミングツール装置を提供することにある。また、ユニットの種別によって、ＣＰＵユニットのメモリ割付のための使用するチャネル数が変わり、入力チャネルと出力チャネルの使用数も異なるようなユニットであっても、ラダープログラムのシンボル・接点の入力／出力の区別をするための記号を自動的に付記することができるプログラミングツール装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記した目的を達成するために、本発明のＰＬＣ用ツール装置は、プログラマブルコントローラのＣＰＵユニットに接続される各種の高機能ユニットについて、ＣＰＵユニットのメモリの割付けを自動的に行うＰＬＣ用ツール装置であって、
プログラマブルコントローラ用の各種の高機能ユニットについて、それぞれのユニットのデータのメモリ割付けに必要な占有チャネル数と入力チャネル数と出力チャネル数とを含む機種情報を、高機能ユニットの種類毎に定義した機種情報定義ファイルを取得する取得手段（例えばＳ４からＳ５を実行する機能）と、その取得手段により取得した機種情報に基づき、高機能ユニットが使用するＣＰＵユニットのメモリのメモリアドレスの割り付けを、高機能ユニットにおける入力データと出力データとを区別しながら行なう手段（例えばＳ６を実行する機能）と、を備えて構成した。
【００１１】
また、ユーザプログラムを作成する手段と、作成したユーザプログラムと、その中のシンボル・接点と、対応するアドレスとを表示する手段と、を備え、ユーザプログラムの中のシンボル・接点について、そのシンボル・接点が入力データなのか出力データなのかの区別ができるように記号を付加して表示する機能（例えばＳ７を実行する機能）と、を備えて構成した。
【００１２】
機種情報定義ファイル自体は、パラメータ設定用ツール装置が保有していても良いし、別のサーバ・外部記憶装置・データベース等に格納されていても良い。要は、係る機種情報定義ファイルをアクセスして取得することが出来るようになっていればよい。
【００１３】
そして、好ましくは、前記高機能ユニット用のメモリアドレスの割り付けを、入力と出力を区別しながら行なう手段は、入力チャネルと出力チャネルの割り付ける順番を予め決めており、処理対象の高機能ユニットに設定されたユニット番号に基づき、その高機能ユニットが使用する先頭のメモリアドレスを求める機能と、その先頭のメモリアドレスから前記割り付ける順番に従って入力チャネル数分と出力チャネル数分のメモリアドレスを連続して設定する機能と、を備えて構成することである。
【００１４】
本発明によれば、高機能ユニットの種類に応じて機種情報定義ファイルを作成することで、高機能ユニットの種類（機種）ごとに異なっていた占有チャネル（ＣＨ）数、入出力ＣＨ数を静的情報として保持することができ、その情報を元にラダープログラムで表示するアドレスに入出力を区別する情報を自動的に割り付けて表示することができる。
また、本発明のＰＬＣ用ツール装置では、プログラマブルコントローラのＣＰＵユニットに接続される基本ＩＯユニットについて、ＣＰＵユニットのメモリを割付けを自動的に行うＰＬＣ用ツール装置であって、プログラマブルコントローラ用の各種の基本ＩＯユニットについて、それぞれのユニットのデータのメモリ割付けに必要な占有チャネル数と入出力タイプとを含む機種情報を、基本ＩＯユニットの種類毎に定義した機種情報定義ファイルを取得する取得手段と、その取得手段により取得した機種情報に基づき、基本ＩＯユニットが使用するＣＰＵユニットのメモリのメモリアドレスの割り付けを、基本ＩＯユニットにおける入力データと出力データとを区別しながら行なう手段と、ユーザプログラムを作成する手段と、作成したユーザプログラムと、その中のシンボル・接点と、対応するアドレスとを表示する手段と、を備え、ユーザプログラムの中のシンボル・接点について、そのシンボル・接点が入力データなのか出力データなのかの区別ができるように記号を付して表示するように構成しても良い。
【００１５】
本発明によれば、高機能ユニットと同種の原理に従い、基本ＩＯについても同様にラダープログラムに表示するアドレスに、入出力を区別する情報を付加して表示することができる。
【００１６】
前記入出力を区別する情報は、入力を示す記号（実施の形態では「Ｉ」）と、出力を示す記号（実施の形態では「Ｑ」）を前記アドレスに付加するものとすることができる。もちろん、実施の形態と異なる記号を用いても良いし、表示色を異ならせたり、所定のマークを付加したり、表示するフォントを異ならせるなど、各種の態様をとることができる。要は、入力のアドレスなのか、出力のアドレスなのかがわかるように表示されればよい。
【００１７】
高機能ユニットは、ユニットの種別およびモデル名によってＣＰＵユニットのメモリ割付のための使用するチャネル数が変わり、入力チャネルと出力チャネルの使用数も異なるようなユニットの総称を意味する。この種のユニットは、アナログデータに基づいて処理する機能や特殊な演算を行う機能を有するので、接点数と同じビット数のデータを扱う基本ＩＯユニットと比べて多量のデータを扱うこととなり、それだけ多数のＣＰＵユニットのＩＯメモリの領域を必要とする。補足すると、ユニット種別というのは、例えば、位置制御ユニットやモーションコントローラユニット等のユニットの分類のことであり、ユニットモデル名というのはいわゆる型式（かたしき）のことで、例えば位置制御ユニットでも色々な種類のユニットがあるが、その特定のユニット製品を一義的に指す最小単位の分類のことである。この高機能ユニットには基本ＩＯユニットを含まない。
【発明の効果】
【００１８】
本発明では、ユニットの種別およびモデル名によってＣＰＵユニットのメモリ割付のための使用するチャネル数が変わり、入力チャネルと出力チャネルの使用数も異なるようなユニットであっても、プログラミングツール装置がそのユニットに適切なメモリ割付を自動的に行うことができる。また、ユニットの種別およびモデル名によってＣＰＵユニットのメモリ割付のための使用するチャネル数が変わり、入力チャネルと出力チャネルの使用数も異なるようなユニットであっても、プログラミングツール装置が自動的に、ラダープログラムのシンボル・接点の入力／出力の区別をするための記号を付記することができる。
【発明を実施するための最良の形態】
【００１９】
図１は、ＰＬＣ用ツール装置１０およびこのＰＬＣ用ツール装置１０が設定対象としているＰＬＣシステム２０の実機イメージの一例を示している。このＰＬＣシステム２０は、複数のラック２１，２１′，２１″から構成されている。各ラック２１，２１′，２１″は、それぞれ電源ユニット２２，２２′，２２″を備え、同一のラックを構成するユニットは、そのラックに接続された電源ユニットからの電力供給を受ける。複数のラックのうちの１つはＣＰＵユニット２３を備えたＣＰＵラック２１であり、その他のラック，２１′，２１″は、ＣＰＵユニットを備えておらず、ＣＰＵラック２１のＣＰＵユニット２３により管理（ＩＯリフレッシュ等）される。各ラック２１，２１′，２１゛には、それらのラック２１，２１′，２１″同士を通信可能に連携するためのリピータユニット２４と、ＰＬＣシステム２０が所望の制御を行なうために必要な各種のユニット（ＩＯユニット，マスタユニット，通信ユニット，高機能ユニット等）２５が連結される。また、各ラック２１，２１′，２１″に実装される電源ユニット２２，２２′，２２″は、同一タイプのものでも良いし、異なるタイプのものでも良い。さらに、リピータユニット２４同士は、所定の配線ケーブル２６で連結される。もちろん、図では３つのラックを連結してＰＬＣシステム２０が構築されているが、ＰＬＣシステム２０を構築するラックの個数は任意であり、１つのラック（ＣＰＵラック２１のみ）の場合もあり得る。
【００２０】
ＰＬＣ用ツール装置１０は、各種ユニットを組み合わせて任意の構成からなるＰＬＣシステム２０を構築したり、制御対象に合致するＰＬＣ構成を設計するに当たり、適切なユニット構成を得るようにしたりするためのＰＬＣシステム構築支援機能を備えている。この機能を持つ装置は、ＰＬＣシステム構築支援装置と呼ばれたり、コンフィグレータと呼ばれたりすることもある。また、ＰＬＣ用ツール装置１０は、ＰＬＣシステムに実行処理させるユーザプログラムを作成する機能を備えている。ユーザプログラムの例にはラダー図で表記するラダープログラムがある。この機能を持つ装置は、ラダーエディタと呼ばれたり、ユーザプログラム作成装置、ユーザプログラム編集装置、プログラミング装置などと呼ばれている。図１から明らかなように、ＰＬＣ用ツール装置１０は、パーソナルコンピュータにＰＬＣシステム構築支援機能またはユーザプログラム作成機能を実現させるための所定のアプリケーションプログラムをインストールすることにより構成される。もちろん、ＰＬＣ用ツール装置１０が通常のＩ／Ｏユニットその他のユニットに対する各種パラメータの設定を行なったり、その設定した設定情報をネットワーク等を介して各機器（ユニット）にダウンロードしたりする機能も有してもよい。
【００２１】
図２は、ＰＬＣ用ツール装置１０の内部構造を示している。図２に示すように、このＰＬＣ用ツール装置１０は、外部装置（マンマシンインタフェース）として、キーボード１１ａ，ポインティングデバイス１１ｂ等の入力部１１と、ディスプレイ等の表示部１２とを備える。さらに、内部装置として、システムプログラムを実行したり、各種の演算処理を実行し、ユニット構成情報を作成したりする各種の処理を実行するＣＰＵ（制御部）１３と、ＣＰＵ１３が演算処理等の各種の処理を実行する際にワークメモリ等として適宜使用するメモリ（ＲＡＭ）１４と、ユニットに関する情報を格納したユニット情報記憶部１５と、ＣＰＵ１３にて作成したＰＬＣシステム２０を構成する各種のユニットに設定する情報をＰＬＣシステム２０にダウンロードする際に使用するＣＯＭポート１６を備えている。ＣＰＵ１３は、表示部１２に対し、各種の入力画面を表示し、ユーザが入力部１１を操作して必要な情報の入力を受けて、ユニット構成情報を決定する。
【００２２】
ユニット情報記憶部１５には、使用可能なユニットに関する情報、例えば、ユニットの種類や、型式等の一覧リストや、各ユニットについての機能や、設定対象となるパラメータなどが記録される。さらに、本発明との関係でいうと、各型式で特定されるユニットについての占有チャネル数や、入力数や、出力数などの入出力を区存在するため情報や、それぞれが使用するチャネル（メモリ容量）を特定するための情報である。具体的な一例を示すと、図３に示すようなものとなる。
【００２３】
図３（ａ）は、位置制御ユニット，モーションコントロールユニット等の高機能ユニット用のデータ構造であり、「型式」，「占有チャネル数」，「入力数」，「出力数」を関連づけたテーブルとなり、図３（ｂ）は、通常のアナログ，デジタル入力ユニットや出力ユニットなどの基本ＩＯユニット用のデータ構造であり、「型式」，「占有チャネル数」，「入出力タイプ」を関連づけたテーブルとなる。図示の例では、機種情報定義ファイルとして、高機能ユニットと、基本ＩＯユニットとに分け、それぞれが一体のテーブル構造としている。本発明を実現するためには、このような一体となったテーブル構造のものでも良いが、実際には、各ユニットのバージョン情報や、そのバージョンで実行可能な機能の情報や、設定可能なパラメータの情報など、各ユニット毎に登録し、ＰＬＣ用ツール装置１０に実装された各種のツール（アプリケーションプログラム）で必要な情報を利用できるようにすることが好ましい。係る場合には、機種情報定義ファイルは、ユニット毎（型式毎、さらにはバージョン毎）に別のファイルとして作成し、ユニット情報記憶部１５内、或いは、外部記憶装置や、サーバなどに格納し、ＰＬＣ用ツール装置１０から対象となるユニットについての機種情報定義ファイルをアクセスして取得できるようにしても良い。この場合には、ユニット情報記憶部１５には、少なくとも型式と、その型式についての機種情報定義ファイルを特定する情報（ファイル名や、そのファイルが格納されている場所を特定するアドレス等）を関連づけた情報を記録することになる。
【００２４】
「型式（かたしき）」は、メーカがそのユニットに付した製品番号または機種番号などが該当する。また、型式は、通常、アルファベットや数値の組み合わせであるため、その型式をみただけでは、ユーザはその内容を直感的に理解しにくい。そこで、具体的な名称・俗称など、ユーザが理解しやすい情報も併せて格納しても良い。
【００２５】
また、入力ユニットや出力ユニット等の基本ＩＯユニットが使用するＩＯデータは、ＣＰＵユニットのＩＯメモリの所定アドレスに割り付けられる。また、高機能ユニットにおいても、演算処理を実行しつつ、入力データおよびまたは出力データを処理することから、それらのデータを上記のＩＯメモリの所定のメモリ領域に格納する。
【００２６】
本実施の形態においては、高機能ユニットの場合には、使用する入出力点数も多いことから予め１つのユニット当たり入力・出力の合計で１０チャネル分を割り当てる（確保する）ようにし、基本ＩＯユニットでは、ＯＮ／ＯＦＦの１ｂｉｔ情報が多いことから、基本は１チャネル分を割り当てるようにしている。基本ＩＯユニットであっても、入出力点数の多いものは複数チャネルを使用することになるし、高機能ユニットの場合でも、使用する入力およびまたは出力の数が多く、合計で１０（高機能ユニットの１ユニット分として割り当てたチャネル数）を超える場合もある。
【００２７】
「占有チャネル数」は、そのユニットが占有するチャネル数を特定するもので、上述したユニットの種別により予め設定されたチャネル数を１単位とし、何単位（何ユニットと分）を使用するのかを特定する情報である。例えば、高機能ユニットの場合、図３（a）に示すように、型式Ａの高機能ユニットの使用チャネルは入出力合計で１０チャネルで、型式Ｂの使用チャネルは入出力合計で１０チャネルであるので、共に、１ユニット分として割り当てられた１０チャネル以下で済むため、占有チャネル数は共に１となる。これに対し、型式Ｃの使用チャネルは入出力合計で２０チャネルであるため、高機能ユニットに割り当てられた２ユニット分のメモリ領域を使用することになるので、占有チャネル数は２となる。
【００２８】
また、ユニットごとに確保される領域を入力エリアとして使用するか、出力エリアとして使用するかは機種により異なる。そこで、これらの入力エリアと出力エリアのチャネル数（ＣＨ数）を特定するため、図３（ａ）に示すように、「入力数」の欄と「出力数」の欄を設け、それぞれの使用チャネル数を登録する。
【００２９】
基本Ｉ／Ｏユニットの場合、従来の方法で対応可能であるが、本実施の形態では、高機能ユニットと同様の仕組みを適用している。すなわち、機種情報定義ファイルとして、図３（ｂ）に示すように、「型式」と、「占有チャネル数」と、「入出力タイプ」とを関連づけた情報を備える。そして、上述したように基本Ｉ／Ｏユニットでは、１つのユニット当たり１チャネルを割り当てるようにしているため、入力およびまたは出力が２チャネル以上必要なＩ／Ｏユニットの場合には、占有チャネル数は２以上となる。また、「入出力タイプ」は、基本Ｉ／Ｏユニットが、入力ユニットなのか、出力ユニットなのか、入出力ユニットなのかを区別するためのものである。「型式１」のように入出力タイプが「入力」で、占有チャネル数が「１」の場合には、当該ユニットは、入力として１チャネル使用することがわかる。「型式２」のように入出力タイプが「出力」で、占有チャネル数が「２」の場合には、当該ユニットは、出力として２チャネル使用することがわかる。さらに、「型式３」のように入出力タイプが「入出力」で、占有チャネル数が「２」の場合には、当該ユニットは、入力と出力とでそれぞれ１チャネルずつ使用することがわかる。なお、入出力タイプが「入出力」の場合で占有チャネル数が３以上の場合には、入力と出力で使用するそれぞれのチャネル数が不明であり、一義的には決まらない。従って、補足情報として、高機能ユニットと同様に、入力数と出力数を定義するようにすると良い。
【００３０】
ところで、上述したように、ＰＬＣには高機能ユニット用の領域（例えば、「２０００」晩以降）があらかじめ確保されており、高機能ユニットが装着されると、その高機能ユニットのユニット番号で、高機能ユニット用の領域の特定アドレスが割り当てられる。
【００３１】
ユニットによっては１ユニット分の領域では足りないユニットが存在するため、そのようなユニットの場合は複数ユニット分使用することも可能となる。このようなユニットは占有ＣＨ数が2以上となる。この値はユニットの機種が特定されれば決定する。
【００３２】
また、ユニットごとに確保される領域を入力エリアとして使用するか、出力エリアとして使用するかは機種により異なる。よって、これらの入力エリアと出力エリアのＣＨ数がわかれば、ＰＬＣの高機能ユニット用のユニット番号の領域の入力エリアと出力エリアのアドレスが特定される。
【００３３】
図４は、ＣＰＵ１３が実行する処理機能を示すフローチャートである。まず、ＰＬＣ用ツール装置１０を起動し、ラダーエディタでユーザプログラム（ラダー図）を作成する（Ｓ１）。すなわち、まず図５に示すような基本画面を表示する。図５で示すように、基本画面は、右側のウインドウＷ１にユーザプログラム（ラダー図）を作成する画面が表示され、左側のウインドウにこれから登録するＰＬＣ構成に関するプロジェクト情報のプロジェクト選択画面Ｗ２が表示された状態となる。そして、ラダーエディタを用いて、右側のウインドウＷ１内にラダー言語によるユーザプログラムを作成する。このようにして作成されるユーザプログラム（ラダー図）の一例を示すと、図６のようなものとなる。ラダー言語によるプログラムの作成処理自体は、公知のプログラミングツールを用いて作成できるため、詳細な説明を省略する。
【００３４】
次に、ユニット構成情報画面を表示する（Ｓ２）。すなわち、図５に示す基本表示画面に対し、ユーザはポインティングデバイス１１ｂを操作してプロジェクト選択画面Ｗ２中にツリー表示された「ユニット構成情報」をダブルクリック等により選択する。すると、ＰＬＣ用ツール装置１０は、上述した「ユニット構成情報」がクリックされたことを認識し、図７に示すユニット構成情報画面を表示する。本実施の形態では、予め、ＣＰＵラックを含めて最大８個のラックを接続するＰＬＣシステムに対応できるようにしているため、初期画面では、「ＣＰＵラック」，「ラック０１」，「ラック０２」，「ラック０３」……「ラック０７」のみが図のようにツリー状に表示され、各ラックのユニット構成が表示されずに閉じた状態で表示される。図１との対応でいうと、「ＣＰＵラック」が２１に相当し、「ラック０１」が２１′に相当し、「ラック０２」が２１″に相当する。「ラック０３」以降は図１に図示されていないが、構築要素である。
【００３５】
尚、実際には、このユニット構成情報画面（図７）を表示するに先立ち、まずＣＰＵラックのＣＰＵユニットを登録処理する。つまり、ＰＬＣ用ツール装置１０は、ユーザに対して、ＰＬＣラック構成を新規登録するかどうかを促す画面をダイアログウインドウ画面にて表示する。そしてＰＬＣ用ツール装置は、ユーザ操作により登録する旨の入力を受信し、次に、ＰＬＣのＣＰＵユニットの種別およびモデル名を選択する画面を表示し、選択入力を促す。この例では型式（かたしき）を入力する。ＰＬＣ用ツール装置１０は、ユーザ操作によりＣＰＵユニットの種別および型式情報の入力を受信する。例えば「ＣＳ１Ｈ−ＣＰＵ６７」という型式のＣＰＵユニットを選択する旨の入力を受信したとする。この型式を指定することで、自ずとユニットの種別も特定できるので、ここでは型式情報のみを受信している。もちろん、種別と型式（モデル名）とを別々に登録するように変えても良い。これにより、ＰＬＣ用ツール装置は、対象のＣＰＵユニットの種別とＣＰＵラック構成の初期情報を登録する。このＣＰＵユニットの登録によって、ＰＬＣ用ツール装置１０は、図１のＰＬＣシステムにおけるＣＰＵラック２１のＣＰＵユニット２３に相当するＣＰＵユニットの種別を登録したこととなる。また、この登録されたＣＰＵユニットの型式が、図６のユニット構成情報画面のツリー表示の最上段に表示される。
【００３６】
次いで、このユニット構成情報画面上で、各ラックに組み込む各種ユニットを登録するステップに移る（Ｓ３）。すなわち、ユニット構成情報画面にユニット（高機能Ｉ／Ｏユニット，基本ユニット）を登録し、高機能Ｉ/Ｏユニットの場合には、ユニット番号を入力する。なお、基本Ｉ／Ｏユニットの場合には、ユニット番号は自動採番（００から順番、或いは、スロット番号と一致させるなど）させる。
【００３７】
具体的には、設定しようとするラックが、初期画面等のように閉じている場合には、使用する（設定する）ラックのツリー表示の先頭に表示された［＋］ボタンをクリックして、図８に示すように適宜のラックを開く。図８では、ＣＰＵラックを開いた状態を示している。図示するように、各ラックには、最大で１０台分のユニット（ＣＰＵラックについては、ＣＰＵユニットを除いて１０台分のユニット）を登録することができるようになっている。最初はＣＰＵラックのＣＰＵユニット以外は登録されていないから、１０台分の各ユニットのツリー表示はすべて「空きスロット」と表示される（ベースユニットに用意されたスロットに装着されるべきユニットが設定されていない。）。
【００３８】
次に実際のユニットの登録処理を行なう。新規登録の場合には、ユーザはポインティングデバイス１１ｂを操作して、ツリー表示中の「空きスロット」の欄を選択し、ダブルクリックすると、図示省略するユニット選択画面が別ウインドウで表示される。ＰＬＣ用ツール装置１０は、ユニット情報記憶部１５を参照してユニット選択画面を表示する。このユニット選択画面は、ＰＬＣを構成する対象ユニットを種別ごとにツリー構造で表示する。例えば「アナログＩ／Ｏユニット」、「センサユニット」、「モーションコントローラ」、「位置制御ユニット」、「温度調節ユニット」、「基本Ｉ／Ｏユニット」、「通信ユニット」などの各種ユニットがツリー表示される。ＰＬＣ用ツール装置１０は、ツリー表示画面の「＋」をユーザのポインティングデバイス１１ｂのクリック操作を受信すると、そのユニットの型式情報をユニット情報記憶部１５を参照して表示する。この画面を利用して、ユーザは使用しようとしているユニットをユニット一覧から探し出し、選択し、登録する。ＣＰＵユニットの登録と同様に、ここでも型式を指定することで、自ずとユニットの種別も特定できるので、ここでは型式情報のみを受信している。もちろん、種別と型式（モデル名）とを別々に登録するように変えても良い。
【００３９】
ユーザ操作の詳細を述べると、ポインティングデバイス１１ｂ等の入力部１１を操作し、使用するユニットを表示した状態でクリックする。これにより、制御部１３は、クリックされたユニットの型式名を反転表示し、仮選択状態であることを示すとともに、図示省略するユニットに関するデータベースからそのユニットについて関連づけられている情報を読み出して、読み出した情報を「備考欄」や別ウインドウに表示する。そして、「ＯＫ」ボタンがクリックされると、その仮選択状態のユニットを、図８のユニット構成情報画面で指定した箇所に登録し、型式等の情報を追加表示する。
【００４０】
図９は、上記のユニット登録操作を所定数実行した後のユニット構成画面を示している。図９から明らかなように、すでにユニット登録されている場合には、設定されたユニットの型式が表示され、未登録の場合には、「空きスロット」と表示される。また、登録されたユニットの場合、ユニット情報記憶部１５に格納された「型式」の情報を読み出して表示する。型式の後に（）で示された具体的な名称は、上述したようにユニット情報記憶部１５の「型式」の欄に登録されているものを表示する。また、具体的な図示は省略するが、ユニット情報記憶部１５には、型式のみを登録しておき、型式と具体的な名称を関連づけたテーブルを別途用意し、当該テーブルから必要な情報を読み出して表示するようにしても良い。なお、図９では、機種情報定義ファイルに格納された、占有チャネル数や、入力チャネル数，出力チャネル数などの情報も合わせて表示しているが、これは、後述する処理ステップＳ４以降の処理を実行し、必要な情報を入手することに伴い行なう。もちろん、Ｓ４以降の処理ステップは、単にユニット構成画面に表示するだけでなく、他の目的のために実行するため、処理ステップＳ３の実行に伴い図９に示す状態を表示するようにしてもよい。
【００４１】
さらに、図９に示すように、選択されたユニットが、位置制御ユニットのように高機能Ｉ／Ｏユニットの場合には、ユニット番号の登録を行なう。すなわち、ＣＰＵ１３は、図１０に示すユニットの追加画面を表示し、「ユニット番号」の欄に任意の数値の入力を促す。図から明らかなように、本実施の形態では、最大９６個の高機能ユニットを追加することができるため、それに合わせてユニット番号の設定範囲も０から９５としている。また、ユニット番号の入力は、直接数値を入力しても良いし、入力欄の右端に用意された三角マークの上下移動ボタンをクリックすることで現在表示されているユニット番号を昇降させてもよい。なお、占有チャネル数が複数（ｎ個）の場合には、そのユニットに指定したユニット番号と、それに続く（ｎ−１個）分のユニット番号も、そのユニットに割り当て、他のユニットが指定できないようにする。
【００４２】
つまり、高機能ユニット用のメモリ領域を２０００番から割り付けると共に、ユニット番号の若いものから順に１０チャネルずつ割り当てるようにした。従って、続き番号のユニット番号が割り当てられるメモリ領域は連続する。よって、占有チャネル数が複数の場合に、上述したように連続したユニット番号を他のユニットに使用させず、自己が使用することで、占有チャネル数が複数のユニットが、連続したメモリ領域を確保することが出来る。なお、係る高機能ユニットのユニット番号は、図１０に示す「ユニットの追加」画面で指定した番号であり、それに続く（ｎ−１）個分のユニット番号は、外見上は未使用状態となる。
【００４３】
なお、図９のユニット構成情報画面ですでに登録されているユニットを、別のユニットに交換する場合には、たとえば、図９のユニット構成情報画面上で対象となるユニットをクリック等して選択した状態で削除し、一旦「空きスロット」の状態にした後でＣＰＵ１３が上述した新規の登録を行なうようにしても良いし、変更処理により別のユニットに変更することもできる。但し、本実施の形態では、ＣＰＵユニットのＩＯメモリの使用エリア（チャネル）を自動的に設定（型式の前に記載された［］で表記された数値）していることから、その情報を引き継ぐことができるユニット、つまり、同種のユニットへの変更のみを許容している。変更可能なユニットか否かは、ユニット情報記憶部１５に格納された「機種情報定義ファイル」等を参照することでわかるため、該当するもののみを抽出し、表示することになる。
【００４４】
次に対象ユニットの機種情報定義ファイルをテーブルから検索し（Ｓ４）、機種情報定義ファイルから占有チャネル（ＣＨ）数、入力ＣＨ数、出力ＣＨ数を取得する（Ｓ５）。高機能ユニットの場合には、対応するユニットについての機種情報定義ファイルを読み出すことで必要な情報を取得できる。また、基本Ｉ／Ｏユニットの場合には、占有ＣＨ数と入出力タイプから求めることが出来る。
【００４５】
ユニットのユニット番号から割り付けアドレスを算出し、占有ＣＨ数、入力ＣＨ数、出力ＣＨ数から、高機能ユニットに割付けられる入出力アドレスを計算する（Ｓ６）。係る入出力アドレスの計算は、以下に示すように行なう。
【００４６】
すなわち、上述したようにＰＬＣのＣＰＵユニットのＩＯメモリには高機能ユニット用の領域があらかじめ確保されており、高機能ユニットが装着されると、その高機能ユニットのユニット番号で、高機能ユニット用の領域の特定アドレスが割り当てられる。つまり、本実施の形態では、高機能ユニットには、ＣＰＵユニットのＩＯメモリの２０００番からのメモリ領域を用意し、１ユニット（占有ＣＨが１）当たり１０ＣＨ分のメモリエリアを確保している。従って、仮にユニット番号が００番の高機能ユニットの場合、ＣＰＵユニットのＩＯメモリのその高機能ユニット用に使用するメモリ領域の先頭アドレスは、２０００番となり、２０００から２００９番までが確保される。同様に、ユニット番号が０１番の高機能ユニットの場合、ＣＰＵユニットのＩＯメモリのその高機能ユニットの先頭アドレスは、２０１０番となり、２０１０から２０１９番までが確保される。つまり、ユニット番号をＮとすると、そのユニット番号Ｎの高機能ユニットに割り当てられるメモリエリアの先頭アドレスは、
２０００＋１０×Ｎ
といった簡単な式で求めることが出来る。さらに、占有ＣＨ数に基づき、そのユニットに割り当てられるメモリエリアの最終アドレスを求めることが出来る。
【００４７】
また、ＣＰＵユニットのＩＯメモリ領域のユニットごとに確保される領域を、入力エリアとして使用するか出力エリアとして使用するかは機種により異なる。よって、これらの入力エリアと出力エリアのＣＨ数を機種情報定義ファイルから取得することで、ＰＬＣの高機能ユニット用のユニット番号の領域の入力エリアと出力エリアのアドレスが特定される。すなわち、予め入力エリアと出力エリアの設定ルールを決めておく。例えば、高機能ユニットは、割り当てられたメモリ領域の先頭のアドレスから連続して使用するとともに、入力エリアと出力エリアの使用順を決定しておく。例えば、まず出力チャネルが存在する場合には、その出力チャネルから順にメモリアドレスを割り付け、その次に入力チャネルについての割付を行なう。
【００４８】
すると、例えば図９に示すように、型式「ＣＳＷ−ＮＣ２１３」の位置制御ユニットは、ユニット番号が０で、出力チャネル数が４で、入力チャネル数が６であるため、２０００から２００３ＣＨまでが出力チャネルのアドレスとして割り付けられ、２００４〜２００９ＣＨまでが入力チャネルのアドレスとして割り付けられる。
【００４９】
その結果、仮に、図３（ａ）に示す型式Ａの高機能ユニットのユニット番号を「０」に設定し、型式Ｃの高機能ユニットのユニット番号を「１」に設定し、型式Ｂの高機能ユニットのユニット番号を２に設定したとすると、処理ステップＳ４から６を実行することで、図１１に示すような高機能ユニットの入出力テーブルが作成でき、各高機能ユニットについての入力チャネルと出力チャネルのアドレスが算出される。係るテーブルを例えばメモリ１２に一時的に格納しても良い、別途ハードディスクその他の不揮発性記憶装置等に格納しても良い。
【００５０】
また、本実施の形態では、基本ＩＯユニットについても同様の処理により入力チャネルと出力チャネルのアドレスの割付を行なうようにした。このＰＬＣ用ツール装置によるメモリ自動割付は、以下のルールに従って行なう。すなわち、各ユニットの取り付け位置は、ラック番号とスロット番号により一義的に決定される。そこで、本実施の形態では、ラック番号（ＣＰＵラックのラック番号は０）が若い順にソートし、同一のラック番号の場合にはスロット番号が若い順にソートし、先頭のユニットから順にＣＰＵユニットのＩＯメモリのメモリアドレスの割付を行なう。そして、割り付けるメモリは、高機能ユニットの場合と相違して連続して割り付けるようにした。なお、入出力ユニットのように、入力と出力が存在する場合には、高機能ユニットと同様に出力チャネルを先に割り付けるようにした。
【００５１】
仮に、図３（ｂ）に示す型式１，型式２，型式３の３つのユニットを、ＣＰＵラックのスロット番号が０番から順に取り付けたとすると、処理ステップＳ４から６を実行することで、図１２に示すような基本ＩＯユニットの入出力テーブルが作成でき、各基本ＩＯユニットについての入力チャネルや出力チャネルのアドレスが算出される。係るテーブルを例えばメモリ１２に一時的に格納しても良い、別途ハードディスクその他の不揮発性記憶装置等に格納しても良い。
【００５２】
次に、ＰＬＣ用ツール装置１０のユーザプログラム作成機能（ラダーエディタ）を用いて、ラダー図で表記するラダープログラムを作成する。この作成時に、プログラム作成者がラダー図中のシンボル・接点にメモリのアドレス値を入力する。入力されたアドレス値をもとに、図１１の高機能ユニットの入出力テーブルまたは図１２の基本ＩＯユニットの入出力テーブルを参照し、そのアドレス値が入力エリア用アドレスなのか出力エリア用アドレスなのかを識別する。この結果をラダー図中のシンボル・接点に反映する。つまり、ラダーエディタは、ラダー図中のシンボル・接点に対応するアドレスが入力エリア用アドレスであれば、そのアドレスの前に「Ｉ」を、出力エリア用アドレスであれば、そのアドレスの前に「Ｑ」をつけて表示する（Ｓ７）。これにより、例えば図２に示したラダー図は、図１３に示すようになり、高機能ユニットであっても、入力（Ｉ）と出力（Ｑ）をそれぞれ示すマークが自動的に設定される。このように、シンボル・接点にメモリのアドレス値を入力する都度、「Ｉ」，「Ｑ」の識別をし、その結果をラダー図中のシンボル・接点に反映して表示する。
【００５３】
また、ラダープログラムを予め作成しておき、シンボル・接点にメモリのアドレス値を入力したラダープログラムを予め作成しておき、各シンボル・接点のアドレス値について、図１１の高機能ユニットの入出力テーブルまたは図１２の基本ＩＯユニットの入出力テーブルをまとめて参照し、入力エリア用アドレス「Ｉ」か出力エリア用アドレス「Ｑ」かを識別し、一括してラダー図中のシンボル・接点に「Ｉ」，「Ｑ」を表示してもよい。
【図面の簡単な説明】
【００５４】
【図１】ＰＬＣシステムの一例を示す図である。
【図２】ＰＬＣ用ツール装置の構成の一例を示す図である。
【図３】ユニット情報記憶部のデータ構造の一例を示す図である。
【図４】ＣＰＵの機能を示すフローチャートである。
【図５】基本画面を示す図である。
【図６】作成したラダー図の一例を示す図である。
【図７】ユニット構成画面の一例を示す図である。
【図８】ユニット構成画面の一例を示す図である。
【図９】ユニット選択画面の一例を示す図である。
【図１０】ユニットの追加画面の一例を示す図である。
【図１１】作用効果を説明する図である。
【図１２】作用効果を説明する図である。
【図１３】作用効果を説明する図である。
【符号の説明】
【００５５】
１０  ＰＬＣ用ツール装置
１１  入力部
１１ａ  キーボード
１１ｂ  ポインティングデバイス
１２  ディスプレイ
１３  ＣＰＵ
１４  メモリ
１５  ユニット情報記憶部
１６  ＣＯＭポート
【図１】
2006243841.tif 000003
【図２】
2006243841.tif 000004
【図３】
2006243841.tif 000005
【図４】
2006243841.tif 000006
【図５】
2006243841.tif 000007
【図６】
2006243841.tif 000008
【図７】
2006243841.tif 000009
【図８】
2006243841.tif 000010
【図９】
2006243841.tif 000011
【図１０】
2006243841.tif 000012
【図１１】
2006243841.tif 000013
【図１２】
2006243841.tif 000014
【図１３】
2006243841.tif 000015