JP4164270B2 - サーボコントローラ - Google Patents

サーボコントローラ Download PDF

Info

Publication number
JP4164270B2
JP4164270B2 JP2002069915A JP2002069915A JP4164270B2 JP 4164270 B2 JP4164270 B2 JP 4164270B2 JP 2002069915 A JP2002069915 A JP 2002069915A JP 2002069915 A JP2002069915 A JP 2002069915A JP 4164270 B2 JP4164270 B2 JP 4164270B2
Authority
JP
Japan
Prior art keywords
data
axis
memory
received
servo
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.)
Expired - Fee Related
Application number
JP2002069915A
Other languages
English (en)
Other versions
JP2003271203A (ja
Inventor
匡史 本杉
征爾 水谷
康浩 森
健司 鈴木
裕介 牛尾
博文 水上
和敏 小林
邦彦 小川
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
Yaskawa Electric Corp
Mitsubishi Electric Corp
Original Assignee
Omron Corp
Yaskawa Electric Corp
Mitsubishi Electric Corp
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, Yaskawa Electric Corp, Mitsubishi Electric Corp filed Critical Omron Corp
Priority to JP2002069915A priority Critical patent/JP4164270B2/ja
Publication of JP2003271203A publication Critical patent/JP2003271203A/ja
Application granted granted Critical
Publication of JP4164270B2 publication Critical patent/JP4164270B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Control By Computers (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、ネットワークに接続されるサーボコントローラに関するものである。
【0002】
【従来の技術】
サーボモータをネットワークを介してコントロールしようとした場合、例えば、図1に示すように、サーボモータ1に対して通電したり、サーボモータ1の状態(回転角等)を取得するサーボドライバ2と、そのサーボドライバ2とデータ伝送を行うサーボコントローラ3をネットワーク4に接続し、上記データ伝送は、係るネットワーク4を介して行うようなシステムが想定できる。
【0003】
ここで、サーボコントローラ3からサーボドライバ2に向けて伝送するデータは、制御指令データである。サーボドライバ2は、受け取った制御指令データに従い、サーボモータ1に対する通電量その他を制御し、サーボモータ1が制御指令に即した動作をするように制御する。
【0004】
また、サーボドライバ2は、サーボモータ1の所定位置に設けたセンサの出力から、サーボモータ1の回転角などの状態を取得するので、係るサーボモータ1の状態を、制御フィードバックデータとしてサーボコントローラ3にデータ伝送する。そして、その制御フィードバックデータを受け取ったサーボコントローラ3は、その受け取ったデータに基づいて次の制御指令データを生成し出力する。以後、上記処理を繰り返し実行することにより、サーボコントローラ3がサーボモータ1の動作をネットワーク4を介して制御することができる。
【0005】
ところで、それらサーボドライバ2,サーボコントローラ3の各ノードは、いずれもネットワーク4に接続されて通信を行うことから、その内部構造は、通信LSI5と、CPU6を有している。
【0006】
そして、通信LSI5では、自己宛に送られてきた受信データを取得するとともに、本来のデータ部分をCPU6に渡したり、CPU6から渡された送信用のデータに対し、送信先その他のヘッダ情報を付加して送信データを生成するとともに、所定のタイミングでネットワーク4上に送信したりする機能を有する。CPU6は、受信したデータに基づき各ノードの本体の処理を実行し、必要に応じて送信データを生成し、通信LSI5に渡す機能を有する。
【0007】
ところで、ノード内における通信LSI5からCPU6へ受信したデータを転送する場合、実際には、図2に示すように、共有メモリである受信データ用メモリ7を介して行われる。つまり、通信LSI5は、受信データを受信データ用メモリ7に転送し、CPU6は、その受信データ用メモリ7に格納されたデータを取得する処理を行う。これにより、通信LSI5とCPU6は、それぞれ所定のタイミングで受信データ用メモリ7にアクセスし、データの送受を行うことができる。
【0008】
また、本システムのネットワーク4では、通信可能な時期が決まっており、通信LSI5は、割り当てられた所定のタイミングでデータの送受を行うようになっている。従って、受信データ用メモリ7内の「受信データ1」,「受信データ2」,…「受信データn」は、今回の受信処理で受信できた各ノード毎の受信データである。つまり、例えばノードがサーボコントローラ3であり、サーボドライバ2の2つのサーボモータ1からのデータは、1つの受信データ内に格納される。よって、各回毎にnの値は異なることはある。
【0009】
一方、受信データのデータフォーマットの一例を示すと、図3に示すように、ヘッダ部とデータ部に分かれている。ヘッダ部には送信先ノードアドレスや送信元ノードアドレス並びにそれに続くデータ部がどこまでかを特定するためのデータ長などが格納される。そして、データ部に、実際のサーボモータの状態などの伝送すべきデータが格納される。なお、係るフォーマット自体は一般的なものである。
【0010】
さらに、1つの受信データは、ノード単位となっているので、1つのノードに複数のサーボモータ1が接続されている場合には、その複数のサーボモータ1についてのデータが一緒に格納される。なお、各サーボモータに関するデータを軸データと称する。なお、サーボモータに関するデータとしては、例えば、速度データや位置データがある。つまり、サーボドライバがサーボモータの速度制御をする場合には、軸データとして速度データを用いる。また、位置制御をする場合には、軸データとして位置データを用いる。
【0011】
また、サーボコントローラ3からのデータは、軸データである。従って、図1に示すサーボドライバ2から送られてきた受信データは、図3(b)の表現形式をとると、軸データヘッダ部と軸データの組が3組格納されることになる。
【0012】
一方、受信データ用メモリ7に格納されたデータをCPU6が読み出すための処理アルゴリズムは、図4に示すようになっている。すなわち、まず、データが受信されるのを待ち(ST1)、受信完了(たとえば、所定の通信時間終了)された場合には、受信データ処理を行う(ST2)。つまり、ヘッダ部のデータ長を参照し、その受信データのデータ部分を抽出する処理等を行う。
【0013】
次いで、データ部分の各受信データのデータ部に含まれる軸データの処理を行う。つまり、軸データヘッダ部を解釈し、どの軸データについてのデータでそのデータ長がいくつであるかなどを判断する(ST3)。そして、順番に1つの軸データを取得し、その軸データの処理を行う(ST4)。係る軸データ処理を、処理対象の受信データに含まれる軸データについて順次実行する。そして、全ての軸データの処理を実行したならば(ST5の分岐判断でYes)、ステップ6に進み、今回受信した全ての受信データ、つまり、受信データ用メモリ7に格納された全てのデータに対する処理を行ったか否かを判断する(ST6)。そして、未処理の受信データがあると、それに対してステップ2からの処理を実行する。このようにして全ての受信データについての処理を実行すると、今回の受信処理を終了する。
【0014】
なお、実際には、上記したフローチャートに示す処理は、受信データ用メモリ7に対して逐次アクセスして行うのではなく、最初にデータ転送を行い受信データ用メモリ7に格納されたデータをCPU6内の作業メモリ内に格納し、その作業メモリに対してアクセスすることにより実行する。また、ドライバソフト6aが受信データ内の軸データを識別している。
【0015】
【発明が解決しようとする課題】
しかしながら、上記した従来の装置では、ドライバソフト6aが受信データ内の軸データを識別するため、データ受信から最終的な軸データの識別までに、非常に時間がかかってしまう。そのため、CPU6上のプログラムの処理が増えてしまい、プログラムが複雑化するばかりでなく、CPU6の負荷が増大してしまい、高速な処理に対応しきれなくなる。しかも、上記したように、受信データ用メモリ7からCPU6にデータ転送を行うため、CPU6に負荷が更にかかり上記した問題はより顕著となる。
【0016】
さらに、1回の受信処理で受信する軸データ数は不定であるが、最大は全てのサーボドライバ(軸データ)を受信することがあるので、使用する受信データ用メモリ7のメモリ容量は、制御対象の軸の数分だけ用意する必要があり、係る軸数の増加に伴いメモリ資源も増大してしまうという問題も生じる。
【0017】
この発明は、共有メモリに格納された軸データをコントローラに読み出す際に、そのコントローラ(CPU)の負荷を低減するとともに、使用するメモリ容量の削減を図ることができ、ノードひいてはネットワーク全体のスムーズなデータ伝送を可能にするサーボコントローラを提供することを目的とする。
【0018】
【課題を解決するための手段】
この発明によるサーボコントローラは、ネットワークに接続されたサーボコントローラと、複数の制御対象の軸である複数のサーボドライバとの間で時間的に複数の通信フェーズに分けて、繰返しデータ伝送を行い、サーボコントローラがサーボドライバに接続されたサーボモータの状態を示す軸デーを受信するとともにサーボモータそれぞれに対する制御指令データを送信することによりサーボモータそれぞれの動作を制御するシステムにおけるサーボコントローラであって、CPUと通信部とを含む。そして、通信部は、1つの通信フェーズにおいて、サーボモータの状態を示す軸データを受信すると、予め記憶保持された前記軸毎に割り当てられたアドレス情報に基づいて、受信した軸データを、その割り当てられた受信データ用メモリのアドレス領域に格納するとともに、送信データ用メモリに格納された前記CPUからの前記制御指令データをサーボドライバへ送信する機能を備える。また、CPUは、予め確定した通信フェーズ数の繰返しの中で、フェーズ番号を制御することによって現在の通信フェーズ番号から今回の通信フェーズで制御対象となるサーボモータ(軸)を特定し、繰返される通信フェーズにおいて、前記特定した制御対象となるサーボモータの軸データを、予め記憶保持されたフェーズ番号に対応した軸毎に割り当てられたメモリのアドレス情報に基づいて前記受信データ用メモリから取り込み、取り込んだ軸データに基づいて制御指令データを生成し、その生成した制御指令データを送信データ用メモリへ格納する機能を備えるようにした。フェーズ管理機能は、フェーズ管理部22に対応する。
【0019】
前記予め記憶保持されたフェーズ番号に対応した前記軸毎に割り当てられたメモリのアドレス情報は、1つの通信フェーズにおいてデータ伝送の対象となる前記軸データに対しては、その軸毎に前記メモリ上の異なる領域に割り当てるとともに、異なる通信フェーズのそれぞれにおいてデータ伝送の対象となる前記軸データ同士については、割り当て領域を共有して割り当てるようにすると良い。
【0020】
前記通信部は、軸毎に、1つの通信フェーズにおいて新たにデータを書き込んだか否かのステータス情報を記憶する受信データステータス記憶手段を備え、前記メモリの対応するアドレスに前記軸データを格納した際に、対応する軸データのステータス情報をデータ書き込み済みにするようにしたものであり、前記CPUは、前記受信データステータス記憶手段のステータス情報を参照し、データ書き込み済みである旨を認識した軸データのみを前記メモリから読み出し、読み出しを行ったならば該当するステータス情報の設定をクリアするように構成すると良い。ステータス情報を確認することにより、軸データの内容が更新されたもののみをコントローラ(CPU)が読み出すことができる。よって、更新されていない軸データの無駄な読み出しをしなくて済むので、コントローラの負荷が更に軽減される。
【0022】
この発明によれば、通信装置(通信部)が、軸データを軸毎に共有メモリの所定領域に格納するので、コントローラ(CPU)側で軸データヘッダ部を解釈する必要がなくなり、データ受信から軸データ抽出までを高速に行え、プログラムを単純化でき、コントローラ(CPU)の負荷を削減できる。なお、通信装置側はその分負荷が増えるものの、コントローラに比べると、処理する全体量が少ないので、十分対処できる。
【0023】
しかも、本発明では、前記ネットワークに接続される各軸(サーボモータ)の軸データは、複数のフェーズに分けて送受信するとともに、前記軸ごとに記憶する領域は、同一のフェーズで送受信される軸データに対しては前記共有メモリ上の異なる領域に割り当てるとともに、異なるフェーズで送受信する軸データ同士は、同一の領域に割り当てるようにしているので、共有メモリの一つの領域が複数の軸(サーボモータ)の軸データで共有される。その結果、軸(サーボモータ)の総数に比べて、使用するメモリ容量が少なくなる。
【0024】
さらに、軸データを転送,格納する領域を特定し、専用領域とすることにより、共有メモリに格納された受信データを、一旦コントローラ側へ転送する必要もなくなり、軸データを受信データ用の記憶部からコントローラ側のメモリエリアへ転送する処理の必要がなくなり、その点でも処理を高速化できる。
【0027】
さらにまた、軸毎に、データ転送先のコントローラが使用するか否かの情報を記憶する受信制御記憶部を設け、前記データ格納手段は、前記受信制御記憶部をアクセスし、使用する軸データのみを前記共有メモリに格納するようにすると好ましい。
【0028】
係る構成によると、コントローラが必要とする軸データのみが共有メモリに登録されるので、通信装置は不要な軸データを受け取ったとしても、共有メモリに書き込む必要が無く、負荷が軽減される。
【0030】
この発明の以上説明した構成要素は可能な限り組み合わせることができる。この発明によるサーボコントローラを構成する各手段を専用のハードウェア回路によって実現することができるし、プログラムされたコンピュータによって実現することもできる。
【0031】
【発明の実施の形態】
図5は、本発明が適用されるネットワークの一例を示している。図1と比較すると明らかなように、基本的なハードウェア構成は、従来と同様である。すなわち、サーボモータ1に対して通電したり、サーボモータ1の状態(回転角等)を取得するサーボドライバ2と、そのサーボドライバ2とデータ伝送を行うサーボコントローラ3をネットワーク4に接続し、上記データ伝送は、係るネットワーク4を介して行う。
【0032】
そして、サーボコントローラ3からサーボドライバ2に向けて制御指令データを送り、サーボドライバ2は、受け取った制御指令データに従い、サーボモータ1に対する通電量その他を制御し、サーボモータ1が制御指令に即した動作をするように制御する。
【0033】
また、サーボドライバ2は、サーボモータ1の所定位置に設けたセンサの出力から、サーボモータ1の回転角などの状態を取得するので、係るサーボモータ1の状態を、前記制御指令データに対するレスポンスとして、制御フィードバックデータをサーボコントローラ3にデータ伝送する。そして、その制御フィードバックデータを受け取ったサーボコントローラ3は、その受け取ったデータに基づいて次の制御指令データを生成し出力する。以後、上記処理を繰り返し実行することにより、サーボコントローラ3がサーボモータ1の動作をネットワーク4を介して制御することができる。
【0034】
ここで、本実施の形態では、各サーボドライバ2が1つのサーボモータを制御するようにしている。さらに、フェーズ管理を行い、制御指令データ,制御フィードバックデータの送受信を複数のフェーズに分けて実行するようにしている。すなわち、図5に示すように制御対象の軸(サーボドライバ2)が4軸有り、それを2つのフェーズに分けて送受信する場合を想定すると、例えば図6に示すように、まず第1のフェーズではサーボコントローラ3から、軸1,軸2のサーボドライバに対して制御指令データを送り、そのレスポンスとして軸1と軸2のサーボドライバ2から制御フィードバックデータがサーボコントローラ3に向けて送られる。この第1フェーズでは、軸3,軸4のサーボドライバ2とサーボコントローラ3との間ではデータの送受信は行われない。そして、次の第2フェーズでは、サーボコントローラ3から、軸3,軸4のサーボドライバ2に対して制御指令データを送り、そのレスポンスとして軸3と軸4のサーボドライバ2から制御フィードバックデータがサーボコントローラ3に向けて送られる。この第2フェーズでは、軸1,軸2のサーボドライバ2とサーボコントローラ3との間ではデータの送受信は行われない。
【0035】
以後、上記処理を繰り返し行うことにより、2回のフェーズで全ての軸データの送受が行える。もちろん、各フェーズで送受対称となる軸データは、任意の組み合わせを取ることができ、また、フェーズの分割数も任意である(送受信対象の軸の総数等から決定する)。
【0036】
図7は、本発明の好適な一実施の形態を示している。同図に示すように、本実施の形態のノードは、サーボコントローラ3であって、通信LSI10と、CPU20を備えている。
【0037】
そして、通信LSI10は、各種のデータ処理を行う制御部11と、記憶部12を有している。つまり、本形態では、受信データを一時的に記憶する共有メモリも、通信LSI10内に設けている。また、本発明では、通信LSI10の通信処理にIEEE1394を利用している。良く知られているように、IEEE1394には、定期的に優先に送信されるIsochronous Packet、と非同期メッセージとしてAsynchronous Packetがある。Isochronous Packetは、同期パケットで各局が定期的(送信サイクルが125μsec毎)に送信できる。本発明では、軸データをIsochronous Packetで送信する。したがって、125μsecの周期での軸データの送受信が可能となり、換言すると、125μsecの周期でのサーボの制御が可能となる。
【0038】
次に各部について詳述する。制御部11は、ネットワーク4に接続可能で、そのネットワーク4に接続された他のノードとの間でデータ通信可能な通信処理部11aと、受け取った受信データを記憶部12に格納する軸データ指定領域転送部11bを有している。
【0039】
記憶部12には、受信系として、受信データ用メモリ12aと、指定受信領域用メモリ12b並びに軸受信データステータスレジスタ12cを有している。受信データ用メモリ12aは、従来と同様に受信データを記憶するためのメモリ領域であるが、従来と相違するのは軸毎に割り当てたアドレスに格納するようにしている。しかも、1つのアドレスに異なるフェーズで送受信する複数の軸を割り当てるようにしている。そして、その軸データの割り当てを特定する情報を指定受信領域用メモリ12bに格納する。更に、送信系として、送信データを記憶する送信データ用メモリ12gが設けられている。
【0040】
受信系について更に説明する。指定受信領域用メモリ12bに、m個分の軸データを登録する受信データ用メモリ12a内のアドレスを特定する。すなわち、指定受信領域用メモリ12bの「第1指定addr」には、「軸1データ」を格納する受信データ用メモリ12a内のアドレスを記録する。同様に、「第2指定addr」には、「軸2データ」用のアドレスを記録し、…、「第m指定addr」には、「軸mデータ」用のアドレスを記録する。
【0041】
本実施の形態では、m個分の軸データをN回の複数のフェーズで送受信するようにしたため、各フェーズで送受信する軸数を均等に配置すると、1回のフェーズで送信する軸数の最大値Xは、(m/N)個(小数点以下切り上げ)となる。そこで、受信データ用メモリ12a内に、X個分の軸データの格納エリアを確保し、同一のフェーズで送受信する軸を格納する領域(アドレス)を、上記X個分の何れかの格納エリアに割り付ける。従って、受信データ用メモリ12a内の同一のアドレスには、同一のフェーズで送受信する軸データが重複して割り当てられることはないが、異なるフェーズで送信される軸データは、同一のアドレスに割り当てられ、共有することになる。
【0042】
そして、具体例を挙げて説明すると、軸数が6個(m=6)で、3回のフェーズ(N=3)に分けて軸データを送受信することを想定すると、1回のフェーズで送信する軸データ数は、2個となるので、受信データ用メモリ12aと指定受信領域用メモリ12bのデータ構造は、図8に示すようになる。ここでは、受信データ用メモリ12a中の2つのアドレス(「addrA」と「adderB」)を軸データを格納するためのエリアに確保し、「addrA」には軸1データ,軸3データ,軸5データの各データを割り付け、「addrB」には軸2データ,軸4データ,軸6データの各データを割り付ける。そして、実際に各「addrA」と「adderB」にどの軸データが格納されているかは、現在のフェーズを確認することにより認識できる。
【0043】
そして、この記録するアドレスの指定は、CPU20が行う。つまり、初期設定として、CPU20(ドライバソフト21)によって事前に指定受信領域用メモリ12b内の各領域に、m個分の軸データのアドレスを登録する。具体的には、図9に示すフローチャートを実施することにより行う。
【0044】
すなわち、まず、制御対象軸数(m)と通信フェーズ数(N)を確定する(ST11,ST12)。制御対称軸の数は、システム構成から一義的に決定される情報であるので、ユーザが入力した情報を取得する。また、通信フェーズ数は、1回の通信に割り当てられる時間や、1つのデータを操守するために要する時間並びに制御対象軸数などから適正な値が決定される。そして、最適な通信フェーズ数を算出するようにしても良いが、本実施の形態では、このフェーズ数もユーザからの入力により確定する。つまり、ステップ11,12の処理は、いずれもユーザが入力した値を取得し、確定する。
【0045】
次に、1フェーズ値に通信する制御軸数を算出する(ST13)。これは、制御対象軸数(m)を通信フェーズ数(N)で除算し、得られた「商」と「あまり」から簡単に求めることができる。すなわち、1回のフェーズ当りに送受信する軸数は、算出した「商」或いは「商+1」となり、「あまり」の数分だけ「商+1」となる。よって、最大送受信数Xは、「商+1」となるので、受信データ用メモリ12aには、係るX個分の記憶エリアを確保すれば良いことになる。
【0046】
次いで、全軸指定addrを算出する(ST4)。これは、例えば軸番号順に対象となるフェーズ番号と、指定addrを設定する。つまり、先頭からX個分が第1フェーズでの送受信対象とし、X+1番目から2X番目までが第2フェーズでの送受信対象とする。以下、上記「あまり」の回数分だけX個ずつを1つのグループとしてフェーズ番号を設定し、それ以降は、(X−1)個ずつを1つのグループとしてフェーズ番号を設定する。さらに、各フェーズ毎に、最初の軸から順番に、割り当てられた指定addrを割り付ける。これにより、例えば図10に示すようなテーブルが作成される。
【0047】
このようにして全ての軸に対して、フェーズ番号と指定addrを割り振ったならば、実際に指定受信領域用メモリ12bに格納し、前処理としての設定を終了する。また、図10に示したテーブルは、例えばCPU20側で保持したり、各種の記憶部に格納する。
【0048】
そして、実際の稼働時には、軸データ指定領域転送部11bは、通信処理部11aを介して受信した受信データの内容を解析し、軸データ毎に分離する。つまり、本形態における受信データは、図3(c)に示すように、軸データヘッダ部には送信元軸番号と送信先軸番号があり、この軸番号に基づき指定受信領域用メモリ12bをアクセスし、軸データの登録アドレス(指定addr)を読み出し、その読み出したアドレスで特定される受信データ用メモリ12aに、軸データを記憶する。なお、この記憶する軸データは、ヘッダの軸データ長を参照して受信データから対応する部分のデータを読み出すことにより取得できる。
【0049】
一方、CPU20は、各軸データの登録アドレスはわかっている(自己が指定している)とともに、フェーズ管理部22によって、現在のフェーズ番号が制御されるので、図10に示したテーブルにより、現在のフェーズ番号において制御対象となっている軸番号もCPU20側でわかっている。従って、現在受信データ用メモリ12a内の所定アドレスに記録されたデータが、どの軸データのものかがわかるので、係るデータを読み出し、取り込むことができる。
【0050】
ところで、通信LSI(軸データ指定領域転送部11b)側は、現在のフェーズが何番であるかは分からないので、受信した軸データは、そのまま軸番号をキーにして指定受信領域用メモリ12bを参照し、所定の受信データ用メモリ12aの記憶エリアに格納する。このとき、通常であれば、図6にも示したとおり、サーボコントローラ3から、現在のフェーズにおける対象の軸のサーボドライバに対して制御指令データが送られ、そのレスポンスとしてその軸のサーボドライバ2から制御フィードバックデータが返信されてくるので、受信した軸データ指定領域転送部11bは、現在のフェーズが何番であるかを知らなくても、正規の軸データのみを受信し、所望の記憶エリアに格納することができる。
【0051】
しかし、何らかの原因によって、現在のフェーズの対象外の軸データを受信した場合には、受信データ用メモリ12aの同一の記憶エリア(アドレス)を指定addrとする軸データを複数受信することになり、係る場合には、受信した複数のデータをその都度受信データ用メモリ12aに格納する。従って、正規の軸データを先に受信してしまうと、係る記憶エリアに保持されるデータは、その後に受信した正規でない軸データの内容に書きかえられてしまうという問題がある。
【0052】
さらに、正規の軸データが受信できなかった場合には、本来その正規の軸データが格納されるべき記憶エリアには、前回のフェーズの際に受信した軸データが格納されているため、そのままでは、CPU20は誤ったデータを取り込んでしまう。
【0053】
そこで、本実施の形態では、軸受信データステータスレジスタ12cを設け、CPU20は、受信データ用メモリ12aからデータを取り込むに先立ち、このレジスタ内容を参照することにより、正規の軸データのみを取得するようにしている。
【0054】
すなわち、この軸受信データステータスレジスタ12cは、図11に示すように、該当する軸データに最新のデータがあるか否かのステータス情報を格納するものである。ステータスが「1」の場合には、新たに書き込まれたデータがあることを意味し、ステータスが「0」の場合には新たに書き込まれたデータがないことを意味する。
【0055】
従って、CPU20は、読み出すサイクル毎に、軸受信データステータスレジスタ12cを参照し、受信すべき軸データ(ステータスが「1」)を認識し、当該軸データのみを受信データ用メモリ12aから読み出すことになる。係る処理を行うには、軸データ指定領域転送部11bが、軸データを受信データ用メモリ12aに格納した場合に、該当する受信軸のステータスを「1」に設定する。一方、CPU20は、今回のフェーズに伴うデータの読み出しを行ったならば、該当する各受信軸のステータスを「0」に設定(クリア)する。
【0056】
これにより、各フェーズのデータを読み出す前に、軸受信データステータスレジスタ12cを参照し、正常な軸データのみを受信するようにしている。すなわち、今回のフェーズで受信すべきでない受信軸のステータスが「1」になっている場合には、その「1」となった受信軸が格納される指定addrに格納された軸データは、正規のものか否かが確定できない。そこで、係る不定のものは受信しないようにすることにより、誤ったデータに基づく誤動作を防止する。
【0057】
また、今回のフェーズで受信すべき正規の受信軸のステータスが「0」になっている場合には、その「0」である受信軸に割り振られた指定addrには、それ以前のフェーズで受信した他の軸データのものが格納されているので、受信しないようにすることにより、誤ったデータに基づく誤動作を防止する。
【0058】
そして、上記処理を行うためのCPU20の具体的な受信データ取得処理は、図12のフローチャートに示すようになっている。すなわち、CPU20がフェーズの管理をしているので、現フェーズを認識する(ST21)。つまり、現在のフェーズ番号から、今回のフェーズで送受信される軸データの番号を認識する。
【0059】
次に、制御対象外の軸データの受信の有無を判断する(ST22)。具体的には、軸受信データステータスレジスタ12cをアクセスし、今回のフェーズにおける制御対象外の軸データのステータスが、「1」になっているか否かを判断する。そして、「1」になっているものがあると、制御対象外軸受信ありと判断し、異常軸処理を行う(ST23)。この異常軸処理としては、例えば、データログを取ったり、異常を通知することなどがある。さらに、現フェーズでの制御対象外の軸データのステータスと、その軸データと同一の記憶エリア(指定addr)に割り付けられた正規の軸データのステータスを共に「0」にリセットする。
【0060】
ステップ22の分岐判断で「なし」或いはステップ23の処理を実行後、ステップ24に進み、現フェーズの制御対象軸に対する処理を実行する。実際には、ステップ23の異常処理により、制御対象外の軸と、それに関連する正規の軸のステータスが「0」になっているので、軸受信データステータスレジスタ12cでステータスが「1」になっている全ての軸データを読み出す。そして、次のフェーズにおける受信に備え、ステータスを全て「0」にリセットする。
【0061】
その後、現フェーズの番号を1加算した値を次フェーズの番号にセットし(ST25)、その次フェーズが最大フェーズ(X)を越えたか否かを判断する(ST26)。そして、越えた場合には、次フェーズを1にセットし、越えない場合には、ステップ25で求めた番号が、次フェーズに確定する。
係る処理を繰り返し実行することになる。そして、ステップ25から27によって決定された次フェーズが、次回の処理における現フェーズとなる。
【0062】
この図12と図4を比較すると明らかなように、本形態によれば、CPU20は軸データを直接読み出すことができ、受信データ処理や軸データヘッダ解析処理などが不要となるので、処理が簡単に行え、負荷が削減される。
【0063】
一方、軸データの送信系であるが、図7に示したように通信LSI10内の共有メモリたる記憶部12内に送信データ用メモリ12gを設けたことは上述したとおりである。そして、送信データ用メモリ12gには、そのノード(サーボコントローラ3)が今回のフェーズで送受信する相手に対して送信する制御指令データが格納される。そして、CPU20は、送信すべきサーボドライバ2に対する制御指令データを、任意のタイミングで送信データ用メモリ12gに格納する。このとき、CPU20は、フェーズ管理部22により、今回のフェーズで送受信すべき制御指令データ及びそのデータを格納する送信データ用メモリ12g内のアドレスを知っており、軸データ単位(サーボドライバ2単位)で格納することができるようになっている。
【0064】
一方、通信処理部11aは、IEEE1394に従い、125μsec間隔で、軸データを含む送信データ(図3に示すデータ構造)を送信する。つまり、所定のタイミングで送信データ用メモリ12gに格納された全ての軸データを含むデータ(図3(a)の「データ」部分)を、通信処理部11a内のFIFOに書き込み、更に図3(a)に示す「ヘッダ部」を付加して送信データを作成した後、送出する。このFIFOにデータを格納後、送信データを作成・送出する処理は従来と同様である。もちろん、データの書込領域は、FIFOに限るものではなく、他の形式(メモリエリア等)もある。
【0065】
本形態によれば、通信LSI10内に共有メモリである記憶部12を用意し、送信すべき軸データを一旦送信データ用メモリ12gに格納するようにしたため、CPU20は、変更のあった軸データのみを記憶させるだけで、通信LSI10が最終的な送信データを作成し、送出するので処理が軽減される。
【0066】
図13は、本発明の第2の実施の形態を示している。本実施の形態では、軸データ指定領域転送部11bに替えて、軸データ転送領域書込部11dを設けている。また、これに併せて、記憶部12内には、指定受信領域用メモリ12bに替えてインデックスメモリ領域用メモリ12dを設けている。
【0067】
つまり、第1の実施の形態では、受信データ用メモリ12aに格納する軸データのアドレスの指定を、CPU20側から設定するようにしたが、本実施の形態では、通信LSI10(軸データ転送領域書込部11d)側が係るアドレスの指定を行うようにした。
【0068】
具体的には、図14に示すように、初期設定として軸データ転送領域書込部11dがインデックスメモリ領域用メモリ12d内の各領域に、m個分の軸データのアドレスを登録する。このとき、図9に示した処理を行い、フェーズ数と各フェーズでの制御対象(送受信対象)となる軸数を確定し、転送addrの割り付けを行う。
【0069】
そして、実際の稼働時には、軸データ転送領域書込部11dは、通信処理部11aを介して受信した受信データの内容を解析し、軸データ毎に分離し、検出した軸番号に対応する受信データ用メモリ12a内の所定アドレスに軸データを格納する。また、この格納に伴い、軸受信データステータスレジスタ12cのステータスを「1」にセットする。
【0070】
一方、CPU20(ドライバソフト21)は、図12に示すフローチャートを実行し、現在のフェーズ番号に基づき、インデックスメモリ領域用メモリ12dを参照し、現フェーズの対象となっている軸データの転送addrを読み出し、その読み出したアドレスで特定される受信データ用メモリ12aを読み出すことにより、正規の軸データを取得できる。そして、その読み出し等に伴い、該当する受信軸のステータスを「0」に設定(クリア)する。なお、その他の構成並びに作用効果は、上記した第1の実施の形態と同様であるので、対応する部材に同一符号を付し、その詳細な説明を省略する。
【0071】
図15は、本発明の第3の実施の形態を示している。本実施の形態では、記憶部12内の軸受信データステータスレジスタ12cに替えて、軸データ受信制御レジスタ12eを設けている。この軸データ受信制御レジスタ12eは、図16に示すように、CPU20側が必要とする軸番号に該当する軸受信制御レジスタ領域に「1」をセットする。そして、軸データ転送領域書込部11dは、受信データのうち、軸受信制御レジスタ領域に「1」がセットされた軸データのみを書き込む。
【0072】
このようにすると、CPU20が、現フェーズで対象となっている軸データのみを「1」にセットし、他を「0」にセットすることにより、仮に、現フェーズで対象となっていない軸データを受信したとしても、この軸データ受信制御レジスタ12eの値が「0」になっているので、受信データ用メモリ12aには格納されない。よって、図12に示すフローチャートにおける異常判定処理(ST22)は設けなくても良くなり、処理が簡単になり迅速に実行できる。但し、この場合でも、正規の軸データが受信できずに、前回のデータがそのまま残っていることによる対処はできないので、第1の実施の形態のように受信の有無(ステータス)に関する情報を取得しておくと好ましい。
【0073】
なお、その他の構成並びに作用効果は、上記した第1の実施の形態と同様であるので、対応する部材に同一符号を付し、その詳細な説明を省略する。また、本実施の形態では、第1の実施の形態を基本として説明したが、第2の実施の形態を基本として構成することももちろんできる。
【0074】
図17は、本発明の第4の実施の形態を示している。本実施の形態では、上記した第1から第3の実施の形態の機能を組み合わせたものである。そして、本実施の形態では、モード設定部11fを更に設け、軸データ指定領域転送部11bと軸データ転送領域書込部11dを択一的に切り替えるようにしている。また、択一的に使用することにより、指定受信領域・インデックスメモリ領域用メモリ12fを指定受信領域メモリ12bとインデックスメモリ領域用メモリ12dのいずれかの領域として使用することができる。さらに、モード設定部11fは、軸データ受信ステータスレジスタと軸データ受信制御レジスタの使用の有無も設定できるようにしている。
【0075】
更に、上記した各実施の形態では、いずれも受信データを格納する受信データ用メモリ12aを1つ設けた例を示しているが、実際には2個設け、適宜切り替えて使用する。つまり、CPU20がデータを読み出している場合には、通信LSI10(制御部11)が他の受信データ用メモリに対してデータの書き込みを行うようにする。これにより、CPU20と通信LSI10が、ともに任意のタイミングで読み出し或いは書き込み中を行うことができる。この切替は、フラグ管理をすることにより行える。
【0076】
さらにまた、上記した各実施の形態では、記憶部12を通信LSI10内に設けたが、CPU20側に設けても良いし、別途独立した記憶部として設置しても良い。
【0077】
【発明の効果】
以上のように、この発明では、通信装置側で受信データの中から軸データを抽出し、共有メモリには軸データ単位で格納するようにしたため、コントローラは、共有メモリから必要な軸データをそのまま直接読み出すことができるので、コントローラ(CPU)の負荷が軽減され、その軽減された分、他の処理を実行することができ、効率よく高速処理ができる。しかも、複数のフェーズに分けて軸データを送受信するようにしたため、異なるフェーズで送る軸データ同士を同一の記憶エリアに割り当てることができるので、メモリ容量を削減することができる。
【図面の簡単な説明】
【図1】従来のネットワークシステムの一例を示す図である。
【図2】従来のノードの内部構造を示す図である。
【図3】受信データのデータフォーマットの一例を示す図である。
【図4】従来のCPUの機能を示すフローチャートである。
【図5】本発明が適用されるネットワークシステムの一例を示す図である。
【図6】図5に示すネットワークシステムにおけるデータ通信制御の一例を示す図である。
【図7】本発明の第1の実施の形態を示すブロック図である。
【図8】受信データ用メモリと、指定受信領域用メモリのデータ構造の一例並びにそれを使用してデータ伝送をする機能を説明する図である。
【図9】前処理機能を説明するフローチャートである。
【図10】図9に示す前処理機能を実施して得られた各軸データに対して設定されたデータの一例を示すテーブルである。
【図11】軸受信データステータスレジスタのデータ構造の一例並びにそれを使用してデータ伝送をする機能を説明する図である。
【図12】本発明のCPUの機能を示すフローチャートである。
【図13】本発明の第2の実施の形態を示すブロック図である。
【図14】受信データ用メモリと、インデックスメモリ領域用メモリのデータ構造の一例並びにそれを使用してデータ伝送をする機能を説明する図である。
【図15】本発明の第3の実施の形態を示すブロック図である。
【図16】軸データ受信制御レジスタのデータ構造の一例並びにそれを使用してデータ伝送をする機能を説明する図である。
【図17】本発明の第4の実施の形態を示すブロック図である。
【符号の説明】
1 サーボモータ
2 サーボドライバ
3 サーボコントローラ(ノード)
4 ネットワーク
5 通信LSI
6 CPU
7 受信データ用メモリ
11 制御部
11a 通信処理部(受け取る手段)
11b 軸データ指定領域転送部(軸データ識別手段,データ格納手段)
11d 軸データ転送領域書込部(軸データ識別手段,データ格納手段)
11f モード設定部
12 記憶部(共有メモリ)
12a 受信データ用メモリ
12b 指定受信領域用メモリ
12c 軸受信データステータスレジスタ(受信データステータス記憶手段)
12d インデックスメモリ領域用メモリ
12e 軸データ受信制御レジスタ(受信制御記憶部)
12f 指定受信領域・インデックスメモリ領域用メモリ
20 CPU(コントローラ)
21 ドライバソフト(軸データを読み出す機能)
22 フェーズ管理部

Claims (3)

  1. ネットワークに接続されたサーボコントローラと、複数の制御対象の軸であるサーボドライバとの間で時間的に複数の通信フェーズに分けて、繰返しデータ伝送を行い、サーボコントローラがサーボドライバに接続されたサーボモータそれぞれの状態を示す軸データを受信するとともにサーボモータそれぞれに対する制御指令データを送信することによりサーボモータの動作を制御するシステムにおけるサーボコントローラであって、
    CPUと通信部とを含み、
    前記通信部は、1つの通信フェーズにおいて、サーボモータの状態を示す軸データを受信すると、予め記憶保持された前記軸毎に割り当てられたアドレス情報に基づいて、受信した軸データを、その割り当てられた受信データ用メモリのアドレス領域に格納するとともに、送信データ用メモリに格納された前記CPUからの前記制御指令データをサーボドライバへ送信する機能を備え、
    前記CPUは、予め確定した通信フェーズ数の繰返しの中で、フェーズ番号を制御することによって現在の通信フェーズ番号から今回の通信フェーズで制御対象となるサーボモータを特定し、繰返される通信フェーズにおいて、前記特定した制御対象となるサーボモータの軸データを、予め記憶保持されたフェーズ番号に対応した軸毎に割り当てられたメモリのアドレス情報に基づいて前記受信データ用メモリから取り込み、取り込んだ軸データに基づいて制御指令データを生成し、その生成した制御指令データを送信データ用メモリへ格納する機能を備えた
    ことを特徴とするサーボコントローラ。
  2. 前記予め記憶保持されたフェーズ番号に対応した前記軸毎に割り当てられたメモリのアドレス情報は、
    1つの通信フェーズにおいてデータ伝送の対象となる前記軸データに対しては、その軸毎に前記メモリ上の異なる領域に割り当てるとともに、
    異なる通信フェーズのそれぞれにおいてデータ伝送の対象となる前記軸データ同士については、割り当て領域を共有して割り当てることを特徴とする請求項1記載のサーボコントローラ。
  3. 前記通信部は、軸毎に、1つの通信フェーズにおいて新たにデータを書き込んだか否かのステータス情報を記憶する受信データステータス記憶手段を備え、前記メモリの対応するアドレスに前記軸データを格納した際に、対応する軸データのステータス情報をデータ書き込み済みにするようにしたものであり、
    前記CPUは、前記受信データステータス記憶手段のステータス情報を参照し、データ書き込み済みである旨を認識した軸データのみを前記メモリから読み出し、読み出しを行ったならば該当するステータス情報の設定をクリアすることを特徴とする
    請求項1または2に記載のサーボコントローラ。
JP2002069915A 2002-03-14 2002-03-14 サーボコントローラ Expired - Fee Related JP4164270B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002069915A JP4164270B2 (ja) 2002-03-14 2002-03-14 サーボコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002069915A JP4164270B2 (ja) 2002-03-14 2002-03-14 サーボコントローラ

Publications (2)

Publication Number Publication Date
JP2003271203A JP2003271203A (ja) 2003-09-26
JP4164270B2 true JP4164270B2 (ja) 2008-10-15

Family

ID=29200623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002069915A Expired - Fee Related JP4164270B2 (ja) 2002-03-14 2002-03-14 サーボコントローラ

Country Status (1)

Country Link
JP (1) JP4164270B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4596153B2 (ja) * 2003-10-02 2010-12-08 オムロン株式会社 プログラマブルコントローラおよびコントローラシステムならびに変数解決方法

Also Published As

Publication number Publication date
JP2003271203A (ja) 2003-09-26

Similar Documents

Publication Publication Date Title
CN112416840B (zh) 一种计算资源的远程映射方法、装置、设备及存储介质
JP4344576B2 (ja) パケット通信装置
US20030060285A1 (en) Network game system, network game server, and network game terminal
CN112347015B (zh) 芯片片上***异构多处理器间的通信装置及方法
CN102165739A (zh) 使用散列对经由rdma写入的消息的可靠接收
EP4155925A1 (en) Data transmission method, processor system, and memory access system
US11409679B2 (en) System component and use of a system component
US20200053024A1 (en) Method of transferring mirror packet and system for transferring mirror packet
KR100799305B1 (ko) 다중 암호엔진을 사용하는 고성능 암호화 장치
JP3551905B2 (ja) 管理局及びネットワークシステム並びにネットワークシステムにおける通信方法
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
US7245615B1 (en) Multi-link protocol reassembly assist in a parallel 1-D systolic array system
JP4164270B2 (ja) サーボコントローラ
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
EP4044041A1 (en) Data processing device and data processing system
CN114726883B (zh) 一种嵌入式rdma***
KR100350315B1 (ko) 실시간 시스템의 원격지 입출력 제어 장치 및 방법
JP2003271209A (ja) 制御装置並びに拡張機器及びプログラミングツール
CN114866534B (zh) 一种图像处理方法、装置、设备及介质
JP3016788B2 (ja) 装置間通信・キャッシュ一致処理方式
JP2001268094A (ja) ノード装置、同装置を複数備えた情報処理システム、及びパラメータ交換方法
JP2002328703A (ja) 通信装置及びノード
WO2022226998A1 (zh) 执行原子操作的装置和方法
JP3961794B2 (ja) プロキシサーバ制御用プログラム
JP3339442B2 (ja) 通信処理システムネットワーク

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080715

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080728

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130801

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees