説明

ノード

【課題】 データリンクエリアの管理が容易に行なえるとともに、データリンクエリアの追加も簡単に行なえることができるPLCを提供すること
【解決手段】 ネットワーク20に接続されたPLC10間で、共有すべき共有データを送受するデータリンク機能を備えている。PLCのIOメモリ11fには、接点情報を格納する接点エリアや,複数バイトの情報を格納するデータメモリエリア等の複数種のメモリエリアを備えている。そして、共有すべきデータを記憶するデータリンクエリアを、同一のメモリエリア(図示の例では,DMエリア)に複数設定可能とした。これにより、すでにデータエリアが設定されているメモリエアに、別のデータリンクエリアを追加することもできる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ノードに関するもので、より具体的には、ネットワークに接続された他のノードとの間で、共有すべき共有データを送受するデータリンク機能を備えたノードに関する。
【背景技術】
【0002】
生産工場(製造現場)に設置されるFA(ファクトリーオートメーション)システムの制御をつかさどるPLC(プログラマブルロジックコントローラ)は、制御プログラムに基づいて演算実行するCPUユニット、センサやスイッチなどの入力機器を接続してそれらのオンオフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、上位端末装置などと接続してそれと情報をやりとりする通信ユニット、各ユニットに電源を供給する電源ユニット、など複数のユニットを組み合わせることにより構成されている。
【0003】
そしてPLCは、入力ユニットで入力した信号をCPUユニットのI/Oメモリに取り込み(INリフレッシュ処理)、予め登録されたラダー言語で組まれた制御プログラムに基づき論理演算をし(プログラム演算実行処理)、その演算実行結果をI/Oメモリに書き込んで出力ユニットに送り出し(OUTリフレッシュ処理)、その後、ネットワーク接続された上位端末装置や表示器等と通信する(周辺サービス処理)、といった各処理をサイクリックに繰り返す。
【0004】
ところで、このPLCを含むシステムでは、PLCその他のコントローラ等のマスタとなるノードを複数個用意するとともに、それら複数のノードをネットワークで接続し、各ノード(マスタ)間でデータを共有することにより、同期制御や協調制御などを行なうことがある。この場合に、PLC等のノード間でデータを共有する方法として、マルチマスタ間で用いられるデータリンク方式がある。
【0005】
このデータリンク方式は、特許文献1,特許文献2などに開示されたように、各ノードには、メモリの所定領域にデータリンクエリアを設定する。このデータリンクエリアは、自己が持つ共有すべきデータを格納する自ノードエリアと、他のノードから送られて来たデータを格納する他ノードエリアが用意される。これらデータリンクエリアは、連続したメモリ領域に設定される。そして、各ノードがマスタノードとなり、自ノードエリアに格納された自分の持つデータを、ネットワークを介して送信する。この送信されたデータは、ネットワークに接続された他の全てのノード(マスタ)が取得し、それぞれ対応する他ノードエリア(取得したデータを送信したノード用の他ノードエリア)に格納する。これにより、全てのノードがそれぞれ自ノードエリアに格納されたデータを出力することにより、データリンクに参加している全てのノードは、他のノードとデータの共有ができる。このデータリンク機能は、ラダープログラムを作成することなく、複数のノード(PLC)間でデータ交換が行なえるため、PLCネットワークにおいて、各ノード間でデータを共有する方法として広く使用されている。
【0006】
ところで、通常、プログラマブルコントローラのメモリには、接点情報であるリレーエリア(接点領域)とワードデータであるデータメモリエリア(データ領域)などがある。接点領域は入出力ユニット等による1ビット単位の入出力情報を格納する記憶領域であり、データ領域は2バイトまたはそれ以上の数値データやコード情報であり、それぞれのデータ単位でユーザにとって意味をなす情報を格納する領域である。
【0007】
そして、各ノード間で共有する必要があるデータの種類としては、接点領域に格納される1ビット単位の入出力情報と、データ領域に格納される複数バイトからなる情報がある。そのため、従来から図1に示すように、各領域に対してそれぞれ複数のPLC1がネットワーク2を介して接続されているネットワークシステムにおいて、各PLC1の接点領域とデータ領域のそれぞれに対してデータリンクエリアを設定することができるようになっていた。
【0008】
ここで、図中、ハッチング(黒塗り)のエリアが自ノードエリアであり、白抜きのエリアが他ノードエリアである。従って、例えばPLC(A)に着目すると、所定のタイミングで自己の接点領域の領域Aに格納された自ノードデータを同報通信によりネットワーク2に送信する。すると、PLC(B),(C)は、ネットワーク2を介して係るPLC(A)から送られてきたデータを受信し、各自の接点領域中の領域Aに格納する。同様に、データ領域の領域Aに格納された自ノードデータを同報通信によりネットワーク2に送信する。すると、PLC(B),(C)は、ネットワーク2を介して係るPLC(A)から送られてきたデータを受信し、各自のデータ領域中の領域Aに格納する。PLC(B),(C)の各自ノードエリアのデータも同様にして送信することで、各PLCが他ノードとデータの共有ができる。
【0009】
一方、図2に示すように、データリンクエリアは、接点領域,データ領域のそれぞれの任意の位置に設定することができる。つまり、接点領域やデータ領域は、データリンクせずに、自己が使用するデータを格納する領域も当然持っている。そこで、データリンクエリアとして使用するメモリ領域を、ツールなどを用いて予め設定(確保)する。また、データリンクエリアの設定位置としては、図2(a)のように、領域の途中でも良いし、図2(b)のようにその領域の最終でも良いし、逆に先頭から設定しても良い。ただし、どの位置に設定した場合にでも、データ管理、転送作業の容易性その他の理由から、データリンクエリアは連続した領域に設定するとともに、図1に示すように、各ノード用のデータリンクをするデータを記憶する領域も連続することが慣例となっていた。
【特許文献1】特許第3329399号
【特許文献2】特開平10−164167
【発明の開示】
【発明が解決しようとする課題】
【0010】
上述したように、データリンクエリアを接点領域とデータ領域に割り付けられることは、データの意味合い(ビットデータとして意味があるかワードデータとして意味があるか)に合わせて管理する上では有効であった。しかし、逆にデータリンクエリアの割付の自由度を低下させることにもなり、以下に示す問題点があった。
【0011】
すなわち、接点領域と、データ領域はそれぞれ離れてメモリ割付がされるため、接点情報とデータをそれぞれデータ共有する必要性が生じた場合、接点領域とデータ領域にそれぞれデータリンクエリアを割り当てることになる。すると、データリンクエリアが2つのエリアに分散されてしまうので、ユーザはメモリエリアの管理を行ないにくい。そして、エリアが分散してしまうことで、ラダープログラム等による誤書込、誤読出などのミスを誘発する可能性があるという問題を有する。
【0012】
また、すでにデータリンクを行なっている状態において、後からデータリンクデータを増加しようとした場合、同一エリアには1つのデータリンクエリアしか割り付けることができないので、データリングデータの追加ができず、拡張性に難がある。そのため、あるデータリンクエリアを増加させると、割付アドレスが変わってしまうために、ラダープログラム等も合わせて変更する必要が発生する。
【0013】
すなわち、図3(a)に示すようなメモリの割付状態でデータリンクを行なっている場合において、PLC(A)のデータメモリに設定する自ノードエリアを50ch分増やしたいという要求が生じた場合、PLC(A)の自ノードエリアを連続させる必要から、図3(b)に示すように、100から200のメモリ範囲を、100から250に拡張する必要がある。それに伴い、PLC(B),(C)のデータとデータリンクする他ノードエリアの格納領域も増加分だけアドレスがずれてしまう。
【0014】
すると、図4に示すように、例えば、PLC(A)において、PLC(B)から受信したデータをワークエリア(W500)に取り込むプログラムがあった場合、PLC(A)の送信エリアが50CH増加したことによって、PLC(B)からの受信開始アドレスが200CHから250CHにずれてしまうために、関連するラダープログラムを全て変更しなければならない。すなわち、例えば図4(a)に示すプログラムを図4(b)に示すプログラムに変更する作業が必要となり、この種のプログラムの変更作業が繁雑であるばかりでなく、変更ミスがあると、プログラムが正常に動作しなくなる。
【0015】
この発明は、データリンクエリアの管理が容易に行なえ、また、データリンクエリアの追加も簡単に行なえることができるノードを提供することを目的とする。
【課題を解決するための手段】
【0016】
上記した目的を達成するため、本発明のノードは、ネットワークに接続された他のノードとの間で、共有すべき共有データを送受するデータリンク機能と、前記ノードは、接点情報を格納する接点エリアや,複数バイトの情報を格納するデータメモリエリアを含む複数種のメモリエリアを備え、前記共有すべきデータを記憶するデータリンクエリアを、同一のメモリエリアに複数設定可能とした。
【0017】
同一(単一)のメモリエリアに複数のデータリンクエリアを設定可能としたため、ユーザはネットワーク上の他ノードとの間でデータ交換を行なうエリアを一箇所(1つのエリア)に集中管理することができる。よって、データの誤書き込みや誤読み出しを回避しやすくなる。
【0018】
また、別の解決手段としては、ネットワークに接続された他のノードとの間で、共有すべき共有データを送受するデータリンク機能と、前記ノードは、接点情報を格納する接点エリアや,複数バイトの情報を格納するデータメモリエリアを含む複数種のメモリエリアを備え、前記共有すべきデータを記憶するデータリンクエリアがすでに設定されているメモリエリアに、別のデータリンクエリアを追加設定可能とした。
【0019】
このようにすると、例えばすでにデータリンクエリアが設定されている場合に、さらにシステム拡張その他の要因から別の共有すべきデータが新たに発生したような場合に、その増加分を新たなデータリンクエリアに割り付けることで、元々のデータリンクエリアの割付を変わらないですむ。つまり、既存部分のラダープログラムを変更することなくデータリンクエリアを増やすことができる。
【0020】
また、上述した各ノードは、前記データリンクエリアの格納領域を特定する情報を格納するデータリンク割付テーブルを備え、そのデータリンク割付テーブルに基づいて前記メモリエリアの所定の記憶領域にアクセスし、データの読み書きを行なう機能を備えるとよい。本発明のノードは、実施の形態では、PLCに対応する。
【発明の効果】
【0021】
この発明では、データリンクエリアの管理が容易に行なえ、また、データリンクエリアの追加も簡単に行なえることができる。
【発明を実施するための最良の形態】
【0022】
図5は、本発明の好適な一実施の形態を示している。この例では、3つのPLA10がネットワーク20を介して接続され、データリンクを行なっている。PLC10は、図示省略するが、複数のユニットを連結して構成されている。ユニットの一例を示すと、電源ユニット,CPUユニット,IOユニット,通信ユニット,マスタユニットなど各紙湯のものがある。本発明との関係、すなわち、データリングを行なうことに着目すると、図6に示すように、CPUユニット11と、通信ユニット12を備えることになる。それら各ユニット11,12は、PLCインタフェース13にて接続され、ユニット間でデータの送受を行なう。
【0023】
CPUユニット11は、PLC10全体の制御を司るユニットであって、ハードウエア構成としては、CPUユニッ11全体の動作を司るマイクロプロセッサであるMPU11aと、システムファームウェアを格納するメモリであるROM11bと、システムワークとして使用されるメモリであるワークRAM11c.ユーザプログラムを格納するメモリであるユーザメモリ(UM)11d,ユーザプログラム(命令)実行処理/通信ユニットインタフェース処理/メモリアクセスバス調停処理を行なうASIC11e,接点領域,データ領域等のメモリエリアであるIOメモリ(IOM)11f並びに各種設定等を格納するメモリであるデータ可能用不揮発性メモリ11gを備え、それらが内部バス11hに接続され、その内部バス11hを介して相互にデータ転送等が行なえるようになっている。
【0024】
通信ユニット12は、通信ユニット全体の動作を司るマイクロプロセッサであるMPU12aと、システムファームウェアを格納するメモリであるROM12bと、システムワークとして使用されるメモリとなるワークRAM12cを備えている。さらに、外部のネットワーク20に接続し、他のノードと通信をする通信インタフェース12dも備えている。そして、それらがやはり内部バス12eに接続され、その内部バス12eを介して相互にデータ転送等が行なえるようになっている。
【0025】
次に、本発明の要部となるデータリンクを行なう機能について説明する。データリンクエリアは、CPUユニット11のIOメモリ11f内の所定のメモリ領域に割り付けられている。この割付は、ツールを用いて予め設定し、どのエリア種別のどの位置にデータリンクする各ノードのデータを格納するかを関連づけた情報を特定するデータリンク割付テーブル(図7参照)を生成し、それをデータ格納用不揮発性メモリ11gに登録する。
【0026】
データリンク割付テーブルは、図7に示すように、エリア1,2の2つのエリアを設定できるようになっている。本実施の形態では、設定可能なエリア数は、従前のものを踏襲して2つとしているが、3つ以上としてももちろん良い。各エリアに対し、エリア種別と、開始アドレスと、リンクデータ情報を登録するようにしている。エリア種別とは、IOメモリ11f中のメモリエリアの種別であり、接点エリア(接点領域)や、データメモリエリア(データ領域)などである。開始アドレスは、そのエリアにおけるデータリンクするデータを登録する先頭のアドレスを格納する。さらに、リンクデータ情報は、データリンクする対象のノード(自ノード及び他ノードの両方)と、そのノードのデータを記憶する記憶容量(チャンネル数)を格納する。そして、このリンクデータ情報に登録したノード順に、開始アドレスから順にデータリンクする各ノードのデータを格納するようにする。すなわち、1つのエリアとして登録するデータリンクエリアは、連続することを条件とするとともに、1つのノードについて登録するデータ領域も連続するようにしたため、開始アドレスと、リンクデータ情報により、各ノードのデータを格納すべきメモリ領域が一義的に決まる。
【0027】
例えば図5に示すネットワークシステムを例にとって説明すると、PLC(A)のノード番号が1,PLC(B)のノード番号が2,PLC(C)のノード番号が3とし、3つのPLCが相互にデータリンクするものとする。この場合に、エリア1のデータリンクエリアとしてPLC(A)のデータメモリエリアの100番地から、100ずつメモリを領域を確保するものとすると、図7に示すエリア1のエリア種別は、「データメモリエリア」となり、開始アドレスは100となる。そして、リンクデータ情報は、図示した通りである。
【0028】
このデータリンク割付デーブルを参照することにより、CPUユニット11や通信ユニット12は、IOメモリのどのメモリ領域がデータリンクエリアとして使用されており、各ノードはデータ共有すべき自ノードエリアと、他ノードエリアを認識するとともに、他ノードから送られてきたデータを対応する所定のメモリ領域に格納することができる。すなわち、PLC(A)は、自分のノードアドレスが「1」であることを知っているため、エリア種別及び開始アドレスから、データメモリエリア中の100番から199番までが自ノードデータを格納する領域で有ることを認識し、同200番から299番までがノード2であるPLC(B)から送られてきたデータを格納する他ノード領域であることを認識し、同300番から399番までがノード3であるPLC(C)から送られてきたデータを格納する他ノード領域であることを認識できる。このデータリンクを行なう機能自体は、従来公知のものと同様である。
【0029】
簡単に説明すると、本実施の形態では、データリンク割付テーブルはCPUユニット11のデータ格納用不揮発性メモリ11gに格納されているため、電源ON時に、通信ユニット12(MPU12a)は、CPUユニット11のデータ格納用不揮発性メモリ11gに格納されているデータリンク割付テーブルを読み出す。実際には、ASIC11eに対して読み出し要求をし、ASIC11eがデータリンク割付テーブルを読み出してMPU12aに渡す。MPU12aは、取得したデータリンク割付テーブルの設定内容の論理性をチェックし、問題がなければ通信ユニット12内のワークRAM12cにデータリンク割付テーブルを展開して使用する。
【0030】
上記の初期処理を完了後、通常のデータリンクを開始する。すなわち、各通信ユニット12のMPU12aは、ワークRAM12cに格納されているデータリンク割付テーブルに従って、自ノードの送信エリアを求める(例えば、PLC(A)ではデータメモリエリアの100番地から199番地)。次いで、通信ユニット12のMPU12aは、CPUユニット11のIOメモリ11fから当該エリアのデータを読み出す。実際にはCPUユニット11のASIC11eに対して読出依頼を発行し、ASIC11eがIOメモリ11fへアクセスし、所定のデータを読み出してMPU12aに渡す。そして、通信ユニット12のMPU12aは、CPUユニット11から読み出した自ノード送信データを一斉同報通信にてネットワーク20へ送信する。
【0031】
一方、ネットワーク20内の各ノード(例えば、PLC(B),(C))は、データリンクデータの一斉同報通信を受信したらならば、送信元のノードアドレスを確認し、自ノードに設定されているデータリンク割付テーブルに従い、当該ノードのデータをCPUユニットに書き込むか否か、および書き込み先のエリア種別とアドレスを判定する。この場合、PLC(A)のノードアドレス「1」が各自のデータリンク割り付けテーブルのリンクデータ情報に登録されているか否かを判断し、登録されている場合には、そのノード1の格納先領域の先頭アドレスを算出する。この先頭アドレスは、エリア1の開始アドレスと、リンクデータ情報に登録された各ノードのデータ領域から求めることができる。例えば、図7に示す例にたてば、エリア1におけるノード1の先頭アドレスは、開始アドレスとなり、ノード2の先頭アドレスは開始アドレス+100となり、ノード3の先頭アドレスは開始アブレス+200となる。
【0032】
そして、通信ユニット12のMPU12aは、受信したデータがCPUユニット11に反映するデータ、つまり、データリンクすべきデータの場合は、CPUユニット11に対して書込依頼を発行する。これを受けてCPUユニット11(ASIC11e)は、通信ユニット12からの依頼に従って、受信したデータをIOメモリ11fの指定のエリア(アドレス)に書き込む。これにより、データリンクエリアの自ノードエリアに格納されたデータを他のノードに向けて送信し、他ノードのデータをデータリンクエリアの対応する他ノードのエリアに登録することができる。
【0033】
なお、図5に示した例では、エリア1について各ノードに設定した領域が全て100ずつであるが、個々に異なる値を採るのはもちろん良く、各PLCにおけるエリア1についての開始アドレスが異なっていても問題はない。さらには、特許文献2に示すように、同一ノードについて割り付けられたメモリエリアが異なっていても良い。つまり、送信側からは「100」のデータを送り、受信側ではそのうちの一部のデータを正式に取得し自己の所定のデータエリアに格納するようにしてもよい。
【0034】
おな、データリンク割付テーブルの設定はサポートツール(パソコン)によって行なう。そして、ユーザがデータリンク割付テーブルを設定すると、上述した実施の形態では、CPUユニット11のデータ格納用不揮発性メモリ11gに格納したが、通信ユニット12側の不揮発性メモリに格納するようにしてもよい。
【0035】
ここで、本発明では、図5に示すように、同一のエリア種別(図示の例では、データメモリエリア)に複数のデータメモリエリア(エリア1,2)を登録可能とした。すなわち、従来であれば、データメモリエリアにエリア1のデータリンクを設定した場合、エリア2のデータリンクはデータメモリエリア以外の例えば接点エリアに設定していたが、本発明では、エリア1,2の複数のデータリンクエリアを同一のエリア種別設定できる。つまり、例えばPLC(A)におけるデータリンク割り付けテーブルの場合、図7におけるエリア1のエリア種別がデータメモリエリアで、開始アドレスが100であることは先に述べたが、エリア2のエリア種別もデータメモリエリアとなる。そして、エリア2の開始アドレスは500となり、リンクデータ情報は図示する通りとなる。
【0036】
このように示すデータリンク割付テーブルでは、エリア種別として、エリア1,エリア2に同じ種別を登録をすることを許容している。ただし、この場合でも、各エリアごとでは、データリンクエリアは連続したひとかたまりのエリア領域としている。なお、このように同一のエリア種別内に複数のデータリンクエリアの設定を許容するようにしたため、サポートツールでは、複数のエリアで設定されるデータリンクエリア同士が重ならないようにチェックする機能が必要となる。
【0037】
本実施の形態によれば、単一のエリア(たとえばDM(データメモリ)エリア)に複数のデータリンクエリアを割り付けることで、ユーザはネットワーク上の他ノードとのデータ交換を行なうエリアを一箇所(1つのエリア)に集中管理することができる。その結果、データの誤書き込みや誤読み出しを回避しやすくなる。
【0038】
また、従来は、データリンクするデータの種類に着目し、接点領域(エリア)に格納された入出力の接点情報と、データメモリ領域(エリア)に格納する各種の情報をそれぞれエリア1とエリア2に設定し、そのエリア種別ごとにデータリンクを行なっていた。これに対し、本実施の形態では、例えば1つのデータメモリエリアというように単一のエリアを用いてデータリンクを行なっているが、従来のように接点エリアに格納された入出力の接点情報をデータリンク(データ共有)する場合、メモリ間のコピー機能を利用し、接点エリアの所定アドレスに格納された接点情報をデータリンクする自ノードエリアの所定領域にコピーしたり、他ノードエリアに格納された入出力の接点情報を自己の接点領域にコピーすることで、対応できる。この場合に、例えば図5に示すエリア1を本来のデータメモリに格納されるべきデータについてのデータリンクエリアとし、エリア2を接点情報についてのデータリンクエリアと使用することができる。もちろん、エリア1内に、本来のデータメモリに格納すべき複数バイトのデータと、1ビットの接点情報を混在させた状態でデータリンクをしてもよい。
【0039】
また、本実施の形態によれば、当初は図8(a)に示すようにエリア1のみを用いてデータリンクを行なっているシステムがあり、システム拡張のためにデータリンクエリアを増加したいという要求が発生した場合、図8(b)に示すようにデータリンクエリアの増加分を新たにエリア2として割り付けることで対応できる。このようにすると、元々のデータリンクエリア割付(エリア1)は当初のまま変わらないので、既存部分のラダープログラムを変更することなくデータリンクエリアを増やすことができる。よって、システム変更かが容易かつ簡単に行なうとともに、既存のラダープログラムを変更しないため、今まで正常に動作していた部分は、その動作を担保できる。
【図面の簡単な説明】
【0040】
【図1】従来例を示す図である。
【図2】従来例を示す図である。
【図3】従来の問題点を説明する図である。
【図4】従来の問題点を説明する図である。
【図5】本発明の好適な一実施の形態を説明する図である。
【図6】本発明の好適な一実施の形態を説明するブロック図である。
【図7】データリンク割付テーブルの一例を示す図である。
【図8】本発明の作用効果の一例を説明する図である。
【符号の説明】
【0041】
10 PLC
11 CPUユニット
11a MPU
11b ROM
11c ワークRAM
11d ユーザメモリ
11e ASIC
11f IOメモリ
11g データ格納用不揮発性メモリ
11h 内部バス
12 通信ユニット
12a MPU
12b ROM
12c ワークメモリ
12d 通信インタフェース
12e 内部バス
13 PLCインタフェース
20 ネットワーク

