(57)【要約】【課題】  プログラマブルコントローラ用のプログラム作成・編集の際に、命令語のオペランドとして使用する変数の検索性を高め制御プログラムの開発効率を高めることができるプログラム開発支援装置を提供すること【解決手段】  制御プログラム開発支援装置１０は、プログラムエディタと変数テーブルを有し、プログラムエディタは各命令語に対応するオペランドを入力するためのオペランド入力部を有する。プログラムエディタを用いて制御プログラムを作成・編集中に、所定の命令に対するオペランドを入力しようとした場合、オペランド入力部１６を用い、変数名を入力する。変数テーブルは変数名、内部メモリアドレス、Ｉ／Ｏコメントの変数データを関連づけたテーブルとなり、オペランド入力部を用いてキーワード（文字列）が指定されると、変数テーブルをアクセスし、指定された文字列を含む変数データを抽出し、該当する変数だけを表示する。このように表示する変数を絞り込むことによって、変数の検索性を高め制御プログラムの開発効率を高めることができる【選択図】        図３
2005352612.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラの内部メモリアドレスを識別する文字列として割り当てた変数名を用いてそのプログラマブルコントローラ用のプログラムを作成するプログラム開発支援装置において、
前記プログラムを構成する命令語のオペランドを入力する際、予め記憶保持した変数名の中から、入力された文字列を含む変数名を抽出し、その変数名の一覧を表示する変数名表示手段と、
その変数名表示手段で表示された変数名から所望の変数名を指定する変数名指定手段とを備え、その変数名指定手段で指定された変数名に基づいて前記オペランドの入力が行なわれるようにしたことを特徴とするプログラム開発支援装置。
【請求項２】
プログラマブルコントローラの内部メモリアドレスを識別する文字列として割り当てた変数名を用いてそのプログラマブルコントローラ用のプログラムを作成するプログラム開発支援装置において、
変数名、内部メモリアドレス、Ｉ／Ｏコメントからなる変数テーブルを備え、
当該変数テーブル内の変数名，内部メモリアドレス，Ｉ／Ｏコメントの少なくとも１種類を検索対象とし、
前記プログラムを構成する命令語のオペランドを入力する際、前記検索対象の中から、入力された文字列を含むデータを抽出し、そのデータに対応する変数名の一覧を表示する変数名表示手段と、
その変数名表示手段で表示された変数名から所望の変数名を指定する変数名指定手段とを備え、その変数名指定手段で指定された変数名に基づいて前記オペランドの入力が行なわれるようにしたことを特徴とするプログラム開発支援装置。
【請求項３】
前記変数名表示手段は、前記変数名の一覧を表示するに際し、内部メモリアドレスと、その該内部メモリアドレスの意味的な付加情報であるＩ／Ｏコメントの少なくとも一方を変数名に対応させて表示するようにしたことを特徴とする請求項１または２に記載のプログラム開発支援装置。
【請求項４】
プログラマブルコントローラの内部メモリアドレスを識別する文字列として割り当てた変数名を用いてそのプログラマブルコントローラ用のプログラムを作成するプログラム開発支援装置における変数名リスト表示方法であって、
前記プログラムを構成する命令語のオペランドを入力する際、予め記憶保持した変数名の中から、入力された文字列を含む変数名を抽出する処理、
その抽出した変数名の一覧リストを生成する処理、
その生成した一覧リストを表示する処理、
を含む変数名リスト表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラム開発支援装置および変数名リスト表示方法に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラ（ＰＬＣ）内で動作する制御プログラムでは、命令語に対するオペランドとしてＰＬＣのメモリアドレスを割り当てている。そこで、ユーザがＰＬＣの制御プログラムを作成する場合、命令語のオペランドとしてＰＬＣの内部メモリのメモリアドレスを入力する。このメモリアドレスの入力方法としては、メモリアドレスを直接入力する方法と、メモリアドレスにあらかじめ割り当てておいた変数を入力する方法とがある。この変数には、メモリアドレスに対応する名称や、Ｉ／Ｏコメントを割り当てることができる。
【０００３】
ところで、変数を入力する場合、一字一句正しい名称を入力する必要があるが、千個以上もある多数の全ての変数を正しく記憶し、入力するのは非常に煩雑であり、困難である。そこで、従来の制御プログラム開発支援装置では、プログラムエディタ上でオペランドとして使用することが可能な変数を一覧表示する機能を持っている。ユーザは、その一覧表示された変数の中から必要な変数を選択することができる。
【０００４】
また、オペランドに指定しようとしている変数を、名称の前方一致検索によって探し出す機能を備えたものもある。これは、プログラム開発支援装置は、予め使用可能な変数の名称を、例えば５０音順などにソートした名称データベースを備え、ユーザが入力した名称をキーに、名称データベースの先頭から順にサーチして前方一致検索を行なう。そして、最初に条件に合致する名称を検出したならば、その名称を一覧リスト表示画面の先頭に来るように出力表示する。
【０００５】
つまり、上記の一覧表示する機能の場合、常に全変数の先頭を一覧リスト表示画面の先頭に来るように出力表示し、ダウンスクロールなどして該当する変数を探すことになるが、後者の前方一致検索の場合、表示対象の変数は全変数である点では共通するものの一覧表示画面の最初に表示する先頭の変数が、前方一致検索で探し出された名称を表示する点で相違する。したがって、後者の前方一致検索を行なった場合も、アップスクロールやダウンスクロールすることにより、全ての変数を見ることはできる。また、入力された文字列から正しいプログラム用文字列を抽出し表示するプログラム開発装置が特許文献１に記載されている。
【０００６】
【特許文献１】実開平５−６６７０２
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の特許文献１に示された技術では、検索対象となるのは命令語の名称であり、命令語のオペランドではない。また、オペランドを検索対象とした従来技術では、検索対象が名称のみで、メモリアドレスやＩ／Ｏコメントの検索ができない。さらに、変数の名称（変数名）の前方一致検索のため、変数名やＩ／Ｏコメントの途中から出現する文字列しか憶えてない場合は、検索できない。さらに、結局全ての変数が出力されるため、変数名が多い場合は、一覧表示では見つけにくい。さらに、変数を一覧表示したときに名称しか表示されないため、その名称が実際にはどのアドレスに割り当てられているのかが分からず、使い勝手が良くない。
【０００８】
この発明は、プログラマブルコントローラ用のプログラム作成・編集の際に、命令語のオペランドとして使用する変数の検索性を高め制御プログラムの開発効率を高めることができるプログラム開発支援装置および変数名リスト表示方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記した目的を達成するため、本発明のプログラム開発支援装置は、プログラマブルコントローラの内部メモリアドレスを識別する文字列として割り当てた変数名を用いてそのプログラマブルコントローラ用のプログラムを作成するプログラム開発支援装置において、前記プログラムを構成する命令語のオペランドを入力する際、予め記憶保持した変数名の中から、入力された文字列を含む変数名を抽出し、その変数名の一覧を表示する変数名表示手段と、その変数名表示手段で表示された変数名から所望の変数名を指定する変数名指定手段とを備え、その変数名指定手段で指定された変数名に基づいて前記オペランドの入力が行なわれるようにした。
【００１０】
また、プログラマブルコントローラの内部メモリアドレスを識別する文字列として割り当てた変数名を用いてそのプログラマブルコントローラ用のプログラムを作成するプログラム開発支援装置において、変数名、内部メモリアドレス、Ｉ／Ｏコメントからなる変数テーブルを備え、当該変数テーブル内の変数名，内部メモリアドレス，Ｉ／Ｏコメントの少なくとも１種類を検索対象とし、前記プログラムを構成する命令語のオペランドを入力する際、前記検索対象の中から、入力された文字列を含むデータを抽出し、そのデータに対応する変数名の一覧を表示する変数名表示手段と、その変数名表示手段で表示された変数名から所望の変数名を指定する変数名指定手段とを備え、その変数名指定手段で指定された変数名に基づいて前記オペランドの入力が行なわれるようにすることもできる。
【００１１】
前記変数名表示手段は、前記変数名の一覧を表示するに際し、内部メモリアドレスと、その該内部メモリアドレスの意味的な付加情報であるＩ／Ｏコメントの少なくとも一方を変数名に対応させて表示することができる。
【００１２】
一方、本発明に係る変数名リスト表示方法は、プログラマブルコントローラの内部メモリアドレスを識別する文字列として割り当てた変数名を用いてそのプログラマブルコントローラ用のプログラムを作成するプログラム開発支援装置における変数名リスト表示方法であって、前記プログラムを構成する命令語のオペランドを入力する際、予め記憶保持した変数名の中から、入力された文字列を含む変数名を抽出する処理と、その抽出した変数名の一覧リストを生成する処理と、その生成した一覧リストを表示する処理とを含むようにした。
【００１３】
本発明によれば、入力された文字列（キーワード）を含む変数名や、Ｉ／Ｏコメント，メモリアドレスの存在の有無を検索し、存在するもののみを抽出し変数名リストとして表示する。従って、指定した文字列（キーワード）が、変数名等のどの位置にあっても検出し、リストとして表示される。そして、オペランドとして使用可能な変数を一覧表示するときに、キーワードを含む変数だけに絞り込んだ一覧を表示することができるので、ユーザは、絞り込まれたリストの中から使用する変数を指定すればよく、目的とする変数を容易に検索できる。
【００１４】
検索対象は、上記の３つの全てとしても良いし、任意の２つ或いは１つとしても良い。検索対象をどのようにするかは、予め設定しておくと良い。検索対象の設定を適宜にすることにより、変数名のみならずＩ／Ｏコメントの途中に指定した文字列が存在する場合でも検索することができ、変数の検索性を高めることができる。
【００１５】
一覧リストを表示するに際し、変数名のみでなく、Ｉ／Ｏコメント等の情報も併せて表示するようにした場合には、ユーザはその内容を理解しやすくなる。また、メモリアドレスを併せて表示するようにした場合には、一覧から変数を選択するときに、指定する変数名がどのアドレスに割り当てられているかを確認することができる。
【発明の効果】
【００１６】
この発明では、プログラマブルコントローラ用のプログラム作成・編集の際に、指定した文字列をキーに絞り込んで生成された変数の一覧リストを出力し、そこから使用する変数を指定できるようになるので、命令語のオペランドとして使用する変数の検索性を高め制御プログラムの開発効率を高めることができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の好適な一実施の形態を示している。制御プログラム開発支援装置１０は、所定の通信ケーブルやネットワークなどの通信回線２１を介してＰＬＣ２０に接続される。制御プログラム開発支援装置１０にて作成した制御プログラムは、通信回線２１を介してＰＬＣ２０にダウンロードされる。
【００１８】
制御プログラム開発支援装置１０は、各種の制御を司るＭＰＵ１１と、キーボード，ポインティングデバイス等の入力装置からの入力を受ける入力部１２と、表示装置に所定の情報を出力する表示部１３と、記憶装置１４と、通信インタフェース１５とを備えている。本実施の形態では、この通信インタフェース１５を介して制御プログラムをＰＬＣ２０にダウンロードする。また、記憶装置１４には、図２に示すような変数について割り当てられた名称である変数名とメモリアドレスとＩ／Ｏコメントを関連づけた変数テーブルが格納される。この変数テーブルは、全ての変数について登録されるが、その並び順は、例えば変数名に基づいて５０音順などでソートした状態で格納される。このように変数名に基づいてソートするのは、特に全ての変数を一覧表示する場合の見やすさを考慮したものであり、必ずしもソートしていなくても良い。
【００１９】
図３は、本実施の形態の制御プログラム開発支援装置１０の機能に着目して記載した構成図である。この制御プログラム開発支援装置１０は、プログラムエディタと変数テーブルを有し、プログラムエディタは各命令語に対応するオペランドを入力するためのオペランド入力部を有する。プログラムエディタは、ＭＰＵ１１の１つの機能として実装される。プログラムエディタを用いて制御プログラムを作成・編集中に、所定の命令に対するオペランドを入力しようとした場合、オペランド入力部１６を用い、変数の名称（変数名）やメモリアドレス等の文字列を入力する。
【００２０】
このオペランド入力部１６は、入力部１２の一機能であり、表示装置の所定エリアに表示させ、入力装置を操作してそのオペランド入力部１６の各部に対して操作された命令内容を入力部１２が取得し、ＭＰＵ１１に渡す。そして、ＭＰＵ１１が与えられた命令内容を理解し、所定の処理を実行する。
【００２１】
図４は、オペランド入力部１６を示している。図４に示すように、上欄にタイトル表示領域１６ａが配置され、下欄左方にオペランド入力用エディットボックス１６ｂが配置され、その下欄のオペランド入力用エディットボックス１６ｂの右端には、三角形のマークが記された検索開始指示ボタン１６ｃが配置され、さらにその右側にＯＫボタン１６ｄ，Ｃａｎｃｅｌボタン１６ｅがそれぞれ用意されている。
【００２２】
このオペランド入力部はエディットボックスを有し、ユーザはこのエディットボックスにメモリアドレスまたは変数の名称（変数名）を入力することによって命令語に対応するオペランドを入力する。
【００２３】
タイトル表示領域１６ａは、現在処理中の命令に関する情報が表示される。つまり、例えば、作成・編集中の制御プログラム（ラダープログラム）を表示させた状態で、オペランドを入力する対象の命令をポインティングデバイスなどにより指定すると、その命令にすでにオペランドが設定されているか否かを判断し、未設定の場合には新規に入力することになるので、例えば「○○の入力」などと標記され、設定済みの場合には編集処理となるので、例えば「○○の編集」などと標記される。ここで、「○○」は、ａ接点，ｂ接点など命令の種類が記述される。
【００２４】
オペランド入力用エディットボックス１６ｂは、オペランドを入力するためのエリアであるが、本実施の形態では、さらにオペランドである変数を検出するためのキーワードを入力するエリアとしても用いられる。すなわち、図４に示すように、オペランド入力用テキストボックス１６ｂに、キーボード等の入力装置を操作して「完了」なるキーワードを入力したとする。この状態では、オペランドである変数の名称（変数名）を入力したのか、その変数名を検索するためのキーワードを入力したのか不明である。そこで、検索開始指示ボタン１６ｃが押下（クリック）されると、キーワードと判断し、変数テーブルにアクセスしてキーワードに一致するテキストを含む変数を抽出し、出力する（図５参照）。本実施の形態では、変数テーブル中の「変数名」と「Ｉ／Ｏコメント」の欄に格納されたテキスト中にキーワードを含む（存在場所は問わず）ものを抽出する。
【００２５】
また、ＯＫボタン１６ｄが押下（クリック）されると、変数の変数名を入力したと判断し、オペランドの設定を行なう。このとき、例えば変数テーブルを参照し、入力されたテキストと完全一致する変数名を持つ変数が存在するか否かを判断し、存在する場合には、その変数名に基づくオペランドの設定を行ない、存在しない場合には、所定のエラー処理をする。この処理は、従来と同様である。
【００２６】
一方、図５のようにキーワードを、変数名，Ｉ／Ｏコメントのいずれかに含む変数をピックアップしてリスト表示されたならば、該当するもの（例えば、「工程２処理完了」）を選択する。この選択は、例えば、マウス等のポインティングデバイスを操作して該当する変数の位置にポインタを移動した状態で、ポインティングデバイスの所定のボタンをクリックして指定した状態で「エンターキー」を押下したり、所定のボタンのダブルクリックなど各種の方式をとれる。
【００２７】
これにより、図６に示すように、オペランド入力用エディットボックスに選択された変数名が表示される。よって、この状態でＯＫボタン１６ｄをクリックすると、選択された変数名に基づき制御プログラム中の処理対象の命令に対するオペランドの設定が行なわれる。
【００２８】
また、上述したいずれのタイミングでも、Ｃａｎｃｅｌｌボタン１６ｅを押下（クリック）すると、オペランド入力部１６を表示装置の所定エリアから消去する。
【００２９】
図７は、従来方式の一覧リスト表示した例を示している。全ての変数がリストアップされるため、図５と比較しても明らかなように、表示される変数の数が多く目的の変数を探すのが煩雑である。また、多くの場合、初期画面には目的の変数が表示されず、スクロールして見つけることになるので、スクロール中に見落とす可能性が高くなる。これに対し、図５に示すように、本実施の形態の方式によれば、変数が絞り込まれて表示されるので、容易に見つけることができる。
【００３０】
また、変数の名称とともに、メモリアドレスやＩ／Ｏコメントも併せて表示するため、内容を理解しやすく、より簡単かつ迅速に目的の変数を特定できる。さらに、従来方式では、全ての変数を一覧表示するか、前方一致検索して該当の変数を先頭に持ってくるだけであるため、図５に例示した「完了」なるキーワードを入力しても前方一致によって抽出することはできない。
【００３１】
もちろん、変数の名称の一部を覚えていれば、上述した絞り込み処理が行えるが、全く覚えていない場合や、不正確で目的の変数を検出できない場合には、従来と同様に一覧リスト表示させる必要がある。そこで本実施の形態では、オペランド入力用エディットボックス１６ｂに未入力の状態で検索開始指示ボタン１６ｃが押下（クリック）されると、変数テーブルに格納された全ての変数を抽出し、リスト表示する機能を付加している。
【００３２】
次に、上述した図４から図６，図７の処理、つまり、検索開始指示ボタン１６ｃが押下（クリック）されたことに伴い、変数リストを作成し表示する機能について説明する。係る機能は、図８に示すフローチャートをＭＰＵ１１が実行することにより実現される。すなわち、検索開示指示ボタン１６ｃが押下されると、まずｎを０にセットし（Ｓ１）、現在のｎの値が変数の総数未満か否かを判断する（Ｓ２）。本実施の形態では、変数テーブルの先頭が０番となっている。よって、変数の総数がＮとすると、最終の変数はＮ−１番となり、ｎ＝Ｎとなる全ての変数に対する処理が終了したことになる。総数未満の場合は、未処理の変数が変数テーブルに残っているため、Ｓ３に進みｎ番目の変数データを取得する。取得する変数データは、変数テーブルに格納されたｎ番の変数について関連付けられた全てのデータである。
【００３３】
オペランド入力用テキストボックス１６ｂにキーワードが入力されているか否かを判断する（Ｓ４）。そして、キーワードが入力されていると、取得した変数データ中の変数名とＩ／Ｏコメントの中に入力されたキーワードと一致する文字列があるか否かを判断する（Ｓ５）。
【００３４】
存在している場合には、取得した変数データを変数「変数名」，「メモリアドレス」，「Ｉ／Ｏコメント」に整形し（Ｓ６）、変数リストに追加する（Ｓ７）。なお、本実施の形態では、変数テーブルが、「変数名」，「メモリアドレス」，「Ｉ／Ｏコメント」となっているため、Ｓ６の処理は特に行なわなくても良いが、変数テーブルに他の目的のため上記３つ以外のデータも関連づけて登録されている場合には、Ｓ６を実行することにより必要なデータのみ抽出する。その後、ｎを１インクリメントし（Ｓ８）、Ｓ２に戻る。これにより、次の変数について上記の処理を行なうことができる。
【００３５】
また、処理対象のｎ番の変数の変数データにキーワードと一致する文字列が存在しない場合には、Ｓ４の分岐判断がＮｏとなり、Ｓ８に飛びｎを１インクリメントし（Ｓ８）、Ｓ２に戻る。これにより、Ｓ６，Ｓ７がスキップされるため、変数リストには登録されず、次の変数に対する処理に移行する。
【００３６】
また、キーワードが入力されていない場合には、Ｓ３の分岐判断がＮｏとなるので、Ｓ６に飛び、取得した変数データを変数「変数名」，「メモリアドレス」，「Ｉ／Ｏコメント」に整形した後、変数リストに追加する（Ｓ７）。その後、ｎを１インクリメントし（Ｓ８）、Ｓ２に戻る。これにより、次の変数について上記の処理を行なうことができる。
【００３７】
そして、上述した処理を繰り返し実行し、最後の変数について処理をした後、Ｓ８を実行することにより、ｎが変数の数になるので、Ｓ２の分岐判断でＮｏとなる。すると、Ｓ９に飛び、Ｓ７を繰り返し実行して変数データを順次追加して生成された変数リストを表示する（Ｓ９）。
【００３８】
上記のように、キーワードが入力された場合には、そのキーワードと一致する文字列を含むもののみが抽出されるため、表示された変数リストは絞り込まれたものとなる。また、キーワードが入力されていない場合には、Ｓ３からＳ６スキップするため、全ての変数データが変数リストに追加される。
【００３９】
本実施の形態によれば、以下に挙げるような作用効果を奏するため、ＰＬＣの制御プログラムの開発効率を向上することができる。すなわち、（１）キーワードを含む変数だけを一覧表示するので、変数の検索性が向上する。（２）キーワードを変数名に含む変数だけでなく、キーワードをＩ／Ｏコメントに含む変数も検索の対象とすることができる。また、検索対象を変数名のみにするか、Ｉ／Ｏコメントのみにするか、両方とも対象とするかを選択することができる。（３）キーワードが、変数名やＩ／Ｏコメントの先頭にある変数だけではなく、その途中にある変数も検索対象とする。これによって、ユーザが変数の一部分しか憶えていなくても、オペランドとして入力しようとしている変数を検索することができる。（４）一覧表示に変数の変数名だけでなくメモリアドレスも表示されるので、オペランドとして選択した変数が実際にはどのアドレスに割り当てられているのかを確認することができる。
【００４０】
上述した実施の形態では、変数名とＩ／Ｏコメントの両方に対して検索するようにしたが、いずれか一方でも良いし、或いは、メモリアドレスに対して検索するようにすることもできる。また、表示する一覧リストの形態としては、変数名とメモリアドレスとＩ／Ｏコメントを併記して表示するようにしたが、変数名を含む２種類或いは変数名のみでも良いし、さらに別の情報を表示するようにしても良い。
【００４１】
また、本願実施の形態では、プログラマブルコントローラ用のプログラム作成・編集の際に、命令語のオペランドとして入力する変数名の検索について述べたが、本発明はこれに限るものではない。例えば、ＰＬＣのメモリアドレスの状態をモニタする場合のメモリアドレスや変数名の入力時、あるいは、プログラム中の命令語を検索する場合のメモリアドレスや変数名の入力時等にも本発明を適用することは容易である。
【図面の簡単な説明】
【００４２】
【図１】本発明の好適な一実施の形態を示す図である。
【図２】変数テーブルの内部構造の一例を示す図である。
【図３】本発明の好適な一実施の形態を示す図である。
【図４】オペランド入力部の一例を示す図である。
【図５】作用を説明する図である。
【図６】作用を説明する図である。
【図７】比較例を示す図である。
【図８】一覧リストの生成機能を示すフローチャートである。
【符号の説明】
【００４３】
１０  プログラム開発支援装置
１１  ＭＰＵ
１２  入力部
１３  表示部
１４  記憶装置
１５  通信インタフェース
１６  オペランド入力部
【図１】
2005352612.tif 000003
【図２】
2005352612.tif 000004
【図３】
2005352612.tif 000005
【図４】
2005352612.tif 000006
【図５】
2005352612.tif 000007
【図６】
2005352612.tif 000008
【図７】
2005352612.tif 000009
【図８】
2005352612.tif 000010