JP2007004416A - 駆動制御装置及び機械装置状態検出装置 - Google Patents

駆動制御装置及び機械装置状態検出装置 Download PDF

Info

Publication number
JP2007004416A
JP2007004416A JP2005182824A JP2005182824A JP2007004416A JP 2007004416 A JP2007004416 A JP 2007004416A JP 2005182824 A JP2005182824 A JP 2005182824A JP 2005182824 A JP2005182824 A JP 2005182824A JP 2007004416 A JP2007004416 A JP 2007004416A
Authority
JP
Japan
Prior art keywords
value
difference
unit
state
slave
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.)
Withdrawn
Application number
JP2005182824A
Other languages
English (en)
Inventor
Kazue Sumiya
和重 角谷
Shin Miyaji
伸 宮治
Shinya Kataoka
信哉 片岡
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2005182824A priority Critical patent/JP2007004416A/ja
Publication of JP2007004416A publication Critical patent/JP2007004416A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

【課題】 より多くのアクチュエータ等を短い周期で制御することができる駆動制御装置を提供することを目的とする。
【解決手段】 複数のアクチュエータを有して構成される機械装置の駆動を、ネットワークを用いて制御する駆動制御装置において、各アクチュエータに対応して発行された指令値を、最大値と最小値の制限を加えた差分指令値に変換した上でネットワークに送出する。各アクチュエータに対応して設けられた各スレーブ駆動制御部は、自身に対応する差分指令値を抽出し、抽出した差分指令値から元の指令値を復元してアクチュエータを制御する。
【選択図】 図12

Description

