(57)【要約】      （修正有）【課題】汎用的なラダーシーケン回路に自動的に回路を構築することができるラダーシーケンス回路の作成方法の提供。【解決手段】作業者が、マニピュレータを制御するコントローラのコントローラ番号、コントローラのｎ軸目に接続されるマニピュレータのマニピュレータ番号、軸番号といった軸構成パラメータ作成用の設定データを、所望のデータエリアを指定して入力しＳ１、コントローラが、入力された設定データに基づいて、どのデータエリアにどのコントローラ番号、どのマニピュレータ番号、どの軸番号が対応付けられているかを示す軸構成パラメータ表を作成しＳ２、作成された軸構成パラメータ表からコントローラが制御するマニピュレータ番号を検索しＳ３、コントローラの各軸についてマニピュレータの軸の動作を制御するためのコイルの組み合わせ表を作成しＳ４、その組み合わせ表のコイル番号に対応する、汎用のラダーシーケンス回路のコイル番号のコイルを活性化するＳ５。【選択図】            図２
2004272783.tif 000002
【特許請求の範囲】
【請求項１】
マニピュレータを制御するコントローラのコントローラ番号、当該コントローラのｎ軸目に接続されるマニピュレータのマニピュレータ番号、当該マニピュレータの軸の軸番号といった軸構成パラメータ作成用の設定データを、前記コントローラが備えるメモリに所望のデータエリアを指定して入力する段階と、
入力された設定データに基づいて、どのデータエリアにどのコントローラ番号、どのマニピュレータ番号、どの軸番号が対応付けて記憶されているのかを示す軸構成パラメータ表を作成する段階と、
当該軸構成パラメータ表を参照して、前記コントローラの各軸と前記マニピュレータの各軸との対応関係を認識し、前記コントローラのｎ軸目の軸が前記マニピュレータの特定の軸の動作を制御するためのコイル番号を、前記コントローラにあらかじめ記憶されている汎用のラダーシーケンス回路のコイル番号の中から抽出し、前記コントローラの軸とコイル番号とマニピュレータの軸の組み合わせを示した組み合わせ表を作成する段階と、
当該組み合わせ表のコイル番号に対応する、前記汎用のラダーシーケンス回路のコイル番号のコイルを活性化する段階と、
を有することを特徴とするラダーシーケンス回路の作成方法。
【請求項２】
前記軸構成パラメータ表を作成する段階の後に、
前記コントローラが制御するマニピュレータ番号を前記軸構成パラメータ表から検索する段階をさらに含むことを特徴とする請求項１に記載のラダーシーケンス回路の作成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ラダーシーケンス回路の作成方法に関する。
【０００２】
【従来の技術】
ロボットやマニピュレータのように複数のＡＣサーボモータによって動作する生産機械は、複雑な制御が可能なシーケンサーによってその動作が制御される。最近の生産機械は複雑な動きをするものが多いため、シーケンサーに記憶されているラダーシーケンス回路のプログラム量は非常に膨大である。そのため、近年では、ラダーシーケンス回路の構築・変更が効率的に行えるようにするため、下記特許文献１に示すような技術が用いられるようになってきている。
【０００３】
【特許文献１】
特開２０００−１９４４０６号公報
【０００４】
【発明が解決しようとする課題】
従来、ラダーシーケンス回路は、その生産機械に固有の専用回路として作成されるため、たとえばマニピュレータに使用されているＡＣサーボモータの数量がマニピュレータごとに異なっているだけであっても、マニピュレータの軸制御にかかわる部分のラダーシーケンス回路はそれぞれ固有のものを作成しなければならない。したがって、ラダーシーケンス回路の汎用化が困難であり、低コストでラダーシーケンス回路を作成することができないという問題がある。
【０００５】
この問題を解消するためには、ＡＣサーボモータの数量がマニピュレータごとに異なっていても、汎用的なラダーシーケンス回路を用いてそれらの動作を制御できるようにすれば良いが、汎用的なラダーシーケンス回路は莫大なプログラム量となるので、最終的にどの程度の記憶容量となるのかが分かり難く、また、使用されないラダーシーケンス回路の部分も多く記憶しておかなければならないことから、メモリの使用効率も悪くなるという問題がある。
【０００６】
一方、上記特許文献１の技術を含む従来のラダーシーケンス回路の作成方法は、制御の対象となる生産機械の構成に応じて専用のラダーシーケンス回路を作成するための方法であるため、それぞれの生産機械の専用回路を作成するときには有効な方法であるが、それ以外の回路を作成するときにはこの方法をそのまま適用することはできない。
【０００７】
本発明は、上記のような従来の問題点に鑑みて成されたものであり、汎用的な小規模のラダーシーケン回路を使用することができ、また、そのラダーシーケンス回路を記憶させるために必要なメモリの記憶容量を把握することができ、さらに、その汎用的なラダーシーケンス回路に自動的に回路を構築することができるラダーシーケンス回路の作成方法の提供を目的とする。
【０００８】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、本発明にかかるラダーシーケンス回路の作成方法は、作業者が、マニピュレータを制御するコントローラのコントローラ番号、コントローラのｎ軸目に接続されるマニピュレータのマニピュレータ番号、マニピュレータの軸の軸番号といった軸構成パラメータ作成用の設定データを、コントローラが備えるメモリに所望のデータエリアを指定して入力し、コントローラが、入力された設定データに基づいて、どのデータエリアにどのコントローラ番号、どのマニピュレータ番号、どの軸番号が対応付けて記憶されているのかを示す軸構成パラメータ表を作成し、その軸構成パラメータ表を参照して、コントローラの各軸とマニピュレータの各軸との対応関係を認識し、コントローラのｎ軸目の軸がマニピュレータの特定の軸の動作を制御するためのコイル番号を、コントローラにあらかじめ記憶されている汎用のラダーシーケンス回路のコイル番号の中から抽出し、コントローラの軸とコイル番号とマニピュレータの軸の組み合わせを示した組み合わせ表を作成し、その組み合わせ表のコイル番号に対応する、汎用のラダーシーケンス回路のコイル番号のコイルを活性化する。
【０００９】
したがって、コイルの組み合わせ表を作成することによって、コントローラの各軸とマニピュレータの各軸との組み合わせを容易に把握することができ、汎用的なラダーシーケンス回路に自動的に回路を構築することができる。
【００１０】
【発明の効果】
本発明のラダーシーケンス回路の作成方法によれば、軸構成パラメータ作成用の設定データを入力することによって、軸構成パラメータ表やコイルの組み合わせ表が作成でき、また、汎用のラダーシーケンス回路を用いて制御に必要なラダーシーケンス回路を自動的に作成することができ、さらに、そのラダーシーケンス回路を記憶させるために必要な記憶容量を把握することができ、メモリの記憶容量を有効に使用することができるという効果を奏する。
【００１１】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかるラダーシーケンス回路の作成方法の好適な実施の形態を詳細に説明する。図１は、本発明にかかるラダーシーケンス回路の作成方法を実行する装置の概略構成を示すブロック図である。
【００１２】
図１に示すように、この装置は、コントローラ１０、入力端末２０、ディスプレイ３０から構成される。コントローラ１０は、本発明にかかるラダーシーケンス回路の作成方法を実行する部分であり、以降に示すフローチャートの処理を実行して、最終的にラダーシーケンス回路を作成する部分である。入力端末２０は、軸構成パラメータ表を作成するための設定データを作業者が手入力するときに使用されるものである。ディスプレイ３０は、軸構成パラメータ表を表示したり、最終的に作成されたラダーシーケンス回路を表示したりするためのものである。
【００１３】
図２は、本発明にかかるラダーシーケンス回路の作成手順を示すメインフローチャートである。このフローチャートは、請求項１と請求項２に対応するものである。まず、作業者は、マニピュレータを制御するコントローラ１０のコントローラ番号、コントローラ１０のｎ軸目に接続されるマニピュレータのマニピュレータ番号、マニピュレータの軸の軸番号のそれぞれについて、コントローラのデータエリアを指定して入力端末２０から入力する（Ｓ１）。
【００１４】
たとえば、設定データ１の場合、
［コントローラ番号１０−データエリアＤ００００、Ｄ０００１］、
［コントローラ１軸目のマニピュレータ番号１−データエリアＤ０００２、マニピュレータの軸番号１−データエリアＤ０００３］、
［コントローラ２軸目のマニピュレータ番号１−データエリアＤ０００４、マニピュレータの軸番号２−データエリアＤ０００５］、
［コントローラ３軸目のマニピュレータ番号１−データエリアＤ０００６、マニピュレータの軸番号３−データエリアＤ０００７］、
［コントローラ４軸目のマニピュレータ番号２−データエリアＤ０００８、マニピュレータの軸番号１−データエリアＤ０００９］、
［コントローラ５軸目のマニピュレータ番号２−データエリアＤ００１０、マニピュレータの軸番号２−データエリアＤ００１１］、
［コントローラ６軸目のマニピュレータ番号２−データエリアＤ００１２、マニピュレータの軸番号３−データエリアＤ００１３］、
また、設定データ２の場合、
［コントローラ番号１０−データエリアＤ００００、Ｄ０００１］、
［コントローラ１軸目のマニピュレータ番号１−データエリアＤ０００２、マニピュレータの軸番号１−データエリアＤ０００３］、
［コントローラ２軸目のマニピュレータ番号１−データエリアＤ０００４、マニピュレータの軸番号２−データエリアＤ０００５］、
［コントローラ３軸目のマニピュレータ番号１−データエリアＤ０００６、マニピュレータの軸番号３−データエリアＤ０００７］、
［コントローラ４軸目のマニピュレータ番号１−データエリアＤ０００８、マニピュレータの軸番号４−データエリアＤ０００９］、
［コントローラ５軸目のマニピュレータ番号２−データエリアＤ００１０、マニピュレータの軸番号１−データエリアＤ００１１］、
［コントローラ６軸目のマニピュレータ番号２−データエリアＤ００１２、マニピュレータの軸番号２−データエリアＤ００１３］、
［コントローラ７軸目のマニピュレータ番号２−データエリアＤ００１４、マニピュレータの軸番号３−データエリアＤ００１５］、
［コントローラ８軸目のマニピュレータ番号３−データエリアＤ００１６、マニピュレータの軸番号１−データエリアＤ００１７］、
という入力を入力端末２０から行う。
【００１５】
コントローラ１０は、上記のステップで入力された設定データに基づいて、図３に示すような軸構成パラメータ表を作成し、ディスプレイ３０の画面上に表示する（Ｓ２）。次に、コントローラ１０は、作成された軸構成パラメータ表からコントローラ１０が制御するマニピュレータ番号を検索する（Ｓ３）。この処理が行われると、各設定データに対して、図４に示すような対応表が作成される。この表により、設定データ１の場合、コントローラ１０が制御するマニピュレータがＭＯ１とＭＯ２の２台、設定データ２の場合、コントローラ１０が制御するマニピュレータがＭＯ１、ＭＯ２、ＭＯ３の３台であることがわかる。
【００１６】
そして、コントローラ１０は、入力された設定データに基づいて、図５に示すような、コントローラの各軸についてマニピュレータの軸の動作を制御するためのコイルの組み合わせ表を作成する（Ｓ４）。そして、最後に、コントローラ１０は、マニピュレータの各軸の動作を制御するためにあらかじめ準備されている汎用のラダーシーケンス回路のコイルを、組み合わせ表に基づいて活性化する（Ｓ５）。これによって、汎用回路上に設定データに基づくラダーシーケンス回路が自動的に作成される。
【００１７】
つまり、本発明にかかるラダーシーケンス回路の作成方法では、作業者が入力した設定データに基づいて、コントローラが制御するマニピュレータがどれであるのかを検索し、コントローラ内に組み合わせマトリクス表を作成し、その表に基づいて汎用のラダーシーケンス回路を実行する、ということを行っている。
【００１８】
次に、図２のフローチャートにおけるＳ３のステップ、すなわち、軸構成パラメータ表からコントローラが制御するマニピュレータ番号を検索する処理を、図６のサブルーチンフローチャートに基づいて説明する。
【００１９】
まずコントローラ１０は、マニピュレータカウンタＮをクリアする。すなわちＮ＝０とする（Ｓ３１）。次に、データエリアＲを初期値にセットする。すなわち、図３に示すように、Ｒ＝Ｄ０００３とする（Ｓ３２）。セットしたデータエリアＲの値が１か否かを判断する（Ｓ３３）。上記の場合、Ｄ０００３のデータエリアに格納されている値が１か否かを判断することになる。データエリアＲの値が１であれば（Ｓ３３：ＹＥＳ）、Ｎ＋１台目のマニピュレータの値としてデータエリアＲ−１に格納されている値を記憶する（Ｓ３４）。上記の場合、Ｎ＝０、Ｒ＝Ｄ０００３に設定されているのであるから、１台目のマニピュレータの番号としてＤ０００２のデータエリアの値、すなわち１が記憶される。次にマニピュレータカウンタＮの値を１だけインクリメント（Ｎ＝Ｎ＋１）する（Ｓ３５）。そして、データエリアＲを２インクリメント（Ｒ＝Ｒ＋２）する（Ｓ３６）。データエリアＲの値が１でなければ（Ｓ３３：ＮＯ）、Ｓ３６のみが処理される。データエリアＲがＤ００１９を超えなければ（Ｓ３７：ＮＯ）、Ｓ３３に戻って、上記と同様の処理が行われる。データエリアＲがＤ００１９を越えれば（Ｓ３７：ＹＥＳ）、処理を終了して図２のメインフローチャートに戻る。
【００２０】
以上の処理によって、図３に示した軸構成パラメータ表において、マニピュレータの軸番号が１になっているものの数が数えられることになる。この数は入力された設定データに含まれるマニピュレータの台数を表している。上記の設定データ１が入力されているときには、上記の処理によってマニピュレータの軸番号が１になっているものが２回検出されるので、マニピュレータの台数は２台であることがわかる。また、上記の設定データ２が入力されているときには、それが３回検出されるので、マニピュレータの台数は３台であることがわかる。
【００２１】
したがって、以上の処理が行われることによって、最終的に図４の対応表を作成することができる。
【００２２】
次に、図２のフローチャートにおけるＳ４のステップ、すなわち、コントローラの各軸に対するコイルの組み合わせ表の作成の処理を、図７及び図８のサブルーチンフローチャートに基づいて説明する。
【００２３】
まず、コントローラ１０は、コイルのマトリクスエリア（Ｒ０００〜Ｒ１Ｆ７）をクリアする（Ｓ４１）。コントローラ１０には、あらかじめ図９に示すような、コントローラの軸とマニピュレータの軸のマトリクス表に対応する領域が、コイルのマトリクスエリアとして用意されている。このマトリクスエリアは、コントローラとマニピュレータの８軸それぞれに対するコイルの番号を格納する領域である。本実施の形態では、図９に示すように、ＭＯ１〜ＭＯ４の４台のマニピュレータに対するコイルのマトリクスエリアを用意している。したがって、Ｓ４１の処理では、これらのマトリックスエリアの最初（Ｒ０００）から最後（Ｒ１Ｆ７）までを０にしている。
【００２４】
次に、コントローラ１０は、メモリに設けられている、マトリクスエリアの先頭アドレスに（Ｒ０００）をセットする（Ｓ４２）。次に、マニピュレータ番号のデータアドレス（Ｄ０００２）をセットする（Ｓ４３）。そして、マニピュレータの軸番号のデータアドレス（Ｄ０００３）をセットする。さらに、コントローラ１０の何軸目かを数えるための軸番号カウンタＭをクリアし（Ｓ４５）、マニピュレータの台数を数えるためのマニピュレータカウンタＮをクリアする（Ｓ４６）。
【００２５】
以上までの処理で、コイルのマトリックスエリアの先頭アドレスにＲ０００がセットされ、先頭アドレス以外のエリアはすべて０がセットされる。また、マニピュレータ番号のデータアドレスにＤ０００２が、マニピュレータの軸番号のデータアドレスにＤ０００３がセットされる。さらに、コントローラの軸番号カウンタＭとマニピュレータカウンタＮが０にセットされる。
【００２６】
コントローラ１０は、マニピュレータカウンタＮの値がマニピュレータ番号のデータエリアの値と一致しているか否かを判断する（Ｓ４７）。すなわち、Ｎ＝Ｄ０００２の値であるか否かが判断される。Ｎ＝Ｄ０００２の値でなければ（Ｓ４７：ＮＯ）、Ｎの値が１だけインクリメントされ（Ｓ４８）、Ｎの値が４を超えたか否かが判断される（Ｓ４９）。Ｎの値が４を超えていれば（Ｓ４９：ＹＥＳ）、処理を終了してメインフローチャートに戻り、Ｎの値が４を超えていなければ（Ｓ４９：ＮＯ）Ｓ４７の処理に戻る。本実施の形態では、マニピュレータ４台分のマトリクスエリアまでしか用意していないので、Ｓ４９のステップでは、マニピュレータカウンタＮの値が５になったときには処理を終了するようにしてある。
【００２７】
Ｎ＝Ｄ０００２の値であれば（Ｓ４７：ＹＥＳ）、まず、マトリクスオフセットアドレス１の値を計算するために、マトリクスエリアの先頭アドレスの値（Ｒ００００）＋Ｒ（１６進数の８０×（Ｎ−１））を計算し（Ｓ５０）、次にマトリクスオフセットアドレス２の値を計算するために、マトリクスオフセットアドレス１＋Ｒ（１６進数１０×マニピュレータの軸番号のデータアドレスエリアの値（Ｄ０００３）−１）を計算し（Ｓ５１）、マトリクス確定アドレスを計算するために、マトリクスオフセットアドレス２＋Ｒ（１６進数の１×コントローラの軸番号カウンタＭ）の値を計算する（Ｓ５２）。
【００２８】
たとえば、設定データ１の場合、今の状態は、Ｎ＝０、Ｄ０００２の値が１（図３参照）であるから、ＮとＤ０００２の値は一致してなく、Ｓ４８の処理でＮが１にインクリメントされる。この処理でＮの値がＤ０００２の値と同じ１になるので、マトリクスオフセットアドレス１は、Ｒ０００＋Ｒ（８０×（１−１）を計算することによってＲ０００となる。次に、Ｄ０００３の値は１であるので（図３参照）、マトリクスオフセットアドレス２は、Ｒ０００＋１０×（１−１）を計算することによってＲ００００となる。そして最後に、コントローラの軸番号カウンタＭの値が０であるので、マトリクス確定アドレスは、Ｒ０００＋１６進数の１×０を計算することによってＲ０００となる。以上の計算によって、図５に示すように、コントローラの１軸目のＭ０１−１軸にはＲ０００の番号のコイルが設定される。
【００２９】
コントローラ１０は、あらかじめ設けられている汎用のラダーシーケンス回路のマトリクス確定アドレス（Ｒ＊＊＊）のコイルをＯＮして活性化する（Ｓ５３）。上記の場合、Ｒ０００のコイルをＯＮすることになる。
【００３０】
次に、マニピュレータ番号のデータアドレス（Ｄ０００２）を２インクリメントし、また、マニピュレータ軸番号のデータアドレス（Ｄ０００３）を２インクリメントする（Ｓ５４、Ｓ５５）。それぞれのアドレスを２ずつインクリメントするのは、図３に示すように、マニピュレータ番号がＤ０００２、Ｄ０００４、Ｄ０００６のように２飛びで記憶され、マニピュレータ軸番号がＤ０００３、Ｄ０００５、Ｄ０００７のように２飛びで記憶されているからである。
【００３１】
以上の処理が終了すると、コントローラの軸番号カウンタＭの値を１だけインクリメントし（Ｓ５６）、マニピュレータ番号のデータアドレスがＤ００１８を超えたか否かを判断する（Ｓ５７）。マニピュレータ番号のデータアドレスは、図３に示すように、Ｄ０００２からＤ００１８までの間に格納されているからである。
【００３２】
図３の軸構成パラメータ表にあるように、設定データ１と設定データ２とが入力された場合、図７及び図８に示すフローチャートが実行されることによって、最終的に図５に示すようなコイルの組み合わせ表が作成されることになる。
【００３３】
すなわち、設定データ１の場合、コントローラの１軸目にはマニピュレータ１のＭＯ１−１軸が割り当てられ、そのコイルとしてＲ０００が割り当てられる。コントローラの２軸目にはマニピュレータ１のＭＯ１−２軸が割り当てられ、そのコイルとしてＲ０１１が割り当てられる。コントローラの３軸目にはマニピュレータ１のＭＯ１−３軸が割り当てられ、そのコイルとしてＲ０２２が割り当てられる。コントローラの４軸目にはマニピュレータ２のＭＯ２−１軸が割り当てられ、そのコイルとしてＲ０８３が割り当てられる。コントローラの５軸目にはマニピュレータ２のＭＯ２−２軸が割り当てられ、そのコイルとしてＲ０９４が割り当てられる。コントローラの６軸目にはマニピュレータ２のＭＯ２−３軸が割り当てられ、そのコイルとしてＲ０Ａ５が割り当てられる。
【００３４】
設定データ２の場合も、設定データ１の場合と同様、図５に示すように各コイルが割り当てられる。
【００３５】
汎用のラダー回路は、図１０に示すような起動回路が、コントローラ１台目のマニピュレータの起動回路からコントローラ４台目のマニピュレータの起動回路まで４つの起動回路（図１０では１つしか示していない）が設けられている。また、コントローラの各軸の起動を補助する、図１１に示すような回路が、それぞれの軸に対して設けられている。本実施の形態では、８軸のコントローラが４台設けられているので、図１１の回路は３２台設けられている。さらに、コントローラの各軸を起動する、図１２に示すような回路が、それぞれの軸に対して設けられている。本実施の形態では、８軸のコントローラが４台設けられているので、図１２の回路も３２台設けられている。
【００３６】
図３に示したような設定データが入力されると、図５に示すように各コントローラの軸に対してコイルが割り当てられる。そして、割り当てられたコイルがＯＮされることによって、コントローラ１０内に設けられている汎用のラダーシーケンス回路が設定データに対応したラダーシーケンス回路となる。このラダーシーケンス回路を実行することによって、コントローラ１０の各軸にマニピュレータを駆動するためのモータが割り当てられることになる。
【００３７】
コントローラ１０は、上記の処理によって、汎用のラダーシーケンス回路上に、独自のラダーシーケンス回路を自動的に構築することになる。
【図面の簡単な説明】
【図１】本発明にかかるラダーシーケンス回路の作成方法を実行する装置の概略構成を示すブロック図である。
【図２】本発明にかかるラダーシーケンス回路の作成手順を示すメインフローチャートである。
【図３】図２のＳ２のステップが処理されることによって作成される軸構成パラメータ表の一例を示す図である。
【図４】図２のＳ３のステップが処理されることによって作成される対応表の一例を示す図である。
【図５】図２のＳ４のステップが処理されることによって作成されるコイルの組み合わせ表の一例を示す図である。
【図６】図２のＳ３のステップの処理を示すサブルーチンフローチャートである。
【図７】図２のＳ４のステップの処理を示すサブルーチンフローチャートである。
【図８】図２のＳ４のステップの処理を示すサブルーチンフローチャートである。
【図９】図８のサブルーチンフローチャートの動作説明に供する図である。
【図１０】図８のサブルーチンフローチャートの動作説明に供する図である。
【図１１】図８のサブルーチンフローチャートの動作説明に供する図である。
【図１２】図８のサブルーチンフローチャートの動作説明に供する図である。
【符号の説明】
１０…コントローラ、
２０…入力端末、
３０…ディスプレイ。
【図１】
2004272783.tif 000003
【図２】
2004272783.tif 000004
【図３】
2004272783.tif 000005
【図４】
2004272783.tif 000006
【図５】
2004272783.tif 000007
【図６】
2004272783.tif 000008
【図７】
2004272783.tif 000009
【図８】
2004272783.tif 000010
【図９】
2004272783.tif 000011
【図１０】
2004272783.tif 000012
【図１１】
2004272783.tif 000013
【図１２】
2004272783.tif 000014