(57)【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラを構成するユニットからユーザが選択した無効化ユニットを受け付けるユニット構成表示編集部と、
前記プログラマブルロジックコントローラで実行されるシーケンスプログラム上で前記ユニットが使用する変数を前記ユニット毎に保持するユニット変数保持部と、
前記シーケンスプログラムをユーザが編集することができるプログラム表示編集部と、
前記シーケンスプログラムを記憶するプログラム記憶部と、
前記シーケンスプログラムを前記プログラマブルロジックコントローラのプログラム実行部が実行可能な実行コードに変換するプログラム変換部と、
前記無効化ユニットが使用する変数を前記ユニット変数保持部から取得し、取得した前記変数が前記シーケンスプログラムの中で使用されている箇所を検索する変数使用箇所検索部と、
前記箇所に対応する前記実行コードの区間を実行しない無効化区間として、無効化区間設定ファイルに書き込む実行無効化設定部と、
を具備したエンジニアリングツールと、
前記無効化区間設定ファイルに基づいて、前記無効化区間を実行しないように前記プログラム実行部を制御する実行制御部と、
を備えることを特徴とするシーケンスプログラムデバッグ支援装置。
【請求項２】
前記プログラマブルロジックコントローラに接続されていないユニットを非接続ユニットとして認識する自動認識部を
さらに備え、
前記変数使用箇所検索部は、前記自動認識部が認識した前記非接続ユニットを前記無効化ユニットとする
ことを特徴とする請求項１に記載のシーケンスプログラムデバッグ支援装置。
【請求項３】
前記変数使用箇所検索部は、取得した前記変数の中からユーザが選択した変数について前記シーケンスプログラムの中で使用されている箇所を検索する
ことを特徴とする請求項１に記載のシーケンスプログラムデバッグ支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムデバッグ支援装置に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（ＰＬＣ）システム向けのシーケンスプログラムのデバッグ作業における動作確認時などに、システム内の特定ユニットに関する動作プログラムだけを実行させたくない場合、従来のエンジニアリングツールにおいては、以下のような一連の操作を行う必要があった。【０００３】
（１）対象ユニットに関してプログラム内で使用している変数一覧を検索する。（２）検索した変数を使用しているプログラムの場所（複数）を特定する。（３）特定したプログラムを実行しないようにする。具体的には、プログラムをバックアップして削除する、コメントアウトするなどの編集操作を行う。（４）プログラムをコンパイルする（実行コードにする）。（５）コンパイルした実行コードをプログラマブルロジックコントローラ（ＰＬＣ）に書き込む。（６）プログラマブルロジックコントローラ（ＰＬＣ）を再起動する。【０００４】
例えば、特許文献１においては、特定のステップの実行を無効化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−５９４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、従来の技術によればシーケンスプログラムのデバッグ作業の工数が多くなるという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、特定ユニットに関連するプログラムを実行しないで動作確認するシーケンスプログラムのデバッグ作業の工数を大幅に削減することが可能なシーケンスプログラムデバッグ支援装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、プログラマブルロジックコントローラを構成するユニットからユーザが選択した無効化ユニットを受け付けるユニット構成表示編集部と、前記プログラマブルロジックコントローラで実行されるシーケンスプログラム上で前記ユニットが使用する変数を前記ユニット毎に保持するユニット変数保持部と、前記シーケンスプログラムをユーザが編集することができるプログラム表示編集部と、前記シーケンスプログラムを記憶するプログラム記憶部と、前記シーケンスプログラムを前記プログラマブルロジックコントローラのプログラム実行部が実行可能な実行コードに変換するプログラム変換部と、前記無効化ユニットが使用する変数を前記ユニット変数保持部から取得し、取得した前記変数が前記シーケンスプログラムの中で使用されている箇所を検索する変数使用箇所検索部と、前記箇所に対応する前記実行コードの区間を実行しない無効化区間として、無効化区間設定ファイルに書き込む実行無効化設定部と、を具備したエンジニアリングツールと、前記無効化区間設定ファイルに基づいて、前記無効化区間を実行しないように前記プログラム実行部を制御する実行制御部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明にかかるシーケンスプログラムデバッグ支援装置は、シーケンスプログラムのデバッグ作業の工数を大幅に削減できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、従来のエンジニアリングツールにおいて特定ユニットに関する動作プログラムだけを実行させたくない場合に必要な操作を示す図である。
【図２】図２は、実施の形態１にかかるシーケンスプログラムデバッグ支援装置の基本的な構成を示す図である。
【図３】図３は、実施の形態１にかかるユニット構成表示編集部のイメージを示す図である。
【図４】図４は、プログラム表示編集部（ラダーエディタ）にラダープログラムを表示したイメージを示す図である。
【図５】図５は、実施の形態１におけるシーケンスプログラムデバッグ支援装置の動作を示す処理フローを示す図である。
【図６】図６は、ラダープログラムの基本構成の様子を示す図である。
【図７】図７は、実施の形態１にかかるユーザの操作とシーケンスプログラムデバッグ支援装置の動作の様子を示した図である。
【図８】図８は、ユニット種類ごとの変数の種類の一覧であるユニット変数種類一覧を示す図である。
【図９】図９は、ＰＬＣシステム内でのユニット名とその変数名一覧であるユニット使用変数名一覧を示す図である。
【図１０】図１０は、選択されたユニットが使用する変数がシーケンスプログラムで使用されている箇所を示す図である。
【図１１】図１１は、シーケンスプログラム（ラダープログラム）と実行コードの実行区間の対応を示す図である。
【図１２】図１２は、無効化区間設定ファイルの内容を示す図である。
【図１３】図１３は、実施の形態２にかかるシーケンスプログラムデバッグ支援装置の基本的な構成を示す図である。
【図１４】図１４は、実施の形態２におけるシーケンスプログラムデバッグ支援装置の動作を示す処理フローを示す図である。
【発明を実施するための形態】
【００１１】
プログラマブルロジックコントローラ（ＰＬＣ）システム向けのシーケンスプログラムのデバッグ作業における動作確認時などに、システム内の特定ユニットに関する動作プログラムだけを実行させたくない場合、従来のエンジニアリングツールにおいては、図１に示す以下のような一連の操作を行う必要があった。
【００１２】
まず、図１の（１）において対象ユニットに関してプログラム内で使用している変数一覧を検索する。そして、（２）において検索した変数を使用しているプログラムの場所（複数）を特定する。そして、（３）において特定したプログラムを実行しないように編集する。具体的には、プログラムをバックアップして削除する、コメントアウトするなどの編集操作を行う。そして、（４）においてプログラムをコンパイルする（実行コードにする）。そして、（５）においてコンパイルした実行コードをプログラマブルロジックコントローラ（ＰＬＣ）に書き込む。最後に、（６）においてプログラマブルロジックコントローラ（ＰＬＣ）を再起動（リスタート）する。
【００１３】
このように、従来のエンジニアリングツールにおいてはデバッグ作業の工数が多くなるという問題があった。
【００１４】
以下に、本発明の実施の形態にかかるシーケンスプログラムデバッグ支援装置５０を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
本発明の実施の形態１にかかるシーケンスプログラムデバッグ支援装置５０の基本的な構成を図２に示す。シーケンスプログラムデバッグ支援装置５０を実現する基本的な構成としては、エンジニアリングツールソフトウェアがインストールされたパソコンなどであるエンジニアリングツール１００とエンジニアリングツール１００で作成したプログラムを実行するプログラマブルロジックコントローラ（ＰＬＣ）のＣＰＵ２００（ハードウェア）からなる構成を考えることができる。ＣＰＵ２００は、プログラマブルロジックコントローラ（ＰＬＣ）本体（全体は図示しない）の一部である。
【００１６】
以下で、各構成要素の概要を説明する。エンジニアリングツール１００は、ＰＬＣシステムで動作させるプログラムを編集するツールであり、たとえばエンジニアリングツールソフトウェアがインストールされたパソコンなどで実現できる。エンジニアリングツール１００は以下に示す各処理部を備える。
【００１７】
ユニット構成表示編集部１：
ＰＬＣシステムで使用するユニット構成を設定することができるエディタであり、図３にイメージを示す。ユニット構成表示編集部１において構成要素として設定できるユニットには、入出力ユニット、ＡＤ変換ユニット、位置決めユニットなどがある。ユニット構成表示編集部１は、ＰＬＣシステムを構成するユニットからユーザが選択した無効化ユニットを受け付けることができる。
【００１８】
ユニット変数保持部２：
ユニットとそのユニットを操作するための変数一覧との対応をたとえばデータベース（ＤＢ）として保持する。たとえば、図３に示すように「入力ユニット１」には「Ｘ０，Ｘ１，Ｘ２，Ｘ３」という名前の変数が対応するなどの情報がデータベースとしてユニット変数保持部２に保持される。ユニット変数保持部２は、エンジニアリングツールソフトウェアがインストールされたパソコンの記憶領域あるいは記憶装置などに含まれる。
【００１９】
プログラム表示編集部３：
ＣＰＵ２００で実行するプログラムコードを編集することができるエディタである。ＰＬＣシステムではラダー言語が使われることが多いので、ラダー言語に対するプログラム表示編集部３のイメージを図４に示す。
【００２０】
プログラム記憶部４：
プログラム表示編集部３で作成したプログラムコードを記憶する。例えば、ラダー言語で作成したプログラムコードの基本的構成要素は、回路記号と変数である。回路記号は接点やコイルといったＰＬＣシステムでの処理を表し、変数はその処理の対象を表している。プログラム記憶部４は、エンジニアリングツールソフトウェアがインストールされたパソコンの記憶領域あるいは記憶装置などに含まれる。
【００２１】
プログラム変換部５：
具体的にはコンパイラであり、これによりプログラム記憶部４に保持されているプログラムコードをＣＰＵ２００で実行可能な実行コードに変換する。実行コードは、ＣＰＵ２００で実行する処理を並べたものであり、たとえば、命令とそのオペランドからなるコマンドの列として表現されている。コマンドの列の各コマンドには実行順序に相当する番号（以後「ステップ番号」と呼ぶ）が付与されている。
【００２２】
変数使用箇所検索部６：
変数とプログラムを指定して、変数がプログラム中で使われている箇所の一覧を探索・出力する。たとえば、プログラム記憶部４の中に保持されているラダープログラム（ラダー言語によるプログラム）の中の５番目の回路記号に変数「Ｘ０」が使われていた場合、「Ｘ０」の使用箇所探索結果に、「５番目」という結果を出力する。
【００２３】
実行無効化設定部７：
実行コードの中で実行しない区間（無効化区間）を設定し、無効化区間設定ファイルに書き込む。無効化区間の指定方法としては、例えば、対象実行コード中の開始ステップ番号と終了ステップ番号を指定する方法がある。
【００２４】
ＰＬＣ通信部８：
実行コードと無効化区間設定ファイルを、ＣＰＵ２００に書き込む機能を提供する。
【００２５】
次に、ＣＰＵ２００の各処理部について説明する。ＣＰＵ２００は、実行コードを実行するハードウェアであり、プログラム実行部１１および実行制御部１２を備える。
【００２６】
プログラム実行部１１：
実行コードの処理を実行するＣＰＵ２００の中核（コア）部分のハードウェアである。
【００２７】
実行制御部１２：
無効化区間設定ファイルの内容を読み、その内容にしたがって、プログラム実行部１１の実行を制御する。たとえば、「実行コードのステップ番号５番からステップ番号１０番までを実行しない」という内容の実行制御を行うことができる。実行制御部１２の機能は、ＣＰＵ２００上で動作するＯＳあるいはファームウェアの機能として実現される。
【００２８】
上述した構成を備えたシーケンスプログラムデバッグ支援装置５０によりＰＬＣシステム向けプログラムのデバッグ時に「特定ユニットに関連するプログラムを実行しないようにする」機能を実現する。故障などにより特定のユニットをＰＬＣシステムから外した場合の動作を調べたいときなどには、当該特定のユニットを使用するプログラムの実行をユーザが無効化して調べることができるようにこのような機能が求められる。そのための前提として、以下に説明する（ユニット変数の一覧登録）、（ラダープログラムの作成）、（実行コードの書き込み）が行われている必要がある。
【００２９】
（ユニット変数の一覧登録）
ＰＬＣシステムを構築には、電源、ＣＰＵ、入出力などのユニット構成を決める必要がある。ユニット構成を作成する操作のイメージを図３を例にして説明する。ユニット構成は、ユニット構成表示編集部１において部品一覧からユニットをドラッグ＆ドロップすることを繰り返して作成する。
【００３０】
その際、選択・配置したユニットを操作するための変数一覧をユニット変数保持部２に登録しておく。選択ユニットを操作するために用意された変数の種類の一覧である［ユニット変数種類一覧］（図８）が、ユニットに対応した情報としてユニット変数保持部２のデータベース等にあらかじめ保持されているものとする。図８の「ユニット種類」とは製品名のことである。ユニット構成の作成時は、選択したユニットの［ユニット変数種類一覧］を読み出し、それらに具体的な変数名をつけて、その変数名一覧とユニット名との対応である［ユニット使用変数名一覧］（図９）をユニット変数保持部２に記録する処理を行う。図９の「ユニット名」とはＰＬＣシステム内でのユニットの名称である。図９は、図３のユニット構成表示編集部１において「部品一覧から「Ｑ０４型入力ユニット」を選んで、ユニット構成に追加した操作」を行ったときのデータの生成イメージを示した。部品一覧から「Ｑ０４型入力ユニット」を選ぶと、図８の１行目を元に当該ユニットを操作するために使用する変数名一覧を含む図９の内容がユニット変数保持部２に追加記録される。
【００３１】
（ラダープログラムの作成）
プログラム表示編集部３の具体例としてラダーエディタを使ってラダープログラムを作成する。プログラム表示編集部３（ラダーエディタ）にラダープログラムを表示したイメージを図４に示し、ラダープログラムの基本構成の様子を図６に示す。図６を用いてラダープログラムの基本構成について説明する。説明を簡単化するために、ラダープログラムの構成要素である回路要素は、ここでは接点(ａ接点)とコイルのみであるものとする。他の回路記号（命令）を使ったラダープログラムに対しても本実施の形態は有効である。
【００３２】
ラダープログラムの概略を説明する。図６に示すようにラダープログラムは、「回路ブロック」を実行順に並べたものである。回路ブロックは、１つの「条件部」と１つの「動作部」からなる。「条件部」は、接点が直列あるいは並列に接続されたひとかたまりの回路である。「動作部」は、コイルが直列に接続されたひとかたまりの回路である。「回路ブロック」には、「ステップ番号」が付く。「ステップ番号」は、プログラム全体の中で「回路ブロック」を特定する識別子であるとともに、ＰＬＣシステムにおける実行順を示すものとする。
【００３３】
１つの「回路ブロック」内の動作は、その「条件部」が導通したときに、「動作部」を実行する。よって、ラダープログラムのデバッグ作業において、特定の「回路ブロック」を実行させたくないときは、従来は、「条件部」に常時ＯＦＦ（非導通）となる接点を直列接続するなどの方法を取っていた。
【００３４】
接点およびコイルのことを回路要素と呼ぶ。回路要素は、回路記号と変数からなる。回路記号は、接点およびコイルの種別を表すシンボルであり、実行コードにおいては命令に相当する。
【００３５】
変数は、回路記号（命令）の処理対象となるデータを表現したものである。前述した［ユニット使用変数名一覧］に登録された変数名をここに使うことができる。図６の○で囲んだ回路要素が、図９の「入力ユニット１」に対応する変数名を使用した箇所である。
【００３６】
作成したラダープログラムは、各ユニットを操作するために使用する変数が使われている「回路ブロック」が検索できるデータ構造で、プログラム記憶部４に記憶される。
【００３７】
なお、本実施の形態においてはラダープログラムを例として説明を行ったが、ＳＴ（Ｓｔｒｕｃｔｕｒｅｄ  Ｔｅｘｔ）、ＦＢＤ（Ｆｕｎｃｔｉｏｎ  Ｂｌｏｃｋ  Ｄｉａｇｒａｍ）といった他のプログラミング言語を使用しても、本実施の形態にかかるシーケンスプログラムデバッグ支援装置は実現可能であり同様な効果が得られる。
【００３８】
（実行コードの書き込み）
作成したラダープログラムは、プログラム変換部５（コンパイラ）によってＣＰＵ２００で実行可能な実行コードに変換される。実行コードは、ＰＬＣ通信部８により、ＣＰＵ２００に書き込まれ、実行可能な状態となっている。
【００３９】
以上を前提として、シーケンスプログラムデバッグ支援装置５０によりＰＬＣシステム向けプログラムのデバッグ時に「特定ユニットに関連するプログラムを実行しないようにする」機能を実現する。この機能を実現するときのユーザの操作とシーケンスプログラムデバッグ支援装置５０の動作を、処理フローを示した図５および処理の様子を示した図７を用いて以下に説明する。
【００４０】
（ユニットを使用するプログラムの実行無効化操作）
まず、図５のステップＳ１０１において、特定のユニットを使用するプログラムの実行をユーザが無効化する。このときの操作イメージは、図７の「（１）ユニット構成図からユニットを選んで、メニューから実行無効化を実行」に示したものである。具体的には、ユーザは、ユニット構成表示編集部１のユニット構成図上でユニットを選択し、メニューの「使用回路を無効化」を実行する。この操作は、キーやツールバーボタンで行えるようにしても構わない。選択されたユニットの識別子（ユニット名）を受け付けたユニット構成表示編集部１は、当該ユニットの識別子（ユニット名）を変数使用箇所検索部６へと通知する。
【００４１】
（ユニットに対応する変数一覧の取得）
ユニットの識別子（ユニット名）を知らされた変数使用箇所検索部６は、ユニット変数保持部２から当該ユニットが使用するユニット変数の一覧を取得する（ステップＳ１０２）。具体的には、例えば通知されたユニット名が「入力ユニット１」であるならば、当該ユニット名をキーにして、上述した（ユニット変数の一覧登録）において登録した図９から、使用変数名一覧を取得する。従ってこの例では、「Ｘ０，Ｘ１，Ｘ２，Ｘ３」の４つの変数を取得する。
【００４２】
（変数使用箇所一覧の検索）
変数使用箇所検索部６は、上記（ユニットに対応する変数一覧の取得）で取得した４つの変数について、プログラムで使われている箇所の一覧を検索する（ステップＳ１０３）。なおデバッグ作業時間短縮のため、ここで取得した４つの変数の中から無効化する変数をユーザが選択できるようにしてもよい。即ち、４つの変数の中からユーザが選択した変数のみについてプログラムで使われている箇所の一覧を検索するようなオプションを付加してもよい。例えば、入力デバイスに対応する変数は使う（無効化しない）が、出力デバイスに対応する変数は使わない（無効化する）、などをユーザが指定できるようにするオプションである。このようなオプションを付加しない場合は、変数使用箇所検索部６は上記取得した４つの変数全てについて、１つずつ図６のラダープログラムの中での使用箇所を検索してゆく。その結果、図６のラダープログラムの例では、図１０に示した３箇所の変数が検索され、当該使用箇所である回路ブロックが判明する。検索にヒットした変数は図６において○で囲んで示してある。なお、本実施の形態においては、ラダープログラムが１つの場合について説明したが、複数のプログラムを対象とした場合も本方式は有効である。
【００４３】
（使用箇所の実行無効化設定）
実行無効化設定部７は、上記（変数使用箇所一覧の検索）で見つかった変数を使用している図６のラダープログラム中の３箇所について、その箇所に対応する実行コードの区間を実行しない区間、即ち無効化区間として設定し、無効化区間設定ファイルに書き込む（ステップＳ１０４）。たとえば、対象となるラダープログラムの実行コードが図１１に示す［ラダープログラムと実行区間の対応］のような構造で記録されているとする。ここから（変数使用箇所一覧の検索）の検索結果である３つの回路ブロックの開始ステップ番号、終了ステップ番号を取得し、図１２に示す［無効化区間設定］に書き移すことで無効化区間設定ファイルに書き込みが実現できる。
【００４４】
なお、本実施の形態においては、最初に何も設定が記載されていない無効化区間設定ファイルに（変数使用箇所一覧の検索）における検索結果から作成した無効化区間を書き込むとして説明したが、無効化区間設定ファイルにすでに書き込まれている無効化区間に新たに無効化区間を追加する場合や無効化区間を置き換える場合にも本方式は有効である。
【００４５】
（無効化区間設定のＣＰＵへの書き込み指示）
ユーザは、上記（使用箇所の実行無効化設定）で作成した無効化区間設定ファイルを、ＣＰＵ２００に書き込む操作を行う。この操作は、従来技術の「ＰＣ書き込み」あるいは「ＲＵＮ中書込み」などの操作と同等の操作で実現できる。具体的には、ユーザの指示（ステップＳ１０５）を受けたエンジニアリングツール１００においてＰＬＣ通信部８が無効化区間設定ファイルをＣＰＵ２００に書き込む（転送する）（ステップＳ１０６）。なお、この操作はユーザがエンジニアリングツール１００に指示を出さなくても、即ち、ステップＳ１０５を省いても実現可能である。具体的には、（使用箇所の実行無効化設定）で無効化区間設定ファイルが更新されたときに、エンジニアリングツール１００（ＰＬＣ通信部８）が自動的にＣＰＵ２００への書き込み処理を行う（ステップＳ１０６）ようにしてもよい。この処理の様子は、図７の「（２）無効化区間設定ファイルをＰＬＣに書き込み」に示す。
【００４６】
（実行中プログラムの実行制御）
上記（無効化区間設定のＣＰＵへの書き込み指示）で無効化区間設定ファイルを受け取った（書き込まれた）ＣＰＵ２００は、その内容に従って実行制御部１２が実行中の実行コードの実行を制御する（ステップＳ１０７）。このことにより、上記（ユニットを使用するプログラムの実行無効化操作）で選択したユニットに関連する箇所のプログラムの非実行を実現する。具体的には、実行制御部１２は、無効化区間の開始ステップ番号で指定されたステップ番号で実行コードの実行をストップし（従来のブレイクポイント機能）、次にその無効化区間の終了ステップ番号までの実行を飛ばして、次のステップ番号から実行を継続する。
【００４７】
なお、実行制御部１２が上記制御を行う場合に、プログラムの非実行の間のＰＬＣシステムのスリープ時間を指定できるようにすることで、無効化したときの実行速度を調整することができる。例えば、早く実行したい場合はスリープ時間＝０を指定してもよいが、実際の速度に合わせたい場合は非実行のステップ数からスリープ時間を推定してその間ＰＬＣシステムをスリープさせてもよい。これにより、実行時間を短縮してデバッグ時間を効率化することも可能である上、非実行のステップ数からスリープ時間を推定してＰＬＣシステムをスリープさせれば最も遅いケースの実行状態などを模擬することもできる。即ち、いろいろな環境を模擬しながらデバッグすることが可能となる。
【００４８】
以上説明したように、本発明の実施の形態にかかるシーケンスプログラムデバッグ支援装置５０においては、シーケンスプログラムの中の特定のユニットに関連する動作プログラムだけを実行させないようにするために、以下の３点を自動的に実行する。
（１）対象のユニットに関連する変数の一覧を取得する。
（２）変数を使用しているシーケンスプログラム中の箇所（区間）に関する情報を取得する。
（３）シーケンスプログラムおよびそれに対応する実行コードは変更せずに上記（２）で取得した箇所（区間）についての実行を無効化する設定をファイルに書き込む。
【００４９】
これにより、ユーザが、（１）メニュー画面などにおいて対象となるユニットを選択して、実行無効化を指示する、（２）無効化区間を設定したファイルのＰＬＣへの書き込みを指示する（シーケンスプログラムデバッグ支援装置に自動実行させる場合は省略可能）、のみで特定のユニットに関連する動作プログラムの非実行を実現できる。
【００５０】
その結果、ユニットに関連する部分をまとめて実行無効化できるため、手動で無効化するときのプログラム修正作業時間に比べ、工数を飛躍的に短縮できるようになる。また、シーケンスプログラムデバッグ支援装置５０がユニットに関連する情報を管理していることにより、人による判断や操作の間違いを少なくできるため、手動によるコメントアウト作業に比べて作業回数を少なくすることができる。さらに、本実施の形態による実行無効化の設定は、既存の実行コードの特定箇所をスキップする機能で実現することができるので、実行コードに変更を加えない。従って、従来のようなＰＬＣの再起動が不要となる。これにより、デバッグ作業の時間短縮、即ち、デバッグ作業を含んだシーケンスプログラム作成のための作業時間を短縮して効率化できるという効果が得られる。
【００５１】
実施の形態２．
また、実施の形態１においては（ユニットを使用するプログラムの実行無効化操作）において、ユーザがユニット構成図の上で無効化したいユニットを手動で選択するとしたが、ＰＬＣの実機システムにおいて装着されていないユニットが存在する場合にはこの操作も省くことも考えられる。
【００５２】
本実施の形態においては、図１３に示すように、プログラマブルロジックコントローラ（ＰＬＣ）に装着されていないユニット（非接続ユニット）を自動認識する機能を有する自動認識部２０をシーケンスプログラムデバッグ支援装置５０の中に備えておく。自動認識部２０は、図１３に示すようにＣＰＵ２００（ハードウェア）側のみにあってエンジニアリングツール１００（ソフトウェア）に認識結果を知らせるようにしてもよいし、ＣＰＵ２００およびエンジニアリングツール１００が共同して担っていても構わない。シーケンスプログラムデバッグ支援装置５０の動作を含む本実施の形態の動作フローを図１４に示す。
【００５３】
まず、図１４のステップＳ２０１において、ＵＳＢ接続、あるいはネットワーク接続などによりエンジニアリングツール１００をＰＬＣ（のＣＰＵ２００）に接続する。すると、シーケンスプログラムデバッグ支援装置５０はＰＬＣの接続状況に基づいて、ＰＬＣのシステム構成を上述したように自動認識する。これにより、図７に示したユニット構成表示編集部１のユニット構成図上には配置されているが、ＰＬＣの実機には接続されていない非接続ユニットを認識する（ステップＳ２０２）。そして、非接続ユニットの識別子（ユニット名）、即ち自動認識結果を知らされた変数使用箇所検索部６は、ユニット変数保持部２から非接続ユニットが使用するユニット変数の一覧を取得する（ステップＳ２０３）。
【００５４】
即ち、実施の形態２においては、非接続ユニットと自動認識されたユニットが実施の形態１におけるユーザが選択したユニットとして扱われる。従って、以後のステップＳ２０４〜Ｓ２０８は、図５のステップＳ１０３〜Ｓ１０７と同様である。なお、本実施の形態においては、非接続ユニットが接続されていた場合、即ち、ユニット構成表示編集部１のユニット構成図上に示されたＰＬＣシステムのシーケンスプログラム（例えば、ラダープログラム）が、予めプログラム変換部５により実行コードに変換されてＣＰＵ２００に書き込まれて実行可能な状態となっているとする。さらに、実施の形態１と同様にステップＳ２０６を省けば、ＰＬＣの実機システムに装着されていないユニットが存在する場合において、当該ＰＬＣに対応するシーケンスプログラムの実行コードを実質的に全自動で作成できることになる。
【００５５】
また、上記実施の形態１および２においては、はじめにユニット単位で無効化する変数を選択する場合について説明したが、はじめからユニットを選択するのではなく、クロスリファレンス結果（検索結果）などに基づいて当初から変数を指定して、その変数を使っているプログラム（実行コード）のコメントアウト切替えが自動的にできるようにしてもよい。また、シーケンスプログラムの作成時に、例えばＣ言語のマクロと同様の仕組み（例えば、「＃ｉｆｄｅｆ  ＤＥＢＵＧ  無効化区間設定ファイルを作成する」などのような仕組み）を組み合わせることにより、デバッグ時だけ実行無効化設定部７を動作させて無効化区間設定ファイルの作成を実行するプログラムを書くことも可能である。これにより、上記実施の形態によるコメントアウト動作によって実行コードの実行／非実行を切り替えたい部分を柔軟にカスタマイズできるので、デバッグ作業をさらに効率化することができる。
【００５６】
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【００５７】
以上のように、本発明にかかるシーケンスプログラムデバッグ支援装置は、ＰＬＣシステムのシーケンスプログラムのデバッグ作業に有用であり、特に、エンジニアリングツールを用いたシーケンスプログラムのデバッグ作業に適している。
【符号の説明】
【００５８】
１  ユニット構成表示編集部
２  ユニット変数保持部
３  プログラム表示編集部
４  プログラム記憶部
５  プログラム変換部
６  変数使用箇所検索部
７  実行無効化設定部
８  ＰＬＣ通信部
１１  プログラム実行部
１２  実行制御部
２０  自動認識部
５０  シーケンスプログラムデバッグ支援装置
１００  エンジニアリングツール
２００  ＣＰＵ
Ｓ１０１〜Ｓ１０７、Ｓ２０１〜Ｓ２０８  ステップ
【図１】
0005599535.tif 000002
【図２】
0005599535.tif 000003
【図３】
0005599535.tif 000004
【図４】
0005599535.tif 000005
【図５】
0005599535.tif 000006
【図６】
0005599535.tif 000007
【図７】
0005599535.tif 000008
【図８】
0005599535.tif 000009
【図９】
0005599535.tif 000010
【図１０】
0005599535.tif 000011
【図１１】
0005599535.tif 000012
【図１２】
0005599535.tif 000013
【図１３】
0005599535.tif 000014
【図１４】
0005599535.tif 000015