本発明は、機械装置の駆動を制御する駆動制御装置に関する。また、本発明は、機械装置の状態を検出する機械装置状態検出装置に関する。
多くのアクチュエータを用いたロボットシステムにおいて、USB(Universal Serial Bus)やCAN(Controller Area Network)などの高速シリアルバスをベースとした体内LAN(Local Area Network)を利用することにより、省配線化且つ小型軽量化を実現する技術が提案されている(例えば、下記特許文献1〜3参照)。
下記特許文献3には、ネットワークを介した通信処理を含む分散制御システムのアプリケーションとして、また、センサ入力の信号処理やアクチュエータ出力制御を行う制御システムの技術として、次のような3つの技術が開示されている。
まず、第1の技術として、通信手順や起動タイミングをアプリケーションプログラム内に記述し、必要に応じて各通信処理を関数形式で呼び出すライブラリ方式が開示されている。また、第2の技術として、アプリケーションプログラムと通信処理が共有メモリを介して分離され、それぞれが非同期で独立して動作するメモリ転写方式が開示されている。また、第3の技術として、リアルタイムOS(Operating System)の利用により、アプリケーションや通信処理をマルチタスク処理すると共に、これらの処理モジュールの実行順序やネットワークの状態を管理するモジュール起動制御手段を用いるマルチタスク処理方式が開示されている。
特開2002−328703号公報 特開2001−287181号公報 特開2000−56987号公報
多くのアクチュエータを用いた2足歩行や更に高速なモーション制御を体内LANシステムで実現するためには、環境やメカニズムの状態を把握するためのデータを各種センサから取得する必要があるとともに、全アクチュエータに対して高速に、その状態等に応じた出力指令を与える必要がある。例えば、一般的に、モータをトルク制御することで、それによって駆動されるメカニズムのモーションをコントロールするためには、トルクに関するデータの受け渡しを1ms程度の周期で行う必要がある、と言われている。
シリアルバスを用いた場合、配線が簡略化できるという大きなメリットがあるが、多くのアクチュエータを上述のように短い制御周期でコントロールしようとすると、バス上のデータ伝送速度の高速化の必要性が生じる。
IEEE(Institute of Electrical and Electronic Engineers)1394やUSB2.0といった規格における最高伝送速度は400Mbps(Mega Bits Per Second)や480Mbpsといわれており、それらの伝送速度は上記必要性に対応可能といえる。しかしながら、これらの規格に対応するLSI(Large Scale Integration)のコストは大きく、また、これらの規格は、AV(Audio Visual)機器やパーソナルコンピュータ用のバスとして開発されたものであるため、機械装置の体内LANとして用いることを考えると十分な信頼性があるとは言えない。
信頼性の高いシリアルバス規格として、車載用LANで標準的に使用されつつあるCANがある。しかし、CANの伝送速度は最高でも1Mbpsであり、CANを用いてデータ伝送を従来通りの通信手順で行った場合、1msという周期で指令値を発行して制御できるアクチュエータの数は、多くても8台程度である。
そこで、本発明は、より多くの機器(アクチュエータ等)を短い周期で制御することができる駆動制御装置を提供することを目的とする。また、本発明は、より多くの機器(アクチュエータ等)の状態を短い周期で検出することができる機械装置状態検出装置を提供することを目的とする。
上記目的を実現するために本発明に係る駆動制御装置は、N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の駆動を、ネットワークを用いて制御する駆動制御装置であって、前記N個のスレーブ機器の夫々に対する合計N個の指令値を次々と受けるマスタ通信制御部と、前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ制御部と、を備え、前記マスタ通信制御部は、各スレーブ制御部に対応する指令値ごとに、今回受けた指令値と前回受けた指令値との差である差分値を演算し、該差分値に応じた差分指令値を出力する差分指令値出力部を備え、各差分指令値を含んだ送信データを次々と前記ネットワークに対して送信し、各スレーブ制御部は、前記送信データを次々と受信し、受信した前記送信データから自身に対応する差分指令値を抽出するフィルタと、抽出された差分指令値に基づいて次々と前記指令値を復元する指令値復元部と、を備えていることを特徴とする。
指令値を差分指令値として伝送する手法を採用することにより、伝送するデータの量を小さく抑えることが可能となる。このため、より多くのスレーブ機器を短い周期で制御することが可能となる。
また、例えば、前記差分指令値出力部は、各スレーブ制御部に対応する指令値ごとに、前記差分値を演算して出力する差分演算部と、与えられた各差分値に対して最小値と最大値の制限を加え、該制限を経て得られた値の夫々を前記差分指令値として出力する最小最大値制限部と、を有する。
そして、例えば、前記最小最大値制限部における、各スレーブ制御部に対応する各差分指令値の算出において、前回の差分指令値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に前記差分演算部が出力する、同一のスレーブ制御部に対応する差分値に加算され、前記最小最大値制限部は、その加算後の各差分値に対して前記制限を加えることにより今回の各差分指令値を算出して出力し、各指令値復元部は、前回復元した指令値と今回受信した差分指令値に基づいて今回の指令値を復元するとよい。
これにより、差分指令値の分解能を必要なだけ確保しつつ、必要な制御周期を確保することができる。
また、例えば、各差分指令値によって表現される数値範囲が互いに異なる複数のモードが設けられており、前記差分指令値出力部が演算する各差分値の大きさに応じて、その各差分値に対応する各差分指令値のモードが差分指令値ごとに択一的に選択される。
これにより、スレーブ制御部側で復元される指令値の応答性や量子化誤差を改善することができる。
また、例えば、前記ネットワークを介しての一回のデータ伝送のデータサイズは定められおり、前記マスタ通信制御部は、M個(Mは2以上の整数であって、N≧M)のスレーブ制御部に対する合計M個の差分指令値を前記データサイズ以内にまとめることによって1つの送信データを作成し、該送信データを前記M個のスレーブ制御部に対して同時に送信する。
また、例えば、合計M個の差分指令値を構成する各差分指令値の前記送信データ内のアドレスは予め定められており、前記M個のスレーブ制御部の各フィルタは、その予め定められたアドレスに従って、受信した前記送信データから自身に対応する差分指令値を抽出する。
また、例えば、前記ネットワークは、第1ネットワーク含む複数系統のネットワークから構成されており、当該駆動制御装置は、第1ネットワークを介して前記マスタ通信制御部に接続された複数の中継装置を更に備え、各中継装置は、第1ネットワークと異なり且つ前記複数の中継装置間で互いに異なる個別の系統の第2ネットワークを介して複数のスレーブ制御部と接続されており、前記マスタ通信制御部は、送信すべき前記送信データに、該送信データが何れの中継装置に受信されるべきであるかを表すメッセージID情報を含ませ、各中継装置は、前記メッセージID情報に従って自身に対する送信データを第1ネットワークを介して受信し、受信した該送信データを自身に接続された第2ネットワークに送る。
これらにより、効率的なデータ伝送が実現される。
上記目的を実現するために本発明に係る第1の機械装置状態検出装置は、N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の状態を、ネットワークを用いて検出する機械装置状態検出装置であって、マスタ通信制御部と、前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ状態検出部と、を備え、各スレーブ状態検出部は、自身に対応するスレーブ機器の状態を表す状態値を次々と検出する状態値検出部と、今回検出された状態値と前回検出された状態値との差である差分値を演算し、該差分値に応じた差分状態値を出力する差分状態値出力部と、を備え、前記マスタ通信制御部は、前記ネットワークを介して次々と送られてくる各スレーブ状態検出部に対応する差分状態値に基づいて、次々と各スレーブ状態検出部に対応する状態値を復元する状態値復元部を備えていることを特徴とする。
状態値を差分状態値として伝送する手法を採用することにより、伝送するデータの量を小さく抑えることが可能となる。このため、より多くのスレーブ機器の状態を短い周期で検出することが可能となる。
また、例えば、各差分状態値出力部は、前記差分値を演算して出力する差分演算部と、 与えられた差分値に対して最小値と最大値の制限を加え、該制限を経て得られた値を前記差分状態値として出力する最小最大値制限部と、を有する。
また、例えば、各スレーブ状態検出部において、前回の差分状態値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に前記差分演算部が出力する差分値に加算され、各最小最大値制限部は、その加算後の差分値に対して前記制限を加えることにより今回の差分状態値を算出して出力し、前記状態値復元部は、各スレーブ状態検出部に対応する各状態値の復元において、前回復元した状態値と今回受信した差分状態値に基づいて今回の状態値を復元する。
これにより、差分状態値の分解能を必要なだけ確保しつつ、必要な状態値取得周期を確保することができる。
上記目的を実現するために本発明に係る第2の機械装置状態検出装置は、N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の状態を、ネットワークを用いて検出する機械装置状態検出装置であって、マスタ通信制御部と、前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ状態検出部と、を備え、前記ネットワークは、第1ネットワーク含む複数系統のネットワークから構成されており、当該機械装置状態検出装置は、第1ネットワークを介して前記マスタ通信制御部に接続された複数の中継装置を更に備え、各中継装置は、第1ネットワークと異なり且つ前記複数の中継装置間で互いに異なる個別の系統の第2ネットワークを介して複数のスレーブ状態検出部と接続されており、各スレーブ状態検出部は、自身に対応するスレーブ機器の状態を表す状態値を次々と検出する状態値検出部と、今回検出された状態値と前回検出された状態値との差である差分値を演算して出力する差分演算部と、を備えて、前記差分値を次々と第2ネットワークに送信し、各中継装置は、自身に接続されているスレーブ状態検出部の夫々から第2ネットワークを介して受け取った前記差分値に対して、差分値ごとに、最小値と最大値の制限を加え、該制限を経て得られた値を各スレーブ状態検出部に対応する差分状態値として出力する最小最大値制限部を備えて、各差分状態値を次々と第1ネットワークに送信し、前記マスタ通信制御部は、第1ネットワークを介して次々と送られてくる各スレーブ状態検出部に対応する差分状態値に基づいて、次々と各スレーブ状態検出部に対応する状態値を復元する状態値復元部を備えていることを特徴とする。
そして、例えば、各最小最大値制限部における、各スレーブ状態検出部に対応する各差分状態値の算出において、前回の差分状態値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に同一のスレーブ状態検出部から送られてくる差分値に加算され、各最小最大値制限部は、その加算後の各差分値に対して前記制限を加えることにより今回の各差分状態値を算出して出力し、前記状態値復元部は、各スレーブ状態検出部に対応する各状態値の復元において、前回復元した状態値と今回受信した差分状態値に基づいて今回の状態値を復元する。
これによっても、第1の機械装置状態検出装置と同様の効果を実現することができる。
上記目的を実現するために本発明に係る第3の機械装置状態検出装置は、N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の状態を、ネットワークを用いて検出する機械装置状態検出装置であって、マスタ通信制御部と、前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ状態検出部と、を備え、前記ネットワークは、第1ネットワーク含む複数系統のネットワークから構成されており、当該機械装置状態検出装置は、第1ネットワークを介して前記マスタ通信制御部に接続された複数の中継装置を更に備え、各中継装置は、第1ネットワークと異なり且つ前記複数の中継装置間で互いに異なる個別の系統の第2ネットワークを介して複数のスレーブ状態検出部と接続されており、各スレーブ状態検出部は、自身に対応するスレーブ機器の状態を表す状態値を次々と検出して第2ネットワークに送信し、各中継装置は、第2ネットワークを介して受けた各スレーブ状態検出部に対応する状態値ごとに、今回受けた状態値と前回受けた状態値との差を表す差分値を演算し、該差分値に応じた差分状態値を出力する差分状態値出力部を備え、各スレーブ状態検出部に対応する差分状態値を次々と第1ネットワークに送信し、前記マスタ通信制御部は、第1ネットワークを介して次々と送られてくる各スレーブ状態検出部に対応する差分状態値に基づいて、次々と各スレーブ状態検出部に対応する状態値を復元する状態値復元部を備えていることを特徴とする。
そして、例えば、各差分状態値出力部は、各スレーブ状態検出部に対応する前記差分値を演算して出力する差分演算部と、各スレーブ状態検出部に対応して与えられた差分値ごとに、最小値と最大値の制限を加え、該制限を経て得られた値を各スレーブ状態検出部に対応する前記差分状態値として出力する最小最大値制限部と、を有する。
更に、例えば、各最小最大値制限部における、各スレーブ状態検出部に対応する各差分状態値の算出において、前回の差分状態値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に前記差分演算部が出力する、同一のスレーブ状態検出部に対応する差分値に加算され、前記最小最大値制限部は、その加算後の各差分値に対して前記制限を加えることにより今回の各差分状態値を算出して出力し、前記状態値復元部は、各スレーブ状態検出部に対応する各状態値の復元において、前回復元した状態値と今回受信した差分状態値に基づいて今回の状態値を復元する。
これによっても、第1の機械装置状態検出装置と同様の効果を実現することができる。
また、例えば、上記第1、第2及び第3の機械装置状態検出装置において、各差分状態値によって表現される数値範囲が互いに異なる複数のモードが設けられており、演算される各差分値の大きさに応じて、その各差分値に対応する各差分状態値のモードが差分状態値ごとに択一的に選択される。
これにより、マスタ通信制御部側で復元される状態値の応答性や量子化誤差を改善することができる。
また、例えば、上記第2及び第3の機械装置状態検出装置において、前記ネットワークを介しての一回のデータ伝送のデータサイズは定められており、各中継装置は、自身に接続された全てのスレーブ状態検出部に対応する全ての差分状態値を前記データサイズ以内にまとめたデータを、一括して第1ネットワークを介して前記マスタ通信制御部に送るとよい。
これにより、効率的なデータ伝送が実現される。
また、例えば、上記駆動制御装置、並びに上記第1、第2及び第3の機械装置状態検出装置において、前記ネットワークは、前記マスタ通信制御部からデータを送信するためのダウンロード用のネットワークと、前記マスタ通信制御部に対してデータを送信するためのアップロード用のネットワークとの2系統のネットワークを有して構成され、該2系統のネットワークの内の一方のネットワークに異常をきたした場合、その一方のネットワークを用いたデータの通信を停止し、他方のネットワークを用いた時分割の双方向通信を行う。
また、例えば、前記N個のスレーブ機器の一部又は全部は、アクチュエータである。
上述した通り、本発明に係る駆動制御装置によれば、より多くの機器(アクチュエータ等)を短い周期で制御することができる。また、本発明に係る機械装置状態検出装置によれば、より多くの機器(アクチュエータ等)の状態を短い周期で検出することができる。
<<第1実施形態>>
以下、本発明の第1実施形態に係る機械装置駆動システムについて、図面に沿って具体的に説明する。
図1は、本発明の第1実施形態に係る機械装置駆動システムの全体ブロック図である。図1の機械装置駆動システムは、メイン制御ボード11と、マスタ制御ユニット(Master Control Unit;以下「MCU」という)12と、合計8個の蓄積制御ユニット(Accumulation Control Unit)ACU[j]と、合計64個のスレーブ制御ユニット(Slave Control Unit)SCU[i:j]と、を有して構成されている。
蓄積制御ユニットの符号を表すACU[j]の[ ]内のjは、特に記述しない限り、0〜7の任意の値(8種類の値)をとる。即ち、図1の機械装置駆動システムは、合計8個の蓄積制御ユニットACU[0]、ACU[1]、ACU[2]、ACU[3]、ACU[4]、ACU[5]、ACU[6]及びACU[7](以下、夫々を、ACU[0]、ACU[1]、ACU[2]、ACU[3]、ACU[4]、ACU[5]、ACU[6]及びACU[7]と略記する)を有する。尚、図1においては、ACU[0]とACU[1]だけを図示しており、ACU[2]〜ACU[7]の図示を省略している。
スレーブ制御ユニットの符号を表すSCU[i:j]の[ ]内のiとjは、特に記述しない限り、互いに独立して0〜7の任意の値(8種類の値)をとる。8×8=64であるから、図1の機械装置駆動システムは、合計64個のスレーブ制御ユニットSCU[i:j]を有する。以下、スレーブ制御ユニットSCU[i:j]を、SCU[i:j]と略記する。例えば、(i,j)=(0,0)のスレーブ制御ユニットSCU[0:0]については、SCU[0:0]と略記される。尚、図1においては、SCU[0:0]、SCU[1:0]及びSCU[7:0]並びにSCU[0:1]、SCU[1:1]及びSCU[7:1]だけを図示しており、その他のスレーブ制御ユニットについての図示を省略している。jの値を同じくするSCU[i:j]は、ACU[j]に接続されている。即ち、ACU[j]の夫々は、8個のSCU[i:j]に接続されている。
図1の機械装置駆動システムは、2足歩行が可能なロボットや産業用ロボット等の駆動機構を有する機械装置に内蔵され、それらの機械装置の状態を監視すると共に、その状態を参照しつつ該機械装置の駆動を制御する。上記機械装置は、上記機械装置の一部又は全部を駆動させるためのモータ等のアクチュエータ(不図示)を64個、有している。合計64個のSCU[i:j]の夫々は、合計64個のアクチュエータ(スレーブ機器)に1対1に対応して接続されている。
MCU12は、メモリ転写方式にてメイン制御ボート11との間でデータの受け渡しを行うとともに、各アクチュエータの駆動制御に必要なデータの周期的な転送及び転送するデータ(差分指令値)の作成等を行う。また、MCU12は、ACU[j]を介してSCU[i:j]から各アクチュエータの状態の表すデータを取得する。
ACU[j]は、MCU12からマルチキャストされるデータの内、自身に接続されているSCU[i:j]に関係するデータのみを獲得するとともに、自身に接続されている8つのSCU[i:j]からのデータを1つのフレームデータにまとめた上でMCU12に転送する。SCU[i:j]は、ACU[j]からマルチキャストされるデータの内、自身に関係するデータのみを獲得し、獲得したデータ(後述する差分指令値)から本来のデータ(指令値)を復元すると共に、各アクチュエータの状態の表すデータをACU[j]を介してMCU12に転送する。
図2に、SCU[i:j]の代表として、SCU[0:0]の内部構成図を示す。SCU[i:j]の夫々の内部構成は、互いに同じとなっている。SCU[0:0](SCU[i:j]の夫々)は、自身に接続されているアクチュエータの状態(モータの回転数等)を検出して該状態を表す状態値に関わるデータをMCU12側に伝送するためのスレーブ状態検出部41と、MCU12側から伝送される指令値に関わるデータに従って自身に接続されているアクチュエータの駆動を制御するスレーブ駆動制御部(スレーブ制御部)42と、を有して構成されている。
一方、図3に示すように、MCU12は、SCU[i:j]の夫々からの状態値に関わるデータを受信するための状態値受信部13と、SCU[i:j]の夫々に対して指令値に関わるデータを送信するための指令値送信部14と、を有して構成されている。状態値受信部13及び/又は指令値送信部14は、マスタ通信制御部を構成している。尚、図2及び図3において、図1と同一の部分には同一の符号を付してある。図3に示す他の部位の説明については、後述する。
上記のようなデータ転送を可能とすべく、図1に示すように各部は接続されている。MCU12と合計8個のACU[j]は、車載用LAN(Local Area Network)として用いられることの多いCAN(Controller Area Network)を介して接続されている。より具体的には、MCU12と合計8個のACU[j]の夫々は、MCU12からのデータをACU[j]の夫々に伝送するためのダウンロード用のネットワーク(配線)CAN0:Hを介して互いに接続されていると共に、ACU[j]の夫々からのデータをMCU12に伝送するためのアップロード用のネットワーク(配線)CAN1:Hを介して互いに接続されている。
j=0〜7の夫々において、ACU[j]と合計8個のSCU[i:j]の夫々は、ACU[j]からのデータをSCU[i:j]の夫々に伝送するためのダウンロード用のネットワーク(配線)CAN0[j]Lを介して互いに接続されていると共に、SCU[i:j]の夫々からのデータをACU[j]に伝送するためのアップロード用のネットワーク(配線)CAN1[j]Lを介して互いに接続されている。
即ち、例えば、ACU[0]と合計8個のSCU[i:0]の夫々は、ACU[0]からのデータをSCU[i:0]の夫々に伝送するためのダウンロード用のネットワーク(配線)CAN0[0]Lを介して互いに接続されていると共に、SCU[i:0]の夫々からのデータをACU[0]に伝送するためのアップロード用のネットワーク(配線)CAN1[0]Lを介して互いに接続されている。j=1〜7におけるACU[j]とSCU[i:j]の接続関係も、j=0におけるそれと同様である。
ダウンロード用のネットワーク(配線)の符号を表すCAN0[j]Lの表記中の[ ]内のj、及び、アップロード用のネットワーク(配線)の符号を表すCAN1[j]Lの[ ]内のjは、ACU[j]等におけるjと同じものであり、特に記述しない限り、0〜7の任意の値(8種類の値)をとる。尚、図1においては、ダウンロード用のネットワークCAN0[j]L及びアップロード用のネットワークCAN1[j]Lとして、j=0〜1だけのものを図示している。
MCU12とACU[j]の夫々は、上記のネットワークCAN0:H及びCAN1:Hを介して、シリアルバスの通信規格であるCAN(Controller Area Network)のプロトコルに則ったデータのやり取りを行う。同様に、j=0〜7の夫々において、ACU[j]と合計8個のSCU[i:j]の夫々は、上記のネットワークCAN0[j]L及びCAN1[j]Lを介して、通信規格CAN(Controller Area Network)のプロトコルに則ったデータのやり取りを行う。
上記のように、MCU12と合計8個のACU[j]は、ネットワークCAN0:H及びCAN1:Hから成る第1ネットワークを介して接続されており、j=0〜7の夫々において、ACU[j]と合計8個のSCU[i:j]は、CAN0[j]L及びCAN1[j]Lから成る第2ネットワークを介して接続されている。ACU[j]の夫々についての第2ネットワークは、互いに独立した個別の系統のネットワークとなっている。第1ネットワークと第2ネットワークは、図1の機械装置駆動システムを内蔵する機械装置の、所謂体内LANを形成している。
ここで、通信規格CANについて簡単に説明する。図4は、通信規格CANにて伝送される1つのフレームデータのデータ構造を示している。通信規格CANの標準フォーマットにおいて、1つのフレームデータは、108ビットのデジタルデータから構成されている。各フレームデータは、アービトレーションフィールドやデータフィールド等を含んで構成されており、データフィールドとして最大64ビットのデータサイズを有する領域が確保されている。このデータフィールドに、MCU12側からの指令値に関わるデータやSCU[i:j]側からの状態値に関わるデータが格納される。
図5を参照しつつ、各フレームデータのデータフィールドのデータ構成について説明する。上述の如く、データフィールドは最大64ビットの領域を有するが、これを8等分して用いる。この8等分によって得られる8つの領域は、それぞれ、1バイト(=8ビット)の領域を有する。この8の領域を、各フレームデータの先頭アドレス側から領域[0]、領域[1]、領域[2]、領域[3]、領域[4]、領域[5]、領域[6]及び領域[7]と呼ぶことにする。また、以下の説明において、領域[i]と記すことがあるが、領域[i]の表記中の[ ]内のiは、SCU[i:j]の表記中のiと同じものである。
通信規格CANにおける伝送速度は最大で1Mbps(Mega Bits Per Second)となっている。これを考慮し、図6に示す如く、1ms(ミリ秒)の長さを有する単位期間を定め、1つの単位期間ごとに、SCU[i:j]の夫々に1つの「指令値に関するデータ」を与えるようにしている。つまり、SCU[i:j]及び該SCU[i:j]に接続されているアクチュエータの制御周期を、1msとしている。1つの単位期間が開始して1msが経過し、その単位期間が終了すると、直ちに次の単位期間が開始する。
また、各単位期間を長さが125μs(マイクロ秒)の8つのフレームに等間隔で分ける。そして、長さが125μsの各フレームにおいて、108ビット長のフレームデータを伝送するようにする。通信規格CANにおける最大伝送速度は1Mbpsであるので、125μsの間に108ビット長のフレームデータを伝送することは可能である。尚、各単位期間を8つのフレームに分ける際、必ずしも等間隔で分ける必要はない。1msの各単位期間で8つのフレームデータの伝送を完了できるのであれば、各単位期間をどのように分けても構わない。
また、各単位期間における8つのフレームを、訪れる時間の早い方から順番に、フレーム[0]、フレーム[1]、フレーム[2]、フレーム[3]、フレーム[4]、フレーム[5]、フレーム[6]及びフレーム[7]と呼ぶことにする。以下の説明において、フレーム[i]又はフレーム[j]と記すことがあるが、それらの表記中の[ ]内のiやjは、ACU[j]やSCU[i:j]の表記中のiやjと同じものである。
(ダウンロード)
図7及び図8を参照して、MCU12側からのデータ(指令値に関わるデータ)をACU[j]を介してSCU[i:j]にダウンロード(伝送)する手法(以下、「ダウンロード手法」という)を説明する。図7は、図1の機械装置駆動システムからダウンロードに関する部分を抜き出した図であり、ダウンロード時のデータの流れを示す図である。図8は、横軸を時間にとり、ダウンロード時のデータの流れを示している。
各単位期間の最初に訪れるフレーム[0]において、MCU12の指令値送信部14は、ACU[0]を送信先としたフレームデータをダウンロード用のネットワークCAN0:Hに送出する。このフレームデータに含まれているデータフィールドのデータをDD[0]と呼ぶことにする。
MCU12の指令値送信部14は、データDD[0]を含んだフレームデータのアービトレーションフィールド(図4参照)にACU[0]に対応したメッセージID情報(アイデンティファイア)を含ませている。また、ACU[j]の夫々には、互いに異なるID情報が予め設定されてあり、ACU[j]の夫々に設定されたID情報と上記メッセージID情報とは、1対1に対応している。そして、ACU[0]に対応したメッセージID情報を含んだフレームデータは、ACU[0]のみによって受信され、他のACU[1]〜ACU[7]によっては受信されないようにしている。
ACU[0]は、データDD[0]を含んだフレームデータに含まれているメッセージID情報を参照することにより、そのフレームデータを受信し、受信したフレームデータを、次のフレーム[1]において、SCU[i:0]側のネットワークCAN0[0]Lに送る。
MCU12の指令値送信部14は、データフィールドの領域[i]にSCU[i:0]に対するデータDD[i:0]を格納することによって、データDD[0]を作成している。即ち、データDD[0]の領域[0]にはSCU[0:0]に対するデータDD[0:0]が格納されており、データDD[0]の領域[1]にはSCU[1:0]に対するデータDD[1:0]が格納されており、・・・、データDD[0]の領域[7]にはSCU[7:0]に対するデータDD[7:0]が格納されている。尚、データDD[i:0]には指令値に関わるデータ(後述する差分指令値)が格納されることになる。
そして、SCU[i:0]の夫々において、スレーブ駆動制御部42は、データDD[0]から領域[i]に格納されているデータDD[i:0]を抽出し、該データDD[i:0]を自身に対するデータとして取り扱う。例えば、SCU[0:0]のスレーブ駆動制御部42は、データDD[0]の領域[0]に格納されているデータDD[0:0]を抽出し、該データDD[0:0]を自身に対するデータとして取り扱う。SCU[i:0]が、データDD[0]中のどの領域におけるデータを自身に対するデータとして抽出するか、即ち、フレームデータ(或いは、データDD[0])内のどのアドレスのデータを自身に対するデータとして抽出するかは、予め設定されている。
各単位期間の2番目のフレームであるフレーム[1]において、MCU12の指令値送信部14は、ACU[1]を送信先としたフレームデータをダウンロード用のネットワークCAN0:Hに送出する。他のフレームについても同様である。即ち、各単位期間のフレーム[j]において、MCU12の指令値送信部14は、ACU[j]を送信先としたフレームデータをダウンロード用のネットワークCAN0:Hに送出する。フレーム[j]において送出されたフレームデータに含まれているデータフィールドのデータをDD[j]と表記する。
j=0の場合を着目して具体的に説明した上記記載を、0〜7の値をとるjを用いて記載する。MCU12の指令値送信部14は、データDD[j]を含んだフレームデータのアービトレーションフィールド(図4参照)にACU[j]に対応したメッセージID情報を含ませている。ACU[j]に対応したメッセージID情報を含んだフレームデータは、ACU[j]のみによって受信される。
ACU[j]は、データDD[j]を含んだフレームデータに含まれているメッセージID情報を参照することにより、そのフレームデータを受信し、受信したフレームデータを、次のフレーム[j+1]において、SCU[i:j]側のネットワークCAN0[j]Lに送る。但し、j=7の場合は、次の単位期間のフレーム[0]において、SCU[i:7]側のネットワークCAN0[7]Lに送る。
MCU12の指令値送信部14は、データフィールドの領域[i]にSCU[i:j]に対するデータDD[i:j]を格納することによって、データDD[j]を作成している。即ち、データDD[j]の領域[0]にはSCU[0:j]に対するデータDD[0:j]が格納されており、データDD[j]の領域[1]にはSCU[1:j]に対するデータDD[1:j]が格納されており、・・・、データDD[j]の領域[7]にはSCU[7:j]に対するデータDD[7:j]が格納されている。
そして、SCU[i:j]において、スレーブ駆動制御部42は、データDD[j]から領域[i]に格納されているデータDD[i:j]を抽出し、該データDD[i:j]を自身に対するデータとして取り扱う。SCU[i:j]が、データDD[j]中のどの領域におけるデータを自身に対するデータとして抽出するか、即ち、フレームデータ(或いは、データDD[j])内のどのアドレスのデータを自身に対するデータとして抽出するかは、予め設定されている。
上記のようにして、SCU[i:j]の夫々は、1msの単位期間ごとに、1バイトの自身に対するデータDD[i:j](指令値に関わるデータ)をMCU12から受け取る。
(アップロード)
次に、図9及び図10を参照して、SCU[i:j]側からのデータ(状態値に関わるデータ)をACU[j]を介してMCU12にアップロードする手法(以下、「アップロード手法」という)を説明する。図9は、図1の機械装置駆動システムからアップロードに関する部分を抜き出した図であり、アップロード時のデータの流れを示す図である。図10は、横軸を時間にとり、アップロード時のデータの流れを示している。
まず、ACU[0]に着目し、ACU[0]に接続されたSCU[i:0]からのデータがMCU12に伝達される流れを説明する。各単位期間の最初に訪れるフレーム[0]において、SCU[0:0]のスレーブ状態検出部41は、自身に対応するアクチュエータの最新の状態値に関わるデータDU[0:0]を、アップロード用のネットワークCAN1[0]Lに送出する。このデータDU[0:0]も、64ビット長を有するデータフィールドに収められ、通信規格CANに則ったフレームデータとして、アップロード用のネットワークCAN1[0]Lに送出される。
各単位期間の2番目に訪れるフレーム[1]において、SCU[1:0]のスレーブ状態検出部41は、SCU[0:0]と同様に、自身に対応するアクチュエータの最新の状態値に関わるデータDU[1:0]を、フレームデータに含ませた上でアップロード用のネットワークCAN1[0]Lに送出する。他のSCU[2:0]〜SCU[7:0]についても同様である。即ち、iを用いて表現すると、各単位期間のフレーム[i]において、SCU[i:0]のスレーブ状態検出部41は、自身に対応するアクチュエータの最新の状態値に関わるデータDU[i:0]を、フレームデータに含ませた上でアップロード用のネットワークCAN1[0]Lに送出する。
ACU[0]は、SCU[i:0]からの8つのデータDU[i:0]を受信し、それらのデータを64ビット長のデータサイズにまとめる。このまとめたデータをDU[0]と呼ぶ。そして、次の単位期間の2番目に訪れるフレーム[1]において、データDU[0]を含んだフレームデータを、アップロード用のネットワークCAN1:Hに送出する。このデータDU[0]を含んだフレームデータは、MCU12の状態値受信部13(図3参照)によって受信される。
ACU[1]、ACU[2]、・・・及びACU[7]についても、夫々、ACU[0]と同様に、自身に接続されているSCU[i:1]、SCU[i:2]、・・・及びSCU[i:7]から、アップロード用のネットワークCAN1[1]L、CAN1[2]L、・・・及びCAN1[7]Lを介して、8つのデータDU[i:1]、DU[i:2]、・・・及びDU[i:7]を受信し、受信した8つのデータDU[i:1]、DU[i:2]、・・・及びDU[i:7]を、各々64ビット長のデータサイズにまとめる。このまとめたデータを、それぞれDU[1]、DU[2]、・・・及びDU[7]と呼ぶ。
但し、ACU[1]に関しては、フレーム[1]を起点とした連続する8フレームを用いてデータDU[0:1]〜DU[7:1]がACU[1]に伝送され、データDU[7:1]が伝送されるフレームから2フレーム分、後に訪れるフレームにおいて、データDU[0:1]〜DU[7:1]をまとめたデータDU[1]がフレームデータとしてアップロード用のネットワークCAN1:Hに送出される。
jを用いて表現すると、ACU[j]に関しては、フレーム[j]を起点とした連続する8フレームを用いてデータDU[0:j]〜DU[7:j]がACU[j]に伝送される。そして、データDU[7:j]が伝送されるフレームから2フレーム分、後に訪れるフレームにおいて、データDU[0:j]〜DU[7:j]をまとめたデータDU[j]がフレームデータとしてアップロード用のネットワークCAN1:Hに送出される。
このため、各単位期間において、DT[7]を含むフレームデータ、DU[0]を含むフレームデータ、DU[1]を含むフレームデータ、DU[2]を含むフレームデータ、DU[3]を含むフレームデータ、DU[4]を含むフレームデータ、DU[5]を含むフレームデータ、DU[6]を含むフレームデータが、この順番でアップロード用のネットワークCAN1:Hを介してMCU12に伝送されることになる。
上記のようにして、MCU12の状態値受信部13は、1msの単位期間ごとに、SCU[i:j]の夫々に対応する状態値に関わるデータ(データDU[i:j]そのもの、又はデータDU[i:j]を加工したデータ)を、SCU[i:j]の夫々から受け取る。
図3は、メイン制御ボート11とMCU12の内部構成を表したブロック図である。メイン制御ボート11とMCU12は、コネクタ16及び17を介して相互にデータ転送が可能なように接続されている。メイン制御ボート11の主制御部15から必要なコマンドがコネクタ16及び17を介してコマンドレジスタ18に送られ、コマンド解釈部20は、そのコマンドに従って指令値送信部14や状態値受信部13を制御する。
状態値受信部13は、アップロード用のネットワークCAN1:Hを介して、データDU[0]〜DU[7]を含んだフレームデータを次々と受信し、それらのデータに含まれる状態値に関わるデータDU[i:j]の夫々に対して、必要な処理を施し、SCU[i:j]が検出した状態値の夫々を復元する。そして、復元した状態値の夫々を復元状態値として次々とデータレジスタ19に格納していく。1つのSCU[i:j]についてのデータDU[i:j]は、1msごとに受信されるため、1つのSCU[i:j]についての復元状態値は1msごとにデータレジスタ19に格納される(例えば、上書きされつつ格納される)。主制御部15は、必要なタイミングにデータレジスタ19に格納されている復元状態値を読み取ることにより、SCU[i:j]の夫々についての復元状態値を取得する。
主制御部15は、SCU[i:j]に接続されている合計64個のアクチュエータの夫々への指令値を発行する。これらの指令値は、SCU[i:j]の夫々に対する指令値と捉えることもできる。この際、同一のSCU[i:j]についての復元状態値に基づきつつ、各指令値を発行するようにしてもよい。主制御部15が発行した各指令値は、コネクタ16及び17を介してデータレジスタ19に次々と格納される。
指令値送信部14は、データレジスタ19からSCU[i:j]の夫々に対する指令値を読み取り、各指令値に対して必要な処理を施す。この処理の手法については、後に詳説するが、該処理によってSCU[i:j]の夫々に対する差分指令値を得る。指令値送信部14は、SCU[i:j]の夫々に対する差分指令値を、データDD[i:j]としてフレームデータに収め、上述のダウンロード手法に従ってダウンロード用のネットワークCAN0:Hに送出する。上述の如く、1つのSCU[i:j]についてのデータDD[i:j]は、1msごとに送られるため、例えば、主制御部15はSCU[i:j]の夫々に対する指令値を1msごとに更新してデータレジスタ19に書き込む(勿論、指令値に変更がない場合は更新の必要はない)。
(指令値の復元手法)
図11及び図12を参照して、メイン制御ボード11が発行した指令値がSCU[i:j]にて復元される動作を説明する。図11は、MCU12の指令値送信部14(図3参照)と、或る1つのSCU[i:j]におけるスレーブ駆動制御部42の内部構成を示すブロック図である。図12は、指令値の流れを表した図である。図11において、他の図と同じ部分には同一の符号を付し、原則として重複する説明を省略する。今、説明の具体化のため、SCU[0:0]のみに着目して説明を行う。SCU[0:0]以外の他のSCU[i:j]についても別途、同様の動作が行われる(例えば時分割で行われる)。また、SCU[0:0]に接続されているアクチュエータがモータ(不図示)であり、SCU[0:0]は該モータの回転数を制御するものとして説明を行う。そして、指令値は、モータの回転数(単位はrpm;Revolution Per Minute)を示しているものとする。
指令値送信部14は、変換部23、格納部24、差分演算部25、最小最大値制限部26及び通信プロトコル制御部29を有して構成される。スレーブ駆動制御部42は、フィルタ31、指令値復元部32及びアクチュエータ制御部33を有して構成される。指令値復元部32は、更に復元器34及び変換部35を有している。
指令値送信部14は、1msの単位期間ごとにデータレジスタ19からSCU[0:0]についての指令値を受ける。その指令値は変換部23に送られる。変換部23は、データレジスタ19から受ける指令値を所望のビット数のデジタル値に変換して出力する。今の場合、指令値を所定の変換値(約6.05)で割ったものを出力している。この際、実際に指令値を変換値で割るのではなく、テーブルデータ等を用いることによって同等のデータを出力するようにしてもよい。尚、データレジスタ19に格納されている指令値が既に所望のビット数となっている場合は、変換部23を省略可能である。SCU[0:0]に対応する指令値は、1msごとに該変換を受けて格納部24に出力される。
変換部23が出力する上記変換後の指令値(以下、「変換指令値」という)は、一時的に格納部24に記憶される。格納部24は、今回変換部23から出力された変換指令値と前回変換部23から出力された変換指令値とを記憶する。差分演算部25は、格納部24の記憶内容を参照して、今回の変換部23の出力値(変換指令値)から前回の変換部23の出力値(変換指令値)を差し引いた値(これを、以下「差分値A1」という)を演算して出力する。
図12を参照して説明を具体化する。p(pは整数)番目の単位期間に至るまでの指令値が継続して「0」に維持されていたとする。そして、p番目の単位期間に指令値が「0」から「2000」に変化したとする。これは、SCU[0:0]によって制御されるモータの回転数が0rpmから2000rpmになることを、メイン制御ボート11が求めていることに相当する。この場合、p番目の単位期間において、変換部23は変換指令値として331(≒2000/6.05)を出力する。p番目の単位期間より前の単位期間においては、変換部23は変換指令値として0を出力しているため、p番目の単位期間において、差分演算部25は差分値A1として331を出力する。
そして、(p+1)、(p+2)及び(p+3)番目の単位期間における指令値が「2000」に維持されているとする。そうすると、(p+1)、(p+2)及び(p+3)番目の単位期間において、変換指令値は全て「331」となり、差分演算部25が出力する差分値A1は全て「0」となる。
最小最大値制限部26は、差分演算部25が出力する差分値A1を受け、その差分値A1に最大値と最小値の制限を加える。そして、その制限を経て得られた値を差分指令値として出力する。上記制限における最大値及び最小値は、差分指令値を8ビットで表現するべく、それぞれ124及び−124となっている。このため、p番目の単位期間において、最小最大値制限部26は「124」の差分指令値を出力する。
差分指令値の算出のための制限によって上記最大値と最小値を超えた分は、次回に差分演算部25が出力する差分値A1に加算される。図13に、最小最大値制限部26の具体的な構成の一例を示す。図13において、最小最大値制限部26は、加算器27と制限器28とを有して構成される。加算器27は、差分演算部25が出力する差分値A1に制限器28が出力する制限超指令値を加えたものを制限器28に出力する。制限器28は、加算器27の出力値に上記最大値と最小値の制限を加えたものを上記差分指令値として出力するとともに、その制限によって超えた分を制限超指令値として加算器27に出力する。
上記のように構成することにより、p番目の単位期間において、制限器28(最小最大値制限部26)は「124」の差分指令値を出力すると共に「207」(=331−124)の制限超指令値を出力する。
(p+1)番目の単位期間においては、加算器27が差分演算部25の出力値「0」と制限器28の出力値「207」との加算値「207」を制限器28に出力する。このため、(p+1)番目の単位期間において、制限器28は「124」の差分指令値を出力すると共に「83」(=207−124)の制限超指令値を出力する。
(p+2)番目の単位期間においては、加算器27が差分演算部25の出力値「0」と制限器28の出力値「83」との加算値「83」を制限器28に出力する。このため、(p+2)番目の単位期間において、制限器28は「83」の差分指令値を出力すると共に「0」の制限超指令値を出力する。(p+3)番目の単位期間以降は、指令値が変動しない限り、差分指令値は「0」となる。
p番目の単位期間に最小最大値制限部26から出力されたSCU[0:0]についての差分指令値は、通信プロトコル制御部29に送られる。通信プロトコル制御部29は、SCU[0:0]についての差分指令値をデータDD[0:0]として取り扱うと共に、同様に自身に与えられるSCU[1:0]〜SCU[7:0]についての差分指令値をデータDD[1:0]〜[7:0]と取り扱って、データDD[0]を形成する(図8等参照)。そして、データDD[0]を含んだフレームデータを、上述のダウンロード手法に従って、コネクタ等から成る物理的インターフェイス(不図示)を介してダウンロード用のネットワークCAN0:Hに送出する。(p+1)番目の単位期間、(p+2)番目の単位期間、・・・においても、同様にデータDD[0]を含んだフレームデータが送出される。
SCU[0:0]のフィルタ31は、データDD[0]を含んだフレームデータからデータDD[0:0]を抽出し、該データDD[0:0]を自身に対する差分指令値として取り扱う。従って、SCU[0:0]は、p、(p+1)、(p+2)及び(p+3)番目の単位期間における差分指令値として、124、124、83及び0を受信する。フィルタ31によって抽出された差分指令値は、次々と復元器34に送られる。
復元器34は、前回の単位期間における自身の出力値と今回の単位期間におけるフィルタ31の出力値(差分指令値)との和を、今回の単位期間における自身の出力値として出力する。上述の如く、p番目の単位期間に至るまでの指令値は継続して「0」に維持されていたため、p番目の単位期間に至るまでのフィルタ31と復元器34の出力値は、双方「0」となっている。
p番目の単位期間において、フィルタ31の出力値(差分指令値)は124であるため、復元器34は、(p−1)番目の単位期間における自身の出力値(即ち、0)とp番目の単位期間におけるフィルタ31の出力値124との和である124を出力する。(p+1)番目の単位期間において、フィルタ31の出力値(差分指令値)は124であるため、復元器34は、p番目の単位期間における自身の出力値(即ち、124)と(p+1)番目の単位期間におけるフィルタ31の出力値124との和である248を出力する。同様にして、復元器34は、(p+2)及び(p+3)番目の単位期間において、それぞれ331及び331を出力する。
変換部35は、各単位期間において、指令値送信部14側の変換部23が用いた上記所定の変換値(約6.05)と同じ変換値を復元器34の出力値に乗じたものを、復元指令値として出力する。尚、この際、実際に復元器34の出力値に上記変換値を乗じるのではなく、テーブルデータ等を用いることによって同等のデータを出力するようにしてもよい。これにより、p、(p+1)、(p+2)及び(p+3)番目の単位期間において、変換部35は、それそれ750、1500、2002及び2002の復元指令値を出力することになる。この復元指令値は、指令値送信部14における指令値をSCU[0:0]側において復元したものとなっている。
アクチュエータ制御部33は、変換部35の出力値である復元指令値に従ってSCU[0:0]の制御対象であるモータ(アクチュエータ)の動作を制御する。つまり、p、(p+1)、(p+2)及び(p+3)番目の単位期間において、該モータの回転数が夫々750、1500、2002及び2002rpmとなるように、該モータを制御する。
この後、指令値送信部14に与えられる指令値が「2000」に維持されている状態から、図12に示す如く、q番目の単位期間において該指令値が「−1000」に変化し、以後、該指令値が「−1000」に維持されたとする(但し、qは整数であって、q>(p+3)が成立)。この場合、q番目以降の単位期間において、変換部23の出力値は−165となり、q番目の単位期間において差分演算部25が出力する差分値A1は−496になる。この差分値A1は、最小値「−124」による制限を受けるため、q、(q+1)、(q+2)及び(q+3)番目の単位期間における最小最大値制限部26の出力値(差分指令値)は、全て「−124」となる。
「−124」の差分指令値は、SCU[0:0]に伝送され、上述と同様の処理によってq、(q+1)、(q+2)及び(q+3)番目の単位期間における復元指令値は、夫々1252、502、−248及び−998となる。アクチュエータ制御部33は、q、(q+1)、(q+2)及び(q+3)番目の単位期間において、モータの回転数が夫々1252、502、−248及び−998rpmとなるように、該モータを制御する。
図14に、図12にて示した数値例におけるモータの回転数の変化を示す。図14の左側のグラフに示されるMCU12側の指令値のステップ状の変化は、図14の右側のグラフに示すようにSCU[0:0]に伝達される。図14からも分かるように、場合によっては、モータの回転数の立ち上がり及び立ち下がりに遅れが生じてしまう。また、図12からも分かるように、MCU12側の指令値と、SCU[0:0]で復元した指令値に、量子化誤差に起因した誤差が生じてしまい、復元指令値がMCU12側の指令値に収束しない場合がある(例えば、2000の指令値に対応する復元指令値が2002になっている)。これらの問題を解決する手法については、後に第2実施形態として説明する。
SCU[0:0]に対応するアクチュエータの駆動制御と同様に、SCU[i:j]に接続された合計64個のアクチュエータの駆動制御がMCU12側からの指令値に応じて行われ、図1の機械装置駆動システムを内蔵した機械装置の全体的な駆動が制御される。
(状態値の復元手法)
次に、図15及び図16を参照して、SCU[i:j]が検出したアクチュエータの状態値をMCU12側にて復元する手法を説明する。この手法は、図11及び図12を参照して説明した指令値の復元手法と同様である。図15は、或る1つのSCU[i:j]におけるスレーブ状態検出部41と、そのSCU[i:j]に接続されているACU[j]と、MCU12の状態値受信部13(図3参照)の内部構成を示すブロック図である。図16は、状態値の流れを表した図である。図15において、他の図と同じ部分には同一の符号を付し、原則として重複する説明を省略する。今、説明の具体化のため、SCU[0:0]とACU[0]のみに着目して説明を行う。SCU[0:0]以外の他のSCU[i:j]及びACU[0]以外の他のACU[j]についても別途、同様の動作が行われる。また、SCU[0:0]に接続されているアクチュエータがモータ(不図示)であり、SCU[0:0]は該モータの回転数を制御するものとして説明を行う。そして、そのモータの状態を表す状態値は、モータの回転数(単位はrpm)を示しているものとする。
状態値受信部13は、通信プロトコル制御部81、状態値復元部82を有して構成される。状態値復元部82は、更に復元器84及び変換部85を有している。
スレーブ状態検出部41は、状態値検出部72を有している。ACU[0]は、通信プロトコル制御部79を有している。変換部73、格納部74、差分演算部75及び最小最大値制限部76は、下記の第1、第2、第3及び第4の分配手法の何れかにて、SCU[0:0]のスレーブ状態検出部41又はACU[0]に分配される。
第1の分配手法においては、スレーブ状態検出部41が変換部73、格納部74、差分演算部75及び最小最大値制限部76の全てを有する。この場合、最小最大値制限部76の出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の通信プロトコル制御部79に与えられることになる。
第2の分配手法においては、スレーブ状態検出部41が変換部73、格納部74及び差分演算部75を有し、ACU[0]が最小最大値制限部76を有する。この場合、差分演算部75の出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の最小最大値制限部76に与えられることになる。
第3の分配手法においては、スレーブ状態検出部41が、変換部73を有し、ACU[0]が格納部74、差分演算部75及び最小最大値制限部76を有する。この場合、変換部73の出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の格納部74に与えられることになる。
第4の分配手法においては、ACU[0]が変換部73、格納部74、差分演算部75及び最小最大値制限部76の全てを有する。この場合、状態値検出部72の出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の変換部73に与えられることになる。
第1、第2、第3及び第4の分配手法の何れを採用しても構わないが、以下、第1の分配手法を採用した場合を例にとって説明を行う。尚、SCU[0:0]以外の他のSCU[i:j]とACU[0]以外の他のACU[j]との関係についても、第1、第2、第3及び第4の分配手法の何れかを採用可能である。
状態値検出部72は、1msの単位期間ごとに、周知の手法を用いてACU[0]に対応するモータの回転数を検出する。検出した該回転数は、ACU[0]に対応するアクチュエータの状態を表す状態値である。その状態値(回転数を表す数値)は変換部73に送られる。変換部73は、状態値検出部72から受ける状態値を所望のビット数のデジタル値に変換して出力する。今の場合、状態値を所定の変換値(約6.05)で割ったものを出力している。この際、実際に状態値を変換値で割るのではなく、テーブルデータ等を用いることによって同等のデータを出力するようにしてもよい。尚、状態値検出部72が出力する状態値が既に所望のビット数のデジタル値となっている場合は、変換部73を省略可能である。SCU[0:0]に対応する状態値は、1msごとに該変換を受けて格納部74に出力される。
変換部73が出力する上記変換後の状態値(以下、「変換状態値」という)は、一時的に格納部74に記憶される。格納部74は、今回変換部73から出力された変換状態値と前回変換部23から出力された変換状態値とを記憶する。差分演算部75は、格納部74の記憶内容を参照して、今回の変換部73の出力値(変換状態値)から前回の変換部73の出力値(変換状態値)を差し引いた値(これを、以下「差分値A2」という)を演算して出力する。
図16を参照して説明を具体化する。p(pは整数)番目の単位期間に至るまでの状態値が継続して「0」に維持されていたとする。そして、p番目の単位期間に状態値が「0」から「2000」に変化したとする。この場合、p番目の単位期間において、変換部73は変換状態値として331(≒2000/6.05)を出力する。p番目の単位期間より前の単位期間においては、変換部73は変換状態値として0を出力しているため、p番目の単位期間において、差分演算部75は差分値A2として331を出力する。
そして、(p+1)、(p+2)及び(p+3)番目の単位期間における状態値が「2000」に維持されているとする。そうすると、(p+1)、(p+2)及び(p+3)番目の単位期間において、変換状態値は全て「331」となり、差分演算部75が出力する差分値A2は全て「0」となる。
最小最大値制限部76は、差分演算部75が出力する差分値A2を受け、その差分値A2に最大値と最小値の制限を加える。そして、その制限を経て得られた値を差分状態値として出力する。上記制限における最大値及び最小値は、差分状態値を8ビットで表現するべく、それぞれ124及び−124となっている。このため、p番目の単位期間において、最小最大値制限部76は「124」の差分状態値を出力する。
差分状態値の算出のための制限によって上記最大値と最小値を超えた分は、次回に差分演算部75が出力する差分値A2に加算される。図17に、最小最大値制限部76の具体的な構成の一例を示す。図17において、最小最大値制限部76は、加算器77と制限器78とを有して構成される。加算器77は、差分演算部75が出力する差分値A2に制限器78が出力する制限超状態値を加えたものを制限器78に出力する。制限器78は、加算器77の出力値に上記最大値と最小値の制限を加えたものを上記差分状態値として出力するとともに、その制限によって超えた分を制限超状態値として加算器77に出力する。
上記のように構成することにより、p番目の単位期間において、制限器78(最小最大値制限部76)は「124」の差分状態値を出力すると共に「207」(=331−124)の制限超状態値を出力する。
(p+1)番目の単位期間においては、加算器77が差分演算部75の出力値「0」と制限器78の出力値「207」との加算値「207」を制限器78に出力する。このため、(p+1)番目の単位期間において、制限器78は「124」の差分状態値を出力すると共に「83」(=207−124)の制限超状態値を出力する。
(p+2)番目の単位期間においては、加算器77が差分演算部75の出力値「0」と制限器78の出力値「83」との加算値「83」を制限器78に出力する。このため、(p+2)番目の単位期間において、制限器78は「83」の差分状態値を出力すると共に「0」の制限超状態値を出力する。(p+3)番目の単位期間以降は、状態値が変動しない限り、差分状態値は「0」となる。
p番目の単位期間に最小最大値制限部76から出力されたSCU[0:0]についての差分状態値は、ACU[0]の通信プロトコル制御部79に送られる。通信プロトコル制御部79は、SCU[0:0]についての差分状態値をデータDU[0:0]として取り扱うと共に、同様に自身に与えられるSCU[1:0]〜SCU[7:0]についての差分状態値をデータDU[1:0]〜[7:0]と取り扱って、データDU[0]を形成する(図10等参照)。そして、データDU[0]を含んだフレームデータを、上述のアップロード手法に従って、アップロード用のネットワークCAN1:Hに送出する。(p+1)番目の単位期間、(p+2)番目の単位期間、・・・においても、同様にデータDU[0]を含んだフレームデータが送出される。
状態値受信部13の通信プロトコル制御部81は、データDU[0]を含んだフレームデータから8つのデータDU[0:0]〜データDU[7:0]を取得する。そして、データDU[i:0]を、SCU[i:0]についての差分状態値として取り扱う。データDU[0:0]に着目して説明を継続するが、他のデータDU[1:0]〜DU[7:0](更には、他の全てのデータDU[i:j])についても、例えば時分割で同様の処理が施される。
通信プロトコル制御部81は、p、(p+1)、(p+2)及び(p+3)番目の単位期間におけるSCU[0:0]の差分状態値として、124、124、83及び0を取得し、それらの差分状態値を次々と復元器84に出力する。
p番目の単位期間において、通信プロトコル制御部81の出力値(SCU[0:0]の差分状態値)は124であるため、復元器84は、(p−1)番目の単位期間における自身の出力値(即ち、0)とp番目の単位期間における通信プロトコル制御部81の出力値124との和である124を出力する。(p+1)番目の単位期間において、通信プロトコル制御部81の出力値(SCU[0:0]の差分状態値)は124であるため、復元器84は、p番目の単位期間における自身の出力値(即ち、124)と(p+1)番目の単位期間における通信プロトコル制御部81の出力値124との和である248を出力する。同様にして、復元器84は、(p+2)及び(p+3)番目の単位期間において、それぞれ331及び331を出力する。
変換部85は、各単位期間において、変換部73が用いた上記所定の変換値(約6.05)と同じ変換値を復元器84の出力値に乗じたものを、復元状態値として出力する。尚、この際、実際に復元器84の出力値に上記変換値を乗じるのではなく、テーブルデータ等を用いることによって同等のデータを出力するようにしてもよい。これにより、p、(p+1)、(p+2)及び(p+3)番目の単位期間において、変換部85は、それそれ750、1500、2002及び2002の復元状態値を出力することになる。この復元状態値は、SCU[0:0]にて検出された状態値を、MCU12側にて復元したものとなっている。
変換部85の出力値は、状態値受信部13からの復元状態値としてデータレジスタ19に格納され、必要に応じてメイン制御ボード11の主制御部15に参照される。これにより、主制御部15は、SCU[0:0]に対応するアクチュエータ(モータ)の状態を認識する。同様にして、SCU[i:j]に対応する合計64個のアクチュエータの状態を認識する。これにより、図1の機械装置駆動システムを適用した機械装置の全体的な状態が検出される。
上記の例では、メイン制御ボート11の主制御部15(図3)の発行する指令値が、モータの回転数が追従すべき値そのものとなっているが、復元状態値にて表されるモータの回転数と主制御部15が希望するモータの回転数との誤差(モータシステムに対する所謂「操作量」)を指令値として発行するようにしても構わない。この場合、指令値は、復元状態値に基づいて発行されることになる。SCU[0:0]は、その誤差を表す指令値を復元した復元指令値に従い該誤差がゼロに収束するようにモータを制御する。これにより、実際のモータの回転数は、主制御部15が希望するモータの回転数に追従することになる。
説明の単純化等を目的として、図12及び図14に示すような急激なステップ応答を例にしたが、機械装置のモーション制御(動作制御)において、モータの速度指令値(回転数についての指令値)やトルク指令値(トルクについての指令値)は、通常、連続性を有している。更に、制御性能を向上させるべく指令値を与える制御周期(上記の単位期間)を短くすれば、各指令値間の差分は小さくなる。従って、上記の如く、MCU12からSCU[i:j]に差分指令値という形で指令値を伝送すれば、1回で送信する必要のあるデータの量を、指令値の値を直接伝送する場合よりも小さくすることができる。つまり、指令値を差分指令値として伝送する手法を採用することにより、制御周期を短くすることができ機械装置の制御性能が向上する。換言すれば、制御性能を劣化させることなく、MCU12とSCU[i:j]とを接続するネットワークへの速度要求を緩和することができる。このことは、状態値に関しても同様であり、状態値を差分状態値として伝送する手法を採用することにより、状態値を取得する周期(上記制御周期に等しい)を短くすることができ、また上記速度要求を緩和することもできる。状態値を取得する周期の短縮は、結果的に機械装置の制御性能を向上させる。
また、ネットワークを介して伝送される差分指令値や差分状態値に上限と下限を設けることにより、差分指令値や差分状態値の分解能を必要なだけ確保しつつ、必要な制御周期を確保することができる。上限と下限を設けることにより、指令値のステップ状の変化に対する遅れが生じうるが(図14参照)、それらの遅れは機械装置の有する機械的な時定数と比較すると無視できる範囲にあり、問題は少ない。また、画像データや音声データ等に上下限の制限を加える場合と違って、データが全く違う情報になって意味を持たなくなるといったこともない。
また、一般的には、ネットワークに接続された複数のコンポーネントは、1つのバスを介して夫々異なる種類の情報のやりとりを行うが、機械装置のモーション制御の場合は、マスタ制御ユニットから各アクチュエータに対して、必要なモーション制御に応じた指令値(例えば同種類の指令値)を制御周期ごとに送ることになる。ネットワークを介したデータ伝送では、1回の転送で送るデータがたとえ簡単なものであっても、そのデータを電気信号として送信先に確実におくるための手順が各転送に必要である。例えば、通信規格CANにおいては、図4に示す如く、1バイトの情報を伝送するだけでも108ビット長のデータの転送が必要となる。伝送速度の低いバス(ネットワーク)では、指令値を送信すべき対象が増えれば増えるほど遅延が大きくなり、制御周期も長くなる。そこで、本実施形態では、MCU12が送るべきデータ(差分指令値)の長さ(或いは種類)を固定できることを利用し、8台分のデータを一つにまとめて1度に送信する(マルチキャストにて転送する)。そして、SCU[i:j]が、自分に必要なデータのみを参照するようにして、効率的なデータ転送を行うようにしている。
また、SCU[i:j]は、MCU12側からのデータの受信をトリガにタイマー等を起動し、所定の時間後に、自身に対応するアクチュエータへの指令電流値を更新したり、アクチュエータの状態値を取得するセンサ(不図示)の情報をサンプリングしたりするとよい。換言すれば、SCU[i:j]は、MCU12側からのデータを受信してから所定の時間後に、復元指令値に応じたアクチュエータの駆動制御を実際に行ったり、アクチュエータの状態値の取得を行ったりするとよい。これにより、全てのSCU[i:j]及びアクチュエータの同期をとることができる。
また、図11の差分演算部25と最小最大値制限部26は、各差分指令値を出力する差分指令値出力部を構成し、図15の差分演算部75と最小最大値制限部76は、各差分状態値を出力する差分状態値出力部を構成する。ACU[j]は、MCU12とSCU[i:j]との間に介在する中継装置として機能する。尚、図11の差分演算部25や図15の差分演算部75の出力値の絶対値が、常に124以下に収められるように構成されている場合は、図11の最小最大値制限部26や図15の最小最大値制限部76を省略することができる。これらの場合、差分演算部25及び差分演算部75が、それぞれ差分指令値出力部及び差分状態値出力部して機能する。そして、差分演算部25の出力値が差分指令値として通信プロトコル制御部29に与えられ、差分演算部75の出力値が差分状態値として通信プロトコル制御部79に与えられることになる。
<<第2実施形態>>
図14に示したモータの回転数の立ち上がり及び立ち下がりの遅れ、並びに量子化誤差に起因した誤差を解消する実施形態として、第2実施形態を説明する。
第2実施形態においては、差分指令値によって表現される数値範囲が互いに異なる複数のモードを設定しておき、各差分値の大きさに応じてモードが切り換えられる。このモード切り換えを行う関係上、詳細は後述するが、MCU12に接続できる蓄積制御ユニットの台数は6台となっている。即ち、第2実施形態においては、ACU[j]及びSCU[i;j]の[ ]内のjは、0〜5の任意の値(6種類の値)をとる。
jが6及び7の値をとらないという点以外、第2実施形態における機械装置駆動システムの全体ブロック図は、図1と同じであるため、重複する説明を省略する。但し、第2実施形態においては、図3の状態値受信部13及び指令値送信部14が、夫々状態値受信部13a及び指令値送信部14aに置換されるものとし、SCU[i:j]の夫々におけるスレーブ状態検出部41及びスレーブ駆動制御部(スレーブ制御部)42がスレーブ状態検出部41a及びスレーブ駆動制御部(スレーブ制御部)42aに置換されるものとする(図2参照)。また、ダウンロード手法やアップロード手法などの第1実施形態における基本的に動作は、特記なき限り第2実施形態も同様であるため、重複する説明は省略し、第1実施形態との相違点である指令値及び状態値の伝達及び復元手法に着目して説明を行う。
(指令値のモード設定)
図18は、指令値送信部14aと、或る1つのSCU[i:j]におけるスレーブ駆動制御部42aの内部構成を示すブロック図である。図19は、指令値の流れを表した図である。図18において、図11と同じ部分には同一の符号を付し、原則として重複する説明を省略する。今、説明の具体化のため、SCU[0:0]のみに着目して説明を行う。SCU[0:0]以外の他のSCU[i:j]についても別途、同様の動作が行われる(例えば時分割で行われる)。また、SCU[0:0]に接続されているアクチュエータがモータ(不図示)であり、SCU[0:0]は該モータの回転数を制御するものとして説明を行う。そして、指令値は、モータの回転数(単位はrpm)を示しているものとする。
指令値送信部14aは、格納部24、差分演算部25a、最小最大値制限部26a及び通信プロトコル制御部29aを有して構成される。最小最大値制限部26aは、更に、加算器27a及び制限器28aを有している。スレーブ駆動制御部42aは、フィルタ31a、指令値復元部32a及びアクチュエータ制御部33を有して構成される。指令値復元部32aは、復元器34aを有している。
指令値送信部14aは、1msの単位期間ごとにデータレジスタ19からSCU[0:0]についての指令値を受ける。その指令値は格納部24に送られる。この格納部24の前段に、第1実施形態と同様、変換部23(図11)を設けるようにしても構わない。格納部24は、今回与えられた指令値と前回与えられた指令値を記憶する。差分演算部25aは、格納部24の記憶内容を参照して、今回データレジスタ19より与えられた指令値から前回データレジスタ19より与えられた指令値を差し引いた値(これを、以下「差分値α1」という)を演算して出力する。
p(pは整数)番目の単位期間に至るまでの指令値が継続して「0」に維持されていたとする。そして、p番目の単位期間に指令値が「0」から「2020」に変化したとする。そうすると、p番目の単位期間における差分値α1は「2020」となる。
そして、(p+1)、(p+2)及び(p+3)番目の単位期間における指令値が「2020」に維持されているとする。そうすると、(p+1)、(p+2)及び(p+3)番目の単位期間において、差分値α1は全て「0」となる。
加算器27aは、差分演算部25aが出力する差分値α1に制限器28aが出力する制限超指令値δ1を加えたものを出力する。加算器27aの出力値(以下、「出力値β1」といい、数式においては単に「β1」と記す)は、制限器28aの入力値として制限器28aに与えられる。今、p番目の単位期間に至るまでの指令値が継続して「0」に維持されていたことに起因して、p番目の単位期間に至るまでの出力値β1及び制限器28aが出力する制限超指令値δ1が「0」になっている。このため、p番目の単位期間における出力値β1は「2020」となる。
制限器28aは、加算器27aの出力値に最大値MAXと最小値MINの制限を加えたものを差分指令値として出力するが、自身への入力値の大きさ(即ち、|β1|)に応じて、制限に用いる最大値MAXと最小値MINを変化させると共に該制限を加えて出力する値に関連付けるモードを切り換えて設定する。この最大値MAXと最小値MINの変化とモードの切り換えは、毎回行われ、また、SCU[i:j]の夫々について独立に行われる。
具体的には、下式(1)が成立する場合に、(MAX,MIN)=(100,−100)と設定すると共にモードを「モード0(mode0)」に設定する。下式(2)が成立する場合に、(MAX,MIN)=(500,−500)と設定すると共にモードを「モード1(mode1)」に設定する。下式(3)が成立する場合に、(MAX,MIN)=(1000,−1000)と設定すると共にモードを「モード2(mode2)」に設定する。下式(4)が成立する場合に、(MAX,MIN)=(2000,−2000)と設定すると共にモードを「モード3(mode3)」に設定する。尚、|β1|は、出力値β1の絶対値を意味する。
|β1|≦100 ・・・(1)
100<|β1|≦500 ・・・(2)
500<|β1|≦1000 ・・・(3)
1000<|β1| ・・・(4)
p番目の単位期間における出力値β1は「2020」であるから、式(4)が成立し、(MAX,MIN)=(2000,−2000)と設定される共にモードは「モード3」に設定される。この場合、出力値β1の内の差分指令値に変換されるべき値(以下、「被変換値γ1」という)は、設定された最大値MAXと等しい「2000」となる。そして、制限器28aは、被変換値γ1を設定されたモードに応じた変換値(モードごとに定められた一定値)で割ることによって、被変換値γ1を数値範囲「−124〜124」内の数値に変換し、その変換にて得られた値を差分指令値として出力する。尚、この際、実際に被変換値γ1を上記変換値で割るのではなく、テーブルデータ等を用いることによって同等のデータを出力するようにしてもよい。
設定されたモードに応じた該変換の様子を図20に示す。モード3においては、「2000」及び「−2000」の値を有する被変換値γ1が、それぞれ「124」及び「−124」の差分指令値に変換される。また、モード2においては、「1000」及び「−1000」の値を有する被変換値γ1が、それぞれ「124」及び「−124」の差分指令値に変換される。モード1においては、「500」及び「−500」の値を有する被変換値γ1が、それぞれ「124」及び「−124」の差分指令値に変換される。モード0においては、「100」及び「−100」の値を有する被変換値γ1が、それぞれ「124」及び「−124」の差分指令値に変換される。
上記の変換により、p番目の単位期間において、制限器28aは「124」の差分指令値を通信プロトコル制御部29aに出力する。これと同時に、その差分指令値に対応して設定されたモード(今の場合、モード3)を通信プロトコル制御部29aに伝達する。また、各単位期間において、制限器28aは、出力値β1から被変換値γ1を差し引いた値を、制限超指令値δ1として加算器27aに出力する。p番目の単位期間のおいては、β1が2020且つγ1が2000であるから制限超指令値δ1は20となり、(p+1)番目の単位期間における差分値α1が「0」であるから、(p+1)番目の単位期間における加算器27aの出力値β1は20となる。
すると、(p+1)番目の単位期間においては、上記式(1)が成立するため、差分指令値に変換されるべき被変換値γ1は20となると共にモード0が設定され、差分指令値は25(≒20×124/100)になる。(p+1)及び(p+2)番目の単位期間における制限超指令値δ1は「0」となるから、(p+2)及び(p+3)番目の単位期間における出力値β1、被変換値γ1及び差分指令値は、全て「0」となる。勿論、(p+2)及び(p+3)番目の単位期間における差分指令値に関連付けられるモードはモード0である。
通信プロトコル制御部29aは、SCU[0:0]についての差分指令値をデータDD[0:0]として取り扱うと共に、同様に自身に与えられるSCU[1:0]〜SCU[7:0]についての差分指令値をデータDD[1:0]〜[7:0]と取り扱って、データDD[0]を形成する(図8等参照)。そして、データDD[0]を含んだフレームデータを、上述のダウンロード手法に従って、コネクタ等から成る物理的インターフェイス(不図示)を介してダウンロード用のネットワークCAN0:Hに送出する。(p+1)番目の単位期間、(p+2)番目の単位期間、・・・においても、同様にデータDD[0]を含んだフレームデータが送出される。また、j=1〜5のSCU[i:j]についての差分指令値も同様に処理される。
データDD[0]〜データDD[5]の送信には、各単位期間のフレーム[0]〜[5]が用いられる。通信プロトコル制御部29aは、各単位期間のフレーム[6]及び[7]を利用して、各差分指令値に対応付けられたモードを表すモード情報をSCU[i:j]の夫々に伝達する。モードは4種類であるため各モード情報は2ビットで表現でき、SCU[i:j]は48個あるので、合計96ビット(=2×48)のモード情報を伝達する必要があるが、フレーム[6]及び[7]にて128ビットの情報を伝送することできるため、問題はない。具体的には、各単位期間のフレーム[6]における、領域[0]及び[1]、領域[2]及び[3]、領域[4]及び[5]、領域[6]及び[7]を、夫々SCU[i:0]、SCU[i:1]、SCU[i:2]、SCU[i:3]に割り当てるとともに、各単位期間のフレーム[7]における、領域[0]及び[1]、領域[2]及び[3]を、夫々SCU[i:4]、SCU[i:5]に割り当てる(図5参照)。
そして、j=0〜5の夫々において、割り当てられた領域(16ビット)の先頭アドレス側から順に2ビットづつ、SCU[0:j]、SCU[1:j]、SCU[2:j]、SCU[3:j]、SCU[4:j]、SCU[5:j]、SCU[6:j]、SCU[7:j]に対応するモード情報を割り当てる。これにより、例えば、各単位期間のフレーム[6]の領域[0]には、先頭アドレス側から順に2ビットづつ、SCU[0:0]、SCU[1:0]、SCU[2:0]、SCU[3:0]に対応するモード情報が割り当てられることになる。必要なモード情報を得るべく、各単位期間のフレーム[6]のフレームデータは、ACU[0]〜ACU[3]によって受信され、更に該フレームデータはSCU[i:0]〜ACU[i:3]によって受信される。各単位期間のフレーム[7]のフレームデータは、ACU[4]及びACU[5]によって受信され、更に該フレームデータはSCU[i:4]及びACU[i:5]によって受信される。
SCU[0:0]に着目して差分指令値から指令値を復元する手法の説明を再開する。SCU[0:0]のフィルタ31aは、データDD[0]を含んだフレームデータからデータDD[0:0]を抽出し、該データDD[0:0]を自身に対する差分指令値として取り扱うと共に、該差分指令値に対応付けられたモード情報を同一の単位期間のフレーム[6]にて伝送されるフレームデータから取得する。従って、SCU[0:0]は、p、(p+1)、(p+2)及び(p+3)番目の単位期間における差分指令値として、124、20、0及び0を受信すると共に、該差分指令値に対応付けられたモードを、それぞれ、モード3、モード0、モード0及びモード0と認識する。フィルタ31aによって抽出された差分指令値及びこれに対応付けられたモード情報は、次々と復元器34aに送られる。
復元器34aは、まず、対応付けられたモード情報を用いつつ、差分指令値を上述の被変換値γ1に逆変換する(この逆変換によって得られる値を、「逆変換値」という)。つまり、制限器28aで用いた上記変換値又はテーブルデータ等を用いることによって、制限器28aによる被変換値γ1の差分指令値への変換の逆の演算を行う。この逆変換値は、対応する被変換値γ1と一致する。従って、p、(p+1)、(p+2)及び(p+3)番目の単位期間において、逆変換値は、夫々2000、20、0及び0となる。そして、復元器34aは、前回の単位期間における自身の出力値と今回の単位期間における逆変換値との和を、今回の単位期間における自身の出力値として出力する。復元器34aの出力値は、指令値復元部32aからの復元指令値としてアクチュエータ制御部33に伝達される。
これにより、p、(p+1)、(p+2)及び(p+3)番目の単位期間における復元指令値は、夫々2000、2020、2020及び2020となる。即ち、復元指令値の立ち上がりが第1実施形態におけるものよりも速くなっている。また、量子化誤差の影響も抑制されている。
この後、指令値送信部14aに与えられる指令値が「2020」から「2000」に変化したとする。そして更に、指令値送信部14aに与えられる指令値が「2000」に維持されている状態から、図19に示す如く、q番目の単位期間において該指令値が「−1000」に変化し、以後、該指令値が「−1000」に維持されたとする(但し、qは整数)。この場合、上述と同様の処理を経て、q、(q+1)番目の単位期間において、設定されるモードが夫々モード3及びモード2となり、復元指令値が夫々0、−1000となる。即ち、復元指令値の立ち下がりが第1実施形態におけるものよりも速くなっている。また、量子化誤差の影響も抑制されている。
図21に、図19にて示した数値例におけるモータの回転数の変化を示す。図21の左側のグラフに示されるMCU12側の指令値のステップ状の変化は、図21の右側のグラフに示す如く、SCU[0:0]に伝達される。復元指令値の立ち上がり及び立ち下がりの遅延抑制効果が、図14と図21の比較からも見てとれる。
第2実施形態に係る機械装置駆動システムを、図22のようなマニピュレータ100を有する機械装置に適用する場合を考える。マニピュレータ100の先端の位置を変える時に用いられるモータMOT[0:0]、MOT[1:0]及びMOT[2:0]が、マニピュレータ100の各部に内蔵されており、モータMOT[0:0]、MOT[1:0]及びMOT[2:0]の回転は、それぞれSCU[0:0]、SCU[1:0]及びSCU[2:0]によって制御されるとする。
そして例えば、マニピュレータ100の先端を地点P1から地点P2まで移動させる位置決めを行うような場合、機械装置駆動システムは、各モータMOT[0:0]〜[2:0]の各時刻における速度(回転数)を、各SCU[0:0]〜SCU[2:0]に指令値として与える。このような場合、一般には、図23の上側のグラフに示すように加速−定速−減速の速度パターンを与えることになるが、指令値が急激に変化する加減速時にはモード1やモード2等が選択され、大きな変化量を一度(或いはより少ない回数)の転送で送信する。一方、停止付近や低速で動いている時には、モード0が選択される。
このように、指令値が急激に変化する場合は、精度を粗くして送信される値の範囲(指令値に換算した値の範囲)を大きくし、指令値が目標値に近づき指令値の変化量が小さくなっている場合にモード0を選択して高い精度を確保する。これにより、高い応答性と高い制御精度を両立させることができる。
(状態値のモード設定)
状態値の伝達及び復元においても同様の手法が採用可能である。図24は、或る1つのSCU[i:j]におけるスレーブ状態検出部41aと、そのSCU[i:j]に接続されているACU[j]と、状態値受信部13aの内部構成を示すブロック図である。図24において、図15と同じ部分には同一の符号を付し、原則として重複する説明を省略する。今、説明の具体化のため、SCU[0:0]とACU[0]のみに着目して説明を行う。SCU[0:0]以外の他のSCU[i:j]及びACU[0]以外の他のACU[j]についても別途、同様の動作が行われる。また、SCU[0:0]に接続されているアクチュエータがモータ(不図示)であり、SCU[0:0]は該モータの回転数を制御するものとして説明を行う。そして、そのモータの状態を表す状態値は、モータの回転数(単位はrpm)を示しているものとする。
状態値受信部13aは、通信プロトコル制御部81a、状態値復元部82aを有して構成される。状態値復元部82は、復元器84aを有している。スレーブ状態検出部41aは、状態値検出部72を有している。ACU[0]は、通信プロトコル制御部79aを有している。格納部74、差分演算部75a及び最小最大値制限部76aは、下記の第5、第6及び第7の分配手法の何れかにて、SCU[0:0]のスレーブ状態検出部41a又はACU[0]に分配される。尚、最小最大値制限部76aは、加算器77a及び制限器78aを有している。
第5の分配手法においては、スレーブ状態検出部41aが格納部74、差分演算部75a及び最小最大値制限部76aの全てを有する。この場合、最小最大値制限部76aの出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の通信プロトコル制御部79に与えられることになる。
第6の分配手法においては、スレーブ状態検出部41aが格納部74及び差分演算部75を有し、ACU[0]が最小最大値制限部76aを有する。この場合、差分演算部75aの出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の最小最大値制限部76aに与えられることになる。
第7の分配手法においては、ACU[0]が格納部74、差分演算部75a及び最小最大値制限部76aの全てを有する。この場合、状態値検出部72の出力値がアップロード用のネットワークCAN1[0]Lを介してACU[0]の格納部74に与えられることになる。
第5、第6及び第7の分配手法の何れを採用しても構わないが、以下、第5の分配手法を採用した場合を例にとって説明を行う。尚、SCU[0:0]以外の他のSCU[i:j]とACU[0]以外の他のACU[j]との関係についても、第5、第6及び第7の分配手法の何れかを採用可能である。
状態値検出部72は、1msの単位期間ごとに、ACU[0]に対応するモータの回転数を検出する。検出した該回転数は、ACU[0]に対応するアクチュエータの状態を表す状態値である。その状態値(回転数を表す数値)は格納部74に送られる。この格納部74の前段に、第1実施形態と同様、変換部73(図15)を設けるようにしても構わない。格納部74は、今回与えられた状態値と前回与えられた状態値を記憶する。差分演算部75aは、格納部74の記憶内容を参照して、今回状態値検出部72が検出した状態値から前回状態値検出部72が検出した状態値を差し引いた値(これを、以下「差分値α2」という)を演算して出力する。
加算器77aは、差分演算部75aが出力する差分値α2に制限器78aが出力する制限超状態値δ2を加えたものを出力する。加算器77aの出力値(以下、「出力値β2」という)は、制限器78aの入力値として制限器78aに与えられる。
制限器78aは、加算器77aの出力値に最大値MAXと最小値MINの制限を加えたものを差分状態値として出力するが、自身への入力値の大きさ(即ち、|β2|)に応じて、制限に用いる最大値MAXと最小値MINを変化させると共に該制限を加えて出力する値に関連付けるモードを切り換えて設定する。この最大値MAXと最小値MINの変化とモードの切り換えは、毎回行われ、また、SCU[i:j]の夫々について独立に行われる。
具体的には、下式(1a)が成立する場合に、(MAX,MIN)=(100,−100)と設定すると共にモードを「モード0」に設定する。下式(2a)が成立する場合に、(MAX,MIN)=(500,−500)と設定すると共にモードを「モード1」に設定する。下式(3a)が成立する場合に、(MAX,MIN)=(1000,−1000)と設定すると共にモードを「モード2」に設定する。下式(4a)が成立する場合に、(MAX,MIN)=(2000,−2000)と設定すると共にモードを「モード3」に設定する。尚、|β2|は、出力値β2の絶対値を意味する。
|β2|≦100 ・・・(1a)
100<|β2|≦500 ・・・(2a)
500<|β2|≦1000 ・・・(3a)
1000<|β2| ・・・(4a)
例えば、p番目の単位期間における出力値β2が「2020」の場合、式(4a)が成立し、(MAX,MIN)=(2000,−2000)と設定される共にモードは「モード3」に設定される。この場合、出力値β2の内の差分状態値に変換されるべき値(以下、「被変換値γ2」という)は、設定された最大値MAXと等しい「2000」となる。そして、制限器78aは、被変換値γ2を設定されたモードに応じた変換値(モードごとに定められた一定値)で割ることによって、被変換値γ2を数値範囲「−124〜124」内の数値に変換し、その変換にて得られた値を差分状態値として出力する。尚、この際、実際に被変換値γ2を上記変換値で割るのではなく、テーブルデータ等を用いることによって同等のデータを出力するようにしてもよい。
図20に示したものと同様、モード3においては、「2000」及び「−2000」の値を有する被変換値γ2が、それぞれ「124」及び「−124」の差分状態値に変換される。また、モード2においては、「1000」及び「−1000」の値を有する被変換値γ2が、それぞれ「124」及び「−124」の差分状態値に変換される。モード1においては、「500」及び「−500」の値を有する被変換値γ2が、それぞれ「124」及び「−124」の差分状態値に変換される。モード0においては、「100」及び「−100」の値を有する被変換値γ2が、それぞれ「124」及び「−124」の差分状態値に変換される。
各単位期間において、制限器78aは、差分状態値と該差分状態値に対応して設定されたモードを通信プロトコル制御部79aに伝達する。また、各単位期間において、制限器78aは、出力値β2から被変換値γ2を差し引いた値を、制限超状態値δ2として加算器77aに出力する。
通信プロトコル制御部79aは、SCU[0:0]についての差分状態値をデータDU[0:0]として取り扱うと共に、同様に自身に与えられるSCU[1:0]〜SCU[7:0]についての差分状態値をデータDU[1:0]〜[7:0]と取り扱って、データDU[0]を形成する(図10等参照)。そして、各単位期間において、データDU[0]を含んだフレームデータを、上述のアップロード手法に従って、アップロード用のネットワークCAN1:Hに送出する。
ACU[j]の夫々の通信プロトコル制御部79aは、同様の動作を行う。各通信プロトコル制御部79aは、データDU[0]〜DU[6]を送信した後に続く、同一の単位期間のフレーム[7]と次の単位期間のフレーム[0]を用いて、合計48個のモード情報をアップロード用のネットワークCAN1:Hに送出する。この合計48個のモード情報は、データDU[0]〜DU[6]に含まれる合計48個の差分状態値の夫々に対応付けられたモードを特定する情報である。モードは4種類であるため各モード情報は2ビットで表現でき、合計96ビット(=2×48)のモード情報を伝達する必要があるが、2つのフレームにて128ビットの情報を伝送することできるため、問題はない。図18の通信プロトコル制御部29aによるモード情報の割り当て手法と同様の手法にて、各差分状態値に対応付けられる各モード情報の格納場所が上記2つのフレーム内に割り当てられる。
状態値受信部13aの通信プロトコル制御部81aは、データDU[0]を含んだフレームデータから7つのデータDU[0:0]〜データDU[7:0]を取得し、データDU[i:0]を、SCU[i:0]についての差分状態値として取り扱う。また、その差分状態値に対応付けられたモード情報も取得する。データDU[0:0]に着目して説明を継続するが、他のデータDU[1:0]〜DU[7:0](更には、他の全てのデータDU[i:j])についても、例えば時分割で同様の処理が施される。
通信プロトコル制御部81aは、受けた差分状態値及び該差分状態値に対応付けられたモード情報を復元器84aに送る。復元器84aは、まず、対応付けられたモード情報を用いつつ、差分状態値を上述の被変換値γ2に逆変換する(この逆変換によって得られる値を、「逆変換値」という)。つまり、制限器78aで用いた上記変換値又はテーブルデータ等を用いることによって、制限器78aによる被変換値γ2の差分状態値への変換の逆の演算を行う。この逆変換値は、対応する被変換値γ2と一致する。そして、復元器84aは、前回の単位期間における自身の出力値と今回の単位期間における逆変換値との和を、今回の単位期間における自身の出力値として出力する。復元器84aの出力値は、状態値復元部82aからの復元状態値としてデータレジスタ19(図3)に伝達される。
(ユニット数優先)
モード情報を伝送するために、SCU[i:j]の総数を第1実施形態における64から48に減らす例を示したが、SCU[i:j]の総数を64に維持することもできる。例えば、差分指令値(又は差分状態値)を6ビットにて表現し、その6ビットで表される差分指令値(又は差分状態値)と該差分指令値(又は該差分状態値)に対応付けられる2ビットのモード情報にて、8ビットのデータDD[i:j](又はデータDU[i:j])を形成するようにする。この場合、差分指令値(又は差分状態値)は、−32〜31の値で表現されることになる。
このようにすれば、モード情報と共に差分指令値(又は差分状態値)を第1実施形態と同じようにして伝送することが可能となり、SCU[i:j]の総数を64に維持することができる。この場合、差分指令値(又は差分状態値)にて表される指令値(又は状態値)の分解能が粗くなってしまうが、各モードにおける差分指令値(又は差分状態値)と被変換値γ1(又は被変換値γ2)との変換関係を適切に設定することにより、その影響は小さく抑えられる。
例えば、図25に示す如く、モード3においては、「2000」及び「−2000」の値を有する被変換値γ1(又はγ2)を、それぞれ「31」及び「−32」の差分指令値に変換し、モード2においては、「1000」及び「−1000」の値を有する被変換値γ1(又はγ2)を、それぞれ「31」及び「−32」の差分指令値に変換し、モード1においては、「300」及び「−300」の値を有する被変換値γ1(又はγ2)を、それぞれ「31」及び「−32」の差分指令値に変換し、モード0においては、「25」及び「−25」の値を有する被変換値γ1(又はγ2)を、それぞれ「31」及び「−32」の差分指令値に変換する。このようにすれば、モード2及び3における分解能が、夫々、31.3(≒2000/64)rpm及び62.5(≒4000/64)rpmとなって悪化してしまうが、精度がより要求されるモード0における分解能は、図20に示すものと同じ0.781(≒50/64)rpmに維持される。
また、図18の差分演算部25aと最小最大値制限部26aは、各差分指令値を出力する差分指令値出力部を構成し、図24の差分演算部75aと最小最大値制限部76aは、各差分状態値を出力する差分状態値出力部を構成する。
(ネットワーク異常時)
また、第1及び第2実施形態において、ダウンロード用のネットワークCAN0:H及びCAN0[j]Lの何れかに、断線等の異常が生じてデータを伝送することができなくなった場合は、ダウンロード用のネットワークCAN0:H及びCAN0[j]Lを用いたデータ伝送を停止し、アップロード用のネットワークCAN1:H及びCAN1[j]Lを時分割で利用して双方向通信を行うようにする。つまり、アップロード用のネットワークにダウンロードの機能を一時的に担わせる。
同様に、アップロード用のネットワークCAN1:H及びCAN1[j]Lの何れかに、断線等の異常が生じてデータを伝送することができなくなった場合は、アップロード用のネットワークCAN1:H及びCAN1[j]Lを用いたデータ伝送を停止し、ダウンロード用のネットワークCAN0:H及びCAN0[j]Lを時分割で利用して双方向通信を行うようにする。つまり、ダウンロード用のネットワークにアップロードの機能を一時的に担わせる。
これらの場合、制御周期は、例えば通常の2倍の2msとなる。そして、適切な指令値を発行して機械装置を安全な状態にしてから、機械装置駆動システムの動作を停止させるとよい。
<<第3実施形態>>
また、アップロード用のネットワーク及びダウンロード用のネットワークの何れか一方を省略し、1系統のネットワークを双方向にて用いるようにしてもよい。図1の機械装置駆動システムから、一方の系統のネットワークCAN1:H及びCAN1[j]Lを省略した機械装置駆動システムを第3実施形態として説明する。
図26は、第3実施形態に係る機械装置駆動システムの全体ブロック図である。図26において、図1と同一の部分には同一の符号を付す。第3実施形態では、ネットワークCAN0:H及びCAN0[j]Lを時分割で用いて双方向通信を行う。そして、制御周期(上記の単位期間)を第1及び第2実施形態と同様、1msとしている。蓄積制御ユニットとしては、4個のACU[0]〜ACU[3]を設け、各ACU[j]に対して、夫々7個のSCU[0:j]〜SCU[6:j]を接続している。つまり、第3実施形態においては、ACU[j]及びSCU[i:j]におけるjは0〜3の値をとり、且つiは0〜6の値をとる。
図27に、アップロードとダウンロードのデータの流れを示す。ネットワークCAN0:Hは、各単位期間のフレーム[0]〜[3]においてダウンロード用に用いられる。即ち、j=0〜3としたとき、各単位期間のフレーム[j]において、MCU12はACU[j]を送信先としたデータDD[j]をネットワークCAN0:Hに送出する。データDD[j]を受けたACU[j]の動作は、上述のダウンロード手法と同じである。
ネットワークCAN0:Hは、各単位期間のフレーム[4]〜[7]においてアップロード用に用いられる。即ち、j=0〜3としたとき、各単位期間のフレーム[j+4]において、ACU[j]は、データDU[j]をネットワークCAN0:Hに送出する。データDU[0]は、前回の単位期間のフレーム[2]を基準とした連続する7つのフレームにおいて、ネットワークCAN0[0]Lに送出された7つのデータDU[0:0]〜DU[6:0]をまとめたものである。第1実施形態で述べたように、データDU[i:j]はSCU[i:j]によって作成され、ネットワークCAN0[j]Lに送出される。
j=1〜3におけるデータDU[0]も同じである。即ち、j=0〜3において、データDU[j]は、前回の単位期間のフレーム[j+2]を基準とした連続する7つのフレームにおいて、ネットワークCAN0[j]Lに送出された7つのデータDU[0:j]〜DU[6:j]をまとめたものである。
以上のように構成することにより、ネットワークを介して制御できるアクチュエータの数は減ることになるが、ネットワークの系統の数を減らすことが可能となる。
<<変形等>>
上述の各実施形態で説明した機械装置駆動システムのダウンロードの機能のみに着目した場合、該機械装置駆動システムは機械装置の駆動をネットワークを用いて制御する駆動制御装置である、と考えることもできる。一方、アップロードの機能のみに着目した場合、該機械装置駆動システムは機械装置の状態をネットワークを用いて検出する機械装置状態検出装置である、と考えることもできる。
SCU[i:j]によって制御され且つSCU[i:j]によって状態が検出される機器(スレーブ機器)の例としてモータを例に挙げ、指令値及び状態値の例として該モータの回転数を例に挙げたが、指令値や状態値は、これに限定されない。
例えば、指令値はモータのトルクに関する値であっても構わない。同様に、状態値はモータのトルクに関する値であっても構わない。また、例えば、図22のマニピュレータ100のように、モータ等のアクチュエータの動作によって位置決めが成される場合、その位置や基準面に対する角度を表す情報を指令値及び/又は状態値としても構わない。その他、SCU[i:j]によって制御可能なアクチュエータの状態を指示する値であれば、指令値はどのような種類の値であっても構わない。
更に、SCU[i:j]によって制御される機器(スレーブ機器)はアクチュエータに限定されない。特に、各SCU[i:j]に対応して設けられる機器(スレーブ機器)の状態を表す状態値については、様々な種類の値が考えられる。
例えば、各SCU[i:j]に対応して設けられる機器(スレーブ機器)としては、様々な物理量を検出するセンサが考えられ、この場合、各SCU[i:j]が検出して出力する状態値は、該センサが検出した物理量となる。上記センサとしては、距離を検出する距離センサ、温度を検出する温度センサ、機械装置に内蔵されたバッテリの電圧を検出する電圧検出センサ、作用する力を検出する力センサ、機械装置の各部の傾斜角度(又は角速度)を検出するジャイロセンサ等が考えられ、夫々に対応する物理量(即ち状態値)は、距離、温度、バッテリの電圧、力、傾斜角度(又は角速度)となる。
本発明の第1実施形態に係る機械装置駆動システムの全体ブロック図である。 図1のSCU[0:0]の内部構成図である。 図1のメイン制御ボートとMCUの内部構成を表したブロック図である。 通信規格CANにて伝送される1つのフレームデータのデータ構造を示している。 図4のデータフィールドの領域を示す図である。 図1のシステムにおいて定義される単位期間を説明するための図である。 図1の機械装置駆動システムからダウンロードに関する部分を抜き出した図であり、ダウンロード時のデータの流れを示す図である。 図1の機械装置駆動システムにおける、ダウンロード時のデータの流れを示した図である。 図1の機械装置駆動システムからアップロードに関する部分を抜き出した図であり、アップロード時のデータの流れを示す図である。 図1の機械装置駆動システムにおける、アップロード時のデータの流れを示した図である。 図3の指令値送信部と、図2のスレーブ駆動制御部の内部構成を示すブロック図である。 本発明の第1実施形態における指令値の流れを表した図である。 図11の最小最大値制限部の内部構成の一例を示す図である。 本発明の第1実施形態における、MCU側にて発行された指令値とSCU側にて復元された指令値との関係を表す図である。 図3の状態値受信部と、図2のスレーブ状態検出部と、図1のACU[j]の内部構成を示すブロック図である。 本発明の第1実施形態における状態値の流れを表した図である。 図15の最小最大値制限部の内部構成の一例を示す図である。 本発明の第2実施形態における、指令値送信部とスレーブ駆動制御部の内部構成を示すブロック図である。 本発明の第2実施形態における指令値の流れを表した図である。 図18の制限器において選択されるモードと差分指令値の表す数値範囲との関係の一例を表した図である。 本発明の第2実施形態における、MCU側にて発行された指令値とSCU側にて復元された指令値との関係を表す図である。 本発明に係る機械装置駆動システムが適用された機械装置の動作例を説明するための図である。 本発明に係る機械装置駆動システムが適用された機械装置の動作例を説明するための図である。 本発明の第2実施形態における、状態値受信部とスレーブ状態検出部とACU[j]の内部構成を示すブロック図である。 図18の制限器において選択されるモードと差分指令値の表す数値範囲との関係の他の例を表した図である。 本発明の第3実施形態に係る機械装置駆動システムの全体ブロック図である。 図26の機械装置駆動システムにおける、アップロードとダウンロードのデータの流れを示した図である。
符号の説明
11 メイン制御ボード
12 マスタ制御ユニット(MCU)
13、13a 状態値受信部
14、14a 指令値送信部
15 主制御部

