(57)【要約】  電子部品を回路基板に実装する部品実装機に装備され、部品実装機の少なくとも一部の動作を制御するコントローラは、複数のタスクを実行するプロセッサと、プロセッサが実行したタスクに関するログ情報を記憶するリングバッファと、を備えている。リングバッファは、複数のタスク毎に、当該タスクをプロセッサが実行したときのログ情報を記憶する部分リングバッファに分割されている。プロセッサは、処理周期毎に、複数のタスクのそれぞれについて、当該タスクに関するログ情報を、当該タスクに対応する部分リングバッファに保存するように構成されている。
2017006437.tif 000002
【特許請求の範囲】
【請求項１】
電子部品を回路基板に実装する部品実装機に装備され、前記部品実装機の少なくとも一部の動作を制御するコントローラであって、
複数のタスクを実行するプロセッサと、
前記プロセッサが実行した前記タスクに関するログ情報を記憶するリングバッファと、を備えており、
前記リングバッファは、前記複数のタスク毎に、当該タスクを前記プロセッサが実行したときのログ情報を記憶する部分リングバッファに分割されており、
前記プロセッサは、処理周期毎に、前記複数のタスクのそれぞれについて、当該タスクに関するログ情報を、当該タスクに対応する前記部分リングバッファに保存するように構成されている、コントローラ。
【請求項２】
前記プロセッサは、前記ログ情報を前記部分リングバッファに保存するときに、当該ログ情報に対応する時刻情報を、当該部分リングバッファに保存するように構成されている、請求項１に記載のコントローラ。
【請求項３】
前記プロセッサは、予め定められた設定期間毎に、前記複数のタスクのそれぞれについて、当該プロセッサの全処理能力に占める当該タスクの占有率を算出し、
前記設定期間毎に、前記複数のタスクのそれぞれについて、当該タスクについて算出された占有率に応じたサイズの部分リングバッファに前記リングバッファを分割する、請求項１又は２に記載のコントローラ。
【請求項４】
前記プロセッサは、予め定められた設定期間毎に、当該設定期間の間に前記複数の部分リングバッファのそれぞれに保存された前記ログ情報の情報サイズを算出し、
前記設定期間毎に、前記複数のタスクのそれぞれについて、当該タスクについて算出された情報サイズと、当該設定期間に保存された全てのログ情報の情報サイズとの比に応じたサイズの部分リングバッファに分割する、請求項１又は２に記載のコントローラ。
【請求項５】
前記複数のログ情報を記憶するサブメモリをさらに備えており、
前記プロセッサは、前記複数の部分リングバッファのいずれかのサイズを変更するときは、前記複数の部分リングバッファのそれぞれに保存されている前記ログ情報を前記サブメモリに退避し、
前記ログ情報を前記サブメモリに退避した後に、前記複数の部分リングバッファのサイズを変更し、
前記複数の部分リングバッファのサイズを変更した後に、前記サブメモリに退避されているログ情報を、前記複数の部分リングバッファのそれぞれに保存するように構成されている、請求項１から４のいずれか１項に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、電子部品を回路基板に実装する部品実装機に関し、詳しくは、部品実装機に装備されるコントローラに関する。
【背景技術】
【０００２】
特許文献１（日本国特許公開公報２０１２−０１８６１７号公報）には、電子部品を基板に実装する電子部品実装用装置が開示されている。電子部品実装用装置は、リングバッファメモリを有する制御装置を備えている。制御装置は、制御プログラムを実行し、電子部品実装用装置の各部を制御することで、電子部品を基板に実装する。制御装置は、制御プログラムの実行履歴情報であるログデータを、リングバッファメモリに保存する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一般的に、部品実装機では、プロセッサは複数のタスクを実行し、複数のタスクのそれぞれに関するログ情報をリングバッファに保存する。部品実装機に異常が発生した時は、作業者は、リングバッファに保存されているログ情報を用いて、複数のタスクのそれぞれの状態から部品実装機の異常を診断する。このため、部品実装機の状態を診断するためには、リングバッファに全てのタスクに関するログ情報が保存されていることが好ましい。特許文献１の電子部品実装用装置においては、単一のリングバッファに、複数のタスクに関するログ情報が保存される。このような構成によると、１つのタスクのログ情報が、他のタスクのログ情報により上書きされてしまう場合がある。これにより、リングバッファに、全てのタスクのログ情報が保存されていない場合が生じる。この場合、異常発生時の状態を確認することができないタスクがあるという問題が生じる。
【課題を解決するための手段】
【０００４】
本明細書に開示するコントローラは、電子部品を回路基板に実装する部品実装機に装備され、部品実装機の少なくとも一部の動作を制御する。コントローラは、複数のタスクを実行するプロセッサと、プロセッサが実行したタスクに関するログ情報を記憶するリングバッファと、を備えている。リングバッファは、複数のタスク毎に、当該タスクをプロセッサが実行したときのログ情報を記憶する部分リングバッファに分割されており、プロセッサは、処理周期毎に、複数のタスクのそれぞれについて、当該タスクに関するログ情報を、当該タスクに対応する部分リングバッファに保存するように構成されている。【０００５】
上記のコントローラでは、ログ情報を記憶するリングバッファが、複数のタスク毎に、当該タスクに関するログ情報を記憶する部分リングバッファに分割されている。すなわち、部分リングバッファには、特定のタスクに関するログ情報のみが記憶される。このような構成によると、１つのタスクに関するログ情報が、他のタスクに関するログ情報によって上書きされることを防止することができる。この結果、リングバッファには、複数のタスクのそれぞれに関するログ情報が保存される。
【図面の簡単な説明】
【０００６】
【図１】コントローラが装備されている部品実装機の構成を模式的に表す側面図である。
【図２】コントローラの構成を示すブロック図である。
【図３】メインＲＡＭに保存されるタスクに関する情報を説明する図である。
【図４】部分リングバッファを説明する概念図である。
【図５】実施例１のリングバッファ分割処理のフローチャートを示す図である。
【図６】リングバッファ分割処理により分割される前後の部分リングバッファの状態を説明する概念図である。
【図７】実施例２のリングバッファ分割処理のフローチャートを示す図である。
【図８】変形例のメインＲＡＭを説明する概念図である。
【発明を実施するための形態】
【０００７】
以下に記載する技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。
【０００８】
（特徴１）プロセッサは、ログ情報を部分リングバッファに保存するときに、当該ログ情報に対応する時刻情報を、当該部分リングバッファに保存するように構成されていてもよい。このような構成によると、作業者は、時刻情報を確認することで、ログ情報が保存された時刻を確認することができる。
【０００９】
（特徴２）プロセッサは、予め定められた設定期間毎に、複数のタスクのそれぞれについて、当該プロセッサの全処理能力に占める当該タスクの占有率を算出し、設定期間毎に、複数のタスクのそれぞれについて、当該タスクについて算出された占有率に応じたサイズの部分リングバッファに前記リングバッファを分割してもよい。このような構成によると、プロセッサの全処理能力に占めるタスクの占有率に基づいて、部分リングバッファのサイズが決定される。これにより、リングバッファを、適切なサイズの部分リングバッファに分割することができる。
【００１０】
（特徴３）プロセッサは、予め定められた設定期間毎に、当該設定期間の間に複数の部分リングバッファのそれぞれに保存されたログ情報の情報サイズを算出し、設定期間毎に、複数のタスクのそれぞれについて、当該タスクについて算出された情報サイズと、当該設定期間に保存された全てのログ情報の情報サイズとの比に応じたサイズの部分リングバッファに分割してもよい。このような構成によると、予め定められた設定期間の間に複数の部分リングバッファのそれぞれに保存されたログ情報の情報サイズに基づいて、部分リングバッファが分割される。これにより、リングバッファを、適切なサイズの部分リングバッファに分割することができる。
【００１１】
（特徴４）複数のログ情報を記憶するサブメモリをさらに備えていてもよい。プロセッサは、複数の部分リングバッファのいずれかのサイズを変更するときは、複数の部分リングバッファのそれぞれに保存されているログ情報をサブメモリに退避し、ログ情報を前記サブメモリに退避した後に、複数の部分リングバッファのサイズを変更し、複数の部分リングバッファのサイズを変更した後に、サブメモリに退避されているログ情報を、複数の部分リングバッファのそれぞれに保存するように構成されていてもよい。このような構成によると、いずれかの部分リングバッファのサイズを変更するときは、変更前のログ情報がサブメモリに退避され、サイズ変更後にサブメモリに退避されているログ情報が分割されたリングバッファに復帰する。これにより、サイズ変更の前後でログ情報が適切に書き換えられ、分割後の部分リングバッファに、当該部分リングバッファに対応するタスクに関するログ情報を保存することができる。
【実施例１】
【００１２】
次に、図１〜図４を用いて、コントローラ４０を装備する部品実装機１０について説明する。部品実装機１０は、回路基板２に電子部品４を実装する装置である。部品実装機１０は、表面実装機やチップマウンタとも称される。通常、部品実装機１０は、はんだ印刷機、他の部品実装機及び基板検査機とともに併設され、一連の実装ラインを構成する。【００１３】
図１に示すように、部品実装機１０は、複数の部品フィーダ１２と、フィーダ保持部１４と、実装ヘッド１６と、撮像ユニット２０と、実装ヘッド１６及び撮像ユニット２０を移動させる移動装置１８と、基板コンベア２６と、操作パネル２８と、コントローラ４０を備える。【００１４】
各々の部品フィーダ１２は、複数の電子部品４を収容している。部品フィーダ１２は、フィーダ保持部１４に着脱可能に取り付けられ、実装ヘッド１６へ電子部品４を供給する。部品フィーダ１２の具体的な構成は特に限定されない。各々の部品フィーダ１２は、例えば、巻テープ上に複数の電子部品４を収容するテープ式フィーダ、トレイ上に複数の電子部品４を収容するトレイ式フィーダ、又は、容器内に複数の電子部品４をランダムに収容するバルク式フィーダのいずれであってもよい。【００１５】
移動装置１８は、部品フィーダ１２と回路基板２との間で実装ヘッド１６及び撮像ユニット２０を移動させる移動装置の一例である。本実施例の移動装置１８は、移動ベース１８ａをＸ方向及びＹ方向に移動させるＸＹロボットである。移動装置１８は、移動ベース１８ａを案内するガイドレールや、移動ベース１８ａをガイドレールに沿って移動させる移動機構や、その移動機構を駆動するサーボモータ３０（図２に図示）によって構成されている。移動装置１８は、部品フィーダ１２及び回路基板２の上方に配置されている。移動ベース１８ａに対して実装ヘッド１６及び撮像ユニット２０が取付けられている。実装ヘッド１６及び撮像ユニット２０は、移動装置１８によって部品フィーダ１２の上方及び回路基板２の上方を移動する。【００１６】
実装ヘッド１６は、電子部品４を吸着する吸着ノズル６を備えている。吸着ノズル６は、実装ヘッド１６に対して着脱可能とされている。吸着ノズル６は、Ｚ方向（図面上下方向）に移動可能に実装ヘッド１６に取り付けられている。吸着ノズル６は、実装ヘッド１６に収容されたサーボモータ３０（図２に図示）によって上下方向に昇降すると共に、電子部品４を吸着可能に構成されている。実装ヘッド１６により電子部品４を回路基板２に実装するには、まず、部品フィーダ１２に収容された電子部品４に吸着ノズル６の下面（吸着面）が当接するまで、吸着ノズル６を下方に移動させる。次いで、吸着ノズル６に電子部品４を吸着し、吸着ノズル６を上方に移動させる。次いで、移動装置１８により実装ヘッド１６を回路基板２に対して位置決めする。次いで、吸着ノズル６を回路基板２に向かって下降させることで、回路基板２に電子部品４を実装する。本明細書では、実装ヘッド１６による上記の動作を実装処理という。【００１７】
撮像ユニット２０は、移動ベース１８ａに取り付けられている。このため、実装ヘッド１６が移動すると、撮像ユニット２０も一体となって移動する。撮像ユニット２０は、カメラ支持部２２とカメラ２４を備えている。カメラ支持部２２は、移動ベース１８ａに取り付けられている。カメラ支持部２２には、カメラ２４が取付けられている。カメラ２４は、吸着ノズル６の側方（図面Ｙ方向）に配置されており、吸着ノズル６の側面画像を撮像する。なお、実装ヘッド１６により、吸着ノズル６を上下方向に昇降することで、カメラ２４の撮像領域に含まれる吸着ノズル６の領域を調整することができる。【００１８】
基板コンベア２６は、回路基板２の部品実装機１０への搬入、部品実装機１０への位置決め、及び部品実装機１０からの搬出を行う装置である。本実施例の基板コンベア２６は、例えば、一対のベルトコンベアと、ベルトコンベアに取り付けられると共に回路基板２を下方から支持する支持装置（図示省略）と、ベルトコンベアを駆動するサーボモータ３０（図２に図示）により構成することができる。操作パネル２８は、作業者の指示を受け付ける入力装置であるとともに、作業者に対して各種の情報を表示するインターフェース装置でもある。【００１９】
図２に示すように、コントローラ４０は、上位制御装置１１０、サーボモータ３０、カメラ２４に接続されている。コントローラ４０は、上位制御装置１１０から入力される指令及びカメラ２４から入力される側面画像に基づいて、複数のサーボモータ３０を制御し、電子部品４を回路基板２に実装する。【００２０】
コントローラ４０は、ＣＰＵ５０と、ＲＯＭ６０と、メインＲＡＭ７０と、サブＲＡＭ８０を備えている。ＣＰＵ５０は、コントローラ４０の動作を制御するプロセッサである。ＣＰＵ５０は、ＲＯＭ６０、メインＲＡＭ７０、サブＲＡＭ８０に接続されている。ＲＯＭ６０には、複数のタスク６２が記憶されている。複数のタスク６２には、サーボモータ３０の動作（トルクなど）を制御するサーボ処理タスク６２ａ、カメラ２４から送信される側面画像を処理するカメラ処理タスク６２ｂ、上位制御装置１１０及びカメラ２４からの入力情報及びサーボモータ３０への出力情報を処理するＩＯ処理タスク６２ｃが含まれている。ＣＰＵ５０は、ＲＯＭ６０に記憶されている複数のタスク６２を実行することで、電子部品４を回路基板２に実装する。なお、ＣＰＵ５０の全処理能力に占める複数のタスク６２のそれぞれの占有率は、ＣＰＵ５０が実行する処理内容によって、動的に変化する。【００２１】
メインＲＡＭ７０は、リングバッファを備えている。メインＲＡＭ７０のリングバッファには、ＣＰＵ５０が実行したタスク６２に対応するログデータ７４が保存される。図３に示すように、メインＲＡＭ７０には、ログデータ７４とログデータ７４が保存されるアドレス７２（Ａ１、Ａ２、・・・、Ａｎ）に関する情報が記録される。ログデータ７４には、タスク６２に関するログ情報７４ａ（Ｌ１、Ｌ２、・・・、Ｌｎ）、及び、ログ情報７４ａに対応する時刻情報７４ｂ（Ｔ１、Ｔ２、・・・、Ｔｎ）が含まれている。ＣＰＵ５０は、上位制御装置１１０から入力される指令に基づいて、メインＲＡＭ７０に保存されているログデータ７４を、上位制御装置１１０に送信する。作業者は、上位制御装置１１０に送信されるログデータ７４を解析することで、タスク６２の状態（すなわち、部品実装機１０の状態）を確認することができる。【００２２】
また、図４に示すように、メインＲＡＭ７０のリングバッファは、複数のタスク６２ａ〜６２ｃ毎に、当該タスク６２ａ〜６２ｃをＣＰＵ５０が実行したときのログデータ７４を記憶する複数の部分リングバッファ７６ａ、７６ｂ、７６ｃに分割されている。具体的には、メインＲＡＭ７０のリングバッファは、サーボ処理タスク６２ａに対応する第１部分リングバッファ７６ａと、カメラ処理タスク６２ｂに対応する第２部分リングバッファ７６ｂと、ＩＯ処理タスク６２ｃに対応する第３部分リングバッファ７６ｃに分割されている。なお、複数の部分リングバッファ７６ａ、７６ｂ、７６ｃは、サイズ以外は、同一の構造を有している。以下では、複数の部分リングバッファ７６ａ、７６ｂ、７６ｃのいずれか１つを区別なく表す場合に「部分リングバッファ７６」と表記する。ＣＰＵ５０は、処理周期毎に複数のタスク６２を実行し、かつ、処理周期毎に、実行した複数のタスク６２のそれぞれについて、当該タスク６２に対応するログデータ７４を、当該タスク６２に対応する部分リングバッファ７６に保存する。すなわち、部分リングバッファ７６には、当該部分リングバッファ７６に対応するタスク６２のログデータ７４のみが保存される。例えば、ＣＰＵ５０がサーボ処理タスク６２ａを実行したときは、そのログデータ７４は部分リングバッファ７６ａに保存される。このような構成によると、部分リングバッファ７６ａ〜７６ｃに保存されているログデータ７４が、異なる部分リングバッファ７６ａ〜７６ｃに対応するログデータ７４によって上書きされることを防止することができる。ＣＰＵ５０は、上位制御装置１１０からの指令に基づいて、メインＲＡＭ７０に保存されているログデータ７４を、上位制御装置１１０に送信する。作業者は、上位制御装置１１０が受信するログデータ７４を解析することで、部品実装機１０が実行しているタスク６２の状態を確認する。メインＲＡＭ７０が、複数の部分リングバッファ７６で構成されているため、上位制御装置１１０には、複数のタスク６２ａ〜６２ｃのそれぞれに対応するログデータ７４が、確実に送信される。これにより、作業者は、複数のタスク６２ａ〜６２ｃのそれぞれの状態を、適切に判断することができる。【００２３】
上述のように、ＣＰＵ５０の全処理能力に占める複数のタスク６２ａ〜６２ｃのそれぞれの占有率は、動的に変化する。一般的に、占有率が大きいタスク６２の方が、占有率が小さいタスク６２よりも多くのログデータ７４を生成する。このため、部分リングバッファ７６のサイズは、後述するリングバッファ分割処理において、タスク６２の占有率に応じて、動的に変化することが可能に構成されている。なお、部品実装機１０の運転開始時（デフォルト）の部分リングバッファ７６のサイズは、部品実装機１０の運転開始処理における各タスクの占有率に基づいて、設定されることが好ましい。【００２４】
サブＲＡＭ８０は、リングバッファを備えている。サブＲＡＭ８０のリングバッファには、後述するリングバッファ分割処理中に、部分リングバッファ７６ａ〜７６ｃに記憶されているログデータ７４が一時的に記憶される。なお、サブＲＡＭ８０のサイズは、メインＲＡＭ７０のサイズよりも大きいことが好ましい。【００２５】
次に、図５、６を用いて、ＣＰＵ５０が実行するリングバッファ分割処理について説明する。リングバッファ分割処理は、第１設定期間ｔ１毎に実行される処理である。第１設定期間ｔ１は、予め設定されていてもよいし、操作パネル２８から入力されるように構成されていてもよい。第１設定期間ｔ１が短いほうが、各タスクの占有率が急変した場合、例えば、部品実装機１０が故障した場合などに、対応しやすくなる。なお、メインＲＡＭ７０のリングバッファのサイズは、例えば、１００Ｍｂｙｔｅであり、リングバッファ分割処理前の部分リングバッファ７６ａ、７６ｂ、７６ｃのサイズは、例えば、２０Ｍｂｙｔｅ、３０Ｍｂｙｔｅ、５０Ｍｂｙｔｅとする。また、リングバッファ分割処理前の部分リングバッファ７６ａ〜７６ｃのサイズを第１分割サイズとし、リングバッファ分割処理後の部分リングバッファ７６ａ〜７６ｃのサイズを第２分割サイズとする。【００２６】
まず、ステップＳ１２において、ＣＰＵ５０は、第１設定期間ｔ１内に実行した複数のタスク６２ａ〜６２ｃのそれぞれについて、ＣＰＵ５０の全処理能力に占める各タスク６２ａ〜６２ｃの占有率を算出する。次いで、ステップＳ１４において、ＣＰＵ５０は、ステップＳ１２で算出した各タスク６２ａ〜６２ｃの占有率に基づいて、部分リングバッファ７６ａ〜７６ｃの第２分割サイズを設定する。上述したように、ＣＰＵ５０の占有率が高いタスク６２ａ〜６２ｃは、占有率が低いタスク６２ａ〜６２ｃよりも、多くのログデータ７４を生成する。このため、ＣＰＵ５０は、占有率が高いタスク６２ａ〜６２ｃに対応する部分リングバッファ７６ａ〜７６ｃのサイズが、占有率が低いタスク６２ａ〜６２ｃに対応する部分リングバッファ７６ａ〜７６ｃのサイズよりも大きくなるように、第２分割サイズを設定する。具体的には、ＣＰＵ５０は、メインＲＡＭ７０のリングバッファのサイズにタスク６２ａ〜６２ｃの占有率を乗じることで、部分リングバッファ７６の第２分割サイズを設定する。例えば、タスク６２ａ、６２ｂ、６２ｃのそれぞれの占有率が、６０％、２０％、２０％と算出された場合において、メインＲＡＭ７０のリングバッファのサイズが１００Ｍｂｙｔｅであるとすると、部分リングバッファ７６ａ、７６ｂ、７６ｃの第２分割サイズは、それぞれ６０Ｍｂｙｔｅ、２０Ｍｂｙｔｅ、２０Ｍｂｙｔｅと設定される。【００２７】
次いで、ステップＳ１６において、ＣＰＵ５０は、メインＲＡＭ７０のリングバッファに保存されているログデータ７４を、サブＲＡＭ８０に退避させる。この際、部分リングバッファ７６ａ〜７６ｃ毎に、当該部分リングバッファ７６ａ〜７６ｃに記憶されているログデータ７４をサブＲＡＭ８０に退避させる。すなわち、サブＲＡＭ８０は、タスク６２ａ〜６２ｃに応じて複数の領域に分割されており、分割された各領域に対応するタスク６２のログデータ７４が格納される。次いで、ステップＳ１８において、ＣＰＵ５０は、メインＲＡＭ７０のリングバッファを、ステップＳ１４で設定した第２分割サイズに分割する。なお、メインＲＡＭ７０のリングバッファを第２分割サイズに分割する際には、メインＲＡＭ７０のリングバッファに確保されていたログデータ７４がクリアされる。【００２８】
次いで、ステップＳ２０において、ＣＰＵ５０は、部分リングバッファ７６の第２分割サイズが、第１分割サイズ以上か否かを判定する。部分リングバッファ７６の第２分割サイズが第１分割サイズ以上の場合（Ｓ２０でＹＥＳ）、ＣＰＵ５０は、ステップＳ２２に進む。ステップＳ２２において、ＣＰＵ５０は、サブＲＡＭ８０に退避されている当該部分リングバッファ７６に対応するログデータ７４を、当該部分リングバッファ７６に再保存する（例えば、図６の部分リングバッファ７６ａ）。この場合、リングバッファ分割処理前の部分リングバッファ７６に保存されていた全てのログデータ７４を、第２分割サイズに変更後の部分リングバッファ７６に保存することができる。一方、部分リングバッファ７６の第２分割サイズが第１分割サイズより小さい場合（Ｓ２０でＮＯ）、ＣＰＵ５０は、ステップＳ２４に進む。ステップＳ２４において、ＣＰＵ５０は、サブＲＡＭ８０に退避されている当該部分リングバッファ７６に対応するログデータ７４を、当該部分リングバッファ７６に選択的に再保存する（例えば、図６の部分リングバッファ７６ｂ、７６ｃ）。この場合、リングバッファ分割処理前に保存されていたログデータ７４の全てを、第２分割サイズに変更された部分リングバッファ７６に保存することができないためである。具体的には、ＣＰＵ５０は、時刻情報７４ｂの新しいログデータ７４を優先的に保存する。【００２９】
上述の説明から明らかなように、本実施例のコントローラ４０において、メインＲＡＭ７０のリングバッファは、複数のタスク６２ａ〜６２ｃのそれぞれのログデータ７４を記憶する複数の部分リングバッファ７６に分割されている。これにより、部分リングバッファ７６に保存されているログデータ７４が、他の部分リングバッファ７６に対応するタスク６２に関するログデータ７４により上書きされることを防止することができる。この結果、作業者は、複数のタスク６２の状態を適切に判断することができる。【００３０】
また、コントローラ４０は、第１設定期間ｔ１毎に、リングバッファ分割処理を実行する。リングバッファ分割処理において、コントローラ４０は、各タスク６２の占有率に応じて、メインＲＡＭ７０のリングバッファを分割する。これにより、ＣＰＵ５０の全処理能力に占める各タスク６２の占有率の動的な変化に対応することができる。すなわち、リングバッファ分割処理により、部分リングバッファ７６のサイズを、各タスク６２の占有率の動的な変化に合わせることで、部分リングバッファ７６のサイズを適切なサイズに調整することができる。【００３１】
また、コントローラ４０は、リングバッファ分割処理において、部分リングバッファ７６のサイズを変更する前に、サブＲＡＭ８０にログデータ７４を待避させ、変更前のメインＲＡＭ７０のリングバッファに記憶されているログデータ７４をクリアしている。部分リングバッファ７６に保存されるログデータ７４を、サブＲＡＭ８０に退避させることなく、部分リングバッファ７６のサイズを変更する場合、サイズ変更後の部分リングバッファ７６に、複数のタスク６２に対応するログデータ７４が保存される場合がある。一方、本実施例では、部分リングバッファ７６のサイズを変更する前に、サブＲＡＭ８０にログデータ７４を待避させているため、部分リングバッファ７６に対応するタスク６２のログデータ７４のみが、サイズ変更後の部分リングバッファ７６に保存される。これによって、作業者は、部品実装機１０の複数のタスク６２の状態を適切に判断することができる。
【実施例２】
【００３２】
図７を用いて、実施例２の部品実装機１０について説明する。なお、実施例間で共通する構成については、同じ符号を付して説明を省略する。実施例２では、リングバッファ分割処理が実施例１のリングバッファ分割処理とは異なる。実施例２のリングバッファ分割処理は、第２設定期間ｔ２毎に実行される処理である。なお、第２設定期間ｔ２は、第１設定期間ｔ１と同様に設定することができる。【００３３】
まず、ステップＳ１１２において、ＣＰＵ５０は、第２設定期間ｔ２の間に、複数の部分リングバッファ７６ａ〜７６ｃのそれぞれに保存されたログデータ７４の情報サイズを算出する。次いで、ステップＳ１１４において、ＣＰＵ５０は、第２設定期間ｔ２の間にメインＲＡＭ７０のリングバッファ（すなわち、部分リングバッファ７６ａ〜７６ｃ）に保存されたログデータ７４の情報サイズ（以下、第１情報サイズという）に対して、各部分リングバッファ７６ａ〜７６ｃに保存されたログデータ７４の情報サイズの割合を算出する。第１情報サイズは、部分リングバッファ７６ａ、７６ｂ、７６ｃの情報サイズを足し合わせた値である。【００３４】
次いでステップＳ１１６において、ＣＰＵ５０は、部分リングバッファ７６ａ〜７６ｃの情報サイズの割合に基づいて、部分リングバッファ７６ａ〜７６ｃの第２分割サイズを算出する。具体的には、ＣＰＵ５０は、メインＲＡＭ７０のリングバッファのサイズにステップＳ１１４で算出された各部分リングバッファ７６ａ〜７６ｃの割合を乗じることで、部分リングバッファ７６ａ〜７６ｃの第２分割サイズを算出する。例えば、メインＲＡＭ７０のリングバッファのサイズが１００Ｍｂｙｔｅであり、部分リングバッファ７６ａ、７６ｂ、７６ｃの情報サイズがそれぞれ６Ｍｂｙｔｅ、２Ｍｂｙｔｅ、２Ｍｂｙｔｅである場合について説明する。この場合、第１情報サイズは、１０Ｍｂｙｔｅとなり、部分リングバッファ７６ａ、７６ｂ、７６ｃの割合は、６０％、２０％、２０％と算出される。したがって、部分リングバッファ７６ａ、７６ｂ、７６ｃの第２分割サイズは、６０Ｍｂｙｔｅ、２０Ｍｂｙｔｅ、２０Ｍｂｙｔｅと算出される（図６参照）。【００３５】
次いで、ステップＳ１１８において、ＣＰＵ５０は、メインＲＡＭ７０のリングバッファに保存されているログデータ７４を、サブＲＡＭ８０に退避させる。次いで、ステップＳ１２０において、ＣＰＵ５０は、部分リングバッファ７６ａ〜７６ｃを、ステップＳ１１６で設定した第２分割サイズに変更する。【００３６】
次いでステップＳ１２２において、ＣＰＵ５０は、各部分リングバッファ７６ａ〜７６ｃに対して、当該部分リングバッファ７６ａ〜７６ｃの第２分割サイズが、第１分割サイズ以上か否かを判定する。部分リングバッファ７６の第２分割サイズが第１分割サイズ以上の場合（Ｓ１２２でＹＥＳ）、ＣＰＵ５０は、ステップＳ１２４に進む。ステップＳ１２４において、ＣＰＵ５０は、サブＲＡＭ８０に退避されている当該部分リングバッファ７６に対応するログデータ７４を、当該部分リングバッファ７６に再保存する（例えば図６の部分リングバッファ７６ａ）。この場合、リングバッファ分割処理前の部分リングバッファ７６に保存されていた全てのログデータ７４が、第２分割サイズに変更後の部分リングバッファ７６に保存される。一方、部分リングバッファ７６の第２分割サイズが第１分割サイズより小さい場合（Ｓ１２２でＮＯ）、ＣＰＵ５０は、ステップＳ１２６に進む。ステップＳ１２６において、ＣＰＵ５０は、サブＲＡＭ８０に退避されている当該部分リングバッファ７６に対応するログデータ７４を、当該部分リングバッファ７６のサイズに応じたデータ量となるように選択的に再保存する（例えば、図６の部分リングバッファ７６ｂ、７６ｃ）。具体的には、ＣＰＵ５０は、時刻情報７４ｂの新しいログデータ７４を優先的に保存する。【００３７】
上述の説明から明らかなように、第２実施例のコントローラ４０は、第２設定期間ｔ２毎に、リングバッファ分割処理を実行する。リングバッファ分割処理において、コントローラ４０は、第２設定期間ｔ２の間に、部分リングバッファ７６ａ〜７６ｃに保存されたログデータ７４の情報サイズの割合に基づいて、部分リングバッファ７６ａ〜７６ｃのサイズを変更する。このため、部分リングバッファ７６ａ〜７６ｃの情報サイズの割合に基づいて、部分リングバッファ７６ａ〜７６ｃの第２分割サイズを算出することでも、各タスク６２ａ〜６２ｃのログ出力量の動的な変化に合わせることができる。これにより、部分リングバッファ７６ａ〜７６ｃのサイズを、適切なサイズに調整することができる。【００３８】
以上、本明細書に開示の技術に係る実施例について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。【００３９】
上記の各実施例では、コントローラ４０は、メインＲＡＭ７０とサブＲＡＭ８０の２つのＲＡＭを備えている。しかしながら、コントローラ４０は、メインＲＡＭ７０のみで構成されていてもよい。この場合、図８のように、メインＲＡＭ７０を、プログラム領域１７２と、メインログ領域１７４と、サブログ領域１７８に分割する。例えば、メインＲＡＭのサイズが２Ｇｂｙｔｅである場合に、プログラム領域１７２、メインログ領域１７４、サブログ領域１７８のサイズを、１Ｇｂｙｔｅ、５００Ｍｂｙｔｅ、５００Ｍｂｙｔｅに分割するなどである。プログラム領域１７２には、タスク６２ａ〜６２ｃの処理に関する情報が保存される。メインログ領域１７４は、複数の部分リングバッファ１７６ａ〜１７６ｃに分割されており、タスク６２ａ〜６２ａのそれぞれに対応するログデータ７４が保存される。複数の部分リングバッファ１７６のそれぞれのサイズは、リングバッファ分割処理によって動的に変化する。サブログ領域１７８には、リングバッファ分割処理中に、メインログ領域１７４（詳細には、部分リングバッファ１７６ａ〜１７６ｃ）に記憶されているログデータ７４が一時的に記憶される。この構成によれば、各実施例と同様の効果を奏することができる。
【図１】
2017006437.tif 000003
【図２】
2017006437.tif 000004
【図３】
2017006437.tif 000005
【図４】
2017006437.tif 000006
【図５】
2017006437.tif 000007
【図６】
2017006437.tif 000008
【図７】
2017006437.tif 000009
【図８】
2017006437.tif 000010
【国際調査報告】
2017006437.tif 000011
2017006437.tif 000012