(57)【特許請求の範囲】
【請求項１】
複数のデバイスを含んだ回路ブロックを有するシーケンスプログラムから、他のデバイスの値を決定させる要因となる要因デバイスと、前記要因デバイスによって値が決定される結果デバイスとの対応関係に基づいて、前記結果デバイスを抽出する結果デバイス抽出部と、
前記結果デバイスの値を決定する全ての要因デバイスを検索し、関連デバイスとして抽出する関連デバイス検索部と、
前記結果デバイスと、前記結果デバイスの値と、前記関連デバイスと、前記関連デバイスの値とを対応付けしたグループの情報であるグループ情報を表示装置に出力する表示制御部と、
を備え、
前記結果デバイス抽出部は、前記結果デバイスのうち、前記シーケンスプログラムの中の全ての結果デバイスに対して要因デバイスとならないデバイスであるルートデバイスを抽出し、
前記関連デバイス検索部は、前記ルートデバイスの値を決定する全ての要因デバイスを検索し、前記関連デバイスとして抽出し、
前記グループ情報では、前記ルートデバイスと、前記ルートデバイスの値と、前記関連デバイスと、前記関連デバイスの値とが対応付けされていることを特徴とするデバッグ支援装置。
【請求項２】
前記対応関係および前記グループ情報に基づいて、前記結果デバイスおよび前記関連デバイスを階層表示するための情報を作成する階層情報作成部をさらに備え、
前記表示制御部は、前記階層表示するための情報を前記表示装置に出力する、
ことを特徴とする請求項１に記載のデバッグ支援装置。
【請求項３】
前記表示制御部は、前記表示装置に表示させている前記結果デバイスおよび前記関連デバイスを、ユーザからの指示に従って、グループ単位で検索して表示する、
ことを特徴とする請求項１または２に記載のデバッグ支援装置。
【請求項４】
前記関連デバイス検索部は、前記グループの構成に用いられた各回路ブロックに、前記回路ブロックの処理順に対応する情報であるレベルを設定し、
前記表示制御部は、前記表示装置に表示させている前記結果デバイスおよび前記関連デバイスを、ユーザからの指示に従って、レベル単位で検索して表示する、
ことを特徴とする請求項１から３の何れか１つに記載のデバッグ支援装置。
【請求項５】
前記結果デバイス抽出部は、抽出対象のルートデバイスを出力デバイスとする、
ことを特徴とする請求項１に記載のデバッグ支援装置。
【請求項６】
前記階層情報作成部は、出力デバイスに処理が近い要因デバイスほど上方に位置するよう、前記結果デバイスおよび前記関連デバイスを階層表示する、
ことを特徴とする請求項２に記載のデバッグ支援装置。
【請求項７】
複数のデバイスを含んだ回路ブロックを有するシーケンスプログラムから、他のデバイスの値を決定させる要因となる要因デバイスと、前記要因デバイスによって値が決定される結果デバイスとの対応関係に基づいて、前記結果デバイスを抽出する結果デバイス抽出ステップと、
前記結果デバイスの値を決定する全ての要因デバイスを検索し、関連デバイスとして抽出する関連デバイス検索ステップと、
前記結果デバイスと、前記結果デバイスの値と、前記関連デバイスと、前記関連デバイスの値とを対応付けしたグループの情報であるグループ情報を表示装置に出力する表示制御ステップと、
前記表示装置が、前記グループ情報を表示する表示ステップと、
を含み、
前記結果デバイス抽出ステップでは、前記結果デバイスのうち、前記シーケンスプログラムの中の全ての結果デバイスに対して要因デバイスとならないデバイスであるルートデバイスを抽出し、
前記関連デバイス検索ステップでは、前記ルートデバイスの値を決定する全ての要因デバイスを検索し、前記関連デバイスとして抽出し、
前記グループ情報では、前記ルートデバイスと、前記ルートデバイスの値と、前記関連デバイスと、前記関連デバイスの値とが対応付けされていることを特徴とするデバッグ支援方法。
【請求項８】
複数のデバイスを含んだ回路ブロックを有するシーケンスプログラムから、他のデバイスの値を決定させる要因となる要因デバイスと、前記要因デバイスによって値が決定される結果デバイスとの対応関係に基づいて、前記結果デバイスを抽出する結果デバイス抽出ステップと、
前記結果デバイスの値を決定する全ての要因デバイスを検索し、関連デバイスとして抽出する関連デバイス検索ステップと、
前記結果デバイスと、前記結果デバイスの値と、前記関連デバイスと、前記関連デバイスの値とを対応付けしたグループの情報であるグループ情報を表示装置に出力する表示制御ステップと、
をコンピュータに実行させ、
前記結果デバイス抽出ステップでは、前記結果デバイスのうち、前記シーケンスプログラムの中の全ての結果デバイスに対して要因デバイスとならないデバイスであるルートデバイスを抽出し、
前記関連デバイス検索ステップでは、前記ルートデバイスの値を決定する全ての要因デバイスを検索し、前記関連デバイスとして抽出し、
前記グループ情報では、前記ルートデバイスと、前記ルートデバイスの値と、前記関連デバイスと、前記関連デバイスの値とが対応付けされていることを特徴とするデバッグ支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムのデバッグを支援するデバッグ支援装置、デバッグ支援方法、デバッグ支援プログラムに関する。
【背景技術】
【０００２】
工場の生産設備では、一般にプログラマブルロジックコントローラ（ＰＬＣ：Programmable  Logic  Controller）と呼ばれる産業用コントローラが用いられている。ＰＬＣで実行される制御プログラムであるシーケンスプログラムは、シーケンスプログラム作成装置を用いて作成される。【０００３】
このようなシーケンスプログラムに対しては、ユーザは、作成したシーケンスプログラムが期待通りに動作しているかを検証するために、入力デバイス、出力デバイスといった種々のデバイスの値を確認するデバッグを行う。このデバッグを目的として、シーケンスプログラム作成装置の中にはデバッグ支援装置を備えたものがある。【０００４】
特許文献１のシーケンスプログラム作成装置は、エミュレートによってシーケンスプログラムの検証を実行し、検証結果を表示している。そして、特許文献１のシーケンスプログラム作成装置は、ユーザが、検証結果に基づいて、異常発生の原因と考えられるデバイスを指定すると、このデバイスに関連するデバイスである関連デバイスを抽出して一覧表示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−４９２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の技術では、関連デバイスの値が表示されないので、ユーザは、関連デバイスの値を表示させるための処理が必要となる。このため、デバッグに手間がかかるという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、デバッグにかかる手間を低減することができるデバッグ支援装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明のデバッグ支援装置は、複数のデバイスを含んだ回路ブロックを有するシーケンスプログラムから、他のデバイスの値を決定させる要因となる要因デバイスと、要因デバイスによって値が決定される結果デバイスとの対応関係に基づいて、結果デバイスを抽出する結果デバイス抽出部を備える。また、本発明のデバッグ支援装置は、結果デバイスの値を決定する全ての要因デバイスを検索し、関連デバイスとして抽出する関連デバイス検索部と、結果デバイスと、結果デバイスの値と、関連デバイスと、関連デバイスの値とを対応付けしたグループの情報であるグループ情報を表示装置に出力する表示制御部と、を備える。結果デバイス抽出部は、結果デバイスのうち、シーケンスプログラムの中の全ての結果デバイスに対して要因デバイスとならないデバイスであるルートデバイスを抽出する。関連デバイス検索部は、ルートデバイスの値を決定する全ての要因デバイスを検索し、関連デバイスとして抽出する。グループ情報では、ルートデバイスと、ルートデバイスの値と、関連デバイスと、関連デバイスの値とが対応付けされている。
【発明の効果】
【０００９】
本発明にかかるデバッグ支援装置は、デバッグにかかる手間を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置の構成を示す図
【図２】実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置が作成するシーケンスプログラムの第１例を示す図
【図３】実施の形態にかかるデバッグ支援装置によるデータ処理の処理手順を示すフローチャート
【図４】図２に示したシーケンスプログラムから抽出されたグループの階層表示情報を示す図
【図５】実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置が作成するシーケンスプログラムの第２例を示す図
【図６】図５に示したシーケンスプログラムから抽出されたグループの階層表示情報を示す図
【図７】実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置が作成するシーケンスプログラムの第３例を示す図
【図８】図７に示したシーケンスプログラムから抽出されたグループの階層表示情報を示す図
【図９】実施の形態にかかるデバッグ支援装置が、指定されたグループのデバイスを抽出して表示させる処理を説明するための図
【図１０】実施の形態にかかるデバッグ支援装置が、指定されたレベルのデバイスを抽出して表示させる処理を説明するための図
【図１１】実施の形態にかかるデバッグ支援装置が、指定されたサブ番号のデバイスを抽出して表示させる処理を説明するための図
【図１２】実施の形態にかかるデバッグ支援装置を実現するハードウエア構成を示す図
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態にかかるデバッグ支援装置、デバッグ支援方法、デバッグ支援プログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態．
図１は、実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置の構成を示す図である。プログラム作成装置１００は、ラダープログラム等のシーケンスプログラムを作成、編集、およびデバッグ支援する装置であり、プログラム作成部３０、デバッグ支援装置１０、およびプログラム記憶部２０を備えている。
【００１３】
プログラム作成部３０は、ユーザからの指示に従ってシーケンスプログラムを作成する。プログラム作成部３０は、作成したシーケンスプログラムをプログラム記憶部２０に記憶させる。
【００１４】
デバッグ支援装置１０は、シーケンスプログラムのデバッグを支援する装置であり、デバッグ対象となる入力デバイス、出力デバイスといったデバイスと、デバイスの値とを一覧表示または階層表示する。デバイスの値は、デバイスの状態を示す情報である。プログラム記憶部２０は、シーケンスプログラムを記憶するメモリ等である。なお、デバッグ支援装置１０は、プログラム作成装置１００の外部に配置されてもよい。
【００１５】
ここで実施の形態で用いる用語の定義を説明する。
要因デバイス：他のデバイス（結果デバイス）の値を決定させる要因となるデバイス。
結果デバイス：他のデバイス（要因デバイス）によって値が決定されるデバイス。結果デバイスは、別の結果デバイスの要因デバイスになる場合がある。
ルートデバイス：結果デバイスのうち、シーケンスプログラムの中の全ての結果デバイスの要因デバイスとならないデバイス。すなわち、ルートデバイスは、結果デバイスのうち要因デバイスとならないデバイスである。
回路ブロック：シーケンスプログラムの構成要素。回路ブロックは、複数または単一の回路要素と、接続線とで構成される。１つの回路ブロックは、左母線と右母線の間を回路要素と１つの接続線とで繋げた範囲である。
グループ：シーケンスプログラムを構成するデバイスのうち、ルートデバイスと、当該ルートデバイスの値を決定する全ての要因デバイスとで構成される。
レベル：回路ブロックを構成するデバイス。ルートデバイスおよび要因デバイスを含む回路ブロックに対し、回路ブロック毎に１つのレベルが割り当てられる。
レベル番号：レベルの番号。レベル番号は、グループの構成に用いられた回路ブロックを特定（識別）する識別子である。ルートデバイスを含む回路ブロックからの階層が遠い回路ブロックほどレベル番号は大きくなる。
階層表示：要因デバイスと結果デバイスとの依存関係を視覚的に認識できる表示。各デバイスは、レベル番号毎に分けて階層表示される。
【００１６】
ルートデバイスは、グループ内で最後の結果デバイスとなるので、ルートデバイスの値は、デバッグをするうえで重要である。このため、本実施の形態のデバッグ支援装置１０は、複数のデバイスを含んだ回路ブロックを有するシーケンスプログラムから、要因デバイスと結果デバイスとの対応関係に基づいて、ルートデバイスを抽出し、ルートデバイスの値を決定する全ての要因デバイスを抽出する。そして、デバッグ支援装置１０は、ルートデバイスと、ルートデバイスの値と、関連デバイスと、関連デバイスの値とを対応付けしたグループの情報（以下、グループ情報という）を表示装置１０１に出力し、表示装置１０１がグループ情報を表示する。すなわち、デバッグ支援装置１０は、ルートデバイスに影響を与える要因デバイスを自動で抽出し、ルートデバイスの値と、要因デバイスの値とを表示させる。
【００１７】
プログラム作成装置１００は、表示装置１０１、操作装置１０２、および図示しないＰＬＣに接続されている。表示装置１０１は、液晶モニタといった、情報を表示する装置である。操作装置１０２は、マウス、キーボードといった、プログラム作成装置１００への操作を行う装置である。
【００１８】
プログラム作成装置１００は、パーソナルコンピュータといったコンピュータ上で動作するソフトウェアツールを用いて実現される。プログラム作成装置１００は、シーケンスプログラムの作成および編集を支援する機能、設備で動作しているシーケンスプログラムの稼働状態をＰＬＣから収集して表示させる機能、編集したシーケンスプログラムをＰＬＣへ転送する機能などを有している。
【００１９】
デバッグ支援装置１０は、入力部１１、ルートデバイス抽出部１２、関連デバイス検索部１３、グループ記憶部１４、階層情報作成部１５、表示制御部１６、グループ検索部１７、レベル検索部１８、および操作受付部１９を備えている。
【００２０】
入力部１１は、プログラム記憶部２０から送られてくるシーケンスプログラムを受け付けて、ルートデバイス抽出部１２に入力する。ルートデバイス抽出部１２は、シーケンスプログラムにおける要因デバイスと結果デバイスとの対応関係に基づいて、シーケンスプログラムからルートデバイスを検索して抽出する。ルートデバイス抽出部１２は、シーケンスプログラムおよびルートデバイスを関連デバイス検索部１３に送る。
【００２１】
関連デバイス検索部１３は、シーケンスプログラムから、ルートデバイスに関連するデバイスを検索して抽出する。ルートデバイスに関連するデバイスは、ルートデバイスの値を決定する要因デバイスである。以下の説明では、ルートデバイスに関連するデバイスを関連デバイスという場合がある。
【００２２】
関連デバイスは、ルートデバイスに対する直接的または間接的な要因デバイスである。間接的な要因デバイスは、他の要因デバイス（間接的な要因デバイスから見ると結果デバイス）を介してルートデバイスの値に影響を与える。いくつのレベル（回路ブロック）を介してルートデバイスの値に影響を与えるかが、関連デバイスの階層に対応している。
【００２３】
関連デバイス検索部１３は、シーケンスプログラムにおける要因デバイスと結果デバイスとの対応関係に基づいて、関連デバイスにレベル番号を設定する。関連デバイス検索部１３は、関連デバイスを含む回路ブロック毎にレベル番号を割り付ける。関連デバイス検索部１３は、ルートデバイスを含むグループのグループ情報を作成する。関連デバイス検索部１３は、関連デバイスの検索結果と、ルートデバイス抽出部１２から送られてきた情報とに基づいてグループ情報を作成する。なお、シーケンスプログラムにおける要因デバイスと結果デバイスとの対応関係に基づいて、関連デバイスにレベル番号を設定する処理は、グループ記憶部１４が実行してもよい。また、関連デバイスを含む回路ブロック毎にレベル番号を割り付ける処理は、グループ記憶部１４が実行してもよい。また、ルートデバイスを含むグループのグループ情報を作成する処理は、グループ記憶部１４が実行してもよい。なお、以下では、関連デバイス検索部１３が、上述した関連デバイスにレベル番号を設定する処理、関連デバイスを含む回路ブロック毎にレベル番号を割り付ける処理、およびグループ情報を作成する処理を実行する場合について説明する。
【００２４】
グループ情報には、ルートデバイスと、ルートデバイスの値と、関連デバイスと、関連デバイスの値と、関連デバイスのレベル番号と、グループ名と、関連デバイスの区分と、グループ内の回路ブロックの実行順序と、が含まれている。関連デバイスの区分は、関連デバイスが、要因デバイスであるか、結果デバイスであるかの区分である。関連デバイスの区分は、関連デバイス検索部１３が要因デバイスと結果デバイスとの対応関係に基づいて設定する。なお、グループ情報には、後述するサブ番号が含まれている場合がある。関連デバイス検索部１３は、作成したグループ情報をグループ記憶部１４に記憶させる。グループ記憶部１４は、グループ情報を記憶する。
【００２５】
階層情報作成部１５は、グループ情報に基づいて、グループの関連デバイスを階層表示するための情報を作成する。具体的には、階層情報作成部１５は、グループ記憶部１４で保持している、レベル番号と回路ブロックを構成するデバイスの区分とに基づいて、関連デバイス毎の表示位置と、ルートデバイスの表示位置とを示す情報を作成する。レベル番号および区分は、要因デバイスと結果デバイスとの対応関係に基づいて、設定されているので、階層情報作成部１５は、要因デバイスと結果デバイスとの対応関係に基づいて、ルートデバイスの表示位置を示す情報を作成しているともいえる。
【００２６】
表示制御部１６は、グループ記憶部１４が記憶しているグループ情報に基づいて、グループの情報を表示装置１０１に表示させる。また、表示制御部１６は、表示中の内容を、グループ検索部１７およびレベル検索部１８から指定された内容に変更する。
【００２７】
操作受付部１９は、操作装置１０２から送られてくる操作内容に対応する情報を受け付けて、グループ検索部１７またはレベル検索部１８に送る。操作受付部１９は、グループ検索の操作の場合は、操作内容に対応する情報をグループ検索部１７に送り、レベル検索の場合は、操作内容に対応する情報をレベル検索部１８に送る。グループ検索部１７は、指定されたグループ（名称）のデバイスを表示させる指示を表示制御部１６に送り、レベル検索部１８は、指定されたレベル（レベル番号）のデバイスを表示させる指示を表示制御部１６に送る。
【００２８】
なお、デバッグ支援装置１０は、ルートデバイスの代わりに結果デバイスに基づいて、結果デバイスの値と、要因デバイスの値とを表示装置１０１に表示させてもよい。すなわち、デバッグ支援装置１０は、結果デバイスに影響を与える要因デバイスを自動で抽出し、結果デバイスの値と要因デバイスの値とを含んだグループ情報を表示装置１０１に表示させてもよい。この場合、ルートデバイス抽出部１２は、ルートデバイスの代わりに結果デバイスを検索して抽出する。関連デバイス検索部１３は、シーケンスプログラムから、結果デバイスに関連する要因デバイスを検索して抽出する。また、この場合、グループ情報には、結果デバイスと、結果デバイスの値と、関連デバイスと、関連デバイスの値とが含まれている。また、階層情報作成部１５は、関連デバイス毎の表示位置と、結果デバイスの表示位置とを示す情報を作成する。
【００２９】
図２は、実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置が作成するシーケンスプログラムの第１例を示す図である。プログラム作成部３０は、ユーザからの指示に従って、シーケンスプログラム１５０を作成する。シーケンスプログラム１５０は、１または複数の回路ブロックを含んでいる。図２では、シーケンスプログラム１５０が４つの回路ブロック、すなわち、回路ブロック１２１、回路ブロック１２２、回路ブロック１２３、回路ブロック１２４から構成されている場合を示している。シーケンスプログラム１５０は、上側の回路ブロックから順番に実行される。なお、以下の説明では、回路ブロック１２１〜１２４を識別する必要がない場合には、回路ブロック１２１〜１２４を回路ブロックＣＢという場合がある。
【００３０】
回路ブロックＣＢは、それぞれ複数の回路要素で構成されている。各回路要素は、回路記号およびデバイスで構成されている。回路記号は、接点、コイル等の回路の種別を表すシンボルであり、ＰＬＣの処理においては命令に相当する。デバイスは、回路記号（命令）の処理対象となるデータを表現したものである。
【００３１】
例えば、デバイスでは、入力デバイスをＸデバイス、出力デバイスをＹデバイス、内部リレーデバイスをＭデバイス、データレジスタをＤデバイス、というようにデータ種別によってデバイス記号が予め決められている。デバイスは、デバイス記号とアドレスとにより表記される。例えば、入力デバイスのアドレス０のものは「Ｘ０」と表記され、出力デバイスのアドレス０のものは「Ｙ０」と表記される。ここでのアドレスは、ＰＬＣのメモリ空間の場所（メモリアドレス）を示している。したがって、各デバイスの値は、各デバイスのメモリアドレスに対応する領域に格納される。
【００３２】
回路ブロックＣＢは、複数のデバイスを含んでいる。具体的には、回路ブロック１２１は、Ｘ０デバイス１１０およびＭ０デバイス１１１から構成されており、回路ブロック１２２は、Ｘ１デバイス１１２およびＭ１デバイス１１３から構成されている。回路ブロック１２３は、Ｘ２デバイス１１４、Ｍ０デバイス１１５、Ｍ１デバイス１１６、およびＭ２デバイス１１７から構成されており、回路ブロック１２４は、Ｘ３デバイス１１８、Ｍ２デバイス１１９、およびＹ０デバイス１２０から構成されている。
【００３３】
図３は、実施の形態にかかるデバッグ支援装置によるデータ処理の処理手順を示すフローチャートである。ここでは、デバッグ支援装置１０が、図２に示したシーケンスプログラム１５０に対してデータ処理を実行する場合について説明する。
【００３４】
入力部１１は、プログラム記憶部２０から送られてくるシーケンスプログラム１５０を受け付けて、ルートデバイス抽出部１２に入力する。ルートデバイス抽出部１２は、シーケンスプログラム１５０からルートデバイスを抽出する（ステップＳ１０）。ルートデバイスは結果デバイスであるので、ルートデバイス抽出部１２は、シーケンスプログラム１５０から結果デバイスを抽出し、抽出した結果デバイスの中からルートデバイスを抽出する。すなわち、ルートデバイス抽出部１２は、各回路ブロックＣＢの中からＭ０デバイス１１１、Ｍ１デバイス１１３、Ｍ２デバイス１１７、およびＹ０デバイス１２０を結果デバイスとして抽出する。ルートデバイス抽出部１２は、抽出した結果デバイスの中から、シーケンスプログラム１５０の中の全ての結果デバイスの要因デバイスとならないデバイスであるＹ０デバイス１２０をルートデバイスとして抽出する。
【００３５】
ルートデバイス抽出部１２は、シーケンスプログラム１５０およびルートデバイスを関連デバイス検索部１３に送る。なお、シーケンスプログラムによっては、複数のルートデバイスが抽出されることもある。
【００３６】
関連デバイス検索部１３は、ルートデバイスから、ルートデバイスの値を決定する全ての要因デバイスを検索する（ステップＳ２０）。すなわち、関連デバイス検索部１３は、シーケンスプログラム１５０の中から、ルートデバイスであるＹ０デバイス１２０の値に影響を与える全ての要因デバイスを検索する。まず、関連デバイス検索部１３は、Ｙ０デバイス１２０を含む回路ブロック１２４の要因デバイスを確認し、Ｍ２デバイス１１９、およびＸ３デバイス１１８を、ルートデバイスであるＹ０デバイス１２０の要因デバイスと判断する。
【００３７】
さらに、要因デバイスは他の結果デバイスになっている可能性があるので、関連デバイス検索部１３は、シーケンスプログラム１５０の中からＭ２デバイス１１９、およびＸ３デバイス１１８のそれぞれに対する要因デバイスを検索する。
【００３８】
Ｍ２デバイス１１９は、回路ブロック１２３内にあるＭ２デバイス１１７の結果デバイスとなっている。このため、関連デバイス検索部１３は、回路ブロック１２３の要因デバイスであるＭ１デバイス１１６、Ｍ０デバイス１１５、およびＸ２デバイス１１４を、ルートデバイスであるＹ０デバイス１２０の要因デバイスとして抽出する。
【００３９】
回路ブロック１２４の要因デバイスであるＸ３デバイス１１８は、他の結果デバイスになっていないので、関連デバイス検索部１３は、Ｘ３デバイス１１８に関連するデバイスの検索を終了する。
【００４０】
回路ブロック１２３の要因デバイスであるＭ１デバイス１１６、Ｍ０デバイス１１５、およびＸ２デバイス１１４が他の結果デバイスになっている可能性があるので、関連デバイス検索部１３は、シーケンスプログラム１５０の中からＭ１デバイス１１６、Ｍ０デバイス１１５、およびＸ２デバイス１１４のそれぞれに対する要因デバイスを検索する。
【００４１】
Ｍ１デバイス１１６は、回路ブロック１２２内にあるＭ１デバイス１１３の結果デバイスとなっている。このため、関連デバイス検索部１３は、回路ブロック１２２の要因デバイスであるＸ１デバイス１１２をルートデバイスであるＹ０デバイス１２０の要因デバイスとして抽出する。
【００４２】
また、Ｍ０デバイス１１５は、回路ブロック１２１内にあるＭ０デバイス１１１の結果デバイスとなっている。このため、関連デバイス検索部１３は、回路ブロック１２１の要因デバイスであるＸ０デバイス１１０をルートデバイスであるＹ０デバイス１２０の要因デバイスとして抽出する。
【００４３】
回路ブロック１２３の要因デバイスであるＸ２デバイス１１４は、他の結果デバイスになっていないので、関連デバイス検索部１３は、Ｘ２デバイス１１４に関連するデバイスの検索を終了する。
【００４４】
回路ブロック１２２の要因デバイスであるＸ１デバイス１１２は、他の結果デバイスになっていないので、関連デバイス検索部１３は、Ｘ１デバイス１１２に関連するデバイスの検索を終了する。
【００４５】
同様に、回路ブロック１２１の要因デバイスであるＸ０デバイス１１０は他の結果デバイスになっていないので、関連デバイス検索部１３は、Ｘ０デバイス１１０に関連するデバイスの検索を終了する。
【００４６】
このように、関連デバイス検索部１３は、ルートデバイスであるＹ０デバイス１２０の要因デバイスとして、Ｍ２デバイス１１９、Ｘ３デバイス１１８、Ｍ１デバイス１１６、Ｍ０デバイス１１５、Ｘ２デバイス１１４、Ｘ１デバイス１１２、Ｘ０デバイス１１０を抽出する。
【００４７】
関連デバイス検索部１３は、抽出したルートデバイスの名称および関連デバイスの名称をグループ記憶部１４に送る。これにより、グループ記憶部１４は、ルートデバイスの名称および関連デバイスの名称を記憶する。すなわち、グループ記憶部１４は、ルートデバイス抽出部１２および関連デバイス検索部１３が検索して抽出したルートデバイスと、このルートデバイスの値を決定する全ての要因デバイスと、を１つのグループとして記憶する（ステップＳ３０）。
【００４８】
また、関連デバイス検索部１３は、抽出したルートデバイスの値、および抽出した要因デバイスの値を、グループ記憶部１４に送る。グループ記憶部１４は、抽出されたルートデバイスの値、および抽出された要因デバイスの値を記憶する。
【００４９】
また、グループ記憶部１４は、グループを特定するグループ名、グループ内の回路ブロックＣＢを特定するレベル番号、回路ブロックＣＢを構成するデバイスの区分、およびグループ内の回路ブロックＣＢの実行順序を保持しておく。
【００５０】
グループ名、レベル番号、区分、および実行順序は、関連デバイス検索部１３が決定し、ルートデバイスおよび関連デバイスと対応付けして、グループ記憶部１４に記憶させる。
【００５１】
関連デバイス検索部１３は、例えば、ルートデバイスの名称をグループ名とする。ルートデバイスがＹ０デバイス１２０である場合、グループ名は、「Ｙ０」である。関連デバイス検索部１３は、グループ内の結果デバイスと要因デバイスとの対応関係と、シーケンスプログラムに含まれる回路ブロックの実行順序とに基づいてレベル番号を決定する。以下の説明では、レベル番号がＲ（Ｒは自然数）のレベルをレベルＲという。
【００５２】
関連デバイス検索部１３が設定するレベルは、回路ブロックの処理順に対応する情報である。本実施の形態では、回路ブロックの処理が遅い順に小さな数値のレベルが設定される。具体的には、関連デバイス検索部１３は、ルートデバイスを含む回路ブロックをレベル１とし、レベル１を構成する要因デバイスが他の結果デバイスとなる場合に、この結果デバイスを含む回路ブロックをレベル２とする。関連デバイス検索部１３は、さらに、レベル２を構成する要因デバイスが他の結果デバイスとなる場合に、この結果デバイスを含む回路ブロックをレベル３とし、以降同様のルールでレベル番号を付与する。すなわち、関連デバイス検索部１３は、レベルＮ（Ｎは自然数）を構成する要因デバイスが他の結果デバイスとなる場合に、この結果デバイスを含む回路ブロックをレベル（Ｎ＋１）とする。
【００５３】
なお、ある回路ブロックを構成する複数の要因デバイスが、他の結果デバイスになっている場合、同一のレベル番号が複数存在することになる。この場合、関連デバイス検索部１３は、レベル番号にサブ番号を付与する。関連デバイス検索部１３は、サブ番号を、回路ブロックの実行順序に従って決定する。すなわち、関連デバイス検索部１３は、回路ブロックの実行順が遅い順にサブ番号を１から順に付与し、以降１をプラスしていく。関連デバイス検索部１３は、Ｍ（Ｍは２以上の自然数）個のサブ番号を付与する場合、実行順がＬ（Ｌは、２以上でＭ以下の自然）番目の回路ブロックには、（Ｍ−Ｌ＋１）のサブ番号を付与する。
【００５４】
シーケンスプログラム１５０の場合、関連デバイス検索部１３は、回路ブロック１２４のレベル番号をレベル１、回路ブロック１２３のレベル番号をレベル２とする。回路ブロック１２２および回路ブロック１２１はそれぞれレベル３となるので、関連デバイス検索部１３は、回路ブロック１２２および回路ブロック１２１の実行順に基づいて、サブ番号を付与する。すなわち、関連デバイス検索部１３は、回路ブロック１２２のレベル番号をレベル３−１、回路ブロック１２１のレベル番号をレベル３−２とする。結果として、レベル番号の降順は、シーケンスプログラム１５０の実行順となる。
【００５５】
階層情報作成部１５は、グループのデバイスを階層表示するための情報を作成する（ステップＳ４０）。階層表示するための情報は、デバイス毎の表示位置を示す情報である。階層情報作成部１５は、グループ記憶部１４で保持している、レベル番号と回路ブロックを構成するデバイスの区分とに基づいてデバイス毎の表示位置を示す情報を作成する。階層情報作成部１５は、作成した表示位置の情報を、グループ記憶部１４に記憶させる。表示制御部１６は、グループ記憶部１４が記憶しているグループ情報および表示位置の情報に基づいて、グループのデバイスの情報を表示装置１０１に表示させる（ステップＳ５０）。具体的には、表示制御部１６は、グループ記憶部１４が記憶している、ルートデバイスの名称、ルートデバイスの値、要因デバイスの名称、要因デバイスの値、グループ名、レベル番号、区分、および表示位置の情報に基づいて、グループを階層表示させるための情報である階層表示情報を生成し、生成した階層表示情報を出力する。これにより、表示装置１０１は、階層表示情報に対応する情報を表示する。
【００５６】
図４は、図２に示したシーケンスプログラムから抽出されたグループの階層表示情報を示す図である。図４では、シーケンスプログラム１５０から抽出されたグループの階層表示情報１５１を示している。
【００５７】
階層表示情報１５１は、デバイスの名称と、デバイスの値（現在値）と、表示形式と、データ型とが対応付けされた情報である。階層表示情報１５１では、１行毎に、デバイスの名称に対応する現在値と、表示形式と、データ型とが表示される。
【００５８】
階層表示情報１５１における表示形式は、デバイスの値を２進数で表示するか１０進数で表示するか１６進数で表示するかを示し、データ型は、デバイスの値をビット単位とするか、ワード（１６ビット）単位とするかを示す。デバイスの値を２進数で表示する場合、ビットデバイスのオンは「ＴＲＵＥ」で表示され、ビットデバイスのオフは「ＦＡＬＳＥ」で表示される。デバイスの値を１０進数で表示する場合、ビットデバイスのオンは「１」で表示され、ビットデバイスのオフは「０」で表示される。階層表示情報１５１における名称の列が、階層表示のイメージとなる。
【００５９】
階層表示情報１５１では、デバイスが属するレベルのレベル番号毎に列を揃えてデバイスの名称が表示される。ここでは、左端の列がレベル１のデバイスであり、左から２番目の列がレベル２のデバイスであり、左から３番目の列がレベル３のデバイスであり、左から４番目の列がレベル４のデバイスである場合を示している。
【００６０】
階層表示情報１５１では、１行目にルートデバイス（Ｙ０デバイス１２０）が表示され、Ｙ０デバイス１２０に対するレベル２の１つ目の要因デバイス（Ｍ２デバイス１１９）が２行目に表示される。このＭ２デバイス１１９に対するレベル３の１つ目の要因デバイス（Ｍ１デバイス１１３）が３行目に表示され、Ｍ１デバイス１１３に対するレベル４の要因デバイス（Ｘ１デバイス１１２）が４行目に表示される。
【００６１】
また、Ｍ２デバイス１１９に対するレベル３の２つ目の要因デバイス（Ｍ０デバイス１１５）が５行目に表示され、Ｍ０デバイス１１５に対するレベル４の要因デバイス（Ｘ０デバイス１１０）が６行目に表示される。また、Ｍ２デバイス１１９に対するレベル３の３つ目の要因デバイス（Ｘ２デバイス１１４）が７行目に表示される。また、Ｙ０デバイス１２０に対するレベル２の２つ目の要因デバイス（Ｘ３デバイス１１８）が８行目に表示される。
【００６２】
階層表示の際には、レベルＰ（Ｐは２以上の自然数）の列でＱ（Ｑは２以上の自然数）行目に表示されているデバイスを結果デバイスとした場合に、レベル（Ｐ−１）の列のＱ行目よりも前の直近に表示されているデバイスが要因デバイスとなるよう各デバイスが表示される。例えば、レベル３の列で３行目に表示されているＭ１デバイス１１３を結果デバイスとした場合、レベル２の列で、２行目以前の直近に表示されているデバイスであるＭ２デバイス１１９が要因デバイスである。このように、階層表示情報１５１では、要因デバイスと結果デバイスとの対応関係が分かるように、各デバイスがツリー型で表示される。
【００６３】
ここで、階層表示のイメージを２つのシーケンスプログラム例を用いて説明する。図５は、実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置が作成するシーケンスプログラムの第２例を示す図である。図６は、図５に示したシーケンスプログラムから抽出されたグループの階層表示情報を示す図である。図６では、図５のシーケンスプログラム１６０に対応する階層表示情報１６１を、表示制御部１６が表示装置１０１に表示させた場合の階層表示のイメージ図を示している。
【００６４】
図５に示すシーケンスプログラム１６０は、１つの回路ブロックで構成され、回路ブロックはＸ０デバイスとＹ０デバイスとで構成されている。デバイスの依存関係は、Ｘ０デバイスが要因デバイスであり、Ｙ０デバイスが結果デバイスである。Ｙ０デバイスは、ルートデバイスであり、ルートデバイスの値を決定する全ての要因デバイスはデバイスＸ０となる。レベル番号は、ルートデバイスを含む回路ブロックをレベル１とするので、レベル１となる。
【００６５】
シーケンスプログラム１６０に基づいて生成された階層表示情報が、図６に示した階層表示情報１６１である。階層表示情報１６１における名称の列が、階層表示のイメージとなる。
【００６６】
図７は、実施の形態にかかるデバッグ支援装置を備えたプログラム作成装置が作成するシーケンスプログラムの第３例を示す図である。図８は、図７に示したシーケンスプログラムから抽出されたグループの階層表示情報を示す図である。図８では、図７のシーケンスプログラム１７０に対応する階層表示情報１７１を、表示制御部１６が表示装置１０１に表示させた場合の階層表示のイメージ図を示している。
【００６７】
図７に示すシーケンスプログラム１７０は、２つの回路ブロック、すなわち回路ブロック１３０および回路ブロック１３１で構成されている。回路ブロック１３０は、Ｘ０デバイスとＭ０デバイスとで構成されている。デバイスの依存関係は、Ｘ０デバイスが要因デバイスであり、Ｍ０デバイスが結果デバイスである。回路ブロック１３１は、Ｍ０デバイスとＹ０デバイスとで構成されている。デバイスの依存関係は、Ｍ０デバイスが要因デバイスであり、Ｙ０デバイスが結果デバイスである。
【００６８】
Ｙ０デバイスは、ルートデバイスであり、ルートデバイスの値を決定する全ての要因デバイスは、回路ブロック１３１の要因デバイスであるＭ０デバイスと、Ｍ０デバイスの要因デバイスである、回路ブロック１３０のＸ０デバイスとである。
【００６９】
Ｙ０デバイスはルートデバイスであるので、回路ブロック１３１がレベル１であり、回路ブロック１３０がレベル２となる。これは、回路ブロック１３０の次に回路ブロック１３１が実行されるとともに、Ｍ０デバイスは、回路ブロック１３１の要因デバイスであり且つ回路ブロック１３０の結果デバイスだからである。
【００７０】
シーケンスプログラム１７０に基づいて生成された階層表示情報が、図８に示した階層表示情報１７１である。階層表示情報１７１における名称の列が、階層表示のイメージとなる。
【００７１】
表示制御部１６は、図４、図６、および図８に示したような階層表示情報１５１，１６１，１７１を表示装置１０１に表示させる。
【００７２】
表示装置１０１が階層表示情報１５１，１６１，１７１等を表示している状態で、ユーザによって、操作装置１０２に操作が行われると、操作装置１０２は、操作内容に対応する情報を操作受付部１９に送る。これにより、操作受付部１９は、操作内容に対応する情報を受け付けて、グループ検索部１７またはレベル検索部１８に操作内容に対応する情報を送る。操作受付部１９は、グループを指定する操作を受け付けると、グループを指定する情報をグループ検索部１７に送る。また、操作受付部１９は、レベルを指定する操作を受け付けると、レベルを指定する情報をレベル検索部１８に送る。
【００７３】
グループ検索部１７は、グループを指定した情報（名称）を受信すると、指定されたグループのデバイスを検索して抽出表示する指示を表示制御部１６に送る。また、レベル検索部１８は、レベルを指定した情報（レベル番号）を受信すると、指定されたレベルのデバイスを検索して抽出表示する指示を表示制御部１６に送る。
【００７４】
表示制御部１６は、グループ検索部１７から送られてくる指示に基づいて、指定されたグループのデバイスを抽出して表示装置１０１に表示させる。また、表示制御部１６は、グループ検索部１７およびレベル検索部１８から送られてくる指示に基づいて、指定されたグループの指定されたレベルのデバイスを抽出して表示装置１０１に表示させる。
【００７５】
ここで、指定されたグループのデバイスを抽出して表示させる処理、および指定されたグループの指定されたレベルのデバイスを抽出して表示させる処理について説明する。図９は、実施の形態にかかるデバッグ支援装置が、指定されたグループのデバイスを抽出して表示させる処理を説明するための図である。図９では、デバイスの値を１０進数で表示するにあたり、デバイスの値にプラスまたはマイナスの符号を付す場合を示している。
【００７６】
図９に示す上段の情報は、表示装置１０１が表示している階層表示情報１８０である。この階層表示情報１８０は、２つのグループ（Ｙ０とＹ１）を含んでいるものとする。階層表示情報１８０には、２つのグループの何れかを指定するためのプルダウンボタン（ドロップダウンボタン、またはアローボタンともいう）１５２が配置されている。このプルダウンボタン１５２がクリックされると、「Ｙ０」および「Ｙ１」がプルダウンリストとして表示される。「Ｙ０」または「Ｙ１」がユーザによって指定されると、操作受付部１９は、指定された名称をグループ検索部１７に送る。ここでは、「Ｙ０」がユーザによって指定された場合について説明する。
【００７７】
操作受付部１９は、「Ｙ０」を指定する操作を受け付けると、「Ｙ０」を指定した情報をグループ検索部１７に送る。グループ検索部１７は、「Ｙ０」のグループのデバイスを表示させる指示を表示制御部１６に送る。表示制御部１６は、グループ検索部１７から送られてくる、「Ｙ０」のグループのデバイスを表示させる指示に基づいて、表示中のデバイスから、指定された「Ｙ０」のグループのデバイスを抽出して表示装置１０１に表示させる。図９に示す下段の情報が、抽出された「Ｙ０」のグループの階層表示情報１８１である。このように、ユーザが指定したグループの階層表示情報１８１を表示させることで、ユーザは、所望のグループのデバイスに対し容易にデバッグを行うことが可能となる。
【００７８】
図１０は、実施の形態にかかるデバッグ支援装置が、指定されたレベルのデバイスを抽出して表示させる処理を説明するための図である。図１０に示す上段の情報は、表示装置１０１が表示している階層表示情報１９０である。この階層表示情報１９０は、３つのグループ（レベル１〜３）を含んでいるものとする。階層表示情報１９０は、図９に示した階層表示情報１８１に対して、３つのレベルの何れかを指定するためのプルダウンボタン１５３を配置したものである。このプルダウンボタン１５３がクリックされると、「レベル１」、「レベル２」、および「レベル３」がプルダウンリストとして表示される。「レベル１」から「レベル３」の何れかがユーザによって指定されると、操作受付部１９は、指定されたレベルをレベル検索部１８に送る。ここでは、「レベル１」がユーザによって指定された場合について説明する。
【００７９】
操作受付部１９は、「レベル１」を指定する操作を受け付けると、「レベル１」を指定した情報をレベル検索部１８に送る。レベル検索部１８は、「レベル１」のデバイスを表示させる指示を表示制御部１６に送る。表示制御部１６は、「レベル１」のデバイスを表示させる指示に基づいて、表示中の「Ｙ０」のグループのデバイスの中から、「レベル１」のデバイスを抽出して表示装置１０１に表示させる。図１０に示す下段の情報が、抽出された「Ｙ０」のグループの「レベル１」の階層表示情報１９１である。このように、ユーザが指定したレベルの階層表示情報１９１を表示させることで、ユーザは、所望のレベルのデバイスに対し容易にデバッグを行うことが可能となる。
【００８０】
つぎに、グループ、レベル、およびサブ番号が指定された場合に、指定された、グループ、レベル、およびサブ番号に対応するデバイスを抽出して表示させる処理について説明する。
【００８１】
図１１は、実施の形態にかかるデバッグ支援装置が、指定されたサブ番号のデバイスを抽出して表示させる処理を説明するための図である。図１１に示す上段の情報は、表示装置１０１が表示している階層表示情報１９５である。この階層表示情報１９５では、レベル３が、２つのサブ番号（レベル３−１，３−２）を含んでいるものとする。階層表示情報１９５は、図１０に示した階層表示情報１９０に対して、２つのサブ番号の何れかを指定するためのプルダウンリスト１５４を表示させたものである。
【００８２】
表示制御部１６は、ユーザによってプルダウンボタン１５３がクリックされ、レベル３が指定されると、「レベル３−１」および「レベル３−２」をプルダウンリストとして表示させる。「レベル３−１」または「レベル３−２」の何れかがユーザによって指定されると、操作受付部１９は、指定されたサブ番号をレベル検索部１８に送る。ここでは、「レベル３−１」がユーザによって指定された場合について説明する。
【００８３】
操作受付部１９は、「レベル３−１」を指定する操作を受け付けると、指定された「レベル３−１」のデバイスを表示させる指示を表示制御部１６に送る。表示制御部１６は、「レベル３−１」のデバイスを表示させる指示に基づいて、表示中の「Ｙ０」のグループのデバイスの中から、「レベル３−１」のデバイスを抽出して表示装置１０１に表示させる。図１１に示す下段の情報が、抽出された「Ｙ０」のグループの「レベル３−１」の階層表示情報１９６である。このように、ユーザが指定したサブ番号の階層表示情報１９６を表示させることで、ユーザは、所望のサブ番号のデバイスに対して容易にデバッグを行うことが可能となる。
【００８４】
このように、デバッグ支援装置１０は、シーケンスプログラムを構成する複数のデバイスを、ルートデバイスと、当該ルートデバイスの値を決定する関連デバイスと、を含むグループに分けてグループ毎に抽出している。そして、デバッグ支援装置１０は、抽出したグループに含まれる全てのデバイスの値をグループ記憶部１４に自動で登録しているので、デバッグ対象のデバイスを登録するまでの手間が無くなる。すなわち、ユーザがデバッグ対象のデバイスを抽出して登録する必要がなく、デバッグ支援装置１０がデバッグ対象のデバイスを自動登録するので、シーケンスプログラムのプログラムサイズが大きい場合であっても、デバイスの登録を短時間で実行することが可能となる。この結果、デバッグに要する時間を低減することが可能となる。
【００８５】
シーケンスプログラムは、ＰＬＣに接続された制御対象機器を制御する際に用いられるプログラムである。このため、ＰＬＣは、シーケンスプログラムに従った出力信号を制御対象機器に出力することによって、制御対象機器を制御する。ＰＬＣが出力する出力信号は、ＰＬＣが備える出力端子から出力される。この出力端子に対応するデバイスが、出力デバイスであり、シーケンスプログラムの重要なデバイスとなる。このため、ルートデバイス抽出部１２は、シーケンスプログラムの全てのルートデバイスのうち、確認しなければならない必要最小限のデバイスを出力デバイスに限定してもよい。すなわち、ルートデバイス抽出部１２は、抽出対象のルートデバイスを出力デバイスとしてもよい。これにより、デバッグ対象とするデバイスの数を減らすことができるので、デバッグに要する時間を低減することが可能となる。
【００８６】
また、デバッグ支援装置１０は、グループを階層表示することによって、グループ内の結果デバイスと要因デバイスとの依存関係をユーザにビジブルに表示できるので、ユーザは、デバイスの値のみの確認だけでなくデバイス間の依存関係を含めた観点でデバッグを行うことが可能となる。また、デバイスが階層表示されるので、登録されたデバイスが多くなっても、ユーザは、デバッグしたいデバイスを容易に探すことができる。したがって、デバッグに要する時間を低減することが可能となる。
【００８７】
また、デバッグ支援装置１０は、グループを単位としてデバイスを検索して表示させることができるので、ユーザは、デバイスを探し出す手間が軽減し、デバッグに要する時間を低減することが可能となる。また、ユーザは、表示されたグループに着目することで視認性が向上するので、デバイスの確認誤りの防止に繋がる。
【００８８】
また、デバッグ支援装置１０は、レベルを単位としてデバイスを検索して表示させることができるので、ユーザは、表示されたレベルに着目することで視認性が向上し、デバイスの確認誤りの防止に繋がる。
【００８９】
また、ユーザは、レベル番号に対応する列に表示されているデバイス（レベル毎にツリー表示されたデバイス）に基づいて、シーケンスプログラムの実行順序を認識することができるので、シーケンスプログラムに何らかの問題があった場合に、不良個所を特定するための手助けとなる。さらに、ユーザは、全てのレベル番号をデバッグすることで、グループの回路ブロックを漏れなくデバッグすることができるので、確認漏れの防止に繋がる。
【００９０】
ここで、デバッグ支援装置１０のハードウエア構成について説明する。図１２は、実施の形態にかかるデバッグ支援装置を実現するハードウエア構成を示す図である。デバッグ支援装置１０は、プロセッサ３０１、メモリ３０２、出力装置３０３、およびインターフェース回路３０４で実現される。プロセッサ３０１は、メモリ３０２、出力装置３０３、およびインターフェース回路３０４を制御する。インターフェース回路３０４は、デバッグ支援装置１０の外部装置（プログラム記憶部２０、操作装置１０２等）との間で通信を行う。メモリ３０２は、情報を記憶し、出力装置３０３は、表示装置１０１に情報を出力する。
【００９１】
プロセッサ３０１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ３０２の例は、ＲＡＭ（Random  Access  Memory）またはＲＯＭ（Read  Only  Memory）である。
【００９２】
入力部１１および操作受付部１９は、インターフェース回路３０４を用いて実現される。表示制御部１６は、出力装置３０３を用いて実現される。ルートデバイス抽出部１２、関連デバイス検索部１３、階層情報作成部１５、表示制御部１６、グループ検索部１７、およびレベル検索部１８は、プロセッサ３０１を用いて実現される。グループ記憶部１４は、メモリ３０２を用いて実現される。
【００９３】
デバッグ支援装置１０は、プロセッサ３０１が、メモリ３０２で記憶されているデバッグ支援装置１０の動作を実行するためのデバッグ支援プログラムを読み出して実行することにより実現される。また、このデバッグ支援プログラムは、デバッグ支援装置１０の手順または方法をコンピュータに実行させるものであるともいえる。メモリ３０２は、プロセッサ３０１が各種処理を実行する際の一時メモリにも使用される。
【００９４】
プロセッサ３０１が実行するデバッグ支援プログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な（non-transitory）記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ３０１が実行するデバッグ支援プログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
【００９５】
また、デバッグ支援装置１０を専用のハードウエアで実現してもよい。また、デバッグ支援装置１０の機能について、一部を専用のハードウエアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【００９６】
このように、実施の形態では、シーケンスプログラムからルートデバイスを抽出し、ルートデバイスの値を決定する関連デバイスを抽出し、ルートデバイスと、ルートデバイスの値と、関連デバイスと、関連デバイスの値とを対応付けして表示させている。これにより、ユーザは、ルートデバイスと関連デバイスとの関係を確認しやすくなるので、デバッグにかかる手間を低減することが可能となる。
【００９７】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００９８】
１０  デバッグ支援装置、１１  入力部、１２  ルートデバイス抽出部、１３  関連デバイス検索部、１４  グループ記憶部、１５  階層情報作成部、１６  表示制御部、１７  グループ検索部、１８  レベル検索部、１９  操作受付部、２０  プログラム記憶部、３０  プログラム作成部、１００  プログラム作成装置、１０１  表示装置、１０２  操作装置、１１０  Ｘ０デバイス、１１１，１１５  Ｍ０デバイス、１１２  Ｘ１デバイス、１１３，１１６  Ｍ１デバイス、１１４  Ｘ２デバイス、１１７，１１９  Ｍ２デバイス、１１８  Ｘ３デバイス、１２０  Ｙ０デバイス、１２１〜１２４，１３０，１３１  回路ブロック、１５０，１６０，１７０  シーケンスプログラム、１５１，１６１，１７１，１８０，１８１，１９０，１９１，１９５，１９６  階層表示情報、１５２，１５３  プルダウンボタン、１５４  プルダウンリスト、３０１  プロセッサ、３０２  メモリ、３０３  出力装置、３０４  インターフェース回路、ＣＢ  回路ブロック。
【要約】
デバッグ支援装置（１０）が、複数のデバイスを含んだ回路ブロックを有するシーケンスプログラムから、他のデバイスの値を決定させる要因となる要因デバイスと、要因デバイスによって値が決定される結果デバイスとの対応関係に基づいて、結果デバイスを抽出するルートデバイス抽出部（１２）と、結果デバイスの値を決定する全ての要因デバイスを検索し、関連デバイスとして抽出する関連デバイス検索部（１３）と、結果デバイスと、結果デバイスの値と、関連デバイスと、関連デバイスの値とを対応付けしたグループの情報であるグループ情報を表示装置（１０１）に出力する表示制御部（１６）と、を備える。【図１】
0006664562.tif 000002
【図２】
0006664562.tif 000003
【図３】
0006664562.tif 000004
【図４】
0006664562.tif 000005
【図５】
0006664562.tif 000006
【図６】
0006664562.tif 000007
【図７】
0006664562.tif 000008
【図８】
0006664562.tif 000009
【図９】
0006664562.tif 000010
【図１０】
0006664562.tif 000011
【図１１】
0006664562.tif 000012
【図１２】
0006664562.tif 000013