(57)【要約】【課題】  ユニットのツールレスオンライン脱着が可能であり、しかもユニット脱の判定に際するシステムプログラム側の処理負担を軽減することが可能なプログラマブル・コントローラを提供すること。【解決手段】  ＣＰＵユニット（２）がいずれかのコネクタ（１３ａ〜１３ｄ）を介して機能ユニットにアクセスした際に異常レスポンスが検出されたときには、そのコネクタに関する内部レジスタ（１２）の記憶内容を参照すると共に、その記憶内容が「ユニット脱状態」であると判定されたときには、ユニット取り外し時に必要とされる処理を実行する。【選択図】  図１
2008097369.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵユニットと、複数の機能ユニットとが、Ｉ／Ｏバスを介して互いに接続され、かつ各機能ユニットのそれぞれは、コネクタを介してＩ／Ｏバスに対して取り付け、取り外し可能とされ、さらにＣＰＵユニットが必要に応じてＩ／Ｏバスを介して各機能ユニットにアクセスすることにより、その機能ユニットに関する機能が実現されるようにしたＰＬＣであって、
コネクタ別の記憶領域を有すると共に、いずれかのコネクタに関して機能ユニットの取り外し操作が行われるのに連動して、そのコネクタに関する記憶領域には第１の状態が記憶され、かついずれかのコネクタに関して機能ユニットの取り付け操作が行われるのに連動して、そのコネクタに関する記憶領域には第２の状態が記憶される状態メモリと、
ＣＰＵユニットがいずれかのコネクタを介して機能ユニットにアクセスした際に異常レスポンスが検出されたときに、そのコネクタに関する状態メモリの記憶内容を参照すると共に、その記憶内容が第１の状態であると判定されたときには、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り外しを可能とするために、ユニット取り外し時に必要とされる処理を実行する一方、第２の状態であると判定されたときには、所定の通信異常時処理を実行する第１の制御手段と、
いずれかのコネクタに関して状態メモリの記憶内容が第１の状態から第２の状態へと変化したと判定されたときには、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り付けを可能とするために、ユニット取り付け時に必要とされる処理を実行する第２の制御手段とを具備する、ことを特徴とするＰＬＣ。
【請求項２】
第２の制御手段は、コネクタを介して機能ユニットから読み込まれたユニット識別情報に基づいて、ユニット交換前後においてユニット不一致と判定されるときには、ユニット取り付け時に必要とされる処理を実行しない、ことを特徴とする請求項１に記載のＰＬＣ。
【請求項３】
いずれかのコネクタに関して状態メモリの内容が第１の状態から第２の状態へと変化したと判定されたときに、そのコネクタを介して機能ユニットから読み込まれたユニット識別情報に基づいてユニット交換間違いの有無を判定する判定手段と、
判定手段による判定結果を、ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグの状態に反映させるフラグ制御手段とをさらに具備する、ことを特徴とする請求項１に記載のＰＬＣ。
【請求項４】
ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグには、オンライン交換に失敗したことを示すフラグが含まれている、ことを特徴とする請求項３に記載のＰＬＣ。
【請求項５】
ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグには、機能ユニットの種類を間違えたことを示すフラグが含まれている、ことを特徴とする請求項３に記載のＰＬＣ。
【請求項６】
ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグには、ユニット側の１の設定項目に関する設定を間違えたことを示すフラグが含まれている、ことを特徴とする請求項３に記載のＰＬＣ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ツールを使用することなく、ユニットのオンライン脱着を可能としたプログラマブル・コントローラ（以下、ＰＬＣと言う）に関する。
【背景技術】
【０００２】
ＣＰＵユニットと、複数の機能ユニットとが、Ｉ／Ｏバスを介して互いに接続され、かつ各機能ユニットのそれぞれが、コネクタを介してＩ／Ｏバスに対して取り付け、取り外し可能とされたＰＬＣは、従来より知られている。
【０００３】
ここで、機能ユニットとしては、例えば、Ｉ／Ｏユニット（ＩＮユニット、ＯＵＴユニット、及びＩＮ，ＯＵＴ混在ユニットを総称する）、通信ユニット（ＰＬＣ間通信ユニット、マスタ・スレーブ間通信ユニット、及び上位装置間通信ユニットを総称する）、特殊機能ユニット（温度調節ユニット、ＰＩＤ制御ユニット、モーションコントロールユニット、位置制御ユニット等々）等を挙げることができる。
【０００４】
斯かるＰＬＣにおいては、ＣＰＵユニットが必要に応じてＩ／Ｏバスを介して各機能ユニットにアクセスすることにより、その機能ユニットに関する機能が実現される。すなわち、機能ユニットがＩ／Ｏユニットであれば、ＣＰＵユニットがこれをアクセスすることにより、外部からの入力信号の取り込み機能や外部への出力信号の送出機能が実現される。また、機能ユニットが通信ユニットであれば、ＣＰＵがこれをアクセスすることにより、ＰＬＣ間通信機能、リモート子局間通信機能等々の機能が実現される。さらに、機能ユニットが特殊機能ユニットであれば、ＣＰＵがこれをアクセスすることにより、それぞれその特殊機能ユニットに固有の機能（温度調節機能、ＰＩＤ制御機能、モーションコントロール機能、位置制御機能等々）が実現される。
【０００５】
ＣＰＵユニットには、マイクロプロセッサとメモリとが組み込まれている。マイクロプロセッサは、メモリのシステムプログラム領域から読み出されたシステムプログラムにしたがって動作することにより、共通処理と、ユーザプログラム実行処理と、Ｉ／Ｏリフレッシュ処理と、周辺サービス処理とを繰り返し実行する。
【０００６】
共通処理においては、バッテリ異常チェック、Ｉ／Ｏバスのチェック、メモリのユーザプログラム記憶領域のチェック等の各種のハードウェアチェックが行われる。ユーザプログラム実行処理においては、メモリのユーザプログラム記憶領域から順次にユーザプログラムを構成する各命令語を読み出すと共に、メモリのＩ／Ｏデータ領域のＩ／Ｏデータを参照してこれを実行し、その実行結果により、メモリのＩ／Ｏデータ領域（特に、ＯＵＴデータ領域）の内容を書き換える処理が行われる。Ｉ／Ｏリフレッシュ処理においては、Ｉ／Ｏユニットを介して取り込まれたＩＮデータをメモリのＩ／Ｏデータ領域（特に、ＩＮデータ領域）に書き込む処理（ＩＮリフレッシュ処理）、及びメモリのＩ／Ｏデータ領域（特に、ＯＵＴデータ領域）から読み出されたＯＵＴデータをＩ／Ｏユニットへと送出する処理（ＯＵＴリフレッシュ処理）が行われる。
【０００７】
また、新規に作成された又は編集されたユーザプログラムをＣＰＵユニット内のメモリにアップロードしたり、同メモリからユーザプログラムをダウンロードしたり、さらには、ＰＬＣの各種の機能設定を行うための設定データをメモリの設定データ領域に書き込んだり、修正したりするためには、所定のツールが使用される。このツールは、一般に、パソコンにツールとしての機能を実現するためのアプリケーション・プログラムをインストールすることで実現され、ケーブルを介してＰＬＣにコネクタ接続される。
【０００８】
ところで、この種の複数の機能ユニットを含んで構成されるＰＬＣにおいては、故障した機能ユニットを交換するために、或いは、機能ユニットのメンテナンス等のために、入出力ユニットや通信ユニットや特殊機能ユニット等々の機能ユニットを、ＰＬＣの運転を継続したままで、取り外したり、取り付けたりすること（以下、「ユニットのオンライン脱着」と言う）を行いたいとする要望がある。
【０００９】
ＣＰＵユニット内のメモリに格納されたシステムプログラムには、所定の通信異常時処理が組み込まれている。この通信異常時処理は、いずれかのユニットに対するアクセス時に異常レスポンスが検出されると、ＰＬＣの運転を強制的に停止（以下、「システムダウン」と言う）させるように仕組まれている。
【００１０】
従来、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り外しを可能とするためには、ＰＬＣにケーブルを介して接続されたツールにより、ＣＰＵユニットのメモリ内の設定データを変更することで、ユニット取り外し時に必要とされる処理を実行させる一方、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り付けを可能とするためには、ＰＬＣにケーブルを介して接続されたツールにより、ＣＰＵユニットのメモリ内の設定データを変更することで、ユニット取り付け時に必要とされる処理を実行させる、と言う方法が採用されていた。
【００１１】
ここで、「ユニット取り外し時に必要とされる処理」としては、例えば、当該ユニットへのアクセスに際して異常レスポンスが発生してもシステムダウン機能が作動しなくなるようにすると共に、その後、当該ユニットが取り外されたコネクタに関しては、外部からの信号を一切受け付けないようにし、さらに、そのコネクタに関しては以後ＣＰＵユニットがアクセスを行わないようにする等の処理が挙げられる。一方、「ユニットを取り付け時に必要とされる処理」としては、例えば、ツール操作で設定データを変更して元の状態に戻すことで、当該コネクタからの信号の受け付けを可能とすると共に、当該ユニットへのアクセスを再開する等の処理が挙げられる。
【００１２】
しかしながら、このようなツールを使用することで、ユニットのオンライン脱着を可能とする従来方法にあっては、ユニットのオンライン脱着のたびに、ＰＬＣが据え付けられた生産現場等に、ツールとして機能するパソコンをその都度に持ち込まねばならないため、操作性乃至機動性に劣り、またユニットの脱着が行われるべきコネクタの指定はユーザのツール操作に委ねられているため、ユーザのコネクタ指定が誤れば、システムダウンを引き起こし兼ねないと言う問題点があった。
【００１３】
そこで、このような問題を解決するために、ツールを使用することなく（ツールレスで）、ユニットのオンライン脱着を可能としたＰＬＣも従来より知られている（特許文献１参照）。
【００１４】
このようなユニットのツールレス・オンライン脱着を可能としたＰＬＣにあっては、脱着対象となる機能ユニットのそれぞれの側には、ユニットの取り付け、取り外しに際して作動するスイッチが設けられ、ＣＰＵユニットの側には、上記の各スイッチのそれぞれと専用の信号線で結ばれると共に、各スイッチの作動により発生するオンオフ信号を記憶するコネクタ別の記憶領域を有する状態メモリが設けられる。別の例としては、上記のオンオフ信号により、マイクロプロセッサに割込をかけ、割込処理を介して状態メモリへのオンオフ信号の書き込みを行う。
【００１５】
すなわち、この状態メモリは、コネクタ別の記憶領域を有すると共に、いずれかのコネクタに関して機能ユニットの取り外し操作が行われるのに連動して、そのコネクタに関する記憶領域には第１の状態（ユニットが取り外された状態）が記憶され、かついずれかのコネクタに関して機能ユニットの取り付け操作が行われるのに連動して、そのコネクタに関する記憶領域には第２の状態（ユニットが取り付けられた状態）が記憶されることとなる。
【００１６】
一方、ＣＰＵユニット内のメモリに格納されるシステムプログラムの側には、脱着対象となるユニットのそれぞれをアクセスするに先立って、上記の状態メモリの内容を参照すると共に、その参照の結果として、取り付けられた状態から取り外された状態への変化（ユニット脱）が判定され、又は取り外された状態から取り付けられた状態への変化（ユニット着）が判定されたときには、それぞれユニットのオンライン脱着に必要な「ユニット取り外し時に必要な処理」又は「ユニットを取り付け時に必要とされる処理」を実行する機能が組み込まれている。
【００１７】
このような構成によれば、ユニットの取り外し操作又は取り付け操作が行われれば、状態メモリの記憶内容の変化に基づいて、ユニットのオンライン脱着に必要な処理が自動的に実行されるため、ツールを使用して設定データを操作せずとも、ユニットのオンライン脱着が可能となる。
【特許文献１】特開平５−２４１６２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、このようなユニットのツールレス・オンライン脱着を可能としたＰＬＣにあっては、状態メモリの記憶内容の変化のみを頼りとして、ユニットが取り付けられた状態から取り外された状態への変化（ユニット脱）を判定するようにしているため、脱着対象となる各ユニットのユニット脱を逃さず確実に判定するためには、コネクタを介して各ユニットにアクセスしようとするたびに、それに先立って、そのコネクタに対応する状態メモリの内容をその都度に参照せねばならず、システムプログラム側の処理負担が極めて大きいと言う問題点がある。すなわち、状態メモリの参照を１サイクルでも怠って、ユニット脱を見過ごしたまま、ユニットが取り外されたコネクタにアクセスしてしまえば、異常レスポンスの発生に応答して、システムダウン処理が起動されてしまうからである。
【００１９】
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、ユニットのツールレスオンライン脱着が可能であり、しかもユニット脱の判定に際するシステムプログラム側の処理負担を軽減することが可能なプログラマブル・コントローラを提供することにある。
【００２０】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００２１】
上述の課題は、つぎのような構成を有するＰＬＣにより実現することができる。すなわち、このＰＬＣは、ＣＰＵユニットと、複数の機能ユニットとが、Ｉ／Ｏバスを介して互いに接続され、かつ各機能ユニットのそれぞれは、コネクタを介してＩ／Ｏバスに対して取り付け、取り外し可能とされ、さらにＣＰＵユニットが必要に応じてＩ／Ｏバスを介して各機能ユニットにアクセスすることにより、その機能ユニットに関する機能が実現されるよう構成されている。
【００２２】
上記のＰＬＣには、さらに、状態メモリと、第１の制御手段と、第２の制御手段とが具備されている。
【００２３】
状態メモリは、コネクタ別の記憶領域を有すると共に、いずれかのコネクタに関して機能ユニットの取り外し操作が行われるのに連動して、そのコネクタに関する記憶領域には第１の状態が記憶され、かついずれかのコネクタに関して機能ユニットの取り付け操作が行われるのに連動して、そのコネクタに関する記憶領域には第２の状態が記憶されるように構成されている。
【００２４】
第１の制御手段は、ＣＰＵユニットがいずれかのコネクタを介して機能ユニットにアクセスした際に異常レスポンスが検出されたときに、そのコネクタに関する状態メモリの記憶内容を参照すると共に、その記憶内容が第１の状態であると判定されたときには、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り外しを可能とするために、ユニット取り外し時に必要な処理を実行する一方、第２の状態であると判定されたときには、所定の通信異常時処理を実行する。
【００２５】
第２の制御手段は、いずれかのコネクタに関して状態メモリの記憶内容が第１の状態から第２の状態へと変化したと判定されたときには、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り付けを可能とするために、ユニット取り付け時に必要な処理を実行する。
【００２６】
このような構成によれば、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り外しを可能とすること（ユニットのオンライン脱）に必要な処理については、ＣＰＵユニットがいずれかのコネクタを介して機能ユニットにアクセスした際に異常レスポンスが検出され、かつそのコネクタに関する状態メモリの記憶内容が第１の状態であると判定されたときに限り実行されることとなるため、状態メモリを参照する必要が生ずるのは、ユニットにアクセスした結果として異常レスポンスが検出されたときだけとなり、ＣＰＵユニットが各機能ユニットにアクセスするたびに、それに先立ち状態メモリの参照が必要とされた従来例に比べて、システムプログラム側の処理負担が大幅に軽減される。一方、いずれかの機能ユニットにアクセスした際に、Ｉ／Ｏバスの異常等の真の通信異常を原因とする異常レスポンスが発生したときには、状態メモリの記憶内容は第２の状態を示すことから、通信異常時処理が正常に実行されて、システムダウン等の必要処理が行われる。
【００２７】
なお、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り付けを可能とすること（ユニットのオンライン着）に必要な処理については、いずれかのコネクタに関して状態メモリの記憶内容が第１の状態から第２の状態へと変化したと判定されたときに実行されることとなる。当該ユニットに関する取り付け完了後の動作開始については、多少の遅れ時間は許容される。オンライン脱されたユニットに対してのみオンライン着されることを監視すれば良いため、システムプログラム側の処理負担が問題となることはない。
【００２８】
このようなＰＬＣにおいては、第２の制御手段は、そのコネクタを介して機能ユニットから読み込まれたユニット識別情報に基づいて、ユニット交換前後においてユニット不一致と判定されるときには、ユニット取り付け時に必要とされる処理を実行しない、ように構成してもよい。
【００２９】
このような構成によれば、オンラインでユニットを交換した際に、誤って、別の種類のユニットを装着したような場合には、そのユニットに関する運転は再開されないので、誤った種別のユニットが突然に参入することによる不測の事態を未然に防止することができる。
【００３０】
また、上記のＰＬＣにおいては、いずれかのコネクタに関して状態メモリの内容が第１の状態から第２の状態へと変化したと判定されたときに、そのコネクタを介して機能ユニットから読み込まれたユニット識別情報に基づいてユニット交換間違いの有無を判定する判定手段と、判定手段による判定結果を、ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグの状態に反映させるフラグ制御手段とをさらに備えてもよい。
【００３１】
このような構成によれば、ユニット交換間違いが生ずれば、直ちに、特定のフラグは所定の論理値にセットされるから、予めそのフラグを入力条件として表示ランプが点灯するようなユーザプログラムを組んだり、あるいは、そのフラグを入力条件としてプログラマブル表示器の表示プログラムを組んでおけば、別途ツールが存在せずとも、ユニット交換間違いが生じたことを直ちにユーザに知らせることができる。
【００３２】
このとき、ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグには、オンライン交換に失敗したことを示すフラグが含めるようにしてもよい。
【００３３】
このような構成によれば、予めそのフラグを入力条件として表示ランプが点灯するようなユーザプログラムを組んだり、あるいは、そのフラグを入力条件としてプログラマブル表示器の表示プログラムを組んでおけば、別途ツールが存在せずとも、とにかく、なんらかの原因でユニットのオンライン交換に失敗したことを、表示ランプやプログラマブル表示器を介して、ユーザに知らせることができる。
【００３４】
また、ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグには、機能ユニットの種類を間違えたことを示すフラグが含めてもよい。
【００３５】
このような構成によれば、予めそのフラグを入力条件として表示ランプが点灯するようなユーザプログラムを組んだり、あるいは、そのフラグを入力条件としてプログラマブル表示器の表示プログラムを組んでおけば、別途ツールが存在せずとも、取り外したユニットを元に戻すに際して、誤って別の種類のユニットを戻してしまったことを、表示ランプやプログラマブル表示器を介して、ユーザに知らせることができる。加えて、そのようなフラグを入力条件として、ユニット交換間違い時の対策処理に相当するユーザプログラムを組んでおけば、間違いの種類に応じて適切な対応を取ることも可能となる。
【００３６】
さらに、ＰＬＣのユーザプログラムやプログラマブル表示器の表示プログラムで参照可能な１又は２以上のユニット交換間違いフラグには、ユニット側の１の設定項目に関する設定を間違えたことを示すフラグが含めてもよい。
【００３７】
このような構成によれば、予めそのフラグを入力条件として表示ランプが点灯するようなユーザプログラムを組んだり、あるいは、そのフラグを入力条件としてプログラマブル表示器の表示プログラムを組んでおけば、別途ツールが存在せずとも、取り外したユニットを元に戻すに際して、誤ってユニット側の１の設定項目に関する設定を間違えたことを、表示ランプやプログラマブル表示器を介して、ユーザに知らせることができる。加えて、そのようなフラグを入力条件として、ユニット交換間違い時の対策処理に相当するユーザプログラムを組んでおけば、間違いの種類に応じて適切な対応を取ることも可能となる。
【発明の効果】
【００３８】
この発明によれば、ユニットのツールレスオンライン脱着が可能であり、しかもユニット脱の判定に際するシステムプログラム側の処理負担を軽減することが可能なプログラマブル・コントローラを提供することができる。
【発明を実施するための最良の形態】
【００３９】
以下に、この発明に係るＰＬＣの好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００４０】
ＰＬＣのベースユニットの構成図が図１に示されている。同図に示されるように、このベースユニット１はバックプレーンやマザーボード等とも称される細長長方形の板状部材であり、その表面には、ＣＰＵユニット装着領域１ａと複数の機能ユニットのための装着領域１ｂとが定義されている。
【００４１】
ここで、ＣＰＵユニット以外の各種機能ユニットとしては、当業者にはよく知られているように、Ｉ／Ｏユニット（ＩＮユニット、ＯＵＴユニット、及びＩＮ，ＯＵＴ混在ユニットを総称する）、通信ユニット（ＰＬＣ間通信ユニット、マスタ・スレーブ間通信ユニット、及び上位装置間通信ユニットを総称する）、特殊機能ユニット（温度調節ユニット、ＰＩＤ制御ユニット、モーションコントロールユニット、位置制御ユニット等々）等を挙げることができる。
【００４２】
ＣＰＵユニット装着領域１ａにはＣＰＵユニットを装着するためのコネクタ（図示せず）が配置されると共に、各種機能ユニット装着領域１ｂにはそれらの機能ユニットを装着するための複数（図示例では４個）のコネクタ１３ａ〜１３ｄが一列に配置され、それらのコネクタ１３ａ〜１３ｄはベースユニット１上に敷設されたＩ／Ｏバス（アドレス信号ライン、データ信号ライン各種の制御信号ラインを含む）１１を介して接続されている。これにより、ＣＰＵユニットとコネクタ１３ａ〜１３ｄに装着される各種機能ユニットとはＩ／Ｏバス１１を介してデータのやり取りが可能とされている。
【００４３】
各コネクタ１３ａ〜１３ｄのそれぞれには、ＣＰＵユニットからの制御信号でオンオフ制御される電源スイッチ（図示せず）が内蔵されており、この電源スイッチをオンオフさせることにより、各コネクタに装着されたユニットに対する通電をオンオフ可能とされている。また、各コネクタ１３ａ〜１３ｄには、機能ユニットの取り付け操作又は取り外し操作に連動してオンオフするユニット検出手段（図示せず）が内蔵されており、このユニット検出手段がオンオフすることで、当該コネクタに機能ユニットが取り付けられたこと、当該コネクタから機能ユニットが取り外されたことが検出可能とされている。ユニット検出手段の一例としては、機能ユニットがコネクタに装着されると、機能ユニットとコネクタ間で信号線が導通する構造とすることでスイッチの機能を備える構成とすることができる。つまり、機能ユニットがコネクタに装着されると信号線が導通してスイッチがオンとなり、その状態から機能ユニットが脱状態となると信号線が切断されてスイッチがオフとなる。このスイッチの状態を検出信号として、信号線１４ａ〜１４ｄを介して、内部レジスタ１２へと伝えれば良い。
【００４４】
ベースユニット１上における各種機能ユニットの装着領域１ｂには、各コネクタ１３ａ〜１３ｄのそれぞれに対応する複数の個別記憶領域を有する内部レジスタ（本発明の状態メモリに相当）１２が設けられている。なお、この内部レジスタ１２は、ＣＰＵユニット装着領域１ａに設けてもよく、さらには、ＣＰＵユニット装着領域１ａに装着されるＣＰＵユニット（図示せず）に内蔵させてもよい。
【００４５】
内部レジスタ１２の各個別記憶領域は、Ｉ／Ｏバス１１とは別の専用の信号線１４ａ〜１４ｄを介して、コネクタ１３ａ〜１３ｄへと接続される。各コネクタ１３ａ〜１３ｄに内蔵されるユニット検出手段の検出信号は、信号線１４ａ〜１４ｄを介して、内部レジスタ１２へと伝えられる。その結果、いずれかのコネクタ１３ａ〜１３ｄに関して機能ユニットの取り外し操作が行われるのに連動して、内部レジスタ１２内のそのコネクタに関する個別記憶領域には第１の状態（例えば、"１"）が自動的に記憶され、かついずれかのコネクタに関して機能ユニットの取り付け操作が行われるのに連動して、内部レジスタ１２内のそのコネクタに関する個別記憶領域には第２の状態（例えば、"０"）が自動的に記憶される。これにより、内部レジスタ１２の各個別記憶領域には、常に、その時々の各コネクタのユニット着脱状態（ユニットが取り付けられた状態又は取り外された状態）を示すデータが記憶された状態となる。
【００４６】
内部レジスタ１２はＩ／Ｏバス１１にも接続されている。そのため、内部レジスタ１２の各個別記憶領域の記憶内容は、Ｉ／Ｏバス１１を介してＣＰＵユニットから読み取り可能とされている。これにより、ＣＰＵユニットは、Ｉ／Ｏバス１１を介して内部レジスタ１２の各個別記憶領域の記憶内容を参照することにより、各コネクタのユニット着脱状態を認識することができる。
【００４７】
なお、図において、ＣＰＵ２１は、ＣＰＵユニットに内蔵された演算処理部（マイクロプロセッサやＡＳＩＣを含む）である。また、メモリ２２は、ＣＰＵユニットに含まれるシステムメモリ、ワークメモリ、ユーザプログラムメモリ、システム設定メモリ、Ｉ／Ｏデータメモリ、オンライン交換ステータスメモリ等々をまとめて示すものである。
【００４８】
次に、ＣＰＵユニットについて説明する。ＣＰＵユニットに内蔵されるマイクロプロセッサの管理するアドレス空間の割り付けを示すメモリマップが図２に示されている。
【００４９】
同図に示されるように、アドレス空間には、システムメモリ領域Ｍ１と、ワークメモリ領域Ｍ２と、ユーザプログラムメモリ領域Ｍ３と、システム設定メモリ領域Ｍ４と、Ｉ／Ｏデータ領域Ｍ５と、オンライン交換ステータスメモリ領域Ｍ６とが割り付けられている。
【００５０】
システムメモリ領域Ｍ１は、ＣＰＵ２１を構成するマイクロプロセッサがＰＬＣとしての機能を実現するために必要な各種のシステムプログラム（ファームウェア）を記憶する領域である。
【００５１】
ワークメモリ領域Ｍ２は、同マイクロプロセッサがシステムプログラムを実行する際に演算途中結果等を記憶するための各種ワークエリアとして使用される領域である。
【００５２】
ユーザプログラムメモリ領域Ｍ３は、ユーザがラダー図言語等を利用して適宜に組み上げた、所望の制御機能を実現するための制御プログラムである、ユーザプログラムを記憶させるための領域である。
【００５３】
システム設定メモリ領域Ｍ４は、システムプログラムの実行に際して、予め用意された各種のオプションの設定、選択等々に必要なシステム設定情報を記憶させるための領域である。
【００５４】
Ｉ／Ｏデータ領域Ｍ５は、ユーザの制御対象システムに含まれる各種の外部入力機器（押しボタンスイッチ、リミットスイッチ、マイクロスイッチ等々）の状態、各種外部出力機器（リレー、各種アクチュエータ等々）の状態、等々を記憶させるための領域である。このＩ／Ｏデータ領域Ｍ５のデータは、ユーザの使用する各命令（ＬＤ命令，ＩＮ命令，ＯＵＴ命令，ＡＮＤ命令，ＯＲ命令等々）のオペランドとして使用可能である。換言すれば、このＩ／Ｏデータ領域Ｍ５の記憶データは、ユーザプログラムにて適宜に参照可能とされている。
【００５５】
オンライン交換ステータスメモリ領域Ｍ６は、本発明に関連して新たに設けられた領域である。このオンライン交換ステータスメモリ領域Ｍ６には、図に拡大して示すように、オンライン交換失敗フラグＭ６１０と、ユニット種類間違えフラグ６２０と、ユニット側設定間違えフラグ（設定１）〜（設定Ｎ）６３１〜６３Ｎとを含んで構成される。
【００５６】
オンライン交換失敗フラグＭ６１０は、なんらかの原因でオンラインユニット交換（ＰＬＣの運転を継続したままで、いずれかの機能ユニットを取り外し、その後、取り付けること）に失敗したときに"０"から"１"にセットされるフラグである。後述するように、オンラインユニット交換失敗の原因としては、ユニットの種類を間違えた場合、ユニット側設定を間違えた場合等々、様々な原因が存在する。
【００５７】
ユニット種類間違えフラグＭ６２０は、オンラインユニット交換に際して、例えば、本来はＯＵＴユニットを取り付けるべきところ、誤ってＩＮユニットを取り付けてしまった場合ように、ユニットの種類を間違えたときに"０"から"１"にセットされるフラグである。
【００５８】
ユニット側設定（設定１〜Ｎ）間違えフラグＭ６３１〜Ｍ６３Ｎは、なんらかの理由でユニット交換に際して、ユニット側の設定（例えば、通信ユニットの場合、設定１＝ノード番号（ネットワーク上でノードとしてのＰＬＣを特定する情報）、設定２＝ユニット番号（ＰＬＣ上でユニットを特定する情報）等々）を設定間違えしたときに、その設定項目（１〜Ｎ）に関連して"０"から"１"にセットされるフラグである。
【００５９】
上述の各フラグＭ６１０，Ｍ６２０，Ｍ６３１〜Ｍ６３Ｎは、ユーザプログラムを構成する各命令（ＬＤ命令，ＩＮ命令，ＯＵＴ命令，ＡＮＤ命令，ＯＲ命令等々）のオペランドとして使用可能である。換言すれば、このＩ／Ｏデータ領域Ｍ５の記憶データは、ユーザプログラムにて参照可能とされている。
【００６０】
ＣＰＵユニットに含まれるマイクロプロセッサの処理の全体を示すゼネラルフローチャートが図３に示されている。同図に示されるように、このＰＬＣのＣＰＵユニットにおいては、電源投入により起動され、直後に、イニシャル処理（ステップ３０１）を実行したのち、共通処理（ステップ３０２）、ユーザプログラム実行処理（ステップ３０３）、Ｉ／Ｏリフレッシュ処理（ステップ３０４）、及び周辺サービス処理（ステップ３０５）を繰り返し実行する。
【００６１】
イニシャル処理（ステップ３０１）においては、システムプログラムの実行に必要な各種のフラグやレジスタ類の初期設定等の処理が実行される。
【００６２】
共通処理（ステップ３０２）においては、内部バスのチェックを含む各種のハードウェアチェックが行われる。このハードウェアチェックに際しては、本発明に関連して、ユニット着確認処理（ユニットがコネクタから取り外された状態からコネクタへと取り付けられた状態へと変化したことを確認する処理）が実行される。
【００６３】
このユニット着確認処理においては、後に図５を参照して詳述するように、ＣＰＵユニットは、Ｉ／Ｏバス１１を介して内部レジスタ１２の各個別記憶領域の記憶内容を読み込み、読み込まれた記憶内容に基づいて、複数のコネクタ１３ａ〜１３ｄのそれぞれが、ユニットが取り外された状態から取り付けられた状態へと変化したか否かの判定が行われる。
【００６４】
ユーザプログラム実行処理（ステップ３０３）においては、ラダー図言語等を使用してユーザが適宜に組み上げた、ユーザの所望する制御仕様に相当するユーザプログラムをユーザプログラムメモリ領域Ｍ３から読み出して実行すると共に、その実行結果により、Ｉ／Ｏデータ領域Ｍ５内の指定されたＩ／Ｏデータの内容を書き替える処理が行われる。
【００６５】
Ｉ／Ｏリフレッシュ処理（ステップ３０４）においては、ユーザプログラム実行処理（ステップ３０３）において書き替えられたＩ／Ｏデータ領域Ｍ５のＯＵＴ領域の内容をＩ／Ｏバス１１を介してＩ／Ｏユニットへと送出すると共に、Ｉ／Ｏバス１１を介してＩ／Ｏユニットから取り込まれた入力データを、Ｉ／Ｏデータ領域Ｍ５のＩＮ領域へと書き込む処理が行われる。
【００６６】
周辺サービス処理（ステップ３０５）においては、通信を介して接続されたリモートＩ／Ｏや他のＰＬＣとの交信を行って、それらの通信ノードとの間でデータの交換を行ったり、通信を介してツールとやり取りすることにより、プログラムの作成、編集、表示等々の処理を行ったり、さらには、通信を介してプログラマブル表示器とやり取りすることにより、指定された内部データを外部に表示させる等々の周辺サービス処理が行われる。加えて、この周辺サービス処理においては、必要に応じて、各種の特殊機能ユニット（温度調節ユニット、ＰＩＤ制御ユニット、モーションコントロールユニット、位置制御ユニット等々）のそれぞれに関する処理も行われる。
【００６７】
以上一連の処理（ステップ３０２〜３０５）の間に、複数のコネクタ１３ａ〜１３ｄのいずれかにおいて、ユニットの着操作（ユニットを取り付ける操作）又は脱操作（ユニットを取り外す操作）が行われると、後述するように、信号ライン１４ａ〜１４ｄを介してその旨の信号が内部レジスタ１２へと伝えられ、内部レジスタ１２の該当する個別記憶領域の記憶内容は、ユニット着状態（本発明の第１の状態）又はユニット脱状態（本発明の第２の状態）に更新される。ここで、「ユニットの着状態」とはユニットがコネクタに取り付けられている状態、「ユニット脱状態」とはユニットがコネクタから取り外されている状態のことである。
【００６８】
また、一連の処理（ステップ３０２〜３０５）の間に、ユニットが脱状態（取り外された状態）にあるコネクタに対してデータ読み込みのためのアクセスが行われると、該当するユニットが存在しないことから、ＣＰＵユニットに対しては異常レスポンス（所定時間経過しても該当ユニットから応答が無い状態）が検出されることとなる。本発明では、後述するように、この異常レスポンスを利用することで、ユニット脱（ユニットが取り付けられた状態から取り外された状態へと変化すること）の判定に必要な内部レジスタ（状態メモリ）１２の参照の頻度を減少させることにより、システム側の処理負担軽減を図っている。
【００６９】
次に、一連の処理（ステップ３０２〜３０５）の間に、いずれかのユニットにアクセスした際に、異常レスポンスが得られた場合の処理について説明する。
【００７０】
ユニットからの異常レスポンス入力時の詳細フローチャートが図４に示されている。同図に示されるように、Ｉ／Ｏリフレッシュ処理や周辺サービス処理において、いずれかの機能ユニットに対するアクセスが行われるたびに、異常レスポンスの検出有無がその都度に判定され（ステップ４０１）、異常レスポンスの検出ありと判定されないときには（ステップ４０１ＮＯ）、内部レジスタ１２の記憶内容を参照することなく、予め決められた他の処理への移行が行われる。すなわち、従来例のように、機能ユニットにアクセスを試みるに先立って、常に、内部レジスタ１２の記憶内容を参照する必要はない。
【００７１】
これに対して、いずれかの機能ユニットにアクセスした結果として、異常レスポンスの検出ありが判定されると（ステップ４０１ＹＥＳ）、続いて、ベースユニット１上の内部レジスタ１２の各個別記憶領域の内容が読み込まれ、その内容に基づいて、異常レスポンスに係るコネクタがユニット着状態（ユニットが取り付けられた状態）にあるのか、又はユニット脱状態（ユニットが取り外された状態）にあるのかの判定が行われる（ステップ４０３）。
【００７２】
ここで、ユニット脱状態と判定されると（ステップ４０３ＹＥＳ）、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り外しを可能とするために、規定のユニット脱時処理が実行される（ステップ４０４）。このユニット脱時処理（ステップ４０４）においては、その後、該当するコネクタから誤ったデータが読み込まれることのないように、そのコネクタに関する通信処理の断、電源断等の処理が実行される。一方、ユニット脱ではないと判定されると（ステップ４０３ＮＯ）、Ｉ／Ｏバス１１の異常等に起因する真の通信異常であると認識して、規定の通信異常時処理（ステップ４０５）が実行される。この通信異常時処理（ステップ４０５）の内容としては、システムダウンに必要な各種の処理等を挙げることができる。
【００７３】
このように、本発明にあっては、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り外しを可能とすること（ユニットのオンライン脱）に必要な処理（ステップ４０４）については、ＣＰＵユニットがいずれかのコネクタを介して機能ユニットにアクセスした際に異常レスポンスが検出され（ステップ４０１ＹＥＳ）、かつそのコネクタに関する内部レジスタ（状態メモリ）１２の記憶内容が脱状態（第１の状態）であると判定されたときに限り実行されることとなるため（ステップ４０３ＹＥＳ）、内部レジスタ（状態メモリ）１２を参照する必要が生ずるのは、ユニットにアクセスした結果として異常レスポンスが検出されたときだけとなり、ＣＰＵユニットが各機能ユニットにアクセスするたびに、それに先立ち、常に、状態メモリの参照が必要とされた従来例に比べて、システムプログラム側の処理負担が大幅に軽減される。
【００７４】
一方、いずれかの機能ユニットにアクセスした際に、Ｉ／Ｏバスの異常等の真の通信異常を原因とする異常レスポンスが発生したときには、内部レジスタ（状態メモリ）１２の記憶内容は着状態（第２の状態）を示すことから、通信異常時処理が正常に実行されて、システムダウン等の必要処理が行われる。
【００７５】
次に、ＰＬＣの運転を継続したままで、指定されたコネクタに関して、機能ユニットの取り付けを可能とすること（ユニットのオンライン着）を実現するための処理について説明する。
【００７６】
ユニット着判定時処理の詳細フローチャートが図５に示されている。同図に示されるように、ＣＰＵユニットにおいては、共通処理（ステップ３０２）が到来する毎に、内部レジスタ１２の記憶内容を読み込むことにより、ユニット着脱状態の確認を行っている。そして、内部レジスタ１２の記憶内容に基づいてユニット着（ユニットが取り外された状態から取り付けられた状態への変化）の有無を判定している。ここで、ユニット着無しと判定されるときには（ステップ５０２ＮＯ）、なにも行わずに、決められた他の処理への移行が行われる。
【００７７】
これに対して、ユニット着有りが判定されると（ステップ５０２ＹＥＳ）、以下の一連の処理（ステップ５０３〜５０８）への移行が行われる。先ず、コネクタ電源をＯＮとすることにより、そのコネクタに接続されたユニットに対する給電を開始すると共に（ステップ５０３）、当該ユニットからＩ／Ｏバス１１を介して所定のユニット識別情報（複数の項目から構成される）を読み込み、これを先のユニット着時に読み込まれて記憶されているユニット識別情報（複数の項目から構成される）と照合することにより、ユニット種別の確認を行う（ステップ５０４）。
【００７８】
ここで、上記の照合の結果として、新たに装着されたユニットの種別が先に装着されていたユニットの種別と一致すると判定されれば（ステップ５０５ＹＥＳ）、規定のユニット着時処理が開始される（ステップ５０６）。このユニット着時処理（ステップ５０６）においては、通信を再開する等の各ユニット毎に予め決められた正常動作への復帰処理が実行される。
【００７９】
これに対して、新たに装着されたユニットの種別が先に装着されていたユニットの種別と一致しないと判定されれば（ステップ５０５ＮＯ）、上記のユニット着時処理（ステップ５０６）は実行されず、その代わりに、新たに装着されたユニットのユニット識別情報（複数の項目から構成される）と先に装着されていたユニットのユニット識別情報（複数の項目から構成される）との比較により間違え情報が生成される。こうして得られた間違え情報は、ＣＰＵユニットのメモリ内のオンライン交換ステータスメモリ領域Ｍ６に格納される。
【００８０】
先に述べたように、このオンライン交換ステータスメモリ領域Ｍ６には、オンライン交換失敗フラグＭ６１０と、ユニット種類間違えフラグＭ６２０と、ユニット側設定間違えフラグ（設定１）〜（設定Ｎ）Ｍ６３１〜Ｍ６３Ｎとが含まれており、この間違い情報格納処理（ステップ５０７）においては、上記で生成された間違い情報は、それらのフラグＭ６１０，Ｍ６２０，Ｍ６３１〜Ｍ６３Ｎの状態（例えば、"１"又は"０"）に反映される。
【００８１】
したがって、ユーザは、こられのフラグＭ６１０，Ｍ６２０，Ｍ６３１〜Ｍ６３Ｎを入力条件として所定の表示ランプを点灯するようにユーザプログラムを組んだり、あるには、図６に示されるように、市販のプログラマブル表示器において、それらのフラグＭ６１０，Ｍ６２０，Ｍ６３１〜Ｍ６３Ｎを条件として、それらのフラグの意味内容に合う文字や図形を表示させることにより、ＰＬＣにツールを接続せずとも、オンライン交換に失敗したこと、失敗の原因がユニットの種類を間違えたことにあること、ユニット側のどの設定を間違ったこと、等々を、通常の表示ランプやプログラマブル表示器６上の文字や図形を介して、容易に確認することが可能となる。
【００８２】
なお、図６において、２はＣＰＵユニット、３はＩ／Ｏユニット、４は通信ユニット、５はモーション・コントロールユニットやＰＩＤ演算ユニット等々の特殊機能ユニットであり、この例では、故障した通信ユニット４ａをベースユニット１から取り外す代わりに、正常な通信ユニット４ｂを新たに取り付けるものである。
【００８３】
このとき、例えば、誤って通信ユニットではなくて、別のユニットを装着すれば、オンライン交換失敗フラグＭ６１０及びユニット種類間違えフラグＭ６２０が"１"にセットされる。また、設定項目１〜Ｎのいずれかが間違いであれば、フラグＭ６３１〜Ｍ６３Ｎの該当するものが"１"にセットされる。
【００８４】
したがって、これらのフラグＭ６１０，Ｍ６２０，Ｍ６３１〜Ｍ６３Ｎを入力条件として所定の表示ランプを点灯するようにユーザプログラムを組み込んだり、あるには、図６に示されるように、市販のプログラマブル表示器において、それらのフラグＭ６１０，Ｍ６２０，Ｍ６３１〜Ｍ６３Ｎを入力条件として、それらのフラグの意味内容に合う文字や図形を表示させることにより、ＰＬＣにツールを接続せずとも、オンライン交換に失敗したこと、失敗の原因がユニットの種類を間違えたことにあること、ユニット側のどの設定項目を設定間違ったこと、等々を、通常の表示ランプやプログラマブル表示器６上の文字や図形を介して、容易に確認することが可能となる。
【００８５】
加えて、そのようなフラグを入力条件として、ユニット交換間違い時の対策に相当するユーザプログラムを予め組んでおけば、動作範囲や動作条件を限定した上で運転を継続させる等々、そのユニット毎に、間違いの種類に応じて適切な対応を取ることも可能となる。
【産業上の利用可能性】
【００８６】
この発明によれば、ユニットのツールレスオンライン脱着が可能であり、しかもユニット脱の判定に際するシステムプログラム側の処理負担を軽減することが可能なプログラマブル・コントローラを提供することができる。
【図面の簡単な説明】
【００８７】
【図１】ＰＬＣのベースユニットの構成図である。
【図２】ＣＰＵユニット内のデータ配置を示すメモリマップである。
【図３】ＣＰＵユニットの処理全体を示すフローチャートである。
【図４】ユニットからの異常レスポンス入力時の詳細フローチャートである。
【図５】ユニット着時処理の詳細フローチャートである。
【図６】本発明の作用説明図である。
【符号の説明】
【００８８】
１        ベースユニット
１ａ      ＣＰＵユニット装着領域
１ｂ      各種機能ユニット装着領域
２        ＣＰＵユニット
３        Ｉ／Ｏユニット
４        通信ユニット
５        特殊機能ユニット
６        プログラマブル表示器
１１      Ｉ／Ｏバス
１２      内部レジスタ
１３ａ，１３ｂ，１３ｃ，１３ｄ      スロット
１４      信号ライン
２１      ＣＰＵ
２２      メモリ
Ｍ１      システムメモリ領域
Ｍ２      ワークメモリ領域
Ｍ３      ユーザプログラムメモリ領域
Ｍ４      システム設定メモリ領域
Ｍ５      Ｉ／Ｏデータ領域
Ｍ６      オンライン交換ステータスメモリ領域
Ｍ６１０  オンライン交換失敗フラグ
Ｍ６２０  ユニット種類間違えフラグ
Ｍ６３１〜Ｍ６３Ｎ  ユニット側設定間違いフラグ（設定１〜Ｎ）
【図１】
2008097369.tif 000003
【図２】
2008097369.tif 000004
【図３】
2008097369.tif 000005
【図４】
2008097369.tif 000006
【図５】
2008097369.tif 000007
【図６】
2008097369.tif 000008