(57)【特許請求の範囲】
【請求項１】
複数のアクチュエータ（１０〜２０）を備えた自動製造機械（１）の制御プログラムを生成する制御プログラム生成装置（１００）であって、
前記アクチュエータの自由度毎の動作を表す基本動作を、前記基本動作を実現するためのプログラム要素と対応付けて記憶している基本動作記憶部（１０２）と、
前記自動製造機械の動作が複数の前記基本動作に分解されて、前記基本動作の終了と他の前記基本動作の開始とが論理演算によって関連付けられることによって、前記自動製造機械の動作が記述された動作チャート（２００）を読み込む動作チャート読込部（１０３）と、
前記基本動作記憶部に記憶されている前記プログラム要素を、前記動作チャートに従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部（１０５）と
を備え、
前記基本動作記憶部は、パラメータを設定可能な前記基本動作および前記プログラム要素を記憶可能となっており、
前記動作チャート読込部は、前記基本動作に前記パラメータが設定された前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項２】
請求項１に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、タイマによる計時動作または計数器による計数動作の少なくとも一方を、前記計時動作または前記計数動作を実現するための前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記計時動作または前記計数動作の少なくとも一方を含んだ前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項３】
請求項１または請求項２に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、スピーカーによる音声出力動作またはライトによる発光動作の少なくとも一方を、前記音声出力動作または前記発光動作を実現するための前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記音声出力動作または前記発光動作の少なくとも一方を含んだ前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項４】
請求項１ないし請求項３の何れか一項に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、前記基本動作に加えて、ヒーターによる加熱動作を、前記加熱動作を実現するための前記プログラム要素と対応付けて記憶しており、
前記動作チャート読込部は、前記加熱動作を含んだ前記動作チャートを読込可能となっている
ことを特徴とする制御プログラム生成装置。
【請求項５】
請求項１ないし請求項４の何れか一項に記載の制御プログラム生成装置であって、
前記基本動作記憶部は、
シーケンス制御によって制御される前記アクチュエータの前記基本動作に対しては、前記基本動作を前記シーケンス制御によって実現する前記プログラム要素を対応付けて記憶しており、
サーボ制御によって制御される前記アクチュエータの前記基本動作に対しては、前記基本動作を前記サーボ制御によって実現する前記プログラム要素を対応付けて記憶している
ことを特徴とする制御プログラム生成装置。
【請求項６】
複数のアクチュエータ（１０〜２０）を備えた自動製造機械（１）の制御プログラムを、コンピュータに生成させる制御プログラム生成方法であって、
前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す基本動作と、前記基本動作の終了に他の前記基本動作の開始を関連付ける論理演算とを用いて記述された動作チャート（２００）を読み込む動作チャート読込工程（１０３）と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作を関連付ける論理演算とを抽出する動作チャート解析工程（１０４）と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶されたデータ（１０２）を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記動作チャートに従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成工程（１０５）と
を備え、
前記動作チャート読込工程は、パラメータを設定可能な前記基本動作を有する前記動作チャートを読込可能な工程となっており、
前記制御プログラム生成工程は、前記パラメータを設定可能な前記基本動作に対しては、前記パラメータを設定可能な前記プログラム要素が対応付けて記憶された前記データを参照することによって、前記制御プログラムを生成する工程となっている
ことを特徴とする制御プログラム生成方法。
【請求項７】
複数のアクチュエータ（１０〜２０）を備えた自動製造機械（１）の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムであって、
前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す基本動作と、前記基本動作の終了に他の前記基本動作の開始を関連付ける論理演算とを用いて記述された動作チャート（２００）を読み込む動作チャート読込機能（１０３）と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作を関連付ける論理演算とを抽出する動作チャート解析機能（１０４）と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶されたデータ（１０２）を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記動作チャートに従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成機能（１０５）と
を、コンピュータを用いて実現すると共に、
前記動作チャート読込機能は、パラメータを設定可能な前記基本動作を有する前記動作チャートを読込可能な機能となっており、
前記制御プログラム生成機能は、前記パラメータを設定可能な前記基本動作に対しては、前記パラメータを設定可能な前記プログラム要素が対応付けて記憶された前記データを参照することによって、前記制御プログラムを生成する機能となっている
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアクチュエータを備えた自動製造機械の制御プログラムを生成する技術に関する。
【背景技術】
【０００２】
今日では、あらゆる業種に亘って、工場などの製造現場で省力化が強く要請されるようになっており、この傾向は今後も益々強まるものと予想されている。製造現場の省力化を推進するためには、加工あるいは製造しようとする対象物を把持したり、対象粒を搬送したり、対象物に対して各種の加工を施したり、加熱したりする動作を自動で行う自動製造機械を活用することが必須となる。
【０００３】
そこで、加工あるいは製造しようとする対象物や、加工の内容（例えば、切削加工や、曲げ加工）や、食品の場合は加熱の程度などに応じて、様々なタイプの自動製造機械が開発されている（例えば、特許文献１、特許文献２）。
【０００４】
また、加工あるいは製造する対象物の大きさや形状や材質などは製造現場毎に異なっており、更に、加工の内容や加熱の程度なども製造現場によって異なっている。このため、製造現場に自動製造機械を導入する際には、他の製造現場で用いられている自動製造機械を流用することは困難であり、製造現場毎に専用の自動製造機械を新たに開発しなければならないことが一般的である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２４５６０２号公報
【特許文献２】特開２０１８−１９２５７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、新たな自動製造機械を開発するには、その自動製造機械を制御するための制御プログラムも新たに作成する必要があり、このことが、製造現場に新たな自動製造機械を導入する際の大きな障害になっているという問題があった。この理由は次のようなものである。
【０００７】
新たな自動製造機械を開発する際には、先ず始めに機械設計技術者が、自動製造機械に要求される各種の機能を把握した上で、要求される機能を実現可能な自動製造機械の図面を作成する。続いて、プログラムを作成するための技術を有する技術者（いわゆるプログラマ）が、図面に記載された各種のアクチュエータや機械部品の動作を理解した上で、各種のアクチュエータが協調しながら動作することによって、要求される機能を実現するような制御プログラムを作成する必要がある。
【０００８】
このように、制御プログラムを作成するには、自動製造機械の設計が終わった後に、専門的な技能を有するプログラマが取り掛かる必要があるため、制御プログラムの作成に取り掛かる時期が遅くなる。加えて、プログラマが各種のアクチュエータや機械部品の動作を理解する時間も必要となる。その結果、自動製造機械の開発に取り掛かってから、製造現場に納品するまでに長い時間が必要となっており、このことが、製造現場に新たな自動製造機械を導入する際の大きな障害になっていた。
【０００９】
この発明は、従来の技術が有する上述した課題を解決するために成されたものであり、自動製造機械の制御プログラムを自動で生成することによって、新たな自動製造機械を開発するために要する時間を大幅に短縮することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、本発明の制御プログラム生成装置は次の構成を採用した。すなわち、
複数のアクチュエータ（１０〜２０）を備えた自動製造機械（１）の制御プログラムを生成する制御プログラム生成装置（１００）であって、
前記アクチュエータの自由度毎の動作を表す基本動作を、前記基本動作を実現するためのプログラム要素と対応付けて記憶している基本動作記憶部（１０２）と、
前記自動製造機械の動作が複数の前記基本動作に分解されて、前記基本動作の終了と他の前記基本動作の開始とが論理演算によって関連付けられることによって、前記自動製造機械の動作が記述された動作チャート（２００）を読み込む動作チャート読込部（１０３）と、
前記基本動作記憶部に記憶されている前記プログラム要素を、前記動作チャートに従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成部（１０５）と
を備え、
前記基本動作記憶部は、パラメータを設定可能な前記基本動作および前記プログラム要素を記憶可能となっており、
前記動作チャート読込部は、前記基本動作に前記パラメータが設定された前記動作チャートを読込可能となっている
ことを特徴とする。
【００１１】
また、上述した制御プログラム生成装置に対応する本発明の制御プログラム生成方法は次の構成を採用した。すなわち、
複数のアクチュエータ（１０〜２０）を備えた自動製造機械（１）の制御プログラムを、コンピュータに生成させる制御プログラム生成方法であって、
前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す基本動作と、前記基本動作の終了に他の前記基本動作の開始を関連付ける論理演算とを用いて記述された動作チャート（２００）を読み込む動作チャート読込工程（１０３）と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作を関連付ける論理演算とを抽出する動作チャート解析工程（１０４）と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶されたデータ（１０２）を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記動作チャートに従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成工程（１０５）と
を備え、
前記動作チャート読込工程は、パラメータを設定可能な前記基本動作を有する前記動作チャートを読込可能な工程となっており、
前記制御プログラム生成工程は、前記パラメータを設定可能な前記基本動作に対しては、前記パラメータを設定可能な前記プログラム要素が対応付けて記憶された前記データを参照することによって、前記制御プログラムを生成する工程となっている
ことを特徴とする。
【００１２】
かかる本発明の制御プログラム生成装置および制御プログラム生成方法では、自動製造機械に搭載されている複数のアクチュエータの基本動作と、基本動作を実現するためのプログラム要素とが対応付けて予め記憶されている。また、基本動作の中にはパラメータを設定可能な基本動作も存在しており、パラメータを設定可能な基本動作に対しては、パラメータを設定可能なプログラム要素が対応付けて記憶されている。更に、自動製造機械の動作が複数の基本動作に分解されて、基本動作の終了と他の基本動作の開始とが論理演算によって関連付けられることによって、自動製造機械の動作が記述された動作チャートが予め作成されている。この動作チャートは、パラメータを設定可能な基本動作についてはパラメータが設定された動作チャートとなっている。そして、自動製造機械の制御プログラムを生成するに際しては、自動製造機械の動作が記述された動作チャートを読み込んで、動作チャートに記載された基本動作をプログラム要素に変換すると共に、それらのプログラム要素を、動作チャートに従って結合することによって、制御プログラムを生成する。
【００１３】
アクチュエータの基本動作は単純な動作であるため、アクチュエータに基本動作を行わせるためのプログラム要素を予め作成しておくことができる。また、機械設計技術者は自動製造機械を設計する際に、アクチュエータの基本動作を組み合わせることによって、自動製造機械の動作を実現しているから、自動製造機械を設計した機械設計技術者であれば、複数の基本動作の終了と開始とを論理演算によって関連付けることで自動製造機械の動作を記述した動作チャートを、容易に作成することができる。更に、基本動作にパラメータを設定することで、基本動作の詳細（例えば移動速度や回転速度、移動距離や回転角度など）を記述することができるので、自動製造機械の動作をより詳細に、動作チャートに記述することができる。そして、このような動作チャートを読み込んで、動作チャート中の基本動作をプログラム要素に変換し、動作チャートに従ってプログラム要素を結合してやれば、自動製造機械の動作を制御する制御プログラムを自動で生成することが可能となる。
【００１６】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、タイマによる計時動作または計数器による計数動作の少なくとも一方を、基準動作に準じた動作として記述しても良い。
【００１７】
こうすれば、例えば、一定時間が経過するまで動作の開始を遅らせたり、所定のボタンが押された回数が所定回数に達するまで動作の開始を遅らせたりする自動製造機械の動作を、動作チャートに記述することが可能となる。
【００１８】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、スピーカーによる音声出力動作またはライトによる発光動作の少なくとも一方を、基準動作に準じた動作として記述しても良い。
【００１９】
こうすれば、例えば、スピーカーから効果音などの音声を出力した後にアクチュエータを動作させたり、ライトを点灯あるいは点滅してからアクチュエータを動作させたりする自動製造機械の動作を、動作チャートに記述することが可能となる。
【００２０】
また、上述した本発明の制御プログラム生成装置においては、自動製造機械の動作を記述する動作チャートに、ヒーターによる加熱動作を、基準動作に準じた動作として記述しても良い。
【００２１】
こうすれば、例えば、金属材料に熱処理を行う自動製造機械の動作や、食品を加熱調理する自動製造機械の動作を、動作チャートに記述することが可能となる。
【００２２】
また、上述した本発明の制御プログラム生成装置においては、シーケンス制御によって制御されるアクチュエータの基本動作に対しては、シーケンス制御によって基本動作を実現するプログラム要素を対応付けて記憶しておき、サーボ制御によって制御されるアクチュエータの基本動作に対しては、サーボ制御によって基本動作を実現するプログラム要素を対応付けて記憶しておいても良い。
【００２３】
こうすれば、シーケンス制御されるアクチュエータと、サーボ制御されるアクチュエータとが混在している自動製造機械でも、動作チャートに自動製造機械の動作を記述することによって、制御プログラムを自動で生成することが可能となる。
【００２４】
また、前述した本発明の制御プログラム生成方法は、コンピュータを用いて制御プログラム生成方法を実現するためのプログラムとして把握することも可能である。すなわち、本発明のプログラムは、
複数のアクチュエータ（１０〜２０）を備えた自動製造機械（１）の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムであって、
前記自動製造機械の動作が、前記アクチュエータの自由度毎の動作を表す基本動作と、前記基本動作の終了に他の前記基本動作の開始を関連付ける論理演算とを用いて記述された動作チャート（２００）を読み込む動作チャート読込機能（１０３）と、
前記動作チャートを解析することによって、前記動作チャートに含まれる複数の前記基本動作と、複数の前記基本動作を関連付ける論理演算とを抽出する動作チャート解析機能（１０４）と、
前記基本動作と、前記基本動作を実現するためのプログラム要素とが対応付けて記憶されたデータ（１０２）を参照することによって、前記動作チャートに記載された前記基本動作を前記プログラム要素に変換すると共に、前記プログラム要素を前記動作チャートに従って結合することによって、前記自動製造機械を動作させる前記制御プログラムを生成する制御プログラム生成機能（１０５）と
を、コンピュータを用いて実現すると共に、
前記動作チャート読込機能は、パラメータを設定可能な前記基本動作を有する前記動作チャートを読込可能な機能となっており、
前記制御プログラム生成機能は、前記パラメータを設定可能な前記基本動作に対しては、前記パラメータを設定可能な前記プログラム要素が対応付けて記憶された前記データを参照することによって、前記制御プログラムを生成する機能となっている
ことを特徴とする。
【００２５】
このようなプログラムをコンピュータに読み込ませて実行させれば、自動製造機械の動作を制御する制御プログラムを自動で生成することが可能となる。
【図面の簡単な説明】
【００２６】
【図１】実施例の制御プログラム生成装置１００で生成した制御プログラムによって制御される自動製造機械１の外観形状を示した説明図である。
【図２】自動製造機械１に搭載された制御コンピュータ５０が、自動製造機械１に搭載された各種のアクチュエータ１０〜２０の動作を制御する様子を概念的に示したブロック図である。
【図３】新たな自動製造機械１を開発するための大まかな工程を概念的に示した説明図である。
【図４】本実施例の制御プログラム生成装置１００が制御プログラムを生成するために読み込む自動製造機械１の動作チャート（ＹＯＧＯチャート）の概要を例示した説明図である。
【図５】動作チャート（ＹＯＧＯチャート）を用いて自動製造機械１の動作を記述する方法を示した説明図である。
【図６】他の態様の動作チャート（ＹＯＧＯチャート）を用いて自動製造機械１の動作を記述する方法を例示した説明図である。
【図７】動作チャート（ＹＯＧＯチャート）上で基本動作と同様に取り扱うことが可能な動作を例示した説明図である。
【図８】スイッチの状態を動作の開始条件としてＹＯＧＯチャートに記述する態様を例示した説明図である。
【図９】スイッチの状態を動作の終了条件としてＹＯＧＯチャートに記述する態様を例示した説明図である。
【図１０】本実施例の制御プログラム生成装置１００が備える機能を示した説明図である。
【図１１】本実施例の制御プログラム生成装置１００が基本動作とプログラム要素とを対応付けて記憶している様子を例示した説明図である。
【発明を実施するための形態】
【００２７】
Ａ．装置構成  ：
図１は、本実施例の自動製造機械１の大まかな外観形状を示した説明図である。本実施例の自動製造機械１は、長尺のパイプ材に対して自動で曲げ加工を施すことによって、所望の形状に加工する工作機械（いわゆるパイプベンダ）である。もちろん、本実施例の自動製造機械１は、複数のアクチュエータを搭載して、対象物に対して把持、搬送、加工、加熱などの複数の動作を自動で実行することができれば、パイプベンダ以外の工作機械であっても良い。例えば、食料品を自動で製造するための製造機械であっても良い。
【００２８】
図１に示したように、本実施例の自動製造機械１は、大まかには横長の直方体形状となっており、直方体の上面側には長手方向に２本のレール２が架設され、レール２上の一端側（図１では左側）には、加工対象の図示しないパイプ材を把持して搬送する搬送ユニット３が搭載されている。また、搬送ユニット３が搭載されている側に対して反対側には、図示しないパイプ材に曲げなどの加工を施す加工ユニット４が搭載されている。搬送ユニット３には、円柱形状の把持軸３ａが突設されており、把持軸３ａの先端には、図示しないパイプ材を把持するチャック３ｂが取り付けられている。このため、チャック３ｂでパイプ材を把持した状態で搬送ユニット３をレール２上で移動させることによって、パイプ材を加工ユニット４に供給し、そのパイプ材に対して加工ユニット４で曲げ加工などを施すことが可能となっている。
【００２９】
本実施例の自動製造機械１は、搬送ユニット３の移動量によってパイプ材の送り量を制御することができるので、パイプ材に曲げ加工などを施す位置を、自由に制御することができる。また、チャック３ｂが取り付けられた把持軸３ａを軸回りに回転（いわゆる捻り動作）させることによって、所望の方向にパイプ材を曲げることも可能となっている。こうしたことを実現するために、搬送ユニット３の内部には、チャック３ｂを開閉させるためのアクチュエータ１０や、把持軸３ａを軸回りに回転させるためのアクチュエータ１１や、把持軸３ａを軸方向に進退動させるためのアクチュエータ１２や、レール２上で搬送ユニット３を進退動させるためのアクチュエータ１３などが搭載されている。本実施例の自動製造機械１では、これらのアクチュエータ１０〜１３は何れも交流電源で動作するサーボモータが用いられているが、アクチュエータに要求される性能に応じて、他の駆動方式のアクチュエータ（例えば、油圧シリンダや、ソレノイドや、ステッピングモータなど）を採用することができる。尚、搬送ユニット３には、把持軸３ａの回転位置や、搬送ユニット３の移動位置を検出するためのエンコーダや、リミットスイッチなどのセンサー類も搭載されているが、図面が煩雑となることを回避する目的で、図１では図示が省略されている。
【００３０】
加工ユニット４の内部には、パイプ材を曲げるためのアクチュエータ１７や、パイプ材を曲げる際に、パイプ材に力を加える位置を移動させるためのアクチュエータ１８や、加工ユニット４全体を上下方向に移動させるためのアクチュエータ１９や、パイプ材に対してフランジと呼ばれる平端面を形成したり、バルジと呼ばれる環状の凸部を形成したりするためのアクチュエータ２０などが搭載されている。尚、加工ユニット４にも、エンコーダや、接点スイッチなどのスイッチ・センサー類が搭載されているが、図面が煩雑となることを避けるため、これらについては図示が省略されている。
【００３１】
また、加工ユニット４の内部には、自動製造機械１の全体の動作を制御するための制御コンピュータ５０や、上述した各種のアクチュエータ１０〜１３、１７〜２０を駆動するための複数のドライバ回路（図示は省略）が搭載されている。ここで、ドライバ回路とは、次のような機能を有する電気部品である。アクチュエータ１０〜１３、１７〜２０は、大きな力を発生させるために大きな電力を消費する。しかし、制御コンピュータ５０が出力する電力は僅かな電力に過ぎないので、制御コンピュータ５０がアクチュエータ１０〜１３、１７〜２０を直接駆動することはできない。そこで、制御コンピュータ５０は、大電力を供給可能なドライバ回路を介して、アクチュエータ１０〜１３、１７〜２０を駆動するようになっている。制御コンピュータ５０が、ドライバ回路を介してアクチュエータ１０〜１３、１７〜２０を駆動する様子については、別図を用いて後述する。
【００３２】
更に、図１に示されるように、２本のレール２の下方の空間にも各種の機械部品が搭載されているが、この空間は、加工ユニット４内に搭載された複数のドライバ回路（図示は省略）から、搬送ユニット３内の各種のアクチュエータ１０〜１３に向かって電力を供給する電気ケーブル（図示は省略）や、搬送ユニット３に搭載された各種のスイッチ・センサー類からの信号を、加工ユニット４に伝達するための信号ケーブル（図示は省略）などが配線される空間となっている。レール２上で搬送ユニット３が進退動する動きに伴って、これらの電気ケーブルや信号ケーブルが空間内で移動すると、互いに絡まったり、何かに引っ掛かったりする虞が生じる。そこで、こうした事態が発生することを避けるため、レール２の下方の空間には、電気ケーブルや信号ケーブルに不要な遊びがある場合はケーブルを手繰ることによって不要な遊びを解消し、電気ケーブルや信号ケーブルが強い力で引っ張られる場合は、手繰ったケーブルを送り出すことによって、ケーブルに適度な遊びを持たせるためのアクチュエータ１４〜１６も搭載されている。本実施例の自動製造機械１では、アクチュエータ１４〜１６としてエアシリンダが採用されており、これらのエアシリンダの動作も、図示しないドライバ回路を介して制御コンピュータ５０によって制御されている。
【００３３】
以上に説明したように、自動製造機械１には多数のアクチュエータ１０〜２０が搭載されている。そして、加工しようとする対象物（ここではパイプ材）を目的とする形状に自動で加工するためには、これらのアクチュエータ１０〜２０を適切なタイミングで、適切に動作させる必要がある。こうしたアクチュエータ１０〜２０の動作は、制御コンピュータ５０が、予め読み込んだ制御プログラムに従ってアクチュエータ１０〜２０の動作を制御することによって実現されている。
【００３４】
図２は、自動製造機械１に搭載された制御コンピュータ５０がアクチュエータ１０〜２０の動作を制御する様子を概念的に示したブロック図である。尚、図２においても、制御に必要なスイッチ・センサー類については図示が省略されている。図示されるように、制御コンピュータ５０とアクチュエータ１０との間には、アクチュエータ１０の駆動用のドライバ回路１０ｄが設けられており、制御コンピュータ５０はドライバ回路１０ｄを介して、アクチュエータ１０の動作を制御している。アクチュエータ１１〜２０についても同様に、制御コンピュータ５０とアクチュエータ１１〜２０との間には、アクチュエータ１１〜２０を駆動するためのドライバ回路１１ｄ〜２０ｄが設けられており、制御コンピュータ５０は、ドライバ回路１１ｄ〜２０ｄを介してアクチュエータ１１〜２０の動作を制御している。
【００３５】
また、図１を用いて前述したように、本実施例の自動製造機械１では、アクチュエータ１０〜１３、１７〜２０にサーボモータが採用されており、アクチュエータ１４〜１６にはエアシリンダが採用されている。ここで、サーボモータとは、サーボ制御されたモータのことであり、代表的には、位置（あるいは角度）が目標値となるようにモータに流れる電流値をフィードバック制御するモータである。また、エアシリンダとは、空気圧を利用して可動部を直線移動させるアクチュエータであり、圧縮空気の供給源に接続されたポートを開閉することによって動作するようになっている。また、ポートの開閉にはシーケンス制御が用いられている。
【００３６】
このように制御コンピュータ５０には、サーボ制御されるアクチュエータ１０〜１３、１７〜２０と、シーケンス制御されるアクチュエータ１４〜１６とが接続されている。図中で、制御コンピュータ５０とアクチュエータ１０〜１３、１７〜２０とが実線で接続されているのは、これらのアクチュエータ１０〜１３、１７〜２０がサーボ制御されていることを表している。また、制御コンピュータ５０とアクチュエータ１４〜１６とが破線で接続されているのは、これらのアクチュエータ１４〜１６がシーケンス制御されることを表している。もちろん、サーボ制御やシーケンス制御以外の方式で制御されるアクチュエータを接続することも可能である。
【００３７】
制御コンピュータ５０は、制御プログラムに従ってアクチュエータ１０〜２０の動作を制御しており、その制御プログラムは、制御プログラム生成装置１００を用いて予め作成した上で、制御コンピュータ５０に読み込ませておく必要がある。ここで、図２に示したように多数のアクチュエータ１０〜２０を、適切なタイミングで適切に動作させるための制御プログラムを作成するのは容易なことではない。特に、サーボ制御やシーケンス制御のように、異なる制御方式のアクチュエータが混在している場合は、制御プログラムの作成に長い期間が必要となる。このため、新たな自動製造機械１の開発期間の中で、半分以上の期間が制御プログラムの作成に費やされてしまうのが現状となっている。
【００３８】
Ｂ．制御プログラムの作成方法  ：
Ｂ−１．概要  ：
図３は、新たな自動製造機械１を開発するための大まかな工程を概念的に示した説明図である。図３（ａ）には、従来から行われてきた開発工程が示されている。また、図３（ｂ）には、本願の発明者が提案する新たな開発工程が示されている。
【００３９】
従来の開発工程では、図３（ａ）に示すように、初めに、機械設計技術者が、自動製造機械１に要求される各種の機能を把握した上で、それらの機能を実現するための機構が組み込まれた自動製造機械１の図面を作成する。図面を作成するに際して機械設計技術者は、どのような可動部分が必要なのか、それら可動部分がどのような動作をしなければならないのか、その動作をさせるためには、どれくらいのトルクや可動量や精度のアクチュエータが、何処に、どれだけ必要なのかといった内容を、一つ一つ検討して決定して行くことになる。そして、実際に搭載するアクチュエータまで決定して、アクチュエータの搭載性や整備性なども考慮した上で、最終的に図面を完成させる。
【００４０】
こうして自動製造機械１の機械設計が完了したら、今度は、その自動製造機械１を制御するための制御プログラムの作成に移行する。制御プログラムの作成には、機械設計とは異なる専門技術が必要となるため、専門技術を有するプログラマが作成することになる。そこで、機械技術者は機械設計が終了すると、自らが考えた自動製造機械１の動作を表現するフローチャートを作成した上で、プログラマと打ち合わせをして自動製造機械１の動作を説明する。ここまでが、機械設計技術者による作業となる。
【００４１】
一方、機械設計技術者と打ち合わせたプログラマは、機械設計技術者が作成したフローチャートや、必要に応じて図面や、その他の資料を熟読することによって自動製造機械１の動作を理解した上で、自動製造機械１に搭載された各種のアクチュエータの動作を制御するための制御プログラムの作成を開始する。プログラマは、人間が判読可能な高級プログラム言語を用いて制御プログラムを作成することが普通であるが、コンピュータは高級プログラム言語のままでは制御プログラムを実行することはできない。そこで、プログラマは、制御プログラムが完成したら、高級プログラム言語で記述された制御プログラムを、コンピュータが実行可能な機械語の制御プログラムに変換することによって、最終的に制御プログラムを完成させる。尚、高級プログラム言語の制御プログラムを機械語の制御プログラムに変換する作業は、コンパイルと呼ばれており、この作業は、コンパイラと呼ばれる専用プログラムを用いることによって短時間で終了する。
【００４２】
図３（ａ）に例示されるように、従来から行われてきた開発工程では、機械設計に要する期間の１．５倍〜２．５倍程度の期間が、制御プログラムの作成に費やされるのが通常である。しかも、機械設計と制御プログラムの作成とは、原則的にはオーバーラップさせて進行させることが困難であるため、自動製造機械１の開発期間が長くなってしまう。加えて、機械設計技術者およびプログラマという異なる技術を有する専門家を確保する必要があり、このことも、新たな自動製造機械１を開発する際の大きな障害となっている。
【００４３】
一方、図３（ｂ）には、本願の発明者が提案する新たな方法を用いて、自動製造機械１を開発する工程が示されている。新たな方法を用いた場合でも、機械設計自体は、従来の方法と同様である。すなわち、機械設計技術者が、自動製造機械１に要求される各種の機能を把握した上で、それらの機能を実現するための機構が組み込まれた自動製造機械１の図面を作成する。その際には、機能の実現に必要な可動部分や、可動部分の動作内容や、可動部分を動かすためのアクチュエータの性能などを検討して、アクチュエータを決定した上で、アクチュエータの搭載性や整備性なども考慮して最終的に図面を完成させる。
【００４４】
図面が完成すると、図３（ｂ）に示したように新たな開発工程では、機械設計技術者は、フローチャートの代わりに動作チャートを作成する。この動作チャートについては、後ほど詳しく説明するが、機械設計技術者が機械設計する際に考えた各アクチュエータの動作を、チャートの形式で記述したものである。この動作チャートは、本願の発明者が独自に発案したもので、世の中には存在しないチャートであるため、「ＹＯＧＯチャート」と名付けることにした。そこで以下では、この新たな動作チャートのことを、ＹＯＧＯチャートと表記する。
【００４５】
後述するようにＹＯＧＯチャートは、機械設計する際に、機械設計技術者が考えた各アクチュエータの動作を、考えた通りに書き表したものに過ぎない。このため、機械設計した機械設計技術者であれば、フローチャートを作成する半分程度の期間で作成することができる（図３（ｂ）参照）。加えて、ＹＯＧＯチャートは、専用のコンパイラに掛けることによって、機械語の制御プログラムに変換することができる。ＹＯＧＯチャートが機械語の制御プログラムに変換可能な理由についても後述する。このように、自動製造機械１の動作をＹＯＧＯチャートに記述するようにすれば、ＹＯＧＯチャートから機械語の制御プログラムを生成することができるので、図３に示したように、従来の方法に比べて、新たな自動製造機械１の開発期間を、少なくとも半分以下（代表的には１／３程度）に短縮することができる。加えて、ＹＯＧＯチャートは機械設計技術者が簡単に作成することができ、プログラマを確保しておく必要もない。このため、新たな自動製造機械１を開発する際に大きな障害となっていた様々な事柄を、ほとんど完全に解消することが可能となる。以下では、こうしたことを可能とするＹＯＧＯチャートについて説明する。尚、本実施例のＹＯＧＯチャートは、本発明における「動作チャート」に対応する。
【００４６】
Ｂ−２．ＹＯＧＯチャート  ：
図４は、ＹＯＧＯチャート２００の概要を説明するための説明図である。尚、ＹＯＧＯチャート２００の全体を表示するために縮尺すると、潰れて判読不能となってしまうので、図４ではＹＯＧＯチャート２００の一部分（左上隅の部分）が表示されている。図４に示されるように、ＹＯＧＯチャート２００は、複数本の横線と複数本の縦線とが交差した大きな表のような形状となっている。以下では、交差する複数本の線の内、横線については「仕切線」２０１と称し、縦線については「トリガー線」２０２と称することにする。
【００４７】
互いに隣接する仕切線２０１の間に形成された横長の領域は、アクチュエータの動作が記述される領域である。ＹＯＧＯチャート２００の左端の欄には、仕切線２０１と仕切線２０１との間に、アクチュエータの名称が記載されている。従って、仕切線２０１と仕切線２０１との間の横長の領域には、左端の欄に記載されたアクチュエータの動作が記述されることになる。図４に示した例では、一番上にある横長の領域には、アクチュエータＡについての動作が記述され、上から二番目の横長の領域にはアクチュエータＢについての動作が記述され、上から三番目の横長の領域にはアクチュエータＣについての動作が記述される。図１および図２を用いて前述したように、本実施例の自動製造機械１には、１１個のアクチュエータ１０〜２０が搭載されているから、それら全てのアクチュエータ１０〜２０について、１つずつ、横長の領域が割り当てられている。また、後述するように、ＹＯＧＯチャート２００には、アクチュエータ以外の機器の動作も記述することが可能であり、それらの機器についても、横長の領域が１つずつ割り当てられている。
【００４８】
トリガー線２０２には、通し番号が付けられている。図４に示した例では、ＹＯＧＯチャート２００の上端の欄内に、その下のトリガー線２０２の通し番号が記載されている。このトリガー線２０２は、ＹＯＧＯチャート２００から機械語の制御プログラムを生成する際に重要な役割を果たしているが、この点については後ほど詳しく説明する。
【００４９】
仕切線２０１と仕切線２０１との間の領域には、その領域に割り当てられたアクチュエータの動作を示す動作線２０３が記入され、動作線２０３の左端には動作の開始を示す始点２０４が、動作線２０３の右端には動作の終了を示す終点２０５が記入される。図４に示した例では、動作線２０３は太い実線で示されており、始点２０４は白抜きの丸印で示されて、終点２０５は黒い丸印で示されている。動作線２０３は、仕切線２０１と仕切線２０１との間の領域に記入しなければならず、従って、仕切線２０１を跨ぐことはできない。また、動作線２０３はトリガー線２０２を跨いで記入することができるが、始点２０４および終点２０５はトリガー線２０２の上に記入する必要がある。
【００５０】
更に、動作線２０３の上には、アクチュエータの基本動作を示す名称（以下、基本動作名２０６）が表示されている。ここで、アクチュエータの基本動作とは、例えばモーターのように回転運動するアクチュエータであれば、正方向に回転させる動作や逆方向に回転させる動作のような基本的な動作であり、エアシリンダなどのように直線運動するアクチュエータであれば、前進させる動作や後退させる動作のような基本的な動作である。これらの基本動作は、回転速度あるいは移動速度や、動作時間などの必要なパラメータを指定することによって、アクチュエータの動作を規定することができる。尚、本実施例では、正方向に回転させる動作と、逆方向に回転させる動作とは、自由度が異なる２つの基本動作であるとしている。しかし、これらはパラメータの正負が異なるものの、同じ自由度を有する１つの基本動作であるものとして取り扱うことも可能である。ＹＯＧＯチャート２００では、以上のような仕切線２０１と、トリガー線２０２と、動作線２０３と、始点２０４と、終点２０５と、基本動作名２０６などを用いて、自動製造機械１の動作を記述する。
【００５１】
図５は、ＹＯＧＯチャート２００を用いて自動製造機械１の動作を記述する方法を示した説明図である。図５に示した例では、４つのアクチュエータａ〜ｄが協調して動作する様子が記述されている。先ず初めに、１番のトリガー線２０２に注目すると、１番のトリガー線２０２の上には、アクチュエータａの動作を記述する領域に始点２０４が記入され、その始点２０４から右方向に向かって動作線２０３が引き出されている。１番のトリガー線２０２は自動製造機械１に電源が投入されたタイミングを表しているから、この表示は、自動製造機械１に電源が投入されると、初めにアクチュエータａを動作させることを示している。
【００５２】
また、動作線２０３の上には、「Ω−ＡＡ−１」という基本動作名２０６が、「Ａ−１０」および「Ｂ−５」という２つのパラメータ付きで記入されている。後述するように基本動作名２０６は、アクチュエータａに基本動作を行わせるためのコンピュータで実行可能なプログラム要素に対応付けられている。従って、動作線２０３の上に基本動作名２０６を記入することによって、コンピュータが実行可能なプログラム要素を特定し、そのプログラム要素を用いてアクチュエータａの動作を制御することによって、基本動作名２０６の基本動作をアクチュエータａに行わせることができる。
【００５３】
尚、アクチュエータａが、例えばエアシリンダのように、ストローク限界まで前進あるいは後退させるというような単純な動作のアクチュエータである場合は、プログラム要素によって実現される基本動作は、一定時間が経過するまで単に前進あるいは後退させる動作、若しくは、接点スイッチがＯＮになるまで前進あるいは後退させる動作となる。このような単純な動作であればパラメータは不要なので、動作線２０３の上には、パラメータを伴わない基本動作名２０６が記入されることになる。これに対して、例えばリニアモータのように、前進あるいは後退させる際の移動速度や移動距離（あるいは停止位置）を指定可能なアクチュエータの場合は、プログラム要素に対してこれらの条件を指定する必要がある。また、一般的なモータのように回転軸を正方向あるいは逆方向に回転させる際の回転速度や回転角度（あるいは停止角度位置）を指定可能なアクチュエータの場合も、プログラム要素に対してこれらの条件を指定する必要がある。そこで、このようなアクチュエータに対しては、これらの条件を指定するためのパラメータを伴う基本動作名２０６が、動作線２０３の上に記入されることになる。尚、パラメータによって指定する内容は、速度や位置などを表す数値に限らず、例えばモータの加速や減速の程度や、加減速の仕方を表す駆動パターンなどを指定するようにしても良い。
【００５４】
図５中で、アクチュエータａに対して１番のトリガー線２０２上の始点２０４から引き出された動作線２０３は、２番のトリガー線２０２上の終点２０５で終わっている。この表示は、電源の投入後に開始されたアクチュエータａを動作が終了したタイミングを、２番のトリガー線２０２としていることを表している。１番のトリガー線２０２が表すタイミングから、２番のトリガー線２０２が表すタイミングまでの経過時間は、動作線２０３上の基本動作名２０６によって指定されるプログラム要素に依存して変化する。
【００５５】
また、２番のトリガー線２０２の上には、アクチュエータｂに対応する位置に始点２０４が記入され、その始点２０４から動作線２０３が引き出されて、３番の動作線２０３の上に記入された終点２０５で終わっている。同様に、アクチュエータｃに対応する位置にも、２番のトリガー線２０２上に始点２０４を有し、３番のトリガー線２０２上に終点２０５を有する動作線２０３が記入されている。この表示は、アクチュエータａの「Ω−ＡＡ−１」という基本動作名２０６の動作が終了したら、アクチュエータｂおよびアクチュエータｃの動作を開始することを表している。また、この時のアクチュエータｂの動作は、対応する動作線２０３の上に記入された「Ω−ＡＡ−２」という基本動作名２０６によって特定される動作となり、アクチュエータｃの動作は、対応する動作線２０３の上に記入された「Ω−ＢＢ−１」という基本動作名２０６で特定される動作となる。
【００５６】
更に、３番のトリガー線２０２の上には、アクチュエータｄに対応する位置に始点２０４が記入され、その始点２０４からは、４番のトリガー線２０２上の終点２０５で終了する動作線２０３が引き出されている。更に、その動作線２０３の上には、「Ω−ＡＡ−１」という基本動作名２０６が記入されている。この表示は、アクチュエータｂおよびアクチュエータｃの動作が終了したら、アクチュエータｄの動作を開始することを表している。ここで、アクチュエータｂの動作は「Ω−ＡＡ−２」という基本動作名２０６の動作であり、アクチュエータｃの動作は「Ω−ＢＢ−１」という基本動作名２０６の動作であるから、アクチュエータｂの動作とアクチュエータｃの動作とが同時に終了するわけではない。そこで、アクチュエータｄは、アクチュエータｂの動作が終了し、且つ、アクチュエータｃの動作が終了すると、基本動作名２０６（ここでは、Ω−ＡＡ−１）で特定される動作を開始することになる。
【００５７】
ここで、トリガー線２０２の本当の機能について説明する。トリガー線２０２は、直感的には「動作のタイミングを表すもの」と考えると分かり易い。しかし、トリガー線２０２の本当の機能は、動作のタイミングを表すことではない。例えば、上述したアクチュエータｂおよびアクチュエータｃの動作線２０３は、３番のトリガー線２０２上の終点２０５で終わっているが、アクチュエータｂとアクチュエータｃとは動作の内容が違うので、実際には同じタイミングで動作が終了するわけではない。すなわち、トリガー線２０２の本当の機能は、１つ以上のアクチュエータの動作の終了と、他の１つ以上のアクチュエータの動作の開始とを、論理演算によって関連付けることにある。上述した例では、３番のトリガー線２０２は、「アクチュエータｂの動作の終了」という事項の真偽と、「アクチュエータｃの動作の終了」という事項の真偽と、「アクチュエータｄの動作の開始」という事項の真偽とが、
「アクチュエータｂの動作の終了」  ＡＮＤ  「アクチュエータｃの動作の終了」
＝  「アクチュエータｄの動作の開始」
という論理演算によって関連付けていることになる。
【００５８】
また、以上の説明から明らかなように、ＹＯＧＯチャート２００の本質は、複数のアクチュエータの基本動作を、論理演算によって関連付けることによって、自動製造機械１の全体の動作を記述することにある。従って、このような機能を実現するチャートであれば、動作線２０３や、始点２０４や、終点２０５や、場合によっては仕切線２０１やトリガー線２０２などを用いずに作成されたチャートであっても、そのチャートは、ＹＯＧＯチャート２００の単なるバリエーションの一つに過ぎないということができる。
【００５９】
図６は、ＹＯＧＯチャートと同様な機能を有する動作チャート（ＹＯＧＯチャートのバリエーション）を用いて、自動製造機械１の動作を表示する様子を例示した説明図である。図６に例示したＹＯＧＯチャートのバリエーションでは、前述した動作線２０３の代わりに、矩形の動作ブロック２１３を使用する。動作ブロック２１３は、アクチュエータが動作することを表すものであり、アクチュエータが動作する内容は、動作ブロック２１３の中に基本動作名２０６を書き込むことによって規定する。そして、動作ブロック２１３が表す動作の終了と、他の動作ブロック２１３の動作の開始とを、論理演算を表す線で結び付けることによって、動作を関連付けることとしても良い。
【００６０】
例えば、図６（ａ）には、図５中に示した３番のトリガー線２０２の部分を、バリエーションのＹＯＧＯチャートで記述した様子が示されている。図６（ａ）では、２番のトリガー線２０２の位置に、「Ω−ＡＡ−２」という基本動作名２０６が記入された動作ブロック２１３と、「Ω−ＢＢ−１」という基本動作名２０６が記入された動作ブロック２１３とが表示されており、３番のトリガー線２０２の位置には、「Ω−ＡＡ−１」という基本動作名２０６が記入された動作ブロック２１３が表示されている。そして、２番のトリガー線２０２に記入された２つの動作ブロック２１３の終端と、３番のトリガー線２０２に記入された動作ブロック２１３の先端とが、実線のＡＮＤ線２１４によって接続されている。このＡＮＤ線２１４は、これらの動作ブロック２１３がＡＮＤの論理演算によって関連付けられていることを表している。従って、この場合は、「Ω−ＡＡ−２」の基本動作が終了し、且つ、「Ω−ＢＢ−１」の基本動作が終了すると、「Ω−ＡＡ−１」の基本動作を開始するという動作が記述されていることになる。
【００６１】
もちろん、複数の動作ブロック２１３を、ＡＮＤ演算ではなく、ＯＲ演算によって関連付けることも可能である。例えば、図６（ｂ）に示したように、「Ω−ＡＡ−２」の基本動作を示す動作ブロック２１３および「Ω−ＢＢ−１」の基本動作を示す動作ブロック２１３を、破線で示したＯＲ線２１５を用いて、「Ω−ＡＡ−１」の基本動作を示す動作ブロック２１３に接続する。こうすれば、「Ω−ＡＡ−２」の基本動作、または「Ω−ＢＢ−１」の基本動作の何れかが終了すると、「Ω−ＡＡ−１」の基本動作を開始するという動作を記述することができる。
【００６２】
以上の内容が、ＹＯＧＯチャート２００を用いて動作を記述する基本的な方法であるが、動作の記述をより一層容易にする目的で、ＹＯＧＯチャート２００には、様々な記述方法が用意されている。例えば、図５中に示した４番のトリガー線２０２および５番のトリガー線２０２は、一点鎖線で表示されているが、これらは条件分岐を表している。また、４番のトリガー線２０２の下方、および５番のトリガー線２０２の下方には、それぞれ一点鎖線の矩形２０７が表示されているが、これらは分岐条件を表している。図５に示した例では、４番のトリガー線２０２の下方の矩形２０７の中には「Ａ＞Ｂ」と記入されており、５番のトリガー線２０２の下方の矩形２０７の中には「ＥＬＳＥ」と記入されているが、これらは、「Ａ＞Ｂ」の条件が成立していれば、４番のトリガー線２０２上にある始点２０４から引き出された動作線２０３の動作を開始し、「Ａ＞Ｂ」の条件が成立していない場合（ＥＬＳＥの場合）は、５番のトリガー線２０２上にある始点２０４から引き出された動作線２０３の動作を開始することを表している。従って、アクチュエータｄの「Ω−ＡＡ−１」という基本動作名２０６の動作が終了した時点で、「Ａ＞Ｂ」の条件が成立している場合は、アクチュエータｂが「Ω−ＡＡ−３」という基本動作名２０６の動作を開始し、そうでなければ、アクチュエータｃが「Ω−ＢＢ−１」という基本動作名２０６の動作を開始することになる。
【００６３】
また、こうして開始されたアクチュエータｂの動作の終了を示す終点２０５、およびアクチュエータｃの動作の終了を示す終点２０５は、黒い四角印で表示されている。これは、それらの動作の終了が、ＯＲ演算によって、他の動作の開始と関連付けられることを表している。尚、黒い丸印で表示される一般的な終点２０５は、動作の終了と他の動作の開始とを、ＡＮＤ演算によって結び付けているので、特に黒い四角印の終点２０５を、一般的な黒い丸印の終点２０５と区別する必要があるときは、「ＯＲ終点２０５ａ」と表記することにする。図５中に示した例では、アクチュエータｂの「Ω−ＡＡ−３」という名前の基本動作、およびアクチュエータｃの「Ω−ＢＢ−１」という名前の基本動作は、何れも６番のトリガー線２０２上で終了しているが、何れかの動作が終了すると、アクチュエータｄが「Ω−ＡＡ−１」という名前の基本動作を開始することになる。
【００６４】
更に、こうして開始されたアクチュエータｄの動作の終了を示す終点２０５は、破線で表示された７番のトリガー線２０２上に記入されている。破線のトリガー線２０２は、繰り返して行われることを表している。図５中に示した例では、破線で表示された７番のトリガー線２０２から、同じく破線で表示された９番のトリガー線２０２までの動作が繰り返して実行される。また、これら２本のトリガー線２０２の内、初めに登場する７番のトリガー線２０２の下方には、破線の矩形２０８の中に繰返条件が記入されている。図５中に示した例では、ＶＣという変数の値が０になるまで、７番のトリガー線２０２から９番のトリガー線２０２までの動作（従って、アクチュエータａの動作およびアクチュエータｂの動作）が繰り返して実行される。そして、７番のトリガー線２０２の下方に記入された繰返条件（ここでは、変数ＶＣ＝０）が成立すると、９番のトリガー線２０２上に始点２０４が記入されたアクチュエータｃの動作が開始されることになる。
【００６５】
また、自動製造機械１では、アクチュエータの動作の開始前に音声（効果音を含む）を出力して周囲の作業者に注意を促したり、一定時間に亘ってライトを点灯させたり点滅させたりすることがある。このように、スピーカーから音声を出力する動作や、ライトを発光させて点灯あるいは点滅させる動作は、アクチュエータによる動作ではないが、それに準じた動作として基本動作と同様に取り扱うことができる。ＹＯＧＯチャート２００には、アクチュエータによる動作ではないが基本動作と同様に取り扱うことが可能な動作も記述することができる。
【００６６】
図７は、ＹＯＧＯチャート２００上で、基本動作と同様に取り扱うことが可能な動作を記述する態様を例示した説明図である。図７（ａ）には、スピーカーから音声を出力する動作（音声出力動作）が記述されている。ＹＯＧＯチャート２００では、スピーカーによる音声出力動作も、左端に始点２０４を有し右端に終点２０５を有する動作線２０３の上に、スピーカーの駆動を示す基本動作名２０６（ここでは、Ω−ＳＰ−１）を記入することによって記述する。スピーカーから出力する音声データは、パラメータを用いて指定することができる。
【００６７】
図７（ｂ）には、ライトを発光させる発光動作が記述されている。ライトによる発光動作も、左端に始点２０４を有し右端に終点２０５を有する動作線２０３の上に、ライトの発光動作を示す基本動作名２０６（ここでは、Ω−ＬＬ−１）を記入することによって記述する。ライトを発光させる態様（例えば、点灯あるいは点滅させる態様）は、パラメータを用いて指定することができる。
【００６８】
更には、例えば、スイッチ（あるはボタン）が押された回数が、所定回数に達するまで計数する計数動作や、スイッチ（あるはボタン）が押されてから、所定時間が経過するまで計時する計時動作や、ヒーターを用いて対象物を加熱したり、材料を加熱調理したりする加熱動作も、基本動作に準じた動作としてＹＯＧＯチャート２００に記述することができる。図７（ｃ）には、計数器を用いて所定回数に達するまで計数する計数動作の記述例が示されており、図７（ｄ）には、タイマを用いて所定時間の経過を計時する計時動作の記述例が、図７（ｅ）には、ヒーターを用いて加熱する加熱動作の記述例が示されている。
【００６９】
また、自動製造機械１では、スイッチがＯＮになっていること、あるいはスイッチがＯＦＦになっていることが、動作を開始するための条件になっていることがある。更には、スイッチがＯＮになること、あるいはスイッチがＯＦＦになることが、動作を終了するための条件になっていることがある。このようなことを考慮して、ＹＯＧＯチャート２００には、スイッチの状態を、動作の開始条件、あるいは動作の終了条件として記述することが可能となっている。
【００７０】
図８は、スイッチの状態を、動作の開始条件としてＹＯＧＯチャート２００に記述する態様を例示した説明図である。図８（ａ）に示した例では、１１番のトリガー線２０２の上に、終点２０５と、始点２０４と、白抜きの三角印とが記載されている。この白抜きの三角印は、スイッチがＯＮであることを確認する動作（以下、ＯＮ確認動作２０９）を表しており、ＯＮ確認動作２０９の隣には、確認するスイッチを特定するためのスイッチ特定情報２１０が記載されている。また、ＯＮ確認動作２０９や、始点２０４や、終点２０５は、それぞれ異なる仕切線２０１の間の領域に記載されている。このような図８（ａ）の記載は、「Ω−ＡＡ−２」という基本動作名２０６の動作が終了し、且つ、ＳＷ−１というスイッチがＯＮになったら（あるいは既にＯＮになっていたら）、「Ω−ＡＡ−３」という基本動作名２０６の動作を開始することを表している。
【００７１】
また、図８（ｂ）に示した例では、白抜きの三角印で表示されたＯＮ確認動作２０９が、黒い三角印に変更されている。この黒い三角印は、スイッチがＯＦＦであることを確認する動作（以下、ＯＦＦ確認動作２１１）を表している。ＯＦＦ確認動作２１１の隣にも、確認するスイッチを特定するためのスイッチ特定情報２１０が記載されている。従って、図８（ｂ）の記載は、「Ω−ＡＡ−２」という基本動作名２０６の動作が終了し、且つ、ＳＷ−１というスイッチがＯＦＦになったら（あるいは既にＯＦＦになっていたら）、「Ω−ＡＡ−３」という基本動作名２０６の動作を開始することを表している。
【００７２】
図９は、スイッチの状態を、動作の終了条件としてＹＯＧＯチャート２００に記述する態様を例示した説明図である。図９（ａ）と、前述の図８（ａ）とを比較すると、図９（ａ）では、白抜きの三角印のＯＮ確認動作２０９と、終点２０５とが、同じ仕切線２０１の間の領域に記載されている。これは、ＯＮ確認動作２０９が、動作の終了条件となっていることを表している。従って、図９（ａ）に示した記載は、ＳＷ−１というスイッチがＯＮになったら、「Ω−ＡＡ−２」という基本動作名２０６の動作を終了して、「Ω−ＡＡ−３」という基本動作名２０６の動作を開始することを表している。
【００７３】
また、図９（ｂ）に示した例では、図９（ａ）中のＯＮ確認動作２０９が、ＯＦＦ確認動作２１１に変更されている。従って、図９（ｂ）に示した記載は、ＳＷ−１というスイッチがＯＦＦになったら、「Ω−ＡＡ−２」という基本動作名２０６の動作を終了して、「Ω−ＡＡ−３」という基本動作名２０６の動作を開始することを表している。
【００７４】
Ｂ−３．ＹＯＧＯチャートから機械語の制御プログラムを生成可能な理由  ：
図３（ｂ）を用いて前述したように、自動製造機械１の動作をＹＯＧＯチャート２００に記載しておけば、そのＹＯＧＯチャート２００を専用のコンパイラに掛けることによって、制御コンピュータ５０が実行可能な機械語の制御プログラムを自動で生成することができる。こうしたことが可能となるのは、次のような理由による。
【００７５】
先ず、ＹＯＧＯチャート２００は、自動製造機械１に搭載されたアクチュエータの基本動作、および基本動作に準じた動作（図７〜図９参照）を、論理演算を用いて関連付けることによって、自動製造機械１の動作を記述する。また、分岐条件に基づく条件分岐の判断や、繰返条件に基づく繰り返し動作の判断も、論理演算に準じて考えることができる。ここで、基本動作あるは基本動作に準じた動作であれば、その動作を実現するためのプログラム要素を予め作成しておくことが可能である。尚、このようなプログラム要素は、高級プログラム言語で記述されていても良いし、機械語で記述されていても良い。
【００７６】
更に、論理演算を実行するプログラムや、分岐条件に基づく判断を実行するプログラムや、繰返条件に基づく判断を実行するプログラムであれば、単純なプログラムであるため自動で生成することができる。従って、ＹＯＧＯチャート２００を制御プログラムに変換する際には、初めにＹＯＧＯチャート２００を解析することによって、ＹＯＧＯチャート２００に記載された基本動作（および基本動作に準じた動作）と、それらを関連付ける論理演算（あるいは条件判断）とを抽出しておく。そして、基本動作（および基本動作に準じた動作）を、予め作成しておいたプログラム要素に置き換えると共に、それらのプログラム要素を、抽出した論理演算（あるいは条件判断）に対応するプログラムによって結合してやる。こうすれば、ＹＯＧＯチャート２００から、高級プログラム言語あるいは機械語で記述された制御プログラムを、自動で生成することが可能となる。本実施例では、以下のような制御プログラム生成装置１００を用いて、制御プログラムを生成する。
【００７７】
Ｃ．本実施例の制御プログラム生成装置１００  ：
図１０は、本実施例の制御プログラム生成装置１００が備える機能を示した説明図である。本実施例の制御プログラム生成装置１００は、いわゆるパーソナルコンピュータを用いて実現することができる。
【００７８】
図１０に示されるように、本実施例の制御プログラム生成装置１００は、ＹＯＧＯチャート作成部１０１や、基本動作記憶部１０２や、ＹＯＧＯチャート読込部１０３や、ＹＯＧＯチャート解析部１０４や、制御プログラム生成部１０５や、制御プログラム出力部１０６などを備えている。尚、これらの「部」は、制御プログラム生成装置１００を用いてＹＯＧＯチャート２００を作成し、そのＹＯＧＯチャート２００から自動で制御プログラムを生成するためには、制御プログラム生成装置１００に備えておくべき複数の機能を分類した抽象的な概念である。従って、制御プログラム生成装置１００が、これらの「部」に相当する部品を組み合わせて形成されていることを表しているわけではない。実際には、これらの「部」は、ＣＰＵで実行されるプログラムの形態で実現することもできるし、ＩＣチップやＬＳＩなどを組み合わせた電子回路の形態で実現することもできるし、更には、これらが混在した形態など、様々な形態で実現することができる。
【００７９】
ＹＯＧＯチャート作成部１０１は、モニター画面１００ａや、キーボード１００ｂや、マウスポインタ１００ｃなどに接続されており、自動製造機械１の機械設計を行った機械設計技術者が、モニター画面１００ａを見ながらキーボード１００ｂやマウスポインタ１００ｃを操作することによって、図４に例示したＹＯＧＯチャート２００を作成する。前述したように、ＹＯＧＯチャート２００は自動製造機械１に搭載されている複数のアクチュエータの動作を組み合わせることによって、自動製造機械１の動作を記述したものである。機械設計に際して機械設計技術者は、自動製造機械１の動作を実現するためには、複数のアクチュエータの動作をどのように組み合わせれば良いかについて、十分に検討しているので、機械設計を行った機械設計技術者であれば、自動製造機械１の動作を記述したＹＯＧＯチャート２００を簡単に作成することができる。
【００８０】
また、図４〜図７を用いて前述したように、ＹＯＧＯチャート２００には、基本動作（あるいは基本動作に準じた動作）を特定するための基本動作名２０６を記入する必要がある。そこで、基本動作記憶部１０２には、アクチュエータ（あるいは、スピーカー、ライト、スイッチなど）の名称と、そのアクチュエータなどで実行可能な基本動作などの基本動作名２０６とが対応付けて記憶されている。
【００８１】
図１１は、アクチュエータなどの名称と、基本動作名２０６とが対応付けられて、基本動作記憶部１０２に記憶されている状態を例示した説明図である。図示されるように、アクチュエータなどに対して、実行可能な基本動作などの基本動作名２０６が対応付けて記憶されている。複数種類の基本動作などが実行可能なアクチュエータなどに対しては、実行可能な動作のぞれぞれに対して基本動作名２０６が記憶されている。また、指定可能なパラメータが存在する基本動作名２０６については、指定可能なパラメータについても記憶されている。例えば、図１１中で一番上に表示された「Ω−ＡＡ−１」という基本動作名２０６については、「Ａ」というパラメータを指定可能である旨が記憶されており、上から３番目の「Ω−ＡＡ−３」という基本動作名２０６については、「Ａ」および「Ｂ」という２つのパラメータを指定可能である旨が記憶されている。また、上から４番目の「Ω−ＡＡ−４」という基本動作名２０６については、指定可能なパラメータが存在しない旨が記憶されている。
【００８２】
また、図１１に示されるように、それぞれの基本動作名２０６に対しては、プログラム要素名も記憶されている。プログラム要素名とは、基本動作名２０６が表す基本動作（あるいは基本動作に準じた動作）を実現するためのプログラムの名称である。基本動作や、これに準じた動作は単純な動作であるため、それらの動作を実現するプログラムは小さなサイズとなり、他の大きなサイズのプログラムに部品として組み込むことができる。そこで本明細書では、これらの動作を実現するプログラムを「プログラム要素」と表記している。プログラム要素は、高級プログラム言語を用いて記述されたプログラムであっても良いし、機械語で記述されたプログラムであってもよい。
【００８３】
図１０に示すように、ＹＯＧＯチャート作成部１０１は、基本動作記憶部１０２に接続されている。このため、機械設計技術者は、ＹＯＧＯチャート２００を作成するに際して、基本動作記憶部１０２に記憶されている図１１のデータを参照することができる。そして、自動製造機械１を設計した機械設計技術者であれば、どのようなアクチュエータをどのように動作させるかは十分に分かっているので、アクチュエータなどの名称から基本動作名２０６を知ることができる。更に、パラメータに指定する内容も容易に決めることができる。このため、ＹＯＧＯチャート２００を簡単に作成することができる。
【００８４】
ＹＯＧＯチャート読込部１０３は、ＹＯＧＯチャート作成部１０１で作成したＹＯＧＯチャート２００を読み込んで、ＹＯＧＯチャート解析部１０４に出力する。尚、本実施例では、制御プログラム生成装置１００でＹＯＧＯチャート２００も作成するものとしており、このことに対応して、ＹＯＧＯチャート読込部１０３は、ＹＯＧＯチャート作成部１０１からＹＯＧＯチャート２００を読み込んでいる。これに対して、別のコンピュータでＹＯＧＯチャート２００を作成した場合は、ＹＯＧＯチャート読込部１０３は、別のコンピュータからＹＯＧＯチャート２００を読み込むことになる。
【００８５】
ＹＯＧＯチャート解析部１０４は、ＹＯＧＯチャート読込部１０３から受け取ったＹＯＧＯチャート２００を解析することによって、ＹＯＧＯチャート２００に記載された基本動作（および基本動作に準じた動作）と、それらを関連付けている論理演算（あるいは条件判断）とを抽出する。そして、その結果を、制御プログラム生成部１０５に出力する。
【００８６】
制御プログラム生成部１０５は、基本動作記憶部１０２に記憶されている基本動作名２０６とプログラム要素との対応関係（図１１参照）を参照することによって、ＹＯＧＯチャート２００に記述されていた基本動作（および基本動作に準じた動作）を、プログラム要素に置き換える。更に、それらのプログラム要素を、ＹＯＧＯチャート２００から抽出した論理演算（あるいは条件判断）に基づいて、論理演算などを実行するプログラムによって結合してやる。こうすることによって、ＹＯＧＯチャート２００から制御プログラムを生成することができるので、生成した制御プログラムを、制御プログラム出力部１０６に出力する。尚、ＹＯＧＯチャート２００から制御プログラムを生成するためのコンパイラ１１０は、上述した基本動作記憶部１０２、ＹＯＧＯチャート読込部１０３、ＹＯＧＯチャート解析部１０４、および制御プログラム生成部１０５によって実現されている。
【００８７】
制御プログラム出力部１０６は、制御プログラム生成部１０５から受け取った制御プログラムを、自動製造機械１の制御コンピュータ５０（図１および図２参照）の記憶領域に書き込んでやる。その結果、制御コンピュータ５０は、自動製造機械１に搭載されている各種のアクチュエータを、制御プログラムに従って制御することで、自動製造機械１の動作を制御することが可能となる。
【００８８】
尚、本実施例のＹＯＧＯチャート読込部１０３は、本発明の「動作チャート読込部」に対応している。また、本実施例の制御プログラム生成装置１００が備えるＹＯＧＯチャート読込部１０３、ＹＯＧＯチャート解析部１０４、制御プログラム生成部１０５は、制御プログラムを生成する方法を表していると考えることもできる。従って、本実施例のＹＯＧＯチャート読込部１０３は、制御プログラム生成方法として把握した本発明の「動作チャート読込工程」に対応し、本実施例のＹＯＧＯチャート解析部１０４は、本発明の「動作チャート解析工程」に対応し、本実施例の制御プログラム生成部１０５は、本発明の「制御プログラム生成工程」に対応する。更に、本実施例の制御プログラム生成装置１００が備えるＹＯＧＯチャート読込部１０３、ＹＯＧＯチャート解析部１０４、制御プログラム生成部１０５が実現する機能は、自動製造機械１の制御プログラムを生成する方法を、コンピュータを用いて実現するプログラムが備える機能として把握することもできる。従って、本実施例のＹＯＧＯチャート読込部１０３は、プログラムとして把握した本発明の「動作チャート読込機能」に対応し、本実施例のＹＯＧＯチャート解析部１０４は、本発明の「動作チャート解析機能」に対応し、本実施例の制御プログラム生成部１０５は、本発明の「制御プログラム生成機能」に対応する。
【００８９】
以上に詳しく説明したように、自動製造機械１の動作をＹＯＧＯチャート２００で記述しておけば、そのＹＯＧＯチャート２００を制御プログラム生成装置１００で処理することで、自動製造機械１を制御するための制御プログラムを自動で生成することができる。このため、プログラマが制御プログラムを作成しなくても良くなるので、新たな自動製造機械１を開発するために要する時間を、大幅に（少なくとも半分以下に）短縮することができ、プログラマを確保しておく必要も無くなる。その結果、製造現場に新たな自動製造機械を導入することが容易になって、産業界での省力化に対する要請に十分に対応することが可能となる。
【００９０】
以上、本実施例の制御プログラム生成装置１００について説明したが、本発明は上記の実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
【００９１】
例えば、上述した実施例では、ＹＯＧＯチャート２００は、基本動作（あるいは基本動作に準じた動作）によって記述されるものとして説明した。しかし、他自由度の複雑な動作をする部品を購入して、その部品に所定の動作を行わせることによって、自動製造機械１のアクチュエータとして利用する場合もある。このような場合は、その部品に所定の動作を、基本動作に準じた動作として取り扱って、基本動作名２０６を付与した上でＹＯＧＯチャート２００に記入するようにしても良い。このような場合でも、基本動作名２０６に対応するプログラム要素を予め作成しておけば、制御プログラム生成装置１００を用いて制御プログラムを自動で生成することが可能となる。
【符号の説明】
【００９２】
１…自動製造機械、    ２…レール、    ３…搬送ユニット、    ３ａ…把持軸、
３ｂ…チャック、      ４…加工ユニット    １０〜２０…アクチュエータ、
１０ｄ〜２０ｄ…ドライバ回路、      ５０…制御コンピュータ、
１００…制御プログラム生成装置、    １０１…ＹＯＧＯチャート作成部、
１０２…基本動作記憶部、            １０３…ＹＯＧＯチャート読込部、
１０４…ＹＯＧＯチャート解析部、    １０５…制御プログラム生成部、
１０６…制御プログラム出力部、    １１０…コンパイラ、
２００…ＹＯＧＯチャート、    ２０１…仕切線、    ２０２…トリガー線、
２０３…動作線、        ２０４…始点、            ２０５…終点、
２０６…基本動作名、    ２０９…ＯＮ確認動作、    ２１０…スイッチ特定情報、
２１１…ＯＦＦ確認動作。
【要約】
【課題】自動製造機械の動作を制御する制御プログラムを自動で生成する。
【解決手段】自動製造機械（１）に搭載されている複数のアクチュエータの基本動作と、基本動作を実現するためのプログラム要素とを対応付けて記憶しておく。また、自動製造機械の動作を、複数の基本動作の終了と他の基本動作の開始とが論理演算によって関連付けられた動作チャート（２００）によって記述しておく。そして、自動製造機械の動作が記述された動作チャートを読み込んで、動作チャート中の基本動作をプログラム要素に変換すると共に、動作チャートに従ってプログラム要素を結合する。こうすれば、自動製造機械の動作を制御する制御プログラムを自動で生成することが可能となる。
【選択図】図１０【図１】
0006787616.tif 000002
【図２】
0006787616.tif 000003
【図３】
0006787616.tif 000004
【図４】
0006787616.tif 000005
【図５】
0006787616.tif 000006
【図６】
0006787616.tif 000007
【図７】
0006787616.tif 000008
【図８】
0006787616.tif 000009
【図９】
0006787616.tif 000010
【図１０】
0006787616.tif 000011
【図１１】
0006787616.tif 000012