(57)【要約】【課題】  本発明は、図式言語を用いたプログラミングに関し、命令間の接続線の交差を可能とし、記述される命令相互を接続線で任意に接続することが可能な図式言語方式制御装置、図式言語プログラミングの方法を提供することを目的とする。【解決手段】  前記図式言語で記述された制御プログラムを実行するＣＰＵ１１は、命令毎の出力情報を記憶する記憶手段２５を備え、前記図式言語で記述したプログラムの命令毎の位置を識別する行列アドレスとその命令の出力データとを記憶し、前記命令は、実行している命令の次に実行される命令の決定を、前記アドレスから命令自身で自動的に決定できる命令セットで構成し、前記命令の相互を接続する接続線が交差する場合の前記プログラムの製作が容易に行えるようにしたことを特徴とする図式言語方式制御装置。【選択図】  図２
2005227948.tif 000002
【特許請求の範囲】
【請求項１】
表示画面上にラダーダイアグラム、ファンクションブロックダイアグラムなどの図式言語で制御プログラムを作成し、制御対象を制御する制御プログラムを実行する図式言語方式制御装置において、
前記制御プログラムを実行するＣＰＵには、前記図式言語で記述された前記制御プログラムの命令毎の出力情報を記憶する記憶手段を備えたことを特徴とする図式言語方式制御装置。
【請求項２】
前記記憶手段は、前記図式言語で記述した前記制御プログラムの前記命令毎の表示位置座標を示す行列アドレスとその命令の出力データとを記憶し、
前記命令は、実行している命令の次に実行される命令の決定を、前記アドレスから前記命令自身で自動的に決定できる命令セットで構成し、
前記命令の相互を接続する接続線が交差する場合の前記制御プログラムの命令数を削減するようにしたことを特徴とする請求項１に記載の図式言語方式制御装置。
【請求項３】
前記制御プログラムが実行されたときの前記命令の出力データは、前記記憶手段から読み出し、
前記制御プログラムのパワーフローを時系列にモニタするようにしたことを特徴とする請求項２に記載の図式言語方式制御装置。
【請求項４】
前記命令には、予め設定される特定の前記命令の実行状態を格納する記憶領域を前記記憶手段に備え、
前記制御プログラム実行時に前記命令実行時の動作状態をモニタするようにしたことを特徴とする請求項２に記載の図式言語方式制御装置。
【請求項５】
前記記憶手段には、前記制御プログラムの前記命令毎の前記行列アドレスで位置付けされる分岐点の識別記号を記憶する記憶領域を備え、
前記制御プログラムの実行中に、前記分岐点の識別記号の有無を前記命令の追加、削除を行うときに読み出し、
前記制御プログラム実行中の前記命令の追加、削除が、前記制御プログラム全体のコンパイルを行わずに前記命令の出力データを意図する前記行列アドレスに記憶するようにしたことを特徴とする図式言語方式制御装置。
【請求項６】
表示画面上にラダーダイアグラム、ファンクションブロックダイアグラムなどの図式言語で制御プログラムを作成する図式言語方式プログラミングの方法であって、
前記図式言語で記述された制御プログラムの命令毎の出力情報を記憶する命令セットによりプログラミングすることを特徴とする図式言語プログラミングの方法。
【請求項７】
表示画面上にラダーダイアグラム、ファンクションブロックダイアグラムなどの図式言語で作成された命令セットを使用した制御プログラムの図式言語プログラミングの方法であって、
前記命令セットの命令毎の入出力の接続形態から前記命令毎の命令コードを設定するステップと、
前記命令コードで作成された制御プログラムにおける前記命令コード相互を接続する接続線の合流、分流の存在の有無を判別し、次に実行すべき前記命令の表示位置座標の行列アドレスを指定するオフセット値を設定するステップと、
前記制御プログラムにおける前記命令の出力線と交差する分流の個数によって、次に実行されるべき前記命令の前記行列アドレスのオフセット値を設定するステップと、
前記交差する分流の分岐点の前記行列アドレスを読み出す分岐点取り出し命令を設定するステップとを
備え、
前記制御プログラムにおける前記命令毎の前記行列アドレスと出力データとを格納する記憶手段のアドレスをコンパイラによって設定することを不要とする前記命令セットによって前記制御プログラムを作成することを特徴とする図式言語プログラミングの方法。
【請求項８】
前記表示位置座標のアドレスは、前記命令を最小単位のセルとする行列アドレスで記憶し、
前記行番号のアドレスのオフセット値は、分流を受ける前記命令コードに対して算出し、
前記列番号のアドレスのオフセット値は、前記命令の存在しない前記セル個数から算出するようにしたことを特徴とする請求項７に記載の図式言語プログラミングの方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鉄鋼プラント、製紙プラント、化学プラント等の産業用設備の監視や制御を、図式言語を使用した制御プログラムを使用して実行する、図式言語方式制御装置、図式言語プログラミングの方法に関する。
【背景技術】
【０００２】
一般に、鉄鋼、製紙プラントや自動車産業などの組立作業を含むＦＡ(Factory Automation)分野、化学プラントなどのＰＡ(Process Automation)分野、上下水道システム等の公共システムなど、産業用システムの監視、制御分野では、図式言語で記述された制御プログラムを使用する制御装置が広く用いられている。
【０００３】
ここで、制御装置は、例えば、プログラマの操作により、制御装置用の制御プログラム等の作成を支援するプログラミング機能を備え、制御装置から送出されるモニタ情報に基づいて表示を行う監視機能、操作者の操作により、制御装置に指令を入力する操作卓としての機能、といった各機能を備えている。
【０００４】
この種の制御装置では、図式言語によってプログラムを作成する方式が広く使用されている。この図式言語プログラミングの言語は国際電気標準会議による国際規格ＩＥＣ６１１３１−３で規定されているグローバル言語が採用されている。
【０００５】
この図式言語で記述されたラダー経路単位で時系列に読み取れる表示ダイアグラムやファンクションブロックダイアグラムで作成されたシーケンス回路の場合の、線の合流が許されることにより、プログラム入力に係わるプログラマの負担が軽減されているが、線が交差することは許されておらず、必ず並列分岐回路とする必要があるため、その分プログラムの作成に手間がかかり、作業効率が低下する問題があった。
【０００６】
詳しくは、リレーシーケンス回路のラダープログラムのプログラミングの場合について図１１（ａ）を参照して説明する。この図において、例えば、図式で示された命令の上に記述されたＸ１（１）は、常開接点の命令のオペランドを示し、（１）は命令の識別と実行順序を示す。黒点大で示した点（Ａ）、（Ｂ）は、この回路の分流点を説明上明示したものである。
【０００７】
この点（Ａ）、（Ｂ）の分流情報、即ち、出力データ及びその表示位置座標のアドレスは、命令の実行順を追って管理するスタックレジスタ方式のデータ構造で管理することが可能で、点（Ａ）の情報は命令（４）、（９）で、点（Ｂ）の情報は命令（５）、（８）で使用され、正常に実行できる。
【０００８】
ところが、図１１（ｂ）のシーケンス回路の場合、点（Ａ）の分流と点（Ｂ）の分流が連続していると、一つのスタックレジスタ（以後スタックと言う）で分流の情報を管理しようとする場合、点（Ｂ）の情報よりも先にスタックにデータを追加（ＰＵＳＨ）した点（Ａ）の分流の情報を命令（４）で使用することが出来ない。
【０００９】
このような分流が連続し、命令の接続線が点Ｐで交差するような場合において、命令（４）、（８）を実行するには、点（Ａ）、点（Ｂ）の分流情報を格納するメモリのアドレスから、その出力データを読み出して、命令（４）、（８）に与える命令が必要となる。
【００１０】
更に、この命令のアドレスはコンパイラによって与える必要があるので、このようなシーケンス回路に命令を追加する場合には、プログラムを再度コンパイルする必要があった。
【００１１】
以上説明した様に、図１１（ａ）に示すようなラダーダイアグラムで記述された分岐回路の接続線に交差がない場合は、プログラム可能であるが、図１１（ｂ）に示す様にＸ８、Ｘ１０、Ｘ１１で構成される分岐回路が点Ｐで交差することは許されておらず、上述のような命令と再コンパイルを行うか、または、必ず並列分岐回路とする必要があった。
【００１２】
また、この分岐が可能か否かは、一旦分岐線を設定した結果で可能な位置が判定されるなど、分岐回路の設定には制約が多かった。そのため、分岐の始点と終点の設定可能な位置を記述されたラダーダイアグラム上に表示して、作業効率を上げようとする方法がある（例えば、特許文献１参照。）。
【特許文献１】特開２００２−３７３００４号公報（第２頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、以上のような図式言語を使用した図式言語方式制御装置、図式言語プログラミングの方法に関し、分岐回路のプログラミングについて、命令間の接続線の交差を可能とし、記述される命令相互を接続線で任意に接続できるようにし、図式言語方式のプログラムの作成やプログラムのデバックを行う際に掛かるプログラマの負担を軽減することが望まれている。
【００１４】
本発明は上記問題点を解決するためになされたもので、図式言語を用いた図式言語方式制御装置のプログラミングに関し、命令間の接続線の交差を可能とし、記述される命令相互を接続線で任意に接続することが可能な図式言語方式制御装置、図式言語プログラミングの方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明に係る請求項１の図式言語方式制御装置は、表示画面上にラダーダイアグラム、ファンクションブロックダイアグラムなどの図式言語で制御プログラムを作成し、制御対象を制御する制御プログラムを実行する図式言語方式制御装置において、前記制御プログラムを実行するＣＰＵには、前記図式言語で記述された前記制御プログラムの命令毎の出力情報を記憶する記憶手段を備えたことを特徴とする。
【００１６】
上記目的を達成するために、本発明に係る請求項２の図式言語方式制御装置は、請求項１に記載の図式言語方式制御装置において、前記記憶手段は、前記図式言語で記述した制御プログラムの前記命令毎の表示位置座標を示す行列アドレスとその命令の出力データとを記憶し、前記命令は、実行している命令の次に実行される命令の決定を、前記アドレスから前記命令自身で自動的に決定できる命令セットで構成し、前記命令の相互を接続する接続線が交差する場合の前記制御プログラムの作成の命令数を削減するようにしたことを特徴とする。
【００１７】
上記目的を達成するために、本発明に係る請求項６の図式言語方式プログラミングの方法は、表示画面上にラダーダイアグラム、ファンクションブロックダイアグラムなどの図式言語でプログラムを作成する図式言語方式プログラミングの方法であって、前記図式言語で記述された制御プログラムの命令毎の出力情報を記憶する命令セットによりプログラミングすることを特徴とする。
【００１８】
上記目的を達成するために、本発明に係る請求項７の図式言語方式プログラミングの方法は、表示画面上にラダーダイアグラム、ファンクションブロックダイアグラムなどの図式言語で作成された命令セットを使用した制御プログラムの図式言語プログラミングの方法であって、前記命令セットの命令毎の入出力の接続形態から前記命令毎の命令コードを設定するステップと、前記命令コードで作成された制御プログラムにおける前記命令コード相互を接続する接続線の合流、分流の存在の有無を判別し、次に実行すべき前記命令の表示位置座標の行列アドレスを指定するオフセット値を設定するステップと、前記制御プログラムにおける前記命令の出力線と交差する分流の個数によって、次に実行されるべき前記命令の前記行列アドレスのオフセット値を設定するステップと、前記交差する分流の分岐点の前記行列アドレスを読み出す分岐点取り出し命令を設定するステップとを備え、前記制御プログラムにおける前記命令毎の前記行列アドレスと出力データとを格納する記憶手段のアドレスをコンパイラによって設定することを不要とする前記命令セットによって制御プログラムを作成することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、図式言語で記述された制御プログラムの命令毎の出力データ及びその命令出力の分岐の有無を記憶するアドレスを命令自体で決定できる構造の命令セットとしたので、命令の相互を接続する接続線が交差する場合を含む任意の接続を可能とするプログラムの記述が可能となり、図式言語プログラムによるプログラマの負担が軽減され、プログラム作成の生産性が向上する図式言語方式制御装置、図式言語プログラミングの方法を提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施例を説明する。
【実施例１】
【００２１】
以下、本発明による実施例１について図１乃至図７を参照して説明する。図１は、図式言語方式制御装置１の構成を示すブロック図である。図式言語方式制御装置１は、制御対象との間でデータを授受する入出力モジュール１９ａを介して制御対象２０を制御するもので、図式言語方式制御装置１と通信で接続されたモニタ装置２を備えている。
【００２２】
図式言語方式制御装置１は、ＣＰＵ１１、プログラムメモリ１２、ワークメモリ１３、制御プログラムメモリ１４、制御データメモリ１５、通信インタフェース１６、入出力インタフェース１７、１９及び表示インタフェース１８がシステムバス１１ａを介して接続されている。
【００２３】
そして、入出力インタフェース１７は入出力装置１７ａと、表示インタフェース１８は表示装置１８ａと、入出力インタフェース１９は、入出力モジュール１９ａと、また通信インタフェース１６は、通信手段を介して図式言語方式制御装置１で監視、制御するデータのモニタ装置２と接続されている。
【００２４】
ＣＰＵ１１は、制御プログラムメモリ１４内の制御プログラムに基づいて、図式言語方式制御装置１全体の制御を実行するためのもので、プログラムメモリ１２内の基本ソフトウェアを実行する機能を備えている。
【００２５】
プログラムメモリ１２は、ＣＰＵ１１から読出、書込が可能であり、コンパイラ及び基本システムソフトウェアが記憶されるメモリである。
【００２６】
ワークメモリ１３は、ＣＰＵ１１から読出、書込が可能であり、ＣＰＵ１１が制御プログラム及び基本ソフトウェアの実行中などに、一時的にデータを記憶させるためのメモリである。
【００２７】
制御プログラムメモリ１４は、ＣＰＵ１１から読出可能であり、本発明による命令セット（Instruction set、命令語彙）を使用する制御プログラムや変数シンボルが記憶されるメモリである。
【００２８】
制御データメモリ１５は、ＣＰＵ１１から読出可能であり、制御プログラムに使用される変数データが記憶されるメモリである。
【００２９】
表示インタフェース１８は、システムバス１１ａを介して表示装置１８ａに接続するためのものである。表示装置１８ａは、表示インタフェース１８に接続され、例えば、液晶ディスプレイやＣＲＴの如き、監視、制御データの表示機能をもつものであり、ここでは図式言語で作成されるラダーダイアグラム、ファンクションブロックダイアグラムを表示装置１８ａのキー操作で入力し、プログラムの作成にも使用される。
【００３０】
入力装置１７ａは、入出力インタフェース１７に接続され、例えば、キーボードやマウスの如き、通常のデータ入力機能をもつものであり、ここでは表示装置１８ａにモニタするメニューの決定や変数データの指定の他、プログラミングに関する選択設定などに用いられている。
【００３１】
通信インタフェース１６は、システムバス１１ａ及び通信回線を介してモニタ装置２と通信するためのインタフェースである。
【００３２】
ここで、制御プログラムは、例えば、後述する図３に示すようなラダーダイアグラムによるシーケンス回路のプログラム（以後ラダープログラムと言う）を実現するためのものである。
【００３３】
次に、本発明による図式言語で記述されたラダープログラムを実行するＣＰＵ１１の詳細構成について図２を参照して説明する。
【００３４】
ＣＰＵ１１は、システムバス１１ａを介して、制御プログラムメモリ１４に取り出す命令のアドレスを指定するプログラムカウンタ２１、指定された命令を解読し命令オペランドを読み込む命令レジスタ２２、命令の内容によって命令実行に必要な命令やデータのアドレス、またはデータを一時的に格納する演算レジスタ２３、及び命令で得られた演算種類に基づき読み込んだデータに対して演算を実行する演算装置２４、演算結果のデータを格納するメモリ２５及びデータレジスタ２６とから構成される。
【００３５】
また、演算結果のデータを格納するメモリ２５には、出力情報メモリ領域２５ａが確保されている。
【００３６】
以上のように構成された図式言語方式制御装置１のハードウェアは、各実施例において共通であるが、後述する実施例で異なるＣＰＵ１１の演算レジスタ２３及びメモリ２５の構成の相違点については各実施例で後述する。
【００３７】
次に、以上のように構成された図式言語方式制御装置１の命令の設定方法について図３乃至６について説明し、次にその命令の動作について図７で説明する。
【００３８】
なお、モニタ装置２を使用して制御プログラムを作成、実行する場合もあるが、この場合は、モニタ装置２の構成を本図式言語方式制御装置１と同じ構成とし、作成した制御プログラムをローディングして使用しても良い。
【００３９】
図３は、本発明による図式言語方式制御装置１で作成されたラダープログラムの例を説明する図である。同図において、図式で記述された各命令は、表示位置座標の行列アドレス（以後行列アドレスと言う）を行（Ｃ１乃至Ｃｎ）、列（Ｒ１乃至Ｒｎ）で区切られたセル単位のアドレスに配置される。
【００４０】
例えば、Ｃ１Ｒ１には、図式記述された常開接点の命令コードとそのオペランド（アドレスＸ１とその命令の実行順序（１））が設定されている。そして、各命令セットを使用して、その命令間を接続線で結びこのシーケンス回路を作成する。
【００４１】
作成されたこの図３においては、命令（２）の出力、点（Ａ）で分流が発生し、点Ｐにおいて接続線が交差している状態を示す。
【００４２】
この接続線で伝達される命令のビット出力データをパワーフローと呼ぶ。そして、この命令の行列アドレスに対応した出力情報を格納するメモリとして、メモリ２５内の出力情報メモリ領域２５ａを設けておく。
【００４３】
図４は、この出力情報メモリ領域２５ａのメモリの構成例を示す図で、接続線が交差する点（Ａ）の行列アドレスＲ１Ｃ２として格納した例を示す。この行列アドレスと、その出力情報を読み出す命令をコンパイラで挿入して、命令（８）を実行することによって、パワーフローの接続線が交差したプログラムの実行が可能となる。
【００４４】
以上述べた様に、各命令の出力情報を格納する出力情報メモリ領域２５ａをメモリ２５内に構成することによって、分流や、合流が発生した場合にこの出力情報メモリ領域２５ａの情報を読み出すことによって、接続線に交差があるラダー回路の命令を作成し、実行することができる。
【００４５】
また、ここでは、パワーフローのビット出力データを例として示したが、ワードデータや、浮動小数点データを格納するメモリ構成とすることも可能で、シグナルフローを使用した場合のプログラムにも適用できる。
【実施例２】
【００４６】
実施例２の構成は、実施例１で説明した、図１及び図２に示す構成と同じでその説明を省略する。実施例２が、実施例１と異なる点は、実施例１では、図３、点（Ａ）からの分岐回路のプログラムの作成するために、点（Ａ）の命令（２）の出力情報を出力情報メモリ領域２５ａに格納する命令をコンパイラで挿入し、命令（８）の前にはこの出力情報メモリ領域２５ａのアドレスから点（Ａ）の情報を取り出す命令が必要であったが、本実施例２では、格納させる命令と取り出す命令をこの出力情報メモリ領域２５ａの行列アドレスに自動的に格納するようにした点が異なる。
【００４７】
即ち、これを実現するハードウェアとして、図２に示す演算レジスタ２３は、表示装置１８ａに表示される図式言語で記述されたラダープログラムでの命令の行列アドレスを制御するための行番号レジスタ２３ｃ、列番号レジスタ２３ｄ及び、演算時にスタックレジスタから任意位置のデータ取り出しを制御する行スタック２３ａ、列スタック２３ｂを構成する点が異なる。
【００４８】
そして、命令セットの内、例えば、図式言語で記述されるラダープログラムの常開接点についての命令の場合は、図６に示すような詳細を後述する命令の接続形態毎の詳細な命令セットを備えておく。
【００４９】
この命令セットは、当該命令の実行毎に、次に実行される命令の行列アドレスを演算させるとともに、当該命令の出力を当該命令の行列番号で示される出力情報メモリ領域２５ａの行列アドレスに格納し、交差があっても任意の点からの分流を可能とするものである。
【００５０】
次に、この命令セットの設定方法について、図５及び図６を参照して説明する。図５は、この常開接点の命令の設定手順を示すもので、図６は、常開接点についての命令コードの例を示す。他の命令については同様の方法で設定が可能であるのでその説明を省略する。
【００５１】
この命令は、行列番号レジスタ２３ｃ、２３ｄの行列番号の増減と、行スタック２３ａ、列スタック２３ｂの「PUSH」、「POP」の操作の指定、及び当該命令の出力情報を当該命令の行列番号で設定されるアドレスの出力情報メモリ領域２５ａに格納することをＣＰＵ１１に実行させるように、ＣＰＵ１１のハードウェア、及びその命令を作成する。
【００５２】
先ず、命令操作コードは、当該命令の接続形態種類分の命令コードを設定する（ｓ１）。例えば、この常開接点の場合は、図６に示す様に１６点の入出形態がある。
【００５３】
次に、図６に示す様に、この命令コード１６種について、夫々の分流、合流の接続形態から行番号レジスタ２３ｃ、列番号レジスタ２３ｄの増減値（オフセット値）＋ｎ、＋ｍを、増減のない場合は０を指定する（ｓ２）。
【００５４】
詳細には、行番号の指定が＋ｎとなっている命令は、この命令を実行する前に行番号レジスタ２３ｃを＋ｎ増加させておく。通常は＋１で良いが、次の実行命令が行を飛び越す命令の場合には行番号レジスタ２３ｃのオフセット値を指定できる様にしておく。
【００５５】
また、列番号レジスタ２３ｄも命令実行後に列番号を＋ｍ増加させる。通常は＋１で良いが、命令が空のセル個数を設定できるオフセット値としておく。即ち、当該命令が分流を受ける入力接続となる場合には、行番号レジスタ２３ｃのオフセット値は＋１、列方向の命令の空白セル個数から列番号レジスタ２３ｄのオフセット値を増減する。
【００５６】
このとき、行列スタック２３ａ、２３ｂの操作は、行スタック２３ａの操作については、当該命令の行番号を行スタック２３ａに「PUSH」するか、当該命令を実行後、行スタック２３ａから行番号をＰＯＰして、次の命令の行番号を指定する。
【００５７】
また、列スタック２３ｂの操作については、当該命令の列番号を列スタック２３ｂに「PUSH」するか、列スタック２３ｂから列番号を「POP」、または「READ」して、当該命令の列番号とする。
【００５８】
次に、接続線が交差する列の飛び越しがあった場合、この「POP」、「READ」は、列スタック２３ｂのトップからオフセット分だけボトム位置にあるデータを取り出したり、読出したりすることを可能とするために、列offset＋ｋを設定する（ｓ３）。
【００５９】
図６の行列スタック操作、列offsetの欄に示す記号−は、スタック操作がないことを示す。
【００６０】
このようにして図６に示すような常開接点の命令が設定される。常閉接点の命令やその他の命令についても同様に作成される。
【００６１】
そして、図３に示したラダープログラムについてコンパイルすると、命令（１）乃至（１１）は、行番号レジスタ２３ｃ、列番号レジスタ２３ｄの内容を増減させるとともに、行番号、列番号を夫々の行スタック２３ａ、列スタック２３ｂに「PUSH」または「POP」し、図７に示す動作の結果が得られる。
【００６２】
例えば、この動作の幾つかについて説明する。先ず、命令（１）が実行されると、その結果の行番号（アドレス）は１、列番号（アドレス）は、＋１加算されて２となる。
【００６３】
次に、常閉接点の命令（２）では行番号は１のままで、この命令の実行後の列番号は＋１加算されて３となる。そして、列スタックの操作は「PUSH」操作で、列アドレス２が格納される。
【００６４】
次に、命令（３）の実行では、行番号は１のまま、列番号は＋１加算されて３となる。そして、行スタックには行アドレス１を格納「PUSH」し、列アドレス分岐点（Ａ）が存在するので２と３を格納「PUSH」しておく。
【００６５】
次に、命令（４）では、行列アドレスが夫々＋加算されて、命令実行後のアドレスは２、３となる。そして列スタックには、列offset＋１であるので、前命令（３）の列アドレス２、３を「READ」参照としておく。
【００６６】
このようにして、コンパイルが実行された結果、図７が得られる。
【００６７】
以上述べた様に、本発明によれば、出力情報メモリ領域２５ａに演算回路２４の出力を行番号レジスタ２３ｃおよび列番号レジスタ２３ｄの値をアドレスとして格納し、演算回路２４は制御プログラムメモリ１４から命令を読出して命令レジスタ２２に送り、命令の内容に従って制御データメモリ１５からデータを読み出してデータレジスタ２６に格納し、演算回路２４の演算対象とする動作を行う。
【００６８】
したがって、命令の実行毎に、次に実行される命令の行列アドレスを自動的に演算し、命令の出力をその命令の行列アドレスに格納するので、分流、合流、及び接続線の交差が可能なプログラムの作成と実行が可能となる。
【実施例３】
【００６９】
実施例３の構成は、実施例１、２で説明した、図１及び図２に示す構成と同じでその説明を省略する。
【００７０】
実施例３が、実施例１、２と異なる点は、実施例１、２ではメモリ２５に出力情報メモリ領域２５ａを設けたが、本実施例３においては、この出力情報メモリ領域２５ａに格納された情報を、表示インタフェース１８を介して表示装置１８ａに表示し、命令の動作を時系列に表示する。
【００７１】
このようにすれば、例えば、従来、図８に示すようなＯＮ／ＯＦＦ状態をラダー図上に識別可能な太線または表示色を変えて表示することは可能であったが、図９に示すような、経路単位で時系列に読み取れるパワーフローの状態を表示することができる。
【００７２】
したがって、プログラムのデバッグやシミュレーションが正確に、且つ短時間で行えるようになる。
【実施例４】
【００７３】
実施例４の構成は、実施例１乃至実施例２で説明した図１及び図２に示す構成と同じで、その説明を省略する。
【００７４】
実施例４が、実施例２と異なる点は、実施例２では、ＣＰＵ１１のメモリ２５に出力情報メモリ領域２５ａを設けたが、本実施例４では、出力情報メモリ領域２５ａ以外に、命令毎のＯＮ／ＯＦＦ状態を記憶する命令状態メモリ領域２５ｂを設けたことにある。
【００７５】
この命令状態メモリ領域２５ｂの格納アドレスの構成は、実行された命令毎の行列番号レジスタ２３ｃ、２３ｄの値をアドレスとして使用するので、命令実行毎の出力情報以外に、命令のＯＮ／ＯＦＦ状態を記憶することができる。
【００７６】
したがって、この命令状態メモリ領域２５ａのアドレスの内容を読み出すことによって、この状態を表示装置１８ａにモニタすることができるので、プログラムを実行したときのオペランドの値が変化しても、影響受けることなく正確なモニタが可能となる。
【実施例５】
【００７７】
実施例５の構成は、実施例１乃至実施例２で説明した図１及び図２に示す構成と同じで、その説明を省略する。
【００７８】
実施例５が、実施例４と異なる点は、実施例４では、ＣＰＵ１１のメモリ２５に出力情報メモリ領域２５ａ及び命令状態メモリ領域２５ｂを設けたが、本実施例５では、出力情報メモリ領域２５ａ及び命令状態メモリ領域２５ｂ以外に、分岐点を識別する分岐点識別メモリ領域２５ｃを設けたことにある。
【００７９】
このメモリの構成を図１０に示す。この分岐点識別メモリ領域２５ｃの構成は、図式記述されたプログラムの表示位置座標の行列アドレスに対応付けたメモリアドレスの構成とする。
【００８０】
例えば、図３に示したラダープログラムにおいて、図１０に示すような行（Ｒ）列（Ｃ）座標のアドレス構成で記憶し、分岐点（Ａ）はコード化して、例えば、分岐点識別記号（Ａ）として、行列アドレス、Ｒ１、Ｃ２に格納しておく。
【００８１】
このように構成することによって、プログラムの実行は、分岐点（Ａ）の取り出し命令をおくことなく、分岐点識別メモリ領域２５ｃに格納された分起点識別記号を検索し、分岐点識別記号（Ａ）があった場合には、このアドレスに一致する出力情報メモリ領域２５ａのデータを読み出して、分流時のパワーフロー情報とし、以後のプログラム演算を実行することができる。
【００８２】
また、この分岐点の読出し命令の設定は、図５(b)に示す様に、列offsetの設定（ｓ３）を実行した後に行う。
【００８３】
以上述べた様に、ラダープログラムにおいて、分流を追加する命令を追加する場合、従来では、分流の命令とそのパワーフロー情報を取り出す命令のアドレスを変更するため、ラダープログラムを再コンパイルする必要があった。
【００８４】
しかし、本発明によれば、従来のプログラムを再コンパイルする必要がないので、プログラムの追加作業時間が短縮できる。
【００８５】
即ち、本発明によれば、命令セットの命令毎に、命令の出力情報を格納するメモリのアドレスを算出するようにしているので、命令の出力情報を格納する命令が不要となり、分岐点の情報を取り出す命令のアドレスを算出することも不要となるので、命令の挿入、削除時の既存プログラムの再コンパイルが不要となるので、制御プログラム実行中においても、そのプログラムの変更時間が短縮される。
【００８６】
本発明は、上述した実施例に何ら限定されるものではなく、上述した図式言語プログラミングの実行機能を搭載した各種の制御装置において実行することが可能で、本発明の主旨を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００８７】
【図１】本発明に係る図式言語方式制御装置の構成図。
【図２】ＣＰＵの詳細構成図。
【図３】本発明によるラダーダイアグラムの例。
【図４】本発明による出力状態メモリ領域の構成を説明する図。
【図５】本発明による命令セットの命令毎の設定方法を説明するフロー図。
【図６】本発明による常開接点の命令の設定例。
【図７】本発明による命令の実行後の動作説明図。
【図８】従来の実行モニタの説明図。
【図９】本発明による実行モニタの説明図。
【図１０】分岐点識別メモリの構成例。
【図１１】従来のラダー図における接続線の交差の問題点を説明する図。
【符号の説明】
【００８８】
１  図式言語方式制御装置
２  モニタ装置
１１  ＣＰＵ
１１ａ  システムバス
１２  プログラムメモリ
１３  ワークメモリ
１４  制御プログラムメモリ
１５  制御データメモリ
１６  通信インタフェース
１７  入出力インタフェース
１７ａ  入出力装置
１８、１９  表示インタフェース
１８ａ  表示装置
１９ａ  入出力モジュール
２０  制御対象
【図１】
2005227948.tif 000003
【図２】
2005227948.tif 000004
【図３】
2005227948.tif 000005
【図４】
2005227948.tif 000006
【図５】
2005227948.tif 000007
【図６】
2005227948.tif 000008
【図７】
2005227948.tif 000009
【図８】
2005227948.tif 000010
【図９】
2005227948.tif 000011
【図１０】
2005227948.tif 000012
【図１１】
2005227948.tif 000013