(57)【特許請求の範囲】
【請求項１】
コイル命令や接点命令を処理するビット演算ＣＰＵと、数値命令の処理やシステム管理を行うワード演算ＣＰＵとの２つのＣＰＵで構成し、前記ワード演算ＣＰＵは前記ビット演算ＣＰＵの状態を示すステータスレジスタの内容をリードすることで該ビット演算ＣＰＵの状態を把握するシーケンスコントローラにおいて、
前記ビット演算ＣＰＵのステータスレジスタ回路は、
プログラムメモリから読み出した命令を格納する第１のフリップフロップと、
前記第１のフリップフロップの内容を一時保管する第２のフリップフロップと、
ビット演算ＣＰＵの状態を示す内容を保管しておき、この内容を前記ワード演算ＣＰＵがリード動作で読み込むための第３のフリップフロップと、
通常時は前記第１のフリップフロップの内容を選択して第３のフリップフロップに渡し、前記ワード演算ＣＰＵのリードエンド時に前記第２のフリップフロップの内容を選択して前記第３のフリップフロップに渡す第１のマルチプレクサと、
前記ワード演算ＣＰＵが前記第３のフリップフロップの内容をリード中には前記第１のマルチプレクサからの内容に代えて前記第３のフリップフロップの内容をフィードバックする第２のマルチプレクサとを備えたことを特徴とするシーケンスコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ビット演算用ＣＰＵとワード演算用ＣＰＵを使ってシーケンス演算を行うシーケンスコントローラに関する。
【０００２】
【従来の技術】
シーケンスコントローラでは、コイル命令や接点命令を処理するビット演算を実行することが多いため、ビット演算専用ＣＰＵを採用し、高速化を図っている。よって、このビット演算ＣＰＵと数値命令の実行やシステム管理を行うワード演算ＣＰＵの２つのＣＰＵとで構成する。
【０００３】
シーケンス演算を行う回路は、図３に示すように、ビット演算ＣＰＵ１１、ワード演算ＣＰＵ１２、プログラムメモリ（ＰＭ）１３とデータメモリ（ＤＭ）１４で構成される。
【０００４】
シーケンスの実行は、それぞれのＣＰＵがプログラムメモリ１３からシーケンス命令をリードし、ビット命令はビット演算ＣＰＵ１１が実行し、数値命令はワード演算ＣＰＵ１２が実行する。命令の種類によって、それぞれのＣＰＵが順番に処理する。
【０００５】
ワード演算ＣＰＵ１２には、数値命令の実行の他、システム管理を司る役割もあり、ビット演算ＣＰＵ１１の状態を把握する必要がある。ビット演算ＣＰＵ１１には、ビット演算命令を実行中か停止中かを表すステータスレジスタ１１Ａを持ち、ワード演算ＣＰＵ１２はこのレジスタ１１Ａをビット演算ＣＰＵ１１からの要求時やワード演算ＣＰＵ自身の演算空き時間にリードすることで、ビット演算ＣＰＵ１１の状態を把握する。
【０００６】
【発明が解決しようとする課題】
図３に示すシーケンス演算回路は、ワード演算ＣＰＵ１２がシステム管理を司る役割があり、ビット演算ＣＰＵ１１の状態を把握する必要がある。この状態把握をビット演算ＣＰＵ１１のステータスレジスタ１１Ａをワード演算ＣＰＵ１２がリードすることで、ビット演算ＣＰＵ１１の状態を把握する。
【０００７】
このステータスレジスタの内容は、図４のようにビット演算ＣＰＵ１１の命令実行によって変化するため、ワード演算ＣＰＵ１２がビット演算ＣＰＵ１１の実行と非同期にリードすると、リード中にデータが変化することがあり得る。
【０００８】
従来のこの対策として、ビット演算ＣＰＵ１１がワード演算ＣＰＵ１２に読み出し要求信号を出力し、ビット演算ＣＰＵ１１はステータスレジスタ１１Ａの内容を固定し、ワード演算ＣＰＵ１２のリード中にデータが変化することを防いでいる。
【０００９】
この方法は、ビット演算ＣＰＵ１１が演算を終了して要求信号を出力し、これを受けたワード演算ＣＰＵ１２は処理中の動作を中断してステータスレジスタ１１Ａをリードし、その後にシーケンス命令の実行をすることになる。
【００１０】
このため、ワード演算ＣＰＵ１２のソフトウェア処理が複雑になり、ビット演算ＣＰＵ１１からワード演算ＣＰＵ１２への処理の移動に時間がかかることが問題となる。
【００１１】
本発明の目的は、ビット演算ＣＰＵの状態を非同期でリードしながらシーケンス演算を確実、高速にするシーケンスコントローラを提供することにある。
【００１２】
【課題を解決するための手段】
本発明は、ビット演算ＣＰＵが持つステータスレジスタの内容が、ワード演算ＣＰＵのリード中にデータが変化することを防ぐことで、ワード演算ＣＰＵから非同期にリード可能とし、ワード演算ＣＰＵのソフトウェア処理を単純化すると共に、ビット演算ＣＰＵからワード演算ＣＰＵへの処理の移動時間を高速にするものであり、以下の構成を特徴とする。
【００１３】
コイル命令や接点命令を処理するビット演算ＣＰＵと、数値命令の処理やシステム管理を行うワード演算ＣＰＵとの２つのＣＰＵで構成し、前記ワード演算ＣＰＵは前記ビット演算ＣＰＵの状態を示すステータスレジスタの内容をリードすることで該ビット演算ＣＰＵの状態を把握するシーケンスコントローラにおいて、
前記ビット演算ＣＰＵのステータスレジスタ回路は、
プログラムメモリから読み出した命令を格納する第１のフリップフロップと、
前記第１のフリップフロップの内容を一時保管する第２のフリップフロップと、
ビット演算ＣＰＵの状態を示す内容を保管しておき、この内容を前記ワード演算ＣＰＵがリード動作で読み込むための第３のフリップフロップと、
通常時は前記第１のフリップフロップの内容を選択して第３のフリップフロップに渡し、前記ワード演算ＣＰＵのリードエンド時に前記第２のフリップフロップの内容を選択して前記第３のフリップフロップに渡す第１のマルチプレクサと、
前記ワード演算ＣＰＵが前記第３のフリップフロップの内容をリード中には前記第１のマルチプレクサからの内容に代えて前記第３のフリップフロップの内容をフィードバックする第２のマルチプレクサとを備えたことを特徴とする。
【００１４】
【発明の実施の形態】
図１は、本発明の実施形態を示すビット演算ＣＰＵのステータスレジスタ部の回路図であり、その動作タイミングを図２に示す。
【００１５】
プログラムメモリ３１は、シーケンス命令を格納するもので、ビット演算ＣＰＵ１１の外部のものになる。フリップフロップ３２はプログラムメモリ３１から読み出した命令を格納する。フリップフロップ３３は後述するフリップフロップ３６のためにフリップフロップ３２の内容を一時的に保管する。
【００１６】
マルチプレクサＭＵＸ３４は、フリップフロップＦＦ３６に渡すデータをフリップフロップ３２に格納している命令とフリップフロップ３３に格納している命令をリードエンド信号の状態に応じて切り替える。
【００１７】
ビット演算ＣＰＵ１１がプログラムメモリ３１から命令を読み出し中に、ワード演算ＣＰＵ１２がステータスレジスタ１１Ａをリードしたとき、フリップフロップ３２と３３はそれぞれ次の命令の内容に変化する。
【００１８】
フリップフロップ３３の内容は、前回のＦＦ３２の内容を格納しているため、ワード演算ＣＰＵ１２のリード終了時にフリップフロップ３６にフリップフロップ３３の内容を送ることでフリップフロップ３６の内容が１つ抜けることを防ぐ。
【００１９】
マルチプレクサ３５は、ワード演算ＣＰＵ１２がステータスレジスタ１１Ａをリード中にフリップフロップ３６の内容が変化しないように、リード中はフリップフロップ３６の内容を選択し、フィードバックする。
【００２０】
フリップフロップ３６は、ステータスレジスタの内容そのものであり、ワード演算ＣＰＵ１２はフリップフロップ３６をリードすることで、ビット演算ＣＰＵ１１の状態を把握する。
【００２１】
【発明の効果】
以上のとおり、本発明によれば、ビット演算ＣＰＵが持つステータスレジスタの内容が、ワード演算ＣＰＵのリード中にデータが変化することを防ぐことでワード演算ＣＰＵから非同期にリード可能としたため、ワード演算ＣＰＵのソフトウェア処理を単純化すると共に、ビット演算ＣＰＵからワード演算ＣＰＵへの処理の移動時間を高速にすることができる。
【図面の簡単な説明】
【図１】本発明の実施形態を示す要部回路図。
【図２】実施形態における動作タイムチャート。
【図３】シーケンス演算回路図。
【図４】非同期リードの場合のタイムチャート。
【符号の説明】
１１…ビット演算ＣＰＵ
１２…ワード演算ＣＰＵ
１３、３１…プログラムメモリ
１４…データメモリ
３２、３３、３６…フリップフロップ
３４、３５…マルチプレクサ
【図１】
0003900660.tif 000002
【図２】
0003900660.tif 000003
【図３】
0003900660.tif 000004
【図４】
0003900660.tif 000005