(57)【要約】【課題】マスタ装置と複数のスレーブ装置が含まれるシステムにおいて、マスタ装置がスレーブ装置からデータを受信する際の処理時間を短縮する。【解決手段】マスタ装置たるコントローラ８において、受信回路８１２は、スレーブ装置たるアンプから応答データとＣＲＣが含まれるパケットを受信した際に、応答データを受信メモリ８３と応答到達通知回路８１６とＣＲＣ検査回路８１３に出力し、受信メモリ８３はアンプからの応答データを格納し、応答到達通知回路８１６は規定のデータサイズ分の応答データを入力した際にＣＰＵ８２に対して受信メモリ８３に応答データが格納されたことを通知し、ＣＰＵ８２はＣＲＣ検査回路８１３によるＣＲＣ検査動作が完了する前に、アンプに送信するデータである指令データを生成する処理を開始する。【選択図】図２
2011119999.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と受信メモリを備え複数のスレーブ装置を制御するマスタ装置に含まれる通信装置であって、
前記複数のスレーブ装置で生成された複数のスレーブデータと誤り検出のための誤り検出データを１つのパケットとして受信し、各スレーブデータを前記受信メモリに出力する受信部と、
前記複数のスレーブデータに対して前記誤り検出データを用いてデータの誤りを検出する誤り検出部と、
前記受信部から前記受信メモリへのスレーブデータの出力状況を監視し、スレーブデータが前記受信メモリに格納されたことを検知し、前記誤り検出部による誤り検出動作の完了を待たずに、前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知する受信状況監視部とを有することを特徴とする通信装置。
【請求項２】
前記受信部は、
スレーブデータを受信する度に、受信したスレーブデータを前記受信メモリ、前記受信状況監視部及び前記誤り検出部に出力し、
前記受信状況監視部は、
前記受信部から所定のデータサイズ分のスレーブデータを入力すると、スレーブデータが前記受信メモリに格納されたことを検知し、前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記通信装置は、
前記受信メモリにスレーブデータが格納されると当該スレーブデータの生成元のスレーブ装置に対する指令データを生成する制御装置を備えるマスタ装置に含まれ、
前記受信状況監視部は、
前記誤り検出部による誤り検出動作の完了を待たずに、前記受信部から所定のデータサイズ分のスレーブデータを入力する度に前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知し、前記誤り検出部による誤り検出動作の完了前に前記複数のスレーブ装置に対する複数の指令データの生成を可能にすることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記受信状況監視部は、
前記受信部によるスレーブデータの受信に先立ち、前記制御装置から、各スレーブデータのデータサイズを通知され、
前記受信部からスレーブデータを入力する度に、前記制御装置から通知されたデータサイズ分のスレーブデータを入力したかを判断し、前記制御装置から通知されたデータサイズ分のスレーブデータを入力した場合に、前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知することを特徴とする請求項２又は３に記載の通信装置。
【請求項５】
前記受信部は、
前記複数のスレーブデータの受信に先立ち、各スレーブデータのデータサイズを通知するデータサイズ情報を受信し、受信したデータサイズ情報を前記受信状況監視部に出力し、
前記受信状況監視部は、
前記受信部から前記データサイズ情報を入力するとともに、
前記受信部からスレーブデータを入力する度に、前記データサイズ情報において通知されているデータサイズ分のスレーブデータを入力したかを判断し、前記データサイズ情報において通知されているデータサイズ分のスレーブデータを入力した場合に、前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知することを特徴とする請求項２〜４のいずれかに記載の通信装置。
【請求項６】
前記通信装置は、
複数のサーボアンプを制御するモーションコントローラに含まれ、
前記受信部は、
前記複数のサーボアンプで生成された複数の応答データと誤り検出データを１つのパケットとして受信することを特徴とする請求項１〜５のいずれかに記載の通信装置。
【請求項７】
複数のスレーブ装置を制御するマスタ装置であって、
制御装置と、
受信メモリと、
前記複数のスレーブ装置で生成された複数のスレーブデータと誤り検出のための誤り検出データを１つのパケットとして受信し、各スレーブデータを前記受信メモリに出力する受信部と、
前記複数のスレーブデータに対して前記誤り検出データを用いてデータの誤りを検出する誤り検出部と、
前記受信部から前記受信メモリへのスレーブデータの出力状況を監視し、スレーブデータが前記受信メモリに格納されたことを検知し、前記誤り検出部による誤り検出動作の完了を待たずに、前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知する受信状況監視部とを有し、
前記制御装置は、
前記受信状況監視部から通知がある度に、前記誤り検出部による誤り検出動作の完了を待たずに、前記受信メモリに格納されているスレーブデータを読み出し、読み出したスレーブデータの送信元のスレーブ装置に対する指令データの生成を行うことを特徴とするマスタ装置。
【請求項８】
前記マスタ装置は、
複数のサーボアンプを制御するモーションコントローラであることを特徴とする請求項７に記載のマスタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ装置と複数のスレーブ装置が含まれるシステムに関する。
より具体的には、例えば、複数のサーボモータを制御するサーボモータ制御システムに関し、特に、マスタ装置たるモーションコントローラ（以下、コントローラと呼ぶ）が、サーボモータ（以下、モータと呼ぶ）を個別に駆動する複数のスレーブ装置たる複数のサーボアンプ（以下、アンプと呼ぶ）を制御する処理の高速化技術に関する。
【背景技術】
【０００２】
以下では、サーボモータ制御システムについて説明する。
図６に示されるように、放電加工機やマシニングセンタのような工作機械は、複数のモータ１１、１２、１３と、複数のアンプ１、２、３と、コントローラ４を備えている。
複数のモータ１１、１２、１３は、制御対象物を個別の軸方向に移動させる。
複数のアンプ１、２、３は、モータ１１、１２、１３に個別に駆動電流を供給する。
コントローラ４は、各アンプへ位置、速度などの指令をパケットに格納して送る。
コントローラ４とアンプ１、２、３は、互いにデータをパケットに格納して送受信するネットワークで接続される。
以下、コントローラ４からアンプ１、２、３へのデータを「指令」と呼び、アンプ１、２、３からコントローラ４へのデータを「応答」と呼ぶ。
【０００３】
一般的に、アンプ１、２、３は、省配線のため双方向シリアル通信ケーブル２１、２２、２３を用いたデイジーチェーン構成でコントローラ４へ接続されている。
近年は、工作機械の位置決め精度および、加工速度に関する要求が高まっており、これを受けてコントローラ４とアンプ１、２、３で指令および応答を送受する時間の間隔（以下、通信周期と呼ぶ）を短くする必要性が高まっている。
【０００４】
通信周期の短縮を実現する方式の１つとして、トレーラ方式が利用されることが多い。
トレーラ方式では、コントローラ４が１個のパケットに全アンプへの指令を格納し、下り方向へ送信する。
各アンプは、下り方向で受信したパケットから指令を読み出すと共に、同パケットに応答を格納して次のアンプに中継する。
ネットワーク末端のアンプは、パケットをループバックし、上り方向へ送信する。
各アンプは、上り方向で受信したパケットを前のスレーブへ中継する。
最後に、コントローラ４は全アンプによって応答を格納されたパケットを受信する。
トレーラ方式を採用した代表的なネットワークとしては、例えば非特許文献１に記載のＥｔｈｅｒＣＡＴが挙げられる。
【０００５】
以下、トレーラ方式で使用するパケット、コントローラとアンプの構成、および通信手順を説明する。
【０００６】
まず、図７に、トレーラ方式で使用するパケットのフォーマットを示す。
ヘッダ３５は、指令または応答の宛先アドレスを示す。
ＣＲＣ３４は、パケット全体のエラー検査に使用されるＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）である。
データ３１は、アンプ１への指令またはアンプ１からの応答である。
データ３２は、アンプ２への指令またはアンプ２からの応答である。
データ３３は、アンプ３への指令またはアンプ３からの応答である。
【０００７】
次に、図８に、トレーラ方式におけるコントローラとアンプの構成および接続形態を示す。
アンプ１、２、３は、アンプ本体である。
コントローラ４は、コントローラ本体である。
ＮＩＣ４１、４２、４３、４４、４５、４６、４７は、コントローラとアンプ間でパケットの送受信を実施するＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ）である。
受信メモリ５１、５２、５３、５４は、ＮＩＣが受信した指令または応答を記憶するメモリである。
送信メモリ６１、６２、６３、６４は、ＮＩＣが送信する指令または応答を記憶するメモリである。
【０００８】
続いて、コントローラとアンプ間の通信手順を、図９を参照しながら説明する。
まず、コントローラ４は、アンプ１、２、３宛の指令Ｍ１、Ｍ２、Ｍ３をパケット５に格納し、下り方向でアンプ１へ送信する。
アンプ１は、パケット５を受信し、ヘッダのアドレスと自分のアドレスを照合して自分宛の指令Ｍ１が格納されていることを判別すると、指令Ｍ１を受信メモリ５２にコピーすると共に、指令Ｍ１の格納領域に送信メモリ６２内の応答Ｒ１をコピーして、アンプ２へ送信する。
アンプ２も同様である。
アンプ３は、パケット５を受信して指令Ｍ３を受信メモリ５４にコピーし、指令Ｍ３の格納領域に送信メモリ６４の応答Ｒ３をコピーし、更に、応答Ｒ１、Ｒ２、Ｒ３に対してＣＲＣを生成し、生成したＣＲＣをパケット５に含ませる。そして、アンプ３は、応答Ｒ１、Ｒ２、Ｒ３とＣＲＣが格納されたパケット５をループバックし、上り方向でアンプ２へ送信する。
アンプ２は、パケット５を受信し、アンプ１に送信する。
アンプ１も同様である。
コントローラ４は、アンプ１より、アンプ１、２、３からの応答Ｒ１、Ｒ２、Ｒ３とＣＲＣを格納したパケット５を受信し、通信を完了する。
【０００９】
コントローラ４は、アンプへの指令をパケットに格納してアンプへ送信すると共に、アンプからの応答を格納したパケットを受信し、パケットから読み出した応答を演算して次の指令を生成する。
【００１０】
一般的なコントローラの構成を図１０に示す。
コントローラ４はコントローラ本体であり、ケーブル２１はコントローラ４とアンプを接続する双方向シリアル通信ケーブルである。
コントローラ４において、ＮＩＣ４１はアンプと指令および応答を送受信するＮＩＣである。
受信メモリ５１は、ＮＩＣ４１の受信した応答を記憶するメモリである。
送信メモリ６１は、ＣＰＵ７１の演算した指令を記憶するメモリである。
ＣＰＵ７１は受信メモリ５１から応答を読み出し、この応答を元に次周期の指令を演算して送信メモリ６１に書き込むＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１１】
ＮＩＣの性能は、コントローラの処理速度を決定する主要な要素であり、更にコントローラの処理速度は通信周期を決定する主要な要素であるため、ＮＩＣの高速化が通信周期の短縮に有効である。
ＮＩＣの高速化の方式として、非特許文献２のＮＩＣでは、データの受信処理と送信処理を並行に行うと共に、データの受信処理ではネットワークからのデータ受信とメモリへのデータ書き込みを並行に行い、またデータの送信処理ではメモリからのデータ読み出しとネットワークへのデータ送信を並行に行うことで、通信の高速化を図っている。
【００１２】
非特許文献２のＮＩＣの構成としては、図１１の構成が考えられる。
ＮＩＣ４１において、ポート４１１はケーブル２１を介してアンプと接続するポートである。
受信回路４１２は、ポート４１１よりアンプからのパケットを受信すると、ＣＲＣ検査回路４１３へパケットを転送し、受信メモリ５１へパケット内の応答を書き込み、ＣＰＵ７１へ受信メモリ５１への応答書き込みの完了を通知する回路である。
ＣＲＣ検査回路４１３は、受信回路４１２からパケットを受け取り、パケットのＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）を検査し、検査結果を受信回路４１２に返す回路である。
送信回路４１４は、送信メモリ６１から指令を読み出すと、アンプへのパケットを生成し、ＣＲＣ生成回路４１５とポート４１１へ転送する回路である。
ＣＲＣ生成回路４１５は送信回路４１４から受け取ったパケットからＣＲＣを生成し、生成したＣＲＣを送信回路４１４に返す回路である。
【００１３】
次に、非特許文献２のＮＩＣの動作を、データの送信処理と受信処理それぞれについて説明する。
【００１４】
まず、受信処理では、受信回路４１２がパケットの受信と並行して、パケット内の応答を受信メモリ５１へ転送すると共に、ＣＲＣ検査回路４１３へパケットを転送する。
ＣＲＣ検査回路４１３は、受信回路４１２から受け取るパケットのＣＲＣ検査を実施する。
そして、受信回路４１２がパケット内の応答を受信メモリ５１へ転送完了すると同時に、ＣＲＣ検査回路４１３からパケットのＣＲＣ検査結果を受け取り、ＣＰＵ７１に検査結果を通知して受信処理を完了する。
【００１５】
一方、送信処理では、送信回路４１４がＣＰＵ７１から送信メモリ６１への指令書き込み完了を通知されると、送信メモリ６１から指令を読み出してパケットの生成を開始することと並行し、生成中のパケットをＣＲＣ生成回路４１５に転送する。
ＣＲＣ生成回路４１５は、送信回路４１４から受け取るパケットからＣＲＣを生成する。
送信回路４１４は、パケットのＣＲＣ部分以前の送信を完了すると同時に、ＣＲＣ生成回路４１５よりパケットから生成されたＣＲＣを受け取り、このＣＲＣを送信して送信処理を完了する。
【００１６】
非特許文献２のＮＩＣを採用したコントローラを図１２に示す。
コントローラおよびＮＩＣの構成の説明は、前出の図１０および図１１で説明したものと同一のため、省略する。
非特許文献２のＮＩＣを採用したコントローラ４は、アンプへの指令をパケットに格納して送信する処理と並行して、アンプからの応答を格納したパケットを受信し、パケットから読み出した応答を演算して次の指令を生成する処理を行う。
以降、前者の処理を「指令送信」、後者の処理を「応答受信演算」と呼ぶ。
【００１７】
以下、コントローラの指令送信の手順と応答受信演算の手順を、図１３〜図１７のタイミングチャートを用いて説明する。
【００１８】
まず、コントローラの指令送信の手順を、図１３及び図１４を用いて説明する。
なお、図１３はＣＰＵ７１、送信メモリ６１、ＣＲＣ生成回路４１５の動作例を示し、図１４は送信回路４１４の動作例を示している。
【００１９】
はじめに、図１３に示すように、時刻ｔ０で、ＣＰＵ７１が送信回路４１４に指令の送信メモリ６１への書き込み完了（指令の送信要求）を通知する（図１３（Ｍ））。
送信回路４１４は、ＣＰＵ７１からの指令の送信要求を受信し（図１４（Ｍ））ただちに各指令に対応するアンプのアドレスをパケットヘッダに格納してポート４１１から送信開始すると共に、ＣＲＣ生成回路４１５にも転送する（図１４（Ｐ））。
【００２０】
次に、時刻ｔ１で、送信回路４１４はパケットヘッダの送信を完了すると、続けて、送信メモリ６１に指令のリード要求を出力し（図１４（Ｎ））、送信メモリ６１がリード信号を入力し（図１３（Ｎ））、リード信号に従って指令を読み出し、読み出した指令を送信回路４１４に出力する（図１３（Ｏ））。
送信回路４１４では、送信メモリ６１から指令を入力し（図１４（Ｏ））、ポート４１１から送信開始すると共に、ＣＲＣ生成回路４１５にも転送する（図１４（Ｐ））。
これを受けて、ＣＲＣ生成回路４１５はヘッダ及び指令を送信回路４１４から入力し（図１３（Ｐ））、ＣＲＣの生成を開始する。
【００２１】
そして、時刻ｔ３で送信回路４１４が送信メモリ６１の指令の送信を完了すると同時に、ＣＲＣ生成回路４１５はＣＲＣの生成を完了し、送信回路４１４へ転送する（図１３（Ｑ）。
最後に、送信回路４１４は、ＣＲＣ生成回路４１５からＣＲＣを受け取り（図１４（Ｑ））、受け取ったＣＲＣを指令に続けてポートから送信し、処理を完了する。
【００２２】
次に、コントローラの応答受信演算の手順を、図１５〜図１７を用いて説明する。
図１５は受信回路４１２の動作例を示し、図１６はＣＲＣ検査回路４１３及び受信メモリ５１の動作例を示し、図１７はＣＰＵ７１の動作例を示している。
【００２３】
はじめに、応答受信演算を開始する前に、その開始時刻は、アンプがパケットを中継する際に発生する遅延により、指令送信を開始する時刻よりも遅れる。
そこで、指令送信の開始時刻をｔ０とし、応答受信演算が時刻ｔ０’から開始されるとする。
【００２４】
時刻ｔ０’で、受信回路４１２はポート４１１からパケットを受信開始すると、ただちにＣＲＣ検査回路４１３へパケットを転送開始する（図１５（Ｒ））。
ＣＲＣ検査回路４１３では受信回路４１２からパケットを入力する（図１６（Ｒ））。
【００２５】
次に、時刻ｔ１’で、受信回路４１２はパケットに格納された応答の受信を開始すると、この応答をただちに受信メモリ５１へ転送開始する（図１５（Ｓ））。
受信メモリ５１では、受信回路４１２から転送された応答を順に入力する（図１６（Ｓ））。
【００２６】
続いて、時刻ｔ２’で、受信回路４１２はパケットに格納された応答の受信メモリ５１への転送を完了する。
【００２７】
そして、時刻ｔ３’で受信回路４１２がポート４１１からのパケットの受信を完了すると同時に、ＣＲＣ検査回路４１３にＣＲＣを出力する（図１５（Ｒ））。
ＣＲＣ検査回路４１３はＣＲＣを入力し（図１６（Ｒ））、パケットのＣＲＣ検査を完了し、ただちに検査結果を受信回路４１２に通知する（図１６（Ｔ））。
受信回路４１２は、ＣＲＣ検査回路４１３から検査結果を入力し（図１５（Ｔ））、ＣＰＵ７１にＣＲＣ検査結果を通知する（図１５（Ｕ））。
ＣＰＵ７１は、受信回路４１２からＣＲＣ検査結果を入力し（図１７（Ｕ））、ＣＲＣ検査結果がエラー無しの場合、受信メモリ５１に記憶された応答を読み出し（図１６（Ｗ）及び図１７（Ｗ））、これに基づき次の指令を生成して送信メモリ６１に書き込み、時刻ｔ４’で処理を完了する。
一方、受信回路４１２からのＣＲＣ検査結果がエラー有りの場合、ＣＰＵ７１は受信メモリ５１に記憶された応答を読み出さず、指令の生成も行わずに処理を完了する。
【００２８】
続いて、上述の応答受信演算および指令送信の所要時間を見積もる。
前提条件として、アンプの台数をｎ、指令および応答のサイズが全アンプについてＤｄと仮定し、また、パケットのヘッダサイズをＤｈ、ＣＲＣサイズをＤｃ、ネットワークの伝送ビットレートをＢ、ＣＰＵが応答から指令を生成する時間を応答１つあたりＣ、指令送信の開始から応答受信演算の開始までの待ち時間をΔｔ０とおく。
【００２９】
まず、指令送信の所要時間を見積もる。
今、この所要時間をＴｄｏｗｎと置くと、Ｔｄｏｗｎは送信回路４１４がパケットを送信する時間（ｔ３−ｔ０）となり、以下の数式１にて求められる。
ただし、Ｔｄｏｗｎには、ＣＰＵ７１から送信回路４１４へ指令の書き込み完了を通知する時間、および送信回路４１４から送信メモリ６１へのリード要求信号の出力時間を含めないとする。
【００３０】
【数１】
2011119999.tif 000003
【００３１】
次に、応答受信演算の所要時間を見積もる。
今、この所要時間をＴｕｐと置くと、Ｔｕｐは、指令送信の開始から応答受信演算の開始までの待ち時間（ｔ０’−ｔ０）と、受信回路がパケットを受信する時間（ｔ３’−ｔ０’）と、ＣＰＵが応答から指令を生成する時間（ｔ４’−ｔ３’）の和となり、以下の数式２にて求められる。
ただし、Ｔｕｐには、ＣＲＣ検査回路４１３から受信回路４１２および受信回路４１２からＣＰＵ７１へＣＲＣ検査結果を通知する時間、およびＣＰＵ７１から受信メモリ５１へのリード要求信号の出力時間を含めないとする。
【００３２】
【数２】
2011119999.tif 000004
【００３３】
上記数式１および数式２の比較から、数式２で表される応答受信演算の所要時間のほうが、ＣＰＵが応答から指令を生成する処理を含む分大きくなる。
したがって、コントローラの処理のうち、通信周期に影響するのは、応答受信演算である。
【先行技術文献】
【非特許文献】
【００３４】
【非特許文献１】“ＥｔｈｅｒＣＡＴ  Ｉｎｔｒｏｄｕｃｔｉｏｎ，”  ＥｔｈｅｒＣＡＴ  Ｔｅｃｈｎｏｌｏｇｙ  Ｇｒｏｕｐ，  ２００９
【非特許文献２】“Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）／ＰＣＩ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ  Ｈｏｓｔ／ＮＩＣ  Ｓｏｆｔｗａｒｅ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｆｉｎｉｔｉｏｎ，  Ｒｅｖｉｓｉｏｎ  １２．４．１３，”  Ａｌｔｅｏｎ  Ｗｅｂ  Ｓｙｓｔｅｍｓ，  １９９９
【発明の概要】
【発明が解決しようとする課題】
【００３５】
非特許文献２のＮＩＣを採用したコントローラでは、ＮＩＣの受信回路は、ＣＲＣ検査回路よりパケット全体のエラー検査の結果を通知されるまで、ＣＰＵにアンプからの応答の受信完了を通知しない。
一方、受信メモリには、各アンプの応答が、ＣＲＣ検査回路のパケットエラー検査完了を待たずに書き込まれていく。
したがって、ＣＰＵが受信メモリから応答を読み出して指令を生成する処理は、ＣＲＣ検査回路のパケットエラー検査完了前から可能である。
よって、非特許文献２のＮＩＣを採用したコントローラの応答受信演算の所要時間には、更なる短縮の余地があると考えられる。
【００３６】
本発明は、上記事情を鑑みたものであり、サーボモータ制御システムに代表される、マスタ装置と複数のスレーブ装置が含まれるシステムにおいて、マスタ装置がスレーブ装置からデータを受信する際の処理時間を短縮することを主な目的とする。
【課題を解決するための手段】
【００３７】
本発明に係る通信装置は、
制御装置と受信メモリを備え複数のスレーブ装置を制御するマスタ装置に含まれる通信装置であって、
前記複数のスレーブ装置で生成された複数のスレーブデータと誤り検出のための誤り検出データを１つのパケットとして受信し、各スレーブデータを前記受信メモリに出力する受信部と、
前記複数のスレーブデータに対して前記誤り検出データを用いてデータの誤りを検出する誤り検出部と、
前記受信部から前記受信メモリへのスレーブデータの出力状況を監視し、スレーブデータが前記受信メモリに格納されたことを検知し、前記誤り検出部による誤り検出動作の完了を待たずに、前記制御装置に対して前記受信メモリにスレーブデータが格納されたことを通知する受信状況監視部とを有することを特徴とする。
【発明の効果】
【００３８】
本発明によれば、受信状況監視部は、誤り検出部による誤り検出動作にかかわりなく、受信メモリにスレーブデータが格納されたことを検知すると制御装置に対して受信メモリにスレーブデータが格納されたことを通知するので、制御装置は、誤り検出部による誤り検出動作の完了を待たずに受信メモリに格納されているスレーブデータに対する処理を開始することができ、データ受信の際の処理時間を短縮することができる。
【図面の簡単な説明】
【００３９】
【図１】実施の形態１に係るコントローラ内のＮＩＣの構成例を示す図。
【図２】実施の形態１に係るコントローラの構成例を示す図。
【図３】実施の形態１に係るコントローラの応答受信演算の手順およびタイミングを示す図。
【図４】実施の形態１に係るコントローラの応答受信演算の手順およびタイミングを示す図。
【図５】実施の形態１に係るコントローラの応答受信演算の手順およびタイミングを示す図。
【図６】サーボモータ制御システムの構成例を示す図。
【図７】トレーラ方式で使用するパケットのフォーマットを示す図。
【図８】トレーラ方式におけるコントローラとアンプの構成および接続形態を示す図。
【図９】トレーラ方式におけるコントローラとアンプ間の通信の様子を示す図。
【図１０】一般的なコントローラの構成例を示す図。
【図１１】従来のＮＩＣの構成例を示す図。
【図１２】従来のコントローラの構成例を示す図。
【図１３】従来の指令送信の手順およびタイミングを示す図。
【図１４】従来の指令送信の手順およびタイミングを示す図。
【図１５】従来の応答受信演算の手順およびタイミングを示す図。
【図１６】従来の応答受信演算の手順およびタイミングを示す図。
【図１７】従来の応答受信演算の手順およびタイミングを示す図。
【発明を実施するための形態】
【００４０】
実施の形態１．
本実施の形態では、ＮＩＣが、予めＣＰＵからパケット内のアンプごとの応答データサイズを通知されており、パケット内の各アンプの応答を受信メモリに転送完了する都度、ＣＲＣ検査回路のパケット検査結果を待たずに、ＣＰＵに応答の受信完了を通知する構成を説明する。
そして、本実施の形態では、ＣＰＵは、ＮＩＣから応答の受信完了を通知される都度、受信メモリから応答を読み出して演算し、指令を生成する。
これにより、コントローラの応答受信演算の所要時間を短縮し、従来よりもコントローラの処理を高速化することができる。
【００４１】
本実施の形態においても、サーボモータ制御システムを例にして説明を進める。なお、サーボモータ制御システムのコントローラはマスタ装置の例であり、複数のアンプが複数のスレーブ装置の例である。
なお、本実施の形態で想定するサーボモータ制御システムの構成は、背景技術として説明したものと同一であり、図６のとおりである。
また、本実施の形態で想定するコントローラの構成も、図１０のとおりである。
よって、これらの構成の説明についてはここでは繰り返さない。
【００４２】
本実施の形態に係るＮＩＣ８１の構成を図１に示す。
なお、ＮＩＣ８１は、通信装置の例である。
【００４３】
ＮＩＣ８１において、ポート８１１はケーブル２１を介してアンプと接続するポートである。
【００４４】
受信回路８１２は、ポート８１１よりアンプからのパケットを受信する。
本実施の形態においても、受信回路８１２が受信するパケットには、図７と同様に、ヘッダと複数のアンプからの応答（スレーブデータ）とＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）（誤り検出データ）が含まれる。
また、受信回路８１２は、ＣＲＣ検査回路８１３へパケットを転送し、受信メモリ８３および応答到達通知回路８１６へパケット内の応答を転送する。
受信回路８１２は受信部の例である。
【００４５】
ＣＲＣ検査回路８１３は、受信回路８１２からパケットを受け取り、パケットのＣＲＣを検査し、検査結果を受信回路８１２に返す。
ＣＲＣ検査回路８１３は、ＣＲＣを用いてデータの誤りを検出する手段であり、誤り検出部の例である。
【００４６】
応答到達通知回路８１６は、受信回路８１２から受信メモリ８３へ転送される応答を監視し、各アンプの応答の受信回路８１２から受信メモリ８３への転送完了を検知し、各アンプの応答の転送完了を検知する都度、それをＣＰＵ８２へ通知する。
より具体的には、応答到達通知回路８１６は、受信回路８１２が受信メモリ８３へ応答を出力する際に、並行して、受信回路８１２から応答を入力し、所定のデータサイズ分の応答を入力すると、受信メモリ８３に応答が格納されたと判断して、ＣＰＵ８２に対して受信メモリ８３に応答が格納されたことを通知する。
後述するように、応答到達通知回路８１６は、ＣＲＣ検査回路８１３による誤り検出動作の完了を待たずに、受信回路８１２から応答を入力する度にＣＰＵ８２に対して受信メモリ８３に応答が格納されたことを通知し、ＣＲＣ検査回路８１３による誤り検出動作の完了前に複数のアンプに対する複数の指令データの生成を可能にする。
応答到達通知回路８１６は、受信回路８１２から受信メモリ８３への応答の出力状況を監視しており、受信状況監視部の例である。
【００４７】
送信回路８１４は、送信メモリ８４から指令を読み出すと、アンプへのパケットを生成し、ＣＲＣ生成回路８１５とポート８１１へ転送する。
【００４８】
ＣＲＣ生成回路８１５は、送信回路８１４から受け取ったパケットからＣＲＣを生成し、生成したＣＲＣを送信回路８１４に返す。
【００４９】
図１に示したＮＩＣ８１を採用したコントローラ８の構成例を図２に示す。
コントローラ８およびＮＩＣ８１の構成の説明は、前出の図１０および図１で説明したものと同一のため、省略する。
つまり、ＮＩＣ８１の内部構成は、図１において説明したとおりであり、また、ＣＰＵ８２は図１０において説明したＣＰＵ７１と同様であり、受信メモリ８３は図１０において説明した受信メモリ５１と同様であり、送信メモリ８４は図１０において説明した送信メモリ６１と同様である。
なお、ＣＰＵ８２は、制御装置の例である。
【００５０】
コントローラ８において、受信回路８１２は、アンプから応答データとＣＲＣが含まれるパケットを受信した際に、応答データを受信メモリ８３と応答到達通知回路８１６とＣＲＣ検査回路８１３に出力し、受信メモリ８３はアンプからの応答データを格納する。
応答到達通知回路８１６は規定の応答データサイズ分の応答データを入力した際にＣＰＵ８２に対して受信メモリ８３に応答データが格納されたことを通知する。
ＣＰＵ８２はＣＲＣ検査回路８１３によるＣＲＣ検査動作が完了する前に、アンプに送信するデータである指令データを生成する処理を開始する。
【００５１】
次に、本実施の形態に係るコントローラの応答受信演算の手順を、図３〜図５のタイミングチャートを用いて説明する。
図３は、本実施の形態に係る受信回路８１２の動作例を示す。
図４は、本実施の形態に係るＣＲＣ検査回路８１３と応答到達通知回路８１６の動作例を示す。
図５は、本実施の形態に係る受信メモリ８３とＣＰＵ８２の動作例を示す。
【００５２】
また、動作の前提として、コントローラとアンプ間で通信を開始する前に、応答到達通知回路８１６はＣＰＵ８２からパケット内のアンプ１、２、３ごとの応答データサイズＳ１、Ｓ２、Ｓ３を通知され、これを記憶しているものとする。
応答データサイズＳ１はアンプ１からの応答のデータサイズであり、応答データサイズＳ２はアンプ２からの応答のデータサイズであり、応答データサイズＳ３はアンプ３からの応答のデータサイズである。
応答到達通知回路８１６は、応答データサイズＳ１、Ｓ２、Ｓ３を記憶しているため、受信回路８１２から応答データサイズＳ１分のデータを入力したか否かを判断し、応答データサイズＳ１分のデータを入力した場合に、ＣＰＵ８２にアンプ１からの応答が受信メモリ８３に格納されたことを検知することができる。
また、アンプ２及びアンプ３からの応答についても、受信回路８１２から応答データサイズＳ２分または応答データサイズＳ３分のデータを入力したか否かを判断し、応答データサイズＳ２又は応答データサイズＳ３分のデータを入力した場合に、ＣＰＵ８２にアンプ２またはアンプ３からの応答が受信メモリ８３に格納されたことを検知することができる。
【００５３】
まず、コントローラとアンプ間の通信が開始される時刻ｔ０’’で、図３に示すように、受信回路８１２はポート８１１からパケットを受信開始すると、ただちにＣＲＣ検査回路８１３へパケットを転送開始する（図３（Ａ））。
ＣＲＣ検査回路８１３は、受信回路８１２からパケットを入力する（図４（Ａ））。
【００５４】
次に、時刻ｔ１’’で、図３に示すように、受信回路８１２はパケットに格納された応答Ｒ１を受信開始すると、この応答Ｒ１をただちに受信メモリ８３および応答到達通知回路８１６へ転送開始する（図３（Ｂ）及び図３（Ｃ））。
受信メモリ８３および応答到達通知回路８１６は、受信回路８１２からパケットを入力する（図５（Ｂ）及び図４（Ｃ））。
これ以降、応答到達通知回路８１６は、受信回路８１２から受信メモリ８３への応答の転送量（データサイズ）を監視する。
【００５５】
続いて、時刻ｔ２’’で、応答到達通知回路８１６は、受信回路８１２から受信メモリ８３への転送量が予め記憶しているアンプ１の応答データサイズＳ１に一致したことを検知し、受信回路８１２が応答Ｒ１を受信メモリ８３へ転送完了したと判断して、受信メモリ８３に応答Ｒ１が格納されたことをＣＰＵ８２へ通知する（図４（Ｆ））。
ＣＰＵ８２は、応答到達通知回路８１６からの通知を受け（図５（Ｆ））、受信メモリ８３にリード信号を出力して（図５（Ｉ））受信メモリ８３から応答Ｒ１を読み出し、指令Ｍ１を生成して送信メモリ８４に書き込む。
【００５６】
以降、時刻ｔ３’’、ｔ４’’においても、同様に応答到達通知回路８１６が応答Ｒ２、Ｒ３の受信メモリ８３への転送完了を検知し、ＣＰＵ８２に応答Ｒ２、Ｒ３の受信メモリ８３への格納を通知し（図４（Ｇ）、図５（Ｇ）、図４（Ｈ）、図５（Ｈ））、ＣＰＵ８２は受信メモリ８３にリード信号を出力して（図５（Ｊ）及び図５（Ｋ））応答Ｒ２、Ｒ３を読み出し、指令Ｍ２、Ｍ３を生成して送信メモリ８４に書き込む。
【００５７】
そして、時刻ｔ５’’で、受信回路８１２がパケットを受信完了すると同時に、図４に示すように、ＣＲＣ検査回路８１３はパケットのＣＲＣ検査を完了し、ただちに検査結果を受信回路８１２に通知する（図４（Ｄ））。
受信回路８１２はＣＲＣ検査回路からのＣＲＣ検査結果を入力し（図３（Ｄ））、ＣＰＵ８２に検査結果を通知する（図３（Ｅ））。
ＣＰＵ８２は、受信回路８１２からＣＲＣ検査結果を入力し（図５（Ｅ））、ＣＲＣ検査結果がエラー無しの場合、そのまま処理を完了する。
一方、受信回路８１２からのＣＲＣ検査結果がエラー有りの場合、ＣＰＵ８２は生成した指令Ｍ１、Ｍ２、Ｍ３を破棄して処理を完了する。
破棄された指令Ｍ１、Ｍ２、Ｍ３は、アンプへ送信されない。
【００５８】
一方、本実施の形態におけるコントローラの指令送信の手順は、図１３及び図１４に示したものと同一のため、ここでは説明しない。
【００５９】
続いて、本実施の形態における応答受信演算および指令送信の所要時間を見積もる。
【００６０】
まず、応答受信演算の所要時間を見積もる。
前提条件として、アンプの台数をｎ、指令および応答のサイズが全アンプについてＤｄと仮定し、また、パケットのヘッダサイズをＤｈ、ＣＲＣサイズをＤｃ、ネットワークの伝送ビットレートをＢ、ＣＰＵが応答から指令を生成する時間を応答１つあたりＣとおく。
今、応答受信演算の所要時間をＴｕｐ’と置くと、Ｔｕｐ’は、指令送信の開始から応答受信演算の開始までの待ち時間（ｔ０’’−ｔ０）と、受信回路８１２がパケットヘッダおよび応答Ｒ１を受信する時間（ｔ２’’−ｔ０’’）と、ＣＰＵが応答Ｒ１、Ｒ２、Ｒ３から指令Ｍ１、Ｍ２、Ｍ３を生成する時間（ｔ５’’−ｔ２’’）の和となり、以下の数式３のように表される。
ただし、Ｔｕｐ’には、ＣＲＣ検査回路４１３から受信回路４１２および受信回路４１２からＣＰＵ４２へＣＲＣ検査結果を通知する時間、応答到達通知回路８１６からＣＰＵ８２へ応答の受信完了を通知する時間、およびＣＰＵ８２から受信メモリ８３へのリード要求信号の出力時間を含めないとする。
【００６１】
【数３】
2011119999.tif 000005
【００６２】
一方、指令送信の所要時間は、従来技術と同一である。
以下に、従来技術における指令送信の所要時間の計算式（数式１）を再掲する。
【００６３】
【数４】
2011119999.tif 000006
【００６４】
上記数式３および数式１の比較より、以下の数式４に示す条件に合致するときに、数式３に示す応答受信演算の所要時間がコントローラの処理時間となる。
本実施の形態では、応答受信演算と指令送信は並行して処理され、数式４に示す条件に合致する場合は、応答受信演算に要する時間が指令送信に要する時間よりも長くなるので、コントローラの処理時間としては、応答受信演算の所要時間となる。
【００６５】
【数５】
2011119999.tif 000007
【００６６】
一方、以下の数式５に示す条件に合致するときは、数式１に示す指令送信の所要時間がコントローラの処理時間となる。
本実施の形態では、応答受信演算と指令送信は並行して処理され、数式５に示す条件に合致する場合は、指令送信に要する時間が応答受信演算に要する時間よりも長くなるので、コントローラの処理時間としては、指令送信の所要時間となる。
【００６７】
【数６】
2011119999.tif 000008
【００６８】
このように、本実施の形態によれば、コントローラがアンプからの応答を格納したパケットを受信開始してから、アンプへの次の指令を生成完了するまでの時間が、従来方式よりも短くなる。
その理由は、従来アンプ台数分かかっていたＤｄがアンプ１台分となり、また従来かかっていたＤｃがかからないことによる。
【００６９】
以上、本実施の形態では、
モーションコントローラと複数のサーボアンプが双方向のシリアルケーブルを介して接続され、モーションコントローラから複数のサーボアンプへ指令データがパケットに格納されて伝送され、また複数のサーボアンプからモーションコントローラへ応答データがパケットに格納されて伝送されるサーボモータ制御ネットワークにおいて、
指令データおよび応答データを送受信するＮＩＣと、ＮＩＣの受信した応答データを記憶する受信メモリと、受信メモリから読み出した応答データから指令データを生成して送信メモリに書き込むＣＰＵと、ＣＰＵの生成した指令データを記憶する送信メモリを備えたモーションコントローラであって、
前記ＮＩＣは、シリアルケーブルを介してアンプと接続するポートと、ポートよりアンプからのパケットを受信し、ＣＲＣ検査回路へパケットを転送し、受信メモリおよび応答到達通知回路へパケット内の応答データを転送し、ＣＰＵへ受信メモリへの応答データ転送の完了を通知する受信回路と、受信回路からパケットを受け取り、パケットのＣＲＣを検査し、検査結果を受信回路に返すＣＲＣ検査回路と、受信回路から受信メモリへ転送される応答データを監視し、受信回路が各サーボアンプの応答データを受信メモリへ転送完了する都度、それをＣＰＵへ通知する応答到達通知回路と、送信メモリから指令データを読み出すと、サーボアンプへ送信するパケットを生成し、ＣＲＣ生成回路とポートへ転送する送信回路と、送信回路から受け取ったパケットからＣＲＣを生成し、生成したＣＲＣを送信回路に返すＣＲＣ生成回路と、
を備えるモーションコントローラを説明した。
【００７０】
また、本実施の形態では、
応答到達通知回路は、予めＣＰＵから通知されたパケット内のサーボアンプごとの応答データ格納領域の情報から、受信回路がパケット内の各応答データを受信メモリに転送を完了するタイミングを計測し、受信回路がパケット内の各応答データを受信メモリに転送を完了する都度、ＣＲＣ検査回路のパケット検査結果を待たずに、ＣＰＵに応答データの転送の完了を通知し、
ＣＰＵは、応答到達通知回路から応答データの受信の完了を通知される都度、受信メモリから応答データを読み出して演算し、指令データを生成することを説明した。
【００７１】
実施の形態２．
実施の形態１では、応答到達通知回路８１６は、パケット内のアンプごとの応答データサイズをＣＰＵ８２から通知される。
これに対し、本実施の形態では、パケットのヘッダにアンプごとの応答データサイズの情報を格納しておき、アンプからの応答の入力前に応答到達通知回路８１６がこの応答データサイズ情報を読み出してアンプごとの応答データサイズを認識する。
この場合、応答到達通知回路８１６は受信回路８１２から応答だけでなくヘッダを含むパケット全体を受け取る。
本実施の形態では、ＣＰＵ８２からアンプごとの応答データサイズを通知されることに代えて応答到達通知回路８１６がパケットのヘッダからアンプごとの応答データサイズの情報を読み出す点が異なるだけであり、ＮＩＣ８１の構成、コントローラ８の構成は図１及び図２に示した通りである。
また、動作手順もヘッダからアンプごとの応答データサイズの情報を読み出す点以外は、図３〜図５及び図１３、図１４に示した通りである。
【００７２】
以上、本実施の形態では、
応答到達通知回路は、パケットのヘッダ領域に格納されたサーボアンプごとの応答データ格納領域の情報から、受信回路がパケット内の各応答データを受信メモリに転送を完了するタイミングを計測し、受信回路がパケット内の各応答データを受信メモリに転送を完了する都度、ＣＲＣ検査回路のパケット検査結果を待たずに、ＣＰＵに応答データの転送の完了を通知し、
ＣＰＵは、応答到達通知回路から応答データの受信の完了を通知される都度、受信メモリから応答データを読み出して演算し、指令データを生成することを説明した。
【００７３】
なお、以上では、サーボモータ制御システムを例にして説明を進めたが、サーボモータ制御システムに限らず、マスタ装置と複数のスレーブ装置から構成されるシステムであれば、実施の形態１及び実施の形態２で説明した機構を適用できる。
【００７４】
また、以上では、受信回路８１２から応答到達通知回路８１６に応答を出力していたが、受信回路８１２から応答到達通知回路８１６に応答を出力しないようにしてもよい。
この場合は、例えば、応答到達通知回路８１６は、受信回路８１２から、受信メモリ８３への応答の転送開始を通知され、受信回路８１２と受信メモリ８３との間の通信路の通信帯域と応答のデータサイズと応答の転送開始タイミングから受信メモリ８３への転送完了時刻を計算する。
そして、計算した転送完了時刻が到来した際に、応答到達通知回路８１６は、受信メモリ８３への応答の格納が完了したと判断し、受信メモリ８３への応答の格納が完了した旨をＣＰＵ８２に通知するようにしてもよい。
【００７５】
また、以上では、通信装置の例としてＮＩＣを説明し、マスタ装置の例としてコントローラを説明したが、実施の形態１及び実施の形態２で説明した手順の通信方法及びデータ処理方法を実現することも可能である。
【符号の説明】
【００７６】
１  アンプ、２  アンプ、３  アンプ、４  コントローラ、５  パケット、８  コントローラ、１１  モータ、１２  モータ、１３  モータ、２１  双方向シリアル通信ケーブル、２２  双方向シリアル通信ケーブル、２３  双方向シリアル通信ケーブル、４１  ＮＩＣ、４２  ＮＩＣ、４３  ＮＩＣ、４４  ＮＩＣ、４５  ＮＩＣ、４６  ＮＩＣ、４７  ＮＩＣ、５１  受信メモリ、５２  受信メモリ、５３  受信メモリ、５４  受信メモリ、６１  送信メモリ、６２  送信メモリ、６３  送信メモリ、６４  送信メモリ、７１  ＣＰＵ、８１  ＮＩＣ、８２  ＣＰＵ、８３  受信メモリ、８４  送信メモリ、４１１  ポート、４１２  受信回路、４１３  ＣＲＣ検査回路、４１４  送信回路、４１５  ＣＲＣ生成回路、８１１  ポート、８１２  受信回路、８１３  ＣＲＣ検査回路、８１４  送信回路、８１５  ＣＲＣ生成回路、８１６  応答到達通知回路。
【図１】
2011119999.tif 000009
【図２】
2011119999.tif 000010
【図３】
2011119999.tif 000011
【図４】
2011119999.tif 000012
【図５】
2011119999.tif 000013
【図６】
2011119999.tif 000014
【図７】
2011119999.tif 000015
【図８】
2011119999.tif 000016
【図９】
2011119999.tif 000017
【図１０】
2011119999.tif 000018
【図１１】
2011119999.tif 000019
【図１２】
2011119999.tif 000020
【図１３】
2011119999.tif 000021
【図１４】
2011119999.tif 000022
【図１５】
2011119999.tif 000023
【図１６】
2011119999.tif 000024
【図１７】
2011119999.tif 000025