(57)【要約】【課題】モーションプログラムの実行効率を向上するとともに実行順序の変更を可能にし、命令の同時実行を可能にするモーションプログラムの実行装置を提供する。【解決手段】モーションプログラム１を実行するモーションプログラムの実行装置において、モーション命令を登録するオブジェクトメモリ７とモーション命令の実行条件を登録するイベントメモリ８とモーション命令の実行指令を登録するアクションメモリ９とを持つモーション実行部６と、外部への出力信号を制御する出力命令を登録するオブジェクトメモリ３と外部からの入力信号状態の条件を登録するイベントメモリ４を出力命令を実行するアクションメモリ５とを持つＩＯ実行部２と、モーション命令を実行する前にモーション実行部６とＩＯ実行部２を関連付けるイベント管理テーブル１１を登録するイベント管理部１０とを備える。【選択図】図１
2004005302.tif 000002
【特許請求の範囲】
【請求項１】
機械の動作を制御するモーション命令と外部機器との入出力を制御する命令を含むモーションプログラムの実行装置において、
前記モーション命令を登録するオブジェクトメモリと前記モーション命令の実行条件を登録するイベントメモリと前記モーション命令の実行指令を登録するアクションメモリとを持つモーション実行部と、
外部への出力信号を制御する出力命令を登録するオブジェクトメモリと外部からの入力信号状態の条件を登録するイベントメモリと前記出力命令を実行するアクションメモリとを持つＩＯ実行部と、
前記モーション命令を実行する前に前記モーション実行部と前記ＩＯ実行部を関連付けるイベント管理テーブルを登録するイベント管理部とを備えることを特徴とするモーションプログラムの実行装置。
【請求項２】
前記イベント管理テーブルは、外部からの入力信号状態の一つに対して複数のモーション命令の実行条件を関連付けることを特徴とする請求項１記載のモーションプログラムの実行装置。
【請求項３】
機械の動作を制御するモーション命令と外部機器との入出力を制御する命令を含むモーションプログラムのデバッグ装置において、
前記モーション命令を登録するオブジェクトメモリと前記モーション命令の実行条件を登録するイベントメモリと前記モーション命令の実行指令を登録するアクションメモリとを持つモーション実行部と、
外部への出力信号を制御する出力命令を登録するオブジェクトメモリと外部からの入力信号状態の条件を登録するイベントメモリと前記出力命令を実行するアクションメモリとを持つＩＯ実行部と、
前記モーション実行部と前記ＩＯ実行部を関連付けるイベント管理テーブルを含むイベント管理部と、
モーションプログラムの実行条件が成立した時刻と実行指令が発生した時刻を検出するカレンダと、
モーションプログラムの実行条件と実行指令の内容と前記カレンダで検出した時刻を格納するイベントログ処理部を備えることを特徴とするモーションプログラムのデバッグ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モーションプログラムに基づき産業用機械などの制御対象機器の位置決め制御を行うモーション制御装置のモーションプログラムの実行装置、およびモーションプログラムのデバッグ装置に関する。
【０００２】
【従来の技術】
従来、モーションプログラムは、基本的にプログラムの上から下へ順次実行していく逐次実行型の方式で実行していた。図１１に示すようにモーションプログラム２０で実行される命令がＩＯ命令であれば、ＩＯ実行部２１に指令を発行し、応答を確認後、次命令を実行する。また実行する命令がモーション命令であれば、モーション実行部２２に指令を発行し、応答を確認後、次命令を実行する。このような方式で逐次実行を行っていた。
例えば、図３に示すフローチャートを実行するためには図１２に示すようなモーションプログラムを作成する。図１２の（０１）行のように例えばＧｅｔＩｏ関数でＳＷ１信号がＯＮになるのを待ち、ＯＮになったら（０２）行のＳｔａｒｔＭｏｖｅ関数でＸ軸をＢ点に移動する指令を発行し、完了したら（０３）行を実行する。図３の▲１▼は図１２の（０１）行、図３の▲２▼は図１２の（０２）行、図３の▲３▼は図１２の（０３）行、図３の▲４▼は図１２の（０４）行、図３の▲５▼は図１２の（０６）行、図３の▲６▼は図１２の（１２）行、図３の▲７▼は図１２の（１３）行にそれぞれ対応している。このモーションプログラムにおいて信号ＳＷ２がＯＮの場合の実行タイミング図を図１３に示す。
【０００３】
また、特開平８−６３２０５号には、モーション制御装置ではないが、プログラム実行時に、直列に連なる複数のステップを同時に実行可能にすることができるステップ後追い制御が開示されている。この発明を図１４を参照しての説明する。ＳＦＣプログラムを実行するプログラマブルコントローラにおいて、プログラムのブロック全体を制御し実行するブロック実行手段と、活性ブロックの活性ステップのステップＮＯを格納する活性ステップ情報格納テーブルと、上記活性ステップ情報格納テーブルに格納されたステップＮＯを調べ、その動作出力を実行するステップ実行手段と、上記活性ステップへの移行条件を実行する移行実行手段と、上記移行実行手段による移行成立時、ステップ属性をチェックし、移行保持ステップならば、実行ステップの抹消をせずに次ステップへ移行後も実行ステップを実行し続けるとともに、以後の移行成立により次々に移行先ステップを起動する移行保持ステップ実行手段を備えたものである。
【０００４】
【発明が解決しようとする課題】
ところが、従来の方式では、図１３に示されるようにモーションプログラムが実行している間、モーションプログラム、ＩＯ実行部およびモーション実行部のいずれかが必ず実行していることになり、実行効率が非常に悪い。逐次実行方式では、命令の実行がプログラムに記述された順序に依存するため、プログラムを変更せずに実行順序を変更することは不可能であった。また、１つの命令が終了しなければ次の命令に遷移しないために、命令の同時実行が困難であった。
また、特開平８−６３２０５号に示されている技術では、スキャン時間と呼ばれる一定周期の時間間隔で、活性ステップを検出するため、処理演算装置であるＣＰＵは、絶えず命令を実行する必要があった。同時に、活性ステップを検出するときには、スキャン周期内の活性ステップ解読判断の順序により、オーバヘッドがかかるという問題があった。
本発明は、モーションプログラムの実行効率を向上するとともに実行順序の変更を可能にし、命令の同時実行を可能にするモーションプログラムの実行装置を提供することを目的としている。また、成立順序によりプログラムが遷移しても命令実行を時系列的にトレースするモーションプログラムのデバッグ装置を提供することを目的としている。
【０００５】
【課題を解決するための手段】
本発明の請求項１記載のモーションプログラムの実行装置は、機械の動作を制御するモーション命令と外部機器との入出力を制御する命令を含むモーションプログラムの実行装置において、前記モーション命令を登録するオブジェクトメモリと前記モーション命令の実行条件を登録するイベントメモリと前記モーション命令の実行指令を登録するアクションメモリとを持つモーション実行部と、外部への出力信号を制御する出力命令を登録するオブジェクトメモリと外部からの入力信号状態の条件を登録するイベントメモリと前記出力命令を実行するアクションメモリとを持つＩＯ実行部と、前記モーション命令を実行する前に前記モーション実行部と前記ＩＯ実行部を関連付けるイベント管理テーブルを登録するイベント管理部とを備えることを特徴とするものである。
また、本発明の請求項２記載のモーションプログラムの実行装置は、前記イベント管理テーブルは、外部からの入力信号状態の一つに対して複数のモーション命令の実行条件を関連付けることを特徴とするものである。
また、本発明の請求項３記載のモーションプログラムのデバッグ装置は、機械の動作を制御するモーション命令と外部機器との入出力を制御する命令を含むモーションプログラムのデバッグ装置において、前記モーション命令を登録するオブジェクトメモリと前記モーション命令の実行条件を登録するイベントメモリと前記モーション命令の実行指令を登録するアクションメモリとを持つモーション実行部と、外部への出力信号を制御する出力命令を登録するオブジェクトメモリと外部からの入力信号状態の条件を登録するイベントメモリと前記出力命令を実行するアクションメモリとを持つＩＯ実行部と、前記モーション実行部と前記ＩＯ実行部を関連付けるイベント管理テーブルを含むイベント管理部と、モーションプログラムの実行条件が成立した時刻と実行指令が発生した時刻を検出するカレンダと、モーションプログラムの実行条件と実行指令の内容と前記カレンダで検出した時刻を格納するイベントログ処理部を備えることを特徴とするものである。
【０００６】
上記により、イベントが検出されたときに、イベント管理部がアクションを起動することで登録された命令を実行することになり、モーションプログラム内で信号待ちを実行したり、命令完了待ちすることなく効率良くモーションプログラムを実行することが可能になる。また、イベントの成立順序を制御することだけで、モーション命令の実行順序を制御することが可能になるものである。また、１つのイベントで複数のアクションを関連付けることで、命令の同時実行を可能とするものである。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態について図を参照して説明する。
（実施例１）
本発明の第１の実施の形態について、図１を基に説明する。
図１に本発明のモーションプログラムを実現するためのシステム構造図を示す。本システムはモーション命令を登録するオブジェクトメモリ４とモーション命令の開始や完了などのイベントを登録するイベントメモリ５とモーション命令の実行開始などのアクションを登録するアクションメモリ６を持つモーション実行部２と、信号やデータの出力命令を登録するオブジェクトメモリ７と入力信号の状態一致やデータ一致などのイベントを登録するイベントメモリ８と信号出力開始などのアクションを登録するアクションメモリ９を持つＩＯ実行部６と、イベントとアクションの関連づけを記憶するイベントテーブル１１を持つイベント管理部１０を備えており、モーションプログラム１から登録および関連づけが可能な構造になっている。
【０００８】
図２は上記のイベントとアクションとの関係図である。ＩＯ実行部は、イベントメモリに登録されたイベントの検出を行い、イベント１４が成立した場合、イベント管理部に通知を行う。通知を受けたイベント管理部は、通知されたイベントを持つイベントテーブル１５を検索し、モーション実行部にアクションの実行指令を通知する。通知を受けたモーション実行部は、アクション１６を実行する。アクション１６には（０１）オブジェクトをスタートする動作が登録されているため、（０１）オブジェクトが起動される。
次にモーションプログラムの実行装置をモーションプログラムの例を示して説明する。図３は、モーションプログラムのフローチャートを示している。ＳＷ１のＳＴＡＲＴ信号がＯＮ▲１▼すると、Ｘ軸をＢ点まで移動▲２▼し、Ｂ点まで移動したらさらにＣ点まで移動▲３▼する。ＳＷ２がＯＮ▲４▼していたら、Ｘ軸をＤ点まで移動▲５▼する。ＳＷ２がＯＦＦしており、ＳＷ３がＯＮしているならばＤ点へ移動せずＹ軸をＥ点へ移動する。また、ＳＷ２およびＳＷ３がＯＦＦであれば移動せずＳＷ４のＥＮＤ信号待ちとなり、ＳＷ４がＯＮしたらＸ軸をＡ点まで移動してプログラムは終了する。
【０００９】
図６は、上記フローチャートを実現するためのモーションプログラムである。まず（０１）から（０５）行に示すように移動を行うオブジェクトをＤｅｃｌａｒｅＭｏｖｅ関数を使用して登録する。次にオブジェクトの開始条件であるイベントと開始指令であるアクションを登録する。例えば（０６）行は、ＤｅｃｌａｒｅＥｖｅｎｔ関数を使用してＳＷ１がＯＮしたら通知するというイベントを登録している。
（０７）行は、ＤｅｃｌａｒｅＡｃｔｉｏｎ関数を使用して（０１）行で登録されたオブジェクトをスタートするというアクションを登録、（０８）行は、（０１）行が完了したら通知するというイベントを登録している。このようにしてイベントとアクションを登録する。
【００１０】
さらにプログラムを起動するためにはＳｕｂｓｃｒｉｂｅ関数を使用してイベントとアクションの関連づけを行う。関連づけの役割はフローチャートの接続線と似ている。関連づけを行うことでこのプログラムは起動する。（１７）行は、（０６）行で登録したイベントが検出されたら（０７）行で登録したアクションを起動することを意味する。（２２）行は、ＷａｉｔＦｏｒＥｖｅｎｔ関数を使用し、（１６）行で登録したイベント、即ち（０５）行で登録されたオブジェクトが完了したら通知し、プログラムを終了する。上記のモーションプログラムにおいて、図４に示すようにまずＳＷ１がＯＮし、次にＳＷ２がＯＮし，最後にＳＷ４がＯＮすることで、図３のフローチャ―トの▲１▼→▲２▼→▲３▼→▲４▼→▲５▼→▲６▼→▲７▼が実行される。この実行タイミングを示したのが図７である。この図によると信号待ちをしている▲１▼および▲６▼の区間で実行しているシステムまたはプログラムは存在しておらず、従来の図１０に比べて実行効率が向上することが判る。
また図５に示すようにイベントの成立順序を変えることで図３のフローチャートと異なる動作を行うことができる。図５の例ではＳＷ２がＯＮしてＸ軸がＤ点に移動した後、ＳＷ３がＯＮしてＹ軸がＥ点へ移動する。
同様に図３のフローチャートにおいてＹ軸をＥ点へ移動するためのＳＷ３＝＝ＯＮのイベントをＳＷ２＝＝ＯＮのイベントに変更することで、ＳＷ２がＯＮした場合、Ｘ軸をＤ点へ移動するオブジェクトが開始すると同時にＹ軸をＥ点へ移動するオブジェクトを開始することが可能となる。これにより、命令の同時実行を可能にしている。以上述べたイベントの検出手段は、モーションプログラム実行装置内にあるＣＰＵへの割り込みにより実行される。
【００１１】
（実施例２）
本発明の第２の実施の形態について、図８を基に説明する。
図８に本発明のモーションプログラムの実行順序をロギングするためのシステム構成図を示す。モーションプログラム実行順序をロギングするため、イベントの検出やアクションの起動結果を格納するイベントログテーブル１３を持つイベント処理部１２とイベントの検出やアクションの起動時刻を取得するためのカレンダ１４を備えている。図６を実行した場合の状態遷移図を図９に示す。図９の実行状態をロギングしたものが図１０である。図９の各▲１▼から▲９▼が、図１０の▲１▼から▲９▼に対応して、イベントログテーブル１３に時系列的に格納される。
【００１２】
【発明の効果】
以上のように、上記本発明によれば、モーションプログラムの実行効率を向上するとともに実行順序の変更を可能にし、命令の同時実行を可能にするモーションプログラムの実行装置を提供するものである。同時に、効率よくＣＰＵを稼動させ、また、オーバヘッドなく命令を起動することができる。また、本発明によれば、簡単なプログラム変更を行うことで、実行順序を変更することができ、プログラムミスやプログラムの確認および検証を短時間で行うことができるという格段の効果を奏するものである．
【図面の簡単な説明】
【図１】本発明の第１の実施形態のシステム構造図
【図２】本発明のモーションプログラムにおけるイベントとアクションの関係図
【図３】本発明のモーションプログラム例のフローチャート
【図４】本発明のモーションプログラムをフローチャートに合わせた動作をする場合のイベント成立順序を示す図
【図５】本発明のモーションプログラムをフローチャートと異なる動作をする場合のイベント成立順序例を示す図
【図６】本発明のモーションプログラム例
【図７】本発明のモーションプログラム実行時のタイミング図
【図８】本発明の第２の実施例のシステム構造図
【図９】実行タイミング図
【図１０】イベントログテーブル
【図１１】従来の逐次実行型モーションプログラムのシステム構造図
【図１２】従来のモーションプログラム例
【図１３】従来のモーションプログラム実行時のタイミング図
【図１４】従来例のフローチャート
【符号の説明】
１：モーションプログラム
２：ＩＯ実行部
３：オブジェクトメモリ
４：イベントメモリ
５：アクションメモリ
６：モーション実行部
７：オブジェクトメモリ
８：イベントメモリ
９：アクションメモリ
１０：イベント管理部
１１：イベントテーブル
１２：イベント処理部
１３：イベントログテーブル
１４：カレンダ
【図１】
2004005302.tif 000003
【図２】
2004005302.tif 000004
【図３】
2004005302.tif 000005
【図４】
2004005302.tif 000006
【図５】
2004005302.tif 000007
【図６】
2004005302.tif 000008
【図７】
2004005302.tif 000009
【図８】
2004005302.tif 000010
【図９】
2004005302.tif 000011
【図１０】
2004005302.tif 000012
【図１１】
2004005302.tif 000013
【図１２】
2004005302.tif 000014
【図１３】
2004005302.tif 000015
【図１４】
2004005302.tif 000016