JP2006146955A - 開発支援装置 - Google Patents

開発支援装置 Download PDF

Info

Publication number
JP2006146955A
JP2006146955A JP2006013759A JP2006013759A JP2006146955A JP 2006146955 A JP2006146955 A JP 2006146955A JP 2006013759 A JP2006013759 A JP 2006013759A JP 2006013759 A JP2006013759 A JP 2006013759A JP 2006146955 A JP2006146955 A JP 2006146955A
Authority
JP
Japan
Prior art keywords
program
outline information
ladder
user program
displayed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006013759A
Other languages
English (en)
Inventor
Makoto Inoue
誠 井上
Masaru Tsutsui
賢 筒井
Takashi Miyake
高志 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2006013759A priority Critical patent/JP2006146955A/ja
Publication of JP2006146955A publication Critical patent/JP2006146955A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】プログラム中の各構成要素についても一意に特定でき、ユーザプログラムのデバッグ・編集等が容易に行える開発支援装置を提供すること。
【解決手段】ラダープログラムを記憶するラダープログラム記憶部34aと、そのラダープログラムを構成する出力命令を含む所定の構成要素を、そのラダープログラム上での出現順の情報とともに記録したアウトライン情報記憶部34bを備える。表示画面には、ラダープログラムを表示するラダー表示部と、アウトライン情報表示部を設け、構成要素には、固有のインデックス番号が付し、その固有のインデックス番号を用いてアウトライン情報と、ラダープログラムを連係させる。クロスリファレンス情報生成部33cは、ララダープログラム上で指定された命令と同一のオペランドを有する命令を抽出し、その抽出した命令に関する情報をクロスリファレンス情報表示部に表示する。
【選択図】図15

Description