23 変換部
24 格納部
25、25a 差分演算部
26、26a 最小最大値制限部
27、27a 加算器
28、28a 制限器
29、29a 通信プロトコル制御部
31、31a フィルタ
32、32a 指令値復元部
33 アクチュエータ制御部
34、34a 復元器
35 変換部

41、41a スレーブ状態検出部
42、42a スレーブ駆動制御部
72 状態値検出部
73 変換部
74 格納部
75、75a 差分演算部
76、76a 最小最大値制限部
77、77a 加算器
78、78a 制限器
79、79a 通信プロトコル制御部
81、81a 通信プロトコル制御部
82、82a 状態値復元部
84、84a 復元器
85 変換部

ACU[j] 蓄積制御ユニット(中継装置)
SCU[i:j] スレーブ制御ユニット
CAN0:H、CAN0[j]L ダウンロード用のネットワーク
CAN1:H、CAN1[j]L アップロード用のネットワーク

Claims (19)

  1. N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の駆動を、ネットワークを用いて制御する駆動制御装置であって、
    前記N個のスレーブ機器の夫々に対する合計N個の指令値を次々と受けるマスタ通信制御部と、
    前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ制御部と、を備え、
    前記マスタ通信制御部は、
    各スレーブ制御部に対応する指令値ごとに、今回受けた指令値と前回受けた指令値との差である差分値を演算し、該差分値に応じた差分指令値を出力する差分指令値出力部を備え、
    各差分指令値を含んだ送信データを次々と前記ネットワークに対して送信し、
    各スレーブ制御部は、
    前記送信データを次々と受信し、受信した前記送信データから自身に対応する差分指令値を抽出するフィルタと、
    抽出された差分指令値に基づいて次々と前記指令値を復元する指令値復元部と、を備えている
    ことを特徴とする駆動制御装置。
  2. 前記差分指令値出力部は、
    各スレーブ制御部に対応する指令値ごとに、前記差分値を演算して出力する差分演算部と、
    与えられた各差分値に対して最小値と最大値の制限を加え、該制限を経て得られた値の夫々を前記差分指令値として出力する最小最大値制限部と、を有する
    ことを特徴とする請求項1に記載の駆動制御装置。
  3. 前記最小最大値制限部における、各スレーブ制御部に対応する各差分指令値の算出において、前回の差分指令値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に前記差分演算部が出力する、同一のスレーブ制御部に対応する差分値に加算され、
    前記最小最大値制限部は、その加算後の各差分値に対して前記制限を加えることにより今回の各差分指令値を算出して出力し、
    各指令値復元部は、前回復元した指令値と今回受信した差分指令値に基づいて今回の指令値を復元する
    ことを特徴とする請求項2に記載の駆動制御装置。
  4. 各差分指令値によって表現される数値範囲が互いに異なる複数のモードが設けられており、前記差分指令値出力部が演算する各差分値の大きさに応じて、その各差分値に対応する各差分指令値のモードが差分指令値ごとに択一的に選択される
    ことを特徴とする請求項1〜請求項3の何れかに記載の駆動制御装置。
  5. 前記ネットワークを介しての一回のデータ伝送のデータサイズは定められおり、
    前記マスタ通信制御部は、M個(Mは2以上の整数であって、N≧M)のスレーブ制御部に対する合計M個の差分指令値を前記データサイズ以内にまとめることによって1つの送信データを作成し、該送信データを前記M個のスレーブ制御部に対して同時に送信する
    ことを特徴とする請求項1〜請求項4の何れかに記載の駆動制御装置。
  6. 合計M個の差分指令値を構成する各差分指令値の前記送信データ内のアドレスは予め定められており、
    前記M個のスレーブ制御部の各フィルタは、その予め定められたアドレスに従って、受信した前記送信データから自身に対応する差分指令値を抽出する
    ことを特徴とする請求項5に記載の駆動制御装置。
  7. 前記ネットワークは、第1ネットワーク含む複数系統のネットワークから構成されており、
    当該駆動制御装置は、第1ネットワークを介して前記マスタ通信制御部に接続された複数の中継装置を更に備え、
    各中継装置は、第1ネットワークと異なり且つ前記複数の中継装置間で互いに異なる個別の系統の第2ネットワークを介して複数のスレーブ制御部と接続されており、
    前記マスタ通信制御部は、送信すべき前記送信データに、該送信データが何れの中継装置に受信されるべきであるかを表すメッセージID情報を含ませ、
    各中継装置は、前記メッセージID情報に従って自身に対する送信データを第1ネットワークを介して受信し、受信した該送信データを自身に接続された第2ネットワークに送る
    ことを特徴とする請求項1〜請求項6の何れかに記載の駆動制御装置。
  8. N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の状態を、ネットワークを用いて検出する機械装置状態検出装置であって、
    マスタ通信制御部と、
    前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ状態検出部と、を備え、
    各スレーブ状態検出部は、
    自身に対応するスレーブ機器の状態を表す状態値を次々と検出する状態値検出部と、
    今回検出された状態値と前回検出された状態値との差である差分値を演算し、該差分値に応じた差分状態値を出力する差分状態値出力部と、を備え、
    前記マスタ通信制御部は、
    前記ネットワークを介して次々と送られてくる各スレーブ状態検出部に対応する差分状態値に基づいて、次々と各スレーブ状態検出部に対応する状態値を復元する状態値復元部を備えている
    ことを特徴とする機械装置状態検出装置。
  9. 各差分状態値出力部は、
    前記差分値を演算して出力する差分演算部と、
    与えられた差分値に対して最小値と最大値の制限を加え、該制限を経て得られた値を前記差分状態値として出力する最小最大値制限部と、を有する
    ことを特徴とする請求項8に記載の機械装置状態検出装置。
  10. 各スレーブ状態検出部において、前回の差分状態値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に前記差分演算部が出力する差分値に加算され、
    各最小最大値制限部は、その加算後の差分値に対して前記制限を加えることにより今回の差分状態値を算出して出力し、
    前記状態値復元部は、各スレーブ状態検出部に対応する各状態値の復元において、前回復元した状態値と今回受信した差分状態値に基づいて今回の状態値を復元する
    ことを特徴とする請求項9に記載の機械装置状態検出装置。
  11. N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の状態を、ネットワークを用いて検出する機械装置状態検出装置であって、
    マスタ通信制御部と、
    前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ状態検出部と、を備え、
    前記ネットワークは、第1ネットワーク含む複数系統のネットワークから構成されており、
    当該機械装置状態検出装置は、第1ネットワークを介して前記マスタ通信制御部に接続された複数の中継装置を更に備え、
    各中継装置は、第1ネットワークと異なり且つ前記複数の中継装置間で互いに異なる個別の系統の第2ネットワークを介して複数のスレーブ状態検出部と接続されており、
    各スレーブ状態検出部は、
    自身に対応するスレーブ機器の状態を表す状態値を次々と検出する状態値検出部と、
    今回検出された状態値と前回検出された状態値との差である差分値を演算して出力する差分演算部と、を備えて、
    前記差分値を次々と第2ネットワークに送信し、
    各中継装置は、
    自身に接続されているスレーブ状態検出部の夫々から第2ネットワークを介して受け取った前記差分値に対して、差分値ごとに、最小値と最大値の制限を加え、該制限を経て得られた値を各スレーブ状態検出部に対応する差分状態値として出力する最小最大値制限部を備えて、
    各差分状態値を次々と第1ネットワークに送信し、
    前記マスタ通信制御部は、第1ネットワークを介して次々と送られてくる各スレーブ状態検出部に対応する差分状態値に基づいて、次々と各スレーブ状態検出部に対応する状態値を復元する状態値復元部を備えている
    ことを特徴とする機械装置状態検出装置。
  12. 各最小最大値制限部における、各スレーブ状態検出部に対応する各差分状態値の算出において、前回の差分状態値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に同一のスレーブ状態検出部から送られてくる差分値に加算され、
    各最小最大値制限部は、その加算後の各差分値に対して前記制限を加えることにより今回の各差分状態値を算出して出力し、
    前記状態値復元部は、各スレーブ状態検出部に対応する各状態値の復元において、前回復元した状態値と今回受信した差分状態値に基づいて今回の状態値を復元する
    ことを特徴とする請求項11に記載の機械装置状態検出装置。
  13. N個(Nは2以上の整数)のスレーブ機器を有して構成される機械装置の状態を、ネットワークを用いて検出する機械装置状態検出装置であって、
    マスタ通信制御部と、
    前記ネットワークを介して前記マスタ通信制御部に接続され、各スレーブ機器に対応して設けられた合計N個のスレーブ状態検出部と、を備え、
    前記ネットワークは、第1ネットワーク含む複数系統のネットワークから構成されており、
    当該機械装置状態検出装置は、第1ネットワークを介して前記マスタ通信制御部に接続された複数の中継装置を更に備え、
    各中継装置は、第1ネットワークと異なり且つ前記複数の中継装置間で互いに異なる個別の系統の第2ネットワークを介して複数のスレーブ状態検出部と接続されており、
    各スレーブ状態検出部は、自身に対応するスレーブ機器の状態を表す状態値を次々と検出して第2ネットワークに送信し、
    各中継装置は、
    第2ネットワークを介して受けた各スレーブ状態検出部に対応する状態値ごとに、今回受けた状態値と前回受けた状態値との差を表す差分値を演算し、該差分値に応じた差分状態値を出力する差分状態値出力部を備え、
    各スレーブ状態検出部に対応する差分状態値を次々と第1ネットワークに送信し、
    前記マスタ通信制御部は、第1ネットワークを介して次々と送られてくる各スレーブ状態検出部に対応する差分状態値に基づいて、次々と各スレーブ状態検出部に対応する状態値を復元する状態値復元部を備えている
    ことを特徴とする機械装置状態検出装置。
  14. 各差分状態値出力部は、
    各スレーブ状態検出部に対応する前記差分値を演算して出力する差分演算部と、
    各スレーブ状態検出部に対応して与えられた差分値ごとに、最小値と最大値の制限を加え、該制限を経て得られた値を各スレーブ状態検出部に対応する前記差分状態値として出力する最小最大値制限部と、を有する
    ことを特徴とする請求項13に記載の機械装置状態検出装置。
  15. 各最小最大値制限部における、各スレーブ状態検出部に対応する各差分状態値の算出において、前回の差分状態値の算出のための前記制限によって前記最小値又は前記最大値を超えた分は、今回に前記差分演算部が出力する、同一のスレーブ状態検出部に対応する差分値に加算され、
    前記最小最大値制限部は、その加算後の各差分値に対して前記制限を加えることにより今回の各差分状態値を算出して出力し、
    前記状態値復元部は、各スレーブ状態検出部に対応する各状態値の復元において、前回復元した状態値と今回受信した差分状態値に基づいて今回の状態値を復元する
    ことを特徴とする請求項14に記載の機械装置状態検出装置。
  16. 各差分状態値によって表現される数値範囲が互いに異なる複数のモードが設けられており、演算される各差分値の大きさに応じて、その各差分値に対応する各差分状態値のモードが差分状態値ごとに択一的に選択される
    ことを特徴とする請求項8〜請求項15の何れかに記載の駆動制御装置。
  17. 前記ネットワークを介しての一回のデータ伝送のデータサイズは定められており、
    各中継装置は、自身に接続された全てのスレーブ状態検出部に対応する全ての差分状態値を前記データサイズ以内にまとめたデータを、一括して第1ネットワークを介して前記マスタ通信制御部に送る
    ことを特徴とする請求項11〜請求項15の何れかに記載の駆動制御装置。
  18. 前記ネットワークは、前記マスタ通信制御部からデータを送信するためのダウンロード用のネットワークと、前記マスタ通信制御部に対してデータを送信するためのアップロード用のネットワークとの2系統のネットワークを有して構成され、
    該2系統のネットワークの内の一方のネットワークに異常をきたした場合、その一方のネットワークを用いたデータの通信を停止し、他方のネットワークを用いた時分割の双方向通信を行う
    ことを特徴とする請求項1〜請求項17の何れかに記載の駆動制御装置。
  19. 前記N個のスレーブ機器の一部又は全部は、アクチュエータである
    ことを特徴とする請求項1〜請求項18の何れかに記載の駆動制御装置。
