(57)【要約】【課題】モータ制御システムを簡易かつ安価に実現するとともに、搭載メモリが小容量のモータ駆動装置でもリアルタイム性を保証しつつ複数のモータの同期制御を可能とする。【解決手段】モータ駆動装置における利用可能メモリ容量とモータの制御命令実行周期を取得し、利用可能メモリ容量をモータ駆動装置に送信する制御命令のデータサイズで除算することにより、モータ駆動装置における保存可能制御命令数を算出し、その保存可能制御命令数とモータの制御命令実行周期を乗算してモータ駆動装置に対する制御命令送信周期を決定し、その制御命令送信周期に基づき、保存可能制御命令数分の制御命令をモータ駆動装置に出力する。【選択図】  図５
2015204724.tif 000002
【特許請求の範囲】
【請求項１】
複数のモータ駆動装置をネットワークを介して制御する制御装置におけるモータ駆動装置の制御方法であって、
前記モータ駆動装置における利用可能メモリ容量と該モータ駆動装置によるモータの制御命令実行周期を取得し、
取得した前記利用可能メモリ容量および前記モータの制御命令実行周期を記憶部に記憶し、
前記記憶部に記憶された前記利用可能メモリ容量を前記モータ駆動装置に送信する制御命令のデータサイズで除算することにより、前記モータ駆動装置における保存可能制御命令数を算出し、
算出した前記モータ駆動装置における保存可能制御命令数と、前記記憶部に記憶された前記モータの制御命令実行周期とを乗算することにより、前記モータ駆動装置に対する制御命令送信周期を決定し、
決定した前記制御命令送信周期に基づき、前記保存可能制御命令数分の制御命令を前記ネットワークを介して前記モータ駆動装置に送信する、
ことを特徴とするモータ駆動装置の制御方法。
【請求項２】
前記制御命令は、該制御命令を実行する時刻情報が付加されている、
ことを特徴とする請求項１に記載のモータ駆動装置の制御方法。
【請求項３】
前記制御装置により、
前記保存可能制御命令数と、１つの制御命令のデータサイズと、前記制御装置と接続されているモータ駆動装置数から、ネットワーク上の制御命令送信用通信帯域を算出し、
算出した前記ネットワーク上の前記制御命令送信用通信帯域を使って、前記保存可能制御命令数分の前記制御命令を前記モータ駆動装置に送信する、
ことを特徴とする請求項２に記載のモータ駆動装置の制御方法。
【請求項４】
前記制御装置により、
算出した前記制御命令送信用通信帯域が所定の利用可能通信帯域より狭い場合に、決定した前記制御命令送信周期に基づき、算出した前記ネットワーク上の前記制御命令送信用通信帯域を使って、前記保存可能制御命令数分の制御命令を前記モータ駆動装置に送信する、
ことを特徴とする請求項３に記載のモータ駆動装置の制御方法。
【請求項５】
前記制御装置により、
算出した前記制御命令送信用通信帯域が所定の利用可能通信帯域より広い場合に、前記保存可能制御命令数を変更し、該変更した保存可能制御命令数に基づき、前記ネットワーク上の前記制御命令送信用通信帯域を再計算する、
ことを特徴とする請求項３に記載のモータ駆動装置の制御方法。
【請求項６】
前記制御装置により、
モータ駆動装置から前記制御命令の送信に対する応答がない場合、該応答がないモータ駆動装置以外の各モータ駆動装置に対して前記ネットワークを介して緊急停止メッセージを送信する、
ことを特徴とする請求項１乃至請求項５の何れか1項に記載のモータ駆動装置の制御方法。
【請求項７】
前記制御装置により、
前記モータ駆動装置からモータ制御結果を前記ネットワークを介して受信し、表示部に表示する、
ことを特徴とする請求項６に記載のモータ駆動装置の制御方法。
【請求項８】
前記制御装置により、
任意の前記モータ駆動装置から、前記モータ制御結果を受信せず、緊急停止メッセージを受信した場合、該緊急停止メッセージ送信元のモータ駆動装置以外の各モータ駆動装置に対して前記ネットワークを介して緊急停止メッセージを送信する、
ことを特徴とする請求項７に記載のモータ駆動装置の制御方法。
【請求項９】
前記制御装置により、
任意の前記モータ駆動装置から、前記モータ制御結果と前記緊急停止メッセージを受信しない場合、ネットワークの状態を確認する。
ことを特徴とする請求項８に記載のモータ駆動装置の制御方法。
【請求項１０】
複数のモータ駆動装置と、該複数のモータ駆動装置をネットワークを介して制御する制御装置を含むモータ制御システムであって、
前記制御装置は、
前記モータ駆動装置における利用可能メモリ容量と該モータ駆動装置によるモータの制御命令実行周期を取得する手段と、
取得した前記利用可能メモリ容量および前記モータの制御命令実行周期を記憶部に記憶する手段と、
前記記憶部に記憶された前記利用可能メモリ容量を前記モータ駆動装置に送信する制御命令のデータサイズで除算することにより、前記モータ駆動装置における保存可能制御命令数を算出する手段と、
算出した前記モータ駆動装置における保存可能制御命令数と、前記記憶部に記憶された前記モータの制御命令実行周期とを乗算することにより、前記モータ駆動装置に対する制御命令送信周期を決定する手段と、
決定した前記制御命令送信周期に基づき、前記保存可能制御命令数分の制御命令を前記ネットワークを介して前記モータ駆動装置に送信する手段を有し、
前記モータ駆動装置は、
前記制御装置から前記制御命令を受信する手段と、
受信した前記制御命令に基づいてモータを制御する手段を有する、
ことを特徴とするモータ制御システム。
【請求項１１】
前記モータ駆動装置は、前記モータの状態情報を取得し、該モータが正常に動作していない場合、該モータ制御システムに異常が発生したと判断して、緊急停止メッセージを前記制御装置に前記ネットワークを介して送信する手段を有する
ことを特徴とする請求項１０に記載のモータ制御システム。
【請求項１２】
コンピュータに、
モータ駆動装置における利用可能メモリ容量と該モータ駆動装置によるモータの制御命令実行周期を取得する処理と、
取得した前記利用可能メモリ容量および前記モータの制御命令実行周期を記憶部に記憶する処理と、
前記記憶部に記憶された前記利用可能メモリ容量を前記モータ駆動装置に送信する制御命令のデータサイズで除算することにより、前記モータ駆動装置における保存可能制御命令数を算出する処理と、
算出した前記モータ駆動装置における保存可能制御命令数と、前記記憶部に記憶された前記モータの制御命令実行周期とを乗算することにより、前記モータ駆動装置に対する制御命令送信周期を決定する処理と、
決定した前記制御命令送信周期に基づき、前記保存可能制御命令数分の制御命令を前記モータ駆動装置に出力する処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ、モータ駆動装置およびモータ駆動装置を制御する上位装置から構成されるモータ制御システムに関する。
【背景技術】
【０００２】
情報分野におけるイーサネット（登録商標）通信技術の発達により、ＦＡ（Factory Automation）分野においても、イーサネット（登録商標）通信技術が深く浸透しつつある。例えば、従来のモータ制御システムでは、モータ駆動装置と、モータ駆動装置を制御する上位システムとの間をパラレル接続し、複数のデータ信号をパラレルに送受信する通信方式を採用していたが、昨今はイーサネット（登録商標）通信方式を採用することにより、省配線化や高信頼化を図ることが可能となった。
【０００３】
一方で、従来、リアルタイム性能が要求されるモータ制御システムでは、モータ駆動装置にモータ制御用の制御命令を送信する上位システムとして、汎用のＰＣ（Personal Computer）ではなく、ＰＬＣ（Programmable Logic Controller）を利用することが一般的である。これは、汎用のＰＣでは、モータの制御に必要な周期で制御命令をモータ駆動装置に送信することが難しいからである。例えば、一般的なモータ駆動装置がモータを制御する周期は数ミリ周期であるのに対し、汎用のＰＣは数１０ミリ〜数１００ミリ周期でしか制御命令を送信できない。しかし、ＰＬＣ上で動作するアプリケーションを開発するには、プログラミング言語の一種であるラダーロジックを利用する必要があるため、汎用のＰＣ上で動作するアプリケーションの開発と比べ、多大な工数を要しシステムが高価となる問題がある。したがって、システム構築の容易性とシステム構築に要するコストの観点から、汎用のＰＣを用いてモータ制御システムを実現することが望まれている。
【０００４】
このようなリアルタイム性能が要求されるモータ制御システムに関する技術として、
上位システムから指令情報を受信し、受信した指令情報によりモータを駆動するモータ駆動装置において、上位システムが持つ時刻情報を非同期で受信し、受信した時刻情報によりモータ駆動装置内部の時刻を同期させる技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２３７１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、ベルトコンベアのように、複数のモータの同期制御を長時間行うモータ制御システムが存在する。上述のように、従来、システム構築の容易性とシステム構築に要するコストの観点から、汎用のＰＣを用いてモータ制御システムを実現することが望まれているが、従来、汎用のＰＣのリアルタイム性能の観点からその実現が難しかった。
【０００７】
一方で、特許文献１に記載の技術を用いることで、上位システムのリアルタイム性能を意識せずに、上位システムから一連のモータ動作に必要な制御命令を一括で送信する方法が考えられる。そしてこの場合、一括で受信した一連のモータ動作に必要な制御命令を記憶するためのメモリ容量として、１００ｋバイト〜数１０Ｍバイト必要となる。
【０００８】
しかしながら、コストの観点から、一般的なモータ駆動装置には小容量のメモリしか搭載できないため、ベルトコンベアのように複数のモータの同期制御を行うようなモータ制御システムにおいては、上位システムから制御命令をモータ駆動装置に一括で送信するように構成することは難しい。
【０００９】
本発明は、このような事情に鑑みてなされたものであり、モータ制御システムを簡易かつ安価に実現するとともに、搭載メモリが小容量のモータ駆動装置でもリアルタイム性を保証しつつ複数のモータの同期制御を可能とするモータ制御方法、モータ制御システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な一例は次の通りである。すなわち、本発明は、複数のモータ駆動装置をネットワークを介して制御する制御装置におけるモータ駆動装置の制御方法である。前記制御装置は、前記モータ駆動装置における利用可能メモリ容量と該モータ駆動装置によるモータの制御命令実行周期を取得し、取得した前記利用可能メモリ容量および前記モータの制御命令実行周期を記憶部に記憶し、前記記憶部に記憶された前記利用可能メモリ容量を前記モータ駆動装置に送信する制御命令のデータサイズで除算することにより、前記モータ駆動装置における保存可能制御命令数を算出し、算出した前記モータ駆動装置における保存可能制御命令数と、前記記憶部に記憶された前記モータの制御命令実行周期とを乗算することにより、前記モータ駆動装置に対する制御命令送信周期を決定し、決定した前記制御命令送信周期に基づき、前記保存可能制御命令数分の制御命令を前記ネットワークを介して前記モータ駆動装置に送信することを特徴とする。
【発明の効果】
【００１１】
モータ制御システムを簡易かつ安価に実現できるとともに、搭載メモリが小容量のモータ駆動装置でもリアルタイム性を保証しつつ複数のモータの同期制御が可能となる。
【図面の簡単な説明】
【００１２】
【図１】モータ制御システム１の全体構成例を示す図である。
【図２（ａ）】制御装置１００の構成例を示す図である。
【図２（ｂ）】モータ駆動装置１２０の構成例を示す図である。
【図３】モータ制御システム１の動作概要を示すシーケンス図である。
【図４】モータ１３０の回転数の動作パターン例を示す図である。
【図５】制御装置１００における、制御命令を生成する詳細処理を示すフロー図である。
【図６】制御装置１００からモータ駆動装置１２０に送信する制御命令の構成例を示す図である。
【図７】制御装置１００における、モータ駆動装置１２０に制御命令を送信する処理、およびモータ駆動装置１２０から制御結果メッセージを受信する処理を示すフロー図である。
【図８】モータ駆動装置１２０における、モータ１３０に制御命令を送信する処理、およびモータ１３０の状態を制御装置１００に送信する処理を示すフロー図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、本発明の実施形態を説明する図において、同一部には同一符号を付し、その繰り返しの説明は、省略することにする。
【００１４】
図１は、本発明の実施形態に係るモータ制御システム１の全体構成例を示す図である。モータ制御システム１において、モータ制御システム１における上位装置である制御装置１００は複数のモータ駆動装置１２０とＨＵＢ１４０等を介して有線ＬＡＮ（Local Area Network）等のネットワークで接続されている。尚、制御装置１００と各モータ駆動装置１２０とをシリアルケーブルや、無線ＬＡＮで接続しても良い。各モータ駆動装置１２０にはモータ１３０が接続されている。制御装置１００は、モータ１３０の制御に必要なモータ回転数に対応した制御命令を生成し、各モータ駆動装置１２０に送信する。モータ駆動装置１２０は、電源周波数を変更することでモータ１３０の回転数を制御する。このような構成のモータ制御システム１として、例えば、ベルトコンベアや巻き取り装置などが該当する。
【００１５】
図２（ａ）は、制御装置１００の構成例を示す図である。
【００１６】
本実施形態に係る制御装置１００は、汎用のＰＣを用いて実現する。図２（ａ）に示すように、本実施形態による制御装置１００は、ハードウェアモジュール２００、ＯＳ（Operating System）２１０、ソフトウェアモジュール２２０を具備する。
【００１７】
ハードウェアモジュール２００は、制御装置１００を動作させるために必要なハードウェアであり、ＣＰＵ（Central Processing Unit）や揮発性メモリ、不揮発性メモリ、記憶装置、ディスプレイ等の表示部、キーボード等の入力部、ＵＳＢメモリ等の外部記憶媒体を接続するためのインタフェース、モータ駆動装置１２０とデータ通信を行う通信インタフェースを含む。
【００１８】
ＯＳ２１０は、制御装置１００の動作を統括的に制御する基本ソフトウェアである。
【００１９】
ソフトウェアモジュール２２０は、モータ駆動装置１２０を制御するために必要なソフトウェア（コンピュータプログラム）であり、制御命令生成機能２２２、制御結果表示機能２２４、制御命令送信機能２２６、パラメータ設定機能２２８、時刻同期機能２３０、ネットワーク状態監視機能２３２を含む。これらソフトウェアは、ＣＰＵにより実行される。
【００２０】
制御命令生成機能２２２は、モータ駆動装置１２０がモータ１３０を制御するための制御命令を生成する機能である。
【００２１】
制御結果表示機能２２４は、モータ駆動装置１２０から、モータ１３０を制御した結果である現在のモータ１３０の動作状態を示す情報を含むメッセージをネットワークを介して受信し、受信したメッセージを解析し、現在のモータ１３０の動作状態を示す情報を表示部に表示する機能である。ユーザは、表示部に表示されるモータ１３０の動作状態を確認し、必要に応じて、制御命令の再生成やモータ駆動装置１２０の動作パラメータの再設定を行うことが可能となる。
【００２２】
制御命令送信機能２２６は、制御命令生成機能２２２により生成した制御命令をネットワークを介して各モータ駆動装置１２０に送信する機能である。
【００２３】
パラメータ設定機能２２８は、モータ駆動装置１２０を動作させるために必要なパラメータ、例えば、上限/下限周波数や加速/減速時間、基底周波数などをネットワークを介して各モータ駆動装置１２０に送信する機能である。
【００２４】
時刻同期機能２３０は、ネットワークを介して各モータ駆動装置１２０と時刻同期を行う機能である。時刻同期を行う方法として、ＳＮＴＰ（Simple Network Time Protocol）やＩＥＥＥ１５８８に準拠したプロトコルを使用する。
【００２５】
ネットワーク状態監視機能２３２は、ネットワーク上に流れるメッセージを取得し、トラフィック量などを定期的に算出することにより、ネットワークの状態を監視する機能である。
【００２６】
図２（ｂ）は、モータ駆動装置１２０の構成例を示す図である。
【００２７】
モータ駆動装置１２０は、ハードウェアモジュール２５０、ＯＳ２１０、ソフトウェアモジュール２７０を具備する。
【００２８】
ハードウェアモジュール２５０は、モータ駆動装置１２０を動作させるために必要なハードウェアであり、マイコン２５２や外部通信部２５４、制御命令格納部２５６、外部Ｉ／Ｏ２５８、時計２６０を含む。
【００２９】
マイコン２５２は、ＣＰＵやＲＯＭ（Read Only Memory）、ＲＡＭ(Random Access Memory)、不揮発性メモリを含むモジュールである。
【００３０】
外部通信部２５４は、制御装置１００とデータ通信を行うためのインタフェースであり、イーサネット(登録商標)やシリアルケーブル、無線などのインタフェースが該当する。
【００３１】
制御命令格納部２５６は、制御装置１００から外部通信部２５４を介して受信した制御命令を格納するモジュールであり、揮発性メモリや不揮発性メモリ、ＨＤＤ（Hard Disk Drive）、ＳＳＤ(Solid State Drive)といった記憶装置が該当する。
【００３２】
外部Ｉ／Ｏ２５８は、モータ１３０の回転数を制御するためのインタフェースであり、アナログＩ／ＯやデジタルＩ／Ｏなどが該当する。
【００３３】
時計２６０は、モータ駆動装置１２０の時刻を刻むモジュールである。
【００３４】
ソフトウェアモジュール２７０は、制御装置１００とのデータ通信やモータ１３０の制御に必要なソフトウェア(コンピュータプログラム)であり、制御命令受信機能２７２、モータ制御機能２７４、動作結果送信機能２７６、時刻同期機能２３０を含む。
【００３５】
制御命令受信機能２７２は、制御装置１００からの制御命令を外部通信部２５４を介して受信し、その受信した制御命令を制御格納部２５６に格納する機能である。
【００３６】
モータ制御機能２７４は、制御格納部２５６に格納されている制御命令を基に、外部Ｉ／Ｏ２５８を介して、モータ１３０の制御を行う機能である。これらソフトウェアは、マイコンにより実行される。
【００３７】
動作結果送信機能２７６は、外部Ｉ／Ｏ２５８を介して取得したモータ１３０の状態、例えば回転数などを、外部通信部２５４を介して制御装置１００に送信する機能である。
【００３８】
図３は、モータ制御システム１の動作概要を示すシーケンス図である。ここで、モータ制御システム１は、制御装置１００と各モータ駆動装置１２０の電源が起動することで起動する。
【００３９】
先ずモータ制御システム１の起動時に、制御装置１００、モータ駆動装置１２０のそれぞれが具備する時刻同期機能２３０により、モータ駆動装置１２０に搭載されている時計２６０の時刻と、制御装置１００が備える時計の時刻とを同期させる処理が行われる（ステップＳ３００）。
【００４０】
時刻同期処理が行われた後、制御装置１００は、ユーザの操作に応じて、図４に示すような時間ごとのモータ１３０の回転数の変化を示す動作パターン情報を生成する（ステップＳ３０２）。モータ回転数の動作パターン情報を生成する際、ＥＸＣＥＬ（登録商標）などのソフトウェアが利用される。尚、ＰＬＣを利用して、図４に示すような動作パターンを作成しても良いが、ラダーロジックを利用する必要がある。ラダーロジックの開発は、ＥＸＣＥＬ（登録商標）などを利用して開発する場合と比較して、多大な工数を要する。更に、モータ回転数の動作パターンを変更する場合、ＥＸＣＥＬ（登録商標）を利用すれば、該当する値のみを変更すれば良いが、ラダーロジックを利用すると、再度、プログラミングを行う必要があるため、変更にも多大な工数を要する。本実施形態では、ＥＸＣＥＬ（登録商標）などのソフトウェアを利用してモータ回転数の動作パターン情報の生成やその変更を行うので、モータ制御システム１を効率良く稼働させることができ、また、モータ制御システム１を簡易かつ安価に実現できる。
【００４１】
動作パターン情報を生成後、制御装置１００は、制御命令生成機能２２２により、モータ１３０制御用の制御命令を生成する（ステップＳ３０４）。
【００４２】
次に制御装置１００は、制御命令送信機能２２６により、制御命令生成機能２２２により生成したモータ１３０制御用の制御命令をネットワークを介して各モータ駆動装置１２０に送信する（ステップＳ３０６、ステップＳ３０８）。
【００４３】
次に制御装置１００は、制御結果表示機能２２４により、各モータ駆動装置１２０からモータ１３０の制御結果である現在のモータ１３０の動作状態を示すメッセージをネットワークを介して受信し、表示部に表示する（ステップＳ３１０、ステップＳ３１２、ステップＳ３１４）。
【００４４】
図５は、制御装置１００における、制御命令を生成する（図３＿ステップＳ３０４）詳細処理を示すフロー図である。
【００４５】
先ず制御装置１００は、モータ駆動装置情報取得要求メッセージを生成し、ハードウェアモジュール２００に内蔵されている通信インタフェースを介して各モータ駆動装置１２０に送信する（ステップＳ５００）。モータ駆動装置情報取得要求メッセージを受信した各モータ駆動装置１２０は、各モータ駆動装置１２０がモータ１３０の制御を行う制御命令実行周期や、各モータ駆動装置１２０における利用可能メモリ容量、各モータ駆動装置の型番といったモータ駆動装置１２０に関する情報を含む応答メッセージを生成し、制御装置１００に外部通信部２５４を介して送信する。
【００４６】
次に制御装置１００は、モータ駆動装置１２０からの応答メッセージの受信有無を判断する（ステップＳ５０２）。
【００４７】
モータ駆動装置１２０から応答メッセージを受信しない場合（ステップＳ５０２でＮＯ）、制御装置１００は、例えば、応答メッセージを受信しない旨をエラーメッセージとして表示部に表示しユーザに通知する（ステップＳ５２０）。尚、所定時間経過しても応答メッセージを受信しない場合には、モータ駆動装置情報取得要求メッセージを再送するようにしても良い。
【００４８】
一方、応答メッセージを受信すると（ステップＳ５０２でＹＥＳ）、制御装置１００は、応答メッセージに含まれる上記モータ駆動装置１２０に関する情報を揮発性メモリ等の記憶部に記憶し、記憶部に記憶された利用可能メモリ容量を制御命令のデータサイズで除算することにより、モータ装置駆動装置１２０に保存できる制御命令数（保存可能制御命令数）を算出する（ステップＳ５０４）。例えば、利用可能メモリ容量が２ｋＢｙｔｅ、制御命令のデータサイズが２Ｂｙｔｅの場合、モータ駆動装置１２０に保存できる制御命令数は１０００つ（２ｋＢｙｔｅ÷２Ｂｙｔｅ）となる。
【００４９】
次に制御装置１００は、ステップＳ５０４で算出した保存可能制御命令数と記憶部に記憶されたモータ１３０の制御命令実行周期とを乗算することにより、制御装置１００がモータ駆動装置１２０に制御命令を送信する周期（制御命令送信周期）を算出する（ステップＳ５０６）。例えば、制御命令実行周期が２ｍｓの場合、制御装置１００は２秒周期（２ｍｓ×１０００）で１０００つの制御命令をネットワークを介してモータ駆動装置１２０に送信することになる。
【００５０】
制御装置１００は、全てのモータ駆動装置１２０の制御命令送信周期を算出したか否かを確認し（ステップＳ５０８）、算出していない場合には（ステップＳ５０８でＮＯ）、ステップＳ５００に戻る。
【００５１】
制御装置１００は、制御を行う全てのモータ駆動装置１２０に対する制御命令送信周期を算出すると（ステップＳ５０８でＹＥＳ）、ステップＳ５０４で算出した保存可能制御命令数と、１つの制御命令のデータサイズと、制御装置１００とネットワークを介して接続されているモータ駆動装置数から、各モータ駆動装置１２０に対して制御命令を送信するために必要な通信帯域を算出する（ステップＳ５１０）。例えば、モータ駆動装置１２０が３０台あり、制御装置１００が、各モータ駆動装置１２０に対して１０００つの制御命令を２秒周期で送信する場合、その送信に必要な通信帯域は、４８０ｂｐｓ（１０００×２Ｂｙｔｅ×８×３０）となる。
【００５２】
次に制御装置１００は、算出した通信帯域と所定の利用可能通信帯域とを比較し、算出した通信帯域より利用可能な通信帯域の方が広い場合（ステップＳ５１２でＹＥＳ）、算出した通信帯域で通信を行うことが可能であるため、ステップＳ５０４とステップＳ５０６で算出した値を基に、制御命令をモータ駆動装置１２０毎に生成し、揮発性メモリや記憶装置に格納する（ステップＳ５１８）。
【００５３】
このように、本実施形態では、モータ駆動装置１２０ごとの利用可能メモリ容量と各モータ駆動装置１２０がモータ１３０を制御する周期に着目し、制御装置１００が、各モータ駆動装置１２０からモータ駆動装置１２０における利用可能メモリ容量とモータ駆動装置１２０によるモータ１３０の制御周期を含む情報を取得し、これらの情報と制御命令のデータサイズの情報を用いて、モータ駆動装置１２０に対して制御命令を送信する制御命令送信周期を決定し、決定した制御命令送信周期に従って制御命令を各モータ駆動装置１２０に送信可能なように構成した。これにより、リアルタイム性能がモータ駆動装置１２０より劣る汎用のＰＣを用いてモータ制御システム１を実現でき、利用可能メモリ容量が小容量のモータ駆動装置１２０でもリアルタイム性を保証しつつ複数のモータ１３０の同期制御が可能となる。本実施形態は、特に複数のモータの同期制御を長時間行うようなモータ制御システムに好適である。また、本実施形態に係るモータ制御システム１は、ＰＬＣを用いるモータ制御システムと比較して、より少ない工数でかつ安価に実現できる。
【００５４】
なお、上記では、モータ駆動装置１２０に関する情報の取得方法として、モータ駆動装置１２０にモータ駆動装置情報取得要求メッセージを送信する方法を例に説明を行ったが、モータ駆動装置情報取得要求メッセージを送信する以外の方法として、ユーザが生成するシステム構築に必要な情報を纏めた設定ファイルの中に、各モータ駆動装置１２０に関する情報を含めておき、これを外部記憶媒体に格納し、制御装置１００は電源起動時に外部記憶媒体からこの設定ファイルを読み込むことにより、各モータ駆動装置１２０に関する情報を取得する方法でも構わない。また、制御命令実行周期は設定ファイルから取得し、利用可能メモリ容量はモータ駆動装置情報取得要求メッセージを利用して取得する方法でも構わない。また、各モータ駆動装置１２０に関する情報を含む設定ファイルを入力部を用いて作成して内部メモリ等の記憶部に記憶し、記憶部からこの設定ファイルを読み込むことにより、各モータ駆動装置１２０に関する情報を取得する方法でも構わない。
【００５５】
図６は、制御装置１００からモータ駆動装置１２０に送信する制御命令の構成例を示す図である。図６に示すように、制御装置１００によりモータ駆動装置１２０ごとに生成される制御命令のフォーマットは、制御命令６００にその制御命令６０２を実行する時刻６０２が付加されたものである。ここで、複数のモータ１３０の同期制御では、制御命令６００を実行する周期はモータ１３０ごとに異なる場合がある。例えば、制御命令６００を実行する実行開始時刻のみを送信する従来技術の場合、制御命令６００の実行周期をモータ１３０ごとに事前に設定する必要がある。そのため、例えば、数１０台〜数１００台のモータ１３０の同期制御を行う場合には、これらモータ１３０の周期の設定に多大な時間を要することとなる。本実施形態では、制御装置１００により、制御命令６００に時刻６０２も付加して送信することで、これを受信したモータ駆動装置１２０では時刻６０２の値を確認すれば良いため、制御命令６００の実行周期をモータ１３０ごとに事前に設定する必要はなくなる。また、時刻６０２は絶対時刻でも、相対時刻でも良い。尚、時刻６０２が相対時刻の場合、制御装置１００がモータ駆動装置１２０に送信する制御命令の中で最も時間が古い制御命令を基準とする。
【００５６】
図５に戻り、算出した制御命令送信用通信帯域より利用可能な通信帯域の方が狭い場合（ステップＳ５１２でＮＯ）、算出した制御命令送信用通信帯域で通信を行うことが困難であるため、制御命令の送信に必要な通信帯域を狭くする必要がある。そこで本実施形態では、算出した制御命令送信用通信帯域より利用可能な通信帯域の方が狭い場合には、制御装置１００が保存可能制御命令数の変更可否を判断し（ステップＳ５１４）、変更可能な場合、保存可能制御命令数を変更する制御を行うようにした（ステップＳ５１６）。
【００５７】
保存可能制御命令数を変更可能な場合（ステップＳ５１４でＹＥＳ），制御装置１００は、保存可能制御命令数を変更した後、ステップＳ５１０に戻る。一方、保存可能制御命令数が変更できない場合（ステップＳ５１４でＮＯ）、制御装置１００はエラーメッセージを表示部に表示しユーザに通知する（ステップＳ５２０）。尚、ステップＳ５１６において、保存可能制御命令数を小さくし過ぎると、制御命令送信周期が短くなり、リアルタイム性を保証しつつ複数のモータ１３０の同期制御を行うことが困難となる。そこで本実施形態では、制御装置１００が実現できる制御命令送信周期を事前に測定し、その測定結果を制御命令送信周期の下限値に設定しておき、保存可能制御命令数を小さくしながら、その保存可能制御命令数を変更するようにした。また、図示していないが、もし制御命令送信周期が下限値を超えてしまった場合には、汎用のＰＣで制御装置１００を実現することが困難となるため、例えば、システム構築が困難であることを示すメッセージを表示部に表示しユーザに通知するようにして良い。
【００５８】
本実施形態では、このように制御命令送信用の通信帯域を考慮して保存可能制御命令数変更する仕組みを用いることにより、数十台、数百台のモータ駆動装置１２０を利用するモータ制御システムにおいても、本実施形態を適用することができる。また、例えば、シリアル通信や無線通信といったイーサネット（登録商標）と比較して通信帯域が狭い通信インタフェースに対しても本実施形態を適用することができる。
【００５９】
図７は、制御装置１００における、モータ駆動装置１２０に制御命令を送信する処理、およびモータ駆動装置１２０から制御結果メッセージを受信する処理を示すフロー図である。尚、図７に示す処理は、制御結果表示機能２２４や制御命令送信機能２２６、ネットワーク状態監視機能２３２により実行される。
【００６０】
制御装置１００は、ステップＳ５０６(図５)で算出した制御命令送信周期に基づいて、ステップＳ５０４で算出した保存可能制御命令数分の制御命令をハードウェアモジュール２００に内蔵されている通信インタフェースを介してモータ駆動装置１２０に送信する。そこで制御装置１００は、先ず、制御命令送信周期と保存可能制御命令数を基に制御命令をモータ駆動装置１２０に送信するタイミングか否かを判断する（ステップＳ７００）。
【００６１】
モータ駆動装置１２０に制御命令を送信するタイミングの場合（ステップＳ７００でＹＥＳ）、制御装置１００は、制御命令をハードウェアモジュール２００に内蔵されている通信インタフェースを介してモータ駆動装置１２０に送信する（ステップＳ７０２）。
【００６２】
次に制御装置１００は、モータ駆動装置１２０から応答メッセージ（ＡＣＫ）を受信したか否かを判断する（ステップＳ７０４）。応答メッセージ（ＡＣＫ）を受信した場合（ステップＳ７０４でＹＥＳ）、制御装置１００は制御命令を正常に送信できたと判断し、ステップＳ７００に戻る。
【００６３】
一方、応答メッセージを受信しなかった場合（ステップＳ７０４でＮＯ）、制御装置１００は、モータ制御システム１に何らかの異常が発生したと判断し、モータ制御システム１の動作を緊急停止させるため、他のモータ駆動装置１２０に緊急停止メッセージを送信し（ステップＳ７１６）、その旨をエラーメッセージとして表示部に表示しユーザに通知する（ステップＳ７１８）。尚、図示していないが、受信した応答メッセージにエラーコードが含まれている場合にも、制御装置１００は、他のモータ駆動装置１２０に緊急停止メッセージを送信し（ステップＳ７１６）、その旨をエラーメッセージとして表示部に表示しユーザに通知する（ステップＳ７１８）。
【００６４】
このように、本実施形態では、緊急停止メッセージを送信する仕組みをモータ制御システム１に搭載することにより、モータ駆動装置１２０の一つでも異常が発生した場合にモータ制御システム１の動作を緊急停止させることができ、ひいてはモータ制御システム１の暴走を防ぐことができる。但し、モータ１３０の動作を急停止させると、モータ制御システム１が更に危険な状態になる場合があるため、モータ１３０の回転速度をゆっくり減速させてモータ１３０の動作を停止させるなどの安全停止機能を用いることにより、モータ制御システム１の動作を安全に停止させることができる。例えば、複数のモータで動作するベルトコンベアのシステムにおいて、あるモータの故障により、ベルトコンベアの動作が乱れ、ベルトコンベア上に乗っている作業物が落下するなどの危険を防止できる。尚、緊急停止メッセージを送信するタイミングは、システムごとに異なるため、例えば、複数のモータ駆動装置１２０から応答メッセージがない場合や、モータ駆動装置１２０からの応答メッセージを複数回受信しない場合などに緊急停止メッセージを送信するようにしても良い。
【００６５】
図７に戻り、モータ駆動装置１２０に制御命令を送信するタイミングではない場合（ステップＳ７００でＮＯ）、制御装置１００は、モータ駆動装置１２０によりモータ１３０を制御した結果である現在のモータ１３０の動作状態を示す情報を含むメッセージを受信しているか否かを判断する（ステップＳ７０６）。
【００６６】
制御結果メッセージを受信している場合（ステップＳ７０６でＹＥＳ）、制御装置１００は、その制御結果メッセージを解析し、モータ１３０の動作状態を表示部に表示し（ステップＳ７０８）、ステップＳ７００に戻る。尚、制御結果メッセージを解析した結果、モータ１３０の動作状態がステップＳ３０２（図３）にて生成した動作パターンと乖離している場合には、制御装置１００は、モータ制御システム１に異常が発生したと判断し、緊急停止メッセージをモータ駆動装置１２０に送信するようにしても良い。また、この場合、緊急停止メッセージをモータ駆動装置１２０に送信する他、上記解析結果を利用して、再度動作パターン情報を生成し、図６に示す制御命令６００の値を変更するようにしても良い。
【００６７】
制御結果メッセージを受信していない場合（ステップＳ７０６でＮＯ）、制御装置１００は、モータ駆動装置１２０から緊急停止メッセージを受信しているか否かを判断する（ステップＳ７１０）。
【００６８】
緊急停止メッセージを受信している場合には（ステップＳ７１０でＹＥＳ）、制御装置１００は、他のモータ駆動装置１２０に緊急停止メッセージを送信し（ステップＳ７１６）、その旨をエラーメッセージとして表示部に表示しユーザに通知する（ステップＳ７１８）。
【００６９】
一方、緊急停止メッセージを受信していない場合（ステップＳ７１０でＮＯ）、制御装置１００は、ネットワーク状態監視機能２３２により、現在の通信帯域など現在のネットワークの状態を確認する（ステップＳ７１２）。
【００７０】
次に制御装置１００は、現状の通信帯域とステップＳ５１０（図５）で算出した制御命令送信用通信帯域とを比較する（ステップＳ７１４）。その結果、現状の通信帯域が制御命令送信用通信帯域より狭い場合には（ステップＳ７１４でＹＥＳ）、モータ駆動装置１２０に制御命令を正常に送信できない可能性があるため、モータ制御システム１の動作を緊急停止させるため、制御装置１００は、他のモータ駆動装置１２０に緊急停止メッセージを送信し（ステップＳ７１６）、その旨をエラーメッセージとして表示部に表示しユーザに通知する（ステップＳ７１８）。
【００７１】
一方、現状の通信帯域が制御命令送信用通信帯域より広い場合には（ステップＳ７１４でＮＯ）、ステップＳ７００に戻る。
【００７２】
図８は、モータ駆動装置１２０における、モータ１３０に制御命令を送信する処理、
およびモータ１３０の状態を制御装置１００に送信する処理を示すフロー図である。尚、図８に示す処理は、制御命令受信機能２７２やモータ制御機能２７４、動作結果送信機能２７６により実行される。
【００７３】
先ずモータ駆動装置１２０は、制御命令格納部２５６に格納されている制御命令を参照し、モータ１３０に制御命令を送信するタイミングか否かを判断する（ステップＳ８００）。
【００７４】
モータ１３０に制御命令を送信するタイミングの場合（ステップＳ８００でＹＥＳ）、モータ駆動装置１２０は、モータ１３０のインタフェースに応じて制御命令を電気信号（アナログ信号）に変更した後、外部Ｉ／Ｏ２５８を介してモータ１３０に送信する（ステップＳ８０２）。また、モータ駆動装置１２０は、制御しているモータ１３０からモータ１３０の状態を示す情報を取得する（ステップＳ８０４）。
【００７５】
次にモータ駆動装置１２０は、取得したモータ１３０の状態情報に基づいて、モータ１３０の動作が正常か否かを判断する（ステップＳ８０６）。
【００７６】
モータ１３０が正常に動作している場合には（ステップＳ８０６でＹＥＳ）、その状態を示す情報を含む制御結果メッセージを生成し、外部通信部２５４を介して、制御装置１００に送信し（ステップＳ８０８）、ステップＳ８００に戻る。
【００７７】
一方、モータ１３０が正常に動作していない場合には（ステップＳ８０８でＮＯ）、モータ制御システム１に異常が発生したと判断して緊急停止メッセージを生成し、生成した緊急停止メッセージを外部通信部２５４を介して制御装置１００に送信する（ステップＳ８１０）。
【００７８】
また、モータ１３０に制御命令を送信するタイミングではない場合（ステップＳ８００でＮＯ）、モータ駆動装置１２０は、制御装置１００から制御命令を受信しているか否かを判断する（ステップＳ８１２）。
【００７９】
制御命令を受信している場合（ステップＳ８１２でＹＥＳ）、受信した制御命令を制御命令格納部２５６に格納し（ステップＳ８１４）、応答メッセージを生成し、外部通信部２５４を介して、制御装置１００に送信する（ステップＳ８１６）。
【００８０】
一方、制御命令を受信していない場合（ステップＳ８１２でＮＯ）、モータ駆動装置１２０は、制御装置１００から緊急停止メッセージを受信しているか否かを判断する（ステップＳ８１８）。
【００８１】
緊急停止メッセージを受信している場合には（ステップＳ８１８でＹＥＳ）、モータ駆動装置２０は、モータ１３０の動作を外部Ｉ／Ｏ２５８を介して停止させる制御を行う（ステップＳ８２０）。
【００８２】
一方、緊急停止メッセージを受信していない場合（ステップＳ８１８でＮＯ）、モータ駆動装置１２０はステップ８００に戻る。
【００８３】
以上、本発明の実施形態を具体的に説明したが、本発明はこれに限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能である。
【００８４】
こうした本実施形態によれば、モータ制御システム１を簡易かつ安価に実現できるとともに、搭載メモリが小容量のモータ駆動装置でもリアルタイム性を保証しつつ複数のモータの同期制御が可能となる。
【符号の説明】
【００８５】
１００・・・制御装置、１２０・・・モータ駆動装置、１３０・・・モータ、１４０・・・ＨＵＢ、２００、２５０・・・ハードウェアモジュール、２１０・・・ＯＳ、２２０、２７０・・・ソフトウェアモジュール。
【図１】
2015204724.tif 000003
【図２（ａ）】
2015204724.tif 000004
【図２（ｂ）】
2015204724.tif 000005
【図３】
2015204724.tif 000006
【図４】
2015204724.tif 000007
【図５】
2015204724.tif 000008
【図６】
2015204724.tif 000009
【図７】
2015204724.tif 000010
【図８】
2015204724.tif 000011