説明

開発支援方法及びプログラム

【課題】制御プログラムの開発を効率的に行なうことができる開発支援方法を提供する。
【解決手段】開発支援方法は、実装基板製造装置に組み込まれた制御プログラムによって出力される統計情報を、ログファイルから読み出す統計情報取得ステップ(S11)と、統計情報取得ステップで取得された駆動部の状態毎の統計情報を、グループ毎に集計する統計情報集計ステップ(S12)と、統計情報集計ステップで集計されたグループ毎の統計情報を出力する統計情報出力ステップ(S13)とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、開発支援方法、特に、実装基板製造装置の駆動部の動作を制御する制御プログラムの開発を支援する方法に関するものである。
【背景技術】
【0002】
ソフトウェアの開発効率向上のため、特に、モレ、ヌケを事前に見出すための状態遷移表設計手法に基づくソフトウェア設計ツールは、状態遷移表から自動的にソースコードを生成する機能を備えている。また、このようなソフトウェア設計ツールの中には、さらにシミュレーションテスト機能まで備えたものがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−102205号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上述のソフトウェア設計ツールにおいて、実際にシミュレーションテストを実施しようとすると、別の開発ツールで別途テスト用モジュールを作成しなければならない。すなわち、各テスト用モジュールをカスタム作成しなければならず、開発ツールとして利用されにくいという課題がある。
【0005】
本発明は、上記の課題に鑑みてなされたものであり、制御プログラムの開発を効率的に行なうことができる開発支援方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一形態に係る開発支援方法は、実装基板製造装置の駆動部の動作を制御するための制御プログラムの開発を、コンピュータにより支援する方法である。前記制御プログラムは、前記駆動部の状態と、前記制御プログラムの外部で実行される処理の結果として生じるイベントと、前記駆動部の状態及び前記イベントの組み合わせのそれぞれに対して、前記駆動部が実行する動作及び前記駆動部の次の状態とが定義されている状態遷移表に基づいて生成され、且つ前記駆動部の状態が遷移する毎に、前記駆動部の駆動状態を示す統計情報をログファイルに出力するものである。また、前記状態遷移表に定義されている前記駆動部の状態は、複数のグループのいずれかに分類されている。そして、該開発支援方法は、前記実装基板製造装置に組み込まれた前記制御プログラムによって出力される前記統計情報を、前記ログファイルから読み出す統計情報取得ステップと、前記統計情報取得ステップで取得された前記駆動部の状態毎の統計情報を、前記グループ毎に集計する統計情報集計ステップと、前記統計情報集計ステップで集計された前記グループ毎の統計情報を出力する統計情報出力ステップとを含む。
【0007】
このように、統計情報をグループ毎に集計して表示することにより、例えば、処理時間が著しく長いグループが存在する場合に、当該箇所が一連の処理の中でボトルネックになっていると判断することができる。このような解析結果を踏まえて制御プログラムを修正することにより、実装基板製造装置の処理速度を向上させることができる。同様に、消費電力量が著しく長いグループの処理を中心に制御プログラム修正することにより、実装基板製造装置の電力消費量を抑えることができる。
【0008】
さらに、前記複数のグループは、複数の上位グループのいずれかに分類されていてもよい。前記統計情報集計ステップでは、さらに、前記統計情報取得ステップで取得された前記状態毎の統計情報を、前記上位グループ毎に集計してもよい。そして、前記統計情報出力ステップでは、さらに、前記統計情報集計ステップで集計された前記上位グループ毎の統計情報を出力してもよい。
【0009】
このように、グループを階層化することにより、より柔軟に制御プログラムの性能を評価することが可能となる。
【0010】
例えば、前記状態毎の統計情報は、当該状態における前記駆動部の動作時間、又は当該状態における前記駆動部の消費電力量を示す情報であってもよい。但し、統計情報はこれらに限定されず、他の情報であってもよい。
【0011】
本発明の一形態に係るプログラムは、上記記載の開発支援方法を、コンピュータに実行させる。
【発明の効果】
【0012】
本発明によれば、状態遷移表に基づいて制御プログラムの生成し、状態遷移表に定義されている状態をグループ化して、グループ毎に集計した統計情報を出力する。そして、プログラム作成者は、出力された統計情報に基づいて制御プログラムを修正することができる。すなわち、この開発支援方法によれば、制御プログラムの開発を効率的に行なうことができる。
【図面の簡単な説明】
【0013】
【図1】図1は、本発明の実施の形態における部品実装システムの外観図である。
【図2】図2は、部品実装機の内部の主要な機械的構成を示す構成図である。
【図3】図3は、ヘッドと部品カセットとの位置関係を示す模式図である。
【図4】図4は、部品を収めた部品テープ及びリールの例を示す図である。
【図5】図5は、本実施の形態における部品実装機の機能ブロック図である。
【図6】図6は、NCデータの一例を示す図である。
【図7】図7は、部品ライブラリの一例を示す図である。
【図8】図8は、実装条件データの一例を示す図である。
【図9】図9は、開発支援プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図10】図10は、状態遷移表の例を示す図である。
【図11】図11は、図10の状態遷移表から生成されるソースコードの例を示す図である。
【図12】図12は、開発支援プログラムの動作を示すフローチャートである。
【図13】図13は、ログファイルに書き込まれたログの一例を示す図である。
【図14】図14は、ヘッドの各状態のグループ化の例を示す図である。
【図15】図15は、開発支援プログラムによる統計情報の出力例を示す図である。
【発明を実施するための形態】
【0014】
図1は、本発明の実施の形態における部品実装システムの外観図である。
【0015】
本実施の形態における部品実装システム1000は、部品実装機100と、部品実装機100を制御する制御装置200とを備えている。なお、図1では、制御装置200を部品実装機100とは別体として図示しているが、部品実装機100内に制御装置200を設けてもよい。
【0016】
部品実装機100は、上流から基板(回路基板)20を受け取り、その基板20に対して部品を実装し、その部品が実装された基板20を下流側に送り出す。なお、部品実装機100によって部品が実装された基板20を、以下、実装基板という。
【0017】
具体的には、部品実装機100は、複数種の部品を供給する2つの部品供給部115a、115bと、基板20を部品実装機100の内部に搬入する搬入口130とを備える。部品実装機100は、搬入口130から搬入された基板20を、所定位置で停止させる。そして、部品実装機100は、部品供給部115a、115bから供給される部品を順次取り出し、所定位置で停止している基板20に対して、取り出した部品を実装する。
【0018】
また、部品実装機100は、部品供給部115a、115bから供給された部品、当該部品を実装する前の基板20、及び基板20に実装された後の部品の状態等を、撮像装置等を用いて認識する。
【0019】
制御装置200は、部品実装機100による部品の実装条件などを決定して、その実装条件に沿って実装が行われるように部品実装機100を制御する。
【0020】
図2は、部品実装機100の内部の主要な機械的構成を示す構成図である。
【0021】
部品実装機100は、基板20に対して部品を実装する2つの実装ユニット110a、110bと、基板20を搬送するための一対の基板搬送レール122a、122bと、一対のビーム駆動ロボット140とを備えている。2つの実装ユニット110a、110bは、協調して基板搬送レール122a、122b上にある基板20に対して部品を実装する。
【0022】
実装ユニット110a及び実装ユニット110bは、それぞれ同様の構成を有している。つまり、実装ユニット110aは、部品供給部115a、部品検査部116a、ヘッド112a、及びビーム121aを備えている。同様に、実装ユニット110bは、部品供給部115b、部品検査部116b、ヘッド112b、及びビーム121bを備えている。
【0023】
ここで、実装ユニット110aの詳細な構成について説明する。なお、実装ユニット110bの詳細な構成については、実装ユニット110aと同様であるため省略する。
【0024】
部品供給部115aは、部品テープを収納する複数の部品カセット(フィーダ)114の配列からなる。また、部品供給部115aの各部品カセット114は、基板20の搬送方向(X軸方向)に沿って配列している。なお、部品テープとは、例えば、同一部品種の複数の部品がテープ(キャリアテープ)上に並べられたものであり、リール等に巻かれた状態で供給される。また、部品テープに並べられる(収納される)部品は、例えばチップ部品であって、具体的には0402チップ部品や1005チップ部品などである。
【0025】
ヘッド112aは、例えばマルチ装着ヘッドと呼ばれるヘッドであって、複数の吸着ノズル(以下、単にノズルという)を備えることができる。例えば、部品供給部115aから10個の部品を吸着して基板20に装着することができる。このようなヘッド112aは、軸状に構成されたビーム121aに対してスライド自在に取り付けられている。ヘッド112aは、例えば、モータなどのアクチュエータの駆動により、ビーム121aに沿って移動する。また、ヘッド112aには、部品を実装する前の基板20の状態、及び基板20に実装された後の部品の状態等を検査する部品検査部116a、116bが設けられている。
【0026】
ビーム121aは、基板20の搬送方向(X軸方向)と垂直な方向(Y軸方向)に沿って互いに平行に配置された一対のビーム駆動ロボット140上に、Y軸方向にスライド自在に取り付けられている。したがって、ビーム121aは、例えばモータなどのアクチュエータの駆動により、一対のビーム駆動ロボット140上をY軸方向に沿って移動する。すなわち、ヘッド112aは、ビーム駆動ロボット140およびビーム121aによってX軸方向およびY軸方向に移動する。
【0027】
基板搬送レール122a、122bは、それぞれX軸方向に対して平行となるように配置されている。ここで、基板搬送レール122aは、部品供給部115a側に寄せて固定されている。一方、基板搬送レール122bは、搬送される基板20のサイズ(幅)に応じてY軸方向に移動する。部品実装機100の搬入口130から搬入された基板20は、一対の基板搬送レール122a、122b上に沿って搬送されてストッパーなどにより所定位置で停止される。
【0028】
部品検査部116aは、ヘッド112aに吸着された部品の形状や吸着状態を2次元又は3次元的に検査するために用いられる。また、部品検査部116aは、部品供給部115aにおけるX軸方向に沿った中央付近に配置されている。
【0029】
このように構成された部品実装機100において、ヘッド112aは、部品供給部115aから供給される部品を吸着して基板20上に移動し、吸着している部品をその基板20の各実装点に装着し、部品供給部115a上に移動するという一連の動作を繰り返し実行する。ヘッド112bも同様に、部品供給部115bから供給される部品を吸着して基板20上に移動し、吸着している部品をその基板20の各実装点に装着し、部品供給部115b上aに移動するという一連の動作を繰り返し実行する。
【0030】
このように実行される一連の動作、または1回あたりの一連の動作でヘッドに吸着される部品群を、以下、タスクという。また、実装点とは、基板20上の部品が実装されるべき位置である。
【0031】
ヘッド112aによる1つのタスクの例を具体的に説明する。まず、ヘッド112aは、X軸方向およびY軸方向に移動しながら、部品供給部115aの各部品カセット114から供給される1タスク分の部品を吸着する。その後、ヘッド112aは、部品検査部116a上を一定速度で移動する、或いは一時停止することにより、吸着している部品を部品検査部116aに撮像させ、基板20の実装領域上に入る前のポイントである突入ポイントに到達する。そして、ヘッド112aは、その突入ポイントから所定のタイミングで移動を開始して基板20の実装領域上に入る。なお、突入ポイントは複数点あってもよい。
【0032】
なお、実装領域とは、基板20の実装点が存在する領域であって、基板20の一部の領域や全ての領域であってもよい。実装領域上に入ったヘッド112aは、X軸方向およびY軸方向に移動しながら、吸着している部品をそれぞれ各実装点に装着する。1タスク分の全ての部品の装着が完了すると、ヘッド112aは、基板20の実装領域上から出て部品供給部115a上に移動する。
【0033】
一方、ヘッド112bも上述のヘッド112aの動作と同様の動作を行うが、ヘッド112a、112bは、それぞれが干渉することがないように、つまり、それぞれが同時に基板20の実装領域上の干渉する領域に入ることがないように、互いに協調して動作する。
【0034】
図3は、ヘッド112aと部品カセット114との位置関係を示す模式図である。
【0035】
上述のように、ヘッド112aには、例えば最大10個のノズルnzをX軸方向に配列させて取り付けることが可能である。10個のノズルnzが取り付けられたヘッド112aは、例えば、最大10個の部品カセット114のそれぞれから部品を順次、或いは同時に(1回の上下動作で)吸着することができる。同様に、ヘッド112bも例えば最大10個のノズルnzを取り付けることができる。なお、本発明では、ヘッド112a,112bに取り付けられるノズルnzの数は10個以外でもよく、X軸方向に沿うノズルnzの列を、Y軸方向に複数列取り付けてもよい。
【0036】
図4は、部品を収めた部品テープ及びリールの例を示す図である。
【0037】
チップ形電子部品などの部品423dは、図4に示すキャリアテープ424に保持されている。キャリアテープ424には、一定間隔で連続的に形成された複数の収納凹部424aが設けられている。部品は、この収納凹部424aに収納されている。さらに、キャリアテープ424の上面(部品を取り出す側)には、カバーテープ425が貼付けられている。カバーテープ425が貼り付けられたキャリアテープ424は、リール426に所定の数量分だけ巻回されたテーピング形態でユーザに供給される。このようなキャリアテープ424およびカバーテープ425によって部品テープが構成される。なお、部品テープの構成は、図4に示す構成以外の他の構成であってもよい。
【0038】
本実施の形態における部品実装機100では、上述のようにヘッド112a,112bがそれぞれ同時に基板20の実装領域上の干渉する領域に入ることがないように互いに強調して動作する。その結果、この部品実装機100は、いわゆる交互打ちと非交互打ちとを実行する。交互打ちとは、ヘッド112aによる1タスク分の部品の装着と、ヘッド112bによる1タスク分の部品の装着とが交互に行われる動作である。一方、非交互打ちとは、ヘッド112aまたはヘッド112bによる1タスク分の部品の装着が繰り返し連続して同じヘッドで行われる動作である。
【0039】
図5は、本実施の形態における部品実装機100の制御系の機能構成を示すブロック図である。
【0040】
本実施の形態における部品実装機100は、入力部151、表示部152、ヘッド制御部153、制御部154、通信部155、および格納部156を備えている。
【0041】
入力部151は、例えばキーボードやマウスなどで構成されており、オペレータ(ユーザ)からの操作を受け付けて、その操作結果をヘッド制御部153や制御部154などに通知する。
【0042】
表示部152は、例えば液晶ディスプレイなどで構成されており、ヘッド制御部153などの動作状態を表示したり、格納部156などに格納されているデータを表示したりする。
【0043】
制御部154は、入力部151に受け付けられた操作や、通信部155で受信されたデータに応じて、部品検査部116a、116b、表示部152、及びヘッド制御部153などを制御する。また、制御部154は、基板20を搬送するためのモータなどを制御して、基板20を適切な位置に搬送する。
【0044】
通信部155は、制御装置200と通信する。例えば、通信部155は、基板20の各実装点に関する情報などを示すNCデータ156aと、各部品に関する情報を示す部品ライブラリ156bと、部品カセット114の配列や部品の実装順序などの実装条件を示す実装条件データ156cとを制御装置200から取得して、それらを格納部156に格納する。なお、図5では、制御装置200と制御部154とを別体として構成する例を示しているが、制御装置200を制御部154内に設けて、部品実装機100の制御系内の構成としてもよい。また、制御装置200、ヘッド制御部153、及び制御部154をまとめて制御部として構成するものであってもよい。
【0045】
格納部156は、通信部155により取得されたNCデータ156a、部品ライブラリ156b、及び実装条件データ156c等を格納している。
【0046】
図6は、NCデータ156aの一例を示す図である。
【0047】
NCデータ156aは、基板20において装着の対象となる全ての部品の実装点に関する情報を示す。1つの実装点piは、部品種ci、X座標xi、Y座標yi、制御データφi、および実装角度θiからなる。ここで、部品種は、部品ライブラリ156bにおける部品名に相当する(図7参照)。X座標およびY座標は実装点の座標である。制御データφiは、その部品の装着に関する制約情報、例えば、使用可能なノズルnzのタイプや、ヘッド112a、112bの最高移動加速度等を示す。実装角度θiは、部品種ciの部品を吸着したノズルnzが回転すべき角度を示す。
【0048】
図7は、部品ライブラリ156bの一例を示す図である。
【0049】
部品ライブラリ156bは、部品実装機100が扱うことができる全ての部品種のそれぞれについての固有の情報を集めたライブラリである。この部品ライブラリ156bは、図7に示すように、部品種(部品名)ごとの部品サイズ(幅、奥行き、厚さ等)、その部品種におけるタクト、および制約情報などからなる。
【0050】
なお、この部品ライブラリ156bの示すタクトは、一定条件下において部品を基板20に装着するのに要する部品種固有の時間である。制約情報は、例えば、使用可能なノズルnzのタイプ(SXや、SAなど)、部品検査部116a、116bによる認識方式(反射など)、及びヘッド112a、112bの最高加速度比などである。また、図7には、参考として、各部品種の部品の外観も併せて示されている。部品ライブラリ156bには、その他に、部品の色や形状などの情報が含まれていてもよい。
【0051】
図8は、実装条件データ156cの一例を示す図である。
【0052】
実装条件データ156cは、部品供給部115a、115bにおける部品カセット114の配列(部品配列)、及びヘッド112a、112bのそれぞれのタスクごとの実装順序などを示す。例えば、実装条件データ156cは、部品配列として、部品供給部115aのX軸方向の一方からA1番目に部品種c1があり、A2番目に部品種c2があることを示す。同様に、部品供給部115bのX軸方向の一方からB1番目に部品種c1があり、B2番目に部品種c2があることを示す。
【0053】
また、実装条件データ156cは、ヘッド112aの実装順序として、部品種c1〜c4の部品を含むタスク番号Ta1のタスクが実行され、次に、部品種c9〜c12の部品を含むタスク番号Ta2のタスクが実行され、さらにその後、部品種c17〜c20の部品を含むタスク番号Ta3のタスクが実行されることを示す。同様に、実装条件データ156cは、ヘッド112bの実装順序として、部品種c5〜c8の部品を含むタスク番号Tb1のタスクが実行され、次に、部品種c13〜c16の部品を含むタスク番号Tb2のタスクが実行され、さらにその後、部品種c21〜c24の部品を含むタスク番号Tb3のタスクが実行されることを示す。なお、実装条件データ156cは、タスクに含まれる部品ごとに、その部品の実装点も示している。
【0054】
ヘッド制御部153は、格納部156に格納されているデータに基づいてモータなどを制御することにより、ヘッド112a、112bを移動させたり、そのヘッド112a、112bに部品を吸着させたり、部品を吸着したヘッド112a、112bを部品検査部116a、116bに移動させたり、部品を基板20上の実装点に装着させたりする。そして、ヘッド制御部153の動作は、後述する開発支援方法によって開発された制御プログラムによって制御される。
【0055】
例えば、ヘッド制御部153は、上述の実装条件データ156cを読み出し、ヘッド112a、112bが実装すべきタスクをタスク番号に従って特定するとともに、そのタスクの部品が供給される場所を部品配列に基づいて特定する。そして、ヘッド制御部153は、特定した場所にヘッド112a、112bを移動させ、それらのヘッド112a、112bに部品を吸着させて、その部品に対応する実装点に装着させる。
【0056】
また、ヘッド制御部153は、ヘッド112aを他方のヘッド112bの動きに応じて制御する。同様に、ヘッド112bを他方のヘッド112aの動きに応じて制御する。つまり、ヘッド制御部153は、制御対象となるヘッド(以下、対象ヘッドという)を、他方のヘッド(以下、相手ヘッドという)の動きに応じて制御する。
【0057】
ヘッド制御部153は、相手ヘッドが基板20の実装領域上にあるときに、対象ヘッドが突入ポイントに到達すると、対象ヘッドを突入ポイントに待機させておく。そして、相手ヘッドが実装領域上の互いのヘッドが干渉する領域である干渉領域から出ると、対象ヘッドを実装領域上に突入させる。また、ヘッド制御部153は、相手ヘッドが基板20の実装領域上にないときに、対象ヘッドが突入ポイントに到達すると、基本的に、その対象ヘッドを突入ポイントで待機させることなく実装領域上に突入させる。
【0058】
但し、本実施の形態におけるヘッド制御部153は、対象ヘッドが突入ポイントに到達したタイミングでその対象ヘッドを基板20の実装領域上に突入させることによって、非交互打ちが実行されそうな場合には、その非交互打ちを避けて強制的に交互打ちを実行させるべきか否かを判別する。非交互打ちを避けるべきと判別すると、ヘッド制御部153は、相手ヘッドが実装領域上になくても、相手ヘッドが実装領域上に入って1タスク分の部品を装着してその実装領域上から出るまで、対象ヘッドを突入ポイントに待機させておく。その結果、強制的な交互打ちが実現される。
【0059】
なお、交互打ちとは、上述のように、基板20へのヘッド112aによる1タスク分の部品の装着と、ヘッド112bによる1タスク分の部品の装着とが交互に行われる動作であって、例えば、「ヘッド112a→ヘッド112b→ヘッド112a→ヘッド112b→・・・」の順で基板20への部品の装着が行われる動作である。また、非交互打ちとは、上述のように、ヘッド112aまたはヘッド112bによる1タスク分の部品の装着が繰り返し連続して行われる動作であって、例えば、「ヘッド112a→ヘッド112b→ヘッド112b→ヘッド112a→・・・」の順で同じヘッドによる部品の装着が連続して行われる動作である。
【0060】
次に、上記構成のヘッド制御部153の動作を制御するためのプログラムの開発を支援する開発支援方法について説明する。なお、本発明の開発支援方法は、典型的には、コンピュータが実行するプログラム(開発支援プログラム)の形態で提供される。
【0061】
図9は、本実施の形態に係る開発支援プログラムを実行するコンピュータ10のハードウェア構成を示す図である。コンピュータ10は、図9に示されるように、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、入力部14と、表示部15とを主に備える。
【0062】
CPU11は、ROM12又はRAM13に記憶されているプログラムを実行する。ROM12は、例えば、コンピュータ10の起動時に必要となるプログラム(BIOS等)を記憶している。RAM13は、例えば、各種プログラムを記憶すると共に、CPU11による演算結果の一時記憶領域等としても利用される。本実施の形態に係る開発支援プログラムもRAM13に記憶されている。
【0063】
なお、RAM13の具体的な構成は特に限定されないが、例えば、DRAM(Dynamic random access memory)、SDRAM(Synchronous dynamic random access memory)、フラッシュメモリ、又は強誘電体メモリ等のデータを記録可能な手段であればどのようなものを利用しても構わない。
【0064】
入力部14は、ユーザからの入力を受け付けるインタフェースであって、例えば、キーボードやマウス等である。表示部15は、各種情報をユーザに表示するディスプレイである。ディスプレイの具体的な構成は特に限定されないが、例えば、液晶ディスプレイ、プラズマディスプレイ、又は有機EL(Electro Luminescence)ディスプレイ等を採用することができる。
【0065】
本実施の形態に係る開発支援プログラムは、部品実装機100の駆動部(この例ではヘッド112a、112b)の動作を制御するためのプログラム(以下、「制御プログラム」)の開発を支援するものである。
【0066】
図10及び図11を参照して、本実施の形態に係る開発支援プログラムによって生成されるプログラムの例を説明する。図10は、状態遷移表の例を示す図である。図11は、生成されたソースコードの一例を示す図である。但し、図11では、以降の説明で取り上げられる部分を中心に記述し、それ以外の部分の記述を省略している。
【0067】
まず、図10に示されるような状態遷移表がユーザによって設計される。具体的には、開発支援プログラムは、入力画面を表示部15に表示し、ユーザからの入力を入力部14を介して受け付ける。
【0068】
なお、状態遷移表とは、例えば、図10に示されるように、行及び列で構成されるマトリクス状の表である。この状態遷移表の第1行(一番上の行)には、例えば、ヘッド112a、112b等の状態が定義される。また、第1列には、制御プログラムの外部で実行される処理の結果として生じるイベントが定義される。なお、第1列に状態を定義し、第1行にイベントを定義してもよい。さらに、第1行及び第1列以外の各セルには、状態及びイベントの組み合わせに対して、ヘッド112a、112bが実行する動作及びヘッド112a、112bの次の状態が定義される。
【0069】
ここで、「制御プログラムの外部で実行される処理の結果として生じるイベント」とは、例えば、上位システムからの通信コマンドの結果として生じるイベント、GUI(Graphical User Interface)又は操作スイッチ等のユーザ操作の結果として生じるイベント、駆動部(この例では、ヘッド112a、112b)の動作の結果として生じるイベント、制御プログラムの外部で実行される処理の結果として生じるイベントを擬似的に発生させるプログラムを制御プログラムの内部に予め組み込んでおき、当該プログラムを実行することにより生じるイベント等が該当する。
【0070】
なお、ヘッド112a、112bの状態とは、例えば図10に示されるように、「停止中」、「部品フィーダ移動中」、「部品吸着中」、「部品吸着認識位置移動中」、「部品認識中」、「部品実装位置移動中」、「部品実装中」、及び「エラー発生中」等である。また、制御プログラムの外部で実行される処理の結果として生じるイベントとは、例えば図12に示されるように、「部品吸着開始」、「部品フィーダ位置移動完了」、「部品吸着完了」、「部品吸着認識位置移動完了」、「部品認識完了」、「部品実装位置移動完了」、「部品実装完了」、「エラー」、及び「エラー復帰」等である。
【0071】
さらに、状態及びイベントに対応するヘッド112a、112bが実行する動作及びヘッド112a、112bの次の状態とは、第1行の任意のセルから下向きに、第1列の任意のセルから右向きに移動した交点のセルに定義される。
【0072】
例えば、第1行の「部品フィーダ位置移動中」及び第1列の「部品フィーダ位置移動完了」に対応する動作は「部品吸着」であり、次の状態は「部品吸着中」である(図10の「(イベントID,状態ID)=(1,1)」のセル)。すなわち、この状態遷移表では、ヘッド112a、112bの状態が「部品フィーダ位置移動中」で、且つ「部品フィーダ位置移動完了」イベントが発生すると、ヘッド112a、112bは、部品吸着処理を実行する。そして、部品吸着処理の結果として、ヘッド112a、112bの状態が「部品吸着中」に遷移する。なお、ヘッド112a、112bは、上述の交互打ち又は非交互打ちが選択されている場合は、状態及びイベントのタイミングはヘッド112a、112b間で異なる。
【0073】
次に、開発支援プログラムは、図10に示される状態遷移表から対象モジュールの図11に示されるようなソースコードを生成する。さらに、開発支援プログラムは、生成されたソースコードをコンパイルして、対象モジュールのオブジェクト(以下、「部品実装処理オブジェクト」)を生成する。
【0074】
なお、図11において、大域変数(グローバル変数)のstateは、ヘッド112a、112bの状態を特定する状態ID(0〜7)を設定する変数である。また、大域変数(グローバル変数)のeventは、イベントを特定するイベントID(0〜8)を設定する変数である。また、大域変数(グローバル変数)のcntは、1タスクで実装する部品の個数を設定する変数である。さらに、ローカル変数のresultは、例えば、部品実装処理StmCall()内で呼び出される外部関数の戻り値等を設定する変数である。
【0075】
また、図11において、部品フィーダ移動()は、ヘッド112a、112bを部品供給部(部品フィーダ)115a、115bの所定位置に移動させるための外部関数である。部品吸着()は、ヘッド112a、112bに部品フィーダ上の実装部品を吸着させるための外部関数である。部品吸着認識()は、ヘッド112a、112bに吸着されている部品の状態を部品検査部116a、116bに検査させるための外部関数である。ログ出力()は、指定されたログファイルにログを出力させるための外部関数である。また、例えば、停止()、エラー内容表示()、原点復帰()等は、部品実装処理でエラーが発生した場合の処理を行なう外部関数である。
【0076】
さらに、図11において、開発支援プログラムによって生成された制御プログラムは、ヘッド112a、112bの状態が遷移する毎に、外部関数であるログ出力()を呼び出している。すなわち、制御プログラムは、ヘッド112a、112bの状態が遷移する毎に、ヘッド112a、112bの駆動状態を示す統計情報をログファイルに出力する。ログファイルは、ユーザによって任意に指定される。
【0077】
さらに、開発支援プログラムは、自らが生成した制御プログラムが出力するログを分析する機能を有する。図12〜図15を参照して、開発支援プログラムの動作を説明する。図12は、開発支援プログラムの動作を示すフローチャートである。
【0078】
まず、開発支援プログラムは、自らが生成した制御プログラムが出力したログファイルから統計情報を取得する(S11)。なお、本実施の形態における統計情報とは、例えば、状態遷移表における実装基板製造装置の駆動部の各状態におけるヘッド112a、112bの動作時間、および各状態におけるヘッド112a、112bの消費電力量であるが、これに限定されない。
【0079】
具体的には、制御プログラムをヘッド制御部153に組み込み、部品実装機100のヘッド112a、112bを動作させる。これにより、制御プログラムは、ユーザが指定したログファイルに、ヘッド112a、112bの状態毎の統計情報を含むログを出力する。図13は、ログファイルに書き込まれたログの一例を示す図である。
【0080】
制御プログラムが出力するログの内容は特に限定されないが、例えば、図13に示されるように、「ログNo」、「ログ出力時刻」、「状態ID」、「イベントID」、「処理」、「結果」、「処理時間」、及び「消費電力量」等を出力すればよい。
【0081】
ログNoは、ログファイル内で各ログを識別するための情報(識別子)である。ログ出力時刻は、当該ログを出力した時刻である。状態IDは、ログ出力時におけるヘッド112a、112bの動作によって状態遷移した遷移先の状態を特定する状態情報である。イベントIDは、ログ出力の直前に発生したイベントを示す情報である。処理は、ログ出力の直前に実行した処理の内容を示す情報であり、この例では呼び出した外部関数名である。結果(駆動部の動作の結果)は、呼び出した外部関数の処理が正常終了(OK)したか、異常終了(NG)したかを示す。
【0082】
処理時間は、呼び出した外部関数による処理に要した時間を示す。すなわち、部品実装処理()が外部関数をcallしてから、当該外部関数が戻り値を返すまでの時間を示す。消費電力量は、呼び出した外部関数による処理に要した消費電力量を示す。すなわち、当該外部関数による制御に従ってヘッド112a、112bが動作するために必要な電力量を示す。
【0083】
次に、開発支援プログラムは、ログファイルから取得した状態遷移表における状態毎の統計情報を、グループ毎、及び/又は、さらにその上位グループ毎に集計する(S12)。なお、状態遷移表における各状態を動作工程の区切り等の扱いやすい区分でいくつかのグループに分類する。また、分類されたグループをさらにまとめて上位グループを構成してもよい。図14は、ヘッド112a、112bの各状態のグループ化の例を示す図である。
【0084】
図14には、3つのグループ(グループ1、2、3)が定義されている。そして、図10に示される状態遷移表に定義されている各状態は、3つのグループのいずれかに分類されている。具体的には、「部品フィーダ移動中」と「部品吸着中」とがグループ1に分類され、「部品吸着認識位置移動中」と「部品認識中」とがグループ2に分類され、「部品実装位置移動中」と「部品実装中」とがグループ3に分類されている。
【0085】
さらに、上記のグループ1、2、3は、2つの上位グループのいずれかに分類されている。具体的には、グループ1が上位グループ1に分類され、グループ2、3が上位グループ2に分類されている。
【0086】
このように、グループとは、状態遷移表における1以上の状態を要素として含む集合を指す。また、上位グループとは、1以上のグループを要素として含む集合を指す。なお、グループ及び上位グループの分類は、典型的には、ユーザによって行なわれる。どのように分類されるかは特に限定されないが、例えば、互いに関連する状態を1つのグループに分類する等すればよい。また、グループ及び上位グループの数及びグループの階層数は、図14の例に限定されない。
【0087】
そして、開発支援プログラムは、ステップS11で取得した状態遷移表における状態毎の統計情報を、図14に示されるグループ毎、及び/又は、上位グループ毎に集計する。すなわち、各状態の処理時間及び消費電力量を、グループ単位で加算する。このとき、1つの部品を実装するのに必要な処理の単位で統計情報を集計してもよいし、1タスク(すなわち、複数の部品)を実装するのに必要な処理の単位で統計情報を集計してもよい。
【0088】
次に、開発支援プログラムは、ステップS12で集計したグループ毎、及び/又は、上位グループ毎の統計情報を、コンピュータ10の表示部15に表示する(S13)。図15は、開発支援プログラムによる統計情報の出力例を示す図である。
【0089】
図15に示される出力例では、グループ毎の処理時間及び消費電力量を統計情報として棒グラフで表している。但し、表示形式はこれに限定されず、折れ線グラフや円グラフ等を用いてもよいし、数値を表示するだけでもよい。
【0090】
また、グループ毎又は階層毎に処理時間や消費電力量等の統計情報の閾値を設定しておき、閾値を超える統計情報をハイライト表示する等してもよい。このように、統計情報が閾値を超えるグループをユーザに対して積極的に報知することにより、当該グループに関する処理の改善を促すことができる。
【0091】
このように、処理時間や消費電力量等の統計情報をグループ毎に集計して表示することにより、例えば、処理時間が著しく長いグループが存在する場合に、当該箇所が一連の処理の中でボトルネックになっていると判断することができる。このような解析結果を踏まえて制御プログラムを修正することにより、部品実装機100の処理速度を向上させることができる。同様に、消費電力量が著しく長いグループの処理を中心に制御プログラム修正することにより、部品実装機100の電力消費量を抑えることができる。
【0092】
なお、上記の実施の形態においては、駆動部としてヘッド112a、112bの例を説明したが、これに限ることなく、部品実装機100の他の駆動部にも適用することができる。
【0093】
また、上記の実施の形態においては、実装基板製造装置として部品実装機100の例を説明したが、これに限ることなく、本発明は、印刷機や印刷検査機等の実装基板の製造に用いられるあらゆる装置に適用することができる。
【0094】
(その他の実施形態)
コンピュータ10は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、コンピュータ10は、その機能を達成する。
【0095】
ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
【0096】
上記のコンピュータ10を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されていてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。また、上記のコンピュータ10を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又は全てを含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0097】
本発明は、上記に示す方法であってもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであってもよいし、コンピュータプログラムからなるデジタル信号であってもよい。また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものであってもよい。また、これらの記録媒体に記録されているデジタル信号であってもよい。また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものであってもよい。また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するものであってもよい。また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施してもよい。
【0098】
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
【産業上の利用可能性】
【0099】
本発明は、実装基板製造装置の駆動部の動作を制御するための制御プログラムの開発を支援する開発支援方法に有利に利用される。
【符号の説明】
【0100】
10 コンピュータ
11 CPU
12 ROM
13 RAM
14 入力部
15 表示部
20 基板
100 部品実装機
110a,110b 実装ユニット
112a,112b ヘッド
114 部品カセット
115a,115b 部品供給部
116a,116b 部品検査部
121a,121b ビーム
122a,122b 基板搬送レール
130 搬入口
140 ビーム駆動ロボット
151 入力部
152 表示部
153 ヘッド制御部
154,540 制御部
155 通信部
156 格納部
156a NCデータ
156b 部品ライブラリ
156c 実装条件データ
200 制御装置
424 キャリアテープ
424a 収納凹部
425 カバーテープ
426 リール
1000 部品実装システム

【特許請求の範囲】
【請求項1】
実装基板製造装置の駆動部の動作を制御するための制御プログラムの開発を、コンピュータにより支援する開発支援方法であって、
前記制御プログラムは、前記駆動部の状態と、前記制御プログラムの外部で実行される処理の結果として生じるイベントと、前記駆動部の状態及び前記イベントの組み合わせのそれぞれに対して、前記駆動部が実行する動作及び前記駆動部の次の状態とが定義されている状態遷移表に基づいて生成され、且つ前記駆動部の状態が遷移する毎に、前記駆動部の駆動状態を示す統計情報をログファイルに出力するものであり、
前記状態遷移表に定義されている前記駆動部の状態は、複数のグループのいずれかに分類され、
該開発支援方法は、
前記実装基板製造装置に組み込まれた前記制御プログラムによって出力される前記統計情報を、前記ログファイルから読み出す統計情報取得ステップと、
前記統計情報取得ステップで取得された前記駆動部の状態毎の統計情報を、前記グループ毎に集計する統計情報集計ステップと、
前記統計情報集計ステップで集計された前記グループ毎の統計情報を出力する統計情報出力ステップとを含む
開発支援方法。
【請求項2】
前記複数のグループは、さらに、複数の上位グループのいずれかに分類され、
前記統計情報集計ステップでは、さらに、前記統計情報取得ステップで取得された前記状態毎の統計情報を、前記上位グループ毎に集計し、
前記統計情報出力ステップでは、さらに、前記統計情報集計ステップで集計された前記上位グループ毎の統計情報を出力する
請求項1に記載の開発支援方法。
【請求項3】
前記状態毎の統計情報は、当該状態における前記駆動部の動作時間、又は当該状態における前記駆動部の消費電力量を示す情報である
請求項1又は2に記載の開発支援方法。
【請求項4】
請求項1〜3のいずれか1項に記載の開発支援方法を、コンピュータに実行させる
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−12091(P2013−12091A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−144998(P2011−144998)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】