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

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

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

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