"カメラ装置のシステム構築装置であって、前記カメラ装置は、被写体を撮像して画像データを取得する撮像モジュールと、外部機器と通信する外部通信モジュールと、を含む異なる機能を有する3以上のモジュールのうち、少なくとも前記撮像モジュールおよび前記外部通信モジュールを含むように選択された複数の前記モジュールを着脱可能に連結して構成され、前記カメラ装置を構成する複数の前記モジュールのうち少なくとも一以上の前記モジュールには、前記モジュールにそれぞれ割り当てられた機能を実行するプログラムを実装可能な回路素子が設けられ、前記システム構築装置は、前記カメラ装置と通信可能に接続される通信部と、前記モジュールの前記回路素子に実装する前記プログラムを転送するプログラム実装部と、を備えるカメラ装置のシステム構築装置。請求項1において、前記システム構築装置は、選択された前記モジュールに係る前記機能を含むモジュール情報を取得する情報取得部と、取得した前記モジュール情報に基づいて当該モジュールの前記回路素子に実装可能な前記プログラムを選択可能に表示する表示部と、をさらに備え、前記プログラム実装部は、前記表示部において選択された前記プログラムを前記モジュールの前記回路素子に転送するカメラ装置のシステム構築装置。請求項2において、前記表示部は、前記回路素子に実装可能な前記プログラムをアイコンとして表示するプログラム表示領域と、選択された前記プログラムの前記アイコンを表示する選択表示領域と、を有し、前記プログラム表示領域から前記選択表示領域に前記アイコンをドラッグアンドドロップされた場合に、当該アイコンにより表示された前記プログラムが選択されたものとして前記選択表示領域に表示するカメラ装置のシステム構築装置。請求項3において、前記表示部は、前記プログラムとして前記モジュールのデバイスドライバを前記プログラム表示領域に表示するカメラ装置のシステム構築装置。請求項4において、前記モジュールの前記モジュール情報には当該モジュールの構成に係るハードウェア情報が含まれ、前記表示部は、取得したハードウェア情報に基づいて当該モジュールに対応した前記デバイスドライバを前記プログラム表示領域に表示するカメラ装置のシステム構築装置。請求項3~5の何れか一項において、前記表示部は、前記カメラ装置を構成する複数の前記モジュールに前記画像データに対して画像処理を実行する画像処理モジュールが含まれる場合に、前記プログラムとして実行可能な前記画像処理を前記プログラム表示領域に表示し、前記選択表示領域に選択された前記画像処理を指定された実行順に表示するカメラ装置のシステム構築装置。請求項6において、前記選択表示領域に一以上の前記画像処理が選択された場合に、当該画像処理を指定された実行順で実行したものと仮定して、実行後の前記画像データをシミュレーションするシミュレーション部をさらに備えるカメラ装置のシステム構築装置。請求項2~7の何れか一項において、前記モジュールに対して選択された前記プログラムについて前記モジュール情報に基づいて適正判定する判定部をさらに備えるカメラ装置のシステム構築装置。請求項1~8の何れか一項において、前記通信部は、前記外部通信モジュールが前記外部機器と通信する通信手段によって、前記カメラ装置と通信可能に接続されるカメラ装置のシステム構築装置。しかしながら、工業分野を始め様々な分野で使用されるカメラ装置には、撮像モジュールの交換の他にも画像処理の種類や処理機能の変更の要請がある。さらには、通信を行う外部機器の変更によってはインターフェイスを修正する必要が生じ、またカメラ装置の設置場所などによっては外形寸法が制約されることもある。本発明は、このような事情を鑑みてなされたものであり、種々の用途に適用可能なカメラ装置に機能を実装するカメラ装置のシステム構築装置を提供することを目的とする。上述した課題を解決するために、請求項1に係る発明によると、カメラ装置のシステム構築装置であって、前記カメラ装置は、被写体を撮像して画像データを取得する撮像モジュールと、外部機器と通信する外部通信モジュールと、を含む異なる機能を有する3以上のモジュールのうち、少なくとも前記撮像モジュールおよび前記外部通信モジュールを含むように選択された複数の前記モジュールを着脱可能に連結して構成され、前記カメラ装置を構成する複数の前記モジュールのうち少なくとも一以上の前記モジュールには、前記モジュールにそれぞれ割り当てられた機能を実行するプログラムを実装可能な回路素子が設けられ、前記システム構築装置は、前記カメラ装置と通信可能に接続される通信部と、前記モジュールの前記回路素子に実装する前記プログラムを転送するプログラム実装部と、を備える。請求項2に係る発明によると、請求項1において、前記システム構築装置は、選択された前記モジュールに係る前記機能を含むモジュール情報を取得する情報取得部と、取得した前記モジュール情報に基づいて当該モジュールの前記回路素子に実装可能な前記プログラムを選択可能に表示する表示部と、をさらに備え、前記プログラム実装部は、前記表示部において選択された前記プログラムを前記モジュールの前記回路素子に転送する。請求項3に係る発明によると、請求項2において、前記表示部は、前記回路素子に実装可能な前記プログラムをアイコンとして表示するプログラム表示領域と、選択された前記プログラムの前記アイコンを表示する選択表示領域と、を有し、前記プログラム表示領域から前記選択表示領域に前記アイコンをドラッグアンドドロップされた場合に、当該アイコンにより表示された前記プログラムが選択されたものとして前記選択表示領域に表示する。請求項4に係る発明によると、請求項3において、前記表示部は、前記プログラムとして前記モジュールのデバイスドライバを前記プログラム表示領域に表示する。請求項5に係る発明によると、請求項4において、前記モジュールの前記モジュール情報には当該モジュールの構成に係るハードウェア情報が含まれ、前記表示部は、取得したハードウェア情報に基づいて当該モジュールに対応した前記デバイスドライバを前記プログラム表示領域に表示する。請求項6に係る発明によると、請求項3~5の何れか一項において、前記表示部は、前記カメラ装置を構成する複数の前記モジュールに前記画像データに対して画像処理を実行する画像処理モジュールが含まれる場合に、前記プログラムとして実行可能な前記画像処理を前記プログラム表示領域に表示し、前記選択表示領域に選択された前記画像処理を指定された実行順に表示する。請求項7に係る発明によると、請求項6において、前記選択表示領域に一以上の前記画像処理が選択された場合に、当該画像処理を指定された実行順で実行したものと仮定して、実行後の前記画像データをシミュレーションするシミュレーション部をさらに備える。請求項8に係る発明によると、請求項2~7の何れか一項において、前記モジュールに対して選択された前記プログラムについて前記モジュール情報に基づいて適正判定する判定部をさらに備える。請求項9に係る発明によると、請求項1~8の何れか一項において、前記通信部は、前記外部通信モジュールが前記外部機器と通信する通信手段によって、前記カメラ装置と通信可能に接続される。請求項1に係る発明によると、カメラ装置は、異なる機能を有する3以上のモジュールから選択された複数のモジュールを着脱可能に連結して構成される。そのため、このようなカメラ装置によれば、複数のモジュールを要求に応じて連結することが可能となり、種々の用途に容易に適用することができる。また、カメラ装置を構成する複数のモジュールのうち少なくとも一以上のモジュールには、プログラムを実装可能な回路素子が設けられている。この回路素子は、広義のPLDProgrammableLogicDeviceやASICApplicationSpecificIntegratedCircuit、マイコンなどに相当するものである。PLDおよびASICは、論理回路を定義されることによって特定の処理プログラムを実行可能となる集積回路である。このように、複数のモジュールにより構成されるカメラ装置は、要求される機能を発揮するためには、モジュールに設けられた回路素子にプログラムを実装して、カメラ装置としてのシステムを構築する必要がある。そこで、本発明においては、カメラ装置と通信可能に接続される通信部を介して、プログラム実装部がモジュールの回路素子に実装するプログラムを転送する構成としている。これにより、カメラ装置は、実装されたプログラムによって各モジュールにそれぞれ割り当てられた機能を発揮するようにシステムが構築される。よって、従来と比較して設計上の自由度が高く、要求される機能や性能に対応可能なカメラ装置を構成することができる。また、複数のモジュールは、モジュール単位での設計や検査が可能であり、既存のモジュールを流用することができる。これにより、専用のカメラ装置を製作する場合と比較して、開発工数を大幅に削減することができる。請求項2に係る発明によると、表示部がモジュール情報に基づいて回路素子に実装可能なプログラムを選択可能に表示するものとしている。ここで、カメラ装置は、用途などに応じて複数のモジュールを選択して構成されるため、その組み合わせが決定するまでは、どのようなハードウェア構成となるか特定されない。そこで、先ず、カメラ装置を構成する所定のモジュールの組み合わせが決定した場合に、情報取得部により各モジュールがどのような機能を有するのかなどのモジュール情報を取得する。モジュール情報の取得方法については、システム構築装置に連結されたカメラ装置と通信することにより取得してもよいし、ユーザーにより決定したモジュールの組み合わせを入力されることにより取得してもよい。そして、表示部がこのモジュール情報に基づいてプログラムを表示することにより、プログラムの選択が補助されて容易となる。よって、カメラ装置のシステム構築を簡易化することができる。請求項3に係る発明によると、モジュールに設けられた回路素子に実装可能なプログラムは、表示部にアイコンとして表示される。そして、このアイコンをプログラム表示領域から選択表示領域にドラッグアンドドロップすることで、容易にプログラムの選択をすることができる。このような構成においては、反対に選択表示領域からプログラム表示領域にドラッグアンドドロップすることで、プログラムの選択を解除することができる。このように、ドラッグアンドドロップのような簡易なマウスジェスチャーにプログラムの選択または解除を行う機能を割り当てることにより、カメラ装置の各モジュールへのプログラムの実装を簡易化することができる。請求項4に係る発明によると、表示部は、プログラムとしてモジュールのデバイスドライバをプログラム表示領域に表示するものとしている。カメラ装置を構成するモジュールには、当該モジュールが有するハードウェアを駆動させることにより、割り当てられた機能を実行するものがある。そのため、表示部がモジュールに対応したデバイスドライバを表示することにより、必要に応じたプログラムの選択を簡易化することができる。また、表示部においては、デバイスドライバのプログラム名を直接的に表示してもよいし、デバイスドライバに対応するモジュール名を表示するようにしてもよい。請求項5に係る発明によると、表示部は、ハードウェア情報に基づいてモジュールに対応したデバイスドライバをプログラム表示領域に表示するものとしている。これにより、デバイスドライバの選択を促すようにアシストすることができるので、システム構築におけるプログラムの選択が容易となる。請求項6に係る発明によると、表示部は、画像処理モジュールが実行可能な画像処理をプログラム表示領域に表示するものとしている。カメラ装置には、撮像して取得した画像データを外部装置に転送する前に、画像データに対して所定の画像処理を実行するために、画像処理モジュールが含まれるように構成されることがある。そこで、画像処理モジュールが実行可能な画像処理をプログラム表示領域に表示することで、画像処理の選択を簡易化することができる。また、画像処理モジュールは、画像データに対して複数の画像処理を所定の順序で実行することがある。これは、同様の画像処理を実行する場合においても、その実行順によっては結果が異なるためである。そこで、選択表示領域では、選択された複数の画像処理を実行順に表示するようにしている。これにより、画像処理の実行順を目視で確認することができるので、画像処理の順序を誤って指定することを防止できる。請求項7に係る発明によると、仮想的に画像処理を実行するシミュレーション部を有するものとしている。画像処理モジュールが実行可能な画像処理としては、画像データの二値化やフィルタリングなどがある。さらに、上述したように、複数の画像処理が選択された場合には、その実行順によって結果が異なることがある。そのため、シミュレーション部により選択された画像処理を指定された実行順で実行したものとして、仮想的な結果をシミュレーションする。これにより、現在のところ選択されている画像処理が、画像処理モジュールに要求される画像処理として妥当であるかを判断することができる。これにより、適切な画像処理を容易に選択することができるので、カメラ装置のシステム構築に要する工数を低減できる。また、シミュレーション部は、仮想的な画像処理の結果を得るためのものであり、画像処理を実行する対象の画像データとしては、連結されているカメラ装置が撮像したものでもよいし、予め用意されているサンプルとしてもよい。請求項8に係る発明によると、判定部により選択されたプログラムの適正を判定するものとしている。表示部にはモジュールの回路素子に実装可能なプログラムを選択可能に表示しているが、上記のような構成とすることで、選択されたプログラムが実装される前に適正を判定することができる。これにより、誤ったプログラムを選択することを確実に防止することができる。請求項9に係る発明によると、通信部は、外部通信モジュールが外部機器と通信する通信手段によって、カメラ装置と通信可能に接続されるものとしている。ここで、外部通信モジュールは、種々の通信プロトコルや通信規格などに準拠するとともに、同軸ケーブルやUSBなどのデータ伝送路に対応した通信手段を有している。そこで、外部通信モジュールの通信手段によって通信部がカメラ装置と通信する構成とすることで、外部通信モジュールに対して専用の通信手段を設ける必要がなくなりコストを低減できる。以下、本発明のカメラ装置のシステム構築装置を具体化した実施形態について図面を参照して説明する。<実施形態>カメラ装置10の構成先ず、本発明のシステム構築装置20が適用されるカメラ装置10の構成について、図1~図3を参照して説明する。また、本実施形態において、カメラ装置10は、電子部品装着装置1に組み込まれている構成としている。この電子部品装着装置1は、例えば、集積回路の製造工程において、プリント基板CBに複数の電子部品を実装する装置である。また、プリント基板CBは、クリームハンダ印刷機により電子部品の装着位置にハンダを塗布され、複数の装着装置を順に搬送されて電子部品が装着される。その後に、電子部品が装着されたプリント基板CBは、リフロー炉に搬送されてハンダ付けされることにより集積回路を構成する。この電子部品装着装置1は、図1に示すように、制御装置2と、カメラ装置10を備えている。制御装置2は、CPUおよびメモリなどから構成され、電子部品装着装置1に対する指令値やカメラ装置10およびセンサなどから出力される情報を入力する。そして、制御装置2は、これらの指令値や各種情報に基づいて、プリント基板CBに電子部品が適切に装着されるように電子部品装着装置1の各軸モータや各装置などを制御する。また、本実施形態において、カメラ装置10は、電子部品装着装置1が電子部品を装着する際に、コンベアなどの搬送装置によって規定位置まで搬送されたプリント基板CBを撮像する基板カメラとして用いられている。より詳細には、基板カメラであるカメラ装置10は、制御装置2との通信により入力した撮像指令に基づいて、規定位置まで搬送されてクランプされたプリント基板CBを撮像する。そして、カメラ装置10は、取得した画像データに対して所定の画像処理を実行して制御装置2に出力する。次に、制御装置2は、画像データからプリント基板CBの対角する二隅に設けられた基板マークを基準位置として認識する。これにより、制御装置2は、電子部品が設定された座標値に装着することが可能となる。つまり、プリント基板CBのクランプの際に生じる位置誤差を画像データに基づいて補正することで、部品実装の高精度化を図っている。このように、本実施形態においては、制御装置2はカメラ装置10の上位に位置する外部機器であって、プリント基板CBはカメラ装置10によって撮像される被写体である。この他に、カメラ装置10は、例えば、部品実装ヘッドの吸着ノズルに吸着された電子部品の状態を撮像する部品カメラなどにも用いることが可能である。さらには、複数の被写体を撮像するために複数の撮像素子を有する複眼式のカメラ装置10として電子部品装着装置1に用いることもできる。何れの場合にも、カメラ装置10は、上位装置である制御装置2によって動作を制御されることになる。また、カメラ装置10は、電子部品が実装されたプリント基板CBを検査する基板検査装置に組み込むことも可能である。この場合には、カメラ装置10は、プリント基板CBを撮像する検査カメラとして用いられる。このように、カメラ装置10は、基板生産以外の用途にも用いることが可能である。この場合には、汎用のパソコンや専用の画像処理ボードなどが上位装置として用いられる。カメラ装置10は、異なる機能を有する3以上のモジュールから選択されたモジュールを着脱可能に連結して構成されている。本実施形態では、カメラ装置10は、図2に示すように、撮像モジュール11と、画像処理モジュール12と、外部通信モジュール13と、自律動作モジュール14と、光源モジュール15を含むモジュールのうち、撮像モジュール11、画像処理モジュール12、および外部通信モジュール13を一つずつ選択し、この順で連結して構成されている。また、例示している各モジュール11~15は、互いに異なる機能を有している。そして、各モジュール11~15には、同様の機能を有する複数種類のタイプが用意されている。また、各モジュール11~15は、共通化された共通信号によってお互いに通信可能な通信部を有し、着脱可能な連結部が設けられた同形状の筐体に収容されている。そして、カメラ装置10は、各モジュール11~15から用途に応じて選択し、自由に組み合わせることが可能となっている。また、同種のモジュールを複数連結することも可能である。各モジュール11~15の機能および構成の詳細については後述する。撮像モジュール11は、被写体であるプリント基板CBを撮像して画像データを取得するモジュールである。この撮像モジュール11は、図3に示すように、PLD11aと、メモリ部11bと、イメージセンサ11cを有している。PLD11aは、撮像モジュール11に割り当てられた撮像機能を実行するプログラムを実装可能な回路素子である。PLD11aは、撮像モジュール11がカメラ装置10を構成した後においても、上記のプログラムに相当する論理回路を定義可能な集積回路である。より具体的には、FPGAFieldProgrammableGateArray、CPLDComplexProgrammableLogicDeviceなどに相当する。そして、PLD11aは、カメラ装置10の撮像モジュール11として必要な機能を有するように、システム構築装置20によってプログラムが実装される。PLD11aに実装されるプログラムは、イメージセンサ11cを動作させるデバイスドライバ、連結される画像処理モジュール12と通信を行う通信プログラムなどである。また、この通信プログラムは、各モジュール11~15の間で共通化された共通信号によって互いに通信可能としている。従って、PLD11aは、撮像モジュール11における通信部としても機能している。メモリ部11bは、撮像モジュール11の構成に係るハードウェア情報を記憶するフラッシュメモリである。上記のハードウェア情報は、具体的には、イメージセンサ11cの画素数や画像転送速度などが含まれる。イメージセンサ11cは、CCDやCMOS等の撮像素子である。このイメージセンサ11cは、その撮像面が撮像モジュールに設けられたレンズの光軸に対して直角となるように配置されている。そして、イメージセンサ11cは、レンズにより撮像面に結像された光の強弱に応じて発生される信号電荷によってデジタル信号に変換し、被写体を撮像する。そして、イメージセンサ11cから出力されるデジタル信号に基づいてPLD11aが画像データに変換している。本実施形態においては、撮像モジュール11は、レンズとイメージセンサ11cを一組だけ有する単眼式の構成としている。画像処理モジュール12は、撮像モジュール11が取得した画像データに対して画像処理を実行するモジュールである。この画像処理モジュール12は、図3に示すように、PLD12aと、メモリ部12bを有している。PLD12aは、画像処理モジュール12に割り当てられた画像処理機能を実行するプログラムを実装可能な回路素子である。画像処理モジュール12のPLD12aは、撮像モジュール11のPLD11aと同様であるため、詳細な説明を省略する。画像処理モジュール12のPLD12aに実装されるプログラムは、基板カメラとしての画像処理プログラム、連結される撮像モジュール11および外部通信モジュール13と通信を行う通信プログラムなどである。この画像処理プログラムは、カメラ装置10から画像データを入力した制御装置2が基板マークを基準位置として認識できるように画像処理を実行するものである。この画像処理は、例えば、画像データの二値化、フィルタリング、色相抽出などであって、必要に応じて選択的に実装される。また、通信プログラムは、撮像モジュール11のPLD11aに実装されたものと同様に、共通信号によって通信を行うものである。従って、PLD12aは、画像処理モジュール12における通信部としても機能している。メモリ部12bは、書き換えによる記憶内容の変更が可能であり、また電源が切れても記憶内容を保持する不揮発性のフラッシュメモリである。メモリ部12bは、例えば、PLD12aによる画像処理の際に、一時的に画像データを保持するなど、補助的な記憶部として使用される。外部通信モジュール13は、外部機器である制御装置2と通信するモジュールである。この外部通信モジュール13は、図3に示すように、PLD13aと、メモリ部13bと、インターフェイスIC13cを有している。PLD13aは、外部通信モジュール13に割り当てられた外部通信機能を実行するプログラムを実装可能な回路素子である。外部通信モジュール13のPLD13aは、撮像モジュール11のPLD11aと同様であるため、詳細な説明を省略する。外部通信モジュール13のPLD13aに実装されるプログラムは、インターフェイスIC13cを動作させるデバイスドライバ、連結される画像処理モジュールと通信を行う通信プログラムなどである。また、この通信プログラムは、撮像モジュール11のPLD11aに定義されたものと同様に、共通信号によって通信を行うものである。従って、PLD13aは、外部通信モジュール13における通信部としても機能している。メモリ部13bは、外部通信モジュール13の構成に係るハードウェア情報を記憶するフラッシュメモリである。上記のハードウェア情報は、具体的には、インターフェイスIC13cの転送速度や転送バス幅などがある。インターフェイスIC13cは、制御装置2と通信する所定の通信機能を有する電子回路である。このようなインターフェイスIC13cとしては、種々の通信プロトコルや通信規格などに応じて設計され、パラレルインターフェイスや同軸ケーブル、USBなどのデータ伝送路に対応した通信形態を有している。自律動作モジュール14は、撮像モジュール11が取得する画像データなどに基づいて、カメラ装置10における所定の動作を自動で行う機能を割り当てられたモジュールである。このような機能として、例えば、被写体の動きに合わせてカメラ装置10の撮像方向を変える自動追従機能、被写体の特定マークを認識して撮像モジュール11に撮像指令を出力する自動撮像機能などがある。そして、自律動作モジュール14は、何れの機能を有する場合においても、共通信号によって他のモジュールと通信可能な通信部を有している。この自律動作モジュール14の通信部は、自律動作機能を実行するPLDやマイコンなどに通信プログラムを実装するものとしてもよい。光源モジュール15は、上位装置である制御装置2の制御指令などに基づいて、カメラ装置10が撮像を行う際に被写体を照射する照明機能を割り当てられたモジュールである。このような光源モジュール15には、LEDや電球などを光源とし、照度センサによる測定値に応じて照射量を調整する機能を有するものとしてもよい。そして、光源モジュール15は、何れの構成により照明機能を有する場合においても、共通信号によって他のモジュールと通信可能な通信部を有している。この光源モジュール15の通信部は、照明機能を実行するPLDやマイコンなどに通信プログラムを実装するものとしてもよい。上記のような構成からなるカメラ装置10は、例えば、制御装置2による撮像指令に基づいて、プリント基板CBを撮像して、画像処理を実行した画像データを制御装置2に出力する。このように、カメラ装置10は、電子部品装着装置1において基板カメラとして用いられている。ここで、カメラ装置10は、撮像指令を入力すると、各モジュール11~13のPLD11a,12a,13aが所定のプログラムを実行して、被写体の撮像、画像処理、および画像データの出力を実行する。この時、各モジュール11~13のPLD11a,12a,13aは、予め設定された共通信号によって互いに通信している。より具体的には、PLD11a,12a,13aは、例えば、バス形式で接続され、所定の転送速度により同期または非同期のシリアル通信を行う。このような構成とすることで、種々のモジュールを選択的に連結してカメラ装置を構成しても、各モジュールの間での通信を可能としている。さらに、画像処理モジュール12は、カメラ装置10の電源がオンになると、連結される撮像モジュール11のメモリ部11bに記憶されたハードウェア情報を入力する。これにより、画像処理モジュール12は、撮像モジュール11の構成に係るハードウェア情報に応じて、所定の画像転送速度で画像データを入力し、所定の画素数に対応した画像処理を実行する。同様に、画像処理モジュール12は、連結されている外部通信モジュール13のメモリ部13bに記憶されているハードウェア情報を入力する。これにより、画像処理モジュール12は、外部通信モジュール13の構成に係るハードウェア情報に応じて、画像処理を実行した画像データを外部通信モジュール13に転送する。システム構築装置20の構成続いて、システム構築装置20の構成について、図3~図5を参照して説明する。システム構築装置20は、カメラ装置10の用途などに応じて機能を実装するものであり、複数のモジュールにより構成されるカメラ装置10を対象とした専用ソフトウェアを含んでいる。このシステム構築装置20は、図3に示すように、通信部21と、プログラム実装部22と、情報取得部23と、表示部24と、シミュレーション部25と、判定部26を備える。通信部21は、カメラ装置10を構成する外部通信モジュール13と通信可能に接続される。この通信部21は、本実施形態においては、外部通信モジュール13が外部機器である制御装置2と通信する通信手段を用いて、カメラ装置10と通信接続されている。つまり、選択された外部通信モジュール13が有するUSBなどのデータ伝送路により、カメラ装置10と通信部21が接続される。プログラム実装部22は、表示部24において表示されたプログラムを、各モジュール11~13のPLD11a,12a,13aに通信部21を介して転送する。より具体的には、プログラム実装部22は、撮像モジュール11に対してFPGAなどの集積回路であるPLD11aにプログラムに相当する論理回路を定義する。これにより、PLD11aは、所定の機能を発揮するように駆動することが可能となる。プログラム実装部22は、その他のPLD12a,13aについても同様に、通信部を介してプログラムを転送して論理回路を定義する。また、本実施形態においては、各モジュール11~13がPLD11a,12a,13aを有する構成としたが、その他に例えば各モジュール11~13の一部または全部がPLDに代えてマイコンを有することもある。このような場合に、プログラム実装部22は、マイコンに収容された不揮発性メモリにプログラムを記憶させることにより、当該マイコンが所定の機能を発揮するようにしている。情報取得部23は、カメラ装置10を構成するように選択された各モジュール11~13のモジュール情報を取得する。情報取得部23が取得するモジュール情報には、各モジュール11~13にそれぞれ割り当てられた機能、および各モジュール11~13の構成に係るハードウェア情報が含まれている。そのため、情報取得部23は、通信部21を介して各モジュール11~13の各メモリ部11b,12b,13bに記憶されたハードウェア情報を取得する。表示部24は、図4に示すように、情報取得部23により取得した各モジュール11~13のモジュール情報に基づいて、各PLD11a,12a,13aに実装可能なプログラムを選択可能に表示する。この表示部24は、各PLD11a,12a,13aに実装可能なプログラムをアイコンとして表示するプログラム表示領域Fpと、選択されたプログラムのアイコンを表示する選択表示領域Fsと、を有している。プログラム表示領域Fpには、実装可能なプログラムとして、カメラ装置10を構成するモジュールのデバイスドライバや、画像処理モジュール12が実行可能な種々の画像処理が含まれている。プログラム表示領域Fpに表示されるデバイスドライバは、情報取得部23により取得したハードウェア情報に基づいてモジュールに対応したデバイスドライバであり、当該モジュールが有するハードウェアを駆動させるプログラムである。より具体的には、撮像モジュール11にどのような種類のイメージセンサ11cが設けられているのかをハードウェア情報として取得し、このイメージセンサ11cを動作させるために必要となるデバイスドライバを表示する。また、プログラム表示領域Fpにおいては、デバイスドライバのプログラム名を直接的に表示してもよいが、本実施形態においては、選択可能なデバイスドライバに対応するデバイスイメージセンサ11c、インターフェイスIC13cを表示するようにしている。また、プログラム表示領域Fpに表示される画像処理は、カメラ装置10を構成する複数のモジュールに画像データに対して画像処理を実行する画像処理モジュール12が含まれる場合に表示される。本実施形態では、この画像処理モジュール12が含まれるため、表示部24は、プログラムとして実行可能な画像処理をプログラム表示領域Fpに表示している。このようなデバイスドライバや画像処理は、それぞれの機能または処理を記号化されたアイコンとして表示される。そして、このアイコンをプログラム表示領域Fpから選択表示領域Fsにドラッグアンドドロップすることで、プログラム実装部22は、当該アイコンに対応するデバイスドライバまたは画像処理が選択されたものとみなす。反対に、アイコンを選択表示領域Fsからプログラム表示領域Fpにドラッグアンドドロップ、または選択表示領域Fsのアイコンを削除することで、プログラム実装部22は、当該アイコンに対応するデバイスドライバまたは画像処理が選択解除されたものとみなす。ここで、複数の画像処理が選択された場合には、選択表示領域Fsにおいて、選択された画像処理を指定された実行順に表示している。ここで、画像処理モジュール12は、画像データに対して複数の画像処理を所定の順序で実行することがある。これは、同様の画像処理を実行する場合においても、その実行順によっては結果が異なるためである。例えば、図5aに示すように、ある画像データに対して、ノイズキャンセル処理を実行した後に、二値化処理を実行すると、最右図のような画像データが得られる。一方で、図5bに示すように、同じ画像データに対して、二値化処理を実行した後に、ノイズキャンセル処理を実行すると、最右図のような画像データが得られる。このように、図5a,bの最右図に示されるように、それぞれ画像処理で得られる結果が異なることから、選択表示領域Fsでは、選択された複数の画像処理を実行順に表示することで、その実行順を目視可能にしている。シミュレーション部25は、選択表示領域Fsに一以上の画像処理が選択された場合に、当該画像処理を指定された実行順で実行したものと仮定して、実行後の画像データをシミュレーションする。これは、現在選択されている画像処理および実行順が、画像処理モジュール12に要求される機能として妥当であるかを判断することを目的としている。また、シミュレーション部25は、仮想的な画像処理の結果を得るためのものであり、画像処理を実行する対象の画像データとしては、連結されているカメラ装置10が撮像したものでもよいし、予め用意されているサンプルとしてもよい。判定部26は、モジュールに対して選択されたプログラムについて、取得したモジュール情報に基づいて適正判定する。表示部24には各モジュール11~13のPLD11a,12a,13aに実装可能なプログラムを選択可能に表示しているが、PLD11a,12a,13aに論理回路を定義する前に、判定部26によりプログラムの確認を行う。つまり、判定部26は、モジュールに対して不可欠となるプログラムがある場合に、そのプログラムが選択されているか、モジュールに設けられたセンサやICに対応したドライバが選択されているかなどを判定するものである。システム構築装置20によるプログラムの実装システム構築装置20によるカメラ装置10のシステム構築の流れについて、図6を参照して説明する。ここでは、上記のような構成からなるカメラ装置10を対象にした場合を例示する。つまり、カメラ装置10が3つの異なる機能を有するモジュール11~13から構成され、各モジュール11~13がプログラムを実装可能なPLD11a,12a,13aをそれぞれ有するものである。先ず、準備工程S10として、カメラ装置10とシステム構築装置20を接続し、通信準備を行うS101。ここでは、カメラ装置10の外部通信モジュール13と、システム構築装置20の通信部21が接続される。そして、システム構築装置20は、外部通信モジュール13が制御装置2と通信する通信手段によって、カメラ装置10と通信する。次に、情報取得部23が通信部21を介して、各モジュール11~13のモジュール情報を取得するS102。これにより、カメラ装置10を構成するモジュールの数量、およびモジュール毎の機能およびハードウェア情報がシステム構築装置20に入力される。表示部24は、取得したカメラ装置10に係るモジュール情報に基づいて、図4に示すように、各PLD11a,12a,13aに実装可能なプログラムをアイコンとしてプログラム表示領域Fpに表示する。ここで表示されているプログラムは、上述したように、モジュールのデバイスドライや画像処理が含まれている。そして、これらのアイコンのうち実装するものをプログラム表示領域Fpから選択表示領域Fsにドラッグアンドドロップして、プログラムの選択を行うS20。反対に、アイコンを選択表示領域Fsからプログラム表示領域Fpにドラッグアンドドロップ、または選択表示領域Fsのアイコンを削除することで、プログラムの選択解除が可能となっている。一通りのプログラム選択を終えたら、選択された画像処理についてシミュレーションを行うS30。表示部24による画面図4参照において、処理確認ボタンを押下すると、シミュレーション部25は、予め用意されているサンプルの画像データに対して画像処理を指定された実行順で実行する。ここでは、サンプルの画像データとしているが、カメラ装置10が実際に撮像した画像データとしてもよい。そして、シミュレーション結果として得られた画像データに基づいて、現在選択されている画像処理や実行順が妥当であるかを判断するS40。シミュレーションの結果により、現在の選択が妥当でないと判断した場合にはS40:No、S20に戻り画像処理の選択や実行順を調整する。そして、必要であれば再度シミュレーションを行うようにしてもよいS30。これらを繰り返すことにより、現在選択されている画像処理および実行順が妥当であると判断した場合にはS40:Yes、カメラ装置10を構成する全てのモジュールに対して選択されたプログラムが妥当であるかを判定するS50。これは、表示部24による画面図4参照において、決定ボタンを押下すると、判定部26が判定処理を実行するものである。そして、判定部26は、選択表示領域Fsに表示されているアイコンに対応するプログラムが適正であるかを、取得したモジュール情報に基づいて判定する。判定の結果により、現在選択されているプログラムが適正でない場合にはS50:No、図示しないエラーを表示してプログラムの再選択を促し、S20に戻りデバイスドライバまたは画像処理を選択する。一方で、現在選択されているプログラムが適正である場合にはS50:Yes、プログラム実装部22が通信部21を介してプログラムの実装を行うS60。つまり、プログラム実装部22は、表示部24の選択表示領域Fsに表示されたアイコンに対応するプログラムを、各モジュール11~13のPLD11a,12a,13aに通信部21を介して転送する。これにより、PLD11a,12a,13aは、プログラムに相当する論理回路が定義され、所定の機能を発揮するように駆動可能となる。このようにして、システム構築装置20によるプログラムの実装が完了し、カメラ装置10としてのシステムが構築される。システム構築装置20による効果上述したシステム構築装置20は、異なる機能を有する複数のモジュールを連結して構成されるカメラ装置10を対象としてシステム構築を行うものとした。このカメラ装置10は、複数のモジュールを要求に応じて連結することが可能なので、種々の用途に容易に適用することができるものである。そして、システム構築装置20は、プログラム実装部22がモジュール11~13のPLD11a,12a,13aに実装するプログラムを転送する構成としている。これにより、カメラ装置10は、実装されたプログラムによって各モジュールにそれぞれ割り当てられた機能を発揮するようにシステムが構築することができる。よって、従来と比較して設計上の自由度が高く、要求される機能や性能に対応可能なカメラ装置を構成することができる。また、複数のモジュール11~15は、モジュール単位での設計や検査が可能であり、既存のモジュールを流用することができる。これにより、専用のカメラ装置を製作する場合と比較して、開発工数を大幅に削減することができる。また、表示部24がモジュール情報に基づいてPLD11a,12a,13aに実装可能なプログラムを選択可能に表示するものとしている。ここで、カメラ装置10は、用途などに応じて複数のモジュールを選択して構成されるため、その組み合わせが決定するまでは、どのようなハードウェア構成となるか特定されない。そこで、先ず、カメラ装置10を構成する所定のモジュールの組み合わせが決定した場合に、情報取得部23により各モジュールがどのような機能を有するのかなどのモジュール情報を取得する。モジュール情報の取得方法については、システム構築装置20に連結されたカメラ装置10と通信することにより取得してもよいし、ユーザーにより決定したモジュールの組み合わせを入力されることにより取得してもよい。そして、表示部24がこのモジュール情報に基づいてプログラムを表示することにより、プログラムの選択が補助されて容易となる。よって、カメラ装置10のシステム構築を簡易化することができる。さらに、各モジュール11~13に設けられたPLD11a,12a,13aに実装可能なプログラムは、表示部24にアイコンとして表示される。そして、このアイコンをプログラム表示領域Fpから選択表示領域Fsにドラッグアンドドロップすることで、容易にプログラムの選択をすることができる。このような構成においては、反対に選択表示領域Fsからプログラム表示領域Fpにドラッグアンドドロップすることで、プログラムの選択を解除することができる。このように、ドラッグアンドドロップのような簡易なマウスジェスチャーにプログラムの選択または解除を行う機能を割り当てることにより、カメラ装置10の各モジュール11~13へのプログラムの実装を簡易化することができる。表示部24は、ハードウェア情報に基づいて、モジュールに対応したデバイスドライバをプログラムとしてプログラム表示領域Fpに表示するものとしている。カメラ装置10を構成する各モジュール11~13には、そのモジュールが有するハードウェアを駆動させることにより、割り当てられた機能を実行するものがある。そのため、表示部24がモジュールに対応したデバイスドライバを表示することにより、デバイスドライバの選択を促すようにアシストすることができる。これらにより、システム構築装置20は、必要に応じたプログラムの選択を簡易化することができる。また、表示部24は、画像処理モジュール12が実行可能な画像処理をプログラム表示領域Fpに表示するものとしている。カメラ装置10は、画像処理モジュール12が含まれるように構成されることがある。そこで、画像処理モジュール12が実行可能な画像処理をプログラム表示領域Fpに表示することで、画像処理の選択を簡易化することができる。また、選択表示領域Fsでは、選択された複数の画像処理を実行順に表示するようにしている。これにより、画像処理の実行順を目視で確認することができるので、画像処理の順序を誤って指定することを防止できる。また、システム構築装置20は、シミュレーション部25により選択されている画像処理を指定された実行順で実行したものとして、シミュレーションできるものとしている。これにより、現在のところ選択されている画像処理が、画像処理モジュール12に要求される画像処理として妥当であるかを判断することができる。これにより、適切な画像処理を容易に選択することができるので、カメラ装置10のシステム構築に要する工数を低減できる。さらに、判定部26により選択されたプログラムの適正を判定するものとしている。これにより、選択されたプログラムが実装される前に適正を判定することができる。これにより、誤ったプログラムを選択することを確実に防止することができる。さらに、通信部21は、外部通信モジュール13が外部機器と通信する通信手段によって、カメラ装置10と通信可能に接続されるものとしている。ここで、カメラ装置10の外部通信モジュール13は、種々の通信プロトコルや通信規格などに準拠するとともに、同軸ケーブルやUSBなどのデータ伝送路に対応した通信手段を有している。そこで、外部通信モジュール13の通信手段によって通信部21がカメラ装置10と通信する構成とすることで、外部通信モジュール13に対して専用の通信手段を設ける必要がなくなりコストを低減できる。<実施形態の第一変形態様>実施形態の第一変形態様について、図7を参照して説明する。本実施形態では、システム構築装置20の対象としたカメラ装置10は、3つの異なる機能を有するモジュール11~13から構成され、各モジュールがプログラムを実装可能なPLD11a,12a,13aをそれぞれ有するものとした。これに対して、システム構築装置20は、上記の組み合わせとは異なるモジュールにより構成さえるカメラ装置についてもシステム構築の対象とすることが可能である。例えば、カメラ装置110は、図7に示すように、異なる機能を有する3以上のモジュールのうち、撮像モジュール111および外部通信モジュール113を一つずつ選択し、着脱可能に連結して構成されるようにしてもよい。撮像モジュール111は、被写体を撮像して画像データを取得するモジュールであって、図7に示すように、PLD111aと、メモリ部11bと、イメージセンサ11cを有している。このPLD111aには、カメラ装置110の撮像モジュール111として必要な機能を有するように、システム構築装置20によってプログラムが実装される。また、カメラ装置110全体で唯一のPLD111aには、イメージセンサ11cを動作させるデバイスドライバの他に、連結される外部通信モジュール113と通信を行う通信プログラム、用途に応じた画像処理プログラムなどが実装される。この画像処理プログラムは、本実施形態における画像処理モジュール12のPLD12aに実装されたものと同様であり、イメージセンサ11cにより取得した画像データに画像処理を実行するものである。このように、撮像モジュール111は、PLD111aに実装された画像処理プログラムにより、画像処理モジュールと同等または簡易な画像処理機能を有する構成としてもよい。外部通信モジュール113は、外部機器である制御装置2と通信するモジュールであって、図7に示すように、メモリ部13bと、インターフェイスIC13cと、通信用IC113dを有している。通信用IC113dは、各モジュールの間で共通化された共通信号によって互いに通信可能としている。そして、この通信用IC113dは、撮像モジュール111のPLD111aとメモリ部13bの間、およびPLD111aとインターフェイスIC13cの間に介在することにより、制御装置2とPLD111aの間での撮像指令や画像データの通信を可能としている。ここで、インターフェイスIC13cのデバイスドライバは、撮像モジュール111のPLD111aに実装されている。これにより、インターフェイスIC13cは、通信用IC113dを介して撮像モジュール111のPLD111aにより動作を制御されることになる。このようにカメラ装置110は、外部通信モジュール113にPLDなどの回路素子を有さない構成とし、撮像モジュール111により画像処理や外部通信などを統括して制御している。本変形態様では、システム構築装置20は、上述したような構成のカメラ装置110を対象としている。このような場合に、システム構築装置20は、準備工程S10において、カメラ装置110が2つのモジュールから構成され、モジュール毎の機能およびハードウェア情報を取得する。そして、システム構築装置20は、ハードウェア情報に基づいて、PLD111aに実装可能なプログラムを表示部24に表示する。その後に、必要に応じて画像処理のシミュレーションやプログラムの適正を判定して、PLD111aに通信部を介してプログラムを転送する。これにより、PLD111aは、プログラムに相当する論理回路が定義され、所定の機能を発揮するように駆動可能となる。このようにして、システム構築装置20によるプログラムの実装が完了し、カメラ装置110としてのシステムが構築される。上述したように、カメラ装置を構成する複数のモジュールのうち少なくとも一以上のモジュールにはプログラムを実装可能な回路素子が設けられていれば、システム構築装置20はそのカメラ装置を対象としてシステム構築が可能である。<実施形態の第二変形態様>実施形態の第二変形態様について、図8を参照して説明する。本実施形態では、システム構築装置20の対象としたカメラ装置10は、3つの異なる機能を有するモジュール11~13を連結した状態で、各モジュール11~13に設けられたPLD11a,12a,13aにプログラムを実装されて、システムを構築されるものとした。これに対して、システム構築装置20は、連結されていない個々のモジュールを対象として、当該モジュールに設けられたPLDなどの回路素子にプログラムを実装する構成としてもよい。このような構成では、システム構築装置20は、先ずシステム構築装置20は、図8に示すように、アダプタ51~53を介して各モジュール11~13と連結され、通信可能な状態とされる。そして、PLD11a,12a,13aにプログラムが実装され、その後に各モジュール11~13を着脱可能に連結することによりカメラ装置10が構成される。このようにして、システム構築装置20は、各モジュール11~13が連結されていないカメラ装置10においても、当該カメラ装置10を対象としてシステムを構築することができる。"