この発明は、ユーザプログラムの開発支援装置に関するものである。
ファクトリーオートメーション(FA)の制御装置として、プログラマブルコントローラ(PLC)が用いられている。このPLCは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット,PLC全体の制御を統率するCPUユニット,FAの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット,アクチュエータなどに制御出力を出す出力ユニット,通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。
PLCのCPUユニットにおける制御は、入力ユニットで入力した信号をCPUユニットのI/Oメモリに取り込み(INリフレッシュ)、予め登録されたラダー言語で組まれたユーザプログラムに基づき論理演算をし(演算実行)、その演算実行結果をI/Oメモリに書き込んで出力ユニットに送り出し(OUTリフレッシュ)、その後、いわゆる周辺処理を行うということをサイクリックに繰り返し処理するようになる。
上記したユーザプログラムは、通常、開発支援装置を用いて生成したラダープログラムであり、通信回線を介してPLCのCPUユニットにダウンロードする。また、作成したラダープログラムに不具合が生じた場合には、ユーザは開発支援装置の表示画面にそのラダープログラムを表示させて検証し、不良箇所を見つけて修正作業を行なう。そして、修正したラダープログラムをPLCにダウンロードする。
ラダープログラムのデバッグの作業は、想定外の動作をした出力命令のオペランド(接点番号やメモリ番号)をキーにして、その出力命令に関連する入力命令または出力命令を探して、ラダープログラムを修正、編集することを繰り返す。接点番号は、入力ユニットの端子台の端子場所を示す端子番号や、出力ユニットの端子台の端子場所を示す端子番号である。メモリ番号は、プログラマブルコントローラ内のIOデータメモリのアドレス値である。この際、デバッグ作業者にとって、想定外の動作をした出力命令に関連する入力命令または出力命令を探すことは煩雑である。例えば、ある出力命令に問題がある場合において、その出力命令に関連する入力命令が複数あるような場合には、それら複数の入力命令を全てチェックする必要があり、探し出す処理が煩雑である。また、上記出力命令と同じオペランドを持つ入力命令を含むプログラム部分がある場合は、問題となる出力命令に関係するプログラムを修正した後、そのプログラムも正常に動作することを確認する必要があり、確認すべき命令を漏らすことなく全てチェックすることは非常に煩雑である。そして、ラダープログラムが長くなるほどその問題は顕著となる。
この発明は、プログラム中の各構成要素(ステップ番号が付与されないコメント等)についても一意に特定でき、ユーザプログラムのデバッグ・編集等が容易に行える開発支援装置を提供することを目的とする。
本発明の開発支援装置は、例えばプログラマブルコントローラにダウンロードするユーザプログラムを編集等するのに適したものである。具体的な構成としては、プログラマブルコントローラのユーザプログラムを開発するための開発支援装置であって、ユーザプログラムを記憶するプログラム記憶手段と、前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査して、構成要素を抽出し、抽出した構成要素にユーザプログラム上での出現順に固有のインデックス番号を付したアウトライン情報を生成するアウトライン情報生成手段と、前記アウトライン情報を格納するアウトライン情報記憶手段と、ユーザプログラムを表示するユーザプログラム表示部と、前記アウトライン情報に基づいて抽出した構成要素をインデックス番号とともに前記出現順に表示するアウトライン情報表示部とを有する表示手段と、を設けた。
当該開発支援装置は、開発対象のプログラマブルコントローラのユーザプログラム中にコメントを記述してプログラミングできるものであり、前記アウトライン情報生成手段は、ユーザプログラムにおいてステップ番号が付与されないコメントを含む所定の構成要素を抽出対象として選択されると、前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査し、前記選択された構成要素であるか否かを判断した結果に基づいて、コメントを含む所定の構成要素を抽出するものであり、その抽出したコメントおよび他の構成要素をユーザプログラム上での出現順に登録することによってアウトライン情報を生成するものとすることができる。
インデックス番号は、ユーザプログラム上でユニークに存在する番号であり、各命令はもちろんのこと、ステップ番号が付与されないコメントに対しても昇順に設定される。これにより、デバッグ作業者は、ユーザプログラム内において、インデックス番号を特定すると、任意の命令,コメントを一意に特定することができる。
これにより、通常、コメントには、ユーザプログラム上での位置を示すステップ番号は付与されないが、本発明ではコメントを含めてユーザプログラムのすべての構成要素に別途固有のインデックス番号を付与したことにより、コメントを所定の構成要素に設定した場合でもそのインデックス番号を用いてアウトライン情報表示部と、ユーザプログラム表示部の連係を取ることができる。つまり、アウトライン情報表示部に表示された所定の構成要素を選択すると、その選択された構成要素に付されたインデックス番号に対応するユーザプログラムの構成要素を認識し、それをユーザプログラム表示部に表示することができる。よって、目的とするユーザプログラムの構成要素を簡単に見つけることができる。
なお、ユーザプログラムを記憶するプログラム記憶手段と、プログラム記憶手段に記憶されたラダープログラムの構成要素を先頭から順に走査して、少なくとも出力命令を含む所定の構成要素を抽出し、その抽出した構成要素にユーザプログラム上での出現順に固有のインデックス番号を付したアウトライン情報を生成するアウトライン情報生成手段と、アウトライン情報を格納するアウトライン情報記憶手段と、表示画面には、前記ラダープログラムを表示するユーザプログラム表示部(実施の形態では、ラダー表示部)と、アウトライン情報記憶手段に格納された構成要素を前記出現順にツリー状に表示するアウトライン情報表示部とを設け、アウトライン表示部に表示された構成要素とユーザプログラム表示部に表示されたユーザプログラムを連携させるようにすることもできる。
このようにすると、出力命令を含む所定の構成要素がアウトライン情報表示部にプログラム上での出現順に表示されるため、その表示された構成要素を見ることにより、ユーザプログラム上で所定の構成要素が全体のどの位の位置に存在しているかなどのユーザプログラムのアウトラインを認識することができる。
本発明の開発支援装置はまた、上述したアウトライン情報を自動で生成し、登録することができる。
さらに、ユーザプログラム表示部に表示されたユーザプログラムにおいて選択された命令と同一のオペランドを有する命令を抽出し、その抽出した命令に関する情報を前記表示画面上に設けられたクロスリファレンス情報表示部に表示するクロスリファレンス情報生成手段を備えるとよい。このようにすると、例えば、ユーザプログラム表示部に表示されたユーザプログラムの出力命令を選択することにより、クロスリファレンス情報表示部には、その出力命令と同一のオペランドを持つ入力命令等を抽出し表示することができる。これにより、出力命令の影響を受ける入力命令を一覧リストとして表示することができる。
クロスリファレンス情報表示部に表示された所定の命令が選択された際に、その選択された命令が属するユーザプログラムを検知し、その選択された命令を前記ユーザプログラム表示部に表示する機能を備えるとよい。このようにすると、クロスリファレンス情報表示部に表示された命令に対応する実際のユーザプログラムを表示することができ、その命令が、プログラム上でどのように他の回路に影響しているかを容易に確認できる。
さらに、クロスリファレンス情報表示部に表示された1または複数の命令についての情報を記憶保持し、クロスリファレンス情報表示部に表示される情報が切り替った後で、記録保持した情報をクロスリファレンス情報表示部に再表示可能とするとよい。これは、実施の形態におけるブックマーク機能に対応する。このように一旦表示したクロスリファレンス情報を記憶することにより、後で簡単に戻って再表示することができる。
出力命令を抽出し表示すると、ユーザプログラムの中で他の命令に影響を与える出力命令を含む所定のプログラム構成要素を簡単に抽出し、アウトライン表示部に表示することができる。また、クロスリファレンス情報生成手段を設けたことにより、その出力命令と同じオペランドを持つ他の命令を抽出して表示することができる。これらにより、多数存在する命令の中から問題となる命令を探したり、問題のある出力命令に接続される入力命令が複数あるような場合に、それら複数の入力命令を全て探してチェックしたり、また問題となる出力命令に関係するプログラムを修正した場合に、その出力命令と同じオペランドを持つ入力命令を含むプログラム部分が正常に動作することの確認が漏れなくでき、ユーザプログラムのデバッグを容易に行うことができる。
本発明は、プログラム中の各構成要素(ステップ番号が付与されないコメント等)についても一意に特定でき、ユーザプログラムのデバッグ・編集等が容易に行える。
図1は、本発明の好適な一実施の形態を示している。開発支援装置10とPLC(CPUユニット)20が、所定の通信回線21を介して接続されている。この通信回線21は、例えば、RS232Cなどのシリアル回線を用いて直接ケーブル接続することにより実現される。もちろん、このように直接接続するものに限ることはなく、他の通信回線を用いネットワーク経由でPLC20と開発支援装置10とを接続する構成を採っても良い。開発支援装置10は、プログラマブルコントローラで実行されるユーザプログラムを作成する機能、通信回線21を介して作成したユーザプログラムをPLC20にダウンロードする機能、プログラマブルコントローラの動作に関する各種のパラメータ等を設定する機能、を持っている。ユーザプログラムは、図4のようなラダー言語によって記述されたプログラムである。開発支援装置10は、パソコンに、予めインストールしてあるソフトウェアを起動することにより、上述の機能を実現する。そのハードウエア構成は、キーボード,ポインティングデバイス等の入力装置11と、表示装置12と、中央演算装置13と、記憶装置14とからなる。記憶装置14には図示しないが不揮発性記憶装置と揮発性記憶装置があり、不揮発性記憶装置はラダープログラムやラダープログラムのアウトライン情報、クロスリファレンス情報などを記憶する。また中央演算装置13の実行時のワークメモリとして揮発性記憶装置が適宜使用される。
図15は、図1の中央演算装置13、記憶装置14を使って実現される本発明の開発支援装置10の機能ブロック図である。開発支援装置10は、入力装置11からの入力を処理する入力処理部31、表示装置12に出力する表示データを作成する表示処理部32、各機能を実行する演算部33、演算結果やラダープログラム等を格納する記憶部34、PLCとの通信を処理する通信処理部35からなる。演算部33はユーザプログラム編集部33a、アウトライン情報生成部33b、クロスリファレンス情報生成部33cを含む。また記憶部34はユーザプログラム記憶部34a、アウトライン情報記憶部34b、クロスリファレンス情報記憶部34cを含む。
図2は、表示装置12に表示される表示画面を示している。図示するように、ラダープログラムを表示するラダー表示部12aと、ラダープログラムの構成を示すアウトライン情報を表示するアウトライン情報表示部12bと、指定された命令のオペランドと同一のオペランドを持つ命令についての情報を表示するクロスリファレンス情報表示部12cを備えている。具体的には図8,9,12,13などを用いて後述するが、本実施例では命令のオペランドに相当する接点番号やメモリ番号にそれぞれ対応させて変数名をつけることができ、変数名を用いたプログラム編集が可能となっている。変数名を用いたプログラム編集が可能であることにより、ラダー表示部、アウトライン情報表示部、クロスリファレンス情報表示部にもオペランドを変数名で表示することもできる。もちろん、こういった変数名を利用せずに、接点番号や、メモリ番号を利用して表示してもよい。
アウトライン情報表示部12bに表示するアウトライン情報は、アウトライン情報生成部33bが作成し、記憶部34内のアウトライン情報記憶部34bに格納する。そして、表示処理部32は、ラダー表示部12aに表示されているラダープログラムについてのアウトライン情報をアウトライン情報表示部12bに表示する。
アウトライン情報は、ラダープログラムの構成の概要を示す情報のことであり、ラダープログラムに使用されている所定の構成要素をそのラダープログラムの先頭から順に抽出したものである。図4に示すラダープログラムのアウトライン情報は一例として、図6のように表示される。このように、アウトライン情報をアウトライン情報表示部12bに表示する際には、ラダープログラムの先頭から出現順に所定の構成要素を配列するとともに、複数の命令の集合体である回路部品については一列右に字下げしてツリー状に表示する。デバッグ作業者は、このアウトライン情報を見ることにより、抽出した各構成要素がそのラダープログラム中にどんな順番で、どの位置に存在しているかを認識することができる。
アウトライン情報表示部に表示するラダープログラムの構成要素は、固定ではなく選択可能である。本実施の形態では、出力命令,コメント,エンド,ファンクションブロック(FB),インタロック/インタロッククリア,回路部品の開始および終了を選択している。他の例として、出力命令のみを選択した場合には、ラダープログラム中の出力命令だけを抽出し、先頭から出現順に配列して表示する。
アウトライン情報生成部33bは、アウトライン情報生成命令を受けると、対象となったラダープログラムの先頭から構成要素をひとつずつ走査し、予め抽出対象として選択した構成要素があると、それを抽出するとともに、順次登録し、階層構造を持つアウトライン情報を生成する。図3にアウトライン生成部のフローチャートを示す。すなわち、プログラムの先頭から順に走査し、構成要素があったならば(S10でYes)その構成要素を取得する(S11)。ここではラダープログラムで使用されているすべての構成要素を取得する。そして、取得した構成要素が抽出対象構成要素か否かを判断する(S12)。S11で取得した構成要素が抽出対象の構成要素でなければ、分岐判断はNoとなる。そして、対象構成要素でない場合には、次の構成要素を探すために、走査の続きを行う(S20)。次の構成要素がない場合にはS10の分岐判断がNoとなるので、処理を終了する。
一方、取得した構成要素が対象構成要素である場合は、さらに回路部品かそれ以外かを判断する(S12)回路部品以外の場合には、それぞれの構成要素に対応するアイコンを取得し(S13)、ツリーに登録する(S14)。
対応するアイコンは、構成要素の種類ごとに異なるとし、各構成要素とアイコンの対応関係は、予めテーブルを作成し、記憶装置14に登録しておく。例えば抽出した構成要素が出力命令の場合には電球のようなマークとし、コメントの場合にはしおりのようなマークとする。これにより、S13の処理では取得した命令の種類を認識し、上記テーブルを参照して、対応するアイコンを取得することになる。また、ツリーへの登録は、現在の階層の一行下に追加する。
ツリーに登録する情報としては、アイコンと、インデックス番号と、ステップ番号と、変数名である。ここでインデックス番号とは、ラダープログラム上でユニークに存在する番号であり、各命令はもちろんのこと、ステップ番号が付与されないコメントに対しても昇順に設定される。デバッグ作業者は、ラダープログラム内において、インデックス番号を特定すると、任意の命令,コメントを一意に特定することができる。
一方、取得した命令が回路部品の開始または終了の場合には、回路部品の開始か否かを判断し(S15)、開始の場合には、回路部品のアイコンを取得するとともに(S16)、ツリーに登録する(S17)。このツリーへの登録処理は、S14の処理と同様である。その後、ツリーを一列右に字下げをする(S18)。そして、S20(次の構成要素へ進む)を経由してS10に戻る。これにより、これ以降に検出された構成要素についてのツリーの登録(S14の処理)は、この字下げしたツリーの下に追加されることになり、回路部品に属する構成要素であることが一目で分かる。
また、取得した構成要素(命令)が、回路部品の終了の場合には、S15の分岐判断はNoとなるのでS19に進み、ツリーの字下げを解除し(S19)、S20(次の構成要素へ進む)を経由してS10に戻る。これにより、これ以降に検出された構成要素(命令等)は、元(字下げされた1つ前、つまり1つ上位の階層)のツリーに追加されることになる。
このように、プログラムの先頭から出現順に走査して処理することにより、プログラム上で出現する順番通りに、ツリーの上から順に構成要素を登録することができる。次に、具体例に基づき各処理を説明する。例えば、処理対象のラダープログラムが図4(ラダー図表示)のようになっているとすると、その構成要素リストは図5のようになる。各図において、丸数字がそれぞれ対応する対象構成要素である。図5に示すように、ステップ番号は、命令の先頭から出現する順番で、0番から昇順した番号を付与する。命令に付与されるため、コメントには付与されない。そこで、本実施の形態では、上述したごとく図5に示すようにプログラムの構成要素(命令,コメントなど)に対して出現順に昇順でインデックス番号を付与した。また、図4において、9行目から15行目は1つの回路部品(部品名が[parts1])である。
係るラダープログラムに対応した構成要素リスト(図5)対して、先頭の命令から順に処理すると、最初の構成要素(Index000000)は、入力命令であるので、S12でNoとなる。次のIndex000001の構成要素は出力命令(OUT)であるので、S12でYesとなり、対応するアイコン(電球マーク)を取得し(S13)、S14の処理を実行し、ツリーへ登録する。これにより、図6に示すように1行目に「アイコン,ステップ番号(000001),変数名(b)」が追加される。次の構成要素(ステップ番号無し,Index000002)はコメントであるのでS12でYesとなり、対応するアイコン(しおりマーク)を取得し(S13)、S14の処理を実行しツリーへ登録する。これにより、図6に示すように、2行目に「アイコン,コメント」(ステップ番号はないので非表示)が追加される。
以下順次処理し、例えば、Index00000Aでは、構成要素は回路部品の開始であるため、S15からS17の処理をすることにより、図6に示すように、7行目に「回路部品名([parts1])」が追加される。そして、S18の実行によりツリーが一列右に字下げされるため、その次に検出された対象構成要素であるIndex00000Bのコメント(「*comment2*」)が、8行目に追加されるが、このとき、7行目の[parts1]の下に字下げされて表示される。以降検出された構成要素は、回路部品の終了を示すIndex000013のPARTS_ENDにてS19を実行しツリーの字下げが解除されるまで、全て一列右に字下げされて表示される。
ツリーの字下げが解除されたあと、Index000015のファンクションブロック(「FB1 inst1」)が、図6の13行目に追加される。そして、Index000017のEND命令についてS14の処理を実行してツリーに追加すると、それ以降は構成要素がないのでS10の分岐判断がNoとなり処理を終了することになる。
上記のようにして生成されたアウトライン情報は、アウトライン情報記憶部34bに格納される。そして、アウトライン情報表示部12bにツリー状に表示されるアウトライン情報を見ると、他の命令に影響を与える出力命令やコメントなどが、プログラムにおける出現順に配置されるとともに、回路部品は字下げ表示により階層的に表示されるため、各構成要素のプログラム中のおおよその存在位置などが一目で分かる。
次にラダー表示部12aに表示されるラダープログラムと、アウトライン情報表示部12bに表示されるツリー状のアウトライン情報の連動について説明する。すなわち、アウトライン情報表示部12bに表示されたツリー状のアウトライン情報の中から任意の構成要素を選択すると、それに対応したラダープログラムの該当する構成要素を表示するようになる。具体的には、図7に示すフローチャートを実施する機能により、係る連動させることを実現している。
すなわち、アウトライン情報表示部12b内のカーソル位置の登録情報を取得する(S21)。これは、例えばユーザは、ポインティングデバイス等の入力装置11を操作して、ツリー状のリストの中で任意の構成要素を選択する。すると、選択された構成要素を認識し、アウトライン情報記憶部34bにアクセスしアウトライン情報の中からインデックス番号を取得する。
次いで、現在ラダー表示部12aに表示されているラダー画面を表示する表示処理部32に対し、ジャンプ依頼をする(S22)。つまり、インデックス番号を渡す。そして、そのインデックス番号を取得したならば、ラダー表示部12aに表示されたラダープログラムの該当位置にジャンプする(S23)。すなわち、取得したインデックス番号をキーにラダープログラム記憶部34aにアクセスし、該当する構成要素を認識する。そして、その構成要素が、現在ラダー表示部12aに表示されている場合には、対応する構成要素にカーソルを移動する。また、ラダー表示部12aに表示されていない場合には、該当する構成要素をラダー表示部12a内に表示するとともに、その構成要素にカーソルを移動する。
これにより、例えば、図8に示すように、アウトライン情報表示部12bのツリーの中で、「ステップ番号:00007,変数名:Complete1」が選択すれると、ラダー表示部12aにおいても対応する出力命令(変数名:Complete1)にカーソルが当てられる(反転表示している)。この状態で、アウトライン情報表示部12bのツリーの中で、「ステップ番号:00010,変数名:Complete2」が選択すれると、図9に示すように、ラダー表示部12aにおいても対応する出力命令(変数名:Complete2)にカーソルが移動する。
次に、クロスリファレンス情報表示部12cに表示するクロスリファレンス情報について説明する。クロスリファレンス情報表示部12cには、ラダー表示部12aに表示されたラダープログラム中の所定の構成要素を選択すると、その構成要素と同一のオペランド(変数名)を持つ構成要素を抽出し、それをクロスリファレンス情報表示部12cに表示する。係る処理は、ラダープログラム編集部33aが、図10に示すフローチャートを実行することにより得られた情報に基づき、図11に示すフローチャートをクロスリファレンス情報生成部33cが実行することにより行なう。図10でまず、ラダー表示部12aに表示されたラダー画面上でカーソルを移動する(S31)。移動したカーソルのカーソル位置が、オペランド部か否かを判断し(S32)、オペランド部の場合には、そのカーソル位置にある構成要素についてのプログラム名,ステップ番号,オペランド(変数名)をクロスリファレンス情報生成部33cに渡す(S33)。
図11に示すように、ラダープログラム編集部33aから所定の情報を取得すると(S40)、オペランド(変数名)がグローバル変数か否かを判断する(S41)。グローバル変数とは複数のPLCで共通に使用される変数のことである。グローバル変数か否かは、オペランド(変数名)の前に付加されたパスにより判断できる。例えば、グローバル変数のパスは、「プロジェクト名¥コンフィグレーション名¥変数名」となる。また、特定のPLCでのみ使用されるローカル変数(タスク)の場合は、「プロジェクト名¥コンフィグレーション名¥タスク名¥変数名」となる。このように、グローバル変数かローカル変数かにより、パスが異なるので、容易に判断できる。
グローバル変数の場合には、パスで指定されるプログラムが存在するか否かを判断し(S42)、存在しなければそこで処理を終了し、存在する場合には、プログラムを取得する(S43)。
取得したプログラムを先頭の命令から順に走査し、命令が存在するか否かを判断する(S44)。そして、命令を検出したならば、その命令を取得し(S45)、その命令のオペランド(変数名)と、ラダーエディタから取得したオペランド(変数名)が一致するか否かを判断する(S46)。そして、一致する場合には、そのプログラムがタスク実行中か否かを判断し(S47)、実行の有無により対応するアイコンを取得する(S48,S49)。その後、その命令についてのクロスリファレンス情報を登録する(S50)。ここで登録する情報としては、少なくともオペランド(変数名),アドレス,言語,パス,タスク実行状態,ステップ番号である。
この登録後、或いはS46の分岐判断でオペランド(変数名)が一致しない場合には、次の命令へ進む(S51)。最後の命令まで処理すると、S44の分岐判断がNoとなるので、S52に飛び、次のプログラムを走査する。このようにして、全てのプログラムに付いてオペランド(変数名)が一致する命令の抽出・登録処理を終了したならば、S42の分岐判断がNoとなるので一連の処理を終了する。
一方、グローバル変数でない場合には、S41の分岐判断がNoとなるので、パスにて指定されたプログラムが存在するか否かを判断し(S53)、存在しない場合には、処理を終了する。また、存在する場合には、そのプログラムについてS43からS51までの処理を実行し、そのプログラム中に存在するオペランド(変数名)が一致する命令を取得するともに、関連する情報(アイコン,クロスリファレンス情報)を登録する。なお、プログラムの最後まで走査したならば、S44の分岐判断はNoとなるが、その場合は処理を終了する(S54)。
これらのクロスリファレンス情報等は、記憶装置4内の一時ファイルに格納されるとともに、例えば図12に示すように、クロスリファレンス情報表示部に表示される。図12では、ラダー表示部に表示されたラダー画面中の変数名がComplete1の出力命令が選択されたため、同一の変数名を持つ入力命令等として4つの命令が抽出され、表示された例を示している。
この状態から、クロスリファレンス情報表示部12cに表示された任意の変数名(例えば、図13に示すように、2行目の変数名)を選択すると、該当する変数名(命令)を含むプログラムをラダー表示部12aに表示する。このとき、カーソルを当てた強調表示することにより、ユーザに容易に理解させることができる。
係る処理を行うための機能は、図14に示すフローチャートを実行するようなる。まずクロスリファレンス情報表示部12c上のカーソル位置を取得する(S61)。このカーソル位置は、図では、選択されて反転表示されている位置である。そして、そのカーソルで選択された変数名のパス情報から、その変数名が属するプログラムを探索し(S62)、ラダー表示部12aにプログラムが表示されているか否かを判断する(S63)。プログラムが表示されていない場合には、S62で探索したプログラムを表示する(S64)。
そして、ラダー表示部12aに表示された対応するプログラムにジャンプし(S65)、そのプログラム中の該当する命令位置にジャンプする(S66)。このS66の処理は、図7におけるS23の処理と同様である。これにより、該当する命令をラダー表示部12a上に表示するとともに、カーソルを移動し、強調して表示する。
また、クロスリファレンス情報表示部12cに表示する情報は、ラダー表示部12aに表示されたラダープログラム中の選択された構成要素(命令)に対応してクロスリファレンス情報生成部33cが都度生成し、表示する。従って、現在クロスリファレンス情報表示部12cに表示されていない構成要素がラダー表示部12a側で選択されると、クロスリファレンス情報表示部12cに表示されるクロスリファレンス情報も変化する。ここでユーザは1つ前に表示していた情報に簡単に戻ることができない。実際のデバッグ処理では、1つ前さらには何回か前の表示に戻したいという要求があるが、従来は係る要求を満たすことができなかった。
そこで、図2に示すように、クロスリファレンス情報表示部13cの上部に、ブックマークボタンB1と、後退ボタンB2と、前進ボタンB3を用意した。ブックマークボタンB1をクリックしたときに表示されていたクロスリファレンス情報を記憶装置14に記憶保持する機能を備えた。記憶装置14に記憶保持されたクロスリファレンス情報は、記憶した順に番号を付与する。これにより、後退ボタンB1を選択実行する都度、番号を参照し、現在表示されているクロスリファレンス情報の1つ前に表示(格納)されたクロスリファレンス情報を記憶装置14から呼び出して表示する。また、前進ボタンB3をクリックすることにより、番号を参照し、現在表示されているクロスリファレンス情報の次に表示(格納)されたクロスリファレンス情報を記憶装置14から呼び出して表示する。
このように、クロスリファレンス情報の表示履歴を逐次表示することができ、所望のクロスリファレンス情報を簡単に見ることができるため、ラダープログラムのデバッグ作業を容易に行うことができる。
本発明の一実施の形態を示すハードウェアブロック図である。 表示画面の一例を示す図である。 アウトライン情報生成部の機能を示すフローチャートである。 ラダー表示部に表示されるラダープログラムの一例を示す図である。 図4に示すプログラムのリストを示す図である。 アウトライン情報表示部に表示される図4に示すラダープログラムに対するアウトライン情報を示す図である。 アウトライン情報表示部に表示されたリストからラダー表示部に表示されるラダープログラムへのジャンプ機能の一例を示す図である。 作用効果を説明する表示画面の表示例である。 作用効果を説明する表示画面の表示例である。 ラダーエディタの機能を説明するフローチャートである。 クロスリファレンス情報生成部の機能を示すフローチャートである。 作用効果を説明する表示画面の表示例である。 作用効果を説明する表示画面の表示例である。 クロスリファレンス情報表示部に表示された命令からラダー表示部に表示されるラダープログラムへのジャンプ機能の一例を示す図である。 本発明の一実施の形態を示す機能ブロック図である。
符号の説明
10 開発支援装置
11 入力装置
12 表示装置
12a ラダー表示部(ユーザプログラム表示部)
12b アウトライン情報表示部
12c クロスリファレンス情報表示部
13 中央演算装置
14 記憶装置
15 通信I/F
20 PLC
21 通信回線
31 入力処理部
32 表示処理部
33 演算部
33a ユーザプログラム編集部
33b アウトライン情報生成部
33c クロスリファレンス情報生成部
34 記憶部
34a ラダープログラム記憶部(プログラム記憶手段)
34b アウトライン情報記憶部
34c クロスリファレンス情報記憶部
35 通信処理部

Claims (2)

  1. プログラマブルコントローラのユーザプログラムを開発するための開発支援装置であって、
    ユーザプログラムを記憶するプログラム記憶手段と、
    前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査して、構成要素を抽出し、抽出した構成要素にユーザプログラム上での出現順に固有のインデックス番号を付したアウトライン情報を生成するアウトライン情報生成手段と、
    前記アウトライン情報を格納するアウトライン情報記憶手段と、
    ユーザプログラムを表示するユーザプログラム表示部と、前記アウトライン情報に基づいて抽出した構成要素をインデックス番号とともに前記出現順に表示するアウトライン情報表示部とを有する表示手段と、
    を設けたことを特徴とする開発支援装置。
  2. 当該開発支援装置は、開発対象のプログラマブルコントローラのユーザプログラム中にコメントを記述してプログラミングできるものであり、
    前記アウトライン情報生成手段は、
    ユーザプログラムにおいてステップ番号が付与されないコメントを含む所定の構成要素を抽出対象として選択されると、前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査し、前記選択された構成要素であるか否かを判断した結果に基づいて、コメントを含む所定の構成要素を抽出するものであり、
    その抽出したコメントおよび他の構成要素をユーザプログラム上での出現順に登録することによってアウトライン情報を生成するものである
    ことを特徴とする請求項1に記載の開発支援装置。
