(57)【特許請求の範囲】
【請求項１】
シーケンスプログラムに含まれる命令を実行する実行部と、
前記実行部で実行された命令と、前記実行された命令の実行内容と前記実行された命令の直前の命令の実行結果との関係を表す実行種別と、を判定する判定部と、
前記判定部で判定された実行種別毎の命令の実行有無と、前記実行種別と、前記実行された命令を識別する識別情報とを対応付けて記憶する記憶部と、
前記実行部で実行された命令と前記実行された命令の実行種別とを前記命令の実行有無に応じて視認可能な形式で表示する表示部と、
を備え、
前記実行種別は、前記直前の命令の実行結果が真の場合に実行するＯＮ実行と、前記直前の命令の実行結果が偽の場合に実行するＯＦＦ実行とを含む
ことを特徴とするデバッグ装置。
【請求項２】
前記表示部は、前記実行部で実行されたシーケンスプログラムに対比して前記実行された命令と前記実行種別とを表示することを特徴とする請求項１に記載のデバッグ装置。
【請求項３】
前記表示部は、前記実行部で実行された命令の、前記シーケンスプログラムに含まれる全ての命令に対する割合を表示することを特徴とする請求項１または２に記載のデバッグ装置。
【請求項４】
前記判定部は、前記実行部で実行された命令および前記実行された命令の実行種別の判定を複数の動作検証設定に従って行うことが可能に構成され、異なる動作検証設定に従って前記判定を行い複数の判定結果を生成し、
前記表示部は前記複数の判定結果を１つの画面で表示することを特徴とする請求項１に記載のデバッグ装置。
【請求項５】
前記表示部は、前記複数の判定結果のうち、ユーザが指定した判定結果を１つの画面で表示することを特徴とする請求項４に記載のデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムのデバッグに使用されるデバッグ装置に関する。
【背景技術】
【０００２】
一般にプログラムの開発では、作成したプログラムが所望の動作をするか動作検証を行い、動作検証により不具合を発見した場合にはプログラムを修正して不具合を解消させるといったデバッグを実施する。【０００３】
プログラムの動作検証の網羅率をカバレッジと呼び、動作検証およびデバッグを行ったプログラムは不具合がないと見なせることから、カバレッジはプログラムの品質指標として用いられている。カバレッジにはいくつかの種類があり、代表的なものとして、プログラムを構成する全ての処理のうち、１回以上実行した処理の割合を示すＣ０カバレッジがある。また、カバレッジはその意味から、プログラム開発における動作検証の進捗を示す指標としても用いることができる。【０００４】
工場などの生産現場における作業の自動化を実現するＦＡ（Factory  Automation）分野ではシーケンスプログラムが使用される。シーケンスプログラムは、ある処理を実施する最小単位である命令を複数組み合わせて構成される。命令は、実行条件と呼ばれる属性を持ち、実行条件と、直前の命令に対し何らかの計算を実施する論理式（以下、前条件と呼ぶ）の結果とにより、命令の実行要否が判断される。なお、前条件が成立する場合を真、成立しない場合を偽と称する。【０００５】
実行条件には複数の種類があり、前条件が真の場合にのみ命令が実行され、前条件が偽の場合は実行されないＯＮ時実行、前条件が偽から真に変化した場合のみ命令が実行される立上り実行、前条件の真偽に関係なく常に命令が実行される常時実行などがある。常時実行の命令はＯＮ実行とＯＦＦ実行という二種類の実行種別を持ち、ＯＮ実行とＯＦＦ実行とは実行結果が異なる。すなわち、常時実行の命令は前条件が真の場合と偽の場合とで実行する内容が異なる。ＯＮ実行は前条件が真の場合に実行され、ＯＦＦ実行は前条件が偽の場合に実行される。【０００６】
上述したように、シーケンスプログラムを構成する命令には、常時実行といった、Ｃ言語等の一般的に使用されるプログラミング言語にはない実行条件が存在するため、カバレッジを得るために必要な動作検証も、一般的に使用されるプログラミング言語とは異なる。例えばＣ０カバレッジを１００％にする場合を考える。Ｃ０カバレッジとは、全ての実行可能な処理のうち、実行された処理の割合を示す指標である。一般的なプログラムでは、処理が実行される条件が偽の場合は処理がスキップされるため、動作検証の対象の命令のうち、処理が実行される条件が真の場合に実行された処理のみ評価すれば、Ｃ０カバレッジは１００％となる。一方、シーケンスプログラムにおいては、命令それぞれが持つ実行条件を考慮する必要がある。動作検証の対象の命令に常時実行の命令が含まれている場合、Ｃ０カバレッジを１００％とするためには、常時実行のＯＮ実行およびＯＦＦ実行の両方を検証する必要がある。【０００７】
特許文献１には、シーケンス制御回路図の定義ファイルとレジスタの変化状態とを照合し、照合結果からカバレッジである動作網羅率を算出するとともに動作網羅率を表示するシーケンス制御システムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−２９３２０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
一般的なプログラミング言語のカバレッジを視覚的に表現する技術および定量的に百分率で表す技術は、前条件が真の場合に実行された命令に対してのみ実現される。一方、シーケンスプログラムでは同一の命令であっても前条件により実行の種別が異なる場合があり、前条件が真の場合の検証のみではカバレッジを正確に計測することはできない。このため、シーケンスプログラムではカバレッジの視覚的な表現が困難であり、また動作検証の進捗管理および確認が困難である、という問題があった。【００１０】
特許文献１には、シーケンス制御回路図および試験パターンのカバレッジを算出する技術が示されている。しかしながら、レジスタの変化の有無からカバレッジを算出しており、ＯＮ実行およびＯＦＦ実行といった命令の実行種別を区別することはしていない。そのため、実行された命令の実行種別をユーザが確認して常時実行の命令の検証が完了したか否かを判断する作業が必要となり、効率的にデバッグを進めることが難しいという問題がある。【００１１】
本発明は、上記に鑑みてなされたものであって、デバッグの作業効率を向上させるデバッグ装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるデバッグ装置は、シーケンスプログラムに含まれる命令を実行する実行部と、実行部で実行された命令と、実行された命令の実行内容と前記実行された命令の直前の命令の実行結果との関係を表す実行種別と、を判定する判定部と、を備える。また、デバッグ装置は、判定部で判定された実行種別毎の命令の実行有無と、実行種別と、実行された命令を識別する識別情報とを対応付けて記憶する記憶部と、実行部で実行された命令と実行された命令の実行種別とを命令の実行有無に応じて視認可能な形式で表示する表示部と、を備える。また、実行種別は、直前の命令の実行結果が真の場合に実行するＯＮ実行と、直前の命令の実行結果が偽の場合に実行するＯＦＦ実行とを含む。
【発明の効果】
【００１３】
本発明にかかるデバッグ装置は、デバッグの作業効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかるデバッグ装置の構成例を示す図
【図２】実施の形態１にかかる動作検証設定入力部が動作検証設定を受け付ける際に表示する動作検証設定ダイアログボックスの一例を示す図
【図３】実施の形態１にかかるＰＬＣ（Programmable  Logic  Controller）で実行されるシーケンスプログラムおよびシーケンスプログラムを構成する命令の一例を示す図
【図４】実施の形態１にかかる動作検証状況判定部が収集した動作検証状況を保存する形式の一例を示す図
【図５】実施の形態１にかかる動作検証状況表示部が、動作検証の状況をシーケンスプログラムの表示背景を変更することによりユーザに通知する場合の表示例を示す図
【図６】実施の形態１にかかる動作検証状況表示部が、動作検証の状況をシーケンスプログラムの表示背景を変更することによりユーザに通知する場合の他の表示例を示す図
【図７】実施の形態１にかかる動作検証状況表示部が、動作検証の状況をシーケンスプログラムの各命令に対応づけて表示するマークを変更することによりユーザに通知する場合の表示例を示す図
【図８】実施の形態１にかかる動作検証状況表示部が、プログラムの表示を変更することにより動作検証の状況を表す場合の表示例を示す図
【図９】実施の形態１にかかるデバッグ装置が動作検証状況を表示する動作を示すフローチャート
【図１０】実施の形態１にかかる動作検証状況表示部が複数の動作検証状況の中から選択した１つ以上の動作検証状況に基づいて表示を行う動作を示すフローチャート
【図１１】実施の形態１にかかる動作検証状況表示部が表示装置に表示させる動作検証状況選択画面の一例を示す図
【図１２】実施の形態１にかかるデバッグ装置のＰＬＣのハードウェア構成を示す図
【図１３】実施の形態２にかかるデバッグ装置の構成例を示す図
【発明を実施するための形態】
【００１５】
以下に、本発明の実施の形態にかかるデバッグ装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１は、本発明の実施の形態１にかかるデバッグ装置の構成例を示す図である。実施の形態１にかかるデバッグ装置１００は、プログラマブルロジックコントローラ（ＰＬＣ：Programmable  Logic  Controller）１と、コンピュータ２内部のエンジニアリングツール２０とを含んで構成される。エンジニアリングツール２０は、エンジニアリングツール２０として動作するためのプログラムをコンピュータ２が実行することにより実現される。コンピュータ２は、エンジニアリングツール２０として動作するためのプログラムを実行するプロセッサ、プログラムおよび各種データを保持するメモリ、ディスプレイである表示装置、マウスおよびキーボードである入力装置、通信インタフェースといった各種ハードウェアを備える。ＰＬＣ１とコンピュータ２はネットワークケーブル３を介して接続される。なお、接続経路については無線を使用してもよい。
【００１７】
ＰＬＣ１は、プログラムメモリ１１、プログラム実行部１２および動作検証結果管理部１３を備える。動作検証結果管理部１３は、動作検証状況判定部１４および動作検証状況記憶部１５を備える。ＰＬＣ１は、２つの動作モード、具体的には、被制御機器を制御する通常モードと、シーケンスプログラムのデバッグを行うデバッグモードとを有し、図示を省略したスイッチといった切り替え手段をユーザが操作することにより動作モードを選択可能に構成されている。動作検証結果管理部１３は、デバッグモードが選択されている場合に動作する。
【００１８】
プログラムメモリ１１は、被制御機器を制御するシーケンスプログラムを記憶するメモリであり、検証対象シーケンスプログラム１６を保持する。検証対象シーケンスプログラム１６は、デバッグ装置１００を使用して行うデバッグの対象プログラムである。プログラム実行部１２は、プログラムメモリ１１で保持されているシーケンスプログラムを実行する実行部である。プログラム実行部１２は、デバッグモードが選択されている場合は検証対象シーケンスプログラム１６を実行する。検証対象シーケンスプログラム１６は、プログラムメモリ１１で保持されているシーケンスプログラムの中からユーザが指定したシーケンスプログラムである。また、プログラム実行部１２は、デバイスメモリ１７を有する。デバイスメモリ１７は、プログラム実行部１２がシーケンスプログラムを実行すると実行内容に従って値が更新される各種のデバイス値を保持するメモリである。デバイス値は、ＰＬＣ１が制御対象機器の制御で使用する制御情報の値を示す。ＦＡ分野では、制御情報を識別する情報をデバイスと呼び、デバイス値は制御対象機器の状態を示す。
【００１９】
動作検証結果管理部１３の動作検証状況判定部１４は、デバッグモードにおいてプログラム実行部１２が検証対象シーケンスプログラム１６を実行しているとき、命令の実行種別および命令の実行有無と命令の組を、動作検証状況として取得し、動作検証状況記憶部１５に保存する。すなわち、動作検証状況判定部１４は、プログラム実行部１２で実行された、検証対象シーケンスプログラム１６内の命令および実行された命令の実行種別を判定する判定部であり、判定結果を実行された命令と対応付けて動作検証状況記憶部１５に保存する。命令の実行種別は上述したＯＮ実行およびＯＦＦ実行といった情報であり、命令で実行する内容とこの命令の直前の命令の実行結果との関係を表す。動作検証状況判定部１４は、プログラム実行部１２のデバイスメモリ１７から読み出したデバイス値を解析することにより動作検証状況を取得する。動作検証状況判定部１４は、デバイスメモリ１７内の特定のデバイス値が更新されたか否かをモニタすることにより、特定のデバイス値に対応する命令が実行されたか否かを知ることができる。また、動作検証状況判定部１４は、プログラム実行部１２がシーケンスプログラム中のどの命令を実行しようとしているかについても、デバイスメモリ１７内のデバイス値をモニタすることにより知ることができる。各命令の実行種別および前条件はシーケンスプログラムを解析することにより知ることができる。動作検証結果管理部１３の動作検証状況記憶部１５は、動作検証状況判定部１４が取得した動作検証状況を受け取り記憶する記憶部である。
【００２０】
エンジニアリングツール２０は、動作検証状況表示部２１、動作検証設定入力部２２および動作検証設定書込部２３を有する。
【００２１】
動作検証状況表示部２１は、動作検証状況記憶部１５で記憶されている動作検証状況に基づき、検証対象シーケンスプログラム１６の動作検証の進捗状況を、ユーザが視認可能な形式でコンピュータ２の表示装置（図示せず）に表示する表示部である。動作検証状況表示部２１は、シーケンスプログラムを表示装置に表示する機能も有する。
【００２２】
動作検証設定入力部２２は、動作検証対象のシーケンスプログラムの設定と、動作検証対象のシーケンスプログラムの実行回数の設定と、検証対象の実行種別の設定とを、動作検証設定としてユーザから受け付ける。図２は、実施の形態１にかかる動作検証設定入力部２２が動作検証設定を受け付ける際に表示装置が表示する動作検証設定ダイアログボックスの一例を示す図である。図２に示した動作検証設定ダイアログボックスは、検証対象プログラム名および検証対象実行種別がプルダウンにより設定可能に構成され、検証対象実行回数がテキストボックスへの数値入力により設定可能に構成されている。図２に示されている内容の状態でＯＫボタンが押下された場合、動作検証設定入力部２２は、名称がＭＡＩＮのシーケンスプログラムに含まれているＯＮ実行の命令を対象として、合計１０回検証を行う内容の動作検証設定を受け付ける。検証対象実行種別では、ＯＮ実行およびＯＦＦ実行を個別に指定することができるほか、ＯＮ実行およびＯＦＦ実行の両方を検証対象として選択できることとする。なお、動作検証設定を図２に示した検証対象プログラム名、検証対象実行回数および検証対象実行種別に限定するものではない。その他の情報を動作検証設定に含ませてもよい。また、本実施の形態では、動作検証設定入力部２２が動作検証設定の入力をユーザから受け付けることとしたが、規定の形式で記述されたファイルの入力により、エンジニアリングツール２０が動作検証設定の情報を取得するようにすることも可能である。
【００２３】
動作検証設定書込部２３は、動作検証設定入力部２２が受け付けた動作検証設定を示す情報を、動作検証結果管理部１３の動作検証状況判定部１４に書き込み、書き込んだ情報に従って動作するよう、動作検証状況判定部１４を設定する。仮に、動作検証設定入力部２２が図２に示されている内容の動作検証設定を受け付け、これに対応する情報を動作検証設定書込部２３が動作検証状況判定部１４に書き込んだ場合、動作検証状況判定部１４は、名称がＭＡＩＮのシーケンスプログラムがプログラム実行部１２で実行された場合に、このシーケンスプログラムが１０回実行されるまでの間、ＯＮ実行の命令が実行されたか否かをモニタする。この場合、動作検証状況判定部１４は、シーケンスプログラムが１０回実行されるまでの間のモニタ結果を動作検証状況として動作検証状況記憶部１５に書き込む。
【００２４】
図３は、実施の形態１にかかるＰＬＣ１で実行されるシーケンスプログラムおよびシーケンスプログラムを構成する命令の一例を示す図である。図３に示したシーケンスプログラムはエンジニアリングツール２０の図示を省略したプログラム作成部にて作成される。シーケンスプログラムは、ＰＬＣ１が実行可能なコードに変換された後、エンジニアリングツール２０からＰＬＣ１へ伝送され、ＰＬＣ１のプログラムメモリ１１に書き込まれる。なお、図３ではラダー言語で作成したシーケンスプログラムの例を示している。図３に記載の「（０）」、「（２）」、「（４）」および「（６）」はステップ番号である。
【００２５】
図４は、実施の形態１にかかる動作検証状況判定部１４がプログラム実行部１２から収集した動作検証状況を動作検証状況記憶部１５へ保存する形式の一例を示す図である。図４に示したように、動作検証状況は、命令を表すステップ番号（step  number）、命令の実行条件を表すランタイプ（run  type）、ＯＮ実行完了フラグおよびＯＦＦ実行完了フラグを含む。ステップ番号は命令の識別情報である。また、この識別情報は、実行されたシーケンスプログラムの中から、どの命令が実行されたかを特定する為の情報である。ランタイプが‘０’の場合は常時実行を表し、‘１’の場合は常時実行ではない実行条件を表す。動作検証状況判定部１４は、プログラム実行部１２のデバイスメモリ１７に格納されているデバイス値を読み出すことにより、どのステップ番号の命令が実行されたのかおよび命令を実行する際の前条件を確認し、確認結果に従い、ＯＮ実行完了フラグまたはＯＦＦ実行完了フラグにチェックを入れる。図４に示した動作検証状況は、ステップ番号‘０’に対応する命令のＯＮ実行が実行済み、ステップ番号‘２’に対応する命令のＯＦＦ実行が実行済み、ステップ番号‘４’に対応する命令のＯＮ実行およびＯＦＦ実行が実行済み、ステップ番号‘８’に対応する命令のＯＮ実行およびＯＦＦ実行が実行済みであることを示している。なお、動作検証状況の保存形式は図４に示したものに限定されない。どの命令をどの実行条件で実行済みかが分かるのであれば、バイナリデータまたはテキストデータといった形式で記憶してもよい。
【００２６】
つづいて、エンジニアリングツール２０の動作検証状況表示部２１が動作検証状況を表示装置に表示する形式について、図５〜図８を使用して説明する。
【００２７】
図５は、実施の形態１にかかる動作検証状況表示部２１が、動作検証の状況をシーケンスプログラムの表示背景を変更することによりユーザに通知する場合の表示例を示す図である。図５は、図３に示したシーケンスプログラムの表示背景を、シーケンスプログラムに含まれる各命令の実行状況に対応させて変更した例を示している。表示背景の変更方法の代表例は色の変更である。例えば、ＯＮ実行とＯＦＦ実行の双方を実行済みの場合は青、ＯＮ実行のみ実行済みの場合は背景色をオレンジとし、ＯＦＦ実行のみ実行済みの場合は背景色を黄とし、ＯＮ実行およびＯＦＦ実行の両方とも実行されていない場合は背景色を白とする。
【００２８】
図６は、実施の形態１にかかる動作検証状況表示部２１が、動作検証の状況をシーケンスプログラムの表示背景を変更することによりユーザに通知する場合の他の表示例を示す図である。図６に示した例では、背景色の変更に加えて、ＯＮ実行およびＯＦＦ実行の双方を実行済みの命令を表示しないようにしている。ＯＮ実行およびＯＦＦ実行の双方を実行済みの命令を表示しないことで、動作検証が完了していない命令がどれくらい残っているのかをユーザが容易に知ることができる。図６に示した例では、ステップ番号が４の命令についてはＯＮ実行およびＯＦＦ実行が実行済みであるため、ステップ番号が４の命令は表示されていない。
【００２９】
図７は、実施の形態１にかかる動作検証状況表示部２１が、動作検証の状況をシーケンスプログラムの各命令に対応づけて表示するマークを変更することによりユーザに通知する場合の表示例を示す図である。図７は、図３に示したシーケンスプログラムに含まれる各命令の実行状況を黒塗の丸（●）、白抜きの丸（○）および二重丸（◎）で表した例を示している。具体的には、ＯＮ実行のみ実行済みの命令には‘●’を付与し、ＯＦＦ実行のみ実行済みの命令には‘○’を付与し、ＯＮ実行とＯＦＦ実行の双方を実行済みの命令には‘◎’を付与している。
【００３０】
図８は、実施の形態１にかかる動作検証状況表示部２１が、プログラムの表示を変更することにより動作検証の状況を表す場合の表示例を示す図である。図８では、一度でもＯＮ実行された経路および命令の表示を変更することにより動作検証の状況を表す例を示している。ＯＮ実行された経路および命令の表示を変更する方法としては、ＯＮ実行されていない状態では破線で表し、ＯＮ実行された場合に実線での表示に変更する方法が考えられる。また、ＯＮ実行されていない状態とＯＮ実行された状態とで表示色を変更する方法も考えられる。表示の変更方法はＯＮ実行がされたことが分かるのであればどのような方法であってもよい。
【００３１】
図５〜図８では、カバレッジの網羅率を、色分け等によって表示しているが、単純に「○○％実施」と表示画面上に表示するようにしてもよい。このような表示は、図５〜図８のラダープログラム上に併せて表示してもよい。また、色分け等による表示と数値による表示とを併せて行うようにしてもよい。カバレッジの網羅率は、動作検証状況表示部２１が、動作検証状況記憶部１５で記憶されている動作検証状況に基づいて算出する。なお、動作検証状況表示部２１は、実行条件が常時実行の命令についてはＯＮ実行およびＯＦＦ実行の双方が実行済みの場合に当該命令の動作検証が完了しているものとしてカバレッジの網羅率を算出する。
【００３２】
つづいて、デバッグ装置１００が動作検証状況を表示する動作について、図９を用いて説明する。図９は、実施の形態１にかかるデバッグ装置１００が動作検証状況を表示する動作を示すフローチャートである。
【００３３】
デバッグ装置１００が動作検証状況を表示する動作においては、動作検証状況判定部１４が、検証対象シーケンスプログラム１６をプログラム実行部１２が実行している状態において、ステップ毎にデバイスメモリ１７からデバイス値を収集し、収集したデバイス値に基づいて命令の実行の有無を判定する（ステップＳ１１）。なお、命令の実行有無の判定には、既存のシーケンスプログラムのモニタ技術を使用できる。また、命令の実行種別については、該当の命令の実行条件の種類および前条件から判定できる。動作検証状況判定部１４は、収集したデバイス値に基づいて、命令の実行の有無および実行種別を判定する。
【００３４】
次に、動作検証状況判定部１４は、判定結果、すなわち命令の実行の有無および実行種別を、ステップ番号と対応付けて動作検証状況記憶部１５に格納する（ステップＳ１２）。命令の実行の有無および実行種別とステップ番号と対応付けたものが図４に示した動作検証状況である。
【００３５】
次に、動作検証状況表示部２１が、動作検証状況記憶部１５に格納されている動作検証状況に基づいて、検証対象シーケンスプログラム１６の各命令の実行状況および実行種別を表示装置に表示する（ステップＳ１３）。
【００３６】
図９に示したステップＳ１３において、動作検証状況表示部２１は、図５〜図８に示した内容例の画面を表示する。また、動作検証状況記憶部１５に複数の動作検証状況が格納されている場合、動作検証状況表示部２１は、複数の動作検証状況の中からユーザが選択した１つ以上の動作検証状況に基づいて表示画面を生成する。一般的に、プログラムのデバッグ作業では、プログラムの動作条件の設定を変更しながら、複数の動作条件の元でプログラウを実行し、不具合の有無を確認する。そのため、複数の動作条件の各々に対応する動作検証結果が得られることになる。本実施の形態にかかるデバッグ装置１００の場合、図２を用いて説明した動作検証設定がプログラムの動作条件に相当し、図４を用いて説明した動作検証状況がプログラムの動作検証結果に相当する。すなわち、動作検証状況記憶部１５には複数の動作検証状況が格納されている。
【００３７】
図１０は、実施の形態１にかかる動作検証状況表示部２１が複数の動作検証状況の中から選択した１つ以上の動作検証状況に基づいて表示を行う動作を示すフローチャートである。
【００３８】
動作検証状況表示部２１は、図９に示したステップＳ１３において表示を行う場合、まず、動作検証状況を選択する画面を表示装置に表示する（ステップＳ２１）。このステップＳ２１での表示は図１１に示した画面とすることができる。図１１は、実施の形態１にかかる動作検証状況表示部２１が表示装置に表示させる動作検証状況選択画面の一例を示す図である。図１１に示した画面表示例は、動作検証状況記憶部１５で記憶されている動作検証状況のファイル名（動作検証状況＿００１，動作検証状況＿００２，…）のリストと、各ファイルを選択するためのチェックボックスと、表示開始ボタンと、キャンセルボタンとを含む。ユーザは、チェックボックスにチェックを入れることで表示させたい動作検証状況を選択し、表示開始ボタンを押下することで動作検証状況の表示を開始させる。すなわち、動作検証状況表示部２１は、ステップＳ２１を実行して図１１に示した画面を表示装置に表示させた後、１つ以上の動作検証状況のファイルが選択され、表示開始ボタンが押下されるのを待つ。
【００３９】
動作検証状況表示部２１は、１つ以上の動作検証状況が選択された状態で表示開始ボタンが押下されると、選択された動作検証状況に基づいて、図５〜図８に示した中のいずれか一つの内容例の画面を表示装置に表示する（ステップＳ２２）。複数の動作検証状況が選択された状態でステップＳ２２を実行する場合、動作検証状況表示部２１は、選択された動作検証状況の内容をマージし、マージ後の動作検証状況に従い表示を行う。
【００４０】
一例として、動作検証状況＿００１および動作検証状況＿００２が選択され、動作検証状況＿００１はＯＮ実行のみを実行した結果、動作検証状況＿００２はＯＦＦ実行のみを実行した結果である場合について考える。この場合、動作検証状況表示部２１は、動作検証状況＿００１および動作検証状況＿００２を解析することにより、ある命令のＯＮ実行およびＯＦＦ実行の双方が実行済みかどうか、実行済みではない場合にＯＮ実行とＯＦＦ実行のどちらが実行済みではないのか、ＯＮ実行およびＯＦＦ実行の双方が実行済みではないのかを把握し、各命令のＯＮ実行およびＯＦＦ実行の実行状況が視認可能な内容の画面（図５〜図８に示した中のいずれか一つの内容例の画面）を表示装置へ表示する。
【００４１】
また、他の例として、動作検証状況＿００１および動作検証状況＿００２が選択され、動作検証状況＿００１にはステップ番号ＸＸの常時実行の命令（以下、命令Ａとする）のＯＮ実行は実行されたがＯＦＦ実行は実行されていないことを示す情報が含まれ、動作検証状況＿００２には命令ＡのＯＮ実行は実行されていないがＯＦＦ実行は実行されたことを示す情報が含まれている場合について考える。この場合、動作検証状況表示部２１は、動作検証状況＿００１および動作検証状況＿００２を解析することにより命令ＡのＯＮ実行およびＯＦＦ実行の双方が実行済み、すなわち検証済みであることが分かる。そのため、動作検証状況表示部２１は、命令ＡのＯＮ実行およびＯＦＦ実行を検証済みであることを視認可能な内容の画面を表示装置へ表示する。
【００４２】
つづいて、実施の形態１にかかるデバッグ装置１００を構成するＰＬＣ１のハードウェア構成について説明する。図１に示したＰＬＣ１は、図１２に示したプロセッサ２０１、メモリ２０２および通信インタフェース２０３で実現することができる。プロセッサ２０１は、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＣＰＵ（Central  Processing  Unit）、またはＤＳＰ（Digital  Signal  Processor）などであってもよい。また、メモリ２０２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、またはＥＥＰＲＯＭ（Electrically  ＥＰＲＯＭ）などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはＤＶＤ（Digital  Versatile  Disc）などが該当する。メモリ２０２は、２種類以上の記憶装置を組み合わせたものであってもよい。
【００４３】
ＰＬＣ１のプログラムメモリ１１はメモリ２０２により実現される。ＰＬＣ１のプログラム実行部１２はプロセッサ２０１およびメモリ２０２により実現される。ＰＬＣ１の動作検証結果管理部１３はプロセッサ２０１およびメモリ２０２により実現される。すなわち、動作検証状況判定部１４は、動作検証状況判定部１４として動作するためのプログラムをメモリ２０２が保持しておき、このプログラムをプロセッサ２０１がメモリ２０２から読み出して実行することにより実現される。また、動作検証状況記憶部１５は、メモリ２０２により実現される。なお、図１２に示した通信インタフェース２０３は、エンジニアリングツール２０を実現するコンピュータ２と通信を行う際に利用する。なお、既に説明したように、エンジニアリングツール２０は、エンジニアリングツール２０として動作するためのプログラムをコンピュータ２が実行することにより実現される。
【００４４】
以上のように、本実施の形態にかかるデバッグ装置１００は、シーケンスプログラムを実行するプログラム実行部１２と、プログラム実行部１２で実行された命令、実行された命令の実行種別および前条件をデバイスメモリ１７に格納されたデバイス値に基づいて判定する動作検証状況判定部１４と、動作検証状況判定部１４による判定結果を動作検証状況として記憶する動作検証状況記憶部１５と、を備える。これにより、実行された命令の実行種別をユーザが確認する必要が無くなり、ユーザの作業負荷を軽減させることができる。よって、シーケンスプログラムのデバッグの作業効率を向上させることができる。また、シーケンスプログラムの動作検証の進捗状況をユーザが視認可能な形式で表示する動作検証状況表示部２１を備える。これにより、動作検証の進捗状況をユーザが容易に知ることができ、デバッグの作業効率をさらに向上させることができる。
【００４５】
なお、本実施の形態では、実行種別としてＯＮ実行、ＯＦＦ実行を用いているが、実行種別としてはこれに限らず、プログラムの実行内容が定義付けられたものであれば良い。
【００４６】
実施の形態２．
実施の形態１では、ＰＬＣ１が動作検証結果管理部１３を備えた構成のデバッグ装置について説明したが、エンジニアリングツール２０を含んだコンピュータ２が動作検証結果管理部１３を備えた構成としてもよい。
【００４７】
図１３は、実施の形態２にかかるデバッグ装置の構成例を示す図である。実施の形態２にかかるデバッグ装置１００ａは、ＰＬＣ１ａと、実施の形態１で説明した動作検証結果管理部１３、およびエンジニアリングツール２０を実現するコンピュータ２ａとを備える。ＰＬＣ１ａは、実施の形態１で説明したＰＬＣ１から動作検証結果管理部１３を削除した構成のＰＬＣである。コンピュータ２は、実施の形態１で説明したエンジニアリングツール２０に加えて、実施の形態１で説明した、プログラム実行部１２が実行した命令および実行種別を判定してその結果を記憶する動作検証結果管理部１３を備える。ＰＬＣ１ａのプログラムメモリ１１およびプログラム実行部１２は、実施の形態１で説明したＰＬＣ１のプログラムメモリ１１およびプログラム実行部１２と同じであるため説明を省略する。また、コンピュータ２ａのエンジニアリングツール２０および動作検証結果管理部１３は、実施の形態１で説明したコンピュータ２のエンジニアリングツール２０およびＰＬＣ１の動作検証結果管理部１３と同じであるため説明を省略する。
【００４８】
なお、エンジニアリングツール２０と動作検証結果管理部１３とを別構成としたが、エンジニアリングツール２０が動作検証結果管理部１３を備える構成としてもよい。
【００４９】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００５０】
１，１ａ  ＰＬＣ、２，２ａ  コンピュータ、３  ネットワークケーブル、１１  プログラムメモリ、１２  プログラム実行部、１３  動作検証結果管理部、１４  動作検証状況判定部、１５  動作検証状況記憶部、１６  検証対象シーケンスプログラム、１７  デバイスメモリ、２０  エンジニアリングツール、２１  動作検証状況表示部、２２  動作検証設定入力部、２３  動作検証設定書込部、１００，１００ａ  デバッグ装置。
【要約】
発明にかかるデバッグ装置（１００）は、検証対象シーケンスプログラム（１６）に含まれる命令を実行するプログラム実行部（１２）と、プログラム実行部（１２）で実行された命令と、実行された命令の実行内容と実行された命令の直前の命令の実行結果との関係を表す実行種別と、を判定する動作検証状況判定部（１４）と、動作検証状況判定部（１４）で判定された実行種別毎の命令の実行有無と、実行種別と、実行された命令を識別する識別情報とを対応付けて記憶する動作検証状況記憶部（１５）と、プログラム実行部（１２）で実行された命令と実行された命令の実行種別とを命令の実行有無に応じて視認可能な形式で表示する動作検証状況表示部（２１）と、を備える。【図１】
0006351906.tif 000002
【図２】
0006351906.tif 000003
【図３】
0006351906.tif 000004
【図４】
0006351906.tif 000005
【図５】
0006351906.tif 000006
【図６】
0006351906.tif 000007
【図７】
0006351906.tif 000008
【図８】
0006351906.tif 000009
【図９】
0006351906.tif 000010
【図１０】
0006351906.tif 000011
【図１１】
0006351906.tif 000012
【図１２】
0006351906.tif 000013
【図１３】
0006351906.tif 000014