JP2003271207A - プログラムの実行方式及びプログラム開発支援装置 - Google Patents

プログラムの実行方式及びプログラム開発支援装置

Info

Publication number
JP2003271207A
JP2003271207A JP2002070856A JP2002070856A JP2003271207A JP 2003271207 A JP2003271207 A JP 2003271207A JP 2002070856 A JP2002070856 A JP 2002070856A JP 2002070856 A JP2002070856 A JP 2002070856A JP 2003271207 A JP2003271207 A JP 2003271207A
Authority
JP
Japan
Prior art keywords
program
function block
block
execution
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.)
Granted
Application number
JP2002070856A
Other languages
English (en)
Other versions
JP3838124B2 (ja
Inventor
Yukiteru Yuo
幸輝 湯尾
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2002070856A priority Critical patent/JP3838124B2/ja
Publication of JP2003271207A publication Critical patent/JP2003271207A/ja
Application granted granted Critical
Publication of JP3838124B2 publication Critical patent/JP3838124B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 プログラムから呼び出されるファンクション
ブロックFBを、その呼び出し元のプログラムとは異な
る実行タイミングで実行させる。 【解決手段】 タスク割り付け画面Tにおいて、タスク
にプログラムを割り付けると共にこのプログラムにより
呼び出されるファンクションブロックFBを所望のタス
クに割り付ける。呼び出すファンクションブロックFB
が他のタスクに割りつけられているとき、このファンク
ションブロックFBとその呼び出し元のプログラムとを
それぞれ指定されたタスクに割りつけると共に、ファン
クションブロックFBへの出力データをバッファにコピ
ーし、ファンクションブロックFBは、このバッファか
らデータを入力し、ファンクションブロックFBの出力
を、プログラム上の変数にコピーする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、プログラムから
ファンクションブロックを呼び出してこれを実行するよ
うにしたプログラムの実行方式、及びプログラムの作成
やその支援を行う、プログラム開発支援装置に関する。
【0002】
【従来の技術】プログラマブルコントローラに対するプ
ログラム規格としてIEC61131−3等がある。こ
のIEC61131−3のプログラミングの構成要素と
してファンクションブロックが規定されている。このフ
ァンクションブロックは、プログラムを構造化するため
のプログラミング手法であって、データ入力、データ出
力及びファンクションブロックの内部変数からなるデー
タ構造(インスタンス)と、これらのデータを用いて実
行されるプログラムとから構成されている。
【0003】図8は、ファンクションブロックFBの外
形を表したものである。矩形がファンクションブロック
FB本体を表し、その矩形内の上部中央に示す文字列
(図8の場合、“CTU”)101が、このファンクシ
ョンブロックFBの名称である。矩形左辺に接続される
線102は、ファンクションブロックFBへの入力を表
し、それと対になる矩形内左辺の文字列103は入力変
数名である。同様に、矩形右辺に接続される線104は
ファンクションブロックFBからの出力を表し、それと
対となる矩形内右辺に示す文字列105は出力変数名で
ある。
【0004】前記プログラム規格IEC61131−3
では、プログラムの構造化、カプセル化によるプログラ
ムの可読性の向上並びにメンテナンス性の向上、基本機
能のファンクションブロックライブラリ化によるプログ
ラム品質の向上、納期の短期化等の面から、ファンクシ
ョンブロックによるプログラミングを推奨している。こ
のファンクションブロックによるプログラミングを行う
場合には、まず、機能単位等でファンクションブロック
を作成し、これらのファンクションブロックを呼び出す
プログラムを作成し、このプログラムを、定周期、割り
込み、イベント等その実行タイミングの制御単位である
タスクに割りつけることで、プログラムを作成してい
る。
【0005】図9は、プログラム規格IEC61131
−3によるアプリケーションプログラムの構成を示す概
念図である。アプリケーションプログラム200は、1
つ又は図9に示すように複数のプログラム201及び2
02と、このプログラム201及び202によって呼び
出されるファンクションブロックFB211〜213
と、これらに関する定義とから構成されている。そし
て、図1に示すように、プログラミングツール1で生成
され、コンパイラ2で機械語プログラムに変換されたア
プリケーションプログラム200は、伝送装置3によっ
て、制御装置4に送信される。この制御装置4は、制御
装置4自身の管理、並びにアプリケーションプログラム
200を実行するための基本処理プログラム(OS)2
21を備えている。この基本処理プログラム(OS)2
21は、プログラム201、202の実行周期を管理す
るためのタスク231、232を制御する。
【0006】このタスク231、232は、プログラム
の実行周期の制御単位であって、例えば、定周期或いは
イベント等があり、基本処理プログラム(OS)221
では、各タスクに登録されているプログラムを、タスク
毎に設定されているタイミングで実行するようになって
いる。
【0007】
【発明が解決しようとする課題】ここで、上位のプログ
ラムからファンクションブロックを呼び出すようにした
場合、ファンクションブロックの実行周期は、このファ
ンクションブロックを呼び出しているプログラムの実行
周期と等しくなることになる。例えば、モータの駆動制
御等のフィードバック制御を行うアプリケーションプロ
グラムに適用した場合、例えば、モータの駆動信号を制
御するモータの制御部分の方が、フィードバック制御に
よりモータの駆動量の目標値を設定する上位プログラム
よりも高速に実行されるのが一般的である。しかしなが
ら、図10に示すように制御部分のプログラムをファン
クションブロックFB215とし、このファンクション
ブロックFB215の上位のフィードバックループ部分
をプログラム205とした場合、プログラム205とフ
ァンクションブロックFB215との実行周期は同じに
なる。このため、モータの駆動制御を行うために比較的
短い周期で実行させる必要のあるファンクションブロッ
クFB215の制御周期に、このファンクションブロッ
クFB215を含むプログラム205全体の実行周期を
合わせる必要がある。
【0008】したがって、フィードバックループを必要
以上に早い制御周期で実行させることになるため、実行
効率が低下するという問題がある。また、このようにフ
ィードバック制御を行うアプリケーションプログラムを
実行させるプログラマブルコントローラの性能によって
は、高速に実行することの可能なプログラムサイズが制
限されるため、真に高速化したい内部制御部分のプログ
ラムサイズが、全体のプログラムサイズによって制限さ
れてしまうという問題がある。
【0009】そこで、この発明は、上記従来の未解決の
問題点に着目してなされたものであり、上位プログラム
から呼び出されるファンクションブロックが制約を受け
ることなく、且つ、プログラム全体の実行効率の低下を
回避することの可能な、プログラムの実行方式及びプロ
グラム開発支援装置を提供することを目的としている。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明の請求項1に係るプログラムの実行方式は、
プログラムからファンクションブロックを呼び出すよう
になっているプログラムの実行方式であって、前記プロ
グラム及び当該プログラムから呼び出されるファンクシ
ョンブロックの実行タイミングを個別に設定し、この設
定に応じて前記ファンクションブロック及びその呼び出
し元のプログラムを対応するタスクに割り付け、前記フ
ァンクションブロック及びその呼び出し元のプログラム
を、割り付けられたタスクで実行することを特徴として
いる。
【0011】また、請求項2に係るプログラムの実行方
式は、前記ファンクションブロックへの前記プログラム
からの出力データを保持する保持手段を設け、前記ファ
ンクションブロックへの前記プログラムからの出力デー
タを前記保持手段に格納し、前記ファンクションブロッ
クは前記保持手段から前記出力データを入力するように
したことを特徴としている。また、請求項3に係るプロ
グラムの実行方式は、前記保持手段に新たにデータが格
納されたかどうかを表すフラグを設け、前記ファンクシ
ョンブロックは、前記フラグに基づき前記保持手段に新
たにデータが格納されたと判定されるとき、前記保持手
段から前記出力データを入力するようにしたことを特徴
としている。
【0012】また、請求項4に係るプログラム開発支援
装置は、プログラムの実行タイミングを設定するタイミ
ング設定手段と、前記プログラムを、前記タイミング設
定手段で設定された実行タイミングに対応するタスクに
割り付け且つ前記プログラムを実行する処理装置で実行
可能な機械語プログラムに変換する変換手段と、を備え
たプログラム開発支援装置において、前記プログラムか
ら読み出される機能ブロックの実行タイミングを、前記
プログラムとは異なる実行タイミングに設定するブロッ
クタイミング設定手段を備え、前記変換手段は、前記プ
ログラムが呼び出す機能ブロックが、その呼び出し元の
プログラムとは別の実行タイミングに設定された別実行
ブロックである場合には、前記プログラムを前記タイミ
ング設定手段で設定された実行タイミングに対応するタ
スクに割り付けると共に、前記別実行ブロックを前記ブ
ロックタイミング設定手段で設定された実行タイミング
に対応するタスクに割り付けることを特徴としている。
【0013】この請求項4に係る発明では、プログラム
から呼び出される機能ブロックを、プログラムとは別の
実行タイミングに設定するためのブロックタイミング設
定手段が設けられ、プログラムを機械語プログラムに変
換する際に、プログラム及びこのプログラムとは別の実
行タイミングに設定された機能ブロックとはそれぞれ指
定された実行タイミングに対応するタスクに割りつけら
れる。したがって、このプログラムを実行した場合、プ
ログラムはタイミング設定手段で設定された実行タイミ
ングで実行され、一方、プログラムから呼び出される機
能ブロックは、ブロックタイミング設定手段で設定され
た実行タイミングで実行されるから、プログラムとこの
プログラムから呼び出される機能ブロックとは、異なる
実行タイミングで実行されることになる。
【0014】また、請求項5に係るプログラム開発支援
装置は、前記別実行ブロックへのその呼び出し元のプロ
グラムからの出力データを保持する保持手段を備え、前
記変換手段は、前記別実行ブロックとその呼び出し元の
プログラムとの間のデータ授受状況に基づき、前記別実
行ブロックへのその呼び出し元のプログラムからの出力
データを保持手段に格納し且つ前記別実行ブロックが前
記保持手段から前記出力データを入力するように前記機
械語プログラムへの変換を行うことを特徴としている。
【0015】この請求項5に係る発明では、呼び出し元
のプログラムとは別の実行タイミングが設定された別実
行ブロックへの呼び出し元のプログラムからの出力デー
タを保持するための保持手段が設けられている。そし
て、呼び出し元のプログラムからの別実行ブロックへの
出力データは保持手段に格納され、別実行ブロックで
は、この保持手段からデータを入力するから、呼び出し
元のプログラムと別実行ブロックとはそれぞれ異なる実
行タイミングで実行されるが、別実行ブロックの処理実
行中に、呼び出し元のプログラムによって別実行ブロッ
クへの入力データが更新されることはない。
【0016】また、請求項6に係るプログラム開発支援
装置は、前記保持手段に新たにデータが格納されたかど
うかを表すフラグを備え、前記別実行ブロックは、前記
フラグに基づき前記保持手段に新たにデータが格納され
たと判定されるとき、前記保持手段から前記出力データ
を入力するようになっていることを特徴としている。こ
の請求項6に係る発明では、保持手段へのデータが更新
されたときに、データが更新されたことを表すフラグが
設定され、別実行ブロックでは、前記フラグが設定され
ているときに、保持手段で保持するデータを入力する。
したがって、別実行ブロックと、この呼び出し元のプロ
グラムとの実行タイミングが異なることに起因して、プ
ログラムによって保持手段のデータが更新されていない
にも関わらず、別実行ブロックが保持手段のデータを入
力するといった無駄な処理が行われることが回避され
る。
【0017】さらに、請求項7に係るプログラム開発支
援装置は、前記プログラムは、前記機能ブロックを用い
た回路図で作成されたプログラムであって、前記回路図
に基づいて前記データ授受状況を検出する授受状況検出
手段を備えることを特徴としている。この請求項7に係
る発明では、機能ブロックを用いた回路図、いわゆる機
能ブロック図言語で作成されたプログラムである場合に
は、前記回路図に基づいて、ブロックタイミング設定手
段で設定された機能ブロックと、この機能ブロックの呼
び出し元のプログラムとの間のデータ授受状況が検出さ
れる。
【0018】
【発明の実施の形態】以下に、本発明の実施の形態を説
明する。図1は、本発明を適用したプログラマブルコン
トローラの開発支援装置の一例を示す構成図であって、
1はオペレータがプログラムの作成を行うためのプログ
ラミングツール、2は、プログラミングツール1で生成
されたプログラムを機械語プログラムに変換するための
コンパイラ、3はコンパイラ2で変換された機械語プロ
グラムを、プログラマブルコントローラ等の制御装置4
に入力するための伝送装置である。
【0019】前記プログラミングツール1は、オペレー
タがアプリケーションプログラムを作成するための入力
装置11、入力装置11での入力に応じて所定のデータ
を表示するための表示装置12、作成されたアプリケー
ションプログラム等を記憶するための記録媒体13、及
び、前記入力装置11、表示装置12及び記録媒体13
を制御する処理装置14を備えている。なお、前記コン
パイラ2はプログラミングツール1の一部としてプログ
ラミングツール1内部に存在してもよく、また、制御装
置4側に存在してもよい。また、これらプログラミング
ツール1、コンパイラ2、制御装置4で保持する機能全
てを一つのプログラムとし、パーソナルコンピュータ等
で構成するようにしてもよい。
【0020】そして、処理装置14では、プログラム規
格IEC61131−3に準拠する公知のプログラミン
グツールと同様に、入力装置11での入力に応じて、例
えばファンクションブロック図、或いは命令リストによ
るプログラム作成を支援するための作成画面、或いはタ
スク割り付け画面等を表示装置12に表示すると共に、
所定の情報を記録媒体13に格納する。図2は、前記タ
スク割り付け画面Tの一例を示したものである。プログ
ラムの割り付けは、公知のプログラミングツールと同様
に、予め作成し記録媒体13に格納しているプログラム
を特定する情報、例えば名称を、タスク割り付け画面T
において、前記プログラムの実行周期に対応するタスク
と対応させることによって行う。また、プログラムによ
って呼び出されるファンクションブロックFBも、タス
クへの割り付けが可能であり、プログラムの割り付けと
同様に、タスク割り付け画面Tにおいて、ファンクショ
ンブロックFBを、所望の実行周期に対応するタスクと
対応させることによって、ファンクションブロックFB
のタスクへの割り付けを行う。なお、ファンクションブ
ロックFBを、その呼び出し元のプログラムと同じ実行
タイミングで実行させる場合には、タスクの割り付けは
行わない。
【0021】つまり、図2の場合には、タスクA(TA
SK−A)にプログラム1〜3(PROG1〜3)が割
りつけられ、また、タスクB(TASK−B)にファン
クションブロック12(FB12)が割りつけている。
そして、タスクが、このタスクに割りつけられたプログ
ラム或いはファンクションブロックFBの実行タイミン
グを管理し、予めタスクに割りつけられた実行タイミン
グで、割りつけられたプログラム或いはファンクション
ブロックを起動させるようになっている。また、タスク
には、このタスクに割りつけられたファンクションブロ
ックFBへの入力データを格納するためのバッファ及び
バッファへの書き込みが完了したか否かを表すためのフ
ラグが設けられ、このバッファ及びフラグは各タスク毎
に設けられている。
【0022】図3は、プログラムを、ファンクションブ
ロック図を用いた回路図、いわゆる機能ブロック図言語
で作成した場合の、このプログラムに対する、コンパイ
ラ2でのコンパイル手順の一例を示すフローチャートで
ある。このコンパイラ2は起動されると、まず、図2に
示すタスク割り付け画面Tを参照し、タスクに割りつけ
られているプログラムそれぞれについてプログラム内を
検索し、ファンクションブロックFBを呼び出している
か否かを判定する。そして、ファンクションブロックF
Bを呼び出している場合には、タスク割り付け画面Tで
のタスク割り付け情報に基づいて、プログラムにより呼
び出されているファンクションブロックFBがこれを呼
び出しているプログラムとは異なるタスクに割りつけら
れているかを判定する(ステップS2)。
【0023】そして、プログラムにより呼び出されるフ
ァンクションブロックFBが、このプログラムとは異な
るタスクに割りつけられていない場合には、ステップS
4に移行し、設定されたプログラム及びそのタスク割り
付け情報とに基づいて、公知のコンパイラと同様にして
機械語プログラムへの変換を行う。例えば、図4(a)
に示すように、図2においてタスクA(TASK−A)
に割りつけられているプログラムPROG1が、ファン
クションブロックFB1及びFB2を呼び出し、ファン
クションブロックFB1の出力をファンクションブロッ
クFB2に入力し、その結果を得るようなプログラムで
ある場合には、これら間のデータ授受に関わる部分に相
当する、変換後の機械語プログラムは、図4(b)に示
すニーモニック表示したプログラムとなる。つまり、フ
ァンクションブロックFB1の出力A及びBをファンク
ションブロックFB2の入力C及びDにコピーし(4
1)、ファンクションブロックFB2を呼び出す(4
2)。そして、ファンクションブロックFB2の出力
E、Fを、これを参照するための変数G、Hにコピーす
る(43)。
【0024】一方、ステップS2でファンクションブロ
ックFBを呼び出しているプログラムがあり且つこのプ
ログラムにより呼び出されるファンクションブロックF
Bがその呼び出し元のプログラムとは異なるタスクに割
りつけられている場合には、ステップS6に移行し、フ
ァンクションブロックがタスクに割り付けされた時のコ
ンパイル処理を行う。つまり、タスクに割りつけられた
ファンクションブロックFBを呼び出していないプログ
ラムについては、前記ステップS4と同様に公知の手順
にしたがって機械語への変換を行う。
【0025】一方、タスクに割りつけられたファンクシ
ョンブロックFBを呼び出しているプログラムについて
は、機械語プログラムへの変換を同様に行うが、機能ブ
ロック図言語からなるプログラムにおいて、回路図にお
けるファンクションブロックFBとの接続状況から、フ
ァンクションブロックFBとその呼び出し元のプログラ
ムとの間のデータの授受状況を検出する。そして、この
データの授受状況に基づいて、タスクに割りつけられた
ファンクションブロックFBへの出力を、このファンク
ションブロックFBが割りつけられたタスクに設けられ
たバッファの所定領域に格納し、タスクに割りつけられ
たファンクションブロックFBはこのバッファの所定領
域に格納された、このファンクションブロックFBに対
応するデータを入力するように機械語プログラムへの変
換を行う。
【0026】例えば、図5(a)に示すように、図2に
示すプログラムPROG2が、ファンクションブロック
FB11及びFB12を呼び出し、ファンクションブロ
ックFB11の出力をファンクションブロックFB12
に入力してこのファンクションブロックFB12 の出力
を得るようなプログラムであり、且つファンクションブ
ロックFB12がプログラムPROG2とは異なるタス
クB(TASK−B)に割りつけられた場合には、これ
らファンクションブロックFB間のデータの授受部分に
相当する変換後の機械語プログラムは、図5(b)に示
す、ニーモニック表示したプログラムとなる。
【0027】つまり、タスクA(TASK−A)に割り
つけられたプログラムPROG2は次の処理となる機械
語プログラムに変換される。ファンクションブロックF
B11の出力A及びBを、タスクB(TASK−B)に
設けられているバッファ51の変数C′及びD′へコピ
ーし(56)、タスクB(TASK−B)に設けられて
いる書き込み完了フラグFLG52を書き込み完了に設
定する(57)。そして、タスクB(TASK−B)に
割りつけられたファンクションブロックFB12の出力
E及びFを、これを参照するための、プログラムPRO
G2上の変数G及びHにコピーする(58)。
【0028】一方、タスクB(TASK−B)に割りつ
けられたファンクションブロックFB12は、図6に示
す手順となる機械語プログラムに変換される。すなわ
ち、まず、書き込み完了フラグFLG52を参照し、こ
こに、書き込み完了を表すTRUEが設定されているか
どうかを判定する(ステップS11)。そして、TRU
Eが設定されている場合には、ステップS12に移行
し、バッファ51の変数C′及びD′をファンクション
ブロックFB12の入力変数C及びDにコピーした後、
ステップS13に移行して書き込み完了フラグFLG5
2を、読み取り完了を表すOFFに設定し、ステップS
14に移行してファンクションブロックFB12をコー
ルする。
【0029】一方、ステップS11で書き込み完了フラ
グFLG52に書き込み完了を表すTRUEが設定され
ていない場合には、そのままステップS14に移行す
る。つまり、ファンクションブロックFB12での処理
結果がバッファ51に書き込まれて更新されたときに、
バッファ51のデータをファンクションブロックFB1
2の入力C、Dにコピーし(ステップS11、S1
2)、書き込み完了フラグFLG52をOFFにした後
(ステップS13)、ファンクションブロックFB12
をコールする(ステップS14)。そして、書き込み完
了フラグFLG52がOFFである間は、所定のタイミ
ングでファンクションブロックFB12を繰り返し呼び
出し(ステップS14)、書き込み完了フラグFLG5
2がFLG=TRUEとなりそのデータが更新されたと
きにバッファ51のデータをファンクションブロックF
B12にコピーし(ステップS12)、書き込み完了フ
ラグFLG52をOFFにする。
【0030】このようにすることによって、データが更
新されていないのにも関わらずバッファ51からファン
クションブロックFB12へのコピーを行うことによっ
て不要な処理を行うことを回避するようになっている。
したがって、このような手順で変換された機械語プログ
ラムを伝送装置3によって制御装置4に伝送し、制御装
置でこの機械語プログラムを実行することによって、図
2に示す割り付けが行われたアプリケーションプログラ
ムは、そのプログラムPROG1〜3は、タスクAで規
定されるタイミングで実行制御が行われると共に、ファ
ンクションブロックFB12は、タスクBで規定される
タイミングで実行制御が行われる。そして、ファンクシ
ョンブロックFB12を呼び出すプログラムPROG2
においては、プログラムPRG2を実行制御するタスク
Aと、ファンクションブロックFB12を実行制御する
タスクBとの間で、図5(a)に示すように、データの
授受が行われ、ファンクションブロックFB12は、プ
ログラムPROG2とは異なる実行タイミングで実行さ
れることになる。
【0031】また、例えば前記従来の図9に示すアプリ
ケーションプログラム200の構成において、ファンク
ションブロックFB213をプログラム202とは異な
る制御周期で実行する場合には、表示装置12のタスク
割り付け画面Tにおいて、図7に示すように、タスク2
31にプログラム201を割り付け、タスク232にプ
ログラム202を割り付け、さらに、プログラム202
において呼び出しているファンクションブロックFB2
13をタスク233に割り付け、これをコンパイラ2で
変換する。
【0032】これによって、プログラム201及びプロ
グラム202は、従来と同様にして機械語プログラムへ
の変換が行われるが、プログラム202においては、フ
ァンクションブロックFB213がタスク233に割り
つけられているから、プログラム202では、プログラ
ム201からの入力であるファンクションブロックFB
213への入力を、タスク233に設けた図示しないバ
ッファにコピーすると共に、タスク233に設けた図示
しない書き込み完了フラグFLGを書き込み完了に設定
し、さらに、ファンクションブロックFB213の出力
を、これを参照するための、プログラム202上の変数
Fにコピーするように変換される。また、ファンクショ
ンブロックFB213については、図6のフローチャー
トに示すように、書き込み完了フラグFLGが書き込み
完了に設定されているときにタスク233に設けられた
図示しないバッファのデータをファンクションブロック
FB213の入力にコピーしてファンクションブロック
FB213をコールし、書き込み完了フラグFLGが書
き込み完了に設定されていないときにはバッファのデー
タのコピーを行わず、ファンクションブロックFB21
3をコールするように変換される。
【0033】そして、このようにして機械語プログラム
に変換された図7に示すアプリケーションプログラムを
実行すると、プログラム201は、タスク231で規定
されるタイミング、プログラム202はタスク232で
規定されるタイミングで実行されるが、このプログラム
202で呼び出されるファンクションブロック213は
タスク233で規定されるタイミングで実行される。こ
のように、ファンクションブロックFBを、これを呼び
出しているプログラムとは別のタイミングで実行させる
ことができる。したがって、ファンクションブロックF
Bが、例えばフィードバック制御による制御処理を行う
ファンクションブロックFBである場合であっても、こ
のファンクションブロックFBをその上位プログラムと
は異なるタスクに割りつけることによって、ファンクシ
ョンブロックFB及びその上位プログラムをそれぞれに
適したタイミングで実行することができる。
【0034】よって、従来のように必要以上の制御周期
で上位プログラムを実行させる必要がないから、真に高
速に動かしたい処理を、処理時間、また、プログラム容
量等の観点からみて、効率よく実行させることができ
る。また、タスクに割りつけられたファンクションブロ
ックFBでは、書き込み完了フラグを設け、これに書き
込み完了が設定されているときにのみ、バッファのデー
タをファンクションブロックFBにコピーするようにし
ているから、ファンクションブロックFBとこのファン
クションブロックFBの呼び出し元のプログラムとの実
行タイミングが異なることに起因して、バッファのデー
タが更新されていないにも関わらず、バッファのデータ
をファンクションブロックFBの入力にコピーするとい
った不要な処理を行うことを回避することができる。
【0035】また、バッファを設け、タスクに割りつけ
られたファンクションブロックFBに入力するためのデ
ータを一旦バッファに格納し、このバッファからファン
クションブロックFBへのデータをコピーするようにし
たから、タスクに割りつけられたファンクションブロッ
クFBとこのタスクの呼び出し元のプログラムとのタス
クが異なり、つまり、実行周期が異なることに起因して
ファンクションブロックFBが処理実行中に、ファンク
ションブロックFBへの入力データが書き換えられてし
まうことを回避することができる。
【0036】また、機能ブロック図言語で作成された、
ファンクションブロックFBを含む回路図をもとに、フ
ァンクションブロックFB間或いはプログラム間の接続
状況から、ファンクションブロックFB間或いはプログ
ラム間のデータの授受状況を検出し、これに基づいて、
呼び出し元のプログラムとは別のタスクに割りつけられ
たファンクションブロックFBへの入力データの格納先
のバッファ、或いは別タスクに割りつけられたファンク
ションブロックのデータの入力元のバッファ、及びこの
ファンクションブロックの出力データのコピー先等とい
った、データの授受状況を解析し、これに基づいて機械
語プログラムに変換するようにしたから、オペレータは
タスク割り付け画面Tにおいて、プログラムをタスクに
割りつける場合と同様の手順で、ファンクションブロッ
クFBを所望のタスクに割りつけるといった簡単な操作
を行うだけで、ファンクションブロックFBを、その呼
び出し元のプログラムとは別の実行タイミングで容易に
実行させることができる。
【0037】なお、上記実施の形態においては、タスク
に1つのファンクションブロックFBを割りつけるよう
にした場合について説明したが、複数のファンクション
ブロックFBを同一のタスク或いは個別のタスクに設定
することも可能であり、この場合も上記実施の形態と同
様に処理を行うようにすればよい。また、同一のタスク
に複数のファンクションブロックFBが設定された場合
には、ファンクションブロックFB毎にそれぞれに対応
するバッファ領域を設けるようにすればよい。このと
き、プログラムから呼び出される複数のファンクション
ブロックFBが、同一のタスクに割りつけられている場
合には、各ファンクションブロックFB毎に書き込み完
了フラグFLGを設ける必要はなく、各ファンクション
ブロックFBへの入力データをバッファにコピーした後
に、書き込み完了フラグFLGを書き込み完了に設定す
るようにしてもよい。
【0038】また、上記実施の形態においては、機能ブ
ロック図言語で作成されたプログラムに対してコンパイ
ルを行うようにした場合について説明したが、これに限
るものではなく、例えば命令リストによるプログラムを
コンパイルするようにした場合であっても適用すること
ができる。この場合には、図2に示すようなタスク割り
つけ画面Tにおいて、タスクの割り付けを行うと共に、
呼び出し元のプログラムとは異なるタスクに割りつけら
れたファンクションブロックFBへの入力データを、バ
ッファにコピーすると共に割り付け完了フラグFLGを
書き込み完了に設定し、つまり、図5(b)に示すよう
な処理を行うプログラムリストを作成し、前記ファンク
ションブロックFBでは、バッファからデータを入力デ
ータとしてコピーしこれをもとに処理を行うように、プ
ログラム作成時に、オペレータが設定するようにすれば
よい。このようにすることによって、上記と同等の作用
効果を得ることができる。
【0039】また、上記実施の形態においては、ファン
クションブロックFBの出力をその呼び出し元のプログ
ラム上の出力変数にコピーするようにしているが、この
とき、ファンクションブロックFBの出力と呼び出し元
のプログラムの出力変数とに設定されているデータの間
で、データの一意性を保証する必要がある場合には、フ
ァンクションブロックFBの出力をその呼び出し元のプ
ログラムの出力変数にコピーする処理の前後で、割り込
み処理を禁止する等の処理を行うようにすればよい。
【0040】また、上記実施の形態においては、プログ
ラマブルコントローラのプログラム開発支援装置に適用
した場合について説明したが、これに限らず、プログラ
ムからファンクションブロックを呼び出してこれを実行
するようにしたプログラムの開発支援装置に広く適用す
ることができる。また、上記実施の形態においては、図
2に示すように、ツリー構造からなるタスク割り付け画
面Tを用いた場合について説明したが、これに限らず、
ファンクションブロックFBをタスクに割りつけること
が可能であればよい。
【0041】なお、上記実施の形態において、表示装置
12に表示されるタスク割り付け画面Tがタイミング設
定手段及びブロックタイミング設定手段に対応し、コン
パイラ2が変換手段に対応し、バッファ51が保持手段
に対応し、書き込み完了フラグFLGがフラグに対応
し、図3のステップS6の処理で、機能ブロック図言語
からなるプログラムにおいて、タスクに割りつけられて
いるファンクションブロックFBの接続状況から、ファ
ンクションブロックFBとその呼び出し元のプログラム
との間のデータの授受状況を検出する処理が授受状況検
出手段をに対応している。
【0042】
【発明の効果】以上説明したように、本発明の請求項1
に係るプログラムの実行方式によれば、プログラム及び
このプログラムから呼び出されるファンクションブロッ
クの実行タイミングを個別に設定し、この設定に応じて
前記ファンクションブロック及びその呼び出し元のプロ
グラムを対応するタスクに割り付け、これらを割り付け
られたタスクで実行するようにしたから、ファンクショ
ンブロック及びプログラムをそれぞれに適した実行タイ
ミングでなんら制約を受けることなく駆動することがで
き、プログラム全体の実行効率が低下することを回避す
ることができる。
【0043】また、請求項2に係るプログラムの実行方
式によれば、ファンクションブロックへのプログラムか
らの出力データを保持手段に格納しておき、ファンクシ
ョンブロックは前記保持手段から前記出力データを入力
するようにしたから、ファンクションブロックが処理実
行中に、ファンクションブロックに入力される前記プロ
グラムからの出力データが更新されることを回避するこ
とができる。また、請求項3に係るプログラムの実行方
式によれば、保持手段に新たにデータが格納されたかど
うかを表すフラグを設け、これに基づき保持手段に新た
にデータが格納されたと判定されるとき、保持手段から
出力データを入力するようにしたから、同じ出力データ
を入力するといった無駄な動作を行うことを回避するこ
とができる。
【0044】また、請求項4に係るプログラム開発支援
装置によれば、プログラムから呼び出される機能ブロッ
クを、プログラムとは別の実行タイミングに設定するた
めのブロックタイミング設定手段を設け、プログラムを
機械語プログラムに変換する際に、それぞれ指定された
実行タイミングに対応するタスクに割りつけるようにし
たから、プログラムから呼び出される機能ブロックと、
その呼び出し元のプログラムとを異なる実行タイミング
で実行することができる。
【0045】また、請求項5に係るプログラム開発支援
装置によれば、別実行ブロックへの呼び出し元のプログ
ラムからの出力データを保持手段に格納し、別実行ブロ
ックでは、この保持手段からデータを入力するようにし
たから、呼び出し元のプログラムと別実行ブロックとが
異なる実行タイミングで実行されることに起因して、別
実行ブロックが処理を実行中に、別実行ブロックに入力
されるデータが更新されることを回避することができ
る。
【0046】また、請求項6に係るプログラム開発支援
装置によれば、保持手段に新たにデータが格納されたと
きに、新たにデータが格納されたことを表すフラグを設
定し、別実行ブロックでは、前記フラグが設定されてい
るときに、保持手段で保持するデータを入力するように
したから、保持手段のデータが新たに格納されておらず
すなわち更新されていないときに、保持手段のデータを
入力するといった、無駄な処理を行うことを回避するこ
とができる。
【0047】さらに、請求項7に係るプログラム開発支
援装置によれば、機能ブロックを用いた回路図に基づい
て、ブロックタイミング設定手段で設定された機能ブロ
ックと、この機能ブロックの呼び出し元のプログラムと
のデータ授受状況を検出するようにしたから、データ授
受状況を容易に検出することができる。
【図面の簡単な説明】
【図1】本発明を適用したプログラム開発支援装置の一
例を示す構成図である。
【図2】タスク割り付け画面Tの一例である。
【図3】図1のコンパイラにおける処理手順の一例を示
すフローチャートである。
【図4】本発明の動作説明に供する説明図である。
【図5】本発明の動作説明に供する説明図である。
【図6】呼び出し元のプログラムとは異なるタスクに割
りつけられたファンクションブロックFBに対するコン
パイル処理の処理手順の一例を示すフローチャートであ
る。
【図7】本発明の動作説明に供する説明図である。
【図8】ファンクションブロックの一例である。
【図9】従来のアプリケーションプログラムの一例を示
す構成図である。
【図10】フィードバックのあるプログラムの一例を示
すブロック図である。
【符号の説明】
1 プログラミングツール 2 コンパイラ 3 伝送装置 4 制御装置

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 プログラムからファンクションブロック
    を呼び出すようになっているプログラムの実行方式であ
    って、 前記プログラム及び当該プログラムから呼び出されるフ
    ァンクションブロックの実行タイミングを個別に設定
    し、 この設定に応じて前記ファンクションブロック及びその
    呼び出し元のプログラムを対応するタスクに割り付け、 前記ファンクションブロック及びその呼び出し元のプロ
    グラムを、割り付けられたタスクで実行することを特徴
    とするプログラムの実行方式。
  2. 【請求項2】 前記ファンクションブロックへの前記プ
    ログラムからの出力データを保持する保持手段を設け、 前記ファンクションブロックへの前記プログラムからの
    出力データを前記保持手段に格納し、 前記ファンクションブロックは前記保持手段から前記出
    力データを入力するようにしたことを特徴とする請求項
    1記載のプログラムの実行方式。
  3. 【請求項3】 前記保持手段に新たにデータが格納され
    たかどうかを表すフラグを設け、 前記ファンクションブロックは、前記フラグに基づき前
    記保持手段に新たにデータが格納されたと判定されると
    き、前記保持手段から前記出力データを入力するように
    したことを特徴とする請求項2記載のプログラムの実行
    方式。
  4. 【請求項4】 プログラムの実行タイミングを設定する
    タイミング設定手段と、 前記プログラムを、前記タイミング設定手段で設定され
    た実行タイミングに対応するタスクに割り付け且つ前記
    プログラムを実行する処理装置で実行可能な機械語プロ
    グラムに変換する変換手段と、を備えたプログラム開発
    支援装置において、 前記プログラムから読み出される機能ブロックの実行タ
    イミングを、前記プログラムとは異なる実行タイミング
    に設定するブロックタイミング設定手段を備え、 前記変換手段は、前記プログラムが呼び出す機能ブロッ
    クが、その呼び出し元のプログラムとは別の実行タイミ
    ングに設定された別実行ブロックである場合には、前記
    プログラムを前記タイミング設定手段で設定された実行
    タイミングに対応するタスクに割り付けると共に、前記
    別実行ブロックを前記ブロックタイミング設定手段で設
    定された実行タイミングに対応するタスクに割り付ける
    ことを特徴とするプログラム開発支援装置。
  5. 【請求項5】 前記別実行ブロックへのその呼び出し元
    のプログラムからの出力データを保持する保持手段を備
    え、 前記変換手段は、前記別実行ブロックとその呼び出し元
    のプログラムとの間のデータ授受状況に基づき、前記別
    実行ブロックへのその呼び出し元のプログラムからの出
    力データを保持手段に格納し且つ前記別実行ブロックが
    前記保持手段から前記出力データを入力するように前記
    機械語プログラムへの変換を行うことを特徴とする請求
    項4記載のプログラム開発支援装置。
  6. 【請求項6】 前記保持手段に新たにデータが格納され
    たかどうかを表すフラグを備え、 前記別実行ブロックは、前記フラグに基づき前記保持手
    段に新たにデータが格納されたと判定されるとき、前記
    保持手段から前記出力データを入力するようになってい
    ることを特徴とする請求項5記載のプログラム開発支援
    装置。
  7. 【請求項7】 前記プログラムは、前記機能ブロックを
    用いた回路図で作成されたプログラムであって、 前記回路図に基づいて前記データ授受状況を検出する授
    受状況検出手段を備えることを特徴とする請求項5又は
    6記載のプログラム開発支援装置。
JP2002070856A 2002-03-14 2002-03-14 プログラムの実行方式及びプログラム開発支援装置 Expired - Lifetime JP3838124B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002070856A JP3838124B2 (ja) 2002-03-14 2002-03-14 プログラムの実行方式及びプログラム開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002070856A JP3838124B2 (ja) 2002-03-14 2002-03-14 プログラムの実行方式及びプログラム開発支援装置

Publications (2)

Publication Number Publication Date
JP2003271207A true JP2003271207A (ja) 2003-09-26
JP3838124B2 JP3838124B2 (ja) 2006-10-25

Family

ID=29201308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002070856A Expired - Lifetime JP3838124B2 (ja) 2002-03-14 2002-03-14 プログラムの実行方式及びプログラム開発支援装置

Country Status (1)

Country Link
JP (1) JP3838124B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014170992A1 (ja) * 2013-04-18 2014-10-23 三菱電機株式会社 プログラミングツール

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014170992A1 (ja) * 2013-04-18 2014-10-23 三菱電機株式会社 プログラミングツール
JPWO2014170992A1 (ja) * 2013-04-18 2017-02-16 三菱電機株式会社 プログラミングツール

Also Published As

Publication number Publication date
JP3838124B2 (ja) 2006-10-25

Similar Documents

Publication Publication Date Title
US5553297A (en) Industrial control apparatus
WO2004079583A1 (ja) データ転送制御装置およびdmaデータ転送制御方法
WO2024140416A1 (zh) 一种工业控制程序开发平台及方法
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP6292096B2 (ja) プログラマブルコントローラシステム、その支援装置
JP7085305B2 (ja) コントロールシステム及びコントロール方法
JP2005301520A (ja) プログラミングシステム
JP3838124B2 (ja) プログラムの実行方式及びプログラム開発支援装置
JPH0410081B2 (ja)
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
JPH04149658A (ja) 情報処理装置
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JPH03288906A (ja) Pcの命令実行方式
US12085904B2 (en) Engineering device, engineering method, and information storage medium
JPH10143376A (ja) 情報処理装置
JP2022182160A (ja) 制御システム、システムプログラムおよびデバッグ方法
JPH0772918A (ja) 数値制御装置
JPH02226429A (ja) 情報処理装置
JPS6232537A (ja) 計算機システムのサ−ビス・プロセツサにおける画面処理方法
JPH0377140A (ja) コンパイル装置
JPH0259829A (ja) マイクロコンピュータ
JPH0844570A (ja) プログラム実行システム及び方法
JPH02172397A (ja) 交換機
JPH0421028A (ja) レジスタ管理方法
JPH08263127A (ja) 数値制御装置及びそのプログラム作成方法

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040210

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060724

R150 Certificate of patent or registration of utility model

Ref document number: 3838124

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090811

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090811

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090811

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120811

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120811

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130811

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term