(57)【要約】  プログラマブルコントローラ（１）は、電源モジュール（１００）とＣＰＵモジュール（２００）とを含む複数のモジュールを備えたビルディングブロック形式のコントローラであり、ＣＰＵモジュール（２００）は、電源モジュール（１００）の電源容量と、当該電源モジュール（１００）以外の各モジュール（２００，３００Ａ，３００Ｂ）の消費電流の合計値とを比較することにより、電源モジュール（１００）の電源容量の適合性の判定を行う判定制御機能を備えるマイクロプロセッサ（２０２）を有し、電源モジュール（１００）は、マイクロプロセッサ（２０２）に供給される電源を含む電源モジュール（１００）の電源容量の適合性の判定に用いられる第１電源と、それ以外に用いられる第２電源とを、少なくとも２つの独立した電源系統として供給する。
2012120994.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも電源モジュール（１００）とＣＰＵモジュール（２００）を含む複数のモジュール（１００，２００，３００Ａ，３００Ｂ）を備えたビルディングブロック形式の制御装置であって、
前記ＣＰＵモジュール（２００）は、
前記電源モジュール（１００）の電源容量と、当該電源モジュール（１００）以外の各モジュールの消費電流の合計値とを比較することにより、前記電源モジュール（１００）の電源容量の適合性の判定を行う判定制御機能を備えるプロセッサ（２０２；２０２′）を有し、
前記電源モジュール（１００）は、
前記プロセッサ（２０２；２０２′）に供給される電源を含む前記電源容量の適合性の判定に用いられる第１電源と、それ以外に用いられる第２電源とを、少なくとも２つの独立した電源系統として供給する
ことを特徴とする制御装置（１）。
【請求項２】
前記電源モジュール（１００）は、
前記制御装置（１）の電源が投入された際に前記第１電源のみを供給し、
前記プロセッサ（２０２；２０２′）は、
前記電源モジュール（１００）の電源容量が前記消費電流の合計値以上である場合に、前記電源モジュール（１００）の電源容量が適合すると判定し、前記第２電源を供給するように前記電源モジュール（１００）を制御する
ことを特徴とする請求項１に記載の制御装置（１）。
【請求項３】
前記電源モジュール（１００）は、
一次側電源（４００）から前記第１電源及び第２電源を生成する第１電源装置（１０２）と、
接点開閉することにより前記第１電源装置（１０２）からの前記第２電源の遮断及び供給を切り替えるリレー（１０３）と、を有し、
前記プロセッサ（２０２；２０２′）は、
前記電源モジュール（１００）の電源容量が適合すると判定した場合に、前記リレー（１０３）を閉成させて前記第２電源を供給する
ことを特徴とする請求項２に記載の制御装置（１）。
【請求項４】
前記電源モジュール（１００）は、
一次側電源（４００）から前記第１電源を生成する第２電源装置（１０２′）と、
一次側電源（４００）から前記第２電源を生成すると共に、前記第２電源の供給を制御可能な第３電源装置（１０５）を有し、
前記プロセッサ（２０２；２０２′）は、
前記電源モジュール（１００）の電源容量が適合すると判定した場合に、前記第３電源装置に制御信号を出力して前記第２電源を供給させる
ことを特徴とする請求項２に記載の制御装置（１）。
【請求項５】
前記複数のモジュール（１００，２００，３００Ａ，３００Ｂ）は、
前記第１電源が供給され、自身の識別情報を出力する識別情報出力部（１０４，２０４，３０３Ａ，３０３Ｂ）をそれぞれ有し、
前記ＣＰＵモジュール（２００）は、
前記識別情報と対応するモジュール情報とで構成されたデータテーブルが記憶された第１記憶部（２０５）を有し、
前記プロセッサ（２０２；２０２′）は、
前記複数のモジュール（１００，２００，３００Ａ，３００Ｂ）の全てについて前記識別情報を取得し、当該識別情報に基づき前記データテーブルを参照して、前記消費電流の合計値を算出することで、前記電源モジュール（１００）の電源容量の適合性の判定を行う
ことを特徴とする請求項１乃至４のいずれか１項に記載の制御装置（１）。
【請求項６】
前記ＣＰＵモジュール（２００）は、
各モジュールの前記識別情報出力部（１０４，２０４，３０３Ａ，３０３Ｂ）に対し前記識別情報の出力指令を出力すると共に、前記出力指令に応じて各モジュールの前記識別情報出力部（１０４，２０４，３０３Ａ，３０３Ｂ）から出力された前記識別情報を入力して記憶する識別情報読み出し部（２０６）を有し、
前記プロセッサ（２０２；２０２′）は、
前記識別情報読み出し部（２０６）から前記識別情報を取得する
ことを特徴とする請求項５に記載の制御装置（１）。
【請求項７】
前記ＣＰＵモジュール（２００）は、
前記プロセッサ（２０２′）に接続された第２記憶部（２０９）を有し、
前記プロセッサ（２０２′）は、
前記第２記憶部（２０９）に格納されたプログラムに基づいて、
各モジュールの前記識別情報出力部（１０４，２０４，３０３Ａ，３０３Ｂ）に対し前記識別情報の出力指令を出力する第１手順（Ｓ３５）と、
各モジュールの前記識別情報出力部（１０４，２０４，３０３Ａ，３０３Ｂ）から出力された前記識別情報を入力して第３記憶部（２１０）に記憶する第２手順（Ｓ４０′）と、
前記第３記憶部に記憶した識別情報に基づき前記データテーブルを参照して、前記消費電流の合計値を算出することで、前記電源モジュール（１００）の電源容量の適合性の判定を行う第３手順（Ｓ６０，Ｓ７０）と、を実行する
ことを特徴とする請求項５に記載の制御装置（１）。
【請求項８】
前記プロセッサ（２０２；２０２′）は、
取得した前記識別情報の順番に基づき、前記データテーブルを参照することで、前記複数のモジュール（１００，２００，３００Ａ，３００Ｂ）の位置関係の適否を判定する
ことを特徴とする請求項５乃至７のいずれか１項に記載の制御装置（１）。
【請求項９】
前記プロセッサ（２０２；２０２′）は、
前記制御装置（１）の電源断の前及び電源投入の後における前記識別情報同士を比較することにより、前記複数のモジュール（１００，２００，３００Ａ，３００Ｂ）の構成が前記制御装置（１）の電源断の前及び電源投入の後において一致しているか否かを判定する
ことを特徴とする請求項５乃至８のいずれか１項に記載の制御装置（１）。
【請求項１０】
少なくとも１つの機能モジュール（３００Ａ，３００Ｂ）をさらに備え、
前記プロセッサ（２０２；２０２′）は、
取得した前記識別情報に基づき、前記データテーブルを参照することで、前記複数のモジュール（１００，２００，３００Ａ，３００Ｂ）に前記ＣＰＵモジュール（２００）の機能が対応していないモジュールが含まれるか否かを判定する
ことを特徴とする請求項５乃至９のいずれか１項に記載の制御装置（１）。
【請求項１１】
前記プロセッサ（２０２；２０２′）は、
前記電源モジュール（１００）の電源容量が適合すると判定した場合に、さらに、前記電源モジュール（１００）を対応する製品ラインナップ上におけるより小容量のモジュールに交換可能であるか否かを判定する
ことを特徴とする請求項１乃至１０のいずれか１項に記載の制御装置（１）。
【請求項１２】
前記ＣＰＵモジュール（２００）は、
前記プロセッサ（２０２；２０２′）が前記電源モジュール（１００）の電源容量が適合しないと判定した場合にエラー表示を行うと共に、前記プロセッサ（２０２；２０２′）が前記電源モジュール（１００）を対応する製品ラインナップ上におけるより小容量のモジュールに交換可能であると判定した場合に警告表示を行う表示部（２０７）を有する
ことを特徴とする請求項１１に記載の制御装置（１）。
【請求項１３】
前記表示部（２０７）は、
前記警告表示として、前記製品ラインナップ上における適切な容量のモジュールへの交換を促す表示を行う
ことを特徴とする請求項１２に記載の制御装置（１）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールを備えたビルディングブロック形式の制御装置に関する。
【背景技術】
【０００２】
従来、複数のモジュールを接続して構成するビルディングブロック形式の制御装置が知られている（例えば、特許文献１参照）。この従来技術の制御装置（プログラマブル・コントローラ）は、接続されるモジュール全体の消費電流を算出し、電源モジュールの電源容量と比較をして、電源モジュールの適合性を判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０１−１８４５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、制御装置の電源を投入すると、ＣＰＵモジュールは、初期化処理に続いて電源モジュールの電源容量の適合性の判定を行う。このとき、モータ制御モジュール、通信モジュール、信号処理モジュール、及びその他の高機能のモジュールでは、論理演算などを行うためにプロセッサを備えている。この結果、電源容量の適合性の判定時と言えども消費電流が少ないとは言えない。電源容量の適合性の判定時に電源容量が不足する場合では、電源モジュールからの電源電圧の低下又は電源遮断となる。この結果、正常なプロセッサの動作を得ることができず、電源容量の適合性を正確に判断することができないおそれがあった。【０００５】
本発明はこのような問題点に鑑みてなされたものであり、装備された電源モジュールの電源容量の大小にかかわらず、電源容量の適合性を正確に判断することができる制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の制御装置は、少なくとも電源モジュールとＣＰＵモジュールを含む複数のモジュールを備えたビルディングブロック形式の制御装置であって、前記ＣＰＵモジュールは、前記電源モジュールの電源容量と、当該電源モジュール以外の各モジュールの消費電流の合計値とを比較することにより、前記電源モジュールの電源容量の適合性の判定を行う判定制御機能を備えるプロセッサを有し、前記電源モジュールは、前記プロセッサに供給される電源を含む前記電源容量の適合性の判定に用いられる第１電源と、それ以外に用いられる第２電源とを、少なくとも２つの独立した電源系統として供給することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、装備された電源モジュールの電源容量の大小にかかわらず、制御装置の電源容量の適合性を正確に判断することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施の形態のプログラマブルコントローラの全体構成の一例を概念的に表す構成図である。
【図２】プログラマブルコントローラに装備された各モジュールの構成、各モジュール間の信号経路、及び各モジュール間の通電経路を概念的に表す説明図である。
【図３】ユニットＩＤ部の構成の一例及びデータテーブルの一例を表す説明図である。
【図４】ＩＤ読み出し回路ブロックの詳細を概念的に表すブロック図である。
【図５】各種信号の出力タイミングを概念的に表すタイミングチャートである。
【図６】ユニットＩＤの詳細を概念的に表すブロック図である。
【図７】マイクロプロセッサによって行われる制御処理の内容を表すフローチャートである。
【図８】マイクロプロセッサ自身が各モジュールからユニットＩＤの読み出しを行う変形例における、プログラマブルコントローラに装備された各モジュールの構成、各モジュール間の信号経路、及び各モジュール間の通電経路を概念的に表す説明図である。
【図９】プログラム記憶部に格納されたプログラムに基づいてマイクロプロセッサによって行われる制御処理の内容を表すフローチャートである。
【図１０】第２電源をイネーブル信号で供給制御する変形例における、プログラマブルコントローラに装備された各モジュールの構成、各モジュール間の信号経路、及び各モジュール間の通電経路を概念的に表す説明図である。
【発明を実施するための形態】
【０００９】
以下、一実施の形態について図面を参照しつつ説明する。
【００１０】
図１に示すように、本実施形態のプログラマブルコントローラ１（制御装置）は、電源モジュール１００とＣＰＵモジュール２００とを含む複数のモジュールを備えたビルディングブロック形式のコントローラであり、所定の方向（図１中左右方向）に複数の機能モジュール３００を増設可能に構成されている。ビルディングブロック形式とは、モジュールを箱状（ブロック）にしてモジュールをブロック単位で増設する形式である。また、増設可能な機能モジュール３００としては、例えば、ディスクリートＩ／Ｏモジュール、アナログＩ／Ｏモジュール、パルスＩ／Ｏモジュール、通信モジュール、モータの駆動制御を行うモーションモジュール等があり、これらのうち、通信モジュールやモーションモジュール等の高機能な機能モジュールは、マイクロプロセッサ等のプロセッサを搭載している。
【００１１】
この例では、プログラマブルコントローラ１は、電源モジュール１００と、ＣＰＵモジュール２００と、２つの機能モジュール３００Ａ，３００Ｂとを、図１中左側から右側に向かってこの順番で備えている。電源モジュール１００の両側面にはコネクタ１０１Ｌ，１０１Ｒが設けられ、ＣＰＵモジュール２００の両側面にはコネクタ２０１Ｌ，２０１Ｒが設けられ、各機能モジュール３００Ａ，３００Ｂの両側面にはコネクタ３０１Ｌ，３０１Ｒが各々設けられている。そして、隣接するモジュールのコネクタが各々嵌合されることにより、すなわち、電源モジュール１００のコネクタ１０１ＲとＣＰＵモジュール２００のコネクタ２０１Ｌとが嵌合され、ＣＰＵモジュール２００のコネクタ２０１Ｒと機能モジュール３００Ａのコネクタ３０１Ｌとが嵌合され、機能モジュール３００Ａのコネクタ３０１Ｒと機能モジュール３００Ｂのコネクタ３０１Ｌとが嵌合されることにより、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂが各々接続されている。
【００１２】
以下では、プログラマブルコントローラ１が、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂを、左側から右側に向かってこの順番で備えている場合を例にとって説明する。
【００１３】
図２に示すように、電源モジュール１００は、ＡＣ（Ａｌｔｅｒｎａｔｉｎｇ  Ｃｕｒｒｅｎｔ）又はＤＣ（Ｄｉｒｅｃｔ  Ｃｕｒｒｅｎｔ）の一次側電源４００に接続されたコンバータ１０２（第１電源装置）と、リレー１０３と、自身の識別情報であるユニットＩＤに対応するＩＤ信号を出力するユニットＩＤ部１０４（識別情報出力部）とを有している。
【００１４】
コンバータ１０２は、一次側電源４００から供給された商用電源に基づき電源電圧（ＶＣＣ）を生成し、生成した電源電圧を第１電源として、第１電源系ラインＬ１を介して供給すると共に、生成した電源電圧を第２電源として、リレー１０３及び第２電源系ラインＬ２を介して供給する。これは言い換えれば、第１電源及び第２電源を生成し、生成した第１電源及び第２電源を、２つの独立した電源系統として供給することに相当する。第１電源は、後述のＣＰＵモジュール２００のマイクロプロセッサ２０２に供給される電源を含む、後述の電源モジュール１００の電源容量の適合性の判定に用いられる電源であり、第２電源は、それ以外（例えば、ＣＰＵモジュール２００と各機能モジュール３００Ａ，３００Ｂとのデータ交換や、各機能モジュール３００Ａ，３００Ｂのマイクロプロセッサを動作させる等）に用いられる電源である。なお、この例では、第２電源を、１つの第２電源系ラインＬ２を介して供給（１つの電源系統として供給）しているが、これに限られず、２つ以上の電源系ラインを介して供給（２つ以上の電源系統として供給）するようにしてもよい。
【００１５】
リレー１０３は、接点開閉することによりコンバータ１０２からの第２電源の遮断及び供給を切り替える。すなわち、接点を開成することによりコンバータ１０２からの第２電源を遮断し、接点を閉成することによりコンバータ１０２からの第２電源を第２電源系ラインＬ２を介して供給する。
【００１６】
機能モジュール３００Ａは、図示しないマイクロプロセッサ、Ｉ／Ｏ部、及び通信部を備え、これらマイクロプロセッサ、Ｉ／Ｏ部、及び通信部や、ＣＰＵモジュール２００及び機能モジュール３００Ｂとのデータ交換を行うためのバス機能を備えたモジュール制御部３０２Ａと、自身のユニットＩＤに対応するＩＤ信号を出力するユニットＩＤ部３０３Ａ（識別情報出力部）と、プルダウン抵抗３０４Ａとを有している。
【００１７】
機能モジュール３００Ｂは、図示しないマイクロプロセッサ、Ｉ／Ｏ部、及び通信部を備え、これらマイクロプロセッサ、Ｉ／Ｏ部、及び通信部や、ＣＰＵモジュール２００及び機能モジュール３００Ａとのデータ交換を行うためのバス機能を備えたモジュール制御部３０２Ｂと、自身のユニットＩＤに対応するＩＤ信号を出力するユニットＩＤ部３０３Ｂ（識別情報出力部）と、プルダウン抵抗３０４Ｂとを有している。
【００１８】
ＣＰＵモジュール２００は、全体の各種制御を行うマイクロプロセッサ２０２（プロセッサ）と、各機能モジュール３００Ａ，３００Ｂとのデータ交換を行うためのバス機能を備えたバス制御部２０３と、自身のユニットＩＤに対応するＩＤ信号を出力するユニットＩＤ部２０４（識別情報出力部）と、データテーブル記憶部２０５（第１記憶部）と、ＩＤ読み出し回路ブロック２０６（識別情報読み出し部）と、各種表示を行う状態表示部２０７（表示部）と、プルダウン抵抗２０８を有している。
【００１９】
マイクロプロセッサ２０２は、電源モジュール１００のコンバータ１０２から出力される電源の容量である電源モジュール１００の電源容量と、電源モジュール１００以外の各モジュール、すなわち、ＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値とを比較することにより、電源モジュール１００の電源容量の適合性の判定を行う判定制御機能を備えている。また、マイクロプロセッサ２０２は、電源モジュール１００の電源容量が適合すると判定した場合に、さらに、電源モジュール１００を対応する製品ラインナップ上におけるより小容量の電源モジュールに交換可能であるか否かを判定する。なお、このマイクロプロセッサ２０２が行う判定の詳細については、後述する。
【００２０】
データテーブル記憶部２０５は、不揮発性メモリで構成されている。このデータテーブル記憶部２０５には、複数のモジュールのユニットＩＤと、当該ユニットＩＤに対応するモジュール情報（電源モジュールの電源容量情報、ＣＰＵモジュールや機能モジュールの消費電流情報等）とで構成されたデータテーブルが記憶されている。なお、マイクロプロセッサ２０２内に備えられた不揮発性のメモリが上記データテーブルを記憶するようにしてもよい。すなわち、マイクロプロセッサ２０２内に備えられた不揮発性のメモリを第１記憶部としてもよい。
【００２１】
図３（ａ）に、電源モジュール１００のユニットＩＤの構成の一例、及び、複数の電源モジュールのユニットＩＤと当該ユニットＩＤに対応するモジュール情報とで構成されたデータテーブルの一例を示す。
【００２２】
図３（ａ）に示すように、電源モジュール１００のユニットＩＤは、８ビット（１バイト）、すなわち、ＩＤ０〜ＩＤ７で構成されている。この例では、ＩＤ０〜ＩＤ７のうち、ＩＤ０〜ＩＤ２を「ＰＳ＿ＩＤ」、ＩＤ３〜ＩＤ６を「Ｓｐａｒｅ」、ＩＤ７を「１」として、「ＰＳ＿ＩＤ」であるＩＤ０〜ＩＤ２により、電源モジュール１００の電源容量情報を含むモジュール情報が表されている。なお、「Ｓｐａｒｅ」であるＩＤ３〜ＩＤ６は、現時点ではモジュール情報を表すために使用されておらず、将来的にＩＤ０〜ＩＤ２と共にモジュール情報を表すために使用される領域である。
【００２３】
図３（ａ）中右側に示すデータテーブルでは、ＩＤ０〜ＩＤ７の８ビットのユニットＩＤのうち、「ＰＳ＿ＩＤ」であるＩＤ０〜ＩＤ２だけを示している（ＩＤ３〜ＩＤ７の図示を省略している）。例えば、このデータテーブルでは、「ＰＳ＿ＩＤ」であるＩＤ２，ＩＤ１，ＩＤ０が「０」「０」「０」となるユニットＩＤが割り当てられた電源モジュールのモジュール情報として、「仕様」欄に「ＤＣ２４Ｖ入力、ＶＣＣ３Ａ出力」と記憶されている。
【００２４】
図３（ｂ）に、ＣＰＵモジュール２００及び機能モジュール３００のユニットＩＤの構成の一例、及び、複数のＣＰＵモジュール及び機能モジュールのユニットＩＤと当該ユニットＩＤに対応するモジュール情報とで構成されたデータテーブルの一例を示す。
【００２５】
図３（ｂ）に示すように、ＣＰＵモジュール２００のユニットＩＤは、上記電源モジュール１００のユニットＩＤと同様、ＩＤ０〜ＩＤ７で構成されている。この例では、ＩＤ０〜ＩＤ７のうち、ＩＤ０〜ＩＤ５を「ＵＮＩＴ＿ＩＤ」、ＩＤ６を「０」、ＩＤ７を「１」として、「ＵＮＩＴ＿ＩＤ」であるＩＤ０〜ＩＤ５及びＩＤ６「０」により、ＣＰＵモジュール２００の消費電流情報を含むモジュール情報が表されている。また、機能モジュール３００のユニットＩＤは、上記電源モジュール１００及びＣＰＵモジュール２００のユニットＩＤと同様、ＩＤ０〜ＩＤ７で構成されている。この例では、ＩＤ０〜ＩＤ７のうち、ＩＤ０〜ＩＤ５を「ＵＮＩＴ＿ＩＤ」、ＩＤ６を「１」、ＩＤ７を「１」として、「ＵＮＩＴ＿ＩＤ」であるＩＤ０〜ＩＤ５及びＩＤ６「１」により、機能モジュール３００の消費電流情報を含むモジュール情報が表されている。
【００２６】
図３（ｂ）中右側に示すデータテーブルでは、ＩＤ０〜ＩＤ７の８ビットのユニットＩＤのうち、「ＵＮＩＴ＿ＩＤ」であるＩＤ０〜ＩＤ５及びＩＤ６だけを示している（ＩＤ７の図示を省略している）。例えば、このデータテーブルでは、ＩＤ６及び「ＵＮＩＴ＿ＩＤ」であるＩＤ５，ＩＤ４，ＩＤ３，ＩＤ２，ＩＤ１，ＩＤ０が「０」「０」「０」「０」「０」「０」となるユニットＩＤが割り当てられたモジュール、すなわち、機能モジュールのモジュール情報として、「仕様」欄に「ＤＣ入力ユニット３２点」及び「消費電流（Ａ）」欄に「０．２」と記憶されている。
【００２７】
図２に戻り、ＩＤ読み出し回路ブロック２０６は、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しユニットＩＤの出力指令であるＣＬＫ信号を出力する。またこれと共に、ＣＬＫ信号に応じて各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂから出力された上記ＩＤ信号を入力して対応するユニットＩＤを記憶する。このＩＤ読み出し回路ブロック２０６は、図４に示すように、発振回路ブロック２０６１と、ＣＬＫ制御ブロック２０６２と、ＬＤ制御ブロック２０６３と、端末コード検出ブロック２０６４と、データセットブロック２０６６と、ユニットＩＤレジスタ２０６７と、リードバッファ２０６８と、アドレスデコーダ２０６９とを備えている。
【００２８】
発振回路ブロック２０６１は、ＣＬＫ原発振を発生する。ＣＬＫ制御ブロック２０６２は、発振回路ブロック２０６１から発生されたＣＬＫ原発振に基づき、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対し上記ＣＬＫ信号を出力する。なお、この例では、ＣＬＫ制御ブロック２０６２に原発振クロックが接続されているが、マイクロプロセッサ２０２に供給するクロック源と共用であってもよい。ＬＤ制御ブロック２０６３は、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しユニットＩＤをプリセットさせるＬＤ信号を出力する。端末コード検出ブロック２０６４は、シフトレジスタ２０６５を備えており、このシフトレジスタ２０６５でラッチした上記ＩＤ信号の連続８回分を常時監視して端末コードを検出する。データセットブロック２０６６は、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂからの上記ＩＤ信号に基づき、ユニットＩＤレジスタ２０６７に対しユニットＩＤをセットする。リードバッファ２０６８には、ユニットＩＤレジスタ２０６７からユニットＩＤが読み出される。アドレスデコーダ２０６９は、ユニットＩＤレジスタ２０６７に対しエリア選択信号を出力する。
【００２９】
図２に戻り、状態表示部２０７は、例えばＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）等のランプや液晶ディスプレイ等で構成されている。この状態表示部２０７は、マイクロプロセッサ２０２が行う上記判定の結果に応じて、所定のエラー表示や警告表示を行う（詳細は後述）。
【００３０】
上記のように構成されたプログラマブルコントローラ１においては、図２に示すように、プログラマブルコントローラ１の電源が投入されると、一次側電源４００から電源モジュール１００のコンバータ１０２に商用電源が供給され、電源モジュール１００から他のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂに対し、まず第１電源のみが供給される。すなわち、コンバータ１０２により生成された第１電源が第１電源系ラインＬ１に通電され、第１電源系ラインＬ１を介して、電源モジュール１００のユニットＩＤ部１０４と、ＣＰＵモジュール２００の状態表示部２０７、ユニットＩＤ部２０４、ＩＤ読み出し回路ブロック２０６、及びマイクロプロセッサ２０２と、各機能モジュール３００Ａ，３００ＢのユニットＩＤ部３０３Ａ，３０３Ｂとに第１電源が供給される。なお、プログラマブルコントローラ１の電源が投入された際にはリレー１０３の接点が開成しており、コンバータ１０２により生成された第２電源は遮断され、電源モジュール１００から他のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂに対し、第２電源が供給されないようになっている。すなわち、第２電源系ラインＬ２を介して、ＣＰＵモジュール２００のバス制御部２０３と、各機能モジュール３００Ａ，３００Ｂのモジュール制御部３０２Ａ，３０２Ｂとに第２電源が供給されないようになっている。以上のように、電源モジュール１００は、プログラマブルコントローラ１の電源が投入された際には、他のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂに対し、第１電源系ラインＬ１を介して第１電源のみを供給するようになっている。
【００３１】
そして、図２、図４、及び図５に示すように、ＣＰＵモジュール２００のマイクロプロセッサ２０２は、コンバータ１０２から第１電源が供給されると、所定の初期化処理を実行して、その後、ＩＤ読み出し回路ブロック２０６のＬＤ制御ブロック２０６３に対し起動要求を出力する。ＬＤ制御ブロック２０６３は、マイクロプロセッサ２０２からの起動要求を入力すると、まず、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＬＤ信号を出力する。
【００３２】
ここで、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂは、図６に示すように、１ビットのデータ（「０」又は「１」）を保持可能な８つのフリップフロップをカスケード接続したシフトレジスタ、プルアップ抵抗、プルダウン抵抗等で各々構成されており、これら各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂのシフトレジスタは、シリーズに接続されている。また、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００のユニットＩＤは、上述したように、８ビット、すなわち、ＩＤ０〜ＩＤ７で各々構成されている。但し、本実施形態では、ＩＤ０〜ＩＤ７の全てが「０」となる「００００００００」をユニットＩＤとして割り当てることができないようになっている。ＩＤ０〜ＩＤ６は、「０」「１」、すなわちプルアップ（Ｈレベル）・プルダウン（Ｌレベル）がモジュール毎に異なり、ＩＤ７は、「１」、すなわちプルアップ（Ｈレベル）に固定されている。そして、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂは、ＬＤ制御ブロック２０６３からのＬＤ信号をパルス入力すると、ＩＤ０〜ＩＤ７で構成される８ビットのデータを、対応するＨ，Ｇ，Ｆ，Ｅ，Ｄ，Ｃ，Ｂ，Ａの入力を介して１ビットずつシフトレジスタ内の８つのフリップフロップに各々入力して、ユニットＩＤとしてセットする。
【００３３】
ＬＤ制御ブロック２０６３は、上記のようにＬＤ信号を出力した後、ＣＬＫ制御ブロック２０６２に対しＣＬＫ開始要求を出力する。ＣＬＫ制御ブロック２０６２は、ＬＤ制御ブロック２０６３からのＣＬＫ開始要求を入力すると、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＣＬＫ信号を連続的に出力する。そして、ＣＬＫ制御ブロック２０６２がＣＬＫ信号を１回出力する度に、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂのシフトレジスタでは、データが１段ずつシフトしていく。
【００３４】
このとき、右側にモジュールが備えられていない機能モジュール３００ＢのユニットＩＤ部３０３Ｂにおけるシフトレジスタの１段目のフリップフロップ（Ａの入力に対応するフリップフロップ）には、上記プルダウン抵抗３０４Ｂに接続されたＧＮＤ電位が作用した「０」が入力される。また、電源モジュール１００以外のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部２０４，３０３Ａ，３０３Ｂにおけるシフトレジスタの最終段のフリップフロップ（Ｈの入力に対応するフリップフロップ）に保持されていたデータは、ＩＤ信号として出力されて、当該モジュールの左側に備えられたモジュールのユニットＩＤ部におけるシフトレジスタの１段目のフリップフロップ（Ａの入力に対応するフリップフロップ）に入力される。また、電源モジュール１００のユニットＩＤ部１０４における最終段のシフトレジスタのフリップフロップに保持されていたデータは、ＩＤ信号として出力されて、端末コード検出ブロック２０６４及びデータセットブロック２０６６に入力される。
【００３５】
端末コード検出ブロック２０６４は、入力されたＩＤ信号を常時監視して、右側にモジュールが備えられていない機能モジュール３００Ｂのプルダウン抵抗３０４Ｂに接続されたＧＮＤ電位の作用による「０」のＩＤ信号が８回連続で入力された場合に、端末コード「００００００００」を検出して、全てのモジュール、すなわち、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢからユニットＩＤを読み出したことを識別する。そして、ＣＬＫ制御ブロック２０６２に対しＣＬＫ停止要求を出力する。
【００３６】
なお、この例では、８ビット全てが「０」となる「００００００００」をユニットＩＤに割り当てることができないようにし、ＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂがプルダウン抵抗２０８，３０４Ａ，３０４Ｂを各々備える構成としているが、これに限られない。すなわち、８ビット全てが「１」となる「１１１１１１１１」をユニットＩＤに割り当てることができないようにし、ＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂがプルアップ抵抗を各々備える構成としてもよい。この場合には、機能モジュール３００ＢのユニットＩＤ部３０３Ｂにおけるシフトレジスタの１段目のフリップフロップには、プルアップ抵抗に接続されたＶＣＣ電位が作用した「１」がＩＤ信号として入力され、端末コード検出ブロック２０６４は、「１」のＩＤ信号が８回連続で入力された場合に、端末コード「１１１１１１１１」を検出して、ＣＬＫ制御ブロック２０６２に対しＣＬＫ停止要求を出力する。
【００３７】
ＣＬＫ制御ブロック２０６２は、端末コード検出ブロック２０６４からのＣＬＫ停止要求を入力すると、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対するＣＬＫ信号の出力を停止して、マイクロプロセッサ２０２に対し完了信号を出力する。一方、上述のようにＩＤ信号はデータセットブロック２０６６に対しても入力されており、データセットブロック２０６６は、入力されたＩＤ信号を８ビット単位（１バイト単位）のパラレルデータ（ユニットＩＤ又は端末コード「００００００００」）に変換して、ユニットＩＤレジスタ２０６７にセットする。
【００３８】
マイクロプロセッサ２０２は、ＣＬＫ制御ブロック２０６２からの完了信号を入力すると、アドレスバスを介してアドレスデコーダ２０６９に対し制御信号を出力し、ユニットＩＤレジスタ２０６７に対しエリア選択信号を出力させる。またこれと共に、リードバッファ２０６８に対しリード信号を出力し、ユニットＩＤレジスタ２０６７にセットされた８ビット単位のパラレルデータを上位アドレスから順番に、１バイト単位（又は１ワード単位でもよい）で読み出して、その読み出したデータをデータバスを介して順番に取得する。これにより、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの全てについてユニットＩＤを順番に取得する。なお、最後に、端末コード「００００００００」を取得することで、直前に読み込んだユニットＩＤが最後のユニットＩＤ（機能モジュール３００ＢのユニットＩＤ）であったことを認識できるようになっている。
【００３９】
その後、マイクロプロセッサ２０２は、上記テーブルデータ記憶部２０５に記憶されたデータテーブルにアクセスし、上記取得したユニットＩＤに基づき、対応するモジュール情報、すなわち、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの全てについてモジュール情報を取得する。そして、マイクロプロセッサ２０２は、取得したモジュール情報を用いて、電源モジュール１００の電源容量の適合性の判定等を行って、電源モジュール１００の電源容量が適合すると判定した場合に、電源モジュール１００のリレー１０３に対し制御信号を出力して、リレー１０３の接点を閉成させる。これにより、電源モジュール１００から他のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂに対し、コンバータ１０２により生成された第２電源を供給する。すなわち、第２電源系ラインＬ２を介して、ＣＰＵモジュール２００のバス制御部２０３と、各機能モジュール３００Ａ，３００Ｂのモジュール制御部３０２Ａ，３０２Ｂとに第２電源を供給する。
【００４０】
そして、ＣＰＵモジュール２００のバス制御部２０３に通電されることにより、バス制御部２０３のバス機能が正常に動作し、各機能モジュール３００Ａ，３００Ｂのモジュール制御部３０２Ａ，３０２Ｂに通電されることにより、各モジュール制御部３０２Ａ，３０２Ｂのバス機能が正常に動作する。これにより、ＣＰＵモジュール２００及び各機能モジュール３００Ａ，３００Ｂが通常動作を開始して、ＣＰＵモジュール２００と各機能モジュール３００Ａ，３００Ｂとのデータ交換が可能となることにより、プログラマブルコントローラ１として正常な動作が開始される。
【００４１】
以上説明した機能を実現するために、マイクロプロセッサ２０２によって行われる制御処理の内容を、図７により順を追って説明する。
【００４２】
図７において、このフローチャートに示す処理は、プログラマブルコントローラ１の電源が投入され、電源モジュール１００から第１電源系ラインＬ１を介してマイクロプロセッサ２０２に対しコンバータ１０２からの第１電源が供給された際に開始される。まずステップＳ１０で、マイクロプロセッサ２０２は、所定の初期化処理を実行する。
【００４３】
その後、ステップＳ２０で、マイクロプロセッサ２０２は、ＩＤ読み出し回路ブロック２０６のＬＤ制御ブロック２０６３に対し起動要求を出力する。
【００４４】
そして、ステップＳ３０に移り、マイクロプロセッサ２０２は、ＩＤ読み出し回路ブロック２０６のＣＬＫ制御ブロック２０６２から完了信号が入力されたかどうかを判定する。完了信号が入力されるまでステップＳ３０の判定が満たされず、ループ待機し、完了信号が入力されたらステップＳ３０の判定が満たされて、ステップＳ４０に移る。
【００４５】
ステップＳ４０では、マイクロプロセッサ２０２は、ＩＤ読み出し回路ブロック２０６のアドレスデコーダ２０６９に対し制御信号を出力すると共に、ＩＤ読み出し回路ブロック２０６のリードバッファ２０６８に対しリード信号を出力して、ＩＤ読み出し回路ブロック２０６のユニットＩＤレジスタ２０６７にセットされた８ビット単位のパラレルデータ（ユニットＩＤ又は端末コード「００００００００」）を上位アドレスから順番に、１バイト単位で読み出して、その読み出したデータを順番に取得する。これにより、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの全てについてユニットＩＤを取得する。
【００４６】
その後、ステップＳ５０で、マイクロプロセッサ２０２は、テーブルデータ記憶部２０５に記憶されたデータテーブルにアクセスし、上記ステップＳ４０で取得したユニットＩＤに基づき、対応するモジュール情報、すなわち、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの全てについてモジュール情報を取得する。
【００４７】
そして、ステップＳ６０に移り、マイクロプロセッサ２０２は、上記ステップＳ５０で取得した電源モジュール１００以外のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂのモジュール情報における消費電流情報を参照して、ＣＰＵモジュール２００の消費電流情報及び各機能モジュール３００Ａ，３００Ｂの消費電流を積算し、ＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値を算出する。
【００４８】
その後、ステップＳ７０で、マイクロプロセッサ２０２は、上記ステップＳ５０で取得した電源モジュール１００のモジュール情報における電源容量情報を参照して、電源モジュール１００の電源容量を取得する。そして、その取得した電源モジュール１００の電源容量と、上記ステップＳ６０で算出したＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値とを比較することにより、電源モジュール１００の電源容量がＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値以上であるかどうかを判定する。これにより、電源モジュール１００の電源容量の適合性を判定する。電源モジュール１００の電源容量がＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値未満である場合には、電源モジュール１００の電源容量が適合しないと判定して、ステップＳ８０に移る。
【００４９】
ステップＳ８０では、マイクロプロセッサ２０２は、状態表示部２０７に対し表示信号を出力し、操作者に対しより大きな電源容量を有する電源モジュールへの交換を促す旨のエラー表示を表示させる。例えば、状態表示部２０７がＬＥＤで構成される場合には光を点灯させるようにしてもよいし、状態表示部２０７が液晶ディスプレイで構成される場合にはその旨を表示させるようにしてもよい。その後、このフローチャートに示す処理を終了する。
【００５０】
一方、上記ステップＳ７０において、電源モジュール１００の電源容量がＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値以上であった場合には、電源モジュール１００の電源容量が適合すると判定して、ステップＳ９０に移る。
【００５１】
ステップＳ９０では、マイクロプロセッサ２０２は、電源モジュール１００を、例えば図示しないメモリ等に記憶された対応する製品ラインナップ上におけるより小容量の電源モジュールに交換可能であるか否かを判定する。これにより、電源モジュール１００の選定の妥当性を判定する。製品ラインナップ上におけるより小容量の電源モジュールに交換可能である場合には、電源モジュール１００の選定が妥当ではないと判定して、ステップＳ１００に移る。
【００５２】
ステップＳ１００では、マイクロプロセッサ２０２は、状態表示部２０７に対し表示信号を出力し、操作者に対し上記製品ラインナップ上における適切な容量の電源モジュール（例えば、必要最低限の電源容量を有する電源モジュール）への交換を促す旨の警告表示を表示させる。例えば、電源モジュール１００の電源容量が１０Ａ、ＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値が４Ａであり、製品ラインナップにおけるより小容量の電源モジュールとして、電源容量が８Ａの電源モジュールと、電源容量が５Ａの電源モジュールとがある場合には、上記消費電流の合計値４Ａにより近い電源容量が５Ａの電源モジュールへの交換を促す表示が警告表示として行われる。また例えば、状態表示部２０７がＬＥＤで構成される場合において、１ランク小容量の電源モジュールへの交換を促す場合には光を低頻度点滅させ、２ランク以上小容量の電源モジュールへの交換を促す場合には光を高頻度点滅させるようにしてもよいし、状態表示部２０７が液晶ディスプレイで構成される場合には上記のような内容を表示させるようにしてもよい。その後、ステップＳ１１０に移る。
【００５３】
一方、上記ステップＳ９０において、製品ラインナップ上におけるより小容量の電源モジュールに交換可能でなかった場合には、電源モジュール１００の選定が妥当であったと判定して、ステップＳ１１０に移る。
【００５４】
ステップＳ１１０では、マイクロプロセッサ２０２は、電源モジュール１００から他のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂに対し、コンバータ１０２からの第２電源を供給するように電源モジュール１００を制御する。すなわち、電源モジュール１００のリレー１０３に対し制御信号を出力して、リレー１０３の接点を閉成させて、第２電源系ラインＬ２を介して、ＣＰＵモジュール２００のバス制御部２０３と、各機能モジュール３００Ａ，３００Ｂのモジュール制御部３０２Ａ，３０２Ｂとに第２電源を供給する。これにより、ＣＰＵモジュール２００及び各機能モジュール３００Ａ，３００Ｂが通常動作を開始して、ＣＰＵモジュール２００と各機能モジュール３００Ａ，３００Ｂとのデータ交換が可能となることにより、プログラマブルコントローラ１として正常な動作が開始される。その後、このフローチャートに示す処理を終了する。なお、このフローに示す処理は、プログラマブルコントローラ１の電源が投入され、電源モジュール１００から第１電源系ラインＬ１を介してマイクロプロセッサ２０２に対しコンバータ１０２からの第１電源が供給される度に、マイクロプロセッサ２０２により実行される。
【００５５】
以上説明したように、本実施形態のプログラマブルコントローラ１においては、電源モジュール１００が、第１電源を第１電源系ラインＬ１を介して供給し、第２電源を第２電源系ラインＬ２を介して供給する。これにより、プログラマブルコントローラ１の電源が投入され、電源モジュール１００に商用電源が供給された際に、電源モジュール１００から他のモジュール２００，３００Ａ，３００Ｂに対し、まず第１電源を供給してＣＰＵモジュール２００のマイクロプロセッサ２０２により電源容量の適合性の判定を行い、その後に第２電源を供給し、ＣＰＵモジュール２００と他の機能モジュール３００Ａ，３００Ｂとのデータ交換や各機能モジュール３００Ａ，３００Ｂのマイクロプロセッサを動作させる等が可能となる。
【００５６】
このとき、第１電源は、ＣＰＵモジュール２００のマイクロプロセッサ２０２の周辺回路、及び、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤを送出するための回路のみに供給すれば足り、これらの回路の消費電流は、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの通常動作時の消費電流に比べて大幅に小さい。その結果、電源モジュール１００の電源容量が当該電源モジュール１００以外のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの通常動作時の消費電流の合計値より小さい場合でも、ＣＰＵモジュール２００のマイクロプロセッサ２０２を正常に動作させて、電源容量が適合しない（不足する）ことを正確に判定することができる。したがって、装備された電源モジュール１００の電源容量の大小にかかわらず、電源容量の適合性を正確に判断することができる。
【００５７】
また、本実施形態では特に、電源モジュール１００が、プログラマブルコントローラ１の電源が投入された際に第１電源のみを供給する。これにより、電源モジュール１００の電源容量の適合性判定時の消費電流を小さくし、電源モジュール１００の電源容量が小さい場合でもその適合性を正確に判断することができる。また、本実施形態では、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、電源モジュール１００の電源容量が適合すると判定した場合にのみ、第２電源を供給するように電源モジュール１００を制御する。これにより、電源モジュール１００からの電源電圧の不足により電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの動作が不安定となるのを防止し、プログラマブルコントローラ１を正常に動作させることができる。
【００５８】
また、本実施形態では特に、電源モジュール１００は、一次側電源４００から第１電源及び第２電源を生成するコンバータ１０２と、接点開閉することによりコンバータ１０２からの第２電源の遮断及び供給を切り替えるリレー１０３とを有している。そして、ＣＰＵモジュール２００のマイクロプロセッサ２０２は、電源モジュール１００の電源容量が適合すると判定した場合に、リレー１０３の接点を閉成させて第２電源を供給する。ＣＰＵモジュール２００のマイクロプロセッサ２０２が、電源モジュール１００の電源容量が適合すると判定した場合に電源モジュール１００のリレー１０３の接点を閉成させることで、電源モジュール１００が第２電源を供給するように確実に制御することができる。
【００５９】
また、本実施形態では特に、電源モジュール１００の電源容量の適合性の判定の際に、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂが、ユニットＩＤに対応するＩＤ信号を出力する。そして、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、それらのユニットＩＤを取得し、当該ユニットＩＤに基づきデータテーブル記憶部２０５に記憶されたデータテーブルを参照して、電源モジュール１００以外のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値を算出することで、電源モジュール１００の電源容量の適合性の判定を行う。このような構成とすることで、電源モジュール１００の電源容量の適合性の判定の際に、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂは、モジュール情報自体を出力する必要がなく、データ量の小さなユニットＩＤに対応するＩＤ信号のみを出力すればよいので、データ転送量が少なくなり、電源モジュール１００の電源容量の適合性判定時の消費電流をさらに小さくすることができる。また、データ転送量が少ないため、電源モジュール１００の電源容量の適合性の判定を速やかに行うことができる。
【００６０】
また、本実施形態では特に、ＣＰＵモジュール２００が、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＣＬＫ信号を出力すると共に、ＣＬＫ信号に応じて電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂから出力されたＩＤ信号を入力して対応するユニットＩＤを記憶するＩＤ読み出し回路ブロック２０６を有する。これにより、ＣＰＵモジュール２００のマイクロプロセッサ２０２自身が電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢからユニットＩＤの読み出しを行う必要がなくなるので、入出力インターフェースの少ないマイクロプロセッサ２０２を有するＣＰＵモジュール２００を用いて、プログラマブルコントローラ１を構成することができる。
【００６１】
また、本実施形態では特に、次のような効果を得ることができる。すなわち、電源モジュール１００の電源容量がＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値以上であっても、それが必要量を大きく超えている場合、電源モジュール１００に係る費用の増大を招くことになる。そこで本実施形態においては、ＣＰＵモジュール２００のマイクロプロセッサ２０２は、電源モジュール１００の電源容量が当該電源モジュール１００以外のＣＰＵモジュール２００及び機能モジュール３００Ａ，３００Ｂの消費電流の合計値以上であり電源容量が適合すると判定した場合に、さらに、電源モジュール１００を対応する製品ラインナップ上におけるより小容量の電源モジュールに交換可能であるか否かを判定する。これにより、交換可能である場合には操作者に警告し、製品ラインナップ上における適切な容量の電源モジュール（例えば、必要最低限の電源容量を有する電源モジュール）への交換を促すことが可能となる。その結果、電源モジュール１００に係る費用を抑制することができる。
【００６２】
また、本実施形態では特に、ＣＰＵモジュール２００は、マイクロプロセッサ２０２が電源モジュール１００の電源容量が適合しないと判定した場合にエラー表示を行うと共に、マイクロプロセッサ２０２が電源モジュール１００を対応する製品ラインナップ上におけるより小容量の電源モジュールに交換可能であると判定した場合に警告表示を行う状態表示部２０７を有する。これにより、電源モジュール１００の電源容量が適合しない場合には、操作者により大きな電源容量を有する電源モジュールへの交換を促し、電源モジュール１００をより小容量の電源モジュールに交換可能である場合には、操作者に必要最低限の電源容量を有する電源モジュールへの交換を促すことができる。その結果、適切な電源モジュール１００へ確実に交換することができる。
【００６３】
なお、実施の形態は、上記内容に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。以下、そのような変形例を順を追って説明する。
【００６４】
（１）マイクロプロセッサ自身が各モジュールからユニットＩＤの読み出しを行う場合
上記実施形態においては、マイクロプロセッサ２０２とは別のＩＤ読み出し回路ブロック２０６が電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢからユニットＩＤの読み出しを行っていたが、これに限られず、マイクロプロセッサ自身が電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢからユニットＩＤの読み出しを行ってもよい。
【００６５】
図８に示すように、本変形例におけるＣＰＵモジュール２００は、全体の各種制御を行うマイクロプロセッサ２０２′（プロセッサ）と、前述のバス制御部２０３と、前述のユニットＩＤ部２０４と、データテーブル記憶部２０５と、マイクロプロセッサ２０２′に接続され、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢからユニットＩＤを読み出すためのプログラムが格納されたプログラム記憶部２０９（第２記憶部）と、ユニットＩＤ記憶部２１０（第３記憶部）と、前述の状態表示部２０７と、プルダウン抵抗２０８を有している。なお、マイクロプロセッサ２０２′内に備えられたメモリを第２記憶部や第３記憶部としてもよい。
【００６６】
本変形例においては、マイクロプロセッサ２０２′は、前述のようにしてコンバータ１０２から第１電源が供給されると、所定の初期化処理を実行して、その後、自身の出力ポートを起動し、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＬＤ信号を出力する。これにより、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂは、ユニットＩＤをセットする。その後、マイクロプロセッサ２０２′は、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＣＬＫ信号を連続的に出力する。このとき、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂから出力されるＩＤ信号の経路は上記実施形態と同様であるが、最終的にＩＤ信号が到達するのは、上記実施形態と異なり、マイクロプロセッサ２０２′の入力ポートとなる。マイクロプロセッサ２０２′に入力されたＩＤ信号は、８ビット単位（１バイト単位）のパラレルデータ（ユニットＩＤ又は端末コード「００００００００」）に変換されて、図示しないユニットＩＤレジスタにセットされる。なお、マイクロプロセッサ２０２′は、端末コード「００００００００」を検出するまで、ＣＬＫ信号の出力を連続的に行い、端末コード「００００００００」を検出したら、ＣＬＫ信号の出力を停止する。そして、ユニットＩＤレジスタにセットされた８ビット単位のパラレルデータを上位アドレスから順番に、１バイト単位（又は１ワード単位でもよい）で読み出し、端末コード「００００００００」を読み出したら読み出しを終了して、読み出したユニットＩＤをユニットＩＤ記憶部２１０に記憶する。その後は、ユニットＩＤ記憶部２１０に記憶されたユニットＩＤに基づきデータテーブル記憶部２０５に記憶されたデータテーブルを参照して、前述の判定等を行う。
【００６７】
以上説明した機能を実現するために、プログラム記憶部２０９に格納されたプログラムに基づいてマイクロプロセッサ２０２′によって行われる制御処理の内容を、図９により順を追って説明する。
【００６８】
図９において、このフローチャートに示す処理は、プログラマブルコントローラ１の電源が投入され、電源モジュール１００から第１電源系ラインＬ１を介してマイクロプロセッサ２０２′に対しコンバータ１０２からの第１電源が供給された場合に開始される。ステップＳ１０は前述の図７と同等であり、マイクロプロセッサ２０２′は、初期化処理を実行する。
【００６９】
その後、ステップＳ２５で、マイクロプロセッサ２０２′は、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＬＤ信号を出力する。
【００７０】
そして、ステップＳ３５に移り、マイクロプロセッサ２０２′は、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂに対しＣＬＫ信号を連続的に出力する。これにより、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３ＢからＩＤ信号が出力される。このステップＳ３５の手順が、特許請求の範囲に記載の第１手順に相当する。
【００７１】
その後、ステップＳ４０′で、マイクロプロセッサ２０２′は、電源モジュール１００のユニットＩＤ部１０４から出力されたＩＤ信号を入力し、１バイト単位のパラレルデータ（ユニットＩＤ又は端末コード「００００００００」）に変換して、ユニットＩＤ記憶部２１０に記憶する。これは、各ユニットＩＤ部１０４，２０４，３０３Ａ，３０３Ｂから出力されたユニットＩＤを入力してユニットＩＤ記憶部２１０に記憶することと同等である。これにより、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの全てについてユニットＩＤを取得する。このステップＳ４０′の手順が、特許請求の範囲に記載の第２手順に相当する。
【００７２】
そして、ステップＳ５０′に移り、マイクロプロセッサ２０２′は、テーブルデータ記憶部２０５に記憶されたデータテーブルにアクセスし、上記ステップＳ４０′でユニットＩＤ記憶部２１０に記憶したユニットＩＤに基づき、対応するモジュール情報、すなわち、電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの全てについてモジュール情報を取得する。
【００７３】
その後のステップＳ６０〜ステップＳ１１０は、前述の図７と同様であるので、説明を省略する。なお、本変形例におけるステップＳ６０及びステップＳ７０の手順は、特許請求の範囲に記載の第３手順に相当する。
【００７４】
本変形例によれば、上記実施形態と同様の効果を得ることができる。さらに本変形例によれば、ＣＰＵモジュール２００のマイクロプロセッサ２０２′自身が電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢからユニットＩＤの読み出しを行うことにより、マイクロプロセッサ２０２′とは別にＩＤ読み出し回路ブロックを設ける必要がなくなり、部品点数を低減することができる。
【００７５】
（２）第２電源をイネーブル信号で供給制御する場合
上記実施形態においては、一次側電源４００をコンバータ１０２に接続し、コンバータ１０２で電源電圧を生成すると共に、マイクロプロセッサ２０２がリレー１０３の接点の開閉を制御することにより、第２電源の供給を制御していたが、これに限られない。すなわち、一次側電源４００を２つの電源装置に接続し、各々で電源電圧を生成すると共に、マイクロプロセッサ２０２が一方の電源装置に対し制御信号を出力することにより、第２電源の供給を制御してもよい。
【００７６】
図１０に示すように、本変形例における電源モジュール１００は、一次側電源４００に接続されたコンバータ１０２′（第２電源装置）と、前述のユニットＩＤ部１０４と、一次側電源４００に接続されたイネーブル機能付きコンバータ１０５（第３電源装置）とを有している。
【００７７】
コンバータ１０２′は、一次側電源４００から供給された商用電源に基づき電源電圧を生成し、生成した電源電圧を第１電源として、第１電源系ラインＬ１を介して供給する。
【００７８】
イネーブル機能付きコンバータ１０５は、一次側電源４００から供給された商用電源に基づき電源電圧を生成し、生成した電源電圧を第２電源として、当該第２電源の供給を制御する。
【００７９】
そして、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、前述と同様に電源モジュール１００の電源容量の適合性の判定を行い、電源モジュール１００の電源容量が適合すると判定した場合に、イネーブル機能付きコンバータ１０５にイネーブル信号（制御信号）を出力して、第２電源系ラインＬ２を介して第２電源を供給させる。すなわち、第２電源系ラインＬ２を介して、ＣＰＵモジュール２００のバス制御部２０３と、各機能モジュール３００Ａ，３００Ｂのモジュール制御部３０２Ａ，３０２Ｂとに第２電源を供給させる。
【００８０】
本変形例によれば、上記実施形態と同様の効果を得ることができる。さらに本変形例によれば、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、電源モジュール１００の電源容量が適合すると判定した場合にイネーブル機能付きコンバータ１０５にイネーブル信号を出力することで、電源モジュール１００が第２電源を供給するように確実に制御することができる。
【００８１】
（３）電源断前及び投入後のモジュール構成の一致・不一致を判定する場合
すなわち、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、プログラマブルコントローラ１の電源断前に取得したユニットＩＤと、電源投入の後に取得したユニットＩＤとを比較することにより、プログラマブルコントローラ１に装備された複数のモジュールの構成（種類や順番）がプログラマブルコントローラ１の電源断前及び電源投入の後において一致しているか否かを判定するようにしてもよい。これにより、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、複数のモジュールの構成がプログラマブルコントローラ１の電源断の前及び電源投入の後において一致しないと判定した場合には、メンテナンスの発生やプログラマブルコントローラ１の故障等が発生したものと判断し、操作者に警告することが可能となる。
【００８２】
（４）モジュールの位置関係の適否を判定する場合
すなわち、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、前述のようにして取得した電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤの順番に基づき、前述のデータテーブル記憶部２０５に記憶されたデータテーブルを参照することで、プログラマブルコントローラ１に装備された電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００Ｂの位置関係の適否を判定するようにしてもよい。これにより、例えば高速なプロセッサや高速な同期式メモリを有する機能モジュールの隣にノイズを発生するリレー出力モジュールを配置したり、発熱量の多い入力モジュールや出力モジュールを連続して配置したりといったような、モジュールの仕様により隣り合った配置が好ましくない位置関係がある場合に、ＣＰＵモジュール２００のマイクロプロセッサ２０２がそれを判定して操作者に注意を促すことが可能となる。
【００８３】
（５）ＣＰＵモジュールがサポートしないモジュールの有無を判定する場合
すなわち、ＣＰＵモジュール２００のマイクロプロセッサ２０２が、前述のようにして取得した電源モジュール１００、ＣＰＵモジュール２００、及び機能モジュール３００Ａ，３００ＢのユニットＩＤに基づき、前述のデータテーブル記憶部２０５に記憶されたデータテーブルを参照することで、プログラマブルコントローラ１に装備された電源モジュール１００及び機能モジュール３００Ａ，３００ＢにＣＰＵモジュール２００の機能が対応していないモジュールが含まれるか否かを判定するようにしてもよい。これにより、ＣＰＵモジュール２００の機能が対応していないモジュールが装着された場合には、マイクロプロセッサ２０２がそれを判定して操作者に注意を促すことが可能となる。
【００８４】
（６）状態表示部を装置外部に設ける場合
上記実施形態では、ＣＰＵモジュール２００が状態表示部２０７を有するように構成したが、状態表示部２０７を有しない構成としてもよい。この場合、ＣＰＵモジュール２００が表示信号を有線あるいは無線通信を介して外部の表示機器（ＰＣ等）に出力し、当該表示機器に表示を行わせる構成としてもよい。
【００８５】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
【００８６】
その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【００８７】
１            プログラマブルコントローラ（制御装置）
１００        電源モジュール（モジュール）
１０２        コンバータ（第１電源装置）
１０２′      コンバータ（第２電源装置）
１０３        リレー
１０４        ユニットＩＤ部（識別情報出力部）
１０５        イネーブル機能付きコンバータ（第３電源装置）
２００        ＣＰＵモジュール（モジュール）
２０２        マイクロプロセッサ（プロセッサ）
２０２′      マイクロプロセッサ（プロセッサ）
２０４        ユニットＩＤ部（識別情報出力部）
２０５        データテーブル記憶部（第１記憶部）
２０６        ＩＤ読み出し回路ブロック（識別情報読み出し部）
２０７        状態表示部（表示部）
２０９        プログラム記憶部（第２記憶部）
２１０        ユニットＩＤ記憶部（第３記憶部）
３００Ａ，Ｂ  機能モジュール（モジュール）
３０３Ａ，Ｂ  ユニットＩＤ部（識別情報出力部）
４００        一次側電源
【図１】
2012120994.tif 000003
【図２】
2012120994.tif 000004
【図３】
2012120994.tif 000005
【図４】
2012120994.tif 000006
【図５】
2012120994.tif 000007
【図６】
2012120994.tif 000008
【図７】
2012120994.tif 000009
【図８】
2012120994.tif 000010
【図９】
2012120994.tif 000011
【図１０】
2012120994.tif 000012
【国際調査報告】
2012120994.tif 000013
2012120994.tif 000014