(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】サーボ制御装置、サーボ制御システム及びサーボ制御方法
(51)【国際特許分類】
G05D 3/12 20060101AFI20240228BHJP
G05B 19/042 20060101ALI20240228BHJP
【FI】
G05D3/12 305Z
G05B19/042
(21)【出願番号】P 2019165895
(22)【出願日】2019-09-12
【審査請求日】2022-05-17
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】羅 威
(72)【発明者】
【氏名】猪飼 聡史
(72)【発明者】
【氏名】中邨 勉
【審査官】田中 友章
(56)【参考文献】
【文献】特開2008-146357(JP,A)
【文献】特開2001-092795(JP,A)
【文献】特開2019-061467(JP,A)
【文献】特開2009-289131(JP,A)
【文献】特開平07-295863(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 3/12
G05B 19/042
(57)【特許請求の範囲】
【請求項1】
サーボ制御処理に係る複数処理を行う演算処理部と、
前記演算処理部の各処理の処理開始時刻情報及び処理終了時刻情報の少なくとも1つを求める観測部と、
前記観測部により求められた時刻情報を用いて、前記演算処理部の使用量に関する情報を計算し、出力する出力部を備え、
前記出力部は警報部を備え、前記警報部は各処理が実行される処理時間が
、与えられた処理時間より小さい、警報を出す基準となる時間を超えたときに警報を出す、サーボ制御装置。
【請求項2】
前記使用量に関する情報は、前記演算処理部の処理が実行される処理時間、与えられた処理時間に対する前記処理が実行される処理時間との差、前記与えられた処理時間に対する前記処理が実行される処理時間の比率、又は前記与えられた処理時間に対する前記差の比率である請求項1に記載のサーボ制御装置。
【請求項3】
前記出力部は表示部を備え、前記表示部は複数の演算処理装置の使用量を表示する請求項1又は2に記載のサーボ制御装置。
【請求項4】
前記出力部は表示部を備え、前記表示部は前記
複数処理の少なくとも一部の処理毎の処理時間、および各処理間の時間上の相対位置関係をタイムライン上に表示する請求項1から3のいずれか1項に記載のサーボ制御装置。
【請求項5】
前記出力部は処理が実行される処理時間が警報を出す基準となる時間を超えたときに前記表示部に警報情報を表示する請求項3又は4に記載のサーボ制御装置。
【請求項6】
サーボ制御処理に係る複数処理を行う演算処理部と、前記演算処理部の各処理の処理開始時刻及び処理終了時刻の少なくとも1つを求める観測部とを備えたサーボ制御装置と、
前記観測部により求められた時刻情報を用いて、前記演算処理部の使用量に関する情報を計算し、出力する出力装置と、を備え、
前記出力装置は警報部を備え、前記警報部は各処理が実行される処理時間が
、与えられた処理時間より小さい、警報を出す基準となる時間を超えたときに警報を出す、サーボ制御システム。
【請求項7】
サーボ制御処理に係る複数処理を行う演算処理部を有するサーボ制御装置のサーボ制御方法であって、
前記
複数処理の各処理の処理開始時刻情報及び処理終了時刻情報の少なくとも1つを求め、
求められた時刻情報を用いて前記演算処理部の使用量に関する情報を計算し、出力し、
各処理が実行される処理時間が
、与えられた処理時間より小さい、警報を出す基準となる時間を超えたときに警報を出す、サーボ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーボ制御処理に係る複数の処理を、演算処理装置を用いて行うサーボ制御装置、サーボ制御システム及びサーボ制御方法に関する。
【背景技術】
【0002】
本発明に関連する技術として、複数の処理を、演算処理装置を用いて行う数値制御装置が特許文献1及び特許文献に記載されている。
特許文献1には、タスクが実行するプログラムをメモリ上に展開するメモリ管理部と、タスクの実行時間を算出する実行時間算出部と、メモリ管理部および実行時間算出部の実行結果に基づいて、タスクの実行条件を設定する実行条件設定部と、演算ユニットの状態を監視し、タスクを割り当てる演算ユニットを決定するタスク監視部と、実行条件に基づき、割り当てられた演算ユニットにおいてタスクの登録および起動を行うタスク制御部と、を有する数値制御装置が記載されている。そして、特許文献1には、これらの構成部を記憶装置に格納されたプログラムを演算処理装置となるCPUが実行することにより実現することが記載されている。
【0003】
また特許文献2には、加工プログラムを実行して工作機械を制御するマルチコアプロセッサを有する数値制御装置において、加工プログラムから取得した加工指令に基づいて所定周期において実行する移動指令を作成するために必要とされる移動指令作成処理時間を推定する移動指令作成処理時間推定手段と、前記移動指令作成処理時間推定手段が推定した前記移動指令作成処理時間に基づいて、前記移動指令を作成する移動指令作成処理を前記マルチコアプロセッサの各コアに分割する移動指令作成処理分割手段とを備える数値制御装置が記載されている。これらの手段を備えることにより、移動指令作成処理の処理性能を向上させることが可能になり、工作機械の多軸・多系統化や、高機能化の要求に応じることが可能となる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-079336号公報
【文献】特開2006-012221号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
サーボ制御装置において、高速、高精度のサーボ制御を実現するために、DSP等の演算処理装置が用いられる。サーボ制御装置は、リアルタイム性が求められているため、一般的に各処理タスクに優先度を付け、優先度が高い処理タスクを割り込んで実行できるようなスケジューリングが行われることが望ましい。
また、サーボ制御装置で実行される機能の組み合わせをその演算処理装置に割り当てる場合に、その割り当てを見積もる際、演算処理装置の処理余裕を把握できれば、見積もりしやすくなる。
他方、システムの保守又は継続開発において、処理や機能の追加による各処理の所要時間が増える一方、各処理の所要時間と相対関係を把握することが困難となり、スケジュール管理が煩雑となり生産性が低下する課題がある。
このため、サーボ制御装置において、演算処理部の負荷の状態を把握することが望まれている。それによって、演算処理部の過剰機能を停止したり、負荷が少ない他の演算処理部に一部演算処理を移すことでサーボ制御装置の安定性と効率を向上させることが望まれている。
【課題を解決するための手段】
【0006】
(1) 本開示の第1の態様は、サーボ制御処理に係る複数の処理を行う演算処理部と、
前記演算処理部の各処理の処理開始時刻情報及び処理終了時刻情報の少なくとも1つを求める観測部と、
前記観測部により求められた時刻情報を用いて、前記演算処理部の使用量に関する情報を計算し、出力する出力部を備えた、
サーボ制御装置である。
【0007】
(2) 本開示の第2の態様は、サーボ制御処理に係る複数の処理を行う演算処理部と、前記演算処理部の各処理の処理開始時刻及び処理終了時刻の少なくとも1つを求める観測部とを備えたサーボ制御装置と、
前記観測部により求められた時刻情報を用いて、前記演算処理部の使用量に関する情報を計算し、出力する出力部と、を備えたサーボ制御システムである。
【0008】
(3) 本開示の第3の態様は、サーボ制御処理に係る複数の処理を行う演算処理部を有するサーボ制御装置のサーボ制御方法であって、
前記複数の処理の各処理の処理開始時刻情報及び処理終了時刻情報の少なくとも1つを求め、
求められた時刻情報を用いて前記演算処理部の使用量に関する情報を計算し、出力する、サーボ制御方法である。
【発明の効果】
【0009】
本開示の各態様によれば、ユーザは演算処理部の負荷の状態を把握することができる。それによって、ユーザは演算処理部の過剰機能を停止したり、負荷が少ない他の演算処理部に一部演算処理を移すことでサーボ制御装置の安定性と効率を向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の一実施形態のサーボ制御装置及び数値制御装置を示すブロック図である。
【
図2】第1の演算処理部が1つのモータを制御する機能を示すブロック図である。
【
図3】第1の演算処理部のサーボ制御処理の一例を示す図である。
【
図5】演算処理部の処理内容に対応する記憶部のテーブルの内容を示す図である。
【
図7】画面情報に基づいて表示部に表示する画面の一例を示す図である。
【
図8】演算処理部ごとに使用率を表示する画面の一例を示す図である。
【
図9】出力部がサーボ制御装置の外部に設けられたサーボ制御システムを示すブロック図である。
【発明を実施するための形態】
【0011】
以下、本開示の実施形態について図面を用いて詳細に説明する。
【0012】
図1は本開示の一実施形態のサーボ制御装置及び数値制御装置を示すブロック図である。
図1に示すように、サーボ制御装置10は、2つの演算処理部(すなわち、第1の演算処理部100、第2の演算処理部200)、観測部300、及び出力部400を備えている。第1及び第2の演算処理部100、200は数値制御装置20に接続される。
第1及び第2の演算処理部100、200はそれぞれDSP(Digital Signal Processor)から構成される。第1及び第2の演算処理部100、200はDSPに限定されず、MPU(Micro Processing Unit)若しくは他の計算ユニット、又はMPUとDSPの組み合わせから構成されてもよい。なお、演算処理部の数は特に限定されず、1つ又は3つ以上であってもよい。
【0013】
第1の演算処理部100と第2の演算処理部200は複数のモータをサーボ制御し、第1の演算処理部100が制御するモータの数と第2の演算処理部200が制御するモータの数は適宜設定される。例えば、第1の演算処理部100と第2の演算処理部200が8個のモータをサーボ制御する場合、第1の演算処理部100及び第2の演算処理部200がそれぞれ4個のモータを制御することができる。また第1の演算処理部100が3個のモータをサーボ制御し、第2の演算処理部200が5個のモータをサーボ制御することができる。
複数のモータは、工作機械、ロボット、産業機械等の一部として設けられる。サーボ制御装置10は、工作機械、ロボット、産業機械等の機械の一部として設けられてもよい。例えば、サーボ制御装置10が5軸加工機を駆動する場合、第1の演算処理部100がX軸、Y軸及びZ軸の3軸を駆動する3つのモータをサーボ制御し、第2の演算処理部200が回転軸及び傾斜軸を駆動する2つのモータをサーボ制御することができる。
モータは、回転運動をするモータであっても、直線運動をするリニアモータであってもよい。以下の説明では、サーボ制御装置10は工作機械のモータを制御するものとして説明する。
【0014】
観測部300は、第1の演算処理部100及び第2の演算処理部200が実行するサーボ制御の複数の処理の各処理の開始と終了時の時刻を求める。
【0015】
出力部400は、観測部300から出力される複数の処理の各処理の開始と終了に関する時刻情報に基づいて、第1の演算処理部100、第2の演算処理部200の使用量に関する情報(以下、使用量情報という)を計算し、出力する。使用量情報は、例えば、処理が実行される処理時間T、与えられた処理時間T0に対する余裕時間ΔT(ΔT=T0-T、与えられた処理時間に対する処理が実行される処理時間との差)、処理時間の使用率T/T0(与えられた処理時間に対する処理が実行される処理時間の比率)、又は余裕時間の比率ΔT/T0である。
出力部400は使用量情報を出力するために、例えば、液晶表示装置等の表示部、又はインターネット、専用通信線と接続され外部に使用量情報を出力する通信部を有する。
【0016】
出力部400は、処理が実行される処理時間Tが与えられた処理時間T0に近づいた場合にアラーム(警報)を出してもよい。
【0017】
数値制御装置20は加工プログラムを解析し、解析結果に基づいて各軸の移動を指令する移動指令データを作成し、移動指令データにより指令される移動指令に基づいて、指令経路上の点を補間周期で補間計算した補間データを生成する。そして、数値制御装置20は補間データに基づいて、加減速処理を行い補間周期ごとの各軸の加工速度を計算してサーボ制御装置10の第1の演算処理部100、第2の演算処理部200に出力する。
【0018】
以下、サーボ制御装置10の各部について更に説明する。第2の演算処理部200は第1の演算処理部100と同じなので説明を省略する。
【0019】
<第1の演算処理部100>
【0020】
図2は第1の演算処理部100が1つのモータを制御する機能を示すブロック図である。
第1の演算処理部100は複数のモータの制御に対応するが、
図2では1つのモータを制御する構成部が示されている。サーボ制御を行う処理は各モータごとに独立して行われ、各モータごとに
図2に示す構成部が動作する。
第1の演算処理部100は、位置指令作成部101、減算器102、位置制御部103、加算器104、減算器105、速度制御部106、加算器107、積分器108、位置フィードフォワード部109及び速度フィードフォワード部110を備えている。位置制御部103は速度指令作成部、速度制御部106は電流指令作成部となる。
第1の演算処理部100はサーボモータ500を制御する。ロータリーエンコーダ501はサーボモータ500に対応して設けられる。
【0021】
位置指令作成部101は、数値制御装置20から出力される各軸の加工速度を用いて、サーボモータ500の速度を変化させるためにパルス周波数を変えるように位置指令を作成する。位置指令は、減算器102、位置フィードフォワード部109及び速度フィードフォワード部110に出力される。なお、位置指令作成部101は数値制御装置20に設けられてもよい。この場合、位置指令作成部101はサーボ制御装置の一部として機能する。
【0022】
減算器102は、位置指令と位置フィードバック(位置FB)された検出位置(位置フィードバック情報となる)との差を求め、その差を位置偏差として位置制御部103に出力する。
【0023】
位置制御部103は、位置偏差にポジションゲインKpを乗じた値を、速度指令として加算器104に出力する。
【0024】
加算器104は、速度指令と位置フィードフォワード部109の出力値(位置フィードフォワード項)とを加算して、フィードフォワード制御された速度指令として減算器105に出力する。
減算器105は加算器104の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部106に出力する。
【0025】
速度制御部106は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して電流指令として加算器107に出力する。
加算器107は、電流指令と速度フィードフォワード部110の出力値(速度フィードフォワード項)とを加算して、フィードフォワード制御された電流指令としてサーボモータ500に出力する。
積分器108はロータリーエンコーダ501から出力される速度検出値を積分して位置検出値を出力する。
【0026】
位置フィードフォワード部109は、位置指令を微分して定数αを掛けた値に、位置フィードフォワード係数を掛けた値を位置フィードフォワード項として、加算器104に出力する。
速度フィードフォワード部110は、位置指令を2回微分して定数βを掛け、速度フィードフォワード係数を掛けた値を速度フィードフォワード項として、加算器107に出力する。
ロータリーエンコーダ501は速度検出値を速度フィードバック情報として減算器105に出力する。積分器108は速度検出値から位置検出値を求め、その位置検出値を位置フィードバック(位置FB)情報として減算器102に出力する。
【0027】
図3は第1の演算処理部100のサーボ制御処理の一例を示す図である。
図3において、処理An、処理Bn、処理Cn及び処理Dn(nは自然数)はサーボ制御における処理である。
処理An、処理Bn、処理Cn及び処理Dnは、例えば、速度制御部106による電流指令作成の処理、位置制御部103による速度指令作成の処理、位置指令作成部101による位置指令作成の処理及び数値制御装置20との通信の処理が対応する。
【0028】
図3において、t
A1は処理A1の処理時間実績を示し、t
B1は処理B1の処理時間実績を示し、t
C1は処理C1の処理時間実績を示し、t
D1は処理D1の処理時間実績を示す。また、T
Aは処理Anの制御周期を示し、T
Bは処理Bnの制御周期を示し、T
Cは処理Cnの制御周期を示し、T
Dは処理Dnの制御周期を示す。
【0029】
処理Anが電流指令作成の処理であるとき、制御周期TAは数十μsec/回程度である。処理Bnが速度指令作成の処理であるとき、制御周期TBは数百μsec/回~数msec/回程度である。処理Cnが位置指令作成の処理であるとき、制御周期TCは数msec/回程度である。処理Dnが数値制御装置との通信の処理であるとき、制御周期TDは数十msec/回程度である。
【0030】
処理An、処理Bn、処理Cn及び処理Dn(nは自然数)の制御周期の長さは、(処理Anの制御周期TA)<(処理Bnの制御周期TB)<(処理Cnの制御周期TC)<(処理Dnの制御周期TD)となる。制御周期が短いほど優先度が高くなり、処理Anの優先順位が一番高くなる。制御周期TAにおいて一回の処理Anが行われ、制御周期TBにおいて一回の処理Bnが行われ、制御周期TCにおいて一回の処理Cnが行われ、制御周期TDにおいて一回の処理Dnが行われる。処理An、処理Bn、処理Cn及び処理Dnが一定時間内に全部処理できるように、処理の優先順位がスケジューリングされる。
【0031】
図3に示すように、例えば、処理B1が開始されるタイミングは、処理A1が終了するタイミングである。また、
図3に示す例では、処理B1が実行される期間において、処理A2が開始されると処理B1は処理A2が完了するまで一旦中断し、処理A3が開始されると処理B1は処理A3が完了するまで一旦中断する。これは、処理A2、処理A3の処理B1に対する割込みとなる。
【0032】
また、
図3に示す例では、処理C1が実行される期間において、処理A4、A5、A8、A9及びA12が処理C1に対して割込みを実行する。また、処理A6及びA7が処理B2に対して割込みを実行し、処理A10及びA11が処理B3に対して割込みを実行する。さらに、処理B2及びB3が処理C1に対して割込みを実行する。
【0033】
また、
図3に示す例では、処理D1が実行される期間において、処理A13、A16及びA17が処理D1に対して割込みを実行する。また、処理A14及びA15が処理B4に対して割込みを実行し、処理A18及びA19が処理B5に対して割込みを実行する。処理A22及びA23が処理B6に対して割込みを実行し、処理A26及びA27が処理B7に対して割込みを実行する。さらに、さらに、処理B4及びB5が処理D1に対して割込みを実行し、処理B6及びB7が処理C2に対して割込みを実行し、処理C2が処理D1に対して割込みを実行する。
【0034】
<観測部300>
図4は観測部300の一構成例を示すブロック図である。
図4に示すように、観測部300は信号取得部301、時刻計算部302、カウンタ303、データ処理部304、記憶部305、及びデータ出力部306を備えている。
信号取得部301は、第1の演算処理部100及び第2の演算処理部200から、例えば、
図3に示したサーボ制御における処理An、処理Bn、処理Cn及び処理Dnの各処理の開始と終了を示す信号を取得する。処理の開始と終了を示す信号は例えば、処理の開始時にロウレベルからハイレベルとなり、処理の終了時にハイレベルからロウレベルとなる信号である。
信号取得部301は、処理Anが電流指令作成の処理である場合は速度制御部106から電流指令の作成開始と作成終了を示す信号(
図4において電流指令作成信号と示す)を取得し、処理Bnが速度指令作成の処理である場合は位置制御部103から速度指令の作成開始と作成終了を示す信号(
図4において速度指令作成信号と示す)を取得する。また、信号取得部301は、処理Cnが位置指令作成の処理である場合は位置指令作成部101から位置指令の作成開始と作成終了を示す信号(
図4において位置指令作成信号と示す)を取得し、処理Dnが数値制御装置20との通信の処理である場合は第1の演算処理部100の不図示の通信部から通信の開始と終了を示す信号(
図4において通信処理信号と示す)を取得し、時刻計算部302に出力する。
【0035】
時刻計算部302は、処理の開始と終了を示す信号に基づいて、各処理の開始と終了の時刻を、一定時間刻みでカントアップするカウンタ303を用いてカウントすることで、そのカウント値を処理An、処理Bn、処理Cn及び処理Dnと対応づけてデータ処理部304に出力する。
【0036】
データ処理部304は、処理A1の開始を示す信号を受けたときのカウント値を記憶し、そのカウント値と時刻(例えば時刻“x0.00”)を対応づけ、その時刻を処理A1の開始と結びつけて記憶部305のテーブルに記憶し、処理A1の終了を示す信号を受けたとき又は次の処理B1の開始を示す信号を受けたときのカウンタ値から換算して処理A1の終了の時刻(例えば時刻“x0.30”)を求める。処理A1の終了の時刻が次の処理B1の開始を示す信号を受けたときのカウンタ値から換算できるのは、
図3に示すように、処理A1の終了が処理B1の開始と同時刻となるからである。
なお、処理A1を開始してからは、一つの処理の終了を示す信号を受けたときの時刻と次の処理の開始を示す信号を受けたときの時刻は同じなので、処理A1を開始してからは、処理の開始を示す信号を受けたときの時刻と処理の終了を示す信号を受けたときの時刻とのいずれかを求めていけばよい。
データ処理部304は、処理B1以降の処理の開始及び終了も同様にしてカウント値から時刻を求め、求められた時刻を処理A1の開始と結びつけて記憶部305のテーブルに記憶する。こうして、得られた開始と終了の時刻情報と処理An、処理Bn、処理Cn及び処理Dnの種類と対応づけたテーブルが記憶部305に記憶される。
【0037】
図5では、第1の演算処理部100の処理内容に対応する記憶部305のテーブルの内容が示される。
図5において、処理A1から処理C1の一部までの各処理の開始と終了、及び開始と終了時の時刻を示すテーブルが示されている。
データ処理部304は、記憶部305に記憶されたテーブルのデータをデータ出力部306に出力する。テーブルのデータをデータ出力部306に出力するタイミングは特に限定されないが、例えば、データ処理部304は、後述する
図7に示す画面の表示のために、
図5に示される処理A1から処理C1の一部までの制御周期T
Bでテーブルのデータが得られた時点でこれらのデータを出力することができる。
【0038】
<出力部400>
図6は出力部400の一構成例を示すブロック図である。
図6に示すように、出力部400はデータ入力部401、使用量情報計算部402、表示部403及び警報部404を備えている。
データ入力部401は、観測部300のデータ出力部306から各処理の開始と終了、及び開始と終了時の時刻に関するデータを受けて使用量情報計算部402に出力する。
使用量情報計算部402は、第1の演算処理部100の各処理の使用量に関する情報(使用量情報)を計算する。例えば、処理A1~A4、処理B1、及び処理C1の開始と終了時の時刻から、処理A1~A4、処理B1、及び処理C1が実行される時間Tを計算し、各処理が実行される処理時間Tを含む情報を表示部403で表示するための画面情報を作成する。使用量情報計算部402は作成した画面情報を表示部403に出力する。
【0039】
図7は、画面情報に基づいて表示部403に表示する画面の一例を示している。
図7では、使用量情報として、タイムライン上の処理Anの制御周期T
A1~T
A4において、処理A1~A4、処理B1、及び処理C1が実行される時間が示されている。
図7の画面では、処理の優先度が示され、優先度は、処理An>処理Bn>処理Cnの順であることが示されている。
図7の画面において、Waitは割り込みによる待ち時間を示している。
ユーザが
図7の画面を見ることで、処理A1~A4、処理B1、及び処理C1のタイミングを知ることができる。そして、ユーザは処理A1~A3が処理B1に優先されて処理され、処理B1が終了して処理C1が行われるが、処理A4が処理C1に優先されて処理されていることが分かる。また、ユーザは処理B1及び処理C1における割り込みによる処理の中断のタイミングと再開のタイミングも認識することができる。
図7では、処理An、処理Bn、処理Cn及び処理Dnの全ての処理が示されていないが、表示部403に全ての処理の表示が必要であれば、全ての処理の表示を行う。すなわち、必要に応じて処理An、処理Bn、処理Cn及び処理Dnの一部又は全ての処理が表示部403に表示する。
【0040】
使用量情報計算部402は、処理が実行される処理時間Tが与えられた処理時間T0に近づいた場合にアラーム指示(警報指示)を警報部404に出す。警報部404は警報音を出したり、警報用のLEDアレイが発光するLED素子の数を増やしたりすることでアラーム(警報)を出す。アラームは、表示部403に警報情報を表示したり、表示部403に警報情報を表示するとともに表示部403のスピーカで警報音を出して実行してもよい。表示部403が警報を行う場合、警報部404はなくともよい。
アラームを出すタイミングは、処理が実行される処理時間Tが与えられた処理時間T0より小さければよく、任意に設定できるが、例えばアラームを出す基準となる時間T1がT1=0.9×T0とされ、処理が実行される処理時間Tが0.9×T0を超えた場合に、処理時間不足のアラーム指示を出力することができる。
【0041】
なお、
図7は第1の演算処理部100の使用量情報を示しているが、同時に第2の演算処理部200の使用量情報を示してもよい。また、画面に切り替えボタンを示し、切り替えボタンを選択することで第1の演算処理部100の使用量情報の画面と第2の演算処理部200の使用量情報の画面とを切り替えることができるようにしてもよい。
使用量情報計算部402は、使用量情報が処理時間の使用率T/T0である場合には、
図8に示すように、演算処理部ごとに使用率を表示するようにしてもよい。
【0042】
使用量情報計算部402は、
図7又は
図8に示した画面に関する画像情報を、通信部を介してインターネット、専用通信線等を介して外部に出力してもよい。
【0043】
表示部403及び警報部404の一方又は両方は、サーボ制御装置10とは別に設けてもよい。例えば、サーボ制御装置10と通信可能な端末に表示部403及び警報部404の一方又は両方を設けてもよい。
【0044】
本実施形態のサーボ制御装置によれば、ユーザは使用量情報によって演算処理部の負荷を把握することができる。そうすることで、ユーザは公知の技術によって演算処理部の過剰機能を停止したり、負荷が少ない他の演算処理部に一部演算処理を移すことでサーボ制御装置の安定性と効率を向上させることができる。例えば、1つの演算処理部で複数のモータに関する制御演算を順番に処理する場合、処理するモータの数が多いほど、処理しきれない可能があるが、一部のモータの制御を他の演算処理部に移すことで演算処理量が減る。
【0045】
また、サーボ制御装置は、リアルタイム性が求めているため、一般的に各処理タスクに優先度を付けることが望ましいが、本実施形態のサーボ制御装置によれば優先度が高い処理タスクを割り込んで実行できるようなスケジューリングを行われることができる。
【0046】
また、サーボ制御装置では、サーボ制御装置で用いられる機能(フィードバック機能、フィードフォワード機能等)を組み合わせる場合、その必要処理能力を見積もる必要がある。その場合、本実施形態のサーボ制御装置によれば、現行の演算処理装置の処理余裕を把握することができ、前記機能の組み合わせを追加する際の演算処理装置の処理能力を見積もりしやすくなる。
また、本実施形態のサーボ制御装置によれば、システムの保守又は継続開発において、処理や機能の追加による各処理の所要時間が増えても、各処理の所要時間と相対関係が明確になるため、スケジュール管理が容易で生産性を向上させることができる。
【0047】
以上、サーボ制御装置10に含まれる機能ブロックについて説明した。
上述したように、演算処理部は、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)若しくは他の計算ユニット、又はMPUとDSPの組み合わせ等から構成される。観測部又は出力部を実現するために、サーボ制御装置10は、CPU(Central Processing Unit)等の演算処理装置を備える。また、サーボ制御装置10は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
【0048】
そして、サーボ制御装置10において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0049】
サーボ制御装置10の観測部又は出力部において演算量が多い場合には、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0050】
上記のサーボ制御装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のモータ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0051】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。
【0052】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0053】
<出力部がサーボ制御装置の外部に設けられた変形例>
本変形例では、出力部はサーボ制御装置と独立して設けられた例について説明する。本変形例では、出力部はサーボ制御装置と独立して設けられているため出力装置と呼ぶ。
図9は出力部がサーボ制御装置の外部に設けられたサーボ制御システムを示すブロック図である。
【0054】
図9に示すサーボ制御システム10Aは、n(nは2以上の自然数)個のサーボ制御装置10-1~10-nと、n個の出力装置400-1~400-nと、サーボ制御装置10-1~10-nとn個の出力装置400-1~400-nとを接続するネットワーク600とを備えている。サーボ制御装置10-1~10-nはそれぞれ数値制御装置と接続されるが、
図9では数値制御装置は省略されている。
サーボ制御装置10-1~10-nの各々は出力部を備えていない点を除き、
図1のサーボ制御装置10と同じ構成を有している。出力装置400-1~400-nは
図6に示した出力部400と同じ構成を有している。
【0055】
ここで、サーボ制御装置10-1と、出力部400-1とは1対1の組とされて、通信可能に接続されている。サーボ制御装置10-2~10-nと、出力部400-2~400-nについてもサーボ制御装置10-1と出力部400-1と同様に接続される。
図9では、サーボ制御装置10-1~10-nと、出力部400-1~400-nとのn個の組は、ネットワーク600を介して接続されているが、サーボ制御装置10-1~10-nと、出力装置400-1~400-nとのn個の組は、それぞれの組のサーボ制御装置と出力装置とが接続インタフェースを介して直接接続されてもよい。これらサーボ制御装置10-1~10-nと出力装置400-1~400-nとのn個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【0056】
なお、ネットワーク600は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク600における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【0057】
<システム構成の自由度>
上述した実施形態では、サーボ制御装置10-1~10-nと、出力部400-1~400-nとはそれぞれ1対1の組とされて通信可能に接続されているが、例えば1台の出力部が複数のサーボ制御装置とネットワーク600を介して通信可能に接続され、1台の出力部が複数のサーボ制御装置の演算処理部の使用量情報を出力して、ユーザが演算処理部の負荷を把握できるようにしてもよい。
その際、1台の出力装置の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、1台の出力装置の各機能を実現してもよい。
【0058】
本開示によるサーボ制御装置、サーボ制御システム及びサーボ制御方法は、上述した実施形態を含め、次のような構成を有する各種各様の実施形態を取ることができる。
(1)本開示の第1の態様は、サーボ制御処理に係る複数の処理を行う演算処理部(演算処理部100、200)と、
前記演算処理部の各処理の処理開始時刻情報及び処理終了時刻情報の少なくとも1つを求める観測部(例えば観測部300)と、
前記観測部により求められた時刻情報を用いて、前記演算処理部の使用量に関する情報を計算し、出力する出力部(例えば出力部400)を備えた、
サーボ制御装置(例えば、サーボ制御装置10)である。
このサーボ制御装置によれば、演算処理部の負荷の状態を把握することができ、演算処理部の過剰機能を停止したり、負荷が少ない他の演算処理部に一部演算処理を移すことでサーボ制御装置の安定性と効率を向上することができる。
【0059】
(2) 前記使用量に関する情報は、前記演算処理部の処理が実行される処理時間、与えられた処理時間に対する前記処理が実行される処理時間との差、前記与えられた処理時間に対する前記処理が実行される処理時間の比率、又は前記与えられた処理時間に対する前記差の比率である上記(1)に記載のサーボ制御装置。
【0060】
(3) 前記出力部は表示部(例えば表示部403)を備え、前記表示部は複数の演算処理装置の使用量を表示する上記(1)又は(2)に記載のサーボ制御装置。
【0061】
(4) 前記出力部は表示部(例えば表示部403)を備え、前記表示部は前記複数の処理の少なくとも一部の処理毎の処理時間、および各処理間の時間上の相対位置関係をタイムライン上に表示する上記(1)から(3)のいずれかに記載のサーボ制御装置。
【0062】
(5) 前記出力部は処理が実行される処理時間が警報を出す基準となる時間を超えたときに前記表示部に警報情報を表示する上記(3)又は(4)に記載のサーボ制御装置。
【0063】
(6) 前記出力部は警報部(例えば、警報部404)を備え、前記警報部は処理が実行される処理時間が警報を出す基準となる時間を超えたときに警報を出す上記(1)から(4)のいずれかに記載のサーボ制御装置。
【0064】
(7) 本開示の第2の態様は、サーボ制御処理に係る複数の処理を行う演算処理部(演算処理部100、200)と、前記演算処理部の各処理の処理開始時刻及び処理終了時刻の少なくとも1つを求める観測部(例えば観測部300)とを備えたサーボ制御装置(例えば、サーボ制御装置10-1~10-n)と、
前記観測部により求められた時刻情報を用いて、前記演算処理部の使用量に関する情報を計算し、出力する出力装置(例えば、出力装置400-1~400-n)と、を備えたサーボ制御システムである。
このサーボ制御システムによれば、演算処理部の負荷の状態を把握することができ、演算処理部の過剰機能を停止したり、負荷が少ない他の演算処理部に一部演算処理を移すことでサーボ制御装置の安定性と効率を向上することができる。
【0065】
(8) 本開示の第3の態様は、サーボ制御処理に係る複数の処理を行う演算処理部(演算処理部100、200、10-1~10-n)を有するサーボ制御装置(例えば、サーボ制御装置10、)のサーボ制御方法であって、
前記複数の処理の各処理の処理開始時刻情報及び処理終了時刻情報の少なくとも1つを求め、
求められた時刻情報を用いて前記演算処理部の使用量に関する情報を計算し、出力する、サーボ制御方法である。
この機械学習方法によれば、演算処理部の負荷の状態を把握することができ、演算処理部の過剰機能を停止したり、負荷が少ない他の演算処理部に一部演算処理を移すことでサーボ制御装置の安定性と効率を向上することができる。
【符号の説明】
【0066】
10、10-1~10-n サーボ制御装置
20 数値制御装置
100、200 演算処置部
101 位置指令作成部
102 減算器
103 位置制御部
104 加算器
105 減算器
106 速度制御部
107 加算器
108 積分器
109 位置フィードフォワード部
110 速度フィードフォワード部
300 観測部
400 出力部
400-1~400-n 出力装置
500 サーボモータ
501 ロータリーエンコーダ
600 ネットワーク