JPH0887406A - プログラム表示装置 - Google Patents
プログラム表示装置Info
- Publication number
- JPH0887406A JPH0887406A JP22298394A JP22298394A JPH0887406A JP H0887406 A JPH0887406 A JP H0887406A JP 22298394 A JP22298394 A JP 22298394A JP 22298394 A JP22298394 A JP 22298394A JP H0887406 A JPH0887406 A JP H0887406A
- Authority
- JP
- Japan
- Prior art keywords
- level number
- control statement
- program
- circuit
- level
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
(57)【要約】
【目的】多層のネスト構造であっても各ネスト構造の制
御範囲を明確に把握することが出来るプログラム表示装
置を提供する。 【構成】プログラム表示装置10のメモリIIに、レベル
番号領域21、開始回路番号領域22、終了回路番号領
域23、最初の中間回路番号領域24等からなるレベル
番号管理テーブル20を設ける。メモリIIに格納されて
いるプログラム文を検索し開始制御文を検出する毎にレ
ベル番号の値をインクリメントし終了制御文を検出する
毎にレベル番号をデクリメントして、それらのレベル番
号と制御文の回路番号とをレベル番号管理テーブル20
の対応する各領域に格納してレベル番号と制御文の対応
表を作成する。プログラムの表示では制御文の記述行の
一定位置に制御文に対応するレベル番号も表示する。開
始制御文か終了制御文何れかの回路番号が指定されると
同一レベル番号の終了制御文又は開始制御文を読み出し
てその制御文で示される範囲のプログラムを回路番号と
共に表示する。
御範囲を明確に把握することが出来るプログラム表示装
置を提供する。 【構成】プログラム表示装置10のメモリIIに、レベル
番号領域21、開始回路番号領域22、終了回路番号領
域23、最初の中間回路番号領域24等からなるレベル
番号管理テーブル20を設ける。メモリIIに格納されて
いるプログラム文を検索し開始制御文を検出する毎にレ
ベル番号の値をインクリメントし終了制御文を検出する
毎にレベル番号をデクリメントして、それらのレベル番
号と制御文の回路番号とをレベル番号管理テーブル20
の対応する各領域に格納してレベル番号と制御文の対応
表を作成する。プログラムの表示では制御文の記述行の
一定位置に制御文に対応するレベル番号も表示する。開
始制御文か終了制御文何れかの回路番号が指定されると
同一レベル番号の終了制御文又は開始制御文を読み出し
てその制御文で示される範囲のプログラムを回路番号と
共に表示する。
Description
【0001】
【産業上の利用分野】プログラマブルコントローラのプ
ログラムのネスト構造を簡明に表現して画面に表示又は
用紙に印刷するプログラム表示装置に関する。
ログラムのネスト構造を簡明に表現して画面に表示又は
用紙に印刷するプログラム表示装置に関する。
【0002】
【従来の技術】従来より、プログラマブルコントローラ
(以下、PCという)は、例えば上下水道等の施設の状
態管理、作業現場、工場、プラント等の工程管理などに
広く用いられており、このような管理を行うことをシー
ケンス制御と呼んでいる。
(以下、PCという)は、例えば上下水道等の施設の状
態管理、作業現場、工場、プラント等の工程管理などに
広く用いられており、このような管理を行うことをシー
ケンス制御と呼んでいる。
【0003】このシーケンス制御は、各種のセンサや計
器等の入力機器によって得られる情報、例えばベルトコ
ンベアの出口を通過した製品数が一定数を超えた、ま
た、設備や製品の特定位置の圧力や温度等の値が臨界値
になった、或いは、所定のスイッチがオンした又はオフ
したといった2値で表わすことができる情報に対応し
て、各種の電磁石(リレー)やモータ等の出力機器のオ
ン/オフを行う制御である。このような現場における作
業手順は、施設等の運用状況、工程の稼動状態等の経験
的に得られる状況判断に基づいてしばしば変更されるこ
とが多い。このためシーケンス制御には制御手順の変更
や修正等がつきものである。このことからPCによるシ
ーケンス制御は、ユーザが手順を自由に変更または作成
できるようになっている。
器等の入力機器によって得られる情報、例えばベルトコ
ンベアの出口を通過した製品数が一定数を超えた、ま
た、設備や製品の特定位置の圧力や温度等の値が臨界値
になった、或いは、所定のスイッチがオンした又はオフ
したといった2値で表わすことができる情報に対応し
て、各種の電磁石(リレー)やモータ等の出力機器のオ
ン/オフを行う制御である。このような現場における作
業手順は、施設等の運用状況、工程の稼動状態等の経験
的に得られる状況判断に基づいてしばしば変更されるこ
とが多い。このためシーケンス制御には制御手順の変更
や修正等がつきものである。このことからPCによるシ
ーケンス制御は、ユーザが手順を自由に変更または作成
できるようになっている。
【0004】このPCのプログラム言語としては、通常
のコンピュータの場合とは異なり、図示表現プログラム
を使用する場合が多い。図示表現プログラムは、PC化
以前から現場で用いられ、手作業で用紙等に記述されて
いたラダー図(リレー回路の展開接続図)が基本となっ
ている。ラダー図は、上述した入力機器や出力機器を表
わす例えば接点(リミットスイッチ)やコイル(リレ
ー)等のシンボル図形を接続することによって記述され
る。
のコンピュータの場合とは異なり、図示表現プログラム
を使用する場合が多い。図示表現プログラムは、PC化
以前から現場で用いられ、手作業で用紙等に記述されて
いたラダー図(リレー回路の展開接続図)が基本となっ
ている。ラダー図は、上述した入力機器や出力機器を表
わす例えば接点(リミットスイッチ)やコイル(リレ
ー)等のシンボル図形を接続することによって記述され
る。
【0005】そして、一般に、図示表現プログラムは、
上記のラダー図そのものを記述する場合や、PCの制御
動作を分かり易く図形表示するSFC(Sequencial Fun
ction Chart)という国際規格(IEC SC65A/WG6 )の
記述形式などで記述される。ここには詳述しないが、こ
のSFCも各図形内の処理は上述したラダー図で記述さ
れる。また、ラダー回路図を論理図形化しその真偽値と
出力形式を対応化させた表形式回路記述も用いられる。
上記のラダー図そのものを記述する場合や、PCの制御
動作を分かり易く図形表示するSFC(Sequencial Fun
ction Chart)という国際規格(IEC SC65A/WG6 )の
記述形式などで記述される。ここには詳述しないが、こ
のSFCも各図形内の処理は上述したラダー図で記述さ
れる。また、ラダー回路図を論理図形化しその真偽値と
出力形式を対応化させた表形式回路記述も用いられる。
【0006】いずれの場合も、このような図示表現プロ
グラム(ソースプログラム)の作成には、現在ではプロ
グラムグローダと称されるプログラミング装置が用いら
れている。このプログラミング装置は、中央演算処理装
置、キーボード、メモリ、CRT(Cathode Ray Tube)又
は液晶の表示画面等を備えて構成され、上記の図示表現
プログラムの作成を支援し、その作成された図示表現プ
ログラムを中間言語(中間コード)に変換して記憶し、
この記憶した中間言語を表示画面に表示出力し又は外部
に接続された印刷装置に印刷出力する機能を有してい
る。また、その記憶した中間言語をPCにローディング
し、そのローディングされたプログラムによるPCの動
作状態をシミュレーションする等の機能も備えている。
グラム(ソースプログラム)の作成には、現在ではプロ
グラムグローダと称されるプログラミング装置が用いら
れている。このプログラミング装置は、中央演算処理装
置、キーボード、メモリ、CRT(Cathode Ray Tube)又
は液晶の表示画面等を備えて構成され、上記の図示表現
プログラムの作成を支援し、その作成された図示表現プ
ログラムを中間言語(中間コード)に変換して記憶し、
この記憶した中間言語を表示画面に表示出力し又は外部
に接続された印刷装置に印刷出力する機能を有してい
る。また、その記憶した中間言語をPCにローディング
し、そのローディングされたプログラムによるPCの動
作状態をシミュレーションする等の機能も備えている。
【0007】一方、PCは、プログラムメモリ、プログ
ラムの演算結果が格納されるデータメモリ、PCに接続
された外部機器からの入力データ(通常はオン・オフ状
態を示すデータ)及び外部機器への出力データ(通常は
オン・オフ指示)が格納される入出力メモリ等の各種の
メモリを備えている。上記のPCにローディングされた
中間言語は、PCでオブジェクトコード(機械語)に変
換されてプログラムメモリに格納される。PCは、CP
U(中央演算処理装置)により、上記プログラムメモリ
に格納されたプログラムをアドレス順に読み出して、そ
の読み出したプログラムの命令を実行する。PCの命令
実行の多くは、外部機器からの入力データの読み込み、
関連データとの演算、そして外部機器へのデータの出力
である。これらは上記の各メモリへのアクセスに対応し
ている。
ラムの演算結果が格納されるデータメモリ、PCに接続
された外部機器からの入力データ(通常はオン・オフ状
態を示すデータ)及び外部機器への出力データ(通常は
オン・オフ指示)が格納される入出力メモリ等の各種の
メモリを備えている。上記のPCにローディングされた
中間言語は、PCでオブジェクトコード(機械語)に変
換されてプログラムメモリに格納される。PCは、CP
U(中央演算処理装置)により、上記プログラムメモリ
に格納されたプログラムをアドレス順に読み出して、そ
の読み出したプログラムの命令を実行する。PCの命令
実行の多くは、外部機器からの入力データの読み込み、
関連データとの演算、そして外部機器へのデータの出力
である。これらは上記の各メモリへのアクセスに対応し
ている。
【0008】ところで、PCのプログラム(シーケンス
制御の処理)には、入力データ又はその演算結果を条件
として、処理の分岐、処理の繰り返しなど、様々な処理
の組み合わせによる制御が存在する。これら分岐、繰り
返し等の制御の記述は、上記の図示表現プログラムから
中間言語に変換される際、例えば「IF」文、「THE
N」文、「ELSE」文、「ENDIF」文、「WHI
LE」文等の制御文に変換される。これらの制御文は、
変換前の図示表現プログラム上では回路図が対応してお
り、その各回路には回路番号が付与されている。例えば
「IF」は、或る回路番号の回路の出力状態を条件とす
る制御命令である。
制御の処理)には、入力データ又はその演算結果を条件
として、処理の分岐、処理の繰り返しなど、様々な処理
の組み合わせによる制御が存在する。これら分岐、繰り
返し等の制御の記述は、上記の図示表現プログラムから
中間言語に変換される際、例えば「IF」文、「THE
N」文、「ELSE」文、「ENDIF」文、「WHI
LE」文等の制御文に変換される。これらの制御文は、
変換前の図示表現プログラム上では回路図が対応してお
り、その各回路には回路番号が付与されている。例えば
「IF」は、或る回路番号の回路の出力状態を条件とす
る制御命令である。
【0009】図7は、制御の流れが2方向に分岐する場
合の中間言語における制御文の記述(画面への表示出力
又は用紙への印刷出力)の例を示している。四角で囲ん
だ「IF AAAA」、「THEN」、「条件・・・」
等は、実行すべき命令の手順を表わしている。同図の手
順1の命令「IF」は、回路の状態(出力)である「A
AAA」の真偽を調べる命令である。次の手順2の命令
「THEN」は、上記「AAAA」が真であるとき以下
に続く手順3の命令(実行内容の命令)を実行させ、偽
であるときは実行させない命令である。一方、手順4の
命令「ELSE」は、上記「AAAA」が偽であるとき
以下に続く手順5の命令(実行内容の命令)を実行さ
せ、真であるときは実行させない命令である。そして命
令「ENDIF」は、上記「AAAA」の真偽に対応す
る一連の処理(制御)が終了であることを示す命令であ
る。
合の中間言語における制御文の記述(画面への表示出力
又は用紙への印刷出力)の例を示している。四角で囲ん
だ「IF AAAA」、「THEN」、「条件・・・」
等は、実行すべき命令の手順を表わしている。同図の手
順1の命令「IF」は、回路の状態(出力)である「A
AAA」の真偽を調べる命令である。次の手順2の命令
「THEN」は、上記「AAAA」が真であるとき以下
に続く手順3の命令(実行内容の命令)を実行させ、偽
であるときは実行させない命令である。一方、手順4の
命令「ELSE」は、上記「AAAA」が偽であるとき
以下に続く手順5の命令(実行内容の命令)を実行さ
せ、真であるときは実行させない命令である。そして命
令「ENDIF」は、上記「AAAA」の真偽に対応す
る一連の処理(制御)が終了であることを示す命令であ
る。
【0010】プログラマがプログラムの検証を行う場
合、上記の「IF」文(制御文)のようにプログラム中
にネスト(入れ子)構造があると、そのプログラムを理
解するためには、ネスト構造で示される制御範囲を把握
する必要が出てくる。その場合、プログラマは、上記の
ように記述されたプログラムを追尾して、ネスト構造の
初めと終りの対応関係を調べなければならない。例えば
図7に示したネスト構造の開始制御文である手順1の
「IF AAAA」をプログラム中に見いだしたとき
は、順次プログラムの記述を追いかけて行き、そのネス
ト構造の開始制御文に対応する終了制御文である手順6
の「ENDIF」まで順次画面に表示させて確認する。
また、逆に、プログラム検証中に先に手順6の「END
IF」を見いだしたときなどには、プログラムの記述を
順次遡って、そのネスト構造の終了制御文に対応する開
始制御文(手順1の「IF AAAA」)まで順次画面
に表示させて確認する。あるいは、ネスト構造の開始と
終了の対応関係が分かり良いように、ネスト構造部分に
は、レベル(ネスト構造の深さ)の同一な制御文とその
内容の表示にインデント(字下げ)を付加して用紙に打
ち出すなどの方法を採用していた。同図の例では、手順
1、2、4、及び6の制御文と手順3、5の制御内容は
全て同一レベルである。
合、上記の「IF」文(制御文)のようにプログラム中
にネスト(入れ子)構造があると、そのプログラムを理
解するためには、ネスト構造で示される制御範囲を把握
する必要が出てくる。その場合、プログラマは、上記の
ように記述されたプログラムを追尾して、ネスト構造の
初めと終りの対応関係を調べなければならない。例えば
図7に示したネスト構造の開始制御文である手順1の
「IF AAAA」をプログラム中に見いだしたとき
は、順次プログラムの記述を追いかけて行き、そのネス
ト構造の開始制御文に対応する終了制御文である手順6
の「ENDIF」まで順次画面に表示させて確認する。
また、逆に、プログラム検証中に先に手順6の「END
IF」を見いだしたときなどには、プログラムの記述を
順次遡って、そのネスト構造の終了制御文に対応する開
始制御文(手順1の「IF AAAA」)まで順次画面
に表示させて確認する。あるいは、ネスト構造の開始と
終了の対応関係が分かり良いように、ネスト構造部分に
は、レベル(ネスト構造の深さ)の同一な制御文とその
内容の表示にインデント(字下げ)を付加して用紙に打
ち出すなどの方法を採用していた。同図の例では、手順
1、2、4、及び6の制御文と手順3、5の制御内容は
全て同一レベルである。
【0011】
【発明が解決しようとする課題】ところで、近年では制
御対象が大型化するに伴い制御内容も複雑化してきてい
る。したがって、シーケンス制御のプログラムも大容量
化、複雑化してきている。このため、プログラム内にお
ける上述したような制御文の使用頻度が増加し、また、
そのネスト構造も深くなっている。すなわちネスト構造
の中に更にネスト構造が記述されるように多層になって
いる。このため制御文で示される制御範囲の把握が困難
となり、したがってプログラムを検証するに際して、そ
のプログラム自体の理解が困難になるという問題があっ
た。また、同様に、プログラムの作成、編集、監視作業
が容易でなく、これらのことに起因する人為的ミスが多
発し、したがって、プログラムの保守に掛かる時間が増
大して経費の増加を招くという問題もあった。
御対象が大型化するに伴い制御内容も複雑化してきてい
る。したがって、シーケンス制御のプログラムも大容量
化、複雑化してきている。このため、プログラム内にお
ける上述したような制御文の使用頻度が増加し、また、
そのネスト構造も深くなっている。すなわちネスト構造
の中に更にネスト構造が記述されるように多層になって
いる。このため制御文で示される制御範囲の把握が困難
となり、したがってプログラムを検証するに際して、そ
のプログラム自体の理解が困難になるという問題があっ
た。また、同様に、プログラムの作成、編集、監視作業
が容易でなく、これらのことに起因する人為的ミスが多
発し、したがって、プログラムの保守に掛かる時間が増
大して経費の増加を招くという問題もあった。
【0012】この問題を緩和するため、プログラム作成
又は編集中において、用紙に印字する際、制御文のネス
ト構造の深さを表わすレベル番号を制御文や制御内容の
手順毎に記入することが行われているが、一旦レベル番
号を記入し終ってから、制御文を新たに付け加えたり削
除を行うと、変更後の記述を誤って実際のレベル番号と
用紙に記入したレベル番号とが異なるという不都合がし
ばしば発生する。このような場合はプログラムの編集、
監視が容易ではなく、プログラムの内容を正しく把握す
るまでに困難を極め、この作業に手数がかかって大きな
問題となっていた。
又は編集中において、用紙に印字する際、制御文のネス
ト構造の深さを表わすレベル番号を制御文や制御内容の
手順毎に記入することが行われているが、一旦レベル番
号を記入し終ってから、制御文を新たに付け加えたり削
除を行うと、変更後の記述を誤って実際のレベル番号と
用紙に記入したレベル番号とが異なるという不都合がし
ばしば発生する。このような場合はプログラムの編集、
監視が容易ではなく、プログラムの内容を正しく把握す
るまでに困難を極め、この作業に手数がかかって大きな
問題となっていた。
【0013】さらにまた、プログラムの記述にインデン
トを付けて用紙に印刷を行うと、ネスト構造が深い場
合、各ネスト構造毎に順次インデントが付加される結
果、ネスト構造の最深部では、1つの手順の記述文の先
頭が記述行の後方にきてしまい、そのため記述文の後端
が用紙の幅を越えてしまうということがしばしば発生す
る。このように、1つの手順を1行に印字しきれないと
きは、記述文の右側が切れたり、又は用紙の左端に折り
返され、印刷されたプログラムが読みずらくなるという
問題が発生した。
トを付けて用紙に印刷を行うと、ネスト構造が深い場
合、各ネスト構造毎に順次インデントが付加される結
果、ネスト構造の最深部では、1つの手順の記述文の先
頭が記述行の後方にきてしまい、そのため記述文の後端
が用紙の幅を越えてしまうということがしばしば発生す
る。このように、1つの手順を1行に印字しきれないと
きは、記述文の右側が切れたり、又は用紙の左端に折り
返され、印刷されたプログラムが読みずらくなるという
問題が発生した。
【0014】本発明の課題は、上記従来の実情に鑑み、
多層のネスト構造であっても各ネスト構造の制御範囲を
明確に把握することが出来るプログラム表示装置を提供
することである。
多層のネスト構造であっても各ネスト構造の制御範囲を
明確に把握することが出来るプログラム表示装置を提供
することである。
【0015】
【課題を解決するための手段及び作用】本発明は、プロ
グラマブルコントローラ上で動作するプログラムを画面
に表示又は用紙に印字するプログラム表示装置に適用さ
れる。
グラマブルコントローラ上で動作するプログラムを画面
に表示又は用紙に印字するプログラム表示装置に適用さ
れる。
【0016】先ず、請求項1記載の発明のプログラム表
示装置は、ネスト構造のプログラムの制御文に上記ネス
ト構造の深さを表わすレベル番号を付加するレベル番号
付加手段と、該レベル番号付加手段により付加されたレ
ベル番号を、上記制御文の挿入又は削除が行われたと
き、その挿入又は削除後におけるネスト構造の深さを表
わすレベル番号に変更するレベル番号変更手段とを有し
て構成される。
示装置は、ネスト構造のプログラムの制御文に上記ネス
ト構造の深さを表わすレベル番号を付加するレベル番号
付加手段と、該レベル番号付加手段により付加されたレ
ベル番号を、上記制御文の挿入又は削除が行われたと
き、その挿入又は削除後におけるネスト構造の深さを表
わすレベル番号に変更するレベル番号変更手段とを有し
て構成される。
【0017】上記レベル番号付加手段、及びレベル番号
変更手段は、例えばCPU(Central-Processing-Unit)
、ROM(Read Only Memory) 等からなる。次に、請求
項2記載の発明のプログラム表示装置は、上記のレベル
番号付加手段、及びレベル番号変更手段に、更に、上記
レベル番号を該レベル番号に対応する制御文と共に画面
に表示又は用紙に印刷する制御文表示手段を加えて構成
される。
変更手段は、例えばCPU(Central-Processing-Unit)
、ROM(Read Only Memory) 等からなる。次に、請求
項2記載の発明のプログラム表示装置は、上記のレベル
番号付加手段、及びレベル番号変更手段に、更に、上記
レベル番号を該レベル番号に対応する制御文と共に画面
に表示又は用紙に印刷する制御文表示手段を加えて構成
される。
【0018】上記制御文表示手段は、例えば液晶ディス
プレイなどの表示装置やプリンタ等からなり、例えば請
求項3記載のように、上記レベル番号が上記制御文の記
述されるいずれの行においても同一位置に位置するよう
画面に表示又は用紙に印刷するように構成される。
プレイなどの表示装置やプリンタ等からなり、例えば請
求項3記載のように、上記レベル番号が上記制御文の記
述されるいずれの行においても同一位置に位置するよう
画面に表示又は用紙に印刷するように構成される。
【0019】続いて、請求項4記載の発明のプログラム
表示装置は、ネスト構造のプログラムの制御文に上記ネ
スト構造の深さを表わすレベル番号を付加するレベル番
号付加手段と、該レベル番号付加手段により付加された
レベル番号を、上記制御文の挿入又は削除が行われたと
き、その挿入又は削除後におけるネスト構造の深さを表
わすレベル番号に変更するレベル番号変更手段と、上記
レベル番号付加手段により付加されたレベル番号又は上
記レベル番号変更手段により変更されたレベル番号と、
このレベル番号を有する制御文の回路番号とを対応づけ
た対応表を記憶する対応表記憶手段と、該対応表記憶手
段に記憶されている対応表に基づいて、上記回路番号を
該回路番号に対応する制御文の記述行の適宜の位置に、
上記制御文と共に画面に表示又は用紙に印刷する制御文
表示手段とを備えて構成される。
表示装置は、ネスト構造のプログラムの制御文に上記ネ
スト構造の深さを表わすレベル番号を付加するレベル番
号付加手段と、該レベル番号付加手段により付加された
レベル番号を、上記制御文の挿入又は削除が行われたと
き、その挿入又は削除後におけるネスト構造の深さを表
わすレベル番号に変更するレベル番号変更手段と、上記
レベル番号付加手段により付加されたレベル番号又は上
記レベル番号変更手段により変更されたレベル番号と、
このレベル番号を有する制御文の回路番号とを対応づけ
た対応表を記憶する対応表記憶手段と、該対応表記憶手
段に記憶されている対応表に基づいて、上記回路番号を
該回路番号に対応する制御文の記述行の適宜の位置に、
上記制御文と共に画面に表示又は用紙に印刷する制御文
表示手段とを備えて構成される。
【0020】上記レベル番号付加手段、及びレベル番号
変更手段は、例えばCPU、ROM(Read-Only-Memory)
等からなり、上記対応表記憶手段は、例えばRAM(Ra
ndom-Access-Memory) 等からなり、上記回路番号検索手
段は、例えばCPUからなり、上記制御文表示手段は、
例えば表示装置やプリンタ等からなる。
変更手段は、例えばCPU、ROM(Read-Only-Memory)
等からなり、上記対応表記憶手段は、例えばRAM(Ra
ndom-Access-Memory) 等からなり、上記回路番号検索手
段は、例えばCPUからなり、上記制御文表示手段は、
例えば表示装置やプリンタ等からなる。
【0021】そして、請求項5記載の発明のプログラム
表示装置は、上記レベル番号付加手段、レベル番号変更
手段、対応表記憶手段、回路番号検索手段、及び制御文
表示手段に、更に上記ネスト構造の、開始を表わす制御
文と終了を表わす制御文の、何れか一方の回路番号が指
定されたとき、その指定された一方の回路番号の制御文
に対応する他方の制御文の回路番号を、上記対応表記憶
手段に記憶されている対応表に基づいて検索する回路番
号検索手段を加えて構成され、上記制御文表示手段は、
上記回路番号検索手段による検索により検出された回路
番号を、該回路番号に対応する制御文の記述行の適宜の
位置に、上記制御文と共に画面に表示又は用紙に印刷す
るように構成される。
表示装置は、上記レベル番号付加手段、レベル番号変更
手段、対応表記憶手段、回路番号検索手段、及び制御文
表示手段に、更に上記ネスト構造の、開始を表わす制御
文と終了を表わす制御文の、何れか一方の回路番号が指
定されたとき、その指定された一方の回路番号の制御文
に対応する他方の制御文の回路番号を、上記対応表記憶
手段に記憶されている対応表に基づいて検索する回路番
号検索手段を加えて構成され、上記制御文表示手段は、
上記回路番号検索手段による検索により検出された回路
番号を、該回路番号に対応する制御文の記述行の適宜の
位置に、上記制御文と共に画面に表示又は用紙に印刷す
るように構成される。
【0022】上記回路番号検索手段は、例えばCPUか
らなる。
らなる。
【0023】
【実施例】以下、本発明の実施例について図面を参照し
ながら詳述する。図1は、一実施例に係わるプログラム
表示装置の構成を示すブロック図である。同図に示すよ
うに、プログラム表示装置10はCPU11と、このC
PU11にバス12を介して接続されているメモリI
(13)、メモリII(14)、表示部15、キーボード
16、及びインタフェース17等により構成されてい
る。
ながら詳述する。図1は、一実施例に係わるプログラム
表示装置の構成を示すブロック図である。同図に示すよ
うに、プログラム表示装置10はCPU11と、このC
PU11にバス12を介して接続されているメモリI
(13)、メモリII(14)、表示部15、キーボード
16、及びインタフェース17等により構成されてい
る。
【0024】メモリIには、このプログラム表示装置の
基本動作を制御するシステムプログラム及びプログラマ
ブルコントローラ用に作成されたプログラム(中間言
語)の制御文を管理し、そのプログラムを表示画面に表
示出力し又は外部に接続された印刷装置に印刷出力する
制御文管理プログラムが格納されている。
基本動作を制御するシステムプログラム及びプログラマ
ブルコントローラ用に作成されたプログラム(中間言
語)の制御文を管理し、そのプログラムを表示画面に表
示出力し又は外部に接続された印刷装置に印刷出力する
制御文管理プログラムが格納されている。
【0025】また、メモリIIは、プログラマブルコント
ローラ上で動作する図示表現プログラムの作成を支援
し、その作成された図示表現プログラムを中間言語(中
間コード)に変換してメモリに格納し、その中間言語を
PCにローディングする等のソフトウエアが格納される
プログラム領域を備えている。また、メモリIIは、さら
に、上記中間言語が格納されるデータ領域と、レベル番
号管理テーブルが格納されるデータ領域とを備え、ま
た、CPU11が演算の途中結果を一時的に格納するワ
ークエリアを備えている。上記のレベル番号管理テーブ
ルは、上記中間言語の制御文が示すネスト構造のレベル
番号を、その制御文の回路番号と対応付ける対応表であ
る。
ローラ上で動作する図示表現プログラムの作成を支援
し、その作成された図示表現プログラムを中間言語(中
間コード)に変換してメモリに格納し、その中間言語を
PCにローディングする等のソフトウエアが格納される
プログラム領域を備えている。また、メモリIIは、さら
に、上記中間言語が格納されるデータ領域と、レベル番
号管理テーブルが格納されるデータ領域とを備え、ま
た、CPU11が演算の途中結果を一時的に格納するワ
ークエリアを備えている。上記のレベル番号管理テーブ
ルは、上記中間言語の制御文が示すネスト構造のレベル
番号を、その制御文の回路番号と対応付ける対応表であ
る。
【0026】CPU11は、上記メモリIから読み出し
たシステムプログラムに基づいて各部を制御しながら、
同じくメモリIから読み出した制御文管理プログラムに
従って、メモリIIのデータ領域に記憶されている図示表
現プログラムの中間言語における制御文のネスト構造の
レベル番号を検証して、同じくメモリIIのデータ領域に
記憶されているレベル番号管理テーブルのレベル番号を
更新する。この、レベル番号管理テーブルにレベル番号
と対応付けて記憶される制御文は、その制御文の属性で
ある回路番号に置き換えられている。
たシステムプログラムに基づいて各部を制御しながら、
同じくメモリIから読み出した制御文管理プログラムに
従って、メモリIIのデータ領域に記憶されている図示表
現プログラムの中間言語における制御文のネスト構造の
レベル番号を検証して、同じくメモリIIのデータ領域に
記憶されているレベル番号管理テーブルのレベル番号を
更新する。この、レベル番号管理テーブルにレベル番号
と対応付けて記憶される制御文は、その制御文の属性で
ある回路番号に置き換えられている。
【0027】表示部15は、CRT又は液晶の表示画面
(ディスプレイ)を備えており、CPU11の制御によ
り、メモリIIのデータ領域に記憶されている中間言語の
制御文を、これに回路番号やレベル番号を付与して表示
画面上に表示する。
(ディスプレイ)を備えており、CPU11の制御によ
り、メモリIIのデータ領域に記憶されている中間言語の
制御文を、これに回路番号やレベル番号を付与して表示
画面上に表示する。
【0028】キーボード16は、図示表現プログラムを
作成する操作キー、作成された図示表現プログラムを中
間言語に変換指示する操作キー、中間言語のリストアッ
プ(表示)を指示する操作キー等を備えており。上記表
示部15と連携して、例えばユーザとの対話型でキー入
力を受付、そのキー入力データをCPU11に出力す
る。CPU11は、キーボード16からのキー入力デー
タに基づいて実行すべき処理を選択し、その選択した処
理を実行する。
作成する操作キー、作成された図示表現プログラムを中
間言語に変換指示する操作キー、中間言語のリストアッ
プ(表示)を指示する操作キー等を備えており。上記表
示部15と連携して、例えばユーザとの対話型でキー入
力を受付、そのキー入力データをCPU11に出力す
る。CPU11は、キーボード16からのキー入力デー
タに基づいて実行すべき処理を選択し、その選択した処
理を実行する。
【0029】インタフェース17は、図外のPCやプリ
ンタと接続する各種のインタフェースからなる。このプ
ログラム表示装置で作成された又は外部で作成され、こ
のプログラム表示装置に記憶されたプログラム(中間言
語)をPCにローディングする際にはPC接続用のイン
タフェースにPCが接続され、上記中間言語の制御文
を、これに回路番号やレベル番号を付与して用紙に印字
する際には、プリンタ用インタフェースにプリンタが接
続される。
ンタと接続する各種のインタフェースからなる。このプ
ログラム表示装置で作成された又は外部で作成され、こ
のプログラム表示装置に記憶されたプログラム(中間言
語)をPCにローディングする際にはPC接続用のイン
タフェースにPCが接続され、上記中間言語の制御文
を、これに回路番号やレベル番号を付与して用紙に印字
する際には、プリンタ用インタフェースにプリンタが接
続される。
【0030】図2は、上記のメモリIIに格納されている
レベル番号管理テーブルの模式図である。同図に示すよ
うに、レベル番号管理テーブル20は、レベル番号領域
21に対し開始回路番号領域22、終了回路番号領域2
3、最初の中間回路番号領域24、2番目の中間回路番
号領域25、・・・が夫々対応している。レベル番号領
域21には、制御文が示すネスト構造の深さ(階層)の
レベル(段階)を表わすレベル番号が格納される。これ
らのレベル番号は、1番目の階層にはレベル番号
「0」、2番目の階層にはレベル番号「1」、3番目の
階層にはレベル番号「2」、・・・というように、制御
文が示すネスト構造の階層に応じてレベル番号が順次設
けられる。開始回路番号領域22には例えば「IF」文
で始まる制御文の回路番号等が格納される。同図の例で
は回路番号「40」、「42」、「44」・・・が、上
記のレベル番号「0」、「1」、「2」・・・にそれぞ
れ対応して格納されている。また、終了回路番号領域に
は、例えば上記の「IF」文で始まるネスト構造の場合
であれば「ENDIF」文で表わされる制御文の回路番
号が格納される。同図の例では、回路番号「51」、
「50」、「49」・・・が、上記のレベル番号
「0」、「1」、「2」・・・にそれぞれ対応して格納
されている。また、最初の中間回路番号領域24には、
例えば「IF」文の条件に基づく分岐制御文「THE
N」等の回路番号が格納される。同図の例では、回路番
号「41」、「43」、「45」・・・が、上記のレベ
ル番号「0」、「1」、「2」・・・にそれぞれ対応し
て格納されている。また、2番目の中間回路番号領域2
5には、同図では特には図示していないが、例えば「I
F」文の条件に基づく分岐制御文「ELSE」等の回路
番号が格納される。
レベル番号管理テーブルの模式図である。同図に示すよ
うに、レベル番号管理テーブル20は、レベル番号領域
21に対し開始回路番号領域22、終了回路番号領域2
3、最初の中間回路番号領域24、2番目の中間回路番
号領域25、・・・が夫々対応している。レベル番号領
域21には、制御文が示すネスト構造の深さ(階層)の
レベル(段階)を表わすレベル番号が格納される。これ
らのレベル番号は、1番目の階層にはレベル番号
「0」、2番目の階層にはレベル番号「1」、3番目の
階層にはレベル番号「2」、・・・というように、制御
文が示すネスト構造の階層に応じてレベル番号が順次設
けられる。開始回路番号領域22には例えば「IF」文
で始まる制御文の回路番号等が格納される。同図の例で
は回路番号「40」、「42」、「44」・・・が、上
記のレベル番号「0」、「1」、「2」・・・にそれぞ
れ対応して格納されている。また、終了回路番号領域に
は、例えば上記の「IF」文で始まるネスト構造の場合
であれば「ENDIF」文で表わされる制御文の回路番
号が格納される。同図の例では、回路番号「51」、
「50」、「49」・・・が、上記のレベル番号
「0」、「1」、「2」・・・にそれぞれ対応して格納
されている。また、最初の中間回路番号領域24には、
例えば「IF」文の条件に基づく分岐制御文「THE
N」等の回路番号が格納される。同図の例では、回路番
号「41」、「43」、「45」・・・が、上記のレベ
ル番号「0」、「1」、「2」・・・にそれぞれ対応し
て格納されている。また、2番目の中間回路番号領域2
5には、同図では特には図示していないが、例えば「I
F」文の条件に基づく分岐制御文「ELSE」等の回路
番号が格納される。
【0031】図3は、上記のようなレベル番号管理テー
ブル20に基づくプログラム表示状態図の一例である。
このプログラム表示は、画面表示又は用紙印刷によって
なされる。尚、同図には、説明の便宜上、制御文のみを
図示し、図7の手順3又は5のような実行内容の命令文
は図示を省略している。また、この図3に示す手順番号
40、41、・・・は、ここでは、その手順の制御文に
対応する回路番号も兼ねている(図2のレベル番号管理
テーブル20に示した回路番号を参照)。但し、実際に
表示されるプログラム表示では、制御文に対応する回路
番号は、このように昇順に順序よく対応しているわけで
はなく、全くの順不同である。
ブル20に基づくプログラム表示状態図の一例である。
このプログラム表示は、画面表示又は用紙印刷によって
なされる。尚、同図には、説明の便宜上、制御文のみを
図示し、図7の手順3又は5のような実行内容の命令文
は図示を省略している。また、この図3に示す手順番号
40、41、・・・は、ここでは、その手順の制御文に
対応する回路番号も兼ねている(図2のレベル番号管理
テーブル20に示した回路番号を参照)。但し、実際に
表示されるプログラム表示では、制御文に対応する回路
番号は、このように昇順に順序よく対応しているわけで
はなく、全くの順不同である。
【0032】そして、プログラムの表示は、図3に示す
ように、制御文の表示のみでなく、ネスト構造のレベル
番号も表示され、しかも、いずれの制御文においても、
その記述行の後端部の同一位置に表示される。同図の例
では、図の上方から制御文「IF」、「THEN」、
「IF」、「THEN」、「IF」、「THEN」、
「DO」・・・に対して、レベル番号「0」、「0」、
「1」、「1」、「2」、「2」、「3」・・・が表示
されている。このように本実施例においては、いずれの
制御文の表示においても、その記述行の同一位置に、制
御文に対応するレベル番号が表示されるように構成され
る。
ように、制御文の表示のみでなく、ネスト構造のレベル
番号も表示され、しかも、いずれの制御文においても、
その記述行の後端部の同一位置に表示される。同図の例
では、図の上方から制御文「IF」、「THEN」、
「IF」、「THEN」、「IF」、「THEN」、
「DO」・・・に対して、レベル番号「0」、「0」、
「1」、「1」、「2」、「2」、「3」・・・が表示
されている。このように本実施例においては、いずれの
制御文の表示においても、その記述行の同一位置に、制
御文に対応するレベル番号が表示されるように構成され
る。
【0033】また、図4は、上記レベル番号管理テーブ
ル20に基づくプログラム表示状態図の他の例を示して
いる。このプログラム表示は、任意のネスト構造の開始
制御文又は終了制御文に対応する回路番号が指定された
とき、そのネスト構造の開始から終了までの範囲のプロ
グラムを表示し、さらに、制御文に対応する回路番号も
制御文記述行の適宜な位置に表示するように構成され
る。同図の例では、図の上方から制御文「IF」、「T
HEN」、「DO」、「WHILE」、「ENDWHI
LE」、及び「ENDIF」に対して、回路番号「4
4」、「45」、「46」、「47」、「48」、及び
「49」がそれぞれ対応しており、その対応する制御文
の記述行の適宜の位置にそれぞれ表示されている。この
表示は、制御文「IF」の回路番号「44」又は「EN
DIF」の回路番号「49」のいずれかが指定された結
果、その互いに対応し合う制御文「IF」と「ENDI
F」とによって構成されている階層部分のみが取り出さ
れて回路番号と共に表示されたものである。
ル20に基づくプログラム表示状態図の他の例を示して
いる。このプログラム表示は、任意のネスト構造の開始
制御文又は終了制御文に対応する回路番号が指定された
とき、そのネスト構造の開始から終了までの範囲のプロ
グラムを表示し、さらに、制御文に対応する回路番号も
制御文記述行の適宜な位置に表示するように構成され
る。同図の例では、図の上方から制御文「IF」、「T
HEN」、「DO」、「WHILE」、「ENDWHI
LE」、及び「ENDIF」に対して、回路番号「4
4」、「45」、「46」、「47」、「48」、及び
「49」がそれぞれ対応しており、その対応する制御文
の記述行の適宜の位置にそれぞれ表示されている。この
表示は、制御文「IF」の回路番号「44」又は「EN
DIF」の回路番号「49」のいずれかが指定された結
果、その互いに対応し合う制御文「IF」と「ENDI
F」とによって構成されている階層部分のみが取り出さ
れて回路番号と共に表示されたものである。
【0034】次に、このような構成における本実施例の
動作を、図5及び図6のフローチャートを用いて説明す
る。尚、この処理は、図1に示したプログラム表示装置
10のCPU11が、メモリI(13)から読み出した
制御文管理プログラムに基づいて行う処理である。
動作を、図5及び図6のフローチャートを用いて説明す
る。尚、この処理は、図1に示したプログラム表示装置
10のCPU11が、メモリI(13)から読み出した
制御文管理プログラムに基づいて行う処理である。
【0035】先ず、図5は、上記のレベル番号管理テー
ブル20を作成する処理動作を説明するフローチャート
である。この処理では、CPU11は、内蔵のレジスタ
aを使用して、レベル番号を一時的に記憶するようにし
ている。勿論、内蔵のレジスタaの代りに、メモリIIの
ワークエリアを用いてもよい。
ブル20を作成する処理動作を説明するフローチャート
である。この処理では、CPU11は、内蔵のレジスタ
aを使用して、レベル番号を一時的に記憶するようにし
ている。勿論、内蔵のレジスタaの代りに、メモリIIの
ワークエリアを用いてもよい。
【0036】このフローチャートに示すように、先ず、
レジスタaを「0」クリアしてレベル番号を初期化し
(ステップS1)、次に、メモリII(14)のデータ領
域に格納されているプログラム(中間言語)の検索を開
始する(ステップS2)。
レジスタaを「0」クリアしてレベル番号を初期化し
(ステップS1)、次に、メモリII(14)のデータ領
域に格納されているプログラム(中間言語)の検索を開
始する(ステップS2)。
【0037】そして、検索中のプログラム文がネスト構
造の開始を示す制御文(例えば、「IF」文)であるか
否かを判断する(ステップS3)。この判別で、ネスト
構造の開始を示す制御文であった場合は(S3がY)、
メモリIIのデータ領域に格納されているレベル番号管理
テーブル20へ、レベル番号と当該制御文に対応する回
路番号を書き込んだ後、レジスタaの値をインクリメン
トする(ステップS4)。これにより、例えば図3の表
示状態図に示すプログラムが検索されている場合には、
回路番号40の「IF」文が検出され、例えば図2に示
したように、レベル番号管理テーブル20のレベル番号
領域21に、レベル番号「0」が書き込まれ、さらに、
これに対応する開始回路番号領域22に開始回路番号と
して回路番号「40」が書き込まれる。
造の開始を示す制御文(例えば、「IF」文)であるか
否かを判断する(ステップS3)。この判別で、ネスト
構造の開始を示す制御文であった場合は(S3がY)、
メモリIIのデータ領域に格納されているレベル番号管理
テーブル20へ、レベル番号と当該制御文に対応する回
路番号を書き込んだ後、レジスタaの値をインクリメン
トする(ステップS4)。これにより、例えば図3の表
示状態図に示すプログラムが検索されている場合には、
回路番号40の「IF」文が検出され、例えば図2に示
したように、レベル番号管理テーブル20のレベル番号
領域21に、レベル番号「0」が書き込まれ、さらに、
これに対応する開始回路番号領域22に開始回路番号と
して回路番号「40」が書き込まれる。
【0038】次に、検索中のプログラム(中間言語)が
終了しているか否か判別する(ステップS9)。この処
理は、例えば「END FILE」等のプログラムファ
イルの終了を示すコンパイラ制御文を検出したか否かを
判別する処理である。
終了しているか否か判別する(ステップS9)。この処
理は、例えば「END FILE」等のプログラムファ
イルの終了を示すコンパイラ制御文を検出したか否かを
判別する処理である。
【0039】そして、プログラムがまだ終了していなけ
れば(S9がN)、ステップS2に戻ってプログラムの
検索を続行し、ステップS3で再び検索中のプログラム
文がネスト構造の開始を示す制御文であるか否か判別
し、開始を示す制御文でない場合は次にそのプログラム
文が分岐を示す制御文(例えば、「THEN」文や「E
LSE」文等)であるか否かを判別する(ステップS
5)。
れば(S9がN)、ステップS2に戻ってプログラムの
検索を続行し、ステップS3で再び検索中のプログラム
文がネスト構造の開始を示す制御文であるか否か判別
し、開始を示す制御文でない場合は次にそのプログラム
文が分岐を示す制御文(例えば、「THEN」文や「E
LSE」文等)であるか否かを判別する(ステップS
5)。
【0040】この判別で、プログラム文が分岐を示す制
御文であった場合は(S5がY)、続いて前回インクリ
メントしたレジスタaの値をデクリメントして直前のレ
ベル番号に戻し、このレベル番号に対応するレベル番号
管理テーブル20の所定領域に上記分岐を示す制御文の
回路番号を書き込んだ後、レジスタaをインクリメント
する(ステップS6)。これにより、例えば図3に示し
た被検索プログラムにおいて回路番号41の「THE
N」文が検出され、例えば図2に示したように、レベル
番号管理テーブル20のレベル番号領域21のレベル番
号「0」に対応する最初の中間回路番号領域24に上記
の回路番号「41」が書き込まれる。
御文であった場合は(S5がY)、続いて前回インクリ
メントしたレジスタaの値をデクリメントして直前のレ
ベル番号に戻し、このレベル番号に対応するレベル番号
管理テーブル20の所定領域に上記分岐を示す制御文の
回路番号を書き込んだ後、レジスタaをインクリメント
する(ステップS6)。これにより、例えば図3に示し
た被検索プログラムにおいて回路番号41の「THE
N」文が検出され、例えば図2に示したように、レベル
番号管理テーブル20のレベル番号領域21のレベル番
号「0」に対応する最初の中間回路番号領域24に上記
の回路番号「41」が書き込まれる。
【0041】続いて、ステップS9で検索中のプログラ
ム(中間言語)がまだ終了していないことを確認し、ス
テップS2に戻ってプログラムの検索を続行し、ステッ
プS3で再びプログラム文がネスト構造の開始を示す制
御文であった場合は、ステップS4を実行し、一方、開
始を示す制御文でない場合はステップS5の判別を行う
ということを繰り返す。
ム(中間言語)がまだ終了していないことを確認し、ス
テップS2に戻ってプログラムの検索を続行し、ステッ
プS3で再びプログラム文がネスト構造の開始を示す制
御文であった場合は、ステップS4を実行し、一方、開
始を示す制御文でない場合はステップS5の判別を行う
ということを繰り返す。
【0042】これにより、例えば図3に示すプログラム
が検索されている場合には、回路番号42の「IF」
文、回路番号43の「THEN」文、回路番号44の
「IF」文、回路番号45の「THEN」文、・・・が
順次検出される。そして、レジスタaのレベル番号のイ
ンクリメント、デクリメント、そしてインクリメントが
繰り返され、例えば図2に示したように、レベル番号管
理テーブル20の、レベル番号「1」に対応する開始回
路番号領域22には上記の回路番号「42」、最初の中
間回路番号領域24には上記の回路番号「43」が書き
込まれる。また、レベル番号「2」に対応する開始回路
番号領域22には上記の回路番号「44」、最初の中間
回路番号領域24には上記の回路番号「45」が書き込
まれる。尚、図2には図示を省略しているが、図3のプ
ログラムに対する検索では、回路番号「46」の「D
O」文、回路番号「47」の「WHILE」文も同様に
検出され、「DO」文はレベル番号2に対応させ、「W
HILE」文はレベル番号「3」に対応させて、レベル
番号管理テーブル20の2番目の中間回路番号領域25
と開始回路番号領域22に夫々書き込まれる。
が検索されている場合には、回路番号42の「IF」
文、回路番号43の「THEN」文、回路番号44の
「IF」文、回路番号45の「THEN」文、・・・が
順次検出される。そして、レジスタaのレベル番号のイ
ンクリメント、デクリメント、そしてインクリメントが
繰り返され、例えば図2に示したように、レベル番号管
理テーブル20の、レベル番号「1」に対応する開始回
路番号領域22には上記の回路番号「42」、最初の中
間回路番号領域24には上記の回路番号「43」が書き
込まれる。また、レベル番号「2」に対応する開始回路
番号領域22には上記の回路番号「44」、最初の中間
回路番号領域24には上記の回路番号「45」が書き込
まれる。尚、図2には図示を省略しているが、図3のプ
ログラムに対する検索では、回路番号「46」の「D
O」文、回路番号「47」の「WHILE」文も同様に
検出され、「DO」文はレベル番号2に対応させ、「W
HILE」文はレベル番号「3」に対応させて、レベル
番号管理テーブル20の2番目の中間回路番号領域25
と開始回路番号領域22に夫々書き込まれる。
【0043】そして、図5のフローチャートに示すよう
に、検索中のプログラム文が、ネスト構造の開始を示す
制御文ではなく、分岐等を示す中間の制御文でもない場
合は(S3がN、且つS5がN)、ネスト構造の終了を
示す制御文(例えば「ENDWHILE」文や「END
IF」文)であるか否かを判別する(ステップS7)。
に、検索中のプログラム文が、ネスト構造の開始を示す
制御文ではなく、分岐等を示す中間の制御文でもない場
合は(S3がN、且つS5がN)、ネスト構造の終了を
示す制御文(例えば「ENDWHILE」文や「END
IF」文)であるか否かを判別する(ステップS7)。
【0044】この判別で、ネスト構造の終了を示す制御
文であった場合は、レジスタaの値をデクリメントして
直前のレベル番号として、そのレベル番号に対応するレ
ベル番号管理テーブル20の所定領域に上記終了を示す
制御文の回路番号を書き込む(ステップS8)。これに
より、図3のプログラムに対する検索では、図2には図
示を省略しているが、先ず、レベル番号「3」に対応す
る終了回路番号領域23に「ENDWHILE」文に対
応する回路番号「48」が書き込まれる。
文であった場合は、レジスタaの値をデクリメントして
直前のレベル番号として、そのレベル番号に対応するレ
ベル番号管理テーブル20の所定領域に上記終了を示す
制御文の回路番号を書き込む(ステップS8)。これに
より、図3のプログラムに対する検索では、図2には図
示を省略しているが、先ず、レベル番号「3」に対応す
る終了回路番号領域23に「ENDWHILE」文に対
応する回路番号「48」が書き込まれる。
【0045】そして、ステップS9を実行し、検索中の
プログラムがまだ終了していないことを確認し、ステッ
プS2、S3、S5、S7〜S9を繰り返すことによ
り、図3のプログラムに対する検索例では、回路番号
「49」の「ENDIF」文、回路番号「50」の「E
NDIF」文、及び回路番号「51」の「ENDIF」
文が夫々検出され、レジスタaのレベル番号が順次デク
リメントされて、そのレベル番号と回路番号とが対応付
けられて、レベル番号管理テーブル20の所定領域に書
き込まれる。
プログラムがまだ終了していないことを確認し、ステッ
プS2、S3、S5、S7〜S9を繰り返すことによ
り、図3のプログラムに対する検索例では、回路番号
「49」の「ENDIF」文、回路番号「50」の「E
NDIF」文、及び回路番号「51」の「ENDIF」
文が夫々検出され、レジスタaのレベル番号が順次デク
リメントされて、そのレベル番号と回路番号とが対応付
けられて、レベル番号管理テーブル20の所定領域に書
き込まれる。
【0046】即ち、例えば図2に示したように、レベル
番号「2」に対応する終了回路番号領域22には、その
レベルの「ENDIF」文の回路番号「45」が書き込
まれ、レベル番号「1」に対応する終了回路番号領域2
2には、そのレベルの「ENDIF」文の回路番号「4
3」が書き込まれ、そして、レベル番号「0」に対応す
る終了回路番号領域22には、そのレベルの「ENDI
F」文の回路番号「41」が書き込まれる。
番号「2」に対応する終了回路番号領域22には、その
レベルの「ENDIF」文の回路番号「45」が書き込
まれ、レベル番号「1」に対応する終了回路番号領域2
2には、そのレベルの「ENDIF」文の回路番号「4
3」が書き込まれ、そして、レベル番号「0」に対応す
る終了回路番号領域22には、そのレベルの「ENDI
F」文の回路番号「41」が書き込まれる。
【0047】このように、本実施例によれば、メモリII
のデータ領域に格納されたプログラム(中間言語)を検
索して、同じくメモリIIのデータ領域に格納されている
レベル番号管理テーブル20に、レベル番号と制御文の
回路番号との対応を容易に作成することができる。した
がって、制御文に挿入、削除等の変更があった場合に
も、図5のフローチャートに示した処理をCPU11が
実行することにより、レベル番号管理テーブル20を容
易に更新することができ、これにより、常にレベル番号
と制御文の回路番号との正しい対応関係を記録として保
持しておくことができる。したがって、例えば図3に示
すような、レベル番号付きのプログラムの表示も、制御
文の挿入、削除等に係わりなく、常に正しく表示でき
る。また、図3に示すように、制御文の右端にレベル番
号が印刷されているので、ネスト構造の制御文にインデ
ントを付ける必要がなくなり、可読性の優れたドキュメ
ント(プログラム打ち出し表)を得ることが出来る。
尚、このような印刷を行う場合、レベル番号管理テーブ
ル20の参照の仕方は印刷データの作成方法によって異
なるであろうが、ここでは参照の仕方を限定するもので
はない。
のデータ領域に格納されたプログラム(中間言語)を検
索して、同じくメモリIIのデータ領域に格納されている
レベル番号管理テーブル20に、レベル番号と制御文の
回路番号との対応を容易に作成することができる。した
がって、制御文に挿入、削除等の変更があった場合に
も、図5のフローチャートに示した処理をCPU11が
実行することにより、レベル番号管理テーブル20を容
易に更新することができ、これにより、常にレベル番号
と制御文の回路番号との正しい対応関係を記録として保
持しておくことができる。したがって、例えば図3に示
すような、レベル番号付きのプログラムの表示も、制御
文の挿入、削除等に係わりなく、常に正しく表示でき
る。また、図3に示すように、制御文の右端にレベル番
号が印刷されているので、ネスト構造の制御文にインデ
ントを付ける必要がなくなり、可読性の優れたドキュメ
ント(プログラム打ち出し表)を得ることが出来る。
尚、このような印刷を行う場合、レベル番号管理テーブ
ル20の参照の仕方は印刷データの作成方法によって異
なるであろうが、ここでは参照の仕方を限定するもので
はない。
【0048】続いて、図6は、任意のネスト構造の範囲
(プログラム記述)を表示する処理動作を説明するフロ
ーチャートである。この処理では、CPU11は、2種
類の回路番号を一時的に記憶するために、2つの内蔵レ
ジスタa、b又はメモリIIの2つのワークエリアを使用
している。
(プログラム記述)を表示する処理動作を説明するフロ
ーチャートである。この処理では、CPU11は、2種
類の回路番号を一時的に記憶するために、2つの内蔵レ
ジスタa、b又はメモリIIの2つのワークエリアを使用
している。
【0049】同図のフローチャートに示すように、先
ず、回路番号を取得する(ステップS10)。この処理
は、図1に示すプログラム表示装置10のキーボード1
6から、ユーザによるキー入力によって指定された回路
番号を、レジスタaに記憶する処理である。
ず、回路番号を取得する(ステップS10)。この処理
は、図1に示すプログラム表示装置10のキーボード1
6から、ユーザによるキー入力によって指定された回路
番号を、レジスタaに記憶する処理である。
【0050】続いて、メモリIIのレベル番号管理テーブ
ル20における開始回路番号領域22を検索する(ステ
ップS11)。これにより、例えば図2に示すレベル番
号管理テーブル2において、開始回路番号領域22の回
路番号「40」、「42」、「44」・・・が順次検索
される。
ル20における開始回路番号領域22を検索する(ステ
ップS11)。これにより、例えば図2に示すレベル番
号管理テーブル2において、開始回路番号領域22の回
路番号「40」、「42」、「44」・・・が順次検索
される。
【0051】そして、検索した回路番号内に、レジスタ
aに格納した指定回路番号と同一の回路番号があるか否
かを判別し(ステップS12)、あれば(S12が
Y)、その開始回路番号と同一レベル番号の終了回路番
号を取り出して(読み出して)、その取り出した終了回
路番号をレジスタbに格納する(ステップS13)。
aに格納した指定回路番号と同一の回路番号があるか否
かを判別し(ステップS12)、あれば(S12が
Y)、その開始回路番号と同一レベル番号の終了回路番
号を取り出して(読み出して)、その取り出した終了回
路番号をレジスタbに格納する(ステップS13)。
【0052】これにより、例えば図3に示したプログラ
ムにおいて、ユーザが回路番号「44」の「IF」文に
よって構成されるネスト構造の範囲を知るために、その
回路番号「44」をキーボード16からキー入力した場
合は、図のレベル番号管理テーブル20において、開始
回路番号領域22から回路番号「44」が検出され、こ
の回路番号「44」のレベル番号「2」と同一のレベル
番号に対応する終了回路番号領域23の回路番号「4
9」が読み出されて、この回路番号「49」がレジスタ
bに格納される。
ムにおいて、ユーザが回路番号「44」の「IF」文に
よって構成されるネスト構造の範囲を知るために、その
回路番号「44」をキーボード16からキー入力した場
合は、図のレベル番号管理テーブル20において、開始
回路番号領域22から回路番号「44」が検出され、こ
の回路番号「44」のレベル番号「2」と同一のレベル
番号に対応する終了回路番号領域23の回路番号「4
9」が読み出されて、この回路番号「49」がレジスタ
bに格納される。
【0053】続いて、上記レジスタaに格納した開始回
路番号を先頭にしてプログラムを表示する(ステップS
14)。この処理では、レジスタaに格納された開始回
路番号を先頭にして、レジスタbに格納された終了回路
番号までのプログラムが表示される。
路番号を先頭にしてプログラムを表示する(ステップS
14)。この処理では、レジスタaに格納された開始回
路番号を先頭にして、レジスタbに格納された終了回路
番号までのプログラムが表示される。
【0054】これにより、例えば図4に示したように、
上記指定された回路番号「44」の「IF」文を先頭に
して、このネスト構造に含まれる全ての制御文「THE
N」、「DO」、「WHILE」、「END WHIL
E」、及び「ENDIF」が表示され、上記指定された
「IF」文によるネスト構造の範囲が表示される。そし
て、それらの制御文に対応する回路番号「44」、「4
5」、「46」、「47」、「48」、及び「49」
が、それぞれ対応する制御文の記述行の適宜の位置(図
に示す例では左側、つまり記述行の先頭)にそれぞれ表
示される。
上記指定された回路番号「44」の「IF」文を先頭に
して、このネスト構造に含まれる全ての制御文「THE
N」、「DO」、「WHILE」、「END WHIL
E」、及び「ENDIF」が表示され、上記指定された
「IF」文によるネスト構造の範囲が表示される。そし
て、それらの制御文に対応する回路番号「44」、「4
5」、「46」、「47」、「48」、及び「49」
が、それぞれ対応する制御文の記述行の適宜の位置(図
に示す例では左側、つまり記述行の先頭)にそれぞれ表
示される。
【0055】また、図6のフローチャートにおけるステ
ップS12で、指定された回路番号と同一の回路番号が
開始回路番号領域22に格納されていなかった場合は
(S12がN)、次に終了回路番号領域23を検索する
(ステップS15)。
ップS12で、指定された回路番号と同一の回路番号が
開始回路番号領域22に格納されていなかった場合は
(S12がN)、次に終了回路番号領域23を検索する
(ステップS15)。
【0056】これにより、例えば図3に示したプログラ
ムにおいて、ユーザが回路番号「49」の「ENDI
F」文によって構成されるネスト構造の範囲を遡って知
るために、その回路番号「49」をキーボード16から
キー入力した場合は、図のレベル番号管理テーブル20
において、開始回路番号領域22からは、その回路番号
「49」が検出されないために、次に終了回路番号領域
23の回路番号「51」、「50」、「49」・・・が
順次検索される。
ムにおいて、ユーザが回路番号「49」の「ENDI
F」文によって構成されるネスト構造の範囲を遡って知
るために、その回路番号「49」をキーボード16から
キー入力した場合は、図のレベル番号管理テーブル20
において、開始回路番号領域22からは、その回路番号
「49」が検出されないために、次に終了回路番号領域
23の回路番号「51」、「50」、「49」・・・が
順次検索される。
【0057】そして、検索した回路番号内に、レジスタ
aに格納した指定回路番号と同一の回路番号があるか否
かを判別し(ステップS16)、あれば(S16が
Y)、レジスタaの回路番号をレジスタbに転送した
後、上記終了回路番号領域23から検出した回路番号と
同一レベル番号の開始回路番号を読み出して、その読み
出した開始回路番号をレジスタaに格納して(ステップ
S17)、上記ステップS14の処理に移行する。
aに格納した指定回路番号と同一の回路番号があるか否
かを判別し(ステップS16)、あれば(S16が
Y)、レジスタaの回路番号をレジスタbに転送した
後、上記終了回路番号領域23から検出した回路番号と
同一レベル番号の開始回路番号を読み出して、その読み
出した開始回路番号をレジスタaに格納して(ステップ
S17)、上記ステップS14の処理に移行する。
【0058】これにより、例えば上記のようにユーザが
「ENDIF」文の回路番号「49」を入力すれば、こ
の場合も、その「ENDIF」文によって終了するネス
ト構造の範囲が、例えば図4に示すように表示される。
「ENDIF」文の回路番号「49」を入力すれば、こ
の場合も、その「ENDIF」文によって終了するネス
ト構造の範囲が、例えば図4に示すように表示される。
【0059】また、上記ステップS16において、終了
回路番号領域23からも指定された回路番号が検出され
なかった場合は、例えばユーザがキー入力を誤ったよう
な場合であり、その場合は直ちに処理を終了する。
回路番号領域23からも指定された回路番号が検出され
なかった場合は、例えばユーザがキー入力を誤ったよう
な場合であり、その場合は直ちに処理を終了する。
【0060】このように、本実施例によれば、任意のネ
スト構造の開始制御文又は終了制御文の回路番号を入力
して、そのネスト構造の範囲のみを画面表示又は紙面印
刷して、容易にプログラムの内容を検証することができ
る。
スト構造の開始制御文又は終了制御文の回路番号を入力
して、そのネスト構造の範囲のみを画面表示又は紙面印
刷して、容易にプログラムの内容を検証することができ
る。
【0061】
【発明の効果】以上詳細に説明したように、本発明によ
れば、レベル番号管理テーブルに基づいて、ネスト構造
を持つプログラムを、制御文の表示と共に、その制御文
の持つネスト構造の階層レベルを表わすレベル番号を全
ての制御文記述行の同一位置に表示するので、ネスト構
造を視認して制御文で示される制御範囲の把握が容易で
あり、したがって、プログラムを検証するに際してプロ
グラム自体の理解が容易となってこの面の作業能率が向
上する。
れば、レベル番号管理テーブルに基づいて、ネスト構造
を持つプログラムを、制御文の表示と共に、その制御文
の持つネスト構造の階層レベルを表わすレベル番号を全
ての制御文記述行の同一位置に表示するので、ネスト構
造を視認して制御文で示される制御範囲の把握が容易で
あり、したがって、プログラムを検証するに際してプロ
グラム自体の理解が容易となってこの面の作業能率が向
上する。
【0062】また、制御文の挿入、削除等が行なわれた
場合でもレベル番号管理テーブルの更新により常に制御
文とレベル番号との正しい対応の記録を保持することが
できるので、プログラムの表示において誤ったレベル番
号を表示する虞が全く無く、これにより人為的ミスの要
因が除去され、したがって、プログラムの作成、編集、
監視等の作業が容易となり、プログラムの保守に掛かる
時間が低減し、経費が縮小して経済性が向上する。
場合でもレベル番号管理テーブルの更新により常に制御
文とレベル番号との正しい対応の記録を保持することが
できるので、プログラムの表示において誤ったレベル番
号を表示する虞が全く無く、これにより人為的ミスの要
因が除去され、したがって、プログラムの作成、編集、
監視等の作業が容易となり、プログラムの保守に掛かる
時間が低減し、経費が縮小して経済性が向上する。
【0063】また、レベル番号を全ての制御文記述行の
同一位置に表示することで制御文で示される制御範囲の
把握が容易となることによりプログラム記述にインデン
トが不要となり、このため、ネスト構造が深い場合で
も、制御文の記述が印刷用紙の幅を越えてしまうことが
なく、したがって、印刷されたプログラムが読み易く、
この点においてもプログラム検証の作業能率が向上す
る。
同一位置に表示することで制御文で示される制御範囲の
把握が容易となることによりプログラム記述にインデン
トが不要となり、このため、ネスト構造が深い場合で
も、制御文の記述が印刷用紙の幅を越えてしまうことが
なく、したがって、印刷されたプログラムが読み易く、
この点においてもプログラム検証の作業能率が向上す
る。
【図1】一実施例に係わるプログラム表示装置の構成を
示すブロック図である。
示すブロック図である。
【図2】メモリIIに格納されているレベル番号管理テー
ブルの模式図である。
ブルの模式図である。
【図3】レベル番号管理テーブルに基づくプログラム表
示の一例を示す図である。
示の一例を示す図である。
【図4】レベル番号管理テーブルに基づくプログラム表
示の他の例を示す図である。
示の他の例を示す図である。
【図5】レベル番号管理テーブルを作成する処理動作を
説明するフローチャートである。
説明するフローチャートである。
【図6】任意のネスト構造の範囲(プログラム記述)を
表示する処理動作を説明するフローチャートである。
表示する処理動作を説明するフローチャートである。
【図7】従来の制御の流れが2方向に分岐する場合のプ
ログラムの表示例を示す図である。
ログラムの表示例を示す図である。
10 プログラム表示装置 11 CPU 12 バス 13 メモリI 14 メモリII 15 表示部 16 キーボード 17 インタフェース 20 レベル番号管理テーブル 21 レベル番号領域 22 開始回路番号領域 23 終了回路番号領域 24 最初の中間回路番号領域 25 2番目の中間回路番号領域 40、41、42、43、44、45、46、47、4
8、49、50、51回路番号
8、49、50、51回路番号
フロントページの続き (72)発明者 乳井 直樹 神奈川県川崎市川崎区田辺新田1番1号 富士電機株式会社内
Claims (5)
- 【請求項1】 プログラマブルコントローラ上で動作す
るプログラムを画面に表示又は用紙に印字するプログラ
ム表示装置において、 ネスト構造のプログラムの制御文に前記ネスト構造の深
さを表わすレベル番号を付加するレベル番号付加手段
と、 該レベル番号付加手段により付加されたレベル番号を、
前記制御文の挿入又は削除が行われたとき、その挿入又
は削除後におけるネスト構造の深さを表わすレベル番号
に変更するレベル番号変更手段と、 を有することを特徴とするプログラム表示装置。 - 【請求項2】 前記レベル番号を該レベル番号に対応す
る制御文と共に画面に表示又は用紙に印刷して報知する
制御文表示手段を更に有することを特徴とする請求項1
記載のプログラム表示装置。 - 【請求項3】 制御文表示手段は、前記レベル番号が前
記制御文の記述されるいずれの行においても同一位置に
位置するよう画面に表示又は用紙に印刷することを特徴
とする請求項2記載のプログラム表示装置。 - 【請求項4】 プログラマブルコントローラ上で動作す
るプログラムを画面に表示又は用紙に印字するプログラ
ム表示装置において、 ネスト構造のプログラムの制御文に前記ネスト構造の深
さを表わすレベル番号を付加するレベル番号付加手段
と、 該レベル番号付加手段により付加されたレベル番号を、
前記制御文の挿入又は削除が行われたとき、その挿入又
は削除後におけるネスト構造の深さを表わすレベル番号
に変更するレベル番号変更手段と、 前記レベル番号付加手段により付加されたレベル番号又
は前記レベル番号変更手段により変更されたレベル番号
と、このレベル番号を有する制御文の回路番号とを対応
づけた対応表を記憶する対応表記憶手段と、 該対応表記憶手段に記憶されている対応表に基づいて、
前記回路番号を該回路番号に対応する制御文の記述行の
適宜の位置に、前記制御文と共に画面に表示又は用紙に
印刷する制御文表示手段と、 を有することを特徴とするプログラム表示装置。 - 【請求項5】 前記ネスト構造の、開始を表わす制御文
と終了を表わす制御文の、何れか一方の回路番号が指定
されたとき、その指定された一方の回路番号の制御文に
対応する他方の制御文の回路番号を、前記対応表記憶手
段に記憶されている対応表に基づいて検索する回路番号
検索手段を更に有して、 前記制御文表示手段は、前記該回路番号検索手段による
検索により検出された回路番号を、該回路番号に対応す
る制御文の記述行の適宜の位置に、前記制御文と共に画
面に表示又は用紙に印刷することを特徴とする請求項4
記載のプログラム表示装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22298394A JPH0887406A (ja) | 1994-09-19 | 1994-09-19 | プログラム表示装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22298394A JPH0887406A (ja) | 1994-09-19 | 1994-09-19 | プログラム表示装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0887406A true JPH0887406A (ja) | 1996-04-02 |
Family
ID=16790967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22298394A Pending JPH0887406A (ja) | 1994-09-19 | 1994-09-19 | プログラム表示装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0887406A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010086043A (ja) * | 2008-09-29 | 2010-04-15 | Kyocera Mita Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
JP2010086044A (ja) * | 2008-09-29 | 2010-04-15 | Kyocera Mita Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
JP2011039618A (ja) * | 2009-08-07 | 2011-02-24 | Meidensha Corp | ソフトウェアの開発支援システム、支援方法およびプログラム |
US8314951B2 (en) | 2008-09-26 | 2012-11-20 | Kyocera Document Solutions Inc. | Image processing apparatus, and computer-readable recording medium |
-
1994
- 1994-09-19 JP JP22298394A patent/JPH0887406A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8314951B2 (en) | 2008-09-26 | 2012-11-20 | Kyocera Document Solutions Inc. | Image processing apparatus, and computer-readable recording medium |
JP2010086043A (ja) * | 2008-09-29 | 2010-04-15 | Kyocera Mita Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
JP2010086044A (ja) * | 2008-09-29 | 2010-04-15 | Kyocera Mita Corp | 画像処理装置、画像処理方法及び画像処理プログラム |
JP2011039618A (ja) * | 2009-08-07 | 2011-02-24 | Meidensha Corp | ソフトウェアの開発支援システム、支援方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4683549A (en) | Sequence control method and apparatus | |
US7721255B2 (en) | Sequence program editing apparatus | |
JPH0887406A (ja) | プログラム表示装置 | |
JPS63766A (ja) | 文書処理装置 | |
US5291590A (en) | Method of detecting and processing abnormal message output from computer system and detecting and processing apparatus therefor | |
US20040199679A1 (en) | Peripheral device for programmable controller | |
EP0551098B1 (en) | Displaying method in programming system for programmable controller | |
JPS59114602A (ja) | プログラマブルコントロ−ラ | |
JP2772047B2 (ja) | プラント監視操作装置 | |
JPH0863218A (ja) | 数値制御装置のプログラム構成表示方式 | |
JPS58163036A (ja) | 文書作成装置 | |
GB2175112A (en) | Sequence control method and apparatus | |
JPS5934549A (ja) | 複写機用制御装置 | |
JPH06161516A (ja) | シーケンスプログラムのチェック方法 | |
JP2971251B2 (ja) | Sfcプログラミング装置 | |
JP4255737B2 (ja) | プログラマブルコントローラの周辺装置 | |
JPH05282012A (ja) | 設備のシーケンス変更内容の自動検証装置 | |
JPH04209007A (ja) | プログラマブルコントローラのユーザプログラムエディットシステム | |
JPH05282013A (ja) | 設備のフローモニタ表示内容の自動編集装置 | |
JPH06332749A (ja) | レジスタ解析処理装置 | |
JPH0520319A (ja) | 表示制御装置 | |
JPH024288A (ja) | イメージ処理装置及びそのフォントファイル管理方法 | |
JPS62251832A (ja) | 電子計算機システム | |
JPH1196040A (ja) | プロセス実行システムおよび記録媒体 | |
JPS6089234A (ja) | 文字処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020305 |