【特許請求の範囲】
【請求項1】
ネットワークに接続された他のノードとの間で、共有すべき共有データを送受するデータリンク機能と、
前記ノードは、接点情報を格納する接点エリアや,複数バイトの情報を格納するデータメモリエリアを含む複数種のメモリエリアを備え、
前記共有すべきデータを記憶するデータリンクエリアを、同一のメモリエリアに複数設定可能としたことを特徴とするノード。
【請求項2】
ネットワークに接続された他のノードとの間で、共有すべき共有データを送受するデータリンク機能と、
前記ノードは、接点情報を格納する接点エリアや,複数バイトの情報を格納するデータメモリエリアを含む複数種のメモリエリアを備え、
前記共有すべきデータを記憶するデータリンクエリアがすでに設定されているメモリエリアに、別のデータリンクエリアを追加設定可能としたことを特徴とするノード。
【請求項3】
前記データリンクエリアの格納領域を特定する情報を格納するデータリンク割付テーブルを備え、
そのデータリンク割付テーブルに基づいて前記メモリエリアの所定の記憶領域にアクセスし、データの読み書きを行なう機能を備えたことを特徴とするノード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−50023(P2006−50023A)
【公開日】平成18年2月16日(2006.2.16)
【国際特許分類】
【出願番号】特願2004−224874(P2004−224874)
【出願日】平成16年7月30日(2004.7.30)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】