(57)【特許請求の範囲】
【請求項１】
材料アプリケーターにおいて、
粘性材料を回路基板上に堆積させる印刷装置と、
前記印刷装置に接続され複数のシステム構成要素を制御する制御装置とを具備し、
前記システム構成要素が前記印刷装置を作動させるオペレーティングシステム構成要素と、
前記オペレーティングシステム構成要素と、該オペレーティングシステム構成要素の能力を拡張する少なくとも１つのプラグインアプリケーションとの間でプリンター作動データを交換するリモートインターフェース構成要素とを含み、該材料アプリケーターは、粘性材料を回路基板上に堆積させるステンシルプリンターおよび前記粘性材料を前記回路基板上に堆積させる吐出機のうちの一方を含み、
前記制御装置は、前記少なくとも１つのプラグインアプリケーションから受信される前記プリンター作動データの一部分を用いて、前記材料アプリケーターの少なくとも１つの機能の動作を管理し、
前記制御装置は、更に、前記オペレーティングシステム構成要素と前記少なくとも１つのプラグインアプリケーションとの間の前記プリンター作動データの交換をアービトレートする材料アプリケーター。
【請求項２】
前記リモートインターフェース構成要素は、リモートプロシージャコール（ＲＰＣ）を用いて、前記プリンター作動データを前記少なくとも１つのプラグインアプリケーションと交換するように更に構成されている請求項１に記載の材料アプリケーター。
【請求項３】
前記リモートインターフェース構成要素は、複数の所定のプリンター機能を備える請求項２に記載の材料アプリケーター。
【請求項４】
前記複数の所定のプリンター機能は、プリンター始動機能、プリンター停止機能、プリンター一時停止機能、プリンター構成機能およびプリンターステータス機能のうちの少なくとも１つを含む請求項３に記載の材料アプリケーター。
【請求項５】
前記制御装置に作動的に接続されるとともに通信ネットワークに接続されるように構成されたネットワークインターフェースを更に備える請求項１に記載の材料アプリケーター。
【請求項６】
前記少なくとも１つのプラグインアプリケーションは、前記通信ネットワークに接続された少なくとも１つのリモートコンピューター上に存在する請求項５に記載の材料アプリケーター。
【請求項７】
前記複数のシステム構成要素は、前記少なくとも１つのプラグインアプリケーションに関連付けられたライセンスキーを処理するライセンス構成要素を更に含む請求項１に記載の材料アプリケーター。
【請求項８】
前記制御装置は、前記リモートインターフェース構成要素から独立して前記オペレーティングシステム構成要素を実行するように更に構成されている請求項１に記載の材料アプリケーター。
【請求項９】
材料アプリケーターを作動させる方法において、
前記材料アプリケーターに作動的に接続された通信ネットワークを介して、前記材料アプリケーターと少なくとも１つのコンピューターとの間に少なくとも１つの仮想接続を確立することと、
前記材料アプリケーターと、前記少なくとも１つのコンピューター上で実行されるように構成された少なくとも１つのプラグインアプリケーションとの間で、前記少なくとも１つの仮想接続を通じてリアルタイムでプリンター作動データを交換することとを含み、
前記材料アプリケーターは、粘性材料を回路基板上に堆積させるステンシルプリンターおよび前記粘性材料を前記回路基板上に堆積させる吐出機のうちの一方を含んでおり、
該方法は、更に、前記少なくとも１つのプラグインアプリケーションから受信される前記プリンター作動データの一部分を用いて、前記材料アプリケーターの少なくとも１つの機能の動作を管理することと、
オペレーティングシステム構成要素と前記少なくとも１つのプラグインアプリケーションとの間の前記プリンター作動データの交換をアービトレートすることとを更に含む材料アプリケーターを作動させる方法。
【請求項１０】
前記少なくとも１つの機能は、プリンター始動機能、プリンター停止機能、プリンター一時停止機能、プリンター構成機能およびプリンターステータス機能のうちの少なくとも１つを含む請求項９に記載の方法。
【請求項１１】
前記少なくとも１つのプラグインアプリケーションは、少なくとも２つのプラグインアプリケーションを含み、該方法は、前記材料アプリケーターと前記少なくとも２つのプラグインアプリケーションのそれぞれとの間で前記プリンター作動データの前記交換をアービトレートすることを更に含む請求項９に記載の方法。
【請求項１２】
アービトレートすることは、前記材料アプリケーターの前記少なくとも１つの機能の前記動作の前記管理を前記少なくとも２つのプラグインアプリケーションのうちの１つに制限することを含む請求項１１に記載の方法。
【請求項１３】
前記少なくとも１つのプラグインアプリケーションによるプリンター作動データの要求の頻度に基づいて、前記材料アプリケーターと前記少なくとも１つのプラグインアプリケーションとの間で交換される前記プリンター作動データの量を限定することを更に含む請求項９に記載の方法。
【請求項１４】
前記プリンター作動データを交換することは、少なくとも１つのリモートプロシージャコール（ＲＰＣ）を実行することを含む請求項９に記載の方法。
【請求項１５】
前記少なくとも１つのプラグインアプリケーションに関連付けられたライセンスキーを処理することを更に含む請求項９に記載の方法。
【請求項１６】
前記少なくとも１つのプラグインアプリケーションのそれぞれ１つとの前記プリンター作動データの前記交換を前記ライセンスキーに基づいて限定することを更に含む請求項１５に記載の方法。
【請求項１７】
前記少なくとも１つのプラグインアプリケーションから受信される前記プリンター作動データの一部分に基づいて、前記材料アプリケーターの少なくとも１つの作動パラメーターを調整することを更に含む請求項９に記載の方法。
【請求項１８】
前記材料アプリケーターの能力を拡張する一組の所定のプリンター機能を前記少なくとも１つのプラグインアプリケーションに提供することを更に含む請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
様々な実施の形態は、包括的には、産業制御システムに関し、より詳細には、ステンシルプリンターまたは吐出機のオペレーティングシステムの能力を拡張するシステムおよび方法に関する。
【背景技術】
【０００２】
回路基板を製造するための１つの従来の方法は、電子部品を、その後において回路基板上に配置することができるように、その基板の表面上にはんだペーストまたは他の接着剤をスクリーン印刷することを伴う。このスクリーン印刷は、ステンシルプリンターによって行うことができる。産業オートメーション技術の進歩によって、ステンシルプリンターの機械制御能力をますます自動化することが可能になっている。これらの能力の多くは、ステンシルプリンターのソフトウェアベースのオペレーティングシステムによって容易にすることができ、動き制御、入力／出力、データベースサポート、視覚能力、診断および統計的プロセス制御（ＳＰＣ）能力を含むことができる。そのような能力は、操作の使い易さおよび共通性を提供するように設計されるとともに、ワシントン州レドモンドにあるMicrosoft社によるWindows（商標）等の標準的なパーソナルコンピューターベースのオペレーティングシステムと適合することができるユーザーインターフェースも含むことができる。
【０００３】
ステンシルプリンターの標準的な能力は、幾つかの場合には、オプションとして、特定の動作要件または顧客要求を満たすように、オペレーティングシステムに対する変更を通じて拡張することができる。そのような変更は、ステンシルプリンターの適切な動作を確保するとともに（例えば、保証目的、修理目的およびサポート目的のための）製造者の製品の品質制御を保証するために、通常、その機械の製造者によって実施され、試験される。オペレーティングシステムに対する幾つかの変更は、改良または追加の特徴を得るための顧客固有の要求に応じて行われる場合があるので、特に、変更が１人または非常に少数の顧客の利益にしかならない場合には、それらの変更を実施することは、製造者にとって多くの費用および時間を要する可能性がある。さらに、そのような顧客は、要求された変更を製造者が実施するのを待っている間、遅延または他の不便さを被る場合がある。
【発明の概要】
【０００４】
１つの実施形態によれば、材料アプリケーターが、粘性材料を回路基板上に堆積させる印刷装置と、前記印刷装置に接続された制御装置とを備える。前記制御装置は、前記印刷装置を作動させるオペレーティングシステム構成要素と、前記オペレーティングシステム構成要素と、少なくとも１つのプラグインアプリケーションとの間でプリンター作動データを交換するリモートインターフェース構成要素と、を含む複数のシステム構成要素を制御するように構成される。前記プラグインアプリケーションは前記オペレーティングシステム構成要素の能力を拡張するように構成される。前記材料アプリケーターは、粘性材料を回路基板上に堆積させるステンシルプリンターおよび前記粘性材料を前記回路基板上に堆積させる吐出機のうちの一方を含む。
【０００５】
１つの実施形態では、前記リモートインターフェース構成要素は、リモートプロシージャコール（ＲＰＣ）を用いて、前記プリンター作動データを前記少なくとも１つのプラグインアプリケーションと交換するように更に構成することができる。別の実施形態では、前記リモートインターフェース構成要素は、複数の所定のプリンター機能を備えることができる。更に別の実施形態では、前記複数の所定のプリンター機能は、プリンター始動機能、プリンター停止機能、プリンター一時停止機能、プリンター構成機能およびプリンターステータス機能のうちの少なくとも１つを含むことができる。
【０００６】
１つの実施形態では、前記材料アプリケーターは、前記制御装置に作動的に接続されるとともに通信ネットワークに接続されるように構成されたネットワークインターフェースを備えることができる。別の実施形態では、前記少なくとも１つのプラグインアプリケーションは、前記通信ネットワークに接続された少なくとも１つのリモートコンピューター上に存在することができる。更に別の実施形態では、前記材料アプリケーターは、前記オペレーティングシステム構成要素と前記少なくとも１つのリモートコンピューターとの間の前記プリンター作動データの交換をアービトレートする手段を更に備えることができる。
【０００７】
１つの実施形態では、前記複数のシステム構成要素は、前記少なくとも１つのプラグインアプリケーションに関連付けられたライセンスキーを処理するライセンス構成要素を更に含むことができる。
【０００８】
１つの実施形態では、前記制御装置は、前記リモートインターフェース構成要素から独立して前記オペレーティングシステム構成要素を実行するように更に構成することができる。
【０００９】
１つの実施形態によれば、材料アプリケーターを作動させる方法は、通信ネットワークを介して、前記材料アプリケーターと少なくとも１つのコンピューターとの間に少なくとも１つの仮想接続を確立することを含む。前記通信ネットワークは、前記材料アプリケーターに作動的に接続される。前記材料アプリケーターと、少なくとも１つのプラグインアプリケーションとの間で、前記少なくとも１つの仮想接続を通じてリアルタイムでプリンター作動データを交換することを更に含む。前記プラグインアプリケーションは、前記少なくとも１つのコンピューター上で実行されるように構成される。前記材料アプリケーターは、粘性材料を回路基板上に堆積させるステンシルプリンターおよび前記粘性材料を前記回路基板上に堆積させる吐出機のうちの一方を含む。
【００１０】
１つの実施形態では、本方法は、前記少なくとも１つのプラグインアプリケーションから受信される前記プリンター作動データの一部分を用いて、前記材料アプリケーターの少なくとも１つの機能の動作を管理することを含むことができる。別の実施形態では、前記少なくとも１つの機能は、プリンター始動機能、プリンター停止機能、プリンター一時停止機能、プリンター構成機能およびプリンターステータス機能のうちの少なくとも１つを含むことができる。更に別の実施形態では、前記少なくとも１つのプラグインアプリケーションは、少なくとも２つのプラグインアプリケーションを含むことができる。
【００１１】
１つの実施形態では、本方法は、前記材料アプリケーターと前記少なくとも２つのプラグインアプリケーションのそれぞれとの間で前記プリンター作動データの前記交換をアービトレートすることを含むことができる。別の実施形態では、アービトレートすることは、前記材料アプリケーターの前記少なくとも１つの機能の前記動作の前記管理を前記少なくとも２つのプラグインアプリケーションのうちの１つに制限することを含むことができる。
【００１２】
１つの実施形態では、本方法は、前記少なくとも１つのプラグインアプリケーションによるプリンター作動データの要求の頻度に基づいて、前記材料アプリケーターと前記少なくとも１つのプラグインアプリケーションとの間で交換される前記プリンター作動データの量を限定することを含むことができる。別の実施形態では、前記プリンター作動データを交換することは、少なくとも１つのリモートプロシージャコール（ＲＰＣ）を実行することを含むことができる。
【００１３】
１つの実施形態では、本方法は、前記少なくとも１つのプラグインアプリケーションに関連付けられたライセンスキーを処理することを含むことができる。別の実施形態では、本方法は、前記少なくとも１つのプラグインアプリケーションのそれぞれ１つとの前記プリンター作動データの前記交換を前記ライセンスキーに基づいて限定することを含むことができる。
【００１４】
１つの実施形態では、本方法は、前記少なくとも１つのプラグインアプリケーションから受信される前記プリンター作動データの一部分に基づいて、前記材料アプリケーターの少なくとも１つの作動パラメーターを調整することを含むことができる。別の実施形態では、本方法は、一組の所定のプリンター機能を前記少なくとも１つのプラグインアプリケーションに提供することを含むことができる。前記所定のプリンター機能は、前記材料アプリケーターの能力を拡張するように構成することができる。
【００１５】
添付図面は、一律の縮尺で描かれているようには意図されていない。図面において、様々な図に示された各同一の構成要素またはほぼ同一の構成要素は、同様の数字によって表される。明瞭にするために、あらゆる図面において、あらゆる構成要素にラベルが付けられているとは限らない。
【図面の簡単な説明】
【００１６】
【図１】１つの実施形態によるステンシルプリンターシステムの一例のブロック図である。
【図２】１つの実施形態による図１のシステムの一部分のブロック図である。
【図３】１つの実施形態によるステンシルプリンターを作動させる方法の一例の流れ図である。
【発明を実施するための形態】
【００１７】
実施形態は、それらの用途において、以下の説明または図面に示す構成要素の構成および配置の詳細に限定されるものではない。幾つかの実施形態は、ピックアンドプレース機または吐出機を含む、ステンシルプリンター以外の機械とともに用いることができ、他の実施形態は、様々な方法で実施または実行することが可能である。また、本明細書において用いられる用語および術語は、説明のためのものであり、限定とみなされるべきではない。本明細書における「含む」、「備える」または「有する」、「収容する」、「伴う」およびそれらの変形体の使用は、以下に列挙する項目およびそれらの均等物並びに追加の項目を包含ことが意図されている。
【００１８】
実施形態はステンシルプリンターおよび吐出機を含む様々な材料アプリケーターにおいて実施することができること、並びに本明細書におけるステンシルプリンターを含む実施形態への参照はいずれも、吐出機を含む実施形態にも等しく当てはまることが理解されよう。
【００１９】
上記で論述したように、或る特定の機械の能力は、ステンシルプリンターのオペレーティングシステムによって直接実施される。これらの能力のうちの幾つか（例えば、或る特定の制御機能および監視機能）は、Ｗｉｎｄｏｗｓベースのグラフィカルユーザーインターフェース（ＧＵＩ）等のユーザーインターフェースを通じてオペレーティングシステムによって容易にすることができる。少なくとも部分的にはオペレーティングシステムが実行することができる機械の能力の幾つかの例を得るには、読み手は、Marszalkowskiの米国特許第７０１３８０２号に誘導される。この米国特許は、引用することによって、その全内容が本明細書の一部をなす。
【００２０】
オペレーティングシステムは、通常、機械の製造者によって設計および構築される。プリンターの適切な動作の継続を確保するために、製造者は、他者（例えば、ユーザーまたは顧客）が、機能の変更またはオペレーティングシステムソフトウェアへの機能の追加等による或る特定の方法で、オペレーティングシステムを直接変更することを制限または禁止することができる。然しながら、時に、顧客は、オペレーティングシステムによって提供されない、かつ／または、（例えば、リモートロケーションから機械に接続されたオペレーター端末またはＰＣによって）リモートで入手可能でないプリンターのデータおよび／または動作制御にアクセスしたい場合がある。追加の特徴を求める顧客の要求に応じて、製造者は、顧客の利益のためにオペレーティングシステムの変更を決定する場合がある。そのような変更が、多くの顧客への広い適用性を有する場合、変更を行い、変更されたオペレーティングシステムを全ての顧客に配布することは、製造者に利益を与えることができる。然しながら、それらの変更の適用性が限られており、それらの変更が１人または少数の顧客にしか利益を与える可能性がない場合、変更を実施するために製造者によって必要とされる時間および／またはコストの投資は、あまりにも大きいので、ビジネスの観点から正当化することができない場合がある。そのような状況では、顧客の要求は、拒否または延期される場合があり、場合によっては、その製品および／または製造者に対する或る程度の顧客の不満を生み出すことがある。
【００２１】
１つの態様によれば、幾つかの場合には、ユーザーがオペレーティングシステム自体を変更することなくオペレーティングシステムの能力を拡張することを可能にすることが望ましいことが理解されている。例えば、ユーザーは、ユーザー構成可能なアラームおよび機械ステータスの更新を含む、機械動作に関する或る特定のデータを受信したい場合がある。さらに、ユーザーは、機械または工場制御局にローカルでないオペレーター端末（例えば、ＰＣ）（例えば、ユーザーは、機械とは異なる設備にいる）または複数の異なるロケーション（例えば、製造プラント内の異なるロケーション）から停止動作または一時停止動作等のプリンターのリモート制御を起動したい場合がある。顧客が実施する拡張を容易にするようにオペレーティングシステムを設計することによって、依然として、ユーザーが、機械の動作に関連付けられた一組の特徴を、個々人のニーズに適合させるとともに、製造者の介入があったとしてもあまり介入することなくカスタマイズすることに可能にしつつ、オペレーティングシステムの完全性を維持することができる。
【００２２】
図１は、１つの実施形態による拡張可能ステンシル印刷システム１００の一例のブロック図である。ステンシルプリンター１１０または吐出機等の他の材料アプリケーターは、通信ネットワーク１２０（例えば、イントラネットまたはインターネット）に作動的に接続されている。通信ネットワーク１２０は、有線および／または無線の構成要素を含むことができる。幾つかの実施形態では、ステンシルプリンター以外のタイプの産業機械を用いることができる。パーソナルコンピューター（ＰＣ）１３０を含む１または複数のオペレーター端末も、通信ネットワーク１２０に作動的に接続することができる。
【００２３】
或る特定の実施形態では、材料アプリケーターは、本開示の譲受人であるSpeedline Technologies社によって提供されるAccela（商標）またはMomentum（商標）シリーズのステンシルプリンタープラットフォーム等のステンシルプリンターを含むことができる。幾つかの実施形態では、材料アプリケーターは、同様にSpeedline Technologies社によって提供されるCamalot FX-D（商標）、XyflexPro（商標）＋またはXyflexPro（商標）DLM吐出システム等の吐出機を含むことができる。
【００２４】
様々な実施形態は、１または複数のタイプのコンピューターシステム上で実施することができる。これらのコンピューターシステムは、例えば、Intel（商標）PENTIUM（商標）タイプのプロセッサ、Motorola PowerPC（商標）、AMD Athlon（商標）またはTurion（商標）、Sun（商標）UltraSPARC（商標）、Hewlett-Packard PA-RISC（商標）プロセッサまたは他の任意のタイプのプロセッサに基づくコンピューター等の汎用コンピューターとすることができる。任意のタイプのコンピューターシステムのうちの１つまたは複数を用いることができることが理解されるべきである。さらに、システム１００の幾つかの部分は、単一のコンピューターに位置することもできるし、通信ネットワーク１２０によって相互に作動的に接続された複数のコンピューター間に分散させることもできる。
【００２５】
１つの実施形態による汎用コンピューターシステムは、説明する機能のうちの任意のものを実行するように構成される。これらの機能には、ステンシルプリンターまたは他の産業オートメーションシステムのオペレーティングシステムの能力を拡張することが含まれるが、これに限定されるものではない。システムは他の機能を実行することができることが理解されるべきである。他の機能には、ＳＰＣデータ、稼動時間、休止時間、エラー、入力／出力状態変化、印刷される基板の数、行われるワイプの数、スキージストロークの数、バーコード等の基板および機械のステータス情報をステンシルプリンターから受信すること、エラーに伴う一時停止、生産の停止、バーコード情報の送信、印刷または通過等を含む機能を実行するようにステンシルプリンターに命令することが含まれるが、これらに限定されるものではない。実施形態のうちの幾つかは、ステンシルプリンター１１０の拡張性を新たな特徴および機能の実施を含む柔軟な方法で可能にするように設計されるので、本明細書において説明する実施形態は、この開示の範囲を任意の特定の機能または一組の機能に限定することを意図するものではないことも理解されるべきである。
【００２６】
システム１００の様々な態様は、ステンシルプリンターおよび／またはＰＣ１３０のうちの１つまたは複数において実行される特殊化されたソフトウェアとして実施することができる。各ＰＣ１３０は、ディスクドライブ、集積回路メモリまたはデータの記憶および取り出しのために構成された他のデバイス若しくは媒体等の１または複数のメモリデバイス１３４に接続されたプロセッサ１３２を備えることができる。メモリ１３４は、通常、ＰＣ１３０の動作中にプログラムおよびデータを記憶するのに用いられる。ＰＣ１３０の構成要素は、１または複数のバス（例えば、同じ機械内に統合された構成要素間）および／またはネットワーク（例えば、別々の離散した機械に存在する構成要素間）を含むことができる相互接続メカニズム（図示せず）によって結合することができる。この相互接続メカニズムによって、ＰＣ１３０の様々なシステム構成要素（例えば、プロセッサ１３２、メモリ１３４等）間で通信（例えば、データ、命令）を交換することが可能になる。
【００２７】
各ＰＣ１３０は、１または複数の入力／出力（Ｉ／Ｏ）デバイス１３６、例えば、キーボード、マウス、トラックボール、マイク、タッチスクリーン、印刷装置、ディスプレイ画面１３８、スピーカー等も備える。加えて、ＰＣ１３０は、ＰＣ１３０を通信ネットワーク（通信ネットワーク１２０に加えてまたは通信ネットワーク１２０の代わりとして）に接続する１または複数のインターフェース（例えば、ネットワーク通信デバイス１４０、シリアルポートおよび／またはユニバーサルシリアルバス（ＵＳＢ））を収容することができる。
【００２８】
各ＰＣ１３０は、記憶システム１４２を更に備えることができる。この記憶システムは、プロセッサによって実行されるプログラムまたはこのプログラムによって処理される媒体上若しくは媒体内に記憶された情報を規定する信号が記憶されるコンピューター可読でかつ書き込み可能な不揮発性記録媒体を利用することができる。この媒体は、例えば、ディスクまたはフラッシュメモリとすることができる。通常、動作中、プロセッサ１３２は、データを不揮発性記録媒体から、プロセッサによる情報へのアクセスをその媒体よりも高速にすることを可能にする別のメモリ内に読み出させる。このメモリは、通常、ダイナミックランダムアクセスメモリ(DRAM)またはスタティックメモリ(SRAM)等の揮発性ランダムアクセスメモリである。このメモリは、記憶システム１４２またはメモリ１３４内に位置することができる。プロセッサ１３２は、一般に、メモリ１３４内のデータを操作し、次に、処理が完了した後、そのデータを記憶装置１４２に関連付けられた媒体にコピーする。媒体と集積回路メモリ素子との間のデータ移動を管理するための様々なメカニズムが知られており、本発明は、上記のものに限定されるものではない。実施形態は、特定のメモリシステムにも特定の記憶システムにも限定されるものではない。
【００２９】
システム１００は、特別にプログラムされた専用ハードウェア、例えば特定用途向け集積回路(ASIC)を備えることができる。態様は、ソフトウェア、ハードウェア、若しくはファームウェアまたはそれらの任意の組み合わせで実施することができる。さらに、そのような方法、動作、システム、システム要素およびそれらの構成要素は、上記で説明したコンピューターシステムの一部としてまたは独立した構成要素として実施することができる。
【００３０】
システム１００は、例として、様々な態様を実施することができる１つのタイプのコンピューターシステムとして示されているが、実施形態は、図１に示すようなシステム１００上で実施されることに限定されるものではないことが理解されるべきである。様々な態様を、図１に示すものとは異なるアーキテクチャまたは構成要素を有する１または複数のコンピューター上で実施することができる。
【００３１】
１つの実施形態では、ＰＣ１３０および／またはステンシルプリンター１１０は、高級コンピュータープログラム言語を用いてプログラム可能な汎用コンピューターシステムを含むことができる。ＰＣ１３０および／またはステンシルプリンター１１０は、代わりに、特別にプログラムされた専用ハードウェアを用いて実施することができる。ＰＣ１３０では、プロセッサ１３２は、通常、カリフォルニア州サンタクララのIntel社から入手可能なよく知られたPENTIUM（商標）クラスのプロセッサ等の市販のプロセッサであるが、多くの他のプロセッサが利用可能である。そのようなプロセッサは、通例、オペレーティングシステムを実行する。このオペレーティングシステムは、例えば、Microsoft社から入手可能なWindowsベースのオペレーティングシステム、カリフォルニア州クパティーノのApple社から入手可能なMac OS（商標）オペレーティングシステム、Linuxベースのオペレーティングシステム配布のうちの１つまたは複数（例えば、ノースカロライナ州ローリーのRed Hat社から入手可能なRed Hat（商標）Enterprise Linux（商標）オペレーティングシステム）、カリフォルニア州レッドウッドシティのOracle社から入手可能なSolaris（商標）オペレーティングシステムまたは様々なソースから入手可能なＵＮＩＸオペレーティングシステムとすることができる。実施形態は、どの特定のオペレーティングシステムにもハードウェアデバイスにも限定されるものではないことが理解されるべきである。例えば、幾つかの実施形態では、ＰＣ１３０は、ｉＯＳ（商標）オペレーティングシステムを動作させるApple社によるiPhone（商標）等の移動デバイスを含むことができる。
【００３２】
プロセッサおよびオペレーティングシステムは合わせて、アプリケーションプログラムが高級プログラム言語によって記述されたコンピュータープラットフォームを規定する。実施形態は、特定のコンピューターシステムプラットフォームにも、特定のプロセッサにも、特定のオペレーティングシステムにも、特定のネットワークにも限定されるものではないことが理解されるべきである。また、実施形態は、特定のプログラム言語にも、特定のコンピューターシステムにも限定されるものではないこと、並びに他の適切なプログラム言語およびコンピューターシステムも用いることができることが当業者には明らかであろう。
【００３３】
コンピューターシステムの１または複数の部分は、例えば、通信ネットワーク１２０に結合された１または複数のコンピューターシステムにわたって分散させることができる。これらのコンピューターシステムも、汎用コンピューターシステムとすることができる。これらのシステムは、ユーザーが、ステンシルプリンター１００に関連付けられた様々な機能およびデータを監視および制御することを可能にすることができる。例えば、様々な態様は、通信ネットワーク１２０（または他のネットワーク）に接続された１または複数のコンピューターシステム（例えば、サーバー）間に分散させることができ、１または複数のクライアントコンピューターにサービスを提供するようにまたは分散システムの一部として全体的なタスクを実行するように構成することができる。更なる例として、様々な態様は、様々な実施形態による様々な機能を実行する１または複数のサーバーシステム間に分散された構成要素を備えるクライアントサーバーシステムまたは多層システム上で実行することができる。これらの構成要素は、通信プロトコル（例えば、TCP/IP）を用いて通信ネットワーク（例えば、インターネット）を介して通信される実行可能コード、中間（例えば、ＩＬ）コードまたは解釈型（例えば、Oracle社によるJava（商標））コードとすることができる。実施形態は、どの特定の分散アーキテクチャ上での実行にも、どの特定のネットワーク上での実行にも、どの特定の通信プロトコル上での実行にも限定されるものでないことが理解されるべきである。
【００３４】
様々な実施形態は、SmallTalk、Java（商標）、C++、AdaまたはＣ＃（Ｃシャープ）等のオブジェクト指向型プログラム言語を用いてプログラムすることができる。他のオブジェクト指向型プログラム言語も用いることができる。代替的に、関数型プログラム言語、スクリプトプログラム言語および／または論理プログラム言語を用いることができる。様々な態様は、プログラムによらない環境（例えば、ブラウザープログラムのウィンドウ内で視認されるとき、グラフィカルユーザーインターフェース（ＧＵＩ）の態様をレンダリングするかまたは他の機能を実行するＨＴＭＬ、ＸＭＬまたは他のフォーマットで作成された文書）で実施することができる。様々な態様は、プログラムされた要素若しくはプログラムによらない要素またはそれらの任意の組み合わせとして実施することができる。
【００３５】
１つの実施形態では、各ＰＣ１３０は、ステンシルプリンターの製造オペレーターに有用な幾つかの特徴を提供するグラフィカルユーザーインターフェース（ＧＵＩ）１４４を提供するように構成される。これらの特徴は、特定のユーザーおよびプリンターに適合した一連の画面およびオプションを通じてプリンターをセットアップ、訓練、較正およびトラブルシューティングするための構成ツールを含むことができる。別の特徴は、プリンターの動作を制御および監視するためのデータ等の、プリンターとオペレーターとの間のデータの通信を含むことができる。ＧＵＩ１４４は、プリンターに直接接続されているかまたは通信ネットワークを通じてリモート接続されているコンピューター上で実行されるように構成することができる。
【００３６】
図２は、１つの実施形態による、図１のシステム１００の一部分の別のブロック図である。ステンシルプリンター１１０は、オペレーティングシステム２１０を備える。このオペレーティングシステムは、ステンシルプリンター内またはステンシルプリンターに関連付けられた制御システム内に統合されたプロセッサ（図示せず）が実行することができる。オペレーティングシステム２１０は、プラグインマネージャー２１２および１または複数のサービス２１４を提供する。サービス２１４は、ステンシルプリンター１１０の様々な動作および能力を制御および監視することを含む、ステンシルプリンター１１０に関連付けられたサービスを含むことができる。プラグインマネージャー２１２は、幾つかの実施形態では、以下で説明するように、オペレーター端末１３０（例えば、ＰＣ）上で動作する１または複数のプラグインモジュール２２０を管理することに関連付けられたタスクを実行するように構成することができるオペレーティングシステム２１０の論理的に別個の構成要素とすることができる。オペレーター端末１３０および関連付けられた要素、並びに通信ネットワーク１２０は、必ずしもこの実施形態の一部であるとは限らず、オペレーティングシステム２１０および／またはプラグインマネージャー２１２の様々な機能および特徴を実施することができる１つの実施形態を説明する目的で説明されている。
【００３７】
「プラグイン」という用語は、本明細書において用いられるとき、別のソフトウェアアプリケーションと直接または例えばユーザーインターフェースを通じて間接的にインターフェースすることによって上記別のソフトウェアアプリケーションに能力を追加するかまたは上記別のソフトウェアアプリケーションの既存の能力を変更するディスクリートなソフトウェア構成要素を指す。例えば、プラグインは、既存のアプリケーションがそのようなプラグインをサポートすることを条件に、サードパーティーソフトウェア開発者が、既存のアプリケーションを変更することなく、その既存のアプリケーションの機能を拡張する（例えば、新たな特徴を加え、かつ／または、既存の特徴を変更する）ソフトウェアを作成することを可能にするのに用いることができる。そのようなソフトウェアアプリケーションの例には、オペレーティングシステム２１０またはプラグインマネージャー２１２の構成要素が含まれる。
【００３８】
１つの実施形態では、上記で説明したように、オペレーティングシステム２１０は、プラグインマネージャー構成要素２１２を備える。プラグインマネージャー２１２は、この実施形態に必ずしも含まれるとは限らない、別個に開発されたプラグイン（例えば、プラグイン２２０）がプラグインマネージャー２１２と相互作用することを可能にする特定のサービスを提供する。オペレーティングシステム２１０の幾つかの部分（例えば、ステンシルプリンター１１０の動作を制御および監視するための部分）は、プラグインマネージャー２１２および任意のプラグイン２２０から独立に機能することができる。言い換えると、プラグインマネージャー２１２は、プラグイン２２０がオペレーティングシステム２１２の様々な機能を補助または変更することを可能にすることができるが、オペレーティングシステム２１２は、ステンシルプリンター１１０を動作させるのにプラグインマネージャー２１２にもプラグインにも依存しない。さらに、プラグインマネージャー２１２は、プラグイン２２０が動作するインターフェース（機能的および／またはデータ）として働く。一例では、プラグインマネージャー２１２は、プラグイン２２０がデータをオペレーティングシステム２１０と交換し、或る動作（例えば、印刷の停止または一時停止等のステンシルプリンターによる動作）またはオペレーティングシステム２１０のサービス２１４によって提供される他の機能を実行するようにオペレーティングシステム２１０にコマンドを出すことを可能にすることができる。安全のために、プラグイン２２０は、例えば、停止または一時停止したプリンターに動作を開始させることをオペレーティングシステム２１０によって禁止される場合がある。ただし、そのような安全機能は、特定のアプリケーションにおいて機器および作業員の安全を確保するために必要に応じて適宜構成することができる。
【００３９】
別の実施形態では、オペレーティングシステム２１０および／またはプラグインマネージャー２１２は、プラグイン２２０が或る特定のサービス２１４にアクセスする能力を限定または制限することができる。例えば、プラグイン２２０は、プリンター１１０の製造者またはオペレーターがオプションライセンス方式またはフィーチャーライセンス方式を用いることによって、特定のプリンター１１０用のライセンスを受けることができる。各プラグイン２２０には、一意のライセンスキーおよびオプション識別子を与えることができる。ライセンスキーは、プリンター１１０の例えばオペレーティングシステム２１０内にインストールすることができる。プラグイン２２０は、オペレーティングシステム２１０に接続したとき、（例えば、通信ネットワーク１２０を介して）オプション識別子をオペレーティングシステム２１０に提示することができる。オプションがプリンター１１０用にライセンスされている場合、プラグインマネージャー２１２は、プラグイン２２０が（例えば、通信ネットワーク１２０を介して）オペレーティングシステム２１０と通信接続を確立することを可能にする。ライセンスは、単一のインスタンスの形態または複数のインスタンスの形態で利用可能にすることができる。単一のインスタンスの場合、プラグインマネージャー２１２は、そのライセンスについて一時に１つのプラグイン２２０がオペレーティングシステム２１０に接続することのみを可能にする。第２のプラグイン（図示しないが、プラグイン２２０と同様である）が、別のプラグインによって既に使用中のオプション識別子を用いて（例えば、通信ネットワーク１２０を介して）オペレーティングシステム２１０への接続を試み、そのオプションが単一のインスタンスの使用にのみライセンスされている場合、その接続は、オペレーティングシステム２１０が拒否することができる。プラグインオプション識別子が、複数のインスタンスについてライセンスされている場合、そのオプション識別子を用いてオペレーティングシステム２１０に接続することができる異なるプラグインの数には制限が全くないかまたはほとんどないものとすることができる。
【００４０】
更に別の実施形態では、オペレーティングシステム２１０および／またはプラグインマネージャー２１２は、プラグイン２２０がステンシルプリンター１１０内の或る特定のデータおよびコマンドにアクセスする能力を限定または制限することによってデータセキュリティおよび操作上のセキュリティを提供することができる。例えば、プラグイン２２０は、ステータス情報にアクセスする認可を受けることができるが、制御コマンドにアクセスする認可を受けることができない。そのように制限されるデータのタイプおよび量は、特定のアプリケーションについてプラグイン単位（例えば、ユーザー単位）または機械単位でカスタマイズすることができる。
【００４１】
１つの実施形態では、異なるオペレーター端末１３０または１つ若しくは複数のオペレーター端末１３０上の異なるプラグイン２２０を用いて複数のユーザーを同じステンシルプリンター１１０に同時に接続することができる。然しながら、或る特定のプリンター制御機能は、複数のユーザーに利用可能である場合、プリンター１１０が衝突コマンド（例えば、プリンター１１０が実行することができないコマンド）を受信することを防止するように制限することができる。例えば、プリンター１１０が、第１のユーザーからの第１のコマンドと、第２のユーザーからの第２のコマンドとを実質的に同時に受信した場合、第１のコマンドは、第２のコマンドの前に処理することができ、第２のコマンドは、後の処理のためにキューに入れることもできるし、無視することもできる。第１のユーザーが、第１のコマンドの完了前にプリンターの制御をあきらめることに自主的に同意しない限り、第２のコマンドの処理は、第１のコマンドの処理が完了するまで遅延させることができる。幾つかの場合、例えば、プリンターが停止する必要がある場合またはより高い優先度のコマンドを別のユーザーから受信した場合、制御は、第１のユーザーからやむを得ず撤回される場合がある。別の例では、ローカルな機械オペレーターが、第１のユーザーからの制御を手動で撤回して、制御を第２のユーザーに与えることができる。別の実施形態では、或る特定のコマンド（例えば、データ要求）は、同時に処理することができ、したがって、そのようなコマンドをキューに入れることも遅延させることも必要でない場合がある。
【００４２】
別の実施形態では、オペレーティングシステム２１０は、各プラグイン２２０用のインターフェースを提供し、各プラグイン２２０は、オペレーティングシステム２１０用のインターフェースを提供する。これによって、オペレーティングシステムおよびプラグイン（複数の場合もある）は、ポーリングすることなく双方向に通信することが可能になる。加えて、プラグイン２２０は、オペレーティングシステム２１０によって提供されないユーザーインターフェース１４４の部分を提供することもできるし、プラグイン２２０は、オペレーティングシステム２１０によって提供されるユーザーインターフェース１４４の部分を（例えば、カスタマイズされたフォーマットでデータを表示することによって）補助することもできる。
【００４３】
１つの実施形態によれば、オペレーター端末１３０上で実行されているプラグイン２２０が、最初に、通信ネットワーク１２０を介してオペレーティングシステム２１０への接続を試みたとき、オペレーティングシステム２１０は、（例えば、プラグインのバージョン番号を検査することによって）プラグイン２２０が適合していることを検証し、プラグイン２２０が適合している場合には接続を許可し、適合していない場合には、オペレーティングシステム２１０は、その接続の試みを拒否する。オペレーティングシステム２１０は、旧式のプラグインバージョンとの後方互換性を提供するように構成することができる。
【００４４】
１つの実施形態では、ユーザーインターフェース１４４、通信ネットワーク１２０およびプラグインマネージャー２１２を介したプラグイン２２０とサービス２１４との間の基礎を成す通信メカニズムとして、リモートプロシージャコール（ＲＰＣ）２３０が用いられる。特定のメッセージが移動していく方向に応じて、プラグインマネージャー２１２および／またはプラグイン２２０によってＲＰＣメッセージ肯定応答を提供することができる。以下で説明するように、複数のインターフェースメソッドを論理的にグループ分けし、プラグイン２２０がオペレーティングシステム２１０内にコールすることができるメソッド（「サーバーメソッド」と呼ばれる）およびオペレーティングシステム２１０がプラグイン２２０内にコールすることができるメソッド（「クライアントメソッド」と呼ばれる）に細分することができる。各グループのインターフェースメソッドは、幾つかの実施形態では、別個のＲＰＣインターフェースに対応することができる。プラグイン２２０は、サーバーメソッドおよびクライアントメソッドの任意のサブセットまたは全てのサブセットを実施することを選ぶことができる。オペレーティングシステム２１０がサポートすることができるメソッドの幾つかの例は、以下に列挙されている。
【００４５】
プラグイン２２０は、オペレーティングシステム２１０によってサポートされるとともに、例えば、上記で説明したようなライセンス方式またはセキュリティ方式が利用される場合には、そのような方式によって許可されたメソッドのうちの任意のものをコールすることができる。プラグイン２２０は独立した構成要素として動作するということを理由の一部として、オペレーティングシステム２１０は、プラグイン２２０の挙動に対する制御を限定されている場合もあるし、その挙動を制御していない場合もある。幾つかの場合には、プラグイン２２０は、非常に短い時間スパン（例えば、約１分未満）にわたって複数のメソッドのコールを試みる場合もあるし、複数のプラグインが、同じ短い時間スパンにわたってメソッドコールを試みる場合もある。短い時間スパンにわたる複数のメソッドコールからもたらされる、オペレーティングシステム２１０に対する処理要求は、システムの処理能力の過負荷につながる可能性があり、これは、プリンターの動作に有害な影響を与える場合がある。オペレーティングシステム２１０またはステンシルプリンター１１０に悪影響を及ぼすいずれのプラグイン２２０の挙動も、乱用（abusive）とみなすことができる。したがって、１つの実施形態では、オペレーティングシステム２１０は、複数の要求または乱用要求にサービス提供することによって課される処理負荷を限定するように設計された１または複数の不測の事態の対応を起動することができる。例えば、オペレーティングシステム２１０は、同じ期間にわたってサービス提供される単一のプラグインおよび／または複数のプラグイン２２０からのメソッドコール数を限定することもできるし、オペレーティングシステム２１０は、当該オペレーティングシステム２１０に同時に接続されるアクティブなプラグイン２２０の数を限定することもできる。別の実施形態では、オペレーティングシステム２１０は、プラグイン２２０が所与の期間にわたってサブミットすることができる要求の数を限定することによって、乱用プラグイン２２０（例えば、或る期間にわたってオペレーティングシステムに過度の要求をサブミットするプラグイン）を抑制することができる。例えば、プラグインが、比較的短い期間にわたってデータまたは制御の多数の要求をサブミットする場合、それらの要求の多さに起因してオペレーティングシステムの処理能力が過負荷とならないように、オペレーティングシステム２１０は、それらの要求の一部または全ての拒否を開始することもできるし、後の時点までそれらの要求を延期することもできる。
【００４６】
１つの実施形態では、各プラグインインターフェースは、或るスキーマに関連付けられる。幾つかのメソッドは、そのスキーマに関連付けることができ、種々のスキーマによってサポートすることができる一方、種々のスキーマに関連付けられた他のメソッドは、上記スキーマによってサポートされない場合がある。例えば、１つのスキーマによってサポートされる全てのメソッドは、そのスキーマの１または複数の後のバージョンによってもサポートすることができ（すなわち、後のスキーマは、それよりも前のスキーマによってサポートされるメソッドと後方互換性を有する）、そのスキーマの後のバージョンによってサポートされる幾つかのメソッドは、そのスキーマの前のバージョンによって必ずしもサポートされない場合がある。他の機能の中でも特に、スキーマに関連付けられたメソッドは、例えば、スキージ圧力、ストローク速度、オフセット（ステンシル位置合わせ）およびリアルタイムで（例えば、プリンターが動作している間）視認および変更することができる他のデータを含む、ステンシルプリンターの動作に関連付けられた様々なパラメーターを視認または変更するのに用いることができる。
【００４７】
１つの実施形態では、オペレーティングシステム２１０は、プリンター１１０とオペレーター端末１３０との間のトラフィックを管理するように構成される。例えば、通信ネットワーク１２０上のトラフィックの量を最小にし、コアの機能、重要な機能または高い優先度の機能を実行するのに必要とされ得るデータ帯域幅を維持し、十分な処理時間がそのような機能に使用可能であることを確保するために、オペレーティングシステム２１０とオペレーター端末１３０との間で交換されるデータの量またはレートは、オペレーティングシステム２１０が制限することができる。別の例では、プラグイン２２０は、（例えば、全ての利用可能なデータにサブスクライブするのとは対照的に）データのサブセットにサブスクライブして、通信ネットワーク１２０上のトラフィックを最小にすることを援助することができる。
【００４８】
幾つかの実施形態によれば、例示のメソッドの以下の非限定的なリストを、オペレーティングシステム２１０はプラグイン２２０による使用のために提供することができる。スキーマに準拠したいずれのプラグイン２２０も、オペレーティングシステム２１０によってプラグイン２２０に課される任意のライセンス制限および／またはセキュリティ制限を条件として、オペレーティングシステムによって提供されるメソッドのうちの任意のものまたは全てを使用またはサポートすることができることが理解されるであろう。
・接続管理
・アラームイベント通知
・プリンター位置合わせイベント通知
・回路基板イベント通知（例えば、失敗した検査、処理完了、処理進行中、オペレーターによって拒絶された基板、リセットデータ、パネルデータ）
・構成イベント通知（例えば、ユーザーによるコンベアの方向の変更、ブレードからポンプへまたはポンプからブレードへのユーザーによる切り替え、ログファイル）
・コンベアイベント通知（例えば、基板がコンベアセグメントに到着した／コンベアセグメントから離れた、コンベア状態の変更）
・環境イベント通知
・検査イベント通知
・ログインイベント通知
・プロセスプログラムイベント通知
・機械状態イベント通知（例えば、吐出完了、吐出開始、混練動作実行中、機械状態の変化、ステンシルの手動クリーニング、印刷ストロークの開始／終了、ユーザーによるステンシル挿入／除去、ワイプ開始／完了）
・トレーサビリティイベント通知（例えば、バーコードデータ）
・アラームの構成および管理
・位置合わせ構成
・基板管理
・コンベア管理
・環境管理
・検査管理
・ログイン管理
・プロセスプログラム管理
・機械状態
・トレーサビリティ管理
【００４９】
図３は、１つの実施形態によるステンシルプリンター３００を動作させる方法の一例の流れ図である。ブロック３０２において、ステンシルプリンターと少なくとも１つのコンピューターとの間の少なくとも１つの仮想接続が確立される。この仮想接続は、ステンシルプリンターおよびコンピューターに接続された通信ネットワークを介して確立することができる。この仮想接続は、当業者によって理解されるように、例えば、オープン通信チャネルまたは他のタイプの仮想接続を含むことができる。ブロック３０４において、ライセンス管理タスクをオプションとして実行することができる。例えば、上記で説明したようなライセンス方式が実施される場合、ステンシルプリンターは、コンピューターによって保持された単数または複数のライセンスを調べて、仮想接続を維持するか否かを判断することができる、かつ／または、コンピューターによって保持されたアクセス特権を判断することができる。有効なライセンスがコンピューターによって保持されていない場合、仮想接続を終了することができる。ライセンスが、或る特定の制限（例えば、単一のユーザー、複数のユーザー等）を含む場合、それらの制限は、それに応じてステンシルプリンターが起動することができる。
【００５０】
オプションとして、ブロック３０６において、上記で説明したように、プリンター作動データ（または仮想接続を用いて交換された他のデータ）の任意の交換をステンシルプリンターがアービトレートすることができる。例えば、複数のコンピューターが実質的に同時にステンシルプリンターにコマンドを出しているかまたはデータを要求している場合、ステンシルプリンターは、それらのコマンドまたはデータの要求のうちの１つまたは複数を延期または無視することによって要求に優先順位を付けることができる。同様に、ブロック３０８において、ステンシルプリンターは、オプションとして、上記で説明したように、ステンシルプリンターとコンピューターとの間で交換されるデータの量を限定することによって、コマンドまたはデータの要求を用いてステンシルプリンターを過負荷にするように試みているコンピューターを抑制することができる。
【００５１】
ブロック３１０において、データが、仮想接続を用いてステンシルプリンターとコンピューターとの間で交換される。このデータの交換は、例えば、双方向、すなわち、ステンシルプリンターからコンピューターへおよびコンピューターからステンシルプリンターへとすることができる。別の例では、コンピューターが、ステンシルプリンターによって仮想接続を通じて送信されたデータを受動的に受信（例えば、リスン専用モードでステータスデータを受信）しているが、コンピューターが一般にデータまたはコマンドをステンシルプリンターに送信しない場合等は、データの交換は一方向とすることができる。
【００５２】
ブロック３１２において、ステンシルプリンターの１または複数の動作が、プリンター作動データを用いて管理される。概して、これらの動作は、プリンターの始動、停止、一時停止、構成およびステータス、並びに上記で説明したメソッドに対応する任意の機能を含む、コンピューターが管理することをステンシルプリンターが可能にした、ステンシルプリンターの任意の機能を含むことができる。上記で論述したように、安全性の理由から、ステンシルプリンターは、コンピューターが幾つかの機能（例えば、プリンター始動機能および他の或る特定の安全性またはセキュリティに関連した機能）を開始することを制限または禁止することができるが、一般に、ステンシルプリンターは、コンピューターに特定の機械または用途に好適な任意の機能を開始することを許可するように構成することができる。
【００５３】
少なくとも１つの実施形態の幾つかの態様を上記のように説明してきたが、様々な代替形態、変更形態および改良形態が当業者には容易に思いつくことが理解されるべきである。そのような代替形態、変更形態および改良形態は、この開示の一部であることが意図され、本発明の範囲内にあることが意図されている。したがって、上記の説明および図面は、単なる例にすぎない。
【符号の説明】
【００５４】
１００    拡張可能ステンシル印刷システム
１１０    プリンター
１２０    通信ネットワーク
１３０    パーソナルコンピューター
１３２    プロセッサ
１３４    メモリ
１３６    出力（Ｉ／Ｏ）デバイス
１３８    ディスプレイ画面
１４０    ネットワーク通信デバイス
１４２    記憶装置
１４４    グラフィカルユーザーインターフェース
２１０    オペレーティングシステム
２１２    プラグインマネージャー
２１４    サービス
２２０    プラグインモジュール
２３０    リモートプロシージャコール（ＲＰＣ）
３００    ステンシルプリンター
【図１】
0006272239.tif 000002
【図２】
0006272239.tif 000003
【図３】
0006272239.tif 000004