(57)【要約】【課題】自己保持回路を自動で検出し、関連する信号を自動的に常時トレースすることで、異常発生時におけるラダープログラムのデバッグ作業を減らす機能を備えたラダープログラム表示装置を提供すること。【解決手段】本発明のラダープログラム表示装置１は、シーケンス制御装置２により実行されるラダープログラムの動作状況を表示するラダープログラム表示装置１であり、ラダープログラムから自己保持回路を抽出する自己保持回路抽出部３０と、自己保持回路抽出部３０が抽出した自己保持回路において用いられている信号アドレスをトレース対象として設定するトレース対象設定部３１と、トレース対象設定部３１により設定されたトレース対象となる信号アドレスをシーケンス制御装置２がトレースした結果の表示を出力するトレース結果表示部３２と、を備える。【選択図】図２
2017134493.tif 000002
【特許請求の範囲】
【請求項１】
シーケンス制御装置により実行されるラダープログラムの動作状況を表示するラダープログラム表示装置において、
前記ラダープログラムに含まれる回路の内で、当該回路に含まれる入力および出力の信号アドレスに基づいて自己保持回路を特定して抽出する自己保持回路抽出部と、
前記自己保持回路抽出部が抽出した前記自己保持回路において用いられている信号アドレスをトレース対象として設定するトレース対象設定部と、
前記トレース対象設定部により設定されたトレース対象となる前記信号アドレスを前記シーケンス制御装置がトレースした結果の表示を出力するトレース結果表示部と、
を備えることを特徴とするラダープログラム表示装置。
【請求項２】
前記自己保持回路抽出部は、前記回路に同じ信号アドレスの入力および出力が含まれている場合に、当該回路を自己保持回路と特定する、
ことを特徴とする請求項１に記載のラダープログラム表示装置。
【請求項３】
前記シーケンス制御装置によるトレースの結果を記憶するトレース結果記憶部をさらに備え、
前記トレース結果表示部は、前記トレース結果記憶部に記憶された過去のトレースの結果と、現在のトレースの結果とを比較することで、過去のトレースの結果と現在のトレースの結果とに差異があることを検出し、前記過去のトレースの結果と前記現在のトレースの結果との差異が検出された信号アドレスが把握できるように表示する、
ことを特徴とする請求項１または２に記載のラダープログラム表示装置。
【請求項４】
前記トレース結果表示部は、差異が検出された前記信号アドレスに係る表示を強調表示することで、前記過去のトレースの結果と前記現在のトレースの結果との差異が検出された信号アドレスが把握できるようにする、
ことを特徴とする請求項３に記載のラダープログラム表示装置。
【請求項５】
前記トレース結果表示部は、前記過去のトレースの結果と、前記現在のトレースの結果とを比較できるように表示することで、前記過去のトレースの結果と前記現在のトレースの結果との差異が検出された信号アドレスが把握できるようにする、
ことを特徴とする請求項３に記載のラダープログラム表示装置。
【請求項６】
前記トレース対象設定部によりトレース対象として設定された信号アドレスの内で、トレース対象とする信号アドレスの範囲を限定することができる、
ことを特徴とする請求項１〜５のいずれか１つに記載のラダープログラム表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラダープログラム表示装置に関し、特にラダープログラムの自己保持回路の自動トレース機能を備えたラダープログラム表示装置に関する。
【背景技術】
【０００２】
プログラマブルコントローラの運転においてユーザが意図しない現象すなわち不具合が発生した場合、トレース機能を使用し、不具合を引き起こした信号および関連信号の変化を確認して原因を特定する方法が一般的に知られている。
トレース機能とは、各信号の状態を時系列で記録し、記録結果を表示する機能である。
トレース機能を活用する方法としては、特許文献１に開示されるように、指定したコイルに対して影響を及ぼす接点を、自動的に検索してトレース対象に設定する方法等がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−１６０３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ラダープログラムでは、信号状態を保持するために図７に示すような自己保持回路を数多く使用しており、この自己保持回路が誤ったタイミングで保持を開始・終了すると、制御対象の装置で誤動作が発生する。
例えば、図７に示す自己保持回路の例では、Ｘ０．０がＯＮになるとＲ０．０がＯＮになり、その後、Ｘ０．０がＯＦＦになってもＲ０．０はＯＮの状態を保持する。そして、Ｘ１．０がＯＮになるとＲ０．０がＯＦＦとなるものである。このように自己保持回路は、コイルに設定されている信号が、同じネット上のいずれかの接点で使用されているといった特徴がある。
【０００５】
実際のラダープログラムにおいては、いくつかの信号の複合条件によって自己保持の開始・終了が制御されており、自己保持回路が正しく動作しない場合には、いくつもの信号状態の組み合わせを調査する必要がある。この調査は以下のような手順で行われるが、特に不具合の発生が間欠的な場合には、原因の特定に非常に多くの時間を必要としていた。
●手順１：ラダープログラム上で、不具合の発生している自己保持回路を検索する。
●手順２：手順１の回路で使用されている接点およびコイルの信号をトレース対象に設定する。
●手順３：トレース機能を実行し、正常時の信号変化を記録する。
●手順４：再度トレース機能を実行後、不具合現象を再現させて、信号変化を記録する。
●手順５：手順３と手順４の信号変化を比較して不具合原因を特定する。
【０００６】
特許文献１に開示される技術では、上記手順２を簡略化することは可能ではあるが、上記手順１の自己保持回路を特定することはできなかった。
【０００７】
そこで本発明の目的は、自己保持回路を自動で検出し、関連する信号を自動的に常時トレースすることで、異常発生時におけるラダープログラムのデバッグ作業を減らす機能を備えたラダープログラム表示装置を提供することである。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、シーケンス制御装置により実行されるラダープログラムの動作状況を表示するラダープログラム表示装置において、前記ラダープログラムに含まれる回路の内で、当該回路に含まれる入力および出力の信号アドレスに基づいて自己保持回路を特定して抽出する自己保持回路抽出部と、前記自己保持回路抽出部が抽出した前記自己保持回路において用いられている信号アドレスをトレース対象として設定するトレース対象設定部と、前記トレース対象設定部により設定されたトレース対象となる前記信号アドレスを前記シーケンス制御装置がトレースした結果の表示を出力するトレース結果表示部と、を備えることを特徴とするラダープログラム表示装置である。
【０００９】
本願の請求項２に係る発明は、前記自己保持回路抽出部は、前記回路に同じ信号アドレスの入力および出力が含まれている場合に、当該回路を自己保持回路と特定する、ことを特徴とする請求項１に記載のラダープログラム表示装置である。
【００１０】
本願の請求項３に係る発明は、前記シーケンス制御装置によるトレースの結果を記憶するトレース結果記憶部をさらに備え、前記トレース結果表示部は、前記トレース結果記憶部に記憶された過去のトレースの結果と、現在のトレースの結果とを比較することで、過去のトレースの結果と現在のトレースの結果とに差異があることを検出し、前記過去のトレースの結果と前記現在のトレースの結果との差異が検出された信号アドレスが把握できるように表示する、ことを特徴とする請求項１または２に記載のラダープログラム表示装置である。
【００１１】
本願の請求項４に係る発明は、前記トレース結果表示部は、差異が検出された前記信号アドレスに係る表示を強調表示することで、前記過去のトレースの結果と前記現在のトレースの結果との差異が検出された信号アドレスが把握できるようにする、ことを特徴とする請求項３に記載のラダープログラム表示装置である。
【００１２】
本願の請求項５に係る発明は、前記トレース結果表示部は、前記過去のトレースの結果と、前記現在のトレースの結果とを比較できるように表示することで、前記過去のトレースの結果と前記現在のトレースの結果との差異が検出された信号アドレスが把握できるようにする、ことを特徴とする請求項３に記載のラダープログラム表示装置である。
【００１３】
本願の請求項６に係る発明は、前記トレース対象設定部によりトレース対象として設定された信号アドレスの内で、トレース対象とする信号アドレスの範囲を限定することができる、ことを特徴とする請求項１〜５のいずれか１つに記載のラダープログラム表示装置である。
【発明の効果】
【００１４】
本発明により、自己保持回路が自動抽出されているため、ユーザがラダープログラムを解析して自己保持回路を探す必要がなく、自己保持回路に関連する信号がトレース対象として自動設定されるため、ユーザがトレース設定を行う必要がなく、ラダープログラムのデバッグのための作業を効率化できる。
【００１５】
また、上記でトレース設定された信号を常時トレースしておくことで、異常発生時には予め記録されたトレース結果を参照すればよいため、異常を再現せずとも、原因の調査が行うことが可能となる。更に、正常ケースと異常ケースの違いを表示することにより、不具合原因が見つけ出しやすくなる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態によるラダープログラム表示装置の概略構成図である。
【図２】本発明の一実施形態によるラダープログラム表示装置の機能ブロック図である。
【図３】異常動作の原因を調べる対象とする操作盤の構造例を示す図である。
【図４】図３の操作盤を制御するラダープログラムの例を示す図である。
【図５】図４のラダープログラムをトレースした結果の表示例を示す図である。
【図６】図２のラダープログラム表示装置上で実行される自己保持回路抽出処理のフローチャートである。
【図７】一般的な自己保持回路を含むラダープログラムの例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面と共に説明する。
図１は、本発明の一実施形態によるラダープログラム表示装置の概略構成図である。本実施形態のラダープログラム表示装置１は、ＣＰＵ１０、ＲＯＭ１１、ＲＡＭ１２、二次記憶装置１３、キーボード１４、表示器１５、通信インタフェース１６を備える。
【００１８】
ラダープログラム表示装置１が備えるＣＰＵ１０は、ラダープログラム表示装置１を全体的に制御するプロセッサであり、ＲＯＭ１１に格納されたシステムプログラムをバスを介して読み出し、該システムプログラムに従ってラダープログラム表示装置１を制御する。システムプログラムには、シーケンスプログラムから自己保持回路を抽出するためのプログラムや、自己保持回路において用いられている信号アドレスをトレース対象として設定するためのプログラムもまた含まれており、該プログラムを実行することにより後述する機能やフローチャートにより説明される各処理が実行される。
【００１９】
ＲＡＭ１２には、一時的な計算データや表示器１５に表示される表示データ、キーボード１４などの入力機器を介して入力された各種データを格納するワークメモリ領域１２１と、編集対象となるラダープログラムなどのシーケンスプログラムのプログラムデータを格納するプログラム格納領域１２２が設けられている。また、ＲＡＭ１２には、本発明の自己保持回路抽出機能のプログラムやトレース機能のプログラムが実行される際に用いられる一時的なデータを記憶する領域が確保される。
【００２０】
二次記憶装置１３は、ハードディスク装置、メモリカード、ＵＳＢメモリといった不揮発性の記憶装置や、バッテリバックアップされた不揮発性のメモリなどで構成され、ラダープログラム表示装置１が取り扱うラダープログラムなどのシーケンスプログラムや、設定ファイル、パラメータファイルなどの各種ファイルが記憶されている。
【００２１】
キーボード１４は、ユーザからの入力を受け付ける入力機器であり、自己保持回路抽出機能やトレース機能の実行指示等に用いられる。また、表示器１５は、ラダープログラム表示装置１の内部状態の表示や、シーケンスプログラム、トレース結果などを表示するための液晶表示装置やタッチパネルなどである。
【００２２】
通信インタフェース１６には、ＬＡＮやＷＡＮなどのネットワークが接続されており、該通信インタフェース１６を介してシーケンス制御装置２との間でラダープログラムなどのシーケンスプログラムの送受信を行う。
【００２３】
一方で、シーケンス制御装置２は、ＣＰＵ２０、ＲＯＭ２１、ＲＡＭ２２、Ｉ／Ｏ機器インタフェース２３、通信インタフェース２４を備える。
ＣＰＵ２０はシーケンス制御装置２の全体の制御の中心となるプロセッサである。ＣＰＵ２０は、シーケンス制御装置２の電源投入時にバスを介して、ＲＯＭ２１に格納されたシステムプログラムを読み出し、このシステムプログラムに従ってシーケンス制御装置２の全体の制御を実行する。システムプログラムには、信号変化をトレースするためのプログラムもまた含まれている。ＲＡＭ２２には機械の信号アドレスの状態を示す信号メモリ２２１、ＣＰＵ２０により実行されるラダープログラムなどのシーケンスプログラムを格納するプログラム格納領域２２２などが設けられている。
【００２４】
シーケンス制御装置２では、ＲＡＭ２２のプログラム格納領域２２２に格納されるシーケンスプログラムに基づいてシーケンス制御装置２からの出力信号をＩ／Ｏ機器インタフェース２３を経由して図示しない機械や周辺機器に出力する。また、Ｉ／Ｏ機器インタフェース２３を経由して、図示しない機械や該機械に備えられた操作盤の操作スイッチの信号、センサ機器や周辺機器からの信号などの入力信号を受信し、プログラム格納領域２２２に格納されるシーケンスプログラムに基づいて必要な処理を施し、処理結果を信号メモリ２２１に格納する。
【００２５】
また、シーケンス制御装置２は、通信インタフェース２４を介してラダープログラム表示装置１との間で信号メモリ２２１に示される信号アドレスの状態を含むシーケンスプログラムの実行状況を示すデータを送信したり、プログラム格納領域２２２に格納されるシーケンスプログラムを送受信したりする。このような構成により、ラダープログラム表示装置１はシーケンス制御装置２のプログラム格納領域２２２に格納されるシーケンスプログラムを取得して表示器１５へと表示すると共にシーケンスプログラムの実行状況を示すデータに基づいた表示を行ったり、ラダープログラム表示装置１からシーケンス制御装置２に対するシーケンスプログラムの実行指令を送信したり、ラダープログラム表示装置１上で編集されたシーケンスプログラムをプログラム格納領域２２２へと記憶したりすることができる。
【００２６】
なお、本実施形態のラダープログラム表示装置１は、例えばシーケンスプログラムの動作をモニタするシーケンスプログラムモニタ装置や、シーケンスプログラムの編集機能を備えたシーケンスプログラム編集装置などを含む。また、ラダープログラム表示装置１の機能はシーケンス制御装置２に内蔵されていてもよい。
【００２７】
図２は、本実施形態のラダープログラム表示装置１の機能ブロック図である。ラダープログラム表示装置１は、機能手段としての自己保持回路抽出部３０、トレース対象設定部３１、トレース結果表示部３２を備える。
自己保持回路抽出部３０は、プログラム格納領域１２２に格納されているラダープログラム４０から、当該ラダープログラム４０に含まれる回路の中からすべての自己保持回路を自動的に抽出する。自己保持回路は、上記したようにコイル（信号アドレスへの出力）に設定されている信号が同じネット上のいずれかの接点（信号アドレスからの入力）で使用されているという特徴があるため、そのような特徴のある回路を自己保持回路抽出部３０は自己保持回路として抽出する。
また、トレース対象設定部３１は、自己保持回路抽出部３０が抽出した自己保持回路に用いられているすべての接点とコイルの信号アドレスをトレース対象としてＲＡＭ１２上などに設けられたトレース対象記憶部４１へと記憶する。
【００２８】
シーケンス制御装置２が備えるトレース部５１は、ユーザによるトレース処理の開始指令に応じて信号メモリ２２１のトレース処理を実行する。トレース部５１は、信号メモリ２２１からトレース対象記憶部４１に記憶されているトレース対象の信号アドレスの状態を抽出してトレース結果記憶部４２へと出力する。トレース結果記憶部４２には、現在のトレースしているトレース結果とは別に、過去に信号メモリ２２１をトレースしたトレース結果を記憶して残しておくことが可能となっている。これにより、後にトレース結果表示部３２で現在の信号メモリ２２１のトレース結果と、過去の信号メモリ２２１のトレース結果とを比較可能に表示をすることができ、例えば過去のトレース結果としてあらかじめ正常状態でのトレース結果をトレース結果記憶部４２へと記憶しておけば、現在の信号のトレース結果と正常状態でのトレース結果を比較することで異常な信号変化を検出することも可能となる。なお、過去の信号メモリ２２１のトレース結果はＲＡＭ１２の容量などに応じて複数記憶しておけるようにしてもよい。
【００２９】
トレース結果表示部３２は、トレース部５１によりトレース結果記憶部４２へと記憶されたトレース結果に基づいてトレース結果の表示画面を生成し、表示器１５へと表示する。トレース結果表示部３２は、トレース結果記憶部４２に記憶された現在のトレース結果を、例えば各信号アドレス毎に信号の状態の変化を時系列で表示するようにしてもよい。また、トレース結果表示部３２は、トレース結果記憶部４２に記憶された現在の信号アドレスのトレース結果と過去の信号アドレスのトレース結果とを比較し、比較した結果に基づいてトレース結果の表示画面を生成するようにしても良く、そのような表示をする際には、現在のトレースの結果の内で過去のトレースの結果との差異が生じた部分を把握できるように表示（色の変更や点滅などによる強調表示）したり、また、単に過去のトレースの結果と現在のトレースの結果とを並べて表示することで差異が生じた部分をユーザが把握できるようにしてもよい。
【００３０】
以下では、本実施形態のラダープログラム表示装置１を用いて、ある操作盤が正しく動作しない原因を調べる実施例を挙げる。
図３は、本実施例で異常動作の原因を調べる対象とする操作盤の構造を示す図である。本実施例では、ある装置にランプＡとボタンＢ、キーＣが付いた操作盤がある場合を想定する。
【００３１】
ここで設計者はキーＣがＯＮになった状態で、ボタンＢを押下するとランプＡが点灯するラダープログラム４０を設計しようとしたとする。そして、そのラダープログラム４０を運転した際に、ボタンＢを押下してもランプＡが点灯しなかったとする。(異常現象)。この現象の原因を調べたい場合、以下の流れとなる。
【００３２】
（ラダー起動時のシステム処理)
●手順１：自己保持回路抽出部３０は、ラダー起動時にラダープログラム４０を自動で検索して、すべての自己保持回路を抽出する。自己保持回路を検出する内部処理については、後述のフローチャートに記載する。ここでは、図４に示すような回路でランプＡが制御されているとする。ランプＡ（信号アドレスＹ０．０）はコイルＲ（信号アドレスＲ０．０）によって制御されている。また、図４中で点線により囲まれたネットにおいて、コイルＲはボタンＢ（信号アドレスＸ０．０）がＯＮになるとＯＮとなり、その後、コイルＲが自分自身をＯＮし続ける作りになっている。したがって、図４中で点線により囲まれたネットは自己保持回路として抽出対象になる。
【００３３】
●手順２：続いて、トレース対象設定部３１は、上記した手順１で抽出したネットにおいて、入力信号として使用されている信号アドレスをトレース対象として設定する。手順１で例に挙げた自己保持回路からはＸ０．０、Ｘ１．０、Ｒ０．０をトレース対象の信号とする。
●手順３：トレース部５１は、上記した手順２が完了した後に、手順２で設定した信号アドレスのトレースを開始する
【００３４】
（異常発生時の処理）
●手順４：ランプＡが動作しない異常現象が発生すると、前回までの正常ケースでトレースされた各信号の波形と異常時にトレースされた各信号の波形とがトレース結果表示部３２により比較されることで当該異常現象が検出される。
●手順５：図５は正常時と異常時のトレース結果の比較を示す例である。今回の例ではＸ１．０とＲ０．０の波形が前回と異なっており、ここで異常の原因が発生している可能性が高いと診断される。ユーザはその診断結果を受けてＸ１．０を使用するネットの構造を確認し、何が問題か調査すればよい。ここで、Ｒ０．０はランプＡを直接制御する信号のため除外する。今回の例では、Ｘ１．０がＯＦＦになっていないと、Ｘ０．０がＯＮになってもＲ０．０がＯＮとならない構造になっており、Ｘ１．０がラダープログラム表示装置１の診断の通り、異常の原因であることが分かる。
なお、正常ケースのサンプルがまだ存在しない場合、あるいは比較しても異常が見つからない場合は、ユーザの指示により異常発生時のトレース結果をトレース結果記憶部４２へと記憶し、記憶したトレース結果をユーザが参照して異常な波形となっている信号を確認するようにすればよい。
【００３５】
上記のように、予め異常原因となりやすい自己保持回路を自動的にトレースしておき、さらに異常発生時にはトレース結果を自動的に比較することで、異常原因の調査が容易になる。また、予めトレースしておいた結果を見ることができるため、トレース設定と現象再現を必要とせず、デバッグ作業を削減できる。
【００３６】
図６は、自己保持回路抽出部３０、トレース対象設定部３１により実行される処理のフローチャートである。
●［ステップＳＡ０１］自己保持回路抽出部３０は、ラダープログラム４０からネットを抽出し、更に、抽出したネットの回路からすべての接点とコイルを抽出する。
●［ステップＳＡ０２］自己保持回路抽出部３０は、ステップＳＡ０１で抽出した各コイルのアドレスが、ステップＳＡ０１で抽出したいずれかの接点で使用されているかを検索する。
【００３７】
●［ステップＳＡ０３］自己保持回路抽出部３０は、ステップＳＡ０２での検索の結果として、いずれかのコイルの信号アドレスが同一ネットの回路内でいずれかの接点に使用されているか否かを判定する。接点に使用されている場合にはステップＳＡ０４へ処理を移行し、接点に使用されていない場合にはステップＳＡ０５へと処理を移行する。
●［ステップＳＡ０４］トレース対象設定部３１は、ステップＳＡ０２で抽出されたすべての接点とコイルの信号アドレスをトレース対象としてトレース対象記憶部４１へと記憶する。
●［ステップＳＡ０５］自己保持回路抽出部３０は、ラダープログラム４０内に次のネットが残っているか否かを判定する。次のネットが残っている場合にはステップＳＡ０１へと処理を移行し、ネットが残っていない場合には本処理を終了する。
【００３８】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では、自己保持回路抽出部３０はラダープログラム４０内から自己保持回路を自動的に抽出し、抽出された自己保持回路に含まれる接点とコイルの信号アドレスをトレース対象設定部３１がトレース対象として設定しているが、このようにして自動的に設定されたトレース対象の信号について、ユーザがトレースする対象とする信号を更に絞り込んで限定する手段を別途設けてもよい。
また、トレース結果表示部３２によるトレース結果の表示では、トレース結果を自己保持回路毎にまとめて表示するようにしてもよい。
このようにすることで、ユーザは確認するべき回路や信号アドレスを整理して確認することができるため、デバッグ作業を効率的に行うことができる。
【００３９】
上記した実施形態ではトレース対象記憶部４１、トレース結果記憶部４２をラダープログラム表示装置１側に設ける構成としているが、トレース対象記憶部４１、トレース結果記憶部４２はシーケンス制御装置２上に設けるようにしても良い。
また、トレース部５１において現在のトレース結果と過去のトレース結果とをリアルタイムに比較し、比較した結果、異なる信号状態が検出された場合に警告を発するように構成しても良く、そのようにした場合にはトレース部５１において現在のトレース結果と過去のトレース結果との比較結果を、トレース結果記憶部を４２を介して、または直接、トレース結果表示部３２へと出力し、トレース結果表示部３２はトレース部５１から受け付けた現在のトレース結果と過去のトレース結果との比較結果を表示するようにしても良い。
【符号の説明】
【００４０】
１  ラダープログラム表示装置
２  シーケンス制御装置
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  二次記憶装置
１４  キーボード
１５  表示器
１６  通信インタフェース
２０  ＣＰＵ
２１  ＲＯＭ
２２  ＲＡＭ
２３  Ｉ／Ｏ機器インタフェース
２４  通信インタフェース
３０  自己保持回路抽出部
３１  トレース対象設定部
３２  トレース結果表示部
４０  ラダープログラム
４１  トレース対象記憶部
４２  トレース結果記憶部
５１  トレース部
１２１  ワークメモリ領域
１２２  プログラム格納領域
２２１  信号メモリ
２２２  プログラム格納領域
【図１】
2017134493.tif 000003
【図２】
2017134493.tif 000004
【図３】
2017134493.tif 000005
【図４】
2017134493.tif 000006
【図５】
2017134493.tif 000007
【図６】
2017134493.tif 000008
【図７】
2017134493.tif 000009