(57)【要約】【課題】所望の命令の検索に要する時間を短縮可能な制御プログラム検索装置を実現する。【解決手段】プログラマブル表示器１２には、オペランドを変数で設定可能な制御プログラムに従ってデバイス２ａを制御するデバイス制御部３３と、デバイス２ａの状態を表示し、デバイス２ａへの操作を受け付けるＨＭＩ処理部２５と、ＨＭＩ処理部２５へ指示してラダーモニタ画面を表示させるコントロール−ＨＭＩ処理部４１とが設けられている。当該コントロール−ＨＭＩ処理部４１は、命令語を検索範囲とする条件が指定された場合、命令語が当該条件にマッチする命令を検索し、変数を検索範囲とする条件が指定された場合、変数が当該条件にマッチする命令を検索する。これにより、命令語および変数の一方を検索しようとして、他方を検索してしまう不具合を解消でき、検索に要する時間を短縮できる。【選択図】　図１
2004005060.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラムを記憶する記憶手段と、当該制御プログラムに含まれる命令を検索するための条件の入力を受け付け、上記記憶手段の制御プログラムの中から当該条件に該当する命令を検索する検索手段とを有する制御プログラム検索装置において、
上記制御プログラムは、命令の動作を示す命令語と、当該動作の対象を特定可能で、しかも、変数名により特定可能な変数との組み合わせからなる命令を含むことができ、
上記検索手段は、検索範囲を命令語または変数に限定した条件の入力を受け付け可能であり、検索範囲が命令語に限定された命令語条件が入力された場合、上記記憶手段の制御プログラムから、命令語が命令語条件に合った命令を検索すると共に、検索対象が変数に限定された変数条件が入力された場合は、上記記憶手段の制御プログラムから、変数が変数条件に合った命令を検索することを特徴とする制御プログラム検索装置。
【請求項２】
上記制御プログラムでは、変数名として、命令語名を含む文字列を使用可能であり、
上記記憶手段には、制御プログラムに出現する変数の変数名が記憶された変数名領域と、制御プログラムに出現する命令語の命令語名が記憶された命令語名領域とが含まれていると共に、
上記検索手段は、命令語条件として、命令語名が入力された場合、命令語名領域を検索し、変数条件として、変数条件が入力された場合、変数名領域を検索することを特徴とする請求項１記載の制御プログラム検索装置。
【請求項３】
上記記憶手段に記憶された制御プログラム、または、それと同一手順の制御プログラムに基づいて、制御対象を制御する制御手段を備えていることを特徴とする請求項１または２記載の制御プログラム検索装置。
【請求項４】
上記検索手段は、検索の条件として、上記命令語条件と変数条件との双方が入力され、アンド検索が指示された場合、命令語が命令語条件に合い、しかも、変数が変数条件に合った命令を検索することを特徴とする請求項１、２または３記載の制御プログラム検索装置。
【請求項５】
上記検索手段は、上記命令語条件および変数条件のいずれが先に入力された場合でも、他方の入力を受け付け可能であることを特徴とする請求項４記載の制御プログラム検索装置。
【請求項６】
上記検索手段は、指示に応じて、上記制御プログラムに含まれる命令語あるいは変数の一覧を表示し、上記命令語条件で指定する命令語、あるいは、上記変数条件で指定する変数の選択を促すことを特徴とする請求項１、２、３、４または５記載の制御プログラム検索装置。
【請求項７】
請求項１記載の各手段として、コンピュータを動作させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所望の命令の検索に要する時間を短縮可能な制御プログラム検索装置、および、そのプログラムに関するものである。
【０００２】
【従来の技術】
従来から、制御システムの制御装置として、プログラマブル・ロジック・コントローラ（ＰＬＣ）が広く使用されている。当該ＰＬＣには、ラダーエディタなどの制御プログラムエディタによって作成された制御プログラムが予め格納され、ＰＬＣは、制御プログラムに基づいてデバイスを制御する。
【０００３】
ここで、あるデバイスに異常が検出された場合であっても、当該デバイスの異常が原因ではなく、そのデバイスの制御に関連するデバイスの異常が原因であることがある。
【０００４】
したがって、デバイスに異常が検出され、そのデバイスに異常がない場合には、異常の原因を特定するために、制御システムのユーザは、例えば、ラダーエディタやラダーモニタがインストールされたパーソナルコンピュータを上記ＰＬＣに接続するなどして、上記ＰＬＣの制御プログラムをラダーエディタやラダーモニタに表示させる。さらに、ユーザは、ラダーエディタやラダーモニタを操作して、制御プログラムのうち、異常の検出されたデバイスの制御に関連する箇所を検索し、異常の原因となったデバイスや制御プログラムの誤りを特定している。
【０００５】
ここで、従来のラダーエディタやラダーモニタは、ユーザによって検索の条件が指定されると、文字列で表現された制御プログラム全体を検索して、条件に合った命令を検索している。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記制御プログラム全体の文字列には、命令を示す文字列だけではなく、制御プログラムの可読性を向上させるコメントなども含まれている。また、制御プログラムで使用可能な命令には、動作を示す命令語と動作の対象とを含む命令もあり、このような命令を示す文字列には、命令語名と、演算対象を示す文字列とが含まれている。
【０００７】
したがって、所望の命令語名を含む命令を検索しようとして、コメントや変数名が検索条件に合った命令をも検索してしまう虞れがある。また、これとは逆に、所望の変数名を含む命令を検索しようとして、コメントや命令語名が検索条件に合った命令をも検索してしまう虞れもある。
【０００８】
この場合は、不所望に検索された命令を含む検索結果から、所望の命令を見つけるために、例えば、検索された命令を順次表示させて所望の命令か否かを判断するなどの手間が必要になり、所望の命令を見つけるまでの時間が長くなりやすい。したがって、異常の原因の特定、および、異常からの復帰に要する時間も増大しがちである。
【０００９】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、所望の命令の検索に要する時間を短縮可能な制御プログラム検索装置を実現することにある。
【００１０】
【課題を解決するための手段】
請求項１の発明に係る制御プログラム検索装置は、上記課題を解決するために、制御プログラムを記憶する記憶手段と、当該制御プログラムに含まれる命令を検索するための条件の入力を受け付け、上記記憶手段の制御プログラムの中から当該条件に該当する命令を検索する検索手段とを有する制御プログラム検索装置において、以下の手段を講じたことを特徴としている。
【００１１】
すなわち、上記制御プログラムは、命令の動作を示す命令語と、当該動作の対象を特定可能で、しかも、変数名により特定可能な変数との組み合わせからなる命令を含むことができる。また、上記検索手段は、検索範囲を命令語または変数に限定した条件の入力を受け付け可能であり、検索範囲が命令語に限定された命令語条件が入力された場合、上記記憶手段の制御プログラムから、命令語が命令語条件に合った命令を検索すると共に、検索対象が変数に限定された変数条件が入力された場合は、上記記憶手段の制御プログラムから、変数が変数条件に合った命令を検索する。
【００１２】
上記構成では、検索範囲を命令語または変数に限定して検索できる。したがって、制御プログラム全体から、検索条件にあった文字列を検索する従来技術と異なって、所望の命令語を含む命令を検索する際、コメントや変数が検索条件に合った命令をも検索してしまうという不具合が発生せず、所望の命令語を含む命令のみを検索できる。同様に、所望の変数を含む命令を検索する際、コメントや命令語が検索条件に合った命令をも検索してしまうという不具合が発生せず、所望の変数を含む命令のみを検索できる。この結果、不所望に検索された命令を含む検索結果から所望の命令を見つける手間を削減でき、所望の命令の検索に要する時間を短縮できる。
【００１３】
また、請求項２の発明に係る制御プログラム検索装置は、請求項１記載の発明の構成において、上記制御プログラムでは、変数名として、命令語名を含む文字列を使用可能であり、上記記憶手段には、制御プログラムに出現する変数の変数名が記憶された変数名領域と、制御プログラムに出現する命令語の命令語名が記憶された命令語名領域とが含まれていると共に、上記検索手段は、命令語条件として、命令語名が入力された場合、命令語名領域を検索し、変数条件として、変数条件が入力された場合、変数名領域を検索することを特徴としている。
【００１４】
上記構成では、変数名として、命令語名を含む文字列を使用できるので、変数名として設定可能な文字列の数が増え、制御プログラム検索装置のユーザにとって読みやすい変数名を設定しやすくなる。また、この場合であっても、検索範囲に応じて、命令語名領域および変数名領域の一方を検索するので、何ら支障なく、命令語名または変数名が検索条件に合った命令を検索できる。この結果、可読性の向上と、所望の命令検索に要する時間短縮との双方を満足した制御プログラム検索装置を実現できる。
【００１５】
なお、命令語条件として命令語名が入力された場合に、変数名領域ではなく命令語名領域を検索し、変数名条件として変数名が入力された場合に命令語領域ではなく変数名領域を検索するのであれば、例えば、命令が命令語と変数とを含んでいる場合、記憶手段が、当該命令を、命令語を示す属性またはフィールド（命令語領域）と変数を示す属性またはフィールド（変数名領域）とに分けて記憶し、検索手段が、検索範囲に応じて、命令語の属性またはフィールドと、変数の属性またはフィールドとの一方を検索してもよい。
【００１６】
また、各命令語および変数に対して、命令語および変数全体で一意な識別子を割り当て、記憶手段が上記命令を命令語の識別子と変数の識別子との組み合わせとして記憶すると共に、命令語の識別子と命令語名との対応を示す命令語名テーブル（命令語名領域）と、変数の識別子と変数名との対応を示す変数名テーブル（変数名領域）とを記憶してもよい。この場合、検索手段は、検索範囲に応じて、命令語テーブルおよび変数名テーブルの一方を検索して識別子を取得し、当該識別子を含む命令を検索する。
【００１７】
さらに、請求項３の発明に係る制御プログラム検索装置は、請求項１または２記載の発明の構成において、上記記憶手段に記憶された制御プログラム、または、それと同一手順の制御プログラムに基づいて、制御対象を制御する制御手段を備えていることを特徴としている。
【００１８】
上記構成では、制御プログラム検索装置が制御手段をも備えているので、制御プログラム検索装置は、制御プログラムに基づいて制御対象を制御する制御装置として動作できる。したがって、当該制御装置が制御対象を制御している間に、制御システムに異常が発生しても、新たな装置を特に接続することなく、制御装置の制御プログラムから異常に関連すると推定される命令を検索できる。ここで、上述のように、検索手段は、検索範囲を命令語または変数に限定して検索できるので、所望の命令を検索する際の時間を短縮できる。これらの結果、異常の原因をより速く特定でき、制御装置を含む制御システムが異常から復帰するために必要な時間を短縮できる。
【００１９】
また、請求項４の発明に係る制御プログラム検索装置は、請求項１、２または３記載の発明の構成において、上記検索手段は、検索の条件として、上記命令語条件と変数条件との双方が入力され、アンド検索が指示された場合、命令語が命令語条件に合い、しかも、変数が変数条件に合った命令を検索することを特徴としている。
【００２０】
上記構成では、命令語条件と変数条件とをアンド検索できるので、ある命令語または変数が制御プログラム中で数多く使用されており、一方の条件だけでは、所望の命令の検索に手間がかかる場合であっても、所望の命令をより速く検索できる。
【００２１】
さらに、請求項５の発明に係る制御プログラム検索装置は、請求項４記載の発明の構成において、上記検索手段は、上記命令語条件および変数条件のいずれが先に入力された場合でも、他方の入力を受け付け可能であることを特徴としている。
【００２２】
上記構成では、上記命令語条件および変数条件のいずれが先に入力された場合でも、検索手段は、他方の入力を受け付けることができるので、制御プログラム検索装置のユーザは、検索条件を思いついた順番で、各検索条件を指定でき、制御プログラム検索装置の操作性を向上できる。
【００２３】
また、請求項６の発明に係る制御プログラム検索装置は、請求項１、２、３、４または５記載の発明の構成において、上記検索手段は、指示に応じて、上記制御プログラムに含まれる命令語あるいは変数の一覧を表示し、上記命令語条件で指定する命令語、あるいは、上記変数条件で指定する変数の選択を促すことを特徴としている。
【００２４】
上記構成では、制御プログラム検索装置のユーザは、命令語条件で指定する命令語または変数条件で指定する変数を入力する際、一覧表示された命令語または変数の中から選択するだけで入力できるので、制御プログラム検索装置の操作性を向上できる。
【００２５】
ところで、上記制御プログラム検索装置は、ハードウェアで実現してもよいが、プログラムをコンピュータに実行させて実現してもよい。具体的には、請求項７の発明に係るプログラムは、請求項１記載の各手段としてコンピュータを動作させるプログラムであり、当該プログラムがコンピュータで実行されると、当該コンピュータは、請求項１記載の制御プログラム検索装置として動作する。したがって、請求項１と同様に、所望の命令の検索に要する時間を短縮可能な制御プログラム検索装置を実現できる。
【００２６】
【発明の実施の形態】
本発明の一実施形態について図１ないし図１７に基づいて説明すると以下の通りである。すなわち、本実施形態に係る制御システム１は、現場に新たな機器を持ち込むことなく、ラダーモニタ画面を表示可能で、しかも、当該ラダーモニタ画面にて、所望の命令を短時間で検索可能なシステムであって、図１に示すように、例えば、ベルトコンベアー式の自動組付機など、ターゲットシステム２のデバイス（制御対象）２ａを制御するために用いられている。
【００２７】
なお、以下では、プログラマブル表示器（制御プログラム検索装置）１２による、ラダーモニタ画面での検索処理について説明する前に、制御システム１の全体構成、並びに、通常の制御状態におけるプログラマブル表示器１２の動作について簡単に説明する。
【００２８】
すなわち、上記制御システム１には、上記デバイス２ａを制御する制御装置としてのＰＬＣ１１と、多くの場合、制御対象近傍に配されると共に、制御システム１のＨＭＩとして、デバイス２ａの状態を表示し、オペレータによるデバイス２ａへの操作を受け付けるプログラマブル表示器１２とを備えている。また、本実施形態に係るプログラマブル表示器１２は、詳細は後述するように、ＰＬＣとしての機能も備えており、それぞれに対応するＰＬＣ１１だけではなく、自らが制御するデバイス２ａにも直接接続されている。
【００２９】
さらに、本実施形態に係る制御システム１では、各プログラマブル表示器１２は、イーサネット（登録商標）などのＬＡＮ（ローカルエリアネットワーク）１３によって互いに接続されている。また、上記ＬＡＮ１３には、多くの場合、プログラマブル表示器１２よりも離れた場所から、制御システム１全体を管理する制御用ホストコンピュータ１４が接続されている。
【００３０】
なお、上記各プログラマブル表示器１２は、シリアルケーブルなどを介して、それぞれに対応するＰＬＣ１１と接続されている。また、図１では、説明の便宜上、ＬＡＮ１３にプログラマブル表示器１２が２台接続され、各プログラマブル表示器１２には、ＰＬＣ１１およびデバイス２ａがそれぞれ１台ずつ接続されると共に、各ＰＬＣ１１にデバイス２ａが１台接続されている場合を例示しているが、当然ながら、それぞれの接続台数は任意に設定できる。
【００３１】
また、デバイスは、デバイスアドレスや変数により特定可能で、しかも、状態を取得したり、制御（変更）できるものであれば、例えば、デバイス２ａ自体であってもよいし、例えば、ＰＬＣ１１やプログラマブル表示器１２の記憶装置など、制御システム１に設けられた記憶装置の一領域を示していてもよい。
【００３２】
ここで、上記制御システム１では、制御システム１に必須の構成であり、しかも、ＨＭＩとして動作するため、演算能力に余力のあるプログラマブル表示器１２が通信の大半を処理するように構成されている。さらに、各プログラマブル表示器１２は、自らに接続されているＰＬＣ１１の機種に固有の専用プロトコルと、ＬＡＮ１３での共通プロトコルとを変換して、他のプログラマブル表示器１２や制御用ホストコンピュータ１４と、ＰＬＣ１１との通信を中継する。なお、共通プロトコルと専用プロトコルとの間のプロトコル変換には、同じ指示に同じコードが割り当てられるように予め定められた共通のコマンドと上記共通のコマンドに対応するＰＬＣ１１固有のコマンドとの間の変換や、データやアドレスの表現方法の変換、デバイスアドレスと、当該デバイスアドレスに対応し、しかも、デバイスアドレスとは異なる値に設定可能な変数や変数の名称（変数名）との変換なども含まれる。
【００３３】
これにより、プログラマブル表示器１２および制御用ホストコンピュータ１４は、他のプログラマブル表示器１２に接続されているＰＬＣ１１の機種に拘らず、ＬＡＮ１３を介して共通のプロトコルで通信できる。この結果、互いに異なる機種のＰＬＣ１１の混在する制御システム１が比較的容易に実現されている。
【００３４】
上記プログラマブル表示器１２は、後述する画面データに基づいて、デバイスの状態を画面表示する際の動作や、画面への操作に応じてデバイスの状態を制御する際の動作を特定するものであって、ＰＬＣ１１と通信するＰＬＣ・ＩＦ部２１と、上記ＬＡＮ１３に接続するためのＬＡＮ・ＩＦ部２２と、例えば、液晶表示装置などからなるディスプレイ２３と、ディスプレイ２３の画面上に配されたタッチパネル２４と、上記各部材２１〜２４を制御するＨＭＩ処理部２５と、当該ＨＭＩ処理部２５によって参照され、上記画面データおよび後述する変数が格納される画面データメモリ２６および変数メモリ２７とを備えている。
【００３５】
上記画面データは、画面上の領域と、当該領域への表示や入力に対応するデバイスとの対応関係を示すタグを組み合わせて構成されている。本実施形態では、ＨＭＩ処理部２５が複数の単位画面を切り換え表示可能であり、上記タグは、当該タグが有効となる単位画面を示すファイル番号と、単位画面上で実行すべき動作内容を特定する事象名と、各事象毎に参照される参照情報とを含んでいる。
【００３６】
例えば、上記タグが所定の画面領域（表示座標範囲）へ所定のデバイスの状態に応じた部品図形を表示する表示タグの場合、上記参照情報には、表示座標範囲と、デバイスを特定可能な変数（後述）と、例えば、部品図形がスイッチの場合、ＯＮを示す図形のファイルおよびＯＦＦを示す図形のファイルなど、表示時に参照するファイル番号とが含まれる。さらに、タグが入力タグの場合、参照情報として、有効入力座標範囲と、入力結果が書き込まれるデバイスの変数とが含まれる。
【００３７】
また、変数メモリ２７には、図２に示すように、各変数について、変数の名称（変数名）と、変数に対応するデバイス２ａまたは内部メモリを特定するための情報（例えば、アドレスなど）と、変数の内容との組み合わせが記憶されている。なお、本実施形態では、変数に対応するデバイス２ａの機種に拘わらず、変数の内容を格納する際の表現方法（例えば、ワード長や符号の有無、あるいは、ＢＣＤ／２進表記など）が予め定められた表現方法に統一されており、変数が実在のデバイス２ａに対応する場合、変数メモリ２７には、実際の機種での表現方法も格納されている。この場合、ＨＭＩ処理部２５は、ＰＬＣ・ＩＦ部２１を介してデバイス２ａの状態を取得あるいは制御する際、表現方法を形式変換して、格納時の表現方法を統一する。
【００３８】
一方、上記ＨＭＩ処理部２５は、所定の時間間隔で、画面データメモリ２６に格納された画面データから、ベース画面のファイル番号が、現在表示中のベース画面である表示タグを抽出する。さらに、ＨＭＩ処理部２５は、変数メモリ２７を参照して、タグに対応する変数の内容を読み出し、内容に応じた部品図形をディスプレイ２３に表示する。ここで、ＰＬＣ・ＩＦ部２１に接続されたＰＬＣ１１により制御されるデバイス２ａに、上記変数が対応している場合、ＨＭＩ処理部２５は、ＰＬＣ・ＩＦ部２１によるＰＬＣ１１との通信によって、デバイス２ａの状態を取得し、上記変数の内容を当該状態に応じて更新している。これにより、ディスプレイ２３には、デバイス２ａの状態が表示される。
【００３９】
なお、変数が他のプログラマブル表示器１２に接続されたＰＬＣ１１によって制御されるデバイス２ａの場合、ＨＭＩ処理部２５は、ＬＡＮ・ＩＦ部２２、ＬＡＮ１３および他のプログラマブル表示器１２を介して当該ＰＬＣ１１と通信するなどして、デバイスの状態を取得し、それに応じて変数の内容を更新する。
【００４０】
また、タッチパネル２４への押し操作など、オペレータの入力操作を受け付けると、ＨＭＩ処理部２５は、上記画面データから、現在表示中のベース画面に対応し、当該入力操作にマッチする入力タグを検索すると共に、入力結果に応じて、タグに対応する変数の内容を更新する。さらに、ＨＭＩ処理部２５は、デバイス２ａの状態を取得する場合と略同様に、ＰＬＣ１１やプログラマブル表示器１２と通信するなどして、上記変数の内容に応じて、デバイス２ａの状態を制御させる。ここで、入力操作の後も、ＨＭＩ処理部２５は、デバイス２ａの状態を画面表示するので、操作結果が画面表示に反映される。
【００４１】
加えて、ＨＭＩ処理部２５は、例えば、他のプログラマブル表示器１２や制御用ホストコンピュータ１４など、ＬＡＮ１３に接続された機器から自らに接続されたＰＬＣ１１のデバイス２ａへの制御指示を受け取った場合や、これとは逆に、上記機器へ報告すべきデバイス２ａの状態を自らのＰＬＣ１１から受け取った場合には、上述したプロトコル変換によって、ＬＡＮ１３での通信、および、ＰＬＣ１１との通信の間を中継できる。
【００４２】
さらに、本実施形態に係るプログラマブル表示器１２は、ＰＬＣとしても動作するために、デバイス２ａに接続するためのＩＯ・ＩＦ部３１と、制御プログラムなどを記憶する制御用ファイルメモリ（記憶手段）３２と、当該制御プログラムに基づいて、ＩＯ・ＩＦ部３１に接続されたデバイス２ａを制御するデバイス制御部（制御手段）３３とを備えている。
【００４３】
本実施形態に係るデバイス制御部３３は、制御プログラムにおいて、制御対象を変数で特定可能なＰＬＣであって、例えば、数十ｍｓなど、予め定められた長さの走査期間（スキャンタイム）毎に、各デバイス２ａの状態を読み出し、各デバイス２ａに対応する変数の内容として、変数メモリ２７に格納する。
【００４４】
さらに、デバイス制御部３３は、変数メモリ２７に格納された各変数の内容を参照しながら、制御用ファイルメモリ３２の制御プログラムが示す各命令を順次実行する。
【００４５】
ここで、本実施形態に係る制御プログラムでは、図３にラダープログラムとして示すように、あるいは、図４に、そのニモニック表記として示すように、各命令において、命令語Ｃα…で示される動作の対象（オペランド）を、変数で指定可能であり、命令が、変数で示されたオペランドを含んでいる場合、当該命令の実行に伴なって、変数の内容が更新される。また、本実施形態に係る制御プログラムでは、制御プログラムの可読性を向上させるため、変数名として、命令語名を含む文字列も指定できる。なお、デバイス制御部３３が実行可能な命令セットには、オペランドを含まない命令が含まれていてもよいし、オペランドを含む命令であっても、オペランドが変数以外の値（定数など）であってもよい。
【００４６】
さらに、上記順次実行される命令の１つとして、エンド命令が実行されると、デバイス制御部３３は、制御プログラムの実行を終了し、変数メモリ２７に格納された各変数のうち、ＩＯ・ＩＦ部３１に接続されたデバイス２ａに対応する変数の内容を各デバイス２ａに書き込む。これにより、デバイス制御部３３は、ＰＬＣと同様に、ユーザが作成した制御プログラムに従い、デバイス２ａの状態に応じて各デバイス２ａを制御できる。
【００４７】
なお、上述したように、変数の内容を格納する際の表現方法が統一されているので、デバイス制御部３３は、ＩＯ・ＩＦ部３１を介してデバイス２ａと通信する際、表現方法を形式変換して、格納時の表現方法を統一する。
【００４８】
さらに、本実施形態に係るプログラマブル表示器１２は、例えば、あるデバイス２ａの状態が異常な場合に、その異常の原因となるデバイス２ａを特定する際などに好適に用いられるラダーモニタ画面を表示するために、上記ＨＭＩ処理部２５およびデバイス制御部３３を連携動作させるコントロール−ＨＭＩ処理部（検索手段）４１が設けられている。
【００４９】
また、上記制御用ファイルメモリ３２には、制御プログラムのＯＰコード（命令語）およびオペランドだけではなく、例えば、変数の情報、ジャンプ先のラベル、各ラダー記号がどのように接続されるかを示す情報や、ラング番号など、制御プログラムに応じたラダー図を表示するための情報も記憶されている。
【００５０】
ラダーモニタ画面を表示する場合、上記コントロール−ＨＭＩ処理部４１は、ＨＭＩ処理部２５に指示して、図５および図６に示すラダーモニタ画面を表示させる。当該ラダーモニタ画面には、ラダー図を表示する領域Ｄ１が設けられており、コントロール−ＨＭＩ処理部４１は、上記制御用ファイルメモリ３２を参照して、当該制御用ファイルメモリ３２に格納された制御プログラムを示すラダー図を表示させることができる。
【００５１】
ここで、上記領域Ｄ１に表示されるラダー図は、接点やコイル、カウンタなど、図形やその他の形式で表された機能ブロックとしてのラダー記号（Ｉα…）と、これらに関連するラベルとからなる１または複数のネットワーク（Ｌ１…）を、左右の母線（Ｌａ・Ｌｂ）内に記述した図であって、配置されているラダー記号の種類と、各ラダー記号の接続関係とによって、制御手順を図示できる。
【００５２】
さらに、上記コントロール−ＨＭＩ処理部４１は、変数メモリ２７を参照して、上記各ラダー記号（Ｉα…）の表示形式（例えば、形状や色あるいは点滅の有無など）を、ラダー記号Ｉα…に関連するデバイス２ａの現在の制御状態に合わせて更新できる。
【００５３】
例えば、図５および図６のラダーモニタ画面は、図３および図４の制御プログラムを図示したものであって、ロードを示すラダー記号Ｉαが、アンドを示すラダー記号Ｉβ、および、インクリメントを示すラダー記号Ｉγを介して、母線Ｌｂに接続されている。また、各ラダー記号Ｉ…には、デバイスに対応する変数の名称が併記されている。したがって、これらのラダー記号Ｉα〜Ｉγと、各ラダー記号Ｉα〜Ｉγの接続関係とによって、命令語Ｃα〜Ｃγに対応する制御手順、すなわち、第１接点がオン状態で、しかも、第２接点がオン状態の場合、カウンタをインクリメントするという手順を記述できる。
【００５４】
また、図５のラダーモニタ画面では、ロードを示すラダー記号ＩαおよびＩδがオフ状態を示す形状で記述されているのに対して、図６のラダーモニタ画面では、両ラダー記号Ｉα、Ｉδがオン状態を示す形状で記述されている。したがって、図５および図６に示すラダー図からは、制御手順だけではなく、デバイスの制御状態、すなわち、図５の場合は、第１接点がオフ状態であり、図６の場合は、第１接点がオン状態であることも読み取れる。
【００５５】
このように、ラダーモニタ画面は、デバイス２ａの状態と制御の手順との双方を表示できる。したがって、あるデバイス２ａに不具合が発生し、それによって、他のデバイス２ａの状態が通常と違うように制御されて、異常が判明した場合、異常と認識されたデバイス２ａ自体だけではなく、そのデバイス２ａの制御に関連するデバイス２ａを順次遡ることができる。この結果、不具合が発生したデバイス２ａとは異なるデバイス２ａにて異常が検出された場合でも、不具合が発生したデバイス２ａを特定できる。
【００５６】
さらに、本実施形態に係るコントロール−ＨＭＩ処理部４１は、母線Ｌａ・ＬｂやネットワークＬ１…のうち、導電部分を、非導電部分と異なる表示形式で表示するように、ＨＭＩ処理部２５へ指示している。本実施形態では、一例として、非導電部分を、白の細線で表示し、導電部分を緑の太線で表示している。これにより、オペレータは、ラダーモニタ画面を参照することで、ラダープログラムの導電部分も把握できる。なお、図３ないし図６あるいは以下の図面では、例えば、命令語Ｃαとラダー記号Ｉαとのように、互いに対応するもの同士に、互いに同じギリシャ文字を付している。
【００５７】
また、本実施形態に係るコントロール−ＨＭＩ処理部４１は、ラダーモニタ画面として上記ラダー図を表示する際、図５および図６に示すように、ラダーモニタ画面を操作するためのボタンＢ…も合わせて表示するよう、ＨＭＩ処理部２５へ指示する。さらに、ＨＭＩ処理部２５が各ボタンＢ１〜Ｂ３４への操作を受け付けると、コントロール−ＨＭＩ処理部４１は、操作に応じて、ラダーモニタ画面を制御する。
【００５８】
例えば、ボタンＢ１は、ラダープログラム（制御プログラム）の起動／停止を指示するボタンであり、当該ボタンＢ１が押された場合、コントロール−ＨＭＩ処理部４１は、デバイス制御部３３が制御プログラムを実行中であれば停止させ、制御プログラムの実行を停止していた場合は、制御プログラムの実行を開始させる。
【００５９】
また、ボタンＢ２は、ラダーモニタ画面の領域Ｄ１において、先頭に表示されているネットワークＬ１…の番号（ラング番号）を表示するボタンであって、当該ボタンＢ２が操作されると、コントロール−ＨＭＩ処理部４１は、例えば、キーパットを表示させるなどして、ラング番号の入力を受け付け、当該ラダー番号からのラダー図を表示させる。
【００６０】
また、ボタンＢ３は、スクロールの単位が、ラング単位／ページ単位かを表示するボタンであって、当該ボタンＢ３が操作されると、コントロール−ＨＭＩ処理部４１は、スクロールの単位を両者間で切り換える。さらに、ボタンＢ４は、ラダー図中に整数を表示する際に、１０進表示するか１６進表示するかを切り換えるボタンであり、当該ボタンＢ４が操作されると、コントロール−ＨＭＩ処理部４１は、整数の表示方法を両者間で切り換える。また、ボタン群Ｂ５は、制御プログラムに応じたラダー図全体のうちのラダーモニタ画面中に表示する領域の移動（スクロール）を指示するボタンであり、それぞれ、左右上下のボタンのいずれかかが操作された場合、コントロール−ＨＭＩ処理部４１は、指示された方向に、表示領域をスクロールさせる。
【００６１】
一方、コントロール−ＨＭＩ処理部４１は、ボタンＢ６が操作されると、ラダーモニタ画面の表示を停止して、ＨＭＩ処理部２５に、通常の操作画面を表示させる。
【００６２】
さらに、本実施形態に係る上記変数メモリ２７には、ラダーモニタに関する変数（ラダーモニタ変数）を格納する領域４２が設けられており、他の変数と同様に、ラダーモニタ変数の内容も、ＨＭＩ処理部２５およびデバイス制御部３３から変更できるように構成されている。また、上記コントロール−ＨＭＩ処理部４１は、当該ラダーモニタ変数の内容を監視して、ラダーモニタへの指示を受け付けている。なお、これらラダーモニタへの指示には、ラダーモニタ画面の表示の要否、制御プログラム全体のうち、ラダーモニタ画面で表示する箇所、あるいは、ラダーモニタ画面への操作も含まれている。
【００６３】
このように、本実施形態に係るプログラマブル表示器１２では、ＨＭＩ処理部２５が、画面データに基づいて、ラダーモニタ変数の上記記憶領域の内容を変更できるように構成されている。また、デバイス制御部３３も制御プログラムに基づいて上記記憶領域の内容を変更できるように構成されている。したがって、制御システム１のユーザは、画面データまたは制御プログラムを変更することによって、ラダーモニタ起動のトリガを変更できる。
【００６４】
また、本実施形態に係るプログラマブル表示器１２では、上記ラダーモニタ変数の一領域として、制御プログラム全体のうち、ラダーモニタ画面が表示する箇所を記憶する領域も設けられており、当該記憶領域の内容も、起動／停止を示す記憶領域と同様にＨＭＩ処理部２５およびデバイス制御部３３から変更できる。
【００６５】
したがって、制御システム１のユーザが、画面データまたは制御プログラムを設計する際、トリガとなる事象が発生して、ラダーモニタ画面を起動させるまでの間に、当該記憶領域の内容がトリガとなる事象に関連する箇所を示すように、画面データまたは制御プログラムを設計することによって、ラダーモニタの起動時に上記箇所を表示させることができる。この結果、プログラマブル表示器１２は、異常発生時に、異常に関連する箇所を表示したラダーモニタ画面を表示することができる。
【００６６】
さらに、ラダーモニタ変数には、ラダーモニタ画面への上記各操作を示す領域も設けられており、コントロール−ＨＭＩ処理部４１は、当該領域の内容に応じて、当該領域に対応する操作がオペレータによって行われたときと同様に、ラダーモニタ画面を自動的に制御できる。したがって、制御システム１のユーザは、ラダーモニタ画面を自動的に操作する画面データまたは制御プログラムを作成できる。一例として、画面データや制御プログラムによって、ラダーモニタ画面のスクロールやスクロールの単位を制御できる。
【００６７】
上記構成において、図７に示すフローチャートに基づき、制御システム１の概略動作を説明すると以下の通りである。すなわち、ステップ１（以下では、Ｓ１のように略称する）において、例えば、制御用ホストコンピュータ１４の作画エディタなどによって、プログラマブル表示器１２用の画面データが作成される。また、Ｓ２において、制御用ホストコンピュータ１４の制御プログラムエディタなどによって、プログラマブル表示器１２のデバイス制御部３３用の制御プログラムを含む制御用ファイルが作成される。上記各エディタでは、タグや制御プログラムにて、操作や参照の対象となるデバイスを指定する際、デバイスに対応する変数が生成され、当該変数で指定される。
【００６８】
さらに、Ｓ３では、上記各エディタなどによって、各変数が実際のデバイス２ａなどと関連付けられる。なお、変数には、実際のデバイス２ａだけではなく、プログラマブル表示器１２の記憶領域や、マクロの演算結果を関連付けることができる。この場合、ＨＭＩ処理部２５は、予め設定されたプログラム（マクロ）に従って、変数メモリ２７の変数の内容を演算した結果を、マクロに関連付けられた変数の内容に設定できる。
【００６９】
また、画面表示や操作あるいは制御に関連する変数の場合と同様に、上記各エディタによって、ラダーモニタ変数は、トリガとなる事象、すなわち、デバイス２ａやプログラマブル表示器１２の記憶領域またはマクロと関連付けられる。なお、ラダーモニタ変数は、プログラマブル表示器１２の記憶領域のうち、操作に応じて内容が変化する記憶領域を関連付けるなどして、オペレータの操作と関連付けることもできる。
【００７０】
ここで、上記各エディタでは、デバイスのアドレスを指定するのではなく、デバイスを変数で指定している。したがって、実際のデバイス２ａと変数との対応は、プログラマブル表示器１２が動作を開始するまでに関連付ければよく、実際のアドレスが決まっていない段階でも、画面や制御手順を設計できる。また、デバイス２ａの変更などによって、実際のアドレスが変更されたとしても、画面データおよび制御プログラムにおいて、当該デバイス２ａに関連する箇所全てを変更する必要がなく、変数とアドレスとの関連付けを変更するだけでよい。
【００７１】
上記Ｓ１〜Ｓ３にて、画面データ、制御プログラムおよび変数の関連付けが完成すると、Ｓ４において、これらのデータは、プログラマブル表示器１２に伝送され、画面データメモリ２６、制御用ファイルメモリ３２および変数メモリ２７に格納される。なお、上記では、説明の便宜上、Ｓ１〜Ｓ３の順に各ステップを記載したが、上記Ｓ４にて、プログラマブル表示器１２に格納されるまでに、これらのデータが設定されれば、順序が異なっていてもよい。
【００７２】
さらに、Ｓ５において、プログラマブル表示器１２は、上記制御プログラムに基づいて、ＩＯ・ＩＦ部３１に接続されたデバイス２ａを制御すると共に、上記画面データに基づいて、操作画面を表示する。ここで、上記Ｓ５の処理は、ラダーモニタ画面表示のトリガとなる事象が発生するまでの間（Ｓ６にて、ＮＯの間）、繰り返される。
【００７３】
トリガとなる事象が発生すると（Ｓ６にて、ＹＥＳの場合）、ＨＭＩ処理部２５またはデバイス制御部３３は、Ｓ７において、画面データまたは制御プログラムに従って、ラダーモニタ変数のうち、起動／停止を示す記憶領域を、起動を示す値に変更する。一方、コントロール−ＨＭＩ処理部４１は、当該記憶領域の内容を監視しており、当該記憶領域の内容が起動を示す値になると、ＨＭＩ処理部２５にラダーモニタ画面を表示させる。
【００７４】
具体的には、上記Ｓ７において、コントロール−ＨＭＩ処理部４１は、画面データのうち、予めラダーモニタ用に用意された画面を表示するよう、ＨＭＩ処理部２５へ指示する。これによって、図５および図６に示すように、各ボタンＢ１〜Ｂ３４が表示される。
【００７５】
さらに、コントロール−ＨＭＩ処理部４１は、制御用ファイルメモリ３２の内容を解析して、制御プログラムが示すラダー図に含まれるラダー記号、各ラダー記号間の接続関係、各ラダー記号に対応する変数の名称およびアドレスを把握し、上記ラダー図を含むラダーモニタ画面（図５および図６参照）を表示するよう、ＨＭＩ処理部２５へ指示する。
【００７６】
また、コントロール−ＨＭＩ処理部４１は、制御用ファイルに基づいて、ラダー図を表示するために必要な変数を特定する。また、コントロール−ＨＭＩ処理部４１は、これらの各変数について、デバイス制御部３３へ変数名を通知し、デバイス制御部３３から、変数メモリ２７のアドレスのうち、当該変数名の変数の内容が格納されたアドレスを受け取る。さらに、コントロール−ＨＭＩ処理部４１は、当該アドレスへアクセスして、変数の内容を取得する。
【００７７】
さらに、各変数の内容が取得できると、コントロール−ＨＭＩ処理部４１は、各変数の内容に応じた表示形式で、各変数に対応するラダー記号を表示するよう、ＨＭＩ処理部２５へ指示する。また、変数の名称およびアドレスを変数メモリ２７から取得すると共に、ＨＭＩ処理部２５へ指示して、各ラダー記号に変数名を併記させる。
【００７８】
ここで、各デバイス２ａに対応する変数の内容は、ＨＭＩ処理部２５またはデバイス制御部３３によって更新されており、変数の内容取得および内容に応じた表示指示は、例えば、図５および図６に示すボタンＢ６が押されるなどして、ラダーモニタ画面の表示終了が指示されるまで（Ｓ８にてＹＥＳになるまで）、予め定められた周期で繰り返される。
【００７９】
これにより、ディスプレイ２３には、図５または図６などに示すように、デバイス２ａの状態に応じたラダー図が表示される。したがって、オペレータは、ラダー図に基づいて、異常の原因を推測し、例えば、異常の原因と推定されるデバイス２ａが、正常に動作しているか否かを確認するなど、推測が正しいか否かを確認できる。
【００８０】
また、表示終了が指示されるまでの間、上記コントロール−ＨＭＩ処理部４１は、オペレータからの操作を受け付けると、操作に応じて、ラダーモニタ画面の表示を制御する。これにより、オペレータは、例えば、スクロールや、後述の検索などによって、制御プログラムの他の箇所を参照し、異常の原因を探すことができる。
【００８１】
本実施形態では、ＨＭＩ処理部２５が受け付けたオペレータの操作をコントロール−ＨＭＩ処理部４１に伝えるためにも、ラダーモニタ変数が用いられており、ＨＭＩ処理部２５は、ボタンＢ１〜Ｂ３４へのタッチなど、オペレータからの操作を受け付けると、操作に応じて、ラダーモニタ変数のうち、それぞれの操作に応じた領域を変更する。一方、コントロール−ＨＭＩ処理部４１は、ラダーモニタ変数の内容を監視しており、内容に応じて、ラダーモニタ画面の表示を制御する。
【００８２】
なお、本実施形態に係るコントロール−ＨＭＩ処理部４１は、例えば、タッチパネル２４へのタッチなどによって、ラダー記号の選択を検出すると、当該ラダー記号について、例えば、アドレスや、デバイスの状態の文字表記など、図５および図６では表示されていなかった詳細情報を表示する。これにより、図５や図６のように、概略表示の際の視認性を妨げることなく、注目すべきデバイスの詳細を提示できる。
【００８３】
さらに、本実施形態に係るプログラマブル表示器１２は、制御プログラム全体から、所望の命令を検索する際に必要な手間および時間を削減するために、ある条件にあった命令を検索する際、検索範囲を、命令に含まれる命令語と、オペランドとしての変数とのうちの一方に限定して、検索できるように構成されている。また、命令語を検索範囲とする命令語条件と、変数を検索範囲とする変数条件との双方が指定された場合、命令語が命令語条件にマッチし、しかも、変数が変数条件に合った命令を検索できる。
【００８４】
これにより、制御プログラム全体を検索範囲として文字列検索する場合と異なり、命令語を検索しようとして、コメントや変数が検索条件に合った命令をも検索してしまうという不具合が発生せず、所望の命令語を含む命令のみを検索できる。同様に、所望の変数を含む命令を検索する際、コメントや命令語が検索条件に合った命令をも検索してしまうという不具合が発生せず、所望の変数を含む命令のみを検索できる。この結果、不所望に検索された命令を含む検索結果から所望の命令を見つける手間を削減でき、所望の命令の検索に要する時間を短縮できる。
【００８５】
具体的には、本実施形態に係る制御用ファイルメモリ３２には、図１に示すように、命令語条件が入力された場合に検索される命令語検索用領域（命令語名領域）５１と、変数条件が入力された場合に検索される変数検索用領域（変数名領域）５２とが設けられている。一例として、本実施形態に係る制御用ファイルメモリ３２では、図８に示すように、制御プログラムの各命令が、命令語を示す属性Ａ１と変数を示す属性Ａ２とを有しており、各命令の属性Ａ１を記憶する領域から、上記命令語検索用領域５１が構成されている。また、各命令の属性Ａ２を記憶する領域から、上記変数検索用領域５２が構成されている。
【００８６】
一方、コントロール−ＨＭＩ処理部４１がＨＭＩ処理部２５に表示させるラダーモニタ画面には、図５および図６に示すように、変数条件を入力するために用いられ、変数の一覧表示を指示するボタンＢ２１と、命令語条件を入力するために用いられ、命令語の一覧表示を指示するボタンＢ２２とが設けられている。なお、これらのボタンに加えて、上記ラダーモニタ画面には、制御プログラムの最初（ラング１）からの検索を指示するボタンＢ３１、検索条件の消去を指示するボタンＢ３２、現在の表示位置から前方向への再検索を指示するボタンＢ３３、および、現在の表示位置から後方向への再検索を指示するボタンＢ３４も設けられている。
【００８７】
オペレータによる上記ボタンＢ２２への操作を受け付けるなどして、命令語の一覧表示の指示を受け付けると（図９に示すＳ２１にて、ＹＥＳの場合）、コントロール−ＨＭＩ処理部４１は、Ｓ２２において、ＨＭＩ処理部２５へ指示して、図１０に示すように、ディスプレイ２３に命令語の一覧を表示させて、検索すべき命令語の選択を、オペレータに促す。
【００８８】
なお、命令語の一覧として、それぞれのアイコンを一覧表示してもよいが、本実施形態では、画面中に一覧表示可能な命令語の数を増加させるために、命令語の名称（ニモニック表記）を一覧表示している。また、当該命令語の一覧は、例えば、操作画面と同様に、予め画面データとして用意されていてもよいし、例えば、コントロール−ＨＭＩ処理部４１が制御用ファイルメモリ３２から、制御プログラムを記述した命令セットを読み出して、当該命令セットに含まれる命令語の一覧を作成し、ＨＭＩ処理部２５に表示させてもよい。
【００８９】
Ｓ２３において、例えば、検索すべき命令語が表示された領域へのタッチを受け付けるなど、オペレータによる命令語の選択指示を受け付けると、コントロール−ＨＭＩ処理部４１は、Ｓ２４において、図１１に示すように、図５または図６において、命令語の一覧表示を指示するボタンＢ２２の代わりに、命令語条件として、選択された命令語（この場合は、ＯＵＴ）を表示する。
【００９０】
この状態では、図５および図６と同様に、ラダー図が表示されており、コントロール−ＨＭＩ処理部４１は、図９に示すＳ２１の処理に戻って、次の操作を待ち受ける。
【００９１】
図１１に示すように、命令語の検索条件のみが入力されている状態で、例えば、検索を指示するボタンＢ３１、Ｂ３３またはＢ３４への操作などによって、検索指示を受け付けると（Ｓ２１およびＳ３１にて、ＮＯ、かつ、Ｓ４１で、ＹＥＳの場合）、コントロール−ＨＭＩ処理部４１は、Ｓ４２において、図１に示す命令語検索用領域５１を検索して、命令語条件（この場合は、ＯＵＴ）にマッチした命令を検索する。なお、検索処理でもない場合（Ｓ４１でＮＯの場合）、コントロール−ＨＭＩ処理部４１は、Ｓ５１において、例えば、各ラダー記号の表示更新など、その他の処理を行う。
【００９２】
本実施形態に係る命令語検索用領域５１は、図８に示すように、制御プログラムの各命令を記憶する領域のうち、命令語の属性Ａ１を記憶する領域から構成されている。したがって、検索の結果、属性Ａ１の内容が命令語条件（この場合は、ＯＵＴ）を示す命令Ｃηが発見される。
【００９３】
上記Ｓ４２において、検索条件にマッチした命令が見つかると、コントロール−ＨＭＩ処理部４１は、Ｓ４３において、制御プログラムのうち、当該命令を含む箇所を表示させた後、図９に示すＳ２１の処理に戻って、次の操作を待ち受ける。
【００９４】
本実施形態に係るコントロール−ＨＭＩ処理部４１は、ラダーモニタ画面に表示される箇所を検索結果に応じて変更するだけではなく、図１２に示すように、当該ラダー記号Ｉηを区別するために、検索された命令に対応するラダー記号Ｉηの表示形式を、他と異なる形式（例えば、四角で囲むなど）で表示している。
【００９５】
一方、例えば、オペレータによる上記ボタンＢ２１への操作を受け付けるなどして、変数の一覧表示の指示を受け付けると（Ｓ３１にて、ＹＥＳの場合）、コントロール−ＨＭＩ処理部４１は、Ｓ３２において、ＨＭＩ処理部２５へ指示して、図１３に示すように、ディスプレイ２３に変数の一覧を表示させて、検索すべき変数の選択を、オペレータに促す。また、本実施形態に係るコントロール−ＨＭＩ処理部４１は、各変数を一覧表示する際、変数名と共に、現在の内容も表示しているので、オペレータは、変数の内容から、検索すべきか否かを判断することもできる。さらに、本実施形態では、ボタンＢ２２と共に、全体のページ数（例えば、２）と現在表示中のページ数（例えば、１）とが表示されている。これにより，オペレータは、現在表示されていない変数があるか否かを容易に判断できる。
【００９６】
なお、変数の一覧は、例えば、操作画面と同様に、予め画面データとして用意されていてもよいが、制御プログラムの変更と画面データの変更とが必ずしも一致しているとは限らないので、例えば、コントロール−ＨＭＩ処理部４１が制御用ファイルメモリ３２から、制御プログラムに含まれる変数名を抽出して、変数の一覧を作成し、ＨＭＩ処理部２５に表示させる方が望ましい。また、図１３は、例えば、図５または図６に示すように、検索条件として、命令語が指定されていない状態において、変数の一覧が指示された場合を図示しており、命令一覧の表示を指示するボタンＢ２２が表示されている。
【００９７】
さらに、上記Ｓ２３およびＳ２４と同様に、Ｓ３３において、検索すべき変数の選択が指示されると、コントロール−ＨＭＩ処理部４１は、Ｓ３４において、図１４に示すように、変数の一覧表示を指示するボタンＢ２１（図５参照）の代わりに、変数条件として、選択された変数（この場合は、ＣＴＵＤ）を表示した後、Ｓ２１の処理に戻って、次の操作を待ち受ける。また、本実施形態に係るコントロール−ＨＭＩ処理部４１は、選択された変数の名称と共に、当該変数の現在の値を表示させている。
【００９８】
図１４に示すように、変数の検索条件のみが入力されている状態で、検索指示を受け付けると、コントロール−ＨＭＩ処理部４１は、上記Ｓ４２において、図１に示す変数検索用領域５２を検索して、変数条件（この場合は、ＣＴＵＤ）にマッチした命令を検索する。
【００９９】
本実施形態に係る変数検索用領域５２は、図８に示すように、制御プログラムの各命令を記憶する領域のうち、変数の属性Ａ２を記憶する領域から構成されている。したがって、検索の結果、属性Ａ２の内容が変数条件（この場合は、ＣＴＵＤ）を示す命令Ｃθが発見される。
【０１００】
さらに、本実施形態では、上記命令語条件および変数条件のいずれが先に入力された場合でも、他方の入力を受け付け可能であり、例えば、図１１に示すように、命令語条件（この場合は、ＯＵＴ）が指定された状態で、変数一覧の表示が指示されると（上記Ｓ３１にて、ＹＥＳ）、図１５に示すように、変数の一覧を表示し（Ｓ３２）、変数の選択を受け付け（Ｓ３３）、さらに、選択結果を表示する（Ｓ３４）。これにより、図１６に示すように、検索条件として、命令語条件と変数条件との双方を設定できる。
【０１０１】
なお、上記では、命令語条件が先に指定された場合を例にして説明したが、図１４に示すように、変数条件が設定されている状態で、命令語一覧の表示が指示されると（上記Ｓ２１にて、ＹＥＳ）、命令語の一覧を表示し（Ｓ２２）、命令語の選択を受け付け（Ｓ２３）、さらに、選択結果を表示する（Ｓ２４）。この場合でも、図１６に示すように、検索条件として、命令語条件と変数条件との双方が設定される。
【０１０２】
両条件が設定された状態で、検索が指示されると、コントロール−ＨＭＩ処理部４１は、命令語検索用領域５１に、命令語条件にマッチする命令語が格納され、しかも、変数検索用領域５２に、変数条件にマッチする変数が格納された命令を検索する。
【０１０３】
本実施形態では、制御プログラムの各命令が、命令語を示す属性Ａ１と変数を示す属性Ａ２とを有しており、属性Ａ１が命令語条件（この場合は、ＯＵＴ）にマッチし、しかも、属性Ａ２が変数条件（この場合は、ＣＴＵＤ）にマッチする命令が検索される。この結果、命令Ｃθが発見される。これにより、図１７に示すように、命令Ｃθに対応するラダー記号Ｉθが、他のラダー記号とは異なる表示形式で表示され、検索結果としてオペレータに通知される。
【０１０４】
このように、本実施形態に係るプログラマブル表示器１２は、命令語を検索範囲とする条件と、変数を検索範囲とする条件との双方が設定された場合、両条件にマッチする命令を検索できる。ここで、命令語を検索範囲とする条件および変数を検索範囲とする条件の一方しか設定できない場合、コメントや他方に含まれる文字列などを誤って検索してしまうという不具合が解消できる一方で、同じ命令語が制御プログラム内で同じ命令語または変数が数多く使用されているときには、条件にマッチする命令が多くなり、所望の命令を見つけるのに手間がかかってしまう。ところが、上記両条件にマッチする命令を検索できるので、異常に関連すると推定される命令語と変数との双方を、それぞれの検索条件とすることにより、所望の命令、および、その命令近傍のラングを、より少ない手間で参照できる。例えば、「ある接点がオンしない理由」を知りたい場合に、その接点に割り付けられている変数を、出力コイル命令と絡ませて検索できる。このように、ラダーの動きを追うために、変数やデバイスを検索するとき、それを演算対象とする命令語と合わせて検索できる。この結果、異常の原因を特定し、通常の制御状態に復帰するまでのメンテナンス時間を短縮できる。
【０１０５】
また、本実施形態に係るプログラマブル表示器１２は、上記両条件のいずれが設定されている状態でも、その条件での検索、他方の条件の設定を受け付けることができるので、オペレータは、命令を検索する際、検索条件を思いついた順番で、それぞれの条件を入力できる。また、一方の条件で検索した結果、条件にマッチする命令が多いと判った時点で、他方の条件を入力できる。これらの結果、上記両条件を受け付ける順番が固定されている場合に比べて、命令検索時の操作性を向上できる。
【０１０６】
なお、上記では、各命令が命令語の属性Ａ１と変数の属性Ａ２とを有し、ている場合を例にして説明したが、これに限るものではない。例えば、制御プログラムの各命令について、命令語および変数を、それぞれ読み出すことができるように記憶されていれば、同様の効果が得られる。この場合、コントロール−ＨＭＩ処理部４１は、各命令について、その命令語が記憶されている領域から命令語を読み出し、命令語条件にマッチしているか否かを判定できる。同様に、各命令について、その変数が記憶されている領域から変数を読み出し、変数条件にマッチしているか否かを判定できる。また、これとは逆に、制御プログラムの各命令語および変数のそれぞれについて、どの命令で使用されているかが記憶されていてもよい。この場合であっても、コントロール−ＨＭＩ処理部４１は、命令語が記憶されている領域から、命令語条件にマッチした命令語を検索し、当該命令語が使用されている命令を抽出できる。同様に、変数が記憶されている領域から変数条件にマッチした変数を検索し、当該変数が使用されている命令を抽出できる。いずれの場合であっても、命令語が記憶されている領域と、変数が記憶されている領域とが分けて設けられ、命令語条件が設定された場合には、前者を参照して該条件にマッチした命令を検索し、変数条件が設定された場合には、後者を参照して該条件にマッチした命令を検索できれば、同様の効果が得られる。
【０１０７】
また、上記では、制御用ファイルメモリ３２に記憶された制御プログラムを、デバイス制御部３３による制御プログラムの実行と、コントロール−ＨＭＩ処理部４１による検索との双方で使用している場合を例にして説明したが、両者が同じ手順を示していれば、実行に適した形式の制御プログラムと、検索に適した形式の制御プログラムとを別々に記憶してもよい。
【０１０８】
なお、上記では、プログラマブル表示器１２のラダーモニタ画面の起動や画面への操作を、デバイス２ａやプログラマブル表示器１２の記憶領域あるいはマクロの演算結果などに対応付け可能な変数で制御する場合を例にして説明したが、例えば、制御用ホストコンピュータ１４にて、ラダーモニタ画面を表示／操作する場合であっても、略同様の効果が得られる。
【０１０９】
ただし、本実施形態のように、ターゲットシステム２の近傍（現場）にて、オペレータに操作されるプログラマブル表示器１２へ、ラダーモニタ画面を表示できると、異常が発生した場合に、現場に新たな機器を持ち込むことなく、これらの画面を参照して、異常の原因を追求できる。
【０１１０】
なお、現場にて対処する場合、制御用ホストコンピュータ１４など、遠隔地で対応する場合と異なり、ラダーモニタを自動起動する程に重要な事象は、ユーザが特に重要と判断した異常に限られ、各ユーザ毎に異なっているため、予め定めておくことが難しい。また、ユーザによっては、トリガとなる事象として、デバイス２ａの状態だけではなく、プログラマブル表示器１２の記憶領域の内容やマクロの演算結果などを希望することもある。したがって、本実施形態のように、プログラマブル表示器１２にて、ラダーモニタ画面の表示や画面への操作を上記のいずれにも関連付け可能な変数で制御できる方が望ましい。
【０１１１】
なお、上記各部材２１〜５２は、ＣＰＵなどの演算手段が、ＲＯＭやＲＡＭなどの記憶手段に格納されたプログラムを実行し、タッチパネルや液晶表示装置などの入出力手段、あるいは、インターフェース回路などの通信回路を制御することによって実現される機能ブロックである。したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体（例えば、ＣＤ−ＲＯＭなど）を読み取り、当該プログラムを実行するだけで、本実施形態に係るプログラマブル表示器１２を実現できる。なお、例えば、シリアルケーブルやＬＡＮ１３あるいは、他の通信路を介してプログラムをダウンロードするためのプログラムが、上記コンピュータに予めインストールされていれば、当該通信路を介して、上記コンピュータへ上記プログラムを配付することもできる。
【０１１２】
【発明の効果】
請求項１の発明に係る制御プログラム検索装置は、以上のように、検索範囲を命令語または変数に限定した条件の入力を受け付け可能であり、検索範囲が命令語に限定された命令語条件が入力された場合、制御プログラムから、命令語が命令語条件に合った命令を検索すると共に、検索対象が変数に限定された変数条件が入力された場合は、上記制御プログラムから、変数が変数条件に合った命令を検索する検索手段が設けられている構成である。また、請求項７の発明に係るプログラムは、請求項１記載の各手段としてコンピュータを動作させるプログラムであり、当該プログラムがコンピュータで実行されると、当該コンピュータは、請求項１記載の制御プログラム検索装置として動作する。
【０１１３】
上記構成では、検索範囲を命令語または変数に限定して検索できるので、不所望に検索された命令を含む検索結果から所望の命令を見つける手間を削減でき、所望の命令の検索に要する時間を短縮できるという効果を奏する。
【０１１４】
請求項２の発明に係る制御プログラム検索装置は、以上のように、請求項１記載の発明の構成において、上記制御プログラムでは、変数名として、命令語名を含む文字列を使用可能であり、上記記憶手段には、制御プログラムに出現する変数の変数名が記憶された変数名領域と、制御プログラムに出現する命令語の命令語名が記憶された命令語名領域とが含まれていると共に、上記検索手段は、命令語条件として、命令語名が入力された場合、命令語名領域を検索し、変数条件として、変数条件が入力された場合、変数名領域を検索する構成である。
【０１１５】
上記構成では、変数名として、命令語名を含む文字列を使用できるので、変数名として設定可能な文字列の数が増え、制御プログラム検索装置のユーザにとって読みやすい変数名を設定しやすくなる。また、この場合であっても、検索範囲に応じて、命令語名領域および変数名領域の一方を検索するので、何ら支障なく、命令語名または変数名が検索条件に合った命令を検索できる。この結果、可読性の向上と、所望の命令検索に要する時間短縮との双方を満足した制御プログラム検索装置を実現できるという効果を奏する。
【０１１６】
請求項３の発明に係る制御プログラム検索装置は、以上のように、請求項１または２記載の発明の構成において、上記記憶手段に記憶された制御プログラム、または、それと同一手順の制御プログラムに基づいて、制御対象を制御する制御手段を備えている構成である。
【０１１７】
上記構成では、制御プログラム検索装置が制御手段をも備えているので、制御プログラム検索装置は、制御プログラムに基づいて制御対象を制御する制御装置として動作できる。したがって、当該制御装置が制御対象を制御している間に、制御システムに異常が発生しても、新たな装置を特に接続することなく、制御装置の制御プログラムから異常に関連すると推定される命令を検索できる。ここで、上述のように、検索手段は、検索範囲を命令語または変数に限定して検索できるので、所望の命令を検索する際の時間を短縮できる。これらの結果、異常の原因をより速く特定でき、制御装置を含む制御システムが異常から復帰するために必要な時間を短縮できるという効果を奏する。
【０１１８】
請求項４の発明に係る制御プログラム検索装置は、以上のように、請求項１、２または３記載の発明の構成において、上記検索手段は、検索の条件として、上記命令語条件と変数条件との双方が入力され、アンド検索が指示された場合、命令語が命令語条件に合い、しかも、変数が変数条件に合った命令を検索する構成である。
【０１１９】
上記構成では、命令語条件と変数条件とをアンド検索できるので、ある命令語または変数が制御プログラム中で数多く使用されており、一方の条件だけでは、所望の命令の検索に手間がかかる場合であっても、所望の命令をより速く検索できるという効果を奏する。
【０１２０】
請求項５の発明に係る制御プログラム検索装置は、以上のように、請求項４記載の発明の構成において、上記検索手段は、上記命令語条件および変数条件のいずれが先に入力された場合でも、他方の入力を受け付け可能である構成である。
【０１２１】
上記構成では、上記命令語条件および変数条件のいずれが先に入力された場合でも、検索手段は、他方の入力を受け付けることができるので、制御プログラム検索装置のユーザは、検索条件を思いついた順番で、各検索条件を指定でき、制御プログラム検索装置の操作性を向上できるという効果を奏する。
【０１２２】
請求項６の発明に係る制御プログラム検索装置は、以上のように、請求項１、２、３、４または５記載の発明の構成において、上記検索手段は、指示に応じて、上記制御プログラムに含まれる命令語あるいは変数の一覧を表示し、上記命令語条件で指定する命令語、あるいは、上記変数条件で指定する変数の選択を促す構成である。
【０１２３】
上記構成では、制御プログラム検索装置のユーザは、命令語条件で指定する命令語または変数条件で指定する変数を入力する際、一覧表示された命令語または変数の中から選択するだけで入力できるので、制御プログラム検索装置の操作性を向上できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施形態を示すものであり、制御システムの要部構成を示すブロック図である。
【図２】上記制御システムのプログラマブル表示器の変数メモリに格納される変数のデータ構造を示す図面である。
【図３】上記プログラマブル表示器のプログラマブル・ロジック・コントローラ機能で実行される制御プログラムを、ラダープログラムとして記載した図面である。
【図４】上記制御プログラムをニモニック表記した図面である。
【図５】上記プログラマブル表示器で表示されるラダーモニタの画面例を示す図面である。
【図６】上記ラダーモニタの画面例を示すものであり、第１接点が閉じた状態を示す図面である。
【図７】上記制御システムの動作の概略を示すフローチャートである。
【図８】上記プログラマブル表示器の制御用ファイルメモリに記憶される制御プログラムを示す図面である。
【図９】上記プログラマブル表示器の動作を示すものであり、ラダーモニタ画面での検索時の動作を示すフローチャートである。
【図１０】上記ラダーモニタの画面例を示すものであり、命令語一覧が表示された状態を示す図面である。
【図１１】上記ラダーモニタの画面例を示すものであり、検索すべき命令語が選択された状態を示す図面である。
【図１２】上記ラダーモニタの画面例を示すものであり、上記命令語での検索結果が表示された状態を示す図面である。
【図１３】上記ラダーモニタの画面例を示すものであり、変数一覧が表示された状態を示す図面である。
【図１４】上記ラダーモニタの画面例を示すものであり、検索すべき変数が選択された状態を示す図面である。
【図１５】上記ラダーモニタの画面例を示すものであり、検索すべき命令語が指定されている状態で、変数一覧を表示している場合を示す図面である。
【図１６】上記ラダーモニタの画面例を示すものであり、検索すべき命令語および変数が指定された状態を示す図面である。
【図１７】上記ラダーモニタの画面例を示すものであり、上記命令語および変数での検索結果が表示された状態を示す図面である。
【符号の説明】
２ａ　デバイス（制御対象）
１２　　プログラマブル表示器（制御プログラム検索装置）
３２　　制御用ファイルメモリ（記憶手段）
３３　　デバイス制御部（制御手段）
４１　　コントロール−ＨＭＩ処理部（検索手段）
５１　　命令語検索用領域（命令語名領域）
５２　　変数検索用領域（変数名領域）
【図１】
2004005060.tif 000003
【図２】
2004005060.tif 000004
【図３】
2004005060.tif 000005
【図４】
2004005060.tif 000006
【図５】
2004005060.tif 000007
【図６】
2004005060.tif 000008
【図７】
2004005060.tif 000009
【図８】
2004005060.tif 000010
【図９】
2004005060.tif 000011
【図１０】
2004005060.tif 000012
【図１１】
2004005060.tif 000013
【図１２】
2004005060.tif 000014
【図１３】
2004005060.tif 000015
【図１４】
2004005060.tif 000016
【図１５】
2004005060.tif 000017
【図１６】
2004005060.tif 000018
【図１７】
2004005060.tif 000019