(57)【特許請求の範囲】
【請求項１】
それぞれ実行周期が異なる二つのプログラムの実行スケジュールを設定するスケジューリング方法であって、
実行周期が長い方のプログラムの実行開始点を、前記実行スケジュールを設定するスケジュール期間を第１の間隔ごとに区分する目盛のいずれかの目盛値に割り当てるステップと、
前記実行周期が長い方のプログラムの実行開始点を割り当てた目盛値から次の目盛値までの間を第２の間隔ごとに区分する目盛の目盛値のうち、既に展開されているプログラムの実行開始点の数が最も少ない目盛値であって、最小の目盛値に、前記実行周期が長い方のプログラムの実行開始点を展開するステップと、
前記展開した前記実行周期が長い方のプログラムの実行開始点の目盛値を、前記スケジュール期間を前記第２の間隔ごとに区分する目盛の目盛値に変換して、前記実行スケジュールを設定するステップと、
実行周期が短い方のプログラムの実行開始点を、前記実行スケジュールを設定するスケジュール期間を前記第２の間隔ごとに区分する目盛のいずれかの目盛値に割り当てて、前記実行スケジュールを設定するステップと、を含み、
前記第１の間隔は、長い方のプログラムの実行周期に対応する期間を等間隔に分割したときの一つの間隔であり、前記第２の間隔は、短い方のプログラムの実行周期に対応する期間を等間隔に分割したときの一つの間隔であることを特徴とするスケジューリング方法。
【請求項２】
プログラムの実行開始点に対して既に割り当てられている目盛値を変更する際に、変更対象となるプログラムの実行開始点を指定するステップと、
前記指定された変更対象となるプログラムの実行開始点の目盛値の変更先として、前記スケジュール期間を前記第２の間隔ごとに区分する目盛のいずれかの目盛値を指定するステップと、
前記指定された変更対象となるプログラムの実行開始点に割り当てられている目盛値を、前記指定された前記第２の間隔ごとに区分する目盛の目盛値に変更するステップと、
をさらに含むことを特徴とする請求項１記載のスケジューリング方法。
【請求項３】
プログラムの実行開始点を新たに追加する際に、新たに追加する位置として、既に目盛値が割り当てられているプログラムの実行開始点および当該プログラムの実行開始点の前または後を指定するステップと、
前記指定されたプログラムの実行開始点に対応するプログラムの処理と追加対象となるプログラムの処理とが重複しないように、前記第２の間隔ごとに区分する目盛の目盛値に、前記追加対象となるプログラムに対応する前記実行開始点を割り当てるステップと、
をさらに含むことを特徴とする請求項１または２記載のスケジューリング方法。
【請求項４】
請求項１〜３のいずれか１項に記載のスケジューリング方法によってスケジューリングされた結果を表示する方法であって、
前記第２の間隔ごとに区分する目盛の各目盛値に設定されている前記実行開始点の分布状態を表示画面上に表示させるステップを含むことを特徴とするスケジュール表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術に関し、スケジューリング方法およびスケジュール表示方法に関する。
【背景技術】
【０００２】
プロセス制御器やＰＬＣ（Programmable Logic Controller）等のデジタル式コントローラは、離散的に制御処理を行う。そのため、デジタル式コントローラは、所定の実行周期で制御処理を行うプログラムを繰り返し実行している（例えば、下記特許文献１参照）。近年、マイクロプロセッサの高集積化によって、マイクロプロセッサの処理能力の高速化が進み、実行周期の短縮化が進んでいる。一方、実行周期を短いものから長いものまで用意し、制御処理の用途に応じて適切な実行周期を各プログラムに割り当てることも行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３５１５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラムの実行スケジュールを設定する場合、スケジュールツール上にプログラムを順次割り当てていくことでスケジューリングする方法がある。上記特許文献１は、プログラムの実行周期ごとに目盛を設け、割り当てたプログラムが実行周期ごとに実行されるか否かを判定する方法を示している（例えば、特許文献１の図１６および図１７参照）。特許文献１のように実行周期が固定されている場合には、実行周期に合わせた目盛を設けることで、プログラムの周期的な実行を確認し易くすることができる。しかしながら、実行周期が異なるプログラムの実行スケジュールを設定する場合に、それぞれの実行周期に合わせた目盛をスケジュールツール上に設けると目盛が複雑になり、プログラムの周期的な実行を確認することが難しくなる。
【０００５】
これを解決するために、それぞれの実行周期ごとにスケジュールツールを用意し、それぞれの実行周期に相応する目盛をそれぞれのスケジュールツールに設けることも考えられる。しかしながら、プログラムを実際に実行させるときには、全てのプログラムが同一のコンピュータ上で実行されることとなる。したがって、異なるスケジュールツール上でスケジューリングした場合には、異なるスケジュールツール上で割り当てられたプログラム間の実行時における処理関係が不明確となり、プログラムの処理が特定の時間に集中してしまう等の不利益が生ずる。
【０００６】
そこで、本発明は、上述した従来技術による問題点を解消するためになされたものであり、それぞれ実行周期が異なるプログラムを、実行負荷を平準化させて効率的にスケジューリングさせることが可能なスケジューリング方法およびスケジュール表示方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るスケジューリング方法は、それぞれ実行周期が異なる少なくとも二つのプログラムの実行スケジュールを設定するスケジューリング方法であって、実行周期が長い方のプログラムの実行開始点を、実行スケジュールを設定するスケジュール期間を第１の間隔ごとに区分する目盛のいずれかの目盛値に割り当てるステップと、実行開始点を割り当てた目盛値から次の目盛値までの間を第２の間隔ごとに区分する目盛のいずれかの目盛値に、上記実行開始点を展開するステップと、展開した実行開始点の目盛値を、スケジュール期間を第２の間隔ごとに区分する目盛の目盛値に変換するステップと、を含み、第１の間隔は長い方の実行周期に相応する間隔であり、第２の間隔は短い方の実行周期に相応する間隔である。
【０００８】
なお、実行周期に相応する間隔とは、例えば、実行周期が秒単位（例えば、１秒）である場合には、実行周期以下でありかつ秒単位となる間隔（例えば、０．５秒）が該当し、実行周期が分単位（例えば、５分）である場合には、実行周期以下でありかつ分単位となる間隔（例えば、１分）が該当し、実行周期が時間単位（例えば、２時間）である場合には、実行周期以下でありかつ時間単位となる間隔（例えば、１時間）が該当する。
【０００９】
かかる構成を採用することで、実行周期が長い方のプログラムをスケジューリングする際に、その実行周期に相応する第１の間隔ごとに区分する目盛のいずれかの目盛値にプログラムの開始点を割り当てることができるため、周期的に実行されるプログラムのスケジュールを確認し易くすることができる。また、上記割り当てた目盛値を、短い方の実行周期に相応する第２の間隔ごとに区分する目盛の目盛値に変換することができるため、それぞれ実行周期が異なるプログラムを同一の目盛上で管理することが可能となる。
【００１０】
また、本発明に係るスケジュール表示方法は、上記スケジューリング方法によってスケジューリングされた結果を表示する方法であって、第２の間隔ごとに区分する目盛の各目盛値に設定されている実行開始点の分布状態を表示画面上に表示させるステップを含む。
【００１１】
かかる構成を採用することで、それぞれ実行周期が異なるプログラムのスケジュール状況を的確に把握することが可能となる。
【発明の効果】
【００１２】
本発明によれば、それぞれ実行周期が異なるプログラムを、実行負荷を平準化させて効率的にスケジューリングさせることが可能となるスケジューリング方法およびスケジュール表示方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態におけるコントローラの構成を模式的に例示する図である。
【図２】スケジュール情報テーブルのデータ構成を例示する図である。
【図３】スケジューリングの処理手順を説明するための図である。
【図４】スケジューリングの処理手順を説明するための図である。
【図５】スケジューリングの処理手順を説明するための図である。
【図６】スケジュールされたプログラムの実行開始点の分布状態を表示する画面例である。
【図７】スケジュールの変更手順を説明するための図である。
【図８】スケジュールの追加手順を説明するための図である。
【図９】スケジュールの追加手順を説明するための図である。
【図１０】スケジューリングの流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００１５】
まず、図１を参照して、実施形態におけるコントローラ１の構成について説明する。図１は、実施形態におけるコントローラ１の構成を模式的に例示した図である。
【００１６】
同図に示すように、コントローラ１は、各種プログラムの実行スケジュールを設定するスケジューラ１０と、スケジューリングされたプログラムを実行する演算部２０と、各種プログラムおよび各種情報を記憶する記憶部３０と、各種情報を入力するための入力部４０と、各種情報を表示するための表示部５０と、各種情報を外部とやりとりするための通信部６０とを有する。これらの要素は信号を伝送するバス７０を介して相互に接続されている。
【００１７】
記憶部３０は、それぞれ実行周期が異なる複数のプログラムを記憶する。複数のプログラムは、それぞれ複数の機能ブロックを含んでいる。また、記憶部３０には、図２に示すスケジュール情報テーブルが格納されている。スケジュール情報テーブルは、プログラムを一意に特定するプログラムＩＤに対応付けて、プログラムの実行周期、プログラムの実行時間およびプログラムの実行開始点を記憶する。
【００１８】
図２に示すように、プログラムＩＤには、例えば“００００１”のように、プログラムを一意に特定する情報が格納される。実行周期には、例えば“３００”（秒）のように、プログラムを実行する周期が格納される。実行時間には、例えば“０．５”（秒）のように、プログラムの実行に要する時間が格納される。実行開始点には、例えば“０”のように、プログラムの実行開始点が割り当てられているスケジュールツール上の目盛値が格納される。
【００１９】
なお、プログラムの実行時間は、実行するマシンの性能により異なる。本実施形態におけるプログラムの実行時間は、一のプログラムがコントローラで実行されたときに、一のプログラムの実行が１回完了するのに要する時間をいう。また、プログラムの実行周期は、プログラムの仕様や用途により異なる。本実施形態におけるプログラムの実行周期は、一のプログラムの実行が繰り返される場合に、１回の実行が開始されてから終了するまでに許容される最大の期間をいう。
【００２０】
図１に示すスケジューラ１０は、後述するプログラムの実行スケジュール割り当て処理（以下、「スケジューリング処理」という。）を実行するスケジューリング処理部１１と、スケジューリング処理部１１によってスケジュールされた結果を表示部５０に表示させるスケジュール表示部１２とを有する。以下において、スケジューリング処理部１１によって実行されるスケジューリング処理について説明する。
【００２１】
本実施形態におけるスケジューリング処理では、例示的に、スケジューリング処理の対象として実行周期が５分のプログラムと１秒のプログラムとがそれぞれある場合に、実行周期が長い方（５分）のプログラムをスケジューリングする際のスケジューリング処理について説明する。このスケジューリング処理では、実行周期が長い方（５分）のプログラムの実行開始点を、実行周期が長い方（５分）のプログラムをスケジューリングする際に用いる目盛のいずれかの目盛値に割り当てた後に、その目盛値を、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛のいずれかの目盛値に変換して設定する点に特徴がある。
【００２２】
なお、実行周期が短い方（１秒）のプログラムをスケジューリングする場合には、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛のいずれかの目盛値にプログラムの実行開始点を設定していくことになる。
【００２３】
ここで、本実施形態では、説明の便宜のために、二つのプログラム（実行周期が５分のプログラムと１秒のプログラム）をスケジューリングする場合について説明するが、本発明を二つのプログラムをスケジューリングする場合に限定するものではない。本発明は、それぞれの実行周期ごとに複数のプログラムが存在し、これら複数のプログラムをスケジューリングする場合にも適用することができる。
【００２４】
図３〜図５を参照して、スケジューリング処理の手順について具体的に説明する。各図に示す白丸は、既に実行開始点が設定されているプログラムを示す。各図に示す黒丸は、実行開始点を設定している最中のプログラムを示す。また、各図に併せて図１０に示すスケジューリングの流れを示すフローチャートも参照しながら説明する。
【００２５】
まず、図３に示す第１段階では、実行周期が５分のプログラムの実行開始点を、１時間のスケジュール期間を１分（第１の間隔）ごとに６０等分に区分する目盛のいずれかの目盛値に割り当てる（図１０のステップＳ１）。この目盛は、実行周期が長い方（５分）のプログラムをスケジューリングする際に用いる目盛である。つまり、１時間のスケジュール期間を、５分の実行周期に相応する間隔となる１分ごとに区分した目盛である。
図３に示す第１段階では、実行周期が５分のプログラムの実行開始点が目盛値“３”に割り当てられ、さらに５分間隔ごとに設けられている目盛値“８”、“１３”、“１８”、…、“５８”にも割り当てられたことを示している（図３の黒丸部分参照）。
【００２６】
ここで例示するものは、実行周期が５分のプログラムであり、各プログラムは５分ごとに繰り返し実行される。したがって、実行周期が５分のプログラムの実行開始点は、“０”〜“４”までのいずれかの目盛値に割り当てることとする。また、プログラムの実行開始点を、目盛値“０”〜“４”のうち、まだプログラムが割り当てられていない目盛値であって、最小の目盛値に割り当てる。このとき、目盛値“０”〜“４”の全てに既にプログラムが割り当てられている場合には、割り当てられているプログラムの数が最も少ない目盛値であって、最小の目盛値に割り当てることとする。なお、この割り当て条件にある「プログラムの数」を「プログラムの処理負荷総数」に替えることとしてもよい。
【００２７】
また、プログラムの実行開始点を“０”〜“４”までのいずれかの目盛値に割り当てる際に、１時間分のスケジュール期間における５つの目盛グループごとのプログラム総数を比較して、プログラム総数が最も少ないグループに割り当てることとしてもよい。５つの目盛グループとは、“０”グループ、“１”グループ、“２”グループ、“３”グループおよび“４”グループをいう。例えば、“０”グループには、“０”、“５”、“１０”、…、“５５”が属し、“１”グループには、“１”、“６”、“１１”、…、“５６”が属することになる。なお、この割り当て条件にある「プログラム総数」を「プログラムの処理負荷総数」に替えることとしてもよい。
【００２８】
一方、目盛値“５”以上には、目盛値“０”〜“４”までに割り当てられたプログラムを実行周期間隔ごとに割り当てる。例えば目盛値“０”に割り当てられたプログラムは、目盛値“５”、“１０”、“１５”、…、“５５”にも割り当てられることとなる。
【００２９】
このように、実行周期が５分のプログラムをスケジューリングする際に、５分の実行周期に相応する間隔となる１分ごとの目盛値上にプログラムの開始点を割り当てることで、実行周期が５分のプログラムを５グループに分散して実行させることができ、処理負荷の分散を図ることができる。また、５分ごとに周期的に実行される各プログラムのスケジュールを確認し易くすることができる。
【００３０】
続いて、図３に示す第２段階にあるように、第１段階で割り当てたプログラムの実行開始点を、第１段階で割り当てられた目盛値“３”から次の目盛値“４”までの間の時間である１分を０．５秒（第２の間隔）ごとに１２０等分に区分する目盛のいずれかの目盛値に展開する（図１０のステップＳ２）。
【００３１】
図４に、第２段階の目盛を拡大して表わした図を示す。図４に示す目盛は、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛である。つまり、図３に示す第１段階の目盛値“３”から目盛値“４”までの間の時間である１分を、１秒の実行周期に相応する間隔となる０．５秒ごとに区分した目盛である。
【００３２】
図４に示す第２段階では、第１段階で割り当てられたプログラムの実行開始点の目盛値“３”が、第２段階における目盛値“１”に展開されたことを示している（図４の黒丸部分参照）。
【００３３】
ここで、第１段階で割り当てられたプログラムの実行開始点は、第２段階の目盛値“０”〜“１１９”のうち、まだプログラムが展開されていない目盛値であって、最小の目盛値に展開する。ただし、目盛値“０”〜“１１９”の全てに既にプログラムが展開されている場合には、展開されているプログラムの数が最も少ない目盛値であって、最小の目盛値に展開することとする。なお、この割り当て条件にある「プログラムの数」を「プログラムの処理負荷総数」に替えることとしてもよい。
【００３４】
続いて、図３に示す第３段階にあるように、第２段階で展開したプログラムの実行開始点の目盛値を、１時間のスケジュール期間を０．５秒（第２の間隔）ごとに７２００等分に区分する目盛上の目盛値に変換する（図１０のステップＳ３）。
【００３５】
図５に、第３段階の目盛を拡大して表わした図を示す。図５に示す目盛は、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛である。つまり、１時間のスケジュール期間を、１秒の実行周期に相応する間隔となる０．５秒ごとに区分した目盛である。
【００３６】
図５に示す第３段階では、第２段階で展開されたプログラムの実行開始点の目盛値“１”が、第３段階における目盛値“３６１”に変換されたことを示している（図５の黒丸部分参照）。
【００３７】
ここで、図３に示すように、第２段階における目盛値“０”から目盛値“１２０”は、第３段階における目盛値“３６０”から目盛値“４８０”に相当する。したがって、第２段階の目盛値“１”は、第３段階の目盛値“３６１”に相当することとなる。第２段階の目盛値を第３段階の目盛値に変換する場合には、例えば、以下の式１を用いることができる。
【００３８】
変換後の目盛値＝（Ｔ１／Ｔ２）＊Ｍ１＋Ｍ２  …  式１
【００３９】
ここで、上記式１のＴ１は実行周期が長い方（５分）のプログラムをスケジューリングする際に用いる１目盛の時間（６０秒）であり、Ｔ２は実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる１目盛の時間（０．５秒）である。Ｍ１はプログラムの実行開始点をＴ１間隔ごとの目盛上に割り当てたときの目盛値（第１段階の目盛値“３”）であり、Ｍ２はプログラムの実行開始点をＴ２間隔ごとの目盛上に展開したときの目盛値（第２段階の目盛値“１”）である。
【００４０】
上記式１に、Ｔ１＝６０（秒）、Ｔ２＝０．５（秒）、Ｍ１＝３、Ｍ２＝１をそれぞれ代入すると、変換後の目盛値＝（６０／０．５）＊３＋１＝３６１が求まる。
【００４１】
スケジューリング処理部１１は、式１を用いて算出した変換後の目盛値を、図２に示すスケジュール情報テーブルの実行開始点に格納する。
【００４２】
次に、スケジュール表示部１２によって、表示部５０に表示されるスケジュール結果の内容について具体的に説明する。
【００４３】
スケジュール表示部１２は、操作者の操作指示に従って、スケジュール情報テーブルに格納されているスケジュール情報を参照し、図６に示すプログラムの実行開始点の分布状態を表示部５０に表示させる（図１０のステップＳ４）。
【００４４】
図６に示す分布状態は、１時間のスケジュール期間を０．５秒間隔ごとに７２００等分に区分した目盛ごとに、各目盛値に設定されたプログラムの個数を模式的に表したものである。なお、図６に示す目盛は、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛である。つまり、１時間のスケジュール期間を、１秒の実行周期に相応する間隔となる０．５秒ごとに区分した目盛である。
【００４５】
図６に示す分布状態は、例えば、目盛値“０”に三個のプログラムが設定され、目盛値“１”に二個のプログラムが設定され、目盛値“３”に一個のプログラムが設定されていることを示す。操作者は、この分布状態を参照することで、プログラムの集中度合い等を確認することができる。したがって、操作者は、プログラムの分散化を図るべく、後述するスケジュールの変更やスケジュールの追加を行うことによって処理効率を向上させることが可能となる。
【００４６】
次に、スケジュールの変更手順（図１０のステップＳ５、Ｓ６）について説明する。スケジュールを変更する際には、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛、つまり、上記第３段階における目盛の目盛値を用いて行うこととする（ただし、上記第１段階における目盛の目盛値を用いて行うことも可能である）。具体的には、操作者が、スケジュールの変更対象となるプログラムを指定し、変更先の目盛値を指定する。これにより、スケジューリング処理部１１は、スケジュール情報テーブルに格納されている実行開始点を、指定された変更先の目盛値に書き換える。
【００４７】
図７を参照してさらに具体的に説明する。図７に示す目盛は、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛である。つまり、１時間のスケジュール期間を、１秒の実行周期に相応する間隔となる０．５秒ごとに区分した目盛である。
【００４８】
図７に示すように、目盛値“３６１”に実行開始点が設定されているプログラム（図７の破線で示す白丸部分参照）が指定され、変更先の目盛値として“３６２”（図７の黒丸部分参照）が指定された場合に、スケジューリング処理部１１は、このプログラムのプログラムＩＤに対応してスケジュール情報テーブルに記憶されている実行開始点を、“３６１”から“３６２”に書き換える。
【００４９】
次に、前後関係のあるプログラムをスケジュールに追加する手順（図１０のステップＳ７、Ｓ８）について説明する。前後関係のあるプログラムをスケジュールに追加する際には、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛、つまり、上記第３段階における目盛の目盛値を用いて行うこととする（ただし、上記第１段階における目盛の目盛値を用いて行うことも可能である）。具体的には、操作者が、追加対象となるプログラムの実行開始点を追加する位置として、スケジュール済のプログラムおよびそのプログラムの前か後を指定する。これにより、スケジューリング処理部１１は、スケジュール済のプログラムの処理と、追加対象となるプログラムの処理とが重複することがないように、スケジュール済のプログラムの実行開始点が設定されている目盛値の前か後の目盛値に、追加対象となるプログラムの実行開始点を設定する。
【００５０】
追加する際にプログラムの処理が重複しないようにすることで、前のプログラムで処理されたデータを待機させることなく後のプログラムで引き継ぐことができる。つまり、前のプログラムで処理されたデータが次周期以降において後のプログラムが実行されるまで待機する事態を回避させることができるため、前後関係のあるプログラムの実行順序を維持しつつ処理効率を向上させることが可能となる。
【００５１】
図８および図９を参照してさらに具体的に説明する。図８および図９に示す目盛は、実行周期が短い方（１秒）のプログラムをスケジューリングする際に用いる目盛である。つまり、１時間のスケジュール期間を、１秒の実行周期に相応する間隔となる０．５秒ごとに区分した目盛である。
【００５２】
図８を参照して、スケジュール済のプログラムおよびそのプログラムの後が指定された場合について説明する。図８に示すように、実行開始点が目盛値“３６１”に設定されているプログラム（図８の白丸部分参照）と、そのプログラムの後とが指定された場合に、スケジューリング処理部１１は、指定されたプログラムのプログラムＩＤに対応してスケジュール情報テーブルに記憶されている実行時間を取得する。この取得した実行時間が例えば０．７秒であるとする。スケジューリング処理部１１は、追加対象となるプログラムの実行開始点を設定する目盛値として、指定されたプログラムの目盛値“３６１”から０．７秒以上間隔が空いている目盛値のうち最小の目盛値である“３６３”（図８の黒丸部分参照）を選択する。スケジューリング処理部１１は、追加対象となるプログラムのプログラムＩＤに対応してスケジュール情報テーブルに記憶される実行開始点に“３６３”を書き込む。
【００５３】
図９を参照して、スケジュール済のプログラムおよびそのプログラムの前が指定された場合について説明する。図９に示すように、実行開始点が目盛値“３６１”に設定されているプログラム（図９の白丸参照）と、そのプログラムの前とが指定された場合に、スケジューリング処理部１１は、追加するプログラムのプログラムＩＤに対応してスケジュール情報テーブルに記憶されている実行時間を取得する。この取得した実行時間が例えば０．８秒であるとする。スケジューリング処理部１１は、追加するプログラムの実行開始点を設定する目盛値として、指定されたプログラムの目盛値“３６１”から０．８秒以上間隔が空いている目盛値のうち最大の目盛値である“３５９”（図９の黒丸参照）を選択する。スケジューリング処理部１１は、追加するプログラムのプログラムＩＤに対応してスケジュール情報テーブルに記憶される実行開始点に“３５９”を書き込む。
【００５４】
上述してきたように、本実施形態のコントローラ１では、実行周期が長い方（５分）のプログラムをスケジューリングする際に、その実行周期に相応する間隔ごとに区分する目盛のいずれかの目盛値にプログラムの開始点を割り当てることができるため、周期的に実行されるプログラムのスケジュールを確認し易くすることができる。なお、実行周期が短い方のプログラムをスケジューリングする場合には、短い方の実行周期に相応する間隔ごとに区分する目盛に直接的に割り当てていけばよい。
【００５５】
このように、上記割り当てた目盛値を、短い方の実行周期（１秒）に相応する間隔ごとに区分する目盛の目盛値に変換することができるため、それぞれ実行周期が異なるプログラムを同一の目盛上で管理することができる。これにより、それぞれ実行周期が異なるプログラムを効率的にスケジューリングさせることが可能となる。また、同一の目盛上で管理することで変更処理や追加処理が容易に行えるため、スケジュール調整を簡易にすることができる。
【００５６】
また、スケジューリング処理によって設定されたプログラムの実行開始点の分布状態を、短い方の実行周期（１秒）に相応する間隔ごとに区分する目盛上に表示させることができるため、プログラムの集中状態や分散状態を容易に確認することができる。これにより、それぞれ実行周期が異なるプログラムのスケジュール状況を的確に把握することが可能となる。
【００５７】
なお、上述した実施形態では、実行周期が二種類（５分と１秒）存在する場合について説明しているが、実行周期が三種類以上存在する場合にも本発明を適用することができる。実行周期が三種類以上存在する場合には、実行周期が最短のプログラムと、それ以外の実行周期のうちのいずれか一の実行周期のプログラムとで、上述した実施形態と同様のスケジューリング処理を実行し、それ以外の実行周期の方を順次変更しながらそれぞれの組み合わせごとにスケジューリング処理を実行することとすればよい。
【符号の説明】
【００５８】
１…コントローラ、１０…スケジューラ、１１…スケジューリング処理部、１２…スケジュール表示部、２０…演算部、３０…記憶部、４０…入力部、５０…表示部、６０…通信部、７０…バス。
【図１】
0005401222.tif 000002
【図２】
0005401222.tif 000003
【図３】
0005401222.tif 000004
【図４】
0005401222.tif 000005
【図５】
0005401222.tif 000006
【図６】
0005401222.tif 000007
【図７】
0005401222.tif 000008
【図８】
0005401222.tif 000009
【図９】
0005401222.tif 000010
【図１０】
0005401222.tif 000011