(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-10-17
(45)【発行日】2025-10-27
(54)【発明の名称】制御プログラム生成装置、制御プログラム生成方法、プログラム
(51)【国際特許分類】
   G05B  19/05        20060101AFI20251020BHJP        
【FI】
G05B19/05 B 
(21)【出願番号】P 2022178890
(22)【出願日】2022-11-08
【審査請求日】2024-12-10
(31)【優先権主張番号】P 2022004975
 
(32)【優先日】2022-01-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000150213
【氏名又は名称】株式会社オプトン
(74)【代理人】
【識別番号】100111970
【氏名又は名称】三林  大介
(72)【発明者】
【氏名】路  海寧
(72)【発明者】
【氏名】可兒  利弘
(72)【発明者】
【氏名】尾崎  秀典
(72)【発明者】
【氏名】與語  照明
【審査官】大古  健一
(56)【参考文献】
【文献】特開平04-005702(JP,A)      
(58)【調査した分野】(Int.Cl.,DB名)
G05B    19/04      -19/05
(57)【特許請求の範囲】
【請求項1】
  複数のアクチュエータを備えた自動製造機械(10)の制御プログラムを生成する制御プログラム生成装置(110)であって、
  前記アクチュエータが指定された動作量で該アクチュエータの自由度方向に動作する基本動作(206)を、前記基本動作を実現するプログラム要素と対応付けて記憶している基本動作記憶部(112)と、
  前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が複数の前記基本動作に分解されると共に、前記基本動作が前記複数の部分期間の何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込部(111)と、
  前記動作チャート上の複数の前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記動作チャート上での前記部分期間の順序に従って結合することにより、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部(113、114)と
  を備え、
  前記動作チャート読込部は、前記動作チャートを読み込むだけでなく、連続する複数の前記部分期間に前記基本動作が割り当てられた少なくとも1つの副チャート(300)も読み込んでおり、
  前記動作チャートには、少なくとも1つの前記部分期間に対して、前記副チャートに固有の副チャート表示(301)が割り当てられており、
  前記制御プログラム生成部は、前記副チャート表示が割り当てられた前記部分期間については、前記副チャート表示に対応する前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記制御プログラムを生成する
  ことを特徴とする制御プログラム生成装置。
【請求項2】
  請求項1に記載の制御プログラム生成装置であって、
  前記制御プログラム生成部は、前記副チャート表示が割り当てられた前記部分期間を、前記副チャート表示に対応する前記副チャートの前記連続する複数の部分期間に置き換えることによって、前記副チャート表示を含んだ前記動作チャートから前記副チャート表示を含まない前記動作チャートを生成した後、生成した前記動作チャートに基づいて前記制御プログラムを生成する
  ことを特徴とする制御プログラム生成装置。
【請求項3】
  請求項1に記載の制御プログラム生成装置であって、
  前記動作チャートには、少なくとも1つの前記部分期間に対して、複数の前記副チャート表示と、前記複数の副チャート表示の中から何れか1つを選択するための選択条件(303)とが割り当てられており、
  前記動作チャート読込部は、前記動作チャートに加えて、前記複数の副チャート表示に対応する複数の前記副チャートも読み込んでおり、
  前記制御プログラム生成部は、前記複数の副チャート表示が割り当てられた前記部分期間については、前記選択条件に基づいて選択された1の前記副チャート表示に対応する前記副チャートに従って、複数の前記プログラム要素が結合された前記制御プログラムを生成する
  ことを特徴とする制御プログラム生成装置。
【請求項4】
  請求項3に記載の制御プログラム生成装置であって、
  前記制御プログラム生成部は、
    前記複数の副チャート表示に対応する前記複数の副チャートについては、前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記副チャート毎の前記制御プログラムである副制御プログラムを生成しておき、
    前記複数の副チャート表示が割り当てられた前記部分期間については、複数の前記副制御プログラムの中から前記選択条件に基づいて選択された1の前記副制御プログラムを実行する前記制御プログラムを生成する
  ことを特徴とする制御プログラム生成装置。
【請求項5】
  複数のアクチュエータを備えた自動製造機械(10)の制御プログラムをコンピュータに
生成させる制御プログラム生成方法であって、
  前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータが指定された動作量で該アクチュエータの自由度方向に動作する複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込工程(STEP1)と、
  前記動作チャートに記載された前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成工程(STEP2、STEP3、STEP4)と
  を備え、
  前記動作チャート読込工程は、前記動作チャートを読み込むだけでなく、連続する複数の前記部分期間に前記基本動作が割り当てられた少なくとも1つの副チャート(300)も読み込んでおり、
  前記動作チャート読込工程で読み込む前記動作チャートには、少なくとも1つの前記部分期間に対して、前記副チャートに固有の副チャート表示(301)が割り当てられており、
  前記制御プログラム生成工程は、前記副チャート表示が割り当てられた前記部分期間については、前記副チャート表示に対応する前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記制御プログラムを生成する
  ことを特徴とする制御プログラム生成方法。
【請求項6】
  複数のアクチュエータを備えた自動製造機械(10)の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムであって、
  前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータが指定された動作量で該アクチュエータの自由度方向に動作する複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込機能(STEP1)と、
  前記動作チャートに記載された前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成機能(STEP2、STEP3、STEP4)と
  を前記コンピュータを用いて実現すると共に、
  前記動作チャート読込機能は、前記動作チャートを読み込むだけでなく、連続する複数の前記部分期間に前記基本動作が割り当てられた少なくとも1つの副チャート(300)を読み込む機能であり、
  前記動作チャート読込機能が読み込む前記動作チャートには、少なくとも1つの前記部分期間に対して、前記副チャートに固有の副チャート表示(301)が割り当てられており、
  前記制御プログラム生成機能は、前記副チャート表示が割り当てられた前記部分期間については、前記副チャート表示に対応する前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記制御プログラムを生成する機能である
  ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
  本発明は、複数のアクチュエータを備えた自動製造機械の制御プログラムを自動で生成する技術に関する。
【背景技術】
【0002】
  自動製造機械には複数のアクチュエータが搭載されており、これらのアクチュエータを用いて複雑な動作を実行可能であるが、個々のアクチュエータは単純な動作を行っているに過ぎない。従って、自動製造機械の複雑な動作は、個々のアクチュエータの単純な動作(以下、基本動作)を組み合わせることによって実現されていることになる。そこで、本願の発明者らは、自動製造機械が動作を開始してから終了するまでの全期間(以下、動作期間)を複数の部分期間に分割し、それぞれの部分期間に対して、動作させるアクチュエータおよび基本動作の内容を設定することによって、自動製造機械に複雑な動作を記述する特別な動作チャート(以下、YOGOチャート)を開発した。
【0003】
  このYOGOチャートには、自動製造機械の所望の動作を実現するために各アクチュエータが行う基本動作の具体的な内容と、各アクチュエータが動作するタイミングとが記載されている。また、個々のアクチュエータが行う基本動作は単純な動作であるから、アクチュエータに基本動作を実行させるためのプログラムは予め作成しておくことができる。従って、YOGOチャートをコンピュータに読み込ませて、各アクチュエータに基本動作を実行させるプログラムを、YOGOチャートに記載された通りの順番で繋ぎ合わせれば、自動製造機械を動作させることができると考えられる。本願の発明者らは、このような着想に基づいて、YOGOチャートから自動製造機械の制御プログラムを自動生成する技術を開発して、既に特許を取得済みである(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
  しかし、上述した開発済みの技術は、自動製造機械に行わせようとする動作が複雑になると、YOGOチャートを作成する難易度が高くなるという問題を有することが判明した。そして、このような問題が生じる理由について検討した結果、次のようなことが明らかとなった。
【0006】
  先ず、上述したようにYOGOチャートは、自動製造機械の動作期間を分割した複数の部分期間に、アクチュエータの基本動作を適切な順番で割り当てることによって作成されている。基本動作はアクチュエータの単純な動作であるため、自動製造機械の動作が複雑になる程、多数の基本動作に分解されることになり、更には、自動製造機械の動作期間も多数の部分期間に分割する必要が生じる。そして、部分期間の数が多くなると、YOGOチャート全体を見渡すことが困難となる。YOGOチャートを作成するためには、複数の基本動作を適切な順番で部分期間に割り当てる必要があるが、YOGOチャート全体を見渡すことができないと、基本動作が適切な順番で割り当てられているか否かを確認することが困難となる。その結果、YOGOチャートを作成するための難易度が高くなってしまうことが判明した。
【0007】
  この発明は、上述した開発済みの技術が有する上述した課題を解決するために成されたものであり、自動製造機械に複雑な動作をさせる場合でも、YOGOチャートを容易に作成することができ、制御プログラムを容易に自動生成することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【0008】
  上述した課題を解決するために、本発明の制御プログラム生成装置は次の構成を採用した。すなわち、
  複数のアクチュエータを備えた自動製造機械の制御プログラムを生成する制御プログラム生成装置であって、
  前記アクチュエータが指定された動作量で該アクチュエータの自由度方向に動作する基本動作を、前記基本動作を実現するプログラム要素と対応付けて記憶している基本動作記憶部と、
  前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が複数の前記基本動作に分解されると共に、前記基本動作が前記複数の部分期間の何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャートを読み込む動作チャート読込部と、
  前記動作チャート上の複数の前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記動作チャート上での前記部分期間の順序に従って結合することにより、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部と
  を備え、
  前記動作チャート読込部は、前記動作チャートを読み込むだけでなく、連続する複数の前記部分期間に前記基本動作が割り当てられた少なくとも1つの副チャート(300)も読み込んでおり、
  前記動作チャートには、少なくとも1つの前記部分期間に対して、前記副チャートに固有の副チャート表示(301)が割り当てられており、
  前記制御プログラム生成部は、前記副チャート表示が割り当てられた前記部分期間については、前記副チャート表示に対応する前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記制御プログラムを生成する
  ことを特徴とする。
【0009】
  また、上述した制御プログラム生成装置に対応する本発明の制御プログラム生成方法は次の構成を採用した。すなわち、
  複数のアクチュエータを備えた自動製造機械(10)の制御プログラムをコンピュータに生成させる制御プログラム生成方法であって、
  前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータが指定された動作量で該アクチュエータの自由度方向に動作する複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込工程(STEP1)と、
  前記動作チャートに記載された前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成工程(STEP2、STEP3、STEP4)と
  を備え、
  前記動作チャート読込工程は、前記動作チャートを読み込むだけでなく、連続する複数の前記部分期間に前記基本動作が割り当てられた少なくとも1つの副チャート(300)も読み込んでおり、
  前記動作チャート読込工程で読み込む前記動作チャートには、少なくとも1つの前記部分期間に対して、前記副チャートに固有の副チャート表示(301)が割り当てられており、
  前記制御プログラム生成工程は、前記副チャート表示が割り当てられた前記部分期間については、前記副チャート表示に対応する前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記制御プログラムを生成する
  ことを特徴とする。
【0010】
  上述した本発明の制御プログラム生成装置および制御プログラム生成方法では、動作チャートを形成する複数の部分期間の中で、連続する複数の部分期間を纏めた副チャートが予め作成されている。また、動作チャート中には、副チャートとして纏められた複数の部分期間の代わりに、副チャートに固有の副チャート表示が部分期間に割り当てられている。そして、動作チャートを読み込む際には副チャートも読み込んでおき、動作チャートから制御プログラムを生成する際には、動作チャート中で副チャート表示が記載された部分期間については、副チャート中の連続する部分期間に割り当てられた基本動作のプログラム要素を、副チャート上での部分期間の順序に従って結合することによって制御プログラムを生成する。
【0011】
  こうすれば、動作チャート中の連続する複数の部分期間を、1つの部分期間に副チャート表示を記載することによって表現可能となるので、動作チャートを短くすることができる。このため、自動製造機械の複雑な動作を記述する場合でも、動作チャートの全体を容易に見渡すことができるので、動作チャートを容易に作成することが可能となる。その結果、自動製造機械の制御プログラムを容易に生成することが可能となる。
【0012】
  また、上述した本発明の制御プログラム生成装置および制御プログラム生成方法では、副チャート表示を含む動作チャートから制御プログラムを生成するに際して、副チャート表示が割り当てられた部分期間を、その副チャート表示に対応する副チャートの連続する複数の部分期間に置き換えることによって、副チャート表示を含んだ動作チャートを、副チャート表示を含まない動作チャートに変換しておいてもよい。そして、変換した動作チャートに基づいて制御プログラムを生成するようにしてもよい。
【0013】
  こうすれば、副チャート表示を含む動作チャートから制御プログラムを生成する場合にも、副チャート表示を含まない動作チャートから制御プログラムを生成する処理を利用することができるので、簡単に制御プログラムを生成することが可能となる。
【0014】
  また、上述した本発明の制御プログラム生成装置では、動作チャートの少なくとも1つの部分期間に対して、複数の副チャート表示と、それら複数の副チャート表示の中から何れか1つを選択するための選択条件とを割り当てておいても良い。そして、動作チャートに加えて、複数の副チャート表示に対応する複数の副チャートも読み込んでおき、動作チャートから制御プログラムを生成する際には、複数の副チャート表示が割り当てられた部分期間については、選択条件に基づいて選択された1の副チャート表示に対応する副チャートに従って、複数のプログラム要素が結合された制御プログラムを生成するようにしても良い。
【0015】
  こうすれば、条件によって動作が切り換わるような複雑な制御プログラムを生成することができる。加えて、副チャート表示を使用するため、動作チャート自体は簡潔な表示とすることができるので、容易に動作チャートを作成することが可能となる。
【0016】
  また、上述した本発明の制御プログラム生成装置では、1つの部分期間に対して複数の副チャート表示が割り当てられており、それら複数の副チャート表示に対応する複数の副チャートについては、副チャートの部分期間に割り当てられた複数の基本動作のプログラム要素を、副チャート上での部分期間の順序に従って結合することによって、副チャート毎の制御プログラムである副制御プログラムを生成しておいても良い。そして、動作チャートから制御プログラムを生成する際には、複数の副チャート表示が割り当てられた部分期間については、複数の副制御プログラムの中から選択条件に基づいて選択された1の副制御プログラムを実行する制御プログラムを生成することとしても良い。
【0017】
  こうすれば、複数の副制御プログラムを予め生成しておき、選択条件に基づいて1の副制御プログラムを選択して実行すれば良い。このため、制御プログラムの実行中に、選択条件に応じて、対応する副制御プログラムを迅速に開始することが可能となる。
【0018】
  また、前述した本発明の制御プログラム生成方法は、コンピュータを用いて制御プログラム生成方法を実現するためのプログラムとして把握することも可能である。すなわち、本発明のプログラムは、
  複数のアクチュエータを備えた自動製造機械(10)の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムであって、
  前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータが指定された動作量で該アクチュエータの自由度方向に動作する複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込機能(STEP1)と、
  前記動作チャートに記載された前記基本動作と、前記基本動作とを実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成機能(STEP2、STEP3、STEP4)と
  を前記コンピュータを用いて実現すると共に、
  前記動作チャート読込機能は、前記動作チャートを読み込むだけでなく、連続する複数の前記部分期間に前記基本動作が割り当てられた少なくとも1つの副チャート(300)を読み込む機能であり、
  前記動作チャート読込機能が読み込む前記動作チャートには、少なくとも1つの前記部分期間に対して、前記副チャートに固有の副チャート表示(301)が割り当てられており、
  前記制御プログラム生成機能は、前記副チャート表示が割り当てられた前記部分期間については、前記副チャート表示に対応する前記副チャートの前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記副チャート上での前記部分期間の順序に従って結合することによって、前記制御プログラムを生成する機能である
  ことを特徴とする。
【0019】
  このようなプログラムをコンピュータに読み込ませて実行させれば、自動製造機械に複雑な動作をさせる場合でも、動作チャートを容易に作成して、制御プログラムを自動で生成することが可能となる。
【図面の簡単な説明】
【0020】
            【
図1】本実施例の制御装置100によって制御されるパイプベンダ10の大まかな構造を示した説明図である。
 
            【
図2】制御装置100が、パイプベンダ10に搭載された各種のアクチュエータAc10~19の動作を制御する様子を概念的に示したブロック図である。
 
            【
図3】YOGOチャートから制御プログラムを自動で生成する基本原理についての説明図である。
 
            【
図4】
図3のYOGOチャートに使用された複数の基本動作についての説明図である。
 
            【
図5】YOGOチャートで使用され得る複数の基本動作を分類した結果についての説明図である。
 
            【
図6】YOGOチャート200の一部を例示した説明図である。
 
            【
図7】YOGOチャート200に記載されたパラメータ記号206bに対してパラメータ値が設定された様子を例示する説明図である。
 
            【
図8】YOGOチャート200にテーブル記号206cを用いて基本動作206を記載する方法を例示した説明図である。
 
            【
図9】パイプベンダ10がパイプを曲げる動作の概要を示した説明図である。
 
            【
図10】パイプベンダ10がパイプを曲げる動作を記述したYOGOチャート200の前半部分を示した説明図である。
 
            【
図11】パイプベンダ10がパイプを曲げる動作を記述したYOGOチャート200の後半部分を示した説明図である。
 
            【
図12】
図10および
図11のYOGOチャート200に記載された基本動作206の一部を例示した説明図である。
 
            【
図13】パイプベンダ10がパイプの4箇所を曲げる動作を記述したYOGOチャート200の全体を示した説明図である。
 
            【
図14】サブチャート300についての説明図である。
 
            【
図15】サブチャート記号301を記載するための専用行207を備えるYOGOチャート200についての説明図である。
 
            【
図16】サブチャート300を用いて記載したYOGOチャート200の全体を示した説明図である。
 
            【
図17】制御装置100に搭載された制御プログラム生成装置110についての説明図である。
 
            【
図18】制御プログラム生成装置110がYOGOチャート200から制御プログラムを生成するために実行する制御プログラム生成処理のフローチャートである。
 
            【
図19】制御プログラム生成処理の中で実行されるYOGOチャート解析処理のフローチャートである。
 
            【
図20】YOGOチャート200にサブチャート300を組み込んでYOGOチャート200を再構成する様子を示す説明図である。
 
            【
図21】YOGOチャート解析処理によってYOGOチャート200から生成される中間データを例示した説明図である。
 
            【
図22】中間データを変換することによって生成された制御プログラムを例示した説明図である。
 
            【
図23】第1変形例のサブチャート300を例示した説明図である。
 
            【
図24】第1変形例のサブチャート300に記載される基本動作206を例示した説明図である。
 
            【
図25】第1変形例のパラメータ記号206dに対して複数のパラメータ値Vが設定された様子を例示した説明図である。
 
            【
図26】第2変形例のYOGOチャート200に記載される選択条件付きサブチャート表示302についての説明図である。
 
            【
図27】選択条件付きサブチャート表示302を有する第2変形例のYOGOチャート200、および選択条件付きサブチャート表示302に含まれる2つのサブチャート300を例示した説明図である。
 
            【
図28】第2変形例のYOGOチャート200から生成された制御プログラムを例示した説明図である。
 
            【
図29】繰り返し回数が指定されたサブチャート記号301を例示した説明図である。
 
          
【発明を実施するための形態】
【0021】
A.装置構成  :
  図1は、本実施例のパイプベンダ10の大まかな外観形状を示した説明図である。パイプベンダ10は、長尺のパイプ材に対して自動で曲げ加工を施すことによって、所望の形状に加工することが可能な一種の自動製造機械である。以下では、自動製造機械がパイプベンダ10であるものとして説明するが、複数のアクチュエータを搭載して、対象物に対して把持、搬送、加工、加熱などの複数の動作を自動で実行することができれば、パイプベンダ10以外の自動製造機械であっても良い。例えば、複数の関節を有するアームロボットであってもよいし、あるいは、複数の関節を有するアームロボットと搬送装置とを組み合わせた製造システムであっても良い。
 
【0022】
  図1に示したように、本実施例のパイプベンダ10は、大まかには横長の直方体の外観形状を有しており、直方体の上面側には長手方向に2本のレール11が架設され、レール11上の一端側(
図1では左側)には、加工対象の図示しないパイプ材を把持して搬送する搬送ユニット12が搭載されている。また、搬送ユニット12が搭載されている側に対して反対側には、図示しないパイプ材に曲げ加工を施す加工ユニット13が搭載されている。搬送ユニット12には、円柱形状の把持軸12aが突設されており、把持軸12aの先端には、図示しないパイプ材を把持するチャック12bが取り付けられている。このため、チャック12bでパイプ材を把持した状態で搬送ユニット12をレール11上で移動させることによって、パイプ材を加工ユニット13に供給し、そのパイプ材に対して加工ユニット13で曲げ加工を施すことが可能となっている。
 
【0023】
  本実施例のパイプベンダ10は、搬送ユニット12の移動量によってパイプ材の送り量を制御することができるので、パイプ材に曲げ加工を施す位置を自由に変更することができる。また、チャック12bが取り付けられた把持軸12aを軸回りに旋回(いわゆる捻り動作)させることによって、所望の方向にパイプ材を曲げることも可能である。こうしたことを実現するために、搬送ユニット12の内部には、チャック12bを開閉させるためのアクチュエータAc10や、把持軸12aを軸回りに回転させるためのアクチュエータAc11や、把持軸12aを軸方向に対して左右方向に平行移動させるためのアクチュエータAc12や、レール11上で搬送ユニット12を進退動させるためのアクチュエータAc13などが搭載されている。本実施例のパイプベンダ10では、これらのアクチュエータAc10~Ac13は何れも交流電源で動作するACサーボモータが用いられているが、アクチュエータに要求される性能に応じて、他の駆動方式のアクチュエータ(例えば、油圧シリンダや、ソレノイドや、パルスモータなど)を採用することができる。尚、搬送ユニット12には、把持軸12aの回転位置や、搬送ユニット12の移動位置を検出するためのエンコーダや、リミットスイッチなどのセンサー類も搭載されているが、図面が煩雑となることを回避する目的で、
図1では図示が省略されている。
 
【0024】
  加工ユニット13の内部には、パイプ材を曲げるために用いられる複数のアクチュエータAc16、Ac17、Ac18、Ac19が搭載されている。更に、2本のレール11の下方の空間にも、2つのアクチュエータAc14、Ac15が搭載されている。これらのアクチュエータAc14~Ac19の動作については、後ほど詳しく説明する。尚、加工ユニット13の内部や2本のレール11の下方の空間にも、エンコーダや、接点スイッチなどのスイッチ・センサー類が搭載されているが、図面が煩雑となることを避けるため、これらについては図示が省略されている。
【0025】
  また、加工ユニット13の内部には、上述した複数のアクチュエータAc10~Ac19を駆動するための複数のドライバアンプ(図示は省略)が搭載されている。ここで、ドライバアンプとは、次のような機能を有する電気部品である。アクチュエータAc10~Ac19に所望の動作をさせるためには、それぞれのアクチュエータAc10~Ac19に適切な波形および電圧の駆動電流を供給する必要がある。しかし、アクチュエータAc10~Ac19に供給するべき駆動電流は、アクチュエータAc10~Ac19の駆動方式によって異なっており、更に同じ方式のアクチュエータであっても、駆動電流の波形や電圧はアクチュエータによって異なっている。そこで、それぞれのアクチュエータAc10~Ac19にはドライバアンプと呼ばれる専用の電気部品が用意されている。そして、パイプベンダ10を制御する制御装置100から、それぞれのドライバアンプに対して駆動量を指定すると、ドライバアンプがアクチュエータAc10~Ac19に対して適切な駆動電流を出力して、アクチュエータAc10~Ac19を駆動するようになっている。
【0026】
  図2は、パイプベンダ10に搭載された複数のアクチュエータAc10~Ac19が、ドライバアンプDA10~DA19を介して制御装置100に接続されている様子を示した説明図である。アクチュエータAc10には、アクチュエータAc10を駆動するためのドライバアンプDA10が接続されており、アクチュエータAc11には、アクチュエータAc11を駆動するためのドライバアンプDA11が接続されている。同様に、アクチュエータAc12~Ac19には、アクチュエータAc12~Ac19を駆動するためのドライバアンプDA12~DA19が接続されている。また、ドライバアンプDA10~DA19は互いに直列に接続されており、一端側のドライバアンプ(図示した例では、ドライバアンプDA10)が、制御装置100に接続されている。しかし、このような接続形態に限らず、例えば、それぞれのドライバアンプDA10~DA19が、制御装置100に直接接続されるようにしても良い。
 
【0027】
  ここで、パイプベンダ10でパイプを曲げ加工するためには、アクチュエータAc10~Ac19を適切なタイミングで且つ適切な動作量で動作させる必要がある。そして、そのためには、制御装置100の上で動作することにより、ドライバアンプDA10~DA19に対して、適切なタイミングで適切な駆動量を指定することが可能な制御プログラムを作成する必要がある。このような制御プログラムの作成には、パイプベンダ10などのハードウェアを作成するよりも多くの労力が必要であった。
【0028】
  しかし、本願の発明者は、制御プログラムを自動的に生成する技術を開発して、既に特許を取得済みである。この特許取得済みの技術では、複数のアクチュエータを備えた自動製造機械(ここでは、パイプベンダ10)の動作を、複数のアクチュエータ(ここでは、アクチュエータAc10~Ac19)の基本的な動作に分解し、それらの基本的な動作を、「YOGOチャート」と命名した特殊な動作チャート上に記入することで自動製造機械の動作を記述する。こうすれば、YOGOチャートから制御プログラムを自動生成することができる。以下では、YOGOチャートから制御プログラムを自動生成する原理について説明する。
【0029】
B.YOGOチャートから制御プログラムを自動で生成する原理  :
  図3は、YOGOチャートと命名した特殊な動作チャートを用いて、自動製造機械(ここではパイプベンダ10)の制御プログラムを自動生成する原理についての説明図である。
図3(a)には、各種の改良を施す前の原始的なYOGOチャートが示されている。後述する本実施例のYOGOチャートは、
図3(a)に示した原始的なYOGOチャートを発展させて改良したものとなっているが、制御プログラムを自動で生成する原理は原始的なYOGOチャートと同じである。そこで、理解を容易とするために、
図3(a)に示した原始的なYOGOチャートを用いて、YOGOチャートから制御プログラムを自動生成する原理について説明する。
 
【0030】
  前述したようにYOGOチャートでは、自動製造機械に搭載された複数のアクチュエータの基本的な動作を組み合わせることによって、自動製造機械の動作を記述する。ここで、アクチュエータの基本的な動作とは、アクチュエータが有する自由度方向へ指定された動作量だけ動作する単純な動作のことである。例えば、モータのような回転するアクチュエータであれば、指定された角度だけ回転する動作が該当し、シリンダのような進退動するアクチュエータであれば、指定された距離だけ移動する動作が該当する。また、モータによってボールねじを回転させることによって、ボールねじに噛み合う部材を進退動させるようなアクチュエータの場合は、モータを指定された角度だけ回転させる動作、あるいは部材を指定された距離だけ移動させる動作の何れかとなる。尚、以下では、アクチュエータが有する自由度方向へ、指定された動作量だけ動作する単純な動作を「基本動作」と称する。
【0031】
  また、YOGOチャートでは、自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、個々のアクチュエータの基本動作は、これら複数の部分期間の中から、基本動作毎に選択された何れか1つの部分期間に割り当てられている。
図3(a)に示した例では、自動製造機械が動作を開始した初めの部分期間(部分期間1)には、あるアクチュエータの基本動作act1が割り当てられており、次の部分期間(部分期間2)には、(そのアクチュエータと同じあるいは別のアクチュエータによる)基本動作act2と、基本動作act3と、基本動作act4とが割り当てられている。その次の部分期間(部分期間3)には、基本動作act5と、基本動作act6とが割り当てられており、その次の部分期間(部分期間4)には基本動作act7が、更にその次の部分期間(部分期間5)には、基本動作act8と、基本動作act9とが割り当てられている。
 
【0032】
  このようにすることで、複数のアクチュエータによる一連の動作を記述することができる。すなわち、先ず初めは、あるアクチュエータによる基本動作act1が開始され、その基本動作act1が終了すると、対応するアクチュエータによって基本動作act2と、基本動作act3と、基本動作act4とが開始される。それらの基本動作が終了すると、今度は基本動作act5と基本動作act6とが開始される。それらの基本動作が終了すると今度は基本動作act7が開始され、基本動作act7が終了すると、基本動作act8および基本動作act9が開始されるというような一連の動作を記述することができる。このように、YOGOチャートでは、自動製造機械の動作を、その自動製造機械に搭載された複数のアクチュエータの基本動作に分解して、それらの基本動作を何れかの部分期間に割り当てることによって、自動製造機械の動作を記述する。
【0033】
  尚、以上の説明から明らかなように、部分期間は、割り当てられたアクチュエータが動作する期間を示しており、時間の長さを示しているわけではない。例えば、部分期間1の時間の長さは基本動作act1の実行に要する時間であり、部分期間2の時間の長さは基本動作act2,act3,act4の実行に要する時間の中で長い方の時間となっている。従って、それぞれの部分期間の時間の長さは、互いに異なっていることが通常である。
【0034】
  また、前述したように、アクチュエータの基本動作は、例えばモータを一定量だけ回転させたり、あるいはシリンダを一定量だけ進退動させたりするといった単純な動作である。従って、アクチュエータに基本動作させるためのプログラム(プログラム要素)を予め作成しておくことができる。例えば、あるアクチュエータに基本動作act1を行わせるためのプログラム要素prog1を予め作成しておくことができる。同様に、基本動作act2~act9についても、それらの基本動作を行わせるためのプログラム要素prog2~prog9を予め作成しておくことができる。
【0035】
  そこで、これらのプログラム要素を、
図3(a)に示した原始的なYOGOチャートに記述された通りに連結してやれば、自動製造機械を動作させるための制御プログラムを自動で生成することができる。すなわち、
図3(b)に示したように、初めにプログラム要素prog1を起動させ、プログラム要素prog1が終了したらプログラム要素prog2~prog4を起動させる。それらのプログラム要素prog2~prog4が終了したら、プログラム要素prog5およびプログラム要素prog6を起動させ、それらのプログラム要素prog5、prog6が終了したら、プログラム要素prog7を起動させる。そして、プログラム要素prog7が終了したら、今度はプログラム要素prog8およびプログラム要素prog9を起動させる。このように、アクチュエータに基本動作を行わせるプログラム要素を予め作成しておき、それらのプログラム要素がYOGOチャートに記述された順序で次々に起動するように、複数のプログラム要素を組み合わせてやる。こうすれば、自動製造機械を動作させるための制御プログラムを、YOGOチャートから自動で生成することができる。
 
【0036】
  また、基本動作を実現するための全てのプログラム要素(ここでは、プログラム要素prog1~prog9)を作成しておく必要があるが、このことは、それほど困難なことではない。この理由は次のようなものである。
図4は、
図3(a)に示した基本動作act1~act9について、動作態様(回転動作や進退動作など)および動作機構(アクチュエータの大まかな構造)を示した説明図である。例えば、基本動作act1は、アクチュエータが回転する動作であり、この動作は、ACサーボモータの回転軸の回転速度を、減速機構を用いて減速することによって実現されている。また、基本動作act2は、アクチュエータが進退動する動作であり、この動作は、ACサーボモータの回転軸が回転する動きを、変換機構を用いて直線方向の動きに変換することによって実現されている。更に、基本動作act3は、アクチュエータが進退する動作であり、この動作は、リニアサーボモータによって実現されている。
 
【0037】
  基本動作act4、基本動作act5、および基本動作act8は、基本動作act1と同様にアクチュエータが回転する動作であり、ACサーボモータに減速機構を組み合わせることによって実現されている。また、基本動作act6および基本動作act7は、基本動作act2と同様にアクチュエータが進退動する動作であり、ACサーボモータに変換機構を組み合わせることによって実現されている。更に、基本動作act9は、基本動作act3と同様にアクチュエータが進退する動作であり、リニアサーボモータによって実現されている。
【0038】
  このように、基本動作act1、基本動作act4、基本動作act5、および基本動作act8を実現する動作機構は、何れもACサーボモータに減速機構を組み合わせたものであり、違いがあるとしても、ACサーボモータの出力や、減速機構の減速比などが違っているに過ぎない。従って、これらの基本動作のプログラム要素は共通化することができる。また、基本動作act2、基本動作act6、および基本動作act7を実現する動作機構は、何れもACサーボモータに変換機構を組み合わせたものであるため、これらの基本動作のプログラム要素は共通化することができる。更に、基本動作act3および基本動作act9のプログラム要素についても、同様な理由から共通化することができる。結局、9つの基本動作act1~act9を実現するプログラム要素としては、3つのプログラム要素prog1~prog3を用意しておき、基本動作に応じて適切なプログラム要素を選択して、適切な動作量(回転角度や移動量など)を指定してやれば、全ての基本動作act1~act9を実現することが可能となる。また、こうした事情(すなわち、多くの基本動作を実現するプログラム要素を共通化することができるという事情)は、
図3に示した場合に限らず、一般的に成立するものである。
 
【0039】
  図5は、YOGOチャートで用いられる一般的な基本動作を分類した結果を示す説明図である。
図5に示すように、基本動作の動作態様は、(特殊なものを除くと)進退動作または回転動作の何れかに分類できる。また、進退動作を実現するための動作機構は、ACサーボモータに変換機構を組み合わせた機構か、リニアサーボモータを用いた機構か、エアシリンダを用いた機構か、油圧シリンダを用いた機構の何れかと考えて、ほぼ間違いはない。同様に、回転動作を実現するための動作機構は、ACサーボモータに減速機構を組み合わせた機構か、パルスモータに減速機構を組み合わせた機構の何れかと考えて、ほぼ間違いはない。従って、全ての基本動作は、進退動作が4つ、回転動作が2つの合計で6つの類型に分類され、同じ類型の基本動作は同じプログラム要素を用いて実現することができるから、6つのプログラム要素を用意しておけば、ほぼ全ての基本動作に対応することができると考えられる。
 
【0040】
  そこで、以下に説明するYOGOチャートでは、基本動作の類型を指定するために「動作記号」を使用する。例えば、YOGOチャートに記載された「CNC-XA」という動作記号は、ACサーボモータに変換機構を組み合わせたアクチュエータによる進退動作を表している。また、「CNC-XL」という動作記号は、リニアサーボモータをアクチュエータとして用いた進退動作を表しており、「AC」という動作記号はエアシリンダによる進退動作を、「OC」という動作記号は油圧シリンダによる進退動作を表している。更に、「CNC-θA」という動作記号は、ACサーボモータに減速機構を組み合わせたアクチュエータによる回転動作を表しており、「OPN-θP」という動作記号は、パルスモータに減速機構を組み合わせたアクチュエータによる回転動作を表している。また、各動作記号の基本動作を実現するためのプログラム要素には、固有のプログラム要素番号が付されている。このため、プログラム要素番号によってプログラム要素を特定することが可能となっている。
【0041】
C.YOGOチャートの記載方法  :
  図6は、YOGOチャート200を用いて自動製造機械の動作を記述する方法についての説明図である。図示した例では、自動製造機械に搭載されているアクチュエータは、アクチュエータA~Eの5つであるものとしている。
図6に示されるように、YOGOチャート200は、複数本の横線と複数本の縦線とが交差した大きな表のような形状となっている。以下では、交差する複数本の線の内、横線については「仕切線」201と称し、縦線については「トリガ線」202と称することにする。
 
【0042】
  トリガ線202には、1番から始まる通し番号が付けられている。
図6に示した例では、YOGOチャート200の上端の欄内に、その下のトリガ線202の通し番号が記載されている。また、互いに隣接するトリガ線202の間の領域は、
図3を用いて前述した部分期間となっており、部分期間にも1番から始まる通し番号(以下、部分期間番号と称する)が付けられている。尚、
図6に例示したYOGOチャート200では、トリガ線202が縦方向に引かれており、従って、トリガ線202とトリガ線202とに挟まれた部分期間は横方向に並んでいる。しかし、トリガ線202は横方向に引いても良く、この場合は、複数の部分期間が縦方向に並ぶことになる。
 
【0043】
  また、本実施例のYOGOチャート200は、複数の仕切線201によって複数の横長の領域(以下では「行」と称することもある)に分割されており、これらの横長の行には1番から始まる通し番号(以下、アクチュエータ番号と称する)が付けられている。自動製造機械に搭載されたアクチュエータは、複数の横長の何れかの行に割り当てられる。例えば、自動製造機械に搭載されたアクチュエータが、アクチュエータA~アクチュエータEの5つのアクチュエータであるとすると、
図6に示したように、アクチュエータ番号が1番の行にはアクチュエータAが割り当てられ、アクチュエータ番号が2番の行にはアクチュエータBが割り当てられ、アクチュエータ番号が3番の行にはアクチュエータCが割り当てられる。同様に、アクチュエータ番号が4番の行にはアクチュエータDが、アクチュエータ番号が5番の行にはアクチュエータEが割り当てられる。
 
【0044】
  そして、アクチュエータA~Eの基本動作は、そのアクチュエータA~Eが割り当てられた横長の行の上の適切な位置に記載する。例えば、アクチュエータAが部分期間1で行う基本動作は、アクチュエータ番号が1番の横長の行と、部分期間番号が1番の縦長の領域(以下では「列」と称することもある)とが交差するマス目状の座標位置に、アクチュエータAにさせたい基本動作を記載する。基本動作を記載する場合は、YOGOチャート200上で基本動作を記載しようとするマス目状の座標位置に動作線203を記入し、その動作線203の上に動作記号206aおよびパラメータ記号206bを記入することによって、基本動作を記載する。
【0045】
  図6に示した例では、アクチュエータ番号が1番で、部分期間番号が1番のYOGOチャート200上で座標位置(以下では、「チャート座標(1,1)」と称する)のマス目の中には、白丸で示した始点204と黒丸で示した終点205とを有する動作線203が記載されており、動作線203の上には、白い星印の後に記載された「CNC-XA」という動作記号206aと、黒い星印の後ろに記載された3つのパラメータ記号206bとを用いて、基本動作206が記載されている。ここで、始点204が1番のトリガ線202の上に記載されており、終点205が2番のトリガ線202の上に記載されているのは、その基本動作206が1番のトリガ線202のタイミングで開始され、2番のトリガ線202のタイミングで終了することを表している。また、動作線203の上に記載された「CNC-XA」という動作記号206aは、
図5を用いて前述したように、ACサーボモータに変換機構を組み合わせたアクチュエータによる進退動作を表している。逆に言えば、「CNC-XA」という動作記号206aが、アクチュエータ番号が1番の座標位置に記載されているということは、アクチュエータ番号1番に対応するアクチュエータAが、ACサーボモータに変換機構を組み合わせることによって進退動作するアクチュエータであることを表している。更に、動作記号206aの下に記載されたパラメータ記号206bは、進退動作の具体的な内容(すなわち、進退動させる移動距離、進退動させる際の移動速度、および進退動させる際の移動トルク)を表している。パラメータ記号206bの詳細については後述する。
 
【0046】
  また、アクチュエータ番号が2番で、部分期間番号が2番の座標位置(チャート座標(2,2))のマス目には、動作線203の上に、「CNC-θA」という動作記号206aと、3つのパラメータ記号206bとを用いて基本動作206が記載されている。ここで、「CNC-θA」という動作記号206aは、ACサーボモータに減速機構を組み合わせたアクチュエータによる回転動作を表している。従って、アクチュエータ番号2番に対応するアクチュエータBは、ACサーボモータに減速機構を組み合わせることによって回転動作するアクチュエータとなる。また、この動作記号206aの下に記載された3つのパラメータ記号206bは、回転角度、回転速度、および回転トルクを表している。それぞれのパラメータ記号206bの具体的な数値(パラメータ値)は、アクチュエータ毎に予め設定されている。
【0047】
  図7は、アクチュエータ毎に、パラメータ記号206bに対してパラメータ値が予め設定されている様子を示した説明図である。尚、アクチュエータ毎にパラメータ記号206bに対してパラメータ値が設定されたテーブルは、「B表」と呼ばれる。例えば、
図7(a)に示したB表には、5つのパラメータ記号206bが設定されているが、これらはアクチュエータAに対して用いられるパラメータ記号206bである。前述したようにアクチュエータAは、ACサーボモータに変換機構を組み合わせることによって進退動作するアクチュエータであるから、パラメータ記号206bを用いて指定するパラメータ値は、移動距離と、移動速度と、移動トルクとなる。このことに対応して、「AA-pos1」および「AA-pos2」という2つのパラメータ記号206bは移動距離を指定するために用いられ、それぞれ50mm、150mmのパラメータ値が設定されている。また、「AA-spd1」および「AA-spd2」という2つのパラメータ記号206bは移動速度を指定するために用いられ、それぞれ10mm/秒、15mm/秒のパラメータ値が設定されている。更に、「AA-trq1」というパラメータ記号206bは、進退動する際に許容する移動トルクを、ACサーボモータの規格トルクに対する比率で指定するために用いられ、100パーセントのパラメータ値(規格トルクまで許容することを意味する値)が設定されている。
 
【0048】
  また、
図7(b)に示したB表にも、5つのパラメータ記号206bが設定されているが、これらはアクチュエータBに対して用いられるパラメータ記号206bである。前述したようにアクチュエータBは、ACサーボモータに減速機構を組み合わせることによって回転動作するアクチュエータであるから、パラメータ記号206bを用いて指定するパラメータ値は、回転させる回転角度と、回転速度と、回転トルクとなる。このことに対応して、「AB-pos1」および「AB-pos2」という2つのパラメータ記号206bは回転角度を指定するために用いられ、それぞれ90度、30度のパラメータ値が設定されている。また、「AB-spd1」および「AB-spd2」という2つのパラメータ記号206bは回転速度を指定するために用いられ、それぞれ15度/秒、10度/秒のパラメータ値が設定されている。更に、「AB-trq1」というパラメータ記号206bは、進退動する際に許容する移動トルクを、ACサーボモータの規格トルクに対する比率で指定するために用いられ、100パーセントのパラメータ値(規格トルクまで許容することを意味する値)が設定されている。
 
【0049】
  同様に、
図7(c)のB表に設定された5つのパラメータ記号206bは、アクチュエータCに対して用いられるパラメータ記号206bであり、
図7(d)のB表に設定された5つのパラメータ記号206bは、アクチュエータDに対して用いられるパラメータ記号206bである。更に、
図7(e)のB表に設定された3つのパラメータ記号206bは、アクチュエータEに対して用いられるパラメータ記号206bである。そして、それぞれのアクチュエータに対して設定されたパラメータ記号206bは、アクチュエータに固有のパラメータ記号206bとなっている。例えば「AB-spd1」というパラメータ記号206bは、アクチュエータBに対して回転速度を指定するためのパラメータ記号206bであり、このパラメータ記号206bが別の目的では使用されないようになっている。
 
【0050】
  YOGOチャート200では、以上に説明した動作記号206aおよびパラメータ記号206bを用いて、基本動作206を記載する。例えば、
図6のYOGOチャート200で、チャート座標(1,1)(すなわち、アクチュエータ番号1番、部分期間番号1番の座標位置)の基本動作206は、動作記号206aが「CNC-XA」であり、パラメータ記号206bが「AA-pos1」、「AA-spd1」、「AA-trq1」となっている。従って、この基本動作206は、アクチュエータを進退動させる動作であり、その時の移動距離は50mm、移動速度は10mm/秒、その時の移動トルクはACサーボモータの規格トルクの最大値まで許容することを表していることになる。
 
【0051】
  以上に説明したように、YOGOチャート200は、アクチュエータ番号と部分期間番号とによって決まる座標位置のマス目の中に、基本動作206の動作記号206aとパラメータ記号206bとを記入することによって記載されている。基本動作206が記入された座標位置のアクチュエータ番号は、基本動作206を行うアクチュエータを表し、部分期間番号は、基本動作206を行うタイミングを表している。更に、基本動作206の動作記号206aおよびパラメータ記号206bは、基本動作206の具体的な内容を表している。このようにして、YOGOチャート200の座標位置に基本動作206を記載することによって、自動製造機械の動作を記述することができる。例えば、
図6のYOGOチャート200は、初めにアクチュエータAを基本動作206で指定された内容で動作させ、アクチュエータAの動作が終了したら、アクチュエータB~Dをそれぞれの基本動作206で指定された内容で動作させ、アクチュエータB~Dの動作が終了したら、今度は、アクチュエータAおよびアクチュエータEをそれぞれの基本動作206の内容で動作させる。そして、アクチュエータAおよびアクチュエータEの動作が終了したら、アクチュエータCおよびアクチュエータDをそれぞれの基本動作206の内容で動作させる。このような一連の動作を記述することが可能となる。
 
【0052】
  尚、本実施例では、動作記号206aと、複数のパラメータ記号206bとを用いて、YOGOチャート200に基本動作206を記載するものとして説明しているが、YOGOチャート200に基本動作206を記載する方法は、これに限られるわけではない。例えば、
図6に示した例では、動作記号206aの下方に列記していた複数のパラメータ記号206bと、それらのパラメータ記号206bに対するパラメータ値とを対応付けたテーブルを設定しておき、それぞれのテーブルには固有のテーブル記号を設定しておく。そして、動作記号206aの下方に複数のパラメータ記号206bを列記する代わりに、それらのパラメータ記号206bに対するパラメータ値が設定されたテーブルのテーブル記号を記載することとしてもよい。
 
【0053】
  図8は、テーブル記号206cを用いてYOGOチャート200に基本動作206を記載する方法を示した説明図である。
図8(a)に示すように、テーブル記号206cを用いて基本動作206を記載する場合は、動作線203の上に動作記号206aを記入し、動作記号206aと動作線203との間にテーブル記号206cを記入する。
図8(a)に示した例では、チャート座標(1,1)(すなわち、アクチュエータ番号が1番で部分期間番号が1番の座標位置)に「CNC-XA」という動作記号206aと、「TABL1-1」というテーブル記号206cとが記入されている。また、チャート座標(2,2)には、「CNC-θA」という動作記号206aと、「TABL2-2」というテーブル記号206cとが記入されている。ここで、チャート座標(1,1)には、「TABL1-1」というテーブル記号206cが記入され、チャート座標(2,2)には、「TABL2-2」というテーブル記号206cとが記入されるというように、テーブル記号206cは、YOGOチャート200の座標位置を含んだ記号となっている。これは次のような理由による。
 
【0054】
  先ず、前述したように、基本動作206はYOGOチャート200の座標位置に記載されるものであり、同じ座標位置に複数の基本動作206が記載されることは無い。そして、テーブル記号206cは、1つの基本動作206に対して1つ設定されるものである。このため、テーブル記号206cについても、1つの座標位置に複数のテーブル記号206cが記載されることはない。すなわち、テーブル記号206cは、ある1つの座標位置に記載されることを想定して設定されることになる。このため、テーブル記号206cを見れば、そのテーブル記号206cが記載される座標位置を認識できるようにするために、座標位置を含んだテーブル記号206cとなっている。
【0055】
  図8(b)には、「TABL1-1」というテーブル記号206cのテーブルに設定された内容が例示されている。尚、このテーブルは、チャート座標(1,1)に記載されるテーブルであるから、アクチュエータ番号1番のアクチュエータ(ここでは、アクチュエータA)が部分期間番号1番のタイミングで基本動作する具体的な内容を設定するテーブルである。
図8(b)に示したように、テーブルには、「パラメータ名」と、パラメータ名の「内容」と、「パラメータ値」とが設定されている。ここで、パラメータ名とは、
図6および
図7を用いて前述したパラメータ記号206bと同じものである。
図6および
図7を用いて前述したパラメータ記号206bは、YOGOチャート200に記載されるので「記号」と称しているのに対し、YOGOチャート200にテーブル記号206cを記載する場合は、パラメータ記号206bをYOGOチャート200に記載することは無いので、単に「パラメータ名」と称している。
 
【0056】
  図8(c)に例示した「TABL2-2」というテーブル記号206cのテーブルについても、同様である。このテーブルは、チャート座標(2,2)に記載されるテーブルであるから、アクチュエータ番号2番のアクチュエータ(ここでは、アクチュエータB)が部分期間番号2番のタイミングで基本動作する具体的な内容を設定するテーブルである。
 
【0057】
  図8(b)と
図7(a)とを比較し、
図8(c)と
図7(b)とを比較すれば明らかなように、
図8(b)のテーブルに設定されている内容は、
図7(a)のB表に設定されている内容の一部を抜き出したものとなっており、
図8(c)のテーブルに設定されている内容は、
図7(b)のB表に設定されている内容の一部を抜き出したものとなっている。従って、
図6を用いて前述したように、YOGOチャート200にパラメータ記号206bを記載する代わりに、それらのパラメータ記号206bをテーブルにまとめて、
図8(a)のようにYOGOチャート200にテーブル記号206cを記載しても、全く同様に、基本動作206のパラメータ値を設定することが可能となる。
 
【0058】
D.パイプベンダ10によるパイプの曲げ動作  :
  以上に説明したように、YOGOチャート200を用いれば、様々な自動製造機械の動作を記述することができる。
図1に示したパイプベンダ10がパイプを曲げる動作も、YOGOチャート200を用いて記載することができる。以下では、実際に記載したYOGOチャート200について説明するが、その準備として、パイプベンダ10がパイプを曲げる動作の概要について説明しておく。
 
【0059】
D-1.パイプを曲げる動作の概要  :
  図9は、パイプベンダ10がパイプを曲げる動作の概要を示した説明図である。パイプを曲げるためには、
図9(a)に示すように、パイプの後端をチャックで把持すると共に、パイプの曲げようとする部分を、曲げ型およびクランプ型という金属製の2つの治具で挟持する。クランプ型はパイプを挟持する部分が浅いU字状に凹んだ形状となっている。また、曲げ型は、全体的には肉厚の円板形状であるが、パイプを挟持する外周側面の部分は浅いU字状に凹んだ形状となっている。従って、クランプ型の凹形状の部分と曲げ型の外周側面がU字状に凹んだ部分とで、パイプをしっかりと挟持することができる。また、パイプ上で、クランプ型と曲げ型とで挟持された位置の下流側(チャック側)には、圧力型という金属製の治具を、クランプ型と同じ方向からパイプに当接させておく。圧力型も、パイプに当接する部分が浅いU字状に凹んだ形状となっている。
 
【0060】
  パイプを曲げる際には、
図9(b)に示すように、クランプ型と曲げ型とでパイプを挟持したまま、曲げ型の回転軸を中心にクランプ型および曲げ型を回転させる。このとき、クランプ型および曲げ型の回転に合わせてチャックを前進させることにより、パイプを曲げ型の外周側面に巻き付けるようにして曲げることができる。また、曲げ型にパイプを巻き付ける際に、パイプの後端をチャックで把持しただけでは、曲げ型とチャックとの間でパイプが撓んでしまい、正確な曲げ角度で曲げることができなくなる。しかし、前述したように、圧力型がクランプ型と同じ方向からパイプに当接しているので、パイプが撓むことがなく、正確な曲げ角度でパイプを曲げることができる。
 
【0061】
  以上のようにしてパイプを曲げたら、パイプを挟持していたクランプ型および曲げ型を緩めた後、クランプ型および曲げ型を逆方向に回転させることによって、初めの位置まで復帰させる。そして、
図9(d)に示すように、チャックを前進させることによってパイプを前進させた後、再びクランプ型と曲げ型とを用いてパイプを挟持する。また、パイプを挟持する前に、チャックを回転させてパイプを捻ってやれば、パイプを曲げる方向を変更することもできる。その後、上述したように、クランプ型と曲げ型とでパイプを挟持したまま、曲げ型の回転軸を中心に曲げ型およびクランプ型を回転させれば、新たな位置でパイプを曲げることができる。このような手順を繰り返すことで、様々な位置で様々な方向にパイプを曲げることが可能となる。以上の説明を踏まえて、
図1のパイプベンダ10がパイプを曲げる動作を記述したYOGOチャート200について説明する。
 
【0062】
D-2.パイプを曲げる動作を記述したYOGOチャート200  :
  図10は、パイプベンダ10がパイプを曲げる動作を記述したYOGOチャート200の前半部分を示した説明図であり、
図11はYOGOチャート200の後半部分を示した説明図である。
図1を用いて前述したように、パイプベンダ10には10個のアクチュエータAc10~Ac19が搭載されているから、YOGOチャート200が備える行(横長の欄)の数は10個となる。それぞれの行には1番~10番までのアクチュエータ番号が付されると共に、アクチュエータ番号1番の行から順番に、10個のアクチュエータAc10~Ac19が割り当てられている。
 
【0063】
  パイプを曲げる際には、先ず初めに、チャック12bでパイプを把持する必要があり、そのためには、搬送ユニット12を前進させることによって、パイプが供給される位置までチャック12bを移動させる必要がある。そこで、
図10に示すように、YOGOチャート200には、アクチュエータ番号が、搬送ユニット12を移動させるアクチュエータAc13に対応する4番で、部分期間番号が1番の座標位置(以下、チャート座標(4,1)と表示)に動作線203を記入し、動作線203の上に基本動作206を記載する。また、チャート座標(4,1)に記載される基本動作206は、
図12(a)に示されている。すなわち、アクチュエータAc13はACサーボモータに変換機構を組み合わせることによって進退動作するアクチュエータであるから、基本動作206の動作記号206aは「CNC-XA」となり、パラメータ記号206bは、移動距離を示す「BO-CA03」と、移動速度を示す「BO-CA04」と、移動トルクを示す「BO-CA05」となる。また、これらのパラメータ記号206bが示すパラメータ値は、アクチュエータAc13用のB表と呼ばれるテーブルに予め設定されている。
 
【0064】
  パイプが供給される位置までチャック12bを移動させたら、チャック12bを用いてパイプを把持する必要がある。そこで、YOGOチャート200には、アクチュエータ番号が、チャック12bを開閉させるアクチュエータAc10に対応する1番で、部分期間番号が2番の座標位置(以下、チャート座標(1,2)と表示)に動作線203を記入し、動作線203の上に基本動作206を記載する。チャート座標(1,2)に記載される基本動作206は、
図12(b)に示されている。
 
【0065】
  チャック12bでパイプを把持したら、今度は搬送ユニット12を後退させることによって、パイプを原点位置まで移動させる。このことに対応して、YOGOチャート200には、パイプの移動に用いるアクチュエータAc13に対応し、且つ、部分期間番号が3番の座標位置(以下、チャート座標(4,3)と表示)に動作線203を記載し、その上に、パイプを移動させるための基本動作206を記載する。チャート座標(4,3)に記載される基本動作206は、
図12(c)に示されている。
 
【0066】
  続いて、パイプを曲げようとする半径(曲げ半径)に応じて曲げ型を選択する。
図9を用いて前述したように、パイプは曲げ型に巻き付けることによって曲げられるから、パイプの曲げ半径は曲げ型の半径に依存する。そこで、
図1のパイプベンダ10は半径が異なる3つの曲げ型を搭載しており、使用する曲げ型を選択可能となっている。尚、以下では、曲げ型を選択する工程を「曲げ型選択工程」と呼ぶことにする。前述したように曲げ型は円板形状となっており、加工ユニット13内には3つの曲げ型が上下方向に重ねられた状態で搭載されている。そして、曲げ型を選択する際には、加工ユニット13を上昇あるいは下降させて、使用する曲げ型をパイプの位置まで移動させることによって行う。また、加工ユニット13の上下動には、ACサーボモータに変換機構を組み合わせて進退動作するアクチュエータAc17を使用する。このことに対応して、YOGOチャート200には、アクチュエータ番号がアクチュエータAc17に対応する8番で、部分期間番号が4番の座標位置(以下、チャート座標(8,4)と表示)に動作線203を記載し、その上に曲げ型選択工程のための基本動作206を記載する。チャート座標(8,4)に記載される基本動作206は、
図12(d)に示されている。尚、
図12(d)に示した基本動作206の動作記号206aが「CNC-XL」となっているのは、アクチュエータAc17の動作機構が、ACサーボモータに変換機構を組み合わせたものであるためである。
 
【0067】
  曲げ型を選択したら、クランプ型を曲げ型に近付けることにより、クランプ型と曲げ型とでパイプを軽く保持してやる。尚、以下では、クランプ型を曲げ型に近付けてパイプを軽く保持する工程を「仮締め工程」と呼ぶことにする。クランプ型の移動はアクチュエータAc19を進退動させることによって行う。このことに対応して、YOGOチャート200には、アクチュエータAc19に対応してアクチュエータ番号が9番で、部分期間番号が5番の座標位置(以下、チャート座標(10,5)と表示)に動作線203を記載し、その上に仮締め工程のための基本動作206を記載する。チャート座標(10,5)に記載される基本動作206は、
図12(e)に示されている。
 
【0068】
  続いて、チャック12bを水平方向に移動させることによって、パイプを曲げ型に密着させる。すなわち、パイプを曲げるためには、パイプを曲げ型に密着させる必要があるが、パイプが曲げ型に密着したままでは、パイプの曲げ位置を変更するためにパイプを軸方向に移動させるときに、パイプの表面に擦り傷が出来てしまう虞がある。そこで、パイプを曲げていない間はパイプが曲げ型に軽く接触する程度にしておき、パイプを曲げる直前にパイプを曲げ型に密着させるようになっている。尚、チャック12bを水平方向に移動させてパイプを曲げ型に密着させる工程を、以下では「密着工程」と呼ぶことにする。チャック12bを水平方向に移動させる動作は、アクチュエータAc12を用いて行う。このことに対応して、YOGOチャート200には、アクチュエータAc12に対応してアクチュエータ番号が3番で、部分期間番号が6番の座標位置(以下、チャート座標(3,6)と表示)に動作線203を記載し、その上に密着工程のための基本動作206を記載する。チャート座標(3,6)に記載される基本動作206は、
図12(f)に示されている。
 
【0069】
  パイプを曲げ型に密着させたら、仮締め状態のクランプ型を曲げ型に近付けることによって、クランプ型および曲げ型でパイプをしっかりと把持する。また、圧力型もクランプ型と面一となる位置に移動させる。クランプ型はパイプをしっかりと把持しているから、圧力型もパイプに密着した状態となる。尚、クランプ型を曲げ型に近付けることによってパイプをしっかりと把持すると共に、圧力型をパイプに密着させる工程を、以下では「本締め工程」と呼ぶことにする。本締め工程でクランプ型を移動させる動作はアクチュエータAc19を用いて行い、圧力型を移動させる動作はアクチュエータAc16を用いて行う。このことに対応して、YOGOチャート200には、アクチュエータAc16に対応してアクチュエータ番号が7番で、部分期間番号が7番の座標位置(以下、チャート座標(7,7)と表示)と、アクチュエータAc19に対応してアクチュエータ番号が10番で、部分期間番号が7番の座標位置(以下、チャート座標(10,7)と表示)とに動作線203を記載し、それぞれの動作線203の上に、アクチュエータAc16の基本動作206と、アクチュエータAc19の基本動作206とを記載する。チャート座標(7,7)に記載される基本動作206は、
図12(g)に示されており、チャート座標(10,7)に記載される基本動作206は、
図12(h)に示されている。
 
【0070】
  以上のような本締め工程が終了したら、いよいよパイプを曲げる工程(以下、「曲げ工程」と呼ぶ)を開始する。
図11に示すように、曲げ工程では、アクチュエータAc13、Ac14、Ac15、およびアクチュエータAc18の4つのアクチュエータを同時に動作させる。以下、順番に説明すると、先ず、アクチュエータAc18を動作させることにより、曲げ型の回転軸を中心に曲げ型およびクランプ軸を回転させる(
図9(b)参照)。また、この動作に合わせて、アクチュエータAc13を動作させることにより、チャック12bを前進させる(
図9(b)参照)。更に、これらの動作に合わせて、アクチュエータAc14、Ac15も動作させる。
 
【0071】
  アクチュエータAc14、Ac15は次のような目的で搭載されている。前述したようにクランプ型は、曲げ型に接近することによってパイプを挟持するだけでなく、曲げ型の回転軸の周りを移動する。このため、パイプを挟持するためのアクチュエータAc19もクランプ型と一緒に曲げ型の回転軸の周りを移動することになり、アクチュエータAc19に接続された各種の電気ケーブルが引っ張られる。これを見越して電気ケーブルを長めにしておくと、電気ケーブルが振れ回って他のアクチュエータに絡まる虞が生じる。こうしたことを避けるためには、クランプ型の移動に合わせて電気ケーブルを送り出したり、手繰り寄せたりすることが望ましい。そこで、
図1に示したパイプベンダ10では、アクチュエータAc19に接続された電気ケーブルを送り出したり、手繰り寄せたりするためのアクチュエータAc14、Ac15が搭載されている。曲げ型の回転軸の周りをクランプ型が移動し、それに伴って圧力型が前進すると、その動きに合わせてアクチュエータAc14、Ac15が前進することによって、アクチュエータAc19に接続された電気ケーブルを送り出すようになっている。
 
【0072】
  曲げ型の回転軸を中心にクランプ型を移動させるアクチュエータAc18のアクチュエータ番号は9番であり、チャック12bを前進させるアクチュエータAc13のアクチュエータ番号は4番であり、電気ケーブルを送り出すアクチュエータAc14、Ac15のアクチュエータ番号は5番および6番であり、更にこれらのアクチュエータAc13~Ac15、Ac18が動作する部分期間の部分期間番号は8番であるから、YOGOチャート200には、チャート座標(4,8)、(5,8)、(6,8)、(9,8)の座標位置に動作線203を記載し、それぞれの動作線203の上にこれらのアクチュエータAc13の基本動作206を記載する。それぞれのチャート座標に記載される基本動作206は
図12(i)、(j)、(k)、(l)に示されている。尚、
図12(j)、(k)に示した基本動作206の動作記号206aが「CNC-XL」となっているのは、アクチュエータAc14、Ac15の動作機構が、ACサーボモータに変換機構を組み合わせたものであるためである。
 
【0073】
  以上のようにして曲げ工程が終了したら、本締め工程でパイプに密着させたクランプ型および圧力型をパイプから離してやる元の位置に戻してまで復帰させる。この工程を、以下では「型開放工程」と呼ぶ。型開放工程では、アクチュエータAc16およびアクチュエータAc19を使用する。アクチュエータAc16のアクチュエータ番号は7番であり、アクチュエータAc19のアクチュエータ番号は10であるから、YOGOチャート200には、チャート座標(7,9)およびチャート座標(10,9)の座標位置に動作線203を記載し、それぞれの動作線203の上にこれらのアクチュエータAc13の基本動作206を記載する。それぞれのチャート座標に記載される基本動作206は
図12(m)、(n)に示されている。
 
【0074】
  型開放工程が終了したら、パイプの曲げ工程で曲げ型の回転軸を中心に移動させたクランプ型を元の位置まで復帰させる。尚、この工程を、以下では「曲げ復帰工程」と呼ぶ。また、前述したように曲げ工程では、クランプ型が曲げ型の回転軸の周りに移動することに伴って、クランプ型でパイプを挟持するためのアクチュエータAc19も曲げ型の回転軸の周りに移動する。このため、アクチュエータAc14、Ac15を前進させることで、アクチュエータAc19の電気ケーブルを送り出している。これに対して、曲げ復帰工程では、クランプ型が曲げ型の回転軸の周りを逆方向に移動するから、送り出した電気ケーブルが余ってしまい、他のアクチュエータに絡まってしまう虞が生じる。そこで、曲げ復帰工程では、クランプ型を元の位置まで復帰させる動作に合わせて、アクチュエータAc14、Ac15を後退させることで、アクチュエータAc19の電気ケーブルを手繰り寄せる動作も行う。このことに対応して、YOGOチャート200には、チャート座標(5,10)、チャート座標(6,10)、およびチャート座標(9,10)の座標位置に動作線203を記載し、それぞれの動作線203の上にこれらのアクチュエータAc13の基本動作206を記載する。チャート座標(5,10)に記載される基本動作206は
図12(o)に示されている。尚、チャート座標(6,10)およびチャート座標(9,10)に記載される基本動作206については、図示を省略する。
 
【0075】
  以上のようにして曲げ復帰工程が終了したら、パイプの取り外し位置まで搬送ユニット12を移動させるためにアクチュエータAc13を前進させた後、パイプを把持していたチャック12bを開くことによって、パイプを取り外せるようにする。このことに対応して、YOGOチャート200には、チャート座標(4,11)にアクチュエータAc13の基本動作206が記載され、チャート座標(1,12)にはアクチュエータAc10の基本動作206が記載されている。尚、チャート座標(4,11)およびチャート座標(1,12)に記載される基本動作206についても、図示を省略する。
【0076】
  また、別の位置でもパイプを曲げる場合は、パイプを取り外す位置ではなく、次にパイプを曲げる位置(曲げ位置)まで、搬送ユニット12を用いてパイプを搬送し、更に、次にパイプを曲げる方向に合わせてチャック12bを回転させる必要がある。このため、チャート座標(4,11)に記載する基本動作206のパラメータ記号206bは、パイプの曲げ位置まで搬送するためのパラメータ記号206bとなる。更に、チャート座標(1,12)にチャックを開く基本動作206を記載する代わりに、チャート座標(2,12)に、チャック12bを回転させるための基本動作206を記載する。尚、チャート座標(2,12)に記載される基本動作206についても、図示を省略する。
【0077】
  こうして、次の曲げ位置までパイプを搬送して、曲げ方向に合わせてチャック12bを回転させたら、部分期間番号が4番~10番までの部分期間と同様な動作を行う。すなわち、前述した「曲げ型選択工程」、「仮締め工程」、「密着工程」、「本締め工程」、「曲げ工程」、「型開放工程」、「曲げ復帰工程」の7つの工程を順番に実行する。この結果、新たな位置でのパイプ曲げ動作が終了する。尚、このような7つの工程からなる一連の動作を、以下では「パイプ曲げ動作」と呼ぶ。別の位置までもパイプを曲げる場合は、次の曲げ位置までパイプを搬送して、曲げる方向に合わせてチャック12bを回転させた後、再び上述したパイプ曲げ動作を行う。
【0078】
  このような操作を繰り返すことによって全ての曲げが終了したら、パイプを取り外し位置まで搬送した後、チャック12bを開く(すなわち、YOGOチャート200に、
図11中の11番、12番の部分期間と同様な内容を記載する)。以上のようなYOGOチャート200を作成してコンピュータに読み取らせれば、前述したメカニズムによって、パイプベンダ10の制御プログラムを自動で生成することが可能となる。
 
【0079】
  図13は、4箇所でパイプを曲げるためのYOGOチャート200の全体を示した説明図である。尚、
図13では、YOGOチャート200の全体を一覧可能とするために、YOGOチャート200が縮小して表示されている。
図13に示したように、4箇所でパイプを曲げようとすると、YOGOチャート200がたいへんに長くなってしまう。この理由は、YOGOチャート200は、アクチュエータの基本動作206を部分期間に割り当てることによって作成されているため、パイプを曲げる箇所が多くなると、YOGOチャート200を構成する部分期間が多くなってしまうためである。ちなみに、
図13に示したYOGOチャート200は、39個の部分期間から構成されている。
 
【0080】
  YOGOチャート200を作成するためには、部分期間に1つずつ基本動作206を記載して行かなければならないが、個々の基本動作206は全体の動きを構成する1つ1つの動作に過ぎない。従って、正しい内容の基本動作206を記載するためには、それまでの部分期間に記載された内容を把握する必要がある。しかし、YOGOチャート200が長くなると、それまでの部分期間に記載された内容を把握することが困難となる。例えば、
図13に示したYOGOチャート200中で後半部分の部分期間に基本動作206を記載するためには、何回目のパイプ曲げ動作の部分期間に該当するのかを確認するために、それ以前の全部分期間に記載した内容を確認する必要がある。ところが、YOGOチャート200が長くなると、記載済みの全部分期間を参照すること自体が困難となる。加えて、個々の部分期間に記載された基本動作206は単純な動作に過ぎないので、それだけでは基本動作206の目的を理解することができない。すなわち、それまでに行われた基本動作206の内容および順番を把握することで、始めて、基本動作206の目的を理解することが可能となる。そして、個々の基本動作206の目的を理解して、ようやく、例えば何回目のパイプ曲げ動作中の部分期間に該当するのかを確認することが可能となる。YOGOチャート200が長くなると、こうしたことは困難となる。そこで、こうした点を改善するために、以下に説明する「サブチャート」という概念をYOGOチャート200に持ち込むことにした。
 
【0081】
E.サブチャート  :
  図13に示したYOGOチャート200は、パイプを4箇所で曲げる動作を記述したものであり、このことに対応して、YOGOチャート200中には、パイプ曲げ動作を記述した部分が4回、繰り返されている。また、前述したように、パイプ曲げ動作は、「曲げ型選択工程」、「仮締め工程」、「密着工程」、「本締め工程」、「曲げ工程」、「型開放工程」、「曲げ復帰工程」の7つの工程から構成されている。これらの工程は、
図10および
図11に例示したYOGOチャート200では、部分期間番号が4番~10番までの連続する7つの部分期間が対応する。
 
【0082】
  そこで、
図14(a)に示すように、これらの部分期間を抜き出した小さなチャートを作成する。尚、以下では、このようにYOGOチャート200の中から連続する複数の部分期間を抜き出した小さなチャートを、「サブチャート300」と呼ぶことにする。そして、サブチャート300には固有のサブチャート記号301を設定しておき、YOGOチャート200を作成する際には、動作線203の上にサブチャート記号301を記載できるようにする。
図14(b)に示した例では、YOGOチャート200上のチャート座標(1,n)に、「SUBCHRT1」というサブチャート記号301が記載されている。尚、「n」は自然数を表している。このように、サブチャート記号301が記載された部分期間は、その1つの部分期間が、連続する複数の部分期間を表していることになる。本実施例では、サブチャート300が本発明における「副チャート」に対応し、サブチャート記号301が本発明における「副チャート表示」に対応する。
 
【0083】
  尚、
図14(b)に示した例では、アクチュエータ番号が1番の座標位置にサブチャート記号301が記載されているが、サブチャート記号301は何れのアクチュエータ番号の座標位置に記載してもよい。あるいは、
図15に例示したように、YOGOチャート200上でアクチュエータが割り当てられる行(横長の領域)に加えて、サブチャート記号301を記載するための専用行207をYOGOチャート200に追加し、追加した専用行207の座標位置にサブチャート記号301を記載するようにしてもよい。
 
【0084】
  また、
図13に例示したYOGOチャート200では、4回のパイプ曲げ動作を行っている。これらは前述した7つの工程から構成される点は同じであるが、選択する曲げ型や、曲げる角度は異なっている。従って、2回目のパイプ曲げ動作に対応するサブチャート300は、
図14(a)に示した1回目のパイプ曲げ動作に対応するサブチャート300とは異なるサブチャート300となる。すなわち、
図14(a)のサブチャート300に対して、基本動作206の動作記号206aが同じで、パラメータ記号206bが異なるサブチャート300となる。そこで、2回目のパイプ曲げ動作に対応するサブチャート300には、「SUBCHRT2」というサブチャート記号301を対応付ける。同様に、3回目のパイプ曲げ動作に対応するサブチャート300には、「SUBCHRT3」というサブチャート記号301を対応付け、4回目のパイプ曲げ動作に対応するサブチャート300には、「SUBCHRT4」というサブチャート記号301を対応付ける。
 
【0085】
  図16は、
図13のYOGOチャート200を、サブチャート300を用いて記載した場合を例示した説明図である。図中では、破線の矩形で囲った位置にサブチャート記号301が記載されている。
図13と
図16とを比較すれば明らかなように、サブチャート300を用いることでYOGOチャート200が短くなるため、YOGOチャート200の全体を容易に参照することが可能となる。
 
【0086】
  加えて、単に連続した複数の部分期間をサブチャート300として纏めるだけでなく、意味を有する一纏まりの動作(ここでは、パイプ曲げ動作)を構成する複数の部分期間をサブチャート300として纏めることで、YOGOチャート200に記載された内容を容易に理解することが可能となる。例えば、
図16に示したYOGOチャート200では、4箇所にサブチャート記号301が記載されているので、パイプ曲げ動作が4回行われることや、これらのパイプ曲げ動作の間に、アクチュエータAc13を用いて搬送ユニット12を移動させ、アクチュエータAc11を用いてパイプを捻っていることを、直ちに認識することが可能となる。
 
【0087】
  このように、サブチャート300を用いてYOGOチャート200を作成すれば、YOGOチャート200の全体を容易に参照することができ、更には、YOGOチャート200に記載されている内容も容易に認識することが可能となる。そのため、自動製造機械に複雑な動作をさせる場合でも、YOGOチャート200を簡単に作成することが可能となる。
【0088】
  尚、以上の説明では、「曲げ型選択工程」、「仮締め工程」、「密着工程」、「本締め工程」、「曲げ工程」、「型開放工程」、「曲げ復帰工程」の7つの工程がパイプ曲げ動作を構成しているものと考えて、これらの工程に対応する7つの部分期間をサブチャート300として纏めている。しかし、パイプ曲げ動作の前には、曲げようとする位置までパイプを前進させる工程や、パイプを曲げる方向に合わせてパイプを捻る工程も存在する。そこで、これらの工程を含めた複数の工程を、サブチャート300として纏めてもよい。
【0089】
F.制御プログラム生成装置110  :
  以上に説明したYOGOチャート200およびサブチャート300を作成しておけば、それらのチャートを制御装置100中の制御プログラム生成装置110(
図2参照)に読み込ませることで、パイプベンダ10の制御プログラムを自動で生成することができる。
 
【0090】
F-1.制御装置100および制御プログラム生成装置110の概要  :
  図17は、制御プログラム生成装置110を内蔵する制御装置100についての説明図である。図示されるように、制御装置100は、チャート作成部101や、チャート記憶部102や、制御プログラム生成装置110や、動作制御装置120を備えている。更に、制御プログラム生成装置110は、チャート読込部111や、基本動作記憶部112や、中間データ生成部113や、中間データ変換部114などを備えている。尚、これらの「部」は、制御装置100がYOGOチャート200やサブチャート300を作成して、それらを記憶しておくために備える機能や、制御プログラム生成装置110がYOGOチャート200やサブチャート300を読み込んで制御プログラムを生成するために備える機能を表した抽象的な概念である。従って、制御装置100や制御プログラム生成装置110が、これらの「部」に相当する部品を組み合わせて形成されていることを表しているわけではない。実際には、これらの「部」は、CPUで実行されるプログラムの形態で実現することもできるし、ICチップやLSIなどを組み合わせた電子回路の形態で実現することもできるし、更には、これらが混在した形態など、様々な形態で実現することができる。
 
【0091】
  チャート作成部101は、モニター画面100mや、操作入力ボタン100sなどに接続されており、パイプベンダ10などの自動製造機械について十分な知識を有する機械技術者などが、モニター画面100mを見ながら操作入力ボタン100sを操作することによって、
図14(a)に例示したサブチャート300や、
図16に例示したYOGOチャート200を作成する。自動製造機械の動作について十分な知識を有する技術者であれば、サブチャート300やYOGOチャート200を簡単に作成することができる。
 
【0092】
  また、本実施例では、YOGOチャートに基本動作206を記入する際には、原則として動作記号206aとパラメータ記号206bとを用いて基本動作206を記入するが、動作記号206aや、パラメータ記号206bや、パラメータ記号206bに対応するパラメータ値は、基本動作記憶部112に記憶されている。そこで、チャート作成部101は基本動作記憶部112を参照可能となっており、サブチャート300やYOGOチャート200を作成する際には、基本動作記憶部112を参照しながら基本動作206を記入することができる。そして、サブチャート300やYOGOチャート200が完成したら、チャート記憶部102に保存しておく。
【0093】
  制御プログラム生成装置110のチャート読込部111は、チャート記憶部102に記憶されているYOGOチャート200やサブチャート300を読み込んで、中間データ生成部113に出力する。中間データ生成部113は、読み込んだYOGOチャート200やサブチャート300を解析することによって、後述する中間データを生成した後、中間データを中間データ変換部114に出力する。YOGOチャートから中間データを生成する処理については、後ほど詳しく説明する。尚、チャート読込部111は、YOGOチャート200やサブチャート300をチャート記憶部102から読み込む代わりに、制御装置100とは別体に設けたコンピュータ50からYOGOチャート200やサブチャート300を読み込むようにしてもよい。
【0094】
  中間データ変換部114は、中間データを受け取ると、基本動作記憶部112を参照することによって、中間データから制御プログラムを生成する。中間データから制御プログラムを生成する方法については、後ほど詳しく説明する。そして、得られた制御プログラムを、後述する動作制御装置120に出力する。尚、本実施例では、中間データ生成部113および中間データ変換部114が、本発明における「制御プログラム生成部」に対応する。
【0095】
F-2.制御プログラム生成処理  :
  図18は、上述した制御プログラム生成装置110が実行する制御プログラム生成処理の概要を示したフローチャートである。図示されるように、制御プログラム生成処理では、先ず初めにYOGOチャートおよびサブチャート300を読み込む(STEP1)。続いて、サブチャート300をYOGOチャート200に組み込むことで、サブチャート記号301を含んだYOGOチャート200を、サブチャート記号301を含まないYOGOチャート200に再構成する(STEP2)。
 
【0096】
  図19は、サブチャート記号301を含んだYOGOチャート200を、サブチャート記号301を含まないYOGOチャート200に再構成する様子を示した説明図である。
図19(a)にはYOGOチャート200の一部分が表示されているが、このYOGOチャート200には、部分期間番号が4番の部分期間にサブチャート記号301が記載されている。そこで、サブチャート記号301が記載された部分期間(図中で斜線を付した部分期間)を、サブチャート記号301が示すサブチャート300で置き換えた後、部分期間番号を再付番することによって、
図19(b)に示すYOGOチャート200を得ることができる。前述した
図16のYOGOチャート200の場合であれば、サブチャート記号301が記載された部分期間は4つあるから、それら全ての部分期間について上述した操作を行う。こうすれば、
図16のようにサブチャート300を含むYOGOチャート200を、
図13のようにサブチャート300を含まないYOGOチャート200に変換することができる。
図18のSTEP2では、以上のような処理を行う。
 
【0097】
  以上のようにして、サブチャート300を含まないYOGOチャート200が得られたら、そのYOGOチャート200を解析することによって中間データを生成する(STEP3)。
図20は、YOGOチャートを解析して中間データを生成する処理(YOGOチャート解析処理)のフローチャートである。この処理は、制御プログラム生成装置110内の中間データ生成部113によって実行される。
 
【0098】
  図20に示すように、YOGOチャート解析処理では、先ず初めに、部分期間番号Nおよびアクチュエータ番号Mを「1」に初期化する(STEP10)。続いて、YOGOチャート上のチャート座標(M,N)に、基本動作が記入されているか否かを判断する(STEP11)。STEP10で部分期間番号Nおよびアクチュエータ番号Mを初期化した直後は、NおよびMは何れも「1」であるから、YOGOチャート上のチャート座標(1,1)に基本動作が記入されているか否かを判断することになる。
 
【0099】
  図10に例示したYOGOチャート200の場合では、チャート座標(1,1)には基本動作は記入されていないから、STEP11では「no」と判断して、アクチュエータ番号Mが最終値に達したか否かを判断する(STEP14)。本実施例のパイプベンダ10には10個のアクチュエータAc10~Ac19が搭載されているから、アクチュエータ番号Mの最終値は10となる。従って、チャート座標(1,1)の基本動作の有無を確認した後のSTEP14の判断では、「no」と判断されるので、アクチュエータ番号Mを1つ増加させる(STEP15)。そして、増加させたアクチュエータ番号Mを用いて、再び、チャート座標(M,N)に基本動作が記入されているか否かを判断する(STEP11)。
 
【0100】
  このように、部分期間番号Nは「1」のまま、アクチュエータ番号Mを1つずつ増加させながら、チャート座標(M,1)に基本動作が記入されているか否かを判断して行き、基本動作が記入されているチャート座標(M,1)に達すると、STEP11で「yes」と判断されることになる。
【0101】
  そして、STEP11で「yes」と判断された場合は、そのチャート座標に記入されている基本動作の動作記号206aおよびパラメータ記号206bを読み込む(STEP12)。
図10に例示したYOGOチャートでは、チャート座標(4,1)に達すると、STEP11で「yes」と判断されて、チャート座標(4,1)に記載された基本動作206の動作記号206aおよびパラメータ記号206bを読み込む。
図12(a)を用いて前述したように、チャート座標(4,1)には、基本動作206の動作記号206aとして「CNC-XA」という動作記号206aと、パラメータ記号206bとして「BO-CA03」、「BO-CA04」、「BO-CA05」という3つのパラメータ記号206bとが記載されているから、これら4つの記号を読み込むことになる。
 
【0102】
  続いて、基本動作206を読み込んだチャート座標(M,N)と、読み込んだ動作記号206aおよびパラメータ記号206bとを含んだデータをメモリに記憶する(STEP13)。(以下、中間データ(M,N,動作記号,数値テーブル))をメモリに記憶する(STEP13)。
図10に例示したYOGOチャートの座標(4,1)の場合であれば、(4,1,CNC-XA,BO-CA03,BO-CA04,BO-CA05)という中間データをメモリに記憶することになる。
 
【0103】
  こうして、YOGOチャートから読み出した中間データをメモリに記憶した後は(STEP13)、アクチュエータ番号Mが最終値(ここでは、10)に達したか否かを判断する(STEP14)。その結果、最終値に達していない場合は(STEP14:no)、アクチュエータ番号Mを1つ増加させた後(STEP15)、STEP11に戻って、再び、YOGOチャート上のチャート座標(M,N)に基本動作が記入されているか否かを判断する。
【0104】
  これに対して、アクチュエータ番号Mが最終値に達していた場合は(STEP14:yes)、今度は、部分期間番号Nが最終値に達したか否かを判断する(STEP16)。例えば、YOGOチャート上で、パイプベンダ10の動作が100個の部分期間を用いて記述されているのであれば、部分期間番号Nの最終値は100となる。
【0105】
  その結果、部分期間番号Nが最終値に達していない場合は(STEP16:no)、部分期間番号Nを1つ増加させると共に(STEP17)、アクチュエータ番号Mを「1」に初期化した後(STEP18)、STEP11に戻って、再び、YOGOチャート上のチャート座標(M,N)に基本動作が記入されているか否かを判断する。すなわち、
図10のYOGOチャート200では、部分期間番号Nが1番の部分期間を上から順番に確認して行き、一番下まで確認したら、今度は、部分期間番号Nが2番の部分期間を上から順番に確認して行き、2番の部分期間を確認し終わったら、部分期間番号Nが3番の部分期間というように、部分期間番号Nが小さな部分期間から大きな部分期間に向かって順番に、YOGOチャートに記入されている基本動作を読み出して、中間データをメモリに記憶して行く。
 
【0106】
  そして、このような操作を繰り返していき、最終的に、部分期間番号Nが最終値に達したと判断したら(STEP16:yes)、YOGOチャートに記入された全ての基本動作を読み出したことになる。そこで、メモリに記憶しておいた中間データを読み出して、中間データ変換部114(
図17参照)に出力する(STEP19)。
 
【0107】
  図21には、
図10に例示したYOGOチャートを解析した場合に得られる中間データが例示されている。図示されるように中間データは、アクチュエータ番号Mと、部分期間番号Nと、動作記号206aと、パラメータ記号206bとが、この順序で並んだ一組のデータ(以下、「データレコード」と呼ぶ)が集まったものとなっている。また、各データレコードの部分期間番号Nは、1~部分期間番号Nの最終値までの何れかの値を取り、アクチュエータ番号Mは、YOGOチャートに記載されたアクチュエータ番号Mの何れかの値を取る。また、YOGOチャート上の全ての部分期間番号Nは、必ず何れかのデータレコードに記載されており、YOGOチャートに記載された全てのアクチュエータ番号Mは、必ず何れかのデータレコードに記載されている。このような中間データを出力したら、
図20のYOGOチャート解析処理を終了して、
図18の制御プログラム生成処理に復帰する。
 
【0108】
  図18の制御プログラム生成処理では、このようにして得られた中間データに基づいて、制御プログラムを生成する(STEP4)。
図22には、
図21に例示した中間データから生成された制御プログラムが示されている。図示されるように制御プログラムは、アクチュエータ番号Mと、部分期間番号Nと、プログラム要素番号Pと、パラメータ値Vとが、この順序で並んだ一組のデータ(すなわち、データレコード)が集まったものとなっている。
図21に示した中間データのデータレコードと、
図22に示した制御プログラムのデータレコードとを比較すれば明らかなように、制御プログラムのデータレコードは、中間データのデータレコード中の動作記号206aが、その動作記号206aに対応するプログラム要素番号Pに置き換えられ(
図5参照)、中間データのデータレコード中のパラメータ記号206bが、そのパラメータ記号206bに対応するパラメータ値Vに置き換えられたものとなっている(
図7参照)。
 
【0109】
  中間データ中の動作記号206aおよびパラメータ記号206bを、それぞれプログラム要素番号Pおよびパラメータ値Vに置き換える操作は、
図17中の中間データ変換部114が、基本動作記憶部112を参照することによって実行される。すなわち、基本動作記憶部112には、動作記号206aがプログラム要素番号と対応付けて記憶されている(
図5参照)。更に、基本動作記憶部112には、
図7に例示したように、パラメータ記号206bと、パラメータ記号206bに対して設定されたパラメータ値Vとが対応付けて記憶されている。そこで、中間データ変換部114は、これらを参照することによって、中間データ中の動作記号206aやパラメータ記号206bを、プログラム要素番号Pおよびパラメータ値Vに置き換えて行く。
 
【0110】
  以上のようにして、中間データから制御プログラムを生成したら(
図18のSTEP4)、生成した制御プログラムを、制御装置100に搭載された動作制御装置120に出力して(STEP5)、
図18の制御プログラム生成処理を終了する。
 
【0111】
E.動作制御装置120の動作の概要  :
  制御装置100の動作制御装置120は、制御プログラムを受け取ると、以下のようにしてパイプベンダ10の動作を制御する。
図22に示した制御プログラムを用いて説明すると、動作制御装置120は、先ず初めに、制御プログラムの各レコードの中から部分期間番号Nが1番のレコードを抽出する。
図22の制御プログラムでは、(4,1,1,25,120,100)というレコードが抽出されることになる。レコード中の1番目の数字はアクチュエータ番号であり、レコード中の3番目の数字はプログラム要素番号である。そして、レコード中の4番目~6番目の数字は、プログラム要素に指定するパラメータ値Vである。そこで、動作制御装置120は、プログラム要素番号で特定されるプログラム要素を用いて、アクチュエータ番号で特定されるアクチュエータを、パラメータ値Vで指定された内容(すなわち、移動量、移動速度、移動トルク)で動作させる。
 
【0112】
  指定された内容の動作が終了したら、部分期間番号Nに「1」を加算する。そして、加算された部分期間番号(ここでは2番)のレコードを、制御プログラムの中から抽出する。
図22の制御プログラムでは、(1,2,1,60,20,100)というレコードが抽出されることになる。そこで、アクチュエータ番号が1番のアクチュエータを、プログラム要素番号が1番のプログラム要素を用いて、パラメータ値Vで指定された内容で動作させる。そして、指定された内容の動作が終了したら、再び、部分期間番号Nに「1」を加算して、加算後の部分期間番号のレコードを抽出した後、レコードの内容に従ってアクチュエータを動作させる。
 
【0113】
  また、制御プログラムの中から、部分期間番号Nを有するレコードが複数抽出される場合もある。例えば、
図22に示した例では、部分期間番号が7番や、8番や、9番の場合は複数のレコードが抽出される。このような場合は、それぞれのレコードの内容に従って、複数のアクチュエータを同時に動作させる。そして、全てのアクチュエータについて動作が終了したら、再び、部分期間番号Nに「1」を加算して、加算後の部分期間番号のレコードを抽出する。このような操作を繰り返していくことによって、パイプベンダ10を動作させることが可能となる。
 
【0114】
  以上に詳しく説明したように、パイプベンダ10の動作をYOGOチャート200に記述しておけば、YOGOチャート200から制御プログラムを自動で生成してパイプベンダ10を動作させることができる。また、YOGOチャート200が大きくなって全体を参照することが困難になった場合でも、YOGOチャート200の中の連続する複数の部分期間をサブチャート300として纏めれば、YOGOチャート200の全体を容易に参照することが可能となる。更に、単に連続した複数の部分期間でなく、意味を有する一纏まりの動作(例えば、パイプ曲げ動作)を構成する複数の部分期間を、サブチャート300として纏めれば、YOGOチャート200に記載された内容を容易に理解することも可能となる。
【0115】
F.変形例  :
  上述した本実施例には幾つかの変形例が存在する。以下では、本実施例との相違点を中心として各種の変形例について説明する。
【0116】
F-1.第1変形例  :
  上述した実施例では、サブチャート300として纏める複数の部分期間に記載された内容が、基本動作206のパラメータ記号206bも含めて完全に同じものでない限り、複数のサブチャート300は異なるサブチャート300であるものとして取り扱い、サブチャート記号301も異なるものとして説明した。例えば、
図13に示したYOGOチャート200には、4回のパイプ曲げ動作が含まれているが、それらは曲げ半径や曲げ角度などが違っている。このため、それぞれのパイプ曲げ動作は別々のサブチャート300に纏められ、サブチャート300毎に異なるサブチャート記号301が設定されているものとして説明した(
図16参照)。
 
【0117】
  しかし、基本動作206のパラメータ記号206bの一部が異なるだけの複数のサブチャート300については、サブチャート300を共通化することも可能である。以下では、このような第1変形例のサブチャート300について、
図14(a)に示したパイプ曲げ動作を記述したサブチャート300を例に用いて説明する。
 
【0118】
  前述したように、
図14(a)に示したサブチャート300は、連続する7つ部分期間から構成されており、それぞれの部分期間は、パイプ曲げ動作の「曲げ型選択工程」、「仮締め工程」、「密着工程」、「本締め工程」、「曲げ工程」、「型開放工程」、「曲げ復帰工程」の7つの工程を表している。ここで、「曲げ型選択工程」とは、パイプの曲げ半径に応じた曲げ型を選択するために、加工ユニット13を上昇あるいは下降させる工程である。また、「仮締め工程」とは、クランプ型を曲げ型に近付けてパイプを軽く保持する工程であり、「密着工程」とは、チャック12bを水平方向に移動させてパイプを曲げ型に密着させる工程であり、「本締め工程」とは、圧力型をパイプに密着させる工程である。「曲げ工程」とは、曲げ型の回転軸を中心にクランプ型を移動させてパイプを曲げる工程であり、「型開放工程」とは、パイプを押さえつけていた圧力型やクランプ型をパイプから離間させる工程である。更に、「曲げ復帰工程」とは、曲げ型の回転軸を中心に移動させたクランプ型を元の位置まで戻す工程である。
 
【0119】
  パイプの曲げ半径が違えば使用する曲げ型が変わるので、「曲げ型選択工程」で移動させる加工ユニット13の位置が変わり、更に「仮締め工程」や「密着工程」や「本締め工程」や「型開放工程」や「曲げ復帰工程」で移動させるクランプ型や圧力型の移動量が変わる。しかし、移動速度や移動トルクなどについては、パイプの曲げ半径が違っても変える必要はない。また、パイプを曲げる角度が変われば、「曲げ工程」で曲げ型の回転軸を中心にクランプ型を移動させる角度が変わり、これに伴ってチャックの前進量や電気ケーブルの送り出し量も変わる。しかし、移動速度や移動トルクなどについては変える必要がない。従って、
図16に示したYOGOチャート200では、「SUBCHRT1」、「SUBCHRT2」、「SUBCHRT3」、「SUBCHRT4」という4つのサブチャート記号301が用いられており、このことに対応して4つのサブチャート300を用意しておく必要があるが、これらのサブチャート300は、基本動作206のパラメータ記号206bの一部が異なるに過ぎない。
 
【0120】
  そこで、第1変形例では、複数のサブチャート300間で異なるパラメータ記号206bについては、共通のパラメータ記号206bを設定しておき、そのパラメータ記号206bのパラメータ値Vを読み出す度に異なるパラメータ値Vが読み出されるようにする。すなわち、通常のパラメータ記号206bには、
図7に例示したB表によって固有のパラメータ値Vが設定されているが、新たに導入するパラメータ記号206bでは、読み出す度にパラメータ値Vが順番に切り換わるようになっている。
 
【0121】
  図23は、第1変形例のサブチャート300を例示した説明図である。第1変形例のサブチャート300は、
図14(a)に示したサブチャート300に対して、基本動作206の中の一部のパラメータ記号206bが異なっている。また、
図24は、第1変形例のサブチャート300に記載された基本動作206を示した説明図である。
 
【0122】
  図24(a)には、
図23のサブチャート300のチャート座標(8,1)に記載された基本動作206が示されている。尚、この基本動作206は、加工ユニット13を移動させて曲げ型を選択する基本動作206であり、
図10および
図11を用いて前述したYOGOチャート200では、
図12(d)に示した基本動作206が対応する。
図24(a)に示した第1変形例の基本動作206と、
図12(d)の基本動作206とを比較すれば明らかなように、第1変形例の基本動作206では、移動量を示す一番上のパラメータ記号206bが、「KL-KR-X」というパラメータ記号206dに変更されている。尚、パラメータ記号206dの末尾の「-X」という表示は、このパラメータ記号206dは読み出す度にパラメータ値Vが異なるパラメータ記号206dであることを示している。また、
図24(a)では、変更されたパラメータ記号206dを破線の矩形で囲って表示することによって、容易に認識可能としている。
 
【0123】
  図24(b)には、
図23のサブチャート300のチャート座標(10,2)に記載された基本動作206が示されている。尚、この基本動作206は、クランプ型でパイプを仮締めするための基本動作206であり、
図10および
図11を用いて前述したYOGOチャート200では、
図12(e)に示した基本動作206が対応する。
図24(b)の基本動作206は、
図12(e)の基本動作206に対して、クランプ型の移動量を示す一番上のパラメータ記号206bが、「CL-SP-X」というパラメータ記号206d(すなわち、読み出す度にパラメータ値Vが異なるパラメータ記号206d)に変更されている。また、
図24(b)でも、変更されたパラメータ記号206dは破線の矩形で囲って表示されている。
 
【0124】
  他の基本動作についても同様である。すなわち、
図23のサブチャート300のチャート座標(3,3)に記載された基本動作206は、1番上のパラメータ記号206bがパラメータ記号206dに変更されており(
図24(c)参照)、チャート座標(7,4)に記載された基本動作206は、1番上のパラメータ記号206bがパラメータ記号206dに変更されている(
図24(d)参照)。更に、チャート座標(10,4)の基本動作206や、チャート座標(4,5)、チャート座標(5,5)、チャート座標(6,5)、チャート座標(9,5)、チャート座標(7,6)、チャート座標(10,6)、チャート座標(5,7)、チャート座標(6,7)、チャート座標(9,7)の基本動作206についても、1番上のパラメータ記号206bがパラメータ記号206dに変更されている(
図24(e)~(n)参照)。そして、これらのパラメータ記号206dに対しては、次のようにしてパラメータ値Vが設定されている。
 
【0125】
  図25は、第1変形例のパラメータ記号206dに対して設定されたパラメータ値Vを例示した説明図である。
図24を用いて前述したように、第1変形例のサブチャート300には、14個のパラメータ記号206dが記載されているが、それぞれのパラメータ記号206dに対して4回分のパラメータ値Vが設定されている。尚、4回分となっている理由は、ここではパイプを4箇所で曲げる場合を想定していることに対応して、YOGOチャート200の中で
図23のサブチャート300が4箇所で用いられるためである。また、
図25に示すように、変形例のパラメータ記号206dに対して複数回分のパラメータ値Vが設定された表は、「C表」と呼ばれる。
 
【0126】
  以上に説明した第1変形例のサブチャート300を用いれば、パイプ曲げ動作の回数が増えても、1つのサブチャート300を用意しておけば良い。このため、より一層簡単にYOGOチャート200を作成することが可能となる。
【0127】
F-2.第2変形例  :
  また、YOGOチャート200にサブチャート記号301を記載する代わりに、サブチャート記号301と、そのサブチャート記号301が選択されるための選択条件とを組み合わせた選択条件付きサブチャート表示302をYOGOチャート200に記載するようにしても良い。
【0128】
  図26は、選択条件付きサブチャート表示302が記載された第2変形例のYOGOチャート200についての説明図である。
図26(a)に示したように、選択条件付きサブチャート表示302は、前述したサブチャート記号301と同様に動作線203の上に記載される。また、選択条件付きサブチャート表示302は、少なくとも1つのサブチャート記号301と、そのサブチャート記号301が選択されるための選択条件303とを有している。
図26(b)~
図26(d)には、複数の選択条件付きサブチャート表示302が例示されている。
 
【0129】
  図26(b)に例示した選択条件付きサブチャート表示302は、「SUBCHRT1」および「SUBCHRT2」という2つのサブチャート記号301と、「SW1」という選択条件303とによって形成されている。ここで「SW1」という選択条件303は、スイッチSW1の状態がONの場合はSUBCHRT1を選択し、スイッチの状態がOFFの場合はSUBCHRT2を選択することを表している。「SUBCHRT1」および「SUBCHRT2」のそれぞれのサブチャート記号301に対応するサブチャート300を予め作成しておけば良い。ここで、それぞれのサブチャート300を形成する部分期間の数は、互いに異なっていても良い。また、選択条件付きサブチャート表示302に記載するサブチャート記号301の個数は、2個には限られない。
 
【0130】
  図26(c)に例示した選択条件付きサブチャート表示302は、「SUBCHRT1」、「SUBCHRT2」、「SUBCHRT3」という3つのサブチャート記号301と、「VALUE」という選択条件303とによって形成されている。ここで「VALUE」という選択条件303は、VALUEという関数の値が「0」の場合はSUBCHRT1を選択し、「1」の場合はSUBCHRT2を選択し、「2」の場合はSUBCHRT3を選択することを表している。それぞれのサブチャート記号301に対応するサブチャート300は予め作成しておけば良く、各サブチャート300の部分期間の数は互いに異なっていても良い。
 
【0131】
  更に、
図26(d)に例示した選択条件付きサブチャート表示302は、「SUBCHRT1」という1つのサブチャート記号301と、「IF(A)」という選択条件303とによって形成されている。ここで「IF(A)」という選択条件303は、「A」という条件を満足する場合はSUBCHRT1を選択するが、満足しない場合はSUBCHRT1を選択せずに、その部分期間をスキップすることを表している。
 
【0132】
  これらの選択条件付きサブチャート表示302を用いれば、各種の条件によって各アクチュエータの動作を柔軟に切り換えることができる。それでいながら、YOGOチャート200の全体を見渡すことができるので、簡単にYOGOチャート200を作成することが可能となる。
【0133】
  選択条件付きサブチャート表示302を有するYOGOチャート200から制御プログラムを生成する際に、制御プログラムを生成する時点で選択条件303が確定(サブチャート記号301を選択可能)となっている場合と、選択条件303が確定していない場合とが存在し得る。制御プログラムを生成する時点で選択条件303が確定している場合は、
図19を用いて前述したように、サブチャート300を含まないYOGOチャート200を再構成することで制御プログラムを生成することができる。しかし、制御プログラムを生成する時点で選択条件303が確定していない場合は、次のようにして制御プログラムを生成することができる。
 
【0134】
  例えば、
図27(a)に例示したように、YOGOチャート200中で部分期間番号が4番の部分期間に選択条件付きのサブチャート表示302が割り当てられており、その選択条件付きのサブチャート表示302の内容は、
図27(b)に例示したように、SW1というスイッチの状態によって、SUBCHRT1またはSUBCHRT2の何れかのサブチャート300を選択するという内容であったとする。また、SUBCHRT1およびSUBCHRT2のサブチャート300は、それぞれ
図27(c)および
図27(d)に示したサブチャート300であったとする。
 
【0135】
  制御プログラムを生成する時点でスイッチSW1の状態が確定していない場合は、SUBCHRT1およびSUBCHRT2のサブチャート300を中間データ(
図21参照)に変換し、その中間データを制御プログラム(
図22参照)に変換して記憶しておく。尚、以下では、サブチャート300の部分だけを変換して得られた制御プログラムを、「サブ制御プログラム304」と称する。本実施例のサブ制御プログラム304は本発明における「副制御プログラム」に対応する。
 
【0136】
  そして、YOGOチャート200から制御プログラムを生成する際には、選択条件付きサブチャート表示302が割り当てられた部分期間を除いた他の部分期間について、制御プログラムを生成する。
図27(a)に示したYOGOチャート200では部分期間番号が4番の部分期間に選択条件付きサブチャート表示302が割り当てられているから、部分期間番号が1番から3番までの部分期間と、部分期間番号が5番以降の部分期間について制御プログラムを生成する。そして、部分期間番号が4番の部分期間についてはジャンプ命令を記載しておき、スイッチSW1の状態に応じて、SUBCHRT1またはSUBCHRT2の何れかのサブ制御プログラム304にジャンプできるようにしておく。また、ジャンプした先のサブ制御プログラム304が終了したら、部分期間番号が5番の部分期間に戻って、制御プログラムの実行を再開すればよい。
 
【0137】
  図28には、こうして生成された制御プログラムが例示されている。図中に一点鎖線で囲った部分に記載された「4:(402,500,600)」という表示はジャンプ命令である。例示したジャンプ命令は、部分期間番号が4番の部分期間では、「402」という番号が示すスイッチ(ここではスイッチSW1)の状態に従って、「500」あるいは「600」のアドレスから始まるサブ制御プログラム304にジャンプすること、および、ジャンプした先のサブ制御プログラム304の実行が終わったら、部分期間番号が5番の部分期間から制御プログラムの実行を再開することを表している。
 
【0138】
  このようにすれば、制御プログラムを生成する時点で選択条件303が確定していない場合でも、選択条件付きサブチャート表示302を含んだYOGOチャート200を用いて制御プログラムを生成することができる。
【0139】
  以上、本実施例および各種の変形例の制御プログラム生成装置110について説明したが、本発明は上記の実施例および変形例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
【0140】
  例えば、
図19に例示したように、サブチャート記号301をYOGOチャート200に記載することによって、YOGOチャート200からサブチャート300が読み出されるものとして説明した。しかし、これに限らず、サブチャート300の中にサブチャート記号301を記載することによって、サブチャート300から別のサブチャート300が読み出されるようにしても良い。
 
【0141】
  また、YOGOチャート200中に同一のサブチャート記号301を繰り返して記載する場合には、サブチャート記号301に繰り返し回数を指定できるようにしても良い。例えば、
図29(a)に示した例では、YOGOチャート200中に「SUBCHRT1」というサブチャート記号301が3回、連続して記載されている。このような場合は、
図29(b)に例示したように、「SUBCHRT1(3)」というサブチャート記号301を記載することによって、「SUBCHRT1」というサブチャート記号301が3回繰り返されることを表しても良い。
 
【符号の説明】
【0142】
    10…パイプベンダ、    11…レール、        12…搬送ユニット、
    12a…把持軸、        12b…チャック、    13…加工ユニット、
    50…コンピュータ、    100…制御装置、    100m…モニター画面、
    100s…操作入力ボタン、    101…チャート作成部、
    102…チャート記憶部、      110…制御プログラム生成装置、
    111…チャート読込部、      112…基本動作記憶部、
    113…中間データ生成部、      114…中間データ変換部、
    120…動作制御装置、        201…仕切線、          202…トリガ線、
    203…動作線、    204…始点、    205…終点、    206…基本動作、
    206a…動作記号、          206b…パラメータ記号、
    206c…テーブル記号、      206d…パラメータ記号、    207…専用行、
    300…サブチャート、        301…サブチャート記号、
    302…選択条件付きサブチャート表示、      303…選択条件、
    304…サブ制御プログラム、    Ac10~19…アクチュエータ、
    DA10~19…ドライバアンプ。