(57)【特許請求の範囲】
【請求項１】
単一のＣＰＵでＩ／Ｏに対する制御タスクと周辺装置との通信タスクを実行するように構成された制御演算装置において、
前記周辺装置との間の通信に伴う単位時間当たりの受信フレーム数を監視する受信制御タスクと、
前記制御タスクの中断回数のカウント結果に基づき前記受信制御タスクに動作を要求する制御タスク管理部、
を設けたことを特徴とする制御演算装置。
【請求項２】
前記受信制御タスクは、受信フレーム数をカウントする受信フレームカウンタと、受信フレーム数の閾値を設定管理する閾値管理部と、前記受信フレーム数が前記閾値管理部で設定された閾値を超えた場合には前記受信フレームを所定の時間遮断するように制御する停止時間制御部、
とで構成されていることを特徴とする請求項１に記載の制御演算装置。
【請求項３】
前記受信フレームカウンタは、前記受信フレームの種類に応じて設けられていることを特徴とする請求項２に記載の制御演算装置。
【請求項４】
前記制御タスク管理部は、前記制御タスクの中断回数をカウントする中断カウンタと、前記中断回数の閾値を設定管理する閾値管理部と、前記制御タスクの演算処理時間を監視するウォッチドッグタイマ、
とで構成されていることを特徴とする請求項１から請求項３のいずれかに記載の制御演算装置。
【請求項５】
前記制御演算装置はプログラムコントローラであることを特徴とする請求項１から請求項４のいずれかに記載の制御演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御演算装置に関し、詳しくは、制御演算装置の通信処理に伴う過負荷に対する保護に関するものであり、特に、単一のＣＰＵで制御演算と周辺装置の制御を行うように構成された制御演算装置における通信処理に伴う負荷を軽減する技術に関するものである。
【背景技術】
【０００２】
プラント制御の分野では、制御演算装置として、プログラムコントローラが広く用いられている。
【０００３】
図６は、従来から用いられているプログラムコントローラの一例を示す構成説明図である。図６において、プログラムコントローラ１０は、単一のＣＰＵ１１、複数の通信デバイス１２１〜１２ｎ、メモリ１３、操作部１４、表示部１５などで構成されている。
【０００４】
ＣＰＵ１１上で実行される全タスクは、ＯＳ１１ａに設けられているスケジューラ１１ｂによってスケジューリングされる。
【０００５】
スケジューラ１１ｂは、通信タスク１１ｃ、制御タスク管理部１１ｄ、制御タスク１１ｅ、ＨＭＩタスク１１ｆの各部に、あらかじめスケジューリングされたタイミングに基づき起動命令を出力する。
【０００６】
制御タスク管理部１１ｄは、制御タスク定義、制御タスクの実行状態、Ｉ／Ｏ定義、制御タスクの制御演算処理時間を監視するＷＤＴ（ウォッチドッグタイマ）１１ｈなどを管理する。
【０００７】
制御タスク定義変更やＩ／Ｏ定義変更などの要求およびそれらの要求への応答は通信タスク１１ｃを介して行われる。
【０００８】
制御タスク１１ｅは、図示しない制御対象に対する必要な制御処理を、Ｉ／Ｏ２０を介して一定周期（たとえば１００ｍｓ〜１ｓ）で実行する。
【０００９】
制御タスク１１ｅの実行状態には、制御演算処理実行中であるか、アイドル中であるかの状態がある。制御タスク１１ｅは一定の周期で制御演算を繰り返し実行する。制御タスク管理部１１ｄは、制御タスク１１ｅの演算開始時に制御演算処理実行中を意味するフラグを記録し、演算終了時に同フラグを解除することにより、制御タスクの実行状態を追跡する。
【００１０】
制御タスク管理部１１ｄは、制御タスクごとの演算処理時間について所定の制限時間を設定している。
【００１１】
ＷＤＴ１１ｈは、制御タスクの実行状態を示すフラグを参照することで、制御タスクの演算処理時間を計測する。ＷＤＴ１１ｈはそれぞれの制御タスクの演算処理時間がこの制限時間を超えたかどうかを監視し、超えていればＷＤＴエラーを制御タスク管理部１１ｄに報告する。
【００１２】
制御演算処理の遅延によりＷＤＴエラーが発生すると、制御タスク管理部１１ｄはエラーログを出力する。
【００１３】
ＨＭＩタスク１１ｆは、図示しない上位ＨＭＩからの制御データの監視・操作、ＷＤＴエラーなどのログの閲覧、システムメンテナンスなどのサービスを、通信タスク１１ｃを介してユーザーに提供する。
【００１４】
外部デバイスとの通信は、通信デバイス１２１〜１２ｎを介して行われる。各通信デバイスは通信フレーム受信時に割込みを発生させ、ＣＰＵ１１は割込みサービスルーチンＩＳＲ１１ｇを呼び出す。ＩＳＲ１１ｇは受信フレームを通信タスク１１ｃへ渡し、通信タスク１１ｃは通信プロトコルを処理する。
【００１５】
スケジューラ１１ｂは、制御タスク１１ｅの実行中に通信フレームを受信すると制御タスク１１ｅを中断し、通信タスク１１ｃに制御を移す。通信タスク１１ｃが終了すると制御タスク１１ｅまたはＨＭＩタスク１１ｆなどのより優先度の低いタスクに制御を移す。
【００１６】
図７は、図６に示した従来のプログラムコントローラの動作説明図である。制御タスク１１ｅは一定の制御周期Ｔｃで動作している。時刻ｔ１において通信タスクが割り込み、制御タスクが中断される。その後時刻ｔ２において通信タスクが終了し、制御タスクへ制御が戻る。
【００１７】
特許文献１には、マルチタスクオペレーティングシステムにおいて、各タスクが円滑に起動して動作するとともに、通信回数や受信データ量が多くなってもエラーにならないようにソフトウェアを制御するＦＡコントローラの技術が記載されている。
【００１８】
特許文献２には、制御の実行負荷に対応した伝送負荷を実現し、効率の良い伝送を行うプログラムコントローラ及びプログラミングツール及び制御システム並びに制御システムのデータ伝送方法の技術が記載されている。
【００１９】
特許文献３には、ブロードキャストストームによるシステムダウンを低減しつつネットワーク機能を適切に維持し、ネットワークの信頼性を高めるネットワーク中継装置、ネットワーク中継方法およびその方法をコンピュータに実行させるプログラムの技術が記載されている。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開平０５−２１６６９４号公報
【特許文献２】特開平１０−０８３２０５号公報
【特許文献３】特開２００３−１２４９６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかし、図６に示す従来のプログラムコントローラ１０は、制御機能、ＨＭＩ機能および通信機能を単一のＣＰＵ１１で実行するように構成されている。そのため、通信デバイス１２１〜１２ｎがフレームを受信するたびに制御タスクが中断されることになり、通信デバイス１２１〜１２ｎが異常な量のフレームを受信すると制御タスクの中断時間が延びてしまい、制御タスクが制御周期Ｔｃを超えて動作してしまう。
【００２２】
図８は図６に示す従来のプログラムコントローラ１０の他の動作説明図であり、（ａ）は制御タスクの実行状態を示し、（ｂ）は通信タスクの実行状態を示している。図８において、時刻ｔ１で通信過負荷が発生すると、次の制御周期Ｔｃの開始時刻ｔ２までに制御演算が完了しないので次周期の制御演算は延期され、次々周期まで待たされてしまう。なお、図８では、ＷＤＴの設定時間を制御周期Ｔｃに合わせた例を示している。
【００２３】
ＨＭＩタスクなどの優先度の低いタスクは制御や通信の空き時間に行われるが、通信過負荷が発生する状況下では動作が遅延または阻害され、ユーザーに対するサービスが実行できない場合がある。
【００２４】
図６に示す従来の回路構成によれば、制御演算処理時間がＷＤＴ設定時間を超えた場合にはＷＤＴエラー発生時にログを出力することはできるが、ＷＤＴエラー自体の発生を未然に防ぐことはできない。
【００２５】
本発明は、このような課題を解決するものであり、その目的は、通信処理の過負荷が発生しても遅延を生じることなく制御演算処理を実行する制御演算装置を実現することにある。なお、本発明における通信は、たとえばEthernet（登録商標）におけるブロードキャストストームの例を想定している。
【課題を解決するための手段】
【００２６】
このような課題を達成するために、本発明は、
単一のＣＰＵでＩ／Ｏに対する制御タスクと周辺装置との通信タスクを実行するように構成された制御演算装置において、
前記周辺装置との間の通信に伴う単位時間当たりの受信フレーム数を監視する受信制御タスクと、
前記制御タスクの中断回数のカウント結果に基づき前記受信制御タスクに動作を要求する制御タスク管理部、
を設けたことを特徴とする。
前記受信制御タスクは、受信フレーム数をカウントする受信フレームカウンタと、受信フレーム数の閾値を設定管理する閾値管理部と、前記受信フレーム数が前記閾値管理部で設定された閾値を超えた場合には前記受信フレームを所定の時間遮断するように制御する停止時間制御部、
とで構成されていてもよい。
前記受信フレームカウンタは、前記受信フレームの種類に応じて設けられていてもよい。
前記制御タスク管理部は、前記制御タスクの中断回数をカウントする中断カウンタと、前記中断回数の閾値を設定管理する閾値管理部と、前記制御タスクの演算処理時間を監視するウォッチドッグタイマ、
とで構成されていてもよい。
前記制御演算装置はプログラムコントローラであってもよい。
【発明の効果】
【００３２】
これら構成によれば、通信処理の過負荷が発生しても遅延を生じることなく制御演算処理を実行する制御演算装置を実現できる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施例を示す構成説明図である。
【図２】図１の動作説明図である。
【図３】本発明の他の実施例を示す構成説明図である。
【図４】図３の動作説明図である。
【図５】図３の動作の流れを説明するフローチャートである。
【図６】従来から用いられているプログラムコントローラの一例を示す構成説明図である。
【図７】従来のプログラムコントローラの動作説明図である。
【図８】従来のプログラムコントローラの他の動作説明図である。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。図１は本発明の一実施例を示す構成説明図であり、図６と共通する部分には同一の符号を付けている。図１の構成では、図６の構成に新たな受信制御タスク１１ｉを設けている。
【００３５】
受信制御タスク１１ｉは、受信フレームカウンタ１１ｊと、閾値管理部１１ｋと、カウント値比較部１１lと、停止時間制御部１１ｍとで構成されている。
【００３６】
受信制御タスク１１ｉは、単位時間当たりの受信フレーム数を、複数の通信デバイス１２１〜１２ｎそれぞれについて監視する。通信タスク１１ｃは受信割込みを受けてＩＳＲ１１ｇから起動された時に、受信フレームの種類に応じた受信フレームカウンタ１１ｊのカウント値を、受信したフレーム分だけ増加させる。
【００３７】
受信制御タスク１１ｉは所定の周期で起動され、受信フレームカウンタ１１ｊのカウント値を前回起動時刻から今回起動時刻との差で除算することで、単位時間あたりの受信フレーム数を受信フレームの種類ごとに計算する。
【００３８】
カウント値比較部１１ｌはこの単位時間あたり受信フレーム数を閾値管理部１１ｋにより設定された所定の閾値と比較し、設定された所定の閾値よりも大きければ異常な通信トラフィックが発生していると判定する。
【００３９】
受信制御タスク１１ｉは異常トラフィックを検出すると、直ちに受信した通信デバイスに対して急増した種類のフレームを遮断するように指示する。遮断指示は、停止時間制御部１１ｍにより設定される所定の停止時間の間継続する。遮断開始時刻から設定された所定の停止時間が経過した後、受信制御タスク１１ｉは受信遮断を指示した通信デバイスに対して受信再開を指示する。
【００４０】
なお、これらフレームの受信遮断や受信再開の指示は、たとえば閾値管理部１１ｋや停止時間制御部１１ｍが行うようにする。
【００４１】
また、これらフレームの受信遮断や受信再開の指示に連動してオペレータが識別可能な状態で選択的に駆動されるブザーやランプなどのアラーム手段を操作部１４や表示部１５に設けることにより、オペレータは通信トラフィックの現況を的確に把握できる。
【００４２】
図２は図１の動作説明図であり、（ａ）は制御タスクの実行状態を示し、（ｂ）は通信タスクの実行状態を示し、（ｃ）は単位時間（秒）当たりの受信フレーム数／秒を示し、（ｄ）は受信制御タスクの動作状態を示している。
【００４３】
受信制御タスク１１ｉは時刻ｔ１において受信フレーム数の診断を行うが、異常がないため何もしない。受信制御タスク１１ｉは所定の診断周期Ｔｍ経過後の時刻ｔ２において再び起動されるが、ここでも受信フレーム数には異常がないため何もしない。
【００４４】
その後、受信回数が急増すると、それに伴って通信タスク１１ｃが頻回に起動され、制御タスク１１ｅの実行に割り込む。この通信タスク１１ｃの割込みにより制御タスク１１ｅは遅延する。
【００４５】
時刻ｔ３において再び起動された受信制御タスク１１ｉは受信フレーム数の異常を確認し、その受信フレームの種類に対応した通信デバイスに受信停止を指示する。その時点で受信割込みは抑制されて通信タスク１１ｃの動作は止まり、制御タスク１１ｅは通常通り制御周期内に所定の演算処理を完了することができる。
【００４６】
ところで、図１の構成では、受信制御タスク１１ｉの診断周期間Ｔｍで後続の制御周期Ｔｃまで連続的に制御タスクを実行する制御タスク１１ｅの遅延は回避できないという問題がある。
【００４７】
すなわち、図２において、（ａ）に示す制御タスク１１ｅの実行状態に着目すると、時刻ｔ２からｔ３の間の診断周期間Ｔｍで後続の制御周期Ｔｃまで連続的に制御タスクを実行する遅延が１回発生し、（ｂ）の通信タスクの実行状態に着目すると、診断周期間Ｔｍが切り替わる時刻ｔ３まで通信処理実行の状態が連続している。
【００４８】
この問題は、図１の構成を図３に示すように改善することで解決できる。図３は本発明の他の実施例を示す構成説明図であって、図１と共通する部分には同一の符号を付けている。図３の構成では、図１の制御タスク管理部１１ｄに、中断カウンタ１１ｎと、中断カウンタ１１ｎのカウント値に対する所定の閾値を設定する閾値管理部１１ｏと、カウント値比較部１１ｐが追加されている。
【００４９】
図４は図３の動作説明図であり、（ａ）は制御タスクの実行状態を示し、（ｂ）は通信タスクの実行状態を示し、（ｃ）は単位時間（秒）当たりの受信フレーム数／秒を示し、（ｄ）は制御中断回数を示し、（ｅ）は制御タスク管理部の動作状態を示し、（ｆ）は受信制御タスクの動作状態を示している。
【００５０】
通信タスク１１ｃの割込みによって制御タスク１１ｅの動作実行は中断されるが、この時に通信タスク１１ｃが制御タスク管理部１１ｄの中断カウンタ１１ｎのカウント値を増加させる。
【００５１】
カウント値比較部１１ｐは中断カウンタ１１ｎのカウント値と閾値管理部１１ｏで設定された所定の閾値とを比較し、比較結果を通信タスク１１ｃに出力する。通信タスク１１ｃは、中断カウンタ１１ｎのカウント値が閾値管理部１１ｏで設定された所定の閾値を超えた時点で受信制御タスク１１ｉに臨時診断を要求する。
【００５２】
図４において、時刻ｔ１から時刻ｔ２までの先行する診断周期Ｔｍにおける動作は図２と同一である。時刻ｔ２から始まる次の診断周期Ｔｍにおいて受信フレーム数が急増し、それに伴って制御中断回数も急増する。通信タスク１１ｃは受信割込み処理中の時刻ｔ３に制御中断回数の急増を確認すると、受信制御タスク１１ｉに臨時診断を要求する。
【００５３】
時刻ｔ４で臨時診断要求を受けた受信制御タスク１１ｉは臨時診断を実行して受信フレーム数の急増を確認し、これを異常トラフィックと判定して直ちに受信を停止する。
【００５４】
これにより、図３の構成によれば、時刻ｔ２から始まる次の診断周期Ｔｍの開始時刻ｔ２から時間Ｔｉ（Ｔｍ＞Ｔｉ）が経過した時刻ｔ４において異常トラフィックを検出してフレームの受信を遮断できるので、図１に示す構成の動作と比べると、診断周期間Ｔｍにおける制御タスク１１ｅの遅延発生を回避できる。
【００５５】
図５は、図３の動作の流れを説明するフローチャートである。通信タスク１１ｃは受信タスクに受信割込みを送信して受信処理を開始させ（ステップＳ１）、受信タスクは制御タスク管理部１１ｄを呼び出して制御タスクの監視を開始させる（ステップＳ２）。
【００５６】
制御タスク管理部１１ｄの中断カウンタ１１ｎは動作中の制御タスクをカウントする（ステップＳ３）。制御タスク管理部１１ｄは実行中の制御タスクの有無を監視し（ステップＳ４）、制御タスクが１つでも動作中ならば制御中断回数のカウント値を１回分増加させ（ステップＳ５）、制御タスクが１つも動いていなければ制御中断回数のカウント値を変更せずに監視動作を終了する（ステップＳ６）。
【００５７】
続いて、通信タスク１１ｃは中断カウンタ１１ｎの制御中断回数のカウント値を閾値管理部１１ｏにより設定された所定の閾値と比較し、制御中断回数のカウント値について異常の有無を確認する（ステップＳ７）。中断カウンタ１１ｎの制御中断回数のカウント値が所定の閾値よりも大きくなければ異常なしと判断して受信処理を行い（ステップＳ８）、一連の処理を終了する。
【００５８】
これに対し、中断カウンタ１１ｎの制御中断回数のカウント値が所定の閾値よりも大きければ異常ありと判断して受信制御タスク１１ｉを起動し、臨時診断を開始する（ステップＳ９）。
【００５９】
受信制御タスク１１ｉは、単位時間当たりの受信フレーム数を所定の閾値と比較することにより、受信フレーム数の異常の有無を確認する（ステップＳ１０）。単位時間当たりの受信フレーム数が所定の閾値より大きければ受信フレーム数に異常があると判断して受信停止処理を行い（ステップＳ１１）、単位時間当たりの受信フレーム数が所定の閾値よりも小さければ何もしない。
【００６０】
いずれの場合も受信制御タスク１１ｉは受信フレームカウンタ１１ｊの受信フレーム数のカウント値と中断カウンタ１１ｎの制御中断回数のカウント値を０にクリアして初期化した後（ステップＳ１２）、ステップＳ８の受信処理に遷移して一連の処理を終了する。
【００６１】
なお、上記実施例では制御演算装置がプログラムコントローラの場合について説明したが、本発明は以下の各条件を満たしていれば汎用のコンピュータについても適用できる。
ａ）制御演算と通信デバイスからの割込み処理を単一のＣＰＵで処理すること。
ｂ）制御演算処理中であることが判定できること。
ｃ）通信デバイスからの割込みを遮断および再開する手段を備えていること。
ｄ）ＯＳがプリエンプティブ（先取的）なスケジューリングを行うこと。
【００６２】
また、通信速度を動的に調整して通信負荷を抑制することにより、本発明と同様の効果が期待できる。
【００６３】
また、所定の周期で間欠的に異常通信トラフィック監視をするのではなく、ＷＤＴエラー発生時にのみ異常通信トラフィック監視を行うようにすることで、効率的な異常検知が行える。
【００６４】
以上説明したように、本発明によれば、通信処理の過負荷が発生しても遅延を生じることなく制御演算処理を実行することができ、プログラムコントローラなどの単一のＣＰＵでＩ／Ｏに対する制御タスクと周辺装置との通信タスクを実行するように構成された制御演算装置として好適である。
【符号の説明】
【００６５】
１０  プログラムコントローラ
１１  ＣＰＵ
１１ａ  ＯＳ
１１ｂ  スケジューラ
１１ｃ  通信タスク
１１ｄ  制御タスク管理部
１１ｅ  制御タスク
１１ｆ  ＨＭＩタスク
１１ｇ  ＩＳＲ（割込みサービスルーチン）
１１ｈ  ＷＤＴ（ウォッチドッグタイマ）
１１ｉ  受信制御タスク
１１ｊ  受信フレームカウンタ
１１ｋ  閾値管理部
１１l  カウント値比較部
１１ｍ  停止時間制御部
１１ｎ  中断カウンタ
１１ｏ  閾値管理部
１１ｐ  カウント値比較部
１２１〜１２ｎ  通信デバイス
１３  メモリ
１４  操作部
１５  表示部
２０  Ｉ／Ｏ
【図１】
0006731179.tif 000002
【図２】
0006731179.tif 000003
【図３】
0006731179.tif 000004
【図４】
0006731179.tif 000005
【図５】
0006731179.tif 000006
【図６】
0006731179.tif 000007
【図７】
0006731179.tif 000008
【図８】
0006731179.tif 000009