(57)【要約】【課題】ＳＦＣの各ステップの動作時間をより効果的に監視することにより、制御対象機器の異常の早期発見や制御プログラムの効果的な診断を可能とするプログラマブルコントローラを提供すること。【解決手段】プログラマブルコントローラ１００は、オペレータにより計測モードが指定されると、ＳＦＣ言語で作成された制御プログラムに基づいて機械の動作制御を行うと共に、前記制御プログラムを構成する各ステップの動作時間を計測し、前記計測した動作時間に基づいてそれぞれのステップの動作時間の統計値を算出する。オペレータが計測モードを終了すると、前記算出された統計値に基づいて各ステップについて動作時間の上限値及び下限値を決定し、前記決定された動作時間の上限値及び下限値に基づいて各ステップを監視する。【選択図】図２
2016066306.tif 000002
【特許請求の範囲】
【請求項１】
ＳＦＣ言語を用いて作成された制御プログラムに基づいて制御を行うプログラマブルコントローラにおいて、
前記制御プログラムを構成するステップのうち監視対象のステップのそれぞれの動作時間の上限値及び下限値を記憶する動作時間記憶手段と、
前記監視対象のステップのそれぞれの動作時間を計測する計測手段と、
前記監視対象のステップのそれぞれの前記計測された動作時間の統計値を算出する統計値算出手段と、
前記監視対象のステップのそれぞれの前記算出された動作時間の統計値に基づいて、前記監視対象のステップのそれぞれの動作時間の上限値及び下限値を決定し、前記動作時間記憶手段に記憶する動作時間決定手段と、
前記監視対象のステップの動作時間を監視し、いずれかのステップの動作時間が前記動作時間決定手段に記憶された前記ステップの上限値を超えた場合、またはいずれかのステップの動作時間が前記動作時間決定手段に記憶された前記ステップの下限値を下回った場合に、異常信号を出力する監視手段と、を備え、
前記制御プログラムを構成するステップのうち少なくとも１つを前記監視対象のステップとする、
ことを特徴とするプログラマブルコントローラ。
【請求項２】
前記動作時間の統計値は、前記監視対象のステップのそれぞれの前記算出された動作時間の最大値又は最小値である、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記動作時間の統計値は、前記監視対象のステップのそれぞれの前記算出された動作時間の平均値及び標準偏差である、
ことを特徴とする請求項１に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関し、特に、プログラマブルコントローラでＳＦＣを使用して制御を行う際に、制御対象機器の異常の早期発見や制御プログラムの効果的な診断を可能とするプログラマブルコントローラに関する。
【背景技術】
【０００２】
シーケンス制御のプログラミング方式には、プログラムを構造化して制御の流れをフロー図で表現するＳＦＣ（Ｓｅｑｕｅｎｔｉａｌ  Ｆｕｎｃｔｉｏｎ  Ｃｈａｒｔ）言語がある。ＳＦＣではステップ単位で制御が遷移して、活性状態（動作中）のステップが移り変わっていく。
【０００３】
図４に、ＳＦＣ言語によるプログラムの記載例を示す図である。図において、四角記号で表されるＳ１〜Ｓ５がステップを示しており、白い四角は非活性化しているステップを、黒塗された四角は活性化しているステップを表しており、図においてはステップＳ２とステップＳ３が活性化した状態となっている。また、横線で表されるＰ１０１〜Ｐ１１０が遷移条件を示しており、図においてＰ１０２とＰ１０３の遷移条件が成り立つと活性状態がステップＳ４やステップＳ５へと移り変わる。
【０００４】
このようなＳＦＣ言語で記載されたプログラムの各ステップの動作において、制御対象の異常や、制御プログラム自体に誤りがあることにより、ステップが活性状態にある時間（動作時間）に変化が現れることがある。
ステップシーケンスの各ステップの動作時間は、タイムチャートやステップシーケンスのモニタ画面上などの表示で確認することができる。また、異常を検出するために、各ステップが動作している時間を監視する機能があり、各ステップの動作時間の上限値をユーザが設定し、上限を超過した時に異常と判断し警告を出す従来技術が開示されている（例えば、特許文献１，２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１８６５０６号公報
【特許文献１】特開２００１−００５５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、異常判定のための上限値をユーザが予想して設定しているため、必ずしも正確に異常を検出することができない。特に外部機器を制御する場合には、正常な状態であってもさまざまな要因によって動作時間が変動することがあり、上限値の判断が難しい場合がある。
【０００７】
上限値をより正確に設定するためには、各ステップのタイムチャート表示やモニタ表示などから実際の動作時間を調べて判断する必要があるが、変動の様子を正確に把握することは難しく、これを監視したいステップすべてに対して行うのは手間がかかる。
また、逆に動作時間が短くなる異常もあり、単なる上限値のチェックだけではそういった異常を検出できない。
【０００８】
そこで本発明の目的は、ＳＦＣの各ステップの動作時間をより効果的に監視することにより、制御対象機器の異常の早期発見や制御プログラムの効果的な診断を可能とするプログラマブルコントローラを提供することである。
【課題を解決するための手段】
【０００９】
本願の請求項１に係る発明は、ＳＦＣ言語を用いて作成された制御プログラムに基づいて制御を行うプログラマブルコントローラにおいて、前記制御プログラムを構成するステップのうち監視対象のステップのそれぞれの動作時間の上限値及び下限値を記憶する動作時間記憶手段と、前記監視対象のステップのそれぞれの動作時間を計測する計測手段と、前記監視対象のステップのそれぞれの前記計測された動作時間の統計値を算出する統計値算出手段と、前記監視対象のステップのそれぞれの前記算出された動作時間の統計値に基づいて、前記監視対象のステップのそれぞれの動作時間の上限値及び下限値を決定し、前記動作時間記憶手段に記憶する動作時間決定手段と、前記監視対象のステップの動作時間を監視し、いずれかのステップの動作時間が前記動作時間決定手段に記憶された前記ステップの上限値を超えた場合、またはいずれかのステップの動作時間が前記動作時間決定手段に記憶された前記ステップの下限値を下回った場合に、異常信号を出力する監視手段と、を備え、前記制御プログラムを構成するステップのうち少なくとも１つを前記監視対象のステップとする、ことを特徴とするプログラマブルコントローラである。
【００１０】
本願の請求項２に係る発明は、前記動作時間の統計値は、前記監視対象のステップのそれぞれの前記算出された動作時間の最大値又は最小値である、ことを特徴とする請求項１に記載のプログラマブルコントローラである。
本願の請求項３に係る発明は、前記動作時間の統計値は、前記監視対象のステップのそれぞれの前記算出された動作時間の平均値及び標準偏差である、ことを特徴とする請求項１に記載のプログラマブルコントローラである。
【発明の効果】
【００１１】
本発明により、ステップシーケンスの各ステップの動作時間を監視するためのより適切な上限値と下限値を簡単に求めることができ、また、設定した上限値と下限値を用いて各ステップの動作時間の変化を捉えることで、制御対象の経年変化による劣化、故障などの兆候を検出することができる。これにより、より重大な故障や事故を未然に防ぐことができる。
更に、各ステップの動作をデバッグする際、動作時間の変化により動作の異常を検出するとともに、それをきっかけとして関連信号の変化を記録、診断することで、効果的なデバッグが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態におけるプログラマブルコントローラの要部ブロック図である。
【図２】本発明の実施の形態における計測モードにおける処理動作のフローチャートである。
【図３】本発明の実施の形態における監視モードにおける処理動作のフローチャートである。
【図４】ＳＦＣ言語で作成されたプログラムの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面と共に説明する。
図１は、本発明の一実施の形態におけるプログラマブルコントローラの要部ブロック図である。
プログラマブルコントローラ１００はシーケンス制御を実行するＣＰＵ１０を有し、該ＣＰＵ１０には、バス１９を介してＲＯＭ１１、ＲＡＭ１２、不揮発性メモリ１３、外部記憶媒体インタフェース１４、外部インタフェース１５、表示コントローラ１６、ＭＤＩコントローラ１７、外部信号インタフェース１８が接続されている。
【００１４】
ＲＯＭ１１には、プログラマブルコントローラ１００のＣＰＵ１０のためのシステムプログラムが記憶されており、ＲＡＭ１２には、プログラマブルコントローラ１００が実行する実行するシーケンスプログラム２１が記憶されている。シーケンスプログラム２１は、普段は不揮発性メモリ１３に記憶されており、実行時に不揮発性メモリ１３から読み出されてＲＡＭ１２へ記憶される。そして、ＣＰＵ１０はＲＡＭ１２からシーケンスプログラム２１を読み出し、順次実行する。
【００１５】
また、ＲＡＭ１２には、プログラマブルコントローラ１００がシーケンスプログラム２１を実行するときの各種信号を記憶する信号メモリ２０が設けられており、該信号メモリ２０には、シーケンスプログラム２１を実行する際に使用する各種テーブルと、シーケンスプログラム２１における内部リレーの状態や、可変タイマ，カウンタ，キープリレー等の保持型メモリの状態を記憶する各種テーブルが設けられている。
【００１６】
外部記憶媒体インタフェース１４には、外部記憶媒体２００が接続されている。また、外部インタフェース１５は、アダプタ等の外部機器２１０との接続を可能とするものである。外部記憶媒体２００や外部機器２１０には、シーケンスプログラムや加工プログラム、各種パラメータ等が記憶されており、これらプログラムやデータは、それぞれのインタフェースを介して読み込まれ、ＲＡＭ１２、不揮発性メモリ１３へとバスを介して記憶される。
【００１７】
表示コントローラ１６は、ディスプレイ等の表示ユニット２２０が接続され、ＣＰＵ１０からの表示指令に基づいてプログラマブルコントローラ１００の状態情報などを表示する制御を行う。また、ＭＤＩコントローラは、キーボードやタッチパネル等のＭＤＩユニット２３０と接続され、該ＭＤＩユニット２３０からオペレータにより入力された指令やデータを受けてＣＰＵ１０に転送する。
外部信号インタフェース１８は、Ｉ／Ｏ機器２４０を介して工作機械等の制御対象となる機械の各種アクチュエータ及びセンサに接続されている。
【００１８】
本発明では、図１に占めすプログラマブルコントローラ１００上で実行されるＳＦＣ言語を用いたシーケンスプログラムにおいて、オペレータによって指定された一部または全部のステップについて各ステップの動作時間の最大値や最小値、平均値、標準偏差などの統計値を記録し、該統計値に基づいて各ステップの適切な監視時間を算出して利用する。
図２は、本発明の一実施の形態におけるＳＦＣ言語を用いたシーケンスプログラムの各ステップの動作時間を計測する手順を示すフローチャートである。本フローチャートに示す処理工程は、オペレータがＭＤＩユニット２３０を操作することによってプログラマブルコントローラ１００に対して計測モードを指示することで開始される。計測モードにおいては、プログラマブルコントローラ１００がプログラムを実行して機械の動作制御を開始し、各ステップの動作時間が計測される。
【００１９】
●［ステップＳＡ０１］実行されるＳＦＣ言語を用いたシーケンスプログラムの各ステップの統計値を初期化する。統計値の初期化は、ＲＡＭ１２、または不揮発性メモリ１３上に各ステップの統計値を記憶する領域を確保して初期値に設定することで行われる。
●［ステップＳＡ０２］各ステップについて、動作時間の計測をすべて停止する。
●［ステップＳＡ０３］計測モードが終了したか否かを判定する。計測モードはオペレータの操作などにより終了する。計測モードが終了した場合にはステップＳＡ０９へ進み、終了していない場合にはＳＡ０４へ進む。
【００２０】
●［ステップＳＡ０４］計測対象ステップの中に、非活性状態から活性化したステップが存在するか否かを判定する。活性化したステップがある場合にはステップＳＡ０５へ進み、無い場合にはステップＳＡ０６へ進む。
●［ステップＳＡ０５］非活性状態から活性化した全計測対象ステップの動作時間計測を開始する。動作時間の計測は、例えばＲＡＭ１２上に計測対象ステップごとに時間を記録するための領域を設け、計測対象ステップが活性化した時刻をタイマから読み出して確保した領域に記憶する、などの手法で行われる。
【００２１】
●［ステップＳＡ０６］計測対象ステップの中に、活性状態から非活性化したステップが存在するか否かを判定する。非活性化したステップがある場合にはステップＳＡ０７へ進み、無い場合にはステップＳＡ０３に戻る。
●［ステップＳＡ０７］活性状態から非活性化した全計測対象ステップの動作時間計測を終了する。動作時間の値は、例えばＲＡＭ１２上に計測対象ステップごとに確保された領域に記録されている時間と、タイマから読み出した計測対象ステップが非活性化した時刻の差分を演算する、などの計算方法で算出される。
【００２２】
●［ステップＳＡ０８］活性状態から非活性化した全計測対象ステップの統計値を更新する。統計値は、ステップＳＡ０１でＲＡＭ１２、または不揮発性メモリ１３上に確保された統計値を記憶する領域の値と、ステップＳＡ０７で取得された今回のステップの動作時間とに基づいて算出される。
●［ステップＳＡ０９］動作時間の計測をすべて停止し、計測モードを終了する。
【００２３】
図２に示すフローチャートに基づいて、ＳＦＣ言語を用いたシーケンスプログラムの各計測対象ステップの動作時間の統計値を求めた後、求まった各ステップの動作時間の統計値に基づいて、各ステップを監視する際に用いる監視時間の上限値と下限値が決定される。監視時間の上限値、下限値を決定するにはさまざまな計算方法が考えられるが、各ステップの技術的な特性等に基づいて統計値から適切な値を導き出せるのであればどのような計算方法を用いてもよい。
【００２４】
監視時間の上限値、下限値の計算方法の一例としては、数１式に示すように、計測モードで求められた各ステップの動作時間の最大値と最小値に対して一定量のマージンを加味して監視時間の上限値と下限値を決定することが考えられる。
【００２５】
【数１】
2016066306.tif 000003
【００２６】
監視時間の上限値、下限値の計算方法の他の例としては、数２式に示すように、計測モードで求められた各ステップの動作時間の平均値に対してマージン偏差量と標準偏差値をかけた値を加減して決定することが考えられる。
【００２７】
【数２】
2016066306.tif 000004
【００２８】
これら計算方法は、オペレータが指定することができる。また、監視対象となるステップごとに、異なる計算方法を選択できるようにしてもよい。
このようにして決定された、各々のステップの監視時間の上限値と下限値は、ＲＡＭ１２、または不揮発性メモリ１３上に設けられた領域に記憶され、後述する監視モードにおいて利用される。
【００２９】
本発明においては、このようにして求められた各ステップの監視時間の上限値及び下限値に基づいて、ＳＦＣ言語を用いたシーケンスプログラムを構成する各ステップのうちオペレータによって監視対象として指定された一部または全部のステップについての動作を監視することができる。
図３は、本発明の一実施の形態におけるＳＦＣ言語を用いたシーケンスプログラムの各ステップの動作時間を監視する手順を示すフローチャートである。本フローチャートに示す処理工程は、オペレータがＭＤＩユニット２３０を操作することによってプログラマブルコントローラ１００に対して監視モードを指示することで実行される。監視モードにおいては、プログラマブルコントローラ１００がプログラムを実行して機械の動作制御を開始し、前述した計算方法で算出された各ステップの監視時間の上限値、下限値に基づいて各ステップの動作時間が監視される。
【００３０】
●［ステップＳＢ０１］監視対象となる各ステップについて、動作時間の計測をすべて停止する。
●［ステップＳＢ０２］監視モードが終了したか否かを判定する。監視モードはオペレータの操作などにより終了する。監視モードが終了した場合にはステップＳＢ１１へ進み、終了していない場合にはＳＢ０３へ進む。
●［ステップＳＢ０３］監視対象ステップの中に、非活性状態から活性化したステップが存在するか否かを判定する。活性化したステップがある場合にはステップＳＢ０４へ進み、無い場合にはステップＳＢ０５へ進む。
【００３１】
●［ステップＳＢ０４］非活性状態から活性化した全計測対象ステップの動作時間計測を開始する。動作時間の計測は、例えばＲＡＭ１２上に計測対象ステップごとに時間を記録するための領域を設け、計測対象ステップが活性化した時刻をタイマから読み出して確保した領域に記憶する、などの手法で行われる。
●［ステップＳＢ０５］動作時間を計測している対象ステップのうち、動作時間が監視時間の上限値を超えたものがあるか否かを判定する。監視時間の上限値を超えたステップがある場合にはステップＳＢ０６へ進み、無い場合にはステップＳＢ０７へ進む。
●［ステップＳＢ０６］対象ステップの動作時間が監視時間の上限値を越えた際の異常信号Ａを、例えばＲＡＭ１２上に領域を設け、ステップＳＢ０５で、監視時間の上限値を超えたと判定されたステップの異常信号Ａをオンにする。
【００３２】
●［ステップＳＢ０７］監視対象ステップの中に、活性状態から非活性化したステップが存在するか否かを判定する。非活性化したステップがある場合にはステップＳＢ０８へ進み、無い場合にはステップＳＢ０２へ戻る。
●［ステップＳＢ０８］活性状態から非活性化した全計測対象ステップの動作時間計測を終了する。動作時間の値は、例えばＲＡＭ１２上に計測対象ステップごとに確保された領域に記録されている時間と、タイマから読み出した計測対象ステップが非活性化した時刻の差分を演算する、などの計算方法で算出される。
【００３３】
●［ステップＳＢ０９］動作時間を計測した対象ステップのうち、動作時間が監視時間の下限値を下回ったものがあるか否かを判定する。監視時間の下限値を下回ったステップがある場合にはステップＳＢ１０へ進み、無い場合にはステップＳＢ０２へ戻る。
●［ステップＳＢ１０］対象ステップの動作時間が監視時間の下限値を下回った際の異常信号Ｂを、例えばＲＡＭ１２上に領域を設け、ステップＳＢ０９で、監視時間の下限値を下回ったと判定されたステップの異常信号Ｂをオンにする。
●［ステップＳＢ１１］動作時間の計測をすべて停止し、監視モードを終了する。
【００３４】
監視モードにおいて、異常信号Ａ、Ｂがオンになった場合、プログラマブルコントローラ１００は、当該信号の入力に基づいて、例えば以下のようなアクションをとることができる。
●［アクション１］オペレータに対して警告を出す。
●［アクション２］制御プログラムが信号を参照して、制御方法を変更する、もしくは、特別な処理を実行する。
●［アクション３］診断用に信号状態の遷移を記録する機能（信号トレース機能）でその信号を参照し、信号状態の記録動作を制御する。
なお、上記した各アクションは一例であり、異常信号の検出に基づいてどのようなアクションを取るように構成するのかについては当業者が適宜決定すればよい。
【符号の説明】
【００３５】
１０    ＣＰＵ
１１    ＲＯＭ
１２    ＲＡＭ
１３    不揮発性メモリ
１４    外部記憶媒体インタフェース
１５    外部インタフェース
１６    表示コントローラ
１７    ＭＤＩコントローラ
１８    外部信号インタフェース
１９    バス
２０    信号メモリ
２１    シーケンスプログラム
２００    外部記憶媒体
２１０    外部機器
２２０    表示ユニット
２３０    ＭＤＩユニット
２４０    Ｉ／Ｏ機器
【図１】
2016066306.tif 000005
【図２】
2016066306.tif 000006
【図３】
2016066306.tif 000007
【図４】
2016066306.tif 000008