JPH08272630A - ラダープログラムによるマルチタスク処理方法及び処理装置 - Google Patents

ラダープログラムによるマルチタスク処理方法及び処理装置

Info

Publication number
JPH08272630A
JPH08272630A JP7616795A JP7616795A JPH08272630A JP H08272630 A JPH08272630 A JP H08272630A JP 7616795 A JP7616795 A JP 7616795A JP 7616795 A JP7616795 A JP 7616795A JP H08272630 A JPH08272630 A JP H08272630A
Authority
JP
Japan
Prior art keywords
task
cpu
ladder program
processing
program
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
JP7616795A
Other languages
English (en)
Inventor
Yoshihiko Okayama
喜彦 岡山
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.)
Azbil Corp
Original Assignee
Azbil Corp
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 Azbil Corp filed Critical Azbil Corp
Priority to JP7616795A priority Critical patent/JPH08272630A/ja
Publication of JPH08272630A publication Critical patent/JPH08272630A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 マルチタスクOSによる処理を不要にして、
タスクスケジューリングを容易にする。 【構成】 ラダープログラムメモリ1は複数のタスクの
実行スケジュールが記述されたラダープログラムを格納
する。コントローラ2はラダープログラムに従ってCP
U3に割り込みをかける。CPU3は、コントローラ2
内のレジスタを読み、指定されたタスクのプログラムカ
ウンタ等をタスク起動メモリ5から読み、このカウンタ
によってタスクのプログラムをプログラムメモリ4から
読み出して実行する。CPU3は割り込みに応じてタス
クの停止/起動を行えばよく、タスクの処理に専念でき
る。また、タスクスケジュールを図示形式のラダープロ
グラムで記述しているためにスケジューリングが容易と
なる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、時分割にて複数のタス
クを処理するマルチタスク処理方法及びマルチタスク処
理装置に関するものである。
【0002】
【従来の技術】従来、コンピュータやコントローラなど
において複数のタスクを時分割で処理するマルチタスク
処理を実現しようとすると、タイマ割り込み等を使って
CPUに割り込みをかけて、各タスクに時間を配分した
り、複数のタスクが同時に起動しないようにインタロッ
クをかけたりして各タスクにCPUを割り当てていた。
なお、タスクとは、プログラムによって取り扱われる1
つ以上の命令であり、CPUの使用権を与えられる基本
単位である。
【0003】このようなマルチタスク処理には、専用の
マルチタスクOS(Operating System)が必要で、タス
クの数が増えるほどその時間分配やインタロックの処理
が大きくなり、マルチタスクOSがCPUを専有する時
間が多くなってオーバーヘッドが大きくなる。さらに、
何千ものタスクを想定したマルチタスク処理では、タス
クの実行スケジュールを決定するタスクスケジューリン
グの記述が大変になり、一般化した記述方法も確立され
ていない。
【0004】
【発明が解決しようとする課題】以上のように従来のマ
ルチタスク処理では、マルチタスクOSのオーバーヘッ
ドが大きく、効率が悪いという問題点があった。また、
タスクスケジューリングの記述方法が確立されていない
ため、ユーザによってタスクスケジューリングを細かく
設定しようとしても、最適な設定が困難であるという問
題点があった。本発明は、上記課題を解決するためにな
されたもので、マルチタスクOS等のオーバーヘッドの
かかる処理が不要で、タスクスケジューリングを容易に
行うことができるマルチタスク処理方法及びマルチタス
ク処理装置を提供することを目的とする。
【0005】
【課題を解決するための手段】本発明は、CPUが処理
する複数のタスクの実行スケジュールをラダープログラ
ムで記述し、このラダープログラムに従ってCPUにタ
スク処理の起動/停止のための割り込みをかけ、指定し
たタスクをCPUに実行させるようにしたものである。
また、複数のタスクのプログラムを格納するプログラム
メモリと、このプログラムメモリに格納されたプログラ
ムを読み込んで各タスクを実行するCPUと、複数のタ
スクの実行スケジュールをラダーシーケンスにより記述
したラダープログラムを格納するラダープログラムメモ
リと、ラダープログラムに従ってCPUにタスク処理の
起動/停止のための割り込みをかけ、指定したタスクを
CPUに実行させるラダープログラム処理コントローラ
とを有するものである。
【0006】
【作用】本発明によれば、複数のタスクの実行スケジュ
ールをラダープログラムで記述し、このラダープログラ
ムに従ってCPUにタスク処理の起動/停止のための割
り込みをかけることにより、CPUが指定されたタスク
を実行する。また、ラダープログラム処理コントローラ
が、ラダープログラムメモリに格納されたラダープログ
ラムに従ってCPUにタスク処理の起動/停止のための
割り込みをかけることにより、CPUが指定されたタス
クを実行する。
【0007】
【実施例】図1は本発明の1実施例を示すマルチタスク
処理装置のブロック図である。1は複数のタスクの実行
スケジュールをラダーシーケンスにより記述したラダー
プログラムを格納するラダープログラムメモリ、2はメ
モリ1に格納されたラダープログラムに従って後述する
CPUにタスク処理の起動/停止のための割り込みをか
け、指定したタスクをCPUに実行させるラダープログ
ラム処理コントローラ、3はタスク処理等の演算処理を
行うCPU、4は複数のタスクのプログラムを格納する
プログラムメモリ、5は各タスクを起動するための情報
を格納するタスク起動メモリ、6は起動しているタスク
の番号を格納しておくためのタスク起動状況スタックで
ある。
【0008】本発明では、ラダープログラムを用いて複
数のタスクのスケジューリングを行う。ラダープログラ
ムは、シーケンスコントローラ(プログラマブルコント
ローラ)で一般的に利用されている図示形式のプログラ
ム言語であり、プログラムの記述が見やすいという特徴
がある。
【0009】次に、図1のマルチタスク処理装置の動作
を説明する。図2はラダープログラムメモリ1に格納さ
れたラダープログラムの1例を示す図である。図2にお
いて、10a〜10eはそれぞれタスク1〜タスク5の
実行を指示する命令、11a〜11eはそれぞれタイマ
命令TM1〜TM5におけるタイマ設定時間を設定する
ための命令、12a〜12dはタイマ命令TM1〜TM
4における出力となるタイマ接点命令、13はタイマ命
令TM5における出力となるタイマ接点命令、OT1〜
OT5はタイマ命令TM1〜TM5の出力である。
【0010】このラダープログラムでは、出力OT5が
オンになると、命令10a、11aが実行され、出力O
T1がオンになると、命令10b、11bが実行され
る。出力OT2〜OT4についても同様である。タイマ
命令TM1は、命令11aとタイマ接点命令12aとか
らなり、命令11aが実行されると、この命令で設定し
た設定時間の計測を開始し、設定時間が経過したとき
に、タイマ接点命令12aの出力OT1をオンにするも
のである。また、タイマ命令TM2〜TM4についても
同様である。
【0011】そして、タイマ命令TM5は、命令11e
とタイマ接点命令13とからなり、命令11eが実行さ
れると、この命令で設定した設定時間の計測を開始し、
設定時間が経過したときに、タイマ接点命令13の出力
OT5をオフにするものである。
【0012】最初にマルチタスク処理装置の電源を投入
したとき、あるいはイニシャライズ時には、CPU3
は、タスク起動メモリ5の各タスクに割り当てられた領
域の各々に、タスクを起動するための情報として、実行
すべきタスクのプログラムのアドレス(ここでは最初な
ので各タスクの先頭アドレス)、及びCPU3内部の図
示しないレジスタの初期値等を書き込む。
【0013】次に、ラダープログラム処理コントローラ
2は、ラダープログラムメモリ1に格納された図2のよ
うなラダープログラムを実行して、タスク1〜タスク5
にCPU3を割り当てる制御を以下のように行う。図3
はこのマルチタスク処理を説明するために図2のラダー
プログラムのタイマ命令の出力を示すタイミングチャー
ト図であり、t1〜t5はそれぞれ命令11a〜11e
で設定されたタイマ設定時間である。
【0014】まず、タイマ接点命令13は、設定時間t
5が経過すると出力OT5をオフにするものであり、図
3(e)のように最初はオンのままである。これによ
り、ラダープログラム処理コントローラ2は、命令10
aを実行してCPU3にタスク1を起動させると共に、
命令11aを実行してタイマ設定時間t1の計測を開始
する(図3のタイミングA)。
【0015】CPU3にタスク1を起動させるには、コ
ントローラ2からCPU3に対して割り込みをかける。
割り込みをかけられたCPU3は、コントローラ2内部
の図示しないレジスタを読んでタスクの起動/停止情報
を調べ、この情報によりタスク1の起動が指定されてい
ると判断してタスク1を起動する。タスク1を起動する
場合、CPU3は、タスク起動状況スタック6に現在起
動しているタスクの番号として「1」を格納する。こう
して、スタック6の先頭の位置にタスク番号「1」が格
納される。
【0016】そして、CPU3は、タスク起動メモリ5
のタスク1に割り当てられた領域から実行すべきタスク
のプログラムのアドレス(以下、プログラムカウンタと
する)、及びCPU3内のレジスタの初期値等を読み出
し、プログラムカウンタが示すプログラムメモリ4上の
アドレスによってタスク1のプログラムを読み出してタ
スク1を実行する。なお、タスク起動メモリ5の各タス
クに割り当てられた領域は、そのタスクの実行中、タス
ク内で使用するローカルメモリとしても用いられる。
【0017】次いで、タイマ接点命令12aは、図3
(a)のようにタイミングAから設定時間t1が経過す
ると出力OT1をオンにするものであり、これによりコ
ントローラ2は、命令10bを実行してCPU3にタス
ク2を起動させてタスク1を停止させると共に、命令1
1bを実行してタイマ設定時間t2の計測を開始する
(図3のタイミングB)。
【0018】CPU3にタスク1を停止させてタスク2
を起動させるには、コントローラ2からCPU3に対し
て割り込みをかける。割り込みをかけられたCPU3
は、コントローラ2内部のレジスタを読んでタスクの起
動/停止情報を調べ、この情報によりタスク1の停止と
タスク2の起動が指定されていると判断する。
【0019】タスク1を停止してタスク2を起動する場
合、CPU3は、まずタスク起動メモリ5のタスク1に
割り当てられた領域に、タスク1のプログラムカウンタ
やタスク1で使用していたCPU3内部のレジスタの値
等を書き込み、タスク起動状況スタック6の先頭からデ
ータを取り出すことで起動中の番号として格納されてい
たタスク番号「1」を削除する。
【0020】続いて、タスク起動状況スタック6に現在
起動しているタスクの番号として「2」を格納し、タス
ク起動メモリ5のタスク2に割り当てられた領域からプ
ログラムカウンタ、及びCPU3内のレジスタの初期値
等を読み出し、プログラムカウンタが示すプログラムメ
モリ4上のアドレスによってタスク2のプログラムを読
み出してタスク2を実行する。
【0021】次に、タイマ接点命令12bは、図3
(b)のようにタイミングBから設定時間t2が経過す
ると出力OT2をオンにするものであり、これによりコ
ントローラ2は、命令10cを実行してCPU3にタス
ク3を起動させてタスク2を停止させると共に、命令1
1cを実行してタイマ設定時間t3の計測を開始する
(図3のタイミングC)。こうして、コントローラ2か
らCPU3に対して割り込みがかけられ、上記のタスク
1、タスク2と同様の処理がタスク2、タスク3に関し
て行われる。
【0022】以降同様にしてタスク4、タスク5が実行
される。なお、命令11eの実行によって計測が開始さ
れた設定時間t5が経過すると、タイマ接点命令13は
出力OT5をオフにする(図3のタイミングF)。これ
により、命令11aがリセットされてタイマ接点命令1
2aは出力OT1をオフにする。同様にして出力OT2
〜OT4もオフとなる。
【0023】こうして、タスク1〜タスク5の処理が完
了する。ところで、各タスクの処理の優先順位は、コン
トローラ2から割り込みがかけられた際に起動が指定さ
れたものが優先されるので、これ以前に実行中であった
タスクは、この起動までに終了するようにスケジューリ
ングをしなければならない。また、ラダープログラムで
タスクの起動が同時に発生したような場合には、ラダー
プログラムの初めの方にあったタスクから順に起動をか
ける。
【0024】しかし、次のタスクの起動がかけられたと
きまでに前のタスクが終了していない場合には、このタ
スクの処理を一時中断しなければならず、その場合には
以下のような処理が行われる。
【0025】例えば、タスク4の処理が終了する前に、
設定時間t4が経過して命令11eが実行されたことに
より割り込みがかけられた場合、CPU3は、コントロ
ーラ2内部のレジスタを読んでタスク5を起動するが、
このとき一時中断しなければならないタスク4に関して
は、上記と同様にタスク起動メモリ5のタスク4に割り
当てられた領域に、タスク4のプログラムカウンタやタ
スク4で使用していたCPU3内部のレジスタの値等を
書き込む。このとき、タスク起動状況スタック6につい
てはそのままとする。
【0026】そして、CPU3は、タスク起動状況スタ
ック6に現在起動しているタスクの番号として「5」を
格納する。これにより、スタック6の先頭にタスク番号
「5」が格納され、その後の位置に1つ前に起動してい
たタスクの番号として「4」が格納されていることにな
る。
【0027】次いで、タスク5の終了に伴ってタスク起
動状況スタック6の先頭からデータを取り出すことでタ
スク番号「5」を削除し、タスク起動メモリ5のタスク
4に割り当てられた領域からプログラムカウンタ、及び
CPU3内のレジスタの値等を読み出し、プログラムカ
ウンタが示すアドレスによってタスク4の処理を再開す
る。そして、タスク4が終了すると、タスク起動状況ス
タック6の先頭からデータを取り出すことでタスク番号
「4」を削除する。こうして、一時中断したタスクにつ
いても処理することができる。
【0028】以上のようにして、コントローラ2からC
PU3にタスク処理の起動/停止のための割り込みをか
けることにより、コントローラ2がスケジューリング制
御を行うので、CPU3は割り込みに応じてタスクを停
止したり起動したりするだけでよく、タスクは通常複数
用意されているため、1つのタスクを停止しても他のタ
スクの処理にすぐ移ることができる。これにより、CP
U3はタスクの処理に専念することができ、マルチタス
クOSなどのオーバーヘッドのかかる処理が不要とな
り、処理効率を向上させることができる。
【0029】なお、本実施例では、タスクのスケジュー
リングをすべてラダープログラムで記述していたが、自
タスクの停止や他タスクの起動/停止はタスク内でも指
定できるため、全てのスケジューリングをラダープログ
ラムで記述しなくてもよい。
【0030】
【発明の効果】本発明によれば、ラダープログラムに従
ってCPUにタスク処理の起動/停止のための割り込み
をかけることにより、CPUはタスクの処理に専念する
ことができ、従来のようなマルチタスクOSなどのオー
バーヘッドのかかる処理が不要となり、処理効率を向上
させることができる。また、複数のタスクの実行スケジ
ュールを図示形式のラダープログラムで記述しているた
めにタスクスケジューリングの記述が見やすいので、ス
ケジューリングを容易に行うことができ、スケジューリ
ングの変更なども容易に行うことができる。
【0031】また、マルチタスク処理装置をプログラム
メモリ、CPU、ラダープログラムメモリ、及びラダー
プログラム処理コントローラから構成することにより、
マルチタスクOS等のオーバーヘッドのかかる処理が不
要で、タスクスケジューリングを容易に行うことができ
るマルチタスク処理装置を簡単な構成で実現することが
できる。
【図面の簡単な説明】
【図1】 本発明の1実施例を示すマルチタスク処理装
置のブロック図である。
【図2】 図1のラダープログラムメモリに格納された
ラダープログラムの1例を示す図である。
【図3】 図2のラダープログラムを実行したときのタ
イマ命令の出力を示すタイミングチャート図である。
【符号の説明】
1…ラダープログラムメモリ、2…ラダープログラム処
理コントローラ、3…CPU、4…プログラムメモリ、
5…タスク起動メモリ、6…タスク起動状況スタック。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 CPUが処理する複数のタスクの実行ス
    ケジュールをラダープログラムで記述し、 このラダープログラムに従って前記CPUにタスク処理
    の起動/停止のための割り込みをかけ、 指定したタスクをCPUに実行させるようにしたことを
    特徴とするラダープログラムによるマルチタスク処理方
    法。
  2. 【請求項2】 複数のタスクのプログラムを格納するプ
    ログラムメモリと、 このプログラムメモリに格納されたプログラムを読み込
    んで各タスクを実行するCPUと、 複数のタスクの実行スケジュールをラダーシーケンスに
    より記述したラダープログラムを格納するラダープログ
    ラムメモリと、 ラダープログラムに従って前記CPUにタスク処理の起
    動/停止のための割り込みをかけ、指定したタスクをC
    PUに実行させるラダープログラム処理コントローラと
    を有することを特徴とするラダープログラムによるマル
    チタスク処理装置。
JP7616795A 1995-03-31 1995-03-31 ラダープログラムによるマルチタスク処理方法及び処理装置 Pending JPH08272630A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7616795A JPH08272630A (ja) 1995-03-31 1995-03-31 ラダープログラムによるマルチタスク処理方法及び処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7616795A JPH08272630A (ja) 1995-03-31 1995-03-31 ラダープログラムによるマルチタスク処理方法及び処理装置

Publications (1)

Publication Number Publication Date
JPH08272630A true JPH08272630A (ja) 1996-10-18

Family

ID=13597533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7616795A Pending JPH08272630A (ja) 1995-03-31 1995-03-31 ラダープログラムによるマルチタスク処理方法及び処理装置

Country Status (1)

Country Link
JP (1) JPH08272630A (ja)

Similar Documents

Publication Publication Date Title
US6625635B1 (en) Deterministic and preemptive thread scheduling and its use in debugging multithreaded applications
JPH0895821A (ja) マルチタスクのプログラムデバッグ方法とその装置
JPH0376496B2 (ja)
JPH05216851A (ja) ユーザプログラムおよびオペレーティングシステム間の高速通信のための方法
KR20040069352A (ko) 멀티-스레딩 프로세서에서 스레드의 실행을 정지시키기위한 시스템 및 방법
CN112965755B (zh) 多核处理器的初始化方法、装置、电子设备及存储介质
US6795873B1 (en) Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
JPH08272630A (ja) ラダープログラムによるマルチタスク処理方法及び処理装置
JP2636722B2 (ja) マルチタスク実行管理方式
JP6669705B2 (ja) 数値制御装置
JPH07281909A (ja) リアルタイム・タスク周期実行管理システム
JPH02159603A (ja) ループ制御装置
JPH064364A (ja) Cpu動作記録方式
JPH064318A (ja) エラー検出方式
JP4535663B2 (ja) ステートマシン制御方式およびステートマシン
JPH04314141A (ja) マルチタスク制御方法とその機構
JP2624798B2 (ja) 処理装置のデバッグ機構
JPH0378034A (ja) プログラム並行実行装置
JPH04247529A (ja) プログラム実行管理システム
JPH02141843A (ja) プログラム管理方式
JP2000010899A (ja) 入出力処理システム及びその周辺装置制御方法並びにその制御プログラムを記録した記録媒体
JP2571260B2 (ja) 論理時計による動作環境選択処理方式
JPH0462093B2 (ja)
JPH05342021A (ja) マルチタスク計算機
JPH02127732A (ja) ジョブ管理方式