JP2002351509A - プログラミングツール及びプログラミング方法 - Google Patents

プログラミングツール及びプログラミング方法

Info

Publication number
JP2002351509A
JP2002351509A JP2001156629A JP2001156629A JP2002351509A JP 2002351509 A JP2002351509 A JP 2002351509A JP 2001156629 A JP2001156629 A JP 2001156629A JP 2001156629 A JP2001156629 A JP 2001156629A JP 2002351509 A JP2002351509 A JP 2002351509A
Authority
JP
Japan
Prior art keywords
program
execution time
execution
column
task
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
JP2001156629A
Other languages
English (en)
Inventor
Toshio Muranaka
俊夫 村中
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001156629A priority Critical patent/JP2002351509A/ja
Publication of JP2002351509A publication Critical patent/JP2002351509A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 プログラムの実行時間がプログラマブルコン
トローラ上で実際にプログラムを動作させなくても算出
できることで、ユーザがプログラムをタスクに割付ける
作業負荷を軽減する 【解決手段】 プログラムを構成する各ファンクション
ブロックの実行時間を格納する実行時間格納部と、ファ
ンクションブロックの組み合わせからなるプログラムの
最大実行時間を、実行時間格納部に基づき算出する最大
実行時間算出手段と、この最大実行時間算出手段に基づ
き算出された最大実行時間と、タスクの実行周期とを比
較し、プログラムが決められた周期で実行できるか否か
を判定するプログラム実行判定手段と、を備えた。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラマブルコ
ントローラのファンクションブロックダイアグラム(以
下、FBDとする)によるプログラミングツール及びプ
ログラミング方法に関するものである。なお、ファンク
ションブロックダイアグラム、ファンクションブロッ
ク、タスクはプログラマブルコントローラ用の国際標準
プログラミング規格IEC61131−3で規定された
用語である。
【0002】
【従来の技術】まず、図15で、FBDで作成されたプ
ログラムの特徴である階層構造について説明する。FB
Dで作成されたプログラムは、図15のように、階層構
造となっており、最上位階層に位置するプログラム11
は、ファンクションブロック(以下、FBとする)14
aを含む1つ以上のFBから構成されている。FB14
aは、FB14bを含む1つ以上のFBから構成されて
いる。FB14bは、FB14cを含む1つ以上のFB
から構成されている。図15の例では、FB14cが最
下層に位置するFBであり、これ以下の階層は持たな
い。FB14cのようなFBを基本FBと定義する。こ
の基本FBは、最大実行時間が既知のFBで、FBライ
ブラリ12にあらかじめ登録された形で、メーカによっ
て提供される。なお、FB14a或いはFB14bのよ
うに、さらに下の階層を持つFBを応用FBと定義す
る。
【0003】上述の如く、FBDで作成されたすべての
プログラムは、最大実行時間が既知の基本FBと応用F
Bから構成されている。なお、プログラミングツールに
よりユーザが新規に作成した応用FBを、FBライブラ
リ12に登録することも可能である。また、各FBに
は、該FBを実行するための条件である実行条件が設定
されている場合がある。実行条件が設定されたFBは、
実行条件に設定された評価式が真となった場合のみFB
の処理を実行する。
【0004】従来の技術として、プログラムを定期的に
実行する必要がある場合、ユーザは、プログラミングツ
ール上で、プログラムをタスクに割り付けて実行する。
タスクとは、プログラムを決められた時間ごとに、定期
的に実行させる能力を有する実行制御要素として定義さ
れたものである。本明細書では、タスクに割付けられる
応用FBをプログラムと呼ぶ。図16は、タスクを説明
したもので、1はタスクの実行周期、2はプログラムA
の実行時間を示す。プログラムAはタスクに割付けられ
ることで、実行周期400msで実行される(タスクが
400ms毎にプログラムAを実行する)が、プログラ
ムAの実行時間2が、タスクの実行周期1以内に収まる
範囲で変動する場合に限って、プログラムAは実行周期
400msで実行される。
【0005】また、1つのタスクには、複数のプログラ
ムを割付けることができる。タスクに割付けられた各々
のプログラムは、定められた順序に従って1本ずつ実行
される。複数のプログラムを同一タスクに割り付ける場
合、各々のプログラムの実行タイミングをあらかじめ一
定時間ずらして(位相差をつけて)割付ける技術があ
る。こうすることで、他のプログラムの実行時間に影響
を受けずに、各々のプログラムが常に既定の実行周期で
実行される。図17は、位相を説明したもので、プログ
ラムA、B、C及びDを位相差をつけて、タスクに割付
けて実行する場合の例を示している。図17において、
1はタスクの実行周期(この場合は400ms)、2は
プログラムAの実行時間、3はプログラムの実行タイミ
ングをあらかじめ一定時間ずらしてタスクに割付ける際
のずらし時間を表す位相幅(この場合は100ms)を
示す。この図17では、ユーザはプログラムAを位相#
0、プログラムBを位相#1、プログラムCを位相#
2、プログラムDを位相#3に割付けている。位相差を
つけて、プログラムを実行することで、プログラムAの
実行時間2が、位相幅である100ms以内に常に収ま
る範囲で変動する場合に限って、プログラムAの次に実
行されるプログラムBの実行周期を常に一定の400m
sにすることができる。
【0006】
【発明が解決しようとする課題】従来、プログラムの実
行時間は、プログラミングツール上でのプログラム作成
時には分からず、実際にプログラマブルコントローラ上
でプログラムを実行しなければ分からなかった。これ
は、プログラマブルコントローラ上でプログラムが実行
中に、外部からのプログラマブルコントローラへの入力
等によりプログラム中の実行処理が動的に変わり、プロ
グラムの実行時間が変動するためである。したがって、
プログラミングツール上でプログラムをタスクに割付け
る際、プログラムの実行時間が分からないまま、タスク
割付を行なわなければならなかった。このため、実際に
プログラマブルコントローラ上で、プログラムを実行し
た場合に、予想よりも多くの実行時間を要し、結果とし
て、プログラムが定周期で実行できなくなる問題点があ
った。例えば、図16で、プログラムAの実行時間2が
400ms以上の場合、プログラムAは、タスクの実行
周期1(400ms周期)で実行されなくなる。
【0007】同様に、プログラムを位相差をつけてタス
クに割り付ける際も、プログラムの実行時間が割付時に
分からないまま、位相割付を行なわなければならなかっ
た。このため、実際にプログラマブルコントローラ上
で、プログラムを実行したとき、プログラムの実行時間
が変動した場合に、次の実行プログラムが定周期で実行
できなくなり、プログラムの実行起動タイミングが遅れ
ることがあった。例えば、図17で、プログラムCの実
行時間2aが100ms+αmsとなった場合、プログ
ラムDの実行はプログラムCの実行が終了するまで待た
されるため、プログラムDの実行起動タイミングがαm
s遅れる。このため、プログラムDの実行周期1aが4
00ms+αmsとなり、設定された実行周期400m
sで実行されなくなる。
【0008】プログラムを定期的に実行する必要がある
PID制御(比例Proportional 積分Integral 微分D
erivativeを用いた制御方式)等では、プログラムが定
期的に実行されないと制御の精度が落ち、制御対象に多
大な悪影響を及ぼすため、プログラムを定期的に実行す
ることは非常に重要である。したがって、従来はデバッ
グ時に、実際にプログラマブルコントローラ上でプログ
ラムを実行し、プログラムが既定の実行周期で実行され
ているかどうかを確かめる必要があった。プログラムが
既定の実行周期で実行されていない場合は、プログラム
を変更しプログラムの実行時間をタスクの実行周期以下
にするか、あるいはタスクの実行周期をプログラムの実
行時間以上にするなどの変更が必要であり、修正後、再
度プログラマブルコントローラ上でプログラムを実行し
て、プログラムが既定の実行周期で実行されているかど
うかを確かめなければならず、非常に大きな手間と労力
が必要となる問題点があった。
【0009】本発明は上記問題点を解決するためになさ
れたものであって、プログラムの実行時間がプログラマ
ブルコントローラ上で実際にプログラムを動作させなく
ても算出できることで、ユーザがプログラムをタスクに
割付ける作業負荷を軽減することを目的とする。
【0010】
【課題を解決するための手段】本発明に係るプログラミ
ングツールは、プログラムを構成する各ファンクション
ブロックの実行時間を格納する実行時間格納部と、ファ
ンクションブロックの組み合わせからなる上記プログラ
ムの最大実行時間を、上記実行時間格納部に基づき算出
する最大実行時間算出手段と、この最大実行時間算出手
段に基づき算出された最大実行時間と、タスクの実行周
期とを比較し、上記プログラムが決められた周期で実行
できるか否かを判定するプログラム実行判定手段と、を
備えたものである。
【0011】また、プログラムを構成する各ファンクシ
ョンブロック毎に、該ファンクションブロックが構成の
一部となる親ファンクションブロックの名称、該ファン
クションブロックを構成する子ファンクションブロック
の名称、ファンクションブロックの実行条件を設定する
ものである。
【0012】さらに、最大実行時間の算出は、プログラ
ム内の各ファンクションブロックの実行条件を調べるも
のである。
【0013】さらにまた、プログラム実行判定手段によ
る判定の結果、タスクの実行周期よりも割付けるプログ
ラムの実行時間の方が大きい場合に、警告メッセージを
出力するものである。
【0014】また、本発明に係るプログラミング方法
は、プログラムを構成する各ファンクションブロックの
実行時間をあらかじめ格納する工程と、ファンクション
ブロックの組み合わせからなる上記プログラムの最大実
行時間を、上記実行時間の和により算出する工程と、こ
の算出された最大実行時間と、タスクの実行周期とを比
較し、上記プログラムが決められた周期で実行できるか
否かを判定する工程と、判定の結果、実行できる際には
プログラム割付け処理を行う工程と、を備えたものであ
る。
【0015】
【発明の実施の形態】実施の形態1.図1は、本発明の
プログラミングツール10の実施構成図である。 図2
は、本発明によるプログラミングツール10の回路ブロ
ック図である。図1及び図2で示すように、本発明のプ
ログラミングツール10は、CRT等の表示装置8、キ
ーボード7a、マウス7b等の入力装置7と、プログラ
マブルコントローラ9との間でデータの授受を行なう情
報伝達部6と、プログラミングツールでデータの処理を
行なうデータ処理部4と、データ処理の演算に用いる記
憶部5を備えている。
【0016】データ処理部4は、プログラムを構成する
FBの情報を格納するプログラム情報格納手段41、プ
ログラムの最大実行時間を算出するプログラム最大実行
時間算出手段42、プログラムが決められた周期で実行
できることを判定するプログラム実行判定手段43を備
えている。
【0017】記憶部5は、実行時間を算出するための一
時記憶領域である実行時間用一時記憶51、プログラム
を構成する各FBの情報及び各FBの実行時間が算出済
みかどうかを示すフラグが格納される階層構造データ格
納部52、基本FBあるいは応用FBの実行時間が格納
されるFB実行時間格納部53、プログラムをタスクに
割付けるための一時記憶領域であるタスク割付け用一時
記憶54、プログラムを位相に割付けるための一時記憶
領域である位相割付け用一時記憶55、プログラムが位
相に割付けられている情報が格納される位相割付け情報
格納部56を備えている。なお、記憶部5の詳細につい
ては後述する。
【0018】ユーザが、プログラミングツールで新規に
応用FBを作成する場合には、新規作成する応用FBの
名称を決め、FBDエディタ13を起動する。ユーザは
このFBDエディタ13上に、一連の処理を定義するた
めに必要な基本FBあるいは応用FBを、FBライブラ
リ12からマウス7bでドラッグ&ドロップし、各々の
FBをマウス7bで結線することで、一連の処理を定義
する。なお、本明細書では、FBDエディタ上に貼り付
けるFBを“子FB”(図1の12a)と呼び、子FB
により一連の処理が定義されたFBDエディタ上の処理
(応用FB)を“親FB”(図1の12b)として説明
する。また、ユーザがプログラムをタスクに割付ける場
合は、タスク割付けメニュー15を選択する。
【0019】ユーザがプログラミングツールで位相差を
つけてプログラムをタスクに割付けるために、位相あり
のタスクを新規に作成した場合は、プログラミングツー
ルは図14に示す位相割付け情報格納部56を作成し、
タスク名称欄561にタスク名称、位相にプログラムが
割付けられているかどうかを表すプログラム割付け状態
欄562に初期値“0”を格納する。この図14の例で
は、タスクAの#0にはプログラムが割付けられてお
り、#1にはプログラムが割付けられていない状態を示
している。なお、図14では説明の簡略化のため位相が
2つの場合の例を示しているが、例えばタスクが4つの
位相(#0〜#4)を持つ場合は、位相割付け情報格納
部56のプログラム割付け状態欄562も#0〜#4ま
での4つの列を持つ。位相割付け情報格納部56のプロ
グラム割付け状態欄562の情報は、該位相にプログラ
ムが割付けられているかどうかを表し、割付けられてい
ない場合は“0”、割付けられている場合は“1”が後
述の図9のプログラム(位相あり)割付け処理ST45
によって格納される。
【0020】次に、本実施の形態の全体動作を、図3の
フローチャートを用いて説明する。ユーザ操作ST1に
おいて、ユーザがプログラミングツールで、FBDエデ
ィタ13上にFBライブラリ部からFBをドラッグ&ド
ロップする等プログラムを新規に作成あるいは修正した
場合は、プログラム情報格納処理ST2において、プロ
グラム情報格納手段41を実行し、プログラムを構成す
るFBの情報が階層構造データ格納部52に格納され
る。なお、階層構造データ格納部52の詳細やFBの情
報の格納方法については後述する。
【0021】また、ユーザ操作ST1において、ユーザ
がプログラミングツールで、タスク割付けメニュー15
を選択して、プログラムをタスクに割付ける選択をした
場合は、ST3を実行する。ST3では、既存プログラ
ムのうちプログラムの実行時間が判明していないプログ
ラム(以下、未解析プログラムと呼ぶ)が存在するかど
うかを、階層構造データ格納部52を参照することで判
断する。なお、未解析プログラムが存在するかどうかを
どのように判断するかは後述する。
【0022】ST3で、未解析プログラムが存在すると
判断された場合には、プログラム最大実行時間算出処理
ST4において、プログラム最大実行時間算出手段42
を実行する。プログラム最大実行時間算出手段42は、
階層構造データ格納部52及び各々のFBの実行開始か
ら終了までの処理時間(以下、FB実行時間と呼ぶ)を
格納しているFB実行時間格納部53を参照し、プログ
ラムの最大実行時間を算出したあと、該プログラムの最
大実行時間をFB実行時間格納部53に格納する。な
お、FB実行時間格納部53には、メーカから提供され
る実行時間が既知の基本FBの実行時間はあらかじめ格
納されており、ユーザが作成した応用FBの実行時間も
プログラム最大実行時間算出処理ST4において算出さ
れた後、随時格納される。なお、プログラムの最大実行
時間の算出方法やFB実行時間の格納方法は後述する。
【0023】ST3において未解析プログラムが存在し
ない場合には、プログラミングツールは、ユーザがプロ
グラムをタスク割付けする際、プログラム実行判定処理
ST5で、各々のプログラムが決められた周期で実行で
きることを判定するプログラム実行判定手段43を実行
する。(判定方法については、後述する。)以上が、全
体動作の概略説明である。
【0024】次に、プログラム情報格納処理ST2の詳
細な説明を行う。ユーザがプログラミングツール上で新
規に応用FBを作成した時あるいは既存の応用FBの処
理にFBを追加(削除)した時には、プログラム情報格
納処理ST2は、図4で示す階層構造データ格納部52
に、以下に示すようにプログラムを構成するすべてのF
Bの情報を格納する。まず、図4に示す階層構造データ
格納部52の説明を行う。親FB欄523には、親FB
の名称が格納され、子FB欄524には、該親FB上に
貼り付けられている子FBの名称が格納される。図4の
1行目を見ると、親FB欄523には“FB1”が格納
され、子FB欄524には“ADD”が格納されてい
る。また2行目を見ると、親FB欄523には“FB
1”が格納され、子FB欄524の“ABS”が格納さ
れている。これら1行目、2行目から親FBである“F
B1”は、子FBである“ADD”及び“ABS”を含
んでおり、“ADD”及び“ABS”の実行時間の合計
が“FB1”の実行時間となる。(この実行時間の算出
については後述する。)図15にあてはめると14bが
“FB1”、14cが“ADD”及び“ABS”とな
る。また、4行目を見ると、親FB欄523に“FB
2”が格納され、子FB欄524に“FB1”が格納さ
れている。これは、FBDで作成されたプログラムの特
徴である階層構造を示したもので、“ADD”及び“A
BS”を含む“FB1”が“FB2”に含まれているこ
とを表す。図15にあてはめると14aが“FB2”、
14bが“FB1”、14cが“ADD”及び“AB
S”となる。
【0025】階層構造データ格納部52の親FB実行時
間算出状態フラグ欄521には、親FBの実行時間が算
出済みか否かが格納される。本欄の初期値は“0”であ
り、後述のプログラム最大実行時間算出処理ST4にお
いて親FBの実行時間が算出されると、親FBの実行時
間が算出済みであることを示すフラグ“−1”が格納さ
れる。親FB識別フラグ欄522は、プログラム最大実
行時間算出処理ST4が実行時間算出中の親FBを識別
するためのフラグ欄である。本欄の初期値は“0”であ
り、実行時間算出中の親FBに対して“1”が格納され
る。子FB実行時間欄525には、プログラム最大実行
時間算出処理ST4において、子FB欄524の実行時
間を図5で示すFB実行時間格納部53を参照すること
で、子FBの実行時間が格納される。本欄の初期値は
“0”である。実行条件欄526には、プログラム最大
実行時間算出処理ST4において、子FB欄524が実
行条件を持つ場合に、該子FBの持つ実行条件が格納さ
れる。子FB実行時間加算済みフラグ欄527には、プ
ログラム最大実行時間算出処理ST4において、子FB
の実行時間が親FBの実行時間に加算済みか否かが格納
される。本欄の初期値は“0”であり、該子FBの実行
時間が親FBの実行時間に加算された場合に、“1”が
格納される。
【0026】続いて、プログラム情報格納処理ST2が
階層構造データ格納部52にFBの情報を格納する処理
について示す。ユーザがプログラミングツール上でFB
Dエディタ13を起動し、新規に応用FBを作成した
時、プログラム情報格納処理ST2は、階層構造データ
格納部52に新規に行を作成し、作成された行の親FB
欄523に作成した応用FBの名称を格納し、さらに親
FB実行時間算出状態フラグ欄521、親FB識別フラ
グ欄522及び子FB実行時間欄525には初期値0を
格納する。ユーザが、FBライブラリ12からFBをF
BDエディタ13上にドラッグ&ドロップした時には、
階層構造データ格納部52の親FB欄523に、該FB
の貼り付け先となるFB名称(親FBの名称)を持つ行
の子FB欄524に、FBライブラリ12からドラッグ
&ドロップしたFBの名称(子FBの名称)を格納し、
さらに子FB実行時間加算済みフラグ欄527に初期値
0を格納する。なお、1つの親FBに対し、複数の子F
Bを貼り付ける場合は、FBを貼り付ける都度、貼り付
け先のFB名称を親FB欄523に持つ行の下に1行追
加する。追加された行に対して、貼り付け先FB名称を
親FB欄523に格納、貼り付けるFBの名称を子FB
欄524に格納し、親FB実行時間算出状態フラグ欄5
21、親FB識別フラグ欄522、子FB実行時間欄5
25および子FB実行時間加算済みフラグ欄527に初
期値0を格納する。
【0027】また、ユーザがプログラミングツール上
で、既に作成した応用FBから、該応用FBを構成して
いる子FBを削除した場合は、プログラム情報格納処理
ST102は、削除されるFB(子FB)を貼り付けて
いる応用FB(親FB)の名称を親FB欄523に持
ち、かつ削除する子FBの名称を子FB欄524に持つ
行すべてを階層構造データ格納部52から削除する。例
えば、ユーザが応用FB(親FB)“FB2”から、子
FB“SQRT”を削除した場合は、“FB2”を親F
B欄523に持ち、かつ“SQRT”を子FB欄524
に持つ行(図4の例だと3行目)を削除する。
【0028】また、ユーザがプログラミングツール上で
応用FBそのものを削除した場合は、削除された応用F
B(親FB)の名称を親FB欄523に持つ行すべてを
階層構造データ格納部52から削除する。さらに、削除
された応用FB(親FB)の名称を子FB欄524に持
つ行すべてを階層構造データ格納部52から削除する。
例えば、ユーザが応用FB(親FB)“FB1”を削除
した場合は、“FB1”を親FB欄523に持つ行すべ
て(図4の例だと行528の2行)及び“FB1”を子
FB欄524に持つ行すべて(図4の例だと4行目と7
行目)を削除する。
【0029】また、ドラッグ&ドロップしたFBに、実
行条件が設定されている場合の処理を示す。実行条件と
は、FBが実行するための条件で、各々のFBは、実行
条件に設定された評価式が真となった時のみFBの処理
を実行する。実行条件は、“左項 比較演算 右項”の
構成とし、比較演算に使用できる演算子は、等しい
(=)、等しくない(<>)、小なり(<)、大なり
(>)、小なりイコール(<=)、大なりイコール(>
=)の6種類とする。プログラム情報格納処理ST2
は、FBの名称を階層構造データ格納部52の子FB欄
524に格納する際に、格納するFBに実行条件が設定
されているかを調べ、実行条件が設定されている場合
は、実行条件を該行の実行条件欄526に格納する。
【0030】図4の例では、行528の親FBのFB1
は、子FBの“ADD”及び“ABS”で構成されてい
る。なお、“ADD”には、実行条件として、“A>
3”が設定されている。行529の親FBのFB2は、
子FBの“SQRT”、“FB1”及び“SUB”で構
成されている。なお、“SQRT”には、実行条件とし
て、“B<C”が設定されており、“SUB”には、
“B>C”が設定されている。行530の親FBのPR
G1は、子FBの“ADD”、“FB1”及び“FB
2”で構成されている。なお、“ADD”には、実行条
件として、“D<100”が設定されており、“FB
2”には、“D<>E”が設定されている。
【0031】続いて、ST1において、ユーザがプログ
ラミングツール上で、タスク割付けメニュー15を選択
してタスク割付けを行なう場合に実行されるST3を説
明する。ST3において、階層構造データ格納部52の
親FB実行時間算出状態フラグ欄521に−1以外の数
値が格納されている場合には、該当親FBは未解析プロ
グラムということになり、プログラム最大実行時間算出
処理ST4を実行する。ST3において、未解析プログ
ラムが発見されなかった場合には、既にすべての親FB
の最大実行時間算出処理が終了しているため、プログラ
ム実行判定処理ST5を実行する。
【0032】続いて、プログラム最大実行時間算出処理
ST4を説明する。プログラム最大実行時間算出処理S
T4は、階層構造データ格納部52の親FB実行時間算
出状態フラグ欄521が−1以外である親FBに対し
て、最大実行時間を算出する処理を行なう。プログラム
最大実行時間算出処理ST4は、FBDで作成されたプ
ログラムの処理に、ループ処理がないという特徴を活か
して、プログラムの実行時間を算出している。すなわ
ち、FBDで作成されたプログラムの実行時間は、プロ
グラムに含まれている全FBの実行時間の合計時間とい
える。例えば、FB1内にFB2、FB3が配置されて
いる場合、FB1の最大実行時間は、FB2の実行時間
+FB3の実行時間である。
【0033】プログラム最大実行時間算出処理ST4を
図6のフローチャートで示す。ST11で、階層構造デ
ータ格納部52の親FB実行時間算出状態フラグ欄52
1の先頭から0以上で最小の数を検索し、0以上で最小
の数を該欄521に持つFBについては、実行時間が未
算出状態のため、実行時間格納処理ST202を実行す
る。親FB実行時間算出状態フラグ欄521の先頭から
0以上の最小の数を検索し、発見されなかった場合、未
解析プログラムがないため、プログラム最大実行時間算
出処理ST4を終了する。ここで親FB実行時間算出状
態フラグ欄521に格納される値の意味を説明する。本
欄の初期値は前述のとおり“0”であり、親FBの実行
時間が算出された場合、後述のST23の処理において
“−1”が格納される。親FBの実行時間を算出するた
めには、該親FBが持つすべての子FBの実行時間が算
出済みでなければならない。もし子FBが応用FBでま
だ実行時間が算出されていない場合は、該親FBの実行
時間は算出できない。このため、該親FBの実行時間算
出は後回しにして、先に該親FBが持つ子FBの実行時
間を算出する必要があり、該親FBの実行時間の算出を
後回しにする識別フラグとして該親FBの親FB実行時
間算出状態フラグ欄521に“1”を加算する。ST1
1では、親FBの実行時間を算出するために親FB実行
時間算出状態フラグ欄の先頭から“0”以上で最小の数
を検索する。このため親FB実行時間算出状態フラグ欄
521に“1”を持つ該親FBよりもまだ実行時間の算
出がされていない親FB実行時間算出状態フラグ欄52
1に“0”を持つ子FBの実行時間の算出を先にするこ
とになる。
【0034】実行時間格納処理ST12は、ST11に
おいて、0以上で最小の数が発見された親FB欄523
のFB名称と同一の名称を親FB欄523に持つ全ての
行の親FB識別フラグ欄522に1を格納し、それ以外
の行の親FB識別フラグ欄522には0を格納する。図
4の例では、親FB実行時間算出状態フラグ欄521に
0が格納されているFB2を親FB欄523に含む全て
の行の親FB識別フラグ欄522に1が格納される。ま
た、実行時間格納処理ST12は、階層構造データ格納
部52の親FB識別フラグ欄522に1を持つすべての
行の、子FB欄524に格納されているFBの実行時間
を子FB実行時間欄525に格納する。実行時間は、図
5に示すFB実行時間格納部53からFB名称をキーと
して参照するが、FB名称が発見されなかった場合は、
子FBの実行時間が判明していないことを示すため、子
FB実行時間欄は初期値“0”のままとなる。
【0035】ST13において、階層構造データ格納部
52の親FB識別フラグ欄522に1を持つ行の、子F
B実行時間欄525を参照し、1つでも“0”が格納さ
れている場合は、子FBの実行時間が判明していないた
めST14を実行する。ST14では階層構造データ格
納部52の親FB識別フラグ欄522が1である全ての
行の親FB実行時間算出状態フラグ欄521に1を加
え、ST11に戻る。階層構造データ格納部52の親F
B識別フラグ欄522に1が格納されている全ての行の
子FB実行時間欄525が“0”以外の場合(実行時間
が格納されている場合)には、ST15を実行する。
【0036】ST15において、階層構造データ格納部
52の親FB識別フラグ欄522に1が格納されてお
り、かつ子FB実行時間加算済みフラグ欄527が0で
ある行(以下、算出対象FBと呼ぶ)の実行条件欄52
6を調べ、実行条件が格納されている場合は、該実行条
件を図7で示す実行時間用一時記憶51の実行条件欄5
11に格納後、実行条件格納処理ST16を実行する。
算出対象FBの実行条件欄526に実行条件が格納され
ていない場合は、該算出対象FBの子FB実行時間加算
済みフラグ欄527に1を格納し、さらに、子FB実行
時間欄525の数値を実行時間用一時記憶51の格納実
行時間欄517に格納後、実行時間加算処理ST208
を実行する。図4の例では、FB2を親とするSQR
T、FB1、SUBは、いずれも算出対象FBであり、
SQRTの実行条件欄526に実行条件が格納されてい
るため、SQRTの実行条件である“B<C”を図7で
示す実行時間用一時記憶51の実行条件欄511に格納
後、ST16に進む。
【0037】ここで、FBの実行時間の算出方法につい
て述べる。通常、あるFBの実行時間は、該FB内に配
置されている全FBの実行時間の合計となる。例えば、
FB1内にFB2、FB3が配置されている場合、FB
1の最大実行時間は、FB2の実行時間とFB3の実行
時間の合計である。しかし、あるFB内に配置されてい
るFBの実行条件と相反する実行条件を持つFBが同一
FB内に存在するならば、一方のFBが実行するとき、
他方のFBは実行されないことになる。例えば、FB2
の実行条件が“A<B”、FB3の実行条件が“A>=
B”であるならば、FB2とFB3が同時に実行される
ことはなく、常にどちらか一方のFBのみが実行され
る。したがって、FB1の実行時間は、実行条件“A<
B”が成立時にはFB2の実行時間と等しく、実行条件
“A<B”が不成立時(実行条件“A>=B”が成立
時)にはFB3の実行時間と等しいと考えることができ
る。すなわち、FB1の最大実行時間はFB2とFB3
の実行時間のうち、実行時間の大きい方の実行時間に等
しい。
【0038】相反する実行条件は、実行条件の左項と右
項はそのままで、比較演算“=”を“<>”、“<>”
を“=”、“>”を“<=”、“<”を“>=”、“>
=”を“<”、“<=”を“>”に置き換えたものとな
る。また、実行条件と同等条件を、実行条件の左項と右
項を入れ替え、比較演算“<”を“>”、“>”を
“<”、“>=”を“<=”、“<=”を“>=”に置
き換えたものとする。(“=”及び“<>”に関しては
そのまま) 図4の例では、SQRTの実行条件“B<C”と同等の
条件は“C>B”であり、SQRTの実行条件“B<
C”に相反する条件は、“B>=C”であり、相反する
条件と同等の条件は、“C<=B”である。本明細書で
は、実行条件と同等の条件のことを“同等実行条件”と
呼び、実行条件と相反する実行条件を“否定実行条
件”、否定実行条件と同等の条件のことを“同等否定実
行条件”と呼ぶ。
【0039】実行条件格納処理ST16は、実行時間用
一時記憶51の実行条件欄511に格納されている実行
条件と同等の条件を同等実行条件欄512に格納し、相
反する実行条件を否定実行条件欄513、否定実行条件
と同等の条件を同等否定実行条件欄514にそれぞれ格
納する。また、実行条件FB実行時間合計欄515及び
否定実行条件FB実行時間合計欄516には初期値0を
格納する。
【0040】ST17では、階層構造データ格納部52
の算出対象FBの全ての行のうち、実行条件欄526
に、実行時間用一時記憶51の否定実行条件欄513に
格納されている条件と等しい条件を持つものがあれば、
ST19を実行し、等しい条件を持つものがなければ、
否定実行条件クリア処理ST18を実行する。
【0041】否定実行条件クリア処理ST18は、実行
時間用一時記憶51の否定実行条件欄513に、否定実
行条件を持つ算出対象FBは存在しないという意味の
“0”を格納し、ST19を実行する。
【0042】ST19では、階層構造データ格納部52
の算出対象FBの全ての行のうち、実行条件欄526
に、実行時間用一時記憶51の同等否定実行条件欄51
4に格納されている条件と等しい条件を持つものがあれ
ば、実行時間選択処理ST21を実行し、等しい条件を
持つものがなければ、同等否定実行条件クリア処理ST
20を実行する。
【0043】同等否定実行条件クリア処理ST20は、
実行時間用一時記憶51の同等否定実行条件欄514
に、同等否定実行条件を持つ算出対象FBは存在しない
という意味の“0”を格納し、ST21を実行する。
【0044】続いて、実行時間選択処理ST21の説明
を図8によるフローチャートで説明する。実行条件FB
加算処理ST31は、階層構造データ格納部52の算出
対象FBのうち、実行条件欄526の条件が、実行時間
用一時記憶51の実行条件欄511に格納されている条
件に等しい行全ての子FB実行時間欄525の数値を、
実行時間用一時記憶51の実行条件FB実行時間合計欄
515に加算する処理を行なう。
【0045】また、実行条件FB加算処理ST31は、
階層構造データ格納部52の算出対象FBのうち、実行
条件欄526の条件が、実行時間用一時記憶51の同等
実行条件欄512に格納されている条件に等しい行全て
の子FB実行時間欄525の数値を、実行時間用一時記
憶51の実行条件FB実行時間合計欄515に加算する
処理を行なう。
【0046】ST32は、実行時間用一時記憶51の否
定実行条件欄513を調べ、0が格納されている(実行
条件が設定されていない)場合は、ST34を実行し、
0が格納されていない(実行条件が設定されている)場
合は、否定実行条件FB加算処理ST33を実行する。
【0047】否定実行条件FB加算処理ST33は、階
層構造データ格納部52の算出対象FBのうち、実行条
件欄526の条件が、実行時間用一時記憶51の否定実
行条件欄513に格納されている条件に等しい行全ての
子FB実行時間欄525の数値を、実行時間用一時記憶
51の否定実行条件FB実行時間合計欄516に加算す
る処理を行なう。
【0048】ST34は、実行時間用一時記憶51の同
等否定実行条件欄514を調べ、0が格納されている
(実行条件が設定されていない)場合は、ST36を実
行し、0が格納されていない(実行条件が設定されてい
る)場合は、同等否定実行条件FB加算処理ST35を
実行する。
【0049】同等否定実行条件FB加算処理ST35
は、階層構造データ格納部52の算出対象FBのうち、
実行条件欄526の条件が、実行時間用一時記憶51の
同等否定実行条件欄514に格納されている条件に等し
い行全ての子FB実行時間欄525の数値を、実行時間
用一時記憶51の否定実行条件FB実行時間合計欄51
6に加算する処理を行なう。
【0050】格納実行時間算出処理ST36は、実行時
間用一時記憶51の実行条件FB実行時間合計欄515
の数値と否定実行条件FB実行時間合計欄516の数値
の大小を比較し、大きいほうの数値を実行時間用一時記
憶51の格納実行時間欄517に格納する。また、実行
時間用一時記憶51の実行条件欄511に格納されてい
る条件を、階層構造データ格納部52の算出対象FBの
実行条件欄526に持つ行全ての子FB実行時間加算済
みフラグ欄527に1を格納する。また、実行時間用一
時記憶51の同等実行条件欄512に格納されている条
件を、階層構造データ格納部52の算出対象FBの実行
条件欄526に持つ行全ての子FB実行時間加算済みフ
ラグ欄527に1を格納する。
【0051】次に格納実行時間算出処理ST36は、実
行時間用一時記憶51の否定実行条件欄513に格納さ
れている条件を、階層構造データ格納部52の算出対象
FBの実行条件欄526に持つ行全ての子FB実行時間
加算済みフラグ欄527に1を格納する。また、実行時
間用一時記憶51の同等否定実行条件欄514に格納さ
れている条件を、階層構造データ格納部52の算出対象
FBの実行条件欄526にもつ行全ての子FB実行時間
加算済みフラグ欄527に1を格納し、実行時間選択処
理ST21を終了する。
【0052】実行時間加算処理ST22は、階層構造デ
ータ格納部52の親FB識別フラグ欄522が1(以
下、実行時間算出中親FBと呼ぶ。)の親FB欄523
に格納されている名称を、FB実行時間格納部53のF
B名称欄531に持つ行の実行時間欄532に対して、
実行時間用一時記憶51の格納実行時間欄517の数値
を加算する。階層構造データ格納部52の実行時間算出
中親FBの親FB欄523に格納されているFB名称
を、FB実行時間格納部53のFB名称欄531に持た
ない場合は、FB実行時間格納部53の最下行の下に、
1行追加し、FB名称欄531に該FB名称を、実行時
間欄532に、実行時間用一時記憶51の格納実行時間
欄517の数値を格納する。
【0053】ST23において、階層構造データ格納部
52の実行時間算出中親FBの子FB実行時間加算済み
フラグ欄527に1つでも0が格納されている場合は、
ST15に戻る。一方、階層構造データ格納部52の実
行時間算出中親FBの全ての行の子FB実行時間加算済
みフラグ欄527に0が格納されていない場合は、実行
時間算出中親FBの実行時間が判明したことになるた
め、実行時間算出中親FBの親FB実行時間算出状態フ
ラグ欄521に−1を格納後、ST11に戻る。以上
で、プログラム最大実行時間算出処理ST4の説明を終
わる。
【0054】続いて、プログラム実行判定処理ST5の
説明を図9のフローチャートで示す。ST41で、プロ
グラミングツール上で、ユーザがプログラムを位相差を
つけずにタスクに割付ける選択をした場合、プログラム
(位相なし)割付け処理ST42を実行し、ユーザがプロ
グラムを位相差をつけてタスクに割付ける選択をした場
合、プログラム(位相あり)割付け処理ST45を実行
する。
【0055】プログラム(位相なし)割付け処理ST42
は、ユーザがプログラミングツールにおいて、プログラ
ムの割付け先となるタスク(以下、割付け先タスクと呼
ぶ)を選択した際、該タスクの実行周期を図10で示す
タスク割付け用一時記憶54のタスク実行周期欄541
に格納する。また、プログラム(位相なし)割付け処理S
T42は、ユーザがプログラミングツールにおいて、タ
スクに割付けるプログラム(以下、割付けプログラムと
呼ぶ)を選択した際、選択したプログラムの実行時間を
FB実行時間格納部53よりFB名称をキーとして参照
し、タスク割付け用一時記憶54のプログラム最大実行
時間欄542に格納する。
【0056】ST43において、タスク割付け用一時記
憶54のタスク実行周期欄541の数値とプログラム最
大実行時間欄542の数値を比較し、タスク実行周期欄
541の数値のほうが大きい場合には、タスク割付け処
理ST44を実行し、プログラム最大実行時間欄542
の数値のほうが大きい場合には、プログラミングツール
上に、ユーザに対して、このまま割付けプログラムを割
付け先タスクに割付けても、タスクの実行周期でプログ
ラムが実行できないためプログラムのタスク割付けをキ
ャンセルする旨の警告メッセージを表示し、プログラム
のタスク割付けをキャンセルする。
【0057】タスク割付け処理ST44は、ユーザがプ
ログラミングツール上で、割付けプログラムを割付け先
タスクに割付ける選択をした場合は、タスクにプログラ
ムを割付ける処理を行なう。ユーザがタスクへのプログ
ラム割付けをキャンセルした場合は、タスクへのプログ
ラム割付けをキャンセルし、プログラム実行判定処理S
T5を終了する。
【0058】続いて、プログラム(位相あり)割付け処
理ST45を図11に示すフローチャートで説明する。
その前に図12でタスクの実行周期と位相について説明
する。タスクの実行周期1は、位相幅3のn倍(nは1
以上の整数)となる。図12に示す例では、タスク実行
周期1(200ms)は、位相幅3(100ms)の2
倍となっている。この場合、位相の数は2でそれぞれ#
0、#1とする。なお、以下の説明では、プログラムの
最大実行時間を記号“P”ms、位相幅を“S”msで
示す。
【0059】図11の割付け判定前処理ST51は、ユ
ーザがプログラミングツールにおいて、割付け先タスク
を選択した際、該タスクの実行周期を図13で示す位相
割付け用一時記憶55のタスク実行周期欄551に格納
し、該タスクの位相幅を位相幅S欄552に格納する。
また、割付け判定前処理ST51は、ユーザがプログラ
ミングツールで割付けプログラムを選択した際、選択し
たプログラムの実行時間をFB実行時間格納部53より
FB名称をキーとして参照し、位相割付け用一時記憶5
5のプログラム最大実行時間P欄553に格納する。
【0060】割付け判定処理ST52は、位相割付け用
一時記憶55のタスク実行周期欄551の値とプログラ
ム最大実行時間P欄553の値を比較し、プログラム最
大実行時間P欄553の値の方がタスク実行周期欄55
1の値よりも大きい場合には、割付け先タスクの実行周
期で割付けプログラムが実行できないことを示すフラグ
“−1”を判定タイプ欄554に格納する。また、割付
け判定処理ST52は、位相割付け用一時記憶55を参
照することで、P/Sを計算し、P/S<=1(図12
プログラムAのケース)なら、位相割付け用一時記憶5
5の判定タイプ欄554に1を格納し、1<P/S<=
2(図12のプログラムBのケース)なら2を格納す
る。(2<P/S(図12のプログラムCのケース)の
場合は、プログラム最大実行時間の方がタスク実行周期
よりも大きいために、既に判定タイプ欄は“−1”とな
っている。)
【0061】ST53では、位相割付け用一時記憶55
の判定タイプ欄554を参照し、−1が格納されている
場合(プログラム最大実行時間の方がタスク実行周期よ
りも大きい場合)は、プログラミングツール上に、ユー
ザに対して、このまま割付けプログラムを割付け先タス
クに割付けても、タスクの実行周期でプログラムが実行
できないためプログラムのタスク割付けをキャンセルす
る旨の警告メッセージを表示し、プログラムのタスク割
付けをキャンセルする。
【0062】また、ST53では、位相割付け用一時記
憶55の判定タイプ欄554を参照し、1が格納されて
いる場合(P/S<=1)は、他のプログラムが位相に
割付けられていないかどうか(位相割付け情報格納部5
6のプログラム割付け状態欄562に“0”が格納され
ているかどうか)を位相割付け情報格納部56よりタス
ク名をキーとして参照する。プログラム割付け状態欄5
62のうちどれか1つでも“0”が格納されている(プ
ログラム割付け可能な位相が存在する)場合は割付け可
能位相表示処理ST54を実行する。プログラム割付け
状態欄562すべてに“1”が格納されている(プログ
ラム割付け可能な位相は存在しない)場合は、プログラ
ミングツール上に、ユーザに対して、プログラム割付け
可能な位相は存在しないためプログラムのタスク割付け
をキャンセルする旨の警告メッセージを表示し、プログ
ラムのタスク割付けをキャンセルする。
【0063】さらにまた、ST53では、位相割付け用
一時記憶55の判定タイプ欄554を参照し、2が格納
されている場合(1<P/S<=2)は、他のプログラ
ムが位相に割付けられていないかどうか(位相割付け情
報格納部56のプログラム割付け状態欄562に“0”
が格納されているかどうか)を位相割付け情報格納部5
6よりタスク名をキーとして参照する。プログラム割付
け状態欄562のうち連続した2つの位相(図14の例
では#0および#1)に“0”が格納されている場合は
割付け可能位相表示処理ST55を実行する。例えば、
図12のプログラムBのように、プログラム最大実行時
間が120msで、位相幅が100msの場合(P/S
が1.2)、プログラムBを位相#0に割付ける(#0
を含む連続した2つの位相(#0,#1)にプログラム
を割付ける)場合のみ該プログラムがタスクの実行周期
1で実行可能であるが、図14の例では位相割付け情報
格納部56の#0に既に他のプログラムが割付けられて
いる(“1”が格納されている)ため、プログラムBは
タスクAには割付けられない。プログラム割付け状態欄
562の連続した2つの位相に“0”が格納されていな
い(プログラム割付け可能な位相は存在しない)場合
は、プログラミングツール上に、ユーザに対して、プロ
グラム割付け可能な位相は存在しないためプログラムの
タスク割付けをキャンセルする旨の警告メッセージを表
示し、プログラムのタスク割付けをキャンセルする。
【0064】割付け可能位相表示処理ST54は、位相
割付け用一時記憶55の判定タイプ欄554を参照し、
1が格納されている場合は、プログラム割付け状態欄5
62のうち、“0”が格納されている位相番号にプログ
ラムを割付け可能である旨のメッセージを表示する。
(図14の例では、位相#1にプログラムを割付け可能
である旨のメッセージを表示する。)
【0065】また、割付け可能位相表示処理ST54
は、位相割付け用一時記憶55の判定タイプ欄554を
参照し、2が格納されている場合は、プログラム割付け
状態欄562の連続した2つの位相に“0”が格納され
ているうちの若番の方にプログラムを割付け可能である
旨のメッセージを表示する。例えば、プログラム割付け
状態欄562のうち、#0および#1に“0”が格納さ
れている場合は、位相#0にプログラムを割付け可能で
ある旨のメッセージを表示する。
【0066】位相割付け処理ST55は、ユーザがプロ
グラミングツール上で、プログラムを位相に割付ける選
択をした場合は、位相にプログラムを割付ける処理を行
なう。また、位相割付け処理ST55は、位相割付け用
一時記憶55の判定タイプ欄554を参照し、1が格納
されている場合は、位相割付け情報格納部56のプログ
ラム割付け状態欄562の割付け先の位相番号に“1”
を格納する。例えば、ユーザがプログラムを位相#1に
割付けた場合は、#1に“1”を格納する。また、位相
割付け処理ST55は、位相割付け用一時記憶55の判
定タイプ欄554を参照し、2が格納されている場合
は、位相割付け情報格納部56のプログラム割付け状態
欄562の割付け先の位相番号および該位相番号に1を
加えた位相番号に“1”を格納する。例えば、ユーザが
プログラムを位相#0に割付けた場合は、#0及び#1
に“1”を格納する。ユーザが位相へのプログラム割付
けをキャンセルした場合は、位相へのプログラム割付け
をキャンセルし、プログラム実行判定処理ST5を終了
する。
【0067】なお、上述した本実施の形態のプログラミ
ングツールは、光、磁気等の記憶媒体に記憶されたプロ
グラム或いは、ネットワークを介してダウンロードされ
るプログラムとして頒布され、パソコン等のコンピュー
タにインストールされることにより実現しても良い。
【0068】本実施の形態によれば、FBDで作成され
たプログラムの最大プログラム実行時間が、プログラミ
ングツール上でユーザがプログラムをタスクに割付ける
時には判明しており、ユーザがタスクに、タスクの実行
周期以上の実行時間を持つプログラムを誤って割付けて
しまうことがなく、デバッグによりプログラムを変更し
プログラムの実行時間をタスクの実行周期以下にする
か、あるいはタスクの実行周期をプログラムの実行時間
以上にするなどの変更、プログラムが既定の実行周期で
実行されているかどうかを確かめる処理が不要であり、
デバッグ作業化効率化でき、ユーザがプログラムをタス
クに割付ける作業負荷を軽減することができる。
【0069】また、プログラムの最大実行時間を算出す
る手段において、FBの実行条件を調べることで、実際
の実行時間により近いプログラムの最大実行時間を求め
るため、プログラムをタスクに精度よく割付けることが
できる。
【0070】
【発明の効果】この発明によれば、ファンクションブロ
ックで作成されたプログラムの最大プログラム実行時間
が、プログラミングツール上で判明しており、ユーザが
タスクに、タスクの実行周期以上の実行時間を持つプロ
グラムを誤って割付けてしまうことがなくなる。
【0071】また、プログラム内の各ファンクションブ
ロックの実行条件を調べることにより、実際の実行時間
に近い値を算出することができるので、プログラムをタ
スクに精度よく割付けることができる。
【図面の簡単な説明】
【図1】 この発明によるプログラミングツールのシス
テム構成図である。
【図2】 この発明によるプログラミングツールの回路
構成図である。
【図3】 この発明によるプログラミングツールの動作
を示すフローチャートである。
【図4】 この発明によるプログラミングツールの記憶
部の階層構造データ格納部に、階層構造のデータが格納
される様子を示す図である。
【図5】 この発明によるプログラミングツールの記憶
部のFB実行時間格納部に、FB名称及びFB実行時間
が格納される様子を示す図である。
【図6】 この発明によるプログラミングツールのプロ
グラム最大実行時間算出処理の動作を示すフローチャー
トである。
【図7】 この発明によるプログラミングツールの記憶
部の実行時間用一時記憶に、実行時間の算出に関するデ
ータが格納される様子を示す図である。
【図8】 この発明によるプログラミングツールの実行
時間選択処理の動作を示すフローチャートである。
【図9】 この発明によるプログラミングツールのプロ
グラム実行判定処理の動作を示すフローチャートであ
る。
【図10】 この発明によるプログラミングツールの記
憶部のタスク割付け用一時記憶に、タスク割付けに関す
るデータが格納される様子を示す図である。
【図11】 この発明によるプログラミングツールのプ
ログラム(位相あり)割付け処理の動作を示すフローチ
ャートである。
【図12】 位相割付けの説明図である。
【図13】 この発明によるプログラミングツールの記
憶部の位相割付け用一時記憶に、位相割付けに関するデ
ータが格納される様子を示す図である。
【図14】 この発明によるプログラミングツールの記
憶部の位相割付け情報格納部に、位相割付けの情報が格
納される様子を示す図である。
【図15】 FBの階層構造の説明図である。
【図16】 タスクの説明図である。
【図17】 位相の説明図である。
【符号の説明】
1 タスク実行周期、2 プログラムの実行時間、3
位相幅、4 データ処理部、5 記憶部、6 情報伝達
部、7 入力装置、8 表示装置、9 プログラマブル
コントローラ、10 プログラミングツール、11 プ
ログラム、12FBライブラリ、13 FBDエディ
タ、14 ファンクションブロック、15 タスク割付
けメニュー、41 プログラム情報格納手段、42 プ
ログラム最大実行時間算出手段、43 プログラム実行
判定手段、51 実行時間用一時記憶、52 階層構造
データ格納部、53 FB実行時間格納部、54 タス
ク割付け用一時記憶、55 位相割付け用一時記憶、5
6 位相割付け情報格納部。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを構成する各ファンクション
    ブロックの実行時間を格納する実行時間格納部と、 ファンクションブロックの組み合わせからなる上記プロ
    グラムの最大実行時間を、上記実行時間格納部に基づき
    算出する最大実行時間算出手段と、 この最大実行時間算出手段に基づき算出された最大実行
    時間と、タスクの実行周期とを比較し、上記プログラム
    が決められた周期で実行できるか否かを判定するプログ
    ラム実行判定手段と、を備えたプログラミングツール。
  2. 【請求項2】 プログラムを構成する各ファンクション
    ブロック毎に、該ファンクションブロックが構成の一部
    となる親ファンクションブロックの名称、該ファンクシ
    ョンブロックを構成する子ファンクションブロックの名
    称、ファンクションブロックの実行条件を設定すること
    を特徴とする請求項1に記載のプログラミングツール。
  3. 【請求項3】 最大実行時間の算出は、プログラム内の
    各ファンクションブロックの実行条件を調べることを特
    徴とする請求項1または2に記載のプログラミングツー
    ル。
  4. 【請求項4】 プログラム実行判定手段による判定の結
    果、タスクの実行周期よりも割付けるプログラムの実行
    時間の方が大きい場合に、警告メッセージを出力するこ
    とを特徴とする請求項1乃至3何れかに記載のプログラ
    ミングツール。
  5. 【請求項5】 プログラムを構成する各ファンクション
    ブロックの実行時間をあらかじめ格納する工程と、 ファンクションブロックの組み合わせからなる上記プロ
    グラムの最大実行時間を、上記実行時間の和により算出
    する工程と、 この算出された最大実行時間と、タスクの実行周期とを
    比較し、上記プログラムが決められた周期で実行できる
    か否かを判定する工程と、 判定の結果、実行できる際にはプログラム割付け処理を
    行う工程と、を備えたプログラミング方法。
JP2001156629A 2001-05-25 2001-05-25 プログラミングツール及びプログラミング方法 Pending JP2002351509A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001156629A JP2002351509A (ja) 2001-05-25 2001-05-25 プログラミングツール及びプログラミング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001156629A JP2002351509A (ja) 2001-05-25 2001-05-25 プログラミングツール及びプログラミング方法

Publications (1)

Publication Number Publication Date
JP2002351509A true JP2002351509A (ja) 2002-12-06

Family

ID=19000618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001156629A Pending JP2002351509A (ja) 2001-05-25 2001-05-25 プログラミングツール及びプログラミング方法

Country Status (1)

Country Link
JP (1) JP2002351509A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222221A (ja) * 2004-02-04 2005-08-18 Hitachi Ltd 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス
JP2007109094A (ja) * 2005-10-14 2007-04-26 Nippon Steel Corp 表示制御装置、方法、及びコンピュータプログラム
JP2007241434A (ja) * 2006-03-06 2007-09-20 Mitsubishi Electric Corp シーケンス処理実行装置
JP2008146357A (ja) * 2006-12-11 2008-06-26 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ、及びその支援装置
JP2009009444A (ja) * 2007-06-29 2009-01-15 Fuji Electric Systems Co Ltd プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP2009069905A (ja) * 2007-09-10 2009-04-02 Delta Electronics Inc プログラマーロジックコントローラ(plc)プログラムの編集方法
KR101093286B1 (ko) 2009-01-07 2011-12-14 가부시키가이샤 야마다케 정보 처리 장치, 스케쥴러 및 스케쥴링 방법
WO2012023296A1 (ja) * 2010-08-16 2012-02-23 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
JP5025833B1 (ja) * 2011-09-16 2012-09-12 三菱電機株式会社 シーケンスプログラム作成装置
CN108733365A (zh) * 2018-04-13 2018-11-02 南京南瑞继保电气有限公司 一种功能函数的数据区复用处理方法
JP2018180716A (ja) * 2017-04-06 2018-11-15 株式会社島津製作所 タスク実行制御装置及び該装置用プログラム
WO2020100548A1 (ja) * 2018-11-15 2020-05-22 オムロン株式会社 制御システムおよび制御装置
JP7512886B2 (ja) 2020-12-23 2024-07-09 オムロン株式会社 制御装置、制御方法および制御プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63214804A (ja) * 1987-03-03 1988-09-07 Fanuc Ltd Plc用プロセツサ及びplc
JPH02181801A (ja) * 1989-01-07 1990-07-16 Mitsubishi Electric Corp プログラミング装置
JPH0322002A (ja) * 1989-06-19 1991-01-30 Mitsubishi Electric Corp プログラミング装置
JPH08278804A (ja) * 1995-04-06 1996-10-22 Fanuc Ltd シーケンス・プログラムの診断方式
JPH10240314A (ja) * 1997-02-27 1998-09-11 Omron Corp Sfcプログラム編集方法および装置
JP2000112737A (ja) * 1998-10-01 2000-04-21 Seiko Epson Corp プログラム作成装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63214804A (ja) * 1987-03-03 1988-09-07 Fanuc Ltd Plc用プロセツサ及びplc
JPH02181801A (ja) * 1989-01-07 1990-07-16 Mitsubishi Electric Corp プログラミング装置
JPH0322002A (ja) * 1989-06-19 1991-01-30 Mitsubishi Electric Corp プログラミング装置
JPH08278804A (ja) * 1995-04-06 1996-10-22 Fanuc Ltd シーケンス・プログラムの診断方式
JPH10240314A (ja) * 1997-02-27 1998-09-11 Omron Corp Sfcプログラム編集方法および装置
JP2000112737A (ja) * 1998-10-01 2000-04-21 Seiko Epson Corp プログラム作成装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222221A (ja) * 2004-02-04 2005-08-18 Hitachi Ltd 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス
JP2007109094A (ja) * 2005-10-14 2007-04-26 Nippon Steel Corp 表示制御装置、方法、及びコンピュータプログラム
JP2007241434A (ja) * 2006-03-06 2007-09-20 Mitsubishi Electric Corp シーケンス処理実行装置
JP2008146357A (ja) * 2006-12-11 2008-06-26 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ、及びその支援装置
JP2009009444A (ja) * 2007-06-29 2009-01-15 Fuji Electric Systems Co Ltd プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP2009069905A (ja) * 2007-09-10 2009-04-02 Delta Electronics Inc プログラマーロジックコントローラ(plc)プログラムの編集方法
KR101093286B1 (ko) 2009-01-07 2011-12-14 가부시키가이샤 야마다케 정보 처리 장치, 스케쥴러 및 스케쥴링 방법
US8327366B2 (en) 2009-01-07 2012-12-04 Azbil Corporation Data processing device, scheduling device, and scheduling method for program operation cycle allocation
JP5536892B2 (ja) * 2010-08-16 2014-07-02 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
WO2012023296A1 (ja) * 2010-08-16 2012-02-23 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
US9176490B2 (en) 2010-08-16 2015-11-03 Mitsubishi Electric Corporation Control program generation device, control program generation program, and control program generation method
CN103069386A (zh) * 2010-08-16 2013-04-24 三菱电机株式会社 控制程序生成装置、控制程序生成程序以及控制程序生成方法
WO2013038556A1 (ja) * 2011-09-16 2013-03-21 三菱電機株式会社 シーケンスプログラム作成装置
CN103119525A (zh) * 2011-09-16 2013-05-22 三菱电机株式会社 顺序程序生成装置
JP5025833B1 (ja) * 2011-09-16 2012-09-12 三菱電機株式会社 シーケンスプログラム作成装置
JP2018180716A (ja) * 2017-04-06 2018-11-15 株式会社島津製作所 タスク実行制御装置及び該装置用プログラム
CN108733365A (zh) * 2018-04-13 2018-11-02 南京南瑞继保电气有限公司 一种功能函数的数据区复用处理方法
CN108733365B (zh) * 2018-04-13 2021-10-01 南京南瑞继保电气有限公司 一种功能函数的数据区复用处理方法
WO2020100548A1 (ja) * 2018-11-15 2020-05-22 オムロン株式会社 制御システムおよび制御装置
JP2020086481A (ja) * 2018-11-15 2020-06-04 オムロン株式会社 制御システムおよび制御装置
US11520302B2 (en) 2018-11-15 2022-12-06 Omron Corporation Control system and control device
JP7512886B2 (ja) 2020-12-23 2024-07-09 オムロン株式会社 制御装置、制御方法および制御プログラム

Similar Documents

Publication Publication Date Title
JP2002351509A (ja) プログラミングツール及びプログラミング方法
JP4824718B2 (ja) コンピュータが実行可能なワークフロー・リソース管理システム
US7802237B2 (en) Method, system and computer program product for generating program
US7103847B2 (en) Method and system for monitoring the use of a resource in a processing system
US7805451B2 (en) Ontology-integration-position specifying apparatus, ontology-integration supporting method, and computer program product
US10698670B2 (en) Parallel program generating method and parallelization compiling apparatus
US6792400B2 (en) Visualization of complex system interactions
CN107203595B (zh) 一种基于自由表单的动态生成web界面的方法
JP6150956B1 (ja) 負荷分散装置
WO2018150550A1 (ja) 学習データ管理装置及び学習データ管理方法
JP2018195088A (ja) ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム
JP3690721B2 (ja) システム性能見積システム及びシステム性能見積方法
JP5177082B2 (ja) 開発支援装置,プログラム
US20040216038A1 (en) Table building and control methods for web page table editing
JP6984087B2 (ja) サービス開発システム、リソース予測方法及びサービス開発プログラム
JP5951025B2 (ja) 入出力応答制御設定装置
US7975213B2 (en) Automatic reconfiguration of system sub-models for independent analysis
EP4357991A1 (en) Use resource setting method and use resource setting device
JP6212823B2 (ja) 並列化支援装置、実行装置、制御システム、並列化支援方法及びプログラム
JP2008003841A (ja) ビルド処理方法、ビルド処理装置、及びプログラム
US20040205756A1 (en) Method for automatically obtaining an operational sequence of processes and a corresponding tool therefor
JP6974772B2 (ja) 仕様記述プログラム及び仕様記述方法
US20240231340A9 (en) Use resource setting method and use resource setting device
JPWO2018198745A1 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
US20230146492A1 (en) Method for controlling an automation system having visualization of program objects of a control program of the automation system, and automation system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20040702

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091016

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100602

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100609

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100730