(57)【特許請求の範囲】
【請求項１】
中央制御装置が、第１の機能及び第２の機能を備えた第１の被制御装置と第１の機能及び第３の機能を備えた第２の被制御装置とを制御するファクトリーオートメーションシステムの制御方法であって、
上記中央制御装置に設けられ上記第１の被制御装置と第２の被制御装置との制御手順を有する制御手段が、上記第１の被制御装置及び上記第２の被制御装置に共通する上記第１の機能を実行させる命令を上記中央制御装置と上記被制御装置とを接続するインタフェース手段へ送信する第１の送信ステップと、
上記インタフェース手段が受け取った上記命令を上記第１の被制御装置用に第１の操作命令、上記第２の被制御装置用に第２の操作命令と変換する変換ステップと、
上記インタフェース手段が上記第１の操作命令に基づいて上記第１の被制御装置を制御するとともに、上記第２の操作命令に基づいて上記第２の被制御装置を制御する並列実行ステップと、
この並列実行ステップの後に、上記第１の操作命令に対する処理結果を上記インタフェース手段が上記制御手段へ送信する第２の送信ステップと、
上記並列実行ステップの後に、上記第２の操作命令に対する処理結果を上記インタフェース手段が上記制御手段へ送信する第３の送信ステップと、
を備えたファクトリーオートメーションシステムの制御方法。
【請求項２】
中央制御装置が、第１の機能及び第２の機能を備えた第１の被制御装置と第１の機能及び第３の機能を備えた第２の被制御装置とを制御するファクトリーオートメーションシステムの制御方法であって、
上記中央制御装置に設けられ上記被制御装置の制御手順を有する制御手段が、上記第１の被制御装置及び上記第２の被制御装置に共通する上記第１の機能を実行させる命令を上記中央制御装置と上記被制御装置とを接続する既存のインタフェース手段へ送信する第１の送信ステップと、
上記既存のインタフェース手段が受け取った上記命令を、上記第１の被制御装置用に第１の操作命令、上記第２の被制御装置用に第２の操作命令と変換する変換ステップと、
上記既存のインタフェース手段が上記第１の操作命令と第２の操作命令とに基づいて新たなインタフェース手段を生成するインタフェース生成ステップと、
上記既存のインタフェース手段が上記第１の操作命令に基づいて上記第１の被制御装置を制御するとともに、上記新たなインタフェース手段が上記第２の操作命令に基づいて上記第２の被制御装置を制御する並列実行ステップと、
この並列実行ステップの後に、上記第１の操作命令に対する処理結果を上記既存のインタフェース手段が上記制御手段へ送信する第２の送信ステップと、
上記並列実行ステップの後に、上記第２の操作命令に対する処理結果を上記新たなインタフェース手段が上記制御手段へ送信する第３の送信ステップと、
を備えたファクトリーオートメーションシステムの制御方法。
【請求項３】
第１の機能及び第２の機能を備えた第１の被制御装置と第１の機能及び第３の機能を備えた第２の被制御装置とを制御手段からインタフェース手段を介して制御するファクトリーオートメーションシステムの中央制御装置において、
上記制御手段は、上記第１の被制御装置と上記第２の被制御装置とに共通する上記第１の機能を実行させる命令を上記インタフェース手段へ送信し、この命令に基づき上記第１の被制御装置と上記第２の被制御装置による並列実行の後に上記インタフェース手段から処理結果を受信し、
上記インタフェース手段は、上記第１の機能を実行させる命令を上記制御装置から受信し、この命令を上記第１の被制御装置用に第１の操作命令と、上記第２の被制御装置用に第２の操作命令とに変換し、この第１の操作命令により上記第１の被制御装置を制御するとともにこの第２の操作命令により上記第２の被制御装置を制御して上記第１の機能を並列実行させ、上記第１の被制御装置による第１の機能の実行後に上記第１の操作命令に対する処理結果を上記制御手段へ送信するとともに上記第２の被制御装置による第１の機能の実行後に上記第２の操作命令に対する処理結果を上記制御手段へ送信する、
ことを特徴とするファクトリーオートメーションシステムの中央制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ファクトリーオートメーションシステム（以下FAシステムと呼ぶ）に関するものであり、例えば、プログラマブル・コントローラ(以下PCと呼ぶ)、数値制御装置（以下NCと呼ぶ）、サーボコントローラ（以下SCと呼ぶ）、及びロボットコントローラ（以下RCと呼ぶ）等の制御装置を制御するパーソナルコンピュータ（以下パソコンと呼ぶ）等の中央制御装置、その制御方法、並びにそのプログラムを記録した記録媒体に関するものである。
【０００２】
【従来の技術】
近年、データ処理及びマンマシン・インターフェースの充実からプログラムロジックコントローラ(以下、PLCという)システム、NCシステム、SCシステム、及びRCシステム（各システムの組合せも含む）にパソコン（モジュールタイプのものを含む）を接続して使用する機会が急増している。これらを結び付けたシステムとしては、例えばシステムのモニタリングや入出力インターフェース（表示器など）として使用するシステムがある。
【０００３】
従来、この様なアプリケーションプログラムを開発する場合、PLC、NC、SC、RCの各々のシステムにあらかじめ提供されたライブラリを用いて開発を行う。
【０００４】
図１２は、特開平09-050312号公報に記載されたFAシステムの機能ブロック図である。図１２において、１０３はコントローラに制御されるPLC、１１１はコントローラ側にあってPLC１０３と通信するためのPLC通信ボード、１１３、１１６、及び１１８は、コントローラの処理に使用されるメモリであり、１１３ａは、PLC１０３とデータの送受信を行うユーザプログラムである。
次に、このFAシステムにおけるデータの送受信を説明する。まずユーザプログラム１１３ａが要求データエリア１１６ａに送信要求を書き込む。続いて、送受信機能１１８ａが、要求データエリア１１６ａに書き込まれた送信要求を読み込んで、送信要求に記載されたチャネル番号に基づき通信先を決定し、例えば、PLC通信機能１１８e及びPLC通信ボード１１１を介して、PLC１０３に送信要求を出す。PLC１０３は送信要求に応じて、必要なデータを返し、送受信機能１１８ａがそのデータをPLC通信機能１１８e及びPLC通信ボード１１１を介して受け取る。そして、送受信機能１１８ａが受信したデータを応答データエリア１１６ｂに書き込み、ユーザプログラム１１３ａが応答データエリア１１６ｂからデータを読み取る。
【０００５】
【発明が解決しようとする課題】
従来のアクセス方式は以上のように構成されているので次のような問題点があった。
従来のFAシステムにおいては、データの送受信を可能とするためにチャンネル番号を用いており、このチャンネル番号により送受信先を切り換えるために１つの送受信機能を備えている。すなわち、１つの送受信機能１１８ａがユーザプログラム１１３ａの送受信全てを管理している。そして、この送受信機能１１８ａに送られる命令は、シーケンシャルに処理されるため、時間のかかる命令と高速に処理できる命令が混在した場合に、本来高速に処理できる命令が時間のかかる命令の終了を待たなければならず、処理スピードが上がらないという問題があった。
【０００６】
この発明は、かかる問題を解決するためになされたものであり、複数の命令を効率よく実行することができるFAシステムの制御方法、そのプログラムを記録した記録媒体、並びに中央制御装置を得ることを目的としている。
【０００７】
【課題を解決するための手段】
この発明にかかるファクトリーオートメーションシステムの制御方法においては、複数の制御装置を用いたファクトリーオートメーションシステムを制御する中央制御装置が上記複数の制御装置のうちの第１の制御装置及び第２の制御装置を制御するファクトリーオートメーションシステムの制御方法であって、既存のインタフェース手段に加えて新たなインタフェース手段を生成することにより、複数のインタフェース手段を起動する生成ステップと、上記中央制御装置に設けられ上記複数の制御装置の制御手順を有する制御手段が、上記第１の制御装置を制御する第１の命令を上記複数のインタフェース手段のうちのいずれか一方のインタフェース手段へ送信する第１の送信ステップと、上記複数のインタフェース手段のうち上記第１の命令が送信されなかった他方のインタフェース手段に、上記制御手段が上記第２の制御装置を制御する第２の命令を送信する第２の送信ステップと、上記第１及び第２の送信ステップの後に実行され、上記一方のインタフェース手段が上記第１の命令を実行し、この実行と並列に、上記他方のインタフェース手段が上記第２の命令を実行する並列実行ステップと、この並列実行ステップの後に実行され、上記第１の命令に対する処理結果を上記一方のインタフェース手段が上記制御手段へ送信する第３の送信ステップと、上記並列実行ステップの後に実行され、上記第２の命令に対する処理結果を上記他方のインタフェース手段が上記制御手段へ送信する第４の送信ステップと、この第４の送信ステップの後に実行され、上記他方のインタフェース手段が占有していたリソースを開放し、上記他方のインタフェース手段を終了させる終了ステップと、を備えたものである。
【０００８】
また、上記終了ステップの後に実行され、上記制御手段が上記第３の送信ステップで送信された処理結果を受信し、受信した処理結果を処理するステップと、を備えたものである。
【０００９】
この発明のプログラムを記録した記録媒体においては、アプリケーションプログラムからライブラリに対し、制御装置の制御が要求され、上記ライブラリに予め備えられた制御処理が呼び出された場合に、上記ライブラリが新たにスレッドを生成することにより、上記ライブラリに対して複数のスレッドを割り当てる生成ステップと、上記ライブラリが上記制御装置の処理に対応する上記制御装置からの処理結果を受け取る前に、上記ライブラリが上記複数のスレッドのうちの一方のスレッドを用いて上記アプリケーションプログラムへ実行権を返すリターンステップと、このリターンステップにより実行を再開したアプリケーションプログラムと並列に、上記ライブラリが上記複数のスレッドのうちの他方のスレッドを用いて上記制御装置の処理を実行し、上記制御装置を制御する第１の制御ステップと、上記リターンステップの後に実行され、上記制御装置の処理結果を上記他方のスレッドを用いて実行されていたライブラリから上記一方のスレッドを用いて実行されていた上記アプリケーションプログラムへ送信するステップと、をコンピュータに実行させるものである。
【００１０】
また、上記リターンステップの後に実行され、上記一方のスレッドを用いて、上記アプリケーションプログラムが上記ライブラリに対して他の制御装置の制御を要求する要求ステップと、上記ライブラリが上記要求ステップの要求を受けて、上記他の制御装置の制御を上記第１の制御ステップと並列に実行する第２の制御ステップと、上記送信ステップの後に実行され、上記他のスレッドを用いて実行されていた上記ライブラリが上記他方のスレッドを終了させる終了ステップと、をコンピュータに実行させるものである。
【００１１】
また、発明にかかるファクトリーオートメーションシステムの中央処理装置においては、複数の制御装置それぞれに対して、並列に命令を発行し、上記複数の制御装置を制御する制御手段と、この制御手段と上記複数の制御装置とを接続する複数のインタフェース手段と、上記制御手段が上記複数の制御装置に対し並列に発行する命令数に応じて、上記複数のインターフェース手段の数を動的に増減させるインタフェースコントロール手段と、を備えたものである。
【００１２】
また、上記インタフェースコントロール手段は、上記制御手段が上記インタフェース手段に命令を送ったことを検知して上記インタフェース手段を増加させるものである。
【００１３】
また、上記インタフェースコントロール手段は、命令の種類に応じて上記インタフェース手段を増加させるとともに、上記インタフェース手段を増加させる命令よりも処理時間の短い種類の命令に対しては、上記インタフェース手段を増加させず既存のインタフェース手段に上記処理時間の短い種類の命令を実行させるものである。
【００１４】
【発明の実施の形態】
実施の形態１．
図１は、この実施の形態のFAシステムのハードウェアを示す機能ブロック図である。図１において、１〜４はそれぞれ制御装置を示しており、１はPCシステム、２はNCシステム、３はSCシステム、４はRCシステムである。２０は制御装置１〜４を制御する中央制御装置であり、例えば、一般に普及しているパーソナルコンピュータ（以下パソコンという）である。このパソコン２０は、プロセッサ（以下、CPUという）、及び汎用メモリを持ち、アプリケーションプログラムを実行する実行部２２、及び、共有メモリ２１を備えている。
【００１５】
パソコン２０とPCシステム１との間の命令及びデータ転送は図示のように共有メモリ２１を介して行われる。共有メモリ２１は、実行部２２のCPU及びPCシステム３のCPUの両側から読み書きができるデュアルポートRAM素子、或いは、通常のRAM素子に外部回路を付加して同様な効果が得られるようにした回路ブロックからなっている。パソコン２０とPCシステム１とはこの共有メモリ２１を介して相互にアクセスするため、両者のハードウェアが相違していても容易にアクセスすることができ、例えば相互に同期をとる必要もなく、並行して処理を進めることができる。そのため、システムとしてのパフォーマンスを向上させることができる。
同様に、パソコン２０−NCシステム２間、パソコン２０−SCシステム３間、パソコン２０−RCシステム４間の命令及びデータ転送も図示のように共有メモリ２１を介して行われる。
【００１６】
図２は、この実施の形態のFAシステムのソフトウェア構成を示す機能ブロック図である。図２において、図１と同一の符号は同一又は相当の部分を表している。PCデバイスドライバ５は、共有メモリ２１を通してPCシステム１とデータ交換（リード／ライト）を行う最もベーシックなドライバであり、PCシステム１のハードウェア資源にアクセスし、PCシステム１を直接ドライブする。同様に、NCデバイスドライバ６はNCシステム２とデータ交換を行うドライバ、SCデバイスドライバ７はSCシステム３とデータ交換を行うドライバ、RCデバイスドライバ８はRCシステム４とデータ交換を行うドライバである。１３は各制御装置１〜４を駆動するアプリケーションプログラム、３０はアプリケーションプログラム１３と各デバイスドライバ５〜８との間のデータ通信や、アプリケーションプログラム１３からの命令を受けて制御装置を制御するインタフェースプログラムである、例えば、このインタフェースプログラムは、アプリケーションプログラム１３によって使用されるダイナミック・リンク・ライブラリとして、ユーザに提供することができる。なお、この実施の形態において、アプリケーションプログラム１３は制御手段であり、インタフェースプログラム３０はインタフェース手段とインタフェースコントロール手段とを含んでいる。
【００１７】
このインタフェースプログラム３０は、PC通信オブジェクト３１、NC通信オブジェクト３２、SC通信オブジェクト３３、RC通信オブジェクト３４、さらにPCコントローラインタフェースオブジェクト３５及びモーションコントローラインタフェースオブジェクト３６を備えている。
【００１８】
PC通信オブジェクト３１はPCデバイスドライバ５を介してPCシステム１をアクセスするオブジェクトであり、その役割はPCデバイスドライバ５を介したPCシステム１との通信回線の接続及びその切断、並びに通信回線接続後のPCシステム１とのデータ交換である。これら回線の接続や切断、データ交換の命令は、インタフェースプログラム３０の各オブジェクトが、オブジェクトのメッセージングを用いて行う。PC通信オブジェクト３１は、図３のメモリマップに示すように、複数のPC命令を有しており、例えば、これらのPC命令の命令エリアには、PCコントローラI/Fオブジェクト３５からPC操作命令を受けたときに命令メッセージを作成し、PCデバイスドライバ５へ送信する処理を行うプログラムが記載されている。ここで、各オブジェクト３１〜３６は、それぞれ様々なデータを記憶するデータエリアとプログラムを記憶する命令エリアを備えている。
【００１９】
また、同様に、NC通信オブジェクト３２はNCデバイスドライバ６を介してNCシステム２とアクセスするためのオブジェクトである。NC通信オブジェクト３２の役割は、パソコン２０−NCシステム２間の通信回線の接続、切断、及びNCシステム２とのデータ交換であり、NCデバイスドライバ６を介して、これらの動作を実行する。また、NC通信オブジェクト３２への命令は、オブジェクトのメッセージングによって行なわれる。ここで、図４で示すようにNC通信オブジェクト３２は、前記のPC通信オブジェクト３１と同様のPC命令１〜PC命令ｎを持つ。これらPC命令１〜PC命令ｎをNCシステム２に内蔵されているPC機能に対応させる。
【００２０】
また、同様にSC通信オブジェクト３３はSCデバイスドライバ７を介してSCシステム３とアクセスするためのオブジェクトである。SC通信オブジェクト３３の役割は、パソコン２０−SCシステム３間の通信回線の接続、切断、及びSCシステム３とのデータ交換であり、SCデバイスドライバ７を介して、これらの動作を実行する。ここでも同様に、SC通信オブジェクト３３はSC独自の機能に対応した命令の他に、PC命令１〜PC命令ｎを備える。
同様にRC通信オブジェクト３４はRCデバイスドライバ８を介してRCシステム４とアクセスするためのオブジェクトである。RC通信オブジェクト３４の役割は、パソコン２０−RCシステム４間の通信回線の接続、切断、及びRCシステム４とのデータ交換であり、RCデバイスドライバ８を介して、これらの動作を実行する。ここでも同様にRC通信オブジェクト３４はRC独自の機能に対応した命令の他に、PC命令１〜命令ｎを備える。
【００２１】
この実施の形態では、個々の制御装置１〜４が有する複数の機能が大きく分けて２つに分類されている。例えば、PCシステム１では、PC機能を有し、NCシステム２、SCシステム３及びRCシステム４では、大きく分けて２つの機能、PC機能とモーション機能を有している。モーション機能とは、１つまたは複数のサーボモータを制御する機能であり、具体的には、モーション機能から継承したそれぞれのシステム固有の機能、すなわちNCシステム２ではNC機能でありSCシステム３ではSC機能でありRCシステム４ではRC機能である。
【００２２】
これらの機能をオブジェクト指向技術を用いてオブジェクト化したものがコントローラインタフェースオブジェクト(以下、コントローラI/Fオブジェクトという)である。３５は、PC通信オブジェクト３１、NC通信オブジェクト３２、SC通信オブジェクト３３、及び、RC通信オブジェクト３４と接続可能に設けられ、アプリケーションプログラム１３からPC機能に関する命令を受け、受け取った命令を各通信オブジェクト３１〜３４用に変換にし、実行させるPCコントローラI/Fオブジェクトである。PCコントローラI/Fオブジェクト３５は、図５のメモリマップに示すように、接続する通信オブジェクト３１〜３４のポインタをデータエリアに記憶することができ、また、命令エリアには、接続時に実行されるアタッチ、デタッチのプログラム、各通信オブジェクト３１〜３４のPC命令を使用してPC機能を制御するPC操作命令を複数記憶している。
【００２３】
３６はNC通信オブジェクト３２、SC通信オブジェクト３３、及び、RC通信オブジェクト３４と接続可能に設けられ、アプリケーションプログラム１３からモーション機能に関する命令を受け、受け取った命令を各通信オブジェクト３２〜３４用に変換にし、実行させるモーションコントローラI/Fオブジェクトである。なお、ここで、図２の各デバイスドライバ５〜８、及びインタフェースプログラム３０の各オブジェクト３１〜３６は、パソコン２０の実行部２２によって実行される。モーションコントローラI/Fオブジェクト３６も、PCコントローラI/Fオブジェクト３５と同様に、接続する通信オブジェクト３１〜３４のポインタをデータエリアに記憶することができ、また、命令エリアには、接続時に実行されるアタッチ、デタッチのプログラム、各通信オブジェクト３１〜３４のモーション機能を制御する命令を複数記憶している。
【００２４】
図２は、この実施の形態のFAシステムのソフトウェア構成を示す機能ブロック図である。図２において、図１と同一の符号は同一又は相当の部分を表している。PCデバイスドライバ５は、共有メモリ２１を通してPCシステム１とデータ交換（リード／ライト）を行う最もベーシックなドライバであり、PCシステム１のハードウェア資源にアクセスし、PCシステム１を直接ドライブする。同様に、NCデバイスドライバ６はNCシステム２とデータ交換を行うドライバ、SCデバイスドライバ７はSCシステム３とデータ交換を行うドライバ、RCデバイスドライバ８はRCシステム４とデータ交換を行うドライバである。１３は各制御装置１〜４を駆動するアプリケーションプログラム、３０はアプリケーションプログラム１３と各デバイスドライバ５〜８との間のデータ通信や、アプリケーションプログラム１３からの命令を受けて制御装置を制御するインタフェースプログラムである、例えば、このインタフェースプログラムは、アプリケーションプログラム１３によって使用されるダイナミック・リンク・ライブラリとして、ユーザに提供することができる。なお、この実施の形態において、アプリケーションプログラム１３は制御手段であり、インタフェースプログラム３０はインタフェース手段であり、インタフェースコントロール手段を含んでいる。
【００２５】
次に、この実施の形態１のFAシステムの動作について説明する。図６は、パソコン２０の実行部22が実行する制御を示すシーケンス図である。図６において、図２と同一の符号は同一又は相当の部分を表している。
この実施の形態の１つの特徴は、複数の制御装置に対する処理が並列に実行され、処理時間が長い処理が混在しても、他の処理を高速に実行できる点にある。すなわち、PCデバイスドライバ５で実行されるステップＳ１５〜Ｓ１７までの長い処理と、NCデバイスドライバ６で実行されるステップＳ７〜Ｓ８の短い処理が並列に実行され、アプリケーションプログラム１３は、短い処理の結果を先に受け取って、その処理結果に基づく処理ステップＳ１２を実行することができる。すなわち、後から発生したNCシステム２に対する処理を先に実行することができるため、全体としてパソコン２０は複数の処理を高速に終了することができる。特に、制御装置に対する問合せ処理等は、従来、制御装置から処理結果を受け取るまでに中央処理装置側は待機する必要があったが、この実施の形態によれば、この待機処理中に他の処理を実行することができ、高速な処理が可能となる。
【００２６】
詳細な動作は以下のとおりである。まず、アプリケーションプログラム１３は、パソコン２０のプロセッサにより、１つのスレッド１３ａを用いて実行されているとする。ここで、スレッドはプロセッサが複数の処理を並列に実行する場合に、CPUタイムを割り当てる単位、すなわち実行単位である。次に、第１の送信ステップＳ１でアプリケーションプログラム１３がPCコントローラI/Fオブジェクト３５へ、第１の制御装置（例えばPCシステム１）に対する第１の命令を実行するメソッドの呼び出しを行う。すると、スレッド１３ａの処理は、PCコントローラI/Fオブジェクト３５のメソッドの実行に移り、生成ステップＳ２で、PCコントローラI/Fオブジェクト３５は、新しいスレッド１３ｂを作成するとともに、アプリケーションプログラム１３へ処理を返す。
この生成ステップＳ２により、パソコン２０は複数の処理を並列に実行することができるようになり、後述するステップＳ５〜Ｓ１１でスレッド１３ａのPCコントローラI/Fオブジェクト３５及びNC通信オブジェクト３２が一方のインタフェース手段としてNCシステム２に対する制御を実行し、他方、後述するステップＳ１３からＳ１９で、スレッド１３ｂのPCコントローラI/Fオブジェクト３５及びPC通信オブジェクト３１が他方のインタフェース手段としてPCシステム１に対する制御を並列に実行する。
なお、PCコントローラI/Fオブジェクト３５がアプリケーションプログラム１３へ実行権を返す処理はリターンステップである。ここで、新しいスレッド１３ｂの並列実行が開始されるが、その新しいスレッド１３ｂの動作については後述する。
【００２７】
次に、ステップＳ１３で、アプリケーションプログラム１３は、スレッド１３ａでスレッド１３ｂと並行して他の処理を行う。この処理は任意の処理であり、他の処理を実行せずにステップＳ２の次にステップＳ４を直接実行してもよい。続いて、第２の送信ステップＳ４で、アプリケーションプログラム１３は、第２の制御装置（例えば、NCシステム２）に対する第２の命令を実行するメソッドの呼び出しを行う（ここで第２の送信ステップは、他の制御装置への制御を要求する要求ステップでもある）。すると、スレッド１３ａの処理は、PCコントローラI/Fオブジェクト３５に移り、ステップＳ５で、PCコントローラI/Fオブジェクト３５は、第２の命令の送付先を決定するとともに、決定した送付先、ここではNC通信オブジェクト３２へ第２の命令を送信する。このとき、PCコントローラI/Fオブジェクト３５は、アプリケーションプログラム１３からの送信先の情報に基づいて送信先を決定する。この送信先の情報は、アプリケーションプログラム１３によるアタッチの動作によりPCコントローラI/Fオブジェクト３５に知らせられるが、この動作については後述する。
【００２８】
次に、ステップＳ６で、スレッド１３ａの処理は、NC通信オブジェクト３２に移り、NC通信オブジェクト３２が受け取った第２の命令に基づいて、NCデバイスドライバ６に対する処理を開始する。例えば、第２の命令がNCシステム２に対するデータ転送要求だったとすると、このステップＳ６で、NC通信オブジェクト３２はNCデバイスドライバ６へデータ転送要求を送信する。
続いて、ステップＳ７で、受け取った第２の命令に基づいて、NCデバイスドライバ６が処理を開始する。NCデバイスドライバ６とNCシステム２との命令及びデータの送受信は、図１の共有メモリ２１を介して行う。そして、NCシステム２はNCバスを介して共有メモリ２１に記憶された命令又はデータを読み取り、読み取った命令に基づいた処理を実行する。例えば、NCデバイスドライバ６から送られた命令がデータ転送要求だとすると、NCシステム２は命令に指示されたデータを読み取り、読み取ったデータをNCバスを介して共有メモリ２１に書き込む。
次に、ステップＳ８で、NC通信オブジェクト３２は共有メモリ２１からNCシステム２が書き込んだデータを読み取る。そして、NCデバイスドライバ６の処理が終了すると、ステップＳ９で、NCデバイスドライバ６は第２の命令に対応する第２の処理結果をNC通信オブジェクト３２へ送信する。
【００２９】
続いて、ステップＳ１０でNC通信オブジェクト３２は、受け取った第２の処理結果をPCコントローラI/Fオブジェクト３５へ送信する。上述ステップＳ６〜ステップＳ１０までのNC通信オブジェクト３２の処理が第１の制御ステップであり、ここでは、第２の制御ステップＳ１４〜１８がPC通信オブジェクト３１で並列に実行されている、すなわちステップＳ６〜ステップＳ１０は並列実行ステップでもある。
次に、第４の送信ステップＳ１１でPCコントローラI/Fオブジェクト３５は、受け取った第２の処理結果をアプリケーションプログラム１３へ返し、スレッド１３ａの処理をアプリケーションプログラム１３へ移す。
次に、ステップＳ１２で、アプリケーションプログラム１３は、ステップＳ１１で受け取った第２の処理結果に基づいて、次の処理を実行する。例えば、第２の命令がデータ転送要求であったときに、その要求したデータを用いた処理、或いは、そのデータのコンピュータディスプレイ上への表示等を行う。
【００３０】
以上、ステップＳ１〜Ｓ１２まで、スレッド１３ａの処理を説明した。次に、ステップＳ２で生成された、新たなスレッド１３ｂでの処理について説明する。生成ステップＳ２において、スレッド１３ａでPCコントローラI/Fオブジェクト３５が新たなスレッド１３ｂを生成すると、スレッド１３ｂで動作するPCコントローラI/Fオブジェクト３５は、スレッド１３ａと並列にステップＳ１３を開始する。ステップＳ１３では、PCコントローラI/Fオブジェクト３５は制御装置に対し第１の命令を送信する。ここでは、PCコントローラI/Fオブジェクト３５がPCシステム１を制御するため、PC通信オブジェクト３１に対して第１の命令を送信する。
【００３１】
次に、ステップＳ１４で、スレッド１３ｂの処理は、PC通信オブジェクト３１に移り、PC通信オブジェクト３１がPCデバイスドライバ５に対して受け取った第１の命令を送信する。ここで、命令形式の変更や、受け取った第１の命令の実行に複数の処理が必要な場合には、ステップＳ１４でそれらの様々な処理を実行し、また、複数の命令をPCデバイスドライバ５へ送信してもよい。
続いて、ステップＳ１５で、NCデバイスドライバ６は、PC通信オブジェクト３１から受け取った命令を実行し、上述のように、共有メモリ２１を介して、PCシステム１を制御する。ここで、PCシステム１の動作に時間がかかり、処理が終了するまでに時間がかかる場合がある。例えば、ステップＳ７〜Ｓ８まで、NCシステム２の制御にかかる時間よりも、ステップＳ１５〜Ｓ１６までにかかるPCシステム１の制御にかかる時間が長くなる場合がある。
次に、ステップＳ１６で、ステップＳ１４で送信された命令に基づいたPCデバイスドライバ５の処理が終了すると、ステップＳ１７でPCデバイスドライバ５は、第１の命令に対応する第１の処理結果をPC通信オブジェクト３１へ送信する。
【００３２】
この第１の処理結果を受け取ったPC通信オブジェクト３１は、ステップＳ１８でその第１の処理結果をPCコントローラI/Fオブジェクト３５へ送信する。ここで、上述ステップＳ１３〜Ｓ１８でPCコントローラI/Fオブジェクト３５及びPC通信オブジェクト３１が行っている処理は、第２の制御ステップである。
次に、第３の送信ステップＳ１９で、PCコントローラI/Fオブジェクト３５は第１の処理結果をスレッド１３ａで動作しているアプリケーションプログラム１３へ送信する。ここで、第１の処理結果の送信は、スレッド１３ａとスレッド１３ｂに共通のグローバル変数を用いて非同期的に行ってもよいし、他のスレッド間通信を用いて、アプリケーションプログラム１３がデータを受け取れる状態になってから同期的通信を実行し、スレッド１３ｂからスレッド１３ａへ第１の処理結果を送信するようにしてもよい。
【００３３】
続いて、終了ステップＳ２０において、スレッド１３ｂで実行されているPCコントローラI/Fオブジェクト３５は、自己のスレッド１３ｂを終了し、ＣＰＵタイム等のリソースを開放する。従って、他のスレッド、又はプロセスが使用できるパソコン２０のリソースが増え、FAシステムを効率的に動作させることができる。
【００３４】
一方、スレッド１３ａで動作しているアプリケーションプログラム１３は、ステップＳ１９で送信された第１の処理結果を受け取り、ステップＳ２１で、受け取った第１の処理結果に基づく処理を実行する。
以上の説明では、PCシステム１、NCシステム２を並列に制御する場合について説明したが、他の制御装置、例えば、SCシステム３、又は、RCシステム４等を制御する場合についても、対応する通信オブジェクト３３〜３４、モーションコントローラ３５又は３６が同様に動作する。
以上、説明したようにこの実施の形態では、コントローラI/Fオブジェクト３５〜３６及び通信オブジェクト３２〜３４を状況に応じて複数並列に実行することができ、１つの制御装置に対する処理を、他の制御装置に対する処理の終了を待つことなく実行することができ、FAシステムを高速に動作させることができる。
【００３５】
また、この実施の形態においては、PCコントローラI/Fオブジェクト３５等のライブラリ側にインタフェースコントロール手段を設け、インタフェース手段の数を動的に制御している。
図７〜図１０は、この実施の形態１のインタフェース手段の増減を説明する図であり、図７〜図１０において、図２及び図６と同一の符号は同一又は相当の部分を表している。３５ａは上述スレッド１３ａで実行される一方のPCコントローラI/Fオブジェクト３５であり、３５ｂはスレッド１３ｂで実行される他方のPCコントローラI/Fオブジェクト３５である。
３５ｃ、ｄは、PCコントローラI/Fオブジェクト３５に設けられたインタフェースコントロール手段であり、アプリケーションプログラム１３から呼ばれたメソッド毎に、新しいスレッドを生成する必要があるか否かを判断し、この判断に基づいて新しいスレッドを生成する手段である。例えば、PCシステム１に対するある制御が処理に時間がかかるものである場合には、インタフェースコントロール手段３５ｃ、ｄは、新しいスレッドを生成して、その新しいスレッドにPCシステム１に対する制御を実行させる。例えば、時間のかかるメソッドがアプリケーションプログラム１３から呼ばれた場合、そのメソッドの中に新しいスレッドを生成する命令を設けておくことでかかる機能を実現することができる。
【００３６】
また、このインタフェースコントロール手段３５ｃ、ｄは、新しいスレッドを生成するだけでなく、制御装置に対する処理が終了したと判断した場合には、新しく生成したスレッドを終了させる。例えば、新しいスレッドを終了させる場合、PCコントローラI/Fオブジェクト３５のメソッドの最後にスレッドを終了させる命令を設けておけば、新しく生成したスレッドを終了させることができる。
【００３７】
制御装置に対する制御を開始する場合、図７のように、インタフェースコントロール手段３５は１つである。もちろんここで、既に複数のインタフェースコントロール手段３５が起動されていても構わないが、ここでは説明の簡単のため１つのインタフェースコントロール手段３５が起動されているとする。
次に、図８のように、アプリケーションプログラム１３からステップＳ１でインタフェースコントロール手段３５のメソッドを呼ぶと、インタフェースコントロール手段３５ｃがそのメソッドに応じて新しいスレッド１３ｂを起動するか否かを判断する。ここでは、上述ステップＳ２の通り新しいスレッド１３ｂを起動する。これにより、PCコントローラI/Fオブジェクト３５ａ等がコピーされたと同様の効果が発生し、新しいスレッド１３ｂで実行されるPCコントローラI/Fオブジェクト３５ｂが生成される。
【００３８】
新しく生成されたPCコントローラI/Fオブジェクト３５ｂでは、PC通信オブジェクト３１等を介して上述図６を用いて説明したようにPCシステム１を制御する。一方、PCコントローラI/Fオブジェクト３５ａは、アプリケーションプログラム１３へ実行権を返す。
次に、図９に示すように、ステップＳ４でアプリケーションプログラム１３がNCシステム２に対する第２の命令を送信すると、PCコントローラI/Fオブジェクト３５ａのインタフェースコントロール手段３５ｃが新しいスレッドの生成の有無を判断する。ここで例えば、ステップＳ４で呼ばれたメソッドは処理時間がさほどかからないものであるとすると、インタフェースコントロール手段３５ｃは、新しいスレッドの生成を行わないと判断し、現在のスレッド、すなわち、PCコントローラI/Fオブジェクト３５ａでステップＳ５以降のNCシステム２に対する制御処理を行う。この機能は、例えば、このような処理時間が短いPCコントローラI/Fオブジェクト３５ａのメソッドに、新しいスレッドを生成する命令を備えないようにすることによって実現することができる。
【００３９】
続いて、ステップＳ９〜ステップＳ１１で、NCシステム２に対する処理が終了すると、図１０に示すようにPCコントローラI/Fオブジェクト３５ａは、アプリケーションプログラム１３に実行権を渡してしまう。他方、PCコントローラI/Fオブジェクト３５ｂ又はPC通信オブジェクト３１は、第１の命令をステップＳ１７〜１８で実行し、PCコントローラI/Fオブジェクト３５ｂがステップＳ１９で、第１の命令に対する処理結果をアプリケーションプログラム１３へ送信する。ここで、インタフェースコントロール手段３５ｄが第１の命令が終了したかを判断し、現スレッドが新しく生成されたものである場合には、スレッド１３ｂを終了して、図６に示すように、PCコントローラI/Fオブジェクト３５ｂを消滅させ、再び図７に示すようにインタフェース手段を１つに減らすことができる。上述の説明は、インタフェース手段を１つから２つ、そして再び１つに戻す場合について述べたが、２つから３つ、そして３つから２つにする場合にもパソコン２０は同様に動作し、アプリケーションプログラム１３がメソッドを何回か呼び出すことにより、ライブラリがインタフェース手段の生成の要否を判断し、複数のインタフェース手段を生成し、さらに、減少させることができる。
【００４０】
以上のように、インタフェース手段を並列制御する命令数に応じて自在に増減させることにより、１つの処理が終了するまで待たずに他の処理を高速に実行することができるという効果がある。
また、このようにインタフェース手段を減少させることにより、中央制御装置のＣＰＵタイム、メモリ等のリソースを有効に活用することができ、不要なインタフェース手段によってリソースが占有されることにより、中央処理装置の速度が落ちてしまうとうことを抑制することができる。
【００４１】
次に、アプリケーションプログラム１３の動作について、図１１を用いて説明する。以下の説明では、１つの制御装置に複数の命令を送信する場合について述べるが、上述の説明のように、１つの制御装置に１つの命令を送信する場合も、送受信する命令数とデータの数を換えれば同様に処理できる。図１１は、制御装置を制御するときのアプリケーションプログラム１３の処理を説明するフローチャートである。
まず、ステップＳ３０で、アプリケーションプログラム１３は、PC通信オブジェクト３１に対し初期化命令の実行を指示する。そして、PC通信オブジェクト３１は、PCデバイスドライバ５の初期化を呼び出しPCシステムを初期化する。
続いて、ステップＳ３１で、PC通信オブジェクト３１はPCデバイスドライバ５のデータエリアに通信条件を書込む。
次に、ステップＳ３２で、PCデバイスドライバ５はデータエリアに書込まれた通信条件に基づいてPCシステム１との間の通信回線をオープンする。
【００４２】
次に、ステップＳ３３で、アプリケーションプログラム１３は、PCコントローラI/Fオブジェクト３５にPC通信オブジェクト３１と接続するためのポインタを渡し、PCコントローラI/Fオブジェクト３５がPC通信オブジェクト３１に接続、すなわちアタッチする。ここでポインタを渡すため、アプリケーションプログラム１３はPCコントローラI/Fオブジェクト３５の有するデータエリアに、PC通信オブジェクト３１のポインタを書き込む。
【００４３】
そして、ステップＳ３４で、アプリケーションプログラム１３は、PCコントローラI/Fオブジェクト３５へn個の命令を送信し、PCコントローラI/Fオブジェクト３５がアタッチされたPC通信オブジェクト３１のPC命令領域に受け取ったn個の命令を書き込む。続いて、PC通信オブジェクト３１は、n個あるPC命令を随時実行し、例えばPC通信オブジェクト３１は、１番目のPC命令を実行すると１番目のPC命令の命令メッセージを作成し、命令メッセージをPCデバイスドライバ５の要求命令領域に送信する。PCデバイスドライバ５は、要求命令を通信回線を使ってPCシステム１へ送信する。ここでは、アプリケーションプログラム１３がn個の命令を送信したが、アプリケーションプログラム１３が送信した１個の命令をPCコントローラI/Fオブジェクト３５が解釈し、この１個の命令に対応する予め定められたn個の命令をPCコントローラI/Fオブジェクト３５がPC通信オブジェクト３１へ送信するようにしてもよい。
【００４４】
次にステップＳ３５で、PCデバイスドライバ５はステップＳ３２で送信した命令に対する処理結果を受信し、PC通信オブジェクト３１はPCデバイスドライバ５からの応答要求から処理結果を結果メッセージとして受信する。そして、アプリケーションプログラム１３は、PCコントローラI/Fオブジェクト３５を介して処理結果を受け取る。このとき、アプリケーションプログラム１３は、n個の命令に対する結果全てを一度に受けとってもよいし、１つ１つの命令の結果が出しだい逐次受け取ってもよい。
続いて、アプリケーションプログラム１３はステップＳ３６で実行すべき他のPC命令が残っているか判断し、実行するPC命令が有ればステップＳ３４へ戻り同様に処理を繰り返す。
【００４５】
ここでもし、残っているPC命令が無ければ、ステップＳ３７で、アプリケーションプログラム１３は、PCコントローラI/Fオブジェクト３５へデタッチを指令する。このデタッチの指令を受けたPCコントローラI/Fオブジェクト３５は、アタッチしていたPC通信オブジェクト３１を開放し、接続を切断する。ここで、デタッチするため、アプリケーションプログラム１３はステップＳ３３で書き込んだポインタのデータエリアに、NULLを書き込む。
【００４６】
なお、他のスレッドでPCコントローラI/Fオブジェクト３５が実行され、そのPCコントローラI/Fオブジェクト３５がPCシステム１に接続したい場合には、その他のスレッドで実行されているPCコントローラI/Fオブジェクト３５が上述ステップＳ３３から再び処理を開始してもよい。すなわち、１つのスレッドで実行されているPCコントローラI/Fオブジェクト３５から他のスレッドで実行されているPCコントローラI/Fオブジェクト３５へ、PC通信オブジェクト３１を接続し直すことができる。この場合、ステップＳ３０〜Ｓ３２の処理等を省略することができるため、高速に処理を実行できるという効果がある。
また、例えば、NC通信オブジェクト３２のように複数のコントローラI/Fオブジェクト３５、３６に接続される可能性がある通信オブジェクト３２〜３４の場合には、PCコントローラI/Fオブジェクト３５からモーションコントローラI/Fオブジェクト３６へ通信オブジェクトの接続先を換えることもできる。その際も、回線をクローズする前にステップＳ３３の再接続を行えば、回線のオーブン等の一部処理を省くことができ、高速な動作をすることができる。
【００４７】
次に、ステップＳ３８で、アプリケーションプログラム１３は、パソコン２０と制御装置との間の回線を閉じる命令「回線クローズ」をPCコントローラI/Fオブジェクト３５を介してPC通信オブジェクト３１へ送信する。この命令を受け取ったPC通信オブジェクト３１は、PCデバイスドライバ５へ回線クローズ命令を送信し、PCシステム１が回線を閉じる処理を実行する。
【００４８】
以上によりPCコントローラI/Fオブジェクト３５はPC通信オブジェクト３１の所有と解放を行い、所有している間にPCシステム１に操作命令を実行することができる。
また、上述説明では、PCシステム１の制御について説明したが、他の制御装置２〜４についても同様の制御が行われる。その際には、それらの制御装置２〜４に対応する各PCコントローラI/Fオブジェクト３５、３６、各通信オブジェクト３２〜３４が上述説明に相当する動作を行う。
また、各通信オブジェクト３１〜３４におけるデータ交換では、各制御装置１〜４によりデータフォーマットが異なるため、それぞれのデータフォーマットを用いてデータ交換を行う。すなわち、各々の通信オブジェクト３１〜３４はデータメンバとしてデータエリアに接続する制御装置１〜４のデータフォーマットを持っている。
【００４９】
また、上述のように、PCコントローラI/Fオブジェクト３５は、各通信オブジェクト３１〜３４を接続したり、切断したりすることにより、制御する制御装置１〜４を変更することができる。例えば、図４に示したようにNC通信オブジェクトにPC命令を持つので、PCコントローラI/Fオブジェクト３５は、NC通信オブジェクトを図１１のステップＳ３３によりアタッチして所有することができる。所有することによりPCコントローラI/Fオブジェクト３５からNCシステム２のPC機能に対して操作命令を実行することができる。同様に、PCコントローラI/Fオブジェクト３５からSC通信オブジェクト３３、RC通信オブジェクト３４に対してもPCの操作命令を実行することができる。
【００５０】
例えば、PCコントローラI/Fオブジェクト３５は、NC通信オブジェクト３２へPC機能をメッセージングし、モーションコントローラI/Fオブジェクト３６は、NC通信オブジェクト３２へモーション機能をメッセージングすることができる。メッセージを受けたNC通信オブジェクト３２は、メッセージングに従って、NCデバイスドライバ６へファンクションコールを行い、NCシステム２へアクセスする。NCシステム２からの結果は、上記の逆の経路を辿る。
【００５１】
従って、アプリケーションプログラム１３は、制御装置１〜４がなんであれ、アプリケーション機能のPC機能に対してはPCコントローラI/Fオブジェクト３５へメッセージングし、アプリケーション機能のモーション機能に対してはモーションコントローラI/Fオブジェクト３６へメッセージングすることにより所望の結果を得ることができる。
【００５２】
以上のように、この実施の形態によれば以下のような効果も得られる。
コンピュータ（アプリケーションプログラム）から制御装置にアクセスする場合、制御装置の保有する機能に対応したコントローラI/Fオブジェクトへメッセージングすることにより、個々の制御装置を意識することなく、制御装置へのアクセスが可能となり、アプリケーション開発が容易になる。さらに、不具合の発生の数を大幅に低減できると共に、アプリケーション開発者の負担を大幅に軽減する。また、複数の制御装置に対応したアプリケーション開発においても、共通の機能としてアクセス可能となり、アプリケーションプログラムのバージョンアップや保守作業が大幅に低減される。そして、それぞれのコントローラI/Fオブジェクト３５、３６及び通信オブジェクト３１〜３４は独立しているため、通信待ちによる処理の遅れの発生を抑制できる。
【００５３】
【発明の効果】
【発明の効果】
この発明は、以上に説明したように構成されているので、以下に記載されるような効果を奏する。
この発明にかかるファクトリーオートメーションシステムの制御方法においては、複数の制御装置を用いたファクトリーオートメーションシステムを制御する中央制御装置が上記複数の制御装置のうちの第１の制御装置及び第２の制御装置を制御するファクトリーオートメーションシステムの制御方法であって、既存のインタフェース手段に加えて新たなインタフェース手段を生成することにより、複数のインタフェース手段を起動する生成ステップと、上記中央制御装置に設けられ上記複数の制御装置の制御手順を有する制御手段が、上記第１の制御装置を制御する第１の命令を上記複数のインタフェース手段のうちのいずれか一方のインタフェース手段へ送信する第１の送信ステップと、上記複数のインタフェース手段のうち上記第１の命令が送信されなかった他方のインタフェース手段に、上記制御手段が上記第２の制御装置を制御する第２の命令を送信する第２の送信ステップと、上記第１及び第２の送信ステップの後に実行され、上記一方のインタフェース手段が上記第１の命令を実行し、この実行と並列に、上記他方のインタフェース手段が上記第２の命令を実行する並列実行ステップと、この並列実行ステップの後に実行され、上記第１の命令に対する処理結果を上記一方のインタフェース手段が上記制御手段へ送信する第３の送信ステップと、上記並列実行ステップの後に実行され、上記第２の命令に対する処理結果を上記他方のインタフェース手段が上記制御手段へ送信する第４の送信ステップと、この第４の送信ステップの後に実行され、上記他方のインタフェース手段が占有していたリソースを開放し、上記他方のインタフェース手段を終了させる終了ステップと、を備えたため、高速に処理を実行することができる。
【００５４】
また、上記終了ステップの後に実行され、上記制御手段が上記第３の送信ステップで送信された処理結果を受信し、受信した処理結果を処理するステップと、を備えたため、他方のインタフェース手段が占有していたリソースが開放され、第３の送信ステップで受信した処理結果をより高速に実行することができる。
【００５５】
この発明のプログラムを記録した記録媒体においては、アプリケーションプログラムからライブラリに対し、制御装置の制御が要求され、上記ライブラリに予め備えられた制御処理が呼び出された場合に、上記ライブラリが新たにスレッドを生成することにより、上記ライブラリに対して複数のスレッドを割り当てる生成ステップと、上記ライブラリが上記制御装置の処理に対応する上記制御装置からの処理結果を受け取る前に、上記ライブラリが上記複数のスレッドのうちの一方のスレッドを用いて上記アプリケーションプログラムへ実行権を返すリターンステップと、このリターンステップにより実行を再開したアプリケーションプログラムと並列に、上記ライブラリが上記複数のスレッドのうちの他方のスレッドを用いて上記制御装置の処理を実行し、上記制御装置を制御する第１の制御ステップと、上記リターンステップの後に実行され、上記制御装置の処理結果を上記他方のスレッドを用いて実行されていたライブラリから上記一方のスレッドを用いて実行されていた上記アプリケーションプログラムへ送信するステップと、をコンピュータに実行させるため、処理を高速に実行することができる。
【００５６】
また、上記リターンステップの後に実行され、上記一方のスレッドを用いて、上記アプリケーションプログラムが上記ライブラリに対して他の制御装置の制御を要求する要求ステップと、上記ライブラリが上記要求ステップの要求を受けて、上記他の制御装置の制御を上記第１の制御ステップと並列に実行する第２の制御ステップと、上記送信ステップの後に実行され、上記他のスレッドを用いて実行されていた上記ライブラリが上記他方のスレッドを終了させる終了ステップと、をコンピュータに実行させるため、不要に占有されているリソースを開放し、より高速に処理を実行することができる。
【００５７】
また、発明にかかるファクトリーオートメーションシステムの中央処理装置においては、複数の制御装置それぞれに対して、並列に命令を発行し、上記複数の制御装置を制御する制御手段と、この制御手段と上記複数の制御装置とを接続する複数のインタフェース手段と、上記制御手段が上記複数の制御装置に対し並列に発行する命令数に応じて、上記複数のインターフェース手段の数を動的に増減させるインタフェースコントロール手段と、を備えたため、処理を高速に実行することができる。
【００５８】
また、上記インタフェースコントロール手段は、上記制御手段が上記インタフェース手段に命令を送ったことを検知して上記インタフェース手段を増加させるため、制御手段による複数のインタフェース手段のコントロールの手間を省き、ユーザによる制御手段のプログラムが容易になる。
【００５９】
また、上記インタフェースコントロール手段は、命令の種類に応じて上記インタフェース手段を増加させるとともに、上記インタフェース手段を増加させる命令よりも処理時間の短い種類の命令に対しては、上記インタフェース手段を増加させず既存のインタフェース手段に上記処理時間の短い種類の命令を実行させるため、インタフェース手段がリソースを多く占有することを抑制し、高速に処理を実行することができる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１におけるファクトリーオートメーションシステムのハードウェアを表す機能ブロック図である。
【図２】  この発明の実施の形態１におけるファクトリーオートメーションシステムのソフトウェア構成を示す機能ブロック図である。
【図３】  この発明の実施の形態１におけるPC通信オブジェクトのメモリマップである。
【図４】  この発明の実施の形態１におけるNC通信オブジェクトのメモリマップである。
【図５】  この発明の実施の形態１におけるPCコントローラI/Fオブジェクトのメモリマップである。
【図６】  この発明の実施の形態１におけるパソコンの制御手順を示すシーケンス図である。
【図７】  この発明の実施の形態１におけるファクトリーオートメーションシステムを示す機能ブロック図である。
【図８】  この発明の実施の形態１におけるファクトリーオートメーションシステムを示す機能ブロック図である。
【図９】  この発明の実施の形態１におけるファクトリーオートメーションシステムを示す機能ブロック図である。
【図１０】  この発明の実施の形態１におけるファクトリーオートメーションシステムを示す機能ブロック図である。
【図１１】  この発明の実施の形態１におけるアプリケーションプログラムのフローチャートである。
【図１２】  従来の技術におけるファクトリーオートメーションシステムを表す機能ブロック図である。
【符号の説明】
１  PCシステム、  ２  NCシステム、３  SCシステム、  ４  RCシステム、５  PCデバイスドライバ、６  NCデバイスドライバ、７  SCデバイスドライバ、８  RCデバイスドライバ、１３  アプリケーションプログラム、３０  インタフェースプログラム、  ３１  PC通信オブジェクト、３２  NC通信オブジェクト、３３  SC通信オブジェクト、３４  RC通信オブジェクト、３５  PCコントローラインタフェースオブジェクト、３６  モーションコントローラインタフェースオブジェクト。
【図１】
0003651573.tif 000002
【図２】
0003651573.tif 000003
【図３】
0003651573.tif 000004
【図４】
0003651573.tif 000005
【図５】
0003651573.tif 000006
【図６】
0003651573.tif 000007
【図７】
0003651573.tif 000008
【図８】
0003651573.tif 000009
【図９】
0003651573.tif 000010
【図１０】
0003651573.tif 000011
【図１１】
0003651573.tif 000012
【図１２】
0003651573.tif 000013