(57)【要約】【課題】  モーションコントローラが持つイベントを組み合わせて新しいイベントを追加することができ、新規にイベントを追加するときは、ユーザのイベント処理プログラムの記述の軽減と簡素化ができる方法を提供する。【解決手段】  モーションコントローラが持つ複数のイベントの発火順番を定義する発火順番表１２を持ち、発火順番表１２によってユーザ独自のイベントの発火順番を条件としたイベント処理を定義する。イベント発火の通知をうけると、イベントタスク９がユーザが定義した発火順番表１２をチェックし、発火順番表１２に定義された順番に従ってイベント処理を実行する。【選択図】図１
2006172060.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが作成したモーション制御用のモーションプログラムを位置指令作成部が処理しやすいフォーマットのデータへ変換するプログラム解析部と、そのプログラム解析部が出力したデータを元に、指定周期単位のモータの移動指令を作成する前記位置指令作成部と、位置ループと速度ループを含み前記モータをサーボ制御するサーボ制御部とを備え、イベント発火により、そのイベント発火に対応したイベント処理を実行するモーションコントローラにおいて、
複数のイベントの発火順番を定義する発火順番表を備え、その発火順番表にユーザがイベント処理の発火順番を定義し、その発火順番に従ってイベント処理を実行することを特徴とするモーションコントローラのイベント処理方法。
【請求項２】
イベントに対応したイベント処理が予め登録されることを特徴とする請求項１記載のモーションコントローラのイベント処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションコントローラのイベント処理の定義に関する発明であり、さらに詳しくは、モーションコントローラが持つイベント処理を組み合わせて新規条件によるイベント処理を追加するための方法に関する。
【背景技術】
【０００２】
図５は従来のモーションコントローラにおけるイベント処理の仕組みを説明する図である。図において、１はユーザが作成するモーション制御用のモーションプログラムである。２は、モーションプログラム１を入力、解析して、位置指令作成部が処理しやすいフォーマットのデータへ変換するプログラム解析部である。３は、プログラム解析部２が出力したデータを元に、指定周期単位のモータの移動指令を作成する位置指令作成部である。４は、位置ループと速度ループを含み、位置指令作成部３が出力したモータの移動指令をもとにモータ５をサーボ制御するサーボ制御部である。６は、イベントＡからＦに示すように、プログラム解析部２と位置指令作成部３とサーボ制御部４に予め準備されているサーボ制御に関するイベント発火部である。７は、ユーザプログラムであり、モーション制御用プログラムを除くプログラムである。８は、ユーザプログラム７に従いイベント関連表１１へイベント処理を登録するＡＰＩを持ったイベントマネージャである。１１は、イベントマネージャ８により登録されるイベント関連表であり、各イベントとイベント処理が関連付けられている。１０はユーザが予め作成したイベント処理を格納したイベント処理格納部である。９は、イベント処理格納部１０からイベント処理を呼び出して実行するイベントタスクである。
次に図５に従ってイベント処理の方法について説明する。
先ず、ユーザプログラム７がイベントマネージャ８のＡＰＩを通じてイベント関連表１１へ実行させたいイベント処理を登録する。このとき通常のイベント処理にユニークにつけられる番号と、イベント処理の先頭プログラム実行カウンタが登録される。一方、プログラム解析部２と位置指令作成部３とサーボ制御部４は、イベントの発火場所に到達したらイベントタスク９へイベントの発火を通知する。イベントタスク９では、イベントの発火内容によって、イベント関連表１１の内容をチェックし、イベントが登録されていたらイベント処理格納部１０の中から該当するイベント処理を呼び出す（例えば特許文献１参照）。
このように、従来のモーションコントローラは、いずれか１つのイベントの発火を検出すると、イベント関連表を参照し、そのイベント発火時に実行すべきイベント処理を呼び出すのである。
【特許文献１】特開平０６−３０９０１９号（第５−７頁、第３図、第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のモーションコントローラは、予め準備されたイベント毎にしか処理を記述できない。言い換えると、予め準備されていないイベントに対する処理を記述したい場合は、ユーザが各イベントの処理を組み合わせ、さらにそのイベント内で目的とするイベント処理を発生させるかどうかの判断等の処理を記述する必要があった。
例えば、１軸目が目標位置まで到達し、さらに２軸目が目標位置まで到達した時のみ実行したいという処理があった場合は、従来は、１軸目の目標位置到達のイベントで１軸目の到達完了をフラグ等で保持し、さらに２軸目の目標位置到達イベントで１軸目が目標位置まで到達していたかどうかをフラグでチェックして、初めて目的とするイベントの処理が実行される。このように、複数のイベントを連携させて１つのイベント処理を行わせる場合、ユーザは複数の連携したプログラムを記述する必要があった。さらに、複数のイベントの処理で１つのイベントを構築しているため、イベント間のつながりがユーザアプリケーションレベルで密になり、プログラムとして複雑になるという問題があった。
そこで本発明は、モーションコントローラが持つイベントを組み合わせて新しいイベントを追加することができ、新規にイベントを追加するときは、ユーザのイベント処理プログラムの記述の軽減と簡素化ができるモーションコントローラのイベント処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明では、複数のイベントの発火順番を定義する発火順番表を備え、その発火順番表にユーザがイベント処理の発火順番を定義し、その発火順番に従ってイベント処理を実行することを特徴とするものである。
【発明の効果】
【０００５】
本発明の方法によれば、新規のイベント処理を登録する発火順番表と、発火順番表を解析しイベントの発火状況を管理する発火順番表管理部を備え、ＡＰＩを使用して、発火順番表を編集できるようにしたので、モーションコントローラが持つイベントを組み合わせることにより、ユーザはイベント処理を追加できるようになる。従って、ユーザは発火順番表を編集するだけで、イベント処理を容易に追加できる。また、発火されるイベントの順番を考慮する必要がなくなるので、イベント処理が簡潔になる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【０００７】
図１は本発明のイベント処理方法を説明する図である。図において、１から１１は図５と同じであり説明を省略する。
１２は、発火順番表である。発火順番表１２は、イベントの発火順番を定義する発火順番エリア１２ａと、発火イベントの発火状況を示す発火エリア１２ｂで構成される。発火エリア１２ｂは、０：未発火、１：発火済みを表し、イベントの発火状況がわかる。また、発火順番表１２に定義されたイベントのうち、どこまで発火済みであるかを示すカウンタが発火待エリア１２ｃである。この発火待ちエリア１２ｃは初期値が０であり、イベントが順番に沿って発火する都度に１づつ増加する。１３は発火順番表管理部である。発火順番表管理部１３では、イベントの発火を見張り、発火順番表１２の発火待エリア１２ｃが示すイベントと発火されたイベントが同じであれば、その発火待ちエリア１２ｃが示すイベントの発火エリア１２ｂを発火済みとし、発火待エリア１２ｃのカウンタを更新する。
ユーザプログラム７はイベントマネージャ８を通じて、イベント関連表１１にイベントに対応したイベント処理を登録できる。それと同時に、発火順番表１２へイベントの発火順番を登録できる。最終発火イベントは、ユーザが作成したイベント処理を示している。
【０００８】
図２は本発明の方法の処理手順を示すフローチャートであり、１つのイベントを登録するときのものである。図２の例は、モーションコントローラに接続されている１軸目と２軸目のモータへ払い出す移動量の払い出しが完了した際に実行したいイベント処理を登録するものである。先ず、ＳＴＥＰ１では、発火順番表１２へ第１イベントが１軸目の払い出し完了のイベント発火であることを設定する。次に、ＳＴＥＰ２では、第２イベントが２軸目の払い出し完了のイベント発火であることを設定する。ＳＴＥＰ３では、最終的に発火させるイベント処理を最終発火イベントへ登録する。この場合は、イベント処理Ｚが登録される。ＳＴＥＰ３が実行されたときの発火順番表１２は、図３のようになっている。
【０００９】
図４は、発火順番表１２へ登録されたイベント処理を呼び出すまでの手順を示すフローチャートであり、イベントタスク９内で実行される発火順番表管理部１３の処理手順を示している。発火順番表管理部１３は、発火順番表１２に登録されている第１から第ｎイベントまでのイベント発火状態をチェックする。ＳＴＥＰ３では、発火待カウンタ１２ｃが示す待ちイベントが現在発火したイベントと同一かどうかをチェックする。待っているイベントと同一のイベントが発火されていることが確認できたら、発火エリア１２ｂを発火済みとし、発火待エリア１２ｃのカウンタを更新する。ＳＴＥＰ４では、最終イベント発火かどうかをチェックして、発火したイベントが最終イベントであれば、最終発火イベントに登録されているイベント処理を呼び出し、実行する。発火順番管理部１３は、最終イベント処理を実行した後は、最終発火した発火順番表１２の発火エリア１２ｂと発火待ちカウンタ１２ｃを初期値に戻す。
【図面の簡単な説明】
【００１０】
【図１】本発明のイベント処理方法を説明するモーションコントローラのブロック図
【図２】イベント処理の登録手順をしめすフローチャート
【図３】発火順番表
【図４】イベント処理の実行手順を示すフローチャート
【図５】従来のモーションコントローラのブロック図
【符号の説明】
【００１１】
１  モーションプログラム、       ２  プログラム解析部、
３  位置指令作成部、             ４  サーボ制御部、
５  モータ、                     ６  イベント発火部、
７  ユーザプログラム、    ８  イベントマネージャ、
９  イベントタスク、             １０  イベント処理格納部、
１１  イベント関連表、    １２  発火順番表、
１３  発火順番表管理部
【図１】
2006172060.tif 000003
【図２】
2006172060.tif 000004
【図３】
2006172060.tif 000005
【図４】
2006172060.tif 000006
【図５】
2006172060.tif 000007