(57)【特許請求の範囲】
【請求項１】
データメモリの接点データを個別に強制的にオン又はオフにロック指定するロック指定データメモリを設け、ラダープログラムをパイプライン処理で実行するシーケンサにおいて、
前記パイプライン処理は、命令フェッチ後の解析結果が演算データをデータメモリに書込む命令か否かを判定し、データメモリに書込む命令のときは次のステップで前記データメモリからのデータ読出しに代えてロック指定データメモリからのロック指定データの読出しに切り替えることを特徴とするシーケンサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ラダーシーケンスを演算するシーケンサに係り、特に、ラダープログラムのデバッグ機能を実現するための接点ロック処理に関する。
【０００２】
【従来の技術】
図２はラダー回路例を示したもので、複数のメモリに対応する接点からなる。また、この回路は図３のプログラムメモリに展開され、更に図４のようなデータメモリに展開される。図４中、各数字はメモリロケーションのアドレスを示している。
【０００３】
これらプログラムメモリ及びデータメモリは、図５にシーケンサをハードウェア構成で示すブロックのメモリ１、２として用意され、ラダー回路を構築するためのプログラムとデータが格納される。
【０００４】
図５に示すブロック図において、命令フェッチ部３は、プログラムカウンタ３Ａの値をアドレスとしてプログラムメモリ１から１つの命令をデータとしてインストラクションレジスタ３Ｂに読出す。
【０００５】
解析部４は、インストラクションレジスタ３Ｂのオペコード部をデコーダ４Ａで解読し、さらにはパイプラインレジスタ４Ｂに順次格納する。
【０００６】
オペランドデータアクセス部５は、インストラクションレジスタ３Ｂのオペランド部を取り込み、オペランドに対応するアドレスをデータポインタ５Ａに得、これをデータメモリ２のアドレスとする。このアドレス指定によりデータメモリ２から読出したデータをデータバッファ５Ｂからデータレジスタ６に転送する。また、データバッファ５Ｃのデータをデータメモリ２に書込む。
【０００７】
演算部７は、パイプラインレジスタ４Ｂからの命令コードの解析結果にしたがってデータレジスタ６のデータを使って演算を実行する。
【０００８】
パイプラインレジスタ４Ｂは、演算速度を向上するため、命令の実行にパイプライン処理を行うものであり、下記表にはパイプライン処理の例を示す。
【０００９】
【表１】
0003705263.tif 000002
【００１０】
パイプライン処理は、命令フェッチ部３と命令解析部４とオペランドデータアクセス部５と演算部７を効率良く使用するのに有効である。上記の表において、ｎ＋２のステップに着目すると、命令Ｃのフェッチと命令Ｂの解析とオペランドデータリード及び命令Ａの演算を並列に処理していることになる。
【００１１】
すなわち、マイクロコード方式又はハードウェア処理方式の何れにも、現在の実行（演算）より先の命令の実行のために、予め前処理を行っておく。
【００１２】
このとき、パイプラインレジスタ４Ｂは、前記の表１に示すように、ステップに応じて演算部７には例えば命令Ａによる演算を指令し、同時にプログラムカウンタ３Ａには命令Ｃのフェッチのためインクリメントを指令し、データポインタ５Ａには命令Ｂのポインタ指定を行う。
【００１３】
以上のようなシーケンサにおいて、ラダーシーケンスを作成してシーケンサに入力し、所定の演算を行うとき、そのデバッグ機能を実現するために、シーケンサのデータメモリ２のデータに対するロック、又はプログラムメモリ１の命令に対するロックを行う機能が用意されている場合が多い。このデータに対するロックは、接点（メモリデータ）や命令を強制的にＯＮロックしたり、ＯＦＦロックする。
【００１４】
いま、データメモリの接点に対するロックとして、図２のラダー回路で「Ｍ４０」の接点をＯＮロックする場合について考えると、「Ｍ４０」のメモリ内容は例えば「０」から「１」に書き換えられる。したがって、「Ｍ４０」の接点を使用している命令もその演算内容を変える必要がある。例えば図３のプログラムメモリでは、ST M40,AND M40,LD M40の三つの命令のオペランドデータとして「１」を使用する必要がある。
【００１５】
従来は、この機能を実現するため、図３に示すようなプログラムメモリ１の中からＭ４０をオペランドにしている命令を全て検索し、別コードに変えるなどして演算内容を変更していたため、大容量の命令コードを操作するには処理に相当の時間を要し、演算スキャンを乱す等の弊害を生じていた。
【００１６】
この課題を解消する方式として、データメモリ１と同一メモリ容量を持ち、且つメモリロケーションも１対１に対応させたロック指定データメモリ８を別途に設け、接点ロックを行うときにはロック指定データメモリの該等メモリロケーションのデータを書き換え、ラダープログラムを実行するときにロック指定データメモリを参照することでロック指定の有無及びロック指定の種類を識別する方式としたものがある。
【００１７】
この方式では、接点ロック又はその解除を行うときにはロック指定データメモリの該等メモリロケーションのデータをデバッグ機能が持つエディタ等で書き換えることで済み、従来のように命令を検索してそのコードを操作する必要がなくなり、接点ロックと解除の処理が極めて簡略化される。
【００１８】
なお、演算結果をデータメモリ２に書込む命令のときは、ロック指定データメモリの当該メモリロケーションを参照することでロック指定があるか否かのチェックを行い、演算結果をデータメモリ２に書込む際にその可否を識別する。
【００１９】
【発明が解決しようとする課題】
ロック指定データメモリを設けた従来方式において、演算部７が演算結果をデータメモリ２に書込む命令での処理は、ロック指定データメモリを参照してロック指定のチェックを行い、演算結果をデータメモリに書込むか否かを決定するため、演算速度が落ちる。
【００２０】
例えば、下記表のパイプライン処理において、書込み命令Ｃは、処理内容が多いため、複数ステップに渡り実行される。この命令Ｃにおいて、ステップｂでは命令Ｃのオペランド部をオペランドデータアクセス部５にリードし（読出し）、ステップｃではロック指定データｃ’をリードし、ステップｃ＋１ではロック指定有無の解析と命令Ｃのオペランド部の再リードを行い、ステップｃ＋２で演算結果をライトする（書込む）。この再リードが必要な理由は、一般にメモリ素子が複数ビット幅をもつものが多く、演算結果１ビットのみのライトができないため、リードモディファイライトすることによる。
【００２１】
【表２】
0003705263.tif 000003
【００２２】
したがって、演算結果をデータメモリ２に書込む命令では、予めリードしているオペランドデータがそのままリードモディファイライトに利用できないため、ロック指定データをリードし、そのデータを解析し、ロック指定されていないことを確認した後、演算結果をライトするため、処理に要するステップ数が増加し、演算速度が落ちる。
【００２３】
本発明の目的は、演算結果をデータメモリに書込む場合の処理ステップ数を減らして演算速度を向上させるシーケンサを提供することにある。
【００２４】
【課題を解決するための手段】
本発明は、データメモリの接点データを個別に強制的にオン又はオフにロック指定するロック指定データメモリを設け、ラダープログラムをパイプライン処理で実行するシーケンサにおいて、
前記パイプライン処理は、命令フェッチ後の解析結果が演算データをデータメモリに書込む命令か否かを判定し、データメモリに書込む命令のときは次のステップで前記データメモリからのデータ読出しに代えてロック指定データメモリからのロック指定データの読出しに切り替えることを特徴とする。
【００２５】
【発明の実施の形態】
下記表３は、本実施形態になるパイプライン処理を示す。
【００２６】
【表３】
0003705263.tif 000004
【００２７】
この表３及び前記表２にも示されるように、ステップａにおいて解析部４は命令Ｃの解析を実行している。この解析により、命令Ｃが演算結果をデータメモリ２に書込む命令であることが解析できる。
【００２８】
そこで、本実施形態では、表３に示すように、解析部４がステップａで命令Ｃが書込み命令であると解析したときに、次のステップｂでは命令Ｃのオペランドデータのリード（従来）に代えてロック指定データメモリ８のデータＣ’をリードするようオペランドデータアクセス部５に指示する。
【００２９】
この指示により、解析部４ではデータバッファ５Ｂから読み出したロック指定データＣ’をデータレジスタ６から読み出すことができ、次のステップｃでは解析部４ではロック指定データＣ’の解析を行い、これに並行してオペランドデータアクセス部５では命令Ｃのリードを行うことができる。
【００３０】
そして、解析部４による解析結果がロック指定でなければ、次のステップｃ＋１で演算結果をデータメモリ２にライトする。
【００３１】
したがって、本実施形態では、演算結果をデータメモリ２に書込む命令であるときは、従来のパイプライン処理に比べて１ステップ減らした実行になり、演算速度を向上させることができる。
【００３２】
図１は、本実施形態をハードウェア構成で実現するためのブロック図を示す。同図が図５と異なる部分は、命令フェッチ部３Ｂからオペランド部のオペランドデータアクセス部５のデータポインタ５Ａに与えるデータの上位桁を加算器５Ｄを介して行い、この加算器５Ｄには解析部４の解析結果がデータメモリ２への書込み命令であるときにロック指定アドレス加算値をバイアス加算する点にある。
【００３３】
解析部４は、命令がデータメモリ２への書込みであるときに、ロック指定アドレスの加算により、ロック指定データメモリ８から読み出したロック指定データをデータレジスタ６から取り込む。
【００３４】
なお、加算器５Ｄに代えて、命令フェッチ後の解析でデータポインタ５Ａの出力をロック指定データメモリ８に切り替える構成にもできる。
【００３５】
【発明の効果】
以上のとおり、本発明によれば、ロック指定データメモリを設け、ラダープログラムをパイプライン処理で実行するにおいて、パイプライン処理は、命令フェッチ後の解析結果が演算データをデータメモリに書込む命令か否かを判定し、データメモリに書込む命令のときは次のステップで前記データメモリからのデータ読出しに代えてロック指定データメモリからのロック指定データの読出しに切り替えるようにしたため、パイプライン処理の実行ステップ数を減らして演算速度を向上させることができる。
【図面の簡単な説明】
【図１】本発明に係るシーケンサのブロック図。
【図２】シーケンサのラダー回路の例。
【図３】シーケンサのプログラムメモリの例。
【図４】シーケンサのデータメモリの例。
【図５】従来のシーケンサのブロック図。
【符号の説明】
１…プログラムメモリ
２…データメモリ
３…命令フェッチ部
４…解析部
５…オペランドデータアクセス部
５Ｄ…加算器
６…データレジスタ
７…演算部
【図１】
0003705263.tif 000005
【図２】
0003705263.tif 000006
【図３】
0003705263.tif 000007
【図４】
0003705263.tif 000008
【図５】
0003705263.tif 000009