JP2005182824A 2005-06-23 2005-06-23 駆動制御装置及び機械装置状態検出装置 Withdrawn JP2007004416A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005182824A JP2007004416A (ja) 2005-06-23 2005-06-23 駆動制御装置及び機械装置状態検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005182824A JP2007004416A (ja) 2005-06-23 2005-06-23 駆動制御装置及び機械装置状態検出装置

Publications (1)

Publication Number Publication Date
JP2007004416A true JP2007004416A (ja) 2007-01-11

Family

ID=37689996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005182824A Withdrawn JP2007004416A (ja) 2005-06-23 2005-06-23 駆動制御装置及び機械装置状態検出装置

Country Status (1)

Country Link
JP (1) JP2007004416A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5051298B2 (ja) * 2009-02-09 2012-10-17 パナソニック株式会社 ロボットシステムおよびロボットシステムのソフトウェア更新方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5051298B2 (ja) * 2009-02-09 2012-10-17 パナソニック株式会社 ロボットシステムおよびロボットシステムのソフトウェア更新方法

Similar Documents

Publication Publication Date Title
JP3852469B2 (ja) 同期コントローラおよびコントローラシステム
EP2541846B1 (en) Communication method of gateway device supporting CAN - and Modbus protocol conversion and gateway device using the same
CN108289003B (zh) 用于高速传感器接口的同步机构
CN110412921B (zh) 基于EtherCAT的机器人单腿高实时性控制系统
CN104552311A (zh) 基于EtherCAT的智能工业机器人总线模块及其操作方法
US20140254431A1 (en) Advanced TDM Daisy-Chain Communication Systems and Devices
CN111343228B (zh) 用于异步通信系统的分布式时间同步协议
WO2007115705A1 (en) Multi-input control of an industrial robot system
JP2022541126A (ja) 低複雑度イーサネットノード(len)1ポート
CN111488005B (zh) 船用低速机转速分发系统、方法及设备
JP2007004416A (ja) 駆動制御装置及び機械装置状態検出装置
CN113510720A (zh) 一种实时分布式协作机器人控制系统
CN111052012B (zh) 控制装置以及控制系统
JP2001147706A (ja) アクチュエータ駆動制御方式、多軸機械装置、及びアクチュエータのための駆動制御装置
JP4480010B2 (ja) 分散制御システム
JP2001310281A (ja) コンフィギュレーション取得方法並びに状態検出方法
JP6337469B2 (ja) 通信システム及び通信方法
JP2008090825A (ja) 位置検出器をマルチドロップ接続した多軸制御システム
JP4549396B2 (ja) 車両制御装置
CN109428663B (zh) 用于同步的系统和控制设备
US11916697B2 (en) Ring network communication system
EP1390856B1 (en) System and method for preloading a bus controller with command schedule
JP7231073B2 (ja) 制御装置および制御システム
EP4059208B1 (en) Automotive network with centralized storage
JPH0586582B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090709