JP2006013759A 2004-03-31 2006-01-23 開発支援装置 Pending JP2006146955A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006013759A JP2006146955A (ja) 2004-03-31 2006-01-23 開発支援装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004108358 2004-03-31
JP2006013759A JP2006146955A (ja) 2004-03-31 2006-01-23 開発支援装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005100068A Division JP4242361B2 (ja) 2004-03-31 2005-03-30 開発支援装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006206999A Division JP4517302B2 (ja) 2004-03-31 2006-07-28 開発支援装置の制御方法及びプログラム並びに記録媒体

Publications (1)

Publication Number Publication Date
JP2006146955A true JP2006146955A (ja) 2006-06-08

Family

ID=36626468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006013759A Pending JP2006146955A (ja) 2004-03-31 2006-01-23 開発支援装置

Country Status (1)

Country Link
JP (1) JP2006146955A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272450B2 (en) * 2004-03-31 2007-09-18 Omron Corporation Development aid device
WO2008012919A1 (fr) * 2006-07-28 2008-01-31 Mitsubishi Electric Corporation dispositif périphérique de contrôleur de logique programmable
EP2911022A2 (en) 2014-02-19 2015-08-26 Kabushiki Kaisha Yaskawa Denki Ladder program generating device
CN106066635A (zh) * 2015-04-21 2016-11-02 株式会社安川电机 梯形图程序创建装置以及梯形图程序创建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6426906A (en) * 1987-07-23 1989-01-30 Fanuc Ltd Editing system for sequence program
JPH0981372A (ja) * 1995-09-13 1997-03-28 Canon Inc プログラム解析装置及びその方法
JP2002041111A (ja) * 2000-07-26 2002-02-08 Matsushita Electric Works Ltd プログラミング支援装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6426906A (en) * 1987-07-23 1989-01-30 Fanuc Ltd Editing system for sequence program
JPH0981372A (ja) * 1995-09-13 1997-03-28 Canon Inc プログラム解析装置及びその方法
JP2002041111A (ja) * 2000-07-26 2002-02-08 Matsushita Electric Works Ltd プログラミング支援装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272450B2 (en) * 2004-03-31 2007-09-18 Omron Corporation Development aid device
US7272825B2 (en) * 2004-03-31 2007-09-18 Omron Corporation Development aid device
WO2008012919A1 (fr) * 2006-07-28 2008-01-31 Mitsubishi Electric Corporation dispositif périphérique de contrôleur de logique programmable
EP2911022A2 (en) 2014-02-19 2015-08-26 Kabushiki Kaisha Yaskawa Denki Ladder program generating device
JP2015156063A (ja) * 2014-02-19 2015-08-27 株式会社安川電機 ラダープログラム作成装置、コンピュータプログラム及びコンピュータ可読情報記録媒体
CN106066635A (zh) * 2015-04-21 2016-11-02 株式会社安川电机 梯形图程序创建装置以及梯形图程序创建方法

Similar Documents

Publication Publication Date Title
CN100424600C (zh) 开发支持装置
JP4242361B2 (ja) 開発支援装置
JP4366605B2 (ja) 開発支援装置およびプログラムならびに処理方法
US11960925B2 (en) Program generating device, program generating method, and information storage medium
JP5726387B2 (ja) システム構築支援装置
JP2004303217A (ja) 表示・編集装置及び表示方法並びにプログラム製品
JP2016506559A (ja) Hmiデバイスにおいてオブジェクトを変化させるための方法およびデバイス
JP2006146955A (ja) 開発支援装置
JP4517302B2 (ja) 開発支援装置の制御方法及びプログラム並びに記録媒体
JP2014086044A (ja) 設計支援プログラム,方法及び装置
JP2012168900A (ja) プログラミング装置、プログラム
JP2009245456A (ja) プログラム開発支援装置および処理方法
KR100432407B1 (ko) 사다리형회로 편집장치
JP3967885B2 (ja) 画像処理装置
JP2007034797A (ja) 画面データ生成装置、並びに、そのプログラムおよび記録媒体
JP2009087144A (ja) 開発支援装置および開発支援プログラム
KR101886986B1 (ko) 엔지니어링 툴 프로그램 및 엔지니어링 툴
JPH1124904A (ja) プログラム作成装置及びプログラム作成プログラムを記憶した記憶媒体
WO2024014354A1 (ja) 制御プログラム編集装置、編集方法、およびプログラム
JPH10247142A (ja) プロセス制御プログラムのプログラミングシステムおよびプログラミング方法
JP2006268292A (ja) テンプレート編集装置およびテンプレート編集用プログラム
JP2004326161A (ja) シーケンスプログラム編集装置
JP2021177272A (ja) デバッグ支援装置、デバッグ支援方法およびプログラム
JPH04367029A (ja) プログラマブルコントローラ用プログラミング装置
JPH06301523A (ja) 実行プログラム設定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20071129

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20100722

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100728

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101208