(57)【特許請求の範囲】
【請求項１】
ユーザプログラムを周期的に繰り返し実行する基本ユニットと、
前記基本ユニットに対して第１バスを介して接続可能であって、他の第１拡張ユニットと接続可能に構成される第１拡張ユニットと、
少なくとも第２バスを介して前記基本ユニットと接続可能であって、他の第２拡張ユニットと接続可能に構成される第２拡張ユニットと、
前記基本ユニットに接続された前記第１拡張ユニットの側面に対応する第１側面と、前記第２拡張ユニットの側面に連結される第２側面とを有する変換ユニットと
を有し、
前記基本ユニットの側面、前記第１拡張ユニットの一対の側面、前記第２拡張ユニットの一対の側面、ならびに、前記変換ユニットの前記第１側面および前記第２側面には、各々の側面を連結面としてユニットを連結するためのコネクタが設けられ、
前記基本ユニットと一つまたは複数の前記第１拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第１バスと、前記第１バスとは異なる他のバスとが構成され、
前記他のバスは、前記変換ユニットが前記第１拡張ユニットに連結され、連結面に設けられたコネクタ同士が接続されて、前記基本ユニットから前記変換ユニットまで延在し、
前記変換ユニットと一つまたは複数の前記第２拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第２バスが構成され、
前記基本ユニットは、前記構成された第１バスを介して前記第１拡張ユニットと通信し、前記構成された他のバスおよび前記構成された第２バスを介して前記第２拡張ユニットと通信することを特徴とするプログラマブル・ロジック・コントローラ。
【請求項２】
前記変換ユニットの前記第１側面の凹凸形状は、前記基本ユニットおよび前記第１拡張ユニットの側面の凹凸形状に対応した形状であり、
前記変換ユニットの前記第２側面の凹凸形状は、前記第２拡張ユニットの側面の凹凸形状に対応した形状であることを特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項３】
前記変換ユニットは、前記第２バスに接続され、前記基本ユニットと前記第２拡張ユニットとの間で送受信される通信信号を中継する中継手段を有し、
前記基本ユニットは、前記中継手段および前記第２バスを介して前記第２拡張ユニットと通信することを特徴とする請求項１または２に記載のプログラマブル・ロジック・コントローラ。
【請求項４】
前記中継手段は、前記他のバスの通信信号と前記第２バスの通信信号とを相互に変換するバス変換手段であり、
前記基本ユニットは、前記他のバス、前記バス変換手段および前記第２バスを介して前記第２拡張ユニットと通信することを特徴とする請求項３に記載のプログラマブル・ロジック・コントローラ。
【請求項５】
前記基本ユニットの側面には第１のタイプのコネクタが設けられており、
前記第１拡張ユニットの一方の側面および前記変換ユニットの前記第１側面には前記第１のタイプのコネクタに接続する第２のタイプのコネクタが設けられており、
前記第１拡張ユニットの他方の側面には前記第１のタイプのコネクタが設けられており、
前記変換ユニットの前記第２側面には第３のタイプのコネクタが設けられており、
前記第２拡張ユニットの一方の側面には前記第３のタイプのコネクタに接続する第４のタイプのコネクタが設けられており、
前記第２拡張ユニットの他方の側面には前記第３のタイプのコネクタが設けられていることを特徴とする請求項１ないし４のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項６】
前記第１バスは前記第１のタイプのコネクタおよび前記第２のタイプのコネクタを介して前記基本ユニットから前記変換ユニットまで延在しており、
前記第２バスは前記第３のタイプのコネクタおよび前記第４のタイプのコネクタを介して前記変換ユニットから前記第２拡張ユニットまで延在していることを特徴とする請求項５に記載のプログラマブル・ロジック・コントローラ。
【請求項７】
前記基本ユニット、前記第１拡張ユニット、前記変換ユニットおよび前記第２拡張ユニットを固定するベースフレームをさらに有することを特徴とする請求項１ないし６のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項８】
前記プログラマブル・ロジック・コントローラは、ベースフレームを有しないベースレスかつビルディングタイプのシステムであることを特徴とする請求項１ないし６のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項９】
前記基本ユニット、前記第１拡張ユニット、前記変換ユニットおよび前記第２拡張ユニットの各背面には、基準レールに取り付けるための取付け部が設けられていることを特徴とする請求項８に記載のプログラマブル・ロジック・コントローラ。
【請求項１０】
前記他のバスの信号転送速度は前記第２バスの信号転送速度よりも高速であることを特徴とする請求項１ないし９のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１１】
前記第１バスおよび前記他のバスはシリアル転送を実行するバスであり、
前記第２バスはパラレル転送を実行するバスであり、
前記変換ユニットはシリアル／パラレル変換を実行することにより、前記他のバスの通信信号と前記第２バスの通信信号とを相互に変換することを特徴とする請求項１ないし１０のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１２】
前記変換ユニットは、前記第２バスの通信を制御するバスマスタを有していることを特徴とする請求項１１に記載のプログラマブル・ロジック・コントローラ。
【請求項１３】
前記変換ユニットの前記第１側面には、当該第１側面に連結された前記基本ユニットまたは前記第１拡張ユニットを固定するロック機構が設けられており、
前記変換ユニットの前記第２側面には、当該第２側面に連結された前記第２拡張ユニットを固定するロック機構が設けられていることを特徴とする請求項１ないし１２のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１４】
前記基本ユニットに設けられ、前記第１バスで実行される通信を制御する第１バス制御手段と、
前記変換ユニットに設けられ、前記第２バスで実行される通信を制御する第２バス制御手段と、
前記第１バスに接続されている前記第１拡張ユニットと前記第２バスに接続されている前記第２拡張ユニットとの接続情報を管理する管理手段と、
前記管理手段により管理されている前記接続情報にしたがって前記第１バス制御手段または前記第２バス制御手段を通じて制御対象となっている拡張ユニットと通信するバスマスタ制御手段と
を有することを特徴とする請求項１ないし１３のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１５】
前記基本ユニットに設けられ、前記他のバスで実行される通信を制御する第３バス制御手段を備え、
前記バスマスタ制御手段は、前記管理手段により管理されている前記接続情報にしたがって、前記第１バス制御手段、または、前記第２バス制御手段および前記第３バス制御手段を通じて、制御対象となっている拡張ユニットと通信することを特徴とする請求項１４に記載のプログラマブル・ロジック・コントローラ。
【請求項１６】
前記他のバスは、前記第２バスからなることを特徴とする、請求項１ないし１５のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１７】
前記変換ユニットは、前記第２バスの通信信号の通信プロトコルを変換するバス変換手段を有し、
前記他のバスは、前記バス変換手段により前記第２バスの通信信号がプロトコル変換された通信信号が通過する第３バスからなることを特徴とする、請求項１ないし１６のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１８】
ユーザプログラムを周期的に繰り返し実行する基本ユニットの側面、または、当該基本ユニットに対して第１バスを介して接続される第１拡張ユニットの側面に連結される第１側面と、
少なくとも第２バスを介して前記基本ユニットと接続される第２拡張ユニットの側面に連結される第２側面とを有する、プログラマブル・ロジック・コントローラ用の変換ユニットであって、
前記変換ユニットの前記第１側面および前記第２側面には、各々を連結面としてユニットを連結するためのコネクタが設けられ、
前記基本ユニットと一または複数の前記第１拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第１バスと、前記第１バスとは異なる他のバスとが構成された場合において、
前記第１拡張ユニットに連結され、連結面に設けられたコネクタ同士が接続されて、前記基本ユニットから前記変換ユニットまで前記他のバスを延在させるとともに、
前記第２拡張ユニットに連結され、連結面に設けられたコネクタ同士が接続されて、前記第２バスを構成させることを特徴とする、プログラマブル・ロジック・コントローラ用の変換ユニット。
【請求項１９】
ユーザプログラムを周期的に繰り返し実行する基本ユニットと、
前記基本ユニットに対して第１バスを介して接続可能であって、他の第１拡張ユニットと接続可能に構成される第１拡張ユニットと、
少なくとも第２バスを介して前記基本ユニットと接続可能であって、他の第２拡張ユニットと接続可能に構成される第２拡張ユニットと、
前記基本ユニットの側面に対応する第１側面を有し、該第１側面と対向する側面に前記第１拡張ユニットが連結される第１変換ユニットと、
前記第１変換ユニットと通信ケーブルにより接続され、前記第２拡張ユニットの側面に連結される第２側面を有する第２変換ユニットと
を有し、
前記基本ユニットの側面、前記第１拡張ユニットの一対の側面、前記第２拡張ユニットの一対の側面、ならびに、前記第１変換ユニットの一対の側面および前記第２変換ユニットの前記第２側面には、各々の側面を連結面としてユニットを連結するためのコネクタが設けられ、
前記基本ユニットと前記第１変換ユニットとが連結され、連結面に設けられたコネクタ同士が接続されて、前記第１バスと、前記第１バスとは異なる他のバスとが構成され、
前記第１変換ユニットと一つまたは複数の前記第１拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第１バスが構成され、
前記第２変換ユニットと一つまたは複数の前記第２拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第２バスが構成され、
前記第２バスは、前記通信ケーブルを介して前記第２変換ユニットから前記第１変換ユニットまで延在し、
前記基本ユニットは、前記構成された第１バスを介して前記第１拡張ユニットと通信し、前記構成された他のバスおよび前記構成された第２バスを介して前記第２拡張ユニットと通信することを特徴とするプログラマブル・ロジック・コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラおよび変換ユニットに関する。
【背景技術】
【０００２】
プログラマブル・ロジック・コントローラ（ＰＬＣ）では基本ユニットに対して複数の拡張ユニットが接続されることがある（特許文献１）。基本ユニットに対して複数の拡張ユニットが接続されるＰＬＣシステムはビルディングタイプと呼ばれる。ビルディングタイプは、さらに金属製のベース上で基本ユニットと複数の拡張ユニットが連結されるベースタイプと、ベースを用いずに基本ユニットと複数の拡張ユニットが相互に連結されるベースレスタイプとに分かれている。ベースタイプではベース上に設けられたバスを介して基本ユニットと複数の拡張ユニットが通信する。一般にベースレスタイプでは基本ユニットと拡張ユニットとの連結面（側面）にそれぞれ設けられた雌雄のコネクタを介してバスが接続され、当該バスを介して基本ユニットと拡張ユニットが通信する。このようにベースレスタイプはベースが不要であるため、省スペース化の点では有利である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０５２６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＰＬＣは高速性や応答性が求められるため、バスの高速化も要求される。高速なバスに対応した基本ユニットと拡張ユニットを用いれば、従来の低速なバスに対応した基本ユニットと拡張ユニットとを含むＰＬＣと比較して、高速性や応答性が改善される。ところで、ユーザによっては、既存の資産をできるだけ活用したいという要望がある。たとえば、新規の高速な基本ユニットを購入し、従前の低速なバスを備えた拡張ユニットを制御できれば、既存の資産を有効活用できるであろう。しかし、高速なバスと低速なバスとでは、信号線の数やコネクタの形状だけでなく、通信のプロトコルなどについても互換性がないことが多い。とりわけ、ビルディングタイプでは、バスの変更に伴い基本ユニットと拡張ユニットとの連結面が、従前の基本ユニットと拡張ユニットとの連結面とは異なってしまうことがある。このような連結面の相違から、新規の基本ユニットに対して従前の拡張ユニットを連結することができない。新規の基本ユニットに対して従前の拡張ユニットを連結できれば、既存の資産を有効活用しつつ、コンパクトなビルディングタイプのＰＬＣを実現できるようになろう。
【０００５】
そこで、本発明は、種類の異なる連結面を備えたユニットであってもプログラマブル・ロジック・コントローラとして一体感を持たせることを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、たとえば、
ユーザプログラムを周期的に繰り返し実行する基本ユニットと、
前記基本ユニットに対して第１バスを介して接続可能であって、他の第１拡張ユニットと接続可能に構成される第１拡張ユニットと、
少なくとも第２バスを介して前記基本ユニットと接続可能であって、他の第２拡張ユニットと接続可能に構成される第２拡張ユニットと、
前記基本ユニットに接続された前記第１拡張ユニットの側面に対応する第１側面と、前記第２拡張ユニットの側面に連結される第２側面とを有する変換ユニットと
を有し、
前記基本ユニットの側面、前記第１拡張ユニットの一対の側面、前記第２拡張ユニットの一対の側面、ならびに、前記変換ユニットの前記第１側面および前記第２側面には、各々の側面を連結面としてユニットを連結するためのコネクタが設けられ、
前記基本ユニットと一つまたは複数の前記第１拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第１バスと、前記第１バスとは異なる他のバスとが構成され、
前記他のバスは、前記変換ユニットが前記第１拡張ユニットに連結され、連結面に設けられたコネクタ同士が接続されて、前記基本ユニットから前記変換ユニットまで延在し、
前記変換ユニットと一つまたは複数の前記第２拡張ユニットとが連結され、各連結面に設けられたコネクタ同士が接続されて、前記第２バスが構成され、
前記基本ユニットは、前記構成された第１バスを介して前記第１拡張ユニットと通信し、前記構成された他のバスおよび前記構成された第２バスを介して前記第２拡張ユニットと通信することを特徴とするプログラマブル・ロジック・コントローラを提供する。
【発明の効果】
【０００７】
本発明によれば、変換ユニットを採用することで種類の異なる連結面を備えたユニットであってもプログラマブル・ロジック・コントローラとして一体感を持たせることが可能になる。
【図面の簡単な説明】
【０００８】
【図１】ＰＬＣシステムの一例を示す図
【図２】ユーザプログラムの一例を示す図
【図３】プログラム作成支援装置の一例を示す図
【図４】ＰＬＣの一例を示す図
【図５】スキャンタイムを説明するための図
【図６】ベースレス・ビルディングタイプのＰＬＣの一例を示す図
【図７】拡張ユニットの連結面の一例を示す図
【図８】連結構造を説明するための図
【図９】異種の拡張ユニットを連結ユニットで連結することが可能なＰＬＣの一例を示す図
【図１０】拡張ユニットおよび連結ユニットの一例を示す図
【図１１】ＰＬＣ内でのバスの接続関係を示す図
【図１２】ＰＬＣ内でのバスの接続関係を示す図
【図１３】ＰＬＣ内でのバスの接続関係を示す図
【図１４】基本ユニットの一例を示す図
【図１５】拡張ユニットおよび連結ユニットの一例を示す図
【図１６】基本ユニットの一例を示す図
【図１７】拡張ユニットおよび連結ユニットの一例を示す図
【図１８】拡張ユニットおよび連結ユニットの一例を示す図
【図１９】基本ユニットの一例を示す図
【図２０】拡張ユニットおよび連結ユニットの一例を示す図
【図２１】ユニットの管理方法を説明するための図
【図２２】ユニット管理テーブルを用いたリフレッシュの一例を示す図
【図２３】ラダープログラムの一例を示す図
【図２４】ユニットの管理方法を説明するための図
【図２５】ユニットの管理方法を説明するための図
【図２６】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図２７】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図２８】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図２９】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図３０】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図３１】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図３２】ユニットの配置位置を指定するＧＵＩの一例を示す図
【図３３】ラダープログラムの一例を示す図
【図３４】プログラム作成支援装置の機能を示すブロック図
【図３５】ユニットの配置位置を指定する方法を示すフローチャート
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
はじめにプログラマブル・ロジック・コントローラ（ＰＬＣ、単にプログラマブルコントローラと呼ばれてもよい）を当業者にとってよりよく理解できるようにするために、一般的なＰＬＣの構成とその動作について説明する。
【００１１】
図１は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図１に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置１と、工場等に設置される各種制御装置を統括的に制御するためのＰＬＣ（プログラマブル・ロジック・コントローラ）２とを備えている。ＰＬＣ２は、ＣＰＵが内蔵された基本ユニット３と１つないし複数の拡張ユニット４を備えている。複数の拡張ユニット４はそれぞれ基本ユニット３の機能を拡張するユニットである。基本ユニット３に対して１つないし複数の拡張ユニット４が着脱可能となっている。基本ユニット３はＣＰＵユニットと呼ばれることもある。
【００１２】
基本ユニット３には、表示部５及び操作部６が備えられている。表示部５には、基本ユニット３に取り付けられている各拡張ユニット４の動作状況などを表示することができ、表示部５の表示内容は、操作部６を操作することにより切り替えることができる。表示部５には、通常、ＰＬＣ２内のデバイスの現在値（デバイス値）やＰＬＣ２内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称である。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー（補助リレー）、タイマー、カウンタ、データメモリ等の状態を示す情報である。
【００１３】
拡張ユニット４は、ＰＬＣ２の機能を拡張するために用意されており、基本ユニット３に対して側方から取り付けられる。１つ目の拡張ユニット４は、基本ユニット３に対して側方から直接的に取り付けられる。２つ目以降の拡張ユニット４は、既に取り付けられている拡張ユニット４に対して、側方から直列的に取り付けられる。たとえば、基本ユニット３の右側面と拡張ユニット４の左側面とが連結面になっている。同様に、１つ目の拡張ユニット４の右側面の形状等は基本ユニット３の右側面とほぼ同じであるため、１つ目の拡張ユニット４の右側面に２つ目の拡張ユニット４の左側面が連結される。このような連結方式は、数珠つなぎ方式とかデイジーチェーン方式と呼ばれてもよい。各連結面にはコネクタが設けられており、通信や電力供給を行うためのバスもコネクタを介して連結される。このようにして、基本ユニット３と複数の拡張ユニット４が直列的に取り付けられると、各拡張ユニット４内に備えられた配線（例：バス）を介して、各拡張ユニット４が基本ユニット３に対して通信可能に接続される。各拡張ユニット４には、その拡張ユニット４の機能に対応する被制御装置１６（図４）が接続され、これにより、各被制御装置１６が拡張ユニット４を介して基本ユニット３に接続される。被制御装置１６には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。
【００１４】
プログラム作成支援装置１は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部７及び操作部８が備えられている。ＰＬＣ２を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置１を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置１内でニモニックコードに変換される。そして、プログラム作成支援装置１を、ＵＳＢ(Universal Serial Bus)などの通信ケーブル９を介してＰＬＣ２の基本ユニット３に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置１から基本ユニット３に送ると、そのラダープログラムが基本ユニット３内でマシンコードに変換され、基本ユニット３に備えられたメモリ内に記憶される。
【００１５】
なお、図１では示していないが、プログラム作成支援装置１の操作部８には、プログラム作成支援装置１に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置１は、ＵＳＢ以外の他の通信ケーブル９を介して、ＰＬＣ２の基本ユニット３に対して着脱可能に接続されるような構成であってもよい。
【００１６】
図２は、ラダープログラムの作成時にプログラム作成支援装置１の表示部７に表示されるラダー図１７の一例を示す図である。図２に示すように、ＰＬＣ２を制御するためのラダープログラムは、プログラム作成支援装置１の表示部７にマトリックス状に表示される複数のセル１８内に仮想デバイスのシンボル１９を適宜配置して、視覚的なリレー回路を表すラダー図１７を構築することにより作成される。
【００１７】
ラダー図１７には、たとえば、１０列×Ｎ行（Ｎは任意の自然数）のセル１８が配置されている。そして、各行のセル１８内に、図２に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル１９を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、１行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。
【００１８】
図２に示すリレー回路は、入力装置からの入力信号に基づいてオン／オフされる３つの仮想デバイス（以下、「入力デバイス」と呼ぶ。）のシンボル１９ａ，１９ｂ，１９ｃと、出力装置の動作を制御するためにオン／オフされる仮想デバイス（以下、「出力デバイス」と呼ぶ。）のシンボル１９ｄとが適宜結合されることにより構成されている。
【００１９】
各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの上方に表示されている文字（「Ｒ０００１」、「Ｒ０００２」及び「Ｒ０００３」）は、その入力デバイスのデバイス名（アドレス名）２１を表している。各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの下方に表示されている文字（「フラグ１」、「フラグ２」及び「フラグ３」）は、その入力デバイスに対応付けられたデバイスコメント２２を表している。出力デバイスのシンボル１９ｄの上方に表示されている文字（「原点復帰」）は、その出力デバイスの機能を表す文字列からなるラベル２３である。
【００２０】
図２に示す例では、デバイス名「Ｒ０００１」及び「Ｒ０００２」にそれぞれ対応する２つの入力デバイスのシンボル１９ａ，１９ｂが直列的に結合されることにより、ＡＮＤ回路が構成されている。また、これらの２つの入力デバイスのシンボル１９ａ，１９ｂからなるＡＮＤ回路に対して、デバイス名「Ｒ０００３」に対応する入力デバイスのシンボル１９ｃが並列的に結合されることにより、ＯＲ回路が構成されている。すなわち、このリレー回路では、２つのシンボル１９ａ，１９ｂに対応する入力デバイスがいずれもオンした場合、又は、シンボル１９ｃに対応する入力デバイスがオンした場合にのみ、シンボル１９ｄに対応する出力デバイスがオンされるようになっている。
【００２１】
図３は、図１のプログラム作成支援装置１の電気的構成について説明するためのブロック図である。図３に示すように、プログラム作成支援装置１には、ＣＰＵ２４、表示部７、操作部８、メモリ２５及び通信部２６が備えられている。表示部７、操作部８、メモリ２５及び通信部２６は、それぞれＣＰＵ２４に対して電気的に接続されている。メモリ２５は、少なくともＲＡＭを含む構成であり、ラダープログラム記憶部２５ａと、編集ソフト記憶部２５ｂとを備えている。
【００２２】
ユーザは、編集ソフト記憶部２５ｂに記憶されている編集ソフトをＣＰＵ２４に実行させて、操作部８を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、ラダープログラム記憶部２５ａに記憶される。また、ユーザは、必要に応じてラダープログラム記憶部２５ａに記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部２６は、通信ケーブル９を介してプログラム作成支援装置１を基本ユニット３に通信可能に接続するためのものである。
【００２３】
図４は、ＰＬＣ２の電気的構成について説明するためのブロック図である。図４に示すように、基本ユニット３には、ＣＰＵ１０、表示部５、操作部６、メモリ１２及び通信部１４が備えられている。表示部５、操作部６、メモリ１２、及び通信部１４は、それぞれＣＰＵ１０に電気的に接続されている。
メモリ１２は、ＲＡＭやＲＯＭ、メモリカードなどを含んでもよく、ラダープログラムなどが記憶される。メモリ１２には、プログラム作成支援装置１から入力されたラダープログラムやユーザデータが上書きして記憶される。
【００２４】
図５は、本発明の実施の形態に係るプログラマブルコントローラの基本ユニット３でのスキャンタイムの構成を示す模式図である。図５が示すように１つのスキャンタイムＴは、入出力のリフレッシュを行うためのユニット間通信２０１、プログラム実行２０２、ＥＮＤ処理２０４により構成されている。ユニット間通信２０１で、基本ユニット３は、ラダープログラムを実行して得られた出力データを基本ユニット３内のメモリ１２から外部機器などに送信するとともに、受信データを含めた入力データを基本ユニット３内のメモリ１２に取り込む。プログラム実行２０２で、基本ユニット３は、更新された入力データを用いてプログラムを実行（演算）する。基本ユニット３はプログラムの実行によりデータを演算処理する。なお、ＥＮＤ処理とは、プログラム作成支援装置１や基本ユニット３に接続された表示器（図示せず）等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
【００２５】
このように、プログラム作成支援装置１はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをＰＬＣ２に転送する。ＰＬＣ２は、入出力リフレッシュ、ラダープログラムの実行およびＥＮＤ処理を１サイクル（１スキャン）として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器（センサ等）からのタイミング信号に基づいて、各種出力機器（モータ等）を制御する。よって、ＰＬＣ２は汎用のパーソナルコンピュータ（ＰＣ）とは全く異なる動きをする。
【００２６】
＜連結構造＞
図６（Ａ）はＰＬＣ２を構成する基本ユニット３、拡張ユニット４およびエンドユニット１１が連結される前の状態を示している。この例では、基本ユニット３の右方向に１つ以上の拡張ユニット４が連結される。最も右に位置する拡張ユニット４にはエンドユニット１１が連結される。エンドユニット１１は、最も右に位置する拡張ユニット４の右側面を保護するものであり、バスの終端機能を備えていてもよい。
【００２７】
図６（Ｂ）はＰＬＣ２を構成する基本ユニット３、拡張ユニット４およびエンドユニット１１が連結された状態を示している。このＰＬＣ２はベースレスのビルディングタイプであるため、ベースを使用せずに、基本ユニット３、拡張ユニット４およびエンドユニット１１が連結される。工場において制御盤に設置しやすくするために、ＰＬＣ２の背面にはＤＩＮレールなどの基準レール１３が取り付けられるようになっている。なお、基本ユニット３および拡張ユニット４の連結状態を維持するためにロック機構が採用されてもよい。
【００２８】
図７、図８（Ａ）および図８（Ｂ）はユニット間の連結構造を説明するための図である。図７によれば、拡張ユニット４は略直方体形状の筐体を有している。筐体は、上面４Ｔ、底面４Ｂ、左側面４Ｌ、右側面４Ｒ、前面４Ｆ、背面４ｒといった６つの主要な側面を有している。なお、図７では前面４Ｆが上を向いている。筐体面に関するこれらの呼称は便宜上のものにすぎない。
【００２９】
図８（Ａ）および図８（Ｂ）が示すように、筐体内には電気信号を伝達するための基板３３が配置され、基準レール１３の長手方向の一方端部に雌型コネクタ３４が固定されている。雌型コネクタ３４の差込口が露出するように右側面４Ｒに開口部３５が設けられる。左側面４Ｌには、雌型コネクタ３４の差込口に挿入可能な突出部３２を含む雄型コネクタが設けられている。突出部３２を略包囲する包囲部３１が筐体に設けられる。このように突出部３２と包囲部３１とによって雄型コネクタが形成されている。
【００３０】
ここでは、第１の拡張ユニット４に対して第２の拡張ユニット４’が連結されるものとする。なお、両者に共通する事項を説明するときは、単に、拡張ユニット４と呼ぶことにする。第１の拡張ユニット４の開口部３５に第２の拡張ユニットの包囲部３１が嵌合ないしは係合される。第１の拡張ユニット４の雌型コネクタ３４の差込口に第２の拡張ユニット４’の突出部３２が挿入されることにより第１および第２の拡張ユニット間が構造的に結合されるとともに、バスが電気的に接続される。第１の拡張ユニット４と第２の拡張ユニット４’の雌型コネクタ３４と突出部３２の関係は、逆になっていても構わない。つまり、右側面４Ｒに突出部３２を含む雄型コネクタが設けられ、左側面４Ｌに雌型コネクタ３４が設けられてもよい。なお、基本ユニット３の右側面も拡張ユニット４の右側面と同一の構造となっており、基本ユニット３の右側面に対して拡張ユニット４の左側面４Ｌが連結されるようになっている。
【００３１】
第１の拡張ユニット４の側面に一体に形成されている凸部が第２の拡張ユニット４’の側面に形成された係止孔に挿入され、凸部と係止孔とが係合してもよい。さらに、拡張ユニット４の右側面４Ｒには、左側面４Ｌのロック孔３０のうち幅の広い開口部分に挿入可能な係止部３７を備えるロック部材３６が図中の上下方向に移動可能な状態で取り付けられていてもよい。より詳しく説明すると、図８（Ｂ）に示すように、第１の拡張ユニット４に第２の拡張ユニットＢ１を当接することで、第１の拡張ユニット４の係止部３７が第２の拡張ユニット４’のロック孔３０に挿入される。さらに、第１の拡張ユニット４のロック部材３６を図中の矢印方向に移動させると、ロック部材３６の係止部３７が第２の拡張ユニット４’のロック孔３０ｃのうち幅の狭い開口部分に係止される。これにより、第２の拡張ユニット４’が第１の拡張ユニット４に対してロックされる。なお、ロック機構は、上記の例に特に限定されず、他のロック機構が用いられてもよい。また、ロック機構の設置位置も、上記の例に特に限定されず、左側面４Ｌ等であってもよい。
【００３２】
上述したように、拡張ユニット４の右側面にはエンドユニット１１が設けられてもよい。エンドユニット１１の左側面には、拡張ユニット４の右側面４Ｒに設けられた開口部３５に嵌合する包囲部が設けられる。この包囲部の形状は、包囲部３１の形状と類似していてもよいが、開口部３５に嵌合する形状であれば異なる形状であってもよい。また、エンドユニット１１の包囲部には終端抵抗に接続された突出部が設けられてもよい。これにより、終端が必要なバスをエンドユニット１１で終端することができ、不要な定在波の発生を抑制できるようになる。
【００３３】
＜種類の異なるバスを有するユニットの連結＞
基板技術の進化に応じて製品を更新することで、旧製品と新製品との連結構造や電気的接続構造の互換性を維持できなくなることがある。たとえば、新製品の基本ユニットと旧製品の拡張ユニットとを通信ケーブルで接続し、新製品の基本ユニットと旧製品の拡張ユニットとの連結（ビルディング）についてはあきらめることも考えられる。しかし、これはでは基本ユニットと拡張ユニットとを一列に連結するビルディングタイプの利点が失われてしまう。そこで、本実施の形態では、連結構造（連結面）の異なる複数種類の製品群であっても連結可能とすることで、ユーザの利便性を向上させる。
【００３４】
図９は連結構造の異なる複数種類の拡張ユニットを、連結ユニット１５を介して接続して構成されたＰＬＣ２の一例を示す図である。基本ユニット３ａの右側面と拡張ユニット４ａの左側面はそれぞれ互換性のある連結面を有している。つまり、一方の連結面に設けられた凸形状は他方の連結面に設けられた凹形状と係合し、他方の連結面に設けられた凸形状は一方の連結面に設けられた凹形状と係合する。つまり、凸形状のサイズと高さは、凹形状のサイズと深さとほぼ整合している。また、連結面内での凸形状の位置と凹形状の位置も整合している。一方で、拡張ユニット４ｂの左側面は、基本ユニット３ａの右側面に連結することができない。つまり、基本ユニット３ａの連結面と拡張ユニット４ｂの連結面には互換性がない。そこで、連結ユニット１５によって連結面の違いを吸収し、拡張ユニット４ｂを拡張ユニット４ａや基本ユニット３ａに対して接続している。連結ユニット１５の右側面は拡張ユニット４ｂの左側面に対して連結面として互換性があるように構成されている。連結ユニット１５の左側面は拡張ユニット４ａや基本ユニット３ａの左側面に対して連結面として互換性があるように構成されている。なお、基本ユニット３ａから見て最も遠方にある、すなわち遠端に配置される拡張ユニット４ｂの右側面にはエンドユニット１１ｂが連結されてもよい。
【００３５】
図１０は、拡張ユニット４ａ、拡張ユニット４ｂおよび連結ユニット１５の各連結面の構造を説明するための図である。拡張ユニット４ａの筐体は右側面４ａＲ、左側面４ａＬ、上面４ａＴ、前面４ａＦ、背面４ａｒおよび底面を有している。右側面４ａＲには、上述したロック孔３０ａや雌型コネクタ３４ａなどが設けられている。左側面４ａＬには、係止部３７ａや雄型コネクタの突出部３２ａなどが配置されている。係止部３７ａはロック孔３０ａに挿入され、リリース位置（大開口部）からロック位置（小開口部）に移動すると、２つの連結面をロックする。また、雌型コネクタ３４ａには雄型コネクタの突出部３２ａが嵌合し、これによりバスが電気的に接続される。背面４ａｒには基準レール１３を取り付けるための溝部４ａｇが設けられている。
【００３６】
拡張ユニット４ｂの筐体は右側面４ｂＲ、左側面４ｂＬ、上面４ｂＴ、前面４ｂＦ、背面４ｂｒおよび底面を有している。右側面４ｂＲには、上述したロック孔３０ｂや雌型コネクタ３４ｂなどが設けられている。左側面４ｂＬには、係止部３７ｂや雄型コネクタの突出部３２ｂなどが配置されている。係止部３７ｂはロック孔３０ｂに挿入され、リリース位置（大開口部）からロック位置（小開口部）に移動すると、２つの連結面をロックする。また、雌型コネクタ３４ｂには雄型コネクタの突出部３２ｂが嵌合し、これによりバスが電気的に接続される。背面４ｂｒには基準レール１３を取り付けるための溝部４ｂｇが設けられている。
【００３７】
連結ユニット１５の筐体は右側面１５Ｒ、左側面１５Ｌ、上面１５Ｔ、前面１５Ｆ、背面１５ｒおよび底面を有している。右側面１５Ｒには、拡張ユニット４ｂの左側面４ｂＬを連結するために、上述したロック孔３０ｂや雌型コネクタ３４ｂなどが設けられている。左側面１５Ｌには、拡張ユニット４ａや基本ユニット３ａを連結するために、係止部３７ａや雄型コネクタの突出部３２ａなどが配置されている。連結ユニット１５の係止部３７ａは拡張ユニット４ａや基本ユニット３ａのロック孔３０ａに挿入され、リリース位置（大開口部）からロック位置（小開口部）に移動すると、２つの連結面をロックする。同様に、連結ユニット１５のロック孔３０ｂには、拡張ユニット４ｂの係止部３７ｂが挿入される。係止部３７ｂがリリース位置（大開口部）からロック位置（小開口部）に移動すると、２つの連結面をロックする。連結ユニット１５の雌型コネクタ３４ｂには拡張ユニット４ｂの突出部３２ｂが嵌合し、これによりバスが電気的に接続される。同様に、連結ユニット１５の突出部３２ａは拡張ユニット４ａや基本ユニット３ａの雌型コネクタ３４ａに嵌合し、これによりバスが電気的に接続される。背面１５ｒには基準レール１３を取り付けるための溝部１５ｇが設けられている。
【００３８】
このように、連結ユニット１５は、基本ユニット３ａの側面または基本ユニット３ａに接続された拡張ユニット４ａの側面に連結される第１側面（左側面１５Ｌ）と、拡張ユニット４ｂの側面に連結される第２側面（右側面１５Ｒ）とを有する連結面変換ユニットとして機能する。つまり、連結ユニット１５の第１側面には基本ユニット３ａや拡張ユニット４ａが接続され、第２側面には拡張ユニット４ｂが接続される。これにより、拡張ユニット４ａの連結構造と拡張ユニット４ｂの連結構造に互換性がなくても、連結ユニット１５を介在させることで、拡張ユニット４ａの連結構造と拡張ユニット４ｂを一列に連結することが可能となる。つまり、連結構造の異なる複数種類の拡張ユニットであっても一列に連結することが可能となり、ユーザの利便性が向上する。なお、ここでは拡張ユニット４ａの側面に第１側面（左側面１５Ｌ）が連結されるようになっているが、例えば、連結ユニット１５と基本ユニット３ａをケーブル接続してもよい。この場合、拡張ユニット４ａの側面に第１側面（左側面１５Ｌ）は連結しなくてもよい代わりに、拡張ユニット４ａの側面と第１側面（左側面１５Ｌ）とは対応関係にある。たとえば、拡張ユニット４ａの側面と第１側面において、幅方向の大きさ（奥行き）を略同一にしてもよいし、上下方向の大きさを略同一にしてもよいし、これら両方を略同一にしてもよい。要するに、基本ユニット３ａ、拡張ユニット４ａ、連結ユニット１５、拡張ユニット４ｂがＤＩＮレール等の基準レールに取り付けられたとき、一体的な構成となるような対応関係があればよい。
【００３９】
本実施の形態ではベースレスのビルディングタイプを一例として取り上げたが、ベースフレームを用いて連結されるビルディングタイプのＰＬＣに対しても本発明の技術思想を採用できる。つまり、ベースフレームありのビルディングタイプであっても、拡張ユニット４ａの連結構造と拡張ユニット４ｂの連結構造に互換性がないことがあるため、連結ユニット１５を採用してもよい。なお、ベースフレームは、たとえば、拡張ユニット４ａの底面と拡張ユニット４ｂの底面とに固定され、ベースフレームによって基本ユニット３ａ、拡張ユニット４ａ、拡張ユニット４ｂおよび連結ユニット１５が一体に維持される。
【００４０】
連結ユニット１５の第１側面には、第１側面に連結された基本ユニット３ａまたは拡張ユニット４ａを連結ユニット１５に固定するためのロック機構が設けられてもよい。このようなロック機構は係止部３７ａとロック孔３０ａによって構成されてもよい。同様に、連結ユニット１５の第２側面には、第２側面に連結された拡張ユニット４ｂを連結ユニット１５に固定するためのロック機構が設けられてもよい。このようなロック機構は係止部３７ｂとロック孔３０ｂによって構成されてもよい。
【００４１】
図９では基本ユニット３ａと連結ユニット１５との間に２台の拡張ユニット４ａが接続されているが、拡張ユニット４ａの数は０台であってもよいし、３台以上であってもよい。また、連結ユニット１５の右側には１台以上の拡張ユニット４ｂが接続されうる。
【００４２】
＜バス変換ユニット＞
上述した実施の形態では主に連結構造の異なるユニットについての構造的な連結手法について説明した。以下では、基本ユニット３ａと拡張ユニット４ｂがどのように通信するかについて説明する。
【００４３】
基本ユニット３ａと拡張ユニット４ａは連結面に設けられたコネクタを介して接続されたバスを通じて通信する。また、複数の拡張ユニット４ｂもコネクタを介して接続されたバスを通じて通信する。したがって、基本ユニット３ａと拡張ユニット４ｂとをどのようにバス接続するかが問題となる。たとえば、基本ユニット３ａと拡張ユニット４ａとがシリアルバスを介して接続され、複数の拡張ユニット４ｂはパラレルバスを介して接続されている場合、シリアルバスを構成する信号線とパラレルバスを構成する信号線を接続しても通信は不可能である。これは信号線の数が異なるだけでなく、通信プロトコルも異なるからである。
【００４４】
図１１（Ａ）は種類の異なる複数のバスの接続形態の一例を示す図である。この例では、基本ユニット３ａは第１のタイプのコネクタとして雌型のコネクタＣ１を有している。拡張ユニット４ａの左側面には第２のタイプのコネクタとして雄型のコネクタＣ１が設けられている。雌雄を成すこれらのコネクタＣ１は基本ユニット３ａと拡張ユニット４ａが通信するための第１バスＢ１を接続する。第１バスＢ１では、たとえば、ユーザプログラム上で第１拡張ユニット４ａの内部処理に関して割り付けられるデバイスの情報が送受信される。同様にコネクタＣ１は第２バスＢ２を接続する。第２バスＢ２は、たとえば、第１バスＢ１と特性が異なるとともに、ユーザプログラム上で第２拡張ユニット４ｂの内部処理に関して割り付けられるデバイスの情報を基本ユニット３ａと第２拡張ユニット４ｂの間で通信するために使用される。拡張ユニット４ａの右側面には第１のタイプの雌型のコネクタＣ１が設けられており、他の拡張ユニット４ａや連結ユニット１５が接続される。連結ユニット１５の左側面には雄型のコネクタＣ１が設けられている。第２バスＢ２は基本ユニット３、拡張ユニット４ａ、連結ユニット１５および拡張ユニット４ｂまで延在している。なお、連結ユニット１５の右側面と拡張ユニット４ｂの右側面には第３のタイプのコネクタとして雌型のコネクタＣ２が設けられている。拡張ユニット４ｂの左側面には第４のタイプのコネクタとして雄型のコネクタＣ２が設けられている。このように雌雄のコネクタＣ２によって第２バスを接続している。コネクタＣ１については第１バスＢ１と第２バスＢ２を接続するため、コネクタＣ２と比較してより多くのバスラインを接続することになる。なお、基本ユニット３ａは、第１バスＢ１での通信を制御するためのバスマスタと、第２バスＢ２での通信を制御するためのバスマスタとを有している。
【００４５】
図１１（Ｂ）は種類の異なる複数のバスの接続形態の一例を示す図である。この例では、基本ユニット３ａは第５のタイプのコネクタとして雌型のコネクタＣ３を有している。拡張ユニット４ａの左側面には第６のタイプのコネクタとして雄型のコネクタＣ３が設けられている。この雌雄を成すコネクタＣ３は基本ユニット３ａと拡張ユニット４ａが通信するための第１バスを接続するとともに、第３バスＢ３を接続する。第３バスＢ３は、第２バスＢ２を連結ユニット１５によってバス変換されたバスである。第３バスＢ３の通信帯域は、第２バスＢ２の通信帯域以上であればよく、通信プロトコルはどのようなものであってもよい。拡張ユニット４ａの右側面には雌型のコネクタＣ３が設けられており、他の拡張ユニット４ａや連結ユニット１５が接続される。連結ユニット１５の左側面には雄型のコネクタＣ３が設けられている。第２バスＢ２は連結ユニット１５から拡張ユニット４ｂまで延在している。なお、連結ユニット１５の右側面と拡張ユニット４ｂの右側面には雌型のコネクタＣ２が設けられている。拡張ユニット４ｂの左側面には雄型のコネクタＣ２が設けられている。このようにコネクタＣ２によって第２バスを接続している。コネクタＣ１については第１バスＢ１と第３バスＢ３を接続するため、コネクタＣ２と比較してより多くのバスラインを接続することになる。なお、基本ユニット３ａは、第１バスＢ１での通信を制御するためのバスマスタと、第３バスＢ３での通信を制御するためのバスマスタとを有している。連結ユニット１５は、第３バスＢ３と第２バスＢ２とをバス変換するためのバス変換ユニットを備えている。バス変換ユニットは、第２バスＢ２での通信を制御するためのバスマスタを有していてもよい。図１１（Ａ）では第２バスＢ２が拡張ユニット４ａや基本ユニット３ａに延在しているため、コネクタＣ１が大きくなりやすい。一方で、図１１（Ｂ）では第２バスＢ２を変換して得られた第３バスＢ３が拡張ユニット４ａや基本ユニット３ａに延在している。第２バスＢ２のバスラインと比較して第３バスＢ３のバスラインの数が少なければ、コネクタＣ３はコネクタＣ１よりも小さいものを採用できるであろう。
【００４６】
図１２（Ａ）は上述した連結ユニット１５を２つのバス延長ユニットで構成した例である。バス延長ユニット１５ａは、雄型のコネクタＣ１、第７タイプのコネクタである雌型のコネクタＣ４と、ケーブルを接続するための第８のタイプのコネクタＣ５とを有している。コネクタＣ１は第１バスＢ１と第２バスＢ２を接続している。拡張ユニット４ａは、雌型のコネクタＣ４と雄型のコネクタＣ４とを有している。雌雄を成すコネクタＣ４は第１バスＢ１を接続するためのコネクタである。バス延長ユニット１５ｂは、雄型のコネクタＣ４と雄型のコネクタＣ２と、ケーブルを接続するためのコネクタＣ５とを有している。このケーブルは第２バスＢ２を接続するためのケーブルである。このようにバス延長ユニット１５ａは基本ユニット３ａまたは拡張ユニット４ａと、拡張ユニット４ａとを連結するとともに、もう一方のバス延長ユニット１５ｂからの第２バスＢ２を接続する。バス延長ユニット１５ｂは拡張ユニット４ａと拡張ユニット４ｂとを連結するとともに、延長ユニット１５ａからの第２バスＢ２を接続する。このように第２バスＢ２については拡張ユニット４ａ内を経由せずに、すなわちその外部を経由して拡張ユニット４ｂから基本ユニット３ａまで接続されてもよい。
【００４７】
図１２（Ｂ）は種類の異なる複数のバスの接続形態の一例を示す図である。この例では、基本ユニット３ａは雌型のコネクタＣ４を有している。拡張ユニット４ａの左側面には雄型のコネクタＣ４が設けられている。これらの雌雄のコネクタＣ４は基本ユニット３ａと拡張ユニット４ａが通信するための第１バスＢ１を接続する。拡張ユニット４ａの右側面には雌型のコネクタＣ４が設けられており、他の拡張ユニット４ａや連結ユニット１５が接続される。連結ユニット１５の左側面には雄型のコネクタＣ４が設けられており、右側面には雌型のコネクタＣ２が設けられている。拡張ユニット４ｂの左側面には雄型のコネクタＣ２が設けられている。このようにコネクタＣ２によって第２バスを接続している。連結ユニット１５は、第２バスＢ２と第１バスＢ１とをバス変換するためのバス変換ユニットを備えている。なお、第１バスＢ１の通信帯域の一部分が、第２バスＢ２の送受信データを伝送するために割り当てられる。コネクタＣ４は第１バスＢ１を接続すればよいため、コネクタＣ１と比較して小型化することが可能となる。
【００４８】
図１３は、基本ユニット３ａが連結ユニット１５と一体化された例を示す図である。この例では、基本ユニット３ａの左側面が拡張ユニット４ａの右側面と連結するように構成されている。たとえば、基本ユニット３ａの左側面には雄型のコネクタＣ４が設けられており、拡張ユニット４ａの右側面に設けられた雌型のコネクタＣ４に接続される。一方、基本ユニット３ａの右側面が拡張ユニット４ｂの左側面と連結するように構成されている。たとえば、基本ユニット３ａの左側面には雄型のコネクタＣ２が設けられており、基本ユニット３ａの右側面に設けられた雌型のコネクタＣ２に接続される。この場合、基本ユニット３ａが連結ユニット１５と一体化されているため、第１バスＢ１と第２バスＢ２とを変換するバス変換ユニットが不要となる利点がある。
【００４９】
＜各ユニットの構成例＞
１．基本ユニット３ａに第１バスＢ１と第２バスＢ２が接続されているケース（その１）
図１４は、図１１（Ａ）や図１２（Ａ）、図１３に示した連結構成における基本ユニット３ａの機能を示すブロック図である。ここでは、メモリ１２とＣＰＵ１０によって実現される機能を中心に説明する。
【００５０】
デバイスメモリ４１は上述したメモリ１２の一部であり、デバイス情報を記憶する。ラダー実行エンジン４２はＣＰＵ１０の一部であり、ラダープログラムを実行するラダー実行部４３を備えている。ユニット制御部４４はＣＰＵ１０の一部であり、拡張ユニット４を制御する。ユニット制御部４４は、リフレッシュ情報４５を保持する保持部（メモリなど）とスキャンタイムにしたがってラダー実行部４３を制御したり、入出力のリフレッシュを実行したりする。拡張バスマスタ４７は、ＣＰＵ１０の一部であり、拡張ユニット４と通信するためのバスを制御するユニットである。バスマスタ制御部４８は、１つまたは複数のバスを統括的に制御する。ユニット管理テーブル４９は、各バスに接続されている拡張ユニット４に関する識別情報やユニークなユニット番号などを保持するテーブルである。第１バス通信部５０は第１バスＢ１を介して実行される通信を制御するバスマスタである。第２バス通信部５１は第２バスＢ２を介して実行される通信を制御するバスマスタである。なお、バスマスタ制御部４８は、第１バス通信部５０および第２バス通信部５１を統括的に制御する上位の制御部である。バスマスタ制御部４８は、ラダー実行部４３やスキャン部４６からいずれかの拡張ユニット４への通信要求を受け付けると、ユニット管理テーブル４９を参照して当該拡張ユニット４がどのバスに接続されているかを特定し、特定されたバスを管理しているバスマスタに対して当該拡張ユニット４への通信を要求する。ラダー実行エンジン４２、ユニット制御部４４および拡張バスマスタ４７は内部バス５２を介してデバイスメモリ４１に対してアクセスし、データの読み書きを実行する。なお、ラダー実行部４３、スキャン部４６およびバスマスタ制御部４８は内部バス５２を介して通信するように構成されてもよいし、専用線を介して通信するように構成されてもよい。このように内部バス５２や専用線によってラダー実行部４３、スキャン部４６およびバスマスタ制御部４８を接続することで、ラダー実行部４３、スキャン部４６およびバスマスタ制御部４８は高速に第１バスＢ１や第２バスＢ２などにアクセスできるようになる。なお、ラダー実行部４３、スキャン部４６およびバスマスタ制御部４８は、第２バスＢ２にアクセスする場合、第１バスＢ１を介さずに直接アクセスする。
【００５１】
図１５は、拡張ユニット４ａ、連結ユニット１５および拡張ユニット４ｂに備えられる通信機能を示す図である。拡張ユニット４ａは、第１バスＢ１を介して基本ユニット３ａと通信する第１バス通信部５４を有している。第１バス通信部５４は第１バスＢ１においてスレーブとして機能する。拡張ユニット４ａは、第２バスＢ２を介して通信しないため第２バスＢ２用の通信部を有していないが、第２バスＢ２を通過させるための配線を備え、さらに増幅回路や信号再生回路などを備えてもよい。連結ユニット１５は第１バスＢ１および第２バスＢ２の両方に関して通信を実行しないため、通信部を備えていない。ただし、連結ユニット１５は、第２バスＢ２を通過させるために必要となる配線を備え、さらに増幅回路や信号再生回路などを備えてもよい。拡張ユニット４ｂは、第２バスＢ２を介して基本ユニット３ａと通信する第２バス通信部５５を有している。第２バス通信部５５は第２バスＢ２においてスレーブとして機能する。このように、第２バスＢ２は拡張ユニット４ａおよび連結ユニット１５を通過するだけにすぎないため、信号の遅延が発生しにくい。
【００５２】
２．基本ユニット３ａに第１バスＢ１と第３バスＢ３が接続されているケース
図１６は、図１１（Ｂ）に示した連結構成における基本ユニット３ａの機能を示すブロック図である。ここでは、メモリ１２とＣＰＵ１０によって実現される機能を中心に説明する。なお、すでに説明済みの構成については同一の参照番号を付与することで説明の簡明化を図る。
【００５３】
拡張バスマスタ４７は第３バスＢ３を介して実行される通信を制御する第３バス通信部５３を有している。第３バス通信部５３は第３バスＢ３についてのバスマスタとして機能する。ラダー実行部４３、スキャン部４６およびバスマスタ制御部４８は、第１バスＢ１を介さずに第３バスＢ３を介して第２バスＢ２にアクセスできるため、高速アクセスが実現される。
【００５４】
図１７は、拡張ユニット４ａ、連結ユニット１５および拡張ユニット４ｂに備えられる通信機能を示す図である。拡張ユニット４ａは、第３バスＢ３を介して通信しないため第３バスＢ３用の通信部を有していないが、第３バスＢ３を通過させるための配線を備え、さらに増幅回路や信号再生回路などを備えてもよい。拡張ユニット４ａは第３バスＢ３を通過させるだけにすぎないため、拡張ユニット４ａでは信号の遅延が発生しにくい。連結ユニット１５は、第１バスＢ１を介して基本ユニット３ａと通信する第１バス通信部５６を有している。第１バス通信部５６は第１バスＢ１においてスレーブとして機能する。連結ユニット１５は、第３バスＢ３を介して基本ユニット３ａと通信する第３バス通信部５７を有している。第３バス通信部５７は第３バスＢ３においてスレーブとして機能する。連結ユニット１５は、第２バスＢ２を介して拡張ユニット４ｂと通信する第２バス通信部５９を有している。第２バス通信部５９は第２バスＢ２においてバスマスタとして機能する。バス変換部５８は、第２バスＢ２を介して実行されている通信データのフォーマットやプロトコルを、第３バスＢ３における通信データのフォーマットやプロトコルに変換する。また、バス変換部５８は、第３バスＢ３を介して実行されている通信データのフォーマットやプロトコルを、第２バスＢ２における通信データのフォーマットやプロトコルに変換する。これにより、基本ユニット３ａと拡張ユニット４ｂは第３バスＢ３および第２バスＢ２を介して通信できるようになる。なお、バスマスタ制御部４８は、第１バスＢ１を介してバス変換部５８に通信タイムアウトを設定したり、第２バスＢ２に接続されている拡張ユニット４ｂの情報を取得したりする。よって、基本ユニット３ａはバス変換機能を有する拡張ユニット４ａとして連結ユニット１５を管理してもよい。このように連結ユニット１５は連結面を変換するだけでなく、バスの電気的性質についても変換する。
【００５５】
３．基本ユニット３ａに第１バスＢ１と第２バスＢ２が接続されているケース（その２）
図１８は、図１２（Ａ）に示した連結構成における拡張ユニット４ａ、連結ユニット１５ａ、１５ｂおよび拡張ユニット４ｂに備えられる通信機能を示す図である。
【００５６】
このケースでの基本ユニット３ａの構成は図１４に示したものと同じである。なぜなら、第２バスＢ２を、拡張ユニット４ａの内部を通過させるのか、拡張ユニット４ａの外部を通過させるかの違いでしかないからである。なお、拡張ユニット４ａの内部には第２バスＢ２を通過させるための配線等が必要ないため、拡張ユニット４ａのコストを低減できる。
【００５７】
図１８において連結ユニット１５ａは、基本ユニット３ａから延在する第２バスＢ２のバスラインをケーブル６３に接続するための第２バス延長部６０を有している。なお、第２バス延長部６０は増幅回路や信号再生回路などを備えてもよい。もう一方の連結ユニット１５ｂは、ケーブル６３を拡張ユニット４ｂ側の第２バスＢ２のバスラインに接続するための第２バス延長部６１を有している。なお、第２バス延長部６１も増幅回路や信号再生回路などを備えてもよい。このように第２バス延長部６０および第２バス延長部６１は、バス変換部５８と同様に、中継手段として機能する。
【００５８】
４．基本ユニット３ａに第１バスＢ１のみが接続されているケース
図１９は、図１２（Ｂ）に示した連結構成における基本ユニット３ａの機能を示すブロック図である。上述した第２バス通信部５１や第３バス通信部５３が存在しないため、バスマスタ制御部４８は第１バスＢ１を介して第２バスＢ２のバスマスタを制御することになる。
【００５９】
図２０は、拡張ユニット４ａ、連結ユニット１５および拡張ユニット４ｂに備えられる通信機能を示す図である。拡張ユニット４ａは、第１バスＢ１を介して通信する機能を有していれば十分であるため、第１バス通信部５４を備えている。第１バス通信部５４は第１バスＢ１においてスレーブとして機能する。連結ユニット１５は、第１バスＢ１を介して基本ユニット３ａと通信する第１バス通信部５６を有している。第１バス通信部５６も第１バスＢ１においてスレーブとして機能する。連結ユニット１５は、第２バスＢ２を介して拡張ユニット４ｂと通信する第２バス通信部５９を有している。第２バス通信部５９は第２バスＢ２においてバスマスタとして機能する。バス変換部５８は、第２バスＢ２を介して実行されている通信データのフォーマットやプロトコルを、第１バスＢ１における通信データのフォーマットやプロトコルに変換する。また、バス変換部５８は、第１バスＢ１を介して実行されている通信データのフォーマットやプロトコルを、第２バスＢ２における通信データのフォーマットやプロトコルに変換する。これにより、基本ユニット３ａと拡張ユニット４ｂは第１バスＢ１および第２バスＢ２を介して通信できるようになる。なお、バスマスタ制御部４８は、第１バスＢ１を介してバス変換部５８に通信タイムアウトを設定したり、第２バスＢ２に接続されている拡張ユニット４ｂの情報を取得したりする。また、基本ユニット３ａはバス変換機能を有する拡張ユニット４ａとして連結ユニット１５を管理してもよい。連結ユニット１５は連結面を変換するだけでなく、バスの電気的性質についても変換する。
【００６０】
＜バス制御＞
上述したようにＰＬＣ２には複数の通信バスが存在するため、それを統括するバスマスタ制御部４８が必要となる。また、各通信バスにもバスマスタが必要となる。よって、基本ユニット３ａがいずれかの拡張ユニット４と通信するにはその拡張ユニット４がどの通信バスに接続されているかを特定し、その通信バスを管理しているバスマスタを介して当該拡張ユニット４と通信する必要がある。なお、バスマスタは自己が管理しているバスに対して接続されている複数の拡張ユニットの接続順序を把握して通信を制御する。また、ユーザはラダープログラムを作成する上で複数の拡張ユニットの接続順序を識別するためのユニット番号を把握する必要がある。さらに、基本ユニット３ａから見た複数の拡張ユニットの接続順序の情報も必要となることがある。これらの接続情報は基本的に一致しないため、各情報の関係を管理する必要がある。つまり、基本ユニット３ａから見た拡張ユニット４の接続順序、バスマスタから見た拡張ユニット４の接続順序およびユーザから見た拡張ユニット４のユニット番号の関係が管理されなければならない。本実施の形態ではユニット管理テーブル４９を用いてこれらの関係を管理する。
【００６１】
１．基本ユニット３ａに第１バスＢ１と第２バスＢ２が接続されているケース（その１）
ここでは、説明の便宜上、図１１（Ａ）に示したケースをさらに拡張し、基本ユニット３ａと連結ユニット１５との間に２つの拡張ユニット４ａが接続され、連結ユニット１５に対して２つの拡張ユニット４ｂが接続されている事例を用いることにする。
【００６２】
図２１（Ａ）は、基本ユニットに対する拡張ユニットの接続例と、各ユニット付与される識別情報の一例を示している。図２１（Ａ）が示すように、基本ユニット３ａに対して拡張ユニット４ａ１、４ａ２が接続され、さらに、連結ユニット１５を介して拡張ユニット４ｂ１、４ｂ２が接続されている。ここでは、基本ユニット３ａに、第１バスＢ１のバスマスタと機能している第１通信部５０（バスマスタＡと呼ぶことにする。）と第２バスＢ２のバスマスタと機能している第２通信部５１（バスマスタＢと呼ぶことにする。）とが接続されている。なお、連結ユニット１５が連結面の違いを吸収する単純なユニットにすぎない場合、連結ユニット１５は識別情報が付与されなくてもよい。
【００６３】
図２１（Ｂ）は、ユニット管理テーブルの一例を示す図である。ユニット管理テーブル４９には、ユニット番号、バスマスタの識別情報およびバスマスタから見た接続順序の情報があれば十分である。しかし、ここでは、説明の便宜上、基本ユニット３ａから見た接続順序とユニット名についても追加している。
【００６４】
図２１（Ａ）が示すように基本ユニット３ａやそこに内蔵されているバスマスタには０が付与される。基本ユニット３ａから見た接続順序では、各ユニットには基本ユニット３ａから遠ざかるにつれて順番に１つずつ増加した番号が付与されている。ユニット番号に関して、各ユニットには基本ユニット３ａから遠ざかるにつれて順番に１つずつ増加した番号が付与されるが、連結ユニット１５はラダープログラムに関与しないため、ユニット番号が付与されない。バスマスタから見た接続順序に関しては、バスマスタを０とし、バスマスタから遠ざかるにつれて順番に１つずつ増加した番号が各拡張ユニットに付与される。なお、連結ユニット１５はバス通信を行わないため、バスマスタから見た接続順序としての番号は付与されない。
【００６５】
基本ユニット３ａから見た接続順序が必要となる理由について説明する。基本ユニット３ａから見た接続順序とユニット番号とはよく似た接続情報であるが、ユニット番号はユーザによってラダープログラムを通じて設定され、基本ユニット３ａから見た接続順序はスキャン部４６またバスマスタ制御部４８によって設定される点で異なっている。たとえば、基本ユニット３ａにプログラム作成支援装置１を接続し、プログラム作成支援装置１から基本ユニット３ａを介して拡張ユニット４のファームウエアを更新する際には、基本ユニット３ａから見た接続順序を用いて当該拡張ユニット４が認識される。また、他の通信ネットワークと通信する機能を備えた拡張ユニット４によって更新プログラムを受信し、基本ユニット３ａのプログラム（ファームウエア）を更新する際に、基本ユニット３ａは、基本ユニット３ａから見た接続順序を用いて当該拡張ユニット４を認識する。このように基本ユニット３ａから見た接続順序は、ユーザによってユニット番号が指定されていない状態で各ユニットを識別するのに役立つ。
【００６６】
図２１（Ｃ）はリフレッシュ情報４５の一例を示す図である。リフレッシュ情報４５には、リフレッシュの対象となる拡張ユニットのユニット番号が格納されている。スキャン部４６はリフレッシュ情報４５を参照することで、リフレッシュの対象となる拡張ユニットを特定する。
【００６７】
図２２はリフレッシュの各工程を示すフローチャートである。スキャン部４６はリフレッシュの実行タイミングが到来すると、リフレッシュを開始する。
【００６８】
Ｓ１でスキャン部４６はリフレッシュの対象となっている拡張ユニットを特定する。たとえば、スキャン部４６はリフレッシュ情報４５を参照して対象ユニットのユニット番号を取得する。図２１（Ｃ）に示したリフレッシュ情報４５によれば、ユニット番号として１番、２番および４番が取得される。
【００６９】
Ｓ２でスキャン部４６は特定した対象ユニットのユニット番号に関連付けられているバスマスタの識別情報と、そのバスマスタから見た接続順序を示す情報をユニット管理テーブル４９から取得する。たとえば、図２１（Ｂ）によれば４番のユニット番号に関して、バスマスタＢと接続順序として２番が特定される。
【００７０】
Ｓ３でスキャン部４６は特定したバスマスタに対して、リフレッシュ対象ユニットの接続順序を指定し、リフレッシュの実行を命令する。バスマスタは当該命令に従って、指定された接続順序の拡張ユニットに対してリフレッシュを実行する。図２１（Ａ）によれば、４番のユニット番号は拡張ユニット４ｂ２に付与されている。また、バスマスタＢは、第２通信部５１である。よって、スキャン部４６はバスマスタ制御部４８を通じて第２通信部５１に対してリフレッシュ命令と、拡張ユニット４ｂ２を示す接続順序の情報を送信する。第２通信部５１は、接続順序として２番が付与されている拡張ユニット４ｂ２に対してリフレッシュを実行する。
【００７１】
なお、Ｓ１ないしＳ３は、すべて対象ユニットについてリフレッシュが完了するまで繰り返し実行される。
【００７２】
このようにユニット管理テーブル４９を採用することで、第１バスＢ１に接続された拡張ユニット４ａや第２バスＢ２に接続された拡張ユニット４ｂが混在しても、ユーザは、それを意識することなく、ラダープログラムにおいて各ユニットにユニット番号を付与することができる。
【００７３】
ユニット管理テーブル４９が参照される他の事例について説明する。ラダー実行部４３はラダープログラムにしたがっていずれかの拡張ユニット４に対してアクセスし、データを読み出したり、書き込んだりすることがある。つまり、リフレッシュのタイミング以外であっても拡張ユニット４に対してアクセスが発生することがある。これをダイレクト処理と呼ぶことにする。
【００７４】
図２３はダイレクト処理を含むラダープログラムの一例を示す図である。ラダープログラムは、たとえば、１ミリ秒など、一定のスキャンタイムごとに繰り返し実行される。つまり、１ミリ秒ごとにリフレッシュが実行されるため、１ミリ秒待たなければ拡張ユニットからデータを取得したり書き込んだりすることができない。しかし、１ミリ秒も待たずに拡張ユニットにアクセスする必要がある場合もある。そこで、ラダー言語にはダイレクト処理を実行するための命令語が用意されている。
【００７５】
図２３において、ＭＲ１０００は、基本ユニット３ａに内蔵されているリレーを示している。このラダープログラムによれば、リレーＭＲ１０００がオンになると２つの処理を実行することになる。ＵＲＥＡＤは拡張ユニットからデータを読み出す命令後である。１つ目の処理で、ラダー実行部４３は、ユニット番号として１番を付与されている拡張ユニット４のデバイスＤＭ１００で示されるアドレスを先頭としてワード分のデータを読み出し、デバイスメモリ４１内のＤＭ１０００で示されるアドレスを先頭として書き込む。より詳細に説明すると、ラダー実行部４３は、ラダープログラムによって指定されているユニット番号に基づきユニット管理テーブル４９を参照し、対応するバスマスタと接続順序の情報を取得する。ユニット管理テーブル４９によればバスマスタはＡ、つまり、第１バス通信部５０であり、接続順序は１番と判明する。ラダー実行部４３は、バスマスタ制御部４８を通じて第１バス通信部５０に対して接続順序として１番を付与されている拡張ユニット４ａ１からデバイスＤ１００で示されるアドレスを先頭としてワード分のデータを読み出すよう指示する。
【００７６】
２つ目の処理で、ラダー実行部４３は、ユニット番号として３番を付与されている拡張ユニット４のデバイスＤＭ２００で示されるアドレスを先頭としてワード分のデータを読み出し、デバイスメモリ４１内のＤＭ２０００で示されるアドレスを先頭として書き込む。より詳細に説明すると、ラダー実行部４３は、ラダープログラムによって指定されているユニット番号に基づきユニット管理テーブル４９を参照し、対応するバスマスタと接続順序の情報を取得する。バスマスタはＢ、つまり、第２バス通信部５１であり、接続順序は１番と判明する。ラダー実行部４３は、バスマスタ制御部４８を通じて第２バス通信部５１に対して接続順序として１番を付与されている拡張ユニット４ｂ１からデバイスＤＭ２００で示されるアドレスを先頭としてワード分のデータを読み出すよう指示する。
【００７７】
このようにユニット管理テーブル４９はスキャン部４６やラダー実行部４３、バスマスタ制御部４８によって利用される。
【００７８】
図２４（Ａ）は、基本ユニットに対する拡張ユニットの接続例と、各ユニット付与される識別情報の一例を示している。なお、ここでは、図１６および図１７を用いて説明した基本ユニット３ａ、拡張ユニット４ａ、４ｂおよび連結ユニット１５が採用されているものとする。バスマスタＡは第１バス通信部５０であり、バスマスタＢは第２バス通信部５９であり、バスマスタＣは第３バス通信部５３である。すでに説明した部分については説明を簡明化する。
【００７９】
図２４（Ａ）が示すように、連結ユニット１５にバスマスタＢとして第２バス通信部５９が搭載されており、第２バス通信部５９が第２バスＢ２を制御している。上述したように、第２バスＢ２はバス変換部５８によって変換され第３バスＢ３を介して基本ユニット３ａに接続されている。つまり、連結ユニット１５の第２バス通信部５９には、バスマスタＣとして機能する第３バス通信部５３によって制御されるスレーブとして接続順序が付与されている。連結ユニット１５の接続順序は１番である。なお、バスマスタ制御部４８は、第３バス通信部５３を通じて第３バスＢ３に接続されている拡張ユニットの問い合わせ、これに対して、連結ユニット１５の第２バス通信部５９が返答する。第３バス通信部５３は、第３バスＢ３に拡張ユニットとして第２バス通信部５９が接続されていることを認識し、バスマスタ制御部４８に報告する。これにより、バスマスタ制御部４８は、第３バスＢ３に第２バスＢ２のバスマスタＢである第２バス通信部５９が接続されていることを認識する。次に、バスマスタ制御部４８は、第３バス通信部５３を通じて第２バス通信部５９にアクセスし、第２バスＢ２に接続している拡張ユニットを問い合わせ、報告された拡張ユニットに基本ユニットから見た接続順序を示す番号を付与するともに、ユニット番号を付与する。このようにしてユニット管理テーブル４９が作成される。
【００８０】
図２４（Ｂ）は、ユニット管理テーブルの一例を示す図である。ユニット管理テーブル４９によれば連結ユニット１５にはユニット番号が付与されていないが、バスマスタＣに接続された１番目のユニットであることが示されている。また、バスマスタ制御部４８は、第１バスＢ１を通じて連結ユニット１５のバス変換部５８と通信し、第２バスＢ２に接続されている拡張ユニット４ｂ１、４ｂ２の情報を取得する。たとえば、バスマスタ制御部４８は、ユニット番号に基づき拡張ユニット４ｂ１に対するアクセスが発生すると、バスマスタＣを通じてバスマスタＢと通信し、拡張ユニット４ｂ１に対してアクセスする。
【００８１】
図２５（Ａ）は、基本ユニットに対する拡張ユニットの接続例と、各ユニット付与される識別情報の一例を示している。なお、ここでは、図１９および図２０を用いて説明した基本ユニット３ａ、拡張ユニット４ａ、４ｂおよび連結ユニット１５が採用されているものとする。バスマスタＡは第１バス通信部５０であり、バスマスタＢは第２バス通信部５９である。すでに説明した部分については説明を簡明化する。
【００８２】
図２５（Ａ）が示すように、連結ユニット１５にバスマスタＢとして第２バス通信部５９が搭載されており、第２バス通信部５９が第２バスＢ２を制御している。上述したように、第２バスＢ２はバス変換部５８によって変換され第１バスＢ１を介して基本ユニット３ａに接続されている。また、連結ユニット１５は、バスマスタＡとして機能する第１バス通信部５０によって制御されるスレーブとして接続順序が付与されている。バスマスタＡから見た連結ユニット１５の接続順序は３番である。
【００８３】
図２５（Ｂ）は、ユニット管理テーブルの一例を示す図である。ユニット管理テーブル４９によれば連結ユニット１５にはユニット番号が付与されていないが、バスマスタＡに接続された３番目のユニットであることが示されている。また、バスマスタ制御部４８は、第１バスＢ１を通じて連結ユニット１５のバス変換部５８と通信し、第２バスＢ２に接続されている拡張ユニット４ｂ１、４ｂ２の情報を取得する。たとえば、バスマスタ制御部４８は、ユニット番号に基づき拡張ユニット４ｂ１に対するアクセスが発生すると、バスマスタＡである第１バス通信部５０を通じてバスマスタＢであるバス変換部５８および第２バス通信部５９と通信し、拡張ユニット４ｂ１に対してアクセスする。なお、バスマスタ制御部４８が第２バスＢ２に接続されている拡張ユニット４ｂの情報をバス変換部５８に問い合わせると、第２バス通信部５９を介して拡張ユニット４ｂの情報を取得して、バスマスタ制御部４８に返信する。この処理は、たとえば、第１バス通信部５０は、自己に接続されているユニットを列挙する際に実行されうる。
【００８４】
上述した実施の形態では基本ユニット３ａの右側に複数の拡張ユニット４を接続する例を主に取り上げたが、基本ユニット３ａの左側に複数の拡張ユニット４を接続するＰＬＣや、基本ユニット３ａの両側に複数の拡張ユニット４を接続するＰＬＣでもあって上記の技術思想は適用可能である。
【００８５】
＜ＰＬＣの設定ＧＵＩ＞
ＰＬＣ２で実行されるラダープログラムを含むプロジェクトデータはプログラム作成支援装置１によって作成される。ユーザは基本ユニット３ａに接続されている拡張ユニット４に対して左から順番に１から始まるユニット番号を付与することで、拡張ユニット４を区別する。この区別はラダープログラム上での区別を意味する。
【００８６】
ところで、プログラム作成支援装置１はユーザのプログラミング作業をアシストするためにＧＵＩ（グラフィカルユーザインタフェース）を提供している。たとえば、基本ユニット３ａとして使用される基本ユニット（ＣＰＵユニット）を選択するためのリストを表示したり、拡張ユニット４のリストを表示したりする。プログラム作成支援装置１は選択された基本ユニットを示すシンボル画像（文字情報であってもよい）を表示部７に表示し、次に選択された拡張ユニットのシンボル画像を、基本ユニットを示すシンボル画像の隣に表示する。また、プログラム作成支援装置１は拡張ユニットの配置位置にしたがってユニット番号を付与する。たとえば、ユーザはＧＵＩ上で拡張ユニットのシンボル画像や識別情報をドラッグアンドドロップすることで基本ユニットのシンボル画像に対して拡張ユニットのシンボル画像を連結して行き、プログラム作成支援装置１は拡張ユニットの配置位置にしたがってユニット番号を決定する。これによりユーザは簡単にユニット番号を付与することが可能となる。また、ユーザはＧＵＩ上でシンボル画像を移動するだけで複数の拡張ユニットの並びも変更でき、ユニット番号もプログラム作成支援装置１によって更新される。なお、プログラム作成支援装置１の機能のうち、基本ユニット３や第１拡張ユニットおよび第２拡張ユニットの配置に関するユニット構成情報の設定機能を少なくとも有した設定支援装置が提供されてもよい。ここでは、説明の便宜上、プログラム作成支援機能も含むプログラム作成支援装置１としてユニット構成情報の設定支援装置について説明する。ユニット構成情報には、各ユニットを識別するためのユニット番号が含まれることになる。なお、ラダープログラムを作成して基本ユニット３に転送する支援装置と、ユニット構成情報を作成して基本ユニット３に転送する支援装置とはそれぞれ別々に用意されてもよい。
【００８７】
上述したように種類の異なる拡張ユニット４ａ、４ｂが混在する場合は、拡張ユニット４ａ、４ｂの物理的な配置位置は制限される。たとえば、拡張ユニット４ｂは連結ユニット１５の右側にしか配置できないし、拡張ユニット４ａは連結ユニット１５の左側にしか配置できない。よって、拡張ユニットの配置位置を指定してユニット番号を付与するＧＵＩにおいても拡張ユニット４ａ、４ｂの配置位置は制限されなければならない。
【００８８】
図２６はＧＵＩの一例を示す図である。ＣＰＵ２４は表示部７にＧＵＩを表示する。この例では、ＣＰＵ機種リスト６５に列挙されているいずれかの基本ユニットが操作部８の操作に連動して移動するポインタ６４により選択される。この例では基本ユニットＡ１という機種名の基本ユニットが選択されている。機種名に代えて型番が表示されてもよいし、機種名と型番が同時に表示されてもよいし、その機種についての説明なども表示されてもよい。選択された基本ユニットがポインタ６４によりドラッグされてレイアウトエリア６７内でドロップされると、基本ユニットの配置位置が決定され、レイアウトエリア６７の左端に基本ユニットのシンボル画像が表示される。ＣＰＵ機種リスト６５にはシンボル画像が表示されてもよいし、機種名が表示されてもよい。シンボル画像は、機種名を示す文字情報とともに、ユニットの画像が含まれていてもよい。シンボル画像は、実際のユニットの正面の画像であってもよい。
【００８９】
図２７はＧＵＩの一例を示す図である。基本ユニットの配置が完了すると、次は、拡張ユニットの選択が実行される。ＣＰＵ２４は選択された基本ユニットに接続可能な拡張ユニットを列挙した拡張ユニットリスト６６を表示部７に表示する。拡張ユニットリスト６６に列挙されているいずれかの拡張ユニットがポインタ６４により選択され、ＣＰＵ２４は選択された拡張ユニットを認識する。この例では、基本ユニットＡ１に対して直接接続可能な拡張ユニットａ１が選択されている。選択された拡張ユニットがポインタ６４によりドラッグされてレイアウトエリア６７内でドロップされると、ＣＰＵ２４は、ドロップされた位置に最も近い配置可能な位置を拡張ユニットの配置位置として決定し、レイアウトエリア６７に拡張ユニットのシンボル画像を表示する。なお、ＣＰＵ２４は拡張ユニットを左詰めで配置してゆく。なぜなら、左端に基本ユニットが配置されるからである。ただし、２つ以上の同種の拡張ユニットがすでにレイアウトエリア６７に表示されている場合、ＣＰＵ２４は、ドロップ位置に応じて２つの拡張ユニットの間に他の同種の拡張ユニットを挿入してもよい。この場合、すでに配置されていた拡張ユニットの接続順序やユニット番号等が、新しい接続順序に応じて更新される。
【００９０】
図２８はＧＵＩの一例を示す図である。この例では、基本ユニットＡ１に対しては直接接続できない拡張ユニットｂ１がポインタ６４により選択され、レイアウトエリア６７内でドロップされている。選択された拡張ユニットｂ１が基本ユニットＡ１に対して直接接続できないため、ＣＰＵ２４は、基本ユニットＡ１に接続されている複数の拡張ユニットのうち最も右端に位置している拡張ユニットａ１の右に連結ユニットを追加し、連結ユニットの右隣り位置するように拡張ユニットｂ１の配置位置を決定している。なお、拡張ユニットａ１、ａ２など、基本ユニットＡ１に対して直接接続可能な拡張ユニットであれば、基本ユニットＡ１と連結ユニットとの間であればどこにでも追加で配置可能である。ただし、ＣＰＵ２４は、連結ユニットの右側には拡張ユニットａ１、ａ２を配置できないように制限する。また、拡張ユニットｂ１、ｂ２など、基本ユニットＡ１に対して直接接続できない拡張ユニットであれば、連結ユニットの右側であればどこにでも追加で配置可能である。ただし、ＣＰＵ２４は、連結ユニットの左には拡張ユニットｂ１、ｂ２を配置できないように制限する。
【００９１】
図２９はＧＵＩの一例を示す図である。この例では、基本ユニットＡ１に対して拡張ユニットａ１、ａ２などが配置されていない状態で拡張ユニットｂ２がポインタ６４によって選択され、レイアウトエリア６７内にドロップされている。選択された拡張ユニットｂ１が基本ユニットＡ１に対して直接接続できないため、ＣＰＵ２４は、基本ユニットＡ１の右に連結ユニットを追加し、さらに連結ユニットの右となるように拡張ユニットｂ１の配置位置を決定している。このように連結ユニットが必要となる拡張ユニットをユーザがレイアウトエリア６７に配置しようとすると、ＣＰＵ２４は連結ユニットを自動で追加する。よって、ユーザは、連結ユニットをどこに配置すればよいかを悩む必要はなく、手動での連結ユニットの追加作業も必要ない。
【００９２】
図３０はＧＵＩの一例を示す図である。この例では、基本ユニットＡ１に対して拡張ユニットａ１、連結ユニットおよび拡張ユニットｂ１などが配置されている状態で、拡張ユニットｂ２がポインタ６４によって選択され、レイアウトエリア６７内にドロップされている。ドロップされた位置は、拡張ユニットａ１と連結ユニットとの間付近である。ＣＰＵ２４は、ドロップ位置がどのユニットの連結面に近いかを、連結面の座標とドロップ位置の座標とを比較することで認識する。連結面の座標は、レイアウトエリア６７に表示されているオブジェクト（ユニットのシンボル画像）の座標を参照することで、得られる。上述したように拡張ユニットｂ１、ｂ２は連結ユニットの右側にしか配置できない。よって、ＣＰＵ２４は、ドロップ位置には拡張ユニットｂ２を配置できないと判定し、警告メッセージ６９を出力する。ここでは、警告メッセージ６９が表示部７に表示されるが、音声等で出力されてもよい。
【００９３】
図３１はＧＵＩの一例を示す図である。上述したレイアウトエリア６７はシンボル画像を伴うグラフィカルなものであったが、シンボル画像に代えてテキストを用いて各ユニットの配置が示されてもよい。図３０によれば、レイアウトエリア６７はリスト状のＧＵＩであり、ユニット番号とともに機種名が示されている。機種名に代えて英数字等からなる型番が表示されてもよい。この例では、リストの上方向が基本ユニットに近い方向を示し、下方向が基本ユニットから遠ざかる方向を示している。ＣＰＵ２４は基本ユニットを基準としてユニット番号を付与して行く。この例では連結ユニットにはユニット番号が付与されていないが、付与されるようにしてもよい。ただし、後述するようにラダープログラムにおいてユニット番号を変更しないようにするためには、連結ユニットにはユニット番号を付与しないことが望ましい。
【００９４】
図３２はＧＵＩの一例を示す図である。この例は、第２バスＢ２のみに対応している旧型の基本ユニットＢ１、拡張ユニットｂ１および拡張ユニットｂ２を含むＰＬＣ２について、基本ユニットのみを新型の基本ユニットＡ１に交換する例を示している。ポインタによって基本ユニットＢ１が選択されると、ＣＰＵ２４は、基本ユニットＢ１と置換可能な基本ユニットの一覧であるＣＰＵ機種リスト６５を表示部７に表示させる。ＣＰＵ機種リスト６５から基本ユニットＡ１が選択され、レイアウトエリア６７にドロップされると、ＣＰＵ２４は、基本ユニットＢ１を基本ユニットＡ１に置換する。さらに、ＣＰＵ２４は、基本ユニットＡ１と拡張ユニットｂ１とを連結するための連結ユニットを、基本ユニットＡ１と拡張ユニットｂ１との間に配置する。
【００９５】
基本ユニットＢ１に対して拡張ユニットｂ１および拡張ユニットｂ２が接続されているときは、拡張ユニットｂ１にユニット番号として１番が付与され、拡張ユニットｂ２には２番が付与される。基本ユニットＢ１が基本ユニットＡ１に変更されても、ＣＰＵ２４は、連結ユニットにはユニット番号を付与しないことで、拡張ユニットｂ１のユニット番号と拡張ユニットｂ２のユニット番号をそのまま維持する。
【００９６】
図３３は図３２のレイアウトに対応したラダープログラムの一例を示している。このラダープログラムは、基本ユニットＢ１、拡張ユニットｂ１および拡張ユニットｂ２を含む旧型のＰＬＣ２用のものであるが、基本ユニットＢ１が基本ユニットＡ１に置換された新型のＰＬＣ２にも使用できる。ＣＰＵ２４は、拡張ユニットに付与されているユニット番号をそのまま維持するため、ユーザは、ラダープログラムにおけるユニット番号（図中の＃２や＃１）を変更せずに済む。さらに、ＣＰＵ２４は、ラダープログラム中のリレー番号もそのまま維持する。これは、ＣＰＵ２４が拡張ユニットにはリレーを割り付ける（リレー番号を付与する）が、連結ユニットにはリレーを割り付けないためである。よって、基本ユニットを交換しても、ユーザは、交換前のＰＬＣ用に作成したラダープログラムにおけるユニット番号やリレー番号を変更せずに済むようになる。
【００９７】
図３４はプログラム作成支援装置１によって実現される機能を示すブロック図である。ＣＰＵ２４はＲＯＭなどの記憶装置に記憶されているプログラムを実行することで以下の機能を実現する。
【００９８】
メモリ２５には上述したＣＰＵ機種リスト６５と拡張ユニットリスト６６とが記憶されている。ＣＰＵ機種リスト６５には、基本ユニットの機種名、型名、説明、バスの種別、関連付けられている拡張ユニットリストの識別情報などが記憶されている。拡張ユニットリスト６６は、拡張ユニットの機種名、型名、説明、バスの種別などが記載されている。
【００９９】
図３５はユニットレイアウト処理の一例を示すフローチャートである。このフローチャートを参照しながら、ＣＰＵ２４によって実現される機能について説明する。
【０１００】
Ｓ１０でＣＰＵ２４は表示部７にユーザインタフェースを表示する。たとえば、識別情報表示部７１は、ＣＰＵ機種リスト６５を読み出して表示部７に表示する。なお、メモリ２５に記憶されているＣＰＵ機種リスト６５の情報をすべて表示してもよいが、機種名など、ユーザがその機種を観念しやすいような情報が表示されれば十分であろう。
【０１０１】
Ｓ１１で、ＣＰＵ２４はＣＰＵ機種リスト６５から基本ユニットを選択してレイアウトエリア６７に配置する。たとえば、選択部７２は操作部８を通じて選択が指示されたとき（表示部７のＣＰＵ機種リスト６５においていずれかの基本ユニットに対してクリックされたとき）のポインタ６４の表示位置に対して、ＣＰＵ機種リスト６５における基本ユニットの表示位置のうち最も近いものを選択する。指定部７５はポインタ６４によるドラッグアンドドロップ操作に応じて、選択部７２により選択された基本ユニットの配置位置を指定する。決定部７３は、指定部７５により指定された配置位置の情報に基づき、レイアウトエリア６７における基本ユニットの配置位置を指定する。通常、決定部７３は、レイアウトエリア６７の左端に基本ユニットが配置されるよう配置位置を決定する。なお、基本ユニットに電力を供給する電源ユニットがレイアウトエリア６７に配置されるときは、決定部７３は、電源ユニットの右隣りに基本ユニットの配置位置を決定する。このように、基本ユニットの右隣りに拡張ユニットが配置されるＰＬＣではレイアウトエリア６７の左端に基本ユニットが配置される。また、基本ユニットの左隣りに拡張ユニットが配置されるＰＬＣではレイアウトエリア６７の右端に基本ユニットが配置される。基本ユニットの両隣りに拡張ユニットが配置されるＰＬＣではレイアウトエリア６７の中央に基本ユニットが配置されてもよい。配置位置表示部７４は、決定部７３により決定された配置位置にしたがって、基本ユニットの配置位置を、シンボル画像などを用いて表示する。なお、決定部７３は、レイアウト情報８０を作成し、レイアウト情報８０にどのユニットがどの配置位置に配置されているかを管理する。
【０１０２】
Ｓ１２でＣＰＵ２４は選択された基本ユニットに関連付けられている拡張ユニットリスト６６をメモリ２５から読み出して表示部７に表示する。たとえば、識別情報表示部７１は、第１バスＢ１に接続可能な１つ以上の第１拡張ユニットの識別情報と、第２バスに接続可能な１つ以上の第２拡張ユニットの識別情報とを含む拡張ユニットリスト６６を表示部７に表示する。
【０１０３】
Ｓ１３でＣＰＵ２４は拡張ユニットを選択し、その配置位置を指定する。たとえば、選択部７２は、識別情報表示部７１によって表示された拡張ユニットリスト６６から操作部８の選択操作（例：左クリックなど）にしたがって拡張ユニットの識別情報を選択する。指定部７５はポインタ６４によるドラッグアンドドロップ操作に応じて、選択部７２により選択された拡張ユニットの配置位置を指定する。
【０１０４】
Ｓ１３でＣＰＵ２４は指定された配置位置に、選択部７２により選択された拡張ユニットを配置可能かどうかを判定する。決定部７３は、ドロップ位置の近傍にすでに配置されているユニットの種別を判別し、選択部７２により選択された拡張ユニットを配置可能かどうかを判定する。たとえば、決定部７３は、レイアウトエリア６７において第１拡張ユニット（例：拡張ユニットａ１、ａ２）の配置位置を連結ユニットよりも基本ユニットＡ１に対して近い側（例：連結ユニットの左側）に制限したり、第２拡張ユニット（例：拡張ユニットｂ１、ｂ２）の配置位置を連結ユニットよりも基本ユニットに対して遠い側（例：連結ユニットの右側）に制限したりしてもよい。図３１に示したようなレイアウトエリア６７では、基本ユニットが上端に表示される。そのため、決定部７３は、レイアウトエリア６７における第１拡張ユニットの配置位置を連結ユニットよりも上側に制限したり、第２拡張ユニットの配置位置を連結ユニットよりも下側に制限したりしてもよい。このように決定部７３は基本ユニットや拡張ユニットの種別に応じて配置位置を制限する。決定部７３は、拡張ユニットのドロップ位置がその拡張ユニットの配置を禁止された位置であると判定すると、Ｓ１５に進む。
【０１０５】
Ｓ１５でＣＰＵ２４（警告出力部７６）は、警告を出力する。この警告は、配置が制限ないしは禁止されていることを示す音、視覚情報（例：警告メッセージ６９）などである。その後、Ｓ１３に戻る。
【０１０６】
一方で、Ｓ１４で決定部７３は、拡張ユニットのドロップ位置がその拡張ユニットの配置を制限されていない位置であると判定すると、Ｓ１６に進む。
【０１０７】
Ｓ１６でＣＰＵ２４は選択された拡張ユニットが連結ユニットを必要とする拡張ユニットかどうかを判定する。決定部７３は、選択された拡張ユニットの識別情報や種別に基づき、連結ユニットを必要かどうかを判定する。連結ユニットが不要であればＳ１９に進む。Ｓ１９で、決定部７３は、ドロップ位置に最も近い配置可能な位置を拡張ユニットの配置位置として決定する。配置位置表示部７４はレイアウトエリア６７において決定された配置位置に拡張ユニットのシンボル画像を表示する。決定部７３は、拡張ユニットの識別情報と、その配置位置をレイアウト情報８０に追加する。一方で、連結ユニットが必要と判定すると、Ｓ１７に進む。
【０１０８】
Ｓ１７でＣＰＵ２４（決定部７３）は、レイアウト情報８０を参照し、レイアウトエリア６７に連結ユニットがすでに配置されて表示されているかどうかを判定する。連結ユニットがすでに配置されていれば、レイアウトエリア６７に連結ユニットを追加する必要はない。この場合は、Ｓ１９に進む。Ｓ１９で決定部７３は、決定部７３は、ドロップ位置に最も近い配置可能な位置を拡張ユニットの配置位置として決定する。配置位置表示部７４はレイアウトエリア６７において決定された配置位置に拡張ユニットのシンボル画像を表示する。
【０１０９】
Ｓ１８でＣＰＵ２４（決定部７３）は、レイアウトエリア６７に連結ユニットを追加する。図２９に示したように、基本ユニットＡ１に対してまだ何も接続されていない状態で拡張ユニットｂ１が選択されると、決定部７３は、基本ユニットＡ１の隣に連結ユニットが配置されるよう連結ユニットの配置位置を決定し、レイアウト情報８０に登録する。図２８に示したように、基本ユニットＡ１に対して拡張ユニットａ１が接続されている状態で拡張ユニットｂ１が選択されると、決定部７３は、拡張ユニットｂ１の隣であって基本ユニットＡ１に対して近い側の隣に連結ユニットが配置され、かつ、最も右に位置する拡張ユニットａ１の右隣りに連結ユニットが配置されるよう連結ユニットの配置位置を決定し、レイアウト情報８０に登録する。つまり、選択された拡張ユニットｂ１と最も右に位置する拡張ユニットａ１の間に連結ユニットが配置されるよう連結ユニットの配置位置が決定される。このように、配置位置表示部７４は、連結ユニットがレイアウトエリア６７に表示されていないときに第２拡張ユニット（拡張ユニットｂ１）の識別情報が選択されると、当該第２拡張ユニットの隣であって基本ユニットに対して近い側の隣に連結ユニットを表示する。Ｓ１９でＣＰＵ２４（決定部７３）は、連結ユニットの右隣り拡張ユニットが配置されるよう拡張ユニットの配置位置を決定し、レイアウト情報８０を更新する。配置位置表示部７４は、決定部７３により決定された拡張ユニット（拡張ユニットｂ１）の配置位置にしたがって、拡張ユニットのシンボル画像をレイアウトエリア６７に表示する。
【０１１０】
ところで、ユニット番号付与部７７は、ユーザプログラム（ラダープログラム）上で拡張ユニットの配置位置を識別するためのユニット番号を、配置位置表示部７４によりレイアウトエリア６７に表示された拡張ユニットの配置位置に応じて付与する。図３２を用いて説明したように、基本ユニットのみを更新するときは、拡張ユニットのユニット番号を変更せずにそのまま維持する。これは、連結ユニットに対してはユニット番号を付与せず、拡張ユニットにユニット番号を付与することで実現される。
【０１１１】
なお、ユニット番号付与部７７は、基本ユニットと第２拡張ユニットとの間に第１拡張ユニットが挿入されたり、基本ユニットと第２拡張ユニットとの間に連結されていた第１拡張ユニットが削除されたりしても第２拡張ユニットのユニット番号を変更せずに維持してもよい。
【０１１２】
リレー割り付け部７８は、第１拡張ユニットおよび第２拡張ユニットにはユーザプログラム上でリレーを割り付け、連結ユニットにはリレーを割り付けないように動作してもよい。図３３を用いて説明したように、基本ユニットが更新されるときに、リレー割り付け部７８は、第２拡張ユニットに関連したリレーに割り付けられるリレー番号を変更せずに維持してもよい。これにより、基本ユニットを変更しても、それまで使用していたラダープログラムにおけるユニット番号やリレー番号を変更せずに済むといった利点が得られる。
【０１１３】
＜まとめ＞
以上説明したように、ＰＬＣ２は、基本ユニット３の機能を拡張するための第１拡張ユニット４ａおよび第２拡張ユニット４ｂと、ユーザプログラム上で第１拡張ユニット４ａの内部処理に関して割り付けられるデバイスの情報を基本ユニット３と第１拡張ユニット４ａの間で通信するための第１バス（例：Ｂ１またはＢ３）と、第１バスと特性が異なるとともに、ユーザプログラム上で第２拡張ユニット４ｂの内部処理に関して割り付けられるデバイスの情報を基本ユニット３と第２拡張ユニット４ｂの間で通信するための第２バスＢ２と、第１バスの通信信号と第２バスの通信信号とを相互に変換するバス変換ユニット（例：連結ユニット１５）とを有している。なお、また、第１バス（例：Ｂ１またはＢ３）は、基本ユニット３ａに対して１つ以上の第１拡張ユニット４ａを接続するかまたは当該第１拡張ユニット４ａを通過するバスであってもよい。第２バスＢ２は、第１拡張ユニット４ａとは異なる１つ以上の第２拡張ユニット４ｂが接続されるバスであってもよい。なお、バス変換ユニット（例：連結ユニット１５）は、第１バスと第２バスとの間に直接的に接続されていなくてもよい。基本ユニット３は、第１バス、バス変換ユニットおよび第２バスを介して第２拡張ユニットと通信する。このように、バス変換ユニットを設けることで、種類の異なるバスを備えた基本ユニットと拡張ユニットであっても接続可能となる。
【０１１４】
図９などを用いて説明したように、バス変換ユニットである連結ユニット１５の第一側面側（例：左側）に基本ユニット３ａおよび第１拡張ユニット４ａが配置される。また、バス変換ユニットの第二側面側（例：右側）に第２拡張ユニット４ｂが配置されてもよい。これにより基本ユニット３ａを端部に配置して第１拡張ユニット４ａや第２拡張ユニット４ｂをシリーズ接続することが可能となる。上述したように、基本ユニットの左側に種類の異なる複数の拡張ユニットがシリーズに接続されてもよい。
【０１１５】
図９などに示したように、基本ユニット３ａには第１拡張ユニット４ａが連結され、基本ユニット３ａに連結された第１拡張ユニット４ａまたは当該第１拡張ユニット４ａに連結された他の第１拡張ユニット４ａにはバス変換ユニットである連結ユニット１５が連結されてもよい。さらに、連結ユニット１５には第２拡張ユニット４ｂが連結される。
【０１１６】
図１０ないし図１３などを用いて説明したように、基本ユニット３ａの側面には第１のタイプのコネクタ（例：雌型のコネクタＣ１）が設けられており、第１拡張ユニット４ａおよび連結ユニット１５の一方の側面には第１のタイプのコネクタと雌雄をなす第２のタイプのコネクタ（例：雄型のコネクタＣ１）が設けられてもよい。また、第１拡張ユニット４ａの他方の側面には第１のタイプのコネクタ（例：雌型のコネクタＣ１）が設けられてもよい。連結ユニット１５の他方の側面には第３のタイプのコネクタ（例：雌型のコネクタＣ２）が設けられてもよい。第２拡張ユニット４ｂの一方の側面には第３のタイプのコネクタと雌雄をなす第４のタイプのコネクタ（例：雄型のコネクタＣ２）が設けられてもよい。同様に、第２拡張ユニット４ｂの他方の側面には第３のタイプのコネクタ（例：雌型のコネクタＣ２）が設けられてもよい。とりわけ、第１バスＢ１は雌型のコネクタＣ１および雄型のコネクタＣ１を介して基本ユニット３ａから連結ユニット１５まで延在している。同様に、第２バスＢ２は雌型のコネクタＣ２および雄型のコネクタＣ２を介して連結ユニット１５から第２拡張ユニット４ｂまで延在している。このように連結ユニット１５は、第１バス用のコネクタＣ１を有するとともに、第２バス用のコネクタＣ２を有するため、連結ユニット１５において第１バスと第２バスとを変換してもよい。
【０１１７】
上述したように、ＰＬＣ２は、ベースフレームを有しないベースレスかつビルディングタイプのシステムであるが、基本ユニット３ａ、第１拡張ユニット４ａ、連結ユニット１５および第２拡張ユニット４ｂなどを固定するベースフレームをさらに有していてもよい。ベースフレームタイプのシステムであってもユニット間の連結が必要となることがあり、本発明は有用であろう。
【０１１８】
図６（Ｂ）や図１０などを用いて説明したように、基本ユニット３ａ、第１拡張ユニット４ａ、連結ユニット１５および第２拡張ユニット４ｂの各背面には、基準レール１３に取り付けるための取付け部（４ａｇ、４ｂｇ、１５ｇ）が設けられていてもよい。これにより、基本ユニット３ａ、第１拡張ユニット４ａ、連結ユニット１５および第２拡張ユニット４ｂが連結された状態で、基準レール１３を取り付けることが可能となる。また、これにより、工場等の制御盤にＰＬＣ２を固定しやすくなる。
【０１１９】
第１バスＢ１の信号転送速度は第２バスＢ２の信号転送速度よりも高速であってもよい。バスの通信速度は年々高速になっており、高速バスに対応した新しいＰＬＣの需要がある。その一方で、旧型の低速バスに対応した拡張ユニットも新しいＰＬＣに接続できれば、過渡期におけるユーザの負担を軽減できるであろう。本実施の形態ではバス変換ユニットである連結ユニット１５を提供することで、基本ユニット３ａや拡張ユニット４ａの高速化を実現しつつ、拡張ユニット４ｂもこれらに連結できるため、ユーザは既存の資産を有効に活用できるであろう。
【０１２０】
第１バスＢ１（第３バスＢ３）は、たとえば、シリアル転送を実行するバスであってもよい。第２バスＢ２はパラレル転送を実行するバスであってもよい。この場合、バス変換ユニットはシリアル／パラレル変換を実行することになろう。このように、連結ユニット１５は、連結面の違いを吸収するだけでなく、通信方式の違いを吸収することで、異種のバスを有する複数の拡張ユニットの混在を可能としている。
【０１２１】
図１７や図２０などを用いて説明したように、連結ユニット１５は、第２バスＢ２の通信を制御するバスマスタ（例：第２バス通信部５９）を有していてもよい。これにより、基本ユニット３ａには、第２バスＢ２用のバスマスタを搭載する必要がない。また、バス変換部５８によってプロトコル変換等を実装しやすくなる。
【０１２２】
図１０などを用いて説明したように、連結ユニット１５の第一側面には、当該第一側面に係合する基本ユニット３ａまたは第１拡張ユニット４ａを固定するロック機構が設けられてもよい。また、連結ユニット１５の第二側面には、当該第二側面に係合する第２拡張ユニット４ｂを固定するロック機構が設けられてもよい。これにより連結ユニット１５に対する拡張ユニットの固定をより強固にすることが可能となる。
【０１２３】
図１６や図１９などを用いて説明したように、基本ユニット３ａには、第１バスＢ１で実行される通信を制御する第１バス制御手段（例：第１バス通信部５０）が設けられてもよい。連結ユニット１５は、第２バスＢ２で実行される通信を制御する第２バス制御手段（例：第２バス通信部５９）が設けられてもよい。さらに、第１バスＢ１に接続されている第１拡張ユニット４ａと第２バスＢ２に接続されている第２拡張ユニット４ｂとの接続情報を管理する管理手段として、ユニット管理テーブル４９が設けられてもよい。さらに、管理手段により管理されている接続情報にしたがって第１バス制御手段または第２バス制御手段を通じて制御対象となっている拡張ユニットと通信する第３制御手段として、バスマスタ制御部４８が設けられてもよい。上述したように、第２バスＢ２が基本ユニット３ａに対して接続されていない場合、基本ユニット３ａは、何からの手段を通じて第２バスＢ２に接続されている拡張ユニット４ｂを管理して通信しなければならない。本実施の形態では、ユニット管理テーブル４９を用いて、拡張ユニット４ｂの接続情報を管理することができ、ユニット管理テーブル４９を参照することで拡張ユニット４ｂと通信することが可能となる。
【０１２４】
また、連結ユニット１５は、第１バス（Ｂ１またはＢ３）、第２バスＢ２、第１バスと第２バスとの間に接続され、第１バスの通信信号と第２バスの通信信号とを相互に変換する変換手段（例：バス変換部５８）を有してもよい。上述したように、バス変換部５８は、基本ユニット３ａから第１バスを介して受信した信号を変換して第２バスを介して第２拡張ユニット４ｂへ転送し、第２拡張ユニット４ｂから第２バスＢ２を介して受信した信号を変換して第１バスを介して基本ユニット３ａに転送してもよい。このような連結ユニット１５を提供することで、異種のバスを必要とする複数の拡張ユニットを接続できるようになる。
【０１２５】
図１１（Ｂ）や図１６、図１７を用いて説明したように、ＰＬＣ２は、基本ユニット３ａ、第１バスＢ１、第２バスＢ２、基本ユニット３ａから第１拡張ユニット４ａを介して延在する第３バスＢ３、および、第３バスＢ３と第２バスＢ２との間に接続され、第３バスＢ３の通信信号と第２バスＢ２の通信信号とを相互に変換するバス変換ユニット（例：連結ユニット１５）を有していてもよい。この場合、基本ユニット３ａは、第３バスＢ３、連結ユニット１５および第２バスＢ２を介して第２拡張ユニット４ｂと通信してもよい。この場合、第１バスＢ１は、第２バスＢ２を中継する必要がないため、第２バスＢ２の影響を受けないようになろう。つまり、拡張ユニット４ａは、拡張ユニット４ｂの影響を受けずに、第１バスＢ１の通信帯域を享受できるようになろう。
【０１２６】
なお、バス変換部５８は、基本ユニット３ａから第３バスＢ３を介して受信した信号を変換して第２バスＢ２を介して第２拡張ユニット４ｂへ転送してもよい。同様に、バス変換部５８は、第２拡張ユニット４ｂから第２バスＢ２を介して受信した信号を変換して第３バスＢ３を介して基本ユニット３ａに転送してもよい。これにより、基本ユニット３ａと拡張ユニット４ｂは、第２バスＢ２および第３バスＢ３を介して通信することが可能となる。
【０１２７】
図１５や図１８などを用いて説明したように、連結ユニット１５は、電気的なバス変換ユニットを備えなくてもよい。基本ユニット３ａに対して第１バスを介して接続可能であって、他の第１拡張ユニットと接続可能に構成される第１拡張ユニット４ａと、少なくとも第２バスを介して基本ユニット３ａと接続可能であって、他の第２拡張ユニットと接続可能に構成される第２拡張ユニット４ｂとを有するＰＬＣにおいて、連結ユニット１５は、基本ユニット３ａの側面または基本ユニット３ａに接続された第１拡張ユニットの側面に対応する第１側面と、第２拡張ユニット４ｂの側面に連結される第２側面とを有する変換ユニットとして機能する。このような変換ユニットを採用することで、種類の異なる連結面を備えたユニットであってもプログラマブル・ロジック・コントローラとして一体感を持たせることが可能となる。なお、連結ユニット１５の第１側面は第１拡張ユニットの側面に対応していれば十分であり、これらは必ずしも連結されていなくてもよい。図１２（Ａ）に示すように、連結ユニット１５の一種であるバス延長ユニット１５ａ、１５ｂを用いる場合、第１拡張ユニット４ａと延長ユニット１５ｂとは連結されていてもよいし、連結されてなくてもよい。バス延長ユニット１５ａ、１５ｂを用いることで、基本ユニット３ａと第２拡張ユニット４ｂが通信可能となり、プログラマブル・ロジック・コントローラとして一体感を持たせることが可能となるからである。拡張ユニット４ａの側面と第１側面（左側面１５Ｌ）とは対応関係にある。たとえば、拡張ユニット４ａの側面と第１側面において、幅方向の大きさ（奥行き）を略同一にしてもよいし、上下方向の大きさを略同一にしてもよいし、これら両方を略同一にしてもよい。要するに、基本ユニット３ａ、拡張ユニット４ａ、連結ユニット１５、拡張ユニット４ｂがＤＩＮレール等の基準レールに取り付けられたとき、一体的な構成となるような対応関係があればよい。
【０１２８】
また、連結ユニット１５は、基本ユニット３ａの側面（例：雌型／雄型の連結面）または基本ユニット３ａに接続された第１拡張ユニット４ａの側面（例：雌型／雄型の連結面）に連結される第１側面（例：雄型／雌型の連結面）と、第２拡張ユニット４ｂの側面（例：雄型／雌型の連結面）とに連結される第２側面（例：雌型／雄型の連結面）とを有する連結面変換ユニットとして機能してもよい。これにより、連結面の異なる異種のユニットであっても相互に連結することが可能となる。さらには、種類の異なる連結面を備えたユニットであっても相互に連結して、ビルディングタイプのＰＬＣを実現でき、省スペース化の点で有利なＰＬＣを実現できる。また、連結面の異なる既存のユニットと新規のユニットとを連結できるようになるため、既存の資産の有効活用も図れるであろう。
【０１２９】
図１０などを用いて説明したように、連結ユニット１５の第１側面の凹凸形状は、基本ユニット３ａおよび第１拡張ユニット４ａの側面の凹凸形状に対応した形状である。また、連結ユニット１５の第２側面の凹凸形状は、第２拡張ユニット４ｂの側面の凹凸形状に対応した形状である。これにより、基本ユニット３ａおよび第１拡張ユニット４ａの側面の凹凸形状と、第２拡張ユニット４ｂの側面の凹凸形状との違いを吸収して、両者を連結してもよい。
【０１３０】
図１５や図１８などを用いて説明したように、連結ユニット１５は、第２バスＢ２に接続され、基本ユニット３ａと第２拡張ユニット４ｂとの間で送受信される通信信号を中継する中継手段（例：配線、第２バス延長部６０、６１、通信ケーブル６３など）を有していてもよい。この場合、基本ユニット３ａは、中継手段および第２バスＢ２を介して第２拡張ユニット４ｂと通信することが可能となる。
【０１３１】
もちろん、図１７や図２０を用いて説明したように、第１バスの通信信号と第２バスの通信信号とを相互に変換するバス変換部５８も中継手段の一例である。このようにバス変換部５８を採用すれば、第２バス延長部６０、６１、通信ケーブル６３などを省略できるようになる。通信ケーブル６３がＰＬＣ２の外部に配線される場合、通信ケーブル６３の損傷や抜けの可能性があり、新たなエラー要因となる。よって、ＰＬＣ２の外部に配線されるケーブルの数を削減することは、エラー要因を少なくすることにつながり、ＰＬＣ２の動作の安定性をもたらすであろう。
【０１３２】
通信ケーブル６３は、第２バスＢ２の通信信号を基本ユニット３ａへ中継するための中継手段として機能してもよい。この場合、拡張ユニット４ａには、第２バスＢ２を中継するための配線等が不要となるため、拡張ユニット４ａのコストを削減できるようになろう。
【０１３３】
図１５を用いて説明したように、第２バスＢ２は連結ユニット１５および第１拡張ユニット４ａを通過して基本ユニット３ａまで延在していてもよい。この場合、連結ユニット１５は、バス変換機能やコネクタＣ５などを備える必要がないため、連結ユニット１５のコストを削減できるようになる。
【０１３４】
上述したように連結ユニット１５は、基本ユニット３ａの側面または基本ユニット３ａに対して第１バスＢ１を介して接続される第１拡張ユニット４ａの側面に連結される第１側面と、少なくとも第２バスＢ２を介して基本ユニット３ａと接続される第２拡張ユニット４ｂの側面に連結される第２側面とを有していればよい。これにより、連結面の互換性がない複数のユニットであっても連結できるようになる。
【０１３５】
図２７などを用いて説明したように、本実施形態によれば、基本ユニット３ａ、第１拡張ユニット４ａおよび第２拡張ユニット４ｂの配置に関するユニット構成情報を設定する設定支援装置が提供される。拡張ユニットリスト６６や識別情報表示部７１は、第１バスＢ１に接続可能な１つ以上の第１拡張ユニット４ａの識別情報と、第２バスＢ２に接続可能な１つ以上の第２拡張ユニット４ｂの識別情報とを表示する識別情報表示手段として機能する。また、ポインタ６４や選択部７２は、拡張ユニットリスト６６に表示された識別情報を選択する選択手段として機能する。決定部７３は、第１拡張ユニット４ａと第２拡張ユニット４ｂとのうちポインタ６４や選択部７２により選択された識別情報に対応する拡張ユニット４の配置位置を決定する。レイアウトエリア６７や配置位置表示部７４は、決定された配置位置にしたがって、基本ユニット３を基準として第１拡張ユニット４ａと第２拡張ユニット４ｂとの配置位置を表示する配置位置表示手段として機能する。図３０などを用いて説明したように、決定部７３は、選択された識別情報に応じて、この識別情報に対応する拡張ユニット４の配置位置を制限する。これにより、ユーザが拡張ユニットを適切な位置に配置する作業を容易に実行できるようになろう。
【０１３６】
図３０などを用いて説明したように、決定部７３は、レイアウトエリア６７における第１拡張ユニット４ａの配置位置を連結ユニット１５よりも基本ユニット３ａに対して近い側に制限してもよい。上述したように、第１拡張ユニット４ａは基本ユニット３ａや第１の拡張ユニット４ａには接続できるが、第２拡張ユニット４ｂには接続できない。これは連結面が異なるからである。また、決定部７３は、第２拡張ユニット４ｂの配置位置を連結ユニット１５よりも基本ユニット３ａに対して遠い側に制限してもよい。これは、第２拡張ユニット４ｂは第１拡張ユニット４ａや基本ユニット３ａに直接接続できず、連結ユニット１５を介してしかこれらに接続できないからである。よって、連結面の制約に応じて、レイアウトエリア６７においてもシンボル画像の配置を制限することで、連結面の制約に適合した状態でレイアウトエリア６７に各ユニットを配置できるようになる。
【０１３７】
配置位置表示部７４は基本ユニット３ａをレイアウトエリア６７の左端に表示してもよい。決定部７３は、配置位置表示部７４における第１拡張ユニット４ａの配置位置を連結ユニット１５よりも左側に制限してもよい。また、決定部７３は、第２拡張ユニット４ｂの配置位置を連結ユニット１５よりも右側に制限してもよい。このように基本ユニット３ａの右側に拡張ユニット４ａ、４ｂをシリーズ接続する場合には、レイアウトエリア６７において同様の制約を課すことで、ユーザにとって容易かつ適切に拡張ユニット４ａ、４ｂを配置できるようになろう。
【０１３８】
図３１を用いて説明したように、配置位置表示部７４は、基本ユニットを上端に表示してもよい。この場合、決定部７３は、レイアウトエリア６７における第１拡張ユニット４ａの配置位置を連結ユニット１５よりも上側に制限するとともに、第２拡張ユニット４ｂの配置位置を連結ユニット１５よりも下側に制限してもよい。このように実際の連結方向と、レイアウトエリア６７における連結方向とは必ずしも一致する必要はない。これにより、レイアウトエリア６７を含むＧＵＩをより簡素なものにすることが可能となる。
【０１３９】
図３２を用いて説明したように、配置位置表示部７４は、連結ユニット１５がレイアウトエリア６７に表示されていないときに第２拡張ユニット４ｂの識別情報が選択されると、第２拡張ユニット４ｂの隣であって基本ユニット３ａに対して近い側の隣に連結ユニット１５を表示してもよい。このように、連結ユニット１５を自動で挿入することで、ユーザが自ら連結ユニット１５を挿入する手間を省けるようになる。
【０１４０】
ポインタ６４や指定部７５は、レイアウトエリア６７において、選択された識別情報に対応する拡張ユニットの配置位置を指定する指定手段として機能する。また、警告出力部７６や表示部７は、指定された拡張ユニットの配置位置が配置を禁止された位置である場合に、警告を出力してもよい。これにより、ユーザは、各拡張ユニットごとの配置位置の制限を認識しやすくなるであろう。
【０１４１】
図３３を用いて説明したように、ユニット番号付与部７７は、ユーザプログラム上で第２拡張ユニット４ｂの配置位置を識別するためのユニット番号を、レイアウトエリア６７に表示された第２拡張ユニットの配置位置に応じて付与する付与手段として機能する。ユニット番号付与部７７は、基本ユニット３ａと第２拡張ユニット４ｂとの間に追加される連結ユニット１５にはユニット番号を付与しないことで、ユーザプログラム上での第２拡張ユニット４ｂのユニット番号を維持する。これにより、ユーザは、従前の基本ユニット用に作成されたラダープログラムを別の基本ユニットにおいても流用しやすくなろう。
【０１４２】
図３３を用いて説明したように、割り付け部７８は、第２拡張ユニット４ｂにはユーザプログラム上でリレーを割り付け、連結ユニット１５にはリレーを割り付けないリレー割り付け手段として機能してもよい。これにより、ユーザは、従前の基本ユニット用に作成されたラダープログラムを別の基本ユニットにおいても流用しやすくなろう。
【０１４３】
図２６ないし図３２を用いて説明したように、配置位置表示部７４は、基本ユニット３、第１拡張ユニット４ａおよび第２拡張ユニット４ｂをシンボル画像または文字情報で表示してもよい。シンボル画像を視認することで、ユーザは、実際のユニットを視覚的に理解しやすくなろう。図３１に示したように、ユニットを文字情報で表示することで、ＧＵＩをシンプルにすることが可能となろう。
【図１】
0006483998.tif 000002
【図２】
0006483998.tif 000003
【図３】
0006483998.tif 000004
【図４】
0006483998.tif 000005
【図５】
0006483998.tif 000006
【図６】
0006483998.tif 000007
【図７】
0006483998.tif 000008
【図８】
0006483998.tif 000009
【図９】
0006483998.tif 000010
【図１０】
0006483998.tif 000011
【図１１】
0006483998.tif 000012
【図１２】
0006483998.tif 000013
【図１３】
0006483998.tif 000014
【図１４】
0006483998.tif 000015
【図１５】
0006483998.tif 000016
【図１６】
0006483998.tif 000017
【図１７】
0006483998.tif 000018
【図１８】
0006483998.tif 000019
【図１９】
0006483998.tif 000020
【図２０】
0006483998.tif 000021
【図２１】
0006483998.tif 000022
【図２２】
0006483998.tif 000023
【図２３】
0006483998.tif 000024
【図２４】
0006483998.tif 000025
【図２５】
0006483998.tif 000026
【図２６】
0006483998.tif 000027
【図２７】
0006483998.tif 000028
【図２８】
0006483998.tif 000029
【図２９】
0006483998.tif 000030
【図３０】
0006483998.tif 000031
【図３１】
0006483998.tif 000032
【図３２】
0006483998.tif 000033
【図３３】
0006483998.tif 000034
【図３４】
0006483998.tif 000035
【図３５】
0006483998.tif 000036