(57)【要約】【課題】高速なスキャン周期を実現可能とするプログラマブルコントローラを提供する。【解決手段】プログラマブルコントローラ１は、管理プロセッサ１１、プログラムメモリ（第１のメモリ）１２、データメモリ（第２のメモリ）１３、Ｉ／Ｏ装置１４、専用プロセッサ１５、ワークメモリ１８、通信インタフェース１９、バス１６及び１７、及びモニタ装置１０を備えており、データメモリ１３には、実行カウンタ１３１、完了カウンタ１３２及び制御周期１３３が設けられている。これにより、管理プロセッサ１１と専用プロセッサ１５の動作に同期がとられ、専用プロセッサ１５は、Ｉ／Ｏ入出力、タイマ更新およびシーケンスプログラム実行を行うことができる。【選択図】　　　図１
2004038555.tif 000002
【特許請求の範囲】
【請求項１】
全体の制御を行う管理プロセッサと、シーケンスプログラム実行用の制御処理専用プロセッサとを備えて、入出力処理とタイマ更新処理とシーケンスプログラム実行処理からなるスキャン処理を一定周期で行うプログラマブルコントローラにおいて、
前記シーケンスプログラムの実行回数を記憶する実行回数記憶手段と、
前記シーケンスプログラムの実行完了回数を記憶する実行完了回数記憶手段と、
前記一定周期を制御周期として記憶する制御周期記憶手段と、
前記制御処理専用プロセッサが前記実行回数記憶手段、実行完了回数記憶手段及び制御周期記憶手段に記憶された値に基づいて前記スキャン処理を実行するように制御するスキャン制御手段と、
を有することを特徴とするプログラマブルコントローラ。
【請求項２】
前記実行回数記憶手段は、
前記管理プロセッサによって前記一定周期ごとに実行回数値が更新され、
前記実行完了回数記憶手段は、
前記制御処理専用プロセッサによってシーケンスプログラム実行完了後に実行完了回数値が更新され、
前記スキャン制御手段は、
前記実行回数値と前記実行完了回数値との差に基づき、前記制御処理専用プロセッサが前記入出力処理を開始し、前記制御周期記憶手段に記憶している制御周期を用いて前記タイマ更新処理を実行するように制御することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記スキャン制御手段は、
前記実行回数値と前記実行完了回数値に基づき、前記制御処理専用プロセッサが前記管理プロセッサに異常状態の旨を通知するように制御することを特徴とする請求項２記載のプログラマブルコントローラ。
【請求項４】
前記実行回数記憶手段、実行完了回数記憶手段及び制御周期記憶手段は、制御周期を計測するカウンタ回路に設けられていることを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項５】
前記実行回数記憶手段は、
前記カウンタ回路によって前記一定周期ごとに実行回数値が更新され、
前記実行完了回数記憶手段は、
前記制御処理専用プロセッサによってシーケンスプログラム実行完了後に実行完了回数値が更新され、
前記スキャン制御手段は、
前記実行回数値と前記実行完了回数値との差に基づき、前記制御処理専用プロセッサが前記入出力処理を開始し、前記制御周期記憶手段に記憶している制御周期を用いて前記タイマ更新処理を実行するように制御することを特徴とする請求項４記載のプログラマブルコントローラ。
【請求項６】
全体の制御を行う管理プロセッサと、シーケンスプログラム実行用の制御処理専用プロセッサとを備えて、入出力処理とタイマ更新処理とシーケンスプログラム実行処理からなるスキャン処理をフローティング周期で行うプログラマブルコントローラにおいて、
前記フローティング周期を制御周期として記憶する制御周期記憶手段と、
前記制御処理専用プロセッサが前記制御周期記憶手段に記憶された値に基づいて前記スキャン処理を実行するように制御するスキャン制御手段と、
を有することを特徴とするプログラマブルコントローラ。
【請求項７】
前記制御周期記憶手段は、
基準パルスを発生させ、この基準パルスの数を計測するタイマ回路の前スキャン及び現スキャン時の計測値に基づいて制御周期値が更新され、
前記スキャン制御手段は、
前記制御処理専用プロセッサが、前記制御周期値を用いて前記タイマ更新処理を実行するように制御することを特徴とする請求項６記載のプログラマブルコントローラ。
【請求項８】
全体の制御を行う管理プロセッサと、シーケンスプログラム実行用の制御処理専用プロセッサとを備えて、入出力処理とタイマ更新処理とシーケンスプログラム実行処理からなるスキャン処理を一定周期又はフローティング周期で行うプログラマブルコントローラにおいて、
前記シーケンスプログラムの実行回数を記憶する実行回数記憶手段と、
前記シーケンスプログラムの実行完了回数を記憶する実行完了回数記憶手段と、
前記一定周期を制御周期として記憶する第１の制御周期記憶手段と、
前記フローティング周期を制御周期として記憶する第２の制御周期記憶手段と、
前記制御処理専用プロセッサが、一定周期の場合には、前記実行開始回数記憶手段、実行完了回数記憶手段、及び第１の制御周期記憶手段に記憶された値に基づいて、フローティング周期の場合には、第２の制御周期記憶手段に記憶された値に基づいて、前記スキャン処理を実行するように制御するスキャン制御手段と、
を有することを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は鉄鋼、製紙プラントや上下水道などの公共システム、自動車産業など産業用システムの制御に広く使用されているプログラマブルコントローラに関する。
【０００２】
【従来の技術】
図１６は管理プロセッサ及び制御用専用プロセッサ（以下、専用プロセッサと呼ぶ）を有する従来のプログラマブルコントローラの１スキャンの動作を示している図である。ここで、１スキャンとは、シーケンスプログラムの実行及びシーケンスプログラム実行に関連した一連の処理行程を意味し、具体的には、プログラマブルコントローラに接続されている入出力モジュールと入出力データのやりとりを行うＩ／Ｏ入出力、シーケンスプログラム中のタイマ演算において使われるタイマ値を更新するタイマ更新、及びシーケンスプログラム実行で構成されている。
【０００３】
この図においては、管理プロセッサは、Ｉ／Ｏ入出力およびタイマ更新を行い、これらの処理が完了した後にシーケンスプログラム実行用の専用プロセッサへ起動要求を行い、起動要求を受け付けた専用プロセッサは、シーケンスプログラムを実行し、実行が完了すると管理プロセッサへ完了通知を発行する。一方、専用プロセッサがシーケンスプログラムを実行している間は、管理プロセッサは並列処理として、上位監視装置との伝送処理を行っている。そして、専用プロセッサからの完了通知を受け付けた管理プロセッサは、再びＩ／Ｏ入出力から始まる１スキャンの動作を繰り返す。
【０００４】
【発明が解決しようとする課題】
ところで、このような管理プロセッサの動作においては、管理プロセッサがスキャン全体の管理を行っているため、Ｉ／Ｏ入出力、タイマ更新及び専用プロセッサのための起動によるオーバーヘッド時間が発生する。また、現在の制御システムにおいては、上位監視装置とプログラムコントローラとの接続は必須となってきているため、管理プロセッサの伝送処理による負荷は増大する傾向がある。
【０００５】
このため、これらの要因から、より高速なスキャン周期の制御を必要とする分野においては、プログラマブルコントローラを適用できないという課題がある。即ち、低速なスキャン周期の場合には、上述した管理用プロセッサがＩ／Ｏ入出力およびタイマ更新を行い、これらの処理が完了した後にシーケンスプログラム実行用の制御用専用プロセッサがシーケンスプログラム実行を実施するという方式で問題はないが、より高速なスキャン周期の場合においては、管理プロセッサへの負荷が大きいため、現状方式のプログラマブルコントローラを適用することができないという課題がある。
【０００６】
本発明は、上記の課題を解決するためになされたものであり、高速なスキャン周期を実現可能とするプログラマブルコントローラを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の本発明は、全体の制御を行う管理プロセッサと、シーケンスプログラム実行用の制御処理専用プロセッサとを備えて、入出力処理とタイマ更新処理とシーケンスプログラム実行処理からなるスキャン処理を一定周期で行うプログラマブルコントローラにおいて、前記シーケンスプログラムの実行回数を記憶する実行回数記憶手段と、前記シーケンスプログラムの実行完了回数を記憶する実行完了回数記憶手段と、前記一定周期を制御周期として記憶する制御周期記憶手段と、前記制御処理専用プロセッサが前記実行回数記憶手段、実行完了回数記憶手段及び制御周期記憶手段に記憶された値に基づいて前記スキャン処理を実行するように制御するスキャン制御手段と、を有することを要旨とする。
【０００８】
請求項１記載の本発明にあっては、管理プロセッサと制御処理専用プロセッサを備えたプログラマブルコントローラにおいて、実行回数記憶手段、実行完了回数記憶手段、及び制御周期記憶手段を設けることにより、制御処理専用プロセッサが、入出力処理、タイマ更新処理、及びシーケンスプログラム実行処理からなる一定周期のスキャン処理を実行する。これにより、一定周期のスキャン処理において、従来、管理プロセッサが実行していた入出力処理及びタイマ更新処理を、制御処理専用プロセッサが実行するので、管理プロセッサの負荷が軽減され、高速なスキャン周期の制御が可能となる。
【０００９】
請求項２記載の本発明は、請求項１記載の発明において、前記実行回数記憶手段は、前記管理プロセッサによって前記一定周期ごとに実行回数値が更新され、前記実行完了回数記憶手段は、前記制御処理専用プロセッサによってシーケンスプログラム実行完了後に実行完了回数値が更新され、前記スキャン制御手段は、前記実行回数値と前記実行完了回数値との差に基づき、前記制御処理専用プロセッサが前記入出力処理を開始し、前記制御周期記憶手段に記憶している制御周期を用いて前記タイマ更新処理を実行するように制御することを要旨とする。
【００１０】
請求項２記載の本発明にあっては、管理プロセッサが一定周期で実行回数値を更新し、制御処理専用プロセッサがシーケンスプログラム実行完了後に実行完了回数値を更新する。そして、制御処理専用プロセッサが実行回数値と実行完了回数値との差に基づき入出力処理を開始し、制御周期を用いてタイマ更新処理を実行する。これにより、専用制御プロセッサは、実行回数値と実行完了回数値を監視していれば、制御周期を把握できるので、入出力処理から始まる一連のスキャン処理を開始することができる。また、制御周期記憶手段に記憶している制御周期を差分タイマ値としてタイマ更新処理をすることができる。
【００１１】
請求項３記載の本発明は、請求項１記載の発明において、前記スキャン制御手段は、前記実行回数値と前記実行完了回数値に基づき、前記制御処理専用プロセッサが前記管理プロセッサに異常状態の旨を通知するように制御することを要旨とする。
【００１２】
請求項３記載の本発明にあっては、実行回数値と実行完了回数値に基づいて、制御処理専用プロセッサが、スキャン動作の異常状態を検知し、その旨を管理プロセッサに通知する。これにより、管理プロセッサは、制御処理専用プロセッサのスキャン動作の異常状態を把握できるので、異常状態の場合はユーザに通知することができる。
【００１３】
請求項４記載の本発明は、請求項１記載の発明において、前記実行回数記憶手段、実行完了回数記憶手段及び制御周期記憶手段は、制御周期を計測するカウンタ回路に設けられていることを要旨とする。
【００１４】
請求項４記載の本発明にあっては、実行回数記憶手段、実行完了回数記憶手段、制御周期記憶手段を有するカウンタ回路を付加することにより、制御処理専用プロセッサが、カウンタ入出力処理、タイマ更新処理、及びシーケンスプログラム実行処理からなるスキャン処理を実行する。これにより、従来、管理プロセッサが実行していた入出力処理及びタイマ更新処理を、ハードウェアとしてのカウンタ回路を利用することで、制御処理専用プロセッサが実行するので、管理プロセッサの負荷が軽減され、高速なスキャン周期の制御が可能となる。
【００１５】
請求項５記載の本発明は、請求項４記載の発明において、前記実行回数記憶手段は、前記カウンタ回路によって前記一定周期ごとに実行回数値が更新され、前記実行完了回数記憶手段は、前記制御処理専用プロセッサによってシーケンスプログラム実行完了後に実行完了回数値が更新され、前記スキャン制御手段は、前記実行回数値と前記実行完了回数値との差に基づき、前記制御処理専用プロセッサが前記入出力処理を開始し、前記制御周期記憶手段に記憶している制御周期を用いて前記タイマ更新処理を実行するように制御することを要旨とする。
【００１６】
請求項５記載の本発明にあっては、カウンタ回路が一定周期で実行回数値を更新し、制御処理専用プロセッサがシーケンスプログラム実行完了後に実行完了回数値を更新する。そして、制御処理専用プロセッサが実行回数値と実行完了回数値との差に基づき入出力処理を開始し、制御周期を用いてタイマ更新処理を実行する。これにより、専用制御プロセッサは、実行回数値と実行完了回数値を監視していれば、制御周期を把握できるので、入出力処理から始まる一連のスキャン処理を開始することができる。また、制御周期記憶手段に記憶している制御周期を差分タイマ値としてタイマ更新処理をすることができる。
【００１７】
請求項６記載の本発明は、全体の制御を行う管理プロセッサと、シーケンスプログラム実行用の制御処理専用プロセッサとを備えて、入出力処理とタイマ更新処理とシーケンスプログラム実行処理からなるスキャン処理をフローティング周期で行うプログラマブルコントローラにおいて、前記フローティング周期を制御周期として記憶する制御周期記憶手段と、前記制御処理専用プロセッサが前記制御周期記憶手段に記憶された値に基づいて前記スキャン処理を実行するように制御するスキャン制御手段と、を有することを要旨とする。
【００１８】
ここで、フローティング周期とは、スキャン処理において、制御周期が一定周期でない場合を意味する。
【００１９】
請求項６記載の本発明にあっては、管理プロセッサと制御処理専用プロセッサを備えたプログラマブルコントローラにおいて、フローティング周期の制御周期記憶手段を設けることにより、制御処理専用プロセッサが、入出力処理、タイマ更新処理、及びシーケンスプログラム実行処理からなるフローティング周期のスキャン処理を実行する。これにより、フローティング周期の場合においても、従来、管理プロセッサが実行していた入出力処理及びタイマ更新処理を、制御処理専用プロセッサが実行するので、管理プロセッサの負荷が軽減され、高速なスキャン周期の制御が可能となる。
【００２０】
請求項７記載の本発明は、請求項６記載の発明において、前記制御周期記憶手段は、基準パルスを発生させ、この基準パルスの数を計測するタイマ回路の前スキャン及び現スキャン時の計測値に基づいて制御周期値が更新され、前記スキャン制御手段は、前記制御処理専用プロセッサが、前記制御周期値を用いて前記タイマ更新処理を実行するように制御することを要旨とする。
【００２１】
請求項７記載の本発明にあっては、基準パルスを発生させ、この基準パルスの数を計測するタイマ回路を付加することにより、フローティング周期を計測して、この値を用いてタイマ更新処理を実行する。これにより、従来、管理プロセッサが実行していた入出力処理及びタイマ更新処理を、ハードウェアとしてのタイマ回路を利用することで、制御処理専用プロセッサがフローティング周期のスキャン処理を実行することができる。
【００２２】
請求項８記載の本発明は、全体の制御を行う管理プロセッサと、シーケンスプログラム実行用の制御処理専用プロセッサとを備えて、入出力処理とタイマ更新処理とシーケンスプログラム実行処理からなるスキャン処理を一定周期又はフローティング周期で行うプログラマブルコントローラにおいて、前記シーケンスプログラムの実行回数を記憶する実行回数記憶手段と、前記シーケンスプログラムの実行完了回数を記憶する実行完了回数記憶手段と、前記一定周期を制御周期として記憶する第１の制御周期記憶手段と、前記フローティング周期を制御周期として記憶する第２の制御周期記憶手段と、前記制御処理専用プロセッサが、一定周期の場合には、前記実行開始回数記憶手段、実行完了回数記憶手段、及び第１の制御周期記憶手段に記憶された値に基づいて、フローティング周期の場合には、第２の制御周期記憶手段に記憶された値に基づいて、前記スキャン処理を実行するように制御するスキャン制御手段と、を有することを要旨とする。
【００２３】
請求項８記載の本発明にあっては、管理プロセッサと制御処理専用プロセッサを備えたプログラマブルコントローラにおいて、実行回数記憶手段、実行完了回数記憶手段、一定周期を記憶する第１の制御周期記憶手段、フローティング周期を記憶する第２の制御周期記憶手段を設けることにより、一定周期の場合においても、フローティング周期の場合においても、制御処理専用プロセッサが、入出力処理、タイマ更新処理、及びシーケンスプログラム実行処理からなるスキャン処理を実行する。これにより、従来、管理プロセッサが実行していた入出力処理及びタイマ更新処理を、制御処理専用プロセッサが実行するので、管理プロセッサの負荷が軽減され、高速なスキャン周期の制御が可能となる。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
【００２５】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係るプログラマブルコントローラ１の構成を示している。このプログラマブルコントローラ１は、管理プロセッサ１１、プログラムメモリ（第１のメモリ）１２、データメモリ（第２のメモリ）１３、Ｉ／Ｏ装置１４、専用プロセッサ１５、ワークメモリ１８、通信インタフェース１９、バス１６及び１７、及びモニタ装置１０を備えている。
【００２６】
管理プロセッサ１１は、プログラマブルコントローラの中枢部分であり、プログラマブルコントローラ全体の管理を行うＣＰＵである。専用プロセッサ１５は、シーケンスプログラム実行用のプロセッサであるが、本発明においては、Ｉ／Ｏ入出力、タイマ更新およびシーケンスプログラム実行を行うＣＰＵとなっている。
【００２７】
プログラムメモリ（第１メモリ）１２はユーザが作成したシーケンスプログラムを格納するメモリであり、データメモリ（第２メモリ）１３はユーザが使用する変数や専用プロセッサが動作するためのデータを格納するメモリである。図２に示すように、データメモリ１３には、実行カウンタ１３１、完了カウンタ１３２及び制御周期１３３が設けられており、これにより、後述するように管理プロセッサ１１と専用プロセッサ１５の動作に同期がとられるようになっている。
【００２８】
実行カウンタ１３１は、シーケンスプログラムの実行回数を記憶する記憶域であり、管理プロセッサ１１が、一定周期で実行カウンタ１３１をインクリメントするようになっている。完了カウンタ１３２は、シーケンスプログラムの実行完了回数を記憶する記憶域であり、専用プロセッサ１５がシーケンスプログラム実行終了後に完了カウンタ１３２をインクリメントするようになっている。制御周期１３３は、１スキャンの周期を記憶する記憶域であり、一定周期を制御周期として記憶している。
【００２９】
Ｉ／Ｏ装置１４はプログラマブルコントローラ１と外部の制御対象機器を接続するための入出力装置であり、これを介して制御対象機器と入出力データのやりとりを行うようになっている装置である。バス１６は管理プロセッサ１１および専用プロセッサ１５とがプログラマブルコントローラ１内の各要素を接続するバスであり、このバス１６により、アドレス信号、データ信号、制御信号をやりとりする。バス１７は管理プロセッサ１１と管理プロセッサ１１だけが管理する各要素を接続するバスであり、アドレス信号、データ信号、制御信号をやりとりする。
【００３０】
ワークメモリ１８は管理プロセッサ１１の作業領域用のメモリである。モニタ装置１０は、シーケンスプログラムの動作をモニタしたり、ユーザからプログラマブルコントローラ１へ制御指令を行う装置であり、通信インターフェース１９はプログラマブルコントローラ１とモニタ装置１０などを通信媒体を介して接続するためのインターフェース回路である。
【００３１】
次に、本実施の形態のプログラマブルコントローラ１の動作を、図３及び図４を用いて説明する。図３は、実行カウンタ値、完了カウンタ値と専用プロセッサ１５のスキャン動作を対比させたものであり、図４は、管理プロセッサ１１及び専用プロセッサ１５の動作をフローチャートとして表したものである。
【００３２】
まず、プログラマブルコントローラ１の起動により、管理プロセッサ１１は専用プロセッサ１５を起動させる（ステップＳ１１、Ｓ２１）。
【００３３】
管理プロセッサ１１は、一定周期（制御周期）ごとに実行カウンタ１３１をインクリメントする（ステップＳ１２、Ｓ１３、図３（１））。
【００３４】
一方、専用プロセッサ１５は実行カウンタ１３１及び専用カウンタ１３２のカウンタ値を参照し、両値を比較して、実行カウンタ１３１が更新されていれば（実行カウンタ値＝完了カウンタ値＋１）、スキャン処理を開始してよいものと判断して、Ｉ／Ｏ入出力処理を行う（ステップＳ２２〜Ｓ２４）。次に、データメモリ１３に記憶された制御周期１３３の値を差分タイマ値としてタイマ更新処理を行う（ステップＳ２５）。そして、シーケンスプログラムを実行し、シーケンスプログラムの実行が終了すると、完了カウンタ１３２の値をインクリメントする（ステップＳ２６、Ｓ２７）。
【００３５】
これにより、１スキャンの処理が終了するが、再び制御周期が経過すれば、管理プロセッサ１１は、次スキャンを開始し、上述したスキャン処理を繰り返す（図３（２））。
【００３６】
また、管理プロセッサ１１は、Ｉ／Ｏ入出力からシーケンスプログラム実行までの一連のスキャン処理が正常に動作しているかどうかを判断するため、完了カウンタレジスタ１３２を監視している。これは、予め決められた時間、完了カウンタ１３２が更新されなければ、専用プロセッサ１５の動作を異常と判断して、この事象をユーザに通知するものである。
【００３７】
尚、異常事態の検知に関しては、専用プロセッサ１５がスキャン開始時において、実行カウンタレジスタ１３１及び完了カウンタレジスタ１３２の値を比較して、実行カウンタと完了カウンタの値の差が１より大きい場合には、スキャン渋滞が発生したものと判断して、管理プロセッサ１１に通知するようにしても良い（図３（３））。
【００３８】
従って、本実施の形態のプログラマブルコントローラ１によれば、実行カウンタ１３１、完了カウンタ１３２及び制御周期１３３をデータメモリ１３上を設けることにより、管理プロセッサ１１は実行カウンタ１３１の更新という最小限の処理をするだけで、専用プロセッサ１５が一定周期におけるＩ／Ｏ入出力、タイマ更新、シーケンスプログラムの実行を行うことが可能となるので、プログラマブルコントローラ１は高速なスキャン周期を実現することができる。
【００３９】
また、スキャン動作の渋滞などの異常事態も検知して、この事態をユーザに通知することができる。
【００４０】
＜第２の実施の形態＞
図５は、本発明の第２の実施の形態に係るプログラマブルコントローラ２の構成を示している。本実施の形態のプログラマブルコントローラ２は、第１の実施の形態で有していた実行カウンタ１３１、完了カウンタ１３２及び制御周期１３３をデータメモリ１３上から独立させて、これらの機能をカウンタ回路２６として加えたものである。従って、このプログラマブルコントローラ２は、管理プロセッサ２１、プログラムメモリ（第１のメモリ）２２、データメモリ（第２のメモリ）２３、Ｉ／Ｏ装置１４、専用プロセッサ２５、カウンタ回路２６、ワークメモリ１８、通信インタフェース１９、バス１６及び１７、モニタ装置１０を備えている。尚、第１の実施の形態のプログラマブルコントローラ１の構成と同一部分には同一符号を付して説明を省略する。
【００４１】
第１の実施の形態と同様に、管理プロセッサ２１は、プログラマブルコントローラ２の中枢部分であり、プログラマブルコントローラ２全体の管理を行うＣＰＵとなっている。専用プロセッサ２５は、シーケンスプログラム実行用のプロセッサであるが、本発明においては、Ｉ／Ｏ入出力、タイマ更新およびシーケンスプログラム実行を行うＣＰＵとなっている。また、プログラムメモリ（第１メモリ）２２はユーザが作成したシーケンスプログラムを格納するメモリであり、データメモリ（第２メモリ）２３はユーザが使用する変数や専用プロセッサが動作するためのデータを格納するメモリである。
【００４２】
カウンタ回路２６は、図６に示すような構成となっている。制御周期設定レジスタ２６１、基準パルス発生部２６２、基準パルス計数カウンタ２６３及び比較部２６４は、一定周期で実行カウンタレジスタ２６５をインクリメントするためのものである。制御周期設定レジスタ２６１は、第１の実施の形態における制御周期１３３に相当するものであり、管理プロセッサ２１が起動時に一定周期である制御周期値（基準パルス数に換算）を設定する。そして、基準パルス発生部２６２は、基準パルスを発生させるものであり、基準パルス計数カウンタ２６３は、この基準パルスの数を計測するものである。そして、比較部２６４は、制御周期設定レジスタ２６１の値と基準パルス計数カウンタ２６３の値を比較するものであり、一致する場合には、制御周期が経過したものと判断して実行カウンタレジスタ２６５をインクリメントするようになっている。
【００４３】
実行カウンタレジスタ２６５は、第１の実施の形態における実行カウンタ１３１に相当し、シーケンスプログラムの実行回数を記憶する記憶域であり、上述したように制御周期ごとにインクリメントされるようになっている。完了カウンタレジスタ２６６は、第１の実施の形態における完了カウンタ１３２に相当し、シーケンスプログラムの実行完了回数を記憶する記憶域であり、専用プロセッサ２５がシーケンスプログラム実行終了後に完了カウンタレジスタ２６６をインクリメントするようになっている。また、監視部２６７は、実行カウンタレジスタ２６５及び完了カウンタレジスタ２６６のカウンタ値に基づき、専用プロセッサ２５の異常事態を管理プロセッサ２１に通知するものである。
【００４４】
次に、本実施の形態のプログラマブルコントローラ２の動作を、図７及び図８を用いて説明する。図７は、専用プロセッサ２５のスキャン動作を各カウンタ値及び各種信号と対比させたものであり、図８は、管理プロセッサ２１、専用プロセッサ２５及びカウンタ回路２６の動作をフローチャートとして表したものである。
【００４５】
まず、プログラマブルコントローラ２の起動により、まず管理プロセッサ２１は専用プロセッサ２５を起動させる（ステップＳ３１、ステップＳ４１）。
【００４６】
次に、管理プロセッサ２１は、カウンタ回路２６の制御周期設定レジスタ２６１に制御周期（一定周期）を書き込む（ステップＳ３２）。
【００４７】
一方、制御周期が書き込まれたカウンタ回路２６は、基準パルス計数カウンタ２６３により、基準パルス発生部２６２から発生された基準パルスの数を計測する（ステップＳ５１）。そして、比較部２６４が、制御周期設定レジスタ２６１に設定された制御周期設定値と基準パルス計数カウンタ２６３のカウンタ値を比較し、等しい場合には、実行カウンタレジスタ２６５をインクリメントする（ステップＳ５２〜Ｓ５４、図７（１））。これにより、カウンタ回路２６は、基準パルスを利用して制御周期を正確に把握することができる。尚、実行カウンタレジスタ２６５をインクリメントした後は、基準パルス計数カウンタ２６３の値はクリアーされる（ステップＳ５５）。
【００４８】
専用プロセッサ２５は、実行カウンタレジスタ２６５及び専用カウンタレジスタ２６６の値を参照し、両値を比較して、実行カウンタレジスタ２６５が更新されていれば（実行カウンタ値＝完了カウンタ値＋１）、スキャン処理を開始してよいものと判断して、Ｉ／Ｏ入出力処理を行う（ステップＳ４２〜Ｓ４４）。次に、制御周期設定レジスタ２６１に記憶された制御周期の値を差分タイマ値としてタイマ更新処理を行う（ステップＳ４５）。そして、シーケンスプログラムを実行し、シーケンスプログラムの実行が終了すると、完了カウンタレジスタ２６６のカウンタ値をインクリメントする（ステップＳ４６、Ｓ４７）。
【００４９】
そして、専用プロセッサ２６は、上述したスキャン処理を一定周期で繰り返す（図７（２））。
【００５０】
また、監視部２６７は、実行カウンタレジスタ２６５及び完了カウンタレジスタ２６６を監視している。具体的には、実行カウンタレジスタ２６５の値が更新されてから、完了カウンタレジスタ２６６の値が更新されるまでの間に、再度実行カウンタレジスタ２６５の更新が発生したか否かを監視する。これは、完了カウンタ２６６の更新前に実行カウンタ２６５が再度更新されたならば、スキャン渋滞が発生していると判断して、スキャン渋滞が発生していることを割り込み信号として管理プロセッサ２１に通知し、管理プロセッサ２１は、この事象をユーザに通知するものである（図７（３））。
【００５１】
従って、本実施の形態のプログラマブルコントローラ２によれば、カウンタ回路２６を設けることにより、管理プロセッサ２１はカウンタ回路２６内の制御周期を設定するだけで、専用プロセッサ２５が一定周期でのＩ／Ｏ入出力、タイマ更新、シーケンスプログラムの実行を行うことが可能となるので、プログラマブルコントローラ２は高速なスキャン周期を実現することができる。
【００５２】
また、スキャン動作の渋滞などの異常事態も検知し、この事態をユーザに通知することができる。
【００５３】
＜第３の実施の形態＞
図９は、本発明の第３の実施の形態に係るプログラマブルコントローラ３の構成を示している。本実施の形態のプログラマブルコントローラ３は、タイマ回路３６を設けることにより、フローティング周期のスキャン処理を行うものである。従って、このプログラマブルコントローラ３は、管理プロセッサ３１、プログラムメモリ（第１のメモリ）３２、データメモリ（第２のメモリ）３３、Ｉ／Ｏ装置１４、専用プロセッサ３５、タイマ回路３６、ワークメモリ１８、通信インタフェース１９、バス１７及び１８、及びモニタ装置１０を備えている。尚、第１の実施の形態のプログラマブルコントローラ１の構成と同一部分には同一符号を付して説明を省略する。
【００５４】
第１の実施の形態と同様に、管理プロセッサ３１は、プログラマブルコントローラ３の中枢部分であり、プログラマブルコントローラ全体の管理を行うＣＰＵとなっている。専用プロセッサ３５は、シーケンスプログラム実行用のプロセッサであるが、本発明においては、Ｉ／Ｏ入出力、タイマ更新およびシーケンスプログラム実行を行うＣＰＵとなっている。また、プログラムメモリ（第１メモリ）３２はユーザが作成したシーケンスプログラムを格納するメモリであり、データメモリ（第２メモリ）３３はユーザが使用する変数や専用プロセッサが動作するためのデータを格納するメモリである。ここで、データメモリ（第２メモリ）３３は図１０に示すように、完了カウンタ３３１及び差分基準パルス計数カウンタ３３２が設けられており、これにより、フローティング周期でのスキャン処理及び異常時の検出が可能となっている。
【００５５】
完了カウンタ３３１は、シーケンスプログラムの実行完了回数を記憶する記憶域であり、専用プロセッサ３５がシーケンスプログラム実行終了後に完了カウンタ３３１をインクリメントするようになっている。差分基準パルス計数カウンタ３３２は、スキャン処理のＩ／Ｏ入出力後の基準パルス計数カウンタ３６１のカウンタ値を記憶する記憶域である。
【００５６】
タイマ回路３６は、基準パルスを発生させる基準パルス発生部３６１と、この基準パルスの数を計測する基準パルス計数カウンタ３６３で構成されており、このタイマ回路３６により、後述するように専用プロセッサ３５はフローティング周期を把握できるようになっている。
【００５７】
次に、本実施の形態のプログラマブルコントローラ３の動作を、図１２及び図１３を用いて説明する。図１２は、専用プロセッサ３５のスキャン動作を各カウンタ値及び各種信号と対比させたものであり、図１３は、管理プロセッサ３１、専用プロセッサ３５及びタイマ回路３６の動作をフローチャートとして表したものである。
【００５８】
まず、プログラマブルコントローラ３の起動により、まず管理プロセッサ３１は専用プロセッサ３５を起動させる（ステップＳ６１、ステップＳ７１）。また、プログラマブルコントローラ３の起動により、タイマ回路３６の基準パルス計数カウンタ３６２は、基準パルスの数を計測する（ステップＳ８１）。
【００５９】
これにより、専用プロセッサ３５は、Ｉ／Ｏ入出力から始まる一連のスキャン処理を開始する（ステップＳ７２）。Ｉ／Ｏ入出力後、基準パルス計数カウンタ３６２のカウンタ値を参照して、このときのカウンタ値を差分基準パルス計数カウンタ３３２に書き込む（ステップＳ７３、Ｓ７４）。そして、更新前と更新後の差分基準パルス計数カウンタ３３２のカウンタ値の差を差分タイマ値として、タイマ更新処理を行う（ステップＳ７５）。これにより、フローティング周期における制御周期が、シーケンスプログラムの実行に取り込むことができる。次に、シーケンスプログラムを実行し、シーケンスプログラムの実行が終了すると、完了カウンタ３３１の値をインクリメントする（ステップＳ７６、Ｓ７７）。
【００６０】
以上で１スキャンの処理が終了するが、フローティング周期でのスキャン処理においては、スキャン処理の終了すると次スキャンが即座に開始される（図１２（１）、（２））。
【００６１】
また、管理プロセッサ３１は、Ｉ／Ｏ入出力からシーケンスプログラム実行までの一連のスキャン処理が正常に動作しているかどうかを判断するため、完了カウンタ３３１を監視している。これは、予め定められた時間、完了カウンタ３３１が更新されなければ、専用プロセッサ３５の動作を異常と判断して、この事象をユーザに通知するものである。
【００６２】
従って、本実施の形態のプログラマブルコントローラ３によれば、タイマ回路３６を設けることにより、管理プロセッサ３１は専用プロセッサ３５の起動をするのみで、専用プロセッサ３５がフローティング周期でのＩ／Ｏ入出力、タイマ更新、シーケンスプログラムの実行を行うことが可能となるので、プログラマブルコントローラ３は高速なスキャン周期を実現することができる。
【００６３】
また、スキャン動作の渋滞などの異常事態も検知し、この事態をユーザに通知することができる。
【００６４】
＜第４の実施の形態＞
図１４は、本発明の第４の実施の形態に係るプログラマブルコントローラ４の構成を示している。本実施の形態のプログラマブルコントローラ４は、カウンタ回路４６とタイマ回路４７を設けることにより、一定周期の場合もフローティング周期の場合もスキャン処理が可能なプログラマブルコントローラである。従って、このプログラマブルコントローラ４は、管理プロセッサ４１、プログラムメモリ（第１のメモリ）４２、データメモリ（第２のメモリ）４３、Ｉ／Ｏ装置１４、専用プロセッサ４５、カウンタ回路４６、タイマ回路４７、ワークメモリ１８、通信インタフェース１９、バス１７及び１８、及びモニタ装置１０を備えている。尚、第１の実施の形態のプログラマブルコントローラ１の構成と同一部分には同一符号を付して説明を省略する。また、カウンタ回路４６、タイマ回路４７についても、前述したカウンタ回路２６、タイマ回路３６と同様であるため、説明を省略する。
【００６５】
第１の実施の形態と同様に、管理プロセッサ４１は、プログラマブルコントローラ４の中枢部分であり、プログラマブルコントローラ４全体の管理を行うＣＰＵとなっている。専用プロセッサ４５は、シーケンスプログラム実行用のプロセッサであるが、本発明においては、Ｉ／Ｏ入出力、タイマ更新およびシーケンスプログラム実行を行うＣＰＵとなっている。また、プログラムメモリ（第１メモリ）４２はユーザが作成したシーケンスプログラムを格納するメモリであり、データメモリ（第２メモリ）４３はユーザが使用する変数や専用プロセッサが動作するためのデータを格納するメモリである。ここで、データメモリ（第２メモリ）４３は、完了カウンタ４３１及び差分基準パルス計数カウンタ４３２が設けられているが（図示せず）、これについては、第３の実施の形態の完了カウンタ３３１及び差分基準パルス計数カウンタ３３２と同様であるため、説明を省略する。
【００６６】
次に、本実施の形態のプログラマブルコントローラ４の動作を、カウンタ回路４６及びタイマ回路４７と、管理プロセッサ４１及び専用プロセッサ４５との信号のやりとりを表す図１５を用いて説明する。
【００６７】
まず、プログラマブルコントローラ４の起動により、管理プロセッサ４１は専用プロセッサ４５を起動させるが、このときに管理プロセッサ４１は制御条件（一定周期でスキャンを行うか、フローティング周期でスキャンを行うかを指定する）を専用プロセッサ４５に与える。専用プロセッサ４５は、この制御条件により、制御する動作モードを判定し、判定された動作モードにおけるスキャン処理を行う。ここで、本実施の形態における一定周期のスキャン処理は、第２の実施の形態におけるスキャン処理と同様であり、カウンタ回路４６から制御周期設定値、実行カウンタを参照して、スキャン処理を行い、スキャン処理終了後、完了カウンタを更新する。また、フローティング周期のスキャン処理は、第３の実施の形態におけるスキャン処理と同様であり、タイマ回路４７から基準パルス計数カウンタを参照して、スキャン処理を行う。
【００６８】
また、異常動作の検知についても、第２の実施の形態（一定周期の場合）、及び第３の実施の形態（フローティング周期の場合）の検知方法と同じであるため、説明は省略する。但し、ゲート４８は一定周期の動作を指定した場合にのみ有効となるので、この場合にのみ異常動作検知の割り込み信号は管理プロセッサ４１に通知される。
【００６９】
従って、本実施の形態のプログラマブルコントローラ４によれば、カウンタ回路４６及びタイマ回路４７を設け、制御条件を与えると、専用プロセッサ４５が一定周期もしくはフローティング周期でのＩ／Ｏ入出力、タイマ更新、シーケンスプログラムの実行を行うことが可能となるので、プログラマブルコントローラ４は高速なスキャン周期を実現することができる。
【００７０】
また、一定周期においてもフローティング周期においても、スキャン動作の渋滞などの異常事態も検知し、この事態をユーザに通知することができる。
【００７１】
【発明の効果】
以上説明したように、本発明のプログラマブルコントローラによれば、一定周期の場合において、専用プロセッサがＩ／Ｏ入出力、タイマ更新及びシーケンスプログラム実行からなるスキャン処理を実行し、管理プロセッサの負荷を軽減できるので、高速なスキャン周期を実現とすることができる。
【００７２】
また、フローティング周期の場合においても、専用プロセッサがＩ／Ｏ入出力、タイマ更新及びシーケンスプログラム実行からなるスキャン処理を実行し、管理プロセッサの負荷を軽減できるので、高速なスキャン周期を実現とすることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図２】本発明の第１の実施の形態に係るプログラマブルコントローラのデータメモリの概略構成図である。
【図３】本発明の第１の実施の形態に係るプログラマブルコントローラの動作を説明する図である。
【図４】本発明の第１の実施の形態に係るプログラマブルコントローラの管理プロセッサ及び専用プロセッサの動作を説明するフローチャートである。
【図５】本発明の第２の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図６】本発明の第２の実施の形態に係るプログラマブルコントローラのカウンタ回路の概略構成図である。
【図７】本発明の第２の実施の形態に係るプログラマブルコントローラの動作を説明する図である。
【図８】本発明の第２の実施の形態に係るプログラマブルコントローラの管理プロセッサ、専用プロセッサ、及びカウンタ回路の動作を説明するフローチャートである。
【図９】本発明の第３の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図１０】本発明の第３の実施の形態に係るプログラマブルコントローラのデータメモリの概略構成図である。
【図１１】本発明の第３の実施の形態に係るプログラマブルコントローラのタイマ回路の概略構成図である。
【図１２】本発明の第３の実施の形態に係るプログラマブルコントローラの動作を説明する図である。
【図１３】本発明の第３の実施の形態に係るプログラマブルコントローラの管理プロセッサ、専用プロセッサ、及びタイマ回路の動作を説明するフローチャートである。
【図１４】本発明の第４の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図１５】本発明の第４の実施の形態に係るプログラマブルコントローラのカウンタ回路、タイマ回路を説明する図である。
【図１６】従来のプログラマブルコントローラの１スキャンを説明する図である。
【符号の説明】
１，２，３，４　プログラマブルコントローラ
１０　モニタ装置
１１，２１，３１，４１　管理プロセッサ
１２，２２，３２，４２　プログラムメモリ（第１メモリ）
１３，２３，３３，４３　データメモリ（第２メモリ）
１４　Ｉ／Ｏ装置
１５，２５，３５，４５　専用プロセッサ
１６，１７　バス
１８　ワークメモリ
１９　通信インターフェース
２６，４６　カウンタ回路
３６，４７　タイマ回路
１３１　実行カウンタ
１３２，３３１　完了カウンタ
１３３　制御周期
２６１　制御周期設定レジスタ
２６２，３６１　基準パルス発生部
２６３，３６２　基準パルス計数カウンタ
２６４　比較部
２６５　実行カウンタレジスタ
２６６　完了カウンタレジスタ
２６７　監視部
３３２　差分基準パルス計数カウンタ
３６１　差分基準パルス計数カウンタ
【図１】
2004038555.tif 000003
【図２】
2004038555.tif 000004
【図３】
2004038555.tif 000005
【図４】
2004038555.tif 000006
【図５】
2004038555.tif 000007
【図６】
2004038555.tif 000008
【図７】
2004038555.tif 000009
【図８】
2004038555.tif 000010
【図９】
2004038555.tif 000011
【図１０】
2004038555.tif 000012
【図１１】
2004038555.tif 000013
【図１２】
2004038555.tif 000014
【図１３】
2004038555.tif 000015
【図１４】
2004038555.tif 000016
【図１５】
2004038555.tif 000017
【図１６】
2004038555.tif 000018