"プログラマブルコントローラのCPUユニットに接続される複数のユニットをラック内における複数のスロットにそれぞれ配置するためのユニット構成を作成する制御プログラム開発支援装置であって、前記複数のユニットにおける複数のポートに対してそれぞれ一意に決められた複数のポートIDに対応して前記CPUユニットにおけるメモリのメモリアドレスの割り付けを行うメモリ割り付け手段と、前記複数のポートIDに対応して関連付けられるメモリアドレスと前記複数のポートIDとの対応関係を示すアドレステーブルを作成するアドレステーブル作成手段と、前記複数のポートIDに対応して関連付けられる変数と前記複数のポートIDとの対応関係を示す変数テーブルを作成する変数テーブル作成手段と、前記変数に対応するポートIDを前記変数テーブルから取得し、取得したポートIDに対応するメモリアドレスを前記アドレステーブルから取得するアドレス取得手段とを備え、前記アドレステーブル作成手段は、前記アドレステーブルに対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換えることを特徴とする制御プログラム開発支援装置。請求項1に記載の制御プログラム開発支援装置であって、前記ポートIDに対して、前記ラックに対応するラックパス名、前記複数のスロットのうち何れか一つのスロットに対応するスロットパス名、前記何れか一つスロットに対する複数のチャネルのうち何れか一つのチャネルに対応するチャネルパス名及び前記何れか一つのチャネルに対する複数のビットのうち何れかの一つのビットに対応するビットパス名を順に階層的に表したパス形式でパスを設定して表示画面に表示させるパス設定表示手段を備えることを特徴とする制御プログラム開発支援装置。請求項1又は請求項2に記載の制御プログラム開発支援装置であって、前記変数の入力情報を受け付ける変数情報受け付け手段と、前記複数のポートの階層的な物理構成に基づいて前記変数を自動的に設定する変数情報自動設定手段とを備えることを特徴とする制御プログラム開発支援装置。請求項1から請求項3までの何れか一つに記載の制御プログラム開発支援装置であって、前記複数のユニットの少なくとも一つのユニットを一つずつ、前記ラックにおける前記複数のスロットの何れか一つに位置変更可能に配置してユニット構成図を作成し、前記複数のユニットの何れか一つのユニットの配置位置が変更された場合に、前記複数のユニットのうち何れのユニットが何れのスロットに移動したかを検出するユニット構成図作成手段を備え、前記アドレステーブル作成手段は、前記アドレステーブルに対して、前記ユニット構成図作成手段にて検出した変更前のユニットにおけるポートIDを、前記ユニット構成図作成手段にて検出した変更後のユニットにおけるポートIDに書き換えることを特徴とする制御プログラム開発支援装置。請求項4に記載の制御プログラム開発支援装置であって、前記ラック及び前記複数のユニットをイラスト化したイラスト情報を前記複数のユニットに関するユニット情報と関連付けて格納するユニット情報記憶部を備え、前記ユニット構成図作成手段は、前記ユニット情報記憶部に格納した前記ラックのイラスト情報に対応するイラストを表示画面に表示し、前記ユニット情報記憶部に格納した前記イラスト情報に対応する前記複数のユニットの少なくとも一つのイラストを一つずつ、前記ラックにおける前記複数のスロットの何れか一つのイラストに対してドラッグアンドドロップにより前記表示画面に移動表示可能に配置してユニット構成図を作成することを特徴とする制御プログラム開発支援装置。プログラマブルコントローラのCPUユニットに接続される複数のユニットをラック内における複数のスロットにそれぞれ配置するためのユニット構成を作成する制御プログラム開発支援装置における制御部を、前記複数のユニットにおける複数のポートに対してそれぞれ一意に決められた複数のポートIDに対応して前記CPUユニットにおけるメモリのメモリアドレスの割り付けを行うメモリ割り付け手段と、前記複数のポートIDに対応して関連付けられるメモリアドレスと前記複数のポートIDとの対応関係を示すアドレステーブルを作成するアドレステーブル作成手段と、前記複数のポートIDに対応して関連付けられる変数と前記複数のポートIDとの対応関係を示す変数テーブルを作成する変数テーブル作成手段と、前記変数に対応するポートIDを前記変数テーブルから取得し、取得したポートIDに対応するメモリアドレスを前記アドレステーブルから取得するアドレス取得手段とを含む手段として機能させるための制御プログラム開発支援用プログラムであって、前記アドレステーブル作成手段は、前記アドレステーブルに対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換えることを特徴とする制御プログラム開発支援用プログラム。請求項6に記載の制御プログラム開発支援用プログラムを記録したコンピュータ読み取り可能な記録媒体。ところで、PLC200では、ユニット構成は、各種ユニットが一度配置されてしまえば改変しないということはなく、必要に応じて改変具体的にはユニットの移動、変更、追加或いは削除されることがある。このように、ユニット構成が改変されると、PLC200で実際に配置した各種ユニットのメモリアドレスの割り当てが変わってしまうため、CPUユニット22のメモリMに割り当てたメモリアドレスに対して、PLC200で実行される制御プログラムに記述したメモリアドレス、さらには、メモリアドレスに対応して設定したInput1やOutput1等の変数が異なってしまい、その結果、制御プログラムに記述されたメモリアドレス、さらには変数と、ポートとの関連付けが意味をなさないものとなってしまうといった不都合を招く。このため、ユーザは制御プログラム開発支援装置10によって制御プログラムに記述したメモリアドレスの変更作業や、メモリアドレスに対して設定した変数の変更作業を行わなければならず、ユニット構成の改変に伴う利便性がよくない。そこで、本発明は、プログラマブルコントローラのCPUユニットに接続される複数のユニットをラック内における複数のスロットにそれぞれ配置するためのユニット構成を作成する制御プログラム開発支援装置であって、たとえユニット構成が改変されたとしても、制御プログラムにおけるメモリアドレスの変更等の作業を行う必要がなく、これにより、ユニット構成の改変に伴う利便性を向上させることが可能な制御プログラム開発支援装置、制御プログラム開発支援用プログラム及び記録媒体を提供することを目的とする。本発明は、前記課題を解決するために、次の制御プログラム開発支援装置、制御プログラム開発支援用プログラム及び記録媒体を提供する。1制御プログラム開発支援装置プログラマブルコントローラのCPUユニットに接続される複数のユニットをラック内における複数のスロットにそれぞれ配置するためのユニット構成を作成する制御プログラム開発支援装置であって、前記複数のユニットにおける複数のポートに対してそれぞれ一意に決められた複数のポートIDに対応して前記CPUユニットにおけるメモリのメモリアドレスの割り付けを行うメモリ割り付け手段と、前記複数のポートIDに対応して関連付けられるメモリアドレスと前記複数のポートIDとの対応関係を示すアドレステーブルを作成するアドレステーブル作成手段と、前記複数のポートIDに対応して関連付けられる変数と前記複数のポートIDとの対応関係を示す変数テーブルを作成する変数テーブル作成手段と、前記変数に対応するポートIDを前記変数テーブルから取得し、取得したポートIDに対応するメモリアドレスを前記アドレステーブルから取得するアドレス取得手段とを備え、前記アドレステーブル作成手段は、前記アドレステーブルに対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換えることを特徴とする制御プログラム開発支援装置。2制御プログラム開発支援用プログラムプログラマブルコントローラのCPUユニットに接続される複数のユニットをラック内における複数のスロットにそれぞれ配置するためのユニット構成を作成する制御プログラム開発支援装置における制御部を、前記複数のユニットにおける複数のポートに対してそれぞれ一意に決められた複数のポートIDに対応して前記CPUユニットにおけるメモリのメモリアドレスの割り付けを行うメモリ割り付け手段と、前記複数のポートIDに対応して関連付けられるメモリアドレスと前記複数のポートIDとの対応関係を示すアドレステーブルを作成するアドレステーブル作成手段と、前記複数のポートIDに対応して関連付けられる変数と前記複数のポートIDとの対応関係を示す変数テーブルを作成する変数テーブル作成手段と、前記変数に対応するポートIDを前記変数テーブルから取得し、取得したポートIDに対応するメモリアドレスを前記アドレステーブルから取得するアドレス取得手段とを含む手段として機能させるための制御プログラム開発支援用プログラムであって、前記アドレステーブル作成手段は、前記アドレステーブルに対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換えることを特徴とする制御プログラム開発支援用プログラム。3記録媒体前記本発明に係る制御プログラム開発支援用プログラムを記録したコンピュータ読み取り可能な記録媒体。なお、言うまでもないが、本発明にいう前記IDはidentificationの略であり、識別コードを意味する。また、前記ラックは、単一のものであってもよいし、複数のラックで構成されていてもよい。本発明によれば、前記アドレステーブルに対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換え、前記変数に対応するポートIDを前記変数テーブルから取得し、取得したポートIDに対応するメモリアドレスを前記アドレステーブルから取得する。こうすることで、たとえユニット構成が改変されたとしても、制御プログラムにおけるメモリアドレスの変更等の作業を行う必要がなく、これにより、ユニット構成の改変に伴う利便性を向上させることができる。本発明において、前記ポートIDに対して、前記ラックに対応するラックパス名、前記複数のスロットのうち何れか一つのスロットに対応するスロットパス名、前記何れか一つスロットに対する複数のチャネルのうち何れか一つのチャネルに対応するチャネルパス名及び前記何れか一つのチャネルに対する複数のビットのうち何れかの一つのビットに対応するビットパス名を順に階層的に表したパス形式でパスを設定して表示画面に表示させるパス設定表示手段を備える態様を例示できる。この特定事項では、前記ポートIDに対して、前記ラックパス名、前記スロットパス名、前記チャネルパス名及び前記ビットパス名を順に階層的に表した前記パス形式でパスを設定して表示画面に表示させることで、ユーザは、前記パスによって前記複数のユニットの配置位置を容易に認識することが可能となる。本発明において、ユーザが前記変数の情報を入力するために、前記変数の入力情報を受け付ける変数情報受け付け手段を備えていてもよいが、この場合、ユーザが前記変数を自由に作成できるという利点がある反面、前記変数に対応する名称を作成するのに手間がかかるという不都合もある。そこで、本発明において、前記変数の入力情報を受け付ける変数情報受け付け手段と、前記複数のポートの階層的な物理構成に基づいて前記変数を自動的に設定する変数情報自動設定手段とを備える態様を例示できる。この特定事項では、前記変数情報受け付け手段にて前記変数の入力情報を入力するか、或いは、前記変数情報自動設定手段にて前記変数を自動的に設定するかを、ユーザが必要に応じて使い分けすることが可能となる。本発明において、前記複数のユニットの少なくとも一つのユニットを一つずつ、前記ラックにおける前記複数のスロットの何れか一つに位置変更可能に配置してユニット構成図を作成し、前記複数のユニットの何れか一つのユニットの配置位置が変更された場合に、前記複数のユニットのうち何れのユニットが何れのスロットに移動したかを検出するユニット構成図作成手段を備え、前記アドレステーブル作成手段は、前記アドレステーブルに対して、前記ユニット構成図作成手段にて検出した変更前のユニットにおけるポートIDを、前記ユニット構成図作成手段にて検出した変更後のユニットにおけるポートIDに書き換える態様を例示できる。この特定事項では、前記ユニット構成図を作成するときに、前記複数のユニットのうち何れのユニットが何れのスロットに移動したかを検出することができ、これにより、前記複数のユニットの何れか一つのユニットの配置位置の変更を効率的に検出することが可能となる。本発明において、前記ラック及び前記複数のユニットをイラスト化したイラスト情報を前記複数のユニットに関するユニット情報と関連付けて格納するユニット情報記憶部を備え、前記ユニット構成図作成手段は、前記ユニット情報記憶部に格納した前記ラックのイラスト情報に対応するイラストを表示画面に表示し、前記ユニット情報記憶部に格納した前記イラスト情報に対応する前記複数のユニットの少なくとも一つのイラストを一つずつ、前記ラックにおける前記複数のスロットの何れか一つのイラストに対してドラッグアンドドロップにより前記表示画面に移動表示可能に配置してユニット構成図を作成する態様を例示できる。なお、ここでいうイラストイラストレーションの略は、図、絵、写真等のイラスト画像を含む概念である。この特定事項では、前記ユニット情報記憶部に格納した前記イラスト情報に対応する前記複数のユニットの少なくとも一つのイラストを一つずつ、前記ラックにおける前記複数のスロットの何れか一つのイラストに対してドラッグアンドドロップにより前記表示画面に移動表示可能に配置してユニット構成図を作成するので、前記ユニット構成図におけるユニット構成を、イラストによって視覚的に改変することができ、ユニット構成の改変作業の容易化を実現することが可能となる。以上説明したように、本発明によると、前記アドレステーブルに対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換え、前記変数に対応するポートIDを前記変数テーブルから取得し、取得したポートIDに対応するメモリアドレスを前記アドレステーブルから取得することで、たとえユニット構成が改変されたとしても、制御プログラムにおけるメモリアドレスの変更等の作業を行う必要がなく、これにより、ユニット構成の改変に伴う利便性を向上させることが可能となる。以下、本発明の実施の形態について添付図面を参照しつつ説明する。なお、以下の実施の形態は、本発明を具体化した例であって、本発明の技術的範囲を限定する性格のものではない。図1は、制御プログラム開発支援装置100及び制御プログラム開発支援装置100が設定対象としているPLC200の概略的に示しシステム構成図である。プログラマブルコントローラ以下、PLCという200は、図18に示すPLC20と同様の構成とされている。図1において、図18に示す部材と同様の部材には同一符号を付している。すなわち、PLC200は、CPUラック00と、増設ラックラック01,ラック02,...とから構成されている。CPUラック00及び増設ラックラック01,ラック02,...は、それぞれ電源ユニット21を備え、一つのラック内に配置されたユニットは、そのラックに接続された電源ユニット21からの電力供給を受ける。CPUラック00は、CPUユニット22を備えている。増設ラックラック01,ラック02,...は、CPUユニットを備えておらず、CPUラック00におけるCPUユニット22により管理IOリフレッシュ等される。CPUラック00には、I/Oコントロールユニット40が配置され、増設ラックラック01,ラック02,...には、I/Oインターフェースユニット50が配置されている。CPUラック00及び増設ラックラック01は、配線ケーブルCBを介してI/Oコントロールユニット40及びI/Oインターフェースユニット50で互いに接続されている。さらに、増設ラックラック01,ラック02,...は、配線ケーブルCBを介してI/Oインターフェースユニット50で互いに接続されている。これにより、CPUラック00及び増設ラックラック01,ラック02,...が相互に通信可能に連携することができ、PLC200が所望の制御を行うために必要な各種のユニットI/Oユニット,マスタユニット,通信ユニット,高機能ユニット等の構成ユニットが互いに連結される。この例では3つのラックを連結してPLC200が構築されているが、勿論、PLC200を構築するラックの個数は任意であり、1つのラックCPUラック00のみの場合もあり得る。すなわち、増設ラックは一つであってもよい。また、増設ラックを設けず、CPUラック00だけであってもよい。また、CPUラック00や増設ラックラック01,ラック02,...に実装される電源ユニット21は、同一タイプのものでもよいし、異なるタイプのものでもよい。図1の例では、CPUラック00には、複数のスロットスロット0,スロット1,...のうち、スロット0に入力ユニット31が、スロット1に出力ユニット32が配置されている。また、ラック01には、スロット0,スロット1,...のうち、スロット0にCPU高機能ユニット33が、スロット1に入力ユニット34が、スロット2に出力ユニット35が配置されている。また、入力ユニット31,34には、センサやスイッチ等の接点例えば8点、16点、32点、64点等に相当する入力ポート00,入力ポート01,入力ポート02,...が設けられており、出力ユニット32,35には、アクチュエータやリレー等の接点例えば8点、16点、32点、64点等に相当する出力ポート00,出力ポート01,出力ポート02,...が設けられている。なお、CPUユニット22については、図18に示すものと同様であり、ここでは詳しい説明を省略する。図2は、図1に示す制御プログラム開発支援装置100の内部構造を概略的に示すシステム構成図である。制御プログラム開発支援装置100は、各種ユニットを組み合わせて任意の構成からなるPLC200を構築したり、制御対象に合致するPLC構成を設計するに当たり、適切なユニット構成を得るようにしたりするためのPLCシステム構築支援機能を備えている。PLCシステム構築支援機能を持つ制御プログラム開発支援装置100は、PLCシステム構築支援装置と呼ばれたり、コンフィグレータと呼ばれたりすることもある。また、制御プログラム開発支援装置100は、PLC200に実行処理させる制御プログラムユーザプログラムを作成する機能を備えている。制御プログラムの例にはラダー図で表記するラダープログラムがある。制御プログラムを作成する機能を持つ装置は、ラダーエディタと呼ばれたり、制御プログラム作成装置、制御プログラム編集装置、プログラミング装置などと呼ばれたりしている。制御プログラム開発支援装置100は、パーソナルコンピュータにPLCシステム構築支援機能又はユーザプログラム作成機能を実現させるための所定のアプリケーションプログラムをインストールすることにより構成される。勿論、制御プログラム開発支援装置100が通常のI/Oユニット、その他のユニットに対する各種パラメータの設定を行ったり、その設定した設定情報をネットワーク等を介して各機器ユニットにダウンロードしたりする機能も有してもよい。制御プログラム開発支援装置100は、図2に示すように、外部装置マンマシンインタフェースとして、キーボード12a,ポインティングデバイス12b等を含む入力部12と、表示画面13a図1参照を有するディスプレイ等の表示部13とを備えている。また、制御プログラム開発支援装置100は、内部装置として、制御プログラム開発支援用プログラムを実行したり、各種の演算処理を実行し、ユニット構成情報を作成したりする各種の処理を実行する制御部具体的にはCPU14と、制御部14が演算処理等の各種の処理を実行する際にワークメモリ等として適宜使用する実行処理記憶部15と、ユニットに関する情報を格納したユニット情報記憶部16と、制御部14にて作成した、PLC200を構成する各種のユニットに設定する情報をPLC200にダウンロードする際に使用するCOMポート17と、読み取り部18とを備えている。実行処理記憶部15は、RAM等の揮発性メモリ15a及びハードディスク装置やフラッシュメモリ等の不揮発メモリ15bを含んでいる。不揮発メモリ15bには、後述する制御プログラム開発支援用プログラムBPが記録されたCDCompactDisc-ROM等の記録媒体Rを読み出す読み取り部18によって読み出された制御プログラム開発支援用プログラムBPを含むソフトウェアや、後述するイラスト情報のファイルデータが予め格納インストールされている。なお、不揮発メモリ15bは、後述するアドレステーブル及び変数テーブル等の処理データも記憶されるようになっている。また、記録媒体Rは、USBUniversalSerialBusメモリやSDSecureDigitalメモリカードであってもよい。制御部14は、表示部13に対し、各種の入力画面を表示し、ユーザが入力部12を操作して必要な情報の入力を受けて、ユニット構成情報を決定する。ユニット情報記憶部16に格納されるユニットに関するユニット情報は、例えば、ユニットの種類や、型式等の一覧リストや、メーカ名、電圧、電流等の仕様、各ユニットについての機能や、設定対象となるパラメータ、さらには、各型式で特定されるユニットについてのチャネル情報や、それぞれがメモリ容量を特定するための情報である。なお、ユニット情報記憶部16には、後述するように、イラスト情報も格納されている。また、制御部14は、入力ユニット31,34や出力ユニット32,35等の基本I/Oユニットが使用するI/Oデータに対してCPUユニット22におけるメモリMのメモリアドレス以下単にアドレスというの割り付けを行う。[制御プログラム開発支援装置のソフトウェア構成]図3は、図2に示す制御プログラム開発支援装置100における制御部14を概略的に示すシステム構成図である。制御部14は、ユニット構成図作成手段P1と、メモリ割り付け手段P2と、アドレステーブル登録手段P3と、変数情報受け付け手段P4と、パス設定表示手段P5と、変数情報自動設定手段P6と、変数テーブル作成手段P7と、ポートID書き換え手段P8と、アドレス取得手段P9と、変換手段P10とを含む手段として機能する。なお、アドレステーブル登録手段P3とポートID書き換え手段P8とで本発明のアドレステーブル作成手段を構成している。すなわち、制御プログラム開発支援用プログラムBPは、ユニット構成図作成手段P1に対応するユニット構成図作成ステップと、メモリ割り付け手段P2に対応するメモリ割り付けステップと、アドレステーブル登録手段P3に対応するアドレステーブル登録ステップと、変数情報受け付け手段P4に対応する変数情報受け付けステップと、パス設定表示手段P5に対応するパス設定表示ステップと、変数情報自動設定手段P6に対応する変数情報自動設定ステップと、変数テーブル作成手段P7に対応する変数テーブル作成ステップと、ポートID書き換え手段P8に対応するポートID書き換えステップと、アドレス取得手段P9に対応するアドレス取得ステップと、変換手段P10に対応する変換ステップとを含むステップを制御部14に実行させる。図4及び図5は、それぞれ、複数のユニットにおける複数のポートに対応してCPUユニット22におけるメモリMのアドレスの割り付け動作を行う割り付け処理の一例を示す前半部分及び後半部分のフローチャートである。なお、以下の説明では、複数のポートパラメータは、図1に示すように、入力ポート00,入力ポート01,入力ポート02,...出力ポート00,出力ポート01,出力ポート02,...とし、スロット0,スロット1,...に配置されているユニットをそれぞれユニット0,ユニット1,...とし、また、入力ポート00,入力ポート01,入力ポート02,...及び出力ポート01,出力ポート02,...を総称して単にポートという。次に、図4及び図5に示す割り付け処理例のフローチャートについて、図6から図17を参照しながら以下に説明する。[ユニット構成図作成ステップS1]図4に示すユニット構成図作成ステップS1は、ユニット0,ユニット1,...の少なくとも一つのユニットを一つずつ、ラックにおける複数のスロットの何れか一つに位置変更可能に配置してユニット構成図を作成し、ユニット0,ユニット1,...の何れか一つのユニットの配置位置が変更されてユニット構成が改変された場合には、ユニット0,ユニット1,...のうち何れのユニットが何れのスロットに移動したかを検出するようになっている。詳しくは、ユニット構成図作成ステップS1では、制御部14は、表示部13の表示画面13a図1参照にCPUラック00のイラストを表示し、さらにユニットのイラストを移動可能に表示してユニット構成図を作成する。図6は、ユニット情報記憶部16におけるユニット情報の一部のデータ構造の一例を示す概略構成図である。図7は、CPUラック00及びCPUラック00に配置されるユニットをイラストで表したユニット構成図を表示する表示画面である。ユニット情報記憶部16図2参照には、図6に示すように、複数のユニット0,ユニット1,...図7参照をイラスト化したイラスト情報ILが複数のユニット0,ユニット1,...に関する型式TY及び名称TNと関連付けて予め格納されている。本実施の形態において、イラスト情報ILは、ファイルデータの名称とされており、制御部14は、ファイルデータの名称から実行処理記憶部15図2参照の不揮発メモリ15bに記憶されているファイルデータを読み出してユニット0,ユニット1,...のうち、選択されたユニットをイラスト化するようになっている。なお、図6には示していないが、ユニット情報記憶部16には、CPUラック00及びラック01,ラック02,...のイラスト情報ILも格納されている。詳しくは、ユニット構成図作成ステップS1では、制御部14は、ユニット情報記憶部16からCPUラック00に対応するイラスト情報ILを読み出し、読み出したイラスト情報ILによりCPUラック00のイラストを表示部13の表示画面13aに表示する。図8は、ユニット一覧の一例を示す画面説明図である。ユニット構成を作成するにあたり、ユーザは、ポインティングデバイス12b図1参照を操作してCPUラック00のイラストの何れかのスロット例えばスロット3をダブルクリック等により選択すると、図8に示すユニット選択画面が別ウインドウで表示される。すなわち、制御部14は、CPUラック00のスロット位置例えばスロット3でユーザによるポインティングデバイス12bのクリック操作を受信すると、ユニット情報記憶部16を参照して得られたユニットの型式情報をユニット選択画面図8参照に表示する。ユニット選択画面は、図23に示すユニット選択画面と同様の画面であり、ここでは詳しい説明を省略する。ユーザは、ポインティングデバイス12bを操作してツリー表示画面のをダブルクリック等により選択すると、ツリー表示が展開される。すなわち、制御部14は、ツリー表示画面のをユーザによるポインティングデバイス12bのクリック操作を受信すると、ユニット情報記憶部16を参照して得られたユニット情報を図8のユニット選択画面に表示する。こうして表示されたユニット選択画面において、ユーザは使用するユニットをユニット一覧から探し出し、ポインティングデバイス12bを操作して選択する。すなわち、制御部14は、ユニット選択画面の選択されたユニット例えばCJ1W-OD202の位置でユーザによるポインティングデバイス12bのクリック操作を受信すると、ユニット情報記憶部16を参照して得られたユニットのイラスト情報ILをイラスト化して、図7に示すユニット構成図におけるCPUラック00のスロット位置例えばスロット3に表示する。このとき、型式、名称、仕様等のユニット情報が図7におけるユニット構成図の右側のユニット情報画面W3に表示される。このようにして、ユニット0,ユニット1,...のうち何れか一つのイラストをCPUラック00におけるスロット0,1,2,...の何れか一つに対して表示部13の表示画面13aに配置してユニット構成図を作成する。また、ユニット構成図作成ステップS1では、制御部14は、次のようなユニットの追加、移動、削除動作を行ってユニット構成を改変することができる。図9は、図7に示すユニット構成図からユニット構成を改変した後の状態を示す表示画面である。図7に示すユニット構成図のユニット構成を改変するにあたり、ユーザは、ポインティングデバイス12bを操作してユニットのイラストを選択し、選択したユニット例えばスロット0のユニット0のイラストをドラッグアンドドロップにより他のスロット例えばスロット1に移動させる。すなわち、制御部14は、ユニット選択画面の選択されたユニット例えばスロット0のユニット0の位置でユーザによるポインティングデバイス12bのドラッグを受信すると、選択されたユニットをカーソルで移動させ、他のスロット例えばスロット1の位置でユーザによるポインティングデバイス12bのドロップを受信すると、選択されたユニット例えばスロット0にあったユニット0を他のスロット例えばスロット1に移動させる。このとき、制御部14は、他のスロット例えばスロット1にあったユニット例えばユニット1については、選択されたユニットのスロット例えばスロット0に移動させる。また、制御部14は、移動対象のユニットの位置情報も表示させる図9におけるユニット情報画面W3及びユニット構成図の右下の位置情報画面W4参照。なお、位置情報を表示させる場合には、位置情報画面W4の上に表示されるユニット情報画面W3のユニット情報の内容は、簡略化されて表示されるようになっている。また、制御部14は、選択されたユニット例えばユニット0を1又は複数のスロット例えばスロット1を隔てて移動させる場合には、他のスロット例えばスロット2にあったユニット例えばユニット2を、選択されたユニット例えばユニット0と入れ替えるようにしてもよいし、選択されたユニットのスロット例えばスロット0に、その隣選択されたユニット0を移動させた側、図7では右側のスロット例えばスロット1のユニット例えばユニット1を移動させ、移動させたユニットのスロット例えばユニット1のスロット1に、その隣図7では右側のスロット例えばスロット2のユニット例えばユニット2を移動させてもよい。このようにして、制御部14は、ユニット0,ユニット1,...の少なくとも一つのイラストを一つずつ例えばユニット0を、CPUラック00におけるスロット0,1,2,...の何れか一つのイラストに対してドラッグアンドドロップにより表示部13の表示画面13aに移動表示可能に配置してユニット構成図を作成する図9参照。また、ユーザは、ポインティングデバイス12bを操作してユニットのイラストを選択し、選択したユニット例えばスロット3のユニットのイラストを削除操作により削除消去する。すなわち、制御部14は、ユニット選択画面の選択されたユニット例えばスロット3のユニットの位置でユーザによるポインティングデバイス12bのクリック操作を受信すると、選択されたユニットを選択表示例えば反転表示し、ユーザのキーボード12a図1参照の所定キー例えば削除[delete]キーの押下操作を受け付けると、選択されたユニット例えばスロット3のユニットを配置されていたスリット例えばスリット3から削除消去する。なお、実行処理記憶部15の不揮発メモリ15bには、画面上の位置情報に対するスロット位置スロット番号が対応付けられて記憶されている。これにより、制御部14は、ユニット構成が改変されたこと、さらには、ユニット0,ユニット1,...のうち何れのイラストが何れのスロットに移動したかを検出認識することができる。[メモリ割り付けステップS2]次に、図4に示すメモリ割り付けステップS2では、制御部14は、ユニット0,ユニット1,...のCPUユニット22におけるメモリM図1参照のアドレスの割り付けを行う。このアドレスの割り付け処理は、前述の背景技術の欄で説明した従来の手法と同様であり図26の説明箇所参照、ここでは詳しい説明を省略する。そして、制御部14は、複数のポートに対してそれぞれ複数のポートIDを識別可能に設定するようになっている。これにより、複数のポートに対して複数のポートIDがそれぞれ一意に決定される。[アドレステーブル登録ステップS3]図4に示す判断ステップS31では、制御部14は、後述する図10に示すアドレステーブルTB1が新規登録か否か、すなわちアドレステーブルTB1にデータが登録されているか否かを判断する。アドレステーブルTB1にデータが登録されていない場合にはステップS31:Yes、アドレステーブル登録ステップS3に移行する一方、アドレステーブルTB1にデータが登録されている場合にはステップS31:No、変数情報受け付けステップS4に移行する。アドレステーブル登録ステップS3では、制御部14は、後述する図10に示すように、ユニット0,ユニット1,...におけるポートPtに対してそれぞれ一意に決められた複数のポートIDに対応して関連付けられるアドレスと複数のポートIDとの対応関係を示すアドレステーブルTB1を登録する。本実施の形態では、アドレステーブルTB1は、実行処理記憶部15の不揮発メモリ15bに記憶されるようになっている。図10は、図7に示すユニット構成図で構成されたユニットにおけるポートIDに対してアドレスを格納するアドレステーブルTB1のデータ構造の一例を示す模式図である。この例では、ラック00のスロット0に配置される入力ユニット0型式CJ1W-ID201について入力ポート00,入力ポート01,入力ポート02,...のポートID0000,0001,0002,...に対応してメモリMのアドレス0000チャネルの00ビット,01ビット,02ビット,...を割り付け、入力ポート10,入力ポート11,入力ポート12,...のポートID0100,0101,0102,...に対応してメモリMのアドレス0001チャネルの00ビット,01ビット,02ビット,...を割り付ける。また、ラック00のスロット1に配置される出力ユニット1型式CJ1W-OC201について出力ポート00,出力ポート01,出力ポート02,...のポートID1000,1001,1002,...に対応してメモリMのアドレス0010チャネルの00ビット,01ビット,02ビット,...を割り付け、出力ポート10,出力ポート11,出力ポート12,...に対応してメモリMのアドレス0011チャネルの00ビット,01ビット,02ビット,...を割り付ける。なお、ポートIDの値は、ユニット構成が改変されてもユニットに対して変化しない値である。[変数情報受け付けステップS4]次に、図4に示す変数情報受け付けステップS4では、制御部14は、ポートIDに対応して関連付けられる変数Varの入力情報をキーボード21a図1参照による入力操作によって受け付ける。具体的には、制御部14は、後述する図11に示すように、図7に示すユニット構成図で構成されたユニットを階層的に表示する。図11は、図7に示すユニット構成図を階層的に表示した表示画面である。なお、図11及び後述する図12、図14、図17において、Rは読み出しを意味し,Wは書き込みを意味し、RWは読み出し及び書き込みの双方を意味する。この例では、入力ユニット0型式CJ1W-ID201のポートPtは、ラック階層、ユニット階層、ポート階層といった階層的な物理構成を呈しており、この階層的な物理構成のうち、ラック階層がCPURack0、ユニット階層がCJ1W-ID201DC入力ユニット、ポート階層がCh1_Inで表現されている。出力ユニット1型式CJ1W-OC201のポートPtは、ラック階層がCPURack0、ユニット階層がCJ1W-OC201リレー接点出力ユニット、ポート階層がCh1_Outで表現されている。なお、本実施の形態では、制御部14は、変数Varに対応するコメント情報Coをキーボード21aによる入力操作によって受け付けるようになっている。[パス設定表示ステップS5]次に、本実施の形態では、制御部14は、図4に示すパス設定表示ステップS5を実施する。具体的には、判断ステップS51において、制御部14は、ポートIDをパス形式で表示させるか否かを判断する。すなわち、制御部14は、ポートIDのパス形式での表示を指示するアイコン図示省略に対してユーザによるポインティングデバイス12bのクリック操作を受信すると判断ステップS51:Yes、パス設定表示ステップS5において、後述する図12に示すように、ポートIDに対してラックパス名、スロットパス名、チャネルパス名及びビットパス名を順に階層的に表したパス形式でパスPaを表示部13の表示画面13aに表示させる。図12は、ポートIDを階層的に表したパス形式で表示した表示画面である。また、図13は、図10に示すアドレステーブルTB1においてパス名を追加したデータ構造の一例を示す模式図である。この例では、入力ユニット0型式CJ1W-ID201のポートPtは、図13のCPUラック00に対応する図12のラックパス名がrack0、図13のスロット0に対応する図12のスロットパス名がslot0、図13のチャネル0000に対応する図12のチャネルパス名がCh1_In、図13のビット××に対応する図12のビットパス名がCh_In××に設定されている。出力ユニット1型式CJ1W-OC201のポートPtは、図13のCPUラック00に対応する図12のラックパス名がrack0、図13のスロット1に対応する図12のスロットパス名がslot1、図13のチャネル0010に対応する図12のチャネルパス名がCh1_Out、図13のビット××に対応する図12のビットパス名がCh_Out××に設定されている。なお、××は、アドレスのビットに対応した値である。このようにして、制御部14は、ポートIDに対して、CPUラック00に対応するラックパス名、スロット0,スロット1,スロット2,...のうち何れか一つのスロットに対応するスロットパス名、何れか一つスロットに対する複数のチャネルのうち何れか一つのチャネルに対応するチャネルパス名及び何れか一つのチャネルに対する複数のビットのうち何れかの一つのビットに対応するビットパス名を順に階層的に表したパス形式でパスPaを設定して表示部13の表示画面13aに表示させる。なお、ポートIDのパス形式での表示を指示するアイコン図示省略を操作しなくても、常にパスPaを表示させるようになっていてもよい。[変数情報自動設定ステップS6]次に、本実施の形態では、制御部14は、図4に示す変数情報自動設定ステップS6を実施する。具体的には、判断ステップS61において、制御部14は、変数Varを自動的に設定するか否かを判断する。すなわち、制御部14は、変数Varの自動設定を指示するアイコン図示省略に対してユーザによるポインティングデバイス12bのクリック操作を受信すると判断ステップS61:Yes、変数情報自動設定ステップS6において、図11及び図12に示すように、ポートの階層的な物理構成の名称から抽出した変数Varを自動的に設定して表示部13の表示画面13aに表示する。図14は、ポートの階層的な物理構成の名称から抽出して自動的に設定した変数Varを表示した表示画面である。この例では、入力ユニット0型式CJ1W-ID201の変数Varは、先頭の3桁がユニット層のユニットCJ1W-ID201に付されたデバイス名J01図9の位置情報画面W4参照とされ、中間の3桁がポート階層のCh1_Inの少なくとも二つの文字から取得したCh1とされ、末尾の2桁又は4桁がポート階層のCh1_Inに対する連番とされている。なお、図4に示すフローチャートでは省略したが、制御部14は、ここでは、ユーザによる何れかの変数Varへのポインティングデバイス12bのクリック操作を受信すると、変数情報受け付けステップS4に戻り、クリック操作された変数Varの入力情報をキーボード21aによる入力操作によって受け付けるようになっている。次に、図5に示す判断ステップS62において、制御部14は、変数Varを確定するか否かを判断する。すなわち、制御部14は、判断ステップS62で変数Varが確定されない場合判断ステップS62:No、処理の終了を指示するアイコン図示省略に対してユーザによるポインティングデバイス12bのクリック操作を受信するまで判断ステップS63:No、変数情報受け付けステップS4に移行して変数の入力情報の受け付け処理を行う一方、処理の終了を指示するアイコンに対するクリック操作を受信すると判断ステップS63:Yes、判断ステップS82に移行する。一方、制御部14は、判断ステップS62において変数Varの確定を指示するアイコン図示省略に対してユーザによるポインティングデバイス12bのクリック操作を受信すると判断ステップS62:Yes、変数テーブル作成ステップS7に移行する。[変数テーブル作成ステップS7]変数テーブル作成ステップS7では、制御部14は、ポートIDに対応して関連付けられる変数VarとポートIDとの対応関係を示す変数テーブルTB2後述する図15参照を作成する。図15は、パスPaが設定されたポートIDに対して変数Varを格納する変数テーブルTB2のデータ構造の一例を示す模式図である。変数テーブルTB2は、実行処理記憶部15の不揮発メモリ15bに記憶されるようになっている。図15に示す数テーブルTB2には、変数名、データ型がポートID及びそのパス名と関連付けられて格納されている。この例では、バイト型8ビットの変数VarJ01_Ch1_Inに対して、rack0/slot0/Ch1_InのパスPaが格納され、ブール型1ビットの変数VarJ01_Ch1_In00~J01_Ch1_In07に対して、それぞれ、rack0/slot0/Ch1_In00~rack0/slot0/Ch1_In07のパスPaが格納されている。[ポートID書き換えステップS8]図5に示す判断ステップS81では、制御部14は、ユニット構成図作成ステップS1においてユニット0,ユニット1,...の何れか一つのユニットの配置位置が変更されたか、ユニットが追加されたか或いはユニットが削除されたかユニット構成が改変されたか否かを判断する。制御部14は、ユニット構成図作成ステップS1においてユニット構成が改変されたと判断した場合には判断ステップS81:Yes、ポートID書き換えステップS8に移行する一方、ユニット構成が改変されていないと判断した場合には判断ステップS81:No、判断ステップS63に移行する。ポートID書き換えステップS8では、制御部14は、ユニット構成図作成ステップS1にてユニット0,ユニット1,...のユニット構成が改変された場合に、アドレステーブルBT1に対して、ユニット構成図作成ステップS1にて検出した変更前のユニット例えばユニット0,ユニット1におけるポートID具体的にはパスPaが設定されたポートIDを、ユニット構成図作成ステップS1にて検出した変更後のユニット例えばユニット1,ユニット0におけるポートIDに書き換える。図16は、図13に示すアドレステーブルTB1においてユニット構成が改変された後のデータ構造の一例を示す模式図である。図17は、図12に示す表示画面においてユニット構成が改変された後に表示した表示画面である。この例では、スロット0のユニット0とスロット1のユニット1とが相互に入れ替えられる一例を示している。すなわち、図13のαに示すように0000チャネルの00ビット,0000チャネルの01ビット,0000チャネルの02ビット,...に格納されていたポートID0000パス形式ではrack0/slot0/Ch1_In/Ch1_In00,0001パス形式ではrack0/slot0/Ch1_In/Ch1_In01,0002パス形式ではrack0/slot0/Ch1_In/Ch1_In02,...が、図16のαに示すように0010チャネルの00ビット,0010チャネルの01ビット,0010チャネルの02ビット,...のアドレスに書き換えられる。また、図13のβに示すように0010チャネルの00ビット,0010チャネルの01ビット,0010チャネルの02ビット,...に格納されていたポートID1000パス形式ではrack0/slot1/Ch1_Out/Ch1_Out00,1001パス形式ではrack0/slot1/Ch1_Out/Ch1_Out01,1002パス形式ではrack0/slot1/Ch1_Out/Ch1_Out02,...が、図16のβに示すように0000チャネルの00ビット,0000チャネルの01ビット,0000チャネルの02ビット,...のアドレスに書き換えられる。そして、ポートIDにパスPaが設定される場合には、入力ユニット0この例では型式CJ1W-ID201のポートPtは、図16のCPUラック00に対応する図17のラックパス名がrack0、図16のスロット1に対応する図17のスロットパス名がslot1、図16のチャネル0010に対応する図17のチャネルパス名がCh1_In、図16のビット××に対応する図17のビットパス名がCh_In××に設定される。出力ユニット1この例では型式CJ1W-OC201のポートPtは、図16のCPUラック00に対応する図17のラックパス名がrack0、図16のスロット0に対応する図17のスロットパス名がslot0、図16のチャネル0000に対応する図17のチャネルパス名がCh1_Out、図16のビット××に対応する図17のビットパス名がCh_Out××に設定される。なお、××は、アドレスのビットに対応した値である。図5に示すフローチャートにおいて、判断ステップS81を除去し、判断ステップS62において変数Varを確定した場合に判断ステップS62:Yes、常に、ポートID書き換えステップS8を処理するようにしてもよい。なお、図15に示す変数テーブルTB2についても、ユニット構成図作成ステップS1においてユニット0,ユニット1,...の何れか一つのユニットの配置位置が変更された場合には、それに対応してパスPaの設定が更新されるようになっている。[アドレス取得ステップS9]次に、図5に示す判断ステップS82では、制御部14は、制御プログラムをオブジェクトコードに変換するか否かを判断する。すなわち、制御部14は、制御プログラムのオブジェクトコードへの変換を指示するアイコン図示省略に対してユーザによるポインティングデバイス12bのクリック操作を受信すると判断ステップS82:Yes、アドレス取得ステップS9に移行する。アドレス取得ステップS9では、制御部14は、制御プログラムに記述された変数Varに対応するポートIDを変数テーブルTB2図15参照から取得し、取得したポートIDに対応するアドレスを、データ更新されたアドレステーブルTB1図16参照から取得する。例えば、ユニット構成が改変される前の図15に示す変数テーブルTB2の変数VarJ01_Ch1_In00に対応するポートID0000パス形式ではrack0/slot0/Ch1_In/Ch1_In00は、図13に示すアドレステーブルTB1においてアドレスがチャネル0000のビット00であったのに対して、ユニット構成が改変された後の図16に示すアドレステーブルTB1では、ポートID0000パス形式ではrack0/slot1/Ch1_In/Ch1_In00に対応するアドレスがチャネル0010のビット00となる。従って、ユーザは、制御プログラムを作成する際には、ポートPtの種類を示す変数Varを記述しておけば、ユニット構成が改変されたとしても、自動的に変数Varに対応するアドレスが変更されるので、アドレスを意識する必要がない。すなわち、ユニット構成の改変に応じて制御プログラムを変更する必要がない。そして、図15に示す変数テーブルTB2の変数VarJ01_Ch1_In00に対応するポートID0000に設定されたパスPaは、図16及び図17に示すように、rack0/slot1/Ch1_In/Ch1_In00に更新されるので、ユーザは最新のパスPaを参照することができる。[変換ステップS10]そして、図5に示す変換ステップS10では、取得したアドレスを用いて制御プログラムをCPUユニット22で実行可能なオブジェクトコードに変換具体的にはコンパイルする。以上説明したように、本実施の形態に係る制御プログラム開発支援装置100によれば、ユニット構成が改変された場合に、アドレステーブルTB1に対して、変更前のユニットにおけるポートIDを、変更後のユニットにおけるポートIDに書き換え、変数Varに対応するポートIDを変数テーブルTB2から取得し、取得したポートIDに対応するアドレスをアドレステーブルTB1から取得する。こうすることで、たとえユニット構成が改変されたとしても、変数テーブルTB2によって制御プログラムに記述されたアドレス、さらには変数と、ポートPtとの関係が維持されているので、変数に対する制御プログラムにおけるアドレスの変更作業や、アドレスに対して設定した変数の変更作業を行う必要がなく、これにより、ユニット構成の改変に伴う利便性を向上させることができる。ところで、従来は、変数Varに設定しているアドレスは、CPUユニット22のメモリMに割り付けられたメモリエリアを表しているだけであったため、ユーザは、アドレスからユニットの配置位置を認識することが困難であった。この点、本実施の形態では、ポートIDに対して、ラックパス名、スロットパス名、チャネルパス名及びビットパス名を順に階層的に表したパス形式でパスPaを設定して表示させるので、ユーザは、パスPaを見ただけでユニットの配置位置を容易に認識することが可能となる。また、本実施の形態では、変数情報受け付けステップS4と、変数情報自動設定ステップS6とを実施するので、変数情報受け付けステップS4にて変数Varの入力情報を入力するか、或いは、変数情報自動設定ステップS6にて変数Varを自動的に設定するかを、ユーザが必要に応じて使い分けすることが可能となる。また、本実施の形態では、ユニット構成図を作成するときに、ユニットが何れのスロットに移動したかを検出することができ、これにより、ユニットの配置位置の変更を効率的に検出することが可能となる。また、ユニット構成図は、図24に示すようなツリー形式の構造図であってもよいが、本実施の形態では、ユニットのイラストを、スロットのイラストに対してドラッグアンドドロップにより表示部13の表示画面13aに移動表示可能に配置してユニット構成図を作成するので、ユニット構成図におけるユニット構成を、イラストによって視覚的に改変することができ、ユニット構成の改変作業の容易化を実現することが可能となる。なお、本実施の形態では、CPUラック00について説明したが、増設ラックラック01,ラック02,...についても同様にして行うことができる。また、本実施の形態では、PLC200を複数備え、LAN等のネットワークを介して複数のPLC200,...を相互に接続するようにしてもよい。この場合、ポートIDに設定したパスPaの表示形態としては、先頭にネットワークのパス名例えばPLC名を付与した表示形態を例示できる。"