以下、本開示の一実施形態について図面を参照しながら説明する。図1は、本実施形態の部品装着システム10の概略構成を示す平面図である。図2は、部品装着機20及びローダ13の概略構成を示す斜視図である。なお、以下の説明では、図1の左右方向をX方向と称し、前後方向をY方向と称し、X方向及びY方向に垂直な方向をZ方向(上下方向)と称して説明する。
図1に示すように、部品装着システム10は、生産ライン11と、ローダ13と、管理コンピュータ15とを備えている。生産ライン11は、X方向に並べられた複数の部品装着機20を有し、基板17に対する電子部品の装着等を行う。基板17は、例えば、図1に示す左側の部品装着機20から右側の部品装着機20へと搬出され、搬送中に電子部品の装着等を実行される。
図2に示すように、部品装着機20は、ベース21と、モジュール22とを備えている。ベース21は、Y方向に長い略長方形の箱型をなし、部品装着機20を設置する工場の床等に載置される。ベース21は、例えば、隣り合うモジュール22の基板搬送装置23の位置を合わせるように上下方向の位置を調整され、隣の部品装着機20のベース21と互いに固定されている。モジュール22は、基板17に対する電子部品の装着等を行う装置であり、ベース21の上に載置されている。モジュール22は、ベース21に対して前後方向の手前側へ引き出し可能となっており、他のモジュール22と交換可能となっている。
モジュール22は、基板搬送装置23と、フィーダ台24と、ヘッド部25と、ヘッド移動機構27とを備える。基板搬送装置23は、モジュール22内に設けられ、基板17をX方向に搬送する。フィーダ台24は、モジュール22の前面に設けられ、側面視がL字状の台である。フィーダ台24は、X方向に複数配列されたスロット(図示略)を備える。フィーダ台24の各スロットには、電子部品を供給するフィーダ29が装着される。フィーダ29は、例えば、電子部品を所定のピッチで収容するテープから電子部品を供給するテープフィーダである。なお、図1に示すように、モジュール22の上部カバーの上には、部品装着機20に対する操作入力を行うタッチパネル26が設けられている。図2は、上部カバーやタッチパネル26を取り外した状態を示している。
ヘッド部25は、フィーダ29から供給された電子部品を吸着する吸着ノズル(図示略)を備え、吸着ノズルで吸着した電子部品を基板17に装着する。ヘッド部25は、例えば、複数の吸着ノズルの位置や、個々の吸着ノズルの位置を変更する駆動源として電磁モータ(図示略)を有している。ヘッド移動機構27は、モジュール22の上部部分において、X方向及びY方向の任意の位置にヘッド部25を移動させる。詳述すると、ヘッド移動機構27は、ヘッド部25をX方向に移動させるX軸スライド機構27Aと、ヘッド部25をY方向に移動させるY軸スライド機構27Bとを備える。X軸スライド機構27Aは、Y軸スライド機構27Bに取り付けられている。また、X軸スライド機構27Aは、後述する産業用ネットワークに接続される第3スレーブ65(図3参照)を備える。第3スレーブ65は、X軸スライド機構27Aに設けられたリレー81やセンサ83(図3参照)などの各種素子が接続され、装置本体部41のマスター53(図3参照)から受信した制御データCDに基づいて、各種素子の入出力する信号を処理する。
Y軸スライド機構27Bは、駆動源としてリニアモータ(図示略)を有している。X軸スライド機構27Aは、Y軸スライド機構27Bのリニアモータの駆動に基づいてY方向の任意の位置に移動する。また、X軸スライド機構27Aは、駆動源としてリニアモータ(図示略)を有している。ヘッド部25は、X軸スライド機構27Aに取り付けられ、X軸スライド機構27Aのリニアモータの駆動に基づいてX方向の任意の位置に移動する。従って、ヘッド部25は、X軸スライド機構27A及びY軸スライド機構27Bの駆動にともなってモジュール22の上部部分で任意の位置に移動する。
また、ヘッド部25は、X軸スライド機構27Aにコネクタを介して取り付けられ、ワンタッチで着脱可能であり、種類の異なるヘッド部25、例えば、ディスペンサヘッド等に変更できる。従って、本実施形態のヘッド部25は、部品装着機20(作業機の一例)に対して着脱可能となっている。また、ヘッド部25には、基板17を撮影するためのマークカメラ69(図3参照)が下方を向いた状態で固定されている。マークカメラ69は、ヘッド部25の移動に伴って、基板17の任意の位置を上方から撮像可能となっている。マークカメラ69が撮像した画像データGDは、モジュール22の本体制御装置51(図3参照)において画像処理される。本体制御装置51は、画像処理によって、基板17に関する情報、装着位置の誤差等を取得する。
また、ヘッド部25は、産業用ネットワークに接続される第2スレーブ61(図3参照)を備える。第2スレーブ61は、ヘッド部25に設けられたリレー75やセンサ77などの各種素子が接続され、装置本体部41のマスター53(図3参照)から受信した制御データCDに基づいて、各種素子の入出力する信号を処理する。また、ヘッド部25には、吸着ノズルに吸着保持した電子部品を撮像するパーツカメラ71が設けられている。パーツカメラ71が撮像した画像データGDは、モジュール22の本体制御装置51(図3参照)において画像処理される。本体制御装置51は、画像処理によって、吸着ノズルにおける電子部品の保持位置の誤差等を取得する。
また、図2に示すように、ベース21の前面には、上部ガイドレール31と、下部ガイドレール33と、ラックギヤ35と、非接触給電コイル37とが設けられている。上部ガイドレール31は、X方向に延びる断面U字状のレールであり、開口部が下を向いている。下部ガイドレール33は、X方向に延びる断面L字状のレールであり、垂直面がベース21の前面に取り付けられ、水平面が前方に伸び出している。ラックギヤ35は、下部ガイドレール33の下部に設けられ、X方向に延び、前面に複数の縦溝が刻まれたギヤである。ベース21の上部ガイドレール31、下部ガイドレール33及びラックギヤ35は、隣接するベース21の上部ガイドレール31、下部ガイドレール33及びラックギヤ35と着脱可能に連結することができる。このため、部品装着機20は、生産ライン11に並んだ部品装着機20の数を増減することができる。非接触給電コイル37は、上部ガイドレール31の上部に設けられ、X方向に沿って配置されたコイルであり、ローダ13への電力の供給を行う。
ローダ13は、部品装着機20に対するフィーダ29の補充及び回収を自動で行う装置であり、フィーダ29をクランプする把持部(図示略)を備える。ローダ13には、上部ガイドレール31に挿入される上部ローラ(図示略)と、下部ガイドレール33に挿入される下部ローラ(図示略)とが設けられている。また、ローダ13には、駆動源としてモータが設けられている。モータの出力軸には、ラックギヤ35と噛み合うギヤが取り付けられている。ローダ13は、部品装着機20の非接触給電コイル37から電力の供給を受ける受電コイルを備えている。ローダ13は、非接触給電コイル37から受電した電力をモータに供給する。これにより、ローダ13は、モータによってギヤを回転させることで、X方向(左右方向)へ移動することができる。また、ローダ13は、上部ガイドレール31及び下部ガイドレール33内でローラを回転させ、上下方向や前後方向の位置を保持しながらX方向へ移動することができる。
図1に示す管理コンピュータ15は、部品装着システム10を統括的に管理する装置である。例えば、生産ライン11の部品装着機20は、管理コンピュータ15の管理に基づいて、電子部品の装着作業を開始する。部品装着機20は、基板17を搬送しながらヘッド部25によって電子部品の装着作業を行う。また、管理コンピュータ15は、フィーダ29の残りの電子部品の数を監視する。管理コンピュータ15は、例えば、フィーダ29の補給が必要であると判断すると、補給が必要な部品種を収容したフィーダ29をローダ13にセットする指示を画面に表示する。ユーザは、画面を確認して、フィーダ29をローダ13にセットする。管理コンピュータ15は、所望のフィーダ29がローダ13にセットされたことを検出すると、ローダ13に対して補給作業の開始を指示する。ローダ13は、指示を受けた部品装着機20の前方まで移動し、ユーザによってセットされたフィーダ29を把持部で挟持してフィーダ台24のスロットに装着する。これにより、新たなフィーダ29が部品装着機20に補給される。また、ローダ13は、部品切れになったフィーダ29を把持部で挟持してフィーダ台24から引き出して回収する。このようにして、新たなフィーダ29の補給及び部品切れとなったフィーダ29の回収を、ローダ13によって自動的行うことができる。
次に、部品装着機20が備える多重通信システムについて説明する。図3は、部品装着機20の多重通信システムの構成を示すブロック図である。図2に示すように、部品装着機20は、装置本体部41と、分岐スレーブ43と、固定多重部45をモジュール22内に備えている。装置本体部41、分岐スレーブ43、及び固定多重部45は、基板搬送装置23の下方におけるモジュール22内に設けられている。
図3に示すように、本実施形態の多重通信システムでは、モジュール22内に固定された装置本体部41、分岐スレーブ43及び固定多重部45と、モジュール22内で移動する可動部(X軸スライド機構27A及びヘッド部25)との間のデータ伝送を多重通信により行う。装置本体部41は、本体制御装置51と、マスター53を有している。また、分岐スレーブ43は、マスター53と接続されている。固定多重部45は、第1多重処理装置55を備える。第1多重処理装置55の第1スレーブ57は、分岐スレーブ43と接続されている。ヘッド部25には、第2スレーブ61を有する第2多重処理装置63が設けられている。また、X軸スライド機構27Aには、第3スレーブ65を有する第3多重処理装置67が設けられている。
分岐スレーブ43、第1スレーブ57、第2スレーブ61、及び第3スレーブ65は、マスター53によって制御される。マスター53は、産業用ネットワークに接続される分岐スレーブ43、第1スレーブ57、第2スレーブ61、及び第3スレーブ65を制御する制御データCDの伝送を統括的に制御する。産業用ネットワークは、例えば、EtherCAT(登録商標)である。なお、本開示の産業用ネットワークとしては、EtherCAT(登録商標)に限らず、例えば、MECHATROLINK(登録商標)-IIIやProfinet(登録商標)等の他のネットワーク(通信規格)を採用できる。
本体制御装置51は、例えば、CPUを主体として構成される処理回路であり、マスター53によって収集した制御データCDや、第1多重処理装置55で受信した画像データGD等を入力し、次の制御内容(装着する電子部品の種類や装着位置など)を決定する。また、本体制御装置51は、決定した制御内容に応じた制御データCDをマスター53から送信させる。マスター53は、産業用ネットワークを介して分岐スレーブ43、第1スレーブ57、第2スレーブ61、及び第3スレーブ65へ制御データCDを送信する。
ヘッド部25は、上記した第2多重処理装置63、マークカメラ69、パーツカメラ71等を有している。第2スレーブ61は、装置本体部41のマスター53から受信した制御データCDに基づいて、各種素子(リレー75やセンサ77など)で入出力される信号を処理する。例えば、制御データCDには、複数のスレーブ(第2スレーブ61など)の各々に対応した書き込み領域及び読み込み領域が設定されている。第2スレーブ61は、マスター53から受信した制御データCDのうち、当該第2スレーブ61用の読み込み領域から読み出したデータに基づいてリレー75やセンサ77を駆動する。また、第2スレーブ61は、リレー75の駆動結果の信号やセンサ77の検出信号に応じたデータを、制御データCDのうち、当該第2スレーブ61用の書き込み領域へ書き込む。第2スレーブ61は、書き込みが終了した制御データCDを、マスター53や他のスレーブ(第3スレーブ65など)に向けて送信する。なお、制御データCDは、後述する多重の高速シリアル通信により伝送される。また、第1多重処理装置55の第1スレーブ57は、第2スレーブ61と同様に、マスター53から分岐スレーブ43を介して受信した制御データCDに基づいて、固定多重部45が備える各種素子を制御する。
また、X軸スライド機構27Aの第3スレーブ65は、上記したヘッド部25の第2スレーブ61と同様に、制御データCDに基づいて、X軸スライド機構27Aに取り付けられたリレー81やセンサ83などを制御する。制御データCDは、例えば、マスター53、分岐スレーブ43、第1スレーブ57、第2スレーブ61、第1スレーブ57、第3スレーブ65、第1スレーブ57、分岐スレーブ43、マスター53の順に各スレーブを循環して伝送される。第3スレーブ65は、第1スレーブ57を経由してマスター53から受信した制御データCDの読み込み領域のデータに基づいてリレー81等を制御する。また、第3スレーブ65は、センサ83の検出データ等を制御データCDの書き込み領域に書き込み第1スレーブ57を経由してマスター53へ送信する。
ヘッド部25やX軸スライド機構27A等が備える各種素子(制御データCDによって制御される素子)は、特に限定されない。例えば、X軸スライド機構27Aのリレー81は、X軸スライド機構27Aのリニアモータのブレーキを駆動する駆動信号を出力するリミットスイッチである。リレー81は、駆動信号を出力してブレーキを駆動することで、例えば、X軸スライド機構27Aのオーバーランを抑制する。また、X軸スライド機構27Aのセンサ83は、例えば、部品装着機20に設定された基準高さ位置に基づいて、基板17の上面の高さを計測する基板高さセンサである。
次に、上記した産業用ネットワークの制御データCDやパーツカメラ71等の画像データGDを伝送する多重通信について説明する。本実施形態の部品装着機20は、上記した固定多重部45、X軸スライド機構27A及びヘッド部25の間のデータ伝送を多重の高速シリアル通信によって実行する。図3に示すように、固定多重部45は、上記した第1多重処理装置55の他に、光変換モジュール85,87を有する。光変換モジュール85は、ヘッド部25が有する光変換モジュール89と、光ファイバケーブル91を介して接続されている。同様に、固定多重部45の光変換モジュール87は、X軸スライド機構27Aが有する光変換モジュール93と、光ファイバケーブル95を介して接続されている。光ファイバケーブル91,95は、例えば、ケーブル内の光ファイバ線の配置や太さを調整して、耐屈曲性を高めたものである。これにより、ヘッド部25やX軸スライド機構27Aの移動にともなって光ファイバケーブル91,95が屈曲した場合であっても、光ファイバ線を損傷させることなく、安定してデータを伝送できる。なお、固定多重部45、ヘッド部25、X軸スライド機構27Aを接続する通信は、光通信に限らず、例えば、Gigabit Ethernet(登録商標)の通信規格に準拠したLANケーブルを用いたパケット通信でも良い。また、部品装着機20が備える通信システムは、有線の通信システムに限らず、無線の通信システムでも良い。
次に、第1多重処理装置55の構成について説明する。なお、第1多重処理装置55以外の多重処理装置である第2多重処理装置63及び第3多重処理装置67の構成は、第1多重処理装置55と同様の構成となっている。このため、以下の説明では、第1多重処理装置55の構成について主に説明し、第2多重処理装置63及び第3多重処理装置67の構成の説明を省略する。
図4は、第1多重処理装置55の構成を示している。図4に示すように、第1多重処理装置55は、FPGA101と、メモリ105とを備えている。FPGA101は、Field Programmable Gate Arrayであり、コンフィグ情報に基づいて、論理回路を構築可能なプログラマブル論理デバイスである。FPGA101は、上記した第1スレーブ57の他に、多重処理部121、CPU123、メモリコントローラ124、リセット回路125を備えている。第1スレーブ57は、例えば、プログラマブル論理デバイスの論理回路の構築に使用されるIPコアである。なお、本開示のプログラマブル論理デバイスは、FPGAに限らず、プログラマブルロジックデバイス(PLD)、複合プログラマブルロジックデバイス(CPLD)でも良い。
多重処理部121は、後述するメモリ105に記憶されたコンフィグ情報142に基づいてFPGA101に構築される論理回路であり、多重化の処理を実行する。例えば、多重処理部121は、産業用ネットワークの制御データCD、本体制御装置51からマークカメラ69等に送信する撮像の開始信号などを入力し多重化する。多重処理部121は、例えば、時分割多重化方式(TDM:Time Division Multiplexing)により多重化を行う。多重処理部121は、例えば、入力した各種データを、入力ポートに対して割り当てた一定時間(タイムスロット)に応じて多重化し、多重化した多重化データを、光変換モジュール85(図3参照)を介してヘッド部25へ送信する。また、多重処理部121は、ヘッド部25やX軸スライド機構27Aから受信した多重化データの分離を行う。尚、図3及び図4に示す多重通信システムの構成は、一例であり適宜変更可能である。例えば、ヘッド部25の吸着ノズルの駆動源である電磁モータのエンコーダのエンコーダ信号や、エンコーダに対する制御コマンドを多重化しても良い。また、図3に示す本実施形態の多重通信システムでは、Y軸スライド機構27Bが接続されていない。しかしながら、例えば、Y軸スライド機構27Bのリニアモータに取り付けたリニアスケールのエンコーダ信号を、多重通信システムにより伝送しても良い。
CPU123は、FPGA101に実装される処理回路であり、例えば、アルテラ社製のNIOS(登録商標)-IIである。CPU123は、例えば、バス131を介してメモリコントローラ124と接続されている。メモリコントローラ124は、例えば、バス132を介してメモリ105に接続されている。メモリ105は、例えば、EPCQ(クワッド・シリアル・コンフィギュレーション・デバイス、登録商標)であり、制御プログラム141、コンフィグ情報142を記憶するフラッシュメモリを備えている。CPU123は、バス131、メモリコントローラ124、バス132を介してメモリ105との間で各種の信号を送受信する。ここでいう各種の信号とは、クロック信号clkやデータ信号dataである。なお、上記した構成は、一例である。例えば、制御プログラム141やコンフィグ情報142を記憶する記憶装置は、EPCQ(フラッシュメモリ)に限らず、EEPROM等でも良い。
CPU123は、例えば、部品装着機20の起動時にFPGA101へ電力を供給されると、メモリ105から制御プログラム141を読み出して実行する。CPU123は、制御プログラム141を実行することで各種の制御を行う。なお、以下の説明では、制御プログラム141を実行するCPU123のことを、単にCPU123として記載する場合がある。例えば、「CPU123は」という記載は、「制御プログラム141を実行するCPU123は」ということを意味する場合がある。
例えば、CPU123は、各種の制御として、産業用ネットワークを介して第1スレーブ57により送受信される制御データCDを処理する。CPU123は、例えば、固定多重部45に設けられたリレーやセンサ(図示略)の信号を第1スレーブ57へ出力する。第1スレーブ57は、リレーやセンサの信号に応じたデータを、制御データCDのうち、第1スレーブ57用の書き込み領域へ書き込む。また、第1スレーブ57は、マスター53から受信した制御データCDのうち、第1スレーブ57用の読み込み領域から読み出したデータをCPU123へ出力する。CPU123は、第1スレーブ57から入力したデータに基づいて、リレーやセンサを駆動する。従って、本実施形態の制御プログラム141は、部品装着機20の各種作業の制御に用いられるプログラムである。なお、上記した制御プログラム141による制御内容は、一例である。例えば、第2多重処理装置63のCPUは、エンコーダ信号の処理やパーツカメラ71の制御信号の処理などを実行しても良い。
また、CPU123は、例えば、部品装着機20の起動時にFPGA101へ電力を供給されると、メモリ105からコンフィグ情報142を読み出して、FPGA101の論理回路の構築を実行する。CPU123は、メモリ105から読み出したコンフィグ情報142に基づいて、多重処理部121などの論理回路を構築する。
また、本実施形態のメモリ105は、外部からの書き込みを制限する書き込み制限機能を有している。具体的には、メモリコントローラ124は、ステータスレジスタ124Aを有する。メモリコントローラ124は、ステータスレジスタ124Aのビット値に応じて、メモリ105に対する書き込みを制御する。また、メモリ105は、メモリコントローラ124と同様に、ステータスレジスタ105Aを有する。メモリ105は、例えば、ステータスレジスタ105Aのビット値として書き込みを許可する値が設定されている状態では、クロック信号clkに同期してバス132を介してデータ信号dataを取り込む。メモリ105は、取り込んだデータを、記憶領域の指定されたアドレスに書き込む。また、メモリ105は、ビット値として書き込みを禁止する値が設定されている状態では、データ信号dataの取り込みや記憶領域への書き込みを禁止する。
また、メモリコントローラ124は、例えば、ステータスレジスタ124Aのビット値と、メモリ105のステータスレジスタ105Aのビット値とを同期させる。例えば、CPU123は、メモリ105への書き込みを実行する場合、バス131を介してステータスレジスタ124Aのビット値を、書き込みを許可する値に書き換える。メモリコントローラ124は、ステータスレジスタ124Aの書き換えに応じて、メモリ105のステータスレジスタ105Aのビット値を、書き込みを許可する値に書き換える。これにより、メモリ105は、書き込み可能な状態となる。
また、CPU123は、メモリ105への書き込みを終了すると、ステータスレジスタ124Aのビット値を、書き込みを禁止する値に変更する。メモリコントローラ124は、ステータスレジスタ124Aの書き換えに応じて、メモリ105のステータスレジスタ105Aのビット値を、書き込みを禁止する値に書き換える。これにより、メモリ105は、書き込みを禁止する状態となる。従って、本実施形態のメモリ105は、CPU123からメモリコントローラ124を介して書き込み制限機能を解除可能となっている。なお、メモリ105の書き込み制限機能を実現する方法は、上記したステータスレジスタ124A,105Aを用いる方法に限らない。例えば、メモリ105は、バス132に含まれる特定の信号線の信号レベルに応じて、書き込みを許可又は禁止しても良い。例えば、メモリ105は、バス132に含まれる任意の信号線の信号レベルがハイレベルの場合に書き込みを許可し、ローレベルの場合に書き込みを禁止しても良い。また、メモリコントローラ124は、ステータスレジスタ124Aのビット値に応じて、この信号線の信号レベルを変更しても良い。
また、図4に示すように、FPGA101は、リセット回路125を備えている。リセット回路125は、例えば、コンフィグ情報142に基づいて構築される論理回路である。CPU123は、例えば、FPGA101の起動時に、メモリ105から読み出したコンフィグ情報142に基づいて、リセット回路125の論理回路を構築する。なお、リセット回路125は、論理回路に限らず、ASICなどの専用のハードウェアでも良い。
リセット回路125は、リセット信号restをメモリコントローラ124へ出力し、CPU123からメモリ105への書き込みを制限する。従って、本実施形態の第1多重処理装置55は、メモリ105の書き込み禁止機能に加え、リセット回路125によっても書き込みを制限し、2重に書き込みを制限する構成となっている。
リセット回路125は、例えば、バス133を介してCPU123と接続されている。リセット回路125は、バス133を介してクロック信号clk1や許可信号ENを送受信する。また、リセット回路125は、メモリコントローラ124へリセット信号restを出力する。メモリコントローラ124は、例えば、ハイレベルのリセット信号restを入力している間は、動作を停止した状態となる。この状態では、CPU123とメモリ105との間は切断された状態となる。従って、ハイレベルのリセット信号restがリセット回路125からメモリコントローラ124へ出力されている間、CPU123は、メモリ105への書き込みを禁止される。
また、メモリコントローラ124は、例えば、ローレベルのリセット信号restを入力すると、動作状態となる。CPU123は、ローレベルのリセット信号restを入力し動作しているメモリコントローラ124に対して、ステータスレジスタ124Aの書き換えを行うことで、メモリ105への書き込みが可能となる。
また、リセット回路125は、例えば、CPU123からバス133を介して入力する許可信号ENの信号レベルに応じて、リセット信号restの信号レベルを変更する。例えば、リセット回路125は、CPU123からハイレベルの許可信号ENを入力している間、リセット信号restの信号レベルをハイレベルとする。これにより、メモリコントローラ124の動作を停止させ、メモリ105への書き込みを禁止することができる。
CPU123は、例えば、メモリ105の書き込みを実行しない間、許可信号ENの信号レベルをハイレベルとする。これにより、書き込みを実行しない通常状態では、リセット回路125は、ハイレベルのリセット信号restをメモリコントローラ124へ出力し、メモリコントローラ124を停止させた状態とする。なお、上記したリセット信号restや許可信号ENの信号レベルは、一例である。例えば、メモリコントローラ124は、ローレベルのリセット信号を入力している間は、動作を停止する構成でも良い。
CPU123は、外部から入力した情報により、メモリ105に記憶された制御プログラム141やコンフィグ情報142を更新する。CPU123は、例えば、装置本体部41や、管理コンピュータ15から更新用のコンフィグ情報142等を入力しても良い。また、ヘッド部25の第2多重処理装置63のCPU(図示略)やX軸スライド機構27Aの第3多重処理装置67のCPU(図示略)は、多重通信を介して第1多重処理装置55からコンフィグ情報等を受信しても良い。また、第1多重処理装置55は、コンフィグ情報142を入力する外部インターフェースを備えても良い。ここでいう外部インターフェースは、例えば、IEEE1149.1が規定するJTAG(Joint Test Action Group)によって提案された規格に準拠した通信を実行するJTAGコネクタである。CPU123は、JTAGコネクタを介して入力したコンフィグ情報142により、メモリ105に記憶されたコンフィグ情報142を更新しても良い。
CPU123は、このようなコンフィグ情報142や制御プログラム141を更新等する場合に、メモリ105への書き込みを実行する。リセット回路125は、例えば、CPU123からローレベルの許可信号ENを入力すると、リセット信号restの信号レベルをローレベルに変更する。これにより、メモリコントローラ124を動作させ、メモリ105への書き込みが可能となる。CPU123は、許可信号ENの信号レベルを変更することで、メモリコントローラ124の動作状態を変更し、メモリ105への書き込みを禁止又は許可することができる。なお、上記したリセット回路125による処理内容は、一例である。例えば、リセット回路125は、許可信号ENの入力の有無に応じて、リセット信号restの出力の有無を変更しても良い。リセット回路125は、許可信号ENの入力を検出すると、リセット信号restを出力する構成でも良い。これにより、CPU123は、許可信号ENの入力を制御することで、メモリ105への書き込みを制御できる。
従って、本実施形態のリセット回路125は、CPU123(処理部の一例)からローレベルの許可信号ENを取得することに応じて、リセット信号restによるメモリコントローラ124の制限を解除する。これによれば、CPU123は、メモリ105への書き込みを実行したい場合、リセット回路125へローレベルの許可信号ENを出力し、リセット回路125による制限を解除することで書き込むことができる。これにより、CPU123は、許可信号ENを制御することで、適切なタイミングでメモリ105への書き込みを実行することができる。
また、本実施形態のリセット回路125は、CPU123からローレベルの許可信号ENを取得できない場合、ハイレベルのリセット信号restを出力し、リセット信号restによる制限を維持する。これによれば、リセット回路125は、CPU123からローレベルの許可信号ENを取得できない間は、常にリセット信号restをハイレベルとし、書き込みを制限する。これにより、不正な書き込みをより確実に制限できる。
なお、許可信号ENを取得する方法は、上記した方法に限らない。例えば、リセット回路125は、CPU123の状態を監視し、CPU123からの応答信号を、許可信号ENとして取得しても良い。そして、リセット回路125は、CPU123から正常に許可信号ENを取得できない場合(例えば、一定時間だけ許可信号ENを取得できない場合)、リセット信号restをハイレベルとし、書き込みを禁止しても良い。あるいは、リセット回路125は、CPU123で発生するエラーを監視し、エラーを検出した場合にリセット信号restをハイレベルにして書き込みを禁止しても良い。
また、本実施形態のCPU123は、ローレベルの許可信号ENを出力しリセット回路125による制限を解除し、且つメモリコントローラ124のステータスレジスタ124Aを書き換え、メモリ105の書き込み制限機能を解除した後、メモリ105への書き込みを実行する。このような構成では、メモリ105への書き込みは、メモリ105自身の書き込み制限機能と、リセット回路125による制限との2つにより制限される。換言すれば、メモリ105への不正な書き込みを、2重に制限することができる。
また、上記したように、メモリ105に記憶された制御プログラム141及びコンフィグ情報142は、FPGA101の起動時に実行される。従って、本実施形態制御プログラム141及びコンフィグ情報142(プログラムの一例)は、第1多重処理装置55(情報処理装置の一例)の起動時にCPU123(処理部の一例)により実行される起動プログラムである。このため、本実施形態によれば、起動時にCPU123で実行される起動プログラムを書き換える不正な書き込みを制限できる。その結果、第1多重処理装置55、ひいては部品装着機20をより安定して起動させることができる。
また、第1多重処理装置55は、コンフィグ情報142に基づいて論理回路を構築するFPGA101(プログラマブル論理デバイスの一例)を備える。メモリ105には、コンフィグ情報142(プログラムの一例)が記憶されている。これによれば、FPGA101の論理回路の構築に必要なコンフィグ情報142を書き換える不正な書き込みを制限できる。これにより、第1多重処理装置55をより安定して起動させることができる。
次に、メモリ105への書き込み動作について説明する。一例として、部品装着機20の起動後に、メモリ105に記憶されたコンフィグ情報142を書き換える動作について説明する。図5は、比較例と、本実施形態のメモリ105に対する書き込み動作のタイミングチャートを示している。
なお、図5に示すPOWER ONの信号は、FPGA101へ電力の供給が開始されるタイミングを示している。ステータスレジスタの信号は、ステータスレジスタ124A,105Aの状態を示しており、書き込み禁止状態では立ち上り、書き込み許可状態では立ち下がる。FPGA,CPU動作の信号は、FPGA101やCPU123の動作状態を示しており、FPGA101やCPU123が動作している状態では立ち上がり、動作を停止している状態では立ち下がる。リセット信号は、リセット信号restの信号レベルを示している。メモリ書き込み禁止の信号は、メモリ105の書き込み禁止状態を示しており、書き込み禁止状態では立ち上がり、書き込み許可状態では立ち下がる。メモリへの書き込みの信号は、メモリ105への書き込み状態を示しており、メモリ105の書き込みが行われている最中は立ち上がる。
まず、図5の上図に示す比較例のタイミングチャートについて説明する。比較例の構成は、例えば、リセット回路125を備えない構成である。まず、図5に示す時間T1において、部品装着機20の起動に合わせてFPGA101へ電力が供給される。ステータスレジスタ124A,105Aは、初期値として、書き込みを禁止するビット値が設定されている。このため、ステータスレジスタの信号は、書き込み禁止状態(ハイレベル)となる。FPGA101への電力供給が安定するまでの間、メモリ105への書き込みが禁止される。
時間T2において、FPGA101及びCPU123が起動処理を開始する。この時点では、メモリ105への書き込みが禁止されているものの、読み出しは可能となっている。CPU123は、制御プログラム141をメモリ105から読み出して実行する。また、CPU123は、コンフィグ情報142を読み出して多重処理部121の構築等を実行する。
次に、時間T5において、CPU123は、コンフィグ情報142を書き換えるため、ステータスレジスタ124A,105Aのビット値を、書き込み可能な値に変更する。CPU123は、ステータスレジスタ124A,105Aを変更した後、メモリ105の書き込み処理を実行する(時間T6~時間T7)。これにより、コンフィグ情報142が新しいデータに書き換えられる。CPU123は、書き込みを終了すると、ステータスレジスタ124A,105Aのビット値を、書き込み禁止を示す値に戻す(時間T8)。
ここで、このような比較例の構成では、ステータスレジスタ124A,105Aによって、メモリ105への書き込みを制限することができる。しかしながら、CPU123の処理は、エラーが発生する可能性がある。例えば、CPU123は、使用環境の熱によって処理内容にエラーが発生し、誤ってステータスレジスタ124A,105Aの値を変更し、コンフィグ情報142を書き換えてしまう可能性がある。あるいは、CPU123は、CPU123内のメモリ空間のアドレスの参照ミスによってエラーが発生し、コンフィグ情報142を書き換えてしまう可能性がある。これに対し、本実施形態では、リセット回路125によって、このような不正な書き込みを制限することができる。
図5の下図に示すように、例えば、FPGA101やCPU123は、時間T2から起動処理を開始、時間T3で起動処理を完了させる。部品装着機20の電源を投入してから時間T3までの間は、CPU123は、起動を完了していない。この間、CPU123は、ローレベルの許可信号ENを出力する。
リセット回路125は、起動した後、CPU123からローレベルの許可信号ENを入力すると、リセット信号restの信号レベルをローレベルにする。また、リセット回路125が起動していない状態では、リセット信号restは、ローレベルとなる。これにより、メモリコントローラ124を動作させ、CPU123が、メモリ105から制御プログラム141及びコンフィグ情報142を読み込むことができる。
時間T3において、CPU123は、制御プログラム141の実行や、コンフィグ情報142による論理回路の構築を完了させると、許可信号ENをハイレベルにし、リセット信号restをハイレベルにする。これにより、ステータスレジスタ124A,105Aに加え、リセット回路125によって、メモリ105への書き込みを禁止することができる。その結果、上記したようなCPU123の処理でエラーが発生し、ステータスレジスタ124A,105Aのビット値を書き換えようとしても、リセット回路125からハイレベルのリセット信号restを出力し、メモリコントローラ124の動作を停止させることで、メモリ105への書き込みを禁止することができる。
次に、時間T4において、CPU123は、メモリ105へ書き込みを実行するため、許可信号ENをローレベルにし、リセット信号restをローレベルにする。これにより、メモリコントローラ124が動作状態となる。
そして、CPU123は、比較例と同様に、時間T5において、コンフィグ情報142を書き換えるため、ステータスレジスタ124A,105Aのビット値を、書き込み可能な値に変更する。CPU123は、ステータスレジスタ124A,105Aを変更した後、メモリ105の書き込み処理を実行する(時間T6~時間T7)。
CPU123は、書き込みを終了すると、ステータスレジスタ124A,105Aのビット値を、書き込みを禁止する値に戻す(時間T8)。この時点で、メモリ105への書き込みが禁止される。そして、CPU123は、許可信号ENをハイレベルにし、リセット信号restをハイレベルにする(時間T9)。これにより、メモリ105への書き込みが2重に禁止された状態となる。このようにして、本実施形態の第1多重処理装置55は、リセット回路125によってメモリ105への不正な書き込みを制限することができる。
因みに、部品装着機20は、作業機の一例である。CPU123は、処理部の一例である。第1多重処理装置55は、情報処理装置の一例である。制御プログラム141及びコンフィグ情報142は、プログラムの一例である。
以上、上記した本実施例によれば以下の効果を奏する。
本実施例の一態様では、メモリコントローラ124は、ステータスレジスタ124Aによって、CPU123からメモリ105への書き込みを制御する。リセット回路125は、メモリコントローラ124へリセット信号restを出力し、メモリ105への書き込みを制限する。これによれば、仮に、処理エラーなどが発生しCPU123がメモリ105へ不正な書き込みを実行しようとしても、リセット回路125によって不正な書き込みを制限できる。
尚、本開示は上記の実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、上記実施形態の第1多重処理装置55は、CPU123、メモリコントローラ124、リセット回路125、メモリ105をそれぞれ1つ備えたが、複数備えても良い。例えば、複数のリセット回路125によって、複数のメモリ105に対する書き込みを個別に制限しても良い。
また、上記実施形態では、1つのマスター53に対して3つのスレーブ(第1~第3スレーブ57,61,65)を接続したが、これに限らない。マスター53の数は、2以上の複数個でも良い。また、スレーブの数は、2又は4以上の複数個でもよい。
また、多重通信は、時分割多重化方式以外、例えば、周波数多重化方式でも良い。
また、上記実施形態では本開示における作業機として、電子部品を基板17に実装する部品装着機20を採用した例について説明した。しかしながら、本開示における作業機は、部品装着機20に限定されるものではなく、はんだ印刷装置などの他の対基板作業機を採用することができる。また、作業機は、例えば、工作機械や組立て作業を実施するロボットでも良い。