JP2007304939A - プログラマブルコントローラおよびモニタ - Google Patents
プログラマブルコントローラおよびモニタ Download PDFInfo
- Publication number
- JP2007304939A JP2007304939A JP2006133655A JP2006133655A JP2007304939A JP 2007304939 A JP2007304939 A JP 2007304939A JP 2006133655 A JP2006133655 A JP 2006133655A JP 2006133655 A JP2006133655 A JP 2006133655A JP 2007304939 A JP2007304939 A JP 2007304939A
- Authority
- JP
- Japan
- Prior art keywords
- abnormality
- status
- safety
- function block
- function
- 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
Links
Images
Abstract
【課題】 ファンクションブロックの異常の有無等の異常情報を外部から容易に知ることができるPLCを提供することにある。
【解決手段】 ユーザプログラムを構成するファンクションブロックについて、識別子(FB番号:n)の順にステータスが正常か否かを判断する。この判断は、異常なものが検出されるまで繰り返し実行される(S1−S4)。異常が検出された場合、PLCのメモリに設定されたFBステータスに異常反映処理(異常ビットをON)を行ない(S5)、ステータス異常の識別子と、異常内容を特定するステータスコードを保存する(S6)。これにより、外部からPLCのメモリにアクセスすることで、ステータス異常の有無や、異常を生じているファンクションブロック並びにその異常要因の特定が簡単にできる。
【選択図】 図6
【解決手段】 ユーザプログラムを構成するファンクションブロックについて、識別子(FB番号:n)の順にステータスが正常か否かを判断する。この判断は、異常なものが検出されるまで繰り返し実行される(S1−S4)。異常が検出された場合、PLCのメモリに設定されたFBステータスに異常反映処理(異常ビットをON)を行ない(S5)、ステータス異常の識別子と、異常内容を特定するステータスコードを保存する(S6)。これにより、外部からPLCのメモリにアクセスすることで、ステータス異常の有無や、異常を生じているファンクションブロック並びにその異常要因の特定が簡単にできる。
【選択図】 図6
Description
この発明は、ファンクションブロックで記述されたユーザプログラムを実行するプログラマブルコントローラおよびモニタに関するものである。
FA(Factory Automation)におけるネットワークシステムは、生産設備の制御を司るPLC(プログラマブルコントローラ)と、そのPLCにより動作が制御される機器とが、制御系のネットワークに接続される。それらPLCと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、IOデータの送受を行ない、生産設備を制御する。
PLCは、制御プログラムに基づいて演算実行するCPUユニット、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、ネットワークに接続された他の装置とデータの送受を行なう通信ユニット、各ユニットに電源を供給する電源ユニット、などの複数のユニットを組み合わせることにより構成されている。また、各機能を1つの筐体内に実装した一体型のPLCもある。
さらに最近ではPLCによる制御においても、フェイルセーフ(安全)システムが導入されつつある。つまり、PLCや各機器自体はもちろん、それらを接続するネットワークも安全機能を組み込まれたもので構成される。ここで安全機能とは、例えばCPUその他の各処理部等を二重化して、正しい出力をするようにしたり、ネットワーク異常(正常な通信ができない)の場合や、緊急停止スイッチが押下されたり、ライトカーテンなどのセンサが人(身体の一部)の進入を検出した場合等の、ネットワークシステムが危険状態になった場合に、フェイルセーフが働き、システムが安全側になって、動作が停止するものである。
この安全システムは、例えば図1に示すように、PLC1と複数のスレーブ2とがネットワーク3に接続されたネットワーク構成をとる。各PLC1,スレーブ2,ネットワーク3等のネットワークを構成する機器は二重化されている。図では、左端の入力スレーブから緊急停止スイッチ等の異常状態を検出するスイッチがONになったことをネットワーク3経由でマスタであるPLC1に伝える。PLC1は、論理演算を実行し、右端のスレーブ2に対して動作停止命令を送るべくIOデータとしてOFFを送る。これにより、その右端のスレーブ2に接続された外部のIO機器(出力装置)の動作が停止し、フェイルセーフが働くことになる。
この安全システムに対応したPLC1のユーザプログラムは、例えば、1つのファンクションブロック或いは複数のファンクションブロックの組み合わせで構築されるものがある。このようにファンクションブロックを用いて記述されたユーザプログラムを演算実行するPLCとしては、特許文献1に開示されたものがある。
特開2000−276508号公報
しかしながら、制御プログラムを構成する個々のファンクションブロックに異常が発生していると、システム全体としての異常が見られずに本来は動作すべき場合であっても、最終出力(図1の場合、右端のスレーブのIO)がOFFの状態となり、システムが停止する。安全システムの場合、システムのいずれかに故障・異常が発生した場合には、出力がOFFになるように設計されている。このように、システムが停止した場合、その停止した原因を特定する必要があり、特に、ファンクションブロックの異常が原因の場合、原因を特定するのに手間取る。
ファンクションブロックの異常を検出する方法としては、例えば図2に示すように、各ファンクションブロックFBの出力として、ステータス異常チェック用端子O1を設け、複数のファンクションブロックFBの異常ステータスをあるポイントに出力するためには、その複数(図では2個)のファンクションブロックFBのステータス異常チェック用端子O1をAND回路の入力端子と結線するようなプログラムを新たに組み必要がある。ステータス異常チェック用端子O1が、正常時はONで内部でステータス異常が発生した場合にOFFになるとすると、いずれかのファンクションブロックFBに異常が生じた場合にはAND回路の出力端子がOFFになり、エラー出力される。一方、AND回路の出力端子がONの場合、そのAND回路に入力されるファンクションブロックFBは正常に動作していることが確認できる。
しかし、係る方法をとると、検出のための新たなプログラムを組み必要がある。さらに、1つのAND回路で多数のファンクションブロックのエラーチェックを行なうようにした場合、その多数のファンクションブロックの中で実際に問題があるものがどれかを特定するのが煩雑となる。一方の、1つのAND回路に接続するファンクションブロックの数を少なくすれば、出力点数が多くなってしまうという問題が生じる。
一方、プログラムを実行させ、その状況をモニタリングツールにて、個々のプログラム回路の入出力をチェックすることで、異常原因を特定することもできる。しかし、この方法では、プログラム規模が大きくなると、原因特定に時間を要することとなる。
この発明の目的は、ファンクションブロックの異常の有無等の異常情報を外部から容易に知ることができるプログラマブルコントローラおよびモニタを提供することにある。
上記の目的を達成するため、本発明に係るプログラマブルコントローラは、ファンクションブロックで記述されたユーザプログラムを実行するプログラマブルコントローラであって、ユーザプログラムを構成するファンクションブロックのうちの少なくとも1つには、自己のステータス異常を定義する定義情報を保持する。そして、演算実行されたファンクションブロックの状態と定義情報とに基づきステータス異常の有無を判断する異常判定手段と、その異常判定手段の判定結果を記憶する記憶手段と、を備えた。
定義情報は、実施形態では「パラメータ情報」に対応する。「ステータス異常を定義する定義情報」は、直接的にステータス異常の条件等を定義しても良いし、正常な状態を定義することでそれ以外はステータス異常と判断できるような間接的(逆説的)なものでもよい。
ユーザプログラムが複数のファンクションブロックで構成されている場合、全てのファンクションブロックが定義情報を持つようになっていても良いし、一部のファンクションブロックのみが定義情報を持つようになっていても良い。さらに、ユーザプログラムは、ファンクションブロックのみから記述されているものでも良いし、プログラムの一部にファンクションブロックを含むものでも良い。
また、記憶手段は、RAM15により実現されており、外部装置からアクセスする(読み出す)ことができる。ファンクションブロックの状態は、入力や出力の値であったり、入力のタイミングなど、定義情報で規定されるステータス異常の判定のために必要な情報を得るものである。判定結果は、ステータス異常の有無である。
プログラマブルコントローラの記憶手段にファンクションブロックのステータス異常があったか否かの情報(判定結果)が記憶されるので、外部からその判定結果を取得することで、ステータス異常の有無を容易に確認できる。つまり、正常な動作をしない場合に、その原因がファンクションブロックのステータス異常に基づくものか否かを簡単に判断できるため、要因分析並びにそれに基づく修正が簡単に行なえる。
さらに本発明は、少なくとも前記定義情報を持つファンクションブロックには、他のファンクションブロックと区別するための識別情報が設定される。そして、異常判定手段で検出されたステータス異常のファンクションブロックの識別子を記憶する記憶手段を備えるとよい。識別情報は、実施形態の識別子(FB番号)に対応する。ユーザプログラムを構成する全てのファンクションブロックに識別情報を付しても良いし、定義情報もつファンクションブロックにのみ付しても良い。なお、図10に示すフローチャートを実施する機能を備えたプログラマブルコントローラの場合、全てのファンクションブロックに識別情報を付す必要がある。ステータス異常が生じている場合、識別情報も記憶されるため、どのファンクションブロックが問題であるかが容易に特定できる。
異常判定手段は、異常の有無と共にその異常内容を併せて判断する機能を備え、記憶手段にはその異常内容と識別情報とを関連づけて格納するようにするとよい。異常内容は、実施形態ではステータスコードに対応する。このようにすると、具体的な異常内容まで外部から簡単に確認できる。
異常判定手段は、ユーザプログラムの演算実行中に判断するとよい。この発明は、図10に示すフローチャートの実施形態により実現されている。ここで演算実行中とは、各ファンションブロックを実行する都度、その実行したファンションブロックのステータス異常の有無等の判定を行なうことを意味する。もちろん、ユーザプログラムの実行後に一括してステータス異常の有無の判断等を行なうようにしても良い。
さらに、判定結果記憶手段に格納された判定結果を含む異常情報を外部装置からアクセスすることができる(読み出すことができる)ようにするとよい。
また、本発明に係るモニタは、請求項1〜4のいずれかに記載のプログラマブルコントローラにアクセスする手段と、プログラマブルコントローラの記憶手段に格納された判定結果を含む異常情報を取得する手段と、取得した異常情報を表示する手段と、を備えるようにした。異常情報は、判定結果の他に異常内容等がある。
本発明では、プログラマブルコントローラの記憶手段をアクセスすることで、ファンクションブロックの異常の有無等の異常情報を外部から容易に知ることができる。
図3は、本発明のPLCを含むネットワークシステムの一例を示している。このネットワークシステムは、フェイルセーフ(安全)システムを構成するためのものである。このネットワークシステムは、PLC10と複数のスレーブ20とがネットワーク21に接続されたネットワーク構成をとる。各PLC10,スレーブ20,ネットワーク21等のネットワークを構成する機器は二重化されている。図では、左端の入力スレーブから緊急停止スイッチ等の異常状態を検出するスイッチがONになったことをネットワーク21経由でマスタであるPLC10に伝える。PLC10は、論理演算を実行し、右端のスレーブ20に対して動作停止命令を送るべくIOデータとしてOFFを送る。これにより、その右端のスレーブ2に接続された外部のIO機器(出力装置)の動作が停止し、フェイルセーフ(セーフティ)が働くことになる。
この種のセーフティ制御システムは、セーフティコントローラ(セーフティPLC:本実施形態のPLC10等)、セーフティI/Oターミナル(本実施形態のスレーブ20等)を含み、切削機械や切断機械やアーム付き製造機ロボット等とともに使用される。セーフティコントローラは、一般的なプログラマブルコントローラ(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ターミナルは接続端子を備えていて、その接続端子に、オン・オフ信号を出すスイッチ等の入力機器と、制御信号の出力先となる出力機器との少なくとも一方が接続されている。入力機器の例は、非常停止スイッチ、ライトカーテン、ドアスイッチ、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ターミナルに接続された出力機器であるところのセーフティリレーやコンタクタは、製造機ロボットや加工機械、切断機械等につながれていて、リレーやコンタクタの接点がオン中は製造機ロボット等が動作し、接点がオフ中は製造機ロボット等が停止するようになっている。よって、セーフティコントローラは、出力機器をオン・オフ制御することで、最終的な制御対象の操作ロボット等の動作停止に関する制御をする。具体的な例をいうと、セーフティコントローラは、非常停止スイッチが正常に操作されたことをセーフティI/Oターミナルから通信にて入力されると、制御対象が危険な動作をしないように出力機器(リレーやコンタクタ)をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。セーフティコントローラは、非常停止スイッチまたは他の入力機器が異常有りの診断結果が入力されると、非常停止スイッチの操作有無または入力機器のオン・オフ状態にかかわらずに、制御対象が危険な動作をしないようにその動作を停止するよう出力機器をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を採る。
図4は、PLC10の内部構造の一部を示している。このPLC10は、MPU12が、システムROM13に格納されたプログラム、さらにはユーザプログラム記憶部14に格納されたユーザプログラムを読み出し、システムRAM15のメモリ領域を適宜使用してそのユーザプログラムを演算実行する。MPU12の演算実行結果は、IOメモリ16に格納される。このIOメモリ16に格納されたIOデータは、図示省略する通信手段により、マスタ−スレーブ間通信が行なわれ、スレーブとの間でデータ交換される。
このPLC10は、安全システム用のものであり、ユーザプログラムはファンクションブロックにより記述されている。ファンクションブロックは、所定の機能を実現するプログラムと、パラメータ情報と、を備えている。パラメータ情報は、そのファンクションブロックがステータス異常か否かを判断するための情報であり、例えば、入力値の取り得る組み合わせや、入力値と出力値の取り得る組み合わせや、異なる入力端子に同じ値が一定時間遅れて入力されるような場合にその遅れ時間(ディレイタイム)等がある。
このパラメータ情報と実際のファンクションブロックの動作状況とを比較することで、ステータス異常か否かを判断することができる。例えば、2入力のファンクションブロックにおいて、“2つの入力値が異なる”というパラメータ情報が記憶されている場合に、2つの入力値が“1,1”や“0,0”のように同値をなっている場合にはステータス異常を生じていると判断できる。
また、各ファンクションブロックは、そのプログラム中で一意に特定するための識別情報たる識別子(FB番号)がそれぞれに設定されている。このFB番号は、本実施形態ではプログラムの実行順に付与している(図5参照)。
図6は、本発明の一実施の形態を示すフローチャートである。MPU12は、図5に示すファンクションブロック異常ステータス生成処理を実行する機能を有する。この処理は、定期的に行なうようにしても良いし、イベントに従って実行するようにしてもよい。
まず、チェック対象のユーザプログラムを構成するファンクションブロックの使用数をNにセットするとともに、現在のチェック対象のファンクションブロックの識別子(FB番号)nを1にセットする(S1)。
次いで、nがNよりも大きいか否かを判断し(S2)、N以下の場合には処理対象のファンクションブロックが存在するので、処理ステップ3に飛び、ステータスが正常か否かを判断する(S3)。この判断は、FB番号=nのファンクションブロックに格納されたパラメータ情報を取得するとともに、ファンクションブロックの状態がそのパラメータ情報で規定されているステータスの通りか否かを判断する。
正常な場合(S3の分岐判断がYes)には、nを1インクリメントし(S4)、処理ステップS2に戻り、次のFB番号のファンクションブロックについての判断を行なう。一方、FB番号=nのファンクションブロックにステータス異常が生じている場合、処理ステップS3の分岐判断はNoとなるので、PLCのメモリ(例えばRAM15)に割り当てられたFBステータスに異常反映処理をする(S5)。すなわち、デバイスの情報を記憶するGeneralステータスの異常ビットをONにする。
そして、RAM15の所定エリアに、図7に示すようなステータス異常のファンクションブロックの識別子(FB番号=n)と、ステータスコードと、を保存する(S6)。ステータスコードは、ステータス異常の種類を特定するもので、本実施形態では、論理異常と、入力タイミング異常等がある。このFB番号とステータスコードの保存処理の実行後、処理を終了する。つまり、この実施形態によれば、ファンクションブロックをFB番号の順に先頭から1つずつステータス異常の有無のチェックをし、異常があった場合にはその検出したファンクションブロックについてのステータスコードを保存し、そこで処理を終了する。
一方、全てのファンクションブロックのステータスが正常な場合、N番目のファンクションブロックを実行後にnがインクリメントされてn=N+1となるので、処理ステップS2の分岐判断でYesとなり、処理ステップS7に飛び、FBステータスに正常反映処理をする(S7)。すなわち、デバイスの情報を記憶するGeneralステータスの異常ビットをOFFにする。これにより、今回の一連の処理を終了する。
よって、本実施形態では、ファンクションブロックにステータス異常が発生している場合、FBステータスにFB番号とステータスコードが格納されているため、例えばネットワーク21に接続された監視モニタ(PT)22で確認することで、異常箇所を容易に特定できる。つまり、そのステータスをメッセージ通信やI/O通信にて読み出すことを可能とし、ファンクションブロックに識別子を持たせ、外部からその識別子を読み出すことによって、異常発生中のファンクションブロックを特定することができる。この方法によると、ステータス異常の詳細情報を作り出すためのユーザプログラムを必要としないと言うメリットがある。またファンクションのステータス情報を外部機器から読み出し可能としているので、監視機器からモニタリングすることで、異常検出が容易となる。
なお、本実施形態の場合、仮に複数のファンクションブロックでステータス異常を生じている場合、その複数のファンクションブロックのうち、FB番号の最も小さいファンクションブロックについての情報(FB番号とステータスコード)のみが記録される。
図8は、別の実施形態を示している。本実施の形態では、ステータス異常のファンクションブロックを検出しても処理を停止せず、全てのファンクションブロックについてのステータスチェックを行ない、その結果を記録するようにしている。
まず、初期処理として、N=ファンクションブロックの使用数,n=1,FBステータス異常検出フラグ=OFFにするとともに、ステータス異常のファンクションブロックの識別子(FB番号)をクリアする(S10)。
次いで、nがNよりも大きいか否かを判断し(S11)、N以下の場合には処理対象のファンクションブロックが存在するので、処理ステップ12に飛び、ステータスが正常か否かを判断する(S12)。正常な場合(S12の分岐判断がYes)には、nを1インクリメントし(S18)、処理ステップS11に戻り、次のFB番号のファンクションブロックについての判断を行なう。一方、FB番号=nのファンクションブロックにステータス異常が生じている場合、処理ステップS12の分岐判断はNoとなるので、処理ステップS13に飛び、FBステータス異常検出フラグをONにする(S13)。このフラグは、ソフトウェア上のバッファに設定しても良いし、RAM15その他の記憶手段に設定しても良い。そして、RAM15の所定エリアに、ステータス異常のファンクションブロックの識別子(FB番号=n)と、ステータスコードと、を保存する(S14)。その後、処理ステップS18に進みnを1インクリメントし、次のFB番号のファンクションブロックに対する処理を行なう。
上記の処理を、FB番号の1番から順に全てのファンクションブロックについて実行することにより、ステータス異常のファンクションブロックが少なくとも1つ存在すると、FBステータス異常検出フラグはONになる(全てのファンクションブロックが正常の場合には、そのフラグはOFFとなる)。さらに、ステータス異常のファンクションブロックが複数存在する場合には、その全てのファンクションブロックについてのFB番号とステータスコードが保存される。このステータス異常のFB番号とステータスコードを保存する際のデータ構造は、図9(a)に示すように、該当するステータス異常のファンクションブロックのFB番号とステータスコードのみを記憶するテーブル形式としても良いし、図9(b)に示すようにFB番号のビットマップイメージ(異常=1,正常=0)としても良い。
そして、全てのファンクションブロックについてのステータスのチェック等の処理が終了すると、処理ステップS11の分岐判断でYesとなり、処理ステップS15に飛び、FBステータス異常検出フラグがONか否かを判断する(S15)。そして、ONの場合には、FBステータスに異常反映処理を実行し(S16)、フラグがOFFの場合にはFBステータスに正常反映処理を実行する(S17)。
図10は、さらに別の実施形態を示している。本実施の形態では、通常のファンクションブロックに基づく演算処理を実行中にステータス異常の判断をし、その結果の反映処理をする。本実施形態では、FB番号は、プログラムの演算実行順に設定する。
まず、初期処理として、N=ファンクションブロックの使用数,n=1,FBステータス異常検出フラグ=OFFにする(S21)。次いで、nがNよりも大きいか否かを判断し(S22)、N以下の場合には未処理のファンクションブロックが存在するので、処理ステップ23に飛び、FB番号がn番のファンクションブロックの演算処理(論理演算)を実行する(S23)。この処理ステップS23の演算実行に伴い、入力値や出力値の論理の異常や、入力タイミングの異常の有無を判断する。そして、RAM15に設定されたワークメモリには、図11(a)に示すように、各ファンクションブロックについてのデータが格納されるようになっているので、その判断結果(ステータス異常の有無)を、各ファンクションブロックのデータエリア中の所定アドレス(FB異常ステータスの記憶領域)に格納(1/0)する。
次いで、上記の所定アドレスをアクセスしてFBステータスが正常か否かを判断し(S24)、異常の場合にはFBステータス異常検出フラグをONにする(S25)。この後、或いはFBステータスが正常な場合に、nを1インクリメントし(S26)、処理ステップS22に戻り、次のFB番号のファンクションブロックに対する処理を行なう。
そして、全てのファンクションブロックについての演算実行が終了すると、処理ステップS22の分岐判断でYesとなり、処理ステップS27に飛び、FBステータス異常検出フラグがONか否かを判断する(S27)。そして、ONの場合には、FBステータスに異常反映処理を実行し(S28)、フラグがOFFの場合にはFBステータスに正常反映処理を実行する(S29)。これらの反映処理は、図11(b)に示すGeneralステータスに設定されたエラー発生ビットをON/OFFするものである。
なお、図6,図8のフローチャートにおけるステータス異常の有無のチェックは、そのチェックの処理ステップを実行の際にパラメータ等に基づいて比較するのではなく、上述したようにファンクションの演算実行の際に予めステータス異常の判断も行ない、内部ワークエリアのFB異常ステータスの格納領域にその判断結果を格納しておくようにし、その格納領域にアクセスすることで上記のステータス異常の有無のチェックを行なうようにしてもよい。
図12は、監視モニタ22の機能の一例を示すフローチャートである。監視モニタ22は、PLC10にアクセスし、FBステータス異常があったか否かを判断する(S31)。この判断は、Generalステータスの該当ビットのON/OFFを確認することで実行できる。異常がない場合(OFF)には、処理を終了し、異常がある場合(ON)にはRAM15に格納されたステータス異常を生じているファンクションブロックのFB番号を読み出すとともに(S32)、ステータスコードを読み出す(S33)。そして、読み出した内容をモニタ画面に表示する(S34)。このとき、PLCが図8のフローチャートを実行するもの場合、異常を生じているファンクションブロックが複数存在することがあるが、係る場合には、全ての情報を取得し、所定の画面レイアウトに従って適宜異常情報を表示する。さらに、好ましくは、該当するファンクションブロックの入力のON/OFFの状態を表示する(S35)。
ユーザは、係る表示された内容を見て、ステータス異常を生じている原因を探し、その異常要因を除去した後、再度PLCを動作させてファンクションブロックのステータス異常が無くなる(正常動作する)ことを確認する。
このようにすることで、仮に図6のフローチャートのように、1つのファンクションブロックについての異常情報のみ記憶される場合でも、異常停止した際に、図6,図12のフローチャートを順次実行することで異常要因を逐次解消でき、最終的に全てのファンクションブロックがステータス異常のない状態にすることがスムーズに行える。
監視モニタ22は、図示するようにネットワーク21を介してPLC10にアクセスするものに限ることはなく、PLCに直接接続するようにしても良い。また、単なるモニタではなく、PLCに対する設定ツールとすることもできる。設定ツールの場合、モニタリングしつつ、異常要因の除去のための処理(プログラムの編集等)を行える。
10 PLC
20 スレーブ
21 ネットワーク
22 監視モニタ
20 スレーブ
21 ネットワーク
22 監視モニタ
Claims (6)
- ファンクションブロックで記述されたユーザプログラムを実行するプログラマブルコントローラであって、
ユーザプログラムを構成するファンクションブロックのうちの少なくとも1つには、自己のステータス異常を定義する定義情報を保持し、
演算実行されたファンクションブロックの状態と、前記定義情報と、に基づきステータス異常の有無を判断する異常判定手段と、
その異常判定手段の判定結果を記憶する判定結果記憶手段と、
を備えたことを特徴とするプログラマブルコントローラ。 - 少なくとも前記定義情報を持つファンクションブロックには、他のファンクションブロックと区別するための識別情報が設定されるものであり、
前記異常判定手段で検出されたステータス異常のファンクションブロックの識別子を記憶する記憶手段を備えたことを特徴とする請求項1に記載のプログラマブルコントローラ。 - 前記異常判定手段は、異常の有無と共にその異常内容を併せて判断する機能を備え、
前記記憶手段にはその異常内容と識別情報とを関連づけて格納するようにしたことを特徴とする請求項1または2に記載のプログラマブルコントローラ。 - 前記異常判定手段は、前記ユーザプログラムの演算実行中に判断するものであることを特徴とする請求項1から3のいずれか1項に記載のプログラマブルコントローラ。
- 前記判定結果記憶手段に格納された判定結果を含む異常情報を外部装置からアクセスすることができる、請求項1から3のいずれか1項に記載のプログラマブルコントローラ。
- 請求項1〜4のいずれかに記載のプログラマブルコントローラにアクセスする手段と、
プログラマブルコントローラの判定結果記憶手段に格納された判定結果を含む異常情報を取得する手段と、
取得した異常情報を表示する手段と、
を備えたことを特徴とするモニタ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006133655A JP2007304939A (ja) | 2006-05-12 | 2006-05-12 | プログラマブルコントローラおよびモニタ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006133655A JP2007304939A (ja) | 2006-05-12 | 2006-05-12 | プログラマブルコントローラおよびモニタ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007304939A true JP2007304939A (ja) | 2007-11-22 |
Family
ID=38838805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006133655A Pending JP2007304939A (ja) | 2006-05-12 | 2006-05-12 | プログラマブルコントローラおよびモニタ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007304939A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011175353A (ja) * | 2010-02-23 | 2011-09-08 | Omron Corp | 異常解析装置、および、異常解析装置の制御方法 |
JP5460928B1 (ja) * | 2013-03-06 | 2014-04-02 | 三菱電機株式会社 | プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法 |
WO2015162793A1 (ja) * | 2014-04-25 | 2015-10-29 | 三菱電機株式会社 | プログラマブルロジックコントローラ |
WO2019198502A1 (ja) * | 2018-04-09 | 2019-10-17 | オムロン株式会社 | 異常検知装置、異常検知方法、および異常検知プログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0756627A (ja) * | 1993-08-13 | 1995-03-03 | Toyo Electric Mfg Co Ltd | 信号入力方法 |
JPH11212605A (ja) * | 1998-01-29 | 1999-08-06 | Omron Corp | プログラマブルロジックコントローラ |
JP2002062933A (ja) * | 2000-08-17 | 2002-02-28 | Yokogawa Electric Corp | フィールド機器 |
JP2003162792A (ja) * | 2001-11-27 | 2003-06-06 | Mitsubishi Electric Corp | デジタル式計装制御装置 |
JP2006072680A (ja) * | 2004-09-02 | 2006-03-16 | Yokogawa Electric Corp | 統合システム、システム統合方法およびシステム統合のためのプログラム |
-
2006
- 2006-05-12 JP JP2006133655A patent/JP2007304939A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0756627A (ja) * | 1993-08-13 | 1995-03-03 | Toyo Electric Mfg Co Ltd | 信号入力方法 |
JPH11212605A (ja) * | 1998-01-29 | 1999-08-06 | Omron Corp | プログラマブルロジックコントローラ |
JP2002062933A (ja) * | 2000-08-17 | 2002-02-28 | Yokogawa Electric Corp | フィールド機器 |
JP2003162792A (ja) * | 2001-11-27 | 2003-06-06 | Mitsubishi Electric Corp | デジタル式計装制御装置 |
JP2006072680A (ja) * | 2004-09-02 | 2006-03-16 | Yokogawa Electric Corp | 統合システム、システム統合方法およびシステム統合のためのプログラム |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011175353A (ja) * | 2010-02-23 | 2011-09-08 | Omron Corp | 異常解析装置、および、異常解析装置の制御方法 |
US9753444B2 (en) | 2013-03-06 | 2017-09-05 | Mitsubishi Electric Corporation | Programmable controller, programmable controller system, and method of creating execution error information |
KR20150096478A (ko) | 2013-03-06 | 2015-08-24 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 컨트롤러, 프로그래머블 컨트롤러 시스템 및 실행 에러 정보 작성 방법 |
CN105009006A (zh) * | 2013-03-06 | 2015-10-28 | 三菱电机株式会社 | 可编程控制器、可编程控制器系统及执行错误信息生成方法 |
CN105009006B (zh) * | 2013-03-06 | 2017-04-05 | 三菱电机株式会社 | 可编程控制器、可编程控制器系统及执行错误信息生成方法 |
JP5460928B1 (ja) * | 2013-03-06 | 2014-04-02 | 三菱電機株式会社 | プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法 |
WO2015162793A1 (ja) * | 2014-04-25 | 2015-10-29 | 三菱電機株式会社 | プログラマブルロジックコントローラ |
CN105393178A (zh) * | 2014-04-25 | 2016-03-09 | 三菱电机株式会社 | 可编程逻辑控制器 |
JP5908171B2 (ja) * | 2014-04-25 | 2016-04-26 | 三菱電機株式会社 | プログラマブルロジックコントローラ |
CN105393178B (zh) * | 2014-04-25 | 2017-05-24 | 三菱电机株式会社 | 可编程逻辑控制器 |
US9798611B2 (en) | 2014-04-25 | 2017-10-24 | Mitsubishi Electric Corporation | Programmable logic controller |
WO2019198502A1 (ja) * | 2018-04-09 | 2019-10-17 | オムロン株式会社 | 異常検知装置、異常検知方法、および異常検知プログラム |
JP2019185330A (ja) * | 2018-04-09 | 2019-10-24 | オムロン株式会社 | 異常検知装置、異常検知方法、および異常検知プログラム |
JP7014019B2 (ja) | 2018-04-09 | 2022-02-01 | オムロン株式会社 | 異常検知装置、異常検知方法、および異常検知プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3918950B2 (ja) | セーフティデバイス | |
JP4893931B2 (ja) | セーフティ・コントローラ | |
EP1857899A2 (en) | Remote I/O system | |
JP5348499B2 (ja) | I/oユニット並びに産業用コントローラ | |
JP6127755B2 (ja) | 情報処理装置、情報処理装置の制御方法および制御プログラム | |
JP4442524B2 (ja) | 安全plc | |
US7369902B2 (en) | Slave units and network system as well as slave unit processing method and device information collecting method | |
US7076311B2 (en) | Configurable safety system for implementation on industrial system and method of implementing same | |
US8910131B2 (en) | Method and apparatus for generating an application program for a safety-related control unit | |
JP6111675B2 (ja) | 安全コントローラのユーザプログラムの設計を支援する方法、装置およびプログラム | |
US10545471B2 (en) | Evaluation system, safety controller, computer readable storage medium, and evaluation method | |
JP2009009505A (ja) | Plc | |
CN108572611B (zh) | 信息处理装置、信息处理方法及计算机可读取记录媒体 | |
JP4941365B2 (ja) | 産業用コントローラ | |
JPH0259901A (ja) | 故障診断方法 | |
JP2007304939A (ja) | プログラマブルコントローラおよびモニタ | |
JP5062426B2 (ja) | 安全機器並びに安全条件設定支援システム | |
JP4849261B2 (ja) | 安全アプリケーション作成支援装置 | |
JP2008027156A (ja) | シミュレーション装置 | |
JP4816961B2 (ja) | 安全リモートi/oターミナル | |
JP7000703B2 (ja) | 情報処理装置、情報処理方法、および、情報処理プログラム | |
JP2007011713A (ja) | プログラマブルコントローラの編集装置 | |
JP4793589B2 (ja) | 安全リモートi/oターミナル | |
JP6163735B2 (ja) | 安全スレーブユニット、その制御方法、その制御プログラム、および安全制御システム | |
JP2010191943A (ja) | 安全制御プログラムの安全性診断装置及び安全性診断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20090220 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
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 |