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