(57)【特許請求の範囲】
【請求項１】
シーケンサのプログラムによる設備動作のシミュレーションを行なうシミュレーション装置であって、
上記シーケンサからの出力に基づいて上記設備の状態の変化をシミュレートし該設備の変化状態を所定時間毎に算出する状態算出手段と、
上記状態算出手段により算出される上記設備の変化状態に応じて上記シーケンサに出力すべき当該状態に関連する擬似信号を生成する擬似信号生成手段とを備え、
上記状態算出手段は、上記設備を構成するアクチュエータの上記シーケンサの出力による変化位置を所定時間毎に算出するアクチュエータ位置算出手段と、上記アクチュエータに仕事をされて動くワークの変化位置を所定時間毎に算出するワーク位置算出手段とを備え、
上記擬似信号生成手段は、上記各算出手段によって算出されたアクチュエータ及びワークの位置に応じて擬似信号を生成することを特徴とするシミュレーション装置。
【請求項２】
請求項１に記載のシミュレーション装置において、
上記状態算出手段は、上記シーケンサの出力に基づいて時間の経過と共に位置が変化する上記アクチュエータ及びワーク各々の動作モデルを設定する動作設定手段を備え、上記各算出手段は、該動作モデルに基づいて上記シーケンサの出力による上記アクチュエータ及びワーク各々の変化位置を所定時間毎に算出し、
上記擬似信号生成手段は、上記アクチュエータ及びワーク各々の動作位置をシーケンス制御のために検出する検出器の検出条件を設定する検出器設定手段を備え、上記各算出手段によって所定時間毎に算出される上記アクチュエータ及びワーク各々の位置と上記検出器設定手段によって設定された検出条件とに基づいて上記擬似信号を生成することを特徴とするシミュレーション装置。
【請求項３】
請求項１又は請求項２に記載のシミュレーション装置において、
上記設備の異常を想定した現象を設定する異常設定手段を備えていることを特徴とするシミュレーション装置。
【請求項４】
設備を制御するシーケンサのシミュレーションを行なうシミュレーション方法であって、
上記シーケンサからの出力を受けて時間の経過と共に位置が変化する上記設備のアクチュエータ及び該アクチュエータに仕事をされて動くワーク各々の動作モデルを設定し、
上記動作モデルに基づいて上記シーケンサの出力による上記アクチュエータ及びワーク各々の位置を所定時間毎に算出し、
上記アクチュエータ及びワークの位置に応じて擬似信号を生成して上記シーケンサに出力することを特徴とするシミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シーケンサのプログラムによる設備動作のシミュレーション装置及びシミュレーション方法に関する。
【０００２】
【従来の技術】
ワークの移動装置やこのワークに加工を行なうロボット等を備えた生産設備はＰＬＣ（プログラマブルラダーコントローラ）等のシーケンサによって制御されている。このＰＬＣのプログラムは人手によって作成されているが、長いプログラムになると不備を生ずることがある。その場合、例えば、アクチュエータＡの次にアクチュエータＢが作動すべきところ、その予定の作動をしないとか、アクチュエータに異常があって設備の作動が直ちに停止すべきときに停止しないとか、あるいは、設備の作動停止に伴って復旧作業を行なったが再起動しない、という問題を生ずる。
【０００３】
生産設備を実際に作動させてプログラムに異常がないかを検証することもできるが、時間及びコストが大となる。また、そのプログラムでは実際の設備が予定通りに作動しないということがわかっても、そのプログラムのどこに不備が存在するのかを発見することは難しい。さらに、生産設備の組立が完成する前に制御プログラムを完成させる必要があるときは、現場での検証はできない。
【０００４】
これに対して、従来から図４に示すように設備側ＰＬＣ１とシミュレータ側ＰＬＣ３２とを接続し、設備側ＰＬＣ１の出力（動作指令）に応じてシミュレータ側ＰＬＣ３２で擬似信号を生成して設備側ＰＬＣ１に与える、という信号のやりとりにより、設備側ＰＬＣ１にダウンロードされているプログラムを検証することが行なわれている。すなわち、シミュレータ側ＰＬＣ３２は、タイマー設定、時間算出、擬似信号生成、入出力アドレス変換の各プログラム３３〜３７を備え、設備側ＰＬＣ１の出力に基づいて時間算出プログラム３４により経過時間を算出し、タイマー設定プログラム３３で設定された応答時間になったときに擬似信号生成プログラム３５により擬似信号を生成して設備側ＰＬＣ１に与えるようになっている。タイマー設定プログラムによる応答時間の設定は入力手段を有するコンピュータ５によって行なわれる。
【０００５】
また、特開平９−２３０９２３号公報には、図４に示すようなシミュレータ側ＰＬＣに関し、上記応答時間を可変にする回路を設けることにより、実際の設備の応答時間に近い環境条件を作り、あるいは実際の設備応答時間とは異なる応答時間を設定してシミュレーションを行なうこと、設備の異常を擬似的に発生させる異常発生回路等を設けて設備異常発生時のシミュレーションを行なうことが記載されている。
【０００６】
従って、上述の如き設備側ＰＬＣの出力に対して単に時間で応答するようにしたシミュレーション装置の場合、シミュレーションの流れは図５に示すようなものになる。
【０００７】
すなわち、設備が異常なく作動すると想定した正常動作用の信号出力設定（タイマー設定）を行なってシミュレーションを実行し、プログラム異常の有無をチェックする（Ｓ１〜Ｓ４）。プログラム異常があれば、これを修正して再度、正常動作用の信号出力設定を行なってシミュレーションを実行し（Ｓ４→Ｓ５→Ｓ１）、プログラム異常がなくなるまでプログラムの修正、信号出力設定、シミュレーションを繰り返すことになる。
【０００８】
正常動作用のプログラム検証が終了すると、設備に発生するおそれがある異常を想定して異常発生用の信号出力設定を行なってシミュレーションを最初から実行し、プログラム異常の有無をチェックする（Ｓ６-1〜Ｓ９-1）。つまり、シミュレーション装置側から異常な擬似信号が出力されたときに、その擬似信号を制御プログラムが異常と認識して設備動作を停止させるなどの対応をするかの検証を行なう。プログラムが適切な対応をしないとき、すなわち、プログラム異常があれば、これを修正して再度、正常動作用の信号出力設定を行なってシミュレーションを実行し（Ｓ９-1→Ｓ５→Ｓ１）、正常動作時のプログラム異常の有無をチェックする。そうして、正常動作時にプログラム異常を生じないことを確認した後、再度、異常発生時のシミュレーションを実行する（Ｓ６〜Ｓ９）。
【０００９】
種々の異常発生を想定してプログラムの検証をする場合は、異常発生シミュレーションを終了してプログラム異常が無いことを確認する度に、全検証項目が完了したか否かをチェックして（Ｓ１０-1）、検証すべき異常項目があれば、そのための信号出力設定を行なってシミュレーションを実行する、という作業を繰り返していくことになる（Ｓ１０-1→Ｓ６-2〜Ｓ１０-2→…→Ｓ６-N〜Ｓ９-N→Ｓ１１）。
【００１０】
【発明が解決しようとする課題】
上述の如き従来のシミュレーション装置では次のような問題がある。
【００１１】
まず、シミュレーションの結果、シーケンサのプログラムに異常が発見された場合、その異常を生じたときの設備の状態との関係で原因を解明しプログラムの修正を行なうことになるが、設備側ＰＬＣの出力に対して単に時間を監視して応答（擬似信号の出力を）するだけであるから、異常を生じたときの設備の状態を再現することはできず、また、当該設備がどのような状態にあったかを解明することも難しく、そのプログラムの修正に手間がかかる。
【００１２】
また、複数のアクチュエータが時間的に少しずつずれて作動するなど、相互に関連してワークに対する処理を実行する設備である場合、シミュレーションを途中で止めようとしても、応答時間の経過途中で止まる結果となって応答時間の管理ができなくなる。すなわち、シミュレーションは、設備の起動から所定の段階まで一連の流れとして途切れることなく行なう必要がある。そのため、プログラム異常を発見してその修正を行なった場合、その都度シミュレーションを最初からやり直す必要があり、多大の時間を要する。
【００１３】
また、設備の各部が正常に動作すると想定して行なう正常動作用の信号出力設定は、正常動作時のプログラム検証のためのみに使用することができ、設備に異常が発生することを想定したプログラムの検証では、擬似信号出力のための動作指令に対する応答時間を異なるものにするなど、別に信号出力の設定を行なう必要がある。従って、様々な異常を想定してプログラムの検証をするとなると、その想定される各種の異常に対して、異常発生用の信号出力設定を一つ一つ別個に行なわなければならず、多大の労力を要する。
【００１４】
さらに、実際の設備では、その稼働中に例えばアクチュエータが作動しない等の異常を発生して設備の作動が停止した場合、その異常発生部位を点検・修理して設備を異常発生直前の状態に戻し、しかる後に再稼働させることが多い。しかし、従来のシミュレーション装置ではそのような実際の異常発生時の作業に即したシミュレーションができない。
【００１５】
すなわち、設備の異常による非常停止を想定したシミュレーションを行なう場合、その想定された異常によってシミュレーションを続行できなくなったとき、異常発生直前の状態に復旧させようとしても、通常は多数のアクチュエータのうちのいずれか一つが応答時間が途中まで経過した状態になり、シミュレーションを再開しようとしても、当該応答時間の管理ができないからである。
【００１６】
さらに、ワークは通常はコンベヤによって或いはピストンロッド等で押されて移動するが、その移動途中に設備が非常停止した場合を想定したシミュレーションにおいては、仮にシミュレーションを非常停止前の応答時間の管理が可能な状態に戻して再開することができたとしても、ワークの位置に関する情報がないから、ワークは戻らない。例えば、シミュレーション再開後は時間の経過と共に次のワーク検出信号（擬似信号）が出され、先に非常停止したワークが消えてしまった状態になる。その結果、シミュレーション装置側とシーケンサ側とでワークに関する情報が異なるものになって、シミュレーションを続行することができなくなる。従って、ワークが非常停止位置から停止前の位置に戻るという設定を別に行なう必要があり、その設定が煩雑なものになる。
【００１７】
本発明の課題は上述の如き問題を解決することにある。
【００１８】
【課題を解決するための手段】
そこで、本発明は、設備の状態の変化をシミュレートしその変化状態を所定時間毎に算出し、その変化状態に応じて擬似信号を生成することにより、上述の問題を解決したものである。
【００１９】
まず、請求項１に係る発明は、シーケンサのプログラムによる設備動作のシミュレーションを行なうシミュレーション装置であって、
上記シーケンサからの出力に基づいて上記設備の状態の変化をシミュレートし該設備の変化状態を所定時間毎に算出する状態算出手段と、
上記状態算出手段により算出される上記設備の変化状態に応じて上記シーケンサに出力すべき当該状態に関連する擬似信号を生成する擬似信号生成手段とを備え、
上記状態算出手段は、上記設備を構成するアクチュエータの上記シーケンサの出力による変化位置を所定時間毎に算出するアクチュエータ位置算出手段と、上記アクチュエータに仕事をされて動くワークの変化位置を所定時間毎に算出するワーク位置算出手段とを備え、
上記擬似信号生成手段は、上記各算出手段によって算出されたアクチュエータ及びワークの位置に応じて擬似信号を生成することを特徴とする。
【００２０】
すなわち、このシミュレーション装置は、２段階でシミュレーションを行なっており、この点が従前のシミュレーションの考え方と異なる。まず、シーケンサからの出力、つまり動作指令によって設備の状態がどのように変化するかをシミュレートしている。そして、その設備のアクチュエータ又はワークの状態が擬似信号を生成すべき状態になったか、端的に言えば、設備が動いた結果として、該設備の状態変化を検出する検出器に出力変化があるか否かをシミュレートしている。
【００２１】
従って、シーケンサを作動させてプログラム異常が発見された場合、そのときの設備の状態、すなわち、アクチュエータ及びワークの位置関係がわかることになり、この位置関係を把握してプログラム異常の原因を究明することができ、プログラムの修正が容易になる。また、プログラム異常を発見してその修正を行なった場合、その異常を生じたときのアクチュエータ及びワークの位置関係がわかるから、複数のアクチュエータが相互に関連してワークに対する処理を実行する設備であっても、その修正したプログラムの検証にあたっては、プログラム異常の直前の状態を再現してシミュレーションを継続していくことができる。すなわち、シミュレーションを最初からやり直す必要はなく、また、ワーク消失の問題も生じない。
【００２２】
請求項２に係る発明は、請求項１に記載のシミュレーション装置において、
上記状態算出手段は、上記シーケンサの出力に基づいて時間の経過と共に位置が変化する上記アクチュエータ及びワーク各々の動作モデルを設定する動作設定手段を備え、上記各算出手段は、該動作モデルに基づいて上記シーケンサの出力による上記アクチュエータ及びワーク各々の変化位置を所定時間毎に算出し、
上記擬似信号生成手段は、上記アクチュエータ及びワーク各々の動作位置をシーケンス制御のために検出する検出器の検出条件を設定する検出器設定手段を備え、上記各算出手段によって所定時間毎に算出される上記アクチュエータ及びワーク各々の位置と上記検出器設定手段によって設定された検出条件とに基づいて上記擬似信号を生成することを特徴とする。
【００２３】
すなわち、アクチュエータ及びワーク各々の動作モデルの設定により、シーケンサの出力に基づいて時々刻々と変化するアクチュエータ及びワーク各々の位置を簡単に算出することができる。そうして、アクチュエータ及びワーク各々の動作位置に関する検出条件の設定により、アクチュエータ及びワーク各々の位置算出手段の算出結果から、シーケンサに出力すべき擬似信号を生成することができる。
【００２４】
請求項３に係る発明は、請求項１又は請求項２に記載のシミュレーション装置において、
上記設備の異常を想定した現象を設定する異常設定手段を備えていることを特徴とする。
【００２５】
従って、設備各部が正常に動作すると想定して信号出力設定を行なっておけば、上述の如くシミュレーション途中の設備の状態を特定することができるから、例えばアクチュエータＡ及びＢが同時に作動し且つＡが作動終端直前にある、というような状態を特定することができるから、正常動作途中に適宜の異常が発生するように異常設定を行なうことができ、従来のように異常シミュレーション専用として一連の信号出力設定を個々に行なう必要はなくなる。
【００２６】
また、例えば設備が停止しなければならないような異常擬似信号を発生させて、設備が予定通り停止してプログラムに異常が無いことを確認できたときは、シミュレーションを終了させることなく、続行することができる。すなわち、上述の如く、シミュレーション途中の設備の状態がわかることから、シミュレーションを上記異常擬似信号出力前に戻し、該異常擬似信号の出力を解除してシミュレーションを継続することができ、しかも、それによって設備が一旦停止したときの途中からの再起動性を検証することができる。
【００２７】
換言すれば、実際の設備がその稼働中に異常を発生して停止した場合、その現場では異常原因を解明して除き、設備を停止直前の状態に手動で戻して再稼働させることが多いが、このような実際の現場作業に即したシミュレーションを行なうことができる。
【００２８】
請求項４に係る発明は、設備を制御するシーケンサのシミュレーションを行なうシミュレーション方法であって、
上記シーケンサからの出力を受けて時間の経過と共に位置が変化する上記設備のアクチュエータ及び該アクチュエータに仕事をされて動くワーク各々の動作モデルを設定し、
上記動作モデルに基づいて上記シーケンサの出力による上記アクチュエータ及びワーク各々の位置を所定時間毎に算出し、
上記アクチュエータ及びワークの位置に応じて擬似信号を生成して上記シーケンサに出力することを特徴とする。
【００２９】
従って、このシミュレーション方法によれば、シーケンサを作動させてプログラム異常が発見された場合、そのときの設備の状態、すなわち、アクチュエータ及びワークの位置関係がわかることになり、この位置関係を把握してプログラム異常の原因を究明することができ、プログラムの修正が容易になる。また、プログラム異常を発見してその修正を行なった場合、その異常を生じたときのアクチュエータ及びワークの位置関係がわかるから、複数のアクチュエータが相互に関連してワークに対する処理を実行する設備であっても、その修正したプログラムの検証にあたっては、プログラム異常の直前の状態を再現してシミュレーションを継続していくことができる。すなわち、シミュレーションを最初からやり直す必要はなく、また、ワーク消失の問題も生じない。
【００３０】
【発明の効果】
以上のように、請求項１に係る発明によれば、シーケンサからの出力に基づいて設備を構成するアクチュエータ及びワークの状態の変化をシミュレートして該アクチュエータ及びワークの変化位置を所定時間毎に算出し、この算出されるアクチュエータ及びワークの位置に応じてシーケンサに出力すべき擬似信号を生成するようにしたから、アクチュエータ及びワークの位置関係を把握してプログラム異常の原因を究明することができ、プログラムの修正が容易になり、また、修正したプログラムの検証にあたっては、プログラム異常が発生する直前のアクチュエータ及びワークの状態を再現し、ワーク消失を招くことなくシミュレーションを続けることができ、プログラムの検証に要する時間ないしは労力を少なくすることができる。
【００３１】
請求項２に係る発明によれば、アクチュエータ及びワーク各々の動作モデルの設定により、シーケンサの出力に基づいて時々刻々と変化するアクチュエータ及びワーク各々の位置を簡単に算出することができ、検出器のアクチュエータ及びワーク各々の動作位置に関する検出条件の設定により、アクチュエータ及びワーク各々の位置算出手段の算出結果から、シーケンサに出力すべき擬似信号を生成することができる。
【００３２】
請求項３に係る発明によれば、設備の異常を想定した現象を設定する異常設定手段を備えているから、設備各部が正常に動作すると想定して信号出力設定を行なっておけば、各種の異常を想定したシミュレーションを行なう場合でも、そのための一連の信号出力設定を個々に行なう必要がなくなり、労力軽減が図れるとともに、異常擬似信号によって設備が停止したときは、設備の状態を異常擬似信号出力前に戻し、該異常擬似信号の出力を解除してシミュレーションを継続することができるから、実際の現場作業に即したシミュレーションになり、シーケンサのプログラム検証に有利になる。
【００３３】
請求項４に係る発明によれば、設備を構成するアクチュエータ及びワークの動作モデルを設定し、この動作モデルに基づいてシーケンサの出力によるアクチュエータ及びワーク各々の位置を所定時間毎に算出し、このアクチュエータ及びワークの位置に応じて擬似信号を生成してシーケンサに出力するようにしたから、アクチュエータ及びワークの位置関係を把握してプログラム異常の原因を究明することができ、プログラムの修正が容易になり、また、修正したプログラムの検証にあたっては、プログラム異常が発生する直前のアクチュエータ及びワークの状態を再現し、ワーク消失を招くことなくシミュレーションを続けることができ、プログラムの検証に要する時間ないしは労力を少なくすることができる。
【００３４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【００３５】
図１において、１は設備を制御する設備側ＰＬＣ（シーケンサ）、２はシミュレーション装置である。シミュレーション装置２は、設備側ＰＬＣ１に通信線３によって接続されたシミュレータ側ＰＬＣ４と、該シミュレータ側ＰＬＣ４にシミュレーションのための設定を行なう入力手段を有するコンピュータ５と、該シミュレータ側ＰＬＣ４に異常設定及び復旧を行なうための信号を与えるスイッチ操作盤６とを備え、互いに通信線３によって接続されている。
【００３６】
シミュレータ側ＰＬＣ４は、図２に示すように、設備側ＰＬＣ１からの動作指令に基づいて設備の状態の変化をシミュレートし該設備の変化状態を所定時間毎に算出する状態算出手段７と、該状態算出手段７により算出される設備の変化状態に基づいて該設備の状態変化を検出する検出器に出力変化があるか否かをシミュレートし設備側ＰＬＣ１に出力すべき当該状態に関連する擬似信号を生成する擬似信号生成手段８と、異常設定プログラム９とを備えている。
【００３７】
さらに、シミュレータ側ＰＬＣ４は、設備側ＰＬＣ１より与えられる動作指令のアドレスを当該シミュレータ側ＰＬＣ４用のアドレスに変換する入力側アドレス変換プログラム１１と、シミュレータ側ＰＬＣ４で生成する擬似信号のアドレスを設備側ＰＬＣ１用のアドレスに変換する出力側アドレス変換プログラム１２とを備え、設備側ＰＬＣ１とシミュレータ側ＰＬＣ４の入出力のアドレスを統一化させるようになっている。
【００３８】
状態算出手段７は、設備を構成する各種アクチュエータ及びこれらアクチュエータによって仕事をされるワークの動作モデルを設定するための動作設定プログラム（動作設定手段）１３と、設備側ＰＬＣ１の動作指令により各アクチュエータの変化位置（動作状態）を所定時間毎に算出するアクチュエータ位置算出手段１４と、ワークの変化位置を所定時間毎に算出するワーク位置算出手段１５とを備えている。
【００３９】
動作設定プログラム１３は、設備側ＰＬＣ１からの動作指令に基づいて作動する各アクチュエータ及びワークの動きを座標変化、例えば数直線上の座標変化としてモデル化するためのものである。
【００４０】
アクチュエータに関しては、設備側ＰＬＣ１からの動作指令の一瞬の出力でピストンロッドが後退端から前進端まで動作するシリンダ、設備側ＰＬＣ１から動作指令が出力され続けないと動作を継続しない昇降用モータなど、種々のアクチュエータがあることから、その機能ないしは性格に応じて設定する。例えば、前進指令が出力されている間はロッドが前進し、出力が落ちたら後退するようなシリンダ装置であれば、その動作パターンを記号化して設定するとともに、前進条件、後退条件、動作範囲（前進端から後退端まで動作するに要する時間）、その他の必要な条件を設定する。
【００４１】
ワークに関しては、例えば、ワークがワークストッパを有するコンベアＡからコンベアＢに乗り移ってコンベアＢにより移動するのであれば、当該ワークがコンベアＡに存在したこと、ワークストッパがオフになっていること、並びにコンベアＢが前進動作をしていることの３条件を満たすとき、ワークがコンベアＡからコンベアＢに乗り移ってコンベアＢで移動を開始する、コンベアＢの前進指令が出力されているときはワークが前進し、後退指令が出力されているときは後退し、両指令が出力されていないときは停止している、と捉える。そうして、そのような動作パターンの設定、条件の設定、動作範囲（コンベアＢがワークを端から端まで送るのに要する時間）の設定等を行なうことになる。
【００４２】
アクチュエータ位置算出手段１４は、上記動作設定プログラム１３によって設定された各アクチュエータの動作モデルに基づいてそのアクチュエータの動作位置を所定時間毎に算出しメモリに書き込むものである。すなわち、アクチュエータの動きは上述したように座標変化としてモデル化されているから、設備側ＰＬＣ１からの動作指令により当該座標変化を所定時間毎（例えば０．１秒毎）に算出することなる。
【００４３】
ワーク位置算出手段１５も同様に、ワークの動作モデルに基づいて設備側ＰＬＣ１からの動作指令により当該ワークの座標変化を所定時間毎（例えば０．１秒毎）に算出してメモリに書き込む。
【００４４】
擬似信号生成手段８は、上記アクチュエータ及びワーク各々の動作位置をシーケンス制御ために検出する検出器の検出条件を設定する検出器設定プログラム１６と、上記状態算出手段７によって与えられる上記アクチュエータ及びワーク各々に関する情報と上記検出器設定プログラム１６に設定された検出条件とに基づいて上記擬似信号を生成する擬似信号生成プログラム１７とを備えている。
【００４５】
上記検出器設定プログラム１６について説明するに、アクチュエータの作動端（例えばシリンダのピストンロッドの前進端や後退端）を検出するアクチュエータ検出器に関しては、当該アクチュエータの動作範囲に基づいて検出範囲を設定する。例えば、当該シリンダの動作範囲が１００であれば、１〜５、９５〜１００をそれぞれ擬似信号出力のための前進端、後退端の検出範囲として設定する。
【００４６】
ワークが所定位置に存在するか否かを検出するワーク検出器に関しては、そのワーク移動用アクチュエータ（コンベア等）が所定の動作位置にあるという条件、並びにワークがその動作位置に存在すると想定するに必要な関連条件、すなわち、当該アクチュエータ、他のアクチュエータ又はワークの動作・検出に関する条件を設定する。例えば、動作範囲１００のコンベアによってワークが所定位置（コンベアの動作位置５０）に前進移動してきたことを検出する検出器であれば、そのコンベアの動作位置５０、そのコンベアに対する前進指令の存在等を検出条件として設定する。
【００４７】
擬似信号生成プログラム１７は、状態算出手段７から与えられる上記アクチュエータ及びワーク各々の位置、並びに設備側ＰＬＣ１の動作指令に関する情報に基づき、それらの位置、動作指令が上記検出器設定プログラム１６で設定された検出器の検出条件を満たすとき、擬似信号（当該検出器の出力）を生成する。
【００４８】
異常設定プログラム９は、スイッチ操作盤６からの入力に従って動作するものであって、設備側ＰＬＣ１からの動作指令をキャンセルする指令を入力側アドレス変換プログラム１１に与え、それによって必要な擬似信号が生成されないようにして異常を発生させ、また、擬似信号生成プログラム１７で生成された擬似信号をキャンセルする指令を出力側アドレス変換プログラムに与えることによって異常を発生させる。
【００４９】
また、異常設定プログラム９は、設備側ＰＬＣ１の動作が途中で停止したときに、スイッチ操作盤６からの復旧信号に基づき、上記各算出プログラム１４，１５によって算出されている当該停止時におけるアクチュエータ又はワークの位置（算出値）が当該停止前の所定の位置になるように、入力側アドレス変換プログラム１１を介して状態算出手段７に動作指令を与える。
【００５０】
なお、上記例では異常設定及び復旧のために、コンピュータ５とは別に、スイッチ操作盤６を設けているが、コンピュータ５の入力手段を利用して異常設定及び復旧を行なうようにしてもよい。
【００５１】
上記シミュレーション装置２を用いた設備側ＰＬＣ１のシミュレーションを図３に示すフローに従って説明する。
【００５２】
すなわち、信号出力設定を行なってシミュレーションを開始し、設備の正常動作時における設備側ＰＬＣ１の制御プログラムの異常の存否を検証する（ステップＡ１〜Ａ３）。この場合の信号出力設定は、動作設定プログラム１３によるアクチュエータ及びワーク各々の動作モデルの設定、検出器設定プログラム１６による検出器の設定、並びに異常設定プログラム９による各種設備異常の設定である。
【００５３】
続くステップＡ４でプログラム異常により制御が停止したときは、ステップＡ５に進んで、プログラムの修正及び復旧を行なう。この場合、アクチュエータ及びワークの位置が位置算出手段１４，１５によって所定時間毎に算出されているから、プログラム異常によって設備が停止したときのアクチュエータ及びワークの状態がわかることになる。このため、プログラム異常の原因究明及びプログラムの修正が容易になる。また、プログラム修正後は、スイッチ操作盤６によりアクチュエータ及びワークを当該停止前の状態（位置）に戻し、シミュレーションを続行する。このような復旧ができるのは、当該停止時のアクチュエータ及びワークの状態がわかるからであり、シミュレーションを最初からやり直す必要はない。
【００５４】
また、設備正常動作時の制御プログラムの検証（シミュレーション）を行ないつつ、設備異常（停電、アクチュエータ異常等）があったときに当該制御プログラムがどのように働くかをチェックする。すなわち、ステップＡ６では設備異常時のシミュレーションに関し設定された全検証項目について完了したか否かをチェックする。
【００５５】
検証未完了であれば、ステップＡ７に進んで、設定された設備異常を発生させる。その設備異常が設備の作動停止を招く性質のものであって、当該制御プログラムが予定するステップで制御を停止したときは、プログラム異常がないということになる。その場合はスイッチ操作盤６により停止前の状態に手動復旧させて、当該設備異常を取り除いてシミュレーションを続行させて、プログラム異常の存否をチェックする（ステップＡ７〜Ａ９）。これは、設備の作動が中断したときに再開可能か否かの検証となる。
【００５６】
シミュレーションを続行できないときはプログラム異常があるということになり、プログラムの修正を行なってから（ステップＡ５）、シミュレーションを続行する（ステップＡ３）。シミュレーションを続行できたときは、プログラムに異常がないとして次の検証に進む（ステップＡ９→Ａ３）。
【００５７】
一方、ステップＡ７において、当該制御プログラムが予定通りに設備を停止させないときはプログラムに異常があるということになり、手動復旧後、プログラム修正を行なって次の検証に進む（ステップＡ８→Ａ９→Ａ５→Ａ３）。
【００５８】
ステップＡ７において、その設備異常が設備の停止を招く必要のない性質であるとき、設備が停止しなければプログラム異常なし、設備が停止すればプログラム異常あり、ということになり、先の場合と同様に次の検証へ進み、あるいはプログラム修正を行なって次の検証に進むことになる。
【００５９】
以上のようにして、全検証項目についてシミュレーションが完了したときはシミュレーションを終了することになる（ステップＡ６→Ａ１０）。
【００６０】
なお、上記シミュレーションの流れでは異常設定プログラム９による異常設定を予め行なってから、シミュレーションを開始するようにしたが、正常動作時のプログラム検証のためのシミュレーション途中で、そのシミュレーションを適宜停止して異常設定を行ない、シミュレーションを続行してプログラム異常の存否をチェックするようにしてもよい。
【図面の簡単な説明】
【図１】  本発明の実施形態に係るシミュレーション装置のハード構成を示す図。
【図２】  同シミュレーション装置の構成を示すブロック図。
【図３】  同シミュレーション装置によるシミュレーションの流れを示す図。
【図４】  従来のシミュレーション装置の構成を示すブロック図。
【図５】  従来のシミュレーション装置によるシミュレーションの流れを示す図。
【符号の説明】
１  設備側ＰＬＣ
２  シミュレーション装置
３  通信線
４  シミュレータ側ＰＬＣ
５  コンピュータ
６  スイッチ操作盤
７  状態算出手段
８  擬似信号生成手段
９  異常設定プログラム
１１  入力側アドレス変換プログラム
１２  出力側アドレス変換プログラム
１３  動作設定プログラム（動作設定手段）
１４  アクチュエータ位置算出手段
１５  ワーク位置算出手段
１６  検出器設定プログラム
１７  擬似信号生成プログラム
【図１】
0004465920.tif 000002
【図２】
0004465920.tif 000003
【図３】
0004465920.tif 000004
【図４】
0004465920.tif 000005
【図５】
0004465920.tif 000006