(57)【特許請求の範囲】
【請求項１】
実際の製品として動作させられる正式プログラムの動作確認時に用いられるデバッグ用プログラムが選択された場合には、コントローラで前記デバッグ用プログラムが実行され、かつ前記デバッグ用プログラムが選択されなかった場合には、前記コントローラで前記デバッグ用プログラムが実行されることなく前記正式プログラムが実行されるよう、前記正式プログラムと前記デバッグ用プログラムとを区別して編集するプログラム表示編集部と、
前記正式プログラムおよび前記デバッグ用プログラムを前記コントローラで実行可能なように変換する変換部と、
前記コントローラに実行させるモードを、ユーザ入力される指示情報に基づいて、前記デバッグ用プログラムが実行されるデバッグモードと、前記正式プログラムが実行される通常モードと、の何れかに切り替える実行切替部と、
を備えることを特徴とするエンジニアリングツール。
【請求項２】
前記プログラム表示編集部は、
前記正式プログラムと前記デバッグ用プログラムとを区別する情報を前記正式プログラムおよび前記デバッグ用プログラムの少なくとも一方に付加することを特徴とする請求項１に記載のエンジニアリングツール。
【請求項３】
前記プログラム表示編集部は、
前記正式プログラムの中の何れかの回路を選択する選択指示と、選択された回路を前記デバッグ用プログラムに切替える切替え指示と、がユーザ入力されると、選択された回路を前記デバッグ用プログラムに変更することによって前記デバッグ用プログラムを作成することを特徴とする請求項１または２に記載のエンジニアリングツール。
【請求項４】
前記プログラム表示編集部は、
前記デバッグ用プログラムで使用されるデバッグ専用命令を、ユーザ入力される指示情報に基づいて前記正式プログラムの中に挿入することによって、前記デバッグ用プログラムを作成することを特徴とする請求項１または２に記載のエンジニアリングツール。
【請求項５】
前記プログラム表示編集部が前記正式プログラムまたは前記デバッグ用プログラムとして入力することのできる命令として、前記正式プログラムで使用される正式命令と、前記デバッグ用プログラムで使用される前記デバッグ専用命令と、を区別して記憶する命令管理部をさらに備え、
前記プログラム表示編集部は、前記命令管理部が記憶する命令に基づいて、前記正式プログラムと前記デバッグ用プログラムとを区別して編集することを特徴とする請求項４に記載のエンジニアリングツール。
【請求項６】
変換後の前記正式プログラムおよび前記デバッグ用プログラムを前記コントローラに書き込む通信部をさらに備えることを特徴とする請求項１から５のいずれか１つに記載のエンジニアリングツール。
【請求項７】
前記変換部は、前記命令管理部が記憶する命令に基づいて、前記正式プログラムおよび前記デバッグ用プログラムを前記コントローラで実行可能なように変換することを特徴とする請求項５に記載のエンジニアリングツール。
【請求項８】
実際の製品として動作させられる正式プログラムの動作確認時に用いられるデバッグ用プログラムが選択された場合には、コントローラで前記デバッグ用プログラムが実行され、かつ前記デバッグ用プログラムが選択されなかった場合には、前記コントローラで前記デバッグ用プログラムが実行されることなく前記正式プログラムが実行されるよう、前記正式プログラムと前記デバッグ用プログラムとを区別して編集するプログラム表示編集部と、
前記正式プログラムおよび前記デバッグ用プログラムを前記コントローラで実行可能なように変換する変換部と、
前記コントローラに実行させるモードを、ユーザ入力される指示情報に基づいて、前記デバッグ用プログラムが実行されるデバッグモードと、前記正式プログラムが実行される通常モードと、の何れかに切り替える実行切替部と、
を備えることを特徴とするプログラム編集装置。
【請求項９】
シーケンスプログラムを編集するプログラム編集装置と、
前記プログラム編集装置から送られてくるシーケンスプログラムを用いて動作するコントローラと、
を有し、
前記シーケンスプログラムは、
実際の製品として動作させられる正式プログラムと、前記正式プログラムの動作確認時に用いられるデバッグ用プログラムと、を含み、
前記プログラム編集装置は、
前記デバッグ用プログラムが選択された場合には、前記コントローラで前記デバッグ用プログラムが実行され、かつ前記デバッグ用プログラムが選択されなかった場合には、前記コントローラで前記デバッグ用プログラムが実行されることなく前記正式プログラムが実行されるよう、前記正式プログラムと前記デバッグ用プログラムとを区別して編集するプログラム表示編集部と、
前記正式プログラムおよび前記デバッグ用プログラムを前記コントローラで実行可能なように変換する変換部と、
前記コントローラに実行させるモードを、ユーザ入力される指示情報に基づいて、前記デバッグ用プログラムが実行されるデバッグモードと、前記正式プログラムが実行される通常モードと、の何れかに切り替える実行切替部と、
を備え、
前記コントローラは、
前記デバッグ用プログラムが選択された場合には、前記デバッグ用プログラムを実行し、かつ前記デバッグ用プログラムが選択されなかった場合には、前記デバッグ用プログラムを実行することなく前記正式プログラムを実行する、
ことを特徴とするプログラム編集システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムを作成するエンジニアリングツール、プログラム編集装置およびプログラム編集システムに関する。
【背景技術】
【０００２】
シーケンスプログラムをデバッグする方法として、現在値の変更処理や実行条件付きテストを行なう方法があるが、これらの方法では、設定操作に手間がかかっていた。現在値の変更処理は、シーケンスプログラムの実行中にメモリの値を手動で変更する処理である。現在値の変更処理が実行されるためには、専用ダイアログ画面が開かれ、変更するメモリ番号および値を指定する必要がある。実行条件付きテストは、シーケンスプログラムの特定箇所（条件）において、メモリの値が指定された値に設定される機能を有している。この機能では、プログラムエディタ以外の専用ダイアログ画面が開かれたうえで、条件と、変更したいメモリ番号および値と、を指定する必要がある。【０００３】
また、シーケンスプログラムをデバッグする方法として、例えば、以下の（１）〜（６）に示す一連の操作を行なう方法がある（例えば、特許文献１参照）。なお、以下では、実際の製品として稼働するシーケンスプログラムを正式プログラムという。
（１）正式プログラムが作成され、コントローラで実行可能なように変換される。
（２）正式プログラムがコントローラへ書込まれて実行され、モニタなどで動作が確認される。
（３）実行時に不具合が検出されると、正式プログラムのうちデバッグをしたい部分である不具合箇所に、デバッグ用のプログラムが追加される。例えば、常時ＯＮにしたい回路の条件部に“ＯＲ  ＴＲＵＥ”の回路要素が挿入されるなどして、デバッグ用のプログラムが追加される。その後、デバッグ用のプログラムが挿入された全体のプログラムが、コントローラで実行可能なように変換される。
（４）デバッグ用のプログラムを含む全体のプログラムがコントローラへ書込まれて実行され、再度モニタなどで動作が確認される。
（５）正式プログラムとデバッグ用のプログラムとの実行を切り替えて動作確認が行なわれる場合には、上記（３）と（４）が繰り返される。具体的には、全体のプログラムの修正、変換、書込み、動作確認が繰り返される。
（６）正式プログラムの正常動作が確認された後、デバッグ用のプログラム部分が削除される。そして、正式プログラムが、コントローラで実行可能なよう、再度変換されてコントローラへ書込まれる。この後、コントローラでは、正式プログラムを用いた処理が実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３７０８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術では、デバッグ作業の際に、プログラムの編集、変換、書込み、実行を繰り返す必要があるので、デバッグ作業に手間がかかるという問題があった。【０００６】
本発明は、上記に鑑みてなされたものであって、容易にデバッグを行うことができるエンジニアリングツール、プログラム編集装置およびプログラム編集システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明のエンジニアリングツールは、実際の製品として動作させられる正式プログラムの動作確認時に用いられるデバッグ用プログラムが選択された場合には、コントローラで前記デバッグ用プログラムが実行され、かつ前記デバッグ用プログラムが選択されなかった場合には、前記コントローラで前記デバッグ用プログラムが実行されることなく前記正式プログラムが実行されるよう、前記正式プログラムと前記デバッグ用プログラムとを区別して編集するプログラム表示編集部と、前記正式プログラムおよび前記デバッグ用プログラムを前記コントローラで実行可能なように変換する変換部と、前記コントローラに実行させるモードを、ユーザ入力される指示情報に基づいて、前記デバッグ用プログラムが実行されるデバッグモードと、前記正式プログラムが実行される通常モードと、の何れかに切り替える実行切替部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、容易にデバッグを行うことができるシーケンスプログラムを作成することが可能になるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態に係るデバッグシステムの構成を示す図である。
【図２】図２は、全体プログラムの表示例を示す図である。
【図３】図３は、ＰＬＣの実行モードを切り替える画面の一例を示す図である。
【図４】図４は、デバッグの処理手順を示すフローチャートである。
【図５】図５は、デバッグ用プログラムの第１の作成例を説明するための図である。
【図６】図６は、デバッグ用プログラムの第２の作成例を説明するための図である。
【図７】図７は、プログラム編集装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態に係るエンジニアリングツール、プログラム編集装置およびプログラム編集システムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態
本実施の形態では、「正式プログラム」、「デバッグ用プログラム」、「全体プログラム」という用語を以下のように区別して用いる。
正式プログラム：実際の製品として動作させられるプログラムコードもしくはその実行オブジェクト。正式プログラムは、実際の製品の製造工程などで、コントローラがロボットなどを制御する際に用いられる。
デバッグ用プログラム：製品出荷前に動作確認用として作成されて動作させられるプログラムコード部分もしくはその実行オブジェクト。デバッグ用プログラムは、実際の製品としては動作しない部分である。
全体プログラム：デバッグ用プログラムが挿入された正式プログラムであり、シーケンスプログラムの全体を指す。
【００１２】
なお、以下の説明における全体プログラムは、デバッグ用プログラムが挿入された正式プログラムであってもよいし、デバッグ用プログラムが挿入される前の正式プログラムであってもよい。
【００１３】
図１は、実施の形態に係るデバッグシステムの構成を示す図である。ＰＬＣ（Programmable  Logic  Controller）システムを用いたデバッグシステム１は、プログラム編集装置２とＰＬＣ２０とを有している。プログラム編集装置２は、コンピュータなどであり、エンジニアリングツール１０と、モニタなどの表示部３２と、マウスやキーボードなどの受付部３１とを備えている。
【００１４】
受付部３１は、外部装置などで作成された正式プログラムやユーザからの指示などを受付ける。受付部３１は、エンジニアリングツール１０に接続されており、正式プログラムやユーザ入力される指示をエンジニアリングツール１０に入力する。表示部３２は、エンジニアリングツール１０に接続されており、エンジニアリングツール１０からの指示に従って、全体プログラム、正式プログラム、デバッグ用プログラムなどのシーケンスプログラムを表示する。
【００１５】
エンジニアリングツール１０は、ラダープログラムなどのシーケンスプログラムを作成するプログラミングツールである。エンジニアリングツール１０は、ＰＬＣ２０で動作させるシーケンスプログラムを編集する。エンジニアリングツール１０は、例えばコンピュータ上のＳ／Ｗ（ソフトウェア）として実現できる。
【００１６】
デバッグシステム１は、シーケンスプログラムをデバッグする際に、デバッグ専用のプログラムを作成して実行する手間を省くことによってシーケンスプログラムの設計工数を削減する。本実施の形態では、エンジニアリングツール１０が、正式プログラムとデバッグ用プログラムとを切替え可能なよう全体プログラムを作成する。
【００１７】
エンジニアリングツール１０は、デバッグ用プログラムがデバッグ専用命令を備えるよう、全体プログラムを作成する。エンジニアリングツール１０は、デバッグ専用命令の部分と、正式プログラムの部分とを区別して全体プログラムの表示・編集を行う機能を有している。ＰＬＣ２０は、デバッグモード時のみデバッグ用プログラムのデバッグ専用命令を実行し、通常モード時には、正式プログラムを実行する。
【００１８】
ＰＬＣ２０は、コントローラの一例であり、シーケンスプログラムを用いてロボットなどを制御する。本実施の形態のＰＬＣ２０は、エンジニアリングツール１０で作成された全体プログラムを用いてロボットなどを制御する。このように全体プログラムは、エンジニアリングツール１０で作成・編集・モード切替が行われ、ＰＬＣ２０でモード切替に応じた処理が実行される。
【００１９】
エンジニアリングツール１０は、プログラム表示編集部１１と、命令管理部１２と、プログラム記憶部１３と、プログラム変換部１４と、実行切替部１５と、ＰＬＣ通信部１６とを備えている。
【００２０】
プログラム表示編集部１１は、ＰＬＣ２０で実行されるプログラムコードを編集するエディタとしてのアプリケーションソフトである。ＰＬＣ２０やロボットを用いたＰＬＣシステムでは、シーケンスプログラムにラダー言語が用いられることが多い。以下では、シーケンスプログラムがラダープログラムである場合について説明する。
【００２１】
プログラム表示編集部１１は、受付部３１から入力されたユーザからの指示に基づいて、シーケンスプログラムの表示部３２への表示処理や編集処理などを実行する。プログラム表示編集部１１は、例えば、ユーザからの指示に応じたデバッグ専用命令をシーケンスプログラム内に挿入する。
【００２２】
プログラム表示編集部１１は、デバッグ用プログラムが選択された場合には、ＰＬＣ２０でデバッグ用プログラムが実行され、デバッグ用プログラムが選択されなかった場合には、ＰＬＣ２０でデバッグ用プログラムが実行されることなく正式プログラムが実行されるよう、正式プログラムとデバッグ用プログラムとを区別して編集する。
【００２３】
また、プログラム表示編集部１１は、ユーザから指定された正式プログラム内の回路を正式プログラムからデバッグ用プログラムに切替える。また、プログラム表示編集部１１は、デバッグ専用命令で作成されたデバッグ用プログラムを正式プログラムと区別して表示させる機能を有している。
【００２４】
図２は、全体プログラムの表示例を示す図である。プログラム表示編集部１１は、全体プログラムの少なくとも一部を表示部３２に表示させる。このとき、プログラム表示編集部１１は、デバッグ用プログラム４１と正式プログラムとを区別して表示させる。プログラム表示編集部１１は、例えば、デバッグ用プログラム４１と正式プログラムとを異なる色で表示させてもよいし、デバッグ用プログラム４１を所定の線などで囲ってもよい。プログラム表示編集部１１は、編集の完了した全体プログラムをプログラム記憶部１３に送る。
【００２５】
命令管理部１２は、プログラム表示編集部１１でシーケンスプログラム内に入力することのできる命令の一覧を記憶する。命令管理部１２は、正式プログラムで使用する正式命令と、デバッグ用プログラムで使用するデバッグ専用命令とを区別して管理する。命令管理部１２で管理されている命令は、ユーザからの指示に従ってプログラム表示編集部１１に送られる。また、命令管理部１２で管理されている命令は、プログラム変換部１４によって読み出される。
【００２６】
プログラム記憶部１３は、外部装置で作成された編集前の正式プログラムのプログラムコードやプログラム表示編集部１１で作成された全体プログラムのプログラムコードを記憶する。また、プログラム記憶部１３は、プログラム変換部１４で変換された全体プログラムの実行コードを記憶する。
【００２７】
プログラム変換部１４は、プログラム記憶部１３内にある全体プログラムのプログラムコードをＰＬＣ２０で実行可能な実行コードに変換する処理であるコンパイルを実行する。実行コードは、ＰＬＣ２０で実行する処理を並べたものであり、例えば、命令とそのオペランドからなるコマンドの列として表現される。
【００２８】
本実施の形態のプログラム変換部１４は、プログラム表示編集部１１が全体プログラムに挿入したデバッグ専用命令を、ＰＬＣ２０で実行可能なデバッグ専用命令に変換する機能を備えている。
【００２９】
プログラム変換部１４は、プログラムコードをＰＬＣ２０で実行可能な実行コードに変換する際に、命令管理部１２で管理されている命令を読み出す。そして、プログラム変換部１４は、読み出した命令が正式命令であるかデバッグ専用命令であるかに基づいて、プログラムコードを変換する。プログラム変換部１４は、各プログラムコードが正式命令とデバッグ専用命令の何れであるかが識別可能となるよう、プログラムコードを変換する。
【００３０】
プログラム変換部１４は、例えば、各プログラムコードに、正式命令であることを示す情報またはデバッグ専用命令であることを示す情報を付加しておく。プログラム変換部１４は、変換後の全体プログラムをプログラム記憶部１３およびＰＬＣ通信部１６に送る。
【００３１】
実行切替部１５は、ＰＬＣ２０の実行モードを切り替えるインタフェースの機能を有している。図３は、ＰＬＣの実行モードを切り替える画面の一例を示す図である。エンジニアリングツール１０は、ＰＬＣ２０の実行モードを切り替える際に用いるアイコンを、シーケンスプログラムの編集画面に表示させる。ＰＬＣ２０の実行モードを切り替える際に用いるアイコンは、通常モードを示すアイコンとデバッグモードを示すアイコンである。通常モードを示すアイコンおよびデバッグモードを示すアイコンは、シーケンスプログラムを編集する画面のツールバー上などに配置される。
【００３２】
通常モードを示すアイコンは、ＰＬＣ２０に正式プログラムを実行させる際に選択されるアイコンであり、デバッグモードを示すアイコンは、ＰＬＣ２０にデバッグ用プログラムを実行させる際に選択されるアイコンである。
【００３３】
実行切替部１５は、通常モードを示すアイコンが押されると、通常モードを指示する命令をＰＬＣ通信部１６に送る。実行切替部１５は、デバッグモードを示すアイコンが押されると、デバッグモードを指示する命令をＰＬＣ通信部１６に送る。
【００３４】
ＰＬＣ通信部１６は、プログラム変換部１４で変換された全体プログラムの実行コードをＰＬＣ２０に書き込む。また。ＰＬＣ通信部１６は、通常モードで動作させる命令またはデバッグモードで動作させる命令をＰＬＣ２０に送る。なお、以下の説明では、通常モードを指示する命令またはデバッグモードを指示する命令を、モード切替命令という場合がある。
【００３５】
ＰＬＣ２０は、ＰＬＣ通信部１６によって書き込まれた実行コードを実行するＨ／Ｗ（ハードウェア）である。ＰＬＣ２０は、プログラム実行部２１を備えている。プログラム実行部２１は、実行コードの処理を実行するＣＰＵ（Central  Processing  Unit）などである。本実施の形態のプログラム実行部２１は、モード切替命令に従って、全体プログラムを実行するモードを、デバッグモードと通常モードとの何れかに切替える。プログラム実行部２１は、モード切替命令に従って、デバッグモードと通常モードとの何れかで全体プログラムを実行する。プログラム実行部２１は、デバッグモード時にはデバッグ専用命令を実行し、通常モード時にはデバッグ専用命令を実行しない。なお、プログラム実行部２１は、Ｓ／Ｗで実現されたシミュレータでもよい。
【００３６】
つぎに、デバッグシステム１が実行するデバッグの処理手順について説明する。図４は、デバッグの処理手順を示すフローチャートである。正式プログラムが作成されると、この正式プログラムが受付部３１を介してプログラム記憶部１３に書き込まれる。そして、プログラム変換部１４は、プログラム記憶部１３内にある正式プログラムのプログラムコードを、ＰＬＣ２０で実行可能な実行コードに変換する（ステップＳ１０）。プログラム記憶部１３は、変換後の実行コードを記憶しておく。
【００３７】
ＰＬＣ通信部１６は、プログラム変換部１４で変換された正式プログラムの実行コードをＰＬＣ２０に書き込む（ステップＳ２０）。この後、ＰＬＣ２０のプログラム実行部２１は、正式プログラムを用いてＰＬＣ２０を動作させる。そして、ＰＬＣ２０の動作確認が行なわれることにより、正式プログラムの不具合が検査される（ステップＳ３０）。
【００３８】
正式プログラムの不具合が検出されると、正式プログラムのうち動作確認したい箇所にデバッグ専用命令を用いたデバッグ用プログラムが追加される。このデバッグ用プログラムは、正式プログラム内に挿入される。例えば、常時ＯＮにしたい回路の条件部に「ＯＲ  ＴＲＵＥ」の回路要素が挿入される。そして、デバッグ用プログラムが挿入された正式プログラムが、全体プログラムとしてプログラム記憶部１３に書き込まれる。
【００３９】
プログラム変換部１４は、プログラム記憶部１３内にあるデバッグ用プログラムのプログラムコードを、ＰＬＣ２０で実行可能な実行コードに変換する（ステップＳ４０）。プログラム記憶部１３は、変換後の実行コードを記憶しておく。
【００４０】
図５は、デバッグ用プログラムの第１の作成例を説明するための図である。図５では、正式プログラムで回路が作成された後、選択された範囲の正式プログラムがデバッグ用プログラムに変更される場合の操作と画面のイメージを示している。
【００４１】
正式プログラムが配置されている回路領域の中から、デバッグ用プログラムに切替えたい領域４２がユーザによって選択されると（ＳＴ１）、プログラム表示編集部１１は、選択された領域４２を強調表示する。
【００４２】
この後、ユーザから表示切替の指示が受付部３１に入力されると、プログラム表示編集部１１は、領域４２を正式プログラムからデバッグ用プログラムに切り替える（ＳＴ２）。さらに、プログラム表示編集部１１は、領域４２内に、デバッグ用プログラムが設定される領域であることを示す情報を表示させる。プログラム表示編集部１１は、例えば、「＃ＤＥＢＵＧ」などの文字を領域４２内に表示させる（ＳＴ３）。これにより、ユーザは容易にデバッグ用プログラムを作成することができる。
【００４３】
図６は、デバッグ用プログラムの第２の作成例を説明するための図である。図６では、デバッグ専用命令が入力された場合にプログラム表示編集部１１が表示させる画面の例を示している。
【００４４】
プログラム表示編集部１１は、全体プログラムを表示させた後、全体プログラムの編集を受け付ける状態になる。ユーザによって全体プログラム内の何れかの回路位置と、デバッグ専用命令とが入力されると、プログラム表示編集部１１は、入力されたデバッグ専用命令を全体プログラム内の指定された回路位置に設定する（ＳＴ１１）。
【００４５】
デバッグ専用命令は、例えば、ＯＲ命令に相当する「ＯＲ＿Ｄ  ＴＲＵＥ」などであり、正式命令に「＿Ｄ」の文字が付加されることによって、正式命令と区別可能なよう構成されている。デバッグ専用命令が入力されてユーザによって確定されると、プログラム表示編集部１１は、入力されたデバッグ専用命令をデバッグ用プログラムとして表示する（ＳＴ１２）。これにより、ユーザは、デバッグ用プログラムと正式プログラムとを容易に判別できる。
【００４６】
プログラム変換部１４がデバッグ用プログラムの変換を実行した後、ＰＬＣ通信部１６は、変換されたデバッグ用プログラムの実行コードをＰＬＣ２０に書き込む。これにより、プログラム変換部１４で変換された、デバッグ用プログラムの実行コードと正式プログラムの実行コードと、がＰＬＣ２０に書き込まれた状態となる。このように、ＰＬＣ通信部１６は、デバッグ用プログラムの実行コードおよび正式プログラムの実行コードを、ＰＬＣ２０に書き込むことによって、全体プログラムの実行コードを、ＰＬＣ２０に書き込む（ステップＳ５０）。
【００４７】
この後、実行モードを切り替えるためのアイコンがユーザによって選択されると、実行切替部１５は、選択されたアイコンの種類を判別する（ステップＳ６０）。デバッグモードを示すアイコンが選択された場合（ステップＳ６０、デバッグモード）、実行切替部１５は、ＰＬＣ２０の実行モードをデバッグモードに切り替える（ステップＳ７０）。具体的には、ＰＬＣ通信部１６が、デバッグモードを指示するモード切替命令を、プログラム実行部２１に送る。
【００４８】
この後、プログラム実行部２１は、デバッグ用プログラムを用いてＰＬＣ２０を動作させる。具体的には、プログラム実行部２１は、デバッグ用プログラムと正式プログラムとを含む全体プログラムを用いてＰＬＣ２０を動作させる。これにより、ＰＬＣ２０の動作確認が行われる（ステップＳ８０）。そして、ＰＬＣ２０の動作確認が行われることによって、正式プログラムの不具合が検査される（ステップＳ９０）。
【００４９】
正式プログラムに不具合がある場合（ステップＳ９０、Ｙｅｓ）、正式プログラムが修正され、修正後の正式プログラムがプログラム変換部１４で実行コードに変換される（ステップＳ１００）。
【００５０】
具体的には、プログラム表示編集部１１が、正式プログラムを表示部３２に表示させるとともに、ユーザからの指示に従って正式プログラムを変更する。そして、プログラム記憶部１３は、正式プログラムが変更された全体プログラムを記憶しておく。この後、プログラム変換部１４は、全体プログラムのうち、変更された部分を、ＰＬＣ２０で実行可能な実行コードに変換する。プログラム記憶部１３は、変換後の実行コードを記憶しておく。
【００５１】
そして、ＰＬＣ通信部１６は、プログラム変換部１４で変換された正式プログラムの実行コードをＰＬＣ２０に書き込む。ここでは、全体プログラムのうち、変更された部分の実行コードが、ＰＬＣ２０に書き込まれる。
【００５２】
これにより、プログラム変換部１４で変換された、デバッグ用プログラムの実行コードと、正式プログラムの実行コードと、がＰＬＣ２０に書き込まれた状態となる。この結果、全体プログラムの実行コードがＰＬＣ２０に書き込まれる（ステップＳ５０）。この後、実行モードを切り替えるためのアイコンがユーザによって選択される。実行切替部１５は、選択されたアイコンの種類を判別する（ステップＳ６０）。
【００５３】
また、ステップＳ９０の処理において、正式プログラムに不具合がない場合（ステップＳ９０、Ｎｏ）、実行モードを切り替えるためのアイコンがユーザによって選択される。実行切替部１５は、選択されたアイコンの種類を判別する（ステップＳ６０）。
【００５４】
デバッグモードを示すアイコンが選択された場合（ステップＳ６０、デバッグモード）、デバッグシステム１では、ステップＳ７０〜Ｓ１００，Ｓ５０，Ｓ６０の一連の処理またはステップＳ７０〜Ｓ９０，Ｓ６０の一連の処理が行われる。
【００５５】
一方、通常モードを示すアイコンが選択された場合（ステップＳ６０、通常モード）、実行切替部１５は、ＰＬＣ２０の実行モードを通常モードに切り替える（ステップＳ１１０）。具体的には、ＰＬＣ通信部１６が、通常モードを指示するモード切替命令を、プログラム実行部２１に送る。
【００５６】
この後、プログラム実行部２１は、正式プログラムを用いてＰＬＣ２０を動作させる。具体的には、プログラム実行部２１は、全体プログラムのうちデバッグ用プログラムを用いることなく正式プログラムのみを用いてＰＬＣ２０を動作させる。これにより、デバッグシステム１では、正式プログラムを用いたＰＬＣ２０の動作が実行される。
【００５７】
ここで、デバッグ専用命令の構成例について説明する。デバッグ専用命令は、プログラム実行部２１で実行させるＣＰＵ命令であり、所定のビット数（例えば、３２ビット）で構成されている。本実施の形態では、デバッグモードを示す情報がデバッグ専用命令内に格納されている。また、通常モードを示す情報が正式命令内に格納されている。
【００５８】
デバッグ専用命令および正式命令には、それぞれ、アドレス、ベース番号、命令の実行条件、命令、命令の種別などが格納されている。アドレスは、例えば、指定ベースからのオフセット値である。例えば、デバッグモードまたは通常モードを示すビットが、命令の実行条件内に追加されている。
【００５９】
具体的には、デバッグ専用命令内の実行条件には、デバッグモードを示すビットが格納され、正式命令内の実行条件には、通常モードを示すビットが格納されている。そして、プログラム実行部２１は、デバッグモードまたは通常モードを示すビットに基づいて、動作モードを切り替える。
【００６０】
また、アドレスを示すビットのうちの所定ビット（例えば、上位１ビット）に、デバッグモードまたは通常モードを示す情報が格納されていてもよい。例えば、デバッグシステム１では、0x8000〜0xFFFFをデバッグ専用命令に設定しておく。これにより、プログラム実行部２１は、アドレスに基づいて、動作モードを切り替える。
【００６１】
ＣＰＵ命令内にデバッグモードを示す情報が格納されている場合、このＣＰＵ命令は、デバッグ専用命令なので、プログラム実行部２１は、デバッグ用プログラムを用いてＰＬＣ２０を動作させる。
【００６２】
また、ＣＰＵ命令内に通常モードを示す情報が格納されている場合、このＣＰＵ命令は、正式命令なので、プログラム実行部２１は、正式プログラムを用いてＰＬＣ２０を動作させる。本実施の形態のデバッグシステム１は、通常モードを実行する際にはデバッグ用プログラムを用いないので、通常モードの実行動作に影響を与えることはない。
【００６３】
なお、デバッグモードを示す情報をＣＰＵ命令内に格納しておく場合には、通常モードを示す情報をＣＰＵ命令内に格納しておかなくてもよい。この場合、プログラム実行部２１は、デバッグモードを示す情報がＣＰＵ命令内に格納されていなければ、このＣＰＵ命令は正式命令であると判断する。
【００６４】
また、通常モードを示す情報をＣＰＵ命令内に格納しておく場合には、デバッグモードを示す情報をＣＰＵ命令内に格納しておかなくてもよい。この場合、プログラム実行部２１は、通常モードを示す情報がＣＰＵ命令内に格納されていなければ、このＣＰＵ命令はデバッグ専用命令であると判断する。
【００６５】
図７は、プログラム編集装置のハードウェア構成を示す図である。プログラム編集装置２は、ＣＰＵ９１、ＲＯＭ（Read  Only  Memory）９２、ＲＡＭ（Random  Access  Memory）９３、表示部３２、受付部３１を有している。プログラム編集装置２では、これらのＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、表示部３２、受付部３１がバスラインＢを介して接続されている。
【００６６】
ＣＰＵ９１は、コンピュータプログラムである編集プログラム９０を用いて正式プログラムの編集を行う。表示部３２は、液晶モニタなどの表示装置であり、ＣＰＵ９１からの指示に基づいて、正式プログラム、デバッグ用プログラム、全体プログラム、ＰＬＣ２０の動作状態などを表示する。受付部３１は、マウスやキーボードを備えて構成され、ユーザから外部入力される指示情報であるプログラム編集に必要なパラメータ等を受け付ける。受付部３１が受け付けた指示情報は、ＣＰＵ９１へ送られる。
【００６７】
編集プログラム９０は、ＲＯＭ９２内に格納されており、バスラインＢを介してＲＡＭ９３へロードされる。ＣＰＵ９１はＲＡＭ９３内にロードされた編集プログラム９０を実行する。具体的には、プログラム編集装置２では、ユーザによる受付部３１への指示入力に従って、ＣＰＵ９１がＲＯＭ９２内から編集プログラム９０を読み出してＲＡＭ９３内のプログラム格納領域に展開して各種処理を実行する。ＣＰＵ９１は、この各種処理に際して生じる各種データをＲＡＭ９３内に形成されるデータ格納領域に一時的に記憶させておく。
【００６８】
プログラム編集装置２で実行される編集プログラム９０は、プログラム表示編集部１１と、命令管理部１２と、プログラム変換部１４と、実行切替部１５と、ＰＬＣ通信部１６と、を含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。なお、命令管理部１２、プログラム変換部１４、実行切替部１５、ＰＬＣ通信部１６の各機能は、編集プログラム９０とは、異なる別のプログラムに格納しておいてもよい。
【００６９】
このように、デバッグシステム１では、デバッグ作業中の正式プログラムとデバッグ用プログラムとの実行切替を１つの操作で行うことができる。このため、シーケンスプログラムの修正、変換、ＰＬＣ２０への書込み操作を繰り返す必要がなくなる。この結果、デバッグ時の作業であるプログラム作成や設定等の作業量を削減できる。
【００７０】
また、ＰＬＣ２０を動作させるために、デバッグ終了後に、デバッグ用プログラムを削除すること、デバッグ用プログラムが削除された正式プログラムを変換すること、ＰＬＣ２０への書込み処理を行うことが、不要となる。したがって、デバッグ終了後の正式プログラムへの切替えの作業量を削減できる。また、デバッグ用プログラムの消し忘れなどによる品質劣化を防止できるので、シーケンスプログラムの品質を維持できる。
【００７１】
また、正式プログラムとデバッグ用プログラムとは、１つのオブジェクトである。そして、全体プログラム中の命令を実行するか否かによって、通常モード時とデバッグモードとを切り替えている。このため、正式プログラムとデバッグ用プログラムとを別々に生成する必要はない。
【００７２】
なお、プログラム変換部１４は、正式プログラムとデバッグ用プログラムとを、まとめて同時に変換してもよい。また、ＰＬＣ通信部１６は、正式プログラムとデバッグ用プログラムとを、まとめて同時にプログラム実行部２１に書き込んでもよい。
【００７３】
このように実施の形態によれば、デバッグ作業における一連の操作数を減らすことができるので、シーケンスプログラムのデバッグ作業の工程数を削減することができる。したがって、短時間で容易にデバッグを行うことができるシーケンスプログラムを作成することが可能になる。
【産業上の利用可能性】
【００７４】
以上のように、本発明に係るエンジニアリングツール、プログラム編集装置およびプログラム編集システムは、シーケンスプログラムの作成に適している。
【符号の説明】
【００７５】
１  デバッグシステム、２  プログラム編集装置、１０  エンジニアリングツール、１１  プログラム表示編集部、１２  命令管理部、１３  プログラム記憶部、１４  プログラム変換部、１５  実行切替部、１６  ＰＬＣ通信部、２０  ＰＬＣ、２１  プログラム実行部、３１  受付部、３２  表示部、４１  デバッグ用プログラム。
【要約】
エンジニアリングツール１０が、実際の製品として動作させられる正式プログラムの動作確認時に用いられるデバッグ用プログラムが選択された場合には、コントローラでデバッグ用プログラムが実行され、かつデバッグ用プログラムが選択されなかった場合には、コントローラでデバッグ用プログラムが実行されることなく正式プログラムが実行されるよう、正式プログラムとデバッグ用プログラムとを区別して編集するプログラム表示編集部１１を備える。【図１】
0005859173.tif 000002
【図２】
0005859173.tif 000003
【図３】
0005859173.tif 000004
【図４】
0005859173.tif 000005
【図５】
0005859173.tif 000006
【図６】
0005859173.tif 000007
【図７】
0005859173.tif 000008