JP4164270B2 - Servo controller - Google Patents
Servo controller Download PDFInfo
- 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
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 フェーズ管理部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a servo controller connected to a network.LaIt is related.
[0002]
[Prior art]
When trying to control the servo motor via a network, for example, as shown in FIG. 1, the
[0003]
Here, the data transmitted from the
[0004]
Further, since the
[0005]
By the way, since each node of the
[0006]
Then, the
[0007]
By the way, when the received data is transferred from the
[0008]
Also, in the
[0009]
On the other hand, an example of the data format of the received data is divided into a header part and a data part as shown in FIG. The header part stores a transmission destination node address, a transmission source node address, a data length for specifying how far the subsequent data part is, and the like. The data portion stores data to be transmitted such as the actual servo motor state. The format itself is a general format.
[0010]
Furthermore, since one received data is in node units, when a plurality of
[0011]
The data from the
[0012]
On the other hand, a processing algorithm for the
[0013]
Next, the axis data included in the data portion of each received data in the data portion is processed. That is, the axis data header part is interpreted, and it is determined what data length is the data for which axis data (ST3). Then, one axis data is acquired in order, and the axis data is processed (ST4). Such axis data processing is sequentially executed for the axis data included in the reception data to be processed. If all the axis data has been processed (Yes in the branch determination of ST5), the process proceeds to
[0014]
Actually, the processing shown in the above-described flowchart is not performed by sequentially accessing the
[0015]
[Problems to be solved by the invention]
However, in the above-described conventional apparatus, since the
[0016]
Furthermore, although the number of axis data received in one reception process is indefinite, the maximum may receive all servo drivers (axis data), so the memory capacity of the received
[0017]
The present invention can reduce the load on the controller (CPU) when reading the axis data stored in the shared memory to the controller, and can reduce the memory capacity to be used. Servo controller that enables data transmissionLaThe purpose is to provide.
[0018]
[Means for Solving the Problems]
A servo controller according to the present invention includes a servo controller connected to a network andIs the axis of multiple controlled objectsDivided into multiple communication phases in time with multiple servo drivers, repeated data transmission is performed, and the servo controller receives axis data indicating the status of the servo motor connected to the servo driver and servo motorRespectivelyBy sending control command data to the servo motorRespectivelyThe servo controller in the system for controlling the operation of the CPU includes a CPU and a communication unit. And the communication unit is in one communication phase, SaWhen the axis data indicating the state of the motor is received, the received axis data is stored in the address area of the allocated reception data memory based on the address information assigned to each axis stored and held in advance. And a function of transmitting the control command data from the CPU stored in the transmission data memory to the servo driver. In addition, the CPUNumber of communication phases determined in advanceIn the repetition ofControl phase numberBy current communication phaseThe servo motor (axis) to be controlled in the current communication phase is identified from the number and repeated.In the communication phaseIdentifiedThe axis data of the servo motor to be controlled, For each axis corresponding to the phase number stored in advanceA function of fetching from the received data memory based on the address information of the memory allocated to the control unit, generating control command data based on the fetched axis data, and storing the generated control command data in the transmission data memory. I did it. The phase management function corresponds to the
[0019]
Corresponding to the phase number stored in advanceSaidPer axisAssigned toMemoryThe address information is for the axis data that is subject to data transmission in one communication phase.Per axisAssigned to different areas on the memory and different communication phasesEach ofIn the above, it is preferable that the axis data to be subjected to data transmission be allocated by sharing an allocation area.
[0020]
The communication unit isPer axisReceiving data status storage means for storing status information indicating whether or not new data has been written in one communication phase, and when the axis data is stored at a corresponding address in the memory, The status information is set to data written, and the CPU refers to the status information in the received data status storage means, reads only the axis data recognized that data has been written from the memory, It may be configured to clear the setting of the corresponding status information after reading.By checking the status information, the controller (CPU) can read out only the data whose axis data has been updated. Therefore, since it is not necessary to perform unnecessary reading of the axis data that has not been updated, the load on the controller is further reduced.
[0022]
According to this invention, the communication device(Communication Department)Stored in a predetermined area of the shared memory(CPU)There is no need to interpret the axis data header on the side, data reception to axis data extraction can be performed at high speed, the program can be simplified, and the load on the controller (CPU) can be reduced. Although the load on the communication apparatus side is increased by that amount, the total amount to be processed is smaller than that of the controller, so that it can be dealt with sufficiently.
[0023]
Moreover, in the present invention, each connected to the networkAxis (servo motor) axisThe data is transmitted and received in a plurality of phases,Per axisSince the axis data transmitted and received in the same phase is allocated to different areas on the shared memory, the axis data transmitted and received in different phases is allocated to the same area. A single area of shared memoryAxis (servo motor) axisShared with data. as a result,Shaft (servo motor)The memory capacity to be used is smaller than the total number.
[0024]
Furthermore, by specifying the area for transferring and storing the axis data and making it a dedicated area, it is not necessary to transfer the received data stored in the shared memory to the controller side once, and the axis data is stored in the storage unit for the received data. This eliminates the need to transfer data from the controller to the memory area on the controller side.
[0027]
Furthermore,For each axisA reception control storage unit for storing information on whether or not the controller of the data transfer destination is used, and the data storage means accesses the reception control storage unit and stores only the axis data to be used in the shared memory. It is preferable to do so.
[0028]
According to such a configuration, since only axis data required by the controller is registered in the shared memory, even if the communication apparatus receives unnecessary axis data, it is not necessary to write in the shared memory, and the load is reduced.
[0030]
The above-described components of the present invention can be combined as much as possible. Servo controller according to the present inventionLaEach component means can be realized by a dedicated hardware circuit, or can be realized by a programmed computer.
[0031]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 5 shows an example of a network to which the present invention is applied. As is clear from comparison with FIG. 1, the basic hardware configuration is the same as the conventional one. That is, the
[0032]
Then, control command data is sent from the
[0033]
Further, since the
[0034]
Here, in this embodiment, each
[0035]
Thereafter, by repeating the above process, all axis data can be transmitted and received in two phases. Of course, the axis data that is symmetrical between transmission and reception in each phase can take any combination, and the number of divisions of the phase is also arbitrary (determined from the total number of axes to be transmitted and received).
[0036]
FIG. 7 shows a preferred embodiment of the present invention. As shown in the figure, the node of the present embodiment is a
[0037]
The
[0038]
Next, each part will be described in detail. The
[0039]
The
[0040]
The receiving system will be further described. The address in the
[0041]
In the present embodiment, since m pieces of axis data are transmitted and received in a plurality of N phases, if the number of axes transmitted and received in each phase is evenly arranged, the maximum number of axes transmitted in one phase is set. The value X is (m / N) (rounded up after the decimal point). Therefore, a storage area for X axis data is secured in the
[0042]
Then, with a specific example, assuming that the number of axes is 6 (m = 6) and axis data is transmitted / received in three phases (N = 3), transmission is performed in one phase. Since the number of axis data to be processed is two, the data structures of the
[0043]
The
[0044]
That is, first, the number of control target axes (m) and the number of communication phases (N) are determined (ST11, ST12). Since the number of control symmetry axes is information uniquely determined from the system configuration, information input by the user is acquired. In addition, an appropriate value is determined as the number of communication phases from the time allotted for one communication, the time required to maintain one data, the number of control target axes, and the like. The optimum number of communication phases may be calculated, but in the present embodiment, this number of phases is also determined by input from the user. That is, in the processes of
[0045]
Next, the number of control axes that communicate with one phase value is calculated (ST13). This can be easily obtained from the obtained “quotient” and “too much” by dividing the number of control target axes (m) by the number of communication phases (N). That is, the number of axes transmitted / received per phase is “quotient” or “quotient + 1” calculated, and “quotient + 1” by the number of “too much”. Therefore, since the maximum transmission / reception number X is “quotient + 1”, it is only necessary to secure such X storage areas in the
[0046]
Next, all axis designation addr is calculated (ST4). For example, the target phase number and the specified addr are set in the order of the axis number. In other words, X pieces from the top are transmission / reception targets in the first phase, and X + 1 to 2Xth are transmission / reception targets in the second phase. In the following, the phase number is set with X as one group for the number of times of “too much”, and thereafter the phase number is set with (X−1) as one group. Further, for each phase, assigned assigned addr is assigned in order from the first axis. Thereby, for example, a table as shown in FIG. 10 is created.
[0047]
If the phase numbers and the specified addr are assigned to all the axes in this way, the phase is actually stored in the specified
[0048]
Then, during actual operation, the axis data designation
[0049]
On the other hand, the
[0050]
By the way, since the communication LSI (axis data designation
[0051]
However, if for some reason axis data that is not subject to the current phase is received, a plurality of axis data having the same storage area (address) in the received
[0052]
Furthermore, if the normal axis data cannot be received, the axis data received during the previous phase is stored in the storage area where the normal axis data should be stored. The
[0053]
Therefore, in the present embodiment, the axis reception
[0054]
That is, as shown in FIG. 11, the axis reception
[0055]
Therefore, the
[0056]
Thus, before reading out data of each phase, the axis reception
[0057]
If the status of the normal receiving axis that should be received in this phase is “0”, the designated addr assigned to the receiving axis that is “0” is received in the previous phase. Since other axis data is stored, by preventing the data from being received, malfunctions based on erroneous data are prevented.
[0058]
The specific received data acquisition process of the
[0059]
Next, it is determined whether or not axis data that is not controlled is received (ST22). Specifically, the axis reception
[0060]
After executing “None” in the branch determination of
[0061]
Thereafter, a value obtained by adding 1 to the number of the current phase is set as the number of the next phase (ST25), and it is determined whether or not the next phase exceeds the maximum phase (X) (ST26). If it exceeds, the next phase is set to 1. If not, the number obtained in step 25 is determined as the next phase.
Such processing is repeatedly executed. Then, the next phase determined in steps 25 to 27 becomes the current phase in the next process.
[0062]
As apparent from comparison between FIG. 12 and FIG. 4, according to this embodiment, the
[0063]
On the other hand, the axis data transmission system is provided with the
[0064]
On the other hand, the
[0065]
According to the present embodiment, the
[0066]
FIG. 13 shows a second embodiment of the present invention. In the present embodiment, an axis data transfer
[0067]
That is, in the first embodiment, the designation of the address of the axis data stored in the received
[0068]
Specifically, as shown in FIG. 14, the axis data transfer
[0069]
During actual operation, the axis data transfer
[0070]
On the other hand, the CPU 20 (driver software 21) executes the flowchart shown in FIG. 12, refers to the index
[0071]
FIG. 15 shows a third embodiment of the present invention. In the present embodiment, an axis data
[0072]
In this case, the
[0073]
Since other configurations and operational effects are the same as those of the first embodiment described above, the same reference numerals are assigned to corresponding members, and detailed descriptions thereof are omitted. Further, in the present embodiment, the description has been made based on the first embodiment, but it is of course possible to configure based on the second embodiment.
[0074]
FIG. 17 shows a fourth embodiment of the present invention. In the present embodiment, the functions of the first to third embodiments described above are combined. In the present embodiment, a mode setting unit 11f is further provided to selectively switch between the axis data designation
[0075]
Further, in each of the above-described embodiments, an example is shown in which one
[0076]
Furthermore, in each of the above-described embodiments, the
[0077]
【The invention's effect】
As described above, according to the present invention, the axis data is extracted from the received data on the communication device side and stored in the shared memory in units of axis data. Therefore, the controller stores the necessary axis data from the shared memory as it is. Since data can be read directly, the load on the controller (CPU) is reduced, and other processing can be executed by the reduced amount, and high-speed processing can be performed efficiently. In addition, since the axis data is transmitted and received in a plurality of phases, the axis data sent in different phases can be assigned to the same storage area, so that the memory capacity can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a conventional network system.
FIG. 2 is a diagram showing an internal structure of a conventional node.
FIG. 3 is a diagram illustrating an example of a data format of received data.
FIG. 4 is a flowchart showing functions of a conventional CPU.
FIG. 5 is a diagram showing an example of a network system to which the present invention is applied.
6 is a diagram showing an example of data communication control in the network system shown in FIG. 5. FIG.
FIG. 7 is a block diagram showing a first embodiment of the present invention.
FIG. 8 is a diagram for explaining an example of a data structure of a reception data memory and a designated reception area memory and a function of performing data transmission using the memory structure;
FIG. 9 is a flowchart illustrating a preprocessing function.
10 is a table showing an example of data set for each axis data obtained by executing the preprocessing function shown in FIG. 9; FIG.
FIG. 11 is a diagram illustrating an example of a data structure of an axis reception data status register and a function of performing data transmission using the data structure.
FIG. 12 is a flowchart illustrating functions of a CPU according to the present invention.
FIG. 13 is a block diagram showing a second embodiment of the present invention.
FIG. 14 is a diagram illustrating an example of a data structure of a reception data memory and an index memory area memory and a function of performing data transmission using the memory structure.
FIG. 15 is a block diagram showing a third embodiment of the present invention.
FIG. 16 is a diagram illustrating an example of a data structure of an axis data reception control register and a function of performing data transmission using the axis data reception control register.
FIG. 17 is a block diagram showing a fourth embodiment of the present invention.
[Explanation of symbols]
1 Servo motor
2 Servo driver
3 Servo controller (node)
4 network
5 Communication LSI
6 CPU
7 Received data memory
11 Control unit
11a Communication processing unit (means for receiving)
11b Axis data designation area transfer unit (axis data identification means, data storage means)
11d Axis data transfer area writing unit (axis data identification means, data storage means)
11f mode setting section
12 Storage unit (shared memory)
12a Received data memory
12b Designated reception area memory
12c Axis reception data status register (reception data status storage means)
12d Memory for index memory area
12e Axis data reception control register (reception control storage unit)
12f Designated reception area / index memory area memory
20 CPU (controller)
21 Driver software (function to read axis data)
22 Phase Management Department
Claims (3)
CPUと通信部とを含み、
前記通信部は、1つの通信フェーズにおいて、サーボモータの状態を示す軸データを受信すると、予め記憶保持された前記軸毎に割り当てられたアドレス情報に基づいて、受信した軸データを、その割り当てられた受信データ用メモリのアドレス領域に格納するとともに、送信データ用メモリに格納された前記CPUからの前記制御指令データをサーボドライバへ送信する機能を備え、
前記CPUは、予め確定した通信フェーズ数の繰返しの中で、フェーズ番号を制御することによって現在の通信フェーズ番号から今回の通信フェーズで制御対象となるサーボモータを特定し、繰返される通信フェーズにおいて、前記特定した制御対象となるサーボモータの軸データを、予め記憶保持されたフェーズ番号に対応した軸毎に割り当てられたメモリのアドレス情報に基づいて前記受信データ用メモリから取り込み、取り込んだ軸データに基づいて制御指令データを生成し、その生成した制御指令データを送信データ用メモリへ格納する機能を備えた
ことを特徴とするサーボコントローラ。The servo controller connected to the servo driver is connected to the servo driver by repeatedly transmitting data repeatedly in multiple communication phases in time between the servo controller connected to the network and the servo driver that is the axis to be controlled. A servo controller in a system for controlling the operation of a servo motor by receiving axis data indicating the state of each motor and transmitting control command data for each servo motor,
Including a CPU and a communication unit,
The communication unit, one, communication phase odor receives the shaft data indicating the state of the servomotor, on the basis of a prestored retained the shaft assigned address information for each, the axis data received, the assignment A function of transmitting the control command data from the CPU stored in the transmission data memory to the servo driver, and storing the received data in the address area of the received data memory,
The CPU identifies the servo motor to be controlled in the current communication phase from the current communication phase number by controlling the phase number in the repetition of the predetermined number of communication phases, and in the repeated communication phase, The axis data of the specified servo motor to be controlled is fetched from the received data memory based on the memory address information assigned to each axis corresponding to the phase number stored and held in advance , and the fetched axis data is converted into the fetched axis data. A servo controller comprising a function of generating control command data based on the data and storing the generated control command data in a transmission data memory.
1つの通信フェーズにおいてデータ伝送の対象となる前記軸データに対しては、その軸毎に前記メモリ上の異なる領域に割り当てるとともに、
異なる通信フェーズのそれぞれにおいてデータ伝送の対象となる前記軸データ同士については、割り当て領域を共有して割り当てることを特徴とする請求項1記載のサーボコントローラ。 Memory address information assigned to each axis corresponding to the previously stored and stored phase number is:
For the axis data to be subject to data transmission in one communication phase, each axis is assigned to a different area on the memory, and
2. The servo controller according to claim 1, wherein the axis data to be subjected to data transmission in each of different communication phases are allocated by sharing an allocation area.
前記CPUは、前記受信データステータス記憶手段のステータス情報を参照し、データ書き込み済みである旨を認識した軸データのみを前記メモリから読み出し、読み出しを行ったならば該当するステータス情報の設定をクリアすることを特徴とする
請求項1または2に記載のサーボコントローラ。The communication unit includes reception data status storage means for storing status information as to whether or not data has been newly written in one communication phase for each axis, and when the axis data is stored at a corresponding address in the memory In addition, the status information of the corresponding axis data is made to have data written,
The CPU refers to the status information in the received data status storage means, reads only the axis data recognized that data has been written from the memory, and clears the status information setting if read. The servo controller according to claim 1 or 2, wherein
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002069915A JP4164270B2 (en) | 2002-03-14 | 2002-03-14 | Servo controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002069915A JP4164270B2 (en) | 2002-03-14 | 2002-03-14 | Servo controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003271203A JP2003271203A (en) | 2003-09-26 |
JP4164270B2 true JP4164270B2 (en) | 2008-10-15 |
Family
ID=29200623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002069915A Expired - Fee Related JP4164270B2 (en) | 2002-03-14 | 2002-03-14 | Servo controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4164270B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4596153B2 (en) * | 2003-10-02 | 2010-12-08 | オムロン株式会社 | Programmable controller, controller system, and variable solution method |
-
2002
- 2002-03-14 JP JP2002069915A patent/JP4164270B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003271203A (en) | 2003-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416840B (en) | Remote mapping method, device, equipment and storage medium for computing resources | |
JP4344576B2 (en) | Packet communication device | |
US20030060285A1 (en) | Network game system, network game server, and network game terminal | |
CN112347015B (en) | Communication device and method between heterogeneous multiprocessors of system on chip | |
CN102165739A (en) | Reliable reception of messages written via RDMA using hashing | |
EP4155925A1 (en) | Data transmission method, processor system, and memory access system | |
US11409679B2 (en) | System component and use of a system component | |
KR100799305B1 (en) | High-Performance Cryptographic Device using Multiple Ciphercores and its Operation Method | |
JP3551905B2 (en) | Management station, network system, and communication method in network system | |
US20200053024A1 (en) | Method of transferring mirror packet and system for transferring mirror packet | |
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 | |
JP4164270B2 (en) | Servo controller | |
US7245615B1 (en) | Multi-link protocol reassembly assist in a parallel 1-D systolic array system | |
KR102303424B1 (en) | Direct memory access control device for at least one processing unit having a random access memory | |
EP4044041A1 (en) | Data processing device and data processing system | |
KR100350315B1 (en) | Apparatus And Method For Remote Input/Output Control In Real-time System | |
JP2003271209A (en) | Control device, expansion device and programming tool | |
CN114866534B (en) | Image processing method, device, equipment and medium | |
JP3016788B2 (en) | Device communication / cache matching processing method | |
JP2001268094A (en) | Mode unit, information processing system provided with the mode units, and parameter exchange method | |
JP2002328703A (en) | Communication equipment and node | |
WO2022226998A1 (en) | Apparatus and method for executing atomic operations | |
JP3961794B2 (en) | Proxy server control program | |
JP3339442B2 (en) | Communication processing system network | |
JP3265026B2 (en) | I / O data exchange method |
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 |