JP3493616B2 - 制御装置 - Google Patents

制御装置

Info

Publication number
JP3493616B2
JP3493616B2 JP05063398A JP5063398A JP3493616B2 JP 3493616 B2 JP3493616 B2 JP 3493616B2 JP 05063398 A JP05063398 A JP 05063398A JP 5063398 A JP5063398 A JP 5063398A JP 3493616 B2 JP3493616 B2 JP 3493616B2
Authority
JP
Japan
Prior art keywords
user program
execution
cycle
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.)
Expired - Fee Related
Application number
JP05063398A
Other languages
English (en)
Other versions
JPH11249710A (ja
Inventor
拓一 古澤
正規 門脇
剛司 中田
真之 益田
嘉祐 長尾
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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP05063398A priority Critical patent/JP3493616B2/ja
Publication of JPH11249710A publication Critical patent/JPH11249710A/ja
Application granted granted Critical
Publication of JP3493616B2 publication Critical patent/JP3493616B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、ユーザープログ
ラムとI/Oリフレッシュとを実行してシステムの制御
を行なうプログラマブルコントローラの制御装置に関す
るものである。
【0002】
【従来の技術】プログラマブルコントローラの制御装置
においては、その制御対象となるシステムに応じて、種
々のユーザープログラムが作成されて使用されている。
そして、大規模なシステムになる程、ユーザープログラ
ムが長大となり、その実行処理も複雑化し、また、ユー
ザープログラムの処理時間が占める割合も大きくなって
くる。
【0003】ユーザープログラムを機能別に複数本作成
して、これらを組み合わせて実行処理する場合も、その
実行処理順を制御するのが繁雑である。
【0004】
【発明が解決しようとする課題】ユーザープログラムに
よる処理の中にも、システムの動きを直接制御する等、
重要で、しかも、頻繁に実行しないと、システムの動き
が緩慢になり、作業能率を低下させるものも、逆に、例
えば、生産個数をカウントする、作動頻度の低い機器の
制御をする等、システムの基本的動きには関与しないも
のもある。これらのいろいろな処理をユーザープログラ
ムによって一律に実行しようとすると、低頻度でしか処
理の必要がない、あるいは、低頻度の処理でも差支えの
ない処理も、逆に、高い頻度で実行しなければならない
処理も、シリーズに実行することになり、低頻度処理向
きのプログラム処理が入出力もなく無駄にCPUを使っ
てしまい、その分、高頻度を必要とするプログラム処理
の処理時間間隔が伸び、システムの動きを緩慢にし、能
率を下げてしまうという問題がある。
【0005】また、能率を上げようとすると、プリエン
プティブ・マルチタスキングのような複雑な制御を用い
る必要が起こる。
【0006】この発明は、プリエンプティブ・マルチタ
スキングのような複雑な制御を用いることなく、従来広
く用いられている制御を用いながら、高頻度を必要とす
るユーザープログラムと低頻度でよいユーザープログラ
ムとの、CPUの処理サイクル中でのそれぞれの実行周
期を変えることにより、上述の問題を解決する制御装置
を提供するものである。
【0007】
【課題を解決するための手段】上述の目的を達成するた
めに、この発明の請求項1の発明は、複数あるユーザー
プログラムと、I/Oリフレッシュとを実行しながらシ
ステムの制御を行なうプログラマブルコントローラの制
御装置において、基本信号を一定周期で発する基本信号
発生手段と、複数あるユーザープログラムの全てに対し
てそれぞれ実行周期を設定するスケジュール表と、上記
基本信号を基準として処理サイクルを定めるとともに、
上記スケジュール表に設定されたユーザープログラム
の実行周期に従って、各処理サイクル内で実行するユー
ザープログラムを選択するスケジュール管理手段と、上
記スケジュール管理手段が選択したユーザープログラム
が書き込まれるユーザープログラム実行表とを具備し、
上記ユーザープログラム実行表に書き込まれたユーザー
プログラムの全てを処理サイクル内で上記ユーザープロ
グラム実行表の実行順に従って実行および完了するとと
もに、実行したユーザープログラムにI/Oリフレッシ
ュが伴う場合には、そのI/Oリフレッシュを同じ処理
サイクル内で実行および完了する、ことを特徴とする。
【0008】請求項2の発明は、請求項1の発明におい
て、上記スケジュール表に、更に、複数のユーザープロ
グラムに対してそれぞれ初回実行サイクル番号を設定
し、この初回実行サイクル番号に一致した処理サイクル
から、実行周期に従って、実行される処理サイクルが選
択されることを特徴とする。
【0009】請求項3の発明は、複数あるユーザープロ
グラムと、I/Oリフレッシュとを実行しながらシステ
ムの制御を行なうプログラマブルコントローラの制御装
置において、基本信号を一定周期で発する基本信号発生
手段と、上記基本信号をカウントするカウンタと、複数
あるユーザープログラムの全てに対して、それぞれ上記
カウンタの値に対応するカウンタ照合基準値を設定する
スケジュール表と、上記基本信号を基準として処理サイ
クルを定めるとともに、上記スケジュール表に設定され
ユーザープログラムのカウンタ照合基準値と上記カ
ウンタの値の対応が付いたとき、各処理サイクル内で実
行するユーザープログラムを選択するスケジュール管理
手段と、上記スケジュール管理手段が選択したユーザー
プログラムが書き込まれるユーザープログラム実行表と
を具備し、上記ユーザープログラム実行表に書き込まれ
ユーザープログラムの全てを処理サイクル内で上記ユ
ーザープログラム実行表の実行順に従って実行および完
了するとともに、実行したユーザープログラムにI/O
リフレッシュが伴う場合には、そのI/Oリフレッシュ
を同じ処理サイクル内で実行および完了する、ことを特
徴とする。
【0010】上記のカウンタ照合基準値には、カウンタ
値そのもの、カウンタ値の公約数、実行周期等が含まれ
る。また、カウンタ照合基準値は、ひとつのユーザープ
ログラムに対してひとつとは限らず、複数のカウンタ照
合基準値、例えば、そのプログラムを実行するカウンタ
値の公約数のカウンタ照合基準値と、例外的にそのプロ
グラムの実行を禁止するカウンタ値のカウンタ照合基準
値の組み合わせ等も含む。
【0011】また、請求項4の発明は、請求項1、2ま
たは3の発明において、上記スケジュール表に、更に、
ユーザープログラム実行表への書き込みを遅らせた状況
を書き込み、上記スケジュール管理手段は、更に、この
書き込み状況に応じてユーザープログラムの選択を遅ら
せ、後の処理サイクルで、ユーザープログラム実行表へ
の書き込みを遅らせたユーザープログラムを選択するこ
とを特徴とする。
【0012】上記の実行順位の設定には、ユーザープロ
グラム実行表の列の順番としたもの、あるいは、ユーザ
ープログラム実行表に実行順位欄を設ける等したものが
含まれる。
【0013】また、請求項5の発明は、ユーザープログ
ラムと、I/Oリフレッシュとを実行しながらシステム
の制御を行なうプログラマブルコントローラの制御装置
において、基本信号を一定周期で発する基本信号発生手
段と、複数のユーザープログラムに対してそれぞれ実行
周期を設定するスケジュール表と、上記基本信号を基準
として処理サイクルを定めるとともに、上記スケジュー
ル表に設定されたユーザープログラムの実行周期に従っ
て、各処理サイクル内で実行するユーザープログラムを
選択するスケジュール管理手段と、上記スケジュール管
理手段が選択したユーザープログラムが書き込まれるユ
ーザープログラム実行表とを具備し、上記スケジュール
表は、更に、上記ユーザープログラム実行表への書き込
みを遅らせた状況が書き込まれ、上記スケジュール管理
手段は、上記スケジュール表の書き込まれ状況に応じ
て、後の処理サイクルで、ユーザープログラム実行表へ
の書き込みを遅らせたユーザープログラムを選択するも
のであり、ユーザープログラム実行表に書き込まれたユ
ーザープログラムの全て、およびこれに関連するI/O
リフレッシュがある場合にはそのI/Oリフレッシュ
を、処理サイクル内で実行するようにしたことを特徴と
する。また、請求項6の発明は、上記スケジュール表
に、更に、複数のユーザープログラムに対してそれぞれ
初回実行サイクル番号を設定し、この初回実行サイクル
番号に一致した処理サイクルから、実行周期に従って、
実行される処理サイクルが選択されることを特徴とす
る。 また、請求項7の発明は、ユーザープログラム
と、I/Oリフレッシュとを実行しながらシステムの制
御を行なうプログラマブルコントローラの制御装置にお
いて、基本信号を一定周期で発する基本信号発生手段
と、上記基本信号をカウントするカウンタと、複数のユ
ーザープログラムに対して、それぞれ上記カウンタの値
に対応するカウンタ照合基準値を設定するスケジュール
表と、上記基本信号を基準として処理サイクルを定める
とともに、上記スケジュール表に設定されたユーザープ
ログラムのカウンタ照合基準値と上記カウンタの値の対
応が付いたとき、各処理サイクル内で実行するユーザー
プログラムを選択するスケジュール管理手段とを具備
し、上記スケジュール表は、更に、上記ユーザープログ
ラム実行表への書き込みを遅らせた状況が書き込まれ、
上記スケジュール管理手段は、上記スケジュール表の書
き込まれ状況に応じて、後の処理サイクルで、ユーザー
プログラム実行表への書き込みを遅らせたユーザープロ
グラムを選択するものであり、選択されたユーザープロ
グラムの全て、およびこれに関連するI/Oリフレッシ
ュがある場合にはそのI/Oリフレッシュを、処理サイ
クル内で実行するようにしたことを特徴とする。
【0014】上記のユーザープログラム実行表への書き
込みを遅らせた状況の書き込みには、例えば、未実行を
示すフラグ等を用いることができる。
【0015】
【発明の実施の形態】この発明の実施の形態を、以下、
図面を参照して説明する。
【0016】図1は、この発明の制御装置の一実施の形
態を示すブロック図である。図1の制御装置は、ユーザ
ープログラムとI/Oリフレッシュとを実行しながらシ
ステムの制御を行なうプログラマブルコントローラの制
御を行なうものである。
【0017】図1において、1はスケジュール管理手
段、2は基本信号発生手段、3はスケジュール表、4は
ユーザープログラム実行表、5は、実行されるユーザー
プログラム、6は、上記ユーザープログラム5に伴い実
行されるI/Oリフレッシュを示す。なお、ユーザープ
ログラムによっては、システム内の機器、センサ側の通
信子局のI/Oとの間の入出力がなくて、I/Oリフレ
ッシュがないもの、入力のみ、あるいは、出力のみがあ
って、INリフレッシュのみのもの、OUTリフレッシ
ュのみのものもある。
【0018】上記基本信号発生手段2は、スケジュール
管理手段1に向けて一定周期、すなわち、一定時間毎に
基本信号を発する。上記スケジュール表3には、複数の
ユーザープログラム5に対して予めそれぞれの実行周期
ないしはカウンタ照合基準値を設定するようになってい
る。また、上記ユーザープログラム実行表4には、後に
説明するように、スケジュール表3の実行周期ないしは
カウンタ照合基準値と基本信号をカウントするカウンタ
の値とを基に、カウンタの値の各処理サイクル内で実行
するように選択されるユーザープログラムが書き込まれ
るようになっている。
【0019】上記スケジュール管理手段1は、CPU
が、ユーザープログラムの実行、システム内の機器、セ
ンサの通信子局等(図示省略)との間の通信による入出
力のI/Oリフレッシュ、その他システム内の処理を管
理するものである。
【0020】このスケジュール管理手段1は、上記基本
信号発生手段2からの基本信号を基準として、ユーザー
プログラム、I/Oリフレッシュ、その他の一連の処理
を行なうための処理サイクルを定める、すなわち、基本
信号を受ける毎に新たな処理サイクルをスタートさせ、
また、上記スケジュール表3に設定されたユーザープロ
グラムとその実行周期を読み取って、各処理サイクル内
で実行するユーザープログラムを選択して、このプログ
ラムとこれに伴うI/Oリフレッシュとの処理サイクル
内での実行順序を定め、上記ユーザープログラム実行表
4に、実行順にプログラム名を書き込み、ユーザープロ
グラム実行表4に基づいて、このユーザープログラム実
行行程を実行させる。また、処理サイクル内でユーザー
プログラム実行行程を終了してCPUが解放されたと
き、他のサービスや他のプログラムの実行(CPU解放
時間帯処理行程)を実行させる。
【0021】基本信号発生手段2の基本信号発行周期、
すなわち、CPUの処理サイクルの周期は、システムが
使用するユーザープログラムの数、それぞれに適した処
理頻度等を勘案して予め定める。各ユーザープログラム
の処理頻度、すなわち、処理サイクル何周期毎に実行す
るかの実行周期を定める場合、頻繁に実行しないとシス
テムの動きが遅くなるような、システムの基本に近い処
理をするユーザープログラムはその実行周期を1または
1に近い値に設定し、システムの動きにあまり関係しな
い、例えば、単なるデータの集計等のプログラムは、そ
の実行周期を大きめに設定する。また、処理時間の長い
プログラムも、なるべく実行周期を大きめに設定する
と、システムの動きがよくなって好ましい。
【0022】また、ユーザープログラムの実行を、2桁
程度までの比較的短周期の実行周期によることなく、カ
ウンタ照合基準値、例えば、カウンタの公約数、特定の
カウンタ値等として、このカウンタ照合基準値とカウン
タ値とが対応づけられる処理サイクルにおいてユーザー
プログラムを実行することもできる。
【0023】以下、図1に示した、この発明の制御装置
のスケジュール表、動作の例を詳細に説明する。
【0024】実施の形態1:図2乃至図5は、この発明
の制御装置の第1の実施の形態を示し、図2は、タイミ
ングチャート、図3は、スケジュール表、図4は、フロ
ーチャート、図5は、動作フロー中で、ユーザープログ
ラム実行表が処理サイクルに応じて順次書き換えられる
状態を示す説明図である。
【0025】この第1の実施の形態は、スケジュール表
3中のプログラム名毎に、実行周期Cと最初に実行する
サイクル(初回実行サイクル番号S)を定めて、この初
回実行サイクル番号Sと実行周期C(この場合、SとC
がカウンタ照合基準値)とを基に、各処理サイクル毎に
ユーザープログラム実行表4を編集して、ユーザープロ
グラム実行行程を実行する例を示している。1処理サイ
クル中の処理優先順位は、スケジュール表3の上行程高
い優先度としている。
【0026】図2において、各処理サイクル7−1、7
−2、7−3、‥‥は、基本信号発生手段2が50ms
周期で発する基本信号により区切られて、各処理サイク
ルの前半で、ユーザープログラム実行行程、すなわち、
ユーザープログラムとこれに伴う入出力接点ブロック処
理(I/Oリフレッシュ)を実行し、その後に残る後半
の解放時間で、CPU解放時間帯処理工程、すなわち、
他のサービスや他のプログラム(ワープロ、表計算等)
を実行する。
【0027】初回処理サイクル7−1では、ユーザープ
ログラムProg1とこれに伴う入出力処理を、次の処
理サイクル7−2では、ユーザープログラムProg
1、Prog2およびProg3とこれらに伴う入出力
処理を、第3番目の処理サイクル7−3では、ユーザー
プログラムProg1、Prog4およびProg5と
これらに伴う入出力処理を、それぞれ実行する。以後の
処理サイクルも、スケジュール表3に定めたルールに従
って実行していく。ユーザープログラムProg1は、
毎処理サイクル実行して処理頻度を高くし、必要な処理
頻度がそれ程高くないユーザープログラムProg2、
Prog3とProg4は、1処理サイクルおきに、ま
た、更に処理頻度が低くてよいProg5は、4処理サ
イクルおきに実行して、全体の処理効率を高めている。
なお、ユーザープログラムProg4は、Prog2、
Prog3と処理サイクルの位相をずらしてシステム内
の処理の整合性をとっている。
【0028】以下に、この発明の制御装置が、上記のよ
うな順序でユーザープログラムProg1〜Prog5
を実行するフローを、図3、図4および図5を参照して
説明する。
【0029】<処理サイクル1>図4において、先ず、
ステップ401の初期処理で、スケジュール管理手段1
のカウンタNを0にする。
【0030】次にステップ402で、基本信号発生手段
2が基本信号を発行して、処理サイクル7−1がスター
トすると、ステップ403に移って、カウンタNに1を
加算し、カウンタ値N=1となる。
【0031】次のステップ404では、このカウンタ値
Nと、図3に示すスケジュール表3内の各プログラムP
rog1〜Prog5の実行周期Cの値と初回実行サイ
クル番号Sとが、N=S+C*m(ただし、mは0と正
の整数(0、1、2‥))の式を満たすプログラムを捜
す。処理サイクル1では、Prog1が該当する(あ
り)。従って、ステップ405へ移って、該当したこの
Prog1を、この処理サイクルでの実行プログラムと
して決定し、ユーザープログラム実行表4に書き込む
(図5(a))。なお、ステップ404で該当しない場
合(なし)は、後に説明するステップ407に移る。
【0032】ステップ405を終了すると、次にステッ
プ406に移る。このステップ406では、ユーザープ
ログラム実行表4に書き込まれたプログラムProg1
を実行する(図2のP1行程)。このユーザープログラ
ム実行行程P1をより詳しく説明すると、先ず、図2の
初回処理サイクル7−1の入力処理I1 の時間帯で、プ
ログラムProg1に使用する入力情報を、入力情報蓄
積領域からプログラム処理領域に取り込む。次に、取り
入れた入力情報を使用してプログラムProg1を実行
し、出力処理O1 の時間帯で、出力情報蓄積領域のプロ
グラムProg1の出力結果を格納する領域に、プログ
ラムProg1の出力結果を格納して、以後の通信子機
等への送信に備える。
【0033】ステップ406におけるユーザープログラ
ムおよびI/Oリフレッシュの実行(ユーザープログラ
ム実行行程P1)終了後、ステップ407に進んで、C
PU解放時間帯処理M1を行なう。その後、ステップ4
02へ戻る。
【0034】上記の処理サイクル1の実行パターンを、
(a)ということにする。
【0035】<処理サイクル2>ステップ402で、基
本信号発生手段2が基本信号を発行してから50msの
一定周期が経過すると、基本信号発生手段2が再び基本
信号を発行して、処理サイクル1を区切って終了し、次
の処理サイクル2に移る。ステップ403のN+1の処
理で、Nは1加算され、N=2となる。従って、次のス
テップ404では、図3のスケジュール表3から、Pr
og1、Prog2、Prog3が該当して、判定結果
は「あり」となって、ステップ405に移り、Prog
1、Prog2、Prog3がユーザープログラム実行
表4に、スケジュール表3(図3)の上行から順に、書
き込まれる(図5(b))。
【0036】この図5(b)のユーザープログラム実行
表4に基づいて、ステップ406において、Prog
1、Prog2、Prog3が実行される(図2の処理
サイクル7−2のユーザープログラム実行行程P2)。
その実行順序は、ユーザープログラム実行表4の上位の
ものから、すなわち、Prog1、Prog2、Pro
g3となる。
【0037】上記Prog1、Prog2、Prog3
の実行を、より詳しく説明すると、先ず、図2の処理サ
イクル7−2の入力処理I2 の時間帯で、プログラムP
rog1、Prog2およびProg3に使用する入力
情報を、入力情報蓄積領域からそれぞれのプログラム処
理領域に取り込む。次に、取り入れた入力情報を使用し
てプログラムProg1、Prog2およびProg3
を順次実行し、出力処理O2 の時間帯で、出力情報蓄積
領域のプログラムProg1、Prog2およびPro
g3の出力結果を格納する領域に、プログラムProg
1、Prog2およびProg3の出力結果を格納し
て、以後の通信子機等への送信に備える。
【0038】ステップ406におけるユーザープログラ
ムおよびI/Oリフレッシュの実行(ユーザープログラ
ム実行行程P2)終了後、ステップ407に進んで、C
PU解放時間帯処理M2を実行して、その後、ステップ
402へ戻る。
【0039】上記の処理サイクル1の実行パターンを、
(b)ということにする。
【0040】処理サイクル3以降も、同様に、図4のフ
ローチャートによって、処理が行なわれる。処理サイク
ル7−3では、ユーザープログラムProg1、Pro
g4、Prog5が選択され、その順で実行される(実
行パターン(c))。処理サイクル7−5では、ユーザ
ープログラムProg1とProg4が選択され、その
順で実行される(実行パターン(d))。処理サイクル
7−8では、ユーザープログラムProg1、Prog
2、Prog3とProg5が選択され、その順で実行
される(実行パターン(e))。その他の処理サイクル
の実行パターンは、図2に示すように、また、図4のス
テップ404の式から、(b)、(c)、(d)、
(e)のいずれかになる。なお、実行パターン(a)は
初回の処理サイクル1のみである。
【0041】ステップ404の式から明らかなように、
処理サイクルの実行パターンは、処理サイクル7−2以
降、10サイクル周期で繰り返される。従って、実施に
当たって、カウンタNのオーバーフローのおそれがある
場合は、適宜間隔でNから10を減ずるようにするとよ
い。
【0042】実施の形態2:図6乃至図9は、この発明
の制御装置の第2の実施の形態を示し、図6は、タイミ
ングチャート、図7は、フローチャート、図8は、動作
フロー中で、スケジュール表が処理サイクルに応じて順
次書き換えられる状態を示す説明図、図9は、動作フロ
ー中で、ユーザープログラム実行表が処理サイクルに応
じて順次書き換えられる状態を示す説明図である。
【0043】この第2の実施の形態は、スケジュール表
3中のプログラム名毎に実行周期Cだけを定めておき、
実行周期が2以上と定めたプログラムは、初回処理サイ
クルからカウントして、定めた実行周期となる処理サイ
クルで実行し、もし、処理サイクル中のプログラム処理
時間の合計が所定の時間を越えて、処理サイクル中で他
に使用するCPUの解放時間が不足するおそれがある場
合、あふれたプログラムを次の処理サイクルにずらすよ
うにして、ユーザープログラム実行行程を実行する例を
示している。
【0044】この第2の実施の形態は、更に具体的に
は、図6に示すように、1処理サイクル中で、プログラ
ムを最大2本まで実行するとができる処理サイクルを設
定した例を示している。
【0045】図6において、各処理サイクル7i、7
e、7o、7e、7o、‥‥は、基本信号発生手段2が
50ms周期で発する基本信号により区切られて、各処
理サイクルの前半で、ユーザープログラム実行行程、す
なわち、ユーザープログラムとこれに伴う入出力接点ブ
ロック処理(I/Oリフレッシュ)を実行し、その後に
残る後半の解放時間で、CPU解放時間帯処理工程、す
なわち、他のサービスや他のプログラム(ワープロ、表
計算等)を実行する。
【0046】初回処理サイクル7iでは、ユーザープロ
グラムProgAとこれに伴う入出力処理を、次の偶数
処理サイクル7eでは、ユーザープログラムProgA
およびProgBとこれらに伴う入出力処理を、第3番
目の奇数処理サイクル7oでは、ユーザープログラムP
rogAおよびProgCとこれらに伴う入出力処理
を、それぞれ実行する。以後の処理サイクルは、7e、
7oが交互に繰り返す。すなわち、ユーザープログラム
ProgAは、毎処理サイクル実行して処理頻度を高く
し、必要な処理頻度がそれ程高くないユーザープログラ
ムProgBとProgCとは、第2番目以降の処理サ
イクルで交互に実行して、全体の処理効率を高めてい
る。
【0047】以下に、この発明の制御装置が、上記のよ
うな順序でユーザープログラムProgA、ProgB
およびProgCを実行するフローを、図7、図8およ
び図9を参照して説明する。
【0048】<初回処理サイクル>図7において、先
ず、ステップ701の初期処理で、スケジュール管理手
段1のカウンタnを0にし、スケジュール表3に記録さ
れた全てのプログラムProgA、ProgB、Pro
gCの未実行フラグFをリセットして0とする。この状
態のスケジュール表3を、図8(a)に示す。
【0049】次にステップ702で、基本信号発生手段
2が基本信号を発行して初回処理サイクル7iがスター
トすると、ステップ703に移って、カウンタnに1を
加算し、カウンタ値n=1となる。
【0050】次のステップ704では、このカウンタ値
nと、スケジュール表3内の全プログラムProgA、
ProgB、ProgCの実行周期Cの値とを比較し
て、n≧Cであるもの、すなわち、この処理サイクルで
実行すべきプログラムを全て捜し出す。n=1であるか
ら、プログラムProgAが該当する(あり)。従っ
て、ステップ705に移る。なお、該当しない場合(な
し)は、ステップ706に移って、ステップ706で、
スケジュール表3に未実行フラグF=1のプログラムが
あれば(あり)、ステップ705に、なければ、後に説
明するステップ711に進む。
【0051】ステップ705では、ステップ704また
はステップ706で該当した全プログラムのうち、実行
周期Cの値が等しいものを捜す。ステップ704で該当
したプログラムは1件のみであり、ステップ706は通
過していないから、ステップ705の結果は、「なし」
であって、ステップ707に進む。スケジュール表3中
の未実行フラグFは、図8(a)のとおり、全て0であ
るから、ステップ707の結果は、「なし」であって、
ステップ709に移る。
【0052】このステップ709では、上記のステップ
704、706または707のいずれかの判定結果が
「あり」となり、かつ、未実行フラグF=0のプログラ
ムを、最終的に、この処理サイクルでの実行プログラム
として決定し、ユーザープログラム実行表4に書き込
む。ここで決定されたプログラムはProgAであるか
ら、図9(a)に示すように、ユーザープログラム実行
表4に、ProgAを書き込む。
【0053】次いで、ステップ710において、ユーザ
ープログラム実行表4に書き込まれたプログラムPro
gAを実行する(図6のユーザープログラム実行行程P
i)。このユーザープログラム実行行程Piをより詳し
く説明すると、先ず、図6の初回処理サイクル7iの入
力処理Iiの時間帯で、プログラムProgAに使用す
る入力情報を、入力情報蓄積領域からプログラム処理領
域に取り込む。次に、取り入れた入力情報を使用してプ
ログラムProgAを実行し、出力処理Oiの時間帯
で、出力情報蓄積領域のプログラムProgAの出力結
果を格納する領域に、プログラムProgAの出力結果
を格納して、以後の通信子機等への送信に備える。
【0054】ステップ710におけるユーザープログラ
ムおよびI/Oリフレッシュの実行(ユーザープログラ
ム実行行程Pi)終了後、ステップ711に進んで、C
PU解放時間帯処理Miを行なう。
【0055】次に、ステップ712に進む。ステップ7
12では、カウンタnの値と、スケジュール表3の全実
行周期Cの最小公倍数とが等しいか否かの判定が行なわ
れる。カウンタn=1であり、一方、スケジュール表3
の全実行周期Cの最小公倍数は、この実施の形態では
「2」である(No)から、ステップ702へ戻る。
【0056】<偶数処理サイクル>ステップ702で、
基本信号発生手段2が基本信号を発行してから50ms
の一定周期が経過すると、基本信号発生手段2が再び基
本信号を発行して、初回処理サイクルを区切って終了
し、次の偶数処理サイクルに移る。ステップ703のn
+1の処理で、nは1加算され、n=2となる。従っ
て、次のステップ704では、図8(a)のProg
A、ProgB、ProgCが該当して、判定結果は
「あり」となって、ステップ705に移る。ステップ7
05では、ProgBの実行周期Cと、ProgCの実
行周期Cとが、共に「2」で互いに等しい(あり)か
ら、ステップ708に進む。
【0057】ステップ708では、ProgB、Pro
gCのうち、スケジュール表3の上の列に書き込まれた
ProgBは、その未実行フラグFを「0」に、他のP
rogCの未実行フラグFを「1」にする(図8
(B))。これにより、ProgCのユーザープログラ
ム実行表4への書き込みを遅らせた状況を書き込んだこ
とになる。
【0058】次に、ステップ709に進む。このステッ
プでは、ステップ704で該当したProgA、Pro
gB、ProgCのうち、未実行フラグF=0となって
いるProgA、ProgBが、スケジュール表の上行
から順に、図9(b)に示すように、ユーザープログラ
ム実行表4に書き込まれる。
【0059】次いで、この図9(b)のユーザープログ
ラム実行表4に基づいて、ステップ710において、P
rogA、ProgBが実行される(図6の偶数処理サ
イクル7eのユーザープログラム実行行程Pe)。その
実行順序は、ユーザープログラム実行表4の上位のもの
から、すなわち、ProgA、ProgBの順とする。
【0060】上記ProgA、ProgBの実行を、よ
り詳しく説明すると、先ず、図6の偶数回処理サイクル
7eの入力処理Ieの時間帯で、プログラムProgA
およびProgBに使用する入力情報を、入力情報蓄積
領域からそれぞれのプログラム処理領域に取り込む。次
に、取り入れた入力情報を使用してプログラムProg
AおよびProgBを順次実行し、出力処理Oeの時間
帯で、出力情報蓄積領域のプログラムProgAおよび
ProgBの出力結果を格納する領域に、プログラムP
rogAおよびProgBの出力結果を格納して、以後
の通信子機等への送信に備える。
【0061】ステップ710におけるユーザープログラ
ムおよびI/Oリフレッシュの実行(ユーザープログラ
ム実行行程Pe)終了後、ステップ711に進んで、C
PU解放時間帯処理Meを実行する。
【0062】次に、ステップ712に進む。この偶数処
理サイクルでは、カウンタn=2であり、スケジュール
表3の全実行周期Cの最小公倍数「2」と一致する(Y
es)から、ステップ713へ進んで、カウンタnを0
とし、その後、ステップ702へ戻る。
【0063】<奇数処理サイクル>偶数処理サイクル7
eのCPU解放時間帯処理Me実行後、ステップ702
で、基本信号発生手段2が50msの周期で再度基本信
号を発行する。ここで偶数処理サイクル7eは区切ら
れ、次の奇数処理サイクルに移る。
【0064】ステップ703のn+1の処理では、nは
1加算され、n=1となる。従って、次のステップ70
4では、図8(b)から、ProgAが該当して、判定
結果は「あり」となって、ステップ705に移る。ステ
ップ705では、実行周期Cが等しい該当プログラムが
ない(なし)から、ステップ707へ移る。
【0065】ステップ707では、スケジュール表3中
に、未実行フラグF=1のプログラムがあるか否かが判
定される。この奇数処理サイクル7oでは、先の偶数処
理サイクル7eで通過したステップ708において、図
8(b)のとおり、プログラムProgCの未実行フラ
グFを1としたから、判定結果は「あり」となり、ステ
ップ708に移る。
【0066】ステップ707での未実行フラグF=1の
プログラムは、プログラムProgCだけだったから、
このステップ708では、図8(c)に示すように、プ
ログラムProgCの未実行フラグFを0とする。
【0067】次に、ステップ709に進む。このステッ
プでは、ステップ704で該当したProgAとステッ
プ707で該当したProgCが、いずれもその未実行
フラグF=0であるから、ProgA、ProgBが、
図9(c)に示すように、ユーザープログラム実行表4
に書き込まれる。
【0068】この図9(c)のユーザープログラム実行
表4に基づいて、ステップ710において、Prog
A、ProgCが実行される(図6の奇数処理サイクル
7oのユーザープログラム実行行程Po)。その実行順
序は、ユーザープログラム実行表4の上位のものから、
すなわち、ProgA、ProgCの順となる。
【0069】上記ProgA、ProgCを実行するユ
ーザープログラム実行行程Poの詳細は、偶数処理サイ
クル7eのユーザープログラム実行行程Peと同様であ
るから、その詳細な説明は省略する。
【0070】ステップ710におけるユーザープログラ
ムおよびI/Oリフレッシュの実行(ユーザープログラ
ム実行行程Po)終了後、ステップ711に進んで、C
PU解放時間帯処理Moを行なう。
【0071】次に、ステップ712に進む。奇数回処理
サイクル7oでは、初回処理サイクル7iと同様、カウ
ンタn=1であり、一方、スケジュール表3の全実行周
期Cの最小公倍数は「2」であるから(No)、ステッ
プ702へ戻る。
【0072】以下、同様にして、偶数回処理サイクル7
e、奇数回処理サイクル7oが交互に繰り返されること
になる。
【0073】このように、第2の実施の形態において
は、初回処理サイクル7iでプログラムProgAを、
その後の処理サイクル7e、7oでは、プログラムPr
ogAとプログラムProgB、プログラムProgA
とプログラムProgCを交互に実行し、使用頻度の高
いプログラムProgAを毎処理サイクル実行し、それ
よりも使用頻度の低いプログラムProgB、Prog
Cを1処理サイクルおきに実行する。プログラムPro
gCは、実行周期C=2と設定してあるが、プログラム
ProgBとプログラムProgCを同一処理サイクル
で実行すると、CPU解放時間が不足するので、位相を
ずらして実行するようにしたのである。
【0074】この発明は、上述の実施の形態に限定され
ることなく、種々の変形が可能である。スケジュール表
に処理順序欄、カウンタ照合基準値として、特定の処理
サイクルで実行しないようにするフラグ欄、優先ランク
欄等の処理条件欄を加えて処理してもよい。
【0075】処理サイクルの周期は、最も高い頻度を必
要とするユーザープログラムの実行頻度に合わせるのが
好ましい。そして、その上で、1処理サイクル中で必要
とするCPU解放時間から、ユーザープログラム実行行
程の時間が算出されるから、その中で実行できるユーザ
ープログラムの組み合わせも予め検討しておくと、一
層、無駄な処理、無駄な空き時間を減らして、システム
効率を向上することができる。
【0076】
【発明の効果】以上の説明から理解されるように、この
発明によれば、簡単なスケジュール表にユーザープログ
ラムとその実行周期ないしは基本信号をカウントするカ
ウンタに対応するカウンタ照合基準値を書き込み、この
スケジュール表からユーザープログラム実行表を編集
し、このユーザープログラム実行表に従って、ユーザー
プログラムおよびこれに関連するI/Oリフレッシュを
実行するようにしたから、複雑な制御を用いることな
く、高い実行頻度を必要とするユーザープログラムと、
実行頻度が低くてよいユーザープログラムとを、それぞ
れに適した頻度で、自動的にシリーズに実行することが
でき、無駄なプログラム処理を省いて、その分、高い実
行頻度を必要とするユーザープログラムの実行処理頻度
を高めることができ、システムの動きを速め、処理効率
を上げることができる。
【0077】実行頻度を実行周期ないしはカウンタ照合
基準値としてスケジュール表に書き込むようにしたか
ら、システムの用途に応じて、実行頻度の設定、変更が
容易にでき、設定状態を確認しやすく、ユーザープログ
ラム毎の最適頻度の実行を維持することができる。
【図面の簡単な説明】
【図1】この発明の構成を示すブロック図。
【図2】この発明の一実施の形態の動作タイミングを示
すタイミングチャート。
【図3】図2の実施の形態のスケジュール表の内容を示
す説明図。
【図4】図2の実施の形態の動作フローを示すフローチ
ャート。
【図5】(a)、(b)、(c)、(d)および(e)
は、それぞれ図2の実施の形態の処理サイクルで実行さ
れるユーザープログラムを書き込んだユーザープログラ
ム実行表の内容を示す説明図。
【図6】この発明の他の実施の形態の動作タイミングを
示すタイミングチャート。
【図7】図6の実施の形態の動作フローを示すフローチ
ャート。
【図8】(a)、(b)、(c)は、図6の実施の形態
の動作フロー中で、スケジュール表が処理サイクルに応
じて順次書き換えられる状態を示す説明図。
【図9】(a)、(b)、(c)は、図6の実施の形態
の動作フロー中で、ユーザープログラム実行表が処理サ
イクルに応じて順次書き換えられる状態を示す説明図。
【符号の説明】
1 スケジュール管理手段 2 基本信号発生手段 3 スケジュール表 4 プログラム実行表 5 ユーザープログラム 6 I/Oリフレッシュ 7−1、7−2、‥‥ 処理サイクル 7i 初回処理サイクル 7e 偶数処理サイクル 7o 奇数処理サイクル
フロントページの続き (72)発明者 益田 真之 京都府京都市右京区花園土堂町10番地 オムロン株式会社内 (72)発明者 長尾 嘉祐 京都府京都市右京区花園土堂町10番地 オムロン株式会社内 (56)参考文献 特開 平3−144706(JP,A) 特開 平4−107704(JP,A) 特開 平8−328615(JP,A) (58)調査した分野(Int.Cl.7,DB名) G05B 19/05

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数あるユーザープログラムと、I/O
    リフレッシュとを実行しながらシステムの制御を行なう
    プログラマブルコントローラの制御装置において、 基本信号を一定周期で発する基本信号発生手段と、複数あるユーザープログラムの全て に対してそれぞれ実
    行周期を設定するスケジュール表と、 上記基本信号を基準として処理サイクルを定めるととも
    に、上記スケジュール表に設定されたユーザープログ
    ラムの実行周期に従って、各処理サイクル内で実行する
    ユーザープログラムを選択するスケジュール管理手段
    と、 上記スケジュール管理手段が選択したユーザープログラ
    ムが書き込まれるユーザープログラム実行表とを具備
    し、上記 ユーザープログラム実行表に書き込まれたユーザー
    プログラムの全てを処理サイクル内で上記ユーザープロ
    グラム実行表の実行順に従って実行および完了するとと
    もに、実行したユーザープログラムにI/Oリフレッシ
    ュが伴う場合には、そのI/Oリフレッシュを同じ処理
    サイクル内で実行および完了する、 ことを特徴とする制御装置。
  2. 【請求項2】 上記スケジュール表に、更に、複数のユ
    ーザープログラムに対してそれぞれ初回実行サイクル番
    号を設定し、この初回実行サイクル番号に一致した処理
    サイクルから、実行周期に従って、実行される処理サイ
    クルが選択されることを特徴とする請求項1に記載の制
    御装置。
  3. 【請求項3】 複数あるユーザープログラムと、I/O
    リフレッシュとを実行しながらシステムの制御を行なう
    プログラマブルコントローラの制御装置において、 基本信号を一定周期で発する基本信号発生手段と、 上記基本信号をカウントするカウンタと、複数あるユーザープログラムの全て に対して、それぞれ
    上記カウンタの値に対応するカウンタ照合基準値を設定
    するスケジュール表と、 上記基本信号を基準として処理サイクルを定めるととも
    に、上記スケジュール表に設定されたユーザープログ
    ラムのカウンタ照合基準値と上記カウンタの値の対応が
    付いたとき、各処理サイクル内で実行するユーザープロ
    グラムを選択するスケジュール管理手段と、上記スケジ
    ュール管理手段が選択したユーザープログラムが書き込
    まれるユーザープログラム実行表とを具備し、 上記ユーザープログラム実行表に書き込まれた ユーザー
    プログラムの全てを処理サイクル内で上記ユーザープロ
    グラム実行表の実行順に従って実行および完了するとと
    もに、実行したユーザープログラムにI/Oリフレッシ
    ュが伴う場合には、そのI/Oリフレッシュを同じ処理
    サイクル内で実行および完了する、 ことを特徴とする制御装置。
  4. 【請求項4】上記スケジュール表に、更に、ユーザープ
    ログラム実行表への書き込みを遅らせた状況を書き込
    上記スケジュール管理手段は、更に、この書き込み状況
    に応じてユーザープログラムの選択を遅らせ、 後の処理
    サイクルで、ユーザープログラム実行表への書き込みを
    遅らせたユーザープログラムを選択することを特徴とす
    る請求項1、2または3に記載の制御装置。
  5. 【請求項5】 ユーザープログラムと、I/Oリフレッ
    シュとを実行しながらシステムの制御を行なうプログラ
    マブルコントローラの制御装置において、 基本信号を一定周期で発する基本信号発生手段と、 複数のユーザープログラムに対してそれぞれ実行周期を
    設定するスケジュール表と、 上記基本信号を基準として処理サイクルを定めるととも
    に、上記スケジュール表に設定されたユーザープログラ
    ムの実行周期に従って、各処理サイクル内で実行するユ
    ーザープログラムを選択するスケジュール管理手段と、 上記スケジュール管理手段が選択したユーザープログラ
    ムが書き込まれるユーザープロ グラム実行表とを具備
    し、 上記スケジュール表は、更に、上記ユーザープログラ
    ム実行表への書き込みを遅らせた状況が書き込まれ、 上記スケジュール管理手段は、上記スケジュール表の書
    き込まれ状況に応じて、後の処理サイクルで、ユーザー
    プログラム実行表への書き込みを遅らせたユーザープロ
    グラムを選択するものであり、 ユーザープログラム実行表に書き込まれたユーザープロ
    グラムの全て、およびこれに関連するI/Oリフレッシ
    ュがある場合にはそのI/Oリフレッシュを、処理サイ
    クル内で実行するようにした ことを特徴とする制御装
    置。
  6. 【請求項6】上記スケジュール表に、更に、複数のユー
    ザープログラムに対してそれぞれ初回実行サイクル番号
    を設定し、この初回実行サイクル番号に一致した処理サ
    イクルから、実行周期に従って、実行される処理サイク
    ルが選択されることを特徴とする請求項5に記載の制御
    装置。
  7. 【請求項7】ユーザープログラムと、I/Oリフレッシ
    ュとを実行しながらシステムの制御を行なうプログラマ
    ブルコントローラの制御装置において、 基本信号を一定周期で発する基本信号発生手段と、 上記基本信号をカウントするカウンタと、 複数のユーザープログラムに対して、それぞれ上記カウ
    ンタの値に対応するカウンタ照合基準値を設定するスケ
    ジュール表と、 上記基本信号を基準として処理サイクルを定めるととも
    に、上記スケジュール表に設定されたユーザープログラ
    ムのカウンタ照合基準値と上記カウンタの値の対応が付
    いたとき、各処理サイクル内で実行するユーザープログ
    ラムを選択するスケジュール管理手段とを具備し、 上記スケジュール表は、更に、上記ユーザープログラム
    実行表への書き込みを遅らせた状況が書き込まれ、 上記スケジュール管理手段は、上記スケジュール表の書
    き込まれ状況に応じて、後の処理サイクルで、ユーザー
    プログラム実行表への書き込みを遅らせたユーザープロ
    グラムを選択するものであり、 選択されたユーザープログラムの全て、およびこれに関
    連するI/Oリフレッシュがある場合にはそのI/Oリ
    フレッシュを、処理サイクル内で実行するようにした
    ことを特徴とする制御装置。
JP05063398A 1998-03-03 1998-03-03 制御装置 Expired - Fee Related JP3493616B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05063398A JP3493616B2 (ja) 1998-03-03 1998-03-03 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05063398A JP3493616B2 (ja) 1998-03-03 1998-03-03 制御装置

Publications (2)

Publication Number Publication Date
JPH11249710A JPH11249710A (ja) 1999-09-17
JP3493616B2 true JP3493616B2 (ja) 2004-02-03

Family

ID=12864379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05063398A Expired - Fee Related JP3493616B2 (ja) 1998-03-03 1998-03-03 制御装置

Country Status (1)

Country Link
JP (1) JP3493616B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4901775B2 (ja) * 2008-02-04 2012-03-21 三菱電機株式会社 プログラマブルコントローラ
JP5295061B2 (ja) * 2009-09-28 2013-09-18 三菱電機株式会社 プログラマブルコントローラ

Also Published As

Publication number Publication date
JPH11249710A (ja) 1999-09-17

Similar Documents

Publication Publication Date Title
JP2002049370A5 (ja)
EP1026585A3 (en) Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
US9298430B2 (en) Method of compiling program to be executed on multi-core processor, and task mapping method and task scheduling method of reconfigurable processor
CN112748993A (zh) 任务执行方法、装置、存储介质及电子设备
US8103857B2 (en) Microprocessor control apparatus as well as method and program for the same
CN109597687A (zh) 数据同步的资源分配方法、装置、存储介质和电子设备
Ma et al. Systematic methodology for real-time cost-effective mapping of dynamic concurrent task-based systems on heterogeneous platforms
JP3493616B2 (ja) 制御装置
Ouazene et al. Identical parallel machine scheduling with time-dependent processing times
JPS6134605A (ja) プログラマブルコントロ−ラの制御方式
JPH0766286B2 (ja) Nc装置の処理方法
US11900284B2 (en) Dynamic scheduling system with performance- based access
CN107766048A (zh) 一种页面编译方法及装置
JPS58182752A (ja) 入力ガイダンス表示方式
JP2003345406A (ja) 制御装置
JP3195211B2 (ja) コンパイル方法
JPS61175721A (ja) 読み出しレコ−ドの先取りを行なう入出力制御装置
JPS6182243A (ja) オブジエクトプログラム生成方法
SU708352A1 (ru) Устройство дл управлени цифровой вычислительной машиной
JP3223530B2 (ja) データ転送命令生成処理方法
CN117632401A (zh) 车载任务的调度方法、装置、电子设备、存储介质及车辆
JPH0668100A (ja) 生産スケジュール立案処理方式
CN112882767A (zh) 一种spring batch批处理作业网页维护的方法及系统
JPH0357024A (ja) データ多重割付方式
JPS63109564A (ja) 多重処理制御方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031017

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees