(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサと、ＲＯＭ、ＲＡＭ等のメモリと、Ｉ／Ｏインターフェースとにより少なくとも構成されるプログラマブルコントローラにおいて、一つの命令で、連続する複数のビットの立ち上がりを各ビット毎に検出し、これらの検出回数を各ビット毎に計数することができる命令を備えたものであって、該命令は、オペランドにおいて、複数のビット領域の指定、その各々のビットの立ち上がりを判定するための前回値記憶領域の指定、立ち上がり回数を計数するための計数領域の指定を夫々する手段を有して成ることを特徴とするプログラマブルコントローラ。
【請求項２】
上記命令の実行時には、指定されたビット数に対応するビット領域の各々のビットの立ち上がりを検出する処理と、指定された計数領域で立ち上がりの回数を計数を行う処理とが実行されることを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
マイクロプロセッサと、ＲＯＭ、ＲＡＭ等のメモリと、Ｉ／Ｏインターフェースとにより少なくとも構成されるプログラマブルコントローラにおいて、一つの命令で、連続する複数のビットを監視し、これらの各々のビットのオンしている時間を各ビット毎に計時することができる命令を備えたものであって、該命令は、オペランドにおいて、複数のビット領域の指定、ビット毎のオン時間を計時するための時間計時領域の指定を夫々する手段を有して成ることを特徴とするプログラマブルコントローラ。
【請求項４】
上記命令の実行時には、指定されたビット数に対応するビット領域の各ビットのオン時間を、指定された計時領域で計時する処理が実行されることを特徴とする請求項３記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工程管理を行う際に、制御対象内の、１ビットで表現される状態情報を収集するに用いるプログマブルコントローラに関するものである。
【０００２】
【従来の技術】
図７に示すようにマイクロプロセッサ１と、ＲＯＭ、ＲＡＭ等のメモリ２と、Ｉ／Ｏインターフェース３とにより少なくとも構成されるプログラマブルコントローラを用いて制御対象、つまり機械や工程中で発生する異常情報や生産情報等の１ビット単位のオン／オフ状態を持つ事象を分析するには、そのビット情報のオン時間を計時したり、発生回数を計数することが必要となる場合がある。
【０００３】
従来のプログラマブルコントローラでは、それらの事象を１ビット毎に、時間を計時する命令、或いはその立ち上がりを検出して計数する命令を記述する必要があった。例えば、１ビットの立ち上がりを計数する場合、４ステップの命令が必要であり、２５６ビットの事象を計時する場合は４×２５６＝１０２４ステップものプログラムを消費していた。
【０００４】
図８（ａ）はｎビットの情報のオン回数（立ち上がり回数）を計数する場合の命令例を示しており、この図８（ａ）においてＲは内部リレーを示し、図示例ではＲ０〜Ｒｎを実行条件とし、該実行条件の立ち上がりを検出して＋１することができる命令（ＰＩＮＣ）を実行し、ＤＴ０〜ＤＴｎの各レジスタを＋１している。
【０００５】
同様に、１ビットのオン時間を計時する場合、５ステップの命令が必要であり、２５６ビットの事象を計時する場合は５×２５６＝１２８０ステップものプログラムを消費していた。
図８（ｂ）はｎビットの情報のオン時間を計時する場合の命令例を示しており、この図８（ｂ）においてＲは内部リレーを示し、図示例では内部リレーＲ０〜Ｒｎの各ビットと１秒毎にオン／オフするクロックリレーＣＬＫ１（＝１秒クロックパルス）を論理積演算した実行条件で、実行条件の立ち上がりを検出して＋１することのできる命令（ＰＩＮＣ）を実行し、ＤＴ０〜ＤＴｎの各レジスタの内容を＋１している。
【０００６】
【発明が解決しようとする課題】
上記のように従来例ではオン時間を計時する場合も、ビットの立ち上がり回数を計数する場合も、プログラム作成効率、プログラムの格納効率が低く、且つ印刷物も同じようなプログラムの羅列が長大になるのでプログラム管理上も問題があった。
【０００７】
本発明は上記問題点に鑑みて為されたもので、プログラム作成効率とプログラム使用効率とプログラム管理効率を向上させ、制御対象内の１ビット単位の発生の要因分析を容易にしたプログラマブルコントローラを提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために請求項１の発明では、マイクロプロセッサと、ＲＯＭ、ＲＡＭ等のメモリと、Ｉ／Ｏインターフェースとにより少なくとも構成されるプログラマブルコントローラにおいて、一つの命令で、連続する複数のビットの立ち上がりを各ビット毎に検出し、これらの検出回数を各ビット毎に計数することができる命令を備えたものであって、上記命令は、オペランドにおいて、複数のビット領域の指定、その各々のビットの立ち上がりを判定するための前回値記憶領域の指定、立ち上がり回数を計数するための計数領域の指定を夫々する手段を有して成ることを特徴とする。
【０００９】
請求項２の発明では、請求項１の発明において、上記命令の実行時には、指定されたビット数に対応するビット領域の各々のビットの立ち上がりを検出する処理と、指定された計数領域で立ち上がりの回数を計数を行う処理とが実行されることを特徴とする。
【００１０】
請求項３の発明では、マイクロプロセッサと、ＲＯＭ、ＲＡＭ等のメモリと、Ｉ／Ｏインターフェースとにより少なくとも構成されるプログラマブルコントローラにおいて、一つの命令で、連続する複数のビットを監視し、これらの各々のビットのオンしている時間を各ビット毎に計時することができる命令を備えたものであって、該命令は、オペランドにおいて、複数のビット領域の指定、ビット毎のオン時間を計時するための時間計時領域の指定を夫々する手段を有して成ることを特徴とする。
【００１１】
請求項４の発明では、請求項３の発明において、上記命令の実行時には、指定されたビット数に対応するビット領域の各ビットのオン時間を、指定された計時領域で計時する処理が実行されることを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明を実施形態により説明する。
（実施形態１）
本実施形態は請求項１〜３の発明に対応するものであって、プログラマブルコントローラのハードウェア構成は図７に示す構成を用いるが、請求項１〜請求項３の発明で使用するメモリ２には、図２に示すように請求項１〜３の発明に用いる図１の多点カウンタ用の命令ＭＣＮＴのＳ１で先頭指定されるビット領域に対応する領域２Ａと、命令ＭＣＮＴのＳ３で指定される、Ｓ１のビット領域の各々のビットに対応する、立ち上がり検出用前回値記憶領域２Ｂと、図２に示す令ＭＣＮＴのＤで先頭指定される計数領域２Ｃとを設ける。
【００１３】
そして請求項１〜３の発明によって使用される命令ＭＣＮＴは、オペランドにおいて、図１に示すように、ビット領域の先頭指定Ｓ１、ビット領域のビット数指定Ｓ２、立ち上がり検出用前回値記憶領域の先頭指定Ｓ３、計数領域の先頭指定Ｄの各手段を備えており、該命令ＭＣＮＴが実行されると、マイクロプロセサッサ（以下ＭＰＵと略す）１は指定Ｓ１で指定されたビット領域において、指定Ｓ２で指定されたビット数に対応する領域２Ａの各々の各ビットの立ち上がりを検出してＤで指定された計数領域２Ｃで立ち上がりの回数を計数する。尚図１中Ｒは内部リレーを示す。
【００１４】
次に本実施形態における命令ＭＣＮＴの実行を図３に示すフローチャートにより説明する。
まず命令の実行がスタートされると、ステップ（ＳＴ−１）ではＭＰＵ１のレジスタＣＮＴにビット数をセットし、メモリポインタを示すＭＰＵ１のレジスタｉＸに０をセットするとともに、メモリポインタを示すＭＰＵ１のレジスタｉＹに計数領域先頭アドレスをセットする。
【００１５】
ステップ（ＳＴ−２）ではビット領域先頭アドレスとレジスタｉＸの値とを加算したアドレスと、前回値領域先頭アドレスとレジスタｉＸの値を加算したアドレスから、ビットデータと前回値データを夫々ＭＰＵ１のレジスタＡ、レジスタＢに読み出し、ステップ（ＳＴ−３）で、レジスタＡの値とレジスタＢの値の排他的論理和の値をＭＰＵ１のレジスタＣに入れ、このレジスタＣの値とレジスタＡの値との論理値の値をレジスタＣにセットする。つまり立ち上がりを検出し、その結果をレジスタＣにセットする。ここでレジスタＣでオンしているビットが立ち上がったビットである。
【００１６】
次にステップ（ＳＴ−４）では前回値領域先頭アドレスとレジスタｉＸの値を加算したアドレスにレジスタＡの値を書き込み、前回値記憶領域を更新する。
ステップ（ＳＴ−５）ではビットポインタに対応するＭＰＵ１のレジスタｎを０クリアし、ステップ（ＳＴ−６）でレジスタＣの各ビットを検査する。レジスタＣの第ｎビットが１であればステップ（ＳＴ−７）の計数処理を行い、レジスタｉＹで示される計数領域２Ｃのメモリ内容を＋１とする。
【００１７】
レジスタＣの第ｎビットが０であれば、計数処理をせずに、ステップ（ＳＴ−８）へ移行する。
ステップ（ＳＴ−８）ではレジスタｉＹの内容に１を加えて計数領域２Ｃの次のアドレスに進め、レジスタｎの値に１を加えてビット検査するビットを次のビットに進め、レジスタＣＮＴのセットされているビット数を１引いた値とする。
【００１８】
ステップ（ＳＴ−９）ではレジスタＣＮＴにセットされているビット数が０であるか否かを判定し、０であれば命令の実行を終了し、０で無ければステップ（ＳＴ−１０）に進み、レジスタＣの全ビット（この場合ｎ＝８ビット）を検査したかを判定し、未検査のビットが残っている場合は、ステップ（ＳＴ−６）に戻る。全ビット終了時はステップ（ＳＴ−１１）でレジスタｉＸの値に１を加え、ステップ（ＳＴ−２）に戻る。つまりビット領域のアドレスに＋１してステップ（ＳＴ−２）に戻るのである。
【００１９】
このようにして本実施形態では連続する複数のビットの立ち上がりを各ビット毎に検出し、それらの回数を各ビット毎に計数することができる命令が実現可能となる。
（実施形態２）
本実施形態は請求項４〜６の発明に対応するものであって、プログラマブルコントローラのハードウェア構成は図７に示す構成を用いるが、請求項４〜請求項６の発明で使用するメモリ２には、図５に示すように請求項４〜請求項６の発明で用いる図４の多点タイマ用の命令ＭＴＭＲのＳ１で先頭指定されるビット領域に対応する領域２Ａと、図４の命令ＭＴＭＲのＤで先頭指定される計時領域２Ｃ’と、命令実行時に１周期が１秒のクロックパルスの立ち上がりを検出すための前回値記憶領域２Ｄとを持たせている。
【００２０】
そして請求項４〜請求項６の発明によって使用される命令ＭＴＭＲは図４に示すように、オペランドにおいて、ビット領域の先頭指定Ｓ１，ビット領域のビット数指定Ｓ２、計数領域の先頭の指定Ｄする手段を備え、該命令ＭＴＭＲが実行されると、マイクロプロセサッサ（以下ＭＰＵと略す）１は指定Ｓ１で指定されたビット領域２Ａにおいて、指定Ｓ２で指定されたビット数に対応した各ビットのオン時間を、Ｄで指定された計時領域２Ｃ’で計時する。尚図４中Ｒは内部リレーを示す。
【００２１】
次に本実施形態における命令ＭＴＭＲの実行を図６に示すフローチャートにより説明する。
まず命令の実行がスタートされると、ステップ（ＳＴ−０１）で１秒クロックパルスの立ち上がりを検出する。
つまりステップ（ＳＴ−０１）では１秒クロックリレーＣＬＫ１のクロックをＭＰＵ１のレジスタＡに入れ、前回値記憶領域２Ｄの値（ｐｒｅ−ＣＬＫ１）とレジスタＡとの値の排他的論理和値をレジスタＡに入れ、更にこのレジスタＡの値と１秒クロックパルスとの論理積を取ってその値をレジスタＡに入れ、前回値記憶領域２Ｄの値（ｐｒｅ−ＣＬＫ１）に１秒クロックパルスをセットすることにより、１秒クロックパルスの立ち上がりを検出し、ステップ（ＳＴ−０２）でレジスタＡのビット０の値が１であるかどうか、つまりビット０が立ち上がったか否かを判定し、立ち上がりでなければ命令の実行を終了する。もし立ち上がりであれば、ステップ（ＳＴ−１）でＭＰＵ１のレジスタＣＮＴにビット数をセットし、メモリポインタを示すＭＰＵ１のレジスタｉＸにビット領域の先頭アドレスをセットし、メモリポインタを示すＭＰＵ１のレジスタｉＹに計時領域の先頭アドレスをセットする。
【００２２】
ステップ（ＳＴ−２）ではビットデータをレジスタＡに読み出し、ステップ（ＳＴ−３）でビットポインタを示すＭＰＵ１のレジスタｎを０クリアし、ステップ（ＳＴ−４）でＭＰＵ１のレジスタＣの各ビットを検査する。レジスタＣの第ｎビットが１であればステップ（ＳＴ−５）の計時処理を行い、レジスタｉＹで示される計時領域２Ｃ’のメモリ内容を＋１とする。
【００２３】
レジスタＣの第ｎビットが０であれば、計時処理をせずに、ステップ（ＳＴ−６）へ移イ了する。
ステップ（ＳＴ−６）ではレジスタｉＹの内容に１を加えて計数領域２Ｃの次のアドレスに進め、レジスタｎの値に１を加えてビット検査するビットを次のビットに進め、レジスタＣＮＴにセットされているビット数を１引いた値とする。
【００２４】
ステップ（ＳＴ−７）ではレジスタＣＮＴにセットされているビット数が０であるか否かを判定し、０であれば命令の実行を終了し、０で無ければステップ（ＳＴ−８）に進み、Ｃレジスタの全ビット（ここではｎ＝８ビット）を検査したかを判定し、未検査のビットが残っている場合は、ステップ（ＳＴ−４）に戻る。全ビット終了時はステップ（ＳＴ−９）でレジスタｉＸの値に１を加え、ステップ（ＳＴ−２）に戻る。つまりビット領域のアドレスに＋１してステップ（ＳＴ−２）に戻るのである。  このようにして本実施形態では連続する複数のビットのオン時間を各ビット毎に１秒単位で計時できる命令が実現可能となる。
【００２５】
尚時間単位は１秒クロックの代わりに、他の時間単位のクロックパルスを使用すれば変更できる。
【００２６】
【発明の効果】
請求項１の発明では、マイクロプロセッサと、ＲＯＭ、ＲＡＭ等のメモリと、Ｉ／Ｏインターフェースとにより少なくとも構成されるプログラマブルコントローラにおいて、一つの命令で、連続する複数のビットの立ち上がりを各ビット毎に検出し、これらの検出回数を各ビット毎に計数することができる命令を備えたものであって、上記命令が、オペランドにおいて、複数のビット領域の指定、その各々のビットの立ち上がりを判定するための前回値記憶領域の指定、立ち上がり回数を計数するための計数領域の指定を夫々する手段を有しいるので、制御対象中の、異常情報や、生産情報等の１ビット単位のオン／オフ状態を持つ事象を監視するためにこれら事象の発生回数を計数する際に、１ビット毎に、オン回数を計数する命令を記述することなく、一つの命令で、連続するビットのオン回数を計数することができ、その結果プログラム作成効率とプログラムメモリ使用効率と、プログラム管理効率を大幅に向上させ、制御対象内の１ビット単位の事象の発生回数による要因分析のし易いＰＬＣを実現できるという効果がある。
【００２７】
請求項３の発明では、マイクロプロセッサと、ＲＯＭ、ＲＡＭ等のメモリと、Ｉ／Ｏインターフェースとにより少なくとも構成されるプログラマブルコントローラにおいて、一つの命令で、連続する複数のビットを監視し、これらの各々のビットのオンしている時間を各ビット毎に計時することができる命令を備えたものであって、該命令が、オペランドにおいて、複数のビット領域の指定、ビット毎のオン時間を計時するための時間計時領域の指定を夫々する手段を有しているので、制御対象中の、異常情報や、生産情報等の１ビット単位のオン／オフ状態を持つ事象を監視するためにこれら事象の発生時間を計時する際に、１ビット毎に、オン時間を計時する命令を記述することなく、一つの命令で、連続するビットのオン時間を計時することができ、その結果プログラム作成効率とプログラムメモリ使用効率と、プログラム管理効率を大幅に向上させ、制御対象内の１ビット単位の事象の発生時間による要因分析のし易いＰＬＣを実現できるという効果がある。
【図面の簡単な説明】
【図１】請求項１〜３の発明の実施形態に用いる命令のラダー図である。
【図２】同上のメモリの構成図である。
【図３】同上の命令実行の説明用フローチャートである。
【図４】請求項１〜３の発明の実施形態に用いる命令のラダー図である。
【図５】同上のメモリの構成図である。
【図６】同上の命令実行の説明用フローチャートである。
【図７】プログラマブルコントローラの概略構成図である。
【図８】（ａ）は従来の多点カウンタ用の命令のラダー図である。
（ｂ）は従来の命令の多点タイマ用の命令のラダー図である。
【図１】
0003700336.tif 000002
【図２】
0003700336.tif 000003
【図３】
0003700336.tif 000004
【図４】
0003700336.tif 000005
【図５】
0003700336.tif 000006
【図６】
0003700336.tif 000007
【図７】
0003700336.tif 000008
【図８】
0003700336.tif 000009