(57)【要約】【課題】メモリ割付をする際のノードアドレスを必要以上に大きくすることなく、メモリの有効利用を行うことのできるコントローラを提供すること【解決手段】入出力点数が２点以下の小点数スレーブと、１６点の多点スレーブとが、同一のネットワーク上に混在したネットワークに接続されたＰＬＣ１０を構成するＣＰＵユニット１１内のＩＯメモリ１１ｂに対し、４種類のスレーブに対応させ、多点ＯＵＴデータ用メモリエリアと、多点ＩＮデータ用メモリエリアと、小点数ＯＵＴデータ用メモリエリアと、小点数ＩＮデータ用メモリエリアとをそれぞれ用意している。そして、小点数スレーブ（ＩＮスレーブ），小点数スレーブ（ＯＵＴスレーブ），多点スレーブ（ＩＮスレーブ）並びに多点スレーブ（ＯＵＴスレーブ）の４種類のスレーブに対し、それぞれノードアドレスを＃０から割り当てる。個々の識別は、スレーブの種類も加味して行う。【選択図】        図４
2004171155.tif 000002
【特許請求の範囲】
【請求項１】
入出力点数が２点以下の小点数スレーブと、その小点数スレーブよりも多い入出力点数を扱う多点スレーブとが、同一のネットワーク上に混在し、そのネットワークに接続されたコントローラと通信可能とするネットワークシステムにおいて、
前記コントローラに設けた入出力データを格納するメモリに対し、前記小点数スレーブ用のエリアと前記多点スレーブ用のエリアをそれぞれ設定し、
前記ネットワークに接続された前記小点数スレーブは、自己のノードアドレスに対応する前記小点数スレーブ用のエリアの所定領域に割り付けられ、
前記ネットワークに接続された前記多点スレーブは、自己のノードアドレスに対応する前記多点スレーブ用のエリアの所定領域に割り付けられたことを特徴とするネットワークシステム。
【請求項２】
ユーザーによって設定される前記小点数スレーブと、前記多点スレーブに対するノードアドレスは、重複した設定を許容するように割り当てるようにし、
ネットワーク上での各スレーブの識別は、スレーブの種類と前記ユーザが設定したノードアドレスに基づいて行うことを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
入出力点数が２点以下の小点数スレーブと、その小点数スレーブよりも多い入出力点数を扱う多点スレーブとが、混在するネットワーク上に接続可能なコントローラであって、
ユーザプログラムを演算実行する制御部と、
その制御部がアクセスする入出力データを格納するメモリを備え、
前記メモリは、前記小点数スレーブ用のエリアと前記多点スレーブ用のエリアをそれぞれ設定されていることを特徴とするコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ネットワークシステム及びコントローラに関するものである。
【０００２】
【従来の技術】
ＦＡ（ファクトリーオートメーション）で用いられるＰＬＣ（プログラマブルコントローラ）は、スイッチやセンサなどの入力機器のＯＮ／ＯＦＦ情報を入力し、ラダー言語などで書かれたシーケンスプログラム（ユーザプログラム）に沿って論理演算を実行する。そして、ＰＬＣは、得られた演算結果にしたがって、リレー，バルブ，アクチュエータなどの出力機器に対し、ＯＮ／ＯＦＦ情報の信号を出力することで制御が実行される。
【０００３】
係るＰＬＣの一形態として、各機能ごとに生成されたユニットを複数用意し、電気，機械的に連結して構成するものがある。係るタイプを構成するためのユニットとしては、電源ユニット，ＣＰＵユニット，Ｉ／Ｏユニット，マスタユニット等各種のものがある。
【０００４】
そして、上記したマスタユニットは、制御系ネットワークに接続され、その制御系ネットワークに接続された各種のスレーブと制御系ネットワークを介して通信可能となっている。この種のスレーブの一例として、リモートＩＯがある。すなわち、上記した入力機器や出力機器は、ＰＬＣを構成するＩ／Ｏユニットに接続することもあるが、仮に全ての入出力機器を直接Ｉ／Ｏユニットに接続した場合には、それら入出力機器とＩ／Ｏユニットを結ぶ配線が、入出力機器の数だけ存在することになり、係る多数の配線がＰＬＣ（Ｉ／Ｏユニット）を起点として工場内に引き回されることになり、好ましくない。
【０００５】
そこで、制御対象の付近に入出力機器を接続するための端子台となるＩ／Ｏユニットを設置し、ＰＬＣ（マスタユニット）に接続されたネットワークケーブルに対して各Ｉ／Ｏユニットを接続する。そして、各Ｉ／ＯユニットとＰＬＣとの間ではマスタ−スレーブ間通信などによってＩ／Ｏデータの送受を行い、実際の入出力機器に対しては係るＩ／Ｏユニットを介して情報の伝達をするようにしている。
【０００６】
ところで、従来のリモートＩＯは、１６点のものが主流であり、８点のものも存在する。また、最近では、２点或いは１点と言った小点数に対応したリモートＩＯも存在する。本明細書では、前者を多点スレーブと称し後者を小点数スレーブと称する。このように小点数スレーブを設けるのは、例えば搬送用コンベアラインのように１０ｍ間隔で１から２個のセンサ等を設置すれば足りるような場合、１つのリモートＩＯで複数箇所に対応するのは配線の引き回しの問題から好ましくなく、各箇所毎にリモートＩＯを設置することになる。すると、接続する入出力機器の数に対応して小点数スレーブを用いることになる。
【０００７】
そして、各リモートＩＯの各点は、ＣＰＵユニットのＩＯメモリの所定アドレスに割り付けられており、そのＩＯメモリに対してデータを読み書きすることによりＩＯデータの送受を行っている。つまり、入力機器からのＩＮデータは、エリア割り付けされたＩＯメモリの所定アドレスに格納される。従って、ユーザプログラムを演算実行する際に、ＩＮデータが格納されるアドレスを参照してＩＮデータを取得し、それに基づいて演算処理をしてＯＵＴデータを算出すると、そのＯＵＴデータを特録すべきアドレスに格納する。これにより、そのＯＵＴデータは、対応するノードのリモートＩＯに接続された出力機器に伝達され、所望の制御動作をする。
【０００８】
一方、リモートＩＯを接続したネットワーク（リモートＩＯ通信）に対し、多点スレーブと小点数スレーブが混在状態で接続されるようなネットワーク構成のものがある。例えば、上記した搬送用コンベアラインであっても、制御盤のように多数の入出力機器が設置される箇所もあり、係る箇所には多点スレーブが必要となる。そして、このように多点スレーブと小点数スレーブが混在するネットワークシステムにおけるＩＯメモリの割付は、以下のようにしたものがある。
【０００９】
まず第１の方法としては、図１に示すように、小点数スレーブに合わせてメモリ割付を行う。つまり、１つのノード毎に２ビットずつメモリの割付を行う。係るメモリ割付をした場合、例えば１６点の多点スレーブを接続する場合、１６ビットのメモリ領域が必要となるので、８個分のノード領域を占有する。従って、小点数スレーブの場合には、予め設定したノード毎に割り付けるため、１つのスレーブが１つのノードを使用するが、１個の多点スレーブのために、例えばノード８からノード１５までのメモリ領域を占有することになる。
【００１０】
一方、第２の方法としては、図２に示すように、多点スレーブに併せてメモリを割り付ける方法がある。つまり、予め各ノード毎に１６ビット分ずつメモリ領域を割り付ける。このようなメモリ割付を行ったＩＯメモリを小点数スレーブが使用する場合、各ノードの０番と１番のビットのみ使用し、２〜１５番は空きビットとなる。そしてこの空きビットのメモリ領域は、他の用途のＩＯメモリとしては使用できない。
このようなメモリ割付については、例えば特許文献１の従来の技術の欄などに開示されている。
【００１１】
【特許文献１】
特許第３０１１８１４号（段落［０００８］から［００１６］など）
【００１２】
【発明が解決しようとする課題】
上記した従来のＩＯメモリのエリア割付方法では、以下に示す問題を有する。
例えば、第１の方法によるエリア割付の場合、１６点スレーブを６４台接続したい場合は１台あたり８個分のノードを占有するので、ノードアドレスが５１２個、例えば０〜５１１まで必要になり、設定がわずらわしい。さらに、各リモートＩＯなどのスレーブに設置する設定用スイッチも、５１２番個（例えば０〜５１１）まで設定可能なものにする必要があるのでコストが上がるという問題点がある。
【００１３】
また上記した第２の方法のようなエリア割付では、２点スレーブを１２８台（２５６ビット分）接続したい場合は１台あたり１ｃｈ（１６ビット）の割付エリアを占有するので、１２８ｃｈの割付エリアが必要となる。２５６ビット（１６ｃｈ）のデータしか取り込まないのに空きエリアも含めて１２８ｃｈのデータエリアを確保することは、エリアを無駄に使用していることになり、エリアの大きなコントローラの採用が必要になりコストアップするというデメリットがある。
【００１４】
この発明は、メモリ割付をする際のノードアドレスを必要以上に大きな数を用意する必要が無く、さらに、メモリの有効利用を行うことのできるネットワークシステム及びコントローラを提供することを目的とする。
【００１５】
【課題を解決するための手段】
この発明によるネットワークシステムは、入出力点数が２点以下の小点数スレーブと、その小点数スレーブよりも多い入出力点数を扱う多点スレーブとが、同一のネットワーク上に混在し、そのネットワークに接続されたコントローラと通信可能とするネットワークシステムを前提とする。そして、前記コントローラに設けた入出力データを格納するメモリに対し、前記小点数スレーブ用のエリアと前記多点スレーブ用のエリアをそれぞれ設定し、前記ネットワークに接続された前記小点数スレーブは、自己のノードアドレスに対応する前記小点数スレーブ用のエリアの所定領域に割り付けられ、前記ネットワークに接続された前記多点スレーブは、自己のノードアドレスに対応する前記多点スレーブ用のエリアの所定領域に割り付けられるようにした。
【００１６】
各スレーブは実施の形態では、リモートＩＯであり、この場合、ネットワークシステムは、リモートＩＯシステムと称することができる。コントローラは、実施の形態ではＰＬＣに該当するが、ＣＰＵユニットとしても良い。
【００１７】
そして、各スレーブに対するノードアドレスの設定は各種の方法・規則によって行うことができるが、例えば、ユーザーによって設定される前記小点数スレーブと、前記多点スレーブに対するノードアドレスは、重複した設定を許容するように割り当てるようにし、ネットワーク上での各スレーブの識別は、設定したノードアドレスとスレーブの種類に基づいて行うようにすることもできる。ここで、スレーブの種類は、例えば小点数か多点による識別がある。さらに、ＩＮかＯＵＴ（ＩＮ・ＯＵＴの複合）の区別を行うようにしても良い。そして、このスレーブの種別による特定は、ノードアドレスと共に種類情報を別途送るようにしても良いし、実施の形態で示すように、ユーザが設定したノードアドレスに対してさらに種類に識別するための情報を加味して真のアドレス（スレーブ識別コード）を生成し、スレーブ識別コードに基づいてデータの送受を行うと言うように間接的に種類情報を利用するものも含む。
【００１８】
また、本発明に係るコントローラは、入出力点数が２点以下の小点数スレーブと、その小点数スレーブよりも多い入出力点数を扱う多点スレーブとが、混在するネットワーク上に接続可能なコントローラであって、ユーザプログラムを演算実行する制御部と、その制御部がアクセスする前記入出力データを格納するメモリを備える。そして、前記メモリは、前記小点数スレーブ用のエリアと前記多点スレーブ用のエリアをそれぞれ設定されるようにした。
【００１９】
コントローラは、ＰＬＣ全体はもちろんのこと、上記した制御部とメモリを備えたＣＰＵユニットも含む。ＣＰＵユニットの場合には、通信はマスタユニット等を介して行うことになる。
【００２０】
本発明によれば、小点数のエリアと多点のエリアを別々に持つことで、空きのないエリア割付が行えるとともに、ノードアドレスの最大値も小さくすることができる。
【００２１】
そして、実際にネットワークに接続した小点数スレーブと、多点スレーブに対するノードアドレスの設定において、重複を許容して割り当てるようにすると、たとえば、多点スレーブと小点数スレーブに対し、共に小さい数に設定することにより、簡単な設定スイッチを用いることができる。その場合でも、スレーブの種類を加味することによりネットワーク上で各スレーブをユニークに特定することができる。
【００２２】
【発明の実施の形態】
図３は、本発明が実装されたＰＬＣと、リモートＩＯを含むネットワークの一例を示している。図３に示すように、ＰＬＣ１０と各種のスレーブが、デバイスネットなどのフィールドバス２０を介して接続されネットワークシステムを構築している。スレーブとしては、１または２個の入力機器が接続される小点数スレーブ（ＩＮスレーブ）２１や、１または２個の出力機器が接続される小点数スレーブ（ＯＵＴスレーブ）２２や、多数の入力機器が接続される多点スレーブ（ＩＮスレーブ）２３や、多数の出力機器が接続される多点スレーブ（ＯＵＴスレーブ）２４などがある。さらに、各スレーブは、自己のノードアドレスをユーザ操作により設定可能な設定スイッチ（ディップスイッチやロータリースイッチ等のメカ的なスイッチ）を備えている。なお、符合２５は、終点抵抗である。
【００２３】
ＰＬＣ１０は、各機能ごとに生成されたユニットを連結することにより構成され、例えば、ＣＰＵユニット１１，マスタユニット１２などがある。マスタユニット１２は、フィールドバス２０に接続され、各スレーブと通信を行うようになっている。さらに、ＰＬＣ１０の内部バスを介してＣＰＵユニット１１のＩＯメモリにアクセスし、ＩＯデータ等の読み書きを行うようになっている。
【００２４】
ＣＰＵユニット１１は、ラダー等で記述されたユーザプログラムを演算実行する制御部１１ａと、ＩＯデータ等を格納するＩＯメモリ１１ｂ等を備えている。
もちろん、図示省略するがハードウェア構成としては、上記ユーザプログラムを記憶するメモリや、システムプログラム等を格納するシステムＲＯＭや、演算実行時にワークエリアとして使用するワークメモリ（ＲＡＭ）等も備えている。
【００２５】
良く知られているように、入力機器からのＩＮデータや、そのＩＮデータに基づいて制御部１１ａにて演算処理して得られた出力機器に対するＯＵＴデータは、ＩＯメモリ１１ｂの所定アドレスに格納される。そして、ＰＬＣ１０は、ユーザメモリの演算実行と、ＩＯデータを更新するＩＯリフレッシュと、周辺処理等をサイクリックに繰り返し実行するもので、ＩＯリフレッシュの際にマスタユニット１２はＩＯメモリ１１ｂにアクセスし、ＩＮスレーブ２１，２３から取得したＩＮデータの書き込みと、ＯＵＴデータの読み出しを行う。そして、読み出したＯＵＴデータは、所定のＯＵＴスレーブ２２，２４を介して出力機器に対して送信する。
【００２６】
ここで本発明では、ＩＯメモリ１１ｂに、４種類のスレーブに対応させ、多点ＯＵＴデータ用メモリエリアと、多点ＩＮデータ用メモリエリアと、小点数ＯＵＴデータ用メモリエリアと、小点数ＩＮデータ用メモリエリアとを用意している。そして、小点数スレーブ（ＩＮスレーブ）２１，小点数スレーブ（ＯＵＴスレーブ）２２，多点スレーブ（ＩＮスレーブ）２３並びに多点スレーブ（ＯＵＴスレーブ）２４の４種類のスレーブに対し、それぞれノードアドレスを＃０から割り当てるようにしている。
【００２７】
各メモリエリアの具体的なデータ構造としては、多点スレーブ用のＯＵＴ，ＩＮデータエリアは、図５（ａ），（ｂ）に示すようなデータ構造となり、小点数スレーブ用のＯＵＴ，ＩＮデータエリアは、図６（ａ），（ｂ）に示すようなデータ構造となる。本実施の形態では、多点スレーブは１６点としているので、各ノードは１６ビットずつ割り付けられ、小点数スレーブは２点としているので、各ノードは２ビットずつ割り付けられる。なお、図５，図６では、ノード数をともにｎとしているが、各メモリエリアにおけるｎの値は必ずしも一致していなくても良い。一例としては、多点スレーブの最大ノード数を６４にし、小点数スレーブの最大ノード数を１２８にするというように、異ならせることができる。もちろん一致させても良い。
【００２８】
係る構成にすると、各スレーブ２１〜２４は、それぞれにあってメモリ割り付けがされているので、例えば小点数スレーブを図５に示す多点スレーブ用のメモリエリアを使用して２から１５番のビットが空きビットになることは無いし、多点スレーブを図６に示す小点数スレーブ用のメモリエリアを使用することにより複数のノードアドレスが使用不能になるおそれはなくなる。
【００２９】
また、実際に接続可能なスレーブ（リモートＩＯ）の最大個数と、ノードアドレスの最大値は一致している（具体的な値は、０番から始まるためノードアドレスの方が１小さい）。従って、必要以上に大きな数値まで設定可能な設定スイッチを用意することが無く、通常の設定スイッチにより、各スレーブのノードアドレスを効率良く設定できる。
【００３０】
一方、上記したようにスレーブのノードアドレスを種類毎に「０番」から割り振っているため、そのままではネットワーク上に同じノードアドレスのスレーブが最大４個存在することになり好ましくない。そこで本実施の形態では、ネットワーク上でのマスタ−スレーブ間通信において各スレーブを識別するためのコード（スレーブ識別コード）は例えば４桁にし、スレーブの種類は、最上位（先頭）の１桁を利用して特定し、上記した設定スイッチによる設定は、下位の２ないし３桁を利用して特定するようにする。
【００３１】
つまり、例えば、小点数スレーブ（ＩＮスレーブ）２１を「１」，小点数スレーブ（ＯＵＴスレーブ）２２を「２」，多点スレーブ（ＩＮスレーブ）２３を「３」並びに多点スレーブ（ＯＵＴスレーブ）２４を「４」として振り分ける。すると、上記した実施の形態では、小点数スレーブはノード数を最大１２８としているので、下三桁を設定スイッチで設定することになり、小点数スレーブ（ＩＮスレーブ）のノードアドレスが＃１１１とすると、スレーブ識別コードは＃１１１１となる。また、多点スレーブはノード数を最大６４としているので、下二桁を設定スイッチで設定することになり、多点スレーブ（ＯＵＴスレーブ）のノードアドレスが＃５０とすると、実際のノードアドレスは＃４０５０となる。
【００３２】
また、上記のように下２桁或いは下３桁をユーザが設定スイッチなどを操作して設定した値をそのまま用い、最上位桁にスレーブの種類を特定する値を付加することによりスレーブ識別コードを設定したが、本発明はこれに限ることはなく各種の設定を行うことができる。一例を示すと、ユーザが設定した値に対し、スレーブの種類に応じた数値を加算する（オフセットする）ことにより、各スレーブのスレーブ識別コードが重複しないユニークなものにすることができる。具体的には、下記表１に示すように、ノード数を適宜加算した値をオフセットすることにより、スレーブ識別コードを連続させつつユニークに設定することができる。すなわち、この例では、多点スレーブ（ＩＮスレーブ）はユーザの設定したノードアドレスをそのままスレーブ識別コードに使用し、多点スレーブ（ＯＵＴスレーブ）はユーザの設定したノードアドレスの値に６４を加算した値をスレーブ識別コードに使用することにより、６４から１２７を割り当てる。さらに、小数点スレーブ（ＩＮスレーブ）はユーザの設定したノードアドレスの値に１２８（＝６４＋６４）を加算した値をスレーブ識別コードに使用することにより、１２８から２５５を割り当てる。さらに、小数点スレーブ（ＯＵＴスレーブ）はユーザの設定したノードアドレスの値に２５６（＝６４＋６４＋１２８）を加算した値をスレーブ識別コードに使用することにより、２５６から３８３を割り当てる。このように設定すると、識別コードのデータサイズを小さくすることができ、通信回線上のデータ伝送効率がよくなる。
【００３３】
【表１】
2004171155.tif 000003
【００３４】
そして、各リモートＩＯは、自分が上記４種類のどれであるかが分かっているので、設定スイッチで設定されたアドレスに基づいてスレーブ識別コード（真のノードアドレス）を設定し、マスタユニットさらには他のスレーブとの間で通信を行う場合に、スレーブの種類を付加した真のノードアドレスを用いて行う。各スレーブに設定されるノードアドレスは、そのフィールドバス２０上でユニークとなり、通常のマスタ−スレーブ間通信によるデータの送受が行える。
【００３５】
このように、本発明では、ＩＯメモリへのエリア割付を、リモートＩＯの種類毎に行うようにしたが、それ以外の構成並びに作用効果は従来のものと同様に行うことができる。つまり、どのノードのＩＯデータがＩＯメモリのどこに格納されているかの情報などは、マスタユニット１２並びにＣＰＵユニット１１が保有しており、それに基づいてＩＯメモリ１１ｂへのアクセスを行うことができるし、マスタユニット１２はノードアドレスにしたがって所定のスレーブ２１〜２４と通信を行うことができる。なお、マスタユニット１２並びにスレーブ２１〜２４におけるデータの送受のための機構等は、従来と同様であるため、その詳細な説明を省略する。
【００３６】
【発明の効果】
以上のように、この発明では、メモリ割付をする際のノードアドレスを必要以上に大きな数を用意する必要が無く、さらに、メモリの有効利用を行うことができる。
【図面の簡単な説明】
【図１】従来のメモリのエリア割付方法の一例を説明する図である。
【図２】従来のメモリのエリア割付方法の一例を説明する図である。
【図３】ネットワークシステムの一例を示す図である。
【図４】ＣＰＵユニットの内部構造の一例を示す図である。
【図５】多点スレーブ用のＩＯメモリ内のデータ構造の一例を示す図である。
【図６】小点数スレーブ用のＩＯメモリ内のデータ構造の一例を示す図である。
【符号の説明】
１０  ＰＬＣ
１１  ＣＰＵユニット
１１ａ  制御部
１１ｂ  ＩＯメモリ
１２  マスタユニット
２０  フィールドバス
２１  小点数スレーブ（ＩＮスレーブ）
２２  小点数スレーブ（ＯＵＴスレーブ）
２３  多点スレーブ（ＩＮスレーブ）
２４  多点スレーブ（ＯＵＴスレーブ）
２５  終点抵抗
【図１】
2004171155.tif 000004
【図２】
2004171155.tif 000005
【図３】
2004171155.tif 000006
【図４】
2004171155.tif 000007
【図５】
2004171155.tif 000008
【図６】
2004171155.tif 000009