(57)【要約】【課題】設備制御システム設計の検証の精度を向上し、制御システムのソフトウェアのテストを効率よく行うことのできる評価用システムを提供すること【解決手段】ＰＬＣ２０と、シミュレータ１５を制御ネットワーク５０に接続する。ＰＬＣは、実機用のユーザプログラムを実装したＣＰＵユニット２１と、実機用のモーションプログラムを実装したモーションコントロールユニット２３を備える。モーションコントローラは、理想動作と実際動作との時間差に基づく遅れ時間Δｔを備え、ユーザプログラムの実行に伴い発行された始動命令に基づいてモーションプログラムを実行し、理想値にしたがって位置データを出力するとともに、遅れ時間に基づいて実動作を予測した位置決め完了通知を出力する。シミュレータは、位置データに基づいてシミュレーションを行う。【選択図】        図５
2004259112.tif 000002
【特許請求の範囲】
【請求項１】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラとを備え、
前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラに対して出力する手段を有し、
前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力してモーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を推定する手段と、前記推定した遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段とを有することを特徴とする評価用システム。
【請求項２】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを備え、
前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラと前記シミュレータとに対して出力する手段と、前記モーションコントローラから完了通知を入力する手段と、入力した完了通知とをシミュレータに出力する手段とを有し、
前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力して前記モーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を推定する手段と、前記推定した遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段とを有し、
前記シミュレータは、前記始動命令を前記プログラマブルコントローラから入力したことに基づいてシミュレーションを開始する手段と、前記プログラマブルコントローラから入力した完了通知に基づいてシミュレーションを完了となるようにする手段とを有することを特徴とする評価用システム。
【請求項３】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを備え、
前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラと前記シミュレータとに対して出力する手段と、前記モーションコントローラから実際動作に関するデータを入力する手段と、前記モーションコントローラから完了通知を入力する手段と、入力した実際動作に関するデータと完了通知とをシミュレータに出力する手段とを有し、
前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力して前記モーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を推定する手段と、前記推定した遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段と、実際動作を推定する手段と、推定した実際動作に関するデータを前記プログラマブルコントローラに対して出力する手段と、を有し、
前記シミュレータは、前記指令値を前記プログラマブルコントローラから入力したことに基づいてシミュレーションを開始する手段と、前記プログラマブルコントローラから入力した実際動作に関するデータに基づいてシミュレーションを続行する手段と、前記プログラマブルコントローラから入力した完了通知に基づいてシミュレーションを完了となるようにする手段とを有することを特徴とする評価用システム。
【請求項４】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラとを備え、
前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラに対して出力する手段を有し、
前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力してモーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持する手段と、前記遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段とを有することを特徴とする評価用システム。
【請求項５】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを備え、
前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラと前記シミュレータとに対して出力する手段と、前記モーションコントローラから完了通知を入力する手段と、入力した完了通知とをシミュレータに出力する手段とを有し、
前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力して前記モーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持する手段と、前記遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段とを有し、
前記シミュレータは、前記始動命令を前記プログラマブルコントローラから入力したことに基づいてシミュレーションを開始する手段と、前記プログラマブルコントローラから入力した完了通知に基づいてシミュレーションを完了となるようにする手段とを有することを特徴とする評価用システム。
【請求項６】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを備え、
前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラと前記シミュレータとに対して出力する手段と、前記モーションコントローラから実際動作に関するデータを入力する手段と、前記モーションコントローラから完了通知を入力する手段と、入力した実際動作に関するデータと完了通知とをシミュレータに出力する手段とを有し、
前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力して前記モーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持する手段と、前記遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段と、実際動作を推定する手段と、推定した実際動作に関するデータを前記プログラマブルコントローラに対して出力する手段とを有し、
前記シミュレータは、前記指令値を前記プログラマブルコントローラから入力したことに基づいてシミュレーションを開始する手段と、前記プログラマブルコントローラから入力した実際動作に関するデータに基づいてシミュレーションを続行する手段と、前記プログラマブルコントローラから入力した完了通知に基づいてシミュレーションを完了となるようにする手段とを有することを特徴とする評価用システム。
【請求項７】
前記制御ネットワークに、ネットワークトレースモニタ装置を接続し、
そのネットワークトレースモニタ装置が、前記制御ネットワーク上を伝送する情報をモニタリングするようにしたことを特徴とする請求項１乃至６のいずれかに記載の評価用システム。
【請求項８】
制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のロボット制御用のプログラムを実装したロボットコントローラと、仮想Ｉ／Ｏ情報を出力する仮想Ｉ／Ｏ用プログラマブルコントローラとを備え、
制御ネットワークを介して送受した前記仮想Ｉ／Ｏ用プログラマブルコントローラからの仮想Ｉ／Ｏ情報に基づいて前記実機用のユーザプログラム並びにロボット制御用のプログラムを実行させるように構成したことを特徴とする評価用システム。
【請求項９】
モーション制御を行うモーションプログラムを備えたモーションコントローラであって、
理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持し、
入力した始動命令に基づいて前記モーションプログラムを実行して被制御機器に指令値を出力し、
前記遅れ時間情報に基づいて実動作を予測した完了タイミングの時に完了通知を出力することを特徴とするモーションコントローラ。
【請求項１０】
実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを制御ネットワークに接続して評価用システムを構築し、
前記モーションコントローラに、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持させ、前記プログラマブルコントローラにおけるユーザプログラムの実行に伴い発行された始動命令に基づいて前記モーションプログラムを実行し、順次指令値を出力し、
前記シミュレータは、前記指令値に基づいてシミュレーションを行い、
かつ前記モーションコントローラは、前記遅れ時間情報に基づいて実動作を予測した完了通知を出力し、
その完了通知の出力並びにシミュレータのシミュレーション結果に基づいてモーション制御の評価を行うことを特徴とする評価方法。
【請求項１１】
実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを制御ネットワークに接続して評価用システムを構築し、
前記プログラマブルコントローラにてユーザプログラムの実行に伴い始動命令が発行されて、モーションコントローラに出力され、
前記モーションコントローラに、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持させ、前記プログラマブルコントローラからの始動命令に基づいて前記モーションプログラムを実行し、順次指令値を出力するとともに、前記遅れ時間情報に基づいて実動作を予測した完了通知を出力し、
前記シミュレータは、モーションコントローラの前記指令値および完了通知を入力して、シミュレーションを行い、そのシミュレーション結果に基づいてモーション制御の評価を行うことを特徴とする評価方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、評価用システム及び評価方法並びにモーションコントローラに関するものである。
【０００２】
【従来の技術】
例えば、生産工場に設置するＦＡシステムを構築する場合、生産対象にあわせてどうような装置構成を設計したり、各装置，機器の仕様や動作タイミングを規定するタイムチャートなどを作成した（企画設計フェーズ）後、各装置を動作させるためのプログラムなどの開発を行う。すなわち、ＰＬＣを動作させるためのユーザプログラムをラダー言語で作成したり、モーションコントローラを動作させるためのモーションプログラムを作成したり、ロボットを動作させるためのプログラムをロボット言語で作成したりする（実装フェーズ）。
【０００３】
そして、この実装フェーズにて作成したソフトウェア等の設計が正しく、かつ機器，モータ選定などにより妥当な設計になっているかは、実装フェーズの次の設計検証フェーズで行う。この設計検証フェーズでは、計算値を求めて机上検証を行うものであった。
【０００４】
そして、このようにして作成したプログラムが正常に動作するかの検証を行う。この検証は、通常現場での調整フェーズで行う。すなわち、使用する実機を用意し、実際に各位置に配置するとともに制御ネットワークに接続する。そして、ＰＬＣやモーションコントローラ等に対しては、作成したプログラムをダウンロードする。この状態で実際に各プログラムを動作させて検証を行い、不具合が生じた場合には、適宜調整を行うことになる。
【０００５】
従って、現場での調整フェーズを実行する際には、各種プログラムのソフトウェアと、実機のハードウェアの両方がそろっている必要がある。その結果、フトウェアが完成してもハードウェアが完成・調達できていないと検証はできない。また、実際の設備がない時期に事前にソフトウェアのテストや設計の検証を精度よく行いたいという要求はあるが、上記のように実機でのテストを必須とすると事前検証ができず、結果として設計から実際のシステム立ち上げまでにかかる時間が長期化してしまう。
【０００６】
一方、事前に検証する方法として、一般に各種のシミュレーションを行うことがある。そして、制御システムを対象とした検証用シミュレーションシステムは、シミュレータ上の仮想メカやロボットの動作をシミュレーション言語で記述し、仮想的にＰＬＣのＩ／Ｏ動作を確認するようにしたものがある。なお、従来のこの種の公知文献としては、例えば特許文献１に開示された機器制御プログラムの開発支援システム及び開発支援方法があった。
【０００７】
【特許文献１】
特開平１０−１４３２２１号
【０００８】
【発明が解決しようとする課題】
しかしながら、実際のＰＬＣやモーションコントローラで使う制御言語は、ラダー言語であったり、Ｇ言語やモーション用の独自言語なので、シミュレーションの際に使用するプログラム言語とは異なるため、実際に動くプログラムでのタイミングを精度よく検証することや制御プログラムの正常，異常動作テストには使えなかった。そのため、設計用のシミュレーションシステムと実システムが別プログラムとなるため、データ入力やプログラム開発の２度手間が発生したり、課題ごとに部分的に利用するしかなかった。
【０００９】
またシミュレーション言語やタイミングチャートからプログラムを自動生成する方法は、本発明の目的とする制御プログラムに１００％変換できるものではないため、利用は部分的なものにとどまっていた。
【００１０】
さらにまた、分散制御構成では、ネットワークの通信時間がタイミングに影響を与え、ＰＬＣやロボット間のロジックやタクトタイムが影響を受ける。しかし、リアルタイム通信を含めてシミュレーションすることは工数が大きく実用的でなかった。そのため、従来のシミュレーションでは、ＦＡシステムの設計・構築に際しては、実用に供し得ることはできなかった。
【００１１】
この発明は、設備制御システム設計の検証の精度を向上し、制御システムのソフトウェアのテストを効率よく行うことのできる評価用システム及び評価方法並びにモーションコントローラを提供することを目的とする。
【００１２】
【課題を解決するための手段】
この発明による評価用システムでは、制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラとを備え、前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラに対して出力する手段を有し、前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力してモーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を推定する手段と、前記推定した遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段とを有するようにした。
【００１３】
ここで、「理想動作と実際動作との時間差」は、モーションコントローラが被制御機器に対して一連の動作をさせる場合の、理想動作の動作開始から動作終了と、実際動作の動作開始から動作終了までの時間の差である。実施の形態では、図４に示すΔｔに対応する。また、一連の動作とは、ある動作開始からある動作終了までのことをいう。例えば、速度が生じてから速度がゼロになるまでの間の動作で、図４でいうと動作開始する台形の左下から動作停止する台形の右下までのことである。もちろん、一連の動作として▲１▼加速段階の動作、▲２▼定速動作、▲３▼減速動作などと細分化してもよい。つまり図４でいうと、それぞれ▲１▼台形の左の直角三角形部分、▲２▼真ん中の長方形部分、▲３▼右の直角三角形部分となる。
【００１４】
「遅れ時間情報を推定する」とは、実際には所定の計算式によって求めることになる。例えば、負荷慣性，慣性モーメントを算出する（３７５／ＧＤ２）（１／Ｓ）により求めることができる。さらに、完了通知は、実際の被制御機器の負荷などを考慮した実動作を想定して、仮想的に計算式で求めた完了タイミングになった時点を知らせるための通知である。具体的には、たとえは理想動作の完了時点から、遅れ時間だけ遅れたときに完了通知を発行することができる。
【００１５】
また、制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを備え、前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラと前記シミュレータとに対して出力する手段と、前記モーションコントローラから完了通知を入力する手段と、入力した完了通知とをシミュレータに出力する手段とを有し、前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力して前記モーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を推定する手段と、前記推定した遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段とを有し、前記シミュレータは、前記始動命令を前記プログラマブルコントローラから入力したことに基づいてシミュレーションを開始する手段と、前記プログラマブルコントローラから入力した完了通知に基づいてシミュレーションを完了となるようにする手段とを有するようにすることもできる。
【００１６】
シミュレータは、実施の形態で言う３Ｄ離散型シミュレータ部や３Ｄ機構シミュレータ部など各種のシミュレーションを行う装置であり、そのシミュレーションの際に遅れ時間を考慮して動作することにより、実際の動作に即したシミュレーションを行うことができる。シミュレーションの一例として、３Ｄシミュレータがあり、この３Ｄシミュレータにおけるシミュレーションは、設備装置・ロボットなどのメカ動作を視認できるように仮想的にその動作を表示することであり、シミュレーション完了は、メカ動作の終了状態を表示することである。このとき、遅れ時間を考慮し、終了状態になるのも理想動作から所定時間遅れるような動作を行う。
【００１７】
さらにまた、制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを備え、前記プログラマブルコントローラは、前記ユーザプログラムの実行に伴い始動命令を発行して前記モーションコントローラと前記シミュレータとに対して出力する手段と、前記モーションコントローラから実際動作に関するデータを入力する手段と、前記モーションコントローラから完了通知を入力する手段と、入力した実際動作に関するデータと完了通知とをシミュレータに出力する手段とを有し、前記モーションコントローラは、前記始動命令を前記プログラマブルコントローラから入力して前記モーションプログラムを実行する手段と、理想動作と実際動作との時間差に基づく遅れ時間情報を推定する手段と、前記推定した遅れ時間情報に基づいて実動作を予測した完了通知を前記プログラマブルコントローラに対して出力する手段と、実際動作を推定する手段と、推定した実際動作に関するデータを前記プログラマブルコントローラに対して出力する手段とを有し、前記シミュレータは、前記指令値を前記プログラマブルコントローラから入力したことに基づいてシミュレーションを開始する手段と、前記プログラマブルコントローラから入力した実際動作に関するデータに基づいてシミュレーションを続行する手段と、前記プログラマブルコントローラから入力した完了通知に基づいてシミュレーションを完了となるようにする手段とを有するようにするとよい。
【００１８】
ここで、「実際動作を推定する」とは、例えば、設備機器やロボットなどの連続的な動作を計算式によって求めることである。あるタイミング毎の動作状態を連続的につなぐことで、動作全体を表現できる。また、「シミュレーションを続行する」とは、例えば、設備機器やロボットなどの動作を連続的に視認的に表示することである。
【００１９】
また、上記した各発明では、「遅れ時間情報を推定する手段」をモーションコントローラ内に実装したが、本発明はこれに限ることはなく、ツールその他で求めたものを、モーションコントローラに設定し、記憶保持させるようにすることもできる。なお、モーションコントローラに推定する手段を実装しておくと、ユーザは特に別途遅れ時間情報を求め、それを設定する必要が無くなるので、便利となる。
【００２０】
モーションコントローラは、実施の形態ではモーションコントロールユニットに対応する。実施の形態にも示したように、モーションコントローラは、ＰＬＣに組み込まれても良いし、別途形成しても良い。また、ＰＬＣに組み込んだ場合には、モーションコントローラは、例えばＰＬＣのＣＰＵユニットを介して制御ネットワークに接続されることになる。つまり、制御ネットワークに接続されるとは、直接接続されるもののみならず、間接的に接続されるものも含む。
【００２１】
モーション制御においては、設定動作（理想動作）と実際動作とでは時間差が必ず生じる。そこで、本発明では、係る時間差を遅れ時間情報としてモーションコントローラに設定しておき、制御対象の実機を接続しないシミュレーション時に、その遅れ時間情報を考慮することにより、検証精度が高まる。さらに、ユーザプログラム並びにモーションプログラムは、実際に使用する本物であるので、精度のよい検証が行われるばかりでなく、検証が終わったプログラムは、そのまま実機において使用可能となる。
【００２２】
そして、上記した発明を前提とし、前記制御ネットワークに、ネットワークトレースモニタ装置を接続し、そのネットワークトレースモニタ装置が、前記制御ネットワーク上を伝送する情報をモニタリングするようにしてもよい。このようにすると、モニタリング結果をモニタ装置の表示装置に表示することにより、各装置の動作タイミングが一目でわかるので、好ましい。
【００２３】
また、制御ネットワークに接続された実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のロボット制御用のプログラムを実装したロボットコントローラと、仮想Ｉ／Ｏ情報を出力する仮想Ｉ／Ｏ用プログラマブルコントローラとを備え、制御ネットワークを介して送受した前記仮想Ｉ／Ｏ用プログラマブルコントローラからの仮想Ｉ／Ｏ情報に基づいて前記実機用のユーザプログラム並びにロボット制御用のプログラムを実行させるようにしてもよい。これにより、入出力機器等の実機が無くても、実際に使用するユーザプログラムとロボット制御用のプログラムを用いて、シミュレーションが行え、しかも、制御ネットワークを介して情報の伝送を行うので、実際の動作環境に近いシミュレーションによる評価が行える。
【００２４】
さらに、上記した各発明では、実機と実機用プログラムと制御ネットワークを利用することで、システム全体のタクトタイムやタイミングを精度よく確認できる。また、設計の実機による検証ができる。さらに、今まで並行作業ができなかった設備機械の製作と、プログラムのテストが並行作業できるので生産立上げ期間が短縮できる。
【００２５】
また、本発明に係るモーションコントローラは、モーション制御を行うモーションプログラムを備えたモーションコントローラであって、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持し、入力した始動命令に基づいて前記モーションプログラムを実行して被制御機器に指令値を出力し、前記遅れ時間情報に基づいて実動作を予測した完了タイミングの時に完了通知を出力する機能を有するようにした。
【００２６】
また、本発明に係る評価方法は、実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータを制御ネットワークに接続して評価用システムを構築する。そして、前記モーションコントローラに、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持させる。この状態で、前記モーションコントローラは、前記プログラマブルコントローラにおけるユーザプログラムの実行に伴い発行された始動命令に基づいて前記モーションプログラムを実行し、順次指令値を出力し、前記シミュレータは、前記指令値に基づいてシミュレーションを行う。さらに、前記モーションコントローラは、前記遅れ時間情報に基づいて実動作を予測した完了通知を出力し、その完了通知の出力並びにシミュレータのシミュレーション結果に基づいてモーション制御の評価を行うようにした。ここで、「モーションコントローラの指令値」とは、実際動作を推定した結果のことを言う。
【００２７】
また、本発明に係る評価方法では、実機用のユーザプログラムを実装したプログラマブルコントローラと、実機用のモーションプログラムを実装したモーションコントローラと、シミュレータとを制御ネットワークに接続して評価用システムを構築し、前記プログラマブルコントローラにてユーザプログラムの実行に伴い始動命令が発行されて、モーションコントローラに出力され、前記モーションコントローラに、理想動作と実際動作との時間差に基づく遅れ時間情報を記憶保持させ、前記プログラマブルコントローラからの始動命令に基づいて前記モーションプログラムを実行し、順次指令値を出力するとともに、前記遅れ時間情報に基づいて実動作を予測した完了通知を出力し、前記シミュレータは、モーションコントローラの前記指令値および完了通知を入力して、シミュレーションを行い、そのシミュレーション結果に基づいてモーション制御の評価を行うようにすることもできる。
【００２８】
【発明の実施の形態】
図１は、本発明の好適な一実施の形態を実現するシステム全体を示している。図１に示すように、パソコン１０，ＰＬＣ２０，仮想Ｉ／Ｏ用ＰＬＣ３０並びにロボットコントローラ４０が制御ネットワーク５０に接続されている。パソコン１０は、ネットワークインタフェース１１を介して制御ネットワーク５０に接続されるとともに、本実施の形態では、各種のアプリケーションプログラムをインストールすることにより、異なる機能（装置）を構成するようになっている。
【００２９】
すなわち、３Ｄ  ＣＡＤ部１３は、設備機械の形状，寸法を３次元ＣＡＤデータとして設計するためのツールである。機械の設計はＣＡＤによって行われる。そして、この３Ｄ  ＣＡＤ部１３にて作成された３次元ＣＡＤデータは、３Ｄ離散系シミュレータ部１４と３Ｄ機構シミュレータ部１５に読み込まれる。なお、この３次元ＣＡＤデータは、例えば制御ネットワーク５０を介して伝送されるようにしても良いし、別途記憶媒体を介して渡すようにしても良い。
【００３０】
３Ｄ離散系シミュレータ部１４では、生産ラインのワークの流れを中心にして、要求された生産性を上げるために加工時間や搬送時間を設計し、バッファの量を設計するものである。また、３Ｄ機構シミュレータ部１５では、割り当てられた加工時間や搬送時間でロボットや治具の機器動作を設計し、干渉やタイミングをチェックする。これらの要素によって、机上で図面やチャートで行われていたものをコンピュータで実行し、ダイナミックな動作を確認できるようになる。なお、これら３Ｄ  ＣＡＤ部１３，３Ｄ離散系シミュレータ部１４並びに３Ｄ機構シミュレータ部１５は従来公知のものであるので、その詳細な説明を省略する。
【００３１】
また、従来の設備設計の手順を確認すると、「企画設計フェーズ」→「実装フェーズ」→「設計検証フェーズ」→「現場検証フェーズ」の順番で順次実行する。そして、上記した３Ｄ  ＣＡＤ部１３，３Ｄ離散型シミュレータ１４並びに３Ｄ機構シミュレータ部１５を用いて実行するシミュレーション等は、上記した企画設計フェーズを行うことになる。
【００３２】
そして、パソコン１０を用いたシミュレーションでは、問題ごとのモデルをシミュレーション言語によってプログラムすることでシミュレーションしており、実機のプログラムとは異なるアルゴリズムで動作している。したがって、設計通りに実際の制御機器が動作するかどうかは、プログラミングツール部１６を使って実機のプログラムを作成し、ＰＬＣ２０やロボットコントローラ４０にダウンロードし、実際の機械でテストや調整をすることになる。
【００３３】
そこで、このプログラミングツール部１６で行う各装置用のプログラム作成は、上記した「実装フェーズ」を行うことになる。つまり、企画設計フェーズで作成した設計にしたがって、プログラミングツール部１６を用いて、ロボット，ＰＬＣ，モーションコントローラを動作させるための制御プログラム（ユーザプログラム）を、それぞれの言語で作成していく。また、このように各プログラムを作成し、ロボット，ＰＬＣ，モーションコントローラにダウンロードする機能は、従来と同様であるので、その詳細な説明を省略する。そして、本発明との関係で言うと、後述するモーションコントローラにおける「遅れ時間」を計算し、モーションコントロールユニットに設定する機能を有する。
【００３４】
ネットワークトレースモニタ部１２は、制御ネットワーク５０上を伝送されるパケットをモニタリングする機能を持ち、仮想Ｉ／Ｏ，ロボット，モーションコントローラなどの制御システムのイベント動作を時間とともに記録する。そして、記録したデータは、例えば表示画面に表示する。これにより、ユーザは、正しく動作しているか否かを知ることができる。なお、制御ネットワーク上を伝送される情報（パケット）をモニタリングする機能自体は、従来公知のアルゴリズムを用いて実現できる。
【００３５】
なお、図１では各機能部は、個々のパソコン１０にインストールされ別々の装置として記載しているが、複数の機能部を１つのパソコン１０にインストールしてももちろん良い。
【００３６】
また、ＰＬＣ，ロボット，モーションコントローラは実機の本番と同じプログラムを動作させるテスト環境を構成している。すなわち、ＰＬＣ２０は、所望の機能を実現する複数のユニットを連結して構成されるもので、ユーザプログラムを実行し、入出力機器の制御等を行うＣＰＵユニット２１と、制御ネットワーク５０に接続され、その制御ネットワーク５０に接続された他の装置と通信を行うネットワークユニット２２と、モーション制御を実行するモーションコントロールユニット２３を備えている。もちろん、本発明との関係で３つのユニットを図示したが、これら３つのユニット以外にも、電源ユニットや、ＩＯユニットや、マスタユニットなどのユニットが必要に応じて連結される。
【００３７】
ロボットコントローラ４０は、制御ネットワーク５０に接続するためのネットワークインタフェース４１と、実際にロボットを動作させる命令を出力するロボットコントローラ部４２を備えている。上記したＰＬＣ２０を構成するＣＰＵユニット２１，ネットワークユニット２２並びにロボットコントローラ４０も基本的に従来の実機と同様であるので、その機能も従来と同様である。また、モーションコントロールユニット２３は、例えば制御ネットワーク５０を介して取得した入力信号に従い、そのモーションコントロールユニット２３に接続された制御対象の機器（サーボモータ等）に対してモーション制御を行うといった基本機能は、従来と同様であるが、本発明ではプログラミングツール部１６にて設定された「遅れ時間」に基づく処理を実行する機能が付加されている。なお、詳細は後述する。
【００３８】
仮想Ｉ／Ｏ用ＰＬＣ３０は、機械に設置されたセンサをＯＮ／ＯＦＦさせるイベントを仮想的に作り出すプログラムを動作させるものである。つまり、ユーザプログラムを実行し、仮想Ｉ／Ｏ用ＰＬＣ３０入出力機器の制御等を行うＣＰＵユニット３１と、制御ネットワーク５０に接続され、その制御ネットワーク５０に接続された他の装置と通信を行うネットワークユニット３２と、Ｉ／Ｏユニット３３を備えている。実機であれば、このＩ／Ｏユニットにセンサなどの入力機器が接続され、その入力機器から与えられたＩ／Ｏ情報（入力信号）をＰＬＣ２０に与えるが、本実施の形態では、ＣＰＵユニット３１に実装されたユーザプログラムにしたがって、所定のタイミングで入力信号（センサのＯＮ／ＯＦＦ）を仮想的に生成し、送信するようにしている。
【００３９】
これにより、実機がなくても実際に使用する機器のタイミングでイベントが発生し、そのイベントであるＩ／Ｏ情報が実際に制御ネットワーク５０を介してＰＬＣ２０に伝達され、ＰＬＣ２０側では、ネットワークユニット２２が受信するとともに、ＣＰＵユニット２１のサイクリックな処理の所定タイミングでネットワークユニット２２が受信したＩ／Ｏ情報をＣＰＵユニット２１が取り込み、モーションコントロールユニットがその取り込んだＩ／Ｏ情報を取得することができる。そして、その取得したＩ／Ｏ情報に従って、ＣＰＵのユーザプログラムや、モーション制御のプログラムを実行させることができる。
【００４０】
そして、ＰＬＣ２０（ＣＰＵユニット２１，モーションコントロールユニット２３）や、ロボットコントローラ４０にダウンロードしたプログラムは、ラダー言語，ロボット言語などの実際に使用する言語で作成した本物である。よって、実機がなくても、仮想Ｉ／Ｏ用ＰＬＣ３０からの仮想Ｉ／Ｏ情報に従って実際に使用するプログラムの動作チェック・検証を行うことができる。
【００４１】
このように、本発明では、現場調整フェーズを、実機が存在しない状態でも現場調整と同様の精度で効率的に行うことができる。したがって、各フェーズを順次行うのではなく、並行にインクリメンタルに行うことができる。これにより設計精度を高め、結果として開発期間短縮につながる。
【００４２】
次に、モーション制御についての検証について説明する。図２は、モーション制御の一形態を含むクランプ制御を示している。このクランプ制御は、固定ガイド６０にて位置決めされたワーク６１に対しクランプ部６２が前進移動しワーク６１を保持する。この状態で加工ロボット６３のアーム６３ａを移動させてワーク６１に対して所定の処理をするものである。
【００４３】
そして、クランプ部６２を前進移動させるのは、サーボモータ６４の出力軸をウォームギヤ６５に連結し、回転運動を直進運動に変換する。そして、この変換した直線運動は、ウォームギヤ６５に連携させたロッド６６に伝達することにより、ロッド６６の先端に取り付けたクランプ部６２をＸ軸方向に前進移動させるようにしている。また、クランク部６２にはソレノイド６７が取り付けられており、所定のタイミングでソレノイド６７を動作させることによりワーク６１を把持することができるようになる。
【００４４】
サーボモータ６４の出力軸が１回転したときにクランプ部６２がＸ軸方向に移動する距離はウォームギヤのギヤ比その他から既知であるので、サーボモータ６４の回転を制御することにより、クランプ部６２の移動速度や移動距離を制御できるとともに、基準位置からの移動距離にしたがって現在どの位置に存在しているかもわかる。これにより位置制御ができる。一方、クランプ部６２が目的地まで移動して停止するよりも少し前からソレノイド６７を動作させ、目的地に達したときに確実に把持できるように制御される。
【００４５】
このクランプ制御は、モーションコントロールユニット２３によるモーション制御によってサーボモータの動作が制御され、ＣＰＵユニット２１のＩ／Ｏ制御によりソレノイド６７の動作が制御され、ロボットコントローラ４０により加工ロボット６３の動作が制御される。従って、ソレノイド，サーボモータ並びに加工ロボットの動作は、相互にタイミングを取る必要がある。つまり、それぞれ動作させるＣＰＵユニット２１，モーションコントロールユニット２３並びにロボットコントローラ４０を協調動作させる必要があり、各始動タイミングが合っているかなどの検証と調整を行う必要がある。
【００４６】
また、図３に示すような、搬送制御においても、サーボモータとセンサを使ったＰＬＣ制御，加工用ロボット制御を必要としている。つまり、間歇駆動する搬送コンベア７０の上にワーク７１が配置された状態で、ワーク７１を搬送する。そして、ワーク７１が所定位置（ワーク加工位置）に来たならば、搬送コンベア７０を一時停止させる。そして、ワーク加工位置に向かって加工ロボット７２のアームを移動させ、ワーク加工位置にあるワーク７１に対して加工処理をする。加工後は搬送コンベア７０の搬送を再開する。搬送コンベア７０は、サーボモータ７３の回転出力により動作するため、モーション制御が行われ、加工ロボットに対する制御はロボットコントローラ４０が行う。
【００４７】
そして、本実施の形態におけるモーション制御の検証は、ロボットコントローラ４０に替えて、機構部分の動作を３Ｄ機構シミュレータにより行うようにした。
【００４８】
ところで、上記したモーションコントロールユニット２３による実際のモーション制御は、例えば図４中破線で示すような理想速度台形線図に従って、時間の経過に伴って目標速度をパラメータとして制御対象（この場合、サーボモータ）に与える。実際には、サーボモータを駆動させるサーボドライバに与え、サーボドライバは与えられた目標速度になるようにサーボモータを制御する。しかし、現実の速度は、負荷その他の要因から理想速度台形線図通りには動作せず、例えば図４中の実線で示すように少し遅れて動作する。これにより、実際の動作時間は、目標動作時間よりもΔｔだけ長くなり、そのΔｔが誤差となる。
【００４９】
そこで、本実施の形態では、遅れ時間Δｔを考慮して実際の動作時間を推定し、そのΔｔを含んだ動作時間を用いて各種のシミュレーション・検証を行うようにした。すなわち、このシミュレーションを行う場合のシステム構成としては、図５に示すようにＰＬＣ２０（ＣＰＵユニット２１，モーションコントロールユニット２３）と、パソコン１０（３Ｄ機構シミュレータ部１５）を用いる。ＣＰＵユニット２１とモーションコントロールユニット２３の間では、ＰＬＣ２０内部のシステムバスを介して情報の送受を行い、ＣＰＵユニット２１と３Ｄ機構シミュレータ部１５との間では、制御ネットワーク５０を介して情報の送受を行う。
【００５０】
この図５は、図４に示す搬送コンベアの動作に対するモーション制御を検証する評価用システムを示している。すなわち、ＣＰＵユニット２１には、搬送コンベアの動作を制御する搬送ラダーが実装される。また、モーションコントロールユニット２３には、実機で使用するモーション言語によるモーションプログラムと、位置制御のための図４の理想速度台形線図等のパラメータが設定されるとともに、誤差となる遅れ時間Δｔも設定する。さらに、３Ｄ機構シミュレータ部１５には、サーボモータの駆動に伴い動作する搬送コンベアについての仮想メカ部が用意される。このとき、遅れ時間Δｔを含んだ動作時間情報も組み込まれている。
【００５１】
係る評価用システムにおいて、まずＣＰＵユニット２１がユーザプログラムをサイクリックに演算実行する。そして、搬送ラダーのプログラム部分の実行により、例えば、加工ロボットの処理終了等、搬送コンベアの運転開始条件を具備すると、モーションコントロールサイクル（ＭＣサイクル）の開始を、モーションコントロールユニット２３と３Ｄ機構シミュレータ部１５に与える。
【００５２】
これに伴い、モーションコントロールユニット２３側では、設定されたパラメータに従って、所定タイミングで位置データ（図４で言う速度データ）を出力する。この位置データは、ＣＰＵユニット２１さらにはネットワークユニット２２を介して制御ネットワーク５０へ出力され、その制御ネットワーク経由で３Ｄ機構シミュレータ部１５に送られる。
【００５３】
ＭＣサイクルの開始信号を受けた３Ｄ機構シミュレータ部１５では、仮想メカ部での搬送を開始し、順次取得する位置データに基づいて、その搬送状態を図示省略する表示装置に出力表示し、搬送コンベアが回転しワークが搬送される状態を表示する。
【００５４】
ここで本発明では、モーションコントロールユニット２３が、遅れ時間Δｔを保有しているので、１つの理想速度台形線図についての位置データの送信完了後、Δｔ経過したときにＣＰＵユニット２１に向けて位置決め完了信号を出力する。この位置決め完了信号は、ＣＰＵユニット２１に与えられる。また、位置データに基づいて動作した仮想メカ部が搬送完了した場合、その完了情報が制御ネットワーク５０経由でＣＰＵユニット２１に伝えられる。
【００５５】
つまり、実際のシステムでは、モーションコントロールユニット２３に制御対象のサーボモータ（サーボドライバ）が接続されるが、このシミュレーションの場合、モーションコントロールユニット２３内でサーボアンプへの信号を折り返し、遅れ時間Δｔを加えて動作させ、各種の信号をＣＰＵユニット２１等へ出力するようにしているので、サーボアンプから先の機器を接続しなくても、モーションプログラムからみて同じ動作をすることになる。
【００５６】
このように、モーションコントロールユニット２３の内部で仮想的に遅れ時間Δｔを作り出すことによって、実際の機器を接続しなくてもサーボ系を精度よくシミュレーションすることができる。しかも、シミュレーションの際に使用するモーションプログラムは、モーションコントロールユニット２３に実装された本物のモーションプログラム（実機プログラム）を使うので、簡単に精度高い検証ができる。そして、実機プログラムを使うことで、検証した内容の実現性はきわめて高くなる。さらに、シミュレーションさせた仮想メカ部は、ロボット等に対応するものであり、実際の動作に近いシミュレーション動作ができるので信頼性が高い。
【００５７】
さらにまた、デバッグテストやタイミングのテストを行うことができる。図２や図３の仮想メカに対して、モーションコントローラ（モーションコントロールユニット２３）から現在位置情報を送り、仮想メカは、位置情報に合わせて３次元座標空間上にリアルタイムで表示する。このことでＣＡＤ機能による干渉チェックや、現場調整で行っているメカを動かしながらのテストができる。
【００５８】
そして、上記した評価用システムを用いたモーションコントロールの具体的なシミュレーション手順は、図６に示すフローチャートのようになる。すなわち、まず機械系の基本設計，レイアウトを設計し、それに基づいて機構を決定する（ＳＴ１，ＳＴ２）。次いで、制御対象の動作パターンをモータ軸での動作パターンに換算する（ＳＴ３）。これにより、図４中波線で示した理想状態での速度線図（動作パターン）が求められる。
【００５９】
次いで、ステップ１，２で決定した機構の条件等に基づき、サーボモータが回転した際の負荷イナーシャや負荷トルクさらには回転数を算出する（ＳＴ４）。そして、算出したモータの条件（何ワット，何トルク等）にあうモータを仮選定する（ＳＴ５）。
【００６０】
仮選定したモータの仕様に基づき、加減速トルク，瞬間最大トルク，実効トルクを計算する（ＳＴ６）。そして、今まで算出した各データに基づき、仮選択したモータの適否を判断し、不適の場合にはよりよいモータを選定する。これにより、使用するモータが確定する（ＳＴ７）。なお、ここまでの処理は、従来と同様である。
【００６１】
次いで、ステップ７までで決定されたモーション制御を行うシステム構成から、速度線図の遅れ時間Δｔを推定する（ＳＴ８）。つまり、遅れ時間Δｔは、負荷イナーシャや負荷の大きさなどによって決定されるため、各ステップ部で求めた各値を遅れ時間の算出式に代入することにより求めることができる。なお、遅れ時間の算出式自体は従来公知の各種のものを用いることができる。
【００６２】
次いで、このようにして求めた遅れ時間Δｔも考慮した動作時間に基づきモーションコントロールのシミュレーションを実行する（ＳＴ９）。つまり、図５を用いて説明した評価を行う。
【００６３】
そして、評価結果が、サイクルタイム性能とモーション系の実現性が十分か否かを判断する（ＳＴ１０）。つまり、要求されるサイクルタイムでモーション制御が正しく行え、制御対象物が所望の動作を行えるかを判断する。この判断は、例えばパソコン１０の表示画面に表示される３Ｄ機構シミュレータ部１５から出力される仮想メカ部の動作をユーザが確認したり、ネットワークトレースモニタ部１２が検出した制御ネットワーク５０上を流れる情報にしたがって生成され、表示装置に出力されたトレースモニタをユーザが確認することなどによって行われる。そして、満足する場合には、その内容で確定され検証が完了する。また、不十分な場合には、ステップ１に戻り、最初から設計をやり直す。
【００６４】
また、上記したトレースモニタの表示例としては、例えば図７に示すようになる。この図７は、図２に示したメカ・クランプ制御におけるシミュレーションをネットワークトレースモニタ部１２がトレースし、パソコン１０の表示装置の表示画面１０ａに表示したものである。このように、動作結果をタイミングチャートで確認することができ、ロボット，ＰＬＣ，モーションコントロールの３つのタイミングを事前に検証できる（図示の場合には、正常に動作している例である）。そして、実機のプログラムを使うことでこのタイミングの精度も、シミュレーション言語だけの場合よりも高いものになる。
【００６５】
すなわち、上記した実施の形態によれば、実際の機器のＰＬＣ制御プログラムやモーションプログラムを使うことで、実際の設備がない時期であっても事前にソフトウェアのテストや設計の検証を精度よくおこない、設計の品質とプログラムの品質を効率よく向上させることができる。さらに、モーションコントローラの内部で時間遅れ要素（Δｔ）でシミュレーションすることで、モータやメカの外部機器をつないだときと同じ精度で検証ができる。
【００６６】
【発明の効果】
以上のように、この発明では、ＰＬＣのユーザプログラム等の検証対象のプログラムが実機に使用するものを用いてシミュレーションを実行可能としたため、正確な検証が行える。さらに、モーション制御における設定動作（理想動作）と実際動作とで時間差が生じるため、その時間差に基づく遅れ時間情報を考慮してシミュレーションを実行するようにしたため、検証精度が高まる。
【図面の簡単な説明】
【図１】本発明の好適な一実施の形態を示すシステム構成図である。
【図２】モーション制御の一例を説明する図である。
【図３】モーション制御の一例を説明する図である。
【図４】モーション制御における遅れ時間を説明する図である。
【図５】評価システムの一例を示す図である。
【図６】モーション制御のシミュレーションの手順を説明するフローチャートである。
【図７】ネットワークトレースモニタ部から出力されるモニタ画面の一例を示す図である。
【符号の説明】
１０  パソコン
１０ａ  表示画面
１１  ネットワークインタフェース
１２  ネットワークトレースモニタ部
１３  ３Ｄ  ＣＡＤ部
１４  ３Ｄ離散系シミュレータ
１５  ３Ｄ機構シミュレータ部
１６  プログラミングツール部
２０  ＰＬＣ
２１  ＣＰＵユニット
２２  ネットワークユニット
２３  モーションコントロールユニット
３０  仮想Ｉ／Ｏ用ＰＬＣ
３１  ＣＰＵユニット
３２  ネットワークユニット
３３  Ｉ／Ｏユニット
４０  ロボットコントローラ
４１  ネットワークインタフェース
４２  ロボットコントローラ部
５０  制御ネットワーク
【図１】
2004259112.tif 000003
【図２】
2004259112.tif 000004
【図３】
2004259112.tif 000005
【図４】
2004259112.tif 000006
【図５】
2004259112.tif 000007
【図６】
2004259112.tif 000008
【図７】
2004259112.tif 000009