(57)【要約】【課題】  モーションプログラム上で指定された制御軸情報を解析し、対応するサーボドライバに動作指令を発行するモーションコントローラにおいて、軸構成パターンの異なる複数のモーションプログラムがモーションコントローラに格納されている場合であっても、実行可能なモーションプログラムを容易に判定することができ、操作者の負担を軽減できるモーションコントローラを提供する。【解決手段】  パソコン１２から、モーションコントローラ１１に格納されているモーションプログラムのリストを参照されたとき、主処理部２２が、モーションプログラムに対し、有効プログラムテーブルの状態列の情報により、実行可能かどうかを判定し、その判定情報をパソコン１２に出力する。【選択図】  図１
2009099068.tif 000002
【特許請求の範囲】
【請求項１】
モーションプログラム上で指定された制御軸情報を解析し、該軸情報に対応するサーボドライバに動作指令を発行するモーションコントローラにおいて、
前記モーションコントローラに、前記モーションプログラムの解析・実行などのコントローラの主要な機能の処理を行う主処理部と、
記憶されている前記モーションプログラムに対して、プログラム名称、制御軸、およびそのプログラムを実行することが有効であるか無効であるかを示す状態列から構成される有効プログラムテーブルを格納する有効プログラムテーブル記憶部とを備え、
前記モーションコントローラに通信線を介して接続されたパソコンから、前記モーションコントローラに格納されている前記モーションプログラムのリストを参照されたとき、
前記主処理部が、前記モーションプログラムに対し、前記有効プログラムテーブルの状態列の情報により、実行可能かどうかを判定し、その判定情報を前記パソコンに出力することを特徴とするモーションコントローラ。
【請求項２】
前記モーションコントローラに、該モーションコントローラが制御する制御軸の物理的名称と、論理名称、および各軸が前記モーションコントローラに接続されているか否かを示す状態列から構成される軸定義テーブルを格納する軸定義テーブル記憶部を備え、
前記主処理部が、前記有効プログラムテーブルの状態列の情報を、前記軸定義テーブルの情報を使用して更新することを特徴とする請求項１記載のモーションコントローラ。
【請求項３】
前記主処理部が、前記有効プログラムテーブルの状態列の情報を、前記有効プログラムテーブルの１つのプログラム名称に登録された全ての制御軸の状態が、前記軸定義テーブルで“有効”となっているとき“有効”とし、それ以外の場合は“無効”として更新することを特徴とする請求項２記載のモーションコントローラ。
【請求項４】
前記主処理部が、前記有効プログラムテーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時と、前記モーションプログラムの編集が行なわれた際、モーションプログラムを保存するタイミングで行うことを特徴とする請求項２記載のモーションコントローラ。
【請求項５】
前記主処理部が、前記軸定義テーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時に行うことを特徴とする請求項２記載のモーションコントローラ。
【請求項６】
モーションプログラム上で指定された制御軸情報を解析し、該軸情報に対応するサーボドライバに動作指令を発行するモーションコントローラのモーションプログラム有効軸判別方法において、
前記モーションコントローラに、記憶されている前記モーションプログラムに対して、プログラム名称、制御軸、およびそのプログラムを実行することが有効であるか無効であるかを示す状態列から構成される有効プログラムテーブルを格納する有効プログラムテーブル記憶部を備え、
前記モーションコントローラに通信線を介して接続されたパソコンから、前記モーションコントローラに格納されている前記モーションプログラムのリストを参照されたとき、
前記モーションコントローラが、前記モーションプログラムに対し、前記有効プログラムテーブルの状態列の情報により、実行可能かどうかを判定し、その判定情報を前記パソコンに出力することを特徴とするモーションコントローラのモーションプログラム有効軸判別方法。
【請求項７】
前記モーションコントローラに、該モーションコントローラが制御する制御軸の物理的名称と、論理名称、および各軸が前記モーションコントローラに接続されているか否かを示す状態列から構成される軸定義テーブルを格納する軸定義テーブル記憶部を備え、
前記有効プログラムテーブルの状態列の情報を、前記軸定義テーブルの情報を使用して更新することを特徴とする請求項６記載のモーションコントローラのモーションプログラム有効軸判別方法。
【請求項８】
前記有効プログラムテーブルの状態列の情報を、前記有効プログラムテーブルの１つのプログラム名称に登録された全ての制御軸の状態が、前記軸定義テーブルで“有効”となっているとき“有効”とし、それ以外の場合は“無効”として更新することを特徴とする請求項７記載のモーションコントローラのモーションプログラム有効軸判別方法。
【請求項９】
前記有効プログラムテーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時と、前記モーションプログラムの編集が行なわれた際、モーションプログラムを保存するタイミングで行うことを特徴とする請求項７記載のモーションコントローラのモーションプログラム有効軸判別方法。
【請求項１０】
前記軸定義テーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時に行うことを特徴とする請求項７記載のモーションコントローラのモーションプログラム有効軸判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションプログラムで指定された制御軸情報を解析し、対応するサーボドライバに動作指令を発行するモーションコントローラおよびモーションプログラム有効軸判別方法に関する。  
【背景技術】
【０００２】
従来より、モーションプログラムに基づいて複数のサーボドライバを制御し、産業用機械などの位置決め制御等を行うモーションコントローラが種々提案されている。図６は従来のモーションコントローラの構成例を示した図であり、１１ａはモーションコントローラ、１４はサーボドライバ、１５はサーボモータであり、図では各々３台が接続されている。１２はモーションコントローラへの指令、参照を行うためのパソコンであり、通信線１３でモーションコントローラ１１ａに接続される。また、Ｄ１はパソコン１２上のプログラム表示画面の例であり、本画面を使用してモーションコントローラ１１ａに格納されているモーションプログラムの参照や、実行などを行う。
モーションコントローラ１１ａは、メモリ内にモーションプログラムを保持し、モーションプログラムでは制御対象を軸情報で指定している。ここでいう軸情報とは、各軸に対して定義された論理名称であり、各軸に割り振られている物理軸番号（図６では１００、１０１、１０２）と軸定義テーブル等で関連づけられる（たとえば、特許文献１参照）。
図７に、従来の軸定義テーブルの例を示す。図７によれば、物理軸１００、１０１、１０２に対する論理名称はＸ１、Ｙ１、Ｚ１となる。
操作者は、パソコン１２からモーションコントローラ１１ａに格納されているモーションプログラムリストを参照し、実行するモーションプログラムを選択する。
モーションプログラムの実行中に、モーションプログラムで指定された軸情報に対応するサーボドライバ１４がモーションコントローラ１１ａに接続されていないと判断された場合、実行エラーとなり制御は中断する。
図８はモーションプログラムの例である。本プログラムでは、２〜６行目で、定数、変数の定義、８〜１４行目でＸ１軸の制御、１６〜２３行目でＸ２軸の制御、２５行目からＹ１軸の制御を行っている。Ｘ１軸の制御では、８行目でサーボの電源をオンした後、９〜１３行目で繰り返し直線補間を行い、１４行目でサーボの電源をオフしている。Ｘ２軸の制御では、１６行目でパラメータ２５６番に２０００を設定し、１７行目でサーボの電源をオンした後、１８〜２２行目で繰り返し直線補間を行い、２３行目でサーボの電源をオフしている。Ｙ１軸の制御では、まず２５行目でサーボの電源をオンしている。
本プログラムを図６の構成で実行すると、Ｘ１軸に関する１４行目まで実行されるが、Ｘ２軸は認識されていないため１６行目で実行エラーとなり、制御が中断する。
このように、プログラムによる指令内容と制御対象の条件とを比較し、不一致が生じた場合は制御を中断し、エラーメッセージを表示する手段がとられている（たとえば、特許文献２参照）。
【特許文献１】特開平１０−３０１６０８号公報（第６頁、 図４）
【特許文献２】特開平１０−２０２４７１号公報（第１０頁、 図３）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のプログラム実行中に異常とみなされた場合に制御を中断する方法では、プログラム中断に至るまでのプログラム実行は不要である。場合によっては、不要な軸制御を行ったために手戻りが多くなるなどの問題が生じる。そのため、操作者がプログラム実行前にプログラムの内容をチェックする必要が生じるが、軸構成パターンの異なる複数のモーションプログラムがモーションコントローラに格納されている場合、どのプログラムが適切かを判定するのに時間を要するという問題点があった。
本発明はこのような問題点に鑑みてなされたものであり、モーションプログラムで指定された制御軸情報を解析し、対応するサーボドライバに動作指令を発行するモーションコントローラにおいて、実行可能なモーションプログラムを容易に判定することができ、操作者の負担を軽減できるモーションコントローラと、モーションプログラム有効軸判別方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、モーションプログラム上で指定された制御軸情報を解析し、該軸情報に対応するサーボドライバに動作指令を発行するモーションコントローラにおいて、前記モーションコントローラに、前記モーションプログラムの解析・実行などのコントローラの主要な機能の処理を行う主処理部と、記憶されている前記モーションプログラムに対して、プログラム名称、制御軸、およびそのプログラムを実行することが有効であるか無効であるかを示す状態列から構成される有効プログラムテーブルを格納する有効プログラムテーブル記憶部とを備え、前記モーションコントローラに通信線を介して接続されたパソコンから、前記モーションコントローラに格納されている前記モーションプログラムのリストを参照されたとき、前記主処理部が、前記モーションプログラムに対し、前記有効プログラムテーブルの状態列の情報により、実行可能かどうかを判定し、その判定情報を前記パソコンに出力することを特徴とするものである。
また、請求項２に記載の発明は、請求項１記載のモーションコントローラにおいて、前記モーションコントローラに、該モーションコントローラが制御する制御軸の物理的名称と、論理名称、および各軸が前記モーションコントローラに接続されているか否かを示す状態列から構成される軸定義テーブルを格納する軸定義テーブル記憶部を備え、前記主処理部が、前記有効プログラムテーブルの状態列の情報を、前記軸定義テーブルの情報を使用して更新することを特徴とするものである。  
また、請求項３に記載の発明は、請求項２記載のモーションコントローラにおいて、前記主処理部が、前記有効プログラムテーブルの状態列の情報を、前記有効プログラムテーブルの１つのプログラム名称に登録された全ての制御軸の状態が、前記軸定義テーブルで“有効”となっているとき“有効”とし、それ以外の場合は“無効”として更新することを特徴とすることを特徴とするものである。  
また、請求項４に記載の発明は、請求項２記載のモーションコントローラにおいて、前記主処理部が、前記有効プログラムテーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時と、前記モーションプログラムの編集が行なわれた際、モーションプログラムを保存するタイミングで行うことを特徴とするものである。
また、請求項５に記載の発明は、請求項２記載のモーションコントローラにおいて、前記主処理部が、前記軸定義テーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時に行うことを特徴とするものである。
【０００５】
また、請求項６に記載の発明は、モーションプログラム上で指定された制御軸情報を解析し、該軸情報に対応するサーボドライバに動作指令を発行するモーションコントローラのモーションプログラム有効軸判別方法において、前記モーションコントローラに、記憶されている前記モーションプログラムに対して、プログラム名称、制御軸、およびそのプログラムを実行することが有効であるか無効であるかを示す状態列から構成される有効プログラムテーブルを格納する有効プログラムテーブル記憶部を備え、前記モーションコントローラに通信線を介して接続されたパソコンから、前記モーションコントローラに格納されている前記モーションプログラムのリストを参照されたとき、前記モーションコントローラが、前記モーションプログラムに対し、前記有効プログラムテーブルの状態列の情報により、実行可能かどうかを判定し、その判定情報を前記パソコンに出力することを特徴とするものである。
また、請求項７に記載の発明は、請求項６記載のモーションコントローラのモーションプログラム有効軸判別方法において、前記モーションコントローラに、該モーションコントローラが制御する制御軸の物理的名称と、論理名称、および各軸が前記モーションコントローラに接続されているか否かを示す状態列から構成される軸定義テーブルを格納する軸定義テーブル記憶部を備え、前記有効プログラムテーブルの状態列の情報を、前記軸定義テーブルの情報を使用して更新することを特徴とするものである。
また、請求項８に記載の発明は、請求項７記載のモーションコントローラのモーションプログラム有効軸判別方法において、前記有効プログラムテーブルの状態列の情報を、前記有効プログラムテーブルの１つのプログラム名称に登録された全ての制御軸の状態が、前記軸定義テーブルで“有効”となっているとき“有効”とし、それ以外の場合は“無効”として更新することを特徴とするものである。
また、請求項９に記載の発明は、請求項７記載のモーションコントローラのモーションプログラム有効軸判別方法において、前記有効プログラムテーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時と、前記モーションプログラムの編集が行なわれた際、モーションプログラムを保存するタイミングで行うことを特徴とするものである。
また、請求項１０に記載の発明は、請求項７記載のモーションコントローラのモーションプログラム有効軸判別方法において、前記軸定義テーブルの状態列の情報の更新を、前記モーションコントローラの電源投入時に行うことを特徴とするものである。
【発明の効果】
【０００６】
本発明によれば、モーションコントローラに接続されている軸情報とモーションプログラムで使用している制御軸情報との比較をモーションコントローラが実施し、比較結果から得た有効プログラム情報を操作者に提供するため、軸構成パターンの異なる複数のモーションプログラムがモーションコントローラに格納されている場合であっても、操作者は実行可能なモーションプログラムを容易に判定することができ、操作者の負担を軽減できる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００８】
図１は、本発明のモーションコントローラの構成を示すブロック図である。この構成は、基本的には図６に示した従来の構成と同一であるが、モーションコントローラ１１の内容が従来技術と異なるので、そこを中心に説明する。
図において２１は、通信線１３を介して接続されたパソコン１２と情報の送受信を行うための通信インタフェース、２２は、パソコン１２からの要求に基づいてモーションプログラムの解析・実行などコントローラの各機能を処理する主処理部、２３は主処理部２２からの要求に応じてサーボドライバ１４にモーションコマンドなどの指令を発行するとともに、サーボドライバ１４からの応答を主処理部２２に返すコマンド処理部、２４は実行対象となるモーションプログラムが格納するモーションプログラム記憶部、２５は物理軸番号と論理名称間の軸定義情報、および定義されている各軸の接続情報を格納する軸定義テーブル記憶部、２６は現在の環境で実行可能なモーションプログラム情報を格納する有効プログラムテーブル記憶部である。
【０００９】
図２は、本発明のモーションコントローラ１１の軸定義テーブル記憶部２５、有効プログラムテーブル記憶部２６に格納されるテーブル例である。図２（ａ）は軸定義テーブルであり、各軸の“物理軸番号”に対応する“論理名称”、および各軸がモーションコントローラに接続されているか否かを示す“状態”列から構成される。“物理軸番号”、および“論理名称”列の情報は、事前に操作者によって設定されるものであり“状態”列の情報は電源投入時に動的に更新される。図２（ｂ）は有効プログラムテーブルであり、モーションプログラム記憶部２４に格納されている各モーションプログラムに対して、“プログラム名称”、“制御軸”、および“状態”列から構成される。“制御軸”列の情報はモーションプログラムで指定されている軸情報の解析結果が格納される。“状態”列の情報は、軸定義テーブルの情報に基づき、“制御軸”列の軸が有効軸か否かの判定結果で更新される。すなわち、１つのプログラム名称に登録された全ての制御軸の情報が“有効”の場合、有効プログラムテーブルの“状態”も“有効”となり、それ以外は“無効”となる。これらの“状態”は電源投入時と、プログラム編集時等、プログラムが保存されるタイミングに更新される。
図３は、本発明のモーションコントローラの電源投入時の有効プログラム判定動作を説明するフローチャートである。
図４は、本発明のモーションコントローラのモーションプログラム編集時の動作を説明するフローチャートである。
図５は、本発明のモーションコントローラのモーションプログラムリスト表示例を示す図である。図５（ａ）はモーションコントローラの電源投入後のプログラムリスト表示、図５（ｂ）はモーションプログラム編集後のプログラムリスト表示の例である。
【００１０】
図１〜図５、図８を用いて、モーションコントローラの有効プログラム判定動作を説明する。
まず、図３により、モーションコントローラの電源投入時の動作について説明する。モーションコントローラ１１の電源が投入されると主処理部２２は軸定義テーブル記憶部２５より軸定義情報を読み出す（Ｓ１）。つぎに、定義されている軸の“物理軸番号”を軸番号とするサーボドライバが接続されているかをコマンド処理部２３を介して指令を発行して確認する（Ｓ３、Ｓ４）。接続が確認できた場合、軸定義テーブル記憶部２５の該当軸の“状態”情報を“有効”に設定する（Ｓ５）。接続が確認できない場合、軸定義テーブル記憶部２５の該当軸の“状態”情報を“無効”に設定する（Ｓ６）。以上の動作を定義されている軸数分繰り返す（Ｓ２〜Ｓ７）。図１では、軸番号１００、１０１、１０２の３軸が接続されているため、図２（ａ）では、該当する３軸が“有効”となり他の２軸は“無効”となる。
つぎに、主処理部２２はモーションプログラム記憶部２４に格納されているモーションプログラムの解析を実行する（Ｓ９）。モーションプログラムの解析は、軸の論理名称を引数とする関数をプログラム上で検索することにより実施する。図８のモーションプログラムを例とした場合、“ｅｎａｂｌｅＳｅｒｖｏ（）”（サーボ電源オン）、“ｍｏｖｅＬｉｎｅａｒ（）”（直線補間）、“ｄｉｓａｂｌｅＳｅｒｖｏ（）”（サーボ電源オフ）、“ｗｒｉｔｅＰａｒａｍｅｔｅｒ（）”（パラメータ書込み）、“ｗａｉｔ（）“（ウェイト）が該当する。解析結果に基づき、有効プログラムテーブル記憶部２６の“プログラム名称”、“制御軸”列を設定する（Ｓ１０）。つぎに、主処理部２２は“制御軸”列に設定された軸が接続されているか否かを、軸定義テーブル記憶部２５を参照して確認する（Ｓ１１、Ｓ１２）。制御対象のすべての軸が“有効”である場合、有効プログラムテーブル記憶部２６の“状態”情報を“有効”に設定する（Ｓ１３）。１つでも有効でない軸がある場合、“状態”情報を“無効”に設定する（Ｓ１４）。以上の動作を、格納されているモーションプログラムの個数分繰り返す（Ｓ８〜Ｓ１５）。図８のモーションプログラムの名称を、“ｂｉｓｅｃｔ．ｌｕａ”とした場合、“制御軸”情報は“Ｘ１”、“Ｘ２”、“Ｙ１”となり、軸“Ｘ２”は、軸定義テーブル記憶部２５で“無効”となっているため、有効プログラムテーブル記憶部２６の“状態”情報は“無効”となる。
以上で、モーションコントローラの電源投入時の有効プログラム判定動作は完了する。
この状態で、操作者がパソコン１２より、モーションコントローラ１１に格納されているモーションプログラムのリストを参照すると、図５（ａ）に示す状態になる。主処理部２２は、通信インタフェース２１を介して、モーションプログラムリストの参照要求を受け付けると、有効プログラムテーブル記憶部２６の情報に基づき、モーションプログラム名称の情報に加え、実行可能か否かの属性をあわせてパソコン１２に送信する。これにより、図５（ａ）に示すように、実行可能なモーションプログラム“ｘｙ−ｅｎｄｌｅｓｓ．ｌｕａ”、“ａｒｒａｙ．ｌｕａ”がハイライト表示され、実行不可能なモーションプログラム、例えば“ｂｉｓｅｃｔ．ｌｕａ”と表示形式が異なり、区別が可能となる。
【００１１】
つぎに、図４により、モーションプログラム編集時の動作を説明する。
まず、操作者はパソコン１２に表示されたモーションプログラムリストからモーションプログラムを選択し、ファイルの編集を実施する（Ｓ２１）。例として図８の“ｂｉｓｅｃｔ．ｌｕａ”の編集を行うものとする。図８において、軸“Ｘ２”に対する指令部分（１６〜２３行目）を削除し、保存する（Ｓ２２）。モーションプログラムが保存されると、主処理部２２は、再度有効軸、有効プログラムの判定を実行する。まず、保存されたモーションプログラムの解析を行う（Ｓ２３）。解析結果から、有効プログラムテーブル記憶部２６の“制御軸”情報から“Ｘ２”を外し、“Ｘ１”、“Ｙ１”を設定する。つぎに、主処理部２２は“制御軸”列に設定された軸が接続されているか否かを、軸定義テーブル記憶部２５を参照して確認する（Ｓ２５、Ｓ２６）。
“Ｘ１”、“Ｙ１”軸は共に“有効”であるため、主処理部２２は、有効プログラムテーブル記憶部２６の“状態”情報を“有効”に設定する（Ｓ２７）。もし、“Ｘ１”、“Ｙ１”軸が共に“有効”ではない場合は、有効プログラムテーブル記憶部２６の“状態”情報を“有効”に設定する（Ｓ２８）。また、同時に、図５（ｂ）に示すように、プログラム表示画面３１を更新し、モーションプログラム“ｂｉｓｅｃｔ．ｌｕａ”がハイライト表示されるようにする。
プログラム表示画面３１の更新は、既存のモーションプログラムの編集・保存時だけではなく、新規にモーションコントローラ１１にモーションプログラムがダウンロードされた場合も同様に行われるように、図４に示す処理を実行するようにする。
【００１２】
このように、本発明によれば、モーションコントローラに接続されている軸情報とモーションプログラムで使用している制御軸情報をテーブルで管理し、かつ実行可能なモーションプログラムの判定をモーションコントローラが実施し、判定情報を操作者に提供するため、軸構成パターンの異なる複数のモーションプログラムがモーションコントローラに格納されている場合であっても、操作者は実行可能なモーションプログラムを容易に判定することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明のモーションコントローラの構成を示すブロック図
【図２】本発明モーションコントローラの軸定義テーブル記憶部、有効プログラムテーブル記憶部に格納されるテーブル例
【図３】本発明のモーションコントローラの電源投入時の有効プログラム判定動作を説明するフローチャート
【図４】本発明のモーションコントローラのモーションプログラム編集時の動作を説明するフローチャート
【図５】本発明のモーションコントローラのモーションプログラムリスト表示例を示す図
【図６】従来のモーションコントローらの構成例を示した図
【図７】従来の軸定義テーブルの例を示す図
【図８】モーションプログラムの例を示す図
【符号の説明】
【００１４】
１１、１１ａ    モーションコントローラ
１２    パソコン
１３    通信線
１４    サーボドライバ
１５    サーボモータ
２１    通信インタフェース
２２    主処理部
２３    コマンド処理部
２４    モーションプログラム記憶部
２５    軸定義テーブル記憶部
２６    有効プログラムテーブル記憶部
【図１】
2009099068.tif 000003
【図２】
2009099068.tif 000004
【図３】
2009099068.tif 000005
【図４】
2009099068.tif 000006
【図５】
2009099068.tif 000007
【図６】
2009099068.tif 000008
【図７】
2009099068.tif 000009
【図８】
2009099068.tif 000010