(57)【要約】【課題】ユーザにとって拡張ユニットの識別情報の割り当ての自由度を増すこと。【解決手段】本発明によれば、基本ユニット３によって各拡張ユニット４に付与される構成ＩＤと、ユーザプログラム上で各拡張ユニットを識別するために使用されるユニットＩＤとを別個に設け、これらの関連付けを管理することで、ユーザは、プログラム作成支援装置上で自由にユニットＩＤを決定できるようになる。つまり、ユーザにとっては、拡張ユニットのユニットＩＤの割り当ての自由度が増加することになる。【選択図】図１９
2016110221.tif 000002
【特許請求の範囲】
【請求項１】
ユーザプログラムを繰り返し実行する基本ユニットと、前記基本ユニットによって制御される１つ以上の拡張ユニットとを有するプログラマブル・ロジック・コントローラであって、
前記基本ユニットは、
前記基本ユニットに対して接続されている拡張ユニットを認識し、認識した各拡張ユニットに対してそれぞれ固有の第１識別情報を付与する認識手段と、
前記基本ユニットに接続可能な設定支援装置上で設定された識別情報であって、前記ユーザプログラム上で前記各拡張ユニットを識別するために使用される固有の第２識別情報と、対応する前記第１識別情報とを関連付けて管理する管理手段と
を有し、
前記各拡張ユニットは、
自ユニットに割り当てられている前記第１識別情報を少なくとも記憶する識別情報記憶手段と
を有することを特徴とするプログラマブル・ロジック・コントローラ。
【請求項２】
前記基本ユニットは、前記ユーザプログラムの非実行中に前記第１識別情報により特定される拡張ユニットと前記通信バスを介して通信可能に構成され、前記ユーザプログラムの実行中に前記第２識別情報により特定される拡張ユニットと前記通信バスを介して通信可能に構成されることを特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項３】
前記基本ユニットは、前記ユーザプログラムを記憶する記憶手段を備え、
前記ユーザプログラムが前記記憶手段に記憶されていない状態で、前記第１識別情報により特定される拡張ユニットと前記通信バスを介して通信可能に構成されることを特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項４】
前記各拡張ユニットは、自ユニットに割り当てられている前記第１識別情報に加えて、前記第２識別情報も記憶していることを特徴とする請求項１ないし３のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項５】
前記認識手段は、予め定められた付与規則にしたがって前記各拡張ユニットの前記第１識別情報を決定することを特徴とする請求項１ないし４のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項６】
前記認識手段は、前記各拡張ユニットの接続位置に応じて前記第１識別情報を決定することを特徴とする請求項１ないし５のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項７】
前記認識手段は、前記各拡張ユニットの接続位置に応じて連番で前記第１識別情報を決定することを特徴とする請求項６に記載のプログラマブル・ロジック・コントローラ。
【請求項８】
前記基本ユニットには、当該基本ユニットに対して一列に連結される複数の拡張ユニットを含む第１グループと、前記複数の拡張ユニットのうちの１つである延長ユニットから延長された通信バスを介して接続された１つ以上の拡張ユニットを含む第２グループとが接続されており、
前記認識手段は、前記第１グループに含まれている複数の拡張ユニットのうち前記基本ユニットに直接的に連結されている拡張ユニットから前記延長ユニットまでに順番に前記第１識別情報を付与し、次に、前記第２グループに含まれているすべての拡張ユニットに対して順番に前記第１識別情報を付与し、さらに、前記第１グループに含まれている複数の拡張ユニットのうち前記延長ユニットから連結されている拡張ユニットに対して順番に前記第１識別情報を付与して行くことを特徴とする請求項７に記載のプログラマブル・ロジック・コントローラ。
【請求項９】
前記延長ユニットは、前記第１グループに属する第１延長ユニットと、前記第１延長ユニットとケーブルで接続され、前記第２グループに属する第２延長ユニットとを含み、
前記認識手段は、前記第２グループに属する拡張ユニットに前記第１識別情報を付与するときは、前記第２延長ユニットから順番に前記第１識別情報を付与して行くことを特徴とする請求項８に記載のプログラマブル・ロジック・コントローラ。
【請求項１０】
前記第２識別情報は前記設定支援装置上で設定される任意の識別情報であることを特徴とする請求項１ないし９のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１１】
前記延長ユニットには前記第２識別情が付与されないことを特徴とする請求項８または９に記載のプログラマブル・ロジック・コントローラ。
【請求項１２】
前記拡張ユニットは、
前記基本ユニットに近い側に設けられ、該基本ユニットまたは他の拡張ユニットが連結される第１連結面と、
前記基本ユニットに対して遠い側に設けられ、他の拡張ユニットまたは終端ユニットが連結される第２連結面と、
前記第２連結面に対して他の拡張ユニットが連結されているどうかを判別する判別手段と
を有し、
前記認識手段は、
前記基本ユニットに直接的に連結されている第１拡張ユニットに前記第１識別情報を付与し、当該第１拡張ユニットの前記判別手段が当該第１拡張ユニットの前記第２連結面に第２拡張ユニットが連結されていると判別すると、当該第２拡張ユニットに前記第１識別情報を付与し、当該第２拡張ユニットの前記判別手段が当該第２拡張ユニットの前記第２連結面に他の拡張ユニットが連結されていないと判別すると、前記第１識別情報の付与処理を終了することを特徴とする請求項１ないし７のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１３】
前記拡張ユニットは、自ユニットと外部機器との結線状態に関する結線情報を作成し、前記第１識別情報を用いて前記基本ユニットに送信する結線情報作成手段をさらに有し、
前記基本ユニットは、前記結線情報を表示手段に表示することを特徴とする請求項２または３に記載のプログラマブル・ロジック・コントローラ。
【請求項１４】
前記基本ユニットは、前記拡張ユニットの前記第１識別情報を用いて当該拡張ユニットのシステムプログラムを転送して更新することを特徴とする請求項２、３または１３に記載のプログラマブル・ロジック・コントローラ。
【請求項１５】
前記認識手段は、前記基本ユニットに連結されている複数の拡張ユニットのうちいずれかが取り外されるか、または、他の拡張ユニットが追加されると、各拡張ユニットに対して前記第１識別情報を付与し直すことを特徴とする請求項１ないし１４のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１６】
前記管理手段は、前記基本ユニットに連結されている複数の拡張ユニットのうちいずれかが取り外されても、依然として当該基本ユニットに連結されている残りの各拡張ユニットに付与されている前記第２識別情報を変更しないことを特徴とする請求項１ないし１５のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１７】
ユーザプログラムを繰り返し実行する、プログラマブル・ロジック・コントローラの基本ユニットであって、
前記基本ユニットに対して接続されている拡張ユニットを認識し、認識した各拡張ユニットに対してそれぞれ固有の第１識別情報を付与する認識手段と、
前記基本ユニットに接続可能な設定支援装置上で設定された識別情報であって、前記ユーザプログラム上で前記各拡張ユニットを識別するために使用される固有の第２識別情報と、対応する前記第１識別情報とを関連付けて管理する管理手段と
を有することを特徴とする基本ユニット。
【請求項１８】
ユーザプログラムを繰り返し実行する、プログラマブル・ロジック・コントローラの基本ユニット用の制御方法であって、
前記基本ユニットに対して接続されている拡張ユニットを認識し、認識した各拡張ユニットに対してそれぞれ固有の第１識別情報を付与する認識工程と、
前記基本ユニットに接続可能な設定支援装置上で設定された識別情報であって、前記ユーザプログラム上で前記各拡張ユニットを識別するために使用される固有の第２識別情報と、対応する前記第１識別情報とを関連付けて管理する管理工程と
を有することを特徴とする制御方法。
【請求項１９】
ユーザプログラムを繰り返し実行する、プログラマブル・ロジック・コントローラの基本ユニット用の制御プログラムであって、
前記基本ユニットに対して接続されている拡張ユニットを認識し、認識した各拡張ユニットに対してそれぞれ固有の第１識別情報を付与する認識工程と、
前記基本ユニットに接続可能な設定支援装置上で設定された識別情報であって、前記ユーザプログラム上で前記各拡張ユニットを識別するために使用される固有の第２識別情報と、対応する前記第１識別情報とを関連付けて管理する管理工程と
を前記基本ユニットに実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラ、基本ユニット、制御方法および制御プログラムに関する。
【背景技術】
【０００２】
特許文献１が示すようにプログラマブル・ロジック・コントローラ（ＰＬＣ）の基本ユニットには、一般に複数の拡張ユニットが接続される。基本ユニットは、プログラム作成支援装置などの設定支援装置から設定情報を取得し、設定情報で特定される各拡張ユニットの種類や接続態様、順番、識別情報にしたがって拡張ユニットと通信して拡張ユニットを制御する。なお、識別情報は、ラダープログラム上で各拡張ユニットを識別するためにも使用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０５２６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術によれば、プログラム作成支援装置によって各拡張ユニットを識別するため識別情報が割り当てられないと、基本ユニットは各拡張ユニットを制御することができなかった。また、各拡張ユニットの識別情報は基本ユニットに近い側から順番に付与される番号であり、連番であった。そのため、ユーザは、各拡張ユニットの識別情報を任意に決定することができず、割り当ての自由度が欠けていた。たとえば、ユーザが新規に購入した拡張ユニットをある拡張ユニットと他の拡張ユニットとの間に設置すると、新規の拡張ユニットに識別情報を割り当てるとともに、他の拡張ユニットには識別情報を割り当て直さなければならなかった。また、割り当て直された識別情報にしたがってラダープログラムも修正しなければならなかった。
【０００５】
そこで、本発明は、ユーザにとって拡張ユニットの識別情報の割り当ての自由度を増すことを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、たとえば、
ユーザプログラムを繰り返し実行する基本ユニットと、前記基本ユニットによって制御される１つ以上の拡張ユニットとを有するプログラマブル・ロジック・コントローラであって、
前記基本ユニットは、
前記基本ユニットに対して接続されている拡張ユニットを認識し、認識した各拡張ユニットに対してそれぞれ固有の第１識別情報を付与する認識手段と、
前記基本ユニットに接続可能な設定支援装置上で設定された識別情報であって、前記ユーザプログラム上で前記各拡張ユニットを識別するために使用される固有の第２識別情報と、対応する前記第１識別情報とを関連付けて管理する管理手段と
を有し、
前記各拡張ユニットは、
自ユニットに割り当てられている前記第１識別情報を少なくとも記憶する識別情報記憶手段と
を有することを特徴とするプログラマブル・ロジック・コントローラを提供する。
【発明の効果】
【０００７】
本発明によれば、基本ユニットによって各拡張ユニットに付与される第１識別情報と、ユーザプログラム上で各拡張ユニットを識別するために使用される第２識別情報とを別個に設け、これらの関連付けを管理することで、ユーザは、設定支援装置上で自由に第２識別情報を決定できるようになる。つまり、ユーザにとって拡張ユニットの識別情報の割り当ての自由度が増加することになる。
【図面の簡単な説明】
【０００８】
【図１】ＰＬＣシステムの一例を示す図
【図２】ユーザプログラムの一例を示す図
【図３】プログラム作成支援装置の一例を示す図
【図４】ＰＬＣの一例を示す図
【図５】スキャンタイムを説明するための図
【図６】ベースレス・ビルディングタイプのＰＬＣの一例を示す図
【図７】ユニット間の連結構造を説明するための図
【図８】ユニット間の連結構造を説明するための図
【図９】基本ユニットのＣＰＵが実現する機能の一例を示す図
【図１０】基本ユニットのＣＰＵが実現する機能の一例を示す図
【図１１】拡張ユニットのＣＰＵが実現する機能の一例を示す図
【図１２】構成ＩＤ割り当ての一例を示すフローチャート
【図１３】管理テーブルの一例を示す図
【図１４】構成ＩＤとユニットＩＤとの関連付けの一例を示す図
【図１５】拡張ユニットにおける構成ＩＤの設定を示す図
【図１６】設定データを作成するためのＧＵＩの一例を示す図
【図１７】設定データを作成するためのＧＵＩの一例を示す図
【図１８】ユニットＩＤの割り当て処理の一例を示すフローチャート
【図１９】各ユニットの配置、構成ＩＤおよびユニットＩＤの一例を示す図
【図２０】各ユニットの配置、構成ＩＤおよびユニットＩＤの一例を示す図
【図２１】各ユニットの配置、構成ＩＤおよびユニットＩＤの一例を示す図
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
はじめにプログラマブル・ロジック・コントローラ（ＰＬＣ、単にプログラマブルコントローラと呼ばれてもよい）を当業者にとってよりよく理解できるようにするために、一般的なＰＬＣの構成とその動作について説明する。
【００１１】
図１は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図１に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置１と、工場等に設置される各種制御装置を統括的に制御するためのＰＬＣ（プログラマブル・ロジック・コントローラ）２とを備えている。ＰＬＣ２は、ＣＰＵが内蔵された基本ユニット３と１つないし複数の拡張ユニット４を備えている。基本ユニット３に対して１つないし複数の拡張ユニット４が着脱可能となっている。基本ユニット３はＣＰＵユニットと呼ばれることもある。
【００１２】
基本ユニット３には、表示部５及び操作部６が備えられている。表示部５には、基本ユニット３に取り付けられている各拡張ユニット４の動作状況などを表示することができ、表示部５の表示内容は、操作部６を操作することにより切り替えることができる。表示部５には、通常、ＰＬＣ２内のデバイスの現在値（デバイス値）やＰＬＣ２内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称である。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー（補助リレー）、タイマー、カウンタ、データメモリ等の状態を示す情報である。
【００１３】
拡張ユニット４は、ＰＬＣ２の機能を拡張するために用意されており、基本ユニット３に対して側方から取り付けられる。１つ目の拡張ユニット４は、基本ユニット３に対して側方から直接的に取り付けられる。２つ目以降の拡張ユニット４は、既に取り付けられている拡張ユニット４に対して、側方から直列的に取り付けられる。たとえば、基本ユニット３の右側面と拡張ユニット４の左側面とが連結面になっている。同様に、１つ目の拡張ユニット４の右側面の形状等は基本ユニット３の右側面とほぼ同じであるため、１つ目の拡張ユニット４の右側面に２つ目の拡張ユニット４の左側面が連結される。このような連結方式は、数珠つなぎ方式とかデイジーチェーン方式と呼ばれてもよい。各連結面にはコネクタが設けられており、通信や電力供給を行うためのバスもコネクタを介して連結される。このようにして、基本ユニット３と複数の拡張ユニット４が直列的に取り付けられると、各拡張ユニット４内に備えられた配線（例：バス）を介して、各拡張ユニット４が基本ユニット３に対して通信可能に接続される。各拡張ユニット４には、その拡張ユニット４の機能に対応する被制御装置１６（図４）が接続され、これにより、各被制御装置１６が拡張ユニット４を介して基本ユニット３に接続される。被制御装置１６には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。
【００１４】
プログラム作成支援装置１は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部７及び操作部８が備えられている。ＰＬＣ２を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置１を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置１内でニモニックコードに変換される。そして、プログラム作成支援装置１を、ＵＳＢ(Universal Serial Bus)などの通信ケーブル９を介してＰＬＣ２の基本ユニット３に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置１から基本ユニット３に送ると、そのラダープログラムが基本ユニット３内でマシンコードに変換され、基本ユニット３に備えられたメモリ内に記憶される。
【００１５】
なお、図１では示していないが、プログラム作成支援装置１の操作部８には、プログラム作成支援装置１に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置１は、ＵＳＢ以外の他の通信ケーブル９を介して、ＰＬＣ２の基本ユニット３に対して着脱可能に接続されるような構成であってもよい。
【００１６】
図２は、ラダープログラムの作成時にプログラム作成支援装置１の表示部７に表示されるラダー図１７の一例を示す図である。図２に示すように、ＰＬＣ２を制御するためのラダープログラムは、プログラム作成支援装置１の表示部７にマトリックス状に表示される複数のセル１８内に仮想デバイスのシンボル１９を適宜配置して、視覚的なリレー回路を表すラダー図１７を構築することにより作成される。
【００１７】
ラダー図１７には、たとえば、１０列×Ｎ行（Ｎは任意の自然数）のセル１８が配置されている。そして、各行のセル１８内に、図２に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル１９を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、１行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。
【００１８】
図２に示すリレー回路は、入力装置からの入力信号に基づいてオン／オフされる３つの仮想デバイス（以下、「入力デバイス」と呼ぶ。）のシンボル１９ａ，１９ｂ，１９ｃと、出力装置の動作を制御するためにオン／オフされる仮想デバイス（以下、「出力デバイス」と呼ぶ。）のシンボル１９ｄとが適宜結合されることにより構成されている。
【００１９】
各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの上方に表示されている文字（「Ｒ０００１」、「Ｒ０００２」及び「Ｒ０００３」）は、その入力デバイスのデバイス名（アドレス名）２１を表している。各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの下方に表示されている文字（「フラグ１」、「フラグ２」及び「フラグ３」）は、その入力デバイスに対応付けられたデバイスコメント２２を表している。出力デバイスのシンボル１９ｄの上方に表示されている文字（「原点復帰」）は、その出力デバイスの機能を表す文字列からなるラベル２３である。
【００２０】
図２に示す例では、デバイス名「Ｒ０００１」及び「Ｒ０００２」にそれぞれ対応する２つの入力デバイスのシンボル１９ａ，１９ｂが直列的に結合されることにより、ＡＮＤ回路が構成されている。また、これらの２つの入力デバイスのシンボル１９ａ，１９ｂからなるＡＮＤ回路に対して、デバイス名「Ｒ０００３」に対応する入力デバイスのシンボル１９ｃが並列的に結合されることにより、ＯＲ回路が構成されている。すなわち、このリレー回路では、２つのシンボル１９ａ，１９ｂに対応する入力デバイスがいずれもオンした場合、又は、シンボル１９ｃに対応する入力デバイスがオンした場合にのみ、シンボル１９ｄに対応する出力デバイスがオンされるようになっている。
【００２１】
図３は、図１のプログラム作成支援装置１の電気的構成について説明するためのブロック図である。図３に示すように、プログラム作成支援装置１には、ＣＰＵ２４、表示部７、操作部８、記憶装置２５及び通信部２６が備えられている。表示部７、操作部８、記憶装置２５及び通信部２６は、それぞれＣＰＵ２４に対して電気的に接続されている。記憶装置２５は、少なくともＲＡＭを含む構成であり、ラダープログラム記憶部２５ａと、編集ソフト記憶部２５ｂとを備えている。
【００２２】
ユーザは、編集ソフト記憶部２５ｂに記憶されている編集ソフトをＣＰＵ２４に実行させて、操作部８を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、ラダープログラム記憶部２５ａに記憶される。また、ユーザは、必要に応じてラダープログラム記憶部２５ａに記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部２６は、通信ケーブル９を介してプログラム作成支援装置１を基本ユニット３に通信可能に接続するためのものである。
【００２３】
図４は、ＰＬＣ２の電気的構成について説明するためのブロック図である。図４に示すように、基本ユニット３には、ＣＰＵ１０、表示部５、操作部６、記憶装置１２及び通信部１４が備えられている。表示部５、操作部６、記憶装置１２、及び通信部１４は、それぞれＣＰＵ１０に電気的に接続されている。記憶装置１２は、ＲＡＭやＲＯＭ、メモリカードなどを含んでもよく、ラダープログラムなどが記憶される。記憶装置１２には、プログラム作成支援装置１から入力されたラダープログラムやユーザデータが上書きして記憶される。また、記憶装置１２には基本ユニット用の制御プログラムも格納されている。
【００２４】
図５は、本発明の実施の形態に係るプログラマブルコントローラの基本ユニット３でのスキャンタイムの構成を示す模式図である。図５が示すように１つのスキャンタイムＴは、入出力のリフレッシュを行うためのユニット間通信２０１、プログラム実行２０２、ＥＮＤ処理２０４により構成されている。ユニット間通信２０１で、基本ユニット３は、ラダープログラムを実行して得られた出力データを基本ユニット３内の記憶装置１２から外部機器などに送信するとともに、受信データを含めた入力データを基本ユニット３内の記憶装置１２に取り込む。プログラム実行２０２で、基本ユニット３は、更新された入力データを用いてプログラムを実行（演算）する。基本ユニット３はプログラムの実行によりデータを演算処理する。なお、ＥＮＤ処理とは、プログラム作成支援装置１や基本ユニット３に接続された表示器（図示せず）等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
【００２５】
このように、プログラム作成支援装置１はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをＰＬＣ２に転送する。ＰＬＣ２は、入出力リフレッシュ、ラダープログラムの実行およびＥＮＤ処理を１サイクル（１スキャン）として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器（センサ等）からのタイミング信号に基づいて、各種出力機器（モータ等）を制御する。よって、ＰＬＣ２は汎用のパーソナルコンピュータ（ＰＣ）とは全く異なる動きをする。
【００２６】
＜連結構造＞
図６（Ａ）はＰＬＣ２を構成する基本ユニット３、拡張ユニット４およびエンドユニット１１が連結される前の状態を示している。この例では、基本ユニット３の右方向に１つ以上の拡張ユニット４が連結される。最も右に位置する拡張ユニット４にはエンドユニット１１が連結される。エンドユニット１１は、最も右に位置する拡張ユニット４の右側面を保護するものであり、バスの終端機能を備えていてもよい。なお、拡張ユニット４の前面にはダイレクトアクセススイッチ２７が設けられてもよい。ダイレクトアクセススイッチ２７が操作されると、操作されたことを示す信号が通信バスを介して拡張ユニット４から基本ユニット３に伝達される。基本ユニット３は、この信号を受信することで、拡張ユニット４のダイレクトアクセススイッチ２７が操作されたことを認識し、所定の処理（テスト結果の表示など）を実行する。
【００２７】
図６（Ｂ）はＰＬＣ２を構成する基本ユニット３、拡張ユニット４およびエンドユニット１１が連結された状態を示している。このＰＬＣ２はベースレスのビルディングタイプであるため、ベースを使用せずに、基本ユニット３、拡張ユニット４およびエンドユニット１１が連結される。工場において制御盤に設置しやすくするために、ＰＬＣ２の背面にはＤＩＮレールなどの基準レール１３が取り付けられるようになっている。なお、基本ユニット３および拡張ユニット４の連結状態を維持するためにロック機構が採用されてもよい。
【００２８】
図７、図８（Ａ）および図８（Ｂ）はユニット間の連結構造を説明するための図である。図７によれば、拡張ユニット４は略直方体形状の筐体を有している。筐体は、上面４Ｔ、底面４Ｂ、左側面４Ｌ、右側面４Ｒ、前面４Ｆ、背面４ｒといった６つの主要な側面を有している。なお、図７では前面４Ｆが上を向いている。筐体面に関するこれらの呼称は便宜上のものにすぎない。
【００２９】
図８（Ａ）および図８（Ｂ）が示すように、筐体内には電気信号を伝達するための基板３３が配置され、基準レール１３の長手方向の一方端部に雌型コネクタ３４が固定されている。この基板３３には電源ラインや通信バスが実装される。雌型コネクタ３４の差込口が露出するように右側面４Ｒに開口部３５が設けられる。左側面４Ｌには、雌型コネクタ３４の差込口に挿入可能な突出部３２を含む雄型コネクタが設けられている。突出部３２を略包囲する包囲部３１が筐体に設けられる。このように突出部３２と包囲部３１とによって雄型コネクタが形成されている。
【００３０】
ここでは、第１の拡張ユニット４に対して第２の拡張ユニット４’が連結されるものとする。なお、両者に共通する事項を説明するときは、単に、拡張ユニット４と呼ぶことにする。第１の拡張ユニット４の開口部３５に第２の拡張ユニットの包囲部３１が嵌合ないしは係合される。第１の拡張ユニット４の雌型コネクタ３４の差込口に第２の拡張ユニット４’の突出部３２が挿入されることにより第１および第２の拡張ユニット間が構造的に結合されるとともに、通信バスが電気的に接続される。第１の拡張ユニット４と第２の拡張ユニット４’の雌型コネクタ３４と突出部３２の関係は、逆になっていても構わない。つまり、右側面４Ｒに突出部３２を含む雄型コネクタが設けられ、左側面４Ｌに雌型コネクタ３４が設けられてもよい。なお、基本ユニット３の右側面も拡張ユニット４の右側面と同一の構造となっており、基本ユニット３の右側面に対して拡張ユニット４の左側面４Ｌが連結されるようになっている。
【００３１】
第１の拡張ユニット４の側面に一体に形成されている凸部が第２の拡張ユニット４’の側面に形成された係止孔に挿入され、凸部と係止孔とが係合してもよい。さらに、拡張ユニット４の右側面４Ｒには、左側面４Ｌのロック孔３０のうち幅の広い開口部分に挿入可能な係止部３７を備えるロック部材３６が図中の上下方向に移動可能な状態で取り付けられていてもよい。より詳しく説明すると、図８（Ｂ）に示すように、第１の拡張ユニット４に第２の拡張ユニットＢ１を当接することで、第１の拡張ユニット４の係止部３７が第２の拡張ユニット４’のロック孔３０に挿入される。さらに、第１の拡張ユニット４のロック部材３６を図中の矢印方向に移動させると、ロック部材３６の係止部３７が第２の拡張ユニット４’のロック孔３０ｃのうち幅の狭い開口部分に係止される。これにより、第２の拡張ユニット４’が第１の拡張ユニット４に対してロックされる。なお、ロック機構は、上記の例に特に限定されず、他のロック機構が用いられてもよい。また、ロック機構の設置位置も、上記の例に特に限定されず、左側面４Ｌ等であってもよい。
【００３２】
上述したように、拡張ユニット４の右側面４Ｒにはエンドユニット１１が設けられてもよい。エンドユニット１１の左側面には、拡張ユニット４の右側面４Ｒに設けられた開口部３５に嵌合する包囲部が設けられる。この包囲部の形状は、包囲部３１の形状と類似していてもよいが、開口部３５に嵌合する形状であれば異なる形状であってもよい。また、エンドユニット１１の包囲部には終端抵抗に接続された突出部が設けられてもよい。これにより、終端が必要なバスをエンドユニット１１で終端することができ、不要な定在波の発生を抑制できるようになる。
【００３３】
このように拡張ユニット４の左側面４Ｌは基本ユニット３や他の拡張ユニット４と連結するための連結面として機能する。また、拡張ユニット４の右側面４Ｒは他の拡張ユニット４やエンドユニット１１と連結するための連結面として機能する。
【００３４】
＜ユニットＩＤと構成ＩＤ＞
従来は、各拡張ユニットを識別するためにユニットＩＤと呼ばれる識別情報がユーザによって決定され、プログラム作成支援装置１からＰＬＣ２の基本ユニット３へ通知されて、設定されていた。従来のユニットＩＤは、各拡張ユニットの接続位置（基本ユニット３を起点とした接続の順番）を示しており、連番であった。つまり、基本ユニット３に直接連結されている拡張ユニットにはユニットＩＤとして０が付与され、その次に連結された拡張ユニットにはユニットＩＤとして１が付与され、さらにその次に連結された拡張ユニットにはユニットＩＤとして２が付与されていた。ユーザは接続順番にしたがってユニットＩＤを付与しなければならず、任意のユニットＩＤを付与することができなかった。なお、このユニットＩＤはラダープログラムにおいて命令の対象となるユニットを識別するために使用されていた。一部の拡張ユニットが取り外されたり、新規の拡張ユニットが追加されたりすると、複数の拡張ユニット間での接続順番も変更されることが多い。よって、接続位置の変更に応じてユニットＩＤは振り直されなければならなかった。また、振り直されたユニットＩＤにしたがってラダープログラム上でのユニットＩＤも更新しなければならず、ユーザにとっては手間が多かった。
【００３５】
また、ユニットＩＤは、プログラム作成支援装置１から転送される設定データ（プロジェクトデータ）に含まれていた。よって、プログラム作成支援装置１から設定データを転送される前は、拡張ユニット４にはユニットＩＤが付与されていないため、基本ユニット３は拡張ユニット４を制御することができなかった。たとえば、ユニットＩＤを必要とする命令語を用いた制御は実行不可能であった。また、この状態では、拡張ユニット４のシステムプログラム（ファームウエアなど）を基本ユニット３から更新することもできなかった。
【００３６】
そこで、本実施形態では、ユニットＩＤとは別の識別情報として構成ＩＤを導入し、各拡張ユニットに付与されたユニットＩＤと構成ＩＤとを関連付けて管理することで、ユニットＩＤの決定の自由度を増加させる。たとえば、構成ＩＤは、基本ユニット３によって各拡張ユニットに付与される固有の識別情報であり、基本的に各拡張ユニットの接続位置を示しうるものであり、連番とされうるものである。一方、ユニットＩＤは、ラダープログラム上で拡張ユニット４を識別するための固有の識別情報であり、必ずしも接続位置を示していなくてもよいし、連番でなくてもよい。これにより、ユーザは、自由にユニットＩＤを付与できるようになる。また、プログラム作成支援装置１からプロジェクトデータを受信する前であっても、構成ＩＤを用いて基本ユニット３と拡張ユニット４とが通信可能となるため、基本ユニット３は拡張ユニット４を制御できるようになり、拡張ユニット４のシステムプログラムも更新可能となる。
【００３７】
＜ＰＬＣの機能＞
図９は、基本ユニット用の制御プログラムを実行することで基本ユニットのＣＰＵが実現する機能の一例を示す図である。なお、各機能はＡＳＩＣ（特定用途集積回路）などの論理回路として実装されてもよい。記憶装置１２は、基本ユニット用の制御プログラム９６、管理テーブル９０およびプロジェクトデータ１０４などを記憶している。管理テーブル９０は、ユニット構成管理部９２によって作成されて管理されており、各拡張ユニットに付与されている構成ＩＤとユニットＩＤとを関連付けている。プロジェクトデータ１０４は、プログラム作成支援装置１によって作成されて転送されてきたものであり、各拡張ユニットに割り当てられたユニットＩＤを含む設定データ１０５と、ラダープログラム１０６を含んでいる。プロジェクトデータ管理部９１は、通信部１４を介してプログラム作成支援装置１からプロジェクトデータ１０４を受信して記憶装置１２に格納する。ユニット構成管理部９２は、基本ユニット３に接続されている拡張ユニット４を認識してその接続位置に応じた固有の構成ＩＤを決定して付与するとともに、各拡張ユニットに付与されている構成ＩＤとユニットＩＤとを関連付けを管理するための管理テーブル９０を作成したり、更新したりする。状態取得部９３は、構成ＩＤを用いて拡張ユニット４から結線状態などを示す状態情報を取得するユニットである。状態取得部９３は、構成ＩＤを用いて拡張ユニット４から結線状態などを示す状態情報を取得できるため、ユニットＩＤが拡張ユニット４に割り当てられていなくても状態情報を取得できる。更新部９４は、構成ＩＤを用いて拡張ユニット４に対してシステムプログラムを転送するユニットである。更新部９４は、構成ＩＤを用いて拡張ユニット４に対してシステムプログラムを転送するため、ユニットＩＤが拡張ユニット４に割り当てられていなくてもシステムプログラムを転送できる。ＵＩ制御部９５は、操作部６の操作に応じてメニューを表示部５に表示したり、状態情報などを表示部５に表示したりするユニットである。
【００３８】
なお、通信部１４は、物理的に１つのユニットというわけではなく、ローカルエリアネットワーク用の通信回路や通信バスを介した通信を行う通信回路を含んでいる。もちろん、これらの複数の通信回路が１つのユニット（チップ）として実装されてもよい。
【００３９】
＜プログラム作成支援装置の機能＞
図１０は、プログラム作成支援装置のＣＰＵ２４が制御プログラムを実行することで実現する機能の一例を示す図である。プログラム作成支援装置１の機能のうち、基本ユニット３や拡張ユニット４の配置に関するユニット構成情報（設定データ１０５など）の設定機能を少なくとも有した設定支援装置が提供されてもよい。ここでは、説明の便宜上、プログラム作成支援機能も含むプログラム作成支援装置１として設定データ１０５の設定支援装置について説明する。設定データ１０５には、各ユニットを識別するためのユニットＩＤが含まれることになる。なお、ラダープログラムを作成して基本ユニット３に転送する支援装置と、設定データ１０５を作成して基本ユニット３に転送する支援装置とはそれぞれ別々に用意されてもよい。つまり、設定データ１０５の設定支援装置は、設定データ１０５の設定機能を有した支援装置であってもよいし、設定データ１０５の設定機能およびプログラム作成支援機能も含む支援装置であってもよい。
【００４０】
図１０において、ユニットＩＤ設定部１０１は、表示部７にユニットＩＤを設定するためのユーザインタフェースを表示し、ユーザが操作部８を通じて指定したユニットＩＤを受け付け、拡張ユニット４とユニットＩＤとの関係を示す設定データ１０５を作成し、プロジェクトデータ作成部１０３に渡す。プログラム作成部１０２は、表示部７にラダープログラムを作成するためのグラフィカルユーザインタフェース（ＧＵＩ）を表示し、ユーザが操作部８を通じて入力したラダー図にしたがってラダープログラム１０６を作成し、プロジェクトデータ作成部１０３に渡す。プロジェクトデータ作成部１０３は、設定データ１０５とラダープログラム１０６とを含むプロジェクトデータ１０４を作成し、通信部２６を介して基本ユニット３に転送する。
【００４１】
＜拡張ユニットの機能＞
図１１は、拡張ユニットのＣＰＵがシステムプログラム１２０を実行することで実現する機能の一例を示す図である。なお、各機能はＡＳＩＣ（特定用途集積回路）などの論理回路として実装されてもよい。拡張ユニット４は、ＣＰＵ１１０、記憶装置１１１と通信部１１２とを備えている。通信部１１２は、上述した通信バスを介して基本ユニット３と通信したり、他の拡張ユニット４の通信信号を中継したりしてもよい。記憶装置１２は、ＲＯＭやＲＡＭなどにより構成されている。
【００４２】
構成ＩＤ管理部１１３は、基本ユニット３によって設定された構成ＩＤ１１８を、通信部１１２を介して受信し、記憶装置１１１に格納する。ユニットＩＤ管理部１１４は、基本ユニット３によって設定されたユニットＩＤ１１９を、通信部１１２を介して受信し、記憶装置１１１に格納する。このように記憶装置１１１は、構成ＩＤ１１８やユニットＩＤ１１９などの識別情報を記憶する識別情報記憶手段として機能する。接続状態管理部１１５は、自ユニットに対して他の拡張ユニット４が接続されているかどうかを判別したり、他の拡張ユニット４との接続状態を検知したりするユニットである。結線状態検知部１１６は、被制御装置１６などの外部機器と自ユニットとの結線状態を検知して、結線状態を示す状態情報を作成して、構成ＩＤ１１８とともに基本ユニット３に送信するユニットである。書き換え部１１７は、構成ＩＤを用いて基本ユニット３の更新部９４から転送されてきたシステムプログラム１２０を受信し、記憶装置１１１の一部であるシステムＲＯＭに保持されているシステムプログラムを書き換えて更新するユニットである。なお、ＣＰＵ１１０は、ダイレクトアクセススイッチ２７が操作されたことを検知すると、ダイレクトアクセススイッチ２７が操作されたことを示すデータに構成ＩＤを付与して基本ユニット３に送信してもよい。命令実行部１２２は、ユニットＩＤに関連付けて基本ユニット３から送信されてきた命令を実行し、実行結果を返送するユニットである。なお、命令の伝達と実行結果の返送はデバイスメモリを介して実行されてもよい。ダイレクトアクセススイッチ２７は、結線状態を検知するときやシステムプログラム１２０を受信するときに操作され、ＣＰＵ１１０は基本ユニット３に対して結線状態の送信源やシステムプログラム１２０の受信源を構成ＩＤによって通知する。
【００４３】
＜構成ＩＤの割り当て＞
図１２は基本ユニット用の制御プログラムにしたがってＣＰＵ１０（ユニット構成管理部９２）が実行する構成ＩＤ割り当て処理の一例を示すフローチャートである。ユニット構成管理部９２は、たとえば、基本ユニット３に外部電源から電力を供給されて起動すると、構成ＩＤ割り当て処理を実行する。拡張ユニット４の追加や削除は、基本ユニット３に電力が供給されていない状態で実行される。よって、基本ユニット３は起動した直後に実行する初期化のシーケンスにおいて構成ＩＤ割り当て処理を実行する。
【００４４】
Ｓ１０でユニット構成管理部９２は通信部１４のバスマスタ制御部および通信バスを介して拡張ユニット４に対して機種問い合わせを送信する。機種問い合わせとは、拡張ユニット４がどのような機種であるかを問い合わせることをいう。複数の拡張ユニット４のそれぞれ通信部１１２は通信バスに接続されており、通信バスを送受信される通信信号をバケツリレー方式で基本ユニット３へ伝達する。問い合わせは、まず、基本ユニット３に直接連結された拡張ユニット４によって受信される。拡張ユニット４の構成ＩＤ管理部１１３は自ユニットにはまだ構成ＩＤが割り当てられていないことを記憶装置１１１の構成ＩＤ１１８を参照して認識すると、自ユニットの識別情報（拡張ユニットの機種名や種別を示す情報）を基本ユニット３に返信する。なお、構成ＩＤを割り当てられていない拡張ユニット４が問い合わせを受信したときは、この問い合わせを別の拡張ユニットには中継しない。反対に、構成ＩＤを割り当てられている拡張ユニット４が問い合わせを受信したときは、隣に接続されている別の拡張ユニットに問い合わせを中継する。
【００４５】
Ｓ１１でユニット構成管理部９２は拡張ユニット４から機種問い合わせに対する返信を受信する。この返信には、拡張ユニット４の機種を示す識別情報が含まれている。
【００４６】
Ｓ１２でユニット構成管理部９２は拡張ユニット４に対して構成ＩＤを割り当てる。構成ＩＤは、基本的に、接続位置を示す情報であるため、たとえば、連番となるように決定される。たとえば、ユニット構成管理部９２は構成ＩＤをカウントするためのカウンタを備え、構成ＩＤを割り当てるたびにカウンタを１つずつ増分させてもよい。ユニット構成管理部９２は管理テーブル９０にエントリーを作成し、そのエントリーに拡張ユニット４の構成ＩＤ、位置情報およびユニット種別（拡張ユニット４の識別情報）などを登録する。
【００４７】
図１３は管理テーブル９０の一例を示す図である。この例では、基本ユニット３の右隣りに入力ユニットＴｙｐｅＡという識別情報の拡張ユニット４が連結されており、さらにその右隣りにアナログ出力ユニットＴｙｐｅＢという識別情報の拡張ユニット４が連結されている。さらにその右隣りには、延長ユニットＴｙｐｅＣという識別情報の拡張ユニット４が連結されている。延長ユニットＴｙｐｅＣと延長ユニットＴｙｐｅＤは１つのペアを形成し、これらは通信バスを延長する延長ケーブルで接続されている。ビルディングタイプのＰＬＣ２は基本ユニット３から右方向に一列に複数の拡張ユニット４が連結されることを基本としている。しかし、あまりにも多くの拡張ユニット４が連結されると、連結長が長くなりすぎ、製造ラインを制御する制御箱に収まりきらなくなることもある。そこで、延長ユニットを追加することで、基本ユニット３を含む一列目とは別に、２列目（延長１段目）の拡張ユニット群を配置することが可能となる。これにより、連結長が短くなるため、ＰＬＣ２が制御箱に収まるようになる。なお、延長ユニットが通信バスの延長機能を有しているものの、入出力機能などの他の機能を有していない場合、ユニットＩＤは付与されなくてもよい。延長ユニットはラダープログラムによって制御されるものではないからである。なお、延長ユニットＴｙｐｅＣと延長ユニットＴｙｐｅＤには構成ＩＤが付与される。図１３において、延長ユニットＴｙｐｅＤの右隣りには出力ユニットＴｙｐｅＥが連結されている。ユニット構成管理部９２は構成ＩＤを連番で付与する。また、ユニット構成管理部９２は構成ＩＤとユニット種別に応じて位置情報を決定する。ユニット構成管理部９２は、ＣＰＵ右１台目、ＣＰＵ右２台目というように順番に位置を決定し、延長ユニットが登場したときは、連結段（連結列）を変更し、延長１段目１台目、延長１段目２台目というように順番に位置を決定して行く。なお、ユニット構成管理部９２は何段目かをカウントするカウンタを備えていてもよい。
【００４８】
Ｓ１３でユニット構成管理部９２は拡張ユニット４に対して接続状態を問い合わせる。接続状態とは、その拡張ユニット４の隣に別の拡張ユニット４が接続されているかどうかである。接続状態の問い合わせを受信した拡張ユニット４の接続状態管理部１１５は通信部１１２および通信バスを介し、別の拡張ユニット４が接続されているかどうかを検知する。たとえば、これは通信バスにおける特定の信号線の信号レベルなどから判別可能である。接続状態管理部１１５は接続状態に対する返信（接続有り／接続無し）を作成し、通信バスを介して基本ユニット３に送信する。
【００４９】
Ｓ１４でユニット構成管理部９２は拡張ユニット４の返信を受信し、返信内容に基づき、別の拡張ユニット４が接続されているかどうかを判定する。構成ＩＤが割り当てられていない別の拡張ユニット４が存在する場合、Ｓ１０に戻り、その別の拡張ユニット４に対して問い合わせを送信する。以下、ユニット構成管理部９２はＳ１１〜Ｓ１４を実行し、その別の拡張ユニット４に対して同様に構成ＩＤを付与する。すべての拡張ユニット４に対して構成ＩＤが割り当てられると、Ｓ１４でＮｏとなり、ユニット構成管理部９２は本処理を終了する。
【００５０】
＜構成ＩＤとプロジェクトＩＤの関連付け＞
プロジェクトデータ１０４をプログラム作成支援装置１から受信すると、基本ユニット３において拡張ユニット４のユニットＩＤが確定することになる。ここでは、構成ＩＤとユニットＩＤとの関連付けについて説明する。
【００５１】
図１４は構成ＩＤとユニットＩＤとの関連付けの一例を示す図である。Ｓ１５で基本ユニット３のプロジェクトデータ管理部９１は、通信部１４のうちプログラム作成支援装置１と通信するための通信回路（ＬＡＮやＵＳＢなどの通信回路）を通じてプログラム作成支援装置１からプロジェクトデータ１０４を受信する。
【００５２】
Ｓ１６でプロジェクトデータ管理部９１は拡張ユニット４の識別情報に基づき構成ＩＤとユニットＩＤとを関連付け、管理テーブル９０に登録する。ここでの識別情報は、拡張ユニット４の名称、型名などの種別情報や機種情報であり、工場出荷時に予め決定される情報である。プロジェクトデータ１０４の一部である設定データ１０５には、プログラム作成支援装置１により設定された拡張ユニット４の識別情報やユニットＩＤが含まれている。プロジェクトデータ管理部９１は、ある設定データ１０５に含まれている拡張ユニット４の識別情報と、管理テーブル９０に登録されている識別情報（Ｓ１１で受信したもの）とを比較し、これらが一致するエントリーを検索する。両者の識別情報が一致するエントリーが見つかると、プロジェクトデータ管理部９１はそのエントリーにユニットＩＤを登録する。これにより、構成ＩＤとユニットＩＤとが関連付けられる。
【００５３】
Ｓ１７でプロジェクトデータ管理部９１は構成ＩＤを用いて各拡張ユニット４と通信し、ユニットＩＤを各拡張ユニット４に割り当てる。プロジェクトデータ管理部９１によって通信バスを介して送信される割り当て信号には、構成ＩＤとユニットＩＤとが含まれている。各拡張ユニット４のユニットＩＤ管理部１１４は割り当て信号を受信すると、割り当て信号の構成ＩＤと自ユニットに割り当てられている構成ＩＤとを比較し、これらが一致すると、割り当て信号に含まれているユニットＩＤを記憶装置１１１に格納する。設定データ１０５に含まれているすべてのユニットＩＤが割り当て終わるまでＳ１５ないしＳ１７は繰り返し実行される。
【００５４】
＜拡張ユニットにおける構成ＩＤの設定＞
図１５は拡張ユニットにおける構成ＩＤの設定を示す図である。Ｓ２１でＣＰＵ１１０（構成ＩＤ管理部１１３）は、基本ユニット３から通信バスを介して送信されてくる識別情報の問い合わせを受信する。Ｓ２２で構成ＩＤ管理部１１３は自ユニットの識別情報を記憶装置１１１から読み出し、識別情報を基本ユニット３に返信する。Ｓ２３で構成ＩＤ管理部１１３は基本ユニット３から構成ＩＤを受信し、記憶装置１１１に記憶する。
【００５５】
Ｓ２４で接続状態管理部１１５は接続状態の問い合わせを受信する。Ｓ２５で接続状態管理部１１５は自ユニットに別の拡張ユニット４が連結されているかどうかを検知する。別の拡張ユニット４の判別方法は、上述した信号線のレベルを検知する方法であってもよいし、別の拡張ユニット４に対して問い合わせ信号を送信し、それに対する返信に応じて検知してもよい（返信が無ければ、別の拡張ユニット４が存在しないと判断するなど）。Ｓ２６で接続状態管理部１１５は、別の拡張ユニット４が連結されているかどうか（接続状態）を示す情報を作成し、基本ユニット３に送信する。
【００５６】
＜拡張ユニットにおける構成ＩＤの設定＞
図１６は設定データ１０５を作成するためのＧＵＩの一例を示す図である。ＣＰＵ２４のユニットＩＤ設定部１０１は表示部７にＧＵＩを表示する。ユニットＩＤ設定部１０１は表示部７にＣＰＵ機種リスト６５を表示し、ＣＰＵ機種リスト６５に列挙されているいずれかの基本ユニットが操作部８の操作に連動して移動するポインタ６４により選択される。ＣＰＵ機種リスト６５は、予め記憶装置２５の編集ソフト記憶部２５ｂに記憶されていてもよい。この例ではユニットＩＤ設定部１０１は基本ユニットＡ１という機種名の基本ユニットがＣＰＵ機種リスト６５から選択されたことを認識する。機種名に代えて型番が表示されてもよいし、機種名と型番が同時に表示されてもよいし、その機種についての説明なども表示されてもよい。ユニットＩＤ設定部１０１は、選択された基本ユニットがポインタ６４によりドラッグされてレイアウトエリア６７内でドロップされたことを検知すると、基本ユニットの配置位置を決定し、レイアウトエリア６７の左端に基本ユニットのシンボル画像を表示する。ＣＰＵ機種リスト６５にはシンボル画像が表示されてもよいし、機種名が表示されてもよい。シンボル画像は、機種名を示す文字情報とともに、ユニットの画像が含まれていてもよい。シンボル画像は、実際のユニットの正面の画像であってもよい。ユニットＩＤ設定部１０１は基本ユニットに対してデフォルトのユニットＩＤである“０”を付与し、ユニットＩＤ表示部６８にユニットＩＤを表示する。なお、操作部８を通じてユニットＩＤの変更が指示されると、ユニットＩＤ設定部１０１は、操作部８から指示されたユニットＩＤに変更し、ユニットＩＤ表示部６８の表示を更新する。また、ユニットＩＤ設定部１０１は、基本ユニットＡ１の識別情報（機種名など）とユニットＩＤとを関連付けて設定データ１０５を作成し、プロジェクトデータ作成部１０３に渡す。
【００５７】
図１７はＧＵＩの一例を示す図である。基本ユニットの配置が完了すると、次は、拡張ユニットの選択が実行される。ＣＰＵ２４のユニットＩＤ設定部１０１は選択された基本ユニットに接続可能な拡張ユニットを列挙した拡張ユニットリスト６６を表示部７に表示する。拡張ユニットリスト６６も予め記憶装置２５の編集ソフト記憶部２５ｂに記憶されていてもよい。拡張ユニットリスト６６に列挙されているいずれかの拡張ユニットがポインタ６４により選択されると、ユニットＩＤ設定部１０１は選択された拡張ユニットを認識する。この例では、基本ユニットＡ１に対して直接接続可能な拡張ユニットａ１が選択されている。選択された拡張ユニットがポインタ６４によりドラッグされてレイアウトエリア６７内でドロップされると、ユニットＩＤ設定部１０１は、ドロップされた位置に最も近い配置可能な位置を拡張ユニットの配置位置として決定し、レイアウトエリア６７に拡張ユニットのシンボル画像を表示する。なお、ユニットＩＤ設定部１０１は拡張ユニットを左詰めで配置して行く。なぜなら、左端に基本ユニットが配置されるからである。ユニットＩＤ設定部１０１は拡張ユニットａ１に対してデフォルトのユニットＩＤである“１”を付与し、ユニットＩＤ表示部６８にユニットＩＤを表示する。操作部８を通じてユニットＩＤの変更が指示されると、ユニットＩＤ設定部１０１は、操作部８から指示されたユニットＩＤに変更し、ユニットＩＤ表示部６８の表示を更新する。このようにユニットＩＤはユーザが任意のＩＤに変更可能であり、必ずしも連番である必要はない。ただし、従来は連番でユニットＩＤを付与する慣習であったため、ユニットＩＤ設定部１０１はデフォルトのユニットＩＤを連番で設定し、ユーザの入力をアシストしてもよい。なお、デフォルトのユニットＩＤは一切表示されなくてもよい。
【００５８】
２つ以上の拡張ユニットがすでにレイアウトエリア６７に表示されている場合、ユニットＩＤ設定部１０１は、ドロップ位置に応じて２つの拡張ユニットの間に他の同種の拡張ユニットを追加挿入してもよい。ユニットＩＤ設定部１０１は、すでに付与されているユニットＩＤを変更せずにそのまま維持し、追加されたユニットＩＤには割り当て済みのユニットＩＤとは重複しない他のユニットＩＤを付与する。ユニットＩＤ設定部１０１は、ユニットＩＤを指定するためのダイアログを表示し、操作部８を通じて指定されたユニットＩＤを、付与対象のユニットの識別情報に関連付けてもよい。ユニットＩＤ設定部１０１は、拡張ユニットａ１の識別情報（機種名など）とユニットＩＤとを関連付けて設定データ１０５を作成し、プロジェクトデータ作成部１０３に渡す。
【００５９】
図１８はユニットＩＤの割り当て処理の一例を示すフローチャートである。Ｓ３１でユニットＩＤ設定部１０１は操作部８を通じて拡張ユニットの追加が指示されたかどうかを判定する。上述したように、拡張ユニットリスト６６からいずれかのユニットが選択されてレイアウトエリア６７にドロップされたことは、拡張ユニットの追加が指示されたことに相当する。拡張ユニットの追加が指示されると、Ｓ３２に進む。
【００６０】
Ｓ３２でユニットＩＤ設定部１０１は追加された拡張ユニットに対するユニットＩＤを決定する。ユニットＩＤ設定部１０１は操作部８を通じて入力された数値をユニットＩＤとして決定してもよいし、デフォルトのユニットＩＤを予めユニットＩＤ表示部６８に表示してそのユニットＩＤの変更指示を受け付け、変更指示にしたがってユニットＩＤを設定してもよい。いずれにしてもユーザは任意のユニットＩＤを付与することができ、必ずしも連番である必要はない。次にＳ３３に進む。なお、Ｓ３１で拡張ユニットの追加が指示されてないときもＳ３３に進む。
【００６１】
Ｓ３３でユニットＩＤ設定部１０１は操作部８を通じて拡張ユニットの削除が指示されたかどうかを判定する。レイアウトエリア６７に配置されているいずれかユニットが操作部８の操作によってドラッグされ、レイアウトエリア６７の外部にドロップされたことを検知すると、ユニットＩＤ設定部１０１はそのユニットが削除されたものと認識する。拡張ユニットの削除が指示されたのであれば、Ｓ３４に進む。
【００６２】
Ｓ３４でユニットＩＤ設定部１０１は削除された拡張ユニットに付与されていたユニットＩＤを再付与可能にする。ユニットＩＤ設定部１０１は削除された拡張ユニットについてのエントリーを設定データ１０５から削除する。これにより、削除された拡張ユニットに付与されていたユニットＩＤを再付与可能になる。次にＳ３５に進む。なお、Ｓ３３で拡張ユニットの削除が指示されてないときもＳ３５に進む。
【００６３】
Ｓ３５でユニットＩＤ設定部１０１はユニットＩＤの設定が終了したかどうかを判定する。たとえば、操作部８からユニットＩＤの設定終了が指示されると、ユニットＩＤ設定部１０１はユニットＩＤの設定が終了したと判定する。設定終了が指示されていなければＳ３１に戻る。ユニットＩＤの設定が終了するとＳ３６に進む。
【００６４】
Ｓ３６でプロジェクトデータ作成部１０３は、ユニットＩＤ設定部１０１により作成された設定データ１０５とプログラム作成部１０２により作成されたラダープログラム１０６とをプロジェクトデータとしてまとめ、基本ユニット３に対して転送する。
【００６５】
＜ユニットＩＤの割り当ての具体例＞
図１９ないし図２１を用いてユニットＩＤの割り当ての具体例を説明する。図１９（Ａ）は予めユーザによって決定された各ユニットの配置とユニットＩＤとを示している。ここでは、図１９（Ａ）に示された各ユニットの配置を基本配置と呼び、図１９（Ｂ）ないし図１９（Ｄ）ではこの基本配置の一部が変更されている。
【００６６】
図１９（Ａ）において基本ユニット３の右隣りには第１拡張ユニット４ａが連結されており、第１拡張ユニット４ａには第２拡張ユニット４ｂが連結されており、第２拡張ユニット４ｂには第３拡張ユニット４ｃが連結されている。基本ユニット３は、接続位置に応じて、第１拡張ユニット４ａ、第２拡張ユニット４ｂ、第３拡張ユニット４ｃに対し、それぞれ構成ＩＤとして０、１、２を割り当てる。また、基本ユニット３は、プログラム作成支援装置１によって付与されたユニットＩＤを第１拡張ユニット４ａ、第２拡張ユニット４ｂ、第３拡張ユニット４ｃに付与する。この例では、第１拡張ユニット４ａ、第２拡張ユニット４ｂ、第３拡張ユニット４ｃに対し、それぞれユニットＩＤとして１、２、３が割り当てられている。ここでは、説明の便宜上、ユニットＩＤを連番としているが、ユニットＩＤは任意であり、連番でなくてもよい。
【００６７】
図１９（Ｂ）は拡張ユニットが追加（新規に連結）されたときの各ユニットの配置とユニットＩＤとを示している。図１９（Ａ）と図１９（Ｂ）とを比較すると分かるように、図１９（Ｂ）では第４拡張ユニット４ｄが第２拡張ユニット４ｂと第３拡張ユニット４ｃとの間に追加されている。基本ユニット３は、接続位置に応じて、第１拡張ユニット４ａ、第２拡張ユニット４ｂ、第４拡張ユニット４ｄ、第３拡張ユニット４ｃに対し、それぞれ構成ＩＤとして０、１、２、３を割り当てる。第３拡張ユニット４ｃは接続位置が変更されているため構成ＩＤが変更される。第４拡張ユニット４ｄには接続位置に応じた構成ＩＤが割り当てられる。基本ユニット３は、プログラム作成支援装置１によって付与されたユニットＩＤを第１拡張ユニット４ａ、第２拡張ユニット４ｂ、第４拡張ユニット４ｄ、第３拡張ユニット４ｃに付与する。この例では、第１拡張ユニット４ａ、第２拡張ユニット４ｂ、第４拡張ユニット４ｄ、第３拡張ユニット４ｃに対し、それぞれユニットＩＤとして１、２、４、３が割り当てられている。ここで注目すべき点は、第３拡張ユニット４ｃのユニットＩＤは接続位置が変更されているにもかかわらず、ユニットＩＤが変更されていないことである。つまり、ユーザによって設定されたユニットＩＤが維持される。ユニットＩＤはラダープログラム上で命令語の対象を指定するために使用される。よって、ユニットＩＤが変更されてしまうと、ユーザは、手入力でユニットＩＤを変更しなければならなかった。一方で、本実施例であれば、拡張ユニットの配置が変更されてもユニットＩＤは変更されないため、ユーザはラダープログラムを書き換える手間を省けるようになる。
【００６８】
図１９（Ｃ）は一部の拡張ユニットが削除された（ＰＬＣ２から取り外された）ときの各ユニットの配置とユニットＩＤとを示している。図１９（Ｃ）の配置では、図１９（Ａ）に示された基本配置のＰＬＣ２から第２拡張ユニット４ｂが削除されている。基本ユニット３は連番で構成ＩＤを付与するため、第３拡張ユニット４ｃの構成ＩＤを１に更新する。また、基本ユニット３は設定データ１０５にしたがってユニットＩＤを第１拡張ユニット４ａ、第３拡張ユニット４ｃに付与する。設定データ１０５が変更されない限り、各ユニットに付与されるユニットＩＤは変更されずに維持される。
【００６９】
図１９（Ｄ）はユニットＩＤが付与されない特殊なユニット４ｘが追加されたときの各ユニットの配置とユニットＩＤとを示している。上述した延長ユニットなどのように、ラダープログラムから制御されないユニットにはユニットＩＤが付与されない。ただし、このような特殊なユニット４ｘであっても通信機能を有している場合、基本ユニット３は構成ＩＤを付与する。プログラム作成支援装置１ではＧＵＩにおいて特殊なユニット４ｘがレイアウトエリア６７に配置されるが、ユニットＩＤ設定部１０１は、ユニットＩＤを指定するためのユニットＩＤ表示部６８を表示しないか、あるいは、ユニットＩＤを指定できない状態でユニットＩＤ表示部６８を表示する。よって、設定データ１０５においても特殊なユニット４ｘのエントリーにはユニットＩＤが付与されない。なお、第２拡張ユニット４ｂと第３拡張ユニット４ｃとの間に特殊なユニット４ｘが挿入されているため、第３拡張ユニット４ｃの構成ＩＤは変更される。
【００７０】
図２０（Ａ）は延長ユニットが存在するときの構成ＩＤとユニットＩＤの付与例を示している。この例では、基本ユニット３の連結列の末尾に延長ユニット１５ａが連結されている。延長ユニット１５ａはペアとなる延長ユニット１５ｂとケーブルを介して接続されている。延長ユニット１５ｂは別の連結列（連結段）の先頭に配置されており、そこから３つの拡張ユニットが連結されている。基本ユニット３のユニット構成管理部９２は接続位置に応じて各ユニットの構成ＩＤを決定する。そのため、第１拡張ユニット４ａの構成ＩＤは０であり、第２拡張ユニット４ｂの構成ＩＤは１であり、延長ユニット１５ａの構成ＩＤは２である。さらに、延長ユニット１５ｂの構成ＩＤは３であり、第３拡張ユニット４ｃの構成ＩＤは４であり、第４拡張ユニット４ｄの構成ＩＤは５であり、第５拡張ユニット４ｅの構成ＩＤは６である。ただし、ユニットＩＤに関してはユーザが自由に設定したユニットＩＤが各ユニットに付与されている。たとえば、基本ユニット３の連結列では一桁のユニットＩＤが付与されているが、別の連結列では１０番台のユニットＩＤが付与されている。これにより、一桁のユニットＩＤが付与されている拡張ユニットは第１の連結列に存在し、１０番台のユニットＩＤが付与されている拡張ユニットは第２の連結列に存在することをユーザは区別しやすくなろう。一桁のユニットＩＤである１、２、３は、０１、０２、０３と理解されてもよい。つまり、０は基本ユニット３の連結列であることを示している。このようにユニットＩＤは、連結列を示す情報と各連結列におけるユニットの接続位置を示す情報から構成されてもよい。
【００７１】
図２０（Ｂ）は延長ユニットが存在するときの構成ＩＤとユニットＩＤの他の付与例を示している。図２０（Ａ）と比較して図２０（Ｂ）では延長ユニットの接続位置が変更されている。ユニット構成管理部９２は接続位置に応じて各ユニットの構成ＩＤを決定するため、延長ユニット１５ａに構成ＩＤとして０を割り当てる。次に、ユニット構成管理部９２は延長ユニット１５ｂに構成ＩＤとして１を割り当てる。なお、延長ユニット１５ａは、基本ユニット３からの機種問い合わせをまず延長ユニット１５ｂに中継し、延長ユニット１５ｂを含む連結列における右端のユニットに構成ＩＤが付与されると第１拡張ユニット４ａに機種問い合わせを中継する。ユニット構成管理部９２や延長ユニット１５ａは、右端のユニットに構成ＩＤが付与されたことを、右端のユニットの接続状態を示す情報が「右隣りには拡張ユニットが存在しない」ことを示していることに基づき判別してもよい。延長ユニット１５ａは接続状態を示す情報として、「右隣りには拡張ユニットが存在すること」および「延長ユニット１５ｂが存在すること」をユニット構成管理部９２に報告しているため、ユニット構成管理部９２は、まず、延長ユニット１５ｂが属する連結列から構成ＩＤを付与し、それが完了すると延長ユニット１５ａの右隣りの第１拡張ユニット４ａに対して構成ＩＤを付与する。このような延長ユニット１５ａの中継機能は構成ＩＤ管理部１１３または接続状態管理部１１５が担当する。
【００７２】
図２０（Ｂ）によれば、ユニット構成管理部９２は延長ユニット１５ｂに接続されている第２拡張ユニット４ｂに対して構成ＩＤとして２を割り当てる。同様に、第３拡張ユニット４ｃに対して構成ＩＤとして３が割り当てられ、第４拡張ユニット４ｄに対して構成ＩＤとして４が割り当てられる。第４拡張ユニット４ｄは右端のユニットであるため、右には拡張ユニットが接続されていないことを示す接続状態の情報をユニット構成管理部９２に返信する。これにより、ユニット構成管理部９２は、延長ユニット１５ａの右に接続されている第１拡張ユニット４ａを次の割り当て対象として選択し、構成ＩＤとして５を付与する。なお、各ユニットへのユニットＩＤは、プログラム作成支援装置１においてユーザによって決定されたものが付与される。このように、延長ユニット１５ａ、１５ｂによって別の連結列が構成されるときは、延長ユニット１５ａ、１５ｂおよび別の連結列の拡張ユニットが一列に連結されているものと仮定して構成ＩＤを付与して行く。
【００７３】
図２１は延長ユニットが存在するときの構成ＩＤとユニットＩＤの他の付与例を示している。図２０（Ｂ）では連結列が２列であったが、図２１の連結列は３列になっている。なお、構成ＩＤの割り当てルールはすでに説明したとおりである。まず、ユニット構成管理部９２は、延長ユニット１５ａ、１５ｂによって延長される連結列について構成ＩＤを付与する。つまり、延長ユニット１５ａ、１５ｂ、第１拡張ユニット４ａ、第２拡張ユニット４ｂ、および、第３拡張ユニット４ｃの順番で構成ＩＤが連番で付与されて行く。つまり、延長ユニット１５ａ、１５ｂ、第１拡張ユニット４ａ、第２拡張ユニット４ｂ、および、第３拡張ユニット４ｃにはそれぞれ構成ＩＤとして０ないし４が付与される。
【００７４】
ユニット構成管理部９２は、右端に位置する第３拡張ユニット４ｃまで構成ＩＤを付与すると、基本ユニット３の連結列に戻り、延長ユニット１５ａの右に連結されているユニットに構成ＩＤを付与する。図２１が示すように、延長ユニット１５ａの右に連結されているユニットは延長ユニット１５ｃである。そのため、ユニット構成管理部９２は、延長ユニット１５ｃ、１５ｄによって延長されるさらに別の連結列に含まれているユニットに対して構成ＩＤを連番で付与して行く。つまり、延長ユニット１５ｃ、１５ｄ、第４拡張ユニット４ｄ、第５拡張ユニット４ｅ、および、第６拡張ユニット４ｆにはそれぞれ構成ＩＤとして５ないし９が付与される。
【００７５】
ユニット構成管理部９２は、右端に位置する第６拡張ユニット４ｆまで構成ＩＤを付与すると、基本ユニット３の連結列に戻り、延長ユニット１５ｃの右に連結されているユニットに構成ＩＤを付与する。つまり、第７拡張ユニット４ｇ、第８拡張ユニット４ｈにはそれぞれ構成ＩＤとして１０、１１が付与される。
【００７６】
図２１においても各ユニットへのユニットＩＤはプログラム作成支援装置１においてユーザによって決定されたものが付与される。この例では、基本ユニット３の連結列では一桁のユニットＩＤが付与されているが、別の連結列では１０番台のユニットＩＤが付与され、さらに別の連結列では２０番台のユニットＩＤが付与されている。このようにユニットＩＤによってどのユニットがどの連結列に含まれているかを識別可能としてもよい。
【００７７】
＜まとめ＞
本実施形態によれば、ＰＬＣ２は、ユーザプログラムを繰り返し実行する基本ユニット３と、基本ユニット３によって制御される１つ以上の拡張ユニット４とを有している。基本ユニット３のユニット構成管理部９２は、基本ユニット３に対して接続されている拡張ユニット４を認識し、認識した各拡張ユニット４に対してそれぞれ固有の第１識別情報（例：構成ＩＤ）を付与する認識手段として機能する。また、プロジェクトデータ管理部９１は第２識別情報（例：ユニットＩＤ）と、対応する第１識別情報とを関連付けて管理する管理手段として機能する。第２識別情報は、基本ユニット３に接続可能な設定支援装置（たとえば、ユーザプログラムやユニット構成情報を作成して転送するプログラム作成支援装置１など）上で設定された識別情報であって、ユーザプログラム上で各拡張ユニット４を識別するために使用される固有の識別情報である。各拡張ユニット４の記憶装置１１１は、自ユニットに割り当てられている構成ＩＤを少なくとも記憶する識別情報記憶手段として機能する。このようにユーザプログラム上で各ユニットを識別するためのユニットＩＤと、基本ユニット３が各拡張ユニット４に付与する構成ＩＤとを別々に設けることで、ユーザにとっての、拡張ユニットの識別情報の割り当ての自由度が増すことになる。なお、記憶装置１１１は、自ユニットに割り当てられているユニットＩＤと構成ＩＤとを記憶する識別情報記憶手段として機能してもよい。
【００７８】
本実施の形態では構成ＩＤを採用しているため、基本ユニット３は、ユーザプログラムの非実行中であっても構成ＩＤにより特定される拡張ユニット４と通信バスを介して通信できるようになる。従来のＰＬＣでは、ラダープログラム１０６や設定データ１０５などのユーザプログラムがプログラム作成支援装置１から転送されてくるまでは、ユニットＩＤが拡張ユニット４に対して割り当てられていなかった。ユニットＩＤはラダープログラム１０６や設定データ１０５によって割り当てられるようになっていたからである。そのため、基本ユニット３はユーザプログラムの非実行中にはユニットＩＤを用いて拡張ユニット４と通信することができなかった。一方で、本実施の形態では、ユニットＩＤとは別に構成ＩＤが拡張ユニット４に割り当てられる。これにより、基本ユニット３は、ユーザプログラムの非実行中には構成ＩＤにより特定される拡張ユニット４と通信バスを介して通信できるようになる。このように、基本ユニット３は記憶装置１２にユーザプログラムが記憶されていない状態で、構成ＩＤにより特定される拡張ユニット４と通信バスを介して通信する。たとえば、ラダープログラム１０６や設定データ１０５によってユニットＩＤが付与されていない状態であっても、基本ユニット３は構成ＩＤを用いて拡張ユニット４に対してテストの実行を指示し、テストの結果を拡張ユニット４から受信できるようになる。なお、基本ユニット３はユーザプログラムの実行中においてユニットＩＤにより特定される拡張ユニット４と通信バスを介して通信する。
【００７９】
図１９ないし図２１などを用いて説明したように、ユニット構成管理部９２は、予め定められた付与規則にしたがって各拡張ユニット４の構成ＩＤを決定する。付与規則は、たとえば、基本ユニット３を基準とした拡張ユニット４の接続位置や接続順番に基づく規則であってもよい。このように、ユニット構成管理部９２は、各拡張ユニット４の接続位置に応じて構成ＩＤを決定してもよい。なお、構成ＩＤは、連番で付与されてもよい。構成ＩＤは基本ユニット３と拡張ユニット４との間の通信に使用されうるが、通信プロトコルによっては、各ユニットの構成ＩＤが連番であることが前提されることがあるらである。
【００８０】
図２０（Ａ）、図２０（Ｂ）および図２１などを用いて説明したように、基本ユニット３には、当該基本ユニット３に対して一列に連結される複数の拡張ユニット４を含む第１グループと、複数の拡張ユニット４のうちの１つである延長ユニットから延長された通信バスを介して接続された１つ以上の拡張ユニット４を含む第２グループとが接続されてもよい。ユニット構成管理部９２は、第１グループに含まれている複数の拡張ユニット４のうち基本ユニット３に直接的に連結されている拡張ユニット４から延長ユニットまで順番に構成ＩＤを付与し、次に、第２グループに含まれているすべての拡張ユニット４に対して順番に構成ＩＤを付与し、さらに、第１グループに含まれている複数の拡張ユニット４のうち延長ユニットから連結されている拡張ユニット４に対して順番に構成ＩＤを付与してもよい。このように付与することで、論理的な接続位置が基本ユニット３に近い拡張ユニット４ほど小さな番号の構成ＩＤを付与することが可能となる。
【００８１】
図２０（Ａ）、図２０（Ｂ）および図２１などを用いて説明したように、延長ユニットは、第１グループに属する第１延長ユニット１５ａ、１５ｃと、第１延長ユニットとケーブルで接続され、第２グループに属する第２延長ユニット１５ｂ、１５ｄとを含んでもよい。ユニット構成管理部９２は、第２グループに属する拡張ユニット４に構成ＩＤを付与するときは、第２延長ユニット１５ｂ、１５ｄから順番に構成ＩＤを付与して行く。第２延長ユニット１５ｂ、１５ｄは基本的にグループの先頭に配置されているため、第２延長ユニット１５ｂ、１５ｄから構成ＩＤを付与することで、第２延長ユニット１５ｂ、１５ｄの接続位置と構成ＩＤとを関連付けることができる。
【００８２】
上述したように第２識別情報はプログラム作成支援装置上で設定される任意の識別情報（ユニットＩＤ）であってもよい。図１９（Ｄ）を用いて説明したように、延長ユニットなどの特殊なユニットにはユニットＩＤが付与されなくてもよい。ユニットＩＤは少なくともラダープログラムによって制御の対象となるユニットに付与されていれば十分だからである。
【００８３】
図６や図７を用いて説明したように、拡張ユニット４は、基本ユニット３に近い側に設けられ、該基本ユニット３または他の拡張ユニット４が連結される第１連結面（例：左側面４Ｌ）と、基本ユニット３に対して遠い側に設けられ、他の拡張ユニット４または終端ユニット（エンドユニット１１）が連結される第２連結面（例：右側面４Ｒ）とを有してもよい。また、接続状態管理部１１５は、第２連結面に対して他の拡張ユニット４が連結されているどうかを判別する判別手段として機能する。図１２などを用いて説明したように、ユニット構成管理部９２は、基本ユニット３に直接的に連結されている第１拡張ユニット４に構成ＩＤを付与し、当該第１拡張ユニット４の判別手段が当該第１拡張ユニット４の第２連結面に第２拡張ユニット４が連結されていると判別すると、当該第２拡張ユニット４に構成ＩＤを付与する。一方で、当該第２拡張ユニット４の判別手段が当該第２拡張ユニット４の第２連結面に他の拡張ユニット４が連結されていないと判別すると、ユニット構成管理部９２は構成ＩＤの付与処理を終了する。このような判別手段を設けることで、各拡張ユニット４に対して構成ＩＤを漏れなく付与することが可能となる。
【００８４】
基本ユニット３と拡張ユニット４は構成ＩＤを用いて通信バスを介して通信を行ってもよい。プロジェクトデータ１０４を受け取っておらずユニットＩＤが割り当てられていない状態では、従来、基本ユニット３と拡張ユニット４は通信できなかった。本実施形態では、ＰＬＣ２に電源から電力が供給されて起動すると、各ユニットに構成ＩＤが付与されるため、ユニットＩＤが割り当てられなくても構成ＩＤを使用して通信することが可能となる。
【００８５】
拡張ユニット４の結線状態検知部１１６は、自ユニットと外部機器との結線状態に関する結線情報を作成し、構成ＩＤを用いて基本ユニット３に送信する結線情報作成手段として機能してよい。基本ユニット３の状態取得部９３は、結線情報を表示手段である表示部５に表示してもよい。これにより、プロジェクトデータ１０４を受け取っておらずユニットＩＤが割り当てられていない状態であっても、各拡張ユニットの外部機器との結線状態を基本ユニット３の表示部５に表示させることが可能となる。基本ユニット３や拡張ユニット４の設置者と、ラダープログラムの作成者は必ずしも一致しない。従来は、設置者が拡張ユニットの追加や削除を実行すると、ラダープログラムの作成者が拡張ユニットの追加や削除を反映した設定データ１０５を作成して基本ユニット３に転送するまで、設置者は拡張ユニットの結線状態が正しいかどうかを把握できなかった。本実施形態であれば、構成ＩＤを用いて結線状態を確認できるようになるため、設置者はラダープログラムの作成者に設定データ１０５を作成してもらわずとも、結線状態を確認できるようになる。
【００８６】
基本ユニット３の更新部９４は、拡張ユニット４の構成ＩＤを用いて当該拡張ユニット４のシステムプログラムを転送して更新してもよい。これにより、設置者は、ユニットＩＤの設定者にユニットＩＤの設定を頼まずとも、簡単に、拡張ユニット４のシステムプログラムを更新できるようになろう。
【００８７】
図１９（Ｂ）や図１９（Ｃ）を用いて説明したように、ユニット構成管理部９２は、基本ユニット３に連結されている複数の拡張ユニット４のうちいずれかが取り外されるか、または、他の拡張ユニット４が追加されると、各拡張ユニット４に対して構成ＩＤを付与し直してもよい。これにより、接続位置と構成ＩＤとの関連性を維持できるようになる。
【００８８】
ユニット構成管理部９２やプロジェクトデータ管理部９１のユニットＩＤ管理機能は、基本ユニット３に連結されている複数の拡張ユニット４のうちいずれかが取り外されても、依然として当該基本ユニット３に連結されている残りの各拡張ユニット４に付与されているユニットＩＤを変更しなくてもよい。ユニットＩＤを変更してしまうと、ラダープログラムの書き換えが必要となってしまう。そこで、本実施形態のように、ユニットＩＤについては変更せずに維持することで、ラダープログラムの書き換えの手間を削減できるようになる。
【図１】
2016110221.tif 000003
【図２】
2016110221.tif 000004
【図３】
2016110221.tif 000005
【図４】
2016110221.tif 000006
【図５】
2016110221.tif 000007
【図６】
2016110221.tif 000008
【図７】
2016110221.tif 000009
【図８】
2016110221.tif 000010
【図９】
2016110221.tif 000011
【図１０】
2016110221.tif 000012
【図１１】
2016110221.tif 000013
【図１２】
2016110221.tif 000014
【図１３】
2016110221.tif 000015
【図１４】
2016110221.tif 000016
【図１５】
2016110221.tif 000017
【図１６】
2016110221.tif 000018
【図１７】
2016110221.tif 000019
【図１８】
2016110221.tif 000020
【図１９】
2016110221.tif 000021
【図２０】
2016110221.tif 000022
【図２１】
2016110221.tif 000023