(57)【要約】【課題】ＣＰＵユニットとは非同期で動作する高機能Ｉ／ＯユニットのＩＯ制御を高速に行うことのできるプログラマブルコントローラを提供すること【解決手段】ＣＰＵユニット１１と、そのＣＰＵユニット１１が支配する所定のユニット１２と、高機能Ｉ／Ｏユニット１３と、その高機能Ｉ／Ｏユニット用のＩ／Ｏユニット１４が、各ユニットに形成されたコネクタ１５を介して連結される。高機能Ｉ／ＯユニットとＩ／Ｏユニットは、ＣＰＵユニットからのシステムバス１６とは別系統のシステムバス１７で接続されるとともに、高機能Ｉ／Ｏユニットはシステムバス１６を介してＣＰＵユニットと通信可能となる。よって、高機能Ｉ／Ｏユニットは、ＣＰＵユニットのサイクルタイムに関係なく、Ｉ／Ｏユニットとの間でＩＯデータの送受ができ、実時間での制御が可能となる。【選択図】        図３
2004280303.tif 000002
【特許請求の範囲】
【請求項１】
複数のユニットを連結して構成されるプログラマブルコントローラにおいて、
前記複数のユニットは、少なくともＣＰＵユニットと、そのＣＰＵユニットと非同期で動作する制御ユニットと、その制御ユニットのためのＩ／Ｏユニットを有し、
前記制御ユニットと前記Ｉ／Ｏユニットは、前記ＣＰＵユニットからのシステムバスとは別系統のバスで接続されるとともに、前記制御ユニットは前記システムバスを介して前記ＣＰＵユニットと通信可能に構成したことを特徴するプログラマブルコントローラ。
【請求項２】
プログラマブルコントローラ用のユニットであって、
ＣＰＵユニットに接続するためのシステムバスと、
他のユニットと通信するための前記システムバスと別系統のローカルなバスと、
前記バスの通信を制御するマスタ機能を備えたことを特徴とするユニット。
【請求項３】
前記バスは、前記システムバスと同一の構成からなることを特徴とする請求項２に記載のユニット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プログラマブルコントローラ及びユニットに関するものである。
【０００２】
【従来の技術】
ファクトリーオートメーション（ＦＡ）の制御装置として、プログラマブルコントローラ（ＰＬＣ）が用いられている。このＰＬＣは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット，ＰＬＣ全体の制御を統率するＣＰＵユニット，ＦＡの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット，アクチュエータなどに制御出力を出す出力ユニット，通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。そして、これら各ユニットは、側面に設けられたコネクタを介して電気・機械的に連結され、電源ユニットから各ユニットへ電力供給を受けるとともに、情報の送受も行えるようになっている。このようにユニット同士を直接連結するタイプのＰＬＣとしては、従来、特許文献１に示された発明がある。
【０００３】
ＰＬＣのＣＰＵユニットにおける制御は、入力ユニットで入力した信号をＣＰＵユニットのＩ／Ｏメモリに取り込み（ＩＮリフレッシュ）、予め登録されたユーザプログラム記述言語（例えばラダー言語）で組まれたユーザプログラムに基づき論理演算をし（演算実行）、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出し（ＯＵＴリフレッシュ）、その後、いわゆる周辺処理を行うと言うことをサイクリックに繰り返し処理するようになる。
【０００４】
ところで、ＰＬＣを構成するユニットの中には、インテリジェントな高機能な制御を行うための高機能ユニットもある。この高機能ユニットで行う制御の一つとしては、例えば、温度等のアナログ値を受け、ＰＩＤ制御を行う等の専用のプロセス制御（アナログ制御）のプログラムを実施する機能を持つもや、モーションコントロール制御を行うものなど、各種のものがある。そして、これら各ユニットは、実行される機能名をつけて呼ばれることもり、アナログユニットやモーションコントロールユニットと称されることもある。なお、本明細書では、それらを総称して高機能Ｉ／Ｏユニットと称する。
【０００５】
これら高機能Ｉ／Ｏユニットは、ＣＰＵユニットの演算処理とは非同期に所定の制御を実行することにより、制御の高速化・高度化を図ることができるようになっている。
【０００６】
【特許文献１】
特開２００２−２０２８０３
【０００７】
【発明が解決しようとする課題】
高機能Ｉ／Ｏユニットを組み込んだＰＬＣの場合、高機能Ｉ／Ｏユニットの制御対象となる入出力機器が高機能Ｉ／Ｏユニットに直接接続されている場合にはさほど問題はないが、点数の増加などから別途Ｉ／Ｏユニットを設け、そのＩ／Ｏユニットに接続した入出力機器との間でＩＯデータの送受を行う場合に、以下に示す問題が生じる。
【０００８】
すなわち、ＰＬＣを構成する各ユニットをデータ通信に着目して模式的に示すと、図１のようになる。図１に示すように、ＣＰＵユニット１と、Ｉ／Ｏユニット２，３，４と、高機能Ｉ／Ｏユニット５が、コネクタ６を介して連結されているものとする。各ユニット１〜５内には、コネクタ６に接続されるシステムバス７が設けられ、コネクタ６を連結することにより、それらシステムバス７が直列に接続されることになる。
【０００９】
さらに、それらシステムバス７に接続されるようにして、ＣＰＵユニット１内にはバス制御用マスタＩＣ１ａが設置され、他のユニット２〜５内にはバス制御用スレーブＩＣ２ａ〜５ａが設置される。システムバス７上の通信は、バス制御用マスタＩＣ１ａが司る。これにより、各バス制御用スレーブＩＣ２ａ〜５ａは、システムバス７を介してバス制御用マスタＩＣ１ａとの間でデータの送受が行われるため、制御用スレーブＩＣ２ａ〜５ａ間では、バス制御用マスタＩＣ１ａを介してデータの送受を行うことになる。
【００１０】
従って、例えばＩ／Ｏユニット３，４が高機能Ｉ／Ｏユニット５のための入出力機器を接続するユニットとすると、高機能Ｉ／Ｏユニット５は、Ｉ／Ｏユニット３，４に接続された入出力機器との間で送受する入出力データは、ＣＰＵユニット１のバス制御用マスタＩＣ１ａを介して送受することになる。
【００１１】
つまり、図２に示すように、ＣＰＵユニット１は、各処理を数１０ｍｓ〜数１００ｍｓの間隔でサイクリックに実行する。また、高機能Ｉ／Ｏユニット５は数ｍｓ〜数１０ｍｓの間隔で各処理をサイクリックに実行する。そして、ＣＰＵユニット１側の処理と、高機能Ｉ／Ｏユニット５側の処理は基本的に互いに非同期で実行される。但し、図１に示したように、高機能Ｉ／Ｏユニット５が、Ｉ／Ｏユニット３，４との間でＩ／Ｏリフレッシュをするためには、まず、Ｉ／Ｏリフレッシュの際に、ＣＰＵユニット１に対してＩ／Ｏユニット３，４のＩＯデータ送受のイベント要求を行い（▲１▼）、それに対応してＣＰＵユニット１から高機能Ｉ／Ｏユニット５に向けて所定のＩＯデータの転送を行う（▲２▼）。このイベント要求をＣＰＵユニット１が受け取り、ＩＯデータを転送するのは、ＣＰＵユニット１の周辺サービス処理の際に実行される。
【００１２】
そして、この転送されたＩＯデータに基づいて、高機能Ｉ／Ｏユニット５はＩ／Ｏリフレッシュ処理を行い、取得したＩＮデータに伴い所定の演算処理を実行し、次の制御のためのＯＵＴデータを求め、高機能な所定の制御を実行する。
【００１３】
つまり、高機能Ｉ／Ｏユニット５が使用するＩＯの情報であっても、一旦ＣＰＵユニット１が、ＣＰＵユニット１のＩＯの情報として取得し、それを高機能Ｉ／Ｏユニット５に渡すようになる。その結果、高機能Ｉ／ＯユニットのＩ／Ｏリフレッシュは、ＣＰＵユニット１のサイクルタイムの制限を受け、数１０ｍｓ〜数１００ｍｓかかってしまい、実時間での制御が困難になる。
【００１４】
また、高機能Ｉ／Ｏユニット５が、システムバス７のバス権を獲得し、システムバス７を介して直接Ｉ／Ｏユニット３，４にアクセスし、ＩＯデータの送受をすることもできる。しかし、係る方法をとると、バス権の獲得の調停を行うための回路が複雑になるとともに、時分割に要するオーバーヘッドの増加などにより、サイクルタイムが大きくなる事態を生じ、ＩＯ制御を高速化する際の弊害となる。
【００１５】
この発明は、高機能Ｉ／Ｏユニット等のＣＰＵユニットとは非同期で動作する制御ユニットのＩＯ制御を高速に行うことのできるプログラマブルコントローラ及びユニットを提供することを目的とする。
【００１６】
【課題を解決するための手段】
この発明によるプログラマブルコントローラは、複数のユニットを連結して構成されるプログラマブルコントローラにおいて、前記複数のユニットは、少なくともＣＰＵユニットと、そのＣＰＵユニットと非同期で動作する制御ユニットと、その制御ユニットのためのＩ／Ｏユニットを有し、前記制御ユニットと前記Ｉ／Ｏユニットは、前記ＣＰＵユニットからのシステムバスとは別系統のバスで接続されるとともに、前記制御ユニットは前記システムバスを介して前記ＣＰＵユニットと通信可能に構成した。
【００１７】
また、本発明に係るユニットは、プログラマブルコントローラ用のユニットであって、ＣＰＵユニットに接続するためのシステムバスと、他のユニットと通信するための前記システムバスと別系統のローカルなバスと、前記バスの通信を制御するマスタ機能を備えて構成した。
【００１８】
本発明では、制御ユニット（ユニット）は、ＣＰＵユニットが管理するメインのシステムとは別系統のバスを介してＩ／Ｏユニットと通信することができる。よって、制御ユニットが行う制御のためのＩＯデータは、自己が管理するバスを用いて送受できるため、ＣＰＵユニットのサイクルタイムと関係なく、高速に通信できる。よって、実時間での制御も可能となる。また、制御ユニットは、必要に応じてシステムバスを介してＣＰＵユニットと通信を行うこともできる。
【００１９】
さらに、制御ユニットが管理する前記バスは、前記システムバスと同一の構成、つまりシステムバスから構成すると良い。このようにすると、制御用ユニットに連携するＩ／Ｏユニットは、通常のＣＰＵユニットに連携するＩ／Ｏユニットをそのまま転用することができるので、制御ユニットのための専用のＩ／Ｏユニットを作成し、保管する必要がなくなる。もちろん、本発明は、制御ユニットが持つバスは、システムバスと同一構成にしなくても良く、Ｉ／Ｏバスその他各種のものを用いて構成することができる。
【００２０】
【発明の実施の形態】
図３は、本発明の好適な一実施の形態を実現するＰＬＣの概略構成を示している。図３に示すように、ＣＰＵユニット１１と、そのＣＰＵユニット１１が支配する所定のユニット１２と、高機能Ｉ／Ｏユニット１３と、その高機能Ｉ／Ｏユニット用のＩ／Ｏユニット１４が、各ユニットに形成されたコネクタ１５を介して連結され、ＰＬＣ１０が構成される。ユニット１２は、例えばＩ／Ｏユニットや、マスタユニットなどがある。便宜上、図では２個示しているが、システム構成によってそのユニット１２の個数は適宜増減される。
【００２１】
各ユニット１１〜１４は、箱状のケースから構成される。そして、コネクタ１５は、例えば各ユニット１１〜１４を構成するケースの左側面に雌型コネクタを設けるとともに、右側面に雄型コネクタを設けることにより、各ユニットの側面同士を接触させることにより、自動的にコネクタ１５の連結も行われる。そして、ケース内部には、所定の回路とともに、コネクタ１５に連結されるバスが設けられ、コネクタ１５によって各ユニットが機械的に連結されるとともに、そのバスを介して電気的にも接続されることになる。
【００２２】
このバスは、大容量のデータも送信可能なシステムバスであり、このシステムバス上を伝送されるデータは、１つのマスタによって通信が管理される。よって、ＣＰＵユニット１１にバス制御用マスタＩＣ１１ａを設けるとともに、そのＣＰＵユニット１１に管理されるユニット１２にバス制御用スレーブＩＣ１２ａを備え、それらバス制御用マスタＩＣ１１ａと、バス制御用スレーブＩＣ１２ａが同一の系統となるシステムバス１６に接続される。これにより、ユニット１２とＣＰＵユニット１１は、バス制御用マスタＩＣ１１ａによって管理されるシステムバス１６を介してデータの送受が行われる。
【００２３】
ここで本発明では、高機能Ｉ／Ｏユニット１３の内部に２系統のシステムバス１６，１７を設けた。すなわち、一方のシステムバス１６は、ＰＬＣ１０のメインのシステムバスの一部を構成するもので、バス制御用スレーブＩＣ１３ａが接続される。これにより、ＣＰＵユニット１１のバス制御用マスタＩＣ１１ａと通信し、システムバス１６に接続されたユニット１１，１２と、ＣＰＵユニット１１を介してデータの送受が行える。つまり、従来の同様の通信プロトコルを実行する。
【００２４】
そして、他方のシステムバス１７は、メインのシステムバス１６とは分離されたローカルなバスであり、そのシステムバス１７は、高機能Ｉ／Ｏユニット１３に実装されたバス制御用マスタＩＣ１３ｂによって通信が管理される。
【００２５】
さらに、高機能Ｉ／Ｏユニット１３用のＩ／Ｏユニット１４にも、ローカルなシステムバス１７を備えるとともに、そのシステムバス１７に接続されたバス制御用スレーブＩＣ１４ａを内蔵させる。これにより、コネクタ１５を介してシステムバス１７が接続された高機能Ｉ／Ｏユニット１３とＩ／Ｏユニット１４は、バス制御用マスタＩＣ１３ｂと、バス制御用スレーブＩＣ１４ａとの間で通信を行うことができ、高機能Ｉ／Ｏユニット１３は、システムバス１７を介して直接Ｉ／Ｏユニット１４との間でデータの送受が行える。しかも、メインのシステムバス１６とは分離されているので、Ｉ／Ｏユニット１４との間の通信は、バス制御用マスタＩＣ１３ｂを持つ高機能Ｉ／Ｏユニット１３側が主体となって自由に行える。
【００２６】
また、システムバス１７は、ＣＰＵユニット１１が管理するメインのシステムバス１６と分離されたローカルなバスであるが、通信プロトコルや使用する物理的な回線などは、システムバス１６と同一のものを用いることができる。そのように同一に設定しておくと、例えば、図３におけるＩ／Ｏユニット１４を高機能Ｉ／Ｏユニット１３から取り外し、ＣＰＵユニット１１或いはユニット１２に連結することにより、メインのシステムバス１６に連携されたユニットとして使用できる。同様に、ユニット１２を高機能Ｉ／Ｏユニット１３が管理するシステムバス１６側に接続することもできる。このように、Ｉ／Ｏユニット自体は、ＣＰＵユニット１１並びに高機能Ｉ／Ｏユニット１３のいずれにも接続可能となり、共通化が図れるので、ユーザにてシステムを構築する際に、特殊なユニットを用いることなく、自由に設計することができる。
【００２７】
もちろん、本発明では、高機能Ｉ／Ｏユニットが管理するローカルなバスは、必ずしもメインのシステムバスと同一にする必要はなく、例えば、通信可能な容量の小さいＩ／Ｏバスなど、メインのシステムバスと異なる形態のバスを用いても良い。
【００２８】
なお、図３は、本発明の特徴である通信系統に着目して記載したものであり、各ユニット１１〜１４には、各ユニットの本来の機能を実現するための回路等が組み込まれている。例えば、ＣＰＵユニット１１は、図４に示すように、記憶手段（メモリ）として、システムプログラムを格納するシステムＲＯＭ１１ｂと、ユーザプログラムを格納するユーザメモリ１１ｃと、演算実行中に使用するワークメモリとしてのＲＡＭ１１ｄと、ＩＯデータやパラメータ等を格納するＩ／Ｏメモリ１１ｅなどを備えている。また、ユーザメモリ１１ｃやＩ／Ｏメモリ１１ｅに格納されたデータ・プログラム等は、電源ＯＦＦ時に図示省略する不揮発性のメモリにバックアップされ、電源投入時にそこから転送される。
【００２９】
システムプログラムは、ＭＰＵ１１ｆに呼び出され、そこにおいてワークメモリＲＡＭ１１ｄを適宜使用しながら、実行される。また、ユーザメモリ１１ｃに格納されたユーザプログラム（命令オブジェクトコード）は、命令実行エンジン（ＡＳＩＣ）１１ｇに順次呼び出され、そこにおいて呼び出した命令オブジェクト（可逆展開可能なレベルの中間コード（ニモニックコード等））を解析し、命令実行をする。また、この命令実行時に、適宜Ｉ／Ｏメモリ１１ｅにアクセスし、ＩＯデータを読み書きしたり、パラメータを取得したりする。
【００３０】
このように構成されたＣＰＵユニット１１は、システムプログラムにしたがってサイクリックな処理を行う。サイクリックな処理とは、例えば図５に示されるように、共通処理，演算処理，サイクルタイム算出処理，Ｉ／Ｏリフレッシュ処理，周辺サービス処理を順番に繰り返し実行することである。共通処理は、例えば、ＣＰＵユニットの電源がＯＦＦされた時でもＩ／Ｏメモリ１１ｅのデータを保持するための電池（図示せず）の異常チェックを行う処理がある。演算処理は、例えば、ラダー言語などを用いてＰＬＣのユーザにより作成されたユーザプログラムを実行するものである。サイクルタイム算出処理は、例えば、前述のサイクリックな処理を１回実行するのに必要な時間を計測し、所定メモリに記憶することである。Ｉ／Ｏリフレッシュ処理とは、Ｉ／Ｏユニットの一種である入力ユニット（センサやリミットスイッチ等が接続される）のデータをＩ／Ｏメモリ１１ｅに格納したり、Ｉ／Ｏメモリ１１ｅのデータをＩ／Ｏユニットの一種である出力ユニット（バルブやアクチュエータ等が接続される）へ送ったりすることである。周辺サービス処理とは、例えば、ＲＳ−２３２ＣポートやＲＳ−４２２／４８５などの汎用のシリアル通信ポートを介して他のＰＬＣやＰＴと通信を行うことである。高機能Ｉ／Ｏユニット１３との間のイベント通信も、この周辺サービス処理の際に実行される。なお、ＣＰＵユニット１１の構成並びに作用は、基本的に従来と同様であるので、その詳細な説明を省略する。
【００３１】
また、高機能Ｉ／Ｏユニット１３は、図６に示すように、バス制御用スレーブＩＣ１３ａと、バス制御用マスタＩＣ１３ｂを備えることはすでに述べた通りであるが、さらに、システムプログラムを格納するＲＯＭ１３ｃや、ワークメモリとしてのＲＡＭ１３ｄや、ＩＯデータや各種のパラメータを格納するＩ／Ｏメモリ１３ｅなどを備える。また、ユーザプログラムを組み込むタイプのものでは、ユーザメモリ１３ｆも備える。
【００３２】
そして、ＭＰＵ１３ｇが、システムプログラムに従い、図５に示すように共通処理，演算処理，Ｉ／Ｏリフレッシュ並びに周辺サービス処理をサイクリックに実行する。上記した各処理は、ＣＰＵユニット１１においてサイクリックに実行される各処理と同様なものが行われ、例えば演算処理など必要に応じてＡＳＩＣ１３ｈが実行される。そして、ＣＰＵユニット１１におけるサイクリックな処理と、高機能Ｉ／Ｏユニット１３におけるサイクリックな処理は、非同期でそれぞれ実行される。なお、ＩＯバス▲１▼，▲２▼は、コネクタ１５に対応する。
【００３３】
ここで、本発明では、Ｉ／Ｏリフレッシュ処理が、ローカルなシステムバス１７を介して直接Ｉ／Ｏユニット１４との間でＩＯデータの送受を行うことにより実行することができる。従って、従来のように、ＣＰＵユニット１１の周辺サービス処理が実行されるのを待つ必要がなく、独自のタイミングでＩ／Ｏリフレッシュが行えるので、数ｍｓ〜数１０ｍｓといった実時間での制御が可能となる。
【００３４】
また、メインのシステムバス１６とローカルなシステムバス１７とは、分離されているものの、高機能Ｉ／Ｏユニット１３におけるＭＰＵ１３ｇは、内蔵するバス制御用スレーブＩＣ１３ａとバス制御用マスタＩＣ１３ｂにアクセスできるとともに、ＣＰＵユニット１１と高機能Ｉ／Ｏユニット１３は、ＣＰＵユニット１１の周辺サービス処理の際に通信ができる。従って、例えば、ユニット１２のＩＯデータ等に対して高機能Ｉ／Ｏユニット１３がアクセスする必要が生じた場合には、ＣＰＵユニット１１を介して行うことができる。また、ＣＰＵユニット１１は、高機能Ｉ／Ｏユニット１３を介してＩ／Ｏユニット１４のＩＯデータを取得等することもできる。
【００３５】
【発明の効果】
以上のように、この発明では、高機能Ｉ／Ｏユニット等のＣＰＵユニットとは非同期で動作する制御ユニットは、ＣＰＵユニットが管理するメインのシステムバスとは別系統のバスを介して所定のＩＯユニット等と通信できるため、ＩＯ制御を高速に行うことができる。
【図面の簡単な説明】
【図１】従来例を示す図である。
【図２】従来の動作を説明する図である。
【図３】本発明の一実施の形態を示す図である。
【図４】ＣＰＵユニットの内部構成を示すブロック図である。
【図５】本実施の形態の動作を説明する図である。
【図６】高機能Ｉ／Ｏユニットの内部構成を示すブロック図である。
【符号の説明】
１０  ＰＬＣ
１１  ＣＰＵユニット
１１ａ  バス制御用マスタＩＣ
１２  ユニット
１２ａ  バス制御用スレーブＩＣ
１３  高機能Ｉ／Ｏユニット
１３ａ  バス制御用スレーブＩＣ
１３ｂ  バス制御用マスタＩＣ
１４  Ｉ／Ｏユニット
【図１】
2004280303.tif 000003
【図２】
2004280303.tif 000004
【図３】
2004280303.tif 000005
【図４】
2004280303.tif 000006
【図５】
2004280303.tif 000007
【図６】
2004280303.tif 000008