(57)【要約】外部機器からの外部指令信号に基づきモータを制御しながら前記モータを駆動するモータ駆動装置であって、外部指令処理部とプログラム記憶部とモータ制御部とプログラム書換部と書換データ入力端子とを備える。外部指令処理部は、外部指令処理プログラムに基づき前記外部指令信号からモータ制御指令を出力する。モータ制御部は、モータ制御プログラムに基づきモータ制御指令に従ってモータの動作を制御する。また、プログラム記憶部には、外部指令処理プログラムとモータ制御プログラムとがあらかじめ記憶されており、プログラム書換部は、書換データ入力端子から受け取ったプログラム書換データにより、プログラム記憶部に記憶されている外部指令処理プログラムのみを書き換える。
2015087540.tif 000002
【特許請求の範囲】
【請求項１】
外部機器からの外部指令信号に基づきモータを制御しながら前記モータを駆動するモータ駆動装置であって、
前記外部指令信号が供給され、外部指令処理プログラムに基づき、前記外部指令信号からモータ制御指令を出力する外部指令処理部と、
前記モータ制御指令が供給され、モータ制御プログラムに基づき、前記モータ制御指令に従って前記モータの動作を制御するモータ制御部と、
前記外部指令処理プログラムと前記モータ制御プログラムとが、記憶プログラムデータとしてあらかじめ記憶されているプログラム記憶部と、
前記プログラム記憶部に記憶された前記記憶プログラムデータを書き換えるプログラム書換部と、
前記プログラム書換部によって書き換えるためのプログラム書換データを、外部から受け取る書換データ入力端子と、を備え、
前記プログラム書換部は、前記書換データ入力端子から受け取った前記プログラム書換データにより、前記プログラム記憶部に記憶されている前記外部指令処理プログラムのみを書き換えることを特徴とするモータ駆動装置。
【請求項２】
前記外部指令処理プログラムの異常を監視し、異常の検知を示す異常検出信号を出力するプログラム監視部と、
前記異常検知信号に基づき異常処理を行う異常検知部とをさらに備え、
前記外部指令処理部は、前記外部指令処理プログラムに基づき生成した第１の監視データを出力し、
前記モータ制御部は、前記モータ制御プログラムに基づき生成した第２の監視データを出力し、
前記プログラム監視部は、前記第１の監視データと前記第２の監視データを比較することで、前記外部指令処理プログラムの異常を監視することを特徴とする請求項１に記載のモータ駆動装置。
【請求項３】
前記第１の監視データは、あらかじめ決めておいて、前記外部指令処理プログラムに設定された特定コードであり、
前記第２の監視データは、あらかじめ決めておいて、前記モータ制御プログラムに設定された許容する特定コードの一覧であり、前記プログラム監視部は、前記第２の監視データの特定コードの一覧の中に、前記第１の監視データである特定コードが含まれていない場合に、異常と判断し前記異常検知信号を出力することを特徴とする請求項２に記載のモータ駆動装置。
【請求項４】
前記第１の監視データは、前記外部指令処理部が計算した前記外部指令処理プログラム全体のチェックサム値であり、前記第２の監視データは、事前に計算し前記モータ制御プログラム内に記憶させておいた前記外部指令処理プログラム全体のチェックサム値であり、前記プログラム監視部は、前記第１の監視データと前記第２の監視データが一致しない場合に、異常と判断し前記異常検知信号を出力することを特徴とする請求項２に記載のモータ駆動装置。
【請求項５】
前記第１の監視データは、前記外部指令処理部が一定時間ごとに測定した前記外部指令処理部の処理時間を示し、前記第２の監視データは、許容可能な前記処理時間の最大値を示し、前記プログラム監視部は、前記第１の監視データが前記第２の監視データより大きい場合に、異常と判断し前記異常検知信号を出力することを特徴とする請求項２に記載のモータ駆動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部機器からの指令に基づきモータを制御しながらそのモータを駆動するモータ駆動装置に関する。
【背景技術】
【０００２】
モータ制御は、位置指令や速度指令に対し、モータの位置や速度を追従させるように制御を行う。このようなモータ制御において、さらなる性能向上のため、様々な制御方式が提案されている。【０００３】
一方、モータ駆動装置においては、このようなモータ制御を行う処理以外にも、外部機器との接続に関する処理などが必要となる。例えば、外部機器とネットワークで接続する場合、近年のネットワーク高速化に伴い、処理すべきデータ量は増え、かつ複雑な動作指令にも対応が必要となる。このため、モータ駆動装置内でのネットワーク部の処理は大幅に増えてきている。さらに、市場には様々な種類のネットワークが存在する。このためモータメーカは、お客様の要望に合わせ、複数のネットワークに対応しなければならず、それぞれ個別に開発を進めていたのでは、膨大な工数を要するという課題がある。また、このネットワーク部の対応を外部業者に委託する場合においては、各モータメーカのノウハウの結集であるモータ制御部ごと外部業者に公開する必要があり、外部委託が難しいという課題もある。【０００４】
そこで、従来、効率よくネットワークに対応する技術が提案されている。【０００５】
例えば、モータ駆動装置内に、上位コントローラとの接続用にＣＰＵ基板を別途用意し、そこでシリアル通信データの解析処理を行う。そして、そこから、モータ制御を行うサーボ基板に別の通信方式でデータを送受信して、モータを制御している。こうすることにより、上記コントローラとのネットワーク種類が変わった場合でも、上位コントローラとの接続用のＣＰＵ基板の処理を変更するだけでよい。さらに、モータ制御部分に影響を与えないため、対応する工数は大幅に減らすことができる。また、外部委託する場合でも、モータ制御処理を公開する必要はなく、低リスクで開発を委託することができる（例えば、特許文献１参照）。【０００６】
この応用として、市場では、標準的なモータ駆動装置に対し、外部のオプションボードという形で、外付けで付加できるような商品も出てきている。その外部のオプションボード側で、様々なネットワークに対応したモデルを用意することで、オプションボードを交換するだけで様々なネットワークに対応可能となる。これも、モータ制御部とネットワーク部が完全に分離されているため、モータメーカは自社のモータ制御に関するノウハウは守ったまま、外部委託等で効率的に様々なネットワークに対応することができる。【０００７】
しかしながら、上述のような従来技術では、専用のＣＰＵ基板やオプションボードといった追加のハードウェアが必要になるため、サイズが大きく、かつコストも高くなるといった課題があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２６３６７８号公報
【発明の概要】
【０００９】
本発明のモータ駆動装置は、外部機器からの外部指令信号に基づきモータを制御しながらそのモータを駆動するモータ駆動装置である。本モータ駆動装置は、外部指令信号が供給され、外部指令処理プログラムに基づき外部指令信号からモータ制御指令を出力する外部指令処理部と、モータ制御指令が供給され、モータ制御プログラムに基づきモータ制御指令に従ってモータの動作を制御するモータ制御部とを備える。さらに、本モータ駆動装置は、外部指令処理プログラムとモータ制御プログラムとが、記憶プログラムデータとしてあらかじめ記憶されているプログラム記憶部と、プログラム記憶部に記憶された記憶プログラムデータを書き換えるプログラム書換部と、プログラム書換部によって書き換えるためのプログラム書換データを外部から受け取る書換データ入力端子とを備えている。そして、プログラム書換部は、書換データ入力端子から受け取ったプログラム書換データにより、プログラム記憶部に記憶されている外部指令処理プログラムのみを書換える構成である。
【００１０】
本発明のモータ駆動装置によれば、外部指令処理プログラムのみを変更可能にすることで、ハードウェアを追加することなく、外部指令信号が伝送される様々な通信方式に容易に対応することができる。さらに、外部指令処理部とモータ制御部とのそれぞれから監視データを出力し、プログラム監視部で異常状態を検知するような機能を追加することで、より信頼性の高いモータ駆動装置を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態１におけるモータ駆動装置を示すブロック図である。
【図２】図２は、本発明の実施の形態１における各種外部指令への対応例の図である。
【図３】図３は、本発明の実施の形態２におけるモータ駆動装置を示すブロック図である。
【図４】図４は、本発明の実施の形態３におけるモータ駆動装置を示すブロック図である。
【図５】図５は、本発明の実施の形態４におけるモータ駆動装置を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１３】
（実施の形態１）
図１は、本発明の実施の形態１におけるモータ駆動装置を示すブロック図である。図１では、本実施の形態のモータ駆動装置１０を含むモータ制御システムの構成例を示している。
【００１４】
図１において、モータ駆動装置１０は、外部に配置した機器である外部機器としての上位コントローラ３０によって制御されるとともに、その制御に従って、モータ２０をさらに制御しながらこのモータ２０が所定の位置や速度となるように駆動する。
【００１５】
モータ駆動装置１０は、図１に示すように、外部指令処理部１１と、プログラム記憶部１２と、モータ制御部１３と、プログラム書換部１４と、書換データ入力端子１９とを備えている。
【００１６】
このようなモータ駆動装置１０に対して、上位コントローラ３０からは、モータ駆動装置１０に対する各種の指令を示す外部指令信号１０４が通知される。この外部指令信号１０４が、外部指令処理部１１に供給される。外部指令処理部１１は、外部指令処理プログラム１０１に基づき、外部指令信号１０４から、モータ２０を制御するためのモータ２０に対する各種の指令であるモータ制御指令１０３を生成する。そして、外部指令処理部１１は、生成したモータ制御指令１０３をモータ制御部１３へと出力する。
【００１７】
モータ制御部１３は、モータ制御プログラム１０２に基づき、外部指令処理部１１から供給されたモータ制御指令１０３に従い、例えば、エンコーダ２１を利用した位置フィードバックを用いて、モータ２０での位置や速度などを制御する。ここで、モータ２０は、例えば、巻回した巻線を有する固定子と永久磁石を有する可動子とで構成されており、モータ駆動装置１０が巻線を通電駆動することで、可動子が回転したり、リニアモータの場合には可動子が移動したりする。また、エンコーダ２１は、このようなモータ２０に配置された位置検出器であり、可動子の位置を検出する。エンコーダ２１で検出された位置の情報は、位置検出信号としてモータ制御部１３に通知される。例えば、モータ制御部１３が行う制御の一例として、位置制御を行う場合、モータ制御部１３は、エンコーダ２１で検出された位置が、外部指令信号１０４から生成されたモータ制御指令１０３における位置指令による位置と等しくなるように、位置フィードバックの制御を行う。
【００１８】
また、プログラム記憶部１２には、外部指令処理部１１を動作させるための外部指令処理プログラム１０１と、モータ制御部１３を動作させるためのモータ制御プログラム１０２とが、記憶プログラムデータとするデータの形式であらかじめ記憶されている。図１では、外部指令処理プログラム１０１が外部指令処理プログラム格納領域１２１に格納され、モータ制御プログラム１０２がモータ制御プログラム格納領域１２２に格納されている一例を示している。
【００１９】
本実施の形態のモータ駆動装置１０は、さらに、書換データ入力端子１９とプログラム書換部１４とを備えたこと特徴としている。プログラム書換部１４は、プログラム記憶部１２に記憶された記憶プログラムデータを書き換えるために設けている。また、プログラム書換部１４によって書き換えるためのプログラム書換データ１０５を、外部から受け取るために、書換データ入力端子１９を設けている。図１では、上位コントローラ３０からプログラム書換データ１０５が供給され、書換データ入力端子１９を介して、そのプログラム書換データ１０５がプログラム書換部１４に供給されるような一例を示している。なお、プログラム書換データ１０５は、上位コントローラ３０ではなく、別途、プログラム書換データ１０５を生成する機器から供給されるような構成であってもよい。
【００２０】
また、本実施の形態では、特に、プログラム書換部１４は、上位コントローラ３０などから、書換データ入力端子１９を介して受け取ったプログラム書換データ１０５により、プログラム記憶部１２の中に記憶されている外部指令処理プログラム１０１の領域である外部指令処理プログラム格納領域１２１のみを書換えることを特徴としている。すなわち、例えば、外部指令処理部１１の動作を更新したり変更したりする必要が生じると、外部指令処理プログラム１０１の更新や改定をするため、プログラム書換部１４は、外部指令処理プログラム格納領域１２１の領域を、受け取ったプログラム書換データ１０５によって上書きする。あるいは、プログラム書換部１４が、外部指令処理プログラム格納領域１２１の領域を一旦消去し、書換データ入力端子１９を介して受け取ったプログラム書換データ１０５を、消去した領域に新たに書き込んだりするような構成としてもよい。なお、ここで、書換データ入力端子１９を介して受け取ったプログラム書換データ１０５は、新たに書き換えるための外部指令処理プログラム１０１となるデータ列である。また、上位コントローラ３０からプログラム書換部１４へのプログラム書換データ１０５の伝送において、書き換えるための外部指令処理プログラム１０１となるデータ列そのものを伝送してもよく、また、例えばシリアル通信や高速通信などの通信手法を利用して伝送してもよい。
【００２１】
また、詳細についてはさらに以下で説明するが、本実施の形態では、このような外部指令処理プログラム１０１への対応とは逆に、モータ制御プログラム１０２に関しては、書き換えができない構成としている。すなわち、モータ制御プログラム格納領域１２２は、書き込み不可の領域としている。
【００２２】
次に、以上のように構成された本実施の形態のモータ駆動装置１０のさらに詳細について説明する。
【００２３】
外部指令処理部１１は、マイコンやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を含むハードウェアで構成され、このマイコンなどが、プログラム記憶部１２に記憶された外部指令処理プログラム１０１に従って動作することで、外部指令処理部１１の各種の処理が実行される。例えば、外部指令処理部１１は、ハードウェアであるフリップフロップやシフトレジスタなどを利用して、上位コントローラ３０からの外部指令信号１０４を受信する。そして、外部指令処理部１１は、ソフトウェアである外部指令処理プログラム１０１に応じて、外部指令信号１０４を解析し、モータ制御部１３へ供給するためのモータ制御指令１０３を生成する。
【００２４】
外部指令信号１０４は、ＡＢ相のパルス型指令入力やＩ／Ｏ入力のようなＨ、Ｌ（Ｈｉｇｈ、Ｌｏｗ）の信号、ＲＳ２３２などの汎用シリアル通信、ＥｔｈｅｒＮｅｔ（登録商標）ベースの高速通信などで伝達される。また、その通信方式で定められたフォーマットに基づく形式で、外部指令信号１０４には、各種の指令の情報がデータとして格納されている。外部指令処理部１１は、このような外部指令信号１０４から、その信号に格納された指令に関するデータを抽出する処理や、その抽出したデータから、モータ制御部１３に供給するためのモータ制御指令１０３を生成するような処理を行っている。そして、このような処理が、外部指令処理プログラム１０１に従って実行される。
【００２５】
また、モータ制御指令１０３は、例えば、目標位置、位置指令、速度指令、トルク指令などモータ制御を行うために必要な指令を意味する。このモータ制御指令１０３のデータフォーマットを固定にしておけば、外部指令処理部１１で対応可能な外部指令が変化した場合（例えば、通信方式の変更やネットワーク種類の変更）でも、モータ制御部１３の処理は変更せずに対応可能となる。そして、通信方式の変更やネットワーク種類が変更されても、指令データを抽出する処理プログラムを含んだ外部指令処理プログラム１０１を書き換えるのみでよい。
【００２６】
また、モータ制御部１３も、マイコンやＤＳＰなどを含むハードウェアで構成され、このマイコンなどが、プログラム記憶部１２に記憶されたモータ制御プログラム１０２に従って動作することで、モータ２０を制御するための各種の処理が実行される。モータ制御部１３は、さらに、モータ２０を駆動するために必要なインバータなどを構成するＩＧＢＴ（Ｉｎｓｕｌａｔｅｄ  Ｇａｔｅ  Ｂｉｐｏｌａｒ  Ｔｒａｎｓｉｓｔｏｒｓ）やフォトカプラなどのハードウェアも備えている。モータ制御部１３は、モータ制御プログラム１０２に基づき、モータ制御指令１０３の通りにモータ２０を駆動するために、エンコーダ２１から、位置情報をフィードバックし、位置制御や速度制御、トルク制御、電流制御などを実行している。特に、モータ制御指令１０３のデータフォーマットは上述したように固定されている。このため、外部指令処理プログラム１０１は通信方式の変更に応じた変更が必要であるが、モータ制御プログラム１０２はそのような変更が必要でない。
【００２７】
次に、プログラム記憶部１２は、フラッシュメモリなどのプログラムを記憶するメモリであり、外部から書き換え可能なものである。すなわち、本実施の形態では、プログラム記憶部１２を、フラッシュメモリのように、電気的な処置のみで書き換え可能な不揮発性の半導体メモリとしている。このメモリには、外部指令処理プログラム１０１とモータ制御プログラム１０２とを領域を分離させた形で格納されている。モータ制御プログラム１０２は事前に書き込んでおき、プログラム書換部１４から書き換えできない構成としている。一方、外部指令処理プログラム１０１は事前に書き込んでおいてもよいが、そのあとでも、自由に書換え可能にしている。また、外部指令処理プログラム１０１はフラッシュメモリに格納するとともに、モータ制御プログラム１０２は書き換え不可のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納するような構成としてもよい。
【００２８】
次に、プログラム書換部１４も、マイコンやＤＳＰなどを含むとともに、上位コントローラ３０からのプログラム書換データ１０５を受信できるハードウェアなども備えている。上位コントローラ３０からのプログラム書換データ１０５の転送方法は、ＲＳ２３２などの汎用シリアル通信や、ＥｔｈｅｒＮｅｔ（登録商標）ベースの高速通信などの通信で行うのが一般的である。上述したように、このプログラム書換データ１０５は、新たに書き換えるための外部指令処理プログラム１０１に相当する。そして、プログラム書換部１４は、受信したプログラム書換データ１０５をプログラム書換データ１０６として出力し、プログラム記憶部１２内の外部指令処理プログラム領域１２１のみの書換えを実行する。図２は、このような各種外部指令信号１０４への対応例を示す図である。外部指令信号１０４がパルス指令の場合には、図２に示すように、ＡＢ相パルス型指令処理プログラムが外部指令処理プログラム領域１２１に格納される。また、同様に、外部指令信号１０４がＩ／Ｏ入力の場合には、Ｉ／Ｏ入力指令処理プログラムを、外部指令信号１０４がＥｔｈｅｒＮｅｔ（登録商標）ベース高速通信の場合には、ＥｔｈｅｒＮｅｔ（登録商標）ベース高速通信処理プログラムを、外部指令処理プログラム領域１２１に格納する。一方、いずれの場合でも、モータ制御プログラム格納領域１２２には、モータ制御プログラム１０２が格納されている。
【００２９】
なお、１つのマイコンやＤＳＰによって、外部指令処理部１１の処理、モータ制御部１３の処理およびプログラム書換部１４の処理を、並列に実行するような構成としてもよい。
【００３０】
本実施の形態では、モータ駆動装置１０内におけるプログラムを、外部指令処理部１１で実行する外部指令処理プログラム１０１と、モータ制御部１３で実行するモータ制御プログラム１０２との２つに分離している。そして、プログラム書換部１４にて、外部指令処理プログラム１０１のみを任意に書換え可能にしている。これにより、上位コントローラ３０からの外部指令信号１０４のタイプが変わった時でも、外部指令処理プログラム１０１のみを別途開発して本モータ駆動装置１０にプログラムを書き込むだけで、簡単に対応することができる。
【００３１】
また、通常のモータ駆動装置に必要な構成のまま実現が可能なため、新たなＣＰＵ基板やオプションボードなどの大幅なハードウェア追加も不要である。
【００３２】
さらに、モータ制御指令１０３のフォーマットを固定にし、外部指令処理部１１では、常にそのフォーマットに従いモータ制御部１３へ指令を出すようにしている。このような構成とすることで、図２に示すように、外部指令信号１０４のタイプが変更になった場合でも、モータ制御部１３のプログラムは一切変更することなく対応が可能になる。したがって、外部指令処理プログラム１０１のみを独立して開発すればよく、モータ制御プログラム１０２を外部委託先に公開することなく、対応が可能になり、モータ制御に関するノウハウの流出を防ぐことができる。
【００３３】
なお、外部指令処理部１１からモータ制御部１３へのモータ制御指令１０３の伝達方法は、共有ＲＡＭを介する方法や、シリアル通信などの汎用通信などを用いて行う方法などが考えられる。通常、マイコン内部にはＲＡＭが内蔵されており、その内蔵ＲＡＭの一部を本伝達に使用することも可能である。
【００３４】
（実施の形態２）
図３は、本発明の実施の形態２におけるモータ駆動装置４０を示すブロック図である。基本構成は実施の形態１と同じであるため、相違点を中心に説明する。
【００３５】
本実施の形態では、実施の形態１の構成に加え、外部指令処理プログラム１０１の異常を監視し、異常の検知を示す異常検出信号１０９を出力するプログラム監視部１５と、異常検知信号に基づき異常処理を行う異常検知部１６とをさらに備えている。さらに、外部指令処理部１１からは、外部指令処理プログラム１０１に基づき生成した第１の監視データ１０７を出力するようにし、モータ制御部１３からは、モータ制御プログラム１０２に基づき生成した第２の監視データ１０８を出力するように構成している。そして、プログラム監視部１５は、第１の監視データ１０７と第２の監視データ１０８から異常検知信号１０９を出力し、異常検知部１６は、異常検知信号１０９をうけ異常処理を行う。特に、プログラム監視部１５は、第１の監視データ１０７と第２の監視データ１０８とを比較することで、外部指令処理プログラム１０１の異常を監視している。
【００３６】
さらに、本実施の形態では、あらかじめ決めてある特定のコードを用いて、外部指令処理プログラム１０１が正常であるかどうかを判断している。具体的には、外部指令処理プログラム１０１に、あらかじめ指定した特定のコードを記憶させておく。このコードは、外部委託先ごとに個別のコードにしておき、外部委託先は割り当てられたコードを、開発した外部指令処理プログラム１０１に書き込んでおく。モータ制御プログラム１０２には、決められている外部委託先ごとの特定コードを全て書き込んでおく。外部指令処理部１１は、記憶されている特定コードを第１の監視データ１０７として出力する。モータ制御部１３も同様に記憶されている全ての特定コードを第２の監視データ１０８として出力する。プログラム監視部１５は、第２の監視データ１０８の特定コード一覧の中に、第１の監視データ１０７の特定コードが含まれていれば正常とみなし、含まれていなければ異常と判断し、異常検知信号１０９を出力する。異常検知部１６は、異常検知信号１０９が入力されると、エラー表示やモータ駆動禁止処理などの異常処理を行う。これにより、管理している外部委託先以外の業者が開発した外部指令処理プログラム１０１を使われた場合には、異常として検知することができ、信頼性の高いモータ駆動装置を提供することができる。
【００３７】
（実施の形態３）
図４は、本発明の実施の形態３におけるモータ駆動装置４１を示すブロック図である。基本構成は実施の形態２と同じであるため、相違点を中心に説明する。
【００３８】
本実施の形態でも、実施の形態２と同様に、外部指令処理プログラム１０１の異常を監視するプログラム監視部１５と、異常検知信号１０９に基づき異常処理を行う異常検知部１６とを備えている。
【００３９】
さらに、本実施の形態では、外部指令処理部１１が第１の監視データ１１７を出力し、モータ制御部１３が第２の監視データ１１８を出力するように構成している。このように、実施の形態２との相違点としては、監視データに使用するデータであり、本実施の形態では、チェックサム値を使用する。外部指令処理部１１では、外部指令処理プログラム１０１の全領域のチェックサム値を計算し、その値を第１の監視データ１１７として出力する。モータ制御部１３では、事前に計算された外部指令処理プログラム１０１の全領域のチェックサム値をモータ制御プログラム１０２に記憶させておき、そのチェックサム値を第２の監視データ１１８として出力する。プログラム監視部１５では、第１の監視データ１１７と第２の監視データ１１８とが一致した場合は”正常”、不一致の場合は”異常”と判断し、異常検知信号１０９を出力する。これにより、モータ制御部１３からみて想定外の外部指令処理プログラム１０１が書き込まれた場合に、異常として検出することができ、信頼性の高いモータ駆動装置を提供することができる。また、モータ制御プログラム１０２に、外部指令処理プログラム１０１のチェックサム値を書き込むというルールを持つことで、管理している外部委託先以外の業者が開発した外部指令処理プログラム１０１との組合せを排除することができる。
【００４０】
（実施の形態４）
図５は、本発明の実施の形態４におけるモータ駆動装置４２を示すブロック図である。基本構成は実施の形態２、３と同じであるため、相違点を中心に説明する。
【００４１】
本実施の形態でも、実施の形態２、３と同様に、外部指令処理プログラム１０１の異常を監視するプログラム監視部１５と、異常検知信号１０９に基づき異常処理を行う異常検知部１６とを備えている。
【００４２】
さらに、本実施の形態では、外部指令処理部１１が第１の監視データ１２７を出力し、モータ制御部１３が第２の監視データ１２８を出力するように構成している。このように、実施の形態２、３との相違点としては、監視データに使用するデータであり、本実施の形態では、処理時間を使用する。外部指令処理部１１では、自らの処理時間を常に測定しておき、一定時間毎の処理時間を第１の監視データ１２７として出力する。モータ制御部１３では、モータ制御として使用する処理時間から外部指令処理部１１で処理可能な処理時間の最大値を決めておき、その値を第２の監視データ１２８として出力する。プログラム監視部１５では、第１の監視データ１２７が第２の監視データ１２８より大きい場合は異常と判断し、異常検知信号１０９を出力する。これにより、モータ制御部１３からみて想定以上に処理時間を使っている外部指令処理プログラム１０１を異常として検出することで、処理時間不足による想定外の不具合動作を未然に防止することができ、信頼性の高いモータ駆動装置を提供することができる。
【００４３】
以上説明したように、本発明では、外部指令処理プログラムのみを変更可能な構成とすることにより、様々な外部指令タイプ（Ｉ／Ｏ、パルス指令、ネットワークなど）に容易に対応することができる。特に、外部委託先を用いた開発が低リスクで行えるメリットがある。
【００４４】
その反面、自由度が高く、管理していない外部委託先が独自に外部指令処理プログラムを開発してしまうことも想定される。そのため、実施の形態２〜４で示すように、あらかじめ決められたルールに従い、プログラムを監視する機能を追加することで、管理されていない外部指令処理プログラムを排除でき、より信頼性の高いモータ駆動装置を提供することが可能になる。
【００４５】
また、外部指令処理プログラムの部分を、別の役割のプログラムに置換えることでユーザによるカスタマイズを可能にすることもできる。プログラムの作り方次第で、例えば、装置状態にあわせてモータ制御のゲインを切り替える、あるいは、特殊な運転パターンでの動作を行うなど、装置毎の特性に合わせてより最適な状態を実現できる。
【産業上の利用可能性】
【００４６】
本発明のモータ駆動装置は、様々な外部指令への対応が必要なサーボモータ制御やその他のリニアモータ等の制御装置などにも有用である。
【符号の説明】
【００４７】
１０，４０，４１，４２    モータ駆動装置
１１    外部指令処理部
１２    プログラム記憶部
１３    モータ制御部
１４    プログラム書換部
１５    プログラム監視部
１６    異常検知部
１９    書換データ入力端子
２０    モータ
２１    エンコーダ
３０    上位コントローラ
１０１    外部指令処理プログラム
１０２    モータ制御プログラム
１０３    モータ制御指令
１０４    外部指令信号
１０５    プログラム転送データ
１０６    プログラム書換えデータ
１０７，１１７，１２７    第１の監視データ
１０８，１１８，１２８    第２の監視データ
１０９    異常検知信号
１２１    外部指令処理プログラム格納領域
１２２    モータ制御プログラム格納領域
【図１】
2015087540.tif 000003
【図２】
2015087540.tif 000004
【図３】
2015087540.tif 000005
【図４】
2015087540.tif 000006
【図５】
2015087540.tif 000007
【手続補正書】
【提出日】平成28年6月3日(2016.6.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部機器からの指令に基づきモータを制御しながらそのモータを駆動するモータ駆動装置に関する。
【背景技術】
【０００２】
モータ制御は、位置指令や速度指令に対し、モータの位置や速度を追従させるように制御を行う。このようなモータ制御において、さらなる性能向上のため、様々な制御方式が提案されている。
【０００３】
一方、モータ駆動装置においては、このようなモータ制御を行う処理以外にも、外部機器との接続に関する処理などが必要となる。例えば、外部機器とネットワークで接続する場合、近年のネットワーク高速化に伴い、処理すべきデータ量は増え、かつ複雑な動作指令にも対応が必要となる。このため、モータ駆動装置内でのネットワーク部の処理は大幅に増えてきている。さらに、市場には様々な種類のネットワークが存在する。このためモータメーカは、お客様の要望に合わせ、複数のネットワークに対応しなければならず、それぞれ個別に開発を進めていたのでは、膨大な工数を要するという課題がある。また、このネットワーク部の対応を外部業者に委託する場合においては、各モータメーカのノウハウの結集であるモータ制御部ごと外部業者に公開する必要があり、外部委託が難しいという課題もある。
【０００４】
そこで、従来、効率よくネットワークに対応する技術が提案されている。
【０００５】
例えば、モータ駆動装置内に、上位コントローラとの接続用にＣＰＵ基板を別途用意し、そこでシリアル通信データの解析処理を行う。そして、そこから、モータ制御を行うサーボ基板に別の通信方式でデータを送受信して、モータを制御している。こうすることにより、上記コントローラとのネットワーク種類が変わった場合でも、上位コントローラとの接続用のＣＰＵ基板の処理を変更するだけでよい。さらに、モータ制御部分に影響を与えないため、対応する工数は大幅に減らすことができる。また、外部委託する場合でも、モータ制御処理を公開する必要はなく、低リスクで開発を委託することができる（例えば、特許文献１参照）。
【０００６】
この応用として、市場では、標準的なモータ駆動装置に対し、外部のオプションボードという形で、外付けで付加できるような商品も出てきている。その外部のオプションボード側で、様々なネットワークに対応したモデルを用意することで、オプションボードを交換するだけで様々なネットワークに対応可能となる。これも、モータ制御部とネットワーク部が完全に分離されているため、モータメーカは自社のモータ制御に関するノウハウは守ったまま、外部委託等で効率的に様々なネットワークに対応することができる。
【０００７】
しかしながら、上述のような従来技術では、専用のＣＰＵ基板やオプションボードといった追加のハードウェアが必要になるため、サイズが大きく、かつコストも高くなるといった課題があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２６３６７８号公報
【発明の概要】
【０００９】
本発明のモータ駆動装置は、外部機器からの外部指令信号に基づきモータを制御しながらそのモータを駆動するモータ駆動装置である。本モータ駆動装置は、外部指令信号が供給され、外部指令処理プログラムに基づき外部指令信号からモータ制御指令を出力する外部指令処理部と、モータ制御指令が供給され、モータ制御プログラムに基づきモータ制御指令に従ってモータの動作を制御するモータ制御部とを備える。さらに、本モータ駆動装置は、外部指令処理プログラムとモータ制御プログラムとが、記憶プログラムデータとしてあらかじめ記憶されているプログラム記憶部と、プログラム記憶部に記憶された記憶プログラムデータを書き換えるプログラム書換部と、プログラム書換部によって書き換えるためのプログラム書換データを外部から受け取る書換データ入力端子とを備えている。そして、プログラム書換部は、書換データ入力端子から受け取ったプログラム書換データにより、プログラム記憶部に記憶されている外部指令処理プログラムのみを書換える構成である。
【００１０】
本発明のモータ駆動装置によれば、外部指令処理プログラムのみを変更可能にすることで、ハードウェアを追加することなく、外部指令信号が伝送される様々な通信方式に容易に対応することができる。さらに、外部指令処理部とモータ制御部とのそれぞれから監視データを出力し、プログラム監視部で異常状態を検知するような機能を追加することで、より信頼性の高いモータ駆動装置を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態１におけるモータ駆動装置を示すブロック図である。
【図２】図２は、本発明の実施の形態１における各種外部指令への対応例の図である。
【図３】図３は、本発明の実施の形態２におけるモータ駆動装置を示すブロック図である。
【図４】図４は、本発明の実施の形態３におけるモータ駆動装置を示すブロック図である。
【図５】図５は、本発明の実施の形態４におけるモータ駆動装置を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１３】
（実施の形態１）
図１は、本発明の実施の形態１におけるモータ駆動装置を示すブロック図である。図１では、本実施の形態のモータ駆動装置１０を含むモータ制御システムの構成例を示している。
【００１４】
図１において、モータ駆動装置１０は、外部に配置した機器である外部機器としての上位コントローラ３０によって制御されるとともに、その制御に従って、モータ２０をさらに制御しながらこのモータ２０が所定の位置や速度となるように駆動する。
【００１５】
モータ駆動装置１０は、図１に示すように、外部指令処理部１１と、プログラム記憶部１２と、モータ制御部１３と、プログラム書換部１４と、書換データ入力端子１９とを備えている。
【００１６】
このようなモータ駆動装置１０に対して、上位コントローラ３０からは、モータ駆動装置１０に対する各種の指令を示す外部指令信号１０４が通知される。この外部指令信号１０４が、外部指令処理部１１に供給される。外部指令処理部１１は、外部指令処理プログラム１０１に基づき、外部指令信号１０４から、モータ２０を制御するためのモータ２０に対する各種の指令であるモータ制御指令１０３を生成する。そして、外部指令処理部１１は、生成したモータ制御指令１０３をモータ制御部１３へと出力する。
【００１７】
モータ制御部１３は、モータ制御プログラム１０２に基づき、外部指令処理部１１から供給されたモータ制御指令１０３に従い、例えば、エンコーダ２１を利用した位置フィードバックを用いて、モータ２０での位置や速度などを制御する。ここで、モータ２０は、例えば、巻回した巻線を有する固定子と永久磁石を有する可動子とで構成されており、モータ駆動装置１０が巻線を通電駆動することで、可動子が回転したり、リニアモータの場合には可動子が移動したりする。また、エンコーダ２１は、このようなモータ２０に配置された位置検出器であり、可動子の位置を検出する。エンコーダ２１で検出された位置の情報は、位置検出信号としてモータ制御部１３に通知される。例えば、モータ制御部１３が行う制御の一例として、位置制御を行う場合、モータ制御部１３は、エンコーダ２１で検出された位置が、外部指令信号１０４から生成されたモータ制御指令１０３における位置指令による位置と等しくなるように、位置フィードバックの制御を行う。
【００１８】
また、プログラム記憶部１２には、外部指令処理部１１を動作させるための外部指令処理プログラム１０１と、モータ制御部１３を動作させるためのモータ制御プログラム１０２とが、記憶プログラムデータとするデータの形式であらかじめ記憶されている。図１では、外部指令処理プログラム１０１が外部指令処理プログラム格納領域１２１に格納され、モータ制御プログラム１０２がモータ制御プログラム格納領域１２２に格納されている一例を示している。
【００１９】
本実施の形態のモータ駆動装置１０は、さらに、書換データ入力端子１９とプログラム書換部１４とを備えたこと特徴としている。プログラム書換部１４は、プログラム記憶部１２に記憶された記憶プログラムデータを書き換えるために設けている。また、プログラム書換部１４によって書き換えるためのプログラム書換データ１０５を、外部から受け取るために、書換データ入力端子１９を設けている。図１では、上位コントローラ３０からプログラム書換データ１０５が供給され、書換データ入力端子１９を介して、そのプログラム書換データ１０５がプログラム書換部１４に供給されるような一例を示している。なお、プログラム書換データ１０５は、上位コントローラ３０ではなく、別途、プログラム書換データ１０５を生成する機器から供給されるような構成であってもよい。
【００２０】
また、本実施の形態では、特に、プログラム書換部１４は、上位コントローラ３０などから、書換データ入力端子１９を介して受け取ったプログラム書換データ１０５により、プログラム記憶部１２の中に記憶されている外部指令処理プログラム１０１の領域である外部指令処理プログラム格納領域１２１のみを書換えることを特徴としている。すなわち、例えば、外部指令処理部１１の動作を更新したり変更したりする必要が生じると、外部指令処理プログラム１０１の更新や改定をするため、プログラム書換部１４は、外部指令処理プログラム格納領域１２１の領域を、受け取ったプログラム書換データ１０５によって上書きする。あるいは、プログラム書換部１４が、外部指令処理プログラム格納領域１２１の領域を一旦消去し、書換データ入力端子１９を介して受け取ったプログラム書換データ１０５を、消去した領域に新たに書き込んだりするような構成としてもよい。なお、ここで、書換データ入力端子１９を介して受け取ったプログラム書換データ１０５は、新たに書き換えるための外部指令処理プログラム１０１となるデータ列である。また、上位コントローラ３０からプログラム書換部１４へのプログラム書換データ１０５の伝送において、書き換えるための外部指令処理プログラム１０１となるデータ列そのものを伝送してもよく、また、例えばシリアル通信や高速通信などの通信手法を利用して伝送してもよい。
【００２１】
また、詳細についてはさらに以下で説明するが、本実施の形態では、このような外部指令処理プログラム１０１への対応とは逆に、モータ制御プログラム１０２に関しては、書き換えができない構成としている。すなわち、モータ制御プログラム格納領域１２２は、書き込み不可の領域としている。
【００２２】
次に、以上のように構成された本実施の形態のモータ駆動装置１０のさらに詳細について説明する。
【００２３】
外部指令処理部１１は、マイコンやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を含むハードウェアで構成され、このマイコンなどが、プログラム記憶部１２に記憶された外部指令処理プログラム１０１に従って動作することで、外部指令処理部１１の各種の処理が実行される。例えば、外部指令処理部１１は、ハードウェアであるフリップフロップやシフトレジスタなどを利用して、上位コントローラ３０からの外部指令信号１０４を受信する。そして、外部指令処理部１１は、ソフトウェアである外部指令処理プログラム１０１に応じて、外部指令信号１０４を解析し、モータ制御部１３へ供給するためのモータ制御指令１０３を生成する。
【００２４】
外部指令信号１０４は、ＡＢ相のパルス型指令入力やＩ／Ｏ入力のようなＨ、Ｌ（Ｈｉｇｈ、Ｌｏｗ）の信号、ＲＳ２３２などの汎用シリアル通信、ＥｔｈｅｒＮｅｔ（登録商標）ベースの高速通信などで伝達される。また、その通信方式で定められたフォーマットに基づく形式で、外部指令信号１０４には、各種の指令の情報がデータとして格納されている。外部指令処理部１１は、このような外部指令信号１０４から、その信号に格納された指令に関するデータを抽出する処理や、その抽出したデータから、モータ制御部１３に供給するためのモータ制御指令１０３を生成するような処理を行っている。そして、このような処理が、外部指令処理プログラム１０１に従って実行される。
【００２５】
また、モータ制御指令１０３は、例えば、目標位置、位置指令、速度指令、トルク指令などモータ制御を行うために必要な指令を意味する。このモータ制御指令１０３のデータフォーマットを固定にしておけば、外部指令処理部１１で対応可能な外部指令が変化した場合（例えば、通信方式の変更やネットワーク種類の変更）でも、モータ制御部１３の処理は変更せずに対応可能となる。そして、通信方式の変更やネットワーク種類が変更されても、指令データを抽出する処理プログラムを含んだ外部指令処理プログラム１０１を書き換えるのみでよい。
【００２６】
また、モータ制御部１３も、マイコンやＤＳＰなどを含むハードウェアで構成され、このマイコンなどが、プログラム記憶部１２に記憶されたモータ制御プログラム１０２に従って動作することで、モータ２０を制御するための各種の処理が実行される。モータ制御部１３は、さらに、モータ２０を駆動するために必要なインバータなどを構成するＩＧＢＴ（Ｉｎｓｕｌａｔｅｄ  Ｇａｔｅ  Ｂｉｐｏｌａｒ  Ｔｒａｎｓｉｓｔｏｒｓ）やフォトカプラなどのハードウェアも備えている。モータ制御部１３は、モータ制御プログラム１０２に基づき、モータ制御指令１０３の通りにモータ２０を駆動するために、エンコーダ２１から、位置情報をフィードバックし、位置制御や速度制御、トルク制御、電流制御などを実行している。特に、モータ制御指令１０３のデータフォーマットは上述したように固定されている。このため、外部指令処理プログラム１０１は通信方式の変更に応じた変更が必要であるが、モータ制御プログラム１０２はそのような変更が必要でない。
【００２７】
次に、プログラム記憶部１２は、フラッシュメモリなどのプログラムを記憶するメモリであり、外部から書き換え可能なものである。すなわち、本実施の形態では、プログラム記憶部１２を、フラッシュメモリのように、電気的な処置のみで書き換え可能な不揮発性の半導体メモリとしている。このメモリには、外部指令処理プログラム１０１とモータ制御プログラム１０２とを領域を分離させた形で格納されている。モータ制御プログラム１０２は事前に書き込んでおき、プログラム書換部１４から書き換えできない構成としている。一方、外部指令処理プログラム１０１は事前に書き込んでおいてもよいが、そのあとでも、自由に書換え可能にしている。また、外部指令処理プログラム１０１はフラッシュメモリに格納するとともに、モータ制御プログラム１０２は書き換え不可のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納するような構成としてもよい。
【００２８】
次に、プログラム書換部１４も、マイコンやＤＳＰなどを含むとともに、上位コントローラ３０からのプログラム書換データ１０５を受信できるハードウェアなども備えている。上位コントローラ３０からのプログラム書換データ１０５の転送方法は、ＲＳ２３２などの汎用シリアル通信や、ＥｔｈｅｒＮｅｔ（登録商標）ベースの高速通信などの通信で行うのが一般的である。上述したように、このプログラム書換データ１０５は、新たに書き換えるための外部指令処理プログラム１０１に相当する。そして、プログラム書換部１４は、受信したプログラム書換データ１０５をプログラム書換データ１０６として出力し、プログラム記憶部１２内の外部指令処理プログラム領域１２１のみの書換えを実行する。図２は、このような各種外部指令信号１０４への対応例を示す図である。外部指令信号１０４がパルス指令の場合には、図２に示すように、ＡＢ相パルス型指令処理プログラムが外部指令処理プログラム領域１２１に格納される。また、同様に、外部指令信号１０４がＩ／Ｏ入力の場合には、Ｉ／Ｏ入力指令処理プログラムを、外部指令信号１０４がＥｔｈｅｒＮｅｔ（登録商標）ベース高速通信の場合には、ＥｔｈｅｒＮｅｔ（登録商標）ベース高速通信処理プログラムを、外部指令処理プログラム領域１２１に格納する。一方、いずれの場合でも、モータ制御プログラム格納領域１２２には、モータ制御プログラム１０２が格納されている。
【００２９】
なお、１つのマイコンやＤＳＰによって、外部指令処理部１１の処理、モータ制御部１３の処理およびプログラム書換部１４の処理を、並列に実行するような構成としてもよい。
【００３０】
本実施の形態では、モータ駆動装置１０内におけるプログラムを、外部指令処理部１１で実行する外部指令処理プログラム１０１と、モータ制御部１３で実行するモータ制御プログラム１０２との２つに分離している。そして、プログラム書換部１４にて、外部指令処理プログラム１０１のみを任意に書換え可能にしている。これにより、上位コントローラ３０からの外部指令信号１０４のタイプが変わった時でも、外部指令処理プログラム１０１のみを別途開発して本モータ駆動装置１０にプログラムを書き込むだけで、簡単に対応することができる。
【００３１】
また、通常のモータ駆動装置に必要な構成のまま実現が可能なため、新たなＣＰＵ基板やオプションボードなどの大幅なハードウェア追加も不要である。
【００３２】
さらに、モータ制御指令１０３のフォーマットを固定にし、外部指令処理部１１では、常にそのフォーマットに従いモータ制御部１３へ指令を出すようにしている。このような構成とすることで、図２に示すように、外部指令信号１０４のタイプが変更になった場合でも、モータ制御部１３のプログラムは一切変更することなく対応が可能になる。したがって、外部指令処理プログラム１０１のみを独立して開発すればよく、モータ制御プログラム１０２を外部委託先に公開することなく、対応が可能になり、モータ制御に関するノウハウの流出を防ぐことができる。
【００３３】
なお、外部指令処理部１１からモータ制御部１３へのモータ制御指令１０３の伝達方法は、共有ＲＡＭを介する方法や、シリアル通信などの汎用通信などを用いて行う方法などが考えられる。通常、マイコン内部にはＲＡＭが内蔵されており、その内蔵ＲＡＭの一部を本伝達に使用することも可能である。
【００３４】
（実施の形態２）
図３は、本発明の実施の形態２におけるモータ駆動装置４０を示すブロック図である。基本構成は実施の形態１と同じであるため、相違点を中心に説明する。
【００３５】
本実施の形態では、実施の形態１の構成に加え、外部指令処理プログラム１０１の異常を監視し、異常の検知を示す異常検出信号１０９を出力するプログラム監視部１５と、異常検知信号に基づき異常処理を行う異常検知部１６とをさらに備えている。さらに、外部指令処理部１１からは、外部指令処理プログラム１０１に基づき生成した第１の監視データ１０７を出力するようにし、モータ制御部１３からは、モータ制御プログラム１０２に基づき生成した第２の監視データ１０８を出力するように構成している。そして、プログラム監視部１５は、第１の監視データ１０７と第２の監視データ１０８から異常検知信号１０９を出力し、異常検知部１６は、異常検知信号１０９をうけ異常処理を行う。特に、プログラム監視部１５は、第１の監視データ１０７と第２の監視データ１０８とを比較することで、外部指令処理プログラム１０１の異常を監視している。
【００３６】
さらに、本実施の形態では、あらかじめ決めてある特定のコードを用いて、外部指令処理プログラム１０１が正常であるかどうかを判断している。具体的には、外部指令処理プログラム１０１に、あらかじめ指定した特定のコードを記憶させておく。このコードは、外部委託先ごとに個別のコードにしておき、外部委託先は割り当てられたコードを、開発した外部指令処理プログラム１０１に書き込んでおく。モータ制御プログラム１０２には、決められている外部委託先ごとの特定コードを全て書き込んでおく。外部指令処理部１１は、記憶されている特定コードを第１の監視データ１０７として出力する。モータ制御部１３も同様に記憶されている全ての特定コードを第２の監視データ１０８として出力する。プログラム監視部１５は、第２の監視データ１０８の特定コード一覧の中に、第１の監視データ１０７の特定コードが含まれていれば正常とみなし、含まれていなければ異常と判断し、異常検知信号１０９を出力する。異常検知部１６は、異常検知信号１０９が入力されると、エラー表示やモータ駆動禁止処理などの異常処理を行う。これにより、管理している外部委託先以外の業者が開発した外部指令処理プログラム１０１を使われた場合には、異常として検知することができ、信頼性の高いモータ駆動装置を提供することができる。
【００３７】
（実施の形態３）
図４は、本発明の実施の形態３におけるモータ駆動装置４１を示すブロック図である。基本構成は実施の形態２と同じであるため、相違点を中心に説明する。
【００３８】
本実施の形態でも、実施の形態２と同様に、外部指令処理プログラム１０１の異常を監視するプログラム監視部１５と、異常検知信号１０９に基づき異常処理を行う異常検知部１６とを備えている。
【００３９】
さらに、本実施の形態では、外部指令処理部１１が第１の監視データ１１７を出力し、モータ制御部１３が第２の監視データ１１８を出力するように構成している。このように、実施の形態２との相違点としては、監視データに使用するデータであり、本実施の形態では、チェックサム値を使用する。外部指令処理部１１では、外部指令処理プログラム１０１の全領域のチェックサム値を計算し、その値を第１の監視データ１１７として出力する。モータ制御部１３では、事前に計算された外部指令処理プログラム１０１の全領域のチェックサム値をモータ制御プログラム１０２に記憶させておき、そのチェックサム値を第２の監視データ１１８として出力する。プログラム監視部１５では、第１の監視データ１１７と第２の監視データ１１８とが一致した場合は”正常”、不一致の場合は”異常”と判断し、異常検知信号１０９を出力する。これにより、モータ制御部１３からみて想定外の外部指令処理プログラム１０１が書き込まれた場合に、異常として検出することができ、信頼性の高いモータ駆動装置を提供することができる。また、モータ制御プログラム１０２に、外部指令処理プログラム１０１のチェックサム値を書き込むというルールを持つことで、管理している外部委託先以外の業者が開発した外部指令処理プログラム１０１との組合せを排除することができる。
【００４０】
（実施の形態４）
図５は、本発明の実施の形態４におけるモータ駆動装置４２を示すブロック図である。基本構成は実施の形態２、３と同じであるため、相違点を中心に説明する。
【００４１】
本実施の形態でも、実施の形態２、３と同様に、外部指令処理プログラム１０１の異常を監視するプログラム監視部１５と、異常検知信号１０９に基づき異常処理を行う異常検知部１６とを備えている。
【００４２】
さらに、本実施の形態では、外部指令処理部１１が第１の監視データ１２７を出力し、モータ制御部１３が第２の監視データ１２８を出力するように構成している。このように、実施の形態２、３との相違点としては、監視データに使用するデータであり、本実施の形態では、処理時間を使用する。外部指令処理部１１では、自らの処理時間を常に測定しておき、一定時間毎の処理時間を第１の監視データ１２７として出力する。モータ制御部１３では、モータ制御として使用する処理時間から外部指令処理部１１で処理可能な処理時間の最大値を決めておき、その値を第２の監視データ１２８として出力する。プログラム監視部１５では、第１の監視データ１２７が第２の監視データ１２８より大きい場合は異常と判断し、異常検知信号１０９を出力する。これにより、モータ制御部１３からみて想定以上に処理時間を使っている外部指令処理プログラム１０１を異常として検出することで、処理時間不足による想定外の不具合動作を未然に防止することができ、信頼性の高いモータ駆動装置を提供することができる。
【００４３】
以上説明したように、本発明では、外部指令処理プログラムのみを変更可能な構成とすることにより、様々な外部指令タイプ（Ｉ／Ｏ、パルス指令、ネットワークなど）に容易に対応することができる。特に、外部委託先を用いた開発が低リスクで行えるメリットがある。
【００４４】
その反面、自由度が高く、管理していない外部委託先が独自に外部指令処理プログラムを開発してしまうことも想定される。そのため、実施の形態２〜４で示すように、あらかじめ決められたルールに従い、プログラムを監視する機能を追加することで、管理されていない外部指令処理プログラムを排除でき、より信頼性の高いモータ駆動装置を提供することが可能になる。
【００４５】
また、外部指令処理プログラムの部分を、別の役割のプログラムに置換えることでユーザによるカスタマイズを可能にすることもできる。プログラムの作り方次第で、例えば、装置状態にあわせてモータ制御のゲインを切り替える、あるいは、特殊な運転パターンでの動作を行うなど、装置毎の特性に合わせてより最適な状態を実現できる。
【産業上の利用可能性】
【００４６】
本発明のモータ駆動装置は、様々な外部指令への対応が必要なサーボモータ制御やその他のリニアモータ等の制御装置などにも有用である。
【符号の説明】
【００４７】
１０，４０，４１，４２    モータ駆動装置
１１    外部指令処理部
１２    プログラム記憶部
１３    モータ制御部
１４    プログラム書換部
１５    プログラム監視部
１６    異常検知部
１９    書換データ入力端子
２０    モータ
２１    エンコーダ
３０    上位コントローラ
１０１    外部指令処理プログラム
１０２    モータ制御プログラム
１０３    モータ制御指令
１０４    外部指令信号
１０５    プログラム転送データ
１０６    プログラム書換えデータ
１０７，１１７，１２７    第１の監視データ
１０８，１１８，１２８    第２の監視データ
１０９    異常検知信号
１２１    外部指令処理プログラム格納領域
１２２    モータ制御プログラム格納領域
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部機器からの外部指令信号に基づきモータを制御しながら前記モータを駆動するモータ駆動装置であって、
前記外部指令信号が供給され、外部指令処理プログラムに基づき、前記外部指令信号からモータ制御指令を出力する外部指令処理部と、
前記モータ制御指令が供給され、モータ制御プログラムに基づき、前記モータ制御指令に従って前記モータの動作を制御するモータ制御部と、
前記外部指令処理プログラムと前記モータ制御プログラムとが、記憶プログラムデータとしてあらかじめ記憶されているプログラム記憶部と、
前記プログラム記憶部に記憶された前記記憶プログラムデータを書き換えるプログラム書換部と、
前記プログラム書換部によって書き換えるためのプログラム書換データを、外部から受け取る書換データ入力端子と、を備え、
前記プログラム書換部は、前記書換データ入力端子から受け取った前記プログラム書換データにより、前記プログラム記憶部に記憶されている前記外部指令処理プログラムのみを書き換えることを特徴とするモータ駆動装置。
【請求項２】
前記外部指令処理プログラムの異常を監視し、異常の検知を示す異常検出信号を出力するプログラム監視部と、
前記異常検知信号に基づき異常処理を行う異常検知部とをさらに備え、
前記外部指令処理部は、前記外部指令処理プログラムに基づき生成した第１の監視データを出力し、
前記モータ制御部は、前記モータ制御プログラムに基づき生成した第２の監視データを出力し、
前記プログラム監視部は、前記第１の監視データと前記第２の監視データを比較することで、前記外部指令処理プログラムの異常を監視することを特徴とする請求項１に記載のモータ駆動装置。
【請求項３】
前記第１の監視データは、あらかじめ決めておいて、前記外部指令処理プログラムに設定された特定コードであり、
前記第２の監視データは、あらかじめ決めておいて、前記モータ制御プログラムに設定された許容する特定コードの一覧であり、前記プログラム監視部は、前記第２の監視データの特定コードの一覧の中に、前記第１の監視データである特定コードが含まれていない場合に、異常と判断し前記異常検知信号を出力することを特徴とする請求項２に記載のモータ駆動装置。
【請求項４】
前記第１の監視データは、前記外部指令処理部が計算した前記外部指令処理プログラム全体のチェックサム値であり、前記第２の監視データは、事前に計算し前記モータ制御プログラム内に記憶させておいた前記外部指令処理プログラム全体のチェックサム値であり、前記プログラム監視部は、前記第１の監視データと前記第２の監視データが一致しない場合に、異常と判断し前記異常検知信号を出力することを特徴とする請求項２に記載のモータ駆動装置。
【請求項５】
前記第１の監視データは、前記外部指令処理部が一定時間ごとに測定した前記外部指令処理部の処理時間を示し、前記第２の監視データは、許容可能な前記処理時間の最大値を示し、前記プログラム監視部は、前記第１の監視データが前記第２の監視データより大きい場合に、異常と判断し前記異常検知信号を出力することを特徴とする請求項２に記載のモータ駆動装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2015087540.tif 000008
【図２】
2015087540.tif 000009
【図３】
2015087540.tif 000010
【図４】
2015087540.tif 000011
【図５】
2015087540.tif 000012
【国際調査報告】
2015087540.tif 000013
2015087540.tif 000014
2015087540.tif 000015
2015087540.tif 000016