(57)【要約】      （修正有）【課題】アプリケーションスケジューラで管理されない処理のうち、データ処理系のようにメッセージ応答性能に影響ある処理を優先したい場合がある。また同じ環境で、ユーザアプリケーションの実行性能を優先したい場合がある。両者の優先度を簡易に調整するとともに、ユーザアプリケーションの停止／起動に応じてデータ処理系に資源を優先的に注力する装置を提供する。【解決手段】「アプリケーション実行時間」と「データ処理系に代表されるユーザが管理を必要とする処理系の実行時間」の両者を簡易に管理する上位構造として帯域管理層を提供し、該帯域管理層におけるパラメータの増減により、１実行サイクルにおける処理時間を配分／制御する。また、ユーザアプリケーションが停止時には該パラメータを一時退避させた上でデータ処理系に資源を全て割り振り、ユーザアプリケーションが起動時には該パラメータを再取得することにより停止前の状態を回復する。【選択図】図１
2007257106.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムオペレーティングシステムで動作するアプリケーションスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラにおいて、
システムの１実行サイクル時間に占めるアプリケーションスケジューラの実行時間の割合とデータ処理の実行時間の割合を管理する帯域管理層を設け、
前記リアルタイムオペレーティングシステムは、該帯域管理層を１つの処理系として管理し、ユーザーアプリケーションの停止時には、前記実行時間の割合を記憶した上で、前記アプリケーションスケジューラの実行時間の割合を０にし、ユーザーアプリケーションの起動時には、記憶した前記実行時間の割合を呼び出すことにより停止前の状態に戻すこと、
を特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザアプリケーション、通信、データ処理、その他の処理実行をスケジューリングするスケジューラを実装したプログラマブルコントローラに関する。
【背景技術】
【０００２】
一般にプログラマブルコントローラなどの組込み機器では、ユーザプログラム、通信、システムを維持するための基本システム処理など、様々な種類の処理が並行的、すなわちマルチタスクで処理されることが多い。組込み機器において使用されるリアルタイムオペレーティングシステム（以下、リアルタイムＯＳ）も、μＩＴＲＯＮなどのようにマルチタスクプロセッシングをサポートしており、１つの処理の遅延によって他の処理が大幅に遅れないよう優先度や内部的に規定したタイミングなどによりスケジューリングして処理を走らせている。
【０００３】
図５は、従来のプログラマブルコントローラのソフトウェア構造概略を示す図である。リアルタイムＯＳ２０上に、プログラマブルコントローラのシステム管理、データ通信処理、故障データ収集などを行う基本システム１４の処理タスクと、ユーザアプリケーションプログラム１０を実行管理するアプリケーションスケジューラ１６とがあり、これらがハードウェア２２上で処理を順次行っている。
【０００４】
図６は、従来システムにおけるタスクスケジューリングの一例を示したものである。縦軸にタスクの優先度、横軸に経過時間を示しており、1実行サイクル時間をアプリケーションスケジューラ、基本システム／通信などの許容時間に割り当てられる。優先度の最上位に、ＯＳの割込み処理／高位のハードウェア割込みなどがあり、そのすぐ下位の優先度にアプリケーションスケジューリングされたユーザアプリケーションのタスクがある。この優先度の高い順である、タスク１、タスク２、タスク３の順に実行される。これらの処理が終わると、基本システム、通信などを行う帯域が割付けられ、優先度の高い順である、タスクＡ、タスクＢ、タスクＣの順に実行される。1実行サイクル時間経過すると、次のサイクルが実行される。
【０００５】
リアルタイムＯＳにおけるスケジューリングの具体的な方法としては、例えば特許文献１、または特許文献２に記載されたものが知られている。特許文献１に記載された第１の制御方法では、リアルタイムＯＳ上のスケージューラは、タスクの経過時間などの情報より、処理時間配分、優先度制御を効率的に判断／実行し、予想許容時間と実際の走行時間を比較することによりタスクの異常事態の判定を可能としている。特許文献２に記載された第２の制御方法では、計算機のプロセススケジューラの固定優先度プロセススケジューラ空間にユーザレベルプロセススケジューラを設け、最上位としてスケジューリングを管理することを可能としている。
【特許文献１】特開２００４−１７１５８８号公報
【特許文献２】特開平９−５４６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術においてプログラマブルコントローラのタスク管理は、ユーザアプリケーションをいかに快適かつ効率よく稼動させるかという点に主眼が置かれており、そのために、アプリケーションスケジューラは優先度が高く、ユーザアプリケーションは優先的に実行される。ユーザアプリケーションの実行を終了すると、１実行サイクルの余った時間で基本システム処理が行われる。
【０００７】
基本システム処理の中で、優先度の非常に高い処理、例えばシステムを維持するための故障診断処理、割込み処理などは、場合によってはアプリケーションスケジューラよりも高い優先度で実行されるが、データ通信処理、データ転送処理、故障データ収集処理などのデータ処理系は、一般的に優先度が低く設定されており、バックグラウンドで行われることが多い。しかしながら、プログラマブルコントローラの用途は、近年多様化してきており、性能上からも必ずしもラダープログラムが最優先実行アプリケーションではないケースも増えてきている。ユーザアプリケーションを広義でとらえた場合、プログラマブルコントローラの実行すべき処理は、ラダーシーケンスなどで記述されたアプリケーションプログラムのほか、支援装置、マンマシンインタフェースとの間のモニタコマンド通信処理、監視、他の機器やコントローラとのネットワーク処理など、様々なものがある。ユーザによっては、ラダーシーケンスよりもデータ通信処理やデータ転送処理のほうが重要度や定時性確保の要求が高い場合もある。
【０００８】
従来のプログラマブルコントローラシステムでは、そのような場合においても、まずラダーシーケンスのユーザアプリケーションが最優先で実行され、その後の時間に通信やデータ変換処理などが行われる。従って、ユーザの観点からすると、処理の性能や処理時間の配分を、例えばネットワーク処理に重点を置いて配分したいのに、実際には常にラダーシーケンスが優先になってしまう問題があった。プログラマブルコントローラのアプリケーション処理は、定時性確保の都合上一定時間の周期でサイクリックに実行されることが多いので、処理実行サイクル時間が短くなればなるほど、サイクル時間に占めるラダーアプリケーション実行時間の割合が高くなり、相対的に通信やその他の処理に割当てられる実行時間が少なくなり、通信やその他の処理を主眼としてみた場合、性能低下につながる。
【０００９】
これを回避するため、プログラマブルコントローラは、処理の優先度や定時性制約に合せて実行優先順位のついたタスクに処理を割付けてプログラミングしたり、定周期タスクなどを設定して一定時間ごとにタスクが起動されるようにプログラミングできるようになっている。しかし、実際には、それら全ての処理はアプリケーションスケジューラの上で実行されることになり、アプリケーションスケジューラ外で実行される処理、すなわちユーザアプリケーション以外の処理は後回しになってしまう。
【００１０】
上記第１の制御方法では、タスク個々に関して極め細かく制御でき、各タスクの処理時間の最適化により無駄時間を削減し、システム全体としての処理時間の向上にも寄与する。しかしながら図５に示す、基本システム１４の処理に関する制御は示されておらず、タスクであるユーザアプリケーションプログラム１０への適応方法の記述内容に留まっている。
【００１１】
上記第２の制御方法では、計算機のプロセススケジューラの固定優先度プロセススケジューラ空間にユーザレベルプロセススケジューラを設け、最上位としてスケジューリングすることにより、マルチメディアシステムで必要としている新しいプロセスの導入を容易にしている。しかしながら図５で示す、基本システム１４の処理に関する制御は示されておらず、あくまでもリアルタイムＯＳが管理するスケジューラを制御する記述内容に留まっている。
【００１２】
このように従来の技術においては、タスク管理の方法は多々提案されているが、従来はユーザがスケジューリングできなかった、基本システム１４とアプリケーションスケジューラ１６の時間配分の制御に関して言及している内容は無い。
【００１３】
本発明は、「ユーザアプリケーションの実行性能を優先したい場合」と「アプリケーションスケジューラで管理されない処理のうちデータ処理系のようにメッセージ応答性能に影響ある処理を優先したい場合」、の切替えを簡易に調整
し、加えてユーザアプリケーションの停止／起動の状態に適した時間配分する装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決する手段として、本発明は以下のように構成する。
【００１５】
本発明ではリアルタイムオペレーティングシステムで動作するアプリケーションスケジューラが、ユーザアプリケーションをサイクリックに実行制御するプログラマブルコントローラにおいて、システムの１実行サイクル時間に占めるアプリケーションスケジューラの実行時間の割合とデータ処理の実行時間の割合を管理する帯域管理層を設け、前記リアルタイムオペレーティングシステムは、該帯域管理層を１つの処理系として管理し、ユーザーアプリケーションの停止時には、前記実行時間の割合を記憶した上で、前記アプリケーションスケジューラの実行時間の割合を０にし、ユーザーアプリケーションの起動時には、記憶した前記実行時間の割合を呼び出すことにより停止前の状態に戻すように構成する。
【発明の効果】
【００１６】
本発明により、帯域管理層を介して、基本システム１４とアプリケーションスケジューラ１６との時間配分の制御が可能となり、その結果として、「ユーザアプリケーションの実行性能を優先したい場合」と「アプリケーションスケジューラで管理されない処理のうちデータ処理系のようにメッセージ応答性能に影響ある処理を優先したい場合」、の切替えを簡易に調整可能になり、特にユーザアプリケーションが停止／起動に応じてデータ処理１２に時間配分を優先的に注入することにより、全体の処理が高速化するという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００１８】
図１は、本発明のプログラマブルコントローラのソフトウェア構造概略を示す図である。また、図２は、図１のプログラマブルコントローラの処理の流れを説明する図である。また、図３は、図２の操作をアプリケーションの実施例で説明する図である。
【００１９】
図１において、リアルタイムＯＳ２０は、帯域管理層１８を１つの処理系として呼び出し、その中で、アプリケーションスケジューラ１６とデータ処理１２とが呼び出される。帯域管理層１８は１実行サイクルの時間配分比率を、アプリケーションスケジューラ１６とデータ処理１２とに対して設定する。アプリケーションスケジューラ１６は、帯域管理層１８が設定した実行時間比率に従って、ユーザアプリケーションプログラム１０の処理を行い、残る時間はデータ処理１２が使用する。データ処理１２においては、データ通信処理やデータ転送処理、故障データ収集処理などが実行される。データ処理１２の処理が終わると、基本システム１４を実行する。
【００２０】
帯域管理層１８の時間配分比率は、例えば、帯域管理設定ファイル２４に格納し、図示しない外部のプログラミングツールなどから変更する。時間配分比率とは、基本システム１４での処理時間を除いた帯域管理層１８に割当てられる１実行サイクル時間を、アプリケーションスケジューラ１６とデータ処理１２の間でどのように時間配分するかを指定するパラメータである。ユーザは、全体の実行サイクル時間と、アプリケーション実行時間、データ処理実行時間を勘案し、システムに合った時間配分比率を設定する。
【００２１】
例えばデータ処理を優先させたカスタマイズを行う場合、図２（ａ）で示す状態から図２（ｂ）で示す状態に遷移させる。図中の破線はアプリケーションスケジューラとデータ処理の時間配分比率を、帯域管理層１８により可変させたことを示している。図２（ａ）ではアプリケーションに大きな時間配分比率を割当てラダーシーケンス重視の設定となっているが、図２（ｂ）ではデータ処理に大きな時間配分比率を割り当てているので、相対的にラダーシーケンスが使用できる実行時間は少なくなる。実行時間が少なくなり、はみ出した分は次の実行サイクルで処理される。従って、図２（ａ）では１実行サイクルで処理が終了していたラダーシーケンス処理が、図２（ｂ）では２実行サイクル掛かる。その反面、図２（ａ）では処理を終了するのに２実行サイクル掛かっていたデータ処理、バックグラウンド処理が、図２（ｂ）では１実行サイクルで終了する。このような使い分けの実施を、図３に示す。図３（ａ）は、リアルタイム制御の例として位置決めなどを行うシステムを想定している。この場合、できる限りラダーシーケンス系の時間配分を大きく取り、位置決め性能を発揮できるようになる。図３（ｂ）は、監視系のアプリケーションの例として、画面にプログラマブルコントローラで収集したデータを表示するシステムを想定している。この場合、データ処理系に時間を大きく割当てることで、画面表示／更新性能を大きく向上できるようになる。
【００２２】
以上のように、図２（ａ）を図２（ｂ）に切替える操作、すなわち帯域管理層１８によりアプリケーションスケジューラとデータ処理の時間配分比率を可変させることにより、ユーザは、アプリケーション性能を優先（図３（ａ）参照）、或はデータ処理性能優先（図３（ｂ）参照）にするかの切替えを簡易に実現可能となる。また、いずれの場合でも、プログラマブルコントローラとしてシステムを動作させるために必須の基本処理系は、１実行サイクルについて必要な時間を確保することができ、動作に支障のない範囲でカスタマイズを行うことができる。
【００２３】
次に、ユーザアプリケーションが停止／起動したときの処理を説明する。アプリケーションスケジューラに配分した時間は、実質上は処理が無いのでアイドリング状態になる。そこで、図２（ａ）や（ｂ）で示す状態から、図２（ｃ）で示す状態に遷移させる。ここではアプリケーションに時間配分比率を全く割かずに、その結果、データ処理に全ての時間を注力することになる。このような処理をオペレータが実施するのではなく、プログラマブルコントローラに自律制御させため、図１の矢印で示す(1)、(2)、(3)の処理を実施する。ここで、図１における、帯域管理設定ファイル２４、基本設定システムファイル２６、帯域管理設定バックアップファイル２８はいずれも時間配分比率の情報を保持する。基本システム設定２６は、アプリケーションスケジューラの帯域を０とする時間配分比率が設定されている。また図４は、図１の矢印(1)、(2)、(3)を処理フローであり、以下に手順を説明する。
【００２４】
アプリケーションの停止を検出したとき（ステップ４２）は、帯域管理層１８にある帯域設定ファイル２４を帯域管理設定バックアップファイル２８にバックアップする（ステップ４６）。その後、基本システム設定２６を帯域設定ファイル２４に複写する（ステップ４８）。
【００２５】
アプリケーションの起動を検出したとき（ステップ４０）は、帯域管理設定バックアップファイル２８を帯域設定ファイル２４にレストアする（ステップ５０）。
【００２６】
以上の記載から明らかなように、帯域管理層１８は、アプリケーションスケジューラ１６とデータ処理１２を時間配分することにより、負荷量と注入時間の効率的な設定を可能にし、その結果、プログラマブルコントローラ全体の処理を高速にする。また、ユーザアプリケーションの停止時には、アプリケーションスケジューラ１６への時間配分を０にする設定ファイルを適用、起動時には停止時に退避した設定ファイルを復帰させる機構を設けたことにより、ユーザアプリケーションの停止／起動による時間配分の設定をプログラマブルコントロールが自立的に実施することを可能にしている。
【図面の簡単な説明】
【００２７】
【図１】本発明のプログラマブルコントローラのソフトウェア構造概略の説明図
【図２】本発明のプログラマブルコントローラにおけるタスクスケジューリングの説明図
【図３】本発明を利用したアプリケーションの実施例の説明図
【図４】本発明における、帯域管理設定ファイルの更新フローの説明図
【図５】従来のプログラマブルコントローラのソフトウェア構造概略の説明図
【図６】従来システムにおけるタスクスケジューリングの一例の説明図
【符号の説明】
【００２８】
１０  ユーザアプリケーションプログラム
１２  データ処理
１４  基本システム
１６  アプリケーションスケジューラ
１８  帯域管理層
２０  リアルタイムＯＳ
２２  ハードウェア
２４  帯域管理設定ファイル
２６  基本設定システム設定ファイル
２８  帯域管理設定バックアップファイル
【図１】
2007257106.tif 000003
【図２】
2007257106.tif 000004
【図３】
2007257106.tif 000005
【図４】
2007257106.tif 000006
【図５】
2007257106.tif 000007
【図６】
2007257106.tif 000008