(57)【要約】【課題】ポインタを使わずに構造化プログラムを高速で実行すること。【解決手段】プログラム制御装置１０は、ビットデバイス保持部３５が、前記構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、シーケンスプログラム保持部３０は、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムに対応付けて変換されたシーケンスプログラムを保持し、制御演算部２０は、シーケンスプログラム保持部３０によって保持されたシーケンスプログラムを読み出して実行する。【選択図】      図２
2004318675.tif 000002
【特許請求の範囲】
【請求項１】
構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行うプログラム制御装置であって、
前記構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持するビットデバイス保持手段と、
前記構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて該構造化プログラムの次の処理を実行する接点命令に基づいて、該構造化プログラムに対応付けて変換された前記シーケンスプログラムを保持するシーケンスプログラム保持手段と、
前記シーケンスプログラム保持手段によって保持されたシーケンスプログラムを読み出して実行するシーケンスプログラム実行手段と、
を備えたことを特徴とするプログラム制御装置。
【請求項２】
前記ビットデバイス保持手段は、前記構造化プログラムが複数に階層化された構造化プログラムである場合は、該複数に階層化された構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、
前記シーケンスプログラム保持手段は、前記複数に階層化された構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段の複数のビットをビット毎にＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってビット毎にＯＮ／ＯＦＦされた複数のビットに基づいて該複数に階層化された構造化プログラムの次の処理を実行する接点命令に基づいて、該複数に階層化された構造化プログラムに対応付けて変換された前記シーケンスプログラムを保持し、
前記シーケンスプログラム実行手段は、前記シーケンスプログラム保持手段によって保持されたシーケンスプログラムを読み出して実行することを特徴とする請求項１に記載のプログラム制御装置。
【請求項３】
前記構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて該構造化プログラムの次の処理を実行する接点命令に基づいて、該構造化プログラムを前記シーケンスプログラムに対応付けるプログラム対応表を保持するプログラム対応表保持手段と、
前記プログラム対応表保持手段に保持されたプログラム対応表に基づいて前記構造化プログラムを前記シーケンスプログラムに変換するシーケンスプログラム変換手段と、をさらに備え、
前記ビットデバイス保持手段は、前記構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、
前記プログラム対応表保持手段は、前記構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて該構造化プログラムの次の処理を実行する接点命令に基づいて、該構造化プログラムを前記シーケンスプログラムに対応付けるプログラム対応表を保持し、
前記シーケンスプログラム変換手段は、前記プログラム対応表保持手段によって保持されたプログラム対応表に基づいて前記構造化プログラムを前記シーケンスプログラムに変換し、
前記シーケンスプログラム保持手段は、前記シーケンスプログラム変換手段によって変換されたシーケンスプログラムを保持し、
前記シーケンスプログラム実行手段は、前記シーケンスプログラム保持手段によって保持されたシーケンスプログラムを読み出して実行することを特徴とする請求項１に記載のプログラム制御装置。
【請求項４】
前記プログラム対応表保持手段は、前記構造化プログラムが複数に階層化された構造化プログラムである場合は、該複数に階層化された構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段の複数のビットをビット毎にＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってビット毎にＯＮ／ＯＦＦされた複数のビットに基づいて該複数に階層化された構造化プログラムの次の処理を実行する接点命令に基づいて、該複数に階層化された構造化プログラムを前記シーケンスプログラムに対応付けるプログラム対応表を保持し、
前記シーケンスプログラム変換手段は、前記プログラム対応表保持手段によって保持されたプログラム対応表に基づいて前記複数に階層化された構造化プログラムを前記シーケンスプログラムに変換することを特徴とする請求項３に記載のプログラム制御装置。
【請求項５】
前記シーケンスプログラム対応表は、前記構造化プログラムがＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムである場合に、前記［条件］が論理的に真であるときは、前記シーケンスプログラム実行手段は、前記［動作］を実行すると同時に、前記ビット演算命令は、前記ビットデバイス保持手段のビットをＯＮし、該［条件］が論理的に偽であるときは、該シーケンスプログラム実行手段は、該［動作］を実行せずに、該ビット演算命令は、該ビットデバイス保持手段のビットをＯＦＦするように該構造化プログラムを前記シーケンスプログラムに対応付けることを特徴とする請求項３または請求項４に記載のプログラム制御装置。
【請求項６】
前記シーケンスプログラム対応表は、前記構造化プログラムがＥＬＳＥＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムである場合に、前記ビットデバイス保持手段のビットがＯＦＦであり、かつ、前記［条件］が論理的に真であるときは、前記シーケンスプログラム実行手段は、前記［動作］を実行すると同時に、前記ビット演算命令は、該ビットデバイス保持手段のビットをＯＮし、該ビットデバイス保持手段のビットがＯＦＦであり、かつ、前記［条件］が論理的に偽であるときは、該シーケンスプログラム実行手段は、該［動作］を実行せずに、該ビットデバイス保持手段のビットがＯＮであるときは、前記接点命令が以後の処理を実行しないように該構造化プログラムを前記シーケンスプログラムに対応付けることを特徴とする請求項３または請求項４に記載のプログラム制御装置。
【請求項７】
前記シーケンスプログラム対応表は、前記構造化プログラムがＥＬＳＥ［動作］の条件付実行プログラムである場合に、前記ビットデバイス保持手段のビットがＯＦＦであるときは、前記シーケンスプログラム実行手段は、前記［動作］を実行すると同時に、前記ビット演算命令は、該ビットデバイス保持手段のビットをＯＮし、該ビットデバイス保持手段のビットがＯＮであるときは、前記接点命令が以後の処理を実行しないように該構造化プログラムを前記シーケンスプログラムに対応付けることを特徴とする請求項３または請求項４に記載のプログラム制御装置。
【請求項８】
前記シーケンスプログラム対応表は、前記構造化プログラムがＥＮＤＩＦである場合に、前記ビットデバイス保持手段のビットがＯＮであるときは、前記ビット演算命令は、該ビットデバイス保持手段のビットをＯＦＦするように該構造化プログラムを前記シーケンスプログラムに対応付けることを特徴とする請求項３または請求項４に記載のプログラム制御装置。
【請求項９】
前記シーケンスプログラム対応表は、第１の構造化プログラムの中に階層化された第２の構造化プログラムがＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムである場合に、前記ビットデバイス保持手段の第１のビットがＯＮであり、かつ、該［条件］が論理的に真であるときは、前記シーケンスプログラム実行手段は、該［動作］を実行すると同時に、前記ビット演算命令は、該ビットデバイス保持手段の第２のビットをＯＮし、該第１のビットがＯＮであり、かつ、該［条件］が論理的に偽であるときは、前記シーケンスプログラム実行手段は、該［動作］を実行せずに、該ビット演算命令は、該第２のビットをＯＦＦし、該第１のビットがＯＦＦであるときは、前記接点命令が以後の処理を実行しないように該構造化プログラムを前記シーケンスプログラムに対応付けることを特徴とする請求項４に記載のプログラム制御装置。
【請求項１０】
構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行うプログラム制御装置に用いられるプログラム実行方法であって、
前記構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持するビットデバイス保持工程と、
前記構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて該構造化プログラムの次の処理を実行する接点命令に基づいて、該構造化プログラムに対応付けて変換された前記シーケンスプログラムを保持するシーケンスプログラム保持工程と、
前記シーケンスプログラム保持工程によって保持されたシーケンスプログラムを読み出して実行するシーケンスプログラム実行工程と、
を含んだことを特徴とするプログラム実行方法。
【請求項１１】
構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行うプログラム制御装置に用いられるシーケンスプログラムであって、
前記構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持するビットデバイス保持手順と、
前記構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて該構造化プログラムの次の処理を実行する接点命令に基づいて、該構造化プログラムに対応付けて変換された前記シーケンスプログラムを保持するシーケンスプログラム保持手順と、
前記シーケンスプログラム保持手順によって保持されたシーケンスプログラムを読み出して実行するシーケンスプログラム実行手順と、
をコンピュータに実行させることを特徴とするシーケンスプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ポインタを使わずに構造化プログラムを高速で実行するプログラム制御装置、プログラム実行方法、シーケンスプログラムに関するものである。
【０００２】
【従来の技術】
従来、構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行うプログラム制御装置が知られていた。かかるプログラム制御装置は、構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行っていた。
【０００３】
例えば、ＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文からなる構造化プログラムをシーケンスプログラムに変換する場合は、第１の条件文［ＩＦ文］の［条件１］が論理的に真であるときは、プログラム制御装置は、［動作１］を実行し、ジャンプ命令（ＣＪ  Ｐ２）によりポインタＰ２にジャンプすることにより、［ＥＬＳＥＩＦ文］以後の処理を実行しないようにする。そして、第１の条件文［ＩＦ文］の［条件１］が論理的に偽であり、かつ、第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真であるときは、プログラム制御装置は、［動作２］を実行し、ジャンプ命令（ＣＪ  Ｐ２）によりポインタＰ２にジャンプすることにより、［ＥＬＳＥ文］以後の処理を実行しないようにする。さらに、第１の条件文および第２の条件文が共に論理的に偽であるときは、プログラム制御装置は、［動作３］を実行するように変換していた。
【０００４】
上述のように、ＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文からなる構造化プログラムを変換したシーケンスプログラムは、［動作１］または［動作２］を実行した後、ポインタＰ２へジャンプする必要がある。また、ポインタＰ２とアドレスを対応付けるポインタアドレス対応表がメモリに保持される必要があった。
【０００５】
【特許文献１】
特開２０００−２５９２１１号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、上述の従来技術では、ジャンプ命令（ＣＪ  Ｐ２）は、ポインタを使用してハードウエア処理ではなくソフトウエア処理で実行しているため、ハードウエア処理で実行するビット演算命令および接点命令に比べて、処理時間が掛かり、構造化プログラムを高速に実行できないという問題点があった。なお、特許文献１に開示されている従来技術は、ソースプログラムをジャンプ命令を用いたオブジェクトプログラムにコンパイルする技術であるので、かかる問題点を解決することができない。
【０００７】
この発明は、上記に鑑みてなされたもので、ポインタを使わずに構造化プログラムを高速で実行するプログラム制御装置、プログラム実行方法、シーケンスプログラムを得ることを目的とするものである。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、この発明に係るプログラム制御装置は、構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行うプログラム制御装置であって、前記構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持するビットデバイス保持手段と、前記構造化プログラムの条件文の論理的な真偽に基づいて前記ビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、該ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて該構造化プログラムの次の処理を実行する接点命令に基づいて、該構造化プログラムに対応付けて変換された前記シーケンスプログラムを保持するシーケンスプログラム保持手段と、前記シーケンスプログラム保持手段によって保持されたシーケンスプログラムを読み出して実行するシーケンスプログラム実行手段と、を備えたことを特徴とする。
【０００９】
この発明のプログラム制御装置によれば、構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムに対応付けて変換されたシーケンスプログラムを保持し、シーケンスプログラムを読み出して実行することができ、もってポインタを使わずに構造化プログラムを高速で実行することができる。
【００１０】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るプログラム制御装置、プログラム実行方法、シーケンスプログラムの好適な実施の形態を詳細に説明する。なお、下記に示す実施の形態では、本発明に係るプログラム制御装置を構造化プログラムに適用する場合について説明することとする。最後に、他の実施の形態として種々の変形例を説明する。
【００１１】
本実施の形態では、本発明に係るプログラム制御装置を構造化プログラムに適用する場合について説明する。なお、ここでは、本実施の形態に係るプログラム制御装置の概要および特徴を説明した後に、このプログラム制御装置の構成、構造化プログラムとシーケンスプログラムの一例、階層化された構造化プログラムとシーケンスプログラムの一例を説明し、最後に、このプログラム制御装置のプログラム変換手順について説明する。
【００１２】
［概要および特徴］
最初に、本実施の形態に係るプログラム制御装置の概要および主たる特徴を説明する。図１は、本実施の形態に係るプログラム制御装置における構造化プログラムからシーケンスプログラムへの変換を説明する図である。
【００１３】
図１（ａ）は、従来技術の一例を示すものである。同図に示すように、構造化プログラムは、ＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文からなる構造化プログラムを［条件］と［動作］との組み合わせで記載した例である。具体的には、第１の条件文［ＩＦ文］の［条件１］が論理的に真である場合は、プログラム制御装置は［動作１］を実行し、第１の条件文［ＩＦ文］の［条件１］が論理的に偽であり、かつ、第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真である場合は、プログラム制御装置は［動作２］を実行し、第１の条件文および第２の条件文が共に論理的に偽であるときは、プログラム制御装置は［動作３］を実行するものである。
【００１４】
また、シーケンスプログラムは、上述の構造化プログラムを［条件］と［動作］との組み合わせで記載した例である。具体的には、構造化プログラムの第１の条件文［ＩＦ文］の［条件１］が論理的に真である場合は、プログラム制御装置は［動作１］を実行し、ジャンプ命令（ＣＪ  Ｐ２）によりポインタＰ２にジャンプすることにより、第２の条件文［ＥＬＳＥＩＦ文］以後の処理を実行しないようにする。そして、第１の条件文［ＩＦ文］の［条件１］が論理的に偽であり、かつ、第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真である場合は、プログラム制御装置は［動作２］を実行し、ジャンプ命令（ＣＪ  Ｐ２）によりポインタＰ２にジャンプすることにより、［ＥＬＳＥ文］以後の処理を実行しないようにする。第１の条件文および第２の条件文が共に論理的に偽である場合は、プログラム制御装置は［動作３］を実行する。
【００１５】
上述のように、ＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文からなる構造化プログラムを変換したシーケンスプログラムは、プログラム制御装置が［動作１］または［動作２］を実行した後、ポインタＰ２へジャンプする必要がある。また、ポインタＰ２とアドレスを対応付けるポインタアドレス対応表がメモリに保持される必要があった。
【００１６】
一方、本実施の形態に係るプログラム制御装置は、図１（ｂ）に示すように構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行う装置であって、ポインタを使わずに構造化プログラムを高速で実行することを特徴とする。
【００１７】
具体的には、本実施の形態に係るプログラム制御装置は、図１（ｂ）のシーケンスプログラムに示すように、構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、構造化プログラムの条件文の論理的な真偽に基づいてビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムに対応付けて変換されたシーケンスプログラムを保持し、シーケンスプログラムを読み出して実行することを特徴とする。従って、プログラム制御装置は、ソフトウエア処理によって実行されていた従来のジャンプ命令に替えてより高速なハードウエア処理で実行するビット演算命令と接点命令を使用したので、ポインタを使わずにポ構造化プログラムを高速で実行することができる。
【００１８】
［プログラム制御装置の構成］
本実施の形態に係るプログラム制御装置の構成について説明する。図２は、本実施の形態に係るプログラム制御装置の構成を示す機能ブロック図である。同図に示すように、プログラム制御装置１０は、入出力装置４５から入力された構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラムに基づいて制御を行うと共に、制御結果を入出力装置４５に出力する装置であり、具体的には、制御演算部２０と、バス部２２と、プログラム対応表保持部２５と、シーケンスプログラム保持部３０と、ビットデバイス保持部３５と、入出力ＩＦ部４０とからなる。
【００１９】
制御演算部２０は、プログラム対応表保持部２５によって保持されたプログラム対応表に基づいて入出力装置４５から入力された構造化プログラムをシーケンスプログラムに変換し、シーケンスプログラム保持部３０に書き込むと同時に、シーケンスプログラム保持部３０からシーケンスプログラムを読み出して、シーケンスプログラムを解読し、実行する処理部であり、具体的には、ＣＰＵ（ＣＥＮＴＲＡＬ  ＰＲＯＣＥＳＳＩＮＧ  ＵＮＩＴ）である。また、バス部２２は、制御演算部２０とその他の構成機器との間で指示や制御情報を送受信する伝送部である。
【００２０】
プログラム対応表保持部２５は、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムをシーケンスプログラムに対応付けるプログラム対応表を保持する記憶部であり、具体的には、ＲＯＭなどの読み出し専用のメモリである。なお、プログラム対応表については別途説明する。
【００２１】
シーケンスプログラム保持部３０は、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムに対応付けて変換されたシーケンスプログラムを保持する記憶部であり、具体的には、ＨＤＤなどの補助記憶装置である。
【００２２】
ビットデバイス保持部３５は、構造化プログラムの条件文の論理的な真偽を保持する保持部であり、具体的には、構造化プログラムをシーケンスプログラムへ変換する場合に使用する制御演算用のデバイスメモリである。なお、図２に示すプログラム制御装置のデバイスメモリの一例について説明する。図３は、図２に示すプログラム制御装置のデバイスメモリの一例を示す図である。同図に示すように、デバイスメモリは１６ビットのメモリからなる制御演算用のワードデバイスメモリであり、構造化プログラムの条件文の論理的な真偽に基づいてビット演算命令によってビット毎にＯＮ／ＯＦＦされる。
【００２３】
入出力ＩＦ部４０は、ユーザがプログラミングした構造化プログラムを入出力装置４５から制御演算部２０に入力すると共に、制御演算部２０の制御演算結果を入出力装置４５に出力するＩＦ部である。
【００２４】
入出力装置４５は、少なくとも、ユーザがプログラミングした構造化プログラムを保持し、入出力ＩＦ部４０を介してプログラム制御装置１０に入力すると共に、プログラム制御装置１０の出力結果を保持、または表示する装置であり、具体的には、フレキシブルディスク（ＦＤ）、プリンタ、ディスプレイなどである。
【００２５】
［構造化プログラムとシーケンスプログラムの一例］
次に、図２に示すプログラム制御装置の構造化プログラム、シーケンスプログラムおよびプログラム対応表の一例について説明する。図４は、図２に示すプログラム制御装置の構造化プログラムの一例を示す図である。また、図５は、図４に示す構造化プログラムを変換したシーケンスプログラムの一例を示す図である。また、図６は、図２に示すプログラム制御装置のプログラム対応表の一例を示す図である。
【００２６】
まず、構造化プログラムの例としてＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文からなる図４の構造化プログラム例５０について説明する。なお、構造化プログラム例５５は、構造化プログラム例５０の［条件］と［動作］に具体的な条件および動作を記載したものである。
【００２７】
具体的には、第１の条件文［ＩＦ文］の［条件１］が論理的に真である場合は、制御演算部２０は、［動作１］を実行し、第１の条件文［ＩＦ文］の［条件１］が論理的に偽であり、かつ、第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真である場合は、制御演算部２０は、［動作２］を実行し、第１の条件文および第２の条件文が共に論理的に偽であるときは、制御演算部２０は、［ＥＬＳＥ文］の［動作３］を実行するものである。
【００２８】
また、シーケンスプログラムの例として上記構造化プログラムを変換した図５のシーケンスプログラム例６０について説明する。なお、シーケンスプログラム例６５は、シーケンスプログラム例６０の［条件］と［動作］に具体的な条件および動作を記載したものである。また、図６に示すプログラム対応表は、図４の構造化プログラム例５０と図５のシーケンスプログラム例６０を対応付けた表である。
【００２９】
具体的には、構造化プログラムの第１の条件文［ＩＦ文］の条件［条件１］が論理的に真である場合は、制御演算部２０は、［動作１］を実行すると同時に、ビット演算命令［ＳＥＴ  Ａ０．０］は、ビットデバイス保持部３５のビット［Ａ０．０］をＯＮし、接点命令［ＬＤＩ  Ａ０．０］は、前記ビット演算命令によってＯＮされたビットを読んで、以後の処理を実行しないようにする。
【００３０】
なお、ビット演算命令［ＳＥＴ  Ａ０．０］は、［Ａ０．０］で指定したビットデバイス保持部３５のビットをＯＮする命令である。また、［Ａ０］は、図３に示す制御演算用に使用するワードデバイスであり、［Ａ０．０］は、ワードデバイス［Ａ０］の０ビット目のビットデバイスである。また、［ＲＳＴ  Ａ０．０］は、［Ａ０．０］で指定したビットデバイス保持部３５のビットをＯＦＦする命令である。また、接点命令［ＬＤＩ  Ａ０．０］は、ビットデバイス［Ａ０．０］がＯＦＦであれば、以後の処理を実行し、ＯＮであれば、以後の処理を実行しない命令である。また、ＳＭ４００は、常時ＯＮ接点である。
【００３１】
そして、構造化プログラムの第１の条件文［ＩＦ文］の［条件１］が論理的に偽である場合は、制御演算部２０は、［動作１］を実行せずに、ビット演算命令［ＳＥＴ  Ａ０．０］はビットデバイス保持部３５のビット［Ａ０．０］をＯＦＦし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令によってＯＦＦされたビットを読んで、次の処理を実行する。
【００３２】
さらに、構造化プログラムの第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真である場合は、制御演算部２０は、［動作２］を実行すると同時に、ビット演算命令［ＳＥＴ  Ａ０．０］は、ビットデバイスメモリのビット［Ａ０．０］をＯＮし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令によってＯＮされたビットを読んで、以後の処理を実行しないようにする。
【００３３】
構造化プログラムの第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に偽である場合は、制御演算部２０は、［動作２］を実行せずに、ビット演算命令［ＳＥＴ  Ａ０．０］は、ビットデバイス保持部３５のビット［Ａ０．０］をＯＦＦし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令［ＳＥＴ  Ａ０．０］によってＯＦＦされたビットを読んで、制御演算部２０は、［動作３］を実行すると同時に、常時ＯＮ接点（ＳＭ４００）においてビット演算命令［ＲＳＴ  Ａ０．０］は、ビットをＯＦＦし、再度制御演算用のビットデバイス［Ａ０．０］を使用できるようにする。
【００３４】
以上説明したように、本実施の形態では、ビットデバイス保持部３５は、構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、シーケンスプログラム保持部３０は、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムに対応付けて変換されたシーケンスプログラムを保持し、制御演算部２０は、シーケンスプログラム保持部３０によって保持されたシーケンスプログラムを読み出して実行することとしたので、ソフトウエア処理によって実行されていた従来のジャンプ命令に替えてより高速なハードウエア処理で実行するビット演算命令と接点命令を使用することによりポインタを使わずに構造化プログラムを高速で実行することができる。
【００３５】
また、本実施の形態では、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムをシーケンスプログラムに対応付けるプログラム対応表を保持するプログラム対応表保持部２５と、プログラム対応表保持部２５に保持されたプログラム対応表に基づいて構造化プログラムをシーケンスプログラムに変換する制御演算部２０と、をさらに備えることとしたので、ソフトウエア処理によって実行されていた従来のジャンプ命令に替えてより高速なハードウエア処理で実行するビット演算命令と接点命令に変換することができる。
【００３６】
また、本実施の形態では、シーケンスプログラム対応表は、構造化プログラムがＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムである場合に、［条件］が論理的に真であるときは、制御演算部２０は、［動作］を実行すると同時に、ビット演算命令は、ビットデバイス保持部３５のビットをＯＮし、［条件］が論理的に偽であるときは、制御演算部２０は、［動作］を実行せずに、ビット演算命令は、ビットデバイス保持部３５のビットをＯＦＦするように構造化プログラムをシーケンスプログラムに対応付けることとしたので、ＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムをシーケンスプログラムに変換することができる。
【００３７】
また、本実施の形態では、シーケンスプログラム対応表は、構造化プログラムがＥＬＳＥＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムである場合に、ビットデバイス保持部３５のビットがＯＦＦであり、かつ、［条件］が論理的に真であるときは、制御演算部２０は、［動作］を実行すると同時に、ビット演算命令は、ビットデバイス保持部３５のビットをＯＮし、ビットデバイス保持部３５のビットがＯＦＦであり、かつ、［条件］が論理的に偽であるときは、制御演算部２０は、［動作］を実行せずに、ビットデバイス保持部３５のビットがＯＮであるときは、接点命令が以後の処理を実行しないように構造化プログラムを前記シーケンスプログラムに対応付けることとしたので、ＥＬＳＥＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムをシーケンスプログラムに変換できる。
【００３８】
また、本実施の形態では、シーケンスプログラム対応表は、構造化プログラムがＥＬＳＥ［動作］の条件付実行プログラムである場合に、ビットデバイス保持部３５のビットがＯＦＦであるときは、制御演算部２０は、［動作］を実行すると同時に、ビット演算命令は、ビットデバイス保持部３５のビットをＯＮし、ビットデバイス保持部３５のビットがＯＮであるときは、接点命令が以後の処理を実行しないように構造化プログラムを前記シーケンスプログラムに対応付けることとしたので、ＥＬＳＥ［動作］の条件付実行プログラムをシーケンスプログラムに変換することができる。
【００３９】
また、本実施の形態では、シーケンスプログラム対応表は、構造化プログラムがＥＮＤＩＦである場合に、ビットデバイス保持部３５のビットがＯＮであるときは、ビット演算命令は、ビットデバイス保持部３５のビットをＯＦＦするように構造化プログラムをシーケンスプログラムに対応付けることとしたので、ＥＮＤＩＦをシーケンスプログラムに変換することができる。
【００４０】
［階層化された構造プログラムとシーケンスプログラムの一例］
次に、図２に示すプログラム制御装置の階層的構造化プログラムの一例および階層的構造化プログラムを変換したシーケンスプログラムの一例について説明する。図７は、図２に示すプログラム制御装置の階層的構造化プログラムの一例を示す図である。また、図８は、図７に示す階層的構造化プログラムを変換したシーケンスプログラムの一例を示す図である。
【００４１】
まず、複数に階層化された構造化プログラムの例としてＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文からなる図７の階層的構造化プログラム例７０について説明する。なお、階層的構造化プログラム例７５は、階層的構造化プログラム例７０の［条件］と［動作］に具体的な条件および動作を記載したものである。
【００４２】
具体的には、第１の構造化プログラムの第１の条件文［ＩＦ文］の［条件１］が論理的に真である場合は、制御演算部２０は、［動作１］を実行し、第１の条件文［ＩＦ文］の［条件１］が論理的に偽であり、かつ、第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真である場合は、制御演算部２０は、［動作２］を実行する。そして、［条件２］が論理的に真であり、かつ、第２の構造化プログラムの第１の条件文［ＩＦ文］の［条件１１］が論理的に真である場合は、制御演算部２０は、［動作１１］を実行し、［条件２］が論理的に真であり、かつ、第２の構造化プログラムの第１の条件文［ＩＦ文］の［条件１１］が論理的に偽である場合は、制御演算部２０は、［ＥＬＳＥ文］の［動作１２］を実行する。さらに、第１の構造化プログラムの第１の条件文および第２の条件文が共に論理的に偽である場合は、制御演算部２０は、［ＥＬＳＥ文］の［動作３］を実行する。
【００４３】
また、シーケンスプログラムの例として複数に階層化された構造化プログラムを変換した図８のシーケンスプログラム例８０について説明する。なお、シーケンスプログラム例８５は、シーケンスプログラム例８０の［条件］と［動作］に具体的な条件および動作を記載したものである。
【００４４】
具体的には、第１の構造化プログラムの第１の条件文［ＩＦ文］の条件［条件１］が論理的に真である場合は、制御演算部２０は、［動作１］を実行すると同時に、ビット演算命令［ＳＥＴ  Ａ０．０］は、ビットデバイス保持部３５の第０ビット［Ａ０．０］をＯＮし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令［ＳＥＴ  Ａ０．０］によってＯＮされた第０ビット［Ａ０．０］を読んで、以後の処理を実行しないようにする。
【００４５】
そして、第１の構造化プログラムの第１の条件文［ＩＦ文］の［条件１］が論理的に偽である場合は、制御演算部２０は、［動作１］を実行せずに、ビット演算命令［ＳＥＴ  Ａ０．０］は、第０ビット［Ａ０．０］をＯＦＦし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令［ＳＥＴ  Ａ０．０］によってＯＦＦされた第０ビット［Ａ０．０］を読んで、次の処理を実行する。
【００４６】
さらに、第１の構造化プログラムの第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に真である場合は、制御演算部２０は、［動作２］を実行すると同時に、ビット演算命令［ＳＥＴ  Ａ０．０］は、ビットデバイス保持部３５の第０ビット［Ａ０．０］をＯＮし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令［ＳＥＴ  Ａ０．０］によってＯＮされた第０ビット［Ａ０．０］を読んで、次の処理を実行する。
【００４７】
そして、第２の構造化プログラムの第１の条件文［ＩＦ文］の［条件１１］が論理的に真である場合は、制御演算部２０は、［動作１１］を実行すると同時に、ビット演算命令［ＳＥＴ  Ａ０．１］は、前記ビットデバイス保持手段の第１ビット［Ａ０．１］をＯＮし、接点命令［ＬＤＩ  Ａ０．１］は、ビット演算命令［ＳＥＴ  Ａ０．１］によってＯＮされた第１ビット［Ａ０．１］を読んで、以後の処理を実行しないようにする。
【００４８】
さらに、第２の構造化プログラムの第１の条件文［ＩＦ文］の［条件１１］が論理的に偽である場合は、制御演算部２０は、［動作１１］を実行せずに、ビット演算命令［ＳＥＴ  Ａ０．１］は、ビットデバイス保持部３５の第１ビット［Ａ０．１］をＯＦＦし、接点命令［ＬＤＩ  Ａ０．１］は、ビット演算命令［ＳＥＴ  Ａ０．１］によってＯＦＦされた第１ビット［Ａ０．１］を読んで、制御演算部２０は、［動作１２］を実行すると同時に、常時ＯＮ接点ＳＭ４００のビット演算命令［ＲＳＴ  Ａ０．１］は、第１ビット［Ａ０．１］をＯＦＦする。
【００４９】
そして、第１の構造化プログラムの第２の条件文［ＥＬＳＥＩＦ文］の［条件２］が論理的に偽である場合は、制御演算部２０は、［動作２］を実行せずに、ビット演算命令［ＳＥＴ  Ａ０．０］は、第０ビット［Ａ０．０］をＯＦＦし、接点命令［ＬＤＩ  Ａ０．０］は、ビット演算命令［ＳＥＴ  Ａ０．０］によってＯＦＦされた第０ビット［Ａ０．０］を読んで、制御演算部２０は、［動作３］を実行すると同時に、常時ＯＮ接点ＳＭ４００のビット演算命令［ＲＳＴ  Ａ０．０］は、第１ビット［Ａ０．０］をＯＦＦする。
【００５０】
以上説明したように、本実施の形態では、ビットデバイス保持部３５は、構造化プログラムが複数に階層化された構造化プログラムである場合は、複数に階層化された構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、シーケンスプログラム保持部３０は、複数に階層化された構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５の複数のビットをビット毎にＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされた複数のビットに基づいて複数に階層化された構造化プログラムの次の処理を実行する接点命令に基づいて、複数に階層化された構造化プログラムに対応付けて変換されたシーケンスプログラムを保持し、制御演算部２０は、シーケンスプログラム保持部３０によって保持されたシーケンスプログラムを読み出して実行することとしたので、ソフトウエア処理によって実行されていた従来のジャンプ命令に替えてより高速なハードウエア処理で実行するビット演算命令と接点命令を使用することによりポインタを使わずに複数に階層化された構造化プログラムを高速で実行することができる。
【００５１】
また、本実施の形態では、プログラム対応表保持部２５は、構造化プログラムが複数に階層化された構造化プログラムである場合は、複数に階層化された構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５の複数のビット［Ａ０．０］、［Ａ０．１］をビット毎にＯＮ／ＯＦＦするビット演算命令［ＳＥＴ  Ａ０．０］、［ＳＥＴ  Ａ０．１］と、ビット演算命令［ＳＥＴ  Ａ０．０］、［ＳＥＴ  Ａ０．１］によってＯＮ／ＯＦＦされた複数のビット［Ａ０．０］、［Ａ０．１］に基づいて構造化プログラムの次の処理を実行する接点命令［ＬＤＩ  Ａ０．０］、［ＬＤＩ  Ａ０．１］に基づいて複数に階層化された構造化プログラムをシーケンスプログラムに対応付けるプログラム対応表を保持し、制御演算部２０は、プログラム対応表保持部２５によって保持されたプログラム対応表に基づいて複数に階層化された構造化プログラムをシーケンスプログラムに変換することとしたので、制御演算用ビットデバイス［Ａ０．０］、［Ａ０．１］を複合して使用することにより、ポインタを使わずにＩＦ文中でＩＦ文を実行するというような複数に階層化された構造化プログラムを高速で実行することができる。
【００５２】
また、本実施の形態では、シーケンスプログラム対応表は、第１の構造化プログラムの中に階層化された第２の構造化プログラムがＩＦ［条件］ＴＨＥＮ［動作］の条件付実行プログラムである場合に、ビットデバイス保持手段の第０のビットがＯＮであり、かつ、［条件］が論理的に真であるときは、制御演算部２０は、［動作］を実行すると同時に、ビット演算命令は、ビットデバイス保持部３５の第１のビットをＯＮし、第０のビットがＯＮであり、かつ、［条件］が論理的に偽であるときは、制御演算部２０は、［動作］を実行せずに、ビット演算命令は、第１のビットをＯＦＦし、第０のビットがＯＦＦであるときは、接点命令が以後の処理を実行しないように構造化プログラムを前記シーケンスプログラムに対応付けることとしたので、複数に階層化された構造化プログラムをシーケンスプログラムに変換することができる。
【００５３】
［プログラム変換手順］
次に、図２に示すプログラム制御装置のプログラム変換手順について説明する。図９は、図２に示すプログラム制御装置のプログラム変換手順を示すフローチャートである。
【００５４】
まず、制御演算部２０は、構造化プログラムの階層を示す整数ｎを零に設定し（ステップＳ９０１）、構造化プログラムがＩＦ［条件ｎ１］ＴＨＥＮ［動作ｎ１］の条件付実行文であるか否かを調べる（ステップＳ９０２）。その結果、構造化プログラムがＩＦ［条件ｎ１］ＴＨＥＮ［動作ｎ１］の条件付実行文でない場合は（ステップＳ９０２否定）、ステップＳ９０６に進む。
【００５５】
これに対して、構造化プログラムがＩＦ［条件ｎ１］ＴＨＥＮ［動作ｎ１］の条件付実行文である場合は（ステップＳ９０２肯定）、制御演算部２０は、プログラム対応表保持部２５によって保持されたプログラム対応表に基づいてシーケンスプログラムに変換する（ステップＳ９０３）。さらに、制御演算部２０は、次の構造化プログラムがＩＦ文であるか否かを調べる（ステップＳ９０４）。その結果、次の構造化プログラムがＩＦ文でない場合は（ステップＳ９０４否定）、ステップＳ９０６に進む。
【００５６】
これに対して、次の構造化プログラムがＩＦ文である場合は（ステップＳ９０４肯定）、制御演算部２０は、階層ｎの変換済み構造化プログラムを記憶し、階層ｎに“１”を加算し、ステップＳ９０２に戻る。さらに、制御演算部２０は、構造化プログラムがＥＬＳＥＩＦ［条件ｎ２］ＴＨＥＮ［動作ｎ２］の条件付実行文であるか否かを調べる（ステップＳ９０６）。その結果、構造化プログラムがＥＬＳＥＩＦ［条件ｎ２］ＴＨＥＮ［動作ｎ２］の条件付実行文でない場合は（ステップＳ９０６否定）、ステップＳ９１０に進む。
【００５７】
これに対して、構造化プログラムがＥＬＳＥＩＦ［条件ｎ２］ＴＨＥＮ［動作ｎ２］の条件付実行文である場合は（ステップＳ９０６肯定）、制御演算部２０は、プログラム対応表保持部２５によって保持されたプログラム対応表に基づいてシーケンスプログラムに変換する（ステップＳ９０７）。さらに、制御演算部２０は、次の構造化プログラムがＩＦ文であるか否かを調べる（ステップＳ９０８）。その結果、次の構造化プログラムがＩＦ文でない場合は（ステップＳ９０８否定）、ステップＳ９１０に進む。
【００５８】
これに対して、次の構造化プログラムがＩＦ文である場合は（ステップＳ９０８肯定）、制御演算部２０は、階層ｎの変換済み構造化プログラムを記憶し、階層ｎに“１”を加算し、ステップＳ９０２に戻る（ステップＳ９０９）。さらに、制御演算部２０は、構造化プログラムがＥＬＳＥ［動作ｎ３］であるか否かを調べる（ステップＳ９１０）。その結果、構造化プログラムがＥＬＳＥ［動作ｎ３］でない場合は（ステップＳ９１０否定）、ステップＳ９１４に進む。
【００５９】
これに対して、構造化プログラムがＥＬＳＥ［動作ｎ３］である場合は（ステップＳ９１０肯定）、制御演算部２０は、プログラム対応表保持部２５によって保持されたプログラム対応表に基づいてシーケンスプログラムに変換する（ステップＳ９１１）。さらに、制御演算部２０は、次の構造化プログラムがＩＦ文であるか否かを調べる（ステップＳ９１２）。その結果、次の構造化プログラムがＩＦ文でない場合は（ステップＳ９１２否定）、ステップＳ９１４に進む。
【００６０】
これに対して、次の構造化プログラムがＩＦ文である場合は（ステップＳ９１２肯定）、制御演算部２０は、階層ｎの変換済み構造化プログラムを記憶し、階層ｎに“１”を加算し、ステップＳ９０２に戻る（ステップＳ９１３）。さらに、制御演算部２０は、構造化プログラムがＥＮＤＩＦであるか否かを調べる（ステップＳ９１４）。その結果、構造化プログラムがＥＮＤＩＦでない場合は（ステップＳ９１４否定）、制御演算部２０は、ステップＳ９１６に進む。
【００６１】
これに対して、構造化プログラムがＥＮＤＩＦである場合は（ステップＳ９１４肯定）、制御演算部２０は、プログラム対応表保持部２５によって保持されたプログラム対応表に基づいてシーケンスプログラムに変換し（ステップＳ９１５）、階層を示す整数ｎから“１”を減算し（ステップＳ９１６）、階層ｎが負であるか否かを調べる（ステップＳ９１７）。その結果、階層ｎが負であるならば（ステップＳ９１７肯定）、変換手順は終了する。これに対して、階層ｎが正または零であるならば（ステップＳ９１７否定）、階層ｎの変換済み構造化プログラムの次の変換手順に戻る（ステップＳ９１８）。以後、本手順を階層０に戻るまで繰り返す。
【００６２】
以上説明したように、プログラム対応表保持部２５は、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムをシーケンスプログラムに対応付けるプログラム対応表を保持し、制御演算部２０は、プログラム対応表に基づいて構造化プログラムをシーケンスプログラムに変換することとしたので、ポインタを使わずに構造化プログラムをシーケンスプログラムに変換することができる。
【００６３】
また、プログラム対応表保持部２５は、構造化プログラムが複数に階層化された構造化プログラムである場合は、複数に階層化された構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持部３５の複数のビットをビット毎にＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってビット毎にＯＮ／ＯＦＦされた該複数のビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、複数に階層化された構造化プログラムをシーケンスプログラムに対応付けるプログラム対応表を保持し、制御演算部２０は、プログラム対応表に基づいて複数に階層化された構造化プログラムをシーケンスプログラムに変換することとしたので、ポインタを使わずに複数に階層化された構造化プログラムをシーケンスプログラムに変換することができる。
【００６４】
さて、これまで本発明の実施の形態について説明したが、本発明は上述した実施の形態以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてもよいものである。
【００６５】
例えば、本実施の形態では、本発明をＣ言語のＩＦ・ＥＬＳＥＩＦ・ＥＬＳＥ等の条件付実行文に適用する場合について説明したが、本発明はこれに限定されるものではなく、他の構造化プログラム、例えば、Ｃ言語のＳＷＩＴＣＨ文やＷＨＩＬＥ文などのほか、ＦＯＲＴＲＡＮ、ＢＡＳＩＣなどの言語を使用した構造化プログラムの場合に適用することができる。
【００６６】
また、本実施の形態では、本発明を階層ｎ＝０またはｎ＝１の場合について説明したが、本発明はこれに限定されるものではなく、階層数が任意の場合に適用することができる。例えば、１６ビットのワードデバイスを用いれば階層ｎ＝１５の場合の構造化プログラムが実現できる。また、階層数をｎ＝１５を越えて増やす場合は、ワードデバイスを増やせばよい。
【００６７】
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６９】
【発明の効果】
以上説明したように、本発明のプログラム制御装置によれば、構造化プログラムの条件文の論理的な真偽をビットのＯＮ／ＯＦＦで保持し、構造化プログラムの条件文の論理的な真偽に基づいてビットデバイス保持手段のビットをＯＮ／ＯＦＦするビット演算命令と、ビット演算命令によってＯＮ／ＯＦＦされたビットに基づいて構造化プログラムの次の処理を実行する接点命令に基づいて、構造化プログラムに対応付けて変換されたシーケンスプログラムを保持し、シーケンスプログラムを読み出して実行することができ、もってポインタを使わずに構造化プログラムを高速で実行することができる。
【図面の簡単な説明】
【図１】本実施の形態に係るプログラム制御装置における構造化プログラムからシーケンスプログラムへの変換を説明する図である。
【図２】本実施の形態に係るプログラム制御装置の構成を示す機能ブロック図である。
【図３】図２に示すプログラム制御装置のデバイスメモリの一例を示す図である。
【図４】図２に示すプログラム制御装置の構造化プログラムの一例を示す図である。
【図５】図４に示す構造化プログラムを変換したシーケンスプログラムの一例を示す図である。
【図６】図２に示すプログラム制御装置のプログラム対応表の一例を示す図である。
【図７】図２に示すプログラム制御装置の階層的構造化プログラムの一例を示す図である。
【図８】図７に示す階層的構造化プログラムを変換したシーケンスプログラムの一例を示す図である。
【図９】図２に示すプログラム制御装置のプログラム変換手順を示すフローチャートである。
【符号の説明】
１０  プログラム制御装置、２０  制御演算部、２２  バス部、２５  プログラム対応表保持部、３０  シーケンスプログラム保持部、３５  ビットデバイス保持部、４０  入出力ＩＦ部、４５  入出力装置、５０，５５  構造化プログラム例、６０，６５，８０，８５  シーケンスプログラム例、７０，７５  階層的構造化プログラム例。
【図１】
2004318675.tif 000003
【図２】
2004318675.tif 000004
【図３】
2004318675.tif 000005
【図４】
2004318675.tif 000006
【図５】
2004318675.tif 000007
【図６】
2004318675.tif 000008
【図７】
2004318675.tif 000009
【図８】
2004318675.tif 000010
【図９】
2004318675.tif 000011