JP2001100807A - タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体 - Google Patents

タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体

Info

Publication number
JP2001100807A
JP2001100807A JP27733399A JP27733399A JP2001100807A JP 2001100807 A JP2001100807 A JP 2001100807A JP 27733399 A JP27733399 A JP 27733399A JP 27733399 A JP27733399 A JP 27733399A JP 2001100807 A JP2001100807 A JP 2001100807A
Authority
JP
Japan
Prior art keywords
task
program
execution
sequence
executable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP27733399A
Other languages
English (en)
Inventor
Hisaki Furuyama
寿樹 古山
Koji Shimazu
浩二 島津
Isao Yoshizaki
功 吉崎
Toshio Matsuki
敏夫 松木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP27733399A priority Critical patent/JP2001100807A/ja
Publication of JP2001100807A publication Critical patent/JP2001100807A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 特定のタスクが実行されない状況を生じない
タスクスケジューリング方法、及びプログラムサイズ効
率がよく、シーケンスの変更に容易に対応できるシーケ
ンス制御方法を提供することを目的とする。 【解決手段】 タスクとタスク番号とを一対一に対応さ
せ、INDEXを用いて該INDEXに対応したタスク
番号のタスクを実行することによりタスクをスケジュー
リングし、また、データプログラムを生成するプログラ
ム生成部1002と、該プログラムを実行するプログラ
ム実行部1004とによりシーケンス制御を実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、特に細かい制御を
必要としないタスクスケジューリング方法、タスクスケ
ジューリング装置、プログラム生成方法、プログラム生
成装置、プログラム実行方法、プログラム実行装置、シ
ーケンス制御方法、シーケンス制御装置、及び記録媒体
に関する。
【0002】
【従来の技術】マイコン制御プログラムにおいては、接
続された周辺のハードウェアを協調動作させながらあら
かじめ決められた動作手順(シーケンス)を順次実行す
るシーケンス制御が一般的である。該シーケンス制御に
おいては、各処理ごとにエラーが発生すれば処理を中断
したり、ある処理をやり直したりといった状態遷移が発
生する。マイコンのプログラムでは、シーケンスをCP
Uの実行単位であるタスクに割り当て、複数のタスクを
スケジューリングしながら動作させる。タスクを駆動種
別によって分類すると、システム起動時から常時動作し
ている常駐タスクと、タイマ機能等を用いてあらかじめ
決められた周期で一定時間ごとに起動される定周期タス
クと、ユーザ入力等の外部イベントによって起動される
イベントタスクとの3種類になる。
【0003】まず、従来のタスクスケジューリング方法
について説明する。従来のタスクスケジューリング方法
としては、ラウンドロビン方式が一般的である。該ラウ
ンドロビン方式とは、実行優先度の異なるタスクが複数
個ある場合には、実行優先度の高いものから実行し、実
行優先度の等しいタスクが複数個ある場合には、それら
に対して均等にCPUを割り当てる方式である。すなわ
ち、実行優先度の等しいタスクが複数個ある場合、ある
タスクに対してCPUが割り当てられ、一定の決められ
たタイムクォンタムだけ経過すると、強制的にそのタス
クは終了させられ、実行優先度の等しい次のタスクに対
し、上記一定のタイムクォンタムだけCPUが割り当て
られるといった方式である。
【0004】例えば、図示しないCPUは5msごとに
処理を実行し、また、タスクとその実行優先度との関係
は、図20(a)の表で与えられるとする。タスク起動
要求が発生することにより、各タスクは、タスク実行テ
ーブルに登録され、登録されたタスクが、実行優先度の
高い順、すなわち値の大きい順に実行されていく。CP
Uが、1回目の処理を0msに開始する以前に、タスク
A〜タスクEがこの順番でタスク実行テーブルに図20
(b)のように登録されたとする。該登録において、タ
スクはタスク実行テーブルに実行可能タスクとして先頭
の方から登録される。そして、タスクは、先頭のものか
ら実行され、実行されたタスクは、タスク実行テーブル
から削除される。先頭のタスクが実行され、削除された
ら、残りのタスクは、先頭の方に一つずれることにな
る。そして、実行優先度の高い実行可能タスクがなくな
れば、次の実行優先度の実行可能タスクが実行されてい
く。なお、図20(b)、及び(c)において、「−」
は、登録されている実行可能タスクがないことを示す。
ここでは、簡単のために、各タスクのタスク起動要求の
発生、及びタスク実行テーブルへの登録は1回行われる
のみであり、もうこれ以上各タスクのタスク起動要求は
発生しなかったとする。
【0005】まず、CPUは、0msの1回目の処理に
おいて実行優先度の最も高いタスクA、及びタスクBを
実行し、それらをタスク実行テーブルから削除する。次
に、実行優先度が2番目に高いタスクC、及びタスクD
を実行し、また、それらもタスク実行テーブルから削除
する。次に、実行優先度の1番低いタスクEを実行し、
該タスクEもタスク実行テーブルから削除する。そし
て、1回目の処理を終了する。次に、5ms後の2回目
の処理の開始時においては、図20(c)のようにタス
ク実行テーブルに登録された実行可能タスクがないた
め、タスク実行テーブルのチェックのみを行う。
【0006】このようにして、タスクに実行優先度を設
定することにより、タスクを順番に実行することができ
る。上述のラウンドロビン方式によるタスクスケジュー
リング方法では、周期的に起動される定周期タスクが複
数個あった場合もしくはCPUの処理能力以上にタスク
がタスク実行テーブルに登録された場合には、実行優先
度の低い特定のタスクが実行されないこともある。この
ような状況を回避するためには、設計者は、あらかじめ
全てのタスクの起動タイミングと実行優先度とを検討し
て、実行されないタスクがないように、起動周期と実行
優先度とを設定しておくか、もしくは、一定周期ごとに
タスクの実行優先度を動的に変化させることにより各タ
スクが平等に実行される、タスクスケジューリングのた
めのプログラムを作成する必要がある。
【0007】次に、従来のシーケンス制御のプログラム
生成方法について説明する。シーケンス制御のプログラ
ム生成方法としては、固定シーケンスパターンを利用す
る方法と、状態遷移表を利用する方法とが知られてい
る。まず、固定シーケンスパターンを利用するプログラ
ム生成方法について説明する。固定シーケンスパターン
を利用するプログラム生成方法は、全体の構造をシーケ
ンスパターンとして固定し、変更の可能性のある部分に
対して、シーケンス順序テーブル、動作条件テーブル等
を作成し、これらの各テーブル情報と全体の構造として
のシーケンスパターンとを自動的に結合させてシーケン
ス制御プログラムを生成する方法である。
【0008】以下、具体例により、固定シーケンスパタ
ーンを利用するプログラム生成方法について説明する。
まず、図21(a)のシーケンス順序テーブルと、図2
1(b)の処理Bの動作条件テーブルとを定義する。こ
れらの表において、処理A〜処理C、条件1〜条件3、
並びに処理1〜処理3を定義し、これらのテーブル情報
をもとに、該テーブルに記載の処理、及び条件内容を解
釈し、対応する処理内容、及び条件分岐等をあらかじめ
備えられているシーケンスパターンに組み入れて、全体
としてシーケンス制御プログラムを自動的に生成するの
が、固定シーケンスパターンを利用するプログラム生成
方法である。
【0009】図22は、図21(a)、及び(b)の各
テーブル情報をもとに生成されたシーケンス制御プログ
ラムの一例を示すフローチャートである。次に、図22
のフローチャートを用いて固定シーケンスパターンを利
用するプログラム生成方法により生成されたシーケンス
制御プログラムについて説明する。まず、処理が開始さ
れると、処理Aの開始待ち時間は0msであるため、C
PUは、処理Aを実行する(ステップS2201)。次
に、処理Bに対する開始待ち時間20msだけ時間待ち
し(ステップS2202)、ステップS2203に進
み、動作条件が条件1を満たすか否かを判断する。満た
していれば、処理1を実行する(ステップS220
4)。満たしていないとき、または、処理1を実行した
ときには、動作条件が条件2を満たすか否かを判断する
(ステップS2205)。満たしていれば、処理2を実
行する(ステップS2206)。満たしていないとき、
または、処理2を実行したときには、動作条件が条件3
を満たすか否か判断する(ステップS2207)。満た
していれば、処理3を実行する(ステップS220
8)。満たしていないとき、または、処理3を実行した
ときには、処理Cに対する開始待ち時間5msだけ時間
待ちし(ステップS2209)、次に処理Cを実行し
(ステップS2210)、すべての処理を終了する。
【0010】なお、上記の説明における各処理に対する
開始待ち時間とは、装置等の動作が完了するため、もし
くは、装置等が次の処理を実行可能な状態に安定するた
めに、それぞれの処理に対して定められた一定の時間、
待つことを言う。処理が実行できるかどうか、装置を絶
えず監視することも可能であるが、開始待ち時間を設定
する方が、装置の構成も、プログラムの構成も簡易なも
ので済むことになる。このように、固定シーケンスパタ
ーンを利用するプログラム生成方法によれば、図21
(a)に所望の処理内容と開始待ち時間とを記載し、ま
た、処理Bの動作条件テーブルに、所望の条件とその条
件を満たしたときの処理内容とを記載することにより、
図22のフローチャートによって示されるシーケンス制
御プログラムを自動的に生成することができる。
【0011】次に、状態遷移表を利用するプログラム生
成方法について説明する。図23は、シーケンス制御を
状態(S)、及びイベント(E)からなるマトリックス
で表現した状態遷移表を示す図である。まず、図23の
状態遷移表により、制御シーケンスを定義する。この表
において、各セルの上段は処理内容を示し、下段の矢印
以下は状態(S)の遷移先を示す。なお、処理内容が
「−」のセルは、処理を行わないことを示し、また、空
白のセルは、何の処理も、また、状態遷移も行わないこ
とを示す。上記状態遷移表により、各状態のときにどの
イベントが起こるとどのような処理が行われ、そして、
その処理が終了すると、どの状態に遷移するのかを定義
している。上記状態遷移表を用いて、それらの処理、及
び状態の遷移を記述したプログラムを自動的に生成する
方法が、状態遷移表を利用するプログラム生成方法であ
る。
【0012】上記のプログラム生成方法は、図23の状
態遷移表を参照し、その表の記載内容を解釈して、ある
状態(S)とあるイベント(E)に何らかの処理もしく
は遷移が存在するときには、それらの状態(S)とイベ
ント(E)とを条件分岐により指定し、その記載されて
いる処理、及び遷移を実行するようにプログラムで記述
し、それを状態遷移表の全体に対して行うことにより、
シーケンス制御プログラムを生成する方法である。
【0013】図24は、図23の状態遷移表をもとに生
成されたシーケンス制御プログラムの一例を示すフロー
チャートである。なお、制御シーケンスの内容は、固定
シーケンスパターンを利用するプログラム生成方法の説
明と同じものである。図24のフローチャートを用いて
状態遷移表を利用するプログラム生成方法により生成さ
れたシーケンス制御プログラムについて説明する。ま
ず、プログラムが開始されると、状態=停止中、とする
(ステップS2401)。次に、状態=停止中、か否か
判断し(ステップS2402)、ステップS2401に
て状態=停止中、としたので、ステップS2403に進
み、イベント=シーケンス開始、か否か判断する。イベ
ント=シーケンス開始、のときには、処理Aを実行し、
状態=20ms待ち、とする(ステップS2404)。
ステップS2402で状態=停止中、でないと判断され
たとき、あるいは、ステップS2403でイベントがシ
ーケンス開始でないと判断されたとき、また、ステップ
S2404の処理を実行したときは、状態=20ms待
ち、か否か判断する(ステップS2405)。状態=2
0ms待ち、であれば、イベント=20ms経過、か否
か判断し(ステップS2406)、イベント=20ms
経過、のときは、状態=処理A終了、とする(ステップ
S2407)。ステップS2405で状態=20ms待
ち、でないと判断されたとき、あるいは、ステップS2
406でイベント=20ms待ち、と判断されないと
き、または、ステップS2407を実行したときには状
態=処理A終了、か否か判断する(ステップS240
8)。
【0014】状態=処理A終了、のときには、イベント
=条件1、か否か判断する(ステップS2409)。イ
ベント=条件1、のときは、処理1を実行し、状態=5
ms待ち、とする(ステップS2410)。また、イベ
ント=条件1、でないとき、あるいは、ステップS24
10の処理を実行したときには、イベント=条件2、か
否か判断する(ステップS2411)。イベント=条件
2、のときには、処理2を実行し、状態=5ms待ち、
とする(ステップS2412)。イベント=条件2、で
ないとき、あるいは、ステップS2412の処理を実行
したときには、イベント=条件3、か否か判断する(ス
テップS2413)。イベント=条件3、のときは、処
理3を実行し、状態=5ms待ち、とする(ステップS
2414)。
【0015】ステップS2408で状態=処理A終了、
でないと判断されたとき、あるいは、イベント=条件
3、でないとき、または、ステップS2414の処理を
実行したときは、状態=5ms待ち、か否か判断する
(ステップS2415)。状態が5ms待ちのときは、
イベント =5ms経過、か否か判断し(ステップS2
416)、イベント=5ms経過、のときは、状態=処
理B終了、とする(ステップS2417)。ステップS
2415において、状態=5ms待ち、でないとき、ス
テップS2416において、イベント=5ms経過、で
ないとき、あるいは、ステップS2417を実行したと
きは、状態=処理B終了、か否か判断する(ステップS
2418)。状態=処理B終了、のときは、イベント=
処理B終了、か否か判断し(ステップS2419)、処
理B終了のときは、処理Cを実行し、状態=処理C終
了、とする(ステップS2420)。ステップS241
8において、状態=処理B終了、でないとき、ステップ
S2419において、イベント=処理B終了、でないと
き、あるいは、ステップS2420を実行したときに
は、状態=処理C終了、か否か判断する(ステップS2
421)。状態=処理C終了、のときには、プログラム
は終了する。しかし、そうでないときには、再度、ステ
ップS2401に戻り、ステップS2401からの処理
を繰り返す。
【0016】このように、状態遷移表を利用するプログ
ラム生成方法によれば、図23のような状態(S)とイ
ベント(E)からなるマトリックスでシーケンス制御を
表現し、上記状態遷移表を用いて状態(S)とイベント
(E)とを条件分岐で指定し、処理や遷移を実行する、
図24のフローチャートのようなプログラムを生成する
ことにより、シーケンス制御における処理の追加、削
除、変更等は、上記状態遷移表において状態(S)とイ
ベント(E)とを追加、削除、変更等することにより容
易に行うことができ、汎用性と記述能力の高いプログラ
ム生成方法を提供できる。なお、上記プログラム生成方
法によって生成されたシーケンス制御プログラムは、コ
ンパイル、及びリンクされ、実行可能なプログラムとな
る。
【0017】
【発明が解決しようとする課題】前述のように、従来の
タスクスケジューリング方法であるラウンドロビン方式
は、タスクを実行優先度によってスケジューリングする
ため、多くのタスク起動要求が一度に発生したときに
は、実行優先度の高いタスクのみが毎回の処理で実行さ
れ、実行優先度の低いタスクは実行されないという問題
があった。例えば、周期的に起動される複数の定周期タ
スクと、複数のイベントタスクの起動要求が同時に発生
した場合、イベントタスクが定周期タスクよりも優先順
位が高ければ、定周期タスクが指定周期で動作できない
場合が発生する。これを回避するためには、設計者は、
あらかじめ全てのタスクの実行優先度、起動タイミン
グ、及び起動周期を検討し、実行されないタスクがない
ようにプログラムを構成するか、もしくは、タスクの実
行ごと、または一定の周期でタスクの実行優先度を動的
に変化させ、タスクが平等に実行されるようにプログラ
ムを構成する必要がある。しかし、これらの解決方法で
は、タスクスケジューリングプログラムの設計者の負担
が増大し、また、プログラムが複雑なものとなり、その
結果としてプログラムの容量が大きくなるという問題が
あった。
【0018】さらに、従来のタスクスケジューリング方
法では、タスク実行テーブルに登録された実行可能タス
クを順番に実行するため、例えば、5msごとに処理を
実行するとしていても、全タスクの実行に5ms以上必
要だったときには、常駐タスク、もしくは、定周期タス
クに関しては、次のタスクの起動タイミングが確保され
ないという問題もあった。
【0019】また、固定シーケンスパターンを利用する
プログラム生成方法は、あらかじめ決められたシーケン
スパターンにしか対応することができない。すなわち、
従来例での説明において、処理Aを処理A’に変更する
ことはできるが、新たに処理Dを追加する、もしくは、
処理Cを条件4〜条件6に分けて処理4〜処理6を実行
するように変更することはできない。このように、固定
シーケンスパターンを利用するプログラム生成方法は、
適応範囲が狭く、処理の追加等に関しては、シーケンス
パターンを変える必要があるため、プログラム生成方法
自体を変更しなければいけないという問題があった。
【0020】また、状態遷移表を利用するプログラム生
成方法は、前述のように記述能力が高く、処理の追加、
変更等に柔軟に対応することができるが、生成されたプ
ログラムは、条件分岐の多い冗長な表現のものとなり、
プログラムの容量が大きくなるという問題があった。さ
らに、処理の追加、もしくは、待ち時間等の時間条件の
追加により、状態(S)及びイベント(E)が一つ増え
るため、作成する状態遷移表が大きくなり、条件分岐等
も増加するためプログラムの容量が増加してしまうとい
う問題もあった。例えば、同じシーケンス制御を表現し
たプログラムのフローチャート図22と図24とを比較
すると、状態遷移表を用いて作成したプログラムの方
が、固定シーケンスパターンを用いて作成したプログラ
ムよりも複雑であることがわかる。また、条件分岐等が
多い場合には、結局、状態遷移表を作成する作業が、ほ
ぼ、プログラムを作成する作業に等しいものとなるた
め、プログラム生成方法としての利点がなくなるという
問題もあった。
【0021】本発明は上記の問題点を解決するためにな
されたものであり、特定のタスクが実行されない状況を
解消でき、また、常駐タスク、及び定周期タスクの起動
タイミングが確保されるタスクスケジューリング方法、
及び装置を提供することを目的とする。また、本発明
は、上記タスクスケジューリング方法に対応したプログ
ラムを記録したタスクスケジューリングプログラム記録
媒体を提供することを目的とする。また、本発明は、デ
ータプログラムの容量が小さく、プロセスの追加、変更
等にも容易に対応することのできる、シーケンス制御方
法、及び装置を提供することを目的とする。また、本発
明は、上記シーケンス制御方法に対応したプログラムを
記録したシーケンス制御プログラム記録媒体を提供する
ことを目的とする。また、本発明は、容量の小さい、デ
ータとしてのプログラムを生成することのできる、プロ
グラム生成方法、及び装置を提供することを目的とす
る。また、本発明は、上記プログラム生成方法に対応し
たプログラムを記録したプログラム生成プログラム記録
媒体を提供することを目的とする。また、本発明は、デ
ータプログラムをシーケンス制御として実行できるプロ
グラム実行方法、及び装置を提供することを目的とす
る。また、本発明は、上記プログラム実行方法に対応し
たプログラムを記録したプログラム実行プログラム記録
媒体を提供することを目的とする。また、本発明は、シ
ーケンス制御において用いられる階層構造をしたデータ
を記録した記録媒体を提供することを目的とする。
【0022】
【課題を解決するための手段】上記目的を達成するた
め、請求項1にかかるタスクスケジューリング方法は、
実行可能タスクが登録されるタスク実行テーブルを有
し、上記実行可能タスクの実行順序を制御するタスクス
ケジューリング方法において、上記実行可能タスクをタ
スクに付与されたタスク番号の順に実行するものであ
る。
【0023】また、請求項2にかかるタスクスケジュー
リング方法は、タスクにタスク番号を付与し、実行可能
タスクが登録されるタスク実行テーブルを有し、上記実
行可能タスクの実行順序を制御するタスクスケジューリ
ング方法であって、現在のインデックスに対応したタス
ク番号の実行可能タスクが上記タスク実行テーブルに登
録されている場合に、該タスクを実行するとともに、上
記タスク実行テーブルから削除する第1のステップと、
上記インデックスをずらす第2のステップとを備え、上
記第1、及び第2のステップを繰り返すものである。
【0024】また、請求項3にかかるタスクスケジュー
リング方法は、請求項1または請求項2に記載のタスク
スケジューリング方法において、一回の処理で実行する
タスク数を制限し、周期的に上記処理を実行するもので
ある。
【0025】また、請求項4にかかるタスクスケジュー
リング方法は、請求項3に記載のタスクスケジューリン
グ方法において、一回の処理で実行するタスク数の制限
を、タスクのグループごとに行うものである。
【0026】また、請求項5にかかるタスクスケジュー
リング方法は、請求項3に記載のタスクスケジューリン
グ方法において、一回の処理で実行するタスク数の制限
を、タスクの駆動種別ごとに行うものである。
【0027】また、請求項6にかかるタスクスケジュー
リング方法は、請求項3ないし請求項5のいずれか一つ
に記載のタスクスケジューリング方法において、上記一
回の処理で、タスク実行テーブルの全タスク番号の実行
可能タスクを確認した場合は、その回の処理を終了する
ものである。
【0028】また、請求項7にかかるタスクスケジュー
リング方法は、請求項1ないし請求項6のいずれか一つ
に記載のタスクスケジューリング方法において、上記タ
スク実行テーブルへの実行可能タスクの登録は、タスク
起動要求の発生に対して行うものである。
【0029】また、請求項8にかかるタスクスケジュー
リング装置は、タスクにタスク番号を付与し、該タスク
番号とインデックスとを用いてタスクの実行順序を制御
するタスクスケジューリング装置であって、実行可能タ
スクがタスク番号ごとに登録されるタスク実行テーブル
と、タスク起動要求の発生したタスクを上記タスク実行
テーブルに実行可能タスクとして登録するタスク登録部
と、インデックスをずらしながら、インデックスに対応
したタスク番号の実行可能タスクを実行するタスク実行
部と、を備えたものである。
【0030】また、請求項9にかかるプログラム生成方
法は、シーケンス制御における複数の処理プロセスと、
該処理プロセスよりの遷移先とが記述されたデータを読
み込み、上記データの内容をプログラムソースコードに
変換し、上記プログラムソースコードをコンパイル、及
びリンクし、実行可能プログラムを生成するものであ
る。
【0031】また、請求項10にかかるプログラム生成
方法は、請求項9に記載のプログラム生成方法におい
て、上記データには、さらに、タスク名と上記シーケン
スとの関係が記述されているものである。
【0032】また、請求項11にかかるプログラム生成
方法は、請求項9に記載のプログラム生成方法におい
て、上記データには、さらに、タスク名とイベントとの
関係と、該イベントと上記シーケンスとの関係と、が記
述されているものである。
【0033】また、請求項12にかかるプログラム生成
方法は、請求項9ないし請求項11のいずれか一つに記
載のプログラム生成方法において、上記データは、階層
構造のテーブルで定義されるものである。
【0034】また、請求項13にかかるプログラム生成
装置は、シーケンスに含まれる複数の処理プロセスと、
該処理プロセスよりの遷移先とが記述されたデータ部
と、上記データ部を参照してプログラムを生成するプロ
グラム生成部と、上記プログラムを記録媒体に記録する
書き込み部とを備えたものである。
【0035】また、請求項14にかかるプログラム生成
装置は、請求項13に記載のプログラム生成装置におい
て、上記データ部には、さらに、タスク名と上記シーケ
ンスとの関係が記述されているものである。
【0036】また、請求項15にかかるプログラム生成
装置は、請求項13に記載のプログラム生成装置におい
て、上記データ部には、さらに、タスク名とイベントと
の関係と、該イベントと上記シーケンスとの関係と、が
記述されているものである。
【0037】また、請求項16にかかるプログラム生成
装置は、請求項13ないし請求項15のいずれか一つに
記載のプログラム生成装置において、上記データ部は、
階層構造のテーブルで定義されるものである。
【0038】また、請求項17にかかるプログラム実行
方法は、シーケンスに含まれる複数の処理プロセスと、
該処理プロセスよりの遷移先とが記述されたシーケンス
情報を有し、シーケンス制御を実行するプログラム実行
方法であって、上記シーケンス情報を参照してシーケン
ス制御のプロセスを順次実行し、上記プロセスの実行結
果に基づいて、上記シーケンス情報を参照して次処理プ
ロセスを実行するものである。
【0039】また、請求項18にかかるプログラム実行
方法は、シーケンスに含まれる複数の処理プロセスと該
処理プロセスよりの遷移先とが記述されたシーケンス情
報と、実行可能プロセスを登録する実行テーブルと、を
有し、上記実行テーブルに登録された実行可能プロセス
を順次実行するプログラム実行方法であって、上記シー
ケンス情報を参照してシーケンス制御の先頭プロセスを
上記実行テーブルに実行可能プロセスとして登録する第
1のステップと、上記実行可能プロセスを実行するとと
もに、上記実行テーブルから削除する第2のステップ
と、上記プロセスの実行結果に基づいて、上記シーケン
ス情報の次処理プロセスを実行テーブルに実行可能プロ
セスとして登録する第3のステップとを備え、上記シー
ケンス情報の次処理プロセスがなくなるまで、上記第
2、及び第3のステップを繰り返すものである。
【0040】また、請求項19にかかるプログラム実行
方法は、請求項18に記載のプログラム実行方法におい
て、上記シーケンス情報は、プロセスに対応した待ち時
間を有し、上記第2のステップで、上記プロセスの実行
前に上記待ち時間だけ時間待ちをするものである。
【0041】また、請求項20にかかるプログラム実行
方法は、タスクにタスク番号を付与し、各タスク名とシ
ーケンスとの関係、該シーケンスにおける複数の処理プ
ロセス、及び該処理プロセスよりの遷移先が記述された
シーケンス情報と、実行可能プロセスが該プロセスの属
するタスクごとに登録される実行テーブルと、を有し、
上記実行可能テーブルに登録された実行可能プロセス
を、タスクをスケジューリングしながら順次実行するプ
ログラム実行方法であって、いずれかのシーケンス制御
を実行する場合は、該シーケンス制御に含まれるプロセ
スを実行テーブルに実行可能プロセスとして登録し、上
記実行可能プロセスをタスク番号の順に実行し、上記プ
ロセスの実行結果に基づいて、上記シーケンス情報を参
照して次処理プロセスを上記実行テーブルに実行可能プ
ロセスとして登録し、上記実行可能プロセスの登録と、
該プロセスの実行とを繰り返し行うものである。
【0042】また、請求項21にかかるプログラム実行
方法は、タスクにタスク番号を付与し、各タスク名とシ
ーケンスとの関係、上記シーケンスとイベントとの関
係、上記シーケンスに含まれる複数の処理プロセス、及
び該処理プロセスよりの遷移先が記述されたシーケンス
情報と、実行可能プロセスが該プロセスの属するタスク
ごとに登録される実行テーブルと、タスク番号ごとのイ
ベントキューと、を有し、タスクをタスク番号と、イン
デックスとを用いてスケジューリングしながら上記実行
テーブルに登録された実行可能プロセスを順次実行する
プログラム実行方法であって、現在のインデックスと同
じタスク番号のイベントキューに登録イベントがあり、
かつ、上記実行テーブルに該タスク番号の実行可能プロ
セスがない場合は、上記登録イベントを削除し、上記シ
ーケンス情報を参照して該イベントに対応するシーケン
スの先頭プロセスを上記実行テーブルに上記タスク番号
の実行可能プロセスとして登録する第1のステップと、
現在のインデックスと同じタスク番号の実行可能プロセ
スが上記実行テーブルに登録されている場合は、該プロ
セスを実行するとともに、上記実行テーブルから削除す
る第2のステップと、上記プロセスの実行結果に基づい
て、上記シーケンス情報を参照して次処理プロセスのあ
る場合は、該次処理プロセスを上記実行テーブルに実行
可能プロセスとして登録する第3のステップと、インデ
ックスをずらす第4のステップとを備え、上記第1ない
し第4のステップを繰り返すものである。
【0043】また、請求項22にかかるプログラム実行
方法は、請求項21に記載のプログラム実行方法におい
て、上記第1のステップで、現在のインデックスと同じ
タスク番号のイベントキューに登録イベントがあり、か
つ、上記実行テーブルに該タスク番号の実行可能プロセ
スがある場合は、該実行可能プロセスに代えて上記イベ
ントキューの先頭イベントに対応するシーケンスの先頭
プロセスを上記実行テーブルに登録するか否かを、上記
実行可能プロセスの遷移許可により設定可能である、も
のである。
【0044】また、請求項23にかかるプログラム実行
方法は、請求項21または請求項22に記載のプログラ
ム実行方法において、上記実行テーブルに実行可能プロ
セスを登録する場合、該プロセスに対応した待ち時間を
も登録し、該プロセスの実行時に、上記待ち時間が0で
ない場合は該プロセスを実行せず、上記第4のステップ
の後に、上記実行テーブルの待ち時間を更新するステッ
プを有したものである。
【0045】また、請求項24にかかるプログラム実行
方法は、請求項20ないし請求項23のいずれか一つに
記載のプログラム実行方法において、一回の処理で実行
するプロセス数を制限し、周期的に上記処理を実行する
ものである。
【0046】また、請求項25にかかるプログラム実行
方法は、請求項24に記載のプログラム実行方法におい
て、一回の処理で実行するプロセス数の制限を、タスク
のグループごとに行うものである。
【0047】また、請求項26にかかるプログラム実行
方法は、請求項24に記載のプログラム実行方法におい
て、一回の処理で実行するプロセス数の制限を、タスク
の駆動種別ごとに行うものである。
【0048】また、請求項27にかかるプログラム実行
方法は、請求項24ないし請求項26のいずれか一つに
記載のプログラム実行方法において、上記処理におい
て、上記実行テーブルの全タスク番号の実行可能プロセ
スを確認した場合は、その回の処理を終了するものであ
る。
【0049】また、請求項28にかかるプログラム実行
方法は、請求項17ないし請求項27のいずれか一つに
記載のプログラム実行方法において、上記シーケンス情
報は、実行可能プログラムである、ものである。
【0050】また、請求項29にかかるプログラム実行
方法は、請求項17ないし請求項28のいずれか一つに
記載のプログラム実行方法において、上記シーケンス情
報は、記録媒体に記録された実行可能プログラムであ
る、ものである。
【0051】また、請求項30にかかるプログラム実行
方法は、請求項17ないし請求項29のいずれか一つに
記載のプログラム実行方法において、上記シーケンス情
報は、階層構造のテーブルで定義されるものである。
【0052】また、請求項31にかかるプログラム実行
装置は、記録媒体に書き込まれたプログラムを読み込
む、読み込み部と、上記読み込まれたプログラムによ
り、シーケンス制御を実行するプログラム実行部とを備
えたものである。
【0053】また、請求項32にかかるプログラム実行
装置は、請求項31に記載のプログラム実行装置におい
て、上記プログラムは、シーケンスに含まれる複数の処
理プロセスと、該処理プロセスよりの遷移先とが記述さ
れたシーケンス情報を含むものである。
【0054】また、請求項33にかかるプログラム実行
装置は、請求項32に記載のプログラム実行装置におい
て、上記プログラム実行部は、実行可能プロセスが登録
される実行テーブルと、上記プログラムを参照し、上記
実行テーブルに実行可能プロセスを登録するプロセス登
録部と、上記実行可能プロセスを実行し、その実行結果
が正常か否かを判断し、上記プロセス登録部に次工程プ
ロセス、もしくは、遷移先プロセスを実行可能プロセス
として登録させるプロセス実行部と、を備えたものであ
る。
【0055】また、請求項34にかかるプログラム実行
装置は、請求項31に記載のプログラム実行装置におい
て、上記プログラムは、各タスク名とシーケンスとの関
係と、上記シーケンスとイベントとの関係と、上記シー
ケンスに含まれる複数の処理プロセスと、該処理プロセ
スよりの遷移先とが記述されたシーケンス情報を含むも
のである。
【0056】また、請求項35にかかるプログラム実行
装置は、請求項34に記載のプログラム実行装置におい
て、上記プログラム実行部は、シーケンス制御の実行と
ともに、タスク番号と、インデックスとを用いてタスク
のスケジューリングをも実行するものである。
【0057】また、請求項36にかかるプログラム実行
装置は、請求項34または請求項35に記載のプログラ
ム実行装置において、上記プログラム実行部は、実行可
能プロセスが、タスク番号の付与されたタスクごとに登
録される実行テーブルと、上記プログラムを参照し、上
記実行テーブルに実行可能プロセスを登録するプロセス
登録部と、発生したイベントが、該イベントの属するタ
スクごとに登録されるイベントキューを有するイベント
キューテーブルと、イベントが発生すると、上記プログ
ラムを参照し、該イベントの属するタスクに対応したイ
ベントキューに該イベントを登録するイベント解析部
と、登録イベントに対応するシーケンス制御の各プロセ
スを実行可能プロセスとして上記実行テーブルに登録す
るようにプロセス登録部に命令を出し、インデックスを
ずらしながら該インデックスと同じタスク番号の実行可
能プロセスを実行するシーケンス実行部と、を備えたも
のである。
【0058】また、請求項37にかかるプログラム実行
装置は、請求項31ないし請求項36のいずれか一つに
記載のプログラム実行装置において、上記プログラム
は、階層構造をなしているものである。
【0059】また、請求項38にかかるシーケンス制御
方法は、シーケンスに含まれる複数の処理プロセスと、
該処理プロセスよりの遷移先とが記述されたデータを有
し、上記シーケンス制御を実行するシーケンス制御方法
であって、上記データの内容を読み込み、プログラムに
変換して記憶部に格納し、上記記憶部のプログラムを参
照してシーケンス制御の各プロセスを順次実行し、上記
プロセスの実行結果に基づいて、上記プログラムを参照
して次処理プロセスを実行するものである。
【0060】また、請求項39にかかるシーケンス制御
方法は、タスクにタスク番号を付与し、各タスク名とシ
ーケンスとの関係、上記シーケンスとイベントとの関
係、上記シーケンスに含まれる複数の処理プロセス、及
び該処理プロセスよりの遷移先が記述されたデータと、
実行可能プロセスが該プロセスの属するタスクごとに登
録される実行テーブルと、タスク番号ごとのイベントキ
ューと、を有し、タスクをタスク番号と、インデックス
とを用いてスケジューリングしながら上記実行可能を順
次実行するシーケンス制御方法であって、上記データの
内容を読み込み、プログラムに変換して記憶部に格納す
る第1のステップと、現在のインデックスと同じタスク
番号のイベントキューに登録イベントがあり、かつ、上
記実行テーブルに該タスク番号の実行可能プロセスがな
い場合は、上記登録イベントを削除し、上記シーケンス
情報を参照して該イベントに対応するシーケンスの先頭
プロセスを上記実行テーブルに上記タスク番号の実行可
能プロセスとして登録する第2のステップと、現在のイ
ンデックスと同じタスク番号の実行可能プロセスが上記
実行テーブルに登録されている場合は、該プロセスを実
行するとともに、上記実行テーブルから削除する第3の
ステップと、上記プロセスの実行結果に基づいて、上記
シーケンス情報を参照して次処理プロセスのある場合
は、該次処理プロセスを上記実行テーブルに実行可能プ
ロセスとして登録する第4のステップと、インデックス
をずらす第5のステップとを備え、上記第2ないし第5
のステップを繰り返すものである。
【0061】また、請求項40にかかるシーケンス制御
方法は、請求項38または請求項39に記載のシーケン
ス制御方法において、上記データは、階層構造のテーブ
ルで定義されるものである。
【0062】また、請求項41にかかるシーケンス制御
装置は、シーケンスに含まれる複数の処理プロセスと、
該処理プロセスよりの遷移先とが記述されたデータ部
と、上記データ部の内容を読み込み、プログラムに変換
するプログラム生成部と、上記プログラムが格納される
記憶部と、上記記憶部に格納された上記プログラムを参
照してシーケンス制御の各プロセスを順次実行し、上記
プロセスの実行結果に基づいて、上記プログラムを参照
して次処理プロセスを実行するプログラム実行部と、を
備えたものである。
【0063】また、請求項42にかかるシーケンス制御
装置は、請求項41に記載のシーケンス制御装置におい
て、上記プログラム実行部は、実行可能プロセスが登録
される実行テーブルと、上記記憶部のプログラムを参照
し、上記実行テーブルに実行可能プロセスを登録するプ
ロセス登録部と、上記実行可能プロセスを実行し、その
実行結果が正常か否か判断し、上記プロセス登録部に、
次工程プロセス、もしくは、遷移先プロセスを実行可能
プロセスとして登録させるプロセス実行部と、を備えた
ものである。
【0064】また、請求項43にかかるシーケンス制御
装置は、各タスク名とシーケンスとの関係と、上記シー
ケンスとイベントとの関係と、上記シーケンスに含まれ
る複数の処理プロセスと、該処理プロセスよりの遷移先
とが記述されたデータ部と、上記データ部の内容を読み
込み、プログラムに変換するプログラム生成部と、上記
プログラムが格納される記憶部と、上記記憶部に格納さ
れた上記プログラムを参照してシーケンス制御の実行と
ともに、タスク番号と、インデックスとを用いてタスク
のスケジューリングをも実行するプログラム実行部と、
を備えたものである。
【0065】また、請求項44にかかるシーケンス制御
装置は、請求項43に記載のシーケンス制御装置におい
て、上記プログラム実行部は、実行可能プロセスが、タ
スク番号の付与されたタスクごとに登録される実行テー
ブルと、上記プログラムを参照し、上記実行テーブルに
実行可能プロセスを登録するプロセス登録部と、発生し
たイベントが、該イベントの属するタスクごとに登録さ
れるイベントキューを有するイベントキューテーブル
と、イベントが発生すると、上記プログラムを参照し、
該イベントの属するタスクに対応したイベントキューに
該イベントを登録するイベント解析部と、登録イベント
に対応するシーケンス制御の各プロセスを実行可能プロ
セスとして上記実行テーブルに登録するようにプロセス
登録部に命令を出し、インデックスをずらしながら該イ
ンデックスと同じタスク番号の実行可能プロセスを実行
するシーケンス実行部と、を備えたものである。
【0066】また、請求項45にかかるシーケンス制御
装置は、請求項41ないし請求項44のいずれか一つに
記載のシーケンス制御装置において、上記データ部は、
階層構造のテーブルで定義されるものである。
【0067】また、請求項46にかかるタスクスケジュ
ーリングプログラム記録媒体は、実行可能タスクが登録
されるタスク実行テーブルを有し、上記実行可能タスク
の実行順序を制御するプログラムを記録したタスクスケ
ジューリングプログラム記録媒体において、上記実行可
能タスクをタスクに付与されたタスク番号の順に実行す
るプログラムを記録したものである。
【0068】また、請求項47にかかるプログラム生成
プログラム記録媒体は、シーケンスに含まれる複数の処
理プロセスと、該処理プロセスよりの遷移先とが記述さ
れたデータを読み込むプログラムと、上記データの内容
をプログラムソースコードに変換するプログラムと、上
記プログラムソースコードをコンパイル、及びリンク
し、実行可能プログラムを生成するプログラムと、を記
録したものである。
【0069】また、請求項48にかかるプログラム実行
プログラム記録媒体は、シーケンスに含まれる複数の処
理プロセスと、該処理プロセスよりの遷移先とが記述さ
れたシーケンス情報を有し、シーケンス制御を実行する
プログラムを記録したプログラム実行プログラム記録媒
体であって、上記シーケンス情報を参照してシーケンス
制御のプロセスを順次実行するプログラムと、上記プロ
セスの実行結果に基づいて、上記シーケンス情報を参照
して次処理プロセスを実行するプログラムと、を記録し
たものである。
【0070】また、請求項49にかかるプログラム実行
プログラム記録媒体は、タスクにタスク番号を付与し、
各タスク名とシーケンスとの関係、上記シーケンスとイ
ベントとの関係、上記シーケンスに含まれる複数の処理
プロセス、及び該処理プロセスよりの遷移先が記述され
たシーケンス情報と、実行可能プロセスが該プロセスの
属するタスクごとに登録される実行テーブルと、タスク
番号ごとのイベントキューと、を有し、タスクをタスク
番号と、インデックスとを用いてスケジューリングしな
がら上記実行可能プロセスを順次実行するプログラムを
記録したプログラム実行プログラム記録媒体であって、
現在のインデックスと同じタスク番号のイベントキュー
に登録イベントがあり、かつ、上記実行テーブルに該タ
スク番号の実行可能プロセスがない場合は、上記登録イ
ベントを削除し、上記シーケンス情報を参照して該イベ
ントに対応するシーケンスの先頭プロセスを上記実行テ
ーブルに上記タスク番号の実行可能プロセスとして登録
する第1のステップと、現在のインデックスと同じタス
ク番号の実行可能プロセスが上記実行テーブルに登録さ
れている場合は、該プロセスを実行するとともに、上記
実行テーブルから削除する第2のステップと、上記プロ
セスの実行結果に基づいて、上記シーケンス情報を参照
して次処理プロセスのある場合は、該次処理プロセスを
上記実行テーブルに実行可能プロセスとして登録する第
3のステップと、インデックスをずらす第4のステップ
とを備え、上記第1ないし第4のステップを繰り返すプ
ログラムを記録したものである。
【0071】また、請求項50にかかるシーケンス制御
プログラム記録媒体は、シーケンスに含まれる複数の処
理プロセスと、該処理プロセスよりの遷移先とが記述さ
れたデータを有し、上記シーケンス制御を実行するプロ
グラムを記録したシーケンス制御プログラム記録媒体で
あって、上記データの内容を読み込み、プログラムに変
換して記憶部に格納するプログラムと、上記記憶部のプ
ログラムを参照してシーケンス制御の各プロセスを順次
実行するプログラムと、上記プロセスの実行結果に基づ
いて、上記プログラムを参照して次処理プロセスを実行
するプログラムと、を記録したものである。
【0072】また、請求項51にかかる記録媒体は、シ
ーケンスに含まれる複数の処理プロセスと、該処理プロ
セスよりの遷移先とをデータとして記録した記録媒体で
あって、上記複数の処理プロセスを記録してなる第1の
領域と、上記複数の処理プロセスのそれぞれに関連づけ
て、単数、あるいは複数の遷移先プロセスを記録してな
る第2の領域とを備えたものである。
【0073】また、請求項52にかかる記録媒体は、請
求項51に記載の記録媒体において、上記記録媒体は、
さらに、上記プロセスに関連して、上記プロセスの待ち
時間を記録してなる第3の領域を備えたものである。
【0074】また、請求項53にかかる記録媒体は、タ
スク名と、該タスク名に対応するイベントと、該イベン
トに対応するシーケンスと、該シーケンスにおける複数
の処理プロセスと、該処理プロセスよりの遷移先と、を
データとして記録した記録媒体であって、上記タスク名
を記録してなる第1の領域と、上記タスク名に関連づけ
て、単数、あるいは複数のイベントを記録してなる第2
の領域と、上記イベントのそれぞれに関連づけて、シー
ケンスを記録してなる第3の領域とを備え、上記第3の
領域は、さらに、上記シーケンスのそれぞれに関連づけ
て、上記シーケンスに含まれるプロセスを記録してなる
プロセス記録領域と、上記プロセスのそれぞれに関連づ
けて、単数、あるいは複数の遷移先プロセスを記録して
なる遷移先プロセス記録領域と、から構成されるもので
ある。
【0075】
【発明の実施の形態】(実施の形態1)
【0076】以下、本発明の実施の形態1によるタスク
スケジューリング装置、及び方法について、図面を参照
しながら説明する。図1は、本実施の形態1のタスクス
ケジューリング装置の構成を示すブロック図である。図
2は、タスク実行テーブルを示す図である。図3は、本
実施の形態1のタスクスケジューリング方法を示すフロ
ーチャートである。図1に示されるタスクスケジューリ
ング装置100は、タスク登録部101と、タスクスケ
ジューリング部102とを備える。さらに、タスクスケ
ジューリング部102は、タスク実行テーブル103
と、タスク実行部104とを備える。タスク登録部10
1は、タスクの起動要求を検知し、該タスクをタスクス
ケジューリング部102にあるタスク実行テーブル10
3に登録する。タスク実行テーブル103は、実行すべ
きタスクを一時的に登録するテーブルであり、例えば、
図2(a)、及び(b)で示される。上記タスク実行テ
ーブル103は、タスクの数だけの大きさを持ってお
り、各タスクとタスク番号とを一対一に対応させてい
る。タスク実行部104は、上記タスク実行テーブル1
03に登録されたタスクを参照し、INDEXとタスク
番号とを用いてタスクの実行をスケジューリングする。
上記INDEXは、全タスク番号のいずれかの値をとる
変数である。
【0077】次に、本実施の形態1のタスクスケジュー
リング装置100の動作について、図2、及び図3を用
いて説明する。本実施の形態1においては、具体例とし
て、タスク実行部104が備える図示しないCPUは5
msごとに処理を実行し、1回の処理で最大3個のタス
クを実行できるとする。まず、図示しないCPUにおけ
る処理が開始される前に、タスクA〜Eのタスク起動要
求が発生したとする。すると、タスク登録部101が上
記各タスクの起動要求を検知し、各タスクをタスク実行
テーブル103の実行可能タスクに登録する。タスクの
登録されたタスク実行テーブル103は、図2(a)の
ようになっている。なお、この各タスクの起動要求の発
生、及びタスク実行テーブル103への登録は、説明の
簡単のため、1回しか起こらなかったとする。
【0078】次に、タスクスケジューリング部102の
タスクスケジューリング方法について、図3のフローチ
ャートを用いて説明する。タスク実行部104の図示し
ないCPUが時間=0msに1回目の処理を開始し、ま
ず、実行タスク数=0、ループ回数=0とする(ステッ
プS301)。
【0079】次に、ループ回数に1を足し、ループ回数
=1とする(ステップS302)。そして、タスク実行
部104は、図2(a)のタスク実行テーブル103を
参照し、現在のINDEXに対応したタスク番号の実行
可能タスクが登録されているか否か判断し(ステップS
303)、登録されているなら、該タスクを取り出して
タスク実行テーブル103から削除し、実行する(ステ
ップS304、S305)。ここで、処理開始時には、
一回だけ、INDEXを初期化し、INDEX=0とす
る。タスク番号が0であるタスクはタスクAであり、タ
スクAは実行可能タスクに登録されているので、タスク
Aをタスク実行テーブル103から削除し、実行する
(ステップS304、305)。そして、実行タスク数
に1を足し、実行タスク数=1とする(ステップS30
6)。なお、ステップS303において、現在のIND
EXに対応したタスク番号の実行可能タスクが登録され
ていないときは、ステップS304〜ステップS306
をスキップして、ステップS307に進む。
【0080】次に、ステップS307では、INDEX
に1を足し、INDEX=1とする。そして、INDE
Xがタスク実行テーブルの数以上か否か判断する(ステ
ップS308)。タスク実行テーブル103の数以上で
あれば、INDEX=0と置き換える(ステップS30
9)が、今回はINDEX=1であるのでINDEXの
置き換えは実行しない。
【0081】次に、実行タスク数が最大実行数(3個)
を超えているか判断する(ステップS310)。実行タ
スク数=1で、まだ、最大実行数を超えていなので、ス
テップS311に進み、ループ回数が実行テーブル数未
満か否か判断する。ループ回数(1回)は、タスク実行
テーブル数(=5)未満であるので、また、ステップS
302に戻り、上記のような流れの処理を繰り返す。な
お、このループ回数が実行テーブル数未満であるか否か
の確認は、タスク実行テーブル103にタスクが登録さ
れていないときにも、タスク実行部104はタスク実行
テーブル103の実行可能タスクの欄を一通り見たら、
その回の処理を終了するために必要な判断である。ステ
ップS311の判断がなければ、タスク実行テーブル1
03にタスクの登録のないときには、タスク実行部10
4は永久にタスク実行テーブル103の確認を行い、そ
の回の処理を終了できない。
【0082】このようにして、タスクA、タスクB、及
びタスクCを実行すると、実行タスク数=3となり、ス
テップS310の判断により、終了となる。このとき、
タスク実行テーブル103からは、タスクA、タスク
B、及びタスクCが削除されている。
【0083】1回目の処理が終了したときはINDEX
=3である。また、2回目の処理が開始されたとき(時
間=5ms)のタスク実行テーブル103は、図2
(b)のようになっている。なお、図2(b)におい
て、実行可能タスクの欄が「−」であるところは、登録
されているタスクがないことを示している。タスク実行
部104の図示しないCPUによる2回目の処理では、
タスクDから実行され、タスクD、タスクEが実行さ
れ、そして、2回目の処理を終了する。その後は、タス
ク実行テーブル103は空の状態になっているので、タ
スク実行テーブル103への新たなタスクの登録がある
まで、タスク実行部104は、ただ、実行可能タスクの
チェックのみを5msごとに行う。
【0084】このように、本実施の形態1によるタスク
スケジューリング方法によれば、タスクにタスク番号を
付与し、INDEXを順番にずらしながら該INDEX
に対応したタスク番号のタスクを実行する方法としたこ
とにより、複雑なプログラムを構成し、細かい制御を行
うことなく、タスクをスケジューリングすることが可能
で、特定のタスクが実行されないままになることを防止
することもできる。また、プログラムの構成が簡単にな
るため、プログラムのサイズも小さくなる。さらに、図
3のステップS310により、CPUの能力に合わせ
て、1回の処理で実行する最大タスク数を制御できるた
め、一回の処理時間内でタスクの実行が終了せず、常駐
タスク、及び定周期タスクの起動タイミングが確保でき
ない状況を回避することもできる。
【0085】なお、本実施の形態1のタスクスケジュー
リング装置、及び方法では、タスク実行テーブルは1つ
であり、タスクの起動要求が発生したときには上記タス
ク実行テーブルに全てのタスクが登録されるものとした
が、これは一例であって、例えば、全タスクを複数のタ
スクのグループに分け、該グループごとにタスク実行テ
ーブルを備え、また、一回のタスク実行処理で実行する
実行タスク数を、各グループごとに設定することも可能
である。このときには、一回のタスク実行処理におい
て、図3のフローチャートの開始から終了までを各タス
クのグループごとに繰り返すことになる。したがって、
上記タスクのグループが3個のときには、INDEX
は、各グループごとに、例えば、INDEX(1)、I
NDEX(2)、及びINDEX(3)のように、3種
類用意する必要がある。上述のようにタスクの特定のグ
ループごとにタスク実行テーブルを備え、上記グループ
ごとの実行タスク数を設定することにより、本実施の形
態1と同様の効果に加え、さらに、優先度の高いタスク
のグループには、実行タスク数をより多く割り当てるこ
とにより、上記優先度の高いタスクがより確実に実行さ
れるようになる効果もある。また、タスクの駆動種別に
よりタスクをグループ分けすることも可能であり、この
ときには、定周期タスク、及び常駐タスクが、不定期に
起動されるイベントタスクの実行により妨げられること
なく安定して実行される効果がある。
【0086】また、本実施の形態1では、タスク番号、
及びINDEXは、0から始まる連続した整数であり、
該INDEXを1だけ増加させることによりINDEX
をずらすとしたが、これは一例であって、例えば、1か
ら始まる連続した整数、もしくは、0から始まる連続し
た偶数等、ある一定の規則を持って変化する重複しない
数字、または、記号等であれば、それらをタスク番号、
及びINDEXとして用いることも可能であり、さら
に、INDEXを減少させるか、もしくは、何らかの一
定の規則に従って変化させることも可能であり、同様の
効果が得られる。
【0087】また、本実施の形態1では、INDEXを
一つずらす処理をタスクの実行の後で行っているが、こ
れは一例であって、例えば、図3でのINDEXを一つ
ずらす処理、ステップS308、及びステップS309
をタスクの実行の前、すなわち、ステップS303の前
等で行うことも可能であり、同様の効果が得られる。
【0088】また、本実施の形態1では、タスク実行の
処理間隔を5msとしたが、これは一例であって、どの
ような処理間隔であっても、タスクのスケジューリング
を実現でき、同等の効果が得られる。
【0089】また、本実施の形態1では、周期的にタス
ク実行処理を開始するとしたが、これは一例であって、
例えば、連続的にタスク実行処理を行なうことも可能で
あり、このようにしても、タスク番号と、INDEXと
を用いたタスクのスケジューリングが可能である。
【0090】また、本実施の形態1では、図3のフロー
チャートにおいて、タスクをタスク実行テーブルから取
り出し、削除して実行するとしたが、これは一例であっ
て、タスクを実行した後、該タスクを上記タスク実行テ
ーブルから削除してもよい。
【0091】(実施の形態2)
【0092】以下、本発明の実施の形態2によるシーケ
ンス制御装置、及び方法について、図面を参照しながら
説明する。図4は、本実施の形態2によるシーケンス制
御装置400の構成を示すブロック図である。図5は、
データの構造を示す図であり、図6は、シーケンステー
ブル、及び遷移テーブルを示す図である。図7は、実行
テーブル、シーケンステーブル、及び遷移テーブルの一
例を示す図である。図4に示されたシーケンス制御装置
400は、データ部401と、プログラム生成部402
と、記憶部403と、プログラム実行部404とを備え
る。また、データ部401は、シーケンステーブル40
5と、遷移テーブル406とを備える。記憶部403
は、ソースコード格納部412と、実行プログラム格納
部413と、メモリ414とを備える。プログラム生成
部402は、解釈部407と、生成部408とを備え
る。プログラム実行部404は、プロセス登録部409
と、実行テーブル410と、プロセス実行部411とを
備える。
【0093】シーケンステーブル405と、遷移テーブ
ル406とは、図5に示されるような階層構造をしたデ
ータである。テーブルとして表したときには、シーケン
ステーブル405は、図6(a)のように、また、遷移
テーブル406は、図6(b)のように示される。図6
(a)のシーケンステーブルにおいて、プロセスとは、
CPUの実行する処理のことであり、待ち時間とは、上
記プロセスを実行するまで待つ時間のことである。ま
た、図6(b)の遷移テーブルは、上記プロセスの実行
結果が正常でなかったときに遷移する遷移先プロセスを
示すテーブルのことである。
【0094】解釈部407は、データ部401に記載さ
れたデータを参照し、そこに記載されているデータがど
のようなプロセスに対応するのかを解釈する。生成部4
08は、上記解釈部407において解釈されたデータの
内容をプログラム言語で記述し、その生成したプログラ
ムソースコードを記憶部403のソースコード格納部4
12に格納する。記憶部403のソースコード格納部4
12に格納されたプログラムソースコードは、コンパイ
ル、及びリンクされ、実行可能プログラムとなり、該実
行可能プログラムは、実行プログラム格納部413に格
納される。上記実行可能プログラムは、実行時にメモリ
414に格納される。プロセス登録部409は、上記メ
モリ414に格納された上記シーケンステーブル40
5、及び上記遷移テーブル406を参照してプロセスを
実行テーブル410に登録する。実行テーブル410
は、図7(a)で示されるように、1つの実行可能プロ
セスを書き込むことのできるセルと、該プロセスに対応
した待ち時間を書き込むことのできるセルとを備えてい
る。プロセス実行部411は、上記実行テーブル410
を参照し、実行可能プロセスに登録されているプロセス
を実行する。また、上記プロセスの実行結果を受け取
り、プロセス登録部409に新たなプロセスを実行テー
ブル410に登録させる。
【0095】次に、本実施の形態2によるシーケンス制
御装置の動作、及びシーケンス制御方法について図8を
用いて説明する。図8は、シーケンス制御方法を示すフ
ローチャートである。以下、具体例として、従来例のプ
ログラム生成方法と同じシーケンス制御について説明す
る。まず、上記従来例と同じシーケンス制御のプロセス
等を、データ部401のシーケンステーブル405と、
遷移テーブル406とに記入する。例えば、表計算ソフ
トなどを用いて、図7(b)、(c)、(d)、及び
(e)のように、それぞれのセルに、具体的なプロセス
名や待ち時間、遷移先等を記入することにより、上記各
テーブルを作成する。
【0096】次に、プログラム生成部402の解釈部4
07は、上記データ部401の各テーブルに記載された
プロセス名、遷移先名等を参照し、それらが具体的にど
のようなプロセスであるのかを解釈する。例えば、表計
算ソフトの表などに記載された図7(b)のような文字
列を読み取り、その「処理A」などが、具体的にどのよ
うな内容の処理であるのかを解釈する。そして、その解
釈結果を生成部408に伝える。生成部408は、上記
解釈部407からの解釈結果をもとに、データ部401
に記載されている階層構造のテーブルデータをプログラ
ム言語で記述し、その生成したプログラムソースコード
を記憶部403のソースコード格納部412に格納す
る。したがって、記憶部403に記録されているプログ
ラム自身は、図5に示される階層構造のデータをプログ
ラム言語で記述しただけのものである。上記プログラム
ソースコードは、コンパイル、及びリンクされ、実行可
能プログラムとなり、実行プログラム格納部413に格
納される。該実行可能プログラムは、実行時にメモリ4
14に格納される。プログラム実行部404は、上記メ
モリ414に格納されたプログラムを参照しながら、シ
ーケンス制御を実行する。
【0097】以下、図8のフローチャートを用いて上記
シーケンス制御について説明する。まず、プロセス実行
部411がプロセス登録部409に先頭プロセスと、そ
の待ち時間とを実行テーブル410の実行可能プロセス
に登録するように命令を出す。すると、プロセス登録部
409は、メモリ414を参照してシーケンステーブル
405の先頭プロセスと、その待ち時間とを読み出し、
実行テーブル410に登録する(ステップS801)。
図7(b)のシーケンステーブルの先頭プロセスである
処理Aが登録された実行テーブル410は、図7(a)
で示される。
【0098】次に、プロセス実行部411は、実行テー
ブル410の実行可能プロセスに登録されたプロセスの
待ち時間=0か判断する(S802)。処理Aの待ち時
間は0であるので、処理Aを実行テーブル410から取
り出し、削除する(ステップS804)。
【0099】次に、ステップS805に進み、実行テー
ブル410から取り出した処理Aを実行する。処理Aの
実行結果は、プロセス実行部411に返される。プロセ
ス実行部411は、該実行結果が正常か否か判断する
(ステップS806)。処理Aに関しては、遷移テーブ
ルの欄が「−」となっているが、これは、遷移テーブル
の設定がなく、実行結果はすべて正常となることを示
す。したがって、プロセス実行部411は、プロセス登
録部409に次工程プロセスがあるか否かの判断させ、
次工程プロセスがある場合は、該プロセスを実行テーブ
ル410に登録させる。プロセス登録部409は、メモ
リ414を参照し、シーケンステーブルに、次工程プロ
セス「条件判断1」のあることを確認し(ステップS8
07)、該次工程プロセスと、その待ち時間とを実行テ
ーブル410に登録する(ステップS808)。
【0100】そして、ステップS802に戻り、プロセ
ス実行部411は、実行テーブル410の実行可能プロ
セスに登録された条件判断1に対応する待ち時間=0か
否か判断する。条件判断1の待ち時間は20msである
ので、20ms時間待ちし(ステップS803)、そし
て、条件判断1を実行テーブル410から取り出し、削
除して実行する(ステップS804、S805)。
【0101】上記プロセスの実行結果は、プロセス実行
部411に返され、該実行結果が正常か否か判断する
(ステップS806)。上記条件判断1の実行では、条
件1を満たすときには、実行結果が正常となり、条件1
を満たさないときには、実行結果が正常でないとする。
実行結果が正常でないときには、プロセス実行部411
は、プロセス登録部409に上記条件判断1に対応する
遷移テーブルを参照し、遷移先プロセスを実行テーブル
410に登録するように命令を出す。プロセス登録部4
09は、記録部403の図7(c)の遷移テーブルAを
参照し、実行テーブル410にプロセス番号が3である
条件判断2を登録する。そして、また、ステップS80
2からの処理を繰り返す。
【0102】上記ステップS806において、プロセス
実行部411が上記条件判断1の実行結果は正常である
と判断したときには、プロセス登録部409に次工程プ
ロセスを実行テーブル410に登録するように命令を出
し、上記プロセス登録部409は、次工程プロセスであ
る処理1を実行テーブル410に登録する。そして、ま
た、ステップS802からの処理を繰り返す。このよう
にして、プロセス実行部411がプロセス番号が7であ
る処理Cまでを実行すると、次工程プロセスはないた
め、終了となる。
【0103】このように、本実施の形態2におけるシー
ケンス制御装置、及び方法によれば、プログラム自身は
階層構造のデータだけであり、そのデータだけのプログ
ラムを実行することのできるプログラム実行部404を
備えたことで、上記データだけのプログラムのシーテン
ス制御を実行できる。また、上述のように、プログラム
はデータのみであるため、該プログラムへのプロセスの
追加、削除、変更等に容易に対応することができ、条件
分岐としての遷移先の変更も遷移テーブルの内容の変更
のみで容易に行うことができるため、適応範囲が広く、
記述能力の高いシーケンス制御装置、及び方法を提供す
ることができる。例えば、図7の例において、処理Cの
後に処理Dを追加したいときには、図7(b)のシーケ
ンステーブルに、シーケンス番号8として処理Dを追加
するだけでよい。
【0104】さらに、プログラムはデータのみであり、
プログラム中には条件分岐等を含まないため、プログラ
ム容量は必要最小限となり、プログラムの容量が従来の
ものに比べて減少し、また、たとえ処理を追加しても、
プログラムの容量の増加は、その処理のデータ分だけで
済む。したがって、汎用性が非常に高く、さまざまなシ
ーケンス制御に柔軟に対応できるシーケンス制御装置、
及び方法となっている。以上より、プログラムのサイズ
効率は、従来のものに比べ、格段に向上している。
【0105】なお、本実施の形態2のプログラム生成方
法では、遷移テーブルによって指定される遷移先プロセ
スを一つとしたが、これは一例であって、図8のフロー
チャートのステップS806の判断において、プロセス
の実行結果が正常でないときには、複数の遷移先の中か
らいずれかを選ぶことも可能であり、同様の効果が得ら
れる。例えば、図7(b)のシーケンステーブルにおい
て、遷移テーブルAを図7(f)の遷移テーブルA’に
変更し、シーケンス番号1の条件判断1の実行におい
て、条件1に当てはまるときには結果が正常であると
し、条件1に当てはまらないが、条件2には当てはまる
とき、条件1、及び条件2に当てはまらないが、条件3
には当てはまるとき、条件1、条件2、及び条件3に当
てはまらないときには、それぞれ、遷移番号1、遷移番
号2、遷移番号3のプロセスに遷移するように設定する
こともできる。このように、遷移テーブルの変更のみ
で、容易に遷移先を変更することができる。
【0106】また、本実施の形態2では、データ部40
1、プログラム生成部402、記憶部403、及びプロ
グラム実行部404は、すべて一つのシーケンス制御装
置400に含まれるとしたが、これは一例であって、図
9のように、プログラムを生成するプログラム生成装置
900と、上記生成されたプログラムを記録する記録媒
体903と、上記記録媒体903に記録されたプログラ
ムを読み込んで、シーケンス制御を実行するプログラム
実行装置901とに分けることも可能である。なお、上
記プログラム生成装置900によりプログラムを生成す
る方法をプログラム生成方法、上記プログラム実行装置
901によりシーケンス制御を実行する方法をプログラ
ム実行方法とする。ここで、図9において、図4と同一
符号は、本実施の形態2のシーケンス制御装置と同一の
ものを示しており、それらの説明は省略する。書き込み
部902は、プログラム生成部402の生成したプログ
ラムを記録媒体903に書き込む。上記記録媒体903
には、実行可能プログラムが書き込まれる。また、読み
込み部904は、記録媒体903に書き込まれた実行可
能プログラムを読み出す。読み出されたプログラムは、
上記読み込み部904の図示しないメモリに格納され
る。
【0107】本実施の形態2のシーケンス制御装置40
0を、図9のような、プログラム生成装置900と、プ
ログラム実行装置901と、記録媒体903とに分ける
ことにより、本実施の形態2と同様の効果の上に、さら
に、プログラム実行装置901のみを単独で使用できる
ため、シーケンス制御装置400に比べてプログラム生
成装置900を含まない分、装置を小型化できる。ま
た、単一のプログラム生成装置900しかなくても、複
数のプログラム実行装置901でシーケンス制御を実現
することも可能なため、複数のシーケンス制御装置40
0を利用した場合に比べて、コストダウンできる。さら
に、事前にプログラム生成装置900により複数の種類
のシーケンス制御のデータプログラムを記録媒体903
に記録しておくことにより、記録媒体903の変更のみ
により、容易にプログラム実行装置901のシーケンス
制御を変更することもできる。
【0108】また、本実施の形態2では、プロセス登録
部409が記憶部403のメモリ414に格納されてい
る実行可能プログラムにアクセスし、該実行可能プログ
ラムに含まれるプロセス等を実行テーブル410に登録
し、プロセス実行部411が上記登録されたプロセスを
実行するものとしたが、これは一例であって、上記実行
テーブル410のような一時的にプロセスを登録するよ
うな構成部分を備えず、直接、記憶部403のメモリ4
14にアクセスしながらシーケンス制御を実行すること
も可能であり、同様の効果が得られる。
【0109】また、本実施の形態2では、シーケンステ
ーブルの数を一つとしたが、これは一例であって、シー
ケンステーブルを複数設けるか、または、シーケンステ
ーブルのさらにもう一つ下の階層のサブシーケンステー
ブル等を設けることにより、階層構造のシーケンスとす
ることも可能であり、本実施の形態2と同様の効果の他
に、さらに記述能力が高くなるという効果も得られる。
【0110】また、本実施の形態2では、プロセスに対
応する待ち時間を設定したが、これは一例であって、例
えば、待ち時間を設定せずに、待ち時間が必要なときに
は、一つのプロセスとして所要の待ち時間だけの時間待
ちを実行することも可能であり、同様の効果が得られ
る。
【0111】また、本実施の形態2では、図8のフロー
チャートにおいて、プロセスを実行テーブルから取り出
し、削除して実行するとしたが、これは一例であって、
プロセスを実行した後、該プロセスを上記実行テーブル
から削除してもよい。あるいは、削除する工程を省い
て、次工程プロセス、もしくは、遷移先プロセスを実行
テーブルに登録する際に、上書きすることも可能であ
る。
【0112】また、本実施の形態2では、次工程プロセ
スは単数であり、遷移先プロセスは、遷移テーブルに記
載の複数のプロセスの中から実行結果に基づいて選ばれ
たものとしたが、これは一例であって、プロセスの実行
結果が正常である場合の次工程プロセスを複数のプロセ
スの中から選択することも可能であり、同様の効果が得
られる。
【0113】(実施の形態3)
【0114】本発明の実施の形態3によるシーケンス制
御装置、及び方法は、複数のタスクをINDEXにより
スケジューリングしながら、上記タスク中に含まれるシ
ーケンス制御を実行するものである。以下、本実施の形
態3のシーケンス制御装置、及び方法について、図面を
参照しながら説明する。図10は、本実施の形態3のシ
ーケンス制御装置の構成を示すブロック図である。シー
ケンス制御装置1000は、データ部1001と、プロ
グラム生成部1002と、記憶部1003と、プログラ
ム実行部1004とを備える。また、データ部1001
は、タスクテーブル1005と、イベントテーブル10
06と、シーケンステーブル1007と、サブシーケン
ステーブル1008と、遷移テーブル1009とを備え
る。プログラム生成部1002は、解釈部1010と、
生成部1011とを備える。記憶部1003は、ソース
コード格納部1017と、実行プログラム格納部101
8と、メモリ1019とを備える。プログラム実行部1
004は、イベント解析部1012と、イベントキュー
テーブル1013と、シーケンス実行部1014と、プ
ロセス登録部1015と、実行テーブル1016とを備
える。
【0115】図11は、タスクテーブル1005、イベ
ントテーブル1006、シーケンステーブル1007、
サブシーケンステーブル1008、及び遷移テーブル1
009のデータの階層構造を示した図である。図12
は、上記各テーブルを示した図である。図12(a)の
タスクテーブル1005は、各タスクと、イベントテー
ブル1006との対応を示している。図12(b)のイ
ベントテーブル1006は、該イベントテーブル100
6に属するイベントと、イベント受付条件、及びシーケ
ンステーブル1007との対応を示している。
【0116】上記イベント受付条件が「キューなし」の
ときには、発生したイベントをイベントキューテーブル
1013の上記イベントに対応したイベントキューに登
録する際に、それまでにキューイングされていたイベン
トを削除してから登録し、上記イベント受付条件が「キ
ューあり」のときには、発生したイベントを、上記イベ
ントキューの最後端に登録する。したがって、緊急度の
高いイベントのイベント受付条件は、「キューなし」と
しておき、緊急度の低いイベントのイベント受付条件
は、「キューあり」としておく。
【0117】図12(c)のシーケンステーブル100
7は、さらに複数のサブシーケンステーブル1008を
持っている。図12(d)のサブシーケンステーブル1
008は、さらに複数のプロセスを持っており、該プロ
セスには、待ち時間、遷移許可、及び遷移テーブル10
09とが対応している。実際にCPUがシーケンス制御
において実行するのは、上記プロセスである。上記待ち
時間とは、そのプロセスの実行が開始されるまでの待ち
時間のことである。
【0118】また、上記遷移許可が「許可」のときに
は、イベントがイベントキューにある場合、実行中のシ
ーケンスを終了して、上記イベントに対応したプロセス
を実行テーブル1016に登録して実行し、上記遷移許
可が「禁止」のときには、イベントがイベントキューに
ある場合でも、実行中のシーケンスにおいて、遷移許可
が「許可」のプロセスが実行テーブル1016に登録さ
れるか、もしくは、上記シーケンスの全てのプロセスが
終了するまで、上記イベントに対応したシーケンスを開
始することはできない。
【0119】図12(e)の遷移テーブル1009は、
上記プロセスの実行結果が正常でないときに遷移する遷
移先プロセスをシーケンステーブル1007と、サブシ
ーケンス番号と、プロセス番号とにより示す。解釈部1
010は、データ部1001に記載されたデータを参照
し、そこに記載されている内容がどのようなプロセスに
対応するのかを解釈する。生成部1011は、上記解釈
部1010において解釈されたデータの内容をプログラ
ム言語で記述し、その生成したプログラムソースコード
を記憶部1003のソースコード格納部1017に格納
する。記憶部1003のソースコード格納部1017に
格納されたプログラムソースコードは、コンパイル、及
びリンクされ、実行可能プログラムとなり、該実行可能
プログラムは、実行プログラム格納部1018に格納さ
れる。上記実行可能プログラムは、実行時にメモリ10
19に格納される。イベント解析部1012は、イベン
トが発生したことを検知して、当該イベントをイベント
キューテーブル1013の上記イベントに対応したイベ
ントキューにキューイングする。
【0120】イベントキューテーブル1013の各イベ
ントキューは、発生したイベントを格納する。図13
(a)は、該イベントキューテーブル1013を示した
図である。各タスクは、該タスクに対応したイベントキ
ューを持っている。すなわち、イベントキューは、タス
クの種類だけある。イベントキューは、FIFO(Fi
rst In First Out)のデータ構造であ
り、発生したイベントは、該イベントに対応するイベン
トキューの既登録イベントの後ろに登録され、登録され
ているイベントは、先頭側から取り出され、削除されて
いく。先頭のイベントが削除されると、次に登録されて
いるイベントは、一つ分先頭側にずれる。
【0121】実行テーブル1016は、タスクの数だけ
の大きさを持ち、各タスクとタスク番号とを一対一に対
応させており、次に実行すべきプロセス、及びそれに対
応した待ち時間、遷移許可を一時的に格納する。図13
(b)は、上記実行テーブル1016を示す図である。
シーケンス実行部1014は、イベントキューテーブル
1013、及び上記実行テーブル1016を参照し、上
記タスク番号とINDEXとを用いて複数のタスクをス
ケジューリングし、プロセスを実行する。上記INDE
Xは、全タスク番号のいずれかの値をとる変数である。
プロセス登録部1015は、上記シーケンス実行部10
14からの命令にもとづき、メモリ1019のデータプ
ログラムを参照しながら、実行テーブル1016にプロ
セスを登録する。
【0122】次に、本実施の形態3のシーケンス制御装
置1000の動作、及びシーケンス制御方法について、
図16、図17、及び図18を用いて説明する。図16
は、イベント解析部1012の動作を示したフローチャ
ートである。図17は、プログラム実行部1004の動
作を示したフローチャートである。図18は、図17の
フローチャート中の定義済み処理「プロセス実行」を示
したフローチャートである。
【0123】まず、希望するシーケンス制御のプロセ
ス、及びイベントテーブル1006とタスクとの関係等
を図11のような階層構造のデータ部1001のタスク
テーブル1005、イベントテーブル1006、シーケ
ンステーブル1007、サブシーケンステーブル100
8、及び遷移テーブル1009に記入する。例えば、表
計算ソフト等を用いて、図12(a)〜(e)のよう
に、それぞれのセルに具体的なプロセス名や待ち時間、
テーブル名等を記入することにより、上記各テーブルを
作成する。
【0124】次に、プログラム生成部1002の解釈部
1010は、上記データ部1001の各テーブルに記載
されたプロセス名、イベント名等を参照し、それらが具
体的にどのようなプロセス、及びイベント等に対応して
いるのかを解釈する。そして、その解釈結果を生成部1
011に伝える。生成部1011は、上記解釈部101
0からの解釈結果をもとに、データ部1001に記載さ
れている階層構造のテーブルデータをプログラム言語で
記述し、その生成したプログラムソースコードを記憶部
1003のソースコード格納部1017に格納する。そ
して、上記プログラムソースコードは、コンパイル、及
びリンクされ、実行可能プログラムとなり、実行プログ
ラム格納部1018に格納される。上記実行可能プログ
ラムは、メモリ1019に格納され、実行される。した
がって、記憶部1003に格納されているプログラム自
身は、図11に示される階層構造のデータをプログラム
ソースコードで記述したものに過ぎない。すなわち、デ
ータプログラムであって、そのシーケンス制御の実行プ
ログラムは含まれていない。プログラム実行部1004
は、上記メモリ1019に記録されたプログラムを参照
しながら、INDEXとタスク番号とを用いてタスクを
スケジューリングし、そのタスクに対応したシーケンス
制御を実行する。
【0125】以下、エアコンの制御を具体例としてシー
ケンス制御装置1000の動作について説明する。その
エアコン制御におけるテーブルデータの一部を図14に
示す。まず、図14に示されるテーブルデータは、プロ
グラム生成部1002により、プログラムに変換され、
その後、コンパイル、及びリンクされ、メモリ1019
に格納されたとする。
【0126】次に、外部で何らかのイベントが発生した
ときには、イベント解析部1012がそのことを検知
し、該イベントを一定の規則に従って、イベントキュー
テーブル1013の上記イベントに対応したイベントキ
ューにキューイングする。イベント解析部1012の動
作は、図16のフローチャートで示される。
【0127】イベント解析部1012は、常駐タスクと
して絶えずイベントの発生がないかを監視する。そし
て、イベントの発生があれば、まず、メモリ1019に
記録されているデータプログラムとしてのイベントテー
ブルを参照して、発生したイベントがどのイベントテー
ブルに属するのかを確認する。次に、タスクテーブルを
参照して、上記イベントテーブルとタスクとの対応を確
認する(ステップS1601)。そして、イベントキュ
ーテーブル1013の上記タスクに対応するイベントキ
ューに、登録イベントがあるか否かを判断し(ステップ
S1602)、登録イベントがないときには、ステップ
S1605に進み、上記イベントキューに発生したイベ
ントを登録する。
【0128】エアコン制御の例においては、図15
(a)のように、リモコンの冷房ボタンが押されて、イ
ベント「冷房」が発生したとする。このときは、まだ処
理が始まったばかりで、イベントキューテーブル101
3にはイベントが何もないとすると、イベント解析部1
012は、図15(a)の右側のイベントキューテーブ
ル1013のように、イベント「冷房キー」を、冷暖房
イベントキューの先頭にキューイングする。
【0129】図16のステップS1602において、発
生したイベントに対応するイベントキューに登録イベン
トがある場合には、その発生したイベントの受付条件
が、「キューなし」か「キューあり」かを判断する(ス
テップS1603)。そして、イベント受付条件が「キ
ューなし」のときには、上記イベントキューの登録イベ
ントをすべて削除し、発生したイベントをイベントキュ
ーの先頭に登録する。ステップS1603の判断で、イ
ベント受付条件が「キューあり」のときには、ステップ
S1605に進み、登録されているイベントの後ろに当
該イベントを登録する。イベント解析部1012は、上
述のように、常駐タスクであるので、常時イベントの発
生を監視し、そして、イベントの発生があったときに
は、図16のフローチャートの開始から終了までの処理
を繰り返す。
【0130】次に、シーケンス実行部1014の図示し
ないCPUにおける処理が開始されたとする。本実施の
形態3においては、5msごとに実行処理が開始され、
1回の処理で最大3個のプロセスを実行できるとする。
シーケンス実行部1014の図示しないCPUが処理を
開始すると、まず、実行プロセス数=0、ループ回数=
0とし(ステップS1701)、次にループ回数に1を
足してループ回数=1とする(ステップS1702)。
そして、実行テーブル1016の現在のINDEXに対
応するタスク番号のイベントキューにイベントが登録さ
れているか否か判断する(ステップS1703)。ここ
で、CPUの処理開始時には、一回だけ、INDEXを
初期化し、INDEX=0とする。すると、対応する表
示イベントキューにはイベントが登録されていないた
め、ステップS1708に進み、実行テーブル1016
にINDEXに対応するタスク番号の実行可能プロセス
の登録があるか否か判断する。実行可能プロセスの登録
もないため、INDEXに1を足し(ステップS171
0)、INDEX=1とする。そして、INDEXが実
行テーブル数(=3)以上か否か判断し(ステップS1
711)、まだ、実行テーブル数以上でないため、ステ
ップS1713に進み、実行プロセス数が最大実行数
(=3)以上か否か判断する(ステップS1713)。
まだ最大実行数以上ではないため、ステップS1714
に進み、ループ回数が実行テーブル数以上か否か判断す
る。ループ回数も、まだ実行テーブル数以上ではないた
め、また、ステップS1702にまで戻り、ループ回数
に1を足してループ回数=2とする。今回もINDEX
=1に対応するタスク番号の温度監視イベントキューに
登録されているイベントはないため、INDEXに1を
足し(ステップS1710)、INDEX=2とするだ
けで、また、ステップS1702に戻る。
【0131】INDEX=2のときには、対応するタス
ク番号の冷暖房イベントキューには、登録イベント「冷
房キー」がキューイングされているため、ステップS1
703の判断において、登録イベントあり、と判断し、
次にタスク実行テーブル1016に登録されている実行
可能タスクがあるか否か判断する(ステップS170
4)。まだ、実行テーブル1016には何も登録されて
いないので、ステップS1706に進み、シーケンス実
行部1014はプロセス登録部1015にイベントキュ
ーの先頭イベントに対応する先頭プロセスを実行テーブ
ル1016に登録するよう命令を出す。
【0132】冷暖房イベントキューには、冷房キーが登
録されているため、上記プロセス登録部1015は、メ
モリ1019の冷房シーケンスを参照し、冷房シーケン
スの先頭サブシーケンスであるコンプレッサ制御サブシ
ーケンステーブルを参照し、該サブシーケンステーブル
の先頭プロセスであるコンプレッサ状況確認を実行テー
ブル1016の冷暖房タスクに対応した実行可能プロセ
スに登録する。このとき、同時に該サブシーケンステー
ブルに記載されている待ち時間と遷移許可も実行テーブ
ル1016に登録する。上記プロセス等の登録された実
行テーブル1016は、図15(b)で示される。そし
て、シーケンス実行部1014は冷暖房イベントキュー
から冷房キーを削除する(ステップS1707)。次
に、ステップS1708に進み、実行テーブル1016
に実行可能プロセスがあるか否か判断するが、先程登録
されたコンプレッサ状況確認があるため、実行プロセス
あり、となり、定義済み処理「プロセス実行」を開始す
る(ステップS1709)。
【0133】ステップS1709の定義済み処理「プロ
セス実行」は、図18のフローチャートによって示され
る。まず、シーケンス実行部1014は、実行テーブル
1016の現在のINDEXに対応するタスク番号の待
ち時間=0か否か判断し(ステップS1801)、待ち
時間=0でないときには、プロセス実行を終了し、図1
7のフローチャートのステップS1710に進み、IN
DEXに1を足す。今回は、待ち時間=0であるため、
コンプレッサ状況確認を実行テーブル1016の実行可
能プロセスから取り出し、該プロセスを上記実行テーブ
ル1016から削除して(ステップS1802)、該プ
ロセスを実行する(ステップS1803)。そして、実
行プロセス数に1を足して、実行プロセス数=1とす
る。
【0134】次に、コンプレッサ状況確認の実行結果が
シーケンス実行部1014に返される。そして、シーケ
ンス実行部1014は、上記コンプレッサ状況確認の実
行結果が正常か否かを判断し(ステップS1805)、
正常でないときには、コンプレッサ状況確認に対応する
遷移テーブルを参照して、対応する遷移先のプロセスを
実行テーブル1016に登録するように、プロセス登録
部1015に命令を出す。該命令によりプロセス登録部
1015は遷移先プロセスを実行テーブル1016に登
録する(ステップS1808)。
【0135】実行結果が正常なときには、シーケンス実
行部1014は、プロセス登録部1015に次工程プロ
セスがあるか否か判断し(ステップS1806)、ある
場合は、そのプロセスを実行テーブル1016に登録す
るように命令を出す(ステップS1807)。今回は、
次工程プロセスとしての回転数変更があるため、プロセ
ス登録部1015は、該プロセスを実行テーブル101
6の実行可能プロセスに登録する。そして、ステップS
1709のプロセス実行を終了し、INDEXに1を足
してINDEX=3とする(ステップS1710)。そ
して、ステップS1711においてINDEXが実行テ
ーブル数以上であると判断し、INDEX=0と置き換
える。
【0136】次に、ステップS1714まで進み、ルー
プ回数が実行テーブル数以上であると判断する。なお、
ステップS1714の判断は、実行テーブル1016に
プロセスが登録されていないときにも、シーケンス実行
部1014は実行テーブル1016の実行可能プロセス
の欄を一通り見たら、その回の処理を終了するために必
要な判断である。ステップS1714の判断がなけれ
ば、実行テーブル1016にプロセスの登録のないとき
には、シーケンス実行部1014は永久に実行テーブル
1016の確認を行い、その回の処理を終了できない。
そして、ステップS1715に進み、実行テーブル10
16のすべての登録されているプロセスの待ち時間を、
処理間隔時間(=5ms)だけ引き、今回のシーケンス
実行処理を終了する。次回のシーケンス実行処理が開始
されると、ステップS1701からの処理を順次実行し
ていく。
【0137】このように、本実施の形態3によるシーケ
ンス制御装置、及び方法によれば、INDEXとタスク
番号とにより複数のタスクに対応した実行すべきプロセ
スをスケジューリングし、また、階層構造のデータを、
プログラム実行部1004により順次実行していくこと
により、複数のシーケンス制御を並行して実行すること
ができ、また、実行されないままになるプロセスが存在
せず、さらに、データプログラムのサイズ自体も必要最
小限で済むことになる。その上、本実施の形態3のデー
タは、階層構造のテーブルで表されているだけであるの
で、プロセスの追加、削除、変更等を容易に行うことが
でき、汎用性が高く、柔軟性に富んだシーケンス制御装
置、及び方法を実現することが可能となる。さらに、図
17のステップS1713により、CPUの能力に合わ
せて、1回の処理で実行する最大プロセス数を制御でき
るため、一回の処理時間内でプロセスの実行が終了しな
い状況を回避することもできる。
【0138】また、サブシーケンステーブルの遷移許可
を、「禁止」もしくは「許可」とできるため、シーケン
スの中で、必ず実行しなければいけないプロセスがある
場合には、そのプロセスの遷移許可を禁止にすることに
より、他のイベントが発生しても、そのイベントに対応
したシーケンス処理を実行する前に、上記プロセスを実
行してしまうことができる。
【0139】なお、本実施の形態3のシーケンス制御装
置、及び方法では、イベントタスクに対応したシーケン
ス制御についてのみ説明したが、これは一例であって、
例えば、常駐タスク、定周期タスクに対応したシーケン
ス制御をも実行することができ、同様の効果が得られ
る。常駐タスク、定周期タスクのシーケンス制御の方法
としては、定期的にイベントを発生させる周期イベント
発生装置を備えるか、もしくは、シーケンスの最後のプ
ロセスの次工程プロセスをシーケンスの先頭プロセスと
し、常駐タスクの場合は、該先頭プロセスの待ち時間を
0にし、また、定周期タスクの場合は、該先頭プロセス
の待ち時間を周期を考慮して決定すればよい。
【0140】また、本実施の形態3では、実行テーブル
は1つであり、実行可能プロセスの登録においては、上
記実行テーブルに全てのタスクに対応するプロセスが登
録されるものとしたが、これは一例であって、例えば、
全タスクを複数のタスクのグループに分け、該グループ
ごとに実行テーブルを備え、また、一回の処理で実行す
る実行プロセス数を、各グループごとに設定することも
可能である。このときには、一回の処理において、図1
7のフローチャートの開始から終了までをタスクの各グ
ループごとに繰り返すことになる。したがって、上記タ
スクのグループが3個のときには、INDEXは、各グ
ループごとに、例えば、INDEX(1)、INDEX
(2)、及びINDEX(3)のように、3種類用意す
る必要がある。上述のようにタスクの特定のグループご
とに実行テーブルを備え、上記グループごとの実行プロ
セス数を設定することにより、本実施の形態3と同様の
効果に加え、さらに、優先度の高いシーケンスを含むタ
スクのグループには、実行プロセス数をより多く割り当
てることにより、上記優先度の高いシーケンスがより確
実に実行される効果もある。また、タスクの駆動種別に
よりタスクをグループ分けすることも可能であり、この
ときには、定周期タスク、及び常駐タスクが、不定期に
起動されるイベントタスクの実行により妨げられること
なく安定して実行される効果がある。
【0141】また、本実施の形態3では、シーケンス制
御をシーケンステーブル1007と、サブシーケンステ
ーブル1008との2階層で表したが、これは一例であ
って、シーケンス制御に含まれるプロセスの量に応じ
て、シーケンステーブルのみで、もしくは、3階層以上
のシーケンステーブル、サブシーケンステーブル等を用
いることによっても実現することが可能であり、同様の
効果が得られる。
【0142】また、本実施の形態3では、データ部10
01、プログラム生成部1002、記憶部1003、及
びプログラム実行部1004は、すべて一つのシーケン
ス制御装置1000に含まれるとしたが、これは一例で
あって、図19のように、プログラムを生成するプログ
ラム生成装置1900と、上記生成されたプログラムを
記録する記録媒体1903と、上記記録媒体1903に
記録されたプログラムを読み込んで、シーケンス制御を
実行するプログラム実行装置1901とに分けることも
可能である。なお、上記プログラム生成装置1900に
よりプログラムを生成する方法をプログラム生成方法、
上記プログラム実行装置1901によりシーケンス制御
を実行する方法をプログラム実行方法とする。ここで、
図19において、図10と同一符号は、本実施の形態3
のシーケンス制御装置と同一のものを示しており、それ
らの説明は省略する。書き込み部1902は、プログラ
ム生成部1002の生成したプログラムを記録媒体19
03に書き込む。上記記録媒体1903には、実行可能
プログラムが書き込まれる。また、読み込み部1904
は、記録媒体1903に書き込まれた実行可能プログラ
ムを読み出す。読み出されたプログラムは、上記読み込
み部1904の図示しないメモリに格納される。
【0143】本実施の形態3のシーケンス制御装置10
00を、図19のような、プログラム生成装置1900
と、プログラム実行装置1901と、記録媒体1903
とに分けることにより、本実施の形態3と同様の効果の
上に、さらに、プログラム実行装置1901のみを単独
で使用できるため、シーケンス制御装置1000に比べ
てプログラム生成装置1900を含まない分、装置を小
型化できる。また、単一のプログラム生成装置1900
しかなくても、複数のプログラム実行装置1901によ
りシーケンス制御を実現することも可能なため、複数の
シーケンス制御装置1000を利用した場合に比べて、
コストダウンできる。さらに、事前にプログラム生成装
置1900により複数の種類のシーケンス制御のデータ
プログラムを記録媒体1903に記録しておくことによ
り、記録媒体1903の変更のみにより、容易にプログ
ラム実行装置1901のシーケンス制御を変更すること
もできる。
【0144】また、本実施の形態3では、イベントキュ
ーテーブル1013の各イベントキューにキューイング
できるイベントの数が、図13(a)により3個として
書かれているが、これは一例であって、そのシステムに
よって必要なだけのイベントをキューイングできる個数
であれば、3個に限られるものではなく、例えば、4
個、5個以上であってもよく、同様の効果が得られる。
【0145】また、本実施の形態3では、遷移テーブル
1009による遷移先プロセスの指定を遷移先シーケン
ステーブル、サブシーケンス番号、及びプロセス番号の
指定により行うものとしたが、これは一例であって、例
えば、サブシーケンステーブルと、プロセスとを指定す
ることにより遷移先プロセスを指定することもでき、同
様の効果が得られる。
【0146】また、本実施の形態3では、タスク番号、
及びINDEXは、0から始まる連続した整数であり、
該INDEXを1だけ増加させることによりINDEX
をずらすとしたが、これは一例であって、例えば、1か
ら始まる連続した整数、もしくは、0から始まる連続し
た偶数等、ある一定の規則を持って変化する重複しない
数字、または、記号等であれば、それらをタスク番号、
及びINDEXとして用いることも可能であり、さら
に、INDEXを減少させるか、もしくは、何らかの一
定の規則に従って変化させることも可能であり、同様の
効果が得られる。
【0147】また、本実施の形態3では、INDEXを
一つずらす処理をプロセスの実行の後で行っているが、
これは一例であって、例えば、図17でのINDEXを
一つずらす処理、ステップS1711、及びステップS
1712をプロセスの実行の前、すなわち、ステップS
1708の前等で行うことも可能であり、同様の効果が
得られる。
【0148】また、本実施の形態3では、プロセス実行
の処理間隔を5msとしたが、これは一例であって、ど
のような処理間隔であっても、複数のタスクに含まれる
シーケンスの制御を実現でき、同等の効果が得られる。
【0149】また、本実施の形態3では、周期的にプロ
セス実行処理を行なうとしたが、これは一例であって、
例えば、連続的にプロセス実行処理を行なうことも可能
であり、このようにしても、タスク番号と、INDEX
とを用いたタスクのスケジューリングが可能である。
【0150】また、本実施の形態3では、図18のフロ
ーチャートにおいて、プロセスを実行テーブルから取り
出し、削除して実行するとしたが、これは一例であっ
て、プロセスを実行した後、該プロセスを上記実行テー
ブルから削除してもよい。あるいは、削除する工程を省
いて、次工程プロセス、もしくは、遷移先プロセスを実
行テーブルに登録する際に、上書きすることも可能であ
る。
【0151】また、本実施の形態3では、次工程プロセ
スは単数であり、遷移先プロセスは、遷移テーブルに記
載の複数のプロセスの中から実行結果に基づいて選ばれ
たものとしたが、これは一例であって、プロセスの実行
結果が正常である場合の次工程プロセスを複数のプロセ
スの中から選択することも可能であり、同様の効果が得
られる。
【0152】なお、上記各実施の形態で示したタスクス
ケジューリング方法、シーケンス制御方法、プログラム
生成方法、及びプログラム実行方法を実現するプログラ
ムを記録した記録媒体を、システム、あるいは装置に供
給し、そのシステム、あるいは装置のCPU等の主処理
部が該記録媒体に格納されたプログラムを読み出し実行
することによっても、上記各実施の形態で説明した効果
と同様の効果を得ることができる。
【0153】なお、プログラムを記録する記録媒体とし
ては、例えば、フロッピーディスク、ハードディスク、
光ディスク、磁気ディスク、光磁気ディスク、CD−R
OM、磁気テープ、パンチカード、不揮発性のメモリカ
ード、ROM等を用いることができる。
【0154】
【発明の効果】以上の説明より明らかなように、請求項
1、及び請求項2のタスクスケジューリング方法によれ
ば、タスクをタスク番号と、INDEXとを用いてスケ
ジューリングする方法としたことで、複雑なプログラム
で細かい制御を行なうことなく、タスクをスケジューリ
ングすることが可能であり、また、特定のタスクが実行
されないままになるという状況を防止できる効果があ
る。
【0155】また、請求項3のタスクスケジューリング
方法によれば、一回の実行処理における実行タスク数を
制限できるものとしたことで、上記請求項1及び2の効
果に加え、さらに、一回の処理時間内にタスクの実行が
終了せず、常駐タスク、及び定周期タスクの起動タイミ
ングが確保できない状況を回避することのできる効果が
ある。
【0156】また、請求項4及び請求項5のタスクスケ
ジューリング方法によれば、タスクの駆動種別、もしく
は、タスクのグループごとに実行タスク数を制限できる
方法としたことで、上記請求項3の効果に加え、定周期
タスク、及び常駐タスクの実行が、不定期に起動される
イベントタスクの実行により妨げられることを防止する
ことができ、また、優先度の高いタスクのグループに
は、実行タスク数をより多く割り当てることにより、上
記優先度の高いタスクがより確実に実行されるようにな
る効果もある。
【0157】また、請求項6のタスクスケジューリング
方法によれば、一回の処理におけるタスクの実行を、タ
スク実行テーブルの全タスク番号に対応した実行可能タ
スクを確認することにより終了するものとしたことで、
タスクがタスク実行テーブルに登録されていないときに
も一回の処理を終了することができ、次にタスクがタス
ク実行テーブルに登録されるまで処理を終了できない状
況を回避することができる。
【0158】また、請求項7のタスクスケジューリング
方法によれば、タスク起動要求の発生によりタスクのタ
スク実行テーブルへの登録を行なうものとしたことで、
タスクの起動要求の発生したタスクを上記タスクスケジ
ューリング方法により、平等に、実行されない特定のタ
スクを発生させることなくスケジューリングすることが
できる効果がある。
【0159】また、請求項8のタスクスケジューリング
装置によれば、実行可能タスクがタスク番号ごとに登録
されるタスク実行テーブルと、タスク起動要求の発生し
たタスクを上記タスク実行テーブルに実行可能タスクと
して登録するタスク登録部と、インデックスをずらしな
がら、インデックスに対応したタスク番号の実行可能タ
スクを実行するタスク実行部とを備えたことで、細かい
制御を行なわなくても、インデックスとタスク番号とを
用いてタスクを順次実行でき、特定のタスクが実行され
ないままになる状況を回避できる効果がある。
【0160】また、請求項9ないし請求項12のプログ
ラム生成方法によれば、シーケンス制御の記述されたデ
ータを読み込み、上記データの内容をプログラムソース
コードに変換し、上記プログラムソースコードをコンパ
イル、及びリンクすることにより実行可能プログラムを
生成するものとしたことで、該プログラム生成方法によ
って作成されるプログラムは、シーケンスに含まれる処
理プロセス、及び該プロセスよりの遷移先等のデータの
みで構成されるため、プログラムの容量が最小限で済
み、また、上記データは、シーケンス制御のプロセス等
が記述されているだけであるため、シーケンスの変更等
に容易に対応することができる効果がある。
【0161】また、請求項13ないし請求項16のプロ
グラム生成装置によれば、シーケンス制御の記述された
データ部と、上記データ部をもとにプログラムを生成す
るプログラム生成部と、上記プログラムを記録媒体に記
録する書き込み部とを備えたことで、上記記録媒体に記
録されるプログラムはデータのみであるため、その容量
が最小限で済み、また、上記データ部は、シーケンス制
御のプロセス等が記述されているだけであるため、シー
ケンスの変更等に容易に対応することができる効果があ
る。
【0162】また、請求項17ないし請求項19のプロ
グラム実行方法によれば、シーケンスに含まれる複数の
処理プロセスと、該処理プロセスよりの遷移先とが記述
されたシーケンス情報を有し、シーケンス制御を実行す
るプログラム実行方法であって、上記シーケンス情報を
参照してシーケンス制御のプロセスを順次実行し、上記
プロセスの実行結果が正常でない場合は、上記シーケン
ス情報を参照して遷移先プロセスを実行するものとした
ことで、データのみのシーケンス情報により、複雑なシ
ーケンス処理を実行することができる効果がある。
【0163】また、請求項20ないし請求項24、請求
項28、及び請求項30のプログラム実行方法によれ
ば、タスクにタスク番号を付与し、各タスク名とシーケ
ンスとの関係と、該シーケンスに含まれる複数の処理プ
ロセスと、該処理プロセスよりの遷移先とが記述された
シーケンス情報、及び実行可能プロセスが該プロセスの
属するタスクごとに登録される実行テーブルを有し、上
記実行可能テーブルに登録された実行可能プロセスを、
タスクをスケジューリングしながら順次実行するプログ
ラム実行方法であって、いずれかのシーケンス制御を実
行する場合は、該シーケンス制御に含まれるプロセスを
実行テーブルに実行可能プロセスとして登録し、上記実
行可能プロセスをタスク番号の順に実行し、上記プロセ
スの実行結果に基づいて、上記シーケンス情報を参照し
て次処理プロセスを上記実行テーブルに実行可能プロセ
スとして登録し、上記実行可能プロセス登録と、該プロ
セスの実行とを繰り返し行うものとしたことで、複雑な
プログラムで制御することなく、データのみのシーケン
ス情報により、実行されないままとなる特定のプロセス
を生じることなく、複数のシーケンス処理を並行して実
行することができる効果がある。
【0164】また、請求項25及び請求項26のプログ
ラム実行方法によれば、請求項24に記載のプログラム
実行方法において、一回の処理で実行するプロセス数の
制限を、タスクの駆動種別ごと、もしくは、タスクのグ
ループごとに行なうものとしたことで、定周期タスク、
及び常駐タスクの実行が、不定期に起動されるイベント
タスクの実行により妨げられることなく、また、優先度
の高いシーケンスを含むタスクのグループには、実行プ
ロセス数をより多く割り当てることにより、上記優先度
の高いシーケンスがより確実に実行される効果もある。
【0165】また、請求項27のプログラム実行方法に
よれば、請求項24ないし請求項26のいずれか一つに
記載のプログラム実行方法において、上記処理におい
て、上記実行テーブルの全タスク番号の実行可能プロセ
スを確認すると、その回の処理を終了するものとしたこ
とで、プロセスが実行テーブルに登録されていないとき
にも一回の処理を終了することができ、次にプロセスが
実行テーブルに登録されるまで処理を終了できない状況
を回避することができる。
【0166】また、請求項29のプログラム実行方法に
よれば、請求項17ないし請求項28のいずれか一つに
記載のプログラム実行方法において、上記シーケンス情
報を、記録媒体に記録された実行可能プログラムとした
ことで、上記請求項17ないし請求項28の効果に加
え、上記記録媒体を変更することのみにより、容易に制
御シーケンスの内容を変更することのできる効果があ
る。
【0167】また、請求項31ないし請求項33のプロ
グラム実行装置によれば、記録媒体に書き込まれたプロ
グラムを読み込む、読み込み部と、上記読み込まれたプ
ログラムにより、シーケンス制御を実行するプログラム
実行部とを備えたことで、データのみのプログラムによ
り、複雑なシーケンス処理を実行することができる効果
がある。
【0168】また、請求項34ないし請求項37のプロ
グラム実行装置によれば、記録媒体に書き込まれた各タ
スク名とシーケンスとの関係と、上記シーケンスとイベ
ントとの関係と、上記シーケンスに含まれる複数の処理
プロセスと、該処理プロセスよりの遷移先とが記述され
たシーケンス情報を含むプログラムを読み込む、読み込
み部と、上記読み込まれたプログラムにより、シーケン
ス制御を実行するプログラム実行部とを備えたプログラ
ム実行装置において、上記プログラム実行部は、シーケ
ンス制御の実行とともに、タスク番号と、インデックス
とを用いてタスクのスケジューリングをも実行するもの
としたことで、データのみのシーケンス情報により、実
行されないままとなる特定のプロセスを生じることな
く、複数のシーケンス処理を並行して実行することがで
きる効果がある。
【0169】また、請求項38ないし請求項40のシー
ケンス制御方法によれば、シーケンス制御の記述された
データを有し、該シーケンス制御を実行するシーケンス
制御方法であって、上記データの内容を読み込み、プロ
グラムに変換して記憶部に格納し、上記プログラムを参
照してシーケンス制御の各プロセスを順次実行するもの
としたことで、上記プログラムは、データのみであるた
め、その容量は最小限で済み、また、上記データは、シ
ーケンス制御のプロセス等が記述されているのみである
ため、プロセスの追加、変更等を容易に行なえる効果が
ある。さらに、該データのみのプログラムを参照するこ
とにより、複雑なシーケンス制御を実行できる効果があ
る。
【0170】また、請求項41ないし請求項45のシー
ケンス制御装置によれば、シーケンスに含まれる複数の
処理プロセスと、該処理プロセスよりの遷移先とが記述
されたデータを有するデータ部と、上記データ部の内容
を読み込み、プログラムに変換するプログラム生成部
と、上記プログラムが格納される記憶部と、上記記憶部
に格納された上記プログラムを参照してシーケンス制御
の各プロセスを順次実行し、上記プロセスの実行結果に
基づいて、上記プログラムを参照して次処理プロセスを
実行するプログラム実行部とを備えたことで、上記プロ
グラムは、データのみであるため、その容量は最小限で
済み、また、上記データは、シーケンス制御のプロセス
等が記述されているのみであるため、プロセスの追加、
変更等を容易に行なえる効果がある。さらに、該データ
のみのプログラムを参照することにより、複雑なシーケ
ンス制御を実行できる効果がある。
【0171】また、請求項46のタスクスケジューリン
グ記録媒体によれば、実行可能タスクが登録されるタス
ク実行テーブルを有し、上記実行可能タスクの実行順序
を制御するプログラムを記録したタスクスケジューリン
グプログラム記録媒体において、上記実行可能タスクを
タスクに付与されたタスク番号の順に実行するプログラ
ムを記録したことで、実行されない特定のタスクを生じ
ないタスクスケジューリング方法を、細かい制御を実行
するプログラムとすることなく、容量の小さいプログラ
ムで提供できる効果がある。
【0172】また、請求項47のプログラム生成プログ
ラム記録媒体によれば、シーケンスに含まれる複数の処
理プロセスと、該処理プロセスよりの遷移先とが記述さ
れたデータを読み込み、上記データの内容をプログラム
ソースコードに変換し、上記プログラムソースコードを
コンパイル、及びリンクすることにより実行可能プログ
ラムを生成するプログラムを記録したことで、上記実行
可能プログラムは、データのみで構成されるため、本発
明のシーケンス制御において用いられる実行可能プログ
ラムを最小限の容量で作成するプログラム作成方法を、
パーソナルコンピュータあるいはワークステーションに
供給することができる。
【0173】また、請求項48、及び請求項49のプロ
グラム実行プログラム記録媒体によれば、シーケンス制
御に関するシーケンス情報を参照してシーケンス制御の
プロセスを順次実行し、上記プロセスの実行結果に基づ
いて、上記シーケンス情報を参照して次処理プロセスを
実行するプログラムを記録したことで、上記データのみ
のシーケンス情報により、複雑なシーケンス制御を実行
できるプログラム実行方法を、パーソナルコンピュー
タ、ワークステーション、あるいは、機器組み込み型マ
イコンに供給することができる。
【0174】また、請求項50のシーケンス制御プログ
ラム記録媒体によれば、シーケンスに含まれる複数の処
理プロセスと、該処理プロセスよりの遷移先とが記述さ
れたデータを有し、上記シーケンス制御を実行するプロ
グラムを記録したシーケンス制御プログラム記録媒体で
あって、上記データの内容を読み込み、プログラムに変
換して記憶部に格納し、上記記憶部のプログラムを参照
してシーケンス制御の各プロセスを順次実行し、上記プ
ロセスの実行結果に基づいて、上記プログラムを参照し
て次処理プロセスを実行するプログラムを記録したもの
としたことで、上記記憶部に記録されるプログラムは、
データのみの最小限の容量で済み、また、上記データ
は、シーケンス制御のプロセス等が記述されているのみ
であるため、プロセスの追加、変更等を容易に行うこと
ができ、さらに、該データのみのプログラムを参照する
ことにより、複雑なシーケンス制御を実行できるシーケ
ンス制御方法をパーソナルコンピュータ、ワークステー
ション、あるいは、機器組込み型マイコンに供給するこ
とができる。
【0175】また、請求項51ないし請求項53の記録
媒体によれば、プロセスを記録する領域と、上記プロセ
スに関連づけて、単数、あるいは、複数の遷移先プロセ
スを記録する領域とを備えたことにより、本発明のプロ
グラム実行方法において用いられるシーケンス制御のデ
ータの記録された記録媒体を、最小限の容量で提供する
ことのできる効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態1によるタスクスケジュー
リング装置の構成を示すブロック図である。
【図2】同実施の形態によるタスク実行テーブルを示す
図である((a)、(b))。
【図3】同実施の形態によるタスクスケジューリング方
法を示すフローチャートである。
【図4】本発明の実施の形態2によるシーケンス制御装
置の構成を示すブロック図である。
【図5】同実施の形態によるデータの構造を示す図であ
る。
【図6】同実施の形態による、(a)シーケンステーブ
ルと、(b)遷移テーブルを示す図である。
【図7】同実施の形態による、(a)実行テーブルと、
(b)シーケンステーブルと、(c)〜(d)遷移テー
ブルとを示す図である。
【図8】同実施の形態による、シーケンス制御方法を示
すフローチャートである。
【図9】同実施の形態による、プログラム生成装置と、
記録媒体と、プログラム実行装置との構成を示すブロッ
ク図である。
【図10】本発明の実施の形態3によるシーケンス制御
装置の構成を示すブロック図である。
【図11】同実施の形態による、データの構造を示す図
である。
【図12】同実施の形態による、(a)タスクテーブル
と、(b)イベントテーブルと、(c)シーケンステー
ブルと、(d)サブシーケンステーブルと、(e)遷移
テーブルとを示す図である。
【図13】同実施の形態による、(a)イベントキュー
と、(b)実行テーブルとを示す図である。
【図14】同実施の形態による、(a)タスクテーブル
と、(b)イベントテーブルと、(c)シーケンステー
ブルと、(d)サブシーケンステーブルと、(e)遷移
テーブルとを示す図である。
【図15】同実施の形態による、(a)リモコンと、イ
ベント解析部と、イベントキューと、(b)実行テーブ
ルとを示す図である。
【図16】同実施の形態による、イベント解析部の動作
を示したフローチャートである。
【図17】同実施の形態による、シーケンス制御方法を
示したフローチャートである。
【図18】同実施の形態による、シーケンス制御方法中
の定義済み処理、プロセス実行部を示したフローチャー
トである。
【図19】同実施の形態による、プログラム生成装置
と、記録媒体と、プログラム実行装置との構成を示すブ
ロック図である。
【図20】従来のタスクスケジューリング方法による、
(a)タスクの実行優先度と、(b)、(c)タスク実
行テーブルとを示した図である。
【図21】従来のタスクスケジューリング方法による、
(a)シーケンス順序テーブルと、(b)処理Bの動作
条件テーブルとを示した図である。
【図22】従来の固定シーケンスパターンを利用するプ
ログラム生成方法を示したフローチャートである。
【図23】従来の状態遷移表を利用するプログラム生成
方法による、状態遷移表を示す図である。
【図24】従来の状態遷移表を利用するプログラム生成
方法を示したフローチャートである。
【符号の説明】
100 タスクスケジューリング装置 101 タスク登録部 103 タスク実行テーブル 104 タスク実行部 400 シーケンス制御装置 401 データ部 402 プログラム生成部 403 記憶部 404 プログラム実行部 405 シーケンステーブル 406 遷移テーブル 407 解釈部 408 生成部 409 プロセス登録部 410 実行テーブル 411 プロセス実行部 412 ソースコード格納部 413 実行プログラム格納部 414 メモリ 900 プログラム生成装置 901 プログラム実行装置 902 書き込み部 903 記録媒体 904 読み込み部 1000 シーケンス制御装置 1001 データ部 1002 プログラム生成部 1003 記憶部 1004 プログラム実行部 1005 タスクテーブル 1006 イベントテーブル 1007 シーケンステーブル 1008 サブシーケンステーブル 1009 遷移テーブル 1010 解釈部 1011 生成部 1012 イベント解析部 1013 イベントキューテーブル 1014 シーケンス実行部 1015 プロセス登録部 1016 実行テーブル 1017 ソースコード格納部 1018 実行プログラム格納部 1019 メモリ 1900 プログラム生成装置 1901 プログラム実行装置 1902 書き込み部 1903 記録媒体 1904 読み込み部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉崎 功 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 松木 敏夫 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5H219 CC10 EE05 HH25 HH28 (54)【発明の名称】 タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム 生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装 置、及び記録媒体

