IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オプトンの特許一覧

特許7074378制御プログラム生成装置、制御プログラム生成方法、プログラム
<>
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図1
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図2
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図3
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図4
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図5
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図6
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図7
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図8
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図9
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図10
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図11
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図12
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図13
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図14
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図15
  • 特許-制御プログラム生成装置、制御プログラム生成方法、プログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】制御プログラム生成装置、制御プログラム生成方法、プログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20220517BHJP
   B25J 9/22 20060101ALI20220517BHJP
【FI】
G05B19/05 B
B25J9/22 A
【請求項の数】 8
(21)【出願番号】P 2021001236
(22)【出願日】2021-01-07
(62)【分割の表示】P 2020075017の分割
【原出願日】2020-04-20
(65)【公開番号】P2021174522
(43)【公開日】2021-11-01
【審査請求日】2021-01-07
(73)【特許権者】
【識別番号】000150213
【氏名又は名称】株式会社オプトン
(74)【代理人】
【識別番号】100111970
【弁理士】
【氏名又は名称】三林 大介
(72)【発明者】
【氏名】與語 照明
【審査官】影山 直洋
(56)【参考文献】
【文献】国際公開第2015/063925(WO,A1)
【文献】特開平11-202912(JP,A)
【文献】特開2000-259216(JP,A)
【文献】特開2018-185772(JP,A)
【文献】特開2003-228403(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
B25J 9/22
(57)【特許請求の範囲】
【請求項1】
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムを生成する制御プログラム生成装置(100a、110)であって、
前記アクチュエータの自由度毎の動作を表す基本動作を、前記基本動作を実現するプログラム要素と対応付けて記憶している基本動作記憶部(102)と、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が複数の前記基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込部(103)と、
前記動作チャート上の複数の前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記動作チャート上での前記部分期間の順序に従って結合することにより、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部(105)と
を備えることを特徴とする制御プログラム生成装置。
【請求項2】
請求項1に記載の制御プログラム生成装置であって、
前記動作チャート読込部は、複数の前記部分期間が横方向または縦方向の何れか一方に並んで配置され、前記横方向または縦方向の何れか他方には、複数の前記アクチュエータが並んで割り当てられた表形式の動作チャート上で、対応する座標位置に前記基本動作が記入されることによって、前記自動製造機械の動作が記述された前記動作チャートを読み込む
ことを特徴とする制御プログラム生成装置。
【請求項3】
請求項1または請求項2に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、タイマによる計時動作または計数器による計数動作の少なくとも一方を、前記計時動作または前記計数動作を実現する前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記計時動作または前記計数動作の少なくとも一方が、前記複数の部分期間の何れかに割り当てられた前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項4】
請求項1ないし請求項3の何れか一項に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、スイッチの状態を監視することによってスイッチが切り換わったことを検知するスイッチ検知動作と、前記スイッチ検知動作を実現する前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記スイッチ検知動作が前記複数の部分期間の何れかに割り当てられた前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項5】
請求項1ないし請求項4の何れか一項に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、スピーカーによる音声出力動作またはライトによる発光動作の少なくとも一方を、前記音声出力動作または前記発光動作を実現するための前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記音声出力動作または前記発光動作の少なくとも一方を含んだ前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項6】
請求項1ないし請求項5の何れか一項に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、ヒーターによる加熱動作を、前記加熱動作を実現するための前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記加熱動作を含んだ前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項7】
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムをコンピュータに生成させる制御プログラム生成方法であって、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込工程(STEP1)と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作が割り当てられた前記部分期間とを抽出する動作チャート解析工程(STEP2)と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成工程(STEP3)と
を備えることを特徴とする制御プログラム生成方法。
【請求項8】
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムであって、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込機能(STEP1)と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作が割り当てられた前記部分期間とを抽出する動作チャート解析機能(STEP2)と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成機能(STEP3)と
を、コンピュータを用いて実現するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のアクチュエータを備えた自動製造機械の制御プログラムを生成する技術に関する。
【背景技術】
【0002】
今日では、あらゆる業種に亘って、工場などの製造現場で省力化が強く要請されるようになっており、この傾向は今後も益々強まるものと予想されている。製造現場の省力化を推進するためには、加工あるいは製造しようとする対象物を把持したり、対象物を搬送したり、対象物に対して各種の加工を施したり、加熱したりする動作を自動で行う自動製造機械を活用することが必須となる。
【0003】
そこで、加工あるいは製造しようとする対象物や、加工の内容(例えば、切削加工や、曲げ加工)や、食品の場合は加熱の程度などに応じて、様々なタイプの自動製造機械が開発されている(例えば、特許文献1、特許文献2)。
【0004】
また、加工あるいは製造する対象物の大きさや形状や材質などは製造現場毎に異なっており、更に、加工の内容や加熱の程度なども製造現場によって異なっている。このため、製造現場に自動製造機械を導入する際には、他の製造現場で用いられている自動製造機械を流用することは困難であり、製造現場毎に専用の自動製造機械を新たに開発しなければならないことが一般的である。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2011-245602号公報
【文献】特開2018-192570号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、新たな自動製造機械を開発するには、その自動製造機械を制御するための制御プログラムも新たに作成する必要があり、このことが、製造現場に新たな自動製造機械を導入する際の大きな障害になっているという問題があった。この理由は次のようなものである。
【0007】
新たな自動製造機械を開発する際には、先ず始めに機械設計技術者が、自動製造機械に要求される各種の機能を把握した上で、要求される機能を実現可能な自動製造機械の図面を作成する。続いて、プログラムを作成するための技術を有する技術者(いわゆるプログラマ)が、図面に記載された各種のアクチュエータや機械部品の動作を理解した上で、各種のアクチュエータが協調しながら動作することによって、要求される機能を実現するような制御プログラムを作成する必要がある。
【0008】
このように、制御プログラムを作成するには、自動製造機械の設計が終わった後に、専門的な技能を有するプログラマが取り掛かる必要があるため、制御プログラムの作成に取り掛かる時期が遅くなる。加えて、プログラマが各種のアクチュエータや機械部品の動作を理解する時間も必要となる。その結果、自動製造機械の開発に取り掛かってから、製造現場に納品するまでに長い時間が必要となっており、このことが、製造現場に新たな自動製造機械を導入する際の大きな障害になっていた。
【0009】
この発明は、従来の技術が有する上述した課題を解決するために成されたものであり、自動製造機械の制御プログラムを自動で生成することによって、新たな自動製造機械を開発するために要する時間を大幅に短縮することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決するために、本発明の制御プログラム生成装置は次の構成を採用した。すなわち、
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムを生成する制御プログラム生成装置(100a、110)であって、
前記アクチュエータの自由度毎の動作を表す基本動作を、前記基本動作を実現するプログラム要素と対応付けて記憶している基本動作記憶部(102)と、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が複数の前記基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込部(103)と、
前記動作チャート上の複数の前記部分期間に割り当てられた複数の前記基本動作の前記プログラム要素を、前記動作チャート上での前記部分期間の順序に従って結合することにより、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部(105)と
を備えることを特徴とする。
【0011】
また、上述した制御プログラム生成装置に対応する本発明の制御プログラム生成方法は次の構成を採用した。すなわち、
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムをコンピュータに生成させる制御プログラム生成方法であって、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込工程(STEP1)と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作が割り当てられた前記部分期間とを抽出する動作チャート解析工程(STEP2)と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成工程(STEP3)と
を備えることを特徴とする。
【0012】
かかる本発明の制御プログラム生成装置および制御プログラム生成方法では、自動製造機械に搭載されている複数のアクチュエータの基本動作と、基本動作を実現するためのプログラム要素とが対応付けて予め記憶されている。また、自動製造機械の動作が、次のような動作チャートによって予め記述されている。すなわち、自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、自動製造機械の動作が複数の基本動作に分解されている。そして、それぞれの基本動作毎に、複数の部分期間の中から何れか1つの部分期間が選択されて、その部分期間に基本動作が割り当てられることによって、自動製造機械の動作が記述された動作チャートが予め作成されている。そして、自動製造機械の制御プログラムを生成するに際しては、自動製造機械の動作が記述された動作チャートを読み込んで、動作チャートに記載された基本動作をプログラム要素に変換すると共に、それらのプログラム要素を、部分期間の順番に従って結合することによって、制御プログラムを生成する。
【0013】
アクチュエータの基本動作は単純な動作であるため、アクチュエータに基本動作を行わせるためのプログラム要素を予め作成しておくことができる。また、機械設計技術者は自動製造機械を設計する際に、アクチュエータの基本動作を組み合わせることによって、自動製造機械の動作を実現しているから、自動製造機械を設計した機械設計技術者や、自動製造機械の構造について十分な知識を有する技術者であれば、自動製造機械の動作を記述した動作チャートを容易に作成することができる。従って、動作チャートを読み込んで、動作チャート中の基本動作をプログラム要素に変換し、動作チャートに従ってプログラム要素を結合してやれば、自動製造機械の動作を制御する制御プログラムを自動で生成することが可能となる。
【0014】
また、上述した本発明の制御プログラム生成装置においては、次のような動作チャートを用いて、自動製造機械の動作を記述するようにしても良い。すなわち、動作チャートを、複数の部分期間が横方向または縦方向の何れか一方に並んで配置され、更に、横方向または縦方向の何れか他方には、複数のアクチュエータが並んで割り当てられた表形式の動作チャートとする。そして、表形式の動作チャート上で、対応する座標位置に基本動作を記入することによって、自動製造機械の動作を記述するようにしても良い。
【0015】
こうすれば、基本動作させるアクチュエータを動作チャート上の座標位置で特定することができるので、基本動作をアクチュエータに固有の動作とする必要が無い。このため、同じ基本動作を異なるアクチュエータに割り当てられるので、プログラム要素の種類を減らすことができる。また、動作チャート中に、基本動作が割り当てられていない部分期間が存在することや、基本動作が割り当てられていないアクチュエータが存在することを、容易に認識することができるので、動作チャートに記入ミスがあった場合でも、そのことに気づいて修正することで、適切な制御プログラムを生成することが可能となる。
【0016】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、タイマによる計時動作または計数器による計数動作の少なくとも一方を、基準動作に準じた動作として記述しても良い。
【0017】
こうすれば、例えば、一定時間が経過するまで動作の開始を遅らせたり、所定のボタンが押された回数が所定回数に達するまで動作の開始を遅らせたりする動作を、動作チャートに記述することが可能となる。
【0018】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、スイッチの状態を監視することによってスイッチが切り換わったことを検知するスイッチ検知動作を、基準動作に準じた動作として記述しても良い。
【0019】
こうすれば、例えば、部品が通過したことを確認できていなければアクチュエータを動作させないような動作を、動作チャートに記述することが可能となる。
【0020】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、スピーカーによる音声出力動作またはライトによる発光動作の少なくとも一方を、基準動作に準じた動作として記述しても良い。
【0021】
こうすれば、例えば、スピーカーから効果音などの音声を出力した後にアクチュエータを動作させたり、ライトを点灯あるいは点滅してからアクチュエータを動作させたりする動作を、動作チャートに記述することが可能となる。
【0022】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、ヒーターによる加熱動作を、基準動作に準じた動作として記述しても良い。
【0023】
こうすれば、例えば、金属材料に熱処理を行う自動製造機械の動作や、食材を加熱調理する動作を、動作チャートに記述することが可能となる。
【0024】
また、前述した本発明の制御プログラム生成方法は、コンピュータを用いて制御プログラム生成方法を実現するためのプログラムとして把握することも可能である。すなわち、本発明のプログラムは、
複数のアクチュエータ(10~20)を備えた自動製造機械(1)の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムであって、
前記自動製造機械が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す複数の基本動作に分解されると共に、前記基本動作が、前記複数の部分期間の中から前記基本動作毎に選択された何れか1つの前記部分期間に割り当てられることによって前記自動製造機械の動作が記述された動作チャート(200)を読み込む動作チャート読込機能(STEP1)と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作が割り当てられた前記部分期間とを抽出する動作チャート解析機能(STEP2)と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶された対応関係を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記部分期間の順番に従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成機能(STEP3)と
を、コンピュータを用いて実現することを特徴とする。
【0025】
このようなプログラムをコンピュータに読み込ませて実行させれば、自動製造機械の動作を制御する制御プログラムを動作チャートから自動で生成することが可能となる。
【図面の簡単な説明】
【0026】
図1】本実施例の自動製造機械制御装置100によって制御される自動製造機械1の外観形状を示した説明図である。
図2】自動製造機械制御装置100が、自動製造機械1に搭載された各種のアクチュエータ10~20の動作を制御する様子を概念的に示したブロック図である。
図3】新たな自動製造機械1を開発するための大まかな工程を概念的に示した説明図である。
図4】本実施例の自動製造機械制御装置100が自動製造機械1を動作チャート(YOGOチャート)から自動製造機械1の制御プログラムを自動で生成する基本原理についての説明図である。
図5】本実施例の自動製造機械制御装置100が読み込む自動製造機械1の動作チャート(YOGOチャート)の一部を例示した説明図である。
図6】繰り返し動作や条件分岐動作を有する動作チャート(YOGOチャート)を例示した説明図である。
図7】動作チャート(YOGOチャート)上で基本動作と同様に取り扱うことが可能な動作を例示した説明図である。
図8】本実施例の自動製造機械制御装置100が備える機能を示した説明図である。
図9】本実施例の基本動作記憶部102に記憶されている対応関係を例示した説明図である。
図10】本実施例の自動製造機械制御装置100が動作チャート(YOGOチャート)から制御プログラムを生成するために実行する制御プログラム生成処理のフローチャートである。
図11】制御プログラム生成処理の中で実行されるYOGOチャート解析処理のフローチャートである。
図12】YOGOチャート解析処理によって生成される中間データを例示した説明図である。
図13】中間データを変換することによって生成された制御プログラムを例示した説明図である。
図14】本実施例の自動製造機械制御装置100が制御プログラムデータに基づいて各アクチュエータの動作を制御する動作制御処理のフローチャートである。
図15】制御プログラム生成部105と制御実行部106とが異なる記憶部を参照する変形例の自動製造機械制御装置100についての説明図である。
図16】自動製造機械制御装置100がYOGOチャート処理装置100aと制御実行装置100bとによって形成された変形例についての説明図である。
【発明を実施するための形態】
【0027】
A.装置構成 :
図1は、本実施例の自動製造機械1の大まかな外観形状を示した説明図である。本実施例の自動製造機械1は、長尺のパイプ材に対して自動で曲げ加工を施すことによって、所望の形状に加工する工作機械(いわゆるパイプベンダ)である。もちろん、本実施例の自動製造機械1は、複数のアクチュエータを搭載して、対象物に対して把持、搬送、加工、加熱などの複数の動作を自動で実行することができれば、パイプベンダ以外の製造機械であっても良い。例えば、食料品を自動で製造するための製造機械であっても良い。あるいは、複数の関節を有するアームロボットと搬送装置とを組み合わせた製造システムであっても良い。
【0028】
図1に示したように、本実施例の自動製造機械1は、大まかには横長の直方体形状となっており、直方体の上面側には長手方向に2本のレール2が架設され、レール2上の一端側(図1では左側)には、加工対象の図示しないパイプ材を把持して搬送する搬送ユニット3が搭載されている。また、搬送ユニット3が搭載されている側に対して反対側には、図示しないパイプ材に曲げなどの加工を施す加工ユニット4が搭載されている。搬送ユニット3には、円柱形状の把持軸3aが突設されており、把持軸3aの先端には、図示しないパイプ材を把持するチャック3bが取り付けられている。このため、チャック3bでパイプ材を把持した状態で搬送ユニット3をレール2上で移動させることによって、パイプ材を加工ユニット4に供給し、そのパイプ材に対して加工ユニット4で曲げ加工などを施すことが可能となっている。
【0029】
本実施例の自動製造機械1は、搬送ユニット3の移動量によってパイプ材の送り量を制御することができるので、パイプ材に曲げ加工などを施す位置を自由に制御することができる。また、チャック3bが取り付けられた把持軸3aを軸回りに回転(いわゆる捻り動作)させることによって、所望の方向にパイプ材を曲げることも可能となっている。こうしたことを実現するために、搬送ユニット3の内部には、チャック3bを開閉させるためのアクチュエータ10や、把持軸3aを軸回りに回転させるためのアクチュエータ11や、把持軸3aを軸方向に進退動させるためのアクチュエータ12や、レール2上で搬送ユニット3を進退動させるためのアクチュエータ13などが搭載されている。本実施例の自動製造機械1では、これらのアクチュエータ10~13は何れも交流電源で動作するサーボモータが用いられているが、アクチュエータに要求される性能に応じて、他の駆動方式のアクチュエータ(例えば、油圧シリンダや、ソレノイドや、ステッピングモータなど)を採用することができる。尚、搬送ユニット3には、把持軸3aの回転位置や、搬送ユニット3の移動位置を検出するためのエンコーダや、リミットスイッチなどのセンサー類も搭載されているが、図面が煩雑となることを回避する目的で、図1では図示が省略されている。
【0030】
加工ユニット4の内部には、パイプ材を曲げるためのアクチュエータ17や、パイプ材を曲げる際に、パイプ材に力を加える位置を移動させるためのアクチュエータ18や、加工ユニット4全体を上下方向に移動させるためのアクチュエータ19や、パイプ材に対してフランジと呼ばれる平端面を形成したり、バルジと呼ばれる環状の凸部を形成したりするためのアクチュエータ20などが搭載されている。尚、加工ユニット4にも、エンコーダや、接点スイッチなどのスイッチ・センサー類が搭載されているが、図面が煩雑となることを避けるため、これらについては図示が省略されている。
【0031】
また、加工ユニット4の内部には、上述した各種のアクチュエータ10~13、17~20を駆動するための複数のドライバ回路(図示は省略)が搭載されている。ここで、ドライバ回路とは、次のような機能を有する電気部品である。アクチュエータ10~13、17~20に所望の動作をさせるためには、アクチュエータ10~13、17~20に適切な波形の駆動電流を供給する必要がある。しかし、アクチュエータ10~13、17~20に供給するべき駆動電流は、アクチュエータ10~13、17~20の駆動方式によって異なっており、更に同じ方式のアクチュエータであっても、駆動電流の電流値はアクチュエータによって異なっている。そこで、アクチュエータ10~13、17~20にはドライバ回路と呼ばれる専用の電気部品が用意されており、ドライバ回路に対して駆動量を指定すると、ドライバ回路がアクチュエータ10~13、17~20に対して適切な駆動電流を出力し、その結果、アクチュエータ10~13、17~20が駆動されるようになっている。
【0032】
更に、図1に示されるように、2本のレール2の下方の空間にも各種の機械部品が搭載されているが、この空間は、加工ユニット4内に搭載された複数のドライバ回路(図示は省略)から、搬送ユニット3内の各種のアクチュエータ10~13に向かって駆動電流を供給する電気ケーブル(図示は省略)や、搬送ユニット3に搭載された各種のスイッチ・センサー類からの信号を、加工ユニット4に伝達するための信号ケーブル(図示は省略)などが配線される空間となっている。レール2上で搬送ユニット3が進退動する動きに伴って、これらの電気ケーブルや信号ケーブルが空間内で移動すると、互いに絡まったり、何かに引っ掛かったりする虞が生じる。そこで、こうした事態が発生することを避けるため、レール2の下方の空間には、電気ケーブルや信号ケーブルに不要な遊びがある場合はケーブルを手繰ることによって不要な遊びを解消し、電気ケーブルや信号ケーブルが強い力で引っ張られる場合は、手繰ったケーブルを送り出すことによって、ケーブルに適度な遊びを持たせるためのアクチュエータ14~16も搭載されている。本実施例の自動製造機械1では、アクチュエータ14~16としてエアシリンダが採用されており、これらのエアシリンダの動作も、図示しないドライバ回路によって制御されている。
【0033】
以上に説明したように、自動製造機械1には多数のアクチュエータ10~20が搭載されている。そして、加工しようとする対象物(ここではパイプ材)を目的とする形状に自動で加工するためには、これらのアクチュエータ10~20を適切なタイミングで、適切に動作させる必要がある。これらのアクチュエータ10~20を駆動するのは、それぞれのアクチュエータ10~20のドライバ回路であるが、ドライバ回路がそれぞれのアクチュエータ10~20を駆動する動作は、後述する自動製造機械制御装置100が、予め読み込んでおいた制御プログラムに従って制御している。
【0034】
図2は、本実施例の自動製造機械制御装置100が、自動製造機械1に搭載されたアクチュエータ10~20の動作を制御する様子を概念的に示したブロック図である。尚、図2においても、制御に必要なスイッチ・センサー類については図示が省略されている。図示されるように、自動製造機械制御装置100とアクチュエータ10との間には、アクチュエータ10の駆動用のドライバ回路10dが設けられており、自動製造機械制御装置100は、直接的にはドライバ回路10dを制御している。アクチュエータ11~20についても同様に、自動製造機械制御装置100とアクチュエータ11~20との間には、アクチュエータ11~20を駆動するためのドライバ回路11d~20dが設けられており、自動製造機械制御装置100は、ドライバ回路11d~20dを介して、間接的にアクチュエータ10~20を制御している。
【0035】
また、図1を用いて前述したように、本実施例の自動製造機械1では、アクチュエータ10~13、17~20にサーボモータが採用されており、アクチュエータ14~16にはエアシリンダが採用されている。ここで、サーボモータとは、サーボ制御されたモータのことであり、代表的には、位置(あるいは角度や、速度など)が目標値となるようにモータに流れる電流値をフィードバック制御するモータである。また、エアシリンダとは、空気圧を利用して可動部を直線移動させるアクチュエータであり、圧縮空気の供給源に接続されたポートを開閉することによって動作するようになっている。また、ポートの開閉にはシーケンス制御が用いられている。
【0036】
このように本実施例の自動製造機械制御装置100には、サーボ制御されるアクチュエータ10~13、17~20と、シーケンス制御されるアクチュエータ14~16とが接続されている。図中で、自動製造機械制御装置100とアクチュエータ10~13、17~20とが実線で接続されているのは、これらのアクチュエータ10~13、17~20がサーボ制御されていることを表している。また、自動製造機械制御装置100とアクチュエータ14~16とが破線で接続されているのは、これらのアクチュエータ14~16がシーケンス制御されることを表している。もちろん、サーボ制御やシーケンス制御以外の方式で制御されるアクチュエータを接続することも可能である。
【0037】
自動製造機械制御装置100は制御プログラムに従って、ドライバ回路10d~20dを介してアクチュエータ10~20を制御しており、その制御プログラムは、予め作成して自動製造機械制御装置100に読み込ませておく必要がある。ここで、図2に示したように多数のアクチュエータ10~20を、適切なタイミングで適切に動作させるための制御プログラムを作成するのは容易なことではない。特に、サーボ制御やシーケンス制御のように、異なる制御方式のアクチュエータが混在している場合は、制御プログラムの作成に長い期間が必要となる。このため、新たな自動製造機械1の開発期間の中で、半分以上の期間が制御プログラムの作成に費やされてしまうのが現状となっている。
【0038】
B.制御プログラムの作成方法 :
B-1.概要 :
図3は、新たな自動製造機械1を開発するための大まかな工程を概念的に示した説明図である。図3(a)には、従来から行われてきた開発工程が示されている。また、図3(b)には、本願の発明者が提案する新たな開発工程が示されている。
【0039】
従来の開発工程では、図3(a)に示すように、先ず初めに機械設計技術者が、自動製造機械1に要求される各種の機能を把握した上で、それらの機能を実現するための機構が組み込まれた自動製造機械1の図面を作成する。図面を作成するに際して機械設計技術者は、どのような可動部分が必要なのか、それら可動部分がどのような動作をしなければならないのか、その動作をさせるためには、どれくらいのトルクや可動量や精度を有するアクチュエータが、何処に、どれだけ必要なのかといった内容を、一つ一つ検討して決定して行くことになる。そして、実際に搭載するアクチュエータを決定して、アクチュエータの搭載性や整備性なども考慮した上で、最終的に図面を完成させる。
【0040】
こうして自動製造機械1の機械設計が完了したら、今度は、その自動製造機械1を制御するための制御プログラムの作成に移行する。制御プログラムの作成には、機械設計とは異なる専門技術が必要となるため、専門技術を有する技術者(すなわちプログラマ)が作成しなければならない。そこで、機械技術者は機械設計が終了すると、自らが考えた自動製造機械1の動作を表現するフローチャートを作成した上で、プログラマと打ち合わせをして自動製造機械1の動作を説明する。ここまでが、機械設計技術者による作業となる。
【0041】
一方、機械設計技術者と打ち合わせたプログラマは、機械設計技術者が作成したフローチャートや、必要に応じて図面や、その他の資料を熟読することによって自動製造機械1の動作を理解した上で、自動製造機械1に搭載された各種のアクチュエータの動作を制御するための制御プログラムの作成を開始する。プログラマは、人間が判読可能な高級プログラム言語を用いて制御プログラムを作成することが普通であるが、コンピュータは高級プログラム言語のままでは制御プログラムを実行することはできない。そこで、プログラマは、制御プログラムが完成したら、高級プログラム言語で記述された制御プログラムを、コンピュータが実行可能な機械語の制御プログラムに変換することによって、最終的に制御プログラムを完成させる。尚、高級プログラム言語の制御プログラムを機械語の制御プログラムに変換する作業は、コンパイルと呼ばれており、この作業は、コンパイラと呼ばれる専用プログラムを用いることによって短時間で終了する。
【0042】
図3(a)に例示されるように、従来から行われてきた開発工程では、機械設計に要する期間の1.5倍~2.5倍程度の期間が、制御プログラムの作成に費やされるのが通常である。しかも、機械設計と制御プログラムの作成とは、原則的にはオーバーラップさせて進行させることが困難であるため、自動製造機械1の開発期間が長くなってしまう。加えて、機械設計技術者およびプログラマという異なる技術を有する専門家を確保する必要があり、このことも、新たな自動製造機械1を開発する際の大きな障害となっている。
【0043】
一方、図3(b)には、本願の発明者が提案する新たな方法を用いて、自動製造機械1を開発する工程が示されている。新たな方法を用いた場合でも、機械設計自体は、従来の方法と同様である。すなわち、機械設計技術者が、自動製造機械1に要求される各種の機能を把握した上で、それらの機能を実現するための機構が組み込まれた自動製造機械1の図面を作成する。その際には、機能の実現に必要な可動部分や、可動部分の動作内容や、可動部分を動かすためのアクチュエータの性能などを検討して、アクチュエータを決定した上で、アクチュエータの搭載性や整備性なども考慮して最終的に図面を完成させる。
【0044】
図面が完成すると、新たな開発工程では、機械設計技術者は、フローチャートの代わりに動作チャートを作成する(図3(b)参照)。この動作チャートについては、後ほど詳しく説明するが、機械設計技術者が機械設計する際に考えた各アクチュエータの動作を、チャートの形式で記述したものである。この動作チャートは、本願の発明者が独自に発案したもので、世の中には存在しないチャートであるため、「YOGOチャート」と名付けることにした。そこで以下では、この新たな動作チャートのことを、YOGOチャートと表記する。従って、本実施例のYOGOチャートは、本発明における「動作チャート」に対応する。
【0045】
後述するようにYOGOチャートは、機械設計する際に、機械設計技術者が考えた各アクチュエータの動作を、考えた通りに書き表したものに過ぎない。このため、機械設計した機械設計技術者であれば、フローチャートを作成する半分程度の期間で作成することができる(図3(b)参照)。加えて、YOGOチャートは、専用のコンパイラに掛けることによって、コンピュータのCPUが実行可能な制御プログラムに変換することができる。YOGOチャートを制御プログラムに変換可能な理由についても後述する。このように、自動製造機械1の動作をYOGOチャートに記述するようにすれば、YOGOチャートから機械語の制御プログラムを生成することができるので、図3に示したように、従来の方法に比べて、新たな自動製造機械1の開発期間を、少なくとも半分以下(代表的には1/3程度)に短縮することができる。加えて、YOGOチャートは機械設計技術者が簡単に作成することができ、プログラマを確保しておく必要もない。このため、新たな自動製造機械1を開発する際に大きな障害となっていた様々な事柄を、ほとんど完全に解消することが可能となる。加えて、自動製造機械1の動作を変更する場合や、自動製造機械1に新たなアクチュエータを追加する場合でも、YOGOチャートを書き直して専用のコンパイラに掛けてやれば、直ちに制御プログラムを生成することが可能となる。以下では、こうしたことが可能となる理由について説明する。
【0046】
B-2.YOGOチャートから制御プログラムを自動で生成する原理 :
図4は、動作チャート(YOGOチャート)から自動製造機械1の制御プログラムを自動で生成する原理についての説明図である。図4(a)には、各種改良を施す前の原始的なYOGOチャートが示されている。後述する本実施例のYOGOチャートは、図4(a)に示した原始的なYOGOチャートを発展させて改良したものとなっているが、制御プログラムを自動で生成する原理は原始的なYOGOチャートと同じである。そこで、理解を容易とするために、図4(a)に示した原始的なYOGOチャートを用いて、YOGOチャートから制御プログラムを自動で生成する原理について説明する。また、説明が複雑化することを避けるため、自動製造機械1に搭載されているアクチュエータは、2つのモータA,B、および2つのシリンダA,Bのみであるとする。
【0047】
図4(a)に示したように、YOGOチャートでは、これらのアクチュエータ(ここでは、モータA,B、およびシリンダA,B)の基本的な動作を組み合わせることによって、自動製造機械1の動作を表現する。ここで、アクチュエータの基本的な動作とは、アクチュエータが有する自由度方向への動作(以下、基本動作)のことである。例えば、モータのような回転するアクチュエータであれば、回転動作が基本動作となり、シリンダのような進退動するアクチュエータであれば、進退動する動作が基本動作となる。また、モータによってボールねじを回転させることによって、ボールねじに噛み合う部材を進退動させるようなアクチュエータの場合は、モータの回転動作、あるいは部材が進退動する動作の何れかが基本動作となる。
【0048】
また、YOGOチャートでは、自動製造機械1が動作を開始してから終了するまでの動作期間が複数の部分期間に分割されており、個々のアクチュエータの基本動作は、これらの部分期間の何れかに割り当てられている。図4(a)に示した例では、自動製造機械1の動作期間が5つの部分期間1~5に分割されており、部分期間1には、シリンダAが動作量(a)で進退動する動作が割り当てられている。また、部分期間2には、モータAが動作量(b)で回転する動作が割り当てられている。部分期間には複数の動作を割り当てることもできる。すなわち、部分期間3には、モータBが動作量(c)で回転する動作と、シリンダBが動作量(d)で進退動する動作の2つの動作が割り当てられており、部分期間4には、モータAが動作量(-b)で回転する動作と、モータBが動作量(-c)で回転する動作と、シリンダBが動作量(-d)で進退動する動作の3つの動作が割り当てられている。そして、最後の部分期間5には、シリンダAが動作量(-a)で進退動する動作が割り当てられている。
【0049】
このように、部分期間にアクチュエータの基本動作を割り当てることによって、自動製造機械1が実行する次のような動作を記述することができる。先ず、シリンダAを動作量(a)だけ進退動させて、シリンダAの動作が終了したら、モータAを動作量(b)だけ回転させる。そして、モータAの動作が終了したら、モータBを動作量(c)だけ回転させると共に、シリンダBを動作量(d)だけ進退動させる。モータBおよびシリンダBの動作が終了したら、モータAおよびモータBをそれぞれ動作量(-a)および動作量(-c)だけ回転させると共に、シリンダBを動作量(-d)だけ進退動させる。そして、モータA、モータB、およびシリンダBの全ての動作が終了したら、最後にシリンダAを動作量(-a)だけ進退動させて、全ての動作を終了する。このように、自動製造機械1に搭載されているアクチュエータの基本動作を何れかの部分期間に割り当ててやれば、自動製造機械1の動作を記述することが可能となる。
【0050】
尚、以上の説明から明らかなように、部分期間は、割り当てられたアクチュエータが動作する期間を示しており、時間の長さを示しているわけではない。例えば、部分期間1の時間の長さはシリンダAが動作に要する時間となり、部分期間2の時間の長さはモータAが動作に要する時間となり、部分期間3の時間の長さは、モータBが動作に要する時間、およびシリンダBが動作に要する時間の長い方の時間となる。従って、それぞれの部分期間の時間の長さは、互いに異なっていることが通常である。
【0051】
また、部分期間に割り当てられるアクチュエータの基本動作は、例えばモータを一定量だけ回転させたり、あるいはシリンダを一定量だけ進退動させたりするといった単純な動作である。従って、アクチュエータに基本動作させるための小さなプログラム(以下、ブログラム要素と呼ぶ)を予め作成しておくことができる。ここでは自動製造機械1に搭載されているアクチュエータは、シリンダA,B、およびモータA,Bの4つであるとしているから、図4(b)に示すように、モータAを動作させるためのプログラム要素prog1と、モータBを動作させるためのプログラム要素prog2と、シリンダAを動作させるためのプログラム要素prog3と、シリンダBを動作させるためのプログラム要素prog4とを予め作成しておくことができる。
【0052】
そこで、これらのプログラム要素を、図4(a)に示した原始的なYOGOチャートに記述された通りに連結してやれば、自動製造機械1を動作させるための制御プログラムを自動で生成することが可能となる。すなわち、図4(c)に示したように、初めにプログラム要素prog3が起動し、プログラム要素prog3が終了したらプログラム要素prog1が起動し、プログラム要素prog1が終了したら、プログラム要素prog2およびプログラム要素prog4が起動する。プログラム要素prog3、プログラム要素prog1、プログラム要素prog2、プログラム要素prog4の動作量は、YOGOチャート上での指定に従って、それぞれ(a)、(b)、(c)、(d)を使用する。更に、プログラム要素prog2およびプログラム要素prog4が何れも終了したら、今度は、プログラム要素prog1と、プログラム要素prog2と、プログラム要素prog4とを起動する。この時の動作量は、YOGOチャート上での指定に従って、それぞれ(-b)、(-c)、(-d)を使用する。これらのプログラム要素prog1、prog2、prog4が何れも終了したら、最後にプログラム要素prog3を起動する。この時の動作量は、YOGOチャート上での指定に従って(-a)を使用する。そして、プログラム要素prog3が終了したら、図4(a)のYOGOチャートに記述した自動製造機械1の動作が終了したことになる。
【0053】
以上に説明したように、自動製造機械1の動作を、図4(a)に示したYOGOチャートの態様で記述しておけば、図4(c)に示した制御プログラムを生成して、自動製造機械1を動作させることができる。もっとも、自動製造機械1が意図した通りに動作するためには、YOGOチャートが正しく作成されている必要がある。以下に説明する本実施例のYOGOチャートは、こうした観点から、図4(a)に例示した原始的なYOGOチャートに対して様々な改良を加えた結果として得られたものである。
【0054】
B-3.YOGOチャート :
図5は、YOGOチャート200の概要を説明するための説明図である。尚、YOGOチャート200の全体を表示するために縮尺すると、潰れて判読不能となってしまうので、図5ではYOGOチャート200の一部分(左上隅の部分)が表示されている。図5に示されるように、YOGOチャート200は、複数本の横線と複数本の縦線とが交差した大きな表のような形状となっている。以下では、交差する複数本の線の内、横線については「仕切線」201と称し、縦線については「トリガー線」202と称することにする。
【0055】
トリガー線202には、1番から始まる通し番号が付けられている。図5に示した例では、YOGOチャート200の上端の欄内に、その下のトリガー線202の通し番号が記載されている。また、互いに隣接するトリガー線202の間の領域は、図4を用いて前述した部分期間となっており、部分期間にも1番から始まる通し番号(以下、部分期間番号と称する)が付けられている。尚、図5に例示したYOGOチャートでは、トリガー線202が縦方向に引かれており、従って、トリガー線202とトリガー線202とに挟まれた部分期間は横方向に並んでいる。しかし、トリガー線202は横方向に引いても良く、この場合は、複数の部分期間が縦方向に並ぶことになる。
【0056】
また、本実施例のYOGOチャートは、複数の仕切線201によって複数の横長の領域に分割されており、これらの横長の領域には1番から始まる通し番号(以下、アクチュエータ番号と称する)が付けられている。自動製造機械1に搭載されたアクチュエータは、何れかの領域に割り当てられている。図5に示した例では、アクチュエータ番号が1番の領域には、アクチュエータ10(図2参照)が割り当てられており、アクチュエータ番号が2番の領域にはアクチュエータ11(図2参照)が割り当てられ、アクチュエータ番号が3番の領域にはアクチュエータ12(図2参照)が、アクチュエータ番号が4番の領域にはアクチュエータ13(図2参照)が割り当てられている。本実施例の自動製造機械1にはアクチュエータ10~20の11個のアクチュエータが搭載されているから、これらすべてのアクチュエータについて、このように横長の領域が1つずつ割り当てられることになる。
【0057】
そして、アクチュエータ10~20の基本動作は、そのアクチュエータ10~20が割り当てられた領域上に記載されるようになっている。例えば、アクチュエータ10を部分期間4で基本動作させるのであれば、YOGOチャート上で、アクチュエータ番号が1番、部分期間番号が4番で特定されるマス目状の座標位置に、アクチュエータ10にさせたい基本動作を記載する。また、部分期間4と部分期間8とでアクチュエータ10に基本動作させるのであれば、アクチュエータ番号が1番、部分期間番号が4番のマス目状の座標位置と、部分期間番号が8番の座標位置とに、アクチュエータ10にさせたい基本動作を記載することになる。このように、アクチュエータ10の基本動作は、YOGOチャート上でアクチュエータ番号が1番の横長の領域上に記載され、アクチュエータ11の基本動作は、アクチュエータ番号が2番の横長の領域上に記載されるというように、アクチュエータ10~20の基本動作は、YOGOチャート上でそのアクチュエータ10~20が割り当てられた領域上に記載されるようになっている。本実施例のYOGOチャートが、このようにして基本動作を記載しているのは、次のような理由による。
【0058】
初めに、図4(a)に例示した原始的なYOGOチャートについて説明すると、原始的なYOGOチャートでは、複数のアクチュエータの動作が混在して記述されており、例えば、部分期間1で動作したシリンダAが、次にどの動作期間で動作するのかを、直ちに認識することが難しい。このため、それぞれのアクチュエータが動作する様子をイメージすることが難しく、更には、各アクチュエータの動作回数を判読することも難しい。その結果、例えば、元の位置に復帰していないアクチュエータが存在することに気づかなかったり、動作を記述し忘れているアクチュエータが存在することに気づかなかったりする虞がある。
【0059】
これに対して、本実施例のYOGOチャートは、図5に示されるように、アクチュエータ毎に動作が記述される領域が分離されているので、どのアクチュエータが、どの部分期間で動作しているのかを視覚によって把握して容易にイメージすることができ、各アクチュエータの動作回数を容易に判読することができる。このため、元の位置に復帰していないアクチュエータが存在していたり、動作を記述し忘れているアクチュエータが存在していたりした場合でも、そのことを容易に認識することができる。その結果、自動製造機械1を意図した通りに動作させるYOGOチャートを容易に作成することが可能となる。
【0060】
尚、後述するように、YOGOチャート200には、アクチュエータ以外の機器の動作も記述することが可能であり、それらの機器についても、横長の領域が1つずつ割り当てられている。
【0061】
また、本実施例のYOGOチャートでは、次のようにして基本動作を記載する。例えば、図5に例示したYOGOチャートで、最初に開始されるアクチュエータ13の基本動作について説明すると、この基本動作が記載される位置は、アクチュエータ番号が4番で、部分期間番号が1番のマス目状の座標位置となる。部分期間番号が1番のマス目は、1番のトリガー線202と、2番のトリガー線202とに挟まれているから、左側に存在する1番のトリガー線202から、右側に存在する2番のトリガー線202に向かって、アクチュエータの動作を示す動作線203を記入する。そして、動作線203の左端(従って1番のトリガー線202上)には動作の開始を示す始点204を記入し、動作線203の右端(従って2番のトリガー線202上)には動作の終了を示す終点205を記入する。図5に示した例では、動作線203は太い実線で示されており、始点204は白抜きの丸印で示されて、終点205は黒い丸印で示されている。
【0062】
更に、動作線203の上には、アクチュエータにさせようとする基本動作の名称(以下、基本動作名206)を記入する。図5に示した例では、アクチュエータ番号が4番で、部分期間番号が1番の基本動作には「Ω-AA」という基本動作名206が記入されている。後述するように基本動作名206は、アクチュエータに基本動作を行わせるためのコンピュータで実行可能なプログラム要素に対応付けられている。従って、動作線203の上に基本動作名206を記入することによって、コンピュータが実行可能なプログラム要素を特定することができる。更に、動作線203および基本動作名206が記入された座標位置のアクチュエータ番号から、プログラム要素を用いて動作させるアクチュエータを特定することができる。そして、座標位置の部分期間番号からは、アクチュエータを動作させる部分期間を特定することができる。
【0063】
また、基本動作に対しては、回転速度あるいは移動速度や、動作時間などのパラメータを指定することによって、より詳細な動作を指定することができる。図5に示した例では、アクチュエータ番号が4番で、部分期間番号が1番の座標位置に、「Ω-AA」という基本動作名206の下に記載されている「A-100」という表示は、「Ω-AA」という基本動作名206の基本動作に指定されたパラメータを表している。もちろん、基本動作に対して複数のパラメータを指定することによって、より一層詳細に動作を指定することもできる。例えば、アクチュエータがモータの場合は、回転速度と回転角度とを指定するようにしても良いし、アクチュエータがリニアモータであった場合は、移動速度と移動距離とを指定するようにしても良い。このように複数種類のパラメータが指定される場合を考慮して、パラメータの先頭には、パラメータの種類を表すアルファベットが記載されている。尚、パラメータによって指定する内容は、速度や位置などを表す数値に限らず、例えばモータの加速や減速の程度や、加減速の仕方を表す駆動パターンなどを指定するようにしても良い。
【0064】
また、アクチュエータが、例えばエアシリンダのように、ストローク限界まで前進あるいは後退させるというような単純な動作のアクチュエータである場合は、プログラム要素によって実現される基本動作は、一定時間が経過するまで単に前進あるいは後退させる動作、若しくは、接点スイッチがONになるまで前進あるいは後退させる動作となる。このような単純な動作であればパラメータは不要なので、動作線203の上には、パラメータを伴わない基本動作名206が記入されることになる。
【0065】
図5に例示したYOGOチャート上で、2番目に動作するアクチュエータ11の基本動作についても同様にして記載される。以下簡単に説明すると、この基本動作は、アクチュエータ11が2番目の部分期間で実行する動作であるから、基本動画が記載される位置は、アクチュエータ番号が2番で、部分期間番号が2番の座標位置となる。そこで、左側に存在する2番のトリガー線202から、右側に存在する3番のトリガー線202まで動作線203を引いて、動作線203の左端には始点204を、動作線203の右端には終点205を記入する。そして、動作線203の上には、アクチュエータ11に行わせたい基本動作を特定するために基本動作名206(ここでは、Ω-AB)を記入し、その下の位置には、パラメータ(ここでは、A-10)を記入する。この結果、2番目の部分期間では、アクチュエータ11に対して、「A-10」というパラメータを指定して「Ω-AB」という基本動作を行わせるという内容が記載されることになる。
【0066】
以上が、YOGOチャート200を用いて自動製造機械1の動作を記述する基本的な方法であるが、動作の記述をより一層容易にする目的で、YOGOチャート200には、様々な記述方法が用意されている。
【0067】
例えば、図6に示したYOGOチャートは、上述した図5のYOGOチャートに対して、5番のトリガー線202および7番のトリガー線202が、破線のトリガー線202に変更されている。これは、5番~7番のトリガー線202に挟まれた部分期間(すなわち、部分期間番号が5番および6番の部分期間)に割り当てられた動作を繰り返して行うことを表している。これら2本のトリガー線202の内、初めに登場する5番のトリガー線202の下方には、破線の矩形208の中に繰返条件が記入されている。図6中に示した例では、VCという変数の値が0になるまで、5番のトリガー線202から7番のトリガー線202までの部分期間に割り当てられた動作が繰り返して実行される。そして、5番のトリガー線202の下方に記入された繰返条件(ここでは、変数VC=0)が成立すると、9番のトリガー線202上に始点204が記入された動作(すなわち、部分期間番号が9番の部分期間に割り当てられた動作)が開始されることになる。
【0068】
また、図6に示したYOGOチャートは、上述した図5のYOGOチャートに対して、9番のトリガー線202および13番のトリガー線202が、一点鎖線のトリガー線202に変更されている。これらは条件分岐することを表している。また、9番のトリガー線202の下方、および13番のトリガー線202の下方には、それぞれ一点鎖線の矩形208が表示されているが、これらは分岐条件を表している。図6に示した例では、9番のトリガー線202の下方の矩形208の中には「A>B」と記入されており、13番のトリガー線202の下方の矩形208の中には「ELSE」と記入されているが、これらは、「A>B」の条件が成立していれば、9番のトリガー線202上に始点204が記入された動作(すなわち、部分期間番号が9番の部分期間に割り当てられた動作)を開始し、「A>B」の条件が成立していない場合(ELSEの場合)は、13番のトリガー線202上に始点204が記入された動作(すなわち、部分期間番号が13番の部分期間に割り当てられた動作)を開始することを表している。
【0069】
また、自動製造機械1では、アクチュエータの動作の開始前に一定時間の間隔を空けたり、例えば一定個数の部品が供給されたことを確認してからアクチュエータを動作させたりする場合がある。更には、アクチュエータの動作の開始前に音声(効果音を含む)を出力して周囲の作業者に注意を促したり、一定時間に亘ってライトを点灯させたり点滅させたりすることがある。このように、タイマを用いて一定時間を計時する動作や、計数器を用いて一定数を計数する動作や、スピーカーから音声を出力する動作や、ライトを発光させて点灯あるいは点滅させる動作は、アクチュエータによる動作ではないが、それに準じた動作として基本動作と同様に取り扱うことができる。YOGOチャート200には、アクチュエータによる動作ではないが基本動作と同様に取り扱うことが可能な動作も記述することができる。
【0070】
図7は、YOGOチャート200上で、基本動作と同様に取り扱うことが可能な動作を記述する態様を例示した説明図である。図7(a)には、所定時間の経過したことを計時する動作(計時動作)が記述されている。YOGOチャート200では、タイマによる計時動作も、左端に始点204を有し右端に終点205を有する動作線203の上に、タイマによる計時を示す基本動作名206(ここでは、Ω-TM1)を記入することによって記述する。タイマで計時する経過時間は、パラメータを用いて指定することができる。
【0071】
図7(b)には、所定個数(あるいは所定回数)を計数する動作(計数動作)が記述されている。計数器による計数動作も、左端に始点204を有し右端に終点205を有する動作線203の上に、計数器による計数動作を示す基本動作名206(ここでは、Ω-CT1)を記入することによって記述する。計数器で計数する計数値は、パラメータを用いて指定することができる。
【0072】
図7(c)には、所定時間の間、スイッチの状態を監視して、スイッチが切り換わったことを検知する動作(スイッチ検知動作)が記述されている。ここで、スイッチとは、操作ボタンのようなスイッチでも良いし、近接スイッチでも良いし、フォトカプラのような光学的なスイッチであっても構わない。このようなスイッチ検知動作も、左端に始点204を有し右端に終点205を有する動作線203の上に、スイッチ検知動作を示す基本動作名206(ここでは、Ω-SW1)を記入することによって記述する。スイッチの状態を監視する時間は、パラメータを用いて指定することができる。
【0073】
図7(d)には、スピーカーから音声を出力する動作(音声出力動作)が記述されている。YOGOチャート200では、スピーカーによる音声出力動作も、左端に始点204を有し右端に終点205を有する動作線203の上に、スピーカーの駆動を示す基本動作名206(ここでは、Ω-SP1)を記入することによって記述する。スピーカーから出力する音声データは、パラメータを用いて指定することができる。
【0074】
図7(e)には、ライトを発光させる発光動作が記述されている。ライトによる発光動作も、左端に始点204を有し右端に終点205を有する動作線203の上に、ライトの発光動作を示す基本動作名206(ここでは、Ω-LL1)を記入することによって記述する。ライトを発光させる態様(例えば、点灯あるいは点滅させる態様)は、パラメータを用いて指定することができる。
【0075】
図7(f)には、ヒーターを用いて対象物を加熱したり、食材を加熱調理したりする加熱動作が記述されている。ヒーターによる加熱動作も、左端に始点204を有し右端に終点205を有する動作線203の上に、ヒーターによる加熱動作を示す基本動作名206(ここでは、Ω-HT1)を記入することによって記述する。加熱温度や加熱時間は、パラメータを用いて指定することができる。
【0076】
以上のように、本実施例のYOGOチャートでは、アクチュエータ番号と、部分期間番号とによって特定されるマス目状の座標位置に、動作線203と、始点204と、終点205と、基本動作名206と、必要な場合はパラメータとを記入することによって基本動作を記載する。そして、自動製造機械1に搭載された全てのアクチュエータ10~20の基本動作を、このようにしてYOGOチャート上に記載することによって、自動製造機械1の動作を記述する。そして、自動製造機械制御装置100は、このようなYOGOチャートから制御プログラムを生成して、自動製造機械1の動作を制御する。
【0077】
C.本実施例の自動製造機械制御装置100 :
図8は、本実施例の自動製造機械制御装置100が備える機能を示した説明図である。図8に示されるように、本実施例の自動製造機械制御装置100は、YOGOチャート作成部101や、基本動作記憶部102や、YOGOチャート読込部103や、YOGOチャート解析部104や、制御プログラム生成部105や、制御実行部106などを備えている。尚、これらの「部」は、自動製造機械制御装置100を用いてYOGOチャート200を作成し、そのYOGOチャート200から制御プログラムを生成して自動製造機械1の動作を制御するために、自動製造機械制御装置100に備えておくべき複数の機能を表した抽象的な概念である。従って、自動製造機械制御装置100が、これらの「部」に相当する部品を組み合わせて形成されていることを表しているわけではない。実際には、これらの「部」は、CPUで実行されるプログラムの形態で実現することもできるし、ICチップやLSIなどを組み合わせた電子回路の形態で実現することもできるし、更には、これらが混在した形態など、様々な形態で実現することができる。
【0078】
YOGOチャート作成部101は、モニター画面100mや、操作入力ボタン100sなどに接続されており、自動製造機械1について十分な知識を有する機械技術者などが、モニター画面100mを見ながら操作入力ボタン100sを操作することによって、図5に例示したようなYOGOチャート200を作成する。前述したように、YOGOチャート200は自動製造機械1に搭載されている複数のアクチュエータの基本動作を、部分期間の何れかに割り当てることによって、自動製造機械1の動作を記述したものである。機械設計に際して機械設計技術者は、自動製造機械1の動作を実現するためには、複数のアクチュエータの基本動作をどのように組み合わせれば良いかについて、十分に検討しているので、機械設計を行った機械設計技術者であれば、自動製造機械1の動作を記述したYOGOチャート200を簡単に作成することができる。もちろん、自動製造機械1の構造や動作について十分な知識を有する機械技術者であれば、自動製造機械1を設計した技術者でなくても、簡単にYOGOチャート200を作成することができる。
【0079】
また、図5図7を用いて前述したように、YOGOチャート200には、基本動作(あるいは基本動作に準じた動作)を特定するための基本動作名206を記入する必要がある。そこで、基本動作記憶部102には、アクチュエータ(あるいは、スピーカー、ライト、スイッチなど)の名称と、そのアクチュエータなどで実行可能な基本動作などの基本動作名206とが対応付けて記憶されている。
【0080】
図9は、アクチュエータなどの名称と、基本動作名206とが対応付けられている様子を示した説明図である。このような対応関係は、基本動作記憶部102に記憶されている。図示されるように、アクチュエータなどに対して基本動作(計時動作などの基本動作に準じた動作も含む)などの基本動作名206が対応付けて記憶されている。複数種類の基本動作が実行可能なアクチュエータなどに対しては、実行可能なそれぞれの基本動作に対して基本動作名206が記憶されることになる。更に、それぞれの基本動作名206に対しては、プログラム要素番号や、プログラム要素を格納した先頭アドレス値も記憶されている。プログラム要素番号とは、基本動作(あるいは基本動作に準じた動作)を実現するためのプログラム要素を特定する番号である。また、プログラム要素はCPUが実行可能な形式でメモリに格納されており、メモリ上でプログラム要素が格納されているアドレスの先頭のアドレス値も、基本動作記憶部102に対応付けて記憶されている。
【0081】
図8に示すように、YOGOチャート作成部101は基本動作記憶部102に接続されている。このため、機械設計技術者(あるいは機械技術者)は、YOGOチャート200を作成するに際して、基本動作記憶部102に記憶されている図9のデータを参照することができる。そして、自動製造機械1について十分な知識を有する機械技術者であれば、どのようなアクチュエータをどのように動作させるかは十分に分かっているので、アクチュエータなどの名称から基本動作名206を知ることができ、更に、パラメータに指定する内容も容易に決めることができる。このため、YOGOチャート200を簡単に作成することができる。
【0082】
YOGOチャート読込部103は、YOGOチャート作成部101で作成したYOGOチャート200を読み込んで、YOGOチャート解析部104に出力する。尚、本実施例では、自動製造機械制御装置100でYOGOチャート200を作成するものとしており、このことに対応して、YOGOチャート読込部103は、YOGOチャート作成部101からYOGOチャート200を読み込んでいる。これに対して、自動製造機械1とは別体に設けたコンピュータ50でYOGOチャート200を作成しておき、そのYOGOチャートをYOGOチャート読込部103が読み込むようにしても良い。
【0083】
YOGOチャート解析部104は、YOGOチャート読込部103から受け取ったYOGOチャート200を解析することによって、中間データを生成した後、中間データを制御プログラム生成部105に出力する。YOGOチャートから中間データを生成する処理については、後ほど詳しく説明する。
【0084】
制御プログラム生成部105は、中間データを受け取ると、基本動作記憶部102に記憶されている基本動作名206とプログラム要素番号との対応関係を参照することによって、中間データから制御プログラムを生成する。中間データから制御プログラムを生成する方法については、後ほど詳しく説明する。そして、得られた制御プログラムを制御実行部106に出力する。
【0085】
制御実行部106は、制御プログラム生成部105から制御プログラムを受け取ると、基本動作記憶部102を参照することによって、制御プログラム中のプログラム要素番号に対応するプログラム要素を取得する。すなわち、図9を用いて前述したように、基本動作記憶部102には、プログラム要素番号に対応付けて、プログラム要素が格納されている先頭アドレス値が記憶されているので、プログラム要素番号に対応するプログラム要素を読み込むことができる。そして、読み込んだプログラム要素を実行することによって、ドライバ回路10d~20dを介してアクチュエータ10~20を制御する。こうすることによって、YOGOチャートに記載された通りに、自動製造機械1が動作することになる。
【0086】
尚、本実施例のYOGOチャート読込部103は、本発明の「動作チャート読込部」に対応している。また、図8を用いて前述したYOGOチャート読込部103と、YOGOチャート解析部104と、制御プログラム生成部105とは、これらが一体となって、YOGOチャート200から制御プログラムを生成する機能を実現している。従って、本実施例の自動製造機械制御装置100では、YOGOチャート読込部103と、YOGOチャート解析部104と、および制御プログラム生成部105とが、本発明の「制御プログラム生成装置110」に対応する。
【0087】
D.制御プログラム生成処理 :
図10は、本実施例の自動製造機械制御装置100の中で、制御プログラム生成装置110に対応する部分が実行する制御プログラム生成処理の概要を示したフローチャートである。図示されるように、制御プログラム生成処理では、先ず初めにYOGOチャートを読み込む(STEP1)。本実施例では、自動製造機械制御装置100がYOGOチャートを作成しているから、作成したYOGOチャートのデータを読み込むことになる。もちろん、他のコンピュータ50で作成したYOGOチャートのデータを読み込んでも良い。
【0088】
続いて、読み込んだYOGOチャートを解析して中間データを出力する(STEP2)。これは次のような処理である。図11は、本実施例の自動製造機械制御装置100が、YOGOチャートを解析して中間データを出力する処理(YOGOチャート解析処理)のフローチャートである。この処理は、図8中に示したYOGOチャート解析部104が実行する処理である。
【0089】
図11に示したように、YOGOチャートに解析処理を開始すると、先ず初めに、部分期間番号Nおよびアクチュエータ番号Mを「1」に初期化する(STEP10)。続いて、YOGOチャート上での座標(N,M)の位置に、基本動作が記入されているか否かを判断する(STEP11)。ここで、YOGOチャート上での座標(N,M)とは、YOGOチャート上で、部分期間番号Nとアクチュエータ番号Mとの組み合わせで特定されるマス目状の座標位置を表している。STEP10で部分期間番号Nおよびアクチュエータ番号Mを初期化した直後は、NおよびMは何れも「1」であるから、YOGOチャート上の座標(1,1)の位置に基本動作が記入されているか否かを判断することになる。
【0090】
図5に例示したYOGOチャートの場合では、座標(1,1)には基本動作は記入されていないから、STEP11では「no」と判断して、アクチュエータ番号Mが最終値に達したか否かを判断する(STEP14)。本実施例の自動製造機械1には11個のアクチュエータ10~20が搭載されているから、アクチュエータ番号Mの最終値は11となる。従って、座標(1,1)の基本動作の有無を確認した後のSTEP14の判断では、「no」と判断されるので、アクチュエータ番号Mを1つ増加させる(STEP15)。そして、増加させたアクチュエータ番号Mを用いて、再び、座標位置(N,M)に基本動作が記入されているか否かを判断する(STEP11)。
【0091】
このように、部分期間番号Nは「1」のまま、アクチュエータ番号Mを1つずつ増加させながら、座標(1,M)に基本動作が記入されているか否かを判断していくと、やがては、基本動作が記入されている座標(1,M)になった時に、STEP11で「yes」と判断されることになる。
【0092】
そして、STEP11で「yes」と判断された場合は、その座標に記入されている基本動作名206、およびパラメータが記入されている場合はパラメータを読み込む(STEP12)。図5に例示したYOGOチャートでは、座標(1,4)に達した時に、STEP11で「yes」と判断されて、「Ω-AA」という基本動作名206と、「A-100」というパラメータとを読み込むことになる。
【0093】
続いて、(N,M,基本動作名,パラメータ)という中間データをメモリに記憶する(STEP1)。図5に例示したYOGOチャートの座標(1,4)の場合であれば、(1,4,Ω-AA,A-100)という中間データをメモリに記憶することになる。従って、この中間データは、YOGOチャート上で部分期間番号が1番、アクチュエータ番号Mが4番の位置に、「Ω-AA」という名前の基本動作が記入されており、その基本動作には「A-100」というパラメータが設定されていることを表している。
【0094】
こうして、YOGOチャートから読み出したデータをメモリに記憶した後は(STEP13)、アクチュエータ番号Mが最終値(ここでは、11)に達したか否かを判断する(STEP14)。その結果、最終値に達していない場合は(STEP14:no)、アクチュエータ番号Mを1つ増加させた後(STEP15)、STEP11に戻って、再び、YOGOチャート上の座標(N,M)に基本動作が記入されているか否かを判断する。
【0095】
これに対して、アクチュエータ番号Mが最終値に達していた場合は(STEP14:yes)、今度は、部分期間番号Nが最終値に達したか否かを判断する(STEP16)。例えば、YOGOチャート上で、自動製造機械1の動作が100個の部分期間を用いて記述されているのであれば、部分期間番号Nの最終値は100となる。
【0096】
その結果、部分期間番号Nが最終値に達していない場合は(STEP16:no)、部分期間番号Nを1つ増加させると共に(STEP17)、アクチュエータ番号Mを「1」に初期化した後(STEP18)、STEP11に戻って、再び、YOGOチャート上の座標(N,M)に基本動作が記入されているか否かを判断する。すなわち、YOGOチャート上で(図5参照)、部分期間番号Nが1番の部分期間を上から順番に確認して行き、一番下まで確認したら、今度は、部分期間番号Nが2番の部分期間を上から順番に確認して行き、2番の部分期間を確認し終わったら、部分期間番号Nが3番の部分期間というように、部分期間番号Nが小さな部分期間から大きな部分期間に向かって順番に、YOGOチャートに記入されている基本動作名およびパラメータを読みだして、中間データをメモリに記憶して行くのである。
【0097】
そして、このような操作を繰り返していき、最終的に、部分期間番号Nが最終値に達したと判断したら(STEP16:yes)、YOGOチャートに記入された全ての基本動作を読み出したことになる。そこで、メモリに記憶しておいた中間データを読み出して、制御プログラム生成部105に出力する(STEP19)。図12には、図5に例示したYOGOチャートを解析した場合に得られる中間データが例示されている。このような中間データを出力したら、図11のYOGOチャート解析処理を終了して、図10の制御プログラム生成処理に復帰する。
【0098】
図10の制御プログラム生成処理では、このようにして得られた中間データに基づいて、制御プログラムを生成する(STEP3)。図13には、図12に例示した中間データから生成された制御プログラムが示されている。図12の中間データと、図13の制御プログラムとを比較すれば明らかなように、制御プログラムでは、中間データの基本動作名206およびパラメータが、数値に置き換えられたものとなっている。すなわち、制御プログラムは、中間データの基本動作名206を、その基本動作を実現するプログラム要素番号に置き換えると共に、中間データのパラメータを、そのバラメータが表す具体的な数値に置き換えることによって生成されている。
【0099】
中間データの基本動作名206およびパラメータを数値に置き換える操作は、図8中の制御プログラム生成部105が、基本動作記憶部102を参照することによって実行される。すなわち、基本動作記憶部102には、図9を用いて前述したように、基本動作名と、その基本動作名の基本動作を実現させるプログラム要素番号とが対応付けて記憶されている。また、パラメータについても、基本動作記憶部102には、パラメータと具体的な数値とを対応付ける図示しない対応関係が記憶されている。そこで、制御プログラム生成部105は、中間データに記載されている基本動作名206やパラメータを、プログラム要素番号や具体的な数値に置き換えることによって、制御実行部106が実行可能な制御プログラムに変換する。
【0100】
このように、本実施例の自動製造機械制御装置100では、基本動作記憶部102を参照して、基本動作名206やパラメータを、プログラム要素番号や具体的な数値に置き換えることとしているので、YOGOチャートに記入する基本動作名206やパラメータは、人間が分かり易い表記とすることができる。このため、YOGOチャートに誤った基本動作名206やパラメータを記入してしまい、自動製造機械1が意図しない動作をしてしまう事態を防止することができる。
【0101】
以上のようにして、中間データから制御プログラムを生成したら(図10のSTEP3)、生成した制御プログラムを制御実行部106に出力して(STEP4)、図10の制御プログラム生成処理を終了する。
【0102】
尚、図13に示すように、本実施例の制御プログラムは、部分期間番号N、アクチュエータ番号M、プログラム要素番号、パラメータ値が、この順序で並んだ一組のデータ(以下、「データ組」と呼ぶ)が集まったものとなっている。そこで、データ組の中で、部分期間番号Nを表す1番目のデータを「第1要素」と呼び、アクチュエータ番号Mを表す2番目のデータを「第2要素」と呼び、プログラム要素番号を表す3番目のデータを「第3要素」と呼ぶことにする。
【0103】
E.動作制御処理 :
上述した制御プログラム生成処理によって生成される制御プログラムは、図13に例示するように、複数のデータ組が連続したデータに過ぎない。しかし、自動製造機械制御装置100の制御実行部106は、このような制御プログラムに基づいて、以下のようにして、自動製造機械制御装置100のアクチュエータ10~20の動作を制御する。
【0104】
図14は、自動製造機械制御装置100の制御実行部106が、制御プログラムに従って自動製造機械1の動作を制御する動作制御処理のフローチャートである。図14に示すように、動作制御処理を開始すると、先ず初めに、部分期間番号Nを「1」に初期化する(STEP50)。続いて、制御プログラムの中から、第1要素がNのデータ組を取得する(STEP51)。動作制御処理を開始した直後であれば、部分期間番号Nは「1」に設定されているから、図13に例示した制御プログラムから、(1,4,1,120)というデータ組を読み出すことになる。
【0105】
続いて、読み出したデータ組の第2要素の値に基づいて、制御対象となるアクチュエータを特定する(STEP52)。STEP51で読み出したデータ組を(1,4,1,120)とすれば第2要素の値は「4」であるから、アクチュエータ番号Mが「2」のアクチュエータが制御対象のアクチュエータとなる。また、STEP51で複数のデータ組を読み出していた場合には、それぞれのデータ組の第2要素の値に基づいて、制御対象となるそれぞれのアクチュエータを特定する。
【0106】
更に、読み出したデータ組の第3要素の値に基づいて、アクチュエータに基本動作させるためのプログラム要素を取得する(STEP53)。STEP51で読み出したデータ組を(1,4,1,120)とすれば第3要素の値は「1」であるから、基本動作させるためのプログラム要素は、プログラム要素番号が「1」番のプログラム要素となる。そこで、基本動作記憶部102に記憶されている対応関係(図9参照)を参照して、プログラム要素番号に対応する先頭アドレス値を取得することによって、CPUが実行可能なプログラム要素を読み出す。もちろん、STEP51で複数のデータ組を読み出していた場合には、それぞれのデータ組の第3要素の値に基づいて、それぞれのプログラム要素を読み出すことになる。
【0107】
また、データ組中に第1要素~第3要素以外の要素が存在している場合は、それは(あるいは、それらは)プログラム要素に指定するパラメータなので、それ(あるいは、それら)を読み出して、プログラム要素に引数として設定する(STEP54)。
【0108】
以上のSTEP51~STEP54の操作を行うことによって、YOGOチャート上のある部分期間(動作制御処理が開始された直後は、部分期間番号Nが「1」番の部分期間)に記入された基本動作を、それぞれのアクチュエータに行わせる準備が整ったことになる。すなわち、制御対象となるアクチュエータが特定され(STEP52)、制御に用いるプログラム要素が取得され(STEP53)、プログラム要素に対して引数が設定された(STEP54)ことになるので、そのプログラム要素を実行する(STEP55)。例えば、アクチュエータがサーボモータであり、基本動作の内容がモータを正方向に180度回転させるという内容であった場合は、モータの回転角度を検出しながら、回転角度が180度になるまでモータを駆動する動作を、所定の制御周期で繰り返すようなプログラム要素を実行する。また、複数のプログラム要素が存在する場合は、それらのプログラム要素が並行して実行されることになる。
【0109】
続いて、全てのプログラム要素の実行が終了したか否かを判断する(STEP56)。すなわち、STEP55で複数のプログラム要素を実行した場合は、それらのプログラム要素の実行が同時に終了するとは限らないので、全てのプログラム要素の実行が終了したか否かを判断する。もちろん、STEP55で1つのプログラム要素しか実行していない場合は、そのプログラム要素の実行が終了したか否かを判断することになる。
【0110】
その結果、実行中のプログラム要素が残っている場合は、STEP56では「no」と判断して、再び同じ判断(STEP56)を繰り返す。こうすることによって、全てのプログラム要素の実行が終了するまで待機状態となる。そして、全てのプログラム要素の実行が終了したら(STEP56:yes)、部分期間番号Nが最終値に達したか否かを判断する(STEP57)。例えば、YOGOチャート上で自動製造機械1の動作を記述するために、100個の部分期間が用いられていた場合は、部分期間番号Nが「100」に達したか否かを判断する。
【0111】
その結果、部分期間番号Nがまだ最終値に達していない場合は(STEP57:no)、部分期間番号Nを1つ増加させる(STEP58)。そして、STEP51に戻って、制御プログラムの中から、第1要素が新たな部分期間番号Nに一致するデータ組を読み出した後、読み出したデータ組に対して上述したSTEP52~STEP55の操作を行う。こうすることにより、先に基本動作を実行した部分期間から1つ部分期間を進めて、新たな部分期間に記入された全ての基本動作が実行されることになる。そして、新たな部分期間の全ての基本動作が終了して、STEP56で「yes」と判断したら、その部分期間の部分期間番号Nが最終値に達しているか否かを判断する(STEP57)。その結果、部分期間番号Nが最終値に達していない場合は(STEP57:no)、部分期間番号Nを1つ増加させた後(STEP58)、STEP51に戻って、新たな部分期間番号Nについて、上述したSTEP51~STEP57の操作を繰り返す。
【0112】
このように、図14の動作制御処理では、YOGOチャートの先頭の部分期間(すなわち、部分期間番号Nが1番の部分期間)から最後の部分期間(部分期間番号Nが最終値の部分期間)に向かって、部分期間を1つずつ選択して、その部分期間に記載された基本動作を実行する動作を繰り返す。そして、最後の部分期間の基本動作が終了したら、STEP57で「yes」と判断して、動作制御処理を終了する。
【0113】
以上に詳しく説明したように、本実施例の自動製造機械制御装置100では、自動製造機械1の動作をYOGOチャート200で記述することによって、そのYOGOチャート200から制御プログラムを自動で生成して、自動製造機械制御装置100を動作させることができる。また、YOGOチャートは、自動製造機械1の構造や動作が分かっていれば、プログラムに関する知識が無くても簡単に作成することができるので、プログラマが制御プログラムを作成する必要が無い。このため、新たな自動製造機械1を開発するために要する時間を、大幅に(少なくとも半分以下に)短縮することができ、加えて、プログラマを確保しておく必要も無くなる。その結果、製造現場に新たな自動製造機械を導入することが容易になって、産業界での省力化に対する要請に十分に対応することが可能となる。
【0114】
以上、本実施例の自動製造機械制御装置100について説明したが、本発明は上記の実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
【0115】
例えば、上述した実施例の自動製造機械制御装置100では、図8に示したように、制御プログラム生成部105および制御実行部106の何れも、基本動作記憶部102を参照するものとして説明した。これは、制御プログラム生成部105が制御プログラムを生成する際に参照する対応関係(すなわち、基本動作名206(およびパラメータ)とプログラム要素番号(および具体的な数値)との対応関係)と、制御実行部106が制御プログラムを実行する際に参照する対応関係(すなわち、プログラム要素番号とプログラム要素を格納した先頭アドレス値との対応関係)とが、何れも基本動作記憶部102に記憶されているためである。従って、基本動作記憶部102に記憶されている対応関係を、制御プログラム生成部105が参照する対応関係と、制御実行部106が参照する対応関係とに分割して、制御実行部106が参照する対応関係については、基本動作記憶部102とは別の記憶部で記憶するようにしても良い。
【0116】
図15は、制御プログラム生成部105が参照する対応関係と、制御実行部106が参照する対応関係を分割することにより、制御プログラム生成部105と制御実行部106とが異なる記憶部を参照するようにした変形例の自動製造機械制御装置100についての説明図である。図15に示した変形例の自動製造機械制御装置100は、図8を用いて前述した本実施例の自動製造機械制御装置100に対して、制御実行部106が、基本動作記憶部102ではなくブログラム要素記憶部107を参照している点が異なっている。このブログラム要素記憶部107には、図9を用いて前述した対応関係の中で、プログラム要素番号と、プログラム要素が格納された先頭アドレス値とを対応付けた部分が記憶されている。また、このことに伴って、変形例の基本動作記憶部102に記憶されている対応関係からは、プログラム要素番号に対して先頭アドレス値を対応付けた部分が除かれている。このような変形例の自動製造機械制御装置100では、制御実行部106が制御プログラムを実行する際に、ブログラム要素記憶部107を参照して読み出したプログラム要素を実行することになる。
【0117】
尚、上述した変形例の基本動作記憶部102が記憶している対応関係について、疑義を招かないように補足説明しておく。前述した本実施例の自動製造機械制御装置100では、図9に例示したように、プログラム要素を格納した先頭アドレス値と、基本動作名206との対応関係が基本動作記憶部102に記憶されていた。これに対して、上述した変形例では、基本動作記憶部102に対応付けて記憶されているのは、基本動作名206とプログラム要素番号との対応関係に過ぎず、基本動作名206とプログラム要素の先頭アドレス値との対応関係が記憶されているわけではない。従って、変形例の基本動作記憶部102を参照しても、基本動作を実現するプログラム要素が直ちに読み出せるわけではない。しかし、プログラム要素番号を特定すれば、プログラム要素は決まってしまう。このことから、変形例の基本動作記憶部102が記憶している対応関係も、実質的には、基本動作名206とプログラム要素とを対応付けた対応関係に該当している。
【0118】
また、前述した本実施例の自動製造機械制御装置100は、YOGOチャートを作成して、そのYOGOチャートから制御プログラムを生成する機能(図8のYOGOチャート作成部101、基本動作記憶部102、YOGOチャート読込部103、YOGOチャート解析部104、制御プログラム生成部105に対応)に加えて、制御プログラムに従って制御を実行する機能(図8の制御実行部106に対応)も備えているものとして説明した。しかし、これらの複数の機能の一部を搭載した複数の装置を組み合わせることによって、全体として自動製造機械制御装置100を形成するようにしても良い。
【0119】
例えば、図16に例示したように、自動製造機械制御装置100を、YOGOチャート処理装置100aと、制御実行装置100bとに分割してもよい。そして、自動製造機械制御装置100には、YOGOチャートの作成から制御プログラムの生成までの一連の機能(すなわち、YOGOチャート作成部101、基本動作記憶部102、YOGOチャート読込部103、YOGOチャート解析部104、制御プログラム生成部105)を搭載する。また、制御実行装置100bには、制御プログラムに従ってプログラム要素を実行する機能(すなわち、制御実行部106、ブログラム要素記憶部107)を搭載する。
【0120】
こうすれば、YOGOチャートを作成したり、制御プログラムを生成したりする作業は事務室に設置しておいたYOGOチャート処理装置100aで行い、自動製造機械1の傍に設置しておいた制御実行装置100bに、生成した制御プログラムを読み込ませることによって、自動製造機械1を動作させることが可能となる。尚、図16に示した例では、YOGOチャート処理装置100aが、本発明における「制御プログラム生成装置」に対応する。
【0121】
また、前述した本実施例では、YOGOチャート200に記入される動作は、基本動作(あるいは基本動作に準じた動作)であるものとして説明した。しかし、他自由度の複雑な動作をする部品を購入して、その部品に所定の動作を行わせることによって、自動製造機械1のアクチュエータとして利用する場合もある。このような場合は、その部品に行わせる所定の動作を、基本動作に準じた動作として取り扱って基本動作名206を付与した上でYOGOチャート200に記入するようにしても良い。このような場合でも、基本動作名206に対応するプログラム要素を予め作成しておけば、自動製造機械制御装置100を用いて制御プログラムを自動で生成することが可能となる。
【符号の説明】
【0122】
1…自動製造機械、 2…レール、 3…搬送ユニット、 3a…把持軸、
3b…チャック、 4…加工ユニット、 10~20…アクチュエータ、
10d~20d…ドライバ回路、 50…コンピュータ、
100…自動製造機械制御装置、 100a…YOGOチャート処理装置、
100b…制御実行装置、 100m…モニター画面、
100s…操作入力ボタン、 102…基本動作記憶部、
105…制御プログラム生成部、 106…制御実行部、
107…ブログラム要素記憶部、 110…制御プログラム生成装置、
201…仕切線、 202…トリガー線、 203…動作線、
204…始点、 205…終点、 206…基本動作名。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16