(57)【特許請求の範囲】
【請求項１】
サイクリックスキャン演算を行うプログラマブルコントローラにおいて、タイマ命令に対応してステータス記憶用メモリと、タイマ命令の限時時間の経過値を書き込む経過値エリアを持つメモリとを備え、実行条件の立ち上がり時に限時時間の設定値を経過値エリアに書き込み、実行条件が前スキャンより継続している場合には経過値エリアの値から経過時間を減算し、その減算結果が０になった時点でタイマ出力をオンする演算機能と、１スキャンサイクル内で最初のタイマ命令が実行されたときに実行完了フラグを上記ステータス記憶用メモリに記憶させ、実行完了フラグが記憶されている状態でタイマ命令が実行される場合には演算機能による演算処理をパスする複数実行回避機能とを持つタイマ演算手段と、１スキャンサイクルの終了時に、ステータス記憶用メモリに記憶されている実行完了フラグをクリアするクリア手段とを備えたプログラマブルコントローラであって、タイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションか、繰り返して実行されるアプリケーションかを識別するタイマ命令動作モードフラグをアプリケーションに対応して書き込むメモリを備え、該メモリに書き込まれたタイマ命令動作モードフラグが、タイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションを示す場合には、タイマ演算手段は複数実行回避機能の処理を行わず演算機能のみの処理を行い、クリア手段は実行完了フラグのクリアをパスすることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラに関するものである。
【０００２】
【従来の技術】
サイクリックスキャン演算を行うプログラマブルコントローラにはタイマ命令を実行して、時間の遅れ制御等を行うものが従来からある。
【０００３】
【発明が解決しようとする課題】
しかしながら、タイマ命令を実行する場合に、例えば１スキャンサイクルの中で、前方へジャンプすることにより、タイマ命令が複数回演算されるようなプログラムを構成すると、演算のたびに、経過値の減算が行われ、実際よりも早くタイムアップしてしまうという問題があった。
【０００４】
本発明は上記問題点に鑑みて為されたもので、その目的とするところは、同一スキャン内においてタイマ命令が再度実行されても演算をパスして実際よりも早くタイムアップするのを防いだプログラマブルコントローラを提供するにある。
【０００５】
【課題を解決するための手段】
上記目的を達成するために請求項１の発明では、サイクリックスキャン演算を行うプログラマブルコントローラにおいて、タイマ命令に対応してステータス記憶用メモリと、タイマ命令の限時時間の経過値を書き込む経過値エリアを持つメモリとを備え、実行条件の立ち上がり時に限時時間の設定値を経過値エリアに書き込み、実行条件が前スキャンより継続している場合には経過値エリアの値から経過時間を減算し、その減算結果が０になった時点でタイマ出力をオンする演算機能と、１スキャンサイクル内で最初のタイマ命令が実行されたときに実行完了フラグを上記ステータス記憶用メモリに記憶させ、実行完了フラグが記憶されている状態でタイマ命令が実行される場合には演算機能による演算処理をパスする複数実行回避機能とを持つタイマ演算手段と、１スキャンサイクルの終了時に、ステータス記憶用メモリに記憶されている実行完了フラグをクリアするクリア手段とを備えたことを特徴とし、１スキャンサイクル内で複数回タイマ命令の実行が為されるような場合においても、最初のタイマ命令の実行の演算だけが行われるため、実際よりも早くタイムアップしてしまうということがない。
【０００６】
また、タイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションか、繰り返して実行されるアプリケーションかを識別するタイマ命令動作モードフラグをアプリケーションに対応して書き込むメモリを備え、該メモリに書き込まれたタイマ命令動作モードフラグが、タイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションを示す場合には、タイマ演算手段は複数実行回避機能の処理を行わず演算機能のみの処理を行い、クリア手段は実行完了フラグのクリアをパスすることを特徴とし、１スキャンサイクル内で複数回タイマ命令の実行が為されるようなアプリケーションでは、最初のタイマ命令の実行の演算だけが行われるため、実際よりも早くタイムアップしてしまうということがなく、しかもタイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションの場合には、実行完了フラグの判定処理やクリア処理をパスすることにより、１スキャンサイクルを早めることができ、アプリケーションに適した処理が行える。
【０００７】
【発明の実施の形態】
以下、本発明の基本形態及び実施形態を図面を参照して説明する。
（基本形態）
図２はプログラマブルコントローラの基本的な構成を示しており、図示するようにプログラマブルコントローラは、プログラマブルコントローラの演算、制御処理を行うためのシステムプログラムが書き込まれたＲＯＭ１と、ユーザプログラムのロードや演算処理のワークエリア、データの一時的格納等を行うためのＲＡＭ２と、ＲＯＭ１に書き込まれたシステムプログラムに基づいてユーザープログラムを実行して演算、制御処理を行うＣＰＵ３と、ＣＰＵ３の制御により外部装置との間で入／出力データの授受を行うためのＩ／Ｏインターフェース４とを基本的な構成として備え、図３に示すように電源がオンされるとＣＰＵ３はシステムプログラムに基づいて初期化処理を経た後、スイッチ等により設定されるモードがユーザープログラム作成のモード（ＰＲＯＧ）なのか、ユーザープログラムを実行する実行モード（ＲＵＮ）なのかを判定し、この判定結果がプログラム作成のモードであれば、周辺サービス過程によりプログラム設定器等によるプグラム作成処理を行った後、モード判定の過程へ戻る。また実行モードであればＩ／Ｏインターフェース４のリフレッシュ処理を行った後、ユーザープログラムに基づく演算処理を実行し、この演算処理後周辺サービス過程を経て再びモード判定の過程へ戻る。つまりモード判定の過程から、次のモード判定へ戻るまでが１スキャンとなり、このスキャンを繰り返すことにより、サイクリックスキャン演算方式のプログラマブルコントローラと称せられる。
【０００８】
ところでのようなプログラマブルコントローラにおけるタイマ命令の処理過程に本基本形態は次のような特徴を持つ。
つまり本基本形態では図１に示すように、タイマ命令（０）〜（ｎ）に対応して、ＣＰＵ３がユーザープログラムに記述されたタイマ命令の実行の際に、限時時間の経過値を書き込むための経過値エリアＡ１（０）〜Ａ１（ｎ）と、タイマ命令の実行に用いる限時時間の目標値たる設定値を予め書き込む設定値エリアＡ２（０）〜Ａ２（ｎ）と、タイマ命令のステータス記憶用メモリＡ３（０）〜Ａ３（ｎ）とを設けてある。これらエリアＡ１，Ａ２及びメモリＡ３はＲＡＭ２の一部を利用或いは別に専用ＲＡＭを設けることにより構成される。またステータス記憶用メモリＡ３（０）〜Ａ３（ｎ）には実行条件記憶エリアＡａと、実行完了フラグ記憶エリアＡｂを持たせてある。
【０００９】
而してＣＰＵ３はタイマ命令を実行する際、スキャン毎に図４、図５に示すフローチャートに基づいて動作する。図４はタイマ命令の１回の実行時のフローチャートを示しており、タイマ命令を実行する場合、ＣＰＵ３はステップ[1] で前回のスキャンから実行条件が継続してオン（ＯＮ）であるか否かを判定し、継続してオンのとき、ステータス記憶用メモリＡ3 に書き込まれている前回の実行条件をステップ[2] で読み出し、更に実行完了フラグ記憶エリアＡｂに実行完了フラグがセットされているか否かをステップ[3] で判定し、実行完了フラグがセットされていない場合には、今回の実行条件とステップ[2] で読み出した前回値とをステップ[4] で比較して立ち上がりの判定を行い、立ち上がりと判定されると、ステップ[5] で経過値エリアＡ1 に設定値エリアＡ2 に書き込まれている設定値を転送してプリセットするとともに、Ｉ／Ｏインターフェース４のタイマ接点をオフさせる。
【００１０】
一方実行条件の立ち上がりでなれば経過値エリアＡ1 に書き込まれている値から前スキャンでの経過時間を減算して経過値エリアＡ1 の値を更新する（スッテプ[6] ）。この時その値が０であれば内蔵タイマ接点をオンさせる。
ところでステップ[5] 或いは[6] の処理を終了するとステップ[7] で今回の実行条件をステータス記憶用メモリＡ3 に記憶し、更にステップ[8] で実行完了フラグをセットしてタイマ命令の実行を終了する。
【００１１】
ところで上記ステップ[1] で実行条件が継続されていない場合にはステップ[9] でタイマリセット処理を行った後、ステップ[7] [8] の処理を行い、またステップ[3] で実行完了フラグがセットされていると判断されている場合には、タイマ演算処理をパスする。
そしてＣＰＵ３は図５に示すように１スキャンサイクルが終了時に実行完了フラグ記憶エリアＡｂにセットされている実行完了フラグをクリアして終了する。つまりまず変数ｎに０をステップ[20]でセットし、タイマ命令（０）のステータス記憶用メモリＡ3(0)の記憶内容を読み出し（ステップ[21]）、実行完了フラグ記憶エリア３ｂにセットされている実行完了フラグをクリアする（ステップ[22]）。そしてタイマ命令（０）のステータスの再書き込みをステップ[23]で行う。次にステップ[24]で現在の変数の値に１を加えて新たな変数ｎの値とする。このようにして変数ｎの値がｎを越えるとステップ[25]で判断されるまで、ステップ[21]からステップ[25]の処理を繰り返して行い、変数ｎの値がｎを越えると、つまりタイマ命令（０）から（ｎ）までのスタータス記憶メモリＡ3(0)〜Ａ3(n)に対応する実行完了フラグ記憶エリア３ｂ内の実行完了フラグのクリアが終了すると、１スキャンサイクルを終了する。
【００１２】
ＣＰＵ３は、図４の動作フローチャートに示す処理過程ではタイマ命令実行時にステータス記憶用メモリＡ3 の実行完了フラグ記憶エリアＡｂに実行完了フラグをセットする手段と、タイマ命令実行時に実行完了フラグがセットされているか否かを判断して、実行されている場合には演算をパスする機能を持つタイマ命令演算手段を構成し、図５の動作フローチャートで示す処理過程では、１スキャンサイクルの終了の度に上記セットされた実行完了フラグをクリアするクリア手段を構成する。
【００１３】
このようにして本基本形態では、実行完了フラグがセットされているか否かにより、演算の１スキャンサイクル内で前方ジャンプや繰り返し制御により、タイマ命令が複数回実行された場合でも、最初の実行の１回のみを有効とし、実際の設定値よりも早くタイムアップするのを防止することができるのである。
ところで上記基本形態では、タイマ命令が１スキャンサイクルにおいて繰り返し実行される場合の不都合に対応して、同じスキャンサイクル中において最初のタイマ命令の実行があった時に実行完了フラグをセットし、同じスキャンサイクルにおいてタイマ命令が再度実行されるような場合、それを実行完了フラグがセットされていることで判定し、その際に演算をパスするようにしている。
【００１４】
しかし、ユーザープログラム（アプリケーション）によってはタイマ命令を１スキャンサイクルで繰り返して実行しないものもあり、この場合上記の基本形態のようにスキャン終了時の実行完了フラグのクリアを行う分、１スキャンサイクルの時間が増加することになる。
そこでタイマ命令が１スキャンサイクル内で繰り返して実行されない場合には、上記のような処理を行わず、従来通りの処理ができるようにしたのが次に示す実施形態１である。
【００１５】
（実施形態１）
まず本実施形態も、基本的なハードウェアとしては基本形態と同様に図２に示す構成と同じ構成を持つが、ユーザープログラム（アプリケーション）のタイマ命令動作モードに応じてフラグを書き込むタイマ命令動作モードフラグ記憶エリアＡ４を図６に示すように追加し、ユーザープログラム（アプリケーション）がタイマ命令を同じスキャンサイクルで複数回実行されるものであれば図４、図５の処理を実行するタイマ命令動作モードを選択して、タイマ命令動作モードフラグ記憶エリアＡ４に１をセットし、ユーザープログラム（アプリケーション）がタイマ命令を同じスキャンサイクルで１回のみ実行されるものであれば従来と同様な処理を実行するタイマ命令動作モードを選択して、タイマ命令動作モードフラグ記憶エリアＡ４に０をセットする。
【００１６】
図７は本実施形態のタイマ命令の実行動作のフローチャートを示しており、このフローチャートから明らかなように、図４の場合と異なるのは基本形態の図４のステップ[2] とステップ[3] との間に、タイマ命令動作モードのフラグの判定を行うステップ[10]を設けた点である。つまり実行条件のステータス記憶用メモリＡ3 から前回の実行条件を読み出した後、タイマ命令動作モードフラグが１であるのか、０であるのかを判定し、１であれば実行完了フラグの判定処理を行い、０であれば実行完了フラグの判定のステップ[3] をパスしてステップ[4] に飛ぶのである。
【００１７】
またスキャンタイムが終了する場合、終了直前において、ステータス記憶用メモリＡ3の実行完了フラグ記憶エリアＡｂにセットされている実行完了フラグのクリア処理を行うか否かの判断を行うステップ[30]を図８に示すように追加している。つまり図８に示すようにタイマ命令の動作モードのフラグの判定を行い、実行完了フラグがセットされていなけば実行完了フラグのクリア処理のためのステップ[20]〜[25]をパスして終了する。また実行完了フラグがセットされている場合には上記基本形態と同様にステップ[20]〜[25]を経て終了する。
【００１８】
【発明の効果】
請求項１の発明は、サイクリックスキャン演算を行うプログラマブルコントローラにおいて、タイマ命令に対応してステータス記憶用メモリと、タイマ命令の限時時間の経過値を書き込む経過値エリアを持つメモリとを備え、実行条件の立ち上がり時に限時時間の設定値を経過値エリアに書き込み、実行条件が前スキャンより継続している場合には経過値エリアの値から経過時間を減算し、その減算結果が０になった時点でタイマ出力をオンする演算機能と、１スキャンサイクル内で最初のタイマ命令が実行されたときに実行完了フラグを上記ステータス記憶用メモリに記憶させ、実行完了フラグが記憶されている状態でタイマ命令が実行される場合には演算機能による演算処理をパスする複数実行回避機能とを持つタイマ演算手段と、１スキャンサイクルの終了時に、ステータス記憶用メモリに記憶されている実行完了フラグをクリアするクリア手段とを備えたので、１スキャンサイクル内で前方へジャンプすることにより複数回タイマ命令の実行が為されるような場合においても、最初のタイマ命令の実行の演算だけが行われるため、実際よりも早くタイムアップしてしまうということがないという効果がある。
【００１９】
また、タイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションか、繰り返して実行されるアプリケーションかを識別するタイマ命令動作モードフラグをアプリケーションに対応して書き込むメモリを備え、該メモリに書き込まれたタイマ命令動作モードフラグが、タイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションを示す場合には、タイマ演算手段は複数実行回避機能の処理を行わず演算機能のみの処理を行い、クリア手段は実行完了フラグのクリアをパスするので、１スキャンサイクル内で複数回タイマ命令の実行が為されるようなアプリケーションでは、最初のタイマ命令の実行の演算だけが行われるため、実際よりも早くタイムアップしてしまうということがなく、しかもタイマ命令が１スキャンサイクル内で１度だけ実行されるアプリケーションの場合には、実行完了フラグの判定処理やクリア処理をパスすることにより、１スキャンサイクルを早めることができ、アプリケーションに適した処理が行えるという効果がある。
【図面の簡単な説明】
【図１】  基本形態のメモリ構成図である。
【図２】  同上の全体構成図である。
【図３】  同上の全体の動作フローチャートである。
【図４】  同上のタイマ命令の動作フローチャートである。
【図５】  同上の１スキャンサイクル終了時の実行完了フラグのクリア処理を示す動作フローチャートである。
【図６】  実施形態１のメモリ構成図である。
【図７】  同上のタイマ命令の動作フローチャートである。
【図８】  同上の１スキャンサイクル終了時の実行完了フラグのクリア処理を示す動作フローチャートである。
【符号の説明】
Ａ１（０）…  経過値エリア
Ａ３（０）…  設定値エリア
Ａ３（０）…  ステータス記憶用メモリ
Ａａ  実行条件記憶エリア
Ａｂ  実行完了フラグエリア
【図１】
0003663680.tif 000002
【図２】
0003663680.tif 000003
【図３】
0003663680.tif 000004
【図４】
0003663680.tif 000005
【図５】
0003663680.tif 000006
【図６】
0003663680.tif 000007
【図７】
0003663680.tif 000008
【図８】
0003663680.tif 000009