Claims (53)

    【特許請求の範囲】
  1. 【請求項1】 実行可能タスクが登録されるタスク実行
    テーブルを有し、上記実行可能タスクの実行順序を制御
    するタスクスケジューリング方法において、 上記実行可能タスクをタスクに付与されたタスク番号の
    順に実行する、 ことを特徴とするタスクスケジューリング方法。
  2. 【請求項2】 タスクにタスク番号を付与し、実行可能
    タスクが登録されるタスク実行テーブルを有し、上記実
    行可能タスクの実行順序を制御するタスクスケジューリ
    ング方法であって、 現在のインデックスに対応したタスク番号の実行可能タ
    スクが上記タスク実行テーブルに登録されている場合
    に、該タスクを実行するとともに、上記タスク実行テー
    ブルから削除する第1のステップと、 上記インデックスをずらす第2のステップとを備え、 上記第1、及び第2のステップを繰り返す、 ことを特徴とするタスクスケジューリング方法。
  3. 【請求項3】 請求項1または請求項2に記載のタスク
    スケジューリング方法において、 一回の処理で実行するタスク数を制限し、 周期的に上記処理を実行する、 ことを特徴とするタスクスケジューリング方法。
  4. 【請求項4】 請求項3に記載のタスクスケジューリン
    グ方法において、 一回の処理で実行するタスク数の制限を、タスクのグル
    ープごとに行う、 ことを特徴とするタスクスケジューリング方法。
  5. 【請求項5】 請求項3に記載のタスクスケジューリン
    グ方法において、 一回の処理で実行するタスク数の制限を、タスクの駆動
    種別ごとに行う、 ことを特徴とするタスクスケジューリング方法。
  6. 【請求項6】 請求項3ないし請求項5のいずれか一つ
    に記載のタスクスケジューリング方法において、 上記一回の処理で、タスク実行テーブルの全タスク番号
    の実行可能タスクを確認した場合は、その回の処理を終
    了する、 ことを特徴とするタスクスケジューリング方法。
  7. 【請求項7】 請求項1ないし請求項6のいずれか一つ
    に記載のタスクスケジューリング方法において、 上記タスク実行テーブルへの実行可能タスクの登録は、
    タスク起動要求の発生に対して行う、 ことを特徴とするタスクスケジューリング方法。
  8. 【請求項8】 タスクにタスク番号を付与し、該タスク
    番号とインデックスとを用いてタスクの実行順序を制御
    するタスクスケジューリング装置であって、 実行可能タスクがタスク番号ごとに登録されるタスク実
    行テーブルと、 タスク起動要求の発生したタスクを上記タスク実行テー
    ブルに実行可能タスクとして登録するタスク登録部と、 インデックスをずらしながら、インデックスに対応した
    タスク番号の実行可能タスクを実行するタスク実行部
    と、 を備えたことを特徴とするタスクスケジューリング装
    置。
  9. 【請求項9】 シーケンスに含まれる複数の処理プロセ
    スと、該処理プロセスよりの遷移先とが記述されたデー
    タを読み込み、 上記データの内容をプログラムソースコードに変換し、 上記プログラムソースコードをコンパイル、及びリンク
    し、 実行可能プログラムを生成する、 ことを特徴とするプログラム生成方法。
  10. 【請求項10】 請求項9に記載のプログラム生成方法
    において、 上記データには、さらに、タスク名と上記シーケンスと
    の関係が記述されている、 ことを特徴とするプログラム生成方法。
  11. 【請求項11】 請求項9に記載のプログラム生成方法
    において、 上記データには、さらに、タスク名とイベントとの関係
    と、該イベントと上記シーケンスとの関係と、が記述さ
    れている、 ことを特徴とするプログラム生成方法。
  12. 【請求項12】 請求項9ないし請求項11のいずれか
    一つに記載のプログラム生成方法において、 上記データは、階層構造のテーブルで定義される、 ことを特徴とするプログラム生成方法。
  13. 【請求項13】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたデ
    ータ部と、 上記データ部を参照してプログラムを生成するプログラ
    ム生成部と、 上記プログラムを記録媒体に記録する書き込み部とを備
    えた、ことを特徴とするプログラム生成装置。
  14. 【請求項14】 請求項13に記載のプログラム生成装
    置において、 上記データ部には、さらに、タスク名と上記シーケンス
    との関係が記述されている、 ことを特徴とするプログラム生成装置。
  15. 【請求項15】 請求項13に記載のプログラム生成装
    置において、 上記データ部には、さらに、タスク名とイベントとの関
    係と、該イベントと上記シーケンスとの関係と、が記述
    されている、 ことを特徴とするプログラム生成装置。
  16. 【請求項16】 請求項13ないし請求項15のいずれ
    か一つに記載のプログラム生成装置において、 上記データ部は、階層構造のテーブルで定義される、 ことを特徴とするプログラム生成装置。
  17. 【請求項17】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたシ
    ーケンス情報を有し、シーケンス制御を実行するプログ
    ラム実行方法であって、 上記シーケンス情報を参照してシーケンス制御のプロセ
    スを順次実行し、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報を参照して次処理プロセスを実行する、 ことを特徴としたプログラム実行方法。
  18. 【請求項18】 シーケンスに含まれる複数の処理プロ
    セスと該処理プロセスよりの遷移先とが記述されたシー
    ケンス情報と、実行可能プロセスを登録する実行テーブ
    ルと、を有し、上記実行テーブルに登録された実行可能
    プロセスを順次実行するプログラム実行方法であって、 上記シーケンス情報を参照してシーケンス制御の先頭プ
    ロセスを上記実行テーブルに実行可能プロセスとして登
    録する第1のステップと、 上記実行可能プロセスを実行するとともに、上記実行テ
    ーブルから削除する第2のステップと、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報の次処理プロセスを実行テーブルに実行可能プロセス
    として登録する第3のステップとを備え、 上記シーケンス情報の次処理プロセスがなくなるまで、
    上記第2、及び第3のステップを繰り返す、 ことを特徴とするプログラム実行方法。
  19. 【請求項19】 請求項18に記載のプログラム実行方
    法において、 上記シーケンス情報は、プロセスに対応した待ち時間を
    有し、 上記第2のステップで、上記プロセスの実行前に上記待
    ち時間だけ時間待ちをする、 ことを特徴とするプログラム実行方法。
  20. 【請求項20】 タスクにタスク番号を付与し、各タス
    ク名とシーケンスとの関係、該シーケンスにおける複数
    の処理プロセス、及び該処理プロセスよりの遷移先が記
    述されたシーケンス情報と、実行可能プロセスが該プロ
    セスの属するタスクごとに登録される実行テーブルと、
    を有し、上記実行可能テーブルに登録された実行可能プ
    ロセスを、タスクをスケジューリングしながら順次実行
    するプログラム実行方法であって、 いずれかのシーケンス制御を実行する場合は、該シーケ
    ンス制御に含まれるプロセスを実行テーブルに実行可能
    プロセスとして登録し、 上記実行可能プロセスをタスク番号の順に実行し、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報を参照して次処理プロセスを上記実行テーブルに実行
    可能プロセスとして登録し、 上記実行可能プロセスの登録と、該プロセスの実行とを
    繰り返し行う、 ことを特徴とするプログラム実行方法。
  21. 【請求項21】 タスクにタスク番号を付与し、各タス
    ク名とシーケンスとの関係、上記シーケンスとイベント
    との関係、上記シーケンスに含まれる複数の処理プロセ
    ス、及び該処理プロセスよりの遷移先が記述されたシー
    ケンス情報と、実行可能プロセスが該プロセスの属する
    タスクごとに登録される実行テーブルと、タスク番号ご
    とのイベントキューと、を有し、タスクをタスク番号
    と、インデックスとを用いてスケジューリングしながら
    上記実行テーブルに登録された実行可能プロセスを順次
    実行するプログラム実行方法であって、 現在のインデックスと同じタスク番号のイベントキュー
    に登録イベントがあり、かつ、上記実行テーブルに該タ
    スク番号の実行可能プロセスがない場合は、上記登録イ
    ベントを削除し、上記シーケンス情報を参照して該イベ
    ントに対応するシーケンスの先頭プロセスを上記実行テ
    ーブルに上記タスク番号の実行可能プロセスとして登録
    する第1のステップと、 現在のインデックスと同じタスク番号の実行可能プロセ
    スが上記実行テーブルに登録されている場合は、該プロ
    セスを実行するとともに、上記実行テーブルから削除す
    る第2のステップと、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報を参照して次処理プロセスのある場合は、該次処理プ
    ロセスを上記実行テーブルに実行可能プロセスとして登
    録する第3のステップと、 インデックスをずらす第4のステップとを備え、 上記第1ないし第4のステップを繰り返すことを特徴と
    するプログラム実行方法。
  22. 【請求項22】 請求項21に記載のプログラム実行方
    法において、 上記第1のステップで、現在のインデックスと同じタス
    ク番号のイベントキューに登録イベントがあり、かつ、
    上記実行テーブルに該タスク番号の実行可能プロセスが
    ある場合は、該実行可能プロセスに代えて上記イベント
    キューの先頭イベントに対応するシーケンスの先頭プロ
    セスを上記実行テーブルに登録するか否かを、上記実行
    可能プロセスの遷移許可により設定可能である、 ことを特徴とするプログラム実行方法。
  23. 【請求項23】 請求項21または請求項22に記載の
    プログラム実行方法において、 上記実行テーブルに実行可能プロセスを登録する場合、
    該プロセスに対応した待ち時間をも登録し、 該プロセスの実行時に、上記待ち時間が0でない場合は
    該プロセスを実行せず、 上記第4のステップの後に、上記実行テーブルの待ち時
    間を更新するステップを有したことを特徴とするプログ
    ラム実行方法。
  24. 【請求項24】 請求項20ないし請求項23のいずれ
    か一つに記載のプログラム実行方法において、 一回の処理で実行するプロセス数を制限し、 周期的に上記処理を実行する、 ことを特徴とするプログラム実行方法。
  25. 【請求項25】 請求項24に記載のプログラム実行方
    法において、 一回の処理で実行するプロセス数の制限を、タスクのグ
    ループごとに行う、 ことを特徴とするプログラム実行方法。
  26. 【請求項26】 請求項24に記載のプログラム実行方
    法において、 一回の処理で実行するプロセス数の制限を、タスクの駆
    動種別ごとに行う、 ことを特徴とするプログラム実行方法。
  27. 【請求項27】 請求項24ないし請求項26のいずれ
    か一つに記載のプログラム実行方法において、 上記処理において、上記実行テーブルの全タスク番号の
    実行可能プロセスを確認した場合は、その回の処理を終
    了する、 ことを特徴とするプログラム実行方法。
  28. 【請求項28】 請求項17ないし請求項27のいずれ
    か一つに記載のプログラム実行方法において、 上記シーケンス情報は、実行可能プログラムである、 ことを特徴とするプログラム実行方法。
  29. 【請求項29】 請求項17ないし請求項28のいずれ
    か一つに記載のプログラム実行方法において、 上記シーケンス情報は、記録媒体に記録された実行可能
    プログラムである、 ことを特徴とするプログラム実行方法。
  30. 【請求項30】 請求項17ないし請求項29のいずれ
    か一つに記載のプログラム実行方法において、 上記シーケンス情報は、階層構造のテーブルで定義され
    る、 ことを特徴とするプログラム実行方法。
  31. 【請求項31】 記録媒体に書き込まれたプログラムを
    読み込む、読み込み部と、 上記読み込まれたプログラムにより、シーケンス制御を
    実行するプログラム実行部とを備えた、 ことを特徴とするプログラム実行装置。
  32. 【請求項32】 請求項31に記載のプログラム実行装
    置において、 上記プログラムは、シーケンスに含まれる複数の処理プ
    ロセスと、該処理プロセスよりの遷移先とが記述された
    シーケンス情報を含む、 ことを特徴とするプログラム実行装置。
  33. 【請求項33】 請求項32に記載のプログラム実行装
    置において、 上記プログラム実行部は、 実行可能プロセスが登録される実行テーブルと、 上記プログラムを参照し、上記実行テーブルに実行可能
    プロセスを登録するプロセス登録部と、 上記実行可能プロセスを実行し、その実行結果が正常か
    否かを判断し、上記プロセス登録部に次工程プロセス、
    もしくは、遷移先プロセスを実行可能プロセスとして登
    録させるプロセス実行部と、 を備えたことを特徴とするプログラム実行装置。
  34. 【請求項34】 請求項31に記載のプログラム実行装
    置において、 上記プログラムは、各タスク名とシーケンスとの関係
    と、上記シーケンスとイベントとの関係と、上記シーケ
    ンスに含まれる複数の処理プロセスと、該処理プロセス
    よりの遷移先とが記述されたシーケンス情報を含むこと
    を特徴とするプログラム実行装置。
  35. 【請求項35】 請求項34に記載のプログラム実行装
    置において、 上記プログラム実行部は、シーケンス制御の実行ととも
    に、タスク番号と、インデックスとを用いてタスクのス
    ケジューリングをも実行することを特徴とするプログラ
    ム実行装置。
  36. 【請求項36】 請求項34または請求項35に記載の
    プログラム実行装置において、 上記プログラム実行部は、 実行可能プロセスが、タスク番号の付与されたタスクご
    とに登録される実行テーブルと、 上記プログラムを参照し、上記実行テーブルに実行可能
    プロセスを登録するプロセス登録部と、 発生したイベントが、該イベントの属するタスクごとに
    登録されるイベントキューを有するイベントキューテー
    ブルと、 イベントが発生すると、上記プログラムを参照し、該イ
    ベントの属するタスクに対応したイベントキューに該イ
    ベントを登録するイベント解析部と、 登録イベントに対応するシーケンス制御の各プロセスを
    実行可能プロセスとして上記実行テーブルに登録するよ
    うにプロセス登録部に命令を出し、インデックスをずら
    しながら該インデックスと同じタスク番号の実行可能プ
    ロセスを実行するシーケンス実行部と、 を備えたことを特徴とするプログラム実行装置。
  37. 【請求項37】 請求項31ないし請求項36のいずれ
    か一つに記載のプログラム実行装置において、 上記プログラムは、階層構造をなしていることを特徴と
    するプログラム実行装置。
  38. 【請求項38】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたデ
    ータを有し、上記シーケンス制御を実行するシーケンス
    制御方法であって、 上記データの内容を読み込み、プログラムに変換して記
    憶部に格納し、 上記記憶部のプログラムを参照してシーケンス制御の各
    プロセスを順次実行し、 上記プロセスの実行結果に基づいて、上記プログラムを
    参照して次処理プロセスを実行する、 ことを特徴とするシーケンス制御方法。
  39. 【請求項39】 タスクにタスク番号を付与し、各タス
    ク名とシーケンスとの関係、上記シーケンスとイベント
    との関係、上記シーケンスに含まれる複数の処理プロセ
    ス、及び該処理プロセスよりの遷移先が記述されたデー
    タと、実行可能プロセスが該プロセスの属するタスクご
    とに登録される実行テーブルと、タスク番号ごとのイベ
    ントキューと、を有し、タスクをタスク番号と、インデ
    ックスとを用いてスケジューリングしながら上記実行可
    能を順次実行するシーケンス制御方法であって、 上記データの内容を読み込み、プログラムに変換して記
    憶部に格納する第1のステップと、 現在のインデックスと同じタスク番号のイベントキュー
    に登録イベントがあり、かつ、上記実行テーブルに該タ
    スク番号の実行可能プロセスがない場合は、上記登録イ
    ベントを削除し、上記シーケンス情報を参照して該イベ
    ントに対応するシーケンスの先頭プロセスを上記実行テ
    ーブルに上記タスク番号の実行可能プロセスとして登録
    する第2のステップと、 現在のインデックスと同じタスク番号の実行可能プロセ
    スが上記実行テーブルに登録されている場合は、該プロ
    セスを実行するとともに、上記実行テーブルから削除す
    る第3のステップと、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報を参照して次処理プロセスのある場合は、該次処理プ
    ロセスを上記実行テーブルに実行可能プロセスとして登
    録する第4のステップと、 インデックスをずらす第5のステップとを備え、 上記第2ないし第5のステップを繰り返す、 ことを特徴とするシーケンス制御方法。
  40. 【請求項40】 請求項38または請求項39に記載の
    シーケンス制御方法において、 上記データは、階層構造のテーブルで定義される、 ことを特徴とするシーケンス制御方法。
  41. 【請求項41】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたデ
    ータ部と、 上記データ部の内容を読み込み、プログラムに変換する
    プログラム生成部と、 上記プログラムが格納される記憶部と、 上記記憶部に格納された上記プログラムを参照してシー
    ケンス制御の各プロセスを順次実行し、上記プロセスの
    実行結果に基づいて、上記プログラムを参照して次処理
    プロセスを実行するプログラム実行部と、 を備えたことを特徴とするシーケンス制御装置。
  42. 【請求項42】 請求項41に記載のシーケンス制御装
    置において、 上記プログラム実行部は、 実行可能プロセスが登録される実行テーブルと、 上記記憶部のプログラムを参照し、上記実行テーブルに
    実行可能プロセスを登録するプロセス登録部と、 上記実行可能プロセスを実行し、その実行結果が正常か
    否か判断し、上記プロセス登録部に、次工程プロセス、
    もしくは、遷移先プロセスを実行可能プロセスとして登
    録させるプロセス実行部と、 を備えたことを特徴とするシーケンス制御装置。
  43. 【請求項43】 各タスク名とシーケンスとの関係と、
    上記シーケンスとイベントとの関係と、上記シーケンス
    に含まれる複数の処理プロセスと、該処理プロセスより
    の遷移先とが記述されたデータ部と、 上記データ部の内容を読み込み、プログラムに変換する
    プログラム生成部と、 上記プログラムが格納される記憶部と、 上記記憶部に格納された上記プログラムを参照してシー
    ケンス制御の実行とともに、タスク番号と、インデック
    スとを用いてタスクのスケジューリングをも実行するプ
    ログラム実行部と、 を備えたことを特徴とするシーケンス制御装置。
  44. 【請求項44】 請求項43に記載のシーケンス制御装
    置において、 上記プログラム実行部は、 実行可能プロセスが、タスク番号の付与されたタスクご
    とに登録される実行テーブルと、 上記プログラムを参照し、上記実行テーブルに実行可能
    プロセスを登録するプロセス登録部と、 発生したイベントが、該イベントの属するタスクごとに
    登録されるイベントキューを有するイベントキューテー
    ブルと、 イベントが発生すると、上記プログラムを参照し、該イ
    ベントの属するタスクに対応したイベントキューに該イ
    ベントを登録するイベント解析部と、 登録イベントに対応するシーケンス制御の各プロセスを
    実行可能プロセスとして上記実行テーブルに登録するよ
    うにプロセス登録部に命令を出し、インデックスをずら
    しながら該インデックスと同じタスク番号の実行可能プ
    ロセスを実行するシーケンス実行部と、 を備えたことを特徴とするシーケンス制御装置。
  45. 【請求項45】 請求項41ないし請求項44のいずれ
    か一つに記載のシーケンス制御装置において、 上記データ部は、階層構造のテーブルで定義されること
    を特徴とするシーケンス制御装置。
  46. 【請求項46】 実行可能タスクが登録されるタスク実
    行テーブルを有し、上記実行可能タスクの実行順序を制
    御するプログラムを記録したタスクスケジューリングプ
    ログラム記録媒体において、 上記実行可能タスクをタスクに付与されたタスク番号の
    順に実行するプログラムを記録した、 ことを特徴とするタスクスケジューリングプログラム記
    録媒体。
  47. 【請求項47】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたデ
    ータを読み込むプログラムと、 上記データの内容をプログラムソースコードに変換する
    プログラムと、 上記プログラムソースコードをコンパイル、及びリンク
    し、実行可能プログラムを生成するプログラムと、 を記録したことを特徴とするプログラム生成プログラム
    記録媒体。
  48. 【請求項48】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたシ
    ーケンス情報を有し、シーケンス制御を実行するプログ
    ラムを記録したプログラム実行プログラム記録媒体であ
    って、 上記シーケンス情報を参照してシーケンス制御のプロセ
    スを順次実行するプログラムと、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報を参照して次処理プロセスを実行するプログラムと、 を記録したことを特徴とするプログラム実行プログラム
    記録媒体。
  49. 【請求項49】 タスクにタスク番号を付与し、各タス
    ク名とシーケンスとの関係、上記シーケンスとイベント
    との関係、上記シーケンスに含まれる複数の処理プロセ
    ス、及び該処理プロセスよりの遷移先が記述されたシー
    ケンス情報と、実行可能プロセスが該プロセスの属する
    タスクごとに登録される実行テーブルと、タスク番号ご
    とのイベントキューと、を有し、タスクをタスク番号
    と、インデックスとを用いてスケジューリングしながら
    上記実行可能プロセスを順次実行するプログラムを記録
    したプログラム実行プログラム記録媒体であって、 現在のインデックスと同じタスク番号のイベントキュー
    に登録イベントがあり、かつ、上記実行テーブルに該タ
    スク番号の実行可能プロセスがない場合は、上記登録イ
    ベントを削除し、上記シーケンス情報を参照して該イベ
    ントに対応するシーケンスの先頭プロセスを上記実行テ
    ーブルに上記タスク番号の実行可能プロセスとして登録
    する第1のステップと、 現在のインデックスと同じタスク番号の実行可能プロセ
    スが上記実行テーブルに登録されている場合は、該プロ
    セスを実行するとともに、上記実行テーブルから削除す
    る第2のステップと、 上記プロセスの実行結果に基づいて、上記シーケンス情
    報を参照して次処理プロセスのある場合は、該次処理プ
    ロセスを上記実行テーブルに実行可能プロセスとして登
    録する第3のステップと、 インデックスをずらす第4のステップとを備え、 上記第1ないし第4のステップを繰り返すプログラムを
    記録した、 ことを特徴とするプログラム実行プログラム記録媒体。
  50. 【請求項50】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とが記述されたデ
    ータを有し、上記シーケンス制御を実行するプログラム
    を記録したシーケンス制御プログラム記録媒体であっ
    て、 上記データの内容を読み込み、プログラムに変換して記
    憶部に格納するプログラムと、 上記記憶部のプログラムを参照してシーケンス制御の各
    プロセスを順次実行するプログラムと、 上記プロセスの実行結果に基づいて、上記プログラムを
    参照して次処理プロセスを実行するプログラムと、 を記録したことを特徴とするシーケンス制御プログラム
    記録媒体。
  51. 【請求項51】 シーケンスに含まれる複数の処理プロ
    セスと、該処理プロセスよりの遷移先とをデータとして
    記録した記録媒体であって、 上記複数の処理プロセスを記録してなる第1の領域と、 上記複数の処理プロセスのそれぞれに関連づけて、単
    数、あるいは複数の遷移先プロセスを記録してなる第2
    の領域とを備えた、 ことを特徴とするシーケンス制御データを記録した記録
    媒体。
  52. 【請求項52】 請求項51に記載の記録媒体におい
    て、 上記記録媒体は、さらに、上記プロセスに関連して、上
    記プロセスの待ち時間を記録してなる第3の領域を備え
    た、 ことを特徴とするシーケンス制御データを記録した記録
    媒体。
  53. 【請求項53】 タスク名と、該タスク名に対応するイ
    ベントと、該イベントに対応するシーケンスと、該シー
    ケンスにおける複数の処理プロセスと、該処理プロセス
    よりの遷移先と、をデータとして記録した記録媒体であ
    って、 上記タスク名を記録してなる第1の領域と、 上記タスク名に関連づけて、単数、あるいは複数のイベ
    ントを記録してなる第2の領域と、 上記イベントのそれぞれに関連づけて、シーケンスを記
    録してなる第3の領域とを備え、 上記第3の領域は、さらに、 上記シーケンスのそれぞれに関連づけて、上記シーケン
    スに含まれるプロセスを記録してなるプロセス記録領域
    と、 上記プロセスのそれぞれに関連づけて、単数、あるいは
    複数の遷移先プロセスを記録してなる遷移先プロセス記
    録領域と、 から構成される、 ことを特徴とするシーケンス制御データを記録した記録
    媒体。
JP27733399A 1999-09-29 1999-09-29 タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体 Pending JP2001100807A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27733399A JP2001100807A (ja) 1999-09-29 1999-09-29 タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27733399A JP2001100807A (ja) 1999-09-29 1999-09-29 タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体

Publications (1)

Publication Number Publication Date
JP2001100807A true JP2001100807A (ja) 2001-04-13

Family

ID=17582075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27733399A Pending JP2001100807A (ja) 1999-09-29 1999-09-29 タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体

Country Status (1)

Country Link
JP (1) JP2001100807A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7150018B2 (en) * 2000-02-16 2006-12-12 Microsoft Corporation Method and system for deterministic ordering of software modules
JP2009230610A (ja) * 2008-03-25 2009-10-08 Kawai Musical Instr Mfg Co Ltd 命令処理装置及び命令処理方法。
DE102011053925A1 (de) 2010-10-05 2012-04-05 Denso Corporation Elektronische Steuereinheit, die elektronische Steuereinheit verwendende Motortreibvorrichtung und Steuerverfahren der elektronischen Steuereinheit
KR20220086245A (ko) * 2020-12-16 2022-06-23 현대오토에버 주식회사 차량용 운영체제의 태스크 실행 시스템 및 방법
WO2023135685A1 (ja) * 2022-01-12 2023-07-20 ファナック株式会社 数値制御装置、及び記憶媒体

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7150018B2 (en) * 2000-02-16 2006-12-12 Microsoft Corporation Method and system for deterministic ordering of software modules
JP2009230610A (ja) * 2008-03-25 2009-10-08 Kawai Musical Instr Mfg Co Ltd 命令処理装置及び命令処理方法。
US11042380B2 (en) 2008-03-25 2021-06-22 Kawai Musical Instruments Mfg. Co., Ltd. Apparatus, method and computer program for processing instruction
DE102011053925A1 (de) 2010-10-05 2012-04-05 Denso Corporation Elektronische Steuereinheit, die elektronische Steuereinheit verwendende Motortreibvorrichtung und Steuerverfahren der elektronischen Steuereinheit
JP2012079193A (ja) * 2010-10-05 2012-04-19 Denso Corp 電子制御装置、これを用いたモータ駆動装置、及び、電子制御装置の制御方法
KR20220086245A (ko) * 2020-12-16 2022-06-23 현대오토에버 주식회사 차량용 운영체제의 태스크 실행 시스템 및 방법
KR102497258B1 (ko) * 2020-12-16 2023-02-06 현대오토에버 주식회사 차량용 운영체제의 태스크 실행 시스템 및 방법
WO2023135685A1 (ja) * 2022-01-12 2023-07-20 ファナック株式会社 数値制御装置、及び記憶媒体

Similar Documents

Publication Publication Date Title
US7849285B2 (en) Method for scheduling of storage devices
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
US20070143761A1 (en) Task scheduler system and method for managing tasks in an embedded system without a real time operating system
JP2002099432A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
JP5619179B2 (ja) 計算機システム、ジョブ実行管理方法、及びプログラム
JP3382176B2 (ja) 要求処理方法および要求処理装置
JP2001100807A (ja) タスクスケジューリング方法、タスクスケジューリング装置、プログラム生成方法、プログラム生成装置、プログラム実行方法、プログラム実行装置、シーケンス制御方法、シーケンス制御装置、及び記録媒体
JP5576605B2 (ja) プログラム変換装置およびプログラム変換方法
CN114385325A (zh) 深度学习自动调优任务优化
Shokri et al. An implementation model for time-triggered message-triggered object support mechanisms in CORBA-compliant COTS platforms
JP6669705B2 (ja) 数値制御装置
Walls Embedded RTOS Design: Insights and Implementation
CN111563000B (zh) 一种文件生成方法、智能终端及存储介质
JP2006126977A (ja) プログラム変換装置及び方法
JP2015038646A (ja) 情報処理装置及び情報処理方法
JP2010044703A (ja) マルチタスクosにおけるタスク切り替え方法及びプログラム
JP2001142723A (ja) 資源配分方法、計算機システム及び記録媒体
JPH0659908A (ja) プログラム実行装置
JP2006293437A (ja) プログラムコード生成装置及び生成方法
Korsgaard et al. Combining EDF Scheduling with occam using the Toc Programming Language.
JP2006215668A (ja) 並列処理ソフトウェア実装装置,並列処理ソフトウェア実行装置,並列処理ソフトウェア実装方法,並列処理ソフトウェア実装プログラムおよび並列処理ソフトウェア実装プログラム記録媒体
JP2004199247A (ja) プログラム更新方法
CN116089041A (zh) 一种基于协程的事件调度方法和系统
Yip et al. Optimized Buffering of Time-Triggered Automotive Software
JPH08194612A (ja) プログラム実行制御方法及びプログラム実行制御システム