JP2010021866A - 通信システム及びマスタ - Google Patents

通信システム及びマスタ Download PDF

Info

Publication number
JP2010021866A
JP2010021866A JP2008181673A JP2008181673A JP2010021866A JP 2010021866 A JP2010021866 A JP 2010021866A JP 2008181673 A JP2008181673 A JP 2008181673A JP 2008181673 A JP2008181673 A JP 2008181673A JP 2010021866 A JP2010021866 A JP 2010021866A
Authority
JP
Japan
Prior art keywords
slave
frame
master
slaves
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008181673A
Other languages
English (en)
Inventor
Masao Koga
政男 古賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2008181673A priority Critical patent/JP2010021866A/ja
Publication of JP2010021866A publication Critical patent/JP2010021866A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】 送信する順番を固定しつつ、各スレーブがINフレームを送信するタイミングを過度に無駄な空き時間を生じないように設定すること
【解決手段】 マスタの出したトリガフレームを受信した各スレーブが、設定された待機時間経過後にINフレームを送信する通信システムである。INフレームを送信するスレーブの順番は、スレーブのアドレスの小さい順にし、マスタは、ネットワークに接続され実際に使用されるスレーブのアドレスと、そのスレーブが送信するINフレームのIOデータのビットサイズを取得し、各スレーブがINフレームを送信するのに要する時間を求め、それに基づきあるアドレス(#n-1)のスレーブから送信されるINフレームが送信完了したタイミングで、次のアドレス(#n)のスレーブの送信タイミングを設定する。図(b)に示すように、#0,#2,#6からのINフレームは、その送信タイミングが前詰めされ全体のサイクルタイムが短縮される。
【選択図】 図11

Description

この発明は、マスタと複数のスレーブとがネットワークにて接続され、マスタが、スレーブの送信タイミングの基準信号となるトリガフレームを送信し、そのトリガフレームを受信したスレーブが、そのトリガフレームを受信してから予め設定された待機時間(タイムドメイン値)を経過後、INフレームを送信する通信システム及びそれに用いられるマスタに関するもので、前記待機時間の設定に関する改良に関する。
FA(ファクトリーオートメーション)で用いられるPLC(プログラマブルコントローラ)が加入されるネットワークシステムの一形態として、フィールドネットワークシステムがある。このフィールドネットワークシステムは、マスタとなるPLCと、I/O機器やI/Oターミナル等の各種のスレーブが、制御系ネットワークの1つであるフィールドバスに接続されて構成される。このフィールドネットワークシステムでは、マスタとスレーブとが、マスタ−スレーブ通信を行い、IOデータ等の送受を行ない、制御対象機器の制御を実行する。
マスタ並びにスレーブは、フィールドバスに対してマルチドロップ配線で接続され、マスタから出力された送信フレームは、フィールドバスに接続された全てのスレーブ(ノード局)に対して一斉に到達する。そして、各スレーブには個々にノードアドレスが設定されており、送信フレームには、宛先のノードアドレス(1または複数)を含む宛先データを付加しておく。これにより、各スレーブは、受信した送信フレームの宛先データを抽出し、自己宛の送信フレームか否かを判断し自己宛の場合にはその送信フレームを取り込み、自己宛でない場合には破棄するようになる。
また、スレーブからマスタへ向けて出力されるフレームも、同様に送信アドレスにマスタのノードアドレスが付加されることにより、マスタのみが受信することができる。さらに、例えば、特許文献2に開示された通信システムのように、所定の条件の下でネットワークを構成した場合、スレーブからマスタへ送信されるフレームのうち、本発明における最適化対象となるINフレームには、ノードアドレスを付加しないフレームフォーマットをとることもできる。すなわち、ネットワーク上に存在するマスタが一台で、かつ、そのマスタがネットワークの階層において最上位に位置するようにした場合、必ずマスタにのみ送信されるフレーム(INフレーム、CNフレーム)は、宛先アドレスをフレームに含ませる必要がない。つまり、ヘッダにフレーム種別を特定するための情報を含ませておくことで、INフレーム等の場合には、マスタ宛のフレームであることがわかるので、当該フレームを、マスタが受信する(他のスレーブは受信しない)ことができる。また、マスタとスレーブとの間にリピータが介在するネットワーク構成の場合、リピータは、上記フレーム内のフレーム種別を判定し、当該フレームがINフレームであり、かつ当該リピータの下位ポートからの受信した場合は、リピータの上位側、つまりマスタが存在するポートに対して中継処理をすることで適切に伝送できる。このように宛先アドレスを含ませないようにすることで、宛先アドレスに要するフレーム長分だけ、サイクルタイムに大きく影響するINフレームのフレーム長を短くできるため、結果としてサイクルタイムを短くすることができる。
ところで、係るスレーブからマスタに向けて出力されるフレームの送信タイミングであるが、各スレーブが一斉に送信すると、フィールドバス上で衝突が生じて通信不能となるので、予め各スレーブに対し異なる送信タイミングを設定しておく。そして、各スレーブは、マスタの出した要求(トリガフレーム)を受信してから、自己に設定された一定時間経過後に応答を返すようにする。
この各スレーブが返す応答のタイミング(タイムスロット)は、マスタが決定し、各スレーブに設定する。具体的には、送信する順番は、各スレーブに設定されたアドレス順(昇順)にする。これは、各スレーブから送られてくるフレーム(INフレーム)の順番を、毎サイクルで同じにしたいという要求を受け、アドレス順にすることでINフレームの位置を固定化している。
また、スレーブから送信されるフレームは、サイズが固定のヘッダと、IOの点数によりサイズが異なるビットデータとから構成される。各スレーブのビットデータは、16ビットから256ビットと多岐にわたり、16点単位(16ビット,32ビット,48ビット,…)となる。そこで、最小単位(サイズ)となる16点を基本とし、16ビットのフレームを送信するのに必要な時間を1つのタイムスロットとする。よって、すべてのスレーブが16点で、アドレスが#0から#6まで抜けることなく存在している場合、図1(a)に示すように、タイムスロットごとに定期的に各スレーブから送信される。1つのタイムスロットは、“ヘッダのサイズ”+“16ビット分のデータサイズ”のフレームを送信するために要する時間に合わせているので、無駄なく各スレーブが送信することができる。
一方、実際には、上述したように、各スレーブは、異なる点数のものが混在しているので、16点の応答の場合には1つのタイムスロット、32点の場合には2つのタイムスロット、64の場合には4つのタイムスロットを使用する。つまり、スレーブ(ノードアドレス=#x)のデータサイズが32ビットの場合は、連続する2つのタイムスロット(#nと#(n+1))の領域を使用することになる。これに伴い、スレーブのアドレスとして#(n+1)は使用できなくなる。その結果、例えば、スレーブアドレスが#0,#2,#6の各スレーブから送信されるINフレームが、32ビット,64ビット,18ビットとすると、各INフレームの送信タイミングは、図1(b)に示すようになる。そして、具体的な各スレーブの応答位置(トリガフレームから距離)は、
スレーブ#0の応答位置=0
スレーブ#2の応答位置=0+(ヘッダ+16ビット)×2
スレーブ#6の応答位置=0+(ヘッダ+16ビット)×(2+4)
となる。マスタは、スレーブ検出時にスレーブアドレスとビットサイズから各スレーブの応答時間(各スレーブがトリガフレームを受信して応答を返すまでの時間)を算出して、各スレーブに通知する。係る構成からなる従来例としては、例えば特許文献1に開示された技術がある。
特開2004−280304号公報 特開2007−97157号公報
INフレームの順番を毎回同じにした場合、図1(b)に示すように、あるINフレームが送信完了してから、次にINフレームが送信開始するまでに、時間が空き、効率が悪くなることがある。これは、32ビット以上のデータを送信するINフレームは、複数のタイムスロットを使用することになり、各タイムスロットは、ヘッダ+16ビット分のINフレームを送信するために要する時間が設定されているのに対し、32ビット以上のデータを送信するINフレームには、ヘッダは1つのみ有しているので、1または複数のヘッダのサイズ分だけ無駄が生じる。
さらに、1つのタイムスロットの長さは、ヘッダ+16ビット分のデータを送信するのに必要な時間を基準とし、さらに、1つのINフレームを送信する場合に生じるばらつきを考慮して所定のマージンを付加している。このばらつきの量は、ビットサイズの大小に対応するものでもなく、1つのフレームごとに起因するものである。従って、仮に32ビットのデータを送信するINフレームでは、1つのフレーム分のばらつきを考慮したマージンを設定する必要があるところ、2つのタイムスロットを使用するため2つのフレーム分のばらつきを考慮したマージンが加算されるので、結果として1つ分のばらつきに応じた時間が更に無駄に設定されることになる。
また、スレーブアドレスでタイムスロットが決定されるため、途中のノード(スレーブ)が存在しなくても前詰めされず無駄が生じる。一例を上げすると、図1(b)の場合、#5のスレーブが存在しないので、タイムスロット#5の区間は、フレームが送信されない区間となる。
なお、このような無駄を省くため、フレームが詰まった通信サイクルを実現する場合、ネットワークに加入した順にINフレームを並べる必要がある。例えば、#3,#0,#2,#4の順番で加入された場合は、図1(c)に示すようになる。しかし、この方法では、ネットワークを構築するたびにINフレームの順番が変わってしまい、それに伴い、I/O応答特性が変動するため、FA制御の信頼性が低下するので好ましくない。さらに、スレーブが加入するたびに通信サイクルが変動するという問題もある。
この発明は、送信する順番を固定しつつ、各スレーブがINフレームを送信するタイミングを過度に無駄な空き時間(隙間)を生じることなく適切に設定することができる通信システム及びマスタを提供することを目的とする。
この発明による通信システムは、(1)マスタと複数のスレーブとがネットワークにて接続され、マスタが、スレーブの送信タイミングの基準信号となるトリガフレームを送信し、そのトリガフレームを受信したスレーブが、そのトリガフレームを受信してから予め設定された待機時間を経過後、INフレームを送信する通信システムである。そして、マスタは、ネットワークを構成するスレーブのアドレスと、そのスレーブが送信するINフレームのIOデータのビットサイズと、を関連付けた登録テーブルと、その登録テーブルに格納されたスレーブのアドレスに基づいてINフレームを送信するスレーブの順番を決定し、1番目からn−1番目までの各スレーブの登録テーブルに格納されたビットサイズから、それぞれのスレーブで送信されるINフレーム全体のデータサイズを求めると共に、その求めた各INフレーム全体のデータサイズの総和から、それら1番目からn−1番目までのスレーブがINフレームを送信するのに要する時間の総和を求め、その求めた時間に基づいてn番目に送信するスレーブについての待機時間を決定する待機時間決定手段と、その待機時間決定手段で決定した各スレーブについての待機時間を当該スレーブに通知する通知手段と、を有する。そして、スレーブは、通知手段により通知され待機時間を記憶する記憶手段を有し、その記憶手段に記憶した待機時間に基づいて決定される送信タイミングで、INフレームの送信を行うようにした。
アドレスに基づく送信するスレーブの順番であるが、実施形態では、小さいアドレスから昇順にしたが、降順でも良いし、予め決めた規則に基づいて決定するものでも良い。いずれにしても、予め規則を決めておくことで、送信する順番を固定化することである。待機時間は、実施形態では、タイムドメイン値に対応する。この待機時間に基づいて行われる通信は、実施形態の最適化モードでの動作に対応する。登録テーブルは、下記の(2)の発明等のように、実際にネットワークに接続されているスレーブから所望の情報を収集し、マスタが自動的に作成しても良いし、設定ツール装置等を用いてユーザが作成し、それをマスタにセットしても良い。設定ツール装置を用いて作成したものをマスタに登録する場合、その登録時には登録テーブルに格納されたスレーブが実際にネットワークに接続・加入していなくても良い。但し、実際にこの登録テーブルに格納された情報に基づいて待機時間を設定し、その待機時間に基づいてINフレームの送信を行う際には、実際にスレーブが存在している必要がある。
本発明では、登録テーブルに格納されたスレーブのアドレスから、通信開始時におけるネットワークに存在するスレーブを知ることができ、換言すると、使用されていないアドレスを知ることができる。従って、登録テーブルに登録されたスレーブのアドレスに基づいて送信順番を決定することで、未使用の空きアドレスを排除することができる。しかも、待機時間決定手段により、各スレーブの送信タイミングは、前詰め(1つ前のスレーブの送信が完了するタイミングで自己のスレーブの送信タイミングになる)で設定されるので、無駄な隙間(空き時間)がなく、効率よく通信を行うように待機時間(タイムドメイン値)の設定を行うことができる。よって、全てのスレーブがINフレームを送信し終わる通信サイクルも短くすることができる。
(2)スレーブは、送信するINフレームのIOデータのビットサイズを記憶保持し、マスタは、ネットワークに接続されている全てのスレーブから、それぞれが記憶保持しているビットサイズと、アドレスとを関連付けたステータス情報を収集するステータス情報収集手段と、そのステータス情報収集手段で収集したネットワークに接続されている全てのスレーブのステータス情報から登録テーブルを作成し、登録テーブル記憶部に格納する登録テーブル作成手段と、を備えるとよい。このようにすると、実際にネットワークに格納されている全てのスレーブの情報を過不足無く収集することができるので、その後の待機時間の決定処理が、実際のネットワークに対応して正しく行うことができる。
(3)マスタは、ネットワークに接続されている全てのスレーブについて、マスタからそれぞれのスレーブまでに存在するリピータの段数を取得するリピータ段数取得手段を備え、待機時間決定手段は、待機時間を通知するスレーブとの間でリピータが存在している場合、リピータ段数取得手段で取得したリピータの段数とリピータを通過する際に生じるリピータ遅延時間に基づいて、リピータを通過することに伴い生じる総遅延時間を求め、1番目からn−1番目までのスレーブがINフレームを送信するのに要する時間の総和から総遅延時間を減算してn番目に送信するスレーブについての待機時間を求めるものとすることができる。このようにすると、リピータが存在するネットワークにおいても、各スレーブから送信されたINフレームは、マスタにタイミング良く受信されるようになり、送信タイミングの最適化を図ることができる。
(4)本発明のマスタは、マスタと複数のスレーブの存在するネットワーク上で、マスタが送信したスレーブの送信タイミングの基準信号となるトリガフレームを受信したスレーブが、そのトリガフレームを受信してから予め設定された待機時間を経過後、INフレームを送信する通信システムのためのマスタであって、ネットワークを構成するスレーブのアドレスと、そのスレーブが送信するINフレームのIOデータのビットサイズと、を関連付けた登録テーブルと、その登録テーブルに格納されたスレーブのアドレスに基づいてINフレームを送信するスレーブの順番を決定し、1番目からn−1番目までの各スレーブの登録テーブルに格納されたビットサイズから、それぞれのスレーブで送信されるINフレーム全体のデータサイズを求めると共に、その求めた各INフレーム全体のデータサイズの総和から、それら1番目からn−1番目までのスレーブがINフレームを送信するのに要する時間の総和を求め、その求めた時間に基づいてn番目に送信するスレーブについての待機時間を決定する待機時間決定手段と、その待機時間決定手段で決定した各スレーブについての待機時間を当該スレーブに通知する通知手段と、を備えた。
本発明は、送信する順番を固定しつつ、各スレーブがINフレームを送信するタイミングを過度に無駄な空き時間(隙間)を生じることなく適切に設定することができる。
図2は、本発明の好適な一実施の形態を実現するネットワークシステム全体を示している。図2に示すように、このネットワークシステムは、マスタ10と、各種のスレーブ20が、フィールドバス30を介して接続されて構築されている。さらに、この例では、フィールドバス30の適宜位置にリピータ31が接続され、そのリピータ31の下位側にもスレーブ20が接続される構成を採っている。リピータ31は、通過する信号に対して波形整形をするので、このようにリピータ31を設けることで、ケーブル長を長くすることができる。マスタ10は、実際にはPLCを構成する1つのユニットであるマスタユニットにより構成される。また、図示省略するが、フィールドバス30の先端には、終端装置が接続される。
図3は、マスタ10の内部構造を示している。マスタ10は、本発明との関係で言うと、フィールドバスに接続され、実際にデータの送受を行う通信インタフェース(物理層回路)11と、その通信インタフェース11を介してマスタ−スレーブ間通信をし、スレーブ20との間でI/Oデータの送受を行ったり、所定のコマンドの送信並びにそれに基づくレスポンスの受信を行うマスタ通信ASIC12と、各種の制御を行うMPU13と、各種の制御実行時にワークエリア等として使用されるRAM14と、上記制御を行うプログラムや、各種の設定データ等が格納されたEEPROM15と、を備えている。さらに、マスタユニットの場合、図示省略するが、PLCを構成する他のユニット(CPUユニット等)と内部バスを介して通信を行うための内部バスインタフェースや、動作状態(通信状態)や異常/正常などを示すLED表示部や、ユニットのアドレスの設定などを行うための設定スイッチ等を備えている。
MPU13が行う制御としては、CPUユニットその他のユニット等と通信したり、マスタ通信ASIC12を動作させたりするようになっている。特に本発明との関係でいうと、フィールドバス30に接続されたスレーブ20を確認し、そのスレーブ20の送信タイミング(タイムドメイン)を決定し、各スレーブに設定する機能を持つ。
本実施形態では、マスタ10が決定する各スレーブの送信タイミング(マスタの出した要求(トリガフレーム)を受信してから各スレーブが送信するタイミング)は、各スレーブに設定されたアドレス順にしてINフレームの位置を固定化することを基本とし、特許文献1等に用いられた前後に送信する送信フレーム間で通信していない無駄な時間を生じることを許容する通常モードと、係る無駄の発生を抑制し、効率よく通信する最適化モードを採るようにしている。
リピータ31は、送信されてきたフレームを受信する処理,受信したフレームの波形整形をする処理,波形整形したフレームを送信する処理等を行うため、そこを通過する際に、一定の遅延が生じる。このリピータ31における遅延時間は、FAネットワークの規定により所定時間内になるように定められているので、どのメーカ・型式のリピータを使用したとしても、リピータを通過することにより生じる遅延時間は一律となる。そして、係る所定時間が、“リピータ遅延時間値”としてEEPROM15に格納されている。
図4に示すように、スレーブ20は、フィールドバスに接続され、実際にマスタ10との間でI/Oデータや各種メッセージ等の送受を行う通信インタフェース(物理層回路)21と、その通信インタフェース21を介してマスタ−スレーブ間通信をし、I/Oデータの送受を行ったり、マスタ20からの所定のコマンドの受信並びにそれに基づくレスポンスの送信を行うスレーブ通信ASIC22と、各種の制御を行うMPU23と、各種の制御実行時にワークエリア等として使用されるRAM24と、上記制御を行うプログラムや、各種の設定データ,IOデータ等が格納されたEEPROM25と、を備えている。マスタ10から送られてきた“タイムドメイン”は、スレーブ通信ASIC22内のタイムドメイン記憶部22a内に格納される。スレーブ通信ASIC22は、そのタイムドメイン記憶部22a内に格納されたタイムドメインに従って、マスタの出したトリガフレームを受信後、当該タイムドメイン経過後にフレーム(INフレーム)を送信する。
また、図示省略するが、動作状態(通信状態)や異常/正常などを示すLED表示部や、スレーブ20のアドレスの設定などを行うための設定スイッチや、電源回路等を備えている。また、スレーブ20がI/Oターミナルの場合、IO機器を接続するための端子台等も備える。
次に、マスタが行う最適化モードによる送信タイミング(タイムドメイン)を決定する機能を説明する。まず、マスタ10は、RAM14内に、送信タイミングを決定する際に必要となる各スレーブのアドレス(スレーブアドレス/ノードアドレス)と、送信フレームに含まれるINデータのビットサイズを関連付けた登録テーブルを記憶保持する。この記憶保持する登録テーブルは、マスタ10がネットワークに接続・加入されたスレーブと通信をして自動的に作成するようにしてもよいし、ユーザが設定ツール装置で作成したものをダウンロードすることでRAM14内に格納するようにしても良い。
図5は、係る登録テーブルを自動的に作成する機能を示している。まず、マスタ10のMPU13は、接続可能な各アドレスについて、冗長性を考慮したタイムドメイン値を算出する(S1)。すなわち、本実施形態でも、図1に示すように、スレーブが送信するINフレームは、ビットデータが16ビットのものを基準とし、その基準となるINフレームを送信するのに要する時間あるいはかかる時間に所定のマージンを付加した時間を、1つのタイムスロットの時間に設定し、#nのアドレスのスレーブは、#nのタイムスロットのタイミングでフレームを送信するようにしている。そして、ネットワークに接続可能なノード数(N)が決まっているので図1(a)に示すように、#0,#1,#2,……,#Nの各タイムスロットの送信開始時間であるタイムドメイン値を算出する。このとき求める各タイムドメイン値は、リピータの存在を考慮せず、マスタ10に接続されたフィールドバス30に直接接続されている(0段目)スレーブ20に対するタイムドメイン値とする。なお、係る各アドレスに対するタイムドメイン値の算出処理は、たとえば特許文献1等に開示された技術を用いて行うことができる。
次に、MPU13は、ネットワークに新規なスレーブが追加されたか否かを判断する(S2)。これは、マスタ10(MPU13)は、定期的にネットワークに接続されているスレーブを監視しており、新たにネットワークに加入されたスレーブの有無を判断する。
MPU13は、新たなスレーブの加入を検出した場合(S2でYes)、MPU13は、そのスレーブに対してステータスリード(STR)メッセージを送り、当該スレーブが記憶するステータスを取得する。そして、マスタ10(MPU13)は、取得したステータスに基づき、タイムドメイン値を算出し、ステータスライト(STR)メッセージにより、その求めたタイムドメイン値をそのスレーブ20(スレーブ通信ASIC12)に書き込む。本実施形態との関係でいうと、取得するステータスは、そのスレーブのアドレスと、入力点数(ビットデータサイズ)と、リピータ段数である。これらの情報は、スレーブ20が自己のステータス情報として保有している。なお、リピータ段数は、この登録テーブル設定機能とは別に、事前にマスタ10(MPU13)がリピータ段数調査用のメッセージフレーム(ビーコンフレーム)を送り、そのビーコンフレームを受信したスレーブは、自己のリピータ段数を認識し、ステータス情報を記憶する記憶部(RAM24等)に格納する。このビーコンフレームは、初期値としてリピータ段数情報として“0”を持ち、たとえば、ブロードキャスト等で送信され、リピータを通過する都度、リピータ段数が“+1”インクリメントされて更新される。これにより、このビーコンフレームを受信したスレーブは、受信するまでに通過したリピータの数を認識することができ、その数をリピータ段数として、ステータス情報記憶部に格納する。係る技術は、たとえば、特開2007−097157号公報等に開示されている。なお、このビーコンフレームのように、マスタ側からスレーブ側に向けて送信されたフレームに基づいてリピータ段数を求めるものに限ることはなく、これとは逆に、スレーブ側からマスタに向けてリピータ段数調査用のメッセージフレームを送信することでマスタが認識するようにしてもよい。つまり、上記のビーコンフレームと同様に、スレーブから送信されたリピータ段数調査用フレームは、初期値が0の“リピータ段数”の情報を持ち、リピータを通過する都度、リピータにてそのリピータ段数が“+1”インクリメントされる。これにより、マスタは、受信したリピータ段数調査用フレームの送信元アドレスと、フレームに格納された“リピータ段数”の情報から、各スレーブまでの間に、幾つのリピータが存在しているかを認識することができる。
また、この処理ステップS3におけるスレーブのタイムドメイン値の決定は、通常モードにおける決定処理である。具体的には、MPU13は、リピータを介していない0段目(リピータ段数=0)のスレーブに対しては、処理ステップS1で求めたアドレスと同じ番号のタイムスロットに割り当てられたタイムドメイン値を読み出し、その値をそのスレーブについてのタイムドメイン値に決定する。つまり、スレーブアドレスが#nの場合、タイムスロット#nに割り当てられたタイムドメイン値が、その#nのスレーブのタイムドメイン値となる。また、リピータの下位に存在するスレーブの場合、MPU13は、リピータ遅延に基づく補正を行う。つまり、MPU13は、対象となるスレーブのリピータ段数を取得すると共に、EEPROM15に格納されたリピータ遅延時間値を読み出し、
補正値=(リピータ段数×リピータ遅延時間値)×2
を求める。そして、その対象となるスレーブのアドレス(#n)に対応するタイムスロット#nのタイムドメイン値(0段目の基準タイムドメイン値)から、上記の補正値を減算して補正タイムドメイン値を求め、求めた値をそのスレーブに対するタイムドメイン値とする。リピータを通過することで、リピータ遅延時間値だけ遅れるので、マスタからスレーブに向けて送られたトリガフレームが、スレーブに到達するまでにリピータを通過すると、通過した段数にリピータ遅延時間値を掛けた時間(下位方向総遅延時間)だけ遅れる。つまり、マスタから送信されたトリガフレームが、リピータを介さない0段目のスレーブに到達するときよりも、リピータの下位側に存在するスレーブに到着するタイミングが、そのリピータ段数に起因する下位方向総遅延時間だけ遅れる。よって、各スレーブのINフレームの送信タイミングは、係るトリガフレームを受信した時点を基準に設定されたタイムドメイン値を経過後となるので、リピータの下位に存在するスレーブは、基準となる0段のタイムドメイン値に基づく期間よりも、上記の下位方向総遅延時間分だけ早く送信する必要がある。
同様に、スレーブから送信されたINフレームがマスタに到着するまでにリピータを通過すると、その通過する都度、リピータ遅延時間値だけ遅れる。従って、そのリピータ遅延時間値にリピータ段数を掛けることで、スレーブから送信されたINフレームがマスタに到着するまでの間に生じるリピータに起因する上位方向総遅延時間が求まる。そこで、INフレームの通信のみに着目した場合、その上位方向総遅延時間分だけ早めに送信することで、マスタに到着する(マスタ10に直接接続されているフィールドバス30を伝送される)際のタイミングは、処理ステップS1で求めた0段目のタイムドメイン値に従って、アドレス順にタイミング良く通信される。
よって、マスタから送信されるトリガフレームの伝送に基づく下位方向総遅延時間(リピータ段数×リピータ遅延時間値)と、スレーブから送信されるINフレームの伝送に基づく上位方向総遅延時間(リピータ段数×リピータ遅延時間値)の両方向(往復)のリピータによる遅延を考慮し、0段目のタイムドメイン値に、上記の補正値だけ減算した値を、補正後のタイムドメイン値とすることで、各スレーブから送信されたINフレームが、処理ステップS1で求めた0段目のタイムドメイン値に従って、アドレス順にタイミング良くマスタに到達する。なお、係るリピータ遅延時間を考慮した補正処理については、例えば、特許文献1や特開2007−097157号公報等に開示された技術を適用することができる。
このようにして求められた、リピータの有無(ある場合には、その段数)を考慮して決定したタイムドメイン値は、上述したようにステータスライトフレームにより、対応するスレーブに送られる。
また、MPU13は、処理ステップS3を実行することでステータスリードフレームにて読み出したスレーブのビットサイズを、スレーブのアドレスと関連付けたスレーブ管理テーブルを作成(追加・更新)し、スレーブ管理テーブル記憶部14aに保管する(S4)。なお、処理ステップS2の分岐判断で、新たなスレーブが検出されなかった場合、上記の処理ステップS3,S4がスキップされる。
次いで、MPU13は、設定ツール装置や、ユーザープログラム(ラダープログラム)の実行に伴う“登録テーブル生成指示”のイベントがあったか否かを判断する(S5)。生成指示が無い場合、MPU13は、その他のマスタ処理を実行する(S7)。つまり、通常のマスタスレーブ通信を実行したり、他のユニットとの間でデータを送受したりする等の処理を行う。
一方、生成指示のイベントを受信した場合、MPU13は、スレーブ管理テーブル記憶部14aに格納されたスレーブ管理テーブルの情報から、登録テーブルを生成し、登録管理テーブル記憶部14bに格納する(S6)。この生成する登録テーブルは、例えば図6に示すように、“スレーブのアドレス”と、“有効無効フラグ”と、“ビットデータサイズ”とを関連付けたテーブル構造となっている。
図6に示すように、アドレスの欄は、IN#0からIN#Nまで用意される。スレーブから送信されてくるのはINデータ(INフレーム)であるので、アドレスも、IN#nとなっている。MPU13は、スレーブ管理テーブルに格納されたアドレスに対応するビットサイズを、登録テーブルの該当箇所に格納するとともに、そのアドレスの有効無効フラグを“有効”にする。また、ビットサイズが32,42,…のように、基本サイズとなる16ビットよりも大きい場合、その大きさに合わせて連続するアドレスの有効無効フラグを“無効”にする。例えば、IN#2のように、32ビットの場合、2つのタイムスロットを占有する必要があるので、続くIN#3を“無効”にセットする。同様に、IN#5のように、48ビットの場合、3つのタイムスロットを占有する必要があるので、続くIN#6とIN#7を“無効”にセットする。
また、MPU13は、ネットワークに存在しない(スレーブ管理テーブルに登録されていない)アドレスについての有効無効フラグを、“無効”にセットする。さらに、有効無効フラグが“無効”のものについては、ビットデータサイズの欄は“0”としている。
このようにして生成した登録テーブルは、RAM14内に用意された登録テーブル記憶部14bに格納される。その後、MPU13は、処理ステップS7に移行し、その他のマスタ処理を実行する。以後、MPU13は、上述した処理ステップS2からS7までの各処理を、繰り返し実行する。
このように、本実施形態では、登録テーブルを自動的に生成するようにしたが、設定ツール装置を用いてユーザがマニュアルで設定することもできる。図7,図8は、設定ツール装置を用いた登録テーブルの設定処理を説明する、設定ツール装置のモニタ画面の図である。図7に示すように、右側のネットワーク表示ウインドウW1に、登録テーブルを作成するネットワークのネットワーク構成図を描画する。このネットワーク構成図は、設定ツール装置をネットワークに直接或いはPLCを介して接続し、当該ネットワークに加入しているノード(スレーブ)の情報を収集して作成・描画しても良いし、モニタの左側の機器リスト表示ウインドウW2に表示された部品リストの中から選択することで作成・描画しても良い。このネットワーク構成図の作成処理は、通常の設定ツール装置の機能として組み込まれているものを用いることができる。
このようにして、ネットワーク構成図が作成されたならば、図8に示すスレーブ情報登録ウインドウを開く。これは、図7のモニタ画面中の“編集”ボタンを選択し、プルダウンメニューを表示(図示省略)し、該当するメニューを指定することでモニタ画面に表示することができる。
このスレーブ情報登録ウインドウは、上側の未登録デバイス一覧表示ウインドウW3と、下側の登録デバイス一覧表示ウインドウW4を備え、当該スレーブ情報登録ウインドウを開いたときは、図7のネットワーク表示ウインドウW1に描画されていたネットワーク構成図を構成する各スレーブの情報(アドレス,型式等)が表示される。この状態で、各スレーブを選択し、図示省略するビットサイズ登録画面を表示し、そこにビットサイズを登録(入力)すると、登録デバイス一覧表示ウインドウW4に移行する。そして、すべてのスレーブに対するビットサイズの登録が完了すると、図8に示すように、すべてのスレーブが登録デバイス一覧表示ウインドウW4に表示され、設定ツール装置上での処理が完了する。
この状態で、設定ツール装置とマスタ(PLC)を接続し、モニタ画面の下方に用意された“アップロード”ボタンをクリックすると、ノードアドレスと、ビットサイズを関連付けたテーブルがマスタにロードされ、マスタの登録テーブルに格納される。
図9は、最適化モードで動作する場合のマスタ10(MPU13)の機能を示している。最適化モードへの移行は、登録テーブルの作成と同様に、設定ツール装置等による指示を受けたことに起因して行うようにする。もちろん、マスタ10にモード切替スイッチを設け、スイッチ操作によって切り替えるようにしても良い。
MPU13は、RAM14に格納された登録テーブルを読み出す(S11)。そして、MPU13は、読み出した登録テーブルに基づき、スレーブに設定する最適なタイムドメイン値を算出する(S12)。このとき求める各タイムドメイン値は、通常モードの時と同様に、リピータの存在を考慮せず、マスタ10に接続されたフィールドバス30に直接接続されている(0段目)スレーブ20に対するタイムドメイン値とする。具体的には、登録テーブル中の“有効フラグ”なアドレスと、そのアドレスのデータサイズを抽出し、まず、送信する順番は、有効フラグのアドレスを昇順に並ぶように決定する。これにより、たとえば、図6に示す例では、“IN#1”のアドレスのスレーブは存在しないので、そのアドレスに対するタイムドメイン値の設定を行わない。もちろん、IN#3やIN#6,IN#7のように、ビットサイズが16ビットよりも大きいフレームのために、その前のアドレスのスレーブに占有されているアドレスも、“無効フラグ”となっているので、そのアドレスについてのタイムドメイン値の設定も行われない。
さらに、ネットワーク上に存在するスレーブのアドレスと、そのスレーブが送信するINフレームのビットサイズから、アドレス順に並んだ各INフレームを詰めて送信タイミングを規定するタイムドメイン値を設定する。具体的には、あるアドレス(#n−1)のスレーブから送信されるINフレームが送信完了したタイミングで、次のアドレス(#n)のスレーブの送信タイミングを設定する。一例を示すと、図11のように、#0のスレーブから送信されるINフレームのビットサイズが32ビットで、#2のスレーブから送信されるINフレームのビットサイズが64ビットで、#6のスレーブから送信されるINフレームのビットサイズが16ビットとすると、通常モードでは、図11(a)に示すように、#0のスレーブから送信されるINフレームは、32ビットのため、#1に割り当てられる領域まで占有するが、ヘッダは1つであるので、2つ分のタイムスロットから少なくともヘッドサイズの1つ分だけ短く、そのINフレームが送信完了してから、#2のスレーブからINフレームが送信されてくるまでに、係るヘッダ1つ分の空き時間が生じる。同様に、#2のスレーブから送信されるINフレームは、64ビットのビットサイズを有しているので、4つ分のタイムスロットを占有する。よって、#2のスレーブから送信されるINフレームは、4つ分のタイムスロットのから少なくともヘッドサイズの3つ分だけ短く、そのINフレームが送信完了してから、#6のスレーブのINフレームが送信されるまでに、係るヘッダ1つ分の空き時間が生じる。
そこで、MPU13は、#nのスレーブがINフレームを送信完了したタイミングで、#(n+1)のスレーブがINフレームを送信するように、当該#(n+1)のタイムドメイン値を決定する。具体的には、例えば図11に示す例では、各スレーブがマスタからのトリガフレームを受信してから、INフレームを送信するタイミングである応答位置(タイムドメイン値)は、下記のサイズ分を通信するに要する時間経過後となる。もちろん、通信時間(実際の伝送や、スレーブ内での送受信処理等)のばらつきを考慮し、所定のマージンを付加するのは構わない。この求めた各スレーブに対するタイムドメイン値は、別途、RAM14等に格納するようにしても良いし、登録テーブルの追加情報として各アドレスに関連付けて格納しても良い。
スレーブ#0の応答位置=0
スレーブ#2の応答位置=0+ヘッダ+32ビット
スレーブ#6の応答位置=0+ヘッダ+32ビット+ヘッダ+64ビット
次に、MPU13は、ネットワークに新規なスレーブが追加されたか否かを判断する(S13)。つまり、マスタ10(MPU13)は、定期的にネットワークに接続されているスレーブを監視しており、新たにネットワークに加入されたスレーブの有無を判断する。
MPU13は、新たなスレーブの加入を検出した場合(S13でYes)、MPU13は、そのスレーブに対するタイムドメイン値を求めるとともに、設定する(S14)。具体的には、MPU13は、そのスレーブに対してステータスリード(STR)メッセージを送り、当該スレーブが記憶するステータスを取得する。ここで取得するステータスは、少なくとも“リピータ段数”についての情報である。本実施形態では、各スレーブが、自己のステータス情報として、アドレス,型式,IN/OUTの種類,ビットサイズその他のスレーブに関する情報に加え、ネットワークに加入された状態における自己の階層位置(リピータ段数)も保持するようにしているので、MPU13は、係るリピータ段数を、ステータスリードフレームを使って取得する。
そして、処理対象のスレーブのアドレスに基づき、S12で求めた当該スレーブ(アドレス)についての0段目におけるタイムドメイン値に対し、上記のリピータ段数に基づく補正を行い、リピータ段数を考慮したタイムドメイン値を求める。このタイムドメイン値の補正処理は、上述した通常モードにおける処理ステップS3で行ったものと同様である。つまり、MPU13は、
補正後タイムドメイン値=
タイムドメイン値−リピータ段数×リピータ遅延時間値×2

を、演算することで実際のタイムドメイン値を決定する。そして、決定したタイムドメイン値をステータスライトフレームを使い、該当するスレーブ20のスレーブ通信ASICに書き込む。
その後、MPU13は、処理ステップS15に移行し、その他のマスタ処理を実行する。以後、MPU13は、上述した処理ステップS13からS15までの各処理を、繰り返し実行する。
一方、スレーブ20(MPU23)は、図10に示すフローチャートを実行する機能を有する。すなわち、マスタからステータスライトフレームでスレーブ通信ASIC22に対してパラメータ(タイムドメイン値)が書き込まれるまで待つ(S21)。そして、タイムドメイン値が格納されたならば、MPU23は、スレーブ通信ASIC22が、格納されたタイムドメイン値にしたがってINフレームを返送する状態に遷移させる(S22)。よって、以後、スレーブ通信ASIC22は、マスタからトリガフレームを受信したスレーブ通信ASIC22は、設定されたタイムドメイン値にしたがって、INフレームを送信する。つまり、マスタから通常モードのタイムドメイン値が設定された場合には、スレーブ20は通常モードのタイミングでINフレームを送信し、最適化モードのタイムドメイン値が設定された場合には、スレーブ20は最適化モードのタイミングでINフレームを送信することになる。
この処理ステップS22による遷移が行われたならば、MPU23は、スレーブの処理を繰り返し実行する(S23)。このスレーブの処理としては、RAMに記憶されるIOデータの読み書きや、接続されたIO機器との通信や、マスタから送られてきたメッセージに対するレスポンスの作成・返信等がある。
上記の最適化モードの動作開始タイミングは、例えば以下のようにすることができる。通常、システム構築時は、任意にスレーブを追加したり削除したりする。そのため、登録したスレーブしか使用できない最適化モードでは使い勝手が悪いので、登録テーブルを使用しない通常モードでシステムを構築する。システムが完成後の本稼動時は、性能を向上させるため登録テーブルを使用する最適化モードで動作させる。また、同じシステムを複数作成する場合は、すでにシステムの構成は完成しているため、最初から最適化モードで動作させる。もちろん、これに限ることはなく、各種タイミングで最適化モードを実行させることができる。
従来の通信システムの問題点を説明する図である。 本発明に係る通信システムを実現するネットワーク構成の一例を示す図である。 マスタの内部構成の一例を示す図である。 スレーブの内部構成の一例を示す図である。 マスタのMPUに実装されるステータス情報を収集し登録テーブルを作成する機能(ステータス情報収集手段+登録テーブル作成手段)を示すフローチャートである。 登録テーブルのデータ構造の一例を示す図である。 設定ツール装置を用いて登録テーブルを登録する例を説明するモニタ画面である。 設定ツール装置を用いて登録テーブルを登録する例を説明するモニタ画面である。 最適化モードで動作するマスタのMPUの機能を示すフローチャートである。 スレーブのMPUの機能を示すフローチャートである。動作原理を説明する図である。 本発明の作用効果を説明する図である。
符号の説明
10 マスタ
11 通信インタフェース
12 マスタ通信ASIC
13 MPU
14 RAM
15 EEPROM
20 スレーブ
21 通信インタフェース
22 スレーブ通信ASIC
23 MPU
24 RAM
25 EEPROM
30 フィールドバス
31 リピータ

Claims (4)

  1. マスタと複数のスレーブとがネットワークにて接続され、前記マスタが、前記スレーブの送信タイミングの基準信号となるトリガフレームを送信し、そのトリガフレームを受信した前記スレーブが、そのトリガフレームを受信してから予め設定された待機時間を経過後、INフレームを送信する通信システムであって、
    前記マスタは、
    ネットワークを構成するスレーブのアドレスと、そのスレーブが送信するINフレームのIOデータのビットサイズと、を関連付けた登録テーブルと、
    その登録テーブルに格納された前記スレーブのアドレスに基づいて前記INフレームを送信するスレーブの順番を決定し、1番目からn−1番目までの各スレーブの前記登録テーブルに格納されたビットサイズから、それぞれのスレーブで送信されるINフレーム全体のデータサイズを求めると共に、その求めた各INフレーム全体のデータサイズの総和から、それら1番目からn−1番目までのスレーブがINフレームを送信するのに要する時間の総和を求め、その求めた時間に基づいてn番目に送信するスレーブについての待機時間を決定する待機時間決定手段と、
    その待機時間決定手段で決定した各スレーブについての待機時間を当該スレーブに通知する通知手段と、を有し、
    前記スレーブは、前記通知手段により通知され待機時間を記憶する記憶手段を有し、その記憶手段に記憶した待機時間に基づいて決定される送信タイミングで、INフレームの送信を行うようにした
    ことを特徴とする通信システム。
  2. 前記スレーブは、送信するINフレームのIOデータのビットサイズを記憶保持し、
    前記マスタは、ネットワークに接続されている全てのスレーブから、それぞれが記憶保持しているビットサイズと、アドレスとを関連付けたステータス情報を収集するステータス情報収集手段と、
    そのステータス情報収集手段で収集したネットワークに接続されている全てのスレーブのステータス情報から前記登録テーブルを作成し、登録テーブル記憶部に格納する登録テーブル作成手段と、
    を備えたことを特徴とする請求項1に記載の通信システム。
  3. 前記マスタは、ネットワークに接続されている全てのスレーブについて、前記マスタからそれぞれのスレーブまでに存在するリピータの段数を取得するリピータ段数取得手段を備え、
    前記前記待機時間決定手段は、前記待機時間を通知するスレーブとの間でリピータが存在している場合、前記リピータ段数取得手段で取得したリピータの段数とリピータを通過する際に生じるリピータ遅延時間に基づいて、リピータを通過することに伴い生じる総遅延時間を求め、前記1番目からn−1番目までのスレーブがINフレームを送信するのに要する時間の総和から前記総遅延時間を減算してn番目に送信するスレーブについての待機時間を求めるものであることを特徴とする請求項1または2に記載の通信システム。
  4. マスタと複数のスレーブの存在するネットワーク上で、前記マスタが送信した前記スレーブの送信タイミングの基準信号となるトリガフレームを受信した前記スレーブが、そのトリガフレームを受信してから予め設定された待機時間を経過後、INフレームを送信する通信システムのためのマスタであって、
    ネットワークを構成するスレーブのアドレスと、そのスレーブが送信するINフレームのIOデータのビットサイズと、を関連付けた登録テーブルと、
    その登録テーブルに格納された前記スレーブのアドレスに基づいて前記INフレームを送信するスレーブの順番を決定し、1番目からn−1番目までの各スレーブの前記登録テーブルに格納されたビットサイズから、それぞれのスレーブで送信されるINフレーム全体のデータサイズを求めると共に、その求めた各INフレーム全体のデータサイズの総和から、それら1番目からn−1番目までのスレーブがINフレームを送信するのに要する時間の総和を求め、その求めた時間に基づいてn番目に送信するスレーブについての待機時間を決定する待機時間決定手段と、
    その待機時間決定手段で決定した各スレーブについての待機時間を当該スレーブに通知する通知手段と、
    を備えたマスタ。
JP2008181673A 2008-07-11 2008-07-11 通信システム及びマスタ Pending JP2010021866A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008181673A JP2010021866A (ja) 2008-07-11 2008-07-11 通信システム及びマスタ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008181673A JP2010021866A (ja) 2008-07-11 2008-07-11 通信システム及びマスタ

Publications (1)

Publication Number Publication Date
JP2010021866A true JP2010021866A (ja) 2010-01-28

Family

ID=41706317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008181673A Pending JP2010021866A (ja) 2008-07-11 2008-07-11 通信システム及びマスタ

Country Status (1)

Country Link
JP (1) JP2010021866A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012111229A1 (ja) 2011-02-14 2012-08-23 株式会社 日立産機システム 通信システム
JP2015114810A (ja) * 2013-12-11 2015-06-22 セイコーエプソン株式会社 検出装置、センサー、電子機器及び移動体
WO2018146900A1 (ja) 2017-02-07 2018-08-16 オムロン株式会社 制御装置および通信装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280304A (ja) * 2003-03-13 2004-10-07 Omron Corp フィールドバスシステム及び通信方法並びにマスタ及びスレーブ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280304A (ja) * 2003-03-13 2004-10-07 Omron Corp フィールドバスシステム及び通信方法並びにマスタ及びスレーブ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012111229A1 (ja) 2011-02-14 2012-08-23 株式会社 日立産機システム 通信システム
JP2015114810A (ja) * 2013-12-11 2015-06-22 セイコーエプソン株式会社 検出装置、センサー、電子機器及び移動体
WO2018146900A1 (ja) 2017-02-07 2018-08-16 オムロン株式会社 制御装置および通信装置
US11068423B2 (en) 2017-02-07 2021-07-20 Omron Corporation Control device and communication device

Similar Documents

Publication Publication Date Title
JP5101523B2 (ja) 低電力無線メッシュネットワークにおけるフィールドデバイスの選択的起動
CA2558111C (en) Communication system and slave and repeater units therefor
US20140121785A1 (en) System and method for parameterizing field devices of an automation or control system
CN101374094B (zh) 数据传输方法
JP4683346B2 (ja) マスタ・スレーブ通信システムおよびマスタ・スレーブ通信方法
US20090077455A1 (en) Transmission system
JP6157523B2 (ja) データ収集装置、中継装置、及び、データ収集システム
JP2010021866A (ja) 通信システム及びマスタ
JP4205138B2 (ja) Ioユニットのステータス情報の取得方法
CN109716247B (zh) 运算装置以及控制***
JP4623291B2 (ja) Plcシステムにおけるネットワーク構成情報教示方法
JP3343036B2 (ja) プログラマブルコントローラのネットワークシステム
JP2007219870A (ja) 火災報知設備
US9160661B2 (en) Method and apparatus for full duplex serial shifting mode and switch mode data transmission
JP5380478B2 (ja) 通信システム
JP2004280304A (ja) フィールドバスシステム及び通信方法並びにマスタ及びスレーブ
JP4006605B2 (ja) リピータ遅延影響の低減化
JP2004221905A (ja) ネットワークシステムのモニタ方法及びモニタリングシステム並びにリピータ及びモニタ装置
JP5801059B2 (ja) 通信処理システム
JP2012109831A (ja) 通信システム
JP4182450B2 (ja) リピータ遅延影響の低減化
JP3947090B2 (ja) データ伝送方法
JP6845127B2 (ja) 外形監視システム、および、監視用端末
JP6737104B2 (ja) 無線通信装置、無線通信プログラム、及び無線通信システム
JP2022170803A (ja) 中継装置、通信システム、データ中継方法、及びデータ中継プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20110510

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20120614

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120627

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130704