(57)【要約】【課題】  本発明は、一括入出力の制御演算時間及び入出力データ転送時間を短縮した高速入出力機能を備える制御装置を提供することを目的とする。【解決手段】  制御プログラムを記憶し、被制御対象の状態を入力データとして入出力装置から入力し、該入力データを制御プログラムにしたがって演算し、この演算結果を、被制御対象を制御する出力データとして入出力装置へ出力する制御装置であって、入出力装置の出力データを記憶する出力データレジスタを備える一括入出力バッファメモリ２０１と、一括入出力バッファメモリ２０１に書き込まれる出力データの書き込みを制御する一括入出力バッファメモリ制御部２０３とを備え、一括入出力バッファメモリ制御部２０３は、制御プログラム実行回路１４の制御データの比較出力によって、一括入出力バッファメモリの出力データの書き込みを制御するようにしたことを特長とする。【選択図】  図４
2008047052.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラムを記憶し、被制御対象の状態を入力データとして入出力装置から入力し、該入力データを前記制御プログラムにしたがって演算し、この演算結果を、前記被制御対象を制御する出力データとして前記入出力装置へ出力する制御装置であって、
前記制御装置は、前記被制御対象を制御する制御プログラム実行部と、前記入力データ及び前記出力データを前記制御装置に入力し、前記入出力装置へ出力する入出力データインタフェースと、前記制御プログラム実行部と前記入出力データインタフェース部とを接続するシステムバスとを備え、
前記制御プログラム実行部は、前記制御プログラムを記憶する制御プログラムメモリと、前記入力データ、前記出力データ及び制御変数を一時記憶する制御データメモリと、前記制御データメモリに記憶される前記入力データを使用して、前記制御プログラムを実行する制御プログラム実行回路とからなり、
前記制御プログラム実行回路は、前記制御プログラムメモリから読み出した命令を記憶する命令レジスタと、
前記命令レジスタに記憶された命令を解釈するデコーダと、
前記制御データメモリから読み出した、オペランドの内容を記憶する制御データ格納レジスタと、
前記制御データ格納レジスタに記憶された制御データを前記デコーダで解釈した命令に従って演算する演算ユニットと、
前記演算ユニットの演算出力を記憶するレジスタと、
前記演算ユニットが演算した制御データと演算実行後のデータとが一致しているか否かを検出する第１の比較器と、
前記制御データメモリからオペランドを前記制御データ格納レジスタに読み出すこと及び前記第１の比較器の出力で前記演算ユニットの出力データを前記制御データメモリに書き込むことを制御する演算制御部と
を備え、
前記比較器が一致信号を出力した時は、前記読出し書き込み命令の書き込みフェーズを省略し、そうでない場合は前記読出し書き込み命令全体を実行するようにしたことを特徴とする高速入出力機能を備える制御装置。
【請求項２】
前記入出力データインタフェース部は、前記入出力装置の出力データを記憶する出力データレジスタを備える一括入出力バッファメモリと、
前記一括入出力バッファメモリへの書き込みを制御する一括入出力バッファメモリ制御部と
を備え、
前記一括入出力バッファメモリ制御部は、前記制御プログラム実行回路の前記第１の比較器の出力が一致信号を出力した場合には、前記制御データメモリの出力データを前記一括入出力バッファメモリに書き込むことを中止し、そうでない場合は、前記一括入出力バッファメモリに書き込むようにしたことを特長とする請求項１に記載の高速入出力機能を備える制御装置。
【請求項３】
前記入出力データインタフェース部は、前記入出力装置から今回の制御周期、または、前回の制御周期で読み出した入力データを交互に記憶する第１のバッファメモリと第２のバッファメモリと、
前記第１のバッファメモリに記憶される入力データと前記第２のバッファメモリに記憶された入力データとを比較する第２の比較器と、
前記第２の比較器の出力が一致した場合には、今回の制御周期での前記入力データを、前記制御データメモリへ書き込まないように指令し、そうでない場合には書き込みを指令する入力データ制御部と
を備えたことを特徴とする請求項１に記載の高速入出力機能を備える制御装置。
【請求項４】
前記入力データ制御部は、前記入力データのアドレスを前記制御データメモリの入力レジスタの書き込みアドレスに変換するアドレス変換器を備えていることを特徴とする請求項３に記載の高速入出力機能を備える制御装置。
【請求項５】
前記入出力データインタフェース部は、前記入出力装置へ出力する今回の制御周期、または、前回の制御周期で読み出した出力データを記憶する第１の出力レジスタと第２の出力レジスタとを備える前記制御データメモリと、
前記第１の出力レジスタに記憶された出力データと前記第２の出力レジスタに記憶された出力データとを比較する第３の比較器と、
前記入出力装置に出力する出力データを記憶する出力バッファメモリと、
前記第３の比較器の出力が一致した場合には、今回の制御周期での前記出力データを前記出力バッファメモリへ書き込まないように指令し、そうでない場合には書き込みを指令する出力データ制御部と
を備えたことを特徴とする請求項１に記載の高速入出力機能を備える制御装置。
【請求項６】
制御プログラムを記憶し、被制御対象の状態を入力データとして入出力装置から入力し、該入力データを前記制御プログラムにしたがって演算し、この演算結果を、前記被制御対象を制御する出力データとして前記入出力装置へ出力する高速入出力機構を備える制御装置の制御データの制御方法であって、
前記演算実行前と前記演算実行後の制御データとが一致しているか否かを判定するステップと、
前記ステップで一致と判定された場合には、前記読出し書き込み命令の書き込みフェーズを指令するステップと、
そうでない場合には、前記演算後の読出し書き込み命令の書き込みフェーズの実行の中止を指令するステップと
からなることを特徴とする高速入出力機能を備える制御装置の制御データの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鉄鋼プラント、製紙プラントや、自動車産業などの産業システム、上下水道システム他の公共システムの制御に広く使用されている制御装置に関する。
【背景技術】
【０００２】
従来の制御装置１００の構成を図１６に示す。従来の制御装置１００においては、制御プログラム実行回路１１４が処理する複数の入出力装置２００からの入力データは、Ｉ／Ｏインタフェース１１７からシステムバス１１９を介して、一旦制御データメモリ１１６内の図示しない入力レジスタに入力され、この入力データを使用して制御プログラムメモリ１１５に記憶される制御プログラムが制御プログラム実行回路１１４で実行され、その演算結果が、制御データメモリ１１６内の図示しない出力レジスタに書き込まれる。
【０００３】
このデータの流れを図１７に示す。この動作は、制御プログラムの演算実行の前に入出力装置２００から入力レジスタへ、全ての入力装置２００からの入力データが入力され、制御プログラム実行の後に記憶された出力レジスタ内の全データが入出力装置２００へ出力される。この処理を一括入出力と呼んでいる。
【０００４】
したがって、入出力装置２００からの入力データに変化がない場合でも全ての入力データを入力レジスタへ入力し、また、出力データに変化がない場合でも出力レジスタ内の全出力データを入出力装置２００に出力している。
【０００５】
ところで、制御装置１００における入出力装置２００からの入出力点数は、中規模のシステムにおいても、１０００点程度あり、一括入出力に多くの時間が掛かるため、制御周期を短縮することができなかった。
【０００６】
そこで、制御装置１００の入出力レジスタと入出力装置との間の一括入出力時のデータ転送において、制御プログラム実行中に特定のシーケンス命令のオペランドを監視し、かつＣＰＵの実行状態を判別してデータ転送が必要な入出力レジスタについてデータ転送指示のフラグをセットし、この入出力レジスタと入出力モジュールとの間でデータ転送する際に、データ転送指示不フラグがセットされている入出力レジスタについてのみ入出力モジュールとの間でデータ転送を実行し、データ転送量を必要最小限にする技術が開示されている（例えば、特許文献１参照）。
【特許文献１】特許第３３１７６０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された技術は、入出力レジスタの全てを読み出して、転送の指示フラグの状態をチェックするため、必要でない入出力レジスタの転送指示フラグのチェックに要する時間を削減できないという問題があった。
【０００８】
また、制御データメモリ１１６から読み出した制御データに演算処理を実行し，その結果を制御データメモリ１１６に書き戻す処理を実施する読出し書き込み命令の場合に、読み出した制御データと演算結果が同一の場合でも、無条件に制御データを書き込むことから、不要な書き込み命令を削減できないという問題もあった。
【０００９】
本発明は上述した課題を解決するためになされたものであり、入出力レジスタの全てをチェックすることなく、前回の入力時から変化した入力データだけを入力レジスタへ取り込み、また、制御プログラムの演算実行の結果、前回の出力データから変化したデータだけを出力レジスタから入出力装置へ出力するようにすることで、制御装置と入出力装置との間の入力データ及び出力データの一括入出力に掛かるデータの転送時間を短縮した高速入出力機能を備える制御装置を得ることを目的とする。
【００１０】
また、制御データメモリから読み出した制御データと演算結果が同一の場合となる全ての書き込み読出し命令について、その制御データを書き込みしないように書き込み命令の実行を中止しすることによって一括入出力の制御演算時間を短縮した高速入出力機能を備える制御装置の制御データの制御方法を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係る請求項１の高速入出力機能を備える制御装置は、制御プログラムを記憶し、被制御対象の状態を入力データとして入出力装置から入力し、該入力データを前記制御プログラムにしたがって演算し、この演算結果を、前記被制御対象を制御する出力データとして前記入出力装置へ出力する制御装置であって、前記制御装置は、前記被制御対象を制御する制御プログラム実行部と、前記入力データ及び前記出力データを前記制御装置に入力し、前記入出力装置へ出力する入出力データインタフェースと、前記制御プログラム実行部と前記入出力データインタフェース部とを接続するシステムバスとを備え、前記制御プログラム実行部は、前記制御プログラムを記憶する制御プログラムメモリと、前記入力データ、前記出力データ及び制御変数を一時記憶する制御データメモリと、前記制御データメモリに記憶される前記入力データを使用して、前記制御プログラムを実行する制御プログラム実行回路とからなり、前記制御プログラム実行回路は、前記制御プログラムメモリから読み出した命令を記憶する命令レジスタと、前記命令レジスタに記憶された命令を解釈するデコーダと、前記制御データメモリから読み出した、オペランドの内容を記憶する制御データ格納レジスタと、前記制御データ格納レジスタに記憶された制御データを前記デコーダで解釈した命令に従って演算する演算ユニットと、前記演算ユニットの演算出力を記憶するレジスタと、前記演算ユニットが演算した制御データと演算実行後のデータとが一致しているか否かを検出する第１の比較器と、前記制御データメモリからオペランドを前記制御データ格納レジスタに読み出すこと及び前記第１の比較器の出力で前記演算ユニットの出力データを前記制御データメモリに書き込むことを制御する演算制御部とを備え、前記比較器が一致信号を出力した時は、前記読出し書き込み命令の書き込みフェーズを省略し、そうでない場合は前記読出し書き込み命令全体を実行するようにしたことを特徴とする。
【００１２】
上記目的を達成するために、本発明に係る請求項２の高速入出力機能を備える制御装置は、請求項１において、前記入出力データインタフェース部は、前記入出力装置の出力データを記憶する出力データレジスタを備える一括入出力バッファメモリと、前記一括入出力バッファメモリへの書き込みを制御する一括入出力バッファメモリ制御部とを備え、前記一括入出力バッファメモリ制御部は、前記制御プログラム実行回路の前記第１の比較器の出力が一致信号を出力した場合には、前記制御データメモリの出力データを前記一括入出力バッファメモリに書き込むことを中止し、そうでない場合は、前記一括入出力バッファメモリに書き込むようにしたことを特長とする。
【００１３】
上記目的を達成するために、本発明に係る請求項３の高速入出力機能を備える制御装置は、請求項１において、前記入出力データインタフェース部は、前記入出力装置から今回の制御周期、または、前回の制御周期で読み出した入力データを交互に記憶する第１のバッファメモリと第２のバッファメモリと、前記第１のバッファメモリに記憶される入力データと前記第２のバッファメモリに記憶された入力データとを比較する第２の比較器と、前記第２の比較器の出力が一致した場合には、今回の制御周期での前記入力データを、前記制御データメモリへ書き込まないように指令し、そうでない場合には書き込みを指令する入力データ制御部とを備えたことを特徴とする。
【００１４】
上記目的を達成するために、本発明に係る請求項５の高速入出力機能を備える制御装置は、請求項１において、前記入出力データインタフェース部は、前記入出力装置へ出力する今回の制御周期、または、前回の制御周期で読み出した出力データを記憶する第１の出力レジスタと第２の出力レジスタとを備える前記制御データメモリと、前記第１の出力レジスタに記憶された出力データと前記第２の出力レジスタに記憶された出力データとを比較する第３の比較器と、前記入出力装置に出力する出力データを記憶する出力バッファメモリと、前記第３の比較器の出力が一致した場合には、今回の制御周期での前記出力データを前記出力バッファメモリへ書き込まないように指令し、そうでない場合には書き込みを指令する出力データ制御部とを備えたことを特徴とする。
【００１５】
上記目的を達成するために、本発明に係る請求項６の高速入出力機能を備える制御装置の制御データの制御方法は、制御プログラムを記憶し、被制御対象の状態を入力データとして入出力装置から入力し、該入力データを前記制御プログラムにしたがって演算し、この演算結果を、前記被制御対象を制御する出力データとして前記入出力装置へ出力する高速入出力機構を備える制御装置の制御データの制御方法であって、前記演算実行前と前記演算実行後の制御データとが一致しているか否かを判定するステップと、前記ステップで一致と判定された場合には、前記読出し書き込み命令の書き込みフェーズを指令するステップと、そうでない場合には、前記演算後の読出し書き込み命令の書き込みフェーズの実行の中止を指令するステップとからなることを特徴とする高速入出力機能を備える。
【発明の効果】
【００１６】
本発明によれば、制御データメモリから読み出した制御データと演算結果が同一であるか否かを比較判定する手段を設け、この結果で書き込み命令を省略するとともに、制御データメモリの入出力レジスタの全てをチェックすることなく、前回の出力データから変化したデータだけを出力レジスタから入出力装置へ出力するように、また、前回の入力時から変化した入力データだけを制御データメモリの入力レジスタへ取り込むようにした。
【００１７】
したがって、転送対象となるアドレスとデータのみが予め一括入出力バッファに記憶されているので、制御装置と入出力装置との間の入力データ及び出力データの一括入出力に掛かるデータの転送時間を削減した高速入出力機能を備える制御装置を得ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して、本発明の実施例を説明する。
【実施例１】
【００１９】
以下、本発明による実施例１について図１乃至図４を参照して説明する。図１は、本発明の高速入出力機能を備える制御装置の構成図である。
【００２０】
図１において、制御装置１は、制御プログラム実行部１ａ、入出力装置２との間で被制御対象からの入力データ及び被制御対象を操作するアクチュエータ等への出力信号を授受する入出力データインタフェース部１ｂ、及び制御プログラム実行部１ａと入出力インタフェース部１ｂとを接続するシステムバス１９とからなる。
【００２１】
制御プログラム実行部１ａは、制御装置１の制御演算を実行する制御プログラム実行回路１４と、実行する制御プログラムを記憶する制御プログラムメモリ１５と、入出力装置２からの入力データ及び出力データを一次記憶し、制御制御プログラム実行時の制御変数となる制御データを記憶する制御データメモリ１６と、これらを接続するローカルバス２１とからなる。
【００２２】
即ち、ここで言う制御データとは、制御データメモリ１６に書き込み、読み出しされる入出力データ、及び、制御プログラム実行回路１４が実行する演算対象のオペランドとなる全データを言う。
【００２３】
次に、入出力データインタフェース部１ｂは、入出力装置２と授受する信号レベル等を変換するＩ／Ｏインタフェース１７と制御プログラム実行部１ａとの間で授受する入力データ及び出力データを制御するＩ／Ｏ制御回路２０とからなる。
【００２４】
ここで、ローカルバス２１は、制御プログラム実行回路１４、制御プログラムメモリ１５及び制御データメモリ１６をシステムバス１９に直結する構成とすることで、ローカルバス２１を省略することもできる。
【００２５】
次に、図２及び図３を参照して制御プログラム実行回路１４について説明する。図２は、制御プログラム実行回路１４の構成図である。
【００２６】
制御プログラム実行回路１４は、制御プログラムメモリ１５から読み出した命令を記憶する命令レジスタ１４８、この命令レジスタ１４８に記憶された命令を解釈するデコーダ１４９、解釈された命令に従って論理演算や数値演算を実行する演算ユニット１４１、制御データメモリ１６から読み出した制御データを一時格納しておくための制御データ格納レジスタ１４４、論理演算や数値演算を実行する演算ユニット１４１で演算された演算結果を一時格納しておくための演算結果格納レジスタ１４５ａ、演算されるデータを格納しておくワークレジスタ１４５ｂとからなるレジスタ１４５、及び演算ユニット１の出力データを一次記憶する制御データ出力レジスタ１４４ａとからなる。
【００２７】
さらに、制御データ格納レジスタ１４４に記憶された制御データと演算ユニット１４１で演算された演算結果データとを比較し、演算のオペランドとなった制御データの内容が演算実行の前後で変化したかどうかを検出する比較器１４７と、演算制御回路１４２ｂとバス制御回路１４２ａとからなり、制御データメモリ１６から読み出したオペランドを制御データ格納レジスタ１４４に転送すること、及び、比較器１４７からの一致信号の有無によって演算ユニット１４１の出力データをレジスタ１４５から前記制御データ出力レジスタ１４４ａを介して制御データメモリ１６に書き込むことを制御する演算制御部１４２とからなる。
【００２８】
次に、この制御プログラム実行回路１４の動作を、図３を参照して説明する。ここで、ＩＦは命令フェッチ動作を、ＲＤはデータの読出し動作を、またＷＤはデータの書き込み動作のフェーズを示す。
【００２９】
図３（ａ）は、制御データ格納レジスタ１４４に記憶された制御データと、このオペランドを演算ユニット１４１で演算した演算結果データを比較器１４７で比較し、一致信号が検出されなかった場合の動作を示す。
【００３０】
この場合の動作は、命令のフェッチ動作（ＩＦ）、その制御データの読出し（ＲＤ）、さらに、読み出した制御データの制御メモリ１６への書き込み（ＷＤ）までの動作をシーケンシャルに実行する。
【００３１】
一致信号が検出された場合は図３（ｂ）に示すように、制御データ格納レジスタ１４４に記憶した制御データと演算ユニット１４１の演算出力が変化していない場合ので、制御データを読み出し後、演算制御部１４２が、制御データメモリ１６への書き込み命令を実行しない書き込み（ＲＤ）の実行サイクルを省略するように制御する。
【００３２】
したがって、制御データメモリ１６から読み出し、制御データ格納レジスタ１４１に記憶された制御データのうち、再び、制御データメモリ１６に書き込みする命令のオペランドについて、演算ユニット１４１で演算した演算結果データが変化しない場合には書き込み命令を省略する命令シーケンスに変更することによって、不要な書き込み命令に要する時間を削減することができるので、制御装置の演算時間を短縮することが出来る。
【実施例２】
【００３３】
本発明の実施例２について、図４乃至図９を参照して説明する。実施例２の各部について、図１乃至図３に示す実施例１の制御装置１の各部と同一部分は同一符号で示し、その説明を省略する。
【００３４】
実施例２が、実施例１と異なる点は、実施例１では、制御プログラム実行回路１４が実行する制御データの内、制御データメモリ１６に読み出し書き込みが発生するすべてオペランドについて、演算実行後のデータと一致する書き込みが発生する場合、書き込みを省略するようにしたが、本実施例２では、さらに、演算前の制御データと演算後のデータの一致信号によって、制御データメモリ１６から入出力データインタフェース部１ｂ及び入出力装置２への転送を、出力データが変化した箇所のみを転送するように制御し、出力データの転送時間を短縮するようにした点にある。
【００３５】
本実施例２の構成を図４に示す。先ず、入力データ及び出力データの流れについて、図５を参照して説明する。図示しない非制御対象の状態を示す入力データは、実線矢印で示すように入力装置２からＩ／Ｏインタフェース１７へ、次に、Ｉ／Ｏインタフェース１７からＩ／Ｏ制御回路２０の一括入出力バッファメモリ２０１に記憶され、一括入出力バッファメモリ２０１から予め定められる所定の制御周期で制御データメモリ１０の入力レジスタ１６ａに記憶される。
【００３６】
また、出力データは、破線矢印で示すように、制御プログラム実行回路１４で演算され、制御データメモリ１６の出力レジスタ１６ｂに記憶された出力データは、この出力レジスタ１６ｂから予め定められる所定の制御周期でＩ／Ｏ制御回路２０の一括入出力バッファメモリ２０１に記憶され、さらに、一括入出力バッファメモリ２０１からＩ／Ｏインタフェース１７を介して入出力装置２に出力される。
【００３７】
ここで、本実施例２によるＩ／Ｏ制御回路２０は、制御データメモリ１６の出力レジスタ１６ｂから送信される出力データを、前回の送信データと今回の送信データが変化した箇所のみを選択して一括入出力バッファメモリ２０１に記憶させ、一括入出力バッファメモリ２０１に記憶した出力データを予め定められる所定の出力周期でＩ／Ｏインタフェース１７に出力する。
【００３８】
次に、このＩ／Ｏ制御回路２０の詳細構成について図４を参照して説明する。Ｉ／Ｏ制御回路２０は、出力データを記憶する一括入出力バッファメモリ２０１と、制御プログラム実行回路１４で検出した一致信号の有無で、その出力データを一括入出力バッファメモリ２０１に書き込むか否かを制御する一括入出力バッファメモリ制御部２０３とからなる。
【００３９】
さらに、一括入出力バッファメモリ制御部２０３は、制御プログラム実行回路１４の一致信号を受信し、その出力で、制御プログラム実行回路１４から出力される出力データの記憶を制御するゲート回路２０３ａと、出力データを一次記憶するデータバッファ２０３ｂと、この一致信号の変化状態、即ち、ある出力レジスタ１６ｂの出力データが一括入出力バッファメモリ２０１に記憶されたか否かを示す変化フラグと、一致信号が発生した時の出力データの一括入出力バッファメモリ２０１のアドレスとをバッファするデータバッファ２０３ｃと、一括入出力バッファメモリ２０１に書き込む出力データのアドレスとデータとを制御するアドレス制御回路２０３ｄとからなる。
【００４０】
この変化フラグ、及び一致信号が発生した時の出力データの一括入出力バッファメモリ２０１のアドレスのデータバッファ２０３ｃからの出力は、図４に示すように制御データメモリ１６の出力レジスタ１６と対応付けして、夫々、変化フラグレジスタ１６ｂ１及び一括入出力バッファメモリアドレス格納エリアレジスタ１６ｂ２に記憶される。
【００４１】
次に、一括入出力バッファメモリ制御部２０３の制御動作について説明する。一括入出力バッファメモリ制御部２０３では、制御プログラム実行回路１４で検出される一致信号が不一致の場合、制御データメモリ１６の出力レジスタ１６ｂに記憶されると出力データに対応して、変化フラグレジスタ１６ｂ１及び一括入出力バッファメモリアドレス格納エリアレジスタ１６ｂ２に、後述するその動作状態を記憶する。
【００４２】
この一致信号の状態と書き込み動作を図６に示す。一致信号「１」が検出された場合には、変化フラグレジスタ１６ｂ１、入出力バッファメモリアドレス格納エリアレジスタ１６ｂ２には、一括入出力バッファメモリ制御部２０３から書き込み信号は出力されない。
【００４３】
逆に、一致信号「０」が検出された場合、即ち不一致の場合には、夫々のレジスタには書き込み信号が送信される。
【００４４】
この時の一括入出力バッファメモリ２０１の書き込み動作を図７に示す。一致信号と変化フラグの状態の組み合わせは、４つの状態がある。
【００４５】
初期状態では、一致信号が「０」で、変化フラグが「０」となり、出力レジスタアドレスの格納エリア及び出力レジスタデータ格納エリアには予め設定される初期値が書き込まれる。
【００４６】
次に、一致信号が「０」で、変化フラグが「１」の場合には、前回の出力データに変化があったことを示し、出力レジスタアドレス格納エリアには、一括入出力プログラムメモリアドレス格納エリアレジスタ１６ｂ２に前回記憶されたアドレスが抽出され、流出されたアドレスがアドレス制御回路２０２から一括入出力バッファメモリ２０１に出力され書き込みされる。
【００４７】
したがって、初回の出力データの変化時、即ち、一致信号「０」で変化フラグ「０」以外に、ある出力レジスタの出力データが、プログラム実行中に複数回書き換えられ再度データが変化、即ち、一致信号「０」で変化フラグ「１」となる状態においても、前回書き込んだ一括入出力バッファメモリ２０１の同じアドレスにデータを上書きすることができる。
【００４８】
一致信号が「１」で、変化フラグが「０」の場合、及び一致信号が「１」で、変化フラグが「１」の場合、即ち、出力データが一致の場合には、前回の出力データと変化が無いので一括入出力バッファメモリ２０１にはアドレス制御回路２０２から書き込みがされない。
【００４９】
以上の制御動作の、図８に示すタイムチャートを参照して説明する。ここで、ＩＦは命令フェッチ動作を、ＲＤはデータの読出し動作を、またＷＤはデータの書き込み動作フェーズを示す。
【００５０】
図８（ａ）は、制御プログラム実行回路１４が制御プログラムを読出し（ｓ１）、読み出された制御データを実行（ｓ２、ｓ３、ｓ４）した結果、一致信号（ｓ５）が検出された状態を示す。この場合、一致信号が検出されたので、この動作で次のプログラムに移る。
【００５１】
図８（ｂ）は、一致信号が検出されなかった（ｓ５）場合のＩ／Ｏ制御回路２０の動作を示す。
【００５２】
この場合、前回と異なる演算結果となるので制御データメモリ１６から変化フラグ（ｓ６）、及び、出力レジスタアドレス格納エリアが読み出され（ｓ７）、読み出されたアドレスがアドレス制御回路２０２から一括入出力バッファメモリ２０に出力（ｓ８）され、データバッファ２０３ｂのデータが書き込まれる（ｓ９）。
【００５３】
このように構成された実施例の入力データの転送時間の短縮効果を図９に示す。図９（ａ）に示すように、一括入出力の動作は、従来、出力レジスタから全ての入出力データを一括入出力バッファメモリに転送していた動作が、図９（ｂ）に示すように、前回の制御周期の演算出力から変化したアドレスの出力データに限定して転送されるので、削減されたデータ点数分時間ΔＴｏ１が削減される。
【００５４】
即ち、演算によって内容が変化した制御データだけを入出力装置２へ出力することが可能となり、一括入出力に要する時間を削減できるので、制御周期Ｔが短縮された高速入出力機能を備える制御装置を提供することできる。
【００５５】
尚、制御プログラム実行部１ａ、及び入出力データインタフェース部１ｂに予め設定される図示しない制御周期は、同期された同じ制御周期としても、また、非同期で異なる制御周期のいずれでも良いが、被制御対象に必要な制御性が得られる短い時間であれば良い。
【実施例３】
【００５６】
本発明の実施例３について、図１０乃至図１２を参照して説明する。実施例３の各部について、図１乃至図３に示す実施例１の制御装置１の各部と同一部分は同一符号で示し、その説明を省略する。
【００５７】
実施例２においては、命令シーケンスの演算前のオペランドと演算後のデータの一致の有無を検出して、制御データメモリ１６から入出力データインタフェース部１ｂ及び入出力装置２への転送を、出力データが変化した箇所のみを転送するように制御し、出力データの転送時間を短縮するようにしたが、実施例３が、実施例２と異なる点は、前回の入力データと今回の入力データとを比較し、図５実線で示すＩ／Ｏ制御回路２０から制御データメモリ１６へ転送する全入力データに対して変化した入力データについのみ転送し、転送時間を短縮するようにしたことにある。
【００５８】
本実施例３の構成を図１０に示す。実施例３によるＩ／Ｏ制御回路２０は、Ｉ／Ｏインタフェース１７から送信される入力データについて、前回の制御周期でのプログラム実行時の入力データと今回の制御周期でのプログラム実行時の入力データとを異なるメモリに交互に記憶するように構成された一括入出力バッファメモリ２０１Ａと、今回の入力データと前回の入力データとを比較する比較器２０５と、比較器２０５の一致信号の有無によって、制御データメモリ１６に転送する入力データを一次記憶する入力データ制御部２０６とからなる。
【００５９】
次に、Ｉ／Ｏ制御回路２０の詳細構成に付いて説明する。一括入出力バッファメモリ２０１Ａは、Ｉ／Ｏインタフェース１７から送信される入力データのアドレスとデータに接続される２つの入力バッファメモリＡ２０１Ａａ及び入力バッファメモリＢ２０１Ａｂとからなり、これらがコマンドによって、予め設定される制御周期で交互に切替えて入力される。
【００６０】
比較器２０５は、いずれかの入力バッファメモリに書き込みされる今回の入力データと前回書き込まれた入力データとを読み出して比較し、この入力データが一致しているときに一致信号を入力データ制御部２０６に出力する。
【００６１】
入力データ制御部２０６は、Ｉ／Ｏインタフェース１７から送信される入力データのアドレスとデータとを対応付けて順次記憶するＦＩＦＯ（First In First Out)形式で記憶されたメモリ２０６ａと、メモリ２０６ａに記憶されるアドレスデータを制御データメモリ１６の書き込みアドレスに変換するアドレス変換器２０６ｂとからなる。
【００６２】
そして、メモリ２０６ａには、比較器２０５が不一致の場合、入力データが入力データ制御部２０６に書き込まれ、不一致の入力データのみが制御データメモリ１６に所定の制御周期で転送される。
【００６３】
この動作のタイムチャートを図１１に示す。入力バッファメモリＡ２０１Ａａへの書き込みデータ（ｓ２）と、入力バッファメモリＢ２０１Ａｂからの読出しデータ（ｓ３）とが不一致（ｓ４）の場合に、比較器２０５からメモリ２０６ａに書き込み信号（ｓ５）が出力され、入力データが書き込みされる。
【００６４】
このように構成された、実施例３の入力データの転送時間の短縮効果を図１２に示す。図１２（ａ）は、一括入出力の全ての入出力データの制御周期Ｔの時間内での転送動作に対し、図１２（ｂ）に示すように、入力データ制御部２０６を介して、変化のあった入力データのみを制御データメモリ１６に転送するので、従来の一括入出力バッファメモリから全ての入力データを転送した時に比べて転送時間がΔＴｉ短縮される。
【実施例４】
【００６５】
本発明の実施例４について、図１３乃至図１５を参照して説明する。実施例４の各部について、図１乃至図３に示す実施例１の制御装置１の各部と同一部分は同一符号で示し、その説明を省略する。
【００６６】
実施例４が、実施例２と異なる点は、実施例２では、演算前の制御データと演算後のデータの一致信号によって、制御データメモリ１６から入出力データインタフェース部１ｂ及び入出力装置２への転送を、出力データが変化した箇所のみを転送するように制御し、出力データの転送時間を短縮するようにしたが、実施例４では、制御プログラム実行回路１４の前回の制御周期での制御演算結果と、今回の制御周期での制御演算結果とを交互に記憶する２つの出力レジスタに記憶し、前回の演算結果と今回の演算結果とを比較して、不一致の出力データのみを出力バッファメモリに書き込み、制御データメモリ１６から入出力装置２への転送を、出力データが変化した箇所のみを転送するようにしたことにある。
【００６７】
本実施例４の構成を図１３に示す。実施例４による制御データメモリ１６は、システムバス１９を介して、制御プログラム実行回路１４からの制御演算出力を制御周期単位で交互に記憶する２つの出力レジスタ１６ｅ及び出力レジスタ１６ｆを備える。
【００６８】
ここでは、システムバス１９とローカルバス２１で構成されるバスシステムは、システムバス１９のみで構成された場合として説明する。
【００６９】
そして、Ｉ／Ｏ制御回路２０は、今回一方の出力レジスタに書き込まれた出力データと、前回の制御周期で他方の出力レジスタに書き込まれた出力データとを読み出して比較する比較器２０８と、比較器２０８の出力で前回の制御周期での出力と変化した出力データを一次記憶する出力データ制御部２０９と、出力データ制御部２０９に記憶された出力データを記憶する一括入出力バッファメモリ２１０とを備える。
【００７０】
次に、出力データ制御部２０９の詳細構成に付いて説明する。出力データ制御部２０９は、予め設定される制御周期で出力レジスタ１６ｅ及び出力レジスタ１６ｆに記憶された出力データは、比較器２０８の出力によって、今回の出力データと前回の出力データが異なる（不一致）場合の今回の出力データのアドレスとデータがＦＩＦＯ形式で記憶されるメモリ２０９ａと、メモリ２０６ａに記憶されるアドレスデータを一括入出力バッファメモリ２１０の書き込みアドレスに変換するアドレス変換器２０９ｂとからなる。
【００７１】
即ち、メモリ２０９ａには、比較器２０８の出力が不一致場合の出力データが一括入出力バッファメモリ２１０に書き込まれ、不一致の出力データのみが制御データメモリ１６からＩ／Ｏ制御回路に所定の制御周期で転送される。
【００７２】
この動作のタイムチャートを図１４に示す。出力レジスタＡ１６ｅへの書き込みデータ（ｓ２）と、出力レジスタＢ１６ｂからの読出しデータ（ｓ３）とが比較器２０８で比較され、その一致信号（ｓ４）が不一致の場合、メモリ２０９ａに書き込み信号（ｓ５）が出力され、出力データが一括入出録バッファメモリ２１０に書き込まれる。
【００７３】
このように構成された、実施例４の出力データの転送時間の短縮効果を図１５に示す。図１５（ａ）は、一括入出力の全ての入出力データの制御周期Ｔの時間内での転送動作に対し、図１５（ｂ）に示すように、制御データメモリ１６の出力レジスタから一括入出力バッファメモリ２１０への変化のあった出力データのみを転送するので、転送時間がΔＴｏ２短縮される。
【００７４】
本発明は、上述した実施例に何ら限定されるものではなく、夫々の実施例は、単独、または、複数、または全てを組み合わせて使用しても良く、本発明の主旨を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の高速入出力機能を備える制御装置の構成図。
【図２】本発明の実施例１による制御プログラム実行回路の詳細構成図。
【図３】本発明の実施例１による制御データの一致信号出力時の動作説明図。
【図４】本発明の実施例２による出力データの転送を説明する構成図。
【図５】本発明の制御装置の一括入出力のデータの流れの説明図。
【図６】本発明による実施例２の制御動作信号の説明図。
【図７】本発明による実施例２の制御動作の説明図。
【図８】本発明による実施例２の制御動作の説明図。
【図９】本発明による実施例２の制御動作の効果の説明図。
【図１０】本発明の実施例３の入力データの転送を説明する構成図。
【図１１】本発明の実施例３の入力データの転送動作説明図。
【図１２】本発明の実施例３の制御動作の効果の説明図。
【図１３】本発明の実施例４の出力データの転送を説明する構成図。
【図１４】本発明の実施例４の出力データの転送動作説明図。
【図１５】本発明の実施例４の制御動作の効果の説明図。
【図１６】従来の制御装置の構成図。
【図１７】従来の一括入出力のデータの流れの説明図。
【符号の説明】
【００７６】
１、１００  制御装置
１ａ  制御プログラム実行部
１ｂ  入出力データインタフェース部
２、２００  入出力装置
１４、１１４  制御プログラム実行回路
１５、１１５  制御プログラムメモリ
１６、１１６  制御データメモリ
１６ａ  入力レジスタ
１６ｂ  出力レジスタ
１６ｂ１  変化フラグレジスタ
１６ｂ２  一括入出力バッファメモリアドレス格納メモリレジスタ
１６ｅ  出力レジスタＡ１６ｅ
１６ｆ  出力レジスタＢ１６ｆ
１７、１１７  Ｉ／Ｏインタフェース
１９，１１９  システムバス
２０  Ｉ／Ｏ制御回路
２１  ローカルバス
１４１  演算ユニット
１４２  演算制御部
１４２ａ  バス制御回路
１４２ｂ  演算制御回路
１４４  制御データ格納レジスタ
１４４ａ  制御データ出力レジスタ
１４５  レジスタ
１４５ａ  演算結果格納レジスタ
１４５ｂ  ワークレジスタ
１４７  比較器
１４８  命令レジスタ
１４９  デコーダ
２０１  一括入出力バッファメモリ
２０１ａ  出力レジスタアドレス領域
２０１ｂ  出力レジスタデータ領域
２０２  アドレス制御回路
２０３  一括入出力バッファメモリ制御部
２０３ａ  ゲート回路
２０３ｂ  データバッファ
２０３ｃ  データバッファ
２０４ｄ  アドレス制御回路
２０１Ａ  一括入出力バッファメモリ
２０１Ａａ  入力バッファメモリＡ
２０１Ａｂ  入力バッファメモリＢ
２０５  比較器
２０６  入力データ制御部
２０６ａ  メモリ
２０６ｂ  アドレス変換部
２０８  比較器
２０９  出力データ制御部
２０９ａ  メモリ
２０９ｂ  アドレス変換器
２１０  一括入出力バッファメモリ
【図１】
2008047052.tif 000003
【図２】
2008047052.tif 000004
【図３】
2008047052.tif 000005
【図４】
2008047052.tif 000006
【図５】
2008047052.tif 000007
【図６】
2008047052.tif 000008
【図７】
2008047052.tif 000009
【図８】
2008047052.tif 000010
【図９】
2008047052.tif 000011
【図１０】
2008047052.tif 000012
【図１１】
2008047052.tif 000013
【図１２】
2008047052.tif 000014
【図１３】
2008047052.tif 000015
【図１４】
2008047052.tif 000016
【図１５】
2008047052.tif 000017
【図１６】
2008047052.tif 000018
【図１７】
2008047052.tif 000019