JP2008027156A - シミュレーション装置 - Google Patents

シミュレーション装置 Download PDF

Info

Publication number
JP2008027156A
JP2008027156A JP2006198558A JP2006198558A JP2008027156A JP 2008027156 A JP2008027156 A JP 2008027156A JP 2006198558 A JP2006198558 A JP 2006198558A JP 2006198558 A JP2006198558 A JP 2006198558A JP 2008027156 A JP2008027156 A JP 2008027156A
Authority
JP
Japan
Prior art keywords
input
safety
value
output
tag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006198558A
Other languages
English (en)
Inventor
Hiroshi Suganuma
拓 菅沼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2006198558A priority Critical patent/JP2008027156A/ja
Publication of JP2008027156A publication Critical patent/JP2008027156A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】 部機器モニタ(EDM)機能付ファンクションブロックを含むユーザプログラムであっても、シミュレーションを行なうことができるシミュレーション装置を提供すること
【解決手段】 ファンクションブロックの入力タグと出力タグとディレイ時間とを関連づけたフィードバック条件記憶手段(テーブル)を持ち、出力タグの値が変化してから、ディレイ時間経過後に入力タグに出力タグの値を反転させたフィードバック信号を与える機能を設けた。この機能は、サンプリングタイムごとに出力タグの値をキューに登録し(S72,S73)、ディレイ時間に対応する所定回数分経過後のキューの値を取り出し(S74)、その取り出した値に基づくフィードバック信号を入力タグに与える(S75)ことにより実現する。
【選択図】 図24

Description

この発明は、ファンクションブロックで記述されたユーザプログラムを実行するシミュレーション装置に関するものである。
FA(Factory Automation)におけるネットワークシステムは、生産設備の制御を司るPLC(プログラマブルコントローラ)と、そのPLCにより動作が制御される機器とが、制御系のネットワークに接続される。それらPLCと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、IOデータの送受を行ない、生産設備を制御する。
PLCは、制御プログラムに基づいて演算実行するCPUユニット、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、ネットワークに接続された他の装置とデータの送受を行なう通信ユニット、各ユニットに電源を供給する電源ユニット、などの複数のユニットを組み合わせることにより構成されている。また、各機能を1つの筐体内に実装した一体型のPLCもある。
さらに最近ではPLCによる制御においても、フェイルセーフ(安全)システムが導入されつつある。つまり、PLCや各機器自体はもちろん、それらを接続するネットワークも安全機能を組み込まれたもので構成される。ここで安全機能とは、例えばCPUその他の各処理部等を二重化して、正しい出力をするようにしたり、ネットワーク異常(正常な通信ができない)の場合や、緊急停止スイッチが押下されたり、ライトカーテンなどのセンサが人(身体の一部)の進入を検出した場合等の、ネットワークシステムが危険状態になった場合に、フェイルセーフが働き、システムが安全側になって、動作が停止するものである。
この種のセーフティ制御システムは、セーフティコントローラ、セーフティI/Oターミナルを含み、切削機械や切断機械やアーム付き製造機ロボット等とともに使用される。セーフティコントローラは、一般的なプログラマブルコントローラ(PLC)に類似するロジック演算機能、入出力制御機能に加えて、安全面の自己診断機能を内蔵させることにより、その制御において高度な安全性および信頼性を確保したものである。セーフティコントローラは、自己診断結果により異常を検出した場合には、自己の制御が危険につながらないように、強制的に安全な制御を行なうような機能(フェールセーフ機能)を備えている。セーフティI/Oターミナルにおいても、自己診断機能を有していて、自己診断結果により異常を検出した場合には自己の制御が危険につながらない制御をするといった、フェイルセーフ機能を備えている。それにより、セーフティ制御システムは、製造機ロボット等の動作が危険につながらないようにしている。
ここに言う安全は、より具体的には、規格化されている安全基準を含む意味である。安全規格には、例えばIEC61508やEN規格などがある。IEC61508(プログラム可能な電子システムの機能安全に関する国際電気標準委員会)では、時間あたりの危険故障確率を(失敗確率:Probability of Failure per Hour)を定義し、この確率によってSILのレベル(Safety Integrity Level)を4段階に分類している。また、EN規格では、機械のリスクの大きさを評価し、リスク低減策を講じるように義務づけされていて、EN954−1では5つの安全カテゴリにて規定されている。この明細書でいうセーフティコントローラ、セーフティI/Oターミナル、セーフティ制御システム等は、このような安全基準のいずれかに対応したものである。
なお、セーフティ制御システムは「安全制御システム」と称されることもあり、セーフティコントローラは「安全コントローラ」や「安全制御装置」と称されることもある。セーフティI/Oターミナルは「セーフティスレーブ局」や「セーフティスレーブユニット」、単に「セーフティスレーブ」と称されることもあり、セーフティを「安全」と置き換えて称されることもある。
セーフティコントローラとセーフティI/Oターミナルとをネットワークで結んでなるセーフティ制御システムが知られている。セーフティコントローラは、セーフティI/Oターミナルに対してネットワーク通信する通信マスタ機能を備えている。セーフティコントローラが複数のユニット筐体(例えば、電源ユニット、CPUユニット、IOユニット、通信ユニット等)を結合させてなるビルディングブロックタイプである場合には、通信マスタユニットにその通信マスタ機能が内蔵される。その通信マスタユニットは「セーフティマスタ局」、「セーフティマスタユニット」や「セーフティマスタ」と称されることもあり、セーフティを「安全」と置き換えて称されることもある。
セーフティI/Oターミナルは、セーフティコントローラの通信マスタ機能との間でネットワーク通信機能、つまり、通信スレーブ機能を備えている。セーフティI/Oターミナルは接続端子を備えていて、その接続端子に、オンオフ信号を出すスイッチ等の入力機器と、制御信号の出力先となる出力機器との少なくとも一方が接続されている。入力機器の例は、非常停止スイッチSW、ライトカーテン、ドアスイッチ、2ハンドスイッチなどである。出力機器の例は、セーフティリレーやコンタクタである。これらの入力機器または出力機器も安全規格に対応している。セーフティI/Oターミナルは、接続された安全用途機器から入力した信号に基づいて制御データを生成し、生成した制御データをセーフティコントローラへネットワーク通信する。
セーフティコントローラがビルディングブロックタイプのものであれば、各ユニットは、共通内部バスに接続され、セーフティコントローラ全体の制御を司るCPUユニットとの間でバス通信をし、データをやり取りする。連結されたI/Oユニットも接続端子を備えていて、その接続端子に、安全用途の入力機器または安全用途の出力機器が接続されている。そして、セーフティコントローラは、通信マスタユニットを介してセーフティI/Oターミナルからネットワーク通信により入力した入力機器の入力信号、または連結されたI/Oユニットに接続された入力機器の入力信号を入力し、予め記憶されたロジックプログラムによってその入力信号のオンオフを論理演算する。その演算結果に基づく出力信号を、通信マスタユニットを介してネットワーク通信によりセーフティI/Oターミナルへ出力するか、または連結されたI/Oユニットへ出力をする。I/Oユニット及びセーフティI/Oターミナルは、その出力信号を出力機器へ出力する。この一連の動作を繰り返し実行することにより、セーフティコントローラにより製造機ロボットを含むシステム全体が制御される。
なお、セーフティコントローラとセーフティI/Oターミナルとの間の通信サイクルは、セーフティコントローラの繰り返し実行のサイクルと同期していてもよいし、非同期でもよい。また、セーフティコントローラあるいはCPUユニットにおけるロジック演算処理の対象となるロジックプログラムは、プログラマーにより予め作成される。作成する際のプログラミング記述については、例えば、ラダー表記、ニーモニック表記、ファンクションブロック表記であってもよい。プログラミング言語でいうと、インタプリタ型言語、スクリプト言語、アセンブリ言語、高級言語、Java言語と呼ばれるものであってもよい。このようなプログラミング言語で書かれたソースコードを、アセンブルやコンパイルなどの処理を行ってCPUに実行させる。
また、セーフティI/Oターミナルに接続された出力機器であるところのセーフティリレーやコンタクタは、製造機ロボットや加工機械、切断機械等につながれていて、リレーやコンタクタの接点がオン中は製造機ロボット等が動作し、接点がオフ中は製造機ロボット等が停止するようになっている。よって、セーフティコントローラは、出力機器をオンオフ制御することで、最終的な制御対象の操作ロボット等の動作停止に関する制御をする。具体的な例をいうと、セーフティコントローラは、非常停止スイッチSWが正常に操作されたことをセーフティI/Oターミナルから通信にて入力すると、制御対象が危険な動作をしないように出力機器(リレーやコンタクタ)をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。セーフティコントローラは、非常停止スイッチSWまたは他の入力機器が異常有りの診断結果を入力すると、非常停止スイッチSWの操作有無または入力機器のオンオフ状態にかかわらずに、制御対象が危険な動作をしないようにその動作を停止するよう出力機器をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。
このセーフティ制御システム(安全システム)は、例えば図1に示すように、セーフティコントローラ1と複数のセーフティスレーブ2とがセーフティネットワーク3に接続されたネットワーク構成をとる。各セーフティコントローラ1,セーフティスレーブ2,セーフティネットワーク3等のネットワークを構成する機器は二重化されている。図では、左端の入力スレーブから緊急停止スイッチ等の異常状態を検出するスイッチがONになったことをセーフティネットワーク3経由でマスタであるセーフティコントローラ1に伝える。セーフティコントローラ1は、論理演算を実行し、右端のセーフティスレーブ2に対して動作停止命令を送るべくIOデータとしてOFFを送る。これにより、その右端のセーフティスレーブ2に接続された外部のIO機器(出力装置)の動作が停止し、フェイルセーフが働くことになる。
この安全システムに対応したセーフティコントローラ1のユーザプログラムは、例えば、1つのファンクションブロック或いは複数のファンクションブロックの組み合わせで構築されるものがある。このようにファンクションブロックを用いて記述されたユーザプログラムを演算実行するPLCとしては、特許文献1に開示されたものがある。
特開2000−276508号公報
セーフティコントローラ特有のファンクションブロックとして、外部デバイスモニタリングや外部機器モニタ等と称させるEDM(External Device Monitoring)の入力端子を備えたものがある。このEDMはセーフティの考え方そのものであり、セーフティリレーなどは、接点を二つ持ち、どちらかが閉じればどちらかが開く構造になっている。
このファンクションブロックは、入力信号と、外部デバイスの状態を評価して、外部デバイスへの安全出力を行うものである。実際には外部デバイスからのフィードバック信号を入力信号として取りこみ、ファンクションブロックへのEDM Feed Back信号へ入力しなければいけない。このフィードバック信号は、出力と反対側の接点を入力するため、外部機器が正常であれば出力をOFFした場合には、フィードバック信号はONとなる。一方、リレーの溶着が起きたとき、出力をOFFしているのに、フィードバックがOFFのままになり、異常を検知できる仕組みになっている。
ところがシミュレータは実際の機器と接続することができないため、図3に示すようにデバッグの開始時に入力がONで、ファンクションブロックの演算処理をした結果の出力もONの場合、EDM Feed Back信号へ入力される値はOFFとなると、係る値(OFF)と出力の値が反転の関係にあるので正常状態となる。その後、入力がOFFに反転したことに伴い出力もOFFになった場合でもEDM Feed Back信号へ入力される値はOFFのままであるので、ファンクションブロックが異常になってしまう(EDMエラー)。
この発明の目的は、外部機器モニタ(EDM)機能付ファンクションブロックを含むユーザプログラムであっても、シミュレーションを行なうことができるシミュレーション装置を提供することにある。
上記の目的を達成するため、本発明に係るシミュレーション装置は、外部機器モニタ機能付ファンクションブロックを含むユーザプログラム用のシミュレーション装置であって、ファンクションブロックの入力タグと出力タグとディレイ時間とを関連づけたフィードバック条件記憶手段と、前記出力タグの値が変化してから、前記ディレイ時間経過後に前記入力タグに前記出力タグの値に基づくフィードバック信号を与えるフィードバック手段と、を備えて構成した。
フィードバック手段は、キューを持ち、サンプリングタイムごとに前記出力タグの値をキューに登録し、前記ディレイ時間に対応する所定回数分経過後のキューの値を取り出し、その取り出した値に基づくフィードバック信号を前記入力タグに与えるようにしてもよい。
さらに、入力タグと出力タグとディレイ時間を受け付け、それらを関連づけて前記フィードバック条件記憶手段に格納するフィードバック条件の設定手段を備えるとよい。そして、設定手段は、フィードバック信号の反転の有無の条件を受付け、その反転の有無の条件も合わせて格納するようにすることができる。
出力タグの値に基づくフィードバック信号は、出力の値と同値或いは反転した信号となる。いずれにするかは、設定により決定される。その設定は、予めいずれかに決定していても良いし、ユーザが設定できるようにしても良い。通常の外部機器モニタ(EDM)機能付ファンクションブロックの場合、反転するように設定する。
本発明では、外部機器モニタ(EDM)機能付ファンクションブロックを含むユーザプログラムであっても、シミュレーションを行なうことができる。
図4は、本実施形態のツール装置10のハードウェア構成を示す。ツール装置10は、内部装置として、CPU11と、メモリ12と、ハードディスクドライブ13と、COMポート14とを備える。それらの内部装置は、バス15に接続され、バス15を介して必要なデータを送受する。CPU11は、インストールされたアプリケーションプログラムを実行するプロセッサである。メモリ12は、RAM等の一時記憶手段であり、例えば、CPU11の演算実行の際にワークRAMとして使用される。ハードディスドライブ装置13は、内蔵ハードディスクに対しアクセスし、データの読み書きを行う。このハードディスクドライブ装置13並びに内蔵ハードディスクが、記憶装置を構成する。上記のアプリケーションプログラムは、この内蔵ハードディスクに格納される。COMポート14は、外部装置に接続するためのインターフェースであり、この例では、RS−232Cなどのシリアルポートである。ツール装置10は、このCOMポート14を介してセーフティコントローラに接続する。ツール装置10は、外部装置として、キーボード16,ポインティングデバイス17等の入力装置と、ディスプレイ18と、CD−ROMドライブ装置19を備えている。
アプリケーションプログラムの1つである設定プログラム(コンフィグレーションソフトウェアとも称される)やシミュレータプログラムは、CD−ROM媒体19′に格納される。この設定プログラムが格納されたCD−ROM媒体19′が、ユーザに提供される。ユーザは、そのCD−ROM媒体19′をCD−ROMデバイス装置19に挿入すると共に、キーボード16,ポインティングデバイス17を操作し、設定プログラムやシミュレータプログラムをノート型パーソナルコンピュータにインストールする。インストールされた設定プログラムは、内蔵ハードディスクに格納される。このインストールにより、ノート型パーソナルコンピュータが、ツール装置10となる。設定プログラムやシミュレータプログラムは、インターネットサイトからのダウンロードによって提供するようにしてもよい。ここで、設定プログラムは、ユーザプログラムを作成・編集したり、作成したユーザプログラムをセーフティコントローラ等にダウンロードしたり、システムを構成するセーフティコントローラやその他の機器並びにネットワークに対するパラメータ等の設定を行なったりするためのものである。
図5は、安全システム設計の手順の流れを示している。S2,S3,S4,S6の各処理ステップは、設計者が設定プログラム(ツール)やシミュレータソフトウェア(ツール)を使用して行うものである。
まず、設計者は、セーフティシステム(安全システム)を設計する(S1)。すなわち、設計者は、ネットワークを構成するセーフティコントローラ,機器等を選択したり、それらをどのように配置・配線するかなどについて設計を行なう。
次いで、設定プログラムをインストールして構成される設定ツール装置を用いて、ローカルI/Oの設定や、ネットワークの設定を行なう(S2)。すなわち、ユーザは、設定ツール装置を起動する。設定ツール装置は、ユーザからの指示に従いディスプレイ18に設定対象のネットワークやローカルI/Oに各種の設定画面を出力する。ユーザは、表示された設定画面中の各パラメータ等を入力することで、それらの設定を行なう。設定画面の一例を示すと、図6は、ネットワーク設定、図7はローカル入力設定、図8はローカル出力設定のための設定画面である。設定ツール装置は、これらの設定画面を用いて、入力された各パラメータと、指定された機器・ネットワークとを関連付けて記憶する。なお、係る設定ツール装置の機能は、例えば特開2003−288458号公報等により従来公知であるので、その詳細な説明を省略する。
次に、ユーザは、プログラミングを行なう(S3)。本実施形態のセーフティコントローラは、プログラマブルコントローラであり、ユーザプログラムはファンクションブロックにより記述されている。ファンクションブロックは、所定の機能を実現するプログラムと、パラメータ情報と、を備えている。パラメータ情報は、そのファンクションブロックがステータス異常か否かを判断するための情報であり、例えば、入力値の取り得る組み合わせや、入力値と出力値の取り得る組み合わせや、異なる入力端子に同じ値が一定時間遅れて入力されるような場合にその遅れ時間(ディレイタイム)等がある。発明が解決しようとする課題の欄で説明したEDMのフィードバック信号の入力は、ファンションブロックの出力が変化してから、出力機器の動作を経てファンクションブロックのEDM入力端子に入力されることから、一定のディレイタイムが生じる。係るディレイタイムなどがパラメータ情報として設定される。
この処理ステップS3で実行されるファンクションブロックを用いたプログラミングは、具体的には図9に示すフローチャートを実行することになる。まず、プログラミングエディタを起動する(S11)。具体的には、図10に示すような設定ツール装置の表示画面に表示されたコンフィグレーションソフトウェアのプログラムタブの画面で[編集]ボタンをクリックすると、それを認識した設定ツール装置はプログラムエディタを起動させる。そして、プログラムエディタが起動すると、図11に示すようなエディタ画面がディスプレイ18に出力表示される。このエディタ画面は、右側のウインドウがファンクションブロックや各I/Oを配置したり、結線をしたりしてプログラムを作成する領域となり、左側のウインドウはプログラムの構成要素(ファンクションブロック,I/O等)をリスト表示(図示の例では、ツリー状)する領域となる。
次いで、エディタ画面の右側の領域に、プログラムで使用するファンクションブロックを配置する(S12)。図12では、左側のウインドウに表示されたファンクションブロックのリストの中から、“Output”の“EDM”を選択し、右側のウインドウにドラッグアンドペーストにより配置している。
次に、配置したファンクションブロックのパラメータ設定を行なう(S13)。例えば、設定対象のファンクションブロックに対して右クリックなど予め設定された処理が実行されたことを認識したプログラムエディタは、図13に示すようなパラメータ設定画面を重ねて表示する。ここでは、“Max. feedback Time”として、EDMフィードバック信号のディレイ時間が設定される。この設定されたディレイ時間経過するまでは、EDMフィードバック信号に基づく異常判定を行なわない。また、この例では、10msecを基準単位としているため、図示のように、“100”という値を入力すると、ディレイ時間は1000msecとなる。このディレイ時間は、実機における遅れ時間を考慮して設定される。
次に、ローカルI/OまたはリモートI/Oのタグを配置する(S14)。この配置処理は、上述したファンクションブロックの配置と同様に、左側のウインドウに表示されたリストの中から、該当するものをドラッグアンドドロップにより配置する(図14参照)。
最後に、図15に示すように、プログラムエディタ上でファンクションブロックとI/Oタグとを結線する(S15)。プログラミング処理を終了するには、作成したファンクションブロックを含んで構成されるプログラムをハードディスク等の記憶手段に保存してプログラムエディタを閉じる。
表示画面に作成されたプログラムを構成するファンクションブロックや、タグは、単なるイメージデータで構成されているのではなく、各デバイス等を示すパーツがそれぞれ仮想アイコンを構成する。そして、その仮想アイコンが選択(クリック等)されると、そのデバイスの設定を行なったり、設定されたデータを読み出したりする処理が実行可能となる。
プログラミング処理が終了すると、ユーザは、作成したプログラムの検証を行なう。すなわち、シミュレータプログラムをインストールして構成されるシミュレータ装置を用いてデバッグを行なう(S4)。本実施形態では、このシミュレータ装置と設定ツール装置とは、同じパソコンにそれぞれのソフトをインストールして構成したが、別々のパソコンにより実現してももちろん良い。
本実施形態のシミュレータ装置は、EDM付のファンクションブロックに対し、仮想的に外部機器のフィードバック信号を入力する機能を備えている。この機能を実行する前処理として、図16に示すフローチャートを実行し、フィードバックについての出力タグと入力タグとの関連付けを行なう。このフローチャートを実行するための設定画面として、シミュレータ装置は、図17に示すフィードバック設定画面を用意している。
シミュレータ装置は、関連付けをする入力タグ並びに出力タグの選択を受け付ける(S81,S82)。具体的には、ユーザが、図17の設定画面における「入力タグ」と「出力タグ」のそれぞれの入力欄に用意されたプルダウンメニューで表示されたリストの中から、該当するタグを選択する。シミュレータ装置は、その選択されたタグを認識する。プルダウンメニューにリストアップされるタグは、処理ステップS3(S14)の実行により配置されたタグである。
次いで、ユーザは、図17の設定画面におけるディレイ時間の入力欄を利用して、フィードバックのディレイ時間を入力するため、シミュレーション装置は、入力されたディレイ時間を、S81,S92で受け付けた各タグと関連付ける(S83)。入力するディレイ時間は、入力欄に直接数値を入力しても良いし、上下の矢印ボタンを押下して数値を昇降させて目的の値にしてもよい。
その後、フィードバックする際の反転の有無の選択を受け付け(S84)、確定した内容で登録する(S85)。すなわち、EDMフィードバックの場合、ファンクションブロックの出力タグの値(ON/OFF)と反転した値が、一定時間遅れてEDM用の入力タグに入力される。そこで、通常、条件の入力欄として、「反転」のチェックボックスにチェックする。なお、この「反転」のチェックボックスのチェックをはずした場合、ファンクションブロックの出力タグの値(ON/OFF)と同値が、一定時間遅れてEDM用の入力タグに入力されることになる。また、本実施形態では、デフォルトとして「反転」のチェックボックスがチェックされた状態にしている。
処理ステップS85の登録処理は、設定画面に用意された「追加」ボタンを押下することにより行なう。この「追加」ボタンが押下された場合、そのときの各入力欄に表示されている内容でフィードバックの条件が確定され、設定画面の下方に用意された「登録一覧」リストに登録される。これにより、入力タグに出力タグをリンクさせ、ファンクションブロックに対し、仮想的に外部機器のフィードバックを入力することができる。
図17に示した例では、フィードバックの条件は、EDM フィードバックの入力タグに対し、Output1の出力タグの反転信号を200ms遅れで入力するようになっている。
上記のS81からS85の処理を実行することで、1組のフィードバックの条件が設定される。ユーザは、係る処理を必要な組数分だけ繰り返し実行する(S86)。全ての登録が済んだならば(S86の分岐判断でNo)、処理ステップS87に移行し、登録された内容に基づいてテーブルを作成する。S86の判断は、図17の設定画面における「OK」ボタンがクリックされたか否かにより行なう。作成されるテーブルは、図18に示すように、入力タグと出力タグについては、具体的なアドレスで登録される。タグ名とアドレスとの変換は、別途用意された変換テーブルに従って行なう。この変換テーブルは、プログラムを作成する際に生成される。また、テーブルの先頭の数値は、レコードNoである。
前処理として上記のフィードバック条件の設定を行なった後、シミュレータ装置は、図19に示すフローチャートを実行してシミュレーションを行なう。シミュレータ装置は、イベントを受信するのを待ち(S21)、イベントを受信したならばイベントの内容を解析し(S22からS26)、イベントに対応した処理(S30,S40,S50,S60,S70)を実行する。
すなわち、受信したイベントが「開始イベント」の場合、S22の判断がYesとなるので、処理ステップS30に飛び、デバッグ開始処理を実行する。このデバッグ開始処理は、図20に示すように、表示タイマ,エンジン実行タイマ,フィードバックタイマを順次起動するものである(S31,S32,S33)。
受信したイベントが、「停止イベント」の場合、S23の判断がYesとなるので、処理ステップS40に飛び、デバッグ開始処理を実行する。このデバッグ開始処理は、図21に示すように、表示タイマ,エンジン実行タイマ,フィードバックタイマを順次停止するものである(S41,S42,S43)。
受信したイベントが「表示タイマイベント」の場合、S24の判断がYesとなるので、処理ステップS50に飛び、表示処理を実行する。この表示処理は、図22に示すように、シミュレータ装置が仮想PLC(CPUユニット)のIOメモリの所定アドレス(各タグのIOデータが格納される領域)に格納されている入出力データを呼び出し(S51)、その結果を表示する(S52)。係る結果の表示は、例えばONとOFFによりタグの色を異ならせたり、表示色の濃度を異ならせたりすることで、ユーザにON/OFFの状態を容易に理解させることができる。もちろん、これ以外の表示形態をとることができる。
受信したイベントが「エンジン実行タイマイベント」の場合、S25の判断がYesとなるので、処理ステップS60に飛び、エンジン実行処理を実行する。このエンジン実行処理は、図23に示すように、シミュレータ装置が仮想PLC(CPUユニット)のIOメモリにアクセスし、入力を取り込む(S61)。そして、取り込んだ入力(ON/OFF)に基づき、ファンクションブロックで規定される演算を実行し(S62)、その演算結果をIOメモリの所定アドレス(出力タグに対応するアドレス)に書き込む(S63)。
受信したイベントが「フィードバックタイマイベント」の場合、S26の判断がYesとなるので、処理ステップS70に飛び、フィードバック処理を実行する。このフィードバック処理は、図24に示すように、未処理のフィードバック設定の有無を確認し(S71)、未処理のものがあったならばその出力アドレスの値を取り込む(S72)。次いで、取り込んだ出力アドレスの値を対応するキューに登録する(S73)。このキューは、フィードバック設定された“一組の入力タグと出力タグ”ごとに設定される。図26(a)は、図18のフィードバック設定テーブルのNo.=1についてのキューを示し、図26(b)は、図18のフィードバック設定テーブルのNo.=2についてのキューを示している。
次いで、シミュレーション装置は、キューの中から設定時間が経過したものを取り出し(S74)、その取り出した値を反転条件に基づいて入力アドレスに書き込む。最新の値がキューに登録されたならば、そのときの最古の値が取り出されるので、結果として、今回キューに登録された値は、所定回分のサンプリング時間経過後、つまり、設定されたディレイ時間経過後に取り出される。例えば図26(a)に示す例では、ディレイ時間が200msに設定されているため(図18参照)、最新の値(OFF)がキューに登録されたならば、そのときの最古の値(図の例ではON)が取り出され、今回登録された値は200ms経過後に取り出されることになる。
この例では、フィードバックタイマ40msで出力アドレスの値をサンプリングしている。設定されたサンプリング間隔で最新の値をサンプリングし、キューの最後に追加する。そしてキューをさかのぼり、ディレイ時間が経過したものをキューから取り出し、その値を条件にしたがって入力アドレスに書き込む。
また、デバッグを行なうに際して入力の値を変更する場合、入力の値を変更する対象の入力IOタグをポインティングデバイスを操作して右クリックする。すると、シミュレータ装置は、図25に示すように、メニューリストを表示するので、ユーザは、いずれかを選択して指令を与える。このメニューリストにおいて、「セット」は入力の値をONにすることであり、「リセット」は入力の値をOFFにすることである。
図27は、「Monitored Input」の入力の値をOFFにした場合の各タグの状態を示している。図において、波線で囲んだタグがOFFを示し、実線で囲んだタグがONを示している。このファンクションブロックは、「Monitored Input」の入力の値がONになると「Output1」,「Output2」の値がONになり、このファンクションブロックは、「Monitored Input」の入力の値がOFFになると「Output1」,「Output2」の値がOFFになる。そして、「Output1」と「EDM Feedback」とがフィードバック設定により関連付けられるとともに、条件は「反転」としている。
すると、「Monitored Input」の入力の値がOFFになるのに伴い演算実行して「Output1」の値もOFFになる。そして、フィードバック設定されているため、一定のディレイ時間が経過すると、EDM Feedback信号は自動的にONになるので、ファンクションブロックはエラーにならない。
同様に、図28に示すように、「Monitored Input」の入力の値がONになると「Output1」の値もONになる。そして、フィードバック設定されているため、一定のディレイ時間が経過すると、EDM Feedback信号は自動的にOFFになるので、ファンクションブロックはエラーにならない。
これに対し、フィードバック設定がされていないと、図29に示すように、「Monitored Input」の入力の値がOFFになって「Output1」の値もOFFになった場合でも、「EDM Feedback」には信号が入力されないのでOFFのままとなる。よって、「Output1」の値と「EDM Feedback」の値とが同値となるので、ファンクションブロックがEDMエラーとなる。
上述したように、シミュレータ装置を用いたデバッグでは、EDM付のファンクションブロックに対しても、正しいタイミングでEDM フィードバック信号を与えることができるので、係るEDM付のファンクションブロックを含むプログラムのデバッグを正しく行なえる。このデバッグ処理が終了すると、プログラムが正しく動作したか否かをユーザが判断し(S5)、動作に不具合があった場合には処理ステップS3に戻りプログラムの修正を行なう。そして、プログラムが正しく動作した場合には、設定ツール装置は、検証済みのプログラムを実デバイスにダウンロードする(S6)。ユーザは、実デバイスで機能テストを行ない(S7)、機能が正しく動作しているか否かを確認する(S8)。ここで不具合が見つかった場合には、処理ステップS1に戻り、設計の見直し・修正を行なう。機能が正しく動作したならば、処理を終了する。
全体システムを示す図である。 EDM付のファンクションブロックの一例を示す図である。 従来の問題点を説明する図である。 ツール装置のハードウェア構成を示す図である。 安全システム設計の手順の流れを示す図である。 ネットワーク設定のための設定画面の一例である。 ローカル入力設定のための設定画面の一例である。 ローカル出力設定のための設定画面の一例である。 処理ステップS3で実行されるファンクションブロックを用いたプログラミングの具体的な処理フローを示す図である。 設定ツール装置の表示画面の一例である。 プログラムエディタにおけるエディタ画面の一例である。 プログラムエディタにおけるエディタ画面の一例である。 プログラムエディタにおけるエディタ画面の一例である。 プログラムエディタにおけるエディタ画面の一例である。 プログラムエディタにおけるエディタ画面の一例である。 フィードバック条件の設定を行なう設定手段の機能を示すフローチャートである。 フィードバック条件の設定画面の一例である。 フィードバック条件の設定テーブル(フィードバック条件記憶手段)の一例を示す図である。 シミュレータ装置の機能を示すフローチャートである。 処理ステップ30の具体的な処理フローを示すフローチャートである。 処理ステップ40の具体的な処理フローを示すフローチャートである。 処理ステップ50の具体的な処理フローを示すフローチャートである。 処理ステップ60の具体的な処理フローを示すフローチャートである。 処理ステップ70の具体的な処理フローを示すフローチャートである。 シミュレーション装置を用いたデバッグ処理の一画面を示す図である。 ディレイ時間経過後にフィードバック信号を入力タグに与えるためのキューを示す図である。 シミュレーション装置を用いたデバッグ処理の一画面を示す図である。 シミュレーション装置を用いたデバッグ処理の一画面を示す図である。 シミュレーション装置を用いたデバッグ処理の一画面を示す図である。
符号の説明
10 ツール装置
11 CPU
12 メモリ
13 ハードディスクドライブ
14 COMポート
15 バス
16 キーボード
17 ポインティングデバイス
18 ディスプレイ
19 CD−ROMドライブ装置

Claims (4)

  1. 外部機器モニタ機能付ファンクションブロックを含むユーザプログラム用のシミュレーション装置であって、
    ファンクションブロックの入力タグと出力タグとディレイ時間とを関連づけたフィードバック条件記憶手段と、
    前記出力タグの値が変化してから、前記ディレイ時間経過後に前記入力タグに前記出力タグの値に基づくフィードバック信号を与えるフィードバック手段と、
    を備えたことを特徴とするシミュレーション装置。
  2. フィードバック手段は、キューを持ち、サンプリングタイムごとに前記出力タグの値をキューに登録し、前記ディレイ時間に対応する所定回数分経過後のキューの値を取り出し、その取り出した値に基づくフィードバック信号を前記入力タグに与えるようにしたことを特徴とする請求項1に記載のシミュレーション装置。
  3. 入力タグと出力タグとディレイ時間を受け付け、それらを関連づけて前記フィードバック条件記憶手段に格納するフィードバック条件の設定手段を備えたことを特徴とする請求項1または2に記載のシミュレーション装置。
  4. 設定手段は、フィードバック信号の反転の有無の条件を受付け、その反転の有無の条件も合わせて格納するものであることを特徴とする請求項3に記載のシミュレーション装置。
JP2006198558A 2006-07-20 2006-07-20 シミュレーション装置 Pending JP2008027156A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006198558A JP2008027156A (ja) 2006-07-20 2006-07-20 シミュレーション装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006198558A JP2008027156A (ja) 2006-07-20 2006-07-20 シミュレーション装置

Publications (1)

Publication Number Publication Date
JP2008027156A true JP2008027156A (ja) 2008-02-07

Family

ID=39117727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006198558A Pending JP2008027156A (ja) 2006-07-20 2006-07-20 シミュレーション装置

Country Status (1)

Country Link
JP (1) JP2008027156A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014016930A (ja) * 2012-07-11 2014-01-30 Omron Corp 安全システムおよび制御装置
JP2018151867A (ja) * 2017-03-13 2018-09-27 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2019179476A (ja) * 2018-03-30 2019-10-17 オムロン株式会社 サポート装置、サポートプログラム、設定方法
JP2021082034A (ja) * 2019-11-19 2021-05-27 株式会社キーエンス プログラム作成支援装置
JP2021082033A (ja) * 2019-11-19 2021-05-27 株式会社キーエンス プログラム作成支援装置
JP2022027966A (ja) * 2017-03-13 2022-02-14 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895610A (ja) * 1994-09-26 1996-04-12 Mitsubishi Electric Corp プログラマブルコントローラ
JPH10333702A (ja) * 1997-06-02 1998-12-18 Rika Kogyo Kk コントローラ装置
JP2004265001A (ja) * 2003-02-28 2004-09-24 Omron Corp プロセスコントロール機器及びcpuユニット
JP2006072680A (ja) * 2004-09-02 2006-03-16 Yokogawa Electric Corp 統合システム、システム統合方法およびシステム統合のためのプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895610A (ja) * 1994-09-26 1996-04-12 Mitsubishi Electric Corp プログラマブルコントローラ
JPH10333702A (ja) * 1997-06-02 1998-12-18 Rika Kogyo Kk コントローラ装置
JP2004265001A (ja) * 2003-02-28 2004-09-24 Omron Corp プロセスコントロール機器及びcpuユニット
JP2006072680A (ja) * 2004-09-02 2006-03-16 Yokogawa Electric Corp 統合システム、システム統合方法およびシステム統合のためのプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014016930A (ja) * 2012-07-11 2014-01-30 Omron Corp 安全システムおよび制御装置
JP2018151867A (ja) * 2017-03-13 2018-09-27 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP7005914B2 (ja) 2017-03-13 2022-01-24 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2022027966A (ja) * 2017-03-13 2022-02-14 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP7287445B2 (ja) 2017-03-13 2023-06-06 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2019179476A (ja) * 2018-03-30 2019-10-17 オムロン株式会社 サポート装置、サポートプログラム、設定方法
JP2021082034A (ja) * 2019-11-19 2021-05-27 株式会社キーエンス プログラム作成支援装置
JP2021082033A (ja) * 2019-11-19 2021-05-27 株式会社キーエンス プログラム作成支援装置
JP7398856B2 (ja) 2019-11-19 2023-12-15 株式会社キーエンス プログラム作成支援装置
JP7409832B2 (ja) 2019-11-19 2024-01-09 株式会社キーエンス プログラム作成支援装置

Similar Documents

Publication Publication Date Title
US8473917B2 (en) Enhanced operation diagnostics
JP6127755B2 (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
USRE42017E1 (en) Configurable safety system for implementation on industrial system and method of implementing same
JP4893931B2 (ja) セーフティ・コントローラ
JP3918950B2 (ja) セーフティデバイス
JP5436660B2 (ja) 安全関連制御ユニット用アプリケーションプログラムの生成方法および装置
JP6111675B2 (ja) 安全コントローラのユーザプログラムの設計を支援する方法、装置およびプログラム
JP2004524620A (ja) フェイルセーフ制御システムのプログラミング方法及び装置
JP2008027156A (ja) シミュレーション装置
EP2244143A1 (en) Method and device for programming an industrial controller of an automated installation
JP2011181072A (ja) システム設定可能な安全制御装置を有する安全装置
Normanyo et al. Developing a human machine interface (HMI) for industrial automated systems using siemens simatic WinCC flexible advanced software
JP4849261B2 (ja) 安全アプリケーション作成支援装置
CN108572611B (zh) 信息处理装置、信息处理方法及计算机可读取记录媒体
JP4941365B2 (ja) 産業用コントローラ
JP4656335B2 (ja) 安全デバイスの設定ファイル作成支援装置
JP2007086921A (ja) 機械装置制御プログラム実行システム
JP7005914B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP7000703B2 (ja) 情報処理装置、情報処理方法、および、情報処理プログラム
CN105739463B (zh) 成型设备和用于成型设备的外围设备
JP2007304939A (ja) プログラマブルコントローラおよびモニタ
JP4924851B2 (ja) 安全コントローラのプログラム開発支援装置
JP6163735B2 (ja) 安全スレーブユニット、その制御方法、その制御プログラム、および安全制御システム
JP2008310479A (ja) 安全コントローラのプログラム開発支援装置
JP4032907B2 (ja) 設計支援装置及び設計支援方法並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110315