(57)【要約】【課題】制御プログラムのモニタにおいて、容易に表示させる所望の回路を選択する。【解決手段】制御プログラム実行部２２ａは、予め、ラダープログラムにおいて各ステップの開始を示す命令（オペコード）であるＳＯＲ命令に続くルーチンの先頭を示すオペランドと、そのオペランドを特定するスタートアドレス（ルーチンの先頭アドレス）とを対応付けた対応テーブルを作成する。ラダーモニタ部２２ｂは、上記の対応テーブルを参照して、各ルーチンの先頭のルーチン開始部に付された名称のリストを、ＨＭＩ制御部２１に指示してラダーモニタ画面上に表示させる。ユーザが表示されたリストから所望のオペランドを選択すると、ラダーモニタ部２２ｂは、選択されたオペランドに対応するスタートアドレスで特定されるルーチンの部分を、ＨＭＩ制御部２１に指示してラダーモニタ画面に表示させる。【選択図】図１
2007122524.tif 000002
【特許請求の範囲】
【請求項１】
制御の手順を規定する制御プログラムの実行状況を表示する制御プログラムモニタ装置において、
前記制御プログラムから各ルーチンの先頭を示すルーチン開始部の名称のリストを作成して制御プログラムのモニタ画面に表示させるリスト作成手段と、
表示された前記リストからルーチン開始部の名称が選択されると、前記制御プログラムを当該ルーチン開始部から前記モニタ画面に表示させるルーチン選択手段とを備えていることを特徴とする制御プログラムモニタ装置。
【請求項２】
前記制御プログラムの実行に先立って、ルーチンの先頭を特定するために、前記制御プログラムにおける各ステップの前記ルーチン開始部と、前記制御プログラムが実行時に格納されるメモリ領域において前記ルーチン開始部を格納するアドレスとを対応付ける対応付け手段を備え、
前記リスト作成手段は、前記ルーチン開始部と前記アドレスとの対応関係に基づいて、有効な前記ルーチン開始部を抽出することによりリストを作成することを特徴とする請求項１に記載の制御プログラムモニタ装置。
【請求項３】
リスト作成手段は、前記モニタ画面に表示された前記制御プログラムにおける前記ルーチン開始部への前記モニタ画面上のタッチ操作によって前記リストを表示させることを特徴とする制御プログラムモニタ装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の制御プログラムモニタ装置を動作させるモニタプログラムであって、コンピュータを前記各手段として機能させるためのモニタプログラム。
【請求項５】
請求項４に記載のモニタプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御手順を規定する制御プログラムの実行状況をモニタする制御プログラムモニタ装置の改良に関するものである。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（以降、ＰＬＣと称する）などと呼ばれる制御装置は、シーケンス制御をはじめとする各種制御を実現するために、ＣＰＵおよびメモリを中心とするハードウェアの部分と、ターゲットシステムの制御を司るソフトウェアの部分とを備えている。ソフトウェアの部分は、ＰＬＣを設計当初の制御システム通りに動作させるためのシーケンス制御フローの設計、その制御フローの命令語への変換、命令語のメモリへの書き込みなどを含んでいる。一般に、この一連の作業をプログラミングと称している。
【０００３】
このようなプログラミングにおいては、コンピュータの専門知識を持たなくても簡単にプログラム作成ができるように、独自の言語を用いており、利用者に使いやすい各種のプログラミング言語が次々と開発されるようになった。現在、ＩＥＣ（International ElectrotechnicalCommission）において、標準のプログラミング言語が制定されている（ＩＥＣ 6 1131-3 ）。それは、ＳＦＣ（Sequential Function Chart）、ＬＤ（Ladder Diagram）、ＩＬ（Instruction List）、ＦＢＤ（Function Block Diagram）およびＳＴ（Structured Text）の５言語である。
【０００４】
上記のように、各種のプログラミング言語を用いてプログラム開発を行うことができるように環境が整えらている。例えば、ラダー図（ＬＤ）は、リレー記号を用いて比較的容易にラダー回路を設計することができるので従来から広く普及しており、現在でも最もよく用いられているプログラミング言語である。このようなプログラミング言語によるプログラミング作業において用いられるプログラミングツールとしては、ラダーエディタなどのプログラミングソフトウェアが普及してきている。このソフトウェアは、パーソナルコンピュータなどのコンピュータ装置において、ラダー図のような記号化された命令を含む形態でプログラムを容易に作成および編集することできる。
【０００５】
作成されたプログラムは、当初の設計通りに正しく動作させるために、通常、デバッグで修正や変更が施されることによって完成される。デバッグにおいては、ＰＬＣにデバイスが接続された状態でプログラムを実行させて、設計通りに機器が動作しているかどうかを確認する。例えば、ラダープログラムがどのように実行されているかを確認する手法として、ラダーモニタのシステムが知られている（特許文献１）。
【０００６】
このようなシステムでは、ＰＬＣの制御機能を有する表示器（プログラマブル表示器）において、表示器の表示機能を利用してモニタ画面にラダープログラムの実行状況を表示するように構成されている。
【０００７】
また、モニタ画面においてラダープログラムの所望の回路を表示させるには、通常、画面のスクロールや指定した行の番号（ステップ番号）へのジャンプなどの手段が用いられる。また、ラダープログラムにおける所望箇所の表示は、特許文献２に開示されているように、命令語や変数の検索範囲とする条件を指定して検索を行うことによっても可能である。
【特許文献１】特開２０００−２０１１３号公報（２０００年１月２１日公開）
【特許文献２】特開２００４−５０６０号公報（２００４年１月８日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、画面のスクロールを用いる方法では、所望の回路がどの行に作成されていたのかわらなければ、その回路が確認できるまで、スクロールをし続けなければならない。このため、所望の回路が大きい番号の行に作成されていた場合、その行を見つけ出すのに手間がかかる。また、行番号を指定してジャンプする方法でも、所望の回路がどの行に作成されていたのかわらなければ、指定できないという不都合がある。
【０００９】
一方、命令語や変数を検索する方法では、所望の回路以外の回路にも同じ命令語や変数を多数含んでいる場合、所望の回路に含まれる命令語や変数にたどり着くまで検索操作を繰り返すことがある。
【００１０】
このように、従来の方法では、所望の回路が作成された行の位置をユーザが記憶していなければ、当該回路を表示するために手間を要する可能性がある。
【００１１】
本発明は、上記の問題点に鑑みてなされたものであり、制御プログラムのモニタにおいて、容易に表示させる所望の回路を選択することを目的としている。
【課題を解決するための手段】
【００１２】
本発明に係る制御プログラムモニタ装置は、制御の手順を規定する制御プログラムの実行状況を表示する制御プログラムモニタ装置において、上記の課題を解決するために、前記制御プログラムから各ルーチンの先頭を示すルーチン開始部のリストの名称を作成して制御プログラムのモニタ画面に表示させるリスト作成手段と、表示された前記リストからルーチン開始部の名称が選択されると、前記制御プログラムを当該ルーチン開始部から前記モニタ画面に表示させるルーチン選択手段とを備えていることを特徴としている。
【００１３】
上記の構成では、リスト作成手段によって作成されたリストから所望のルーチン開始部を選択することによって、ルーチン選択手段によって、制御プログラムが選択されたルーチン開始部からモニタ画面に表示される。これにより、ユーザは、表示させたい回路を含むルーチンのルーチン開始部をリストによって選択して、特定されたルーチンを表示させて選択範囲を絞り込んだ上で、前述の従来のサーチ方法を用いて所望の回路を表示させる。それゆえ、全体として所望の回路を表示させるまでの手間を軽減することができる。
【００１４】
前記の制御プログラムモニタ装置は、前記制御プログラムの実行に先立って、ルーチンの先頭を特定するために、前記制御プログラムにおける各ステップの前記ルーチン開始部と、前記制御プログラムが実行時に格納されるメモリ領域において前記ルーチン開始部を格納するアドレスとを対応付ける対応付け手段を備え、前記リスト作成手段が、前記ルーチン開始部と前記アドレスとの対応関係に基づいて、有効な前記ルーチン開始部を抽出することによりリストを作成することことが好ましい。この構成では、リスト作成手段が、対応付け手段によって、制御プログラムの実行においてルーチン開始部を特定するために予め作成されたルーチン開始部とルーチン開始部を格納するアドレスとの対応付けを利用してリストを作成する。これにより、制御プログラムの全体に対して検索を行う従来の方法に比べて、演算量を大幅に削減することができる。それゆえ、制御プログラムモニタ装置の演算処理による負担を軽減することができる。
【００１５】
この制御プログラムモニタ装置においては、リスト作成手段は、前記モニタ画面に表示された前記制御プログラムにおける前記ルーチン開始部への前記モニタ画面上のタッチ操作によって前記リストを表示させることが好ましい。これにより、リストを表示させるための操作ボタンなどをモニタ画面に設ける必要がなく、モニタ画面における操作ボタン群のレイアウトの自由度を向上させることができる。
【００１６】
本発明のモニタプログラムは、前記のいずれかの制御プログラムモニタ装置を動作させるモニタプログラムであって、コンピュータを前記各手段として機能させる。また、この制御モニタプログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供される。これにより、前記の制御システムと同様、ラダーモニタ画面上で選択されたラダー記号に応じたデバイス情報を表示することができる。また、このエディタプログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供される。これにより、前記の制御プログラムモニタ装置において、所望の回路を表示させるまでの手間を軽減することをソフトウエア的に実現することができる。
【発明の効果】
【００１７】
本発明に係る制御プログラムモニタ装置は、上記のように、制御プログラムにおける各ルーチンの先頭を表すルーチン開始部の名称のリストをモニタ画面上で表示して、そのリストから選択されルーチンをモニタ画面に表示させることにより、ルーチンを特定した上で所望の回路を捜すので、所望の回路にたどり着くまでの時間を短縮することができる。したがって、本発明を採用することにより、制御プログラムのデバッグ作業を効率的に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態について図１ないし図５に基づいて説明すると以下の通りである。
【００１９】
図１に示すように、本実施形態に係る制御システム１は、プログラマブル表示器２と、ＰＬＣ３と、デバイス４とを備えている。
【００２０】
プログラマブル表示器２は、ＵＳＢケーブルなどからなる転送ケーブル６を介してエディタコンピュータ５と接続されている。転送ケーブル６は、後述するようにエディタコンピュータ５で作成された画面ファイル、ラダーファイルおよびラダーモニタファイルをプログラマブル表示器２に転送するためのケーブルである。
【００２１】
エディタコンピュータ５は、画面作成ソフトウエアおよびラダープログラム作成ソフトウエアがインストールされており、後述するようにして作成された画面ファイル、ラダーファイルおよびラダーモニタファイルを転送するときに転送ケーブル６を介してプログラマブル表示器２と接続されるが、通常、プログラマブル表示器２とＰＬＣ３とが通信を行う制御システム１の運転時には、プログラマブル表示器２と切り離される。
【００２２】
ＰＬＣ３は、ユーザが作成した制御プログラムとしてのシーケンスプログラム（ラダープログラムなど）にしたがって、例えば、数十ｍｓなどの予め定められたスキャンタイム毎に、入力ユニットを介して入力用のデバイス４の状態を取り込むとともに、出力用のデバイス４に制御指示を与える。本実施の形態においては、制御プログラムとしてラダープログラムを用いた例について説明する。
【００２３】
入力用のデバイス４としては、センサ（温度センサ、光センサなど）、スイッチ（押ボタンスイッチ、リミットスイッチ、圧力スイッチなど）のような機器が用いられる。出力用のデバイス４としては、アクチュエータ、リレー、電磁弁、表示器などが用いられる。これらのデバイス４は、製造ラインなどの各種のターゲットシステムの所要各部に配置される。
【００２４】
なお、デバイス４は、後述するタッチパネル２６などの入力装置から手動で入力されたデータを格納するためのデータメモリ（図示せず）における特定の領域であってもよい。また、デバイス４は、ＰＬＣ３内のメモリにおける特定の領域であってもよい。
【００２５】
ＰＬＣ３内のメモリ（デバイスメモリ）は、デバイス４の状態（デバイス４からの出力値やデバイス４への設定値）を示すデータ（ワードデータやビットデータ）を、デバイスアドレスで特定される領域に格納している。メモリにおいて、ワードデバイスは、入出力されるデータが数値のようなワードデータを格納する領域として設定され、ワードアドレス（デバイスアドレス）で指定される。また、ビットデバイスは、オン・オフ状態のようなビットデータを格納する領域として設定され、ビットアドレス（デバイスアドレス）で設定される。このような設定により、メモリ内の任意のワードデバイスまたはビットデバイスをデバイスアドレスを指定してアクセスするだけでデバイス４を制御し、またはその状態に関する情報を個別に取り出すことができる。
【００２６】
以降の説明では、デバイスアドレスを適宜、アドレスと称する。
【００２７】
プログラマブル表示器２は、ＣＰＵなどの演算処理装置を備えており、ユーザが作成した入力操作および表示用の画面データを表示することによりプログラマブル表示器特有の操作機能および表示機能を実現する専用コンピュータである。制御システム１のＨＭＩ機器として好適に使用されるプログラマブル表示器２は、後述する処理指示語（タグ）を組み合わせて決定される画面データに基づいて、デバイス４の状態を画面表示する際の動作や、画面への操作に応じてデバイス４の状態を制御する際の動作を特定する。
【００２８】
このプログラマブル表示器２は、シリアルケーブル７を介したＰＬＣ３との通信により、ＰＬＣ３を介して表示画面に状態を表示する各デバイス４の状態を取得し、例えば、後述のディスプレイ２４に各デバイス４の状態を表示する機能を有する。また、プログラマブル表示器２は、後述のタッチパネル２６への操作に応じて、デバイス４へデバイスの状態制御を指示する機能を有する。
【００２９】
プログラマブル表示器２は、操作機能および表示機能だけではなく、ＰＬＣの制御機能を備えている。これにより、プログラマブル表示器２は、ＰＬＣ３を介さずに直接デバイス４を制御することができる。
【００３０】
なお、デバイス４の状態の取得／変更は、その都度指示してもよいし、プログラマブル表示器２内にキャッシュを用意し、取得／変更時には、キャッシュへアクセスするとともに、所定の時間間隔毎や所定のイベント毎に通信してアドレスの実体と同期を取ってもよい。
【００３１】
プログラマブル表示器２は、上記の機能を実現するために、ＨＭＩ制御部２１と、コントローラ部２２と、プログラムメモリ２３と、コントロールメモリ２４と、ディスプレイ２５と、タッチパネル２６、インターフェース部（図中、Ｉ／Ｆ）２７，２８と、Ｉ／Ｏ部２９とを備えている。以下、プログラマブル表示器２の主要各部について詳細に説明する。
【００３２】
ディスプレイ２５は、プログラマブル表示器２を薄型に構成するために、液晶ディスプレイや、ＥＬディスプレイや、プラズマディスプレイのような平板型ディスプレイが好適に用いられる。タッチパネル２６は、ディスプレイ２５の表示画面上でタッチ入力を行うために設けられている入力装置である。
【００３３】
インターフェース部２７は、プログラマブル表示器２がエディタコンピュータ５との間の通信を行うための通信制御部であり、転送ケーブル６に接続されている。一方、インターフェース部２８は、プログラマブル表示器２がＰＬＣ３との間のシリアル通信を行うための通信制御部であり、シリアルケーブル７に接続されている。
【００３４】
Ｉ／Ｏ部２９は、Ｉ／Ｏ制御インターフェース部２９ａおよびＩ／Ｏユニット２９ｂからなる。
【００３５】
Ｉ／Ｏユニット２９ｂは、デバイス４が接続可能となるように、多数の入出力端子、入出力回路などを備えている。このＩ／Ｏユニット２９ｂは、接続される通信システムに応じて異なる機種が、プログラマブル表示器２の本体に着脱可能に取り付けられる。例えば、Ｉ／Ｏユニット２９ｂとしては、デジタルデータの入出力を行うためのＤＩＯユニットや、高速通信を行うためのリモートＩ／Ｏを構成するFlex NetworkＩ／Ｆユニットに接続される各種Ｉ／Ｏユニット（アナログ／デジタル変換ユニット、高速カウンタユニットなど）が用いられる。プログラマブル表示器２には、予め装着可能な動作を保証しているＩ／Ｏユニット２９ｂが規定されている。
【００３６】
Ｉ／Ｏ制御インターフェース部２９ａは、コントローラ部２２と、Ｉ／Ｏユニット２９ｂとの間の信号の授受を仲介するインターフェース回路であって、入出力メモリ、Ｄ／Ａ変換器、Ａ／Ｄ変換器などを備えている。
【００３７】
ＨＭＩ制御部２１は、ＨＭＩ制御プログラムをプログラマブル表示器２が備えるＣＰＵなどの演算処理手段に実行させることにより実現される機能ブロックである。このＨＭＩ制御部２１は、後述するユーザ画面やラダーモニタ画面の表示制御、ユーザ画面を介した入力操作の制御、ＰＬＣ３などの接続機器との通信の制御といったＨＭＩ機能を果たす。なお、これらのＨＭＩ機能については、後に詳しく説明する。
【００３８】
ユーザ画面のデータである画面データは、ユーザ画面に関連して行われる各種の処理を規定する処理指示語（タグ）を含んでいる。この処理指示語は、ベース画面上で実行されるべき事象毎に作成されており、基本的には、表示処理を実行すべきベース画面のファイル番号と、このベース画面上で実行すべき動作内容を特定する事象名と、各実行事象毎に参照される１または複数のデータからなる参照情報とを一組として備えている。
【００３９】
本実施の形態に係るプログラマブル表示器２では、上記のタグとして、ベース画面上の領域（表示範囲）とその領域への表示に対応するデバイスのデバイスアドレスとの対応を示す表示タグ、画面上の領域（入力範囲）とその領域へのタッチ入力に対応するアドレスとの対応を示すタッチ入力タグおよび後述するラダーモニタ画面表示用のタグ（ラダー状態変更用タグ）が規定されている。さらに、本実施形態では、各タグは、複数のユーザ画面の少なくとも１つと関連付けることができる。
【００４０】
ＨＭＩ制御部２１は、デバイス４の状態を取得してユーザ画面に表示する場合、ＰＬＣ３内のメモリに設定される前述のビットデバイスまたはワードデバイスが示す状態情報のうち、必要な情報を適時にデータメモリに読み込む一方、上記の表示タグを繰り返し読み出して、表示タグで指定された表現形式のパーツを読み出した値に応じた形態で画面上の指定された領域へ表示する。また、ＨＭＩ制御部２１は、プログラマブル表示器２が制御装置（ＰＬＣ）として動作する場合、ＰＬＣ３のメモリの代わりにデータメモリに設定される前述のビットデバイスまたはワードデバイスが示す状態情報のうちの必要な情報を参照しながら、上記の表示タグを繰り返し読み出して、表示タグで指定された表現形式のパーツを読み出した値に応じた形態で画面上の指定された領域へ表示する。これによって、ビットデバイスまたはワードデバイスの状態の変化に応じて変化する表示動作が実行され、ＰＬＣ３またはデバイス４から取得したデバイス４の状態がユーザ画面におけるパーツの表示状態に反映される。
【００４１】
ＨＭＩ制御部２１は、ユーザ画面上でのタッチ入力によってデバイス４に制御指示を与える場合、前述のタッチ入力タグを繰り返し読み出して、タッチ入力タグにおける参照情報に含まれる、ユーザ画面の所定の領域におけるタッチ位置を特定するための、タッチによる入力が有効となる有効入力座標範囲、およびタッチパネル２６の操作（数値入力操作、ＯＮ／ＯＦＦ操作など）を特定する事象名などで特定される内容の動作をＰＬＣ３内のメモリにビットデバイスまたはワードデバイスとして設定する。また、ＨＭＩ制御部２１は、プログラマブル表示器２が制御装置として動作する場合、タッチ入力タグを繰り返し読み出して、タッチ入力タグにおける参照情報に含まれる有効入力座標範囲、およびタッチパネル２６の操作を特定する事象名などで特定される内容の動作を、ＰＬＣ３のメモリの代わりにデータメモリにビットデバイスまたはワードデバイスとして設定する。これによって、ビットデバイスまたはワードデバイスの状態の変化に応じて変化するＰＬＣ３またはプログラマブル表示器２において、設定された制御指示が上記の動作として実行され、デバイス４の状態が変化する。
【００４２】
また、ＨＭＩ制御部２１は、コントローラ部２２のラダーモニタ部２２ｂから与えられるラダーモニタ画面を表示する。
【００４３】
コントローラ部２２は、ＰＬＣ機能を果たす部分であり、制御機能プログラムをプログラマブル表示器２が備える前述の演算処理手段に実行させることによって実現される機能ブロックである。このコントローラ部２２は、制御プログラム実行部２２ａと、ラダーモニタ部２２ｂとを有している。
【００４４】
制御プログラム実行部２２ａは、プログラムメモリ２３からラダーファイルを読み出してプログラム実行メモリ２４ａにラダープログラムとして展開する。この制御プログラム実行部２２ａは、プログラム実行メモリ２４ａから読み出したラダープログラムを数十ｍｓなどの予め定められた周期でスキャンして、ラダー命令を一つずつ実行していく。
【００４５】
ラダープログラムがプログラム実行メモリ２４ａに展開されている状態では、各命令（ＬＤ、ＡＮＤ、ＯＲなどのニーモニック形式の命令）が一つずつアドレスで指定される領域に格納されている。そして、各命令（オペコード）は、ジャンプ命令、ＣＡＬＬ命令、ＲＥＴ命令などに続く命令を除いてアドレスの順番に一つずつ実行される。また、命令としては、通常のラダー命令以外に、各ステップの開始を示す命令（母線からの分岐を示す命令）であるＳＯＲ命令が用意されており、各ステップにＳＯＲ命令に続いてルーチンの開始を示すルーチン開始部（ルーチン開始命令）が含まれている場合は、そのルーチン開始部がＳＯＲ命令のオペランドとしてＳＯＲ命令と併せてアドレスに格納されている。
【００４６】
また、対応付け手段としての制御プログラム実行部２２ａは、ラダープログラムをプログラム実行メモリ２４ａに展開（ロード）したとき、ラダープログラムにおいて各ステップのルーチン開始部と、そのオペランドを特定するスタートアドレスとを対応付けた対応テーブルを作成する。上記のオペランドとしては、例えば、Ｉ／Ｏ部２９などのシステム初期化を示す“ＩＮＩＴ”や、メインルーチンプログラムの開始を示す“ＭＡＩＮ”や、サブルーチンの開始を示す“ＳＵＢ−００１”，“ＳＵＢ−００２”…などが挙げられており、各ルーチンはそれぞれを特定するための数値で表される。具体的には、“ＩＮＩＴ”、“ＭＡＩＮ”、“ＳＵＢ−００１”、“ＳＵＢ−００２”…には、それぞれ“１”、“２”、“３１”、“３２”…が割り当てられている。また、ＳＯＲ命令の後に続くルーチン開始部がない場合には、“０”が割り当てられる。このように、ＳＯＲ命令に対して行われる処理が予め数値で規定されている。
【００４７】
制御プログラム実行部２２ａは、プログラム実行メモリ２４ａに格納されているラダープログラムの各ＳＯＲ命令をサーチして、ＳＯＲ命令に対応したオペランドを抽出して、当該オペランドより格納されているアドレスを特定し、スタートアドレスとして用い、当該オペランドを表す数値と、上記のスタートアドレスとを対応付けていく。制御プログラム実行部２２ａは、このようにして、各数値とスタートアドレスとを対応付けた対応テーブルを作成し、後述する対応テーブルメモリ２４ｂに格納する。制御プログラム実行部２２ａは、上記の対応テーブルを作成しておくことにより、ラダープログラムの実行時に、そのスタートアドレスによってオペランドを特定する。ただし、制御プログラム実行部２２ａは、“０”に対してはスタートアドレスを作成しないので、対応テーブルにおいて“０”に対応するスタートアドレスは存在しないことになる。
【００４８】
ＰＬＣ３のメーカ毎に固有の名称で呼ばれるデバイスアドレスには、変数が対応付けられている。変数は、ユーザによって任意に設定可能な名称であり、後述するコメントを変数として扱うことができる。
【００４９】
ラダーモニタ部２２ｂは、予め画面エディタ５１およびラダーエディタ５２によって作成されたユーザ画面と同一フォーマットのラダーモニタ画面をターゲットシステムが稼働している状態で表示し、ラダープログラムが制御プログラム実行部２２ａによって実行されることで取得したデバイス４の状態をラダーモニタ画面上に表示する。具体的には、例えば、ラダーモニタ画面上のラダープログラム（ラダー回路）において、回路上導通している部分を太く表示したり、明るく表示したりする。このラダーモニタ部２２ｂは、例えば、前述の特許文献１に開示された方法と同様の方法でラダーモニタ画面を表示する。
【００５０】
リスト作成手段としてのラダーモニタ部２２ｂ（モニタプログラム）は、前述の対応テーブルを参照して、オペランドを表す数値を基にオペランドの名称の一覧表としてルーチン名リストを作成し、後述するリストメモリ２４ｃに格納する。ラダーモニタ部２２ｂは、スタートアドレスが対応付けられている有効な数値（オペランド）のみに基づいてルーチン名リストを作成する。また、ラダーモニタ部２２ｂは、各オペランドに対応するルーチン名のリストをＨＭＩ制御部２に指示してラダーモニタ画面上に表示させる。また、例えば、オペレータが表示されたルーチン名リストの中から所望のルーチン名をタッチするなどして、表示されたルーチン名リストからルーチン名が選択されると、ルーチン選択手段としてのラダーモニタ部２２ｂは、受け付けた選択操作に基づいて、そのルーチン名に対応するオペランドを特定し、プログラム実行メモリ２４ａに展開されているラダープログラムにおいて、そのオペランドに該当する数値に対応するスタートアドレスを対応テーブルを参照してサーチして、スタートアドレスで特定される部分をラダーモニタ画面上に表示するようにＨＭＩ制御部２１に指示する。
【００５１】
上記のＨＭＩ制御プログラムおよび制御機能プログラムは、プログラマブル表示器２と分離可能に構成される記録媒体からプログラマブル表示器２にインストールすることが可能である。
【００５２】
上記の記録媒体は、磁気テープやカセットテープなどのテープ系、フロッピディスクやハードディスクなどの磁気ディスク系、ＣＤ−ＲＯＭ、ＭＯ、ＭＤ、ＤＶＤなどの光ディスク系、ＩＣカード（メモリカードを含む）、光カードなどのカード系が好適である。その他、上記のプログラムメディアは、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【００５３】
また、本制御システムは、インターネットを含む通信ネットワークと接続可能なシステム構成であることから、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。ただし、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは予めエディタコンピュータ５に格納されるか、あるいは別な記録媒体からインストールされるものであってもよい。
【００５４】
プログラムメモリ２３は、前述の画面ファイル、ラダーファイルおよびラダーモニタファイルを格納するためのメモリであり、ＦＥＰＲＯＭ(Flash Erasable and Programmable ROM)が用いられる。ＦＥＰＲＯＭは、書き替え可能な読み出し専用のフラッシュメモリであるので、一般のパーソナルコンピュータにおけるハードディスクドライブの役割を果たす。フラッシュメモリは、可動部を持たず、かつ衝撃に強いので、劣悪な周囲環境でも安定して動作する。
【００５５】
画面ファイルは、プログラマブル表示器２に表示される画面データ（ユーザ画面のデータ）のファイルであり、ディスプレイ２５に表示すべきベース画面やパーツのデータおよび各パーツに付与された後述する処理指示語などを含んでいる。この画面ファイルは、図形データ部およびアドレスデータ部を含んでいる。図形データ部は、ユーザが作成したマークについての図形データや選択されたパーツを格納し、アドレスデータ部は、図形データ部に対応するように、入力されたマークやパーツについて、ラダーエディタ５２で設定された前記のアドレスおよびアドレスに対応するコメントを格納している。具体的には、図形データ部におけるマークやパーツの個々は、アドレスデータ部においてそれぞれ対応するコメントおよびアドレスと対応付けられている。
【００５６】
ラダーファイルは、ラダープログラムのファイルであって、後述するラダーエディタ５２によって作成される。ラダープログラムは、デバイス４が所望のシーケンスにしたがって動作するように制御手順を定めるプログラムである。
【００５７】
ラダープログラムは、コマンドデータ部およびアドレスデータ部を含んでいる。コマンドデータ部は、入力されたラダー記号に対応するラダー命令をそれぞれに対応する、コーディングに用いるオペランド（アドレス）を格納している。ラダープログラム作成時に選択されたラダー記号は、ラダーファイルにおいてラダー命令として保存される。一方、アドレスデータ部は、コマンドデータ部のオペランドと個々に対応するように、入力されたラダー記号に対応するラダー命令について、ラダーエディタ５２で設定されたアドレスおよびアドレスに関連付けられたコメントを格納している。
【００５８】
コメントとしては、デバイス４の動作状態のような事象名や、スイッチに対応するＳＷやランプに対応するＬＡＭＰのようなデバイス４に対応する符号や、操作指示などが挙げられる。
【００５９】
ラダーモニタファイルは、ラダーモニタ用の画面データ（ラダーモニタ画面データ）のファイルである。ラダーモニタ画面データは、一般の画面データと同様、プログラマブル表示器２によって表示されるが、ラダープログラムが実行された状態でデバイス４の状態を表示する。このため、ラダーモニタファイルは、前述のコマンドデータ部と同様なコマンドデータ部を備える他、アドレスデータ部に対応するアドレスデータ部と、図形データ部に対応する図形データ部とを備えている。
【００６０】
コントロールメモリ２４は、コントローラ部２２が制御処理を行うときに使用する作業領域として用いるメモリであり、例えば、ＤＲＡＭによって構成されている。このコントロールメモリ２４は、ＰＬＣ３のメモリにおいてアドレスによって特定される領域に格納されるデバイス４の状態を示すデータ（アドレスの内容）をメモリとの間で受け渡しするための状態メモリ領域を有している。
【００６１】
また、コントロールメモリ２４は、プログラム実行メモリ２４ａと、対応テーブルメモリ２４ｂと、リストメモリ２４ｃとを有している。これらのメモリ２４ａ〜２４ｃは、それぞれＤＲＡＭの所定の領域として確保されている。
【００６２】
プログラム実行メモリ２４ａは、制御プログラム実行部２２ａが実行するラダープログラムを展開するために設けられている。対応テーブルメモリ２４ｂは、制御プログラム実行部２２ａによって作成される前述の対応テーブルを格納する。リストメモリ２４ｃは、ラダーモニタ部２２ｂによって作成される前述のルーチン名リストを格納する。
【００６３】
続いて、エディタコンピュータ５について説明する。エディタコンピュータ５は、一般の汎用パーソナルコンピュータと同様に、ＣＰＵ、メモリ（ＲＡＭ、ＲＯＭなど）、外部記憶装置（ハードディスクドライブ、ＭＯドライブなど）、表示装置および入力装置（キーボード、マウスなど）を有している。また、エディタコンピュータ５は、画面エディタ５１およびラダーエディタ５２を備えている。
【００６４】
画面エディタ５１は、ユーザ独自の画面であるユーザ画面を作成できるように、スイッチ、ランプ、テンキー、各種表示器（例えば、数値表示器、メータ表示器およびグラフ表示器）などのパーツ、各種のタグ設定機能、描画機能、テキスト入力機能などを備えている。パーツとしては、単一の機能を有するパーツだけでなく、複数の機能を有する、複合スイッチ、カウンタ、タイマといった複合機能を有するパーツが用意されている。パーツは、ユーザが容易に選択できるようにライブラリ形式で登録されており、パーツの機能にに応じた入力タグや表示タグなどが予め付与されている。
【００６５】
ラダーエディ５２は、デバイス４が所望のシーケンスにしたがって動作するようにＰＬＣ３の制御手順を定める前述のラダープログラムを作成するためのプログラミングソフトウェアをＣＰＵなどによる演算処理手段によって実行することによって実現される機能ブロックである。このラダーエディタ５２は、エディタコンピュータ５の図示しないディスプレイの表示画面上でデバイス４に対応するラダー記号や演算処理などの各種処理を表すラダー記号を配置してラダー図（ラダープログラム）を作成できるように構成されている。
【００６６】
また、ラダーエディタ５２は、アドレスとユーザにより設定されたコメント（変数）との対応付けを行う。この割り付けの結果は、ラダープログラムの一部としてラダーファイルに保存される。
【００６７】
また、画面エディタ５１およびラダーエディタ５２は、プログラマブル表示器２のディスプレイ２５にユーザ画面と同様にラダーモニタ画面を表示するために、画面データと同一のフォーマット（ファイル形式）のラダーモニタ画面用のラダーモニタ画面データを作成する機能を備えている。以下に、その機能について説明する。
【００６８】
ラダーエディタ５２は、作成されたラダープログラムを構成している各ラダー命令の種類(ＬＤ、ＡＮＤ、ＯＵＴなど)を解析して、当該ラダー命令で使用するコメント（変数）およびアドレスが判明すると、そのラダー命令の種類に基づいて、予めラダーエディタ５２が備えているラダー記号を選択して、ラダー記号の選択順序とラダー命令の種類とで決まるベース画面上の位置に配置した状態で表示する処理と、上記のコメントおよびアドレスに基づいて、表示するラダー記号に付与すべき必要なパラメータ(デバイス名、大きさ、位置など)を設定する。これにより、ラダープログラムに含まれるラダー記号をコメントおよびパーツに変換して、１または複数のパーツで表した画面（パーツ画面）が完成する。パーツ画面は、例えばラダープログラムのラング（行）単位で作成される。
【００６９】
画面エディタ５１は、ディスプレイ２５に表示される画面をユーザ画面とラダーモニター画面との間で切り換えるための画面番号変更用のパーツや、ラダープログラムを実行／実行停止するためのＲＵＮ／ＳＴＯＰなどのラダー状態変更用タグを、各パーツ画面に付与するとともに、各パーツ（ラダー記号）にタッチ入力を受け付ける前述のタッチ入力タグを設定し、作成された１または複数のパーツ画面を、画面ファイルと同一フォーマットを有するラダーモニタファイルとして保存する。また、画面エディタ５１は、関連している画面ファイルおよびラダーモニタファイルがあれば、プログラマブル表示器２へのダウンロードに先立ってこれらを合成し、これらのファイルに個別の画面番号を付与して、これらのファイルを１つのプロジェクトファイルにまとめた上でダウンロードする。
【００７０】
ここで、上記のように構成される制御システム１のラダーモニタにおけるルーチンの選択動作について説明する。
【００７１】
まず、ラダーモニタ部２２ｂによって、ラダーモニタファイルがプログラムメモリＭ２３からデータメモリに読み込まれると、ＨＭＩ制御部２１によって、ラダーモニタ画面がラダーモニタファイルに基づいてディスプレイ２５に表示される。この状態で、制御プログラム実行部２２ａがラダープログラムの実行を開始すると、ラダーモニタ部２２ｂは、プログラマブル表示器２に取り込まれたデバイス４の状態を取得し、その状態をラダーモニタ画面に表示する。例えば、回路上導通している（接続線上の）部分を太線または明るく表示し、非導通の部分を細線で表示したり、接点やコイルの点灯表示させたりする。これにより、回路上でどのデバイス４が導通しているかをラダーモニタ画面上で確認することができる。
【００７２】
一方、制御プログラム実行部２２ａは、ラダープログラムをプログラム実行メモリ２４ａにロードしたときに、ラダープログラムにおける各命令をサーチして前述の対応テーブルを作成して、対応テーブルメモリ２４ｂに格納しておく。例えば、図２に示すように、ラダープログラムがメインルーチンとサブルーチンのプログラムを含む場合、図３に示すように、メインルーチンの先頭を示す命令“ＭＡＩＮ”を表す“２”と、サブンルーチンの先頭を示す命令“ＳＵＢ−００１”を表す“３１”が特定され、これらの数値に基づいて対応テーブルが作成される。
【００７３】
ラダーモニタ部２２ｂは、上記の対応テーブルを参照して、前述のルーチン名リストを作成してリストメモリ２４ｃに格納しておく。ＨＭＩ制御部２は、ラダーモニタ部２２ｂの指示を受けて、そのルーチン名リストラダーモニタ画面上に表示させる。例えば、図５に示すラダーモニタ画面１０１においては、前述のように特定された命令の名称として“ＭＡＩＮ”および命令の名称として“ＳＵＢ−００１”がルーチン名リスト１０２に表示される。
【００７４】
そして、ユーザが、ルーチン名リスト１０２において、“ＭＡＩＮ”をタッチするとラダーモニタ画面１０１には、ラダープログラムにおける“ＭＡＩＮ”を先頭とする部分が表示される。また、ユーザが、ルーチン名リスト１０２において、“ＳＵＢ−００１”をタッチするとラダーモニタ画面１０１には、ラダープログラムにおける“ＳＵＢ−００１”を先頭とする部分が表示される。
【００７５】
ラダーモニタ画面１０１にラダープログラムが表示されると、ルーチン名リストが表示されなくなる。そのような場合には、ラダープログラムにおける“ＭＡＩＮ”や“ＳＵＢ−００１”のルーチン開始命令の表示箇所をユーザがタッチすると、ラダーモニタ部２２ｂがルーチン名リスト１０２を表示させる。これにより、ルーチン名リストを表示させるための操作ボタンなどをラダーモニタ画面１０１に設ける必要がなく、ラダーモニタ画面１０１における操作ボタン群のレイアウトの自由度を向上させることができる。
【００７６】
このように、本実施の形態のプログラマブル表示器２は、ラダーモニタ部２２ｂを備えることによって、制御プログラムモニタ装置として機能する。また、ラダーモニタ部２２ｂが、制御プログラム実行部２２ａによって予め作成された対応テーブルを利用してルーチン名リストを作成して表示させ、表示されたルーチン名リストから選択されたルーチンの部分を表示させる。これにより、ユーザは、ラダープログラムにおける所望の回路を表示させるとき、まず、当該回路を含むルーチンをルーチン名リストによって選択して、特定されたルーチンを表示させる。そして、ユーザは、従来のサーチ方法（ラダープログラムのスクロール表示や命令語および変数による検索など）を用いて所望の回路を表示させる。
【００７７】
通常、制御プログラムは、メインルーチンの部分とサブルーチンの部分からなり、全体としてブロック化されることによって、プログラムの容量を削減するように作成される。また、プログラムの作成者は、通常、どの処理が制御プログラムのどの部分に対応しているかを把握しているので、デバッグ作業などにおいて、所望の回路がどのブロック（ルーチン）にあるかがわかる。したがって、ルーチンを特定し、そのルーチン内で所望の回路を捜すことにより、全体として所望の回路を表示させるまでの手間を軽減することができ、ラダープログラムのデバック作業を効率的に行うことができる。
【００７８】
また、ルーチン名リストの作成においては、予め作成されている対応テーブルを利用するので、ラダープログラムの全体に対して検索を行う従来の方法に対して、演算量を大幅に削減することができる。それゆえ、プログラマブル表示器２の演算処理による負担を軽減することができる。
【００７９】
なお、本実施の形態では、制御プログラムのプログラミング言語としてラダーを用いた例について説明したが、そのプログラミング言語としては、前述の国際基準ＩＥＣに準拠した各プログラミング言語やそれ以外のプログラミング言語を用いることができる。
【００８０】
本発明は、上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００８１】
本発明の制御プログラムモニタ装置は、ラダープログラムのような制御プログラムにおける各ルーチンの開始部の名称のリストをラダーモニタ画面上で表示して、そのリストから選択したルーチンをラダーモニタ画面に表示させることにより、ルーチンを特定した上で所望の回路を捜すので、所望の回路にたどり着くまでの時間を短縮することができ、ラダープログラムのデバッグを効率的に行うことに有効に利用することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施形態に係る制御システムの構成を示すブロック図である。
【図２】上記制御システムにおけるプログラマブル表示器でモニタするラダープログラムの一部を示す図である。
【図３】上記ラダープログラムにおけるＳＯＲ命令とオペランドを表す数値との対応関係を示す図である。
【図４】上記数値とラダープログラムが展開されるプログラム実行メモリにおける上記先頭ルーチンのアドレスとを対応付けた対応テーブルを示す図である。
【図５】上記各ルーチンの開始部の名称を含むルーチン名リストをラダーモニタ画面に表示した状態を示す図である。
【符号の説明】
【００８３】
２      プログラマブル表示器（制御プログラムモニタ装置）
２２ａ    制御プログラム実行部（対応付け手段）
２２ｂ    ラダーモニタ部（リスト作成手段，ルーチン選択手段，モニタプログラム）
２４ａ    プログラム実行メモリ
２４ｂ    対応テーブルメモリ
１０１      ラダーモニタ画面（モニタ画面）
１０２      ルーチン名リスト（リスト）
【図１】
2007122524.tif 000003
【図２】
2007122524.tif 000004
【図３】
2007122524.tif 000005
【図４】
2007122524.tif 000006
【図５】
2007122524.tif 000007