JP2003263328A - イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ - Google Patents

イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ

Info

Publication number
JP2003263328A
JP2003263328A JP2002066760A JP2002066760A JP2003263328A JP 2003263328 A JP2003263328 A JP 2003263328A JP 2002066760 A JP2002066760 A JP 2002066760A JP 2002066760 A JP2002066760 A JP 2002066760A JP 2003263328 A JP2003263328 A JP 2003263328A
Authority
JP
Japan
Prior art keywords
event
function block
driven
variable
driven function
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
JP2002066760A
Other languages
English (en)
Inventor
Yukiteru Yuo
幸輝 湯尾
Fumihiko Anzai
文彦 安西
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 JP2002066760A priority Critical patent/JP2003263328A/ja
Publication of JP2003263328A publication Critical patent/JP2003263328A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 イベントが発生したときに所定の処理を実行
するイベント駆動型ファンクションブロックを効率よく
起動し且つ制御システム全体のプログラムの可読性を向
上させる。 【解決手段】 イベントの有無を表す2値のデータ型を
定義し、イベント変数をこのデータ型に定義する。イベ
ント駆動型のファンクションブロックFBを呼び出す際
に、上位プログラムがその前段のファンクションブロッ
クFBのイベント変数の有無を検索し、イベント有りに
設定されているときに呼び出し先のファンクションブロ
ックFBのイベント入力変数をイベント有りに設定す
る。そして、このファンクションブロックFBを呼び出
した後、前段のファンクションブロックFBのイベント
出力をイベント無しに設定し、呼び出されたファンクシ
ョンブロックFBは、所定の処理を実行しイベント入力
変数の参照が全て終了した後、イベント入力変数をイベ
ント無しに設定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、イベントが発生
したときにファンクションブロックを起動するようにし
た、イベント駆動型ファンクションブロックの起動方
法、イベント駆動型制御装置、イベント駆動型ファンク
ションブロック用コンパイラ及びイベント駆動型制御プ
ログラム用コンパイラに関する。
【0002】
【従来の技術】従来より、例えば、プログラマブル・コ
ントローラにおいて目的とする制御動作を行わせるため
の制御プログラムを作成するためのプログラミング・サ
ポート・ツールが存在する。このようなプログラミング
・サポート・ツールは、表示装置、演算処理装置、記憶
装置、入力装置等を有し、例えば、ラダー図やファンク
ションブロック図のような図示表現により、或いは命令
語を使用して、プログラムの作成を行っている。
【0003】前記ファンクションブロック図で用いられ
るファンクションブロックは、プログラムを構造化する
ためのプログラミング手法であり、入力変数、出力変
数、及びファンクションブロック内部変数からなるデー
タ構造(以下、インスタンスという。)と、それらのデ
ータを用いて実行されるプログラムとから構成される。
図27は、ファンクションブロックの外形を表したもの
である。図27において、矩形がファンクションブロッ
クFBの本体を表し、その矩形内の上部中央に示す文字
列(この場合、CTU)201が、このファンクション
ブロックFBを特定する名称である。矩形左辺に接続す
る線202がファンクションブロックFBへの入力を表
し、これと対になる矩形内左辺に示す文字が入力変数名
である。同様に、矩形右辺に接続する線203は、ファ
ンクションブロックFBからの出力を表し、これと対に
なる矩形内右辺に示すものが出力変数名である。
【0004】図28は、IEC61131−3規格にの
っとって表記した、図27に示すファンクションブロッ
クFBの内部構造すなわち内部プログラムを表したもの
である。図28中、211は、ファンクションブロック
FBの名称を宣言しており、この宣言によってファンク
ションブロックFBの記述の始まりを示している。21
2がファンクションブロックFBに対する入力の宣言、
213はファンクションブロックFBからの出力の宣
言、214はファンクションブロックFBの内部変数の
宣言、215はファンクションブロックFBの処理内容
を表す。
【0005】図28の場合には、“CU”の立ち上がり
を検出したら、“CV”をカウントアップし、設定値
“PV”と等しくなったら、“Q”を出力し、“R”の
入力によって“CV”をクリアする処理を表している。
なお、図中、216は、ファンクションブロックFBの
記述の終了を表し、前記211のファンクションブロッ
クFBの記述の始まりを表す宣言と対をなしている。図
29は、IEC61131−3規格にのっとった、アプ
リケーションプログラムの構成を表す概念図である。ア
プリケーションプログラムは、例えば1又は複数のプロ
グラム(図29の場合、二つのプログラム221、22
2)と、ファンクションブロックFB(図29の場合、
FB1〜FB4)と、これに関連する定義とから構成さ
れる。前記ファンクションブロックFBは、上位のファ
ンクションブロック又はプログラムの構成要素の一部と
して存在することも可能であり、例えば、ファンクショ
ンブロックFB1のように、ファンクションブロック単
体で一つの機能となることもある。
【0006】このアプリケーションプログラムを実行す
る制御装置は、この制御装置自身の管理及び、アプリケ
ーションプログラムを実行するための基本処理プログラ
ム(OS)を備えている。この基本処理プログラムは、
前記プログラム221、222や、ファンクションブロ
ックFB1〜FB4等の実行を管理するためのタスク2
26〜228を制御する。前記タスクには、定周期のも
のやイベントで起動されるものがあり、各タスクが、そ
れぞれ登録されているプログラム221、222やファ
ンクションブロックFB1〜FB4を、各タスクに設定
されている周期で実行することによって、アプリケーシ
ョンプログラムにしたがって各プログラム或いはファン
クションブロックFBが実行されるようになっている。
【0007】このように、ファンクションブロックFB
を用いてプログラミングを行うことによって、プログラ
ムの構造化、カプセル化によるプログラムの可読性の向
上、ならびにメンテナンス性の向上、基本機能のファン
クションブロックライブラリ化によるプログラム品質の
向上、納期の短縮化等を図ることができるようになって
いる。
【0008】
【発明が解決しようとする課題】ところで、前記ファン
クションブロックFBによるプログラミングにおいて、
イベント的な動作を実現するための手法として、1ビッ
トのデータ型であるBOOL型変数の立ち上がり(又は
立ち下がり)エッジ検出を行う方法、また、プログラマ
ブルコントローラシステムにおいてイベントの機能を実
現するための手法として、イベントタスク等がある。
【0009】しかしながら、ファンクションブロックを
組み合わせてイベント的な動作を行うプログラムを作成
する場合、次のような問題が生じる。すなわち、接続さ
れたファンクションブロック間で、前段のファンクショ
ンブロックの演算の終了を、後段のファンクションブロ
ックに伝え、これによって後段のファンクションブロッ
クの実行を開始するといったプログラムの作成が困難で
あるという問題がある。
【0010】例えば、立ち上がりエッジを用いてファン
クションブロックの実行を後段のファンクションブロッ
クに伝えるようにした場合、立ち上がりエッジを後段の
ファンクションブロックが認識するためには、ファンク
ションブロックの実行を伝達するための信号の、前回値
と今回値とを比較する必要があり、一つのイベントを伝
達するには、信号値を“0”としてイベントを転送して
ファンクションブロックを起動し、次に信号値を“1”
としてイベントを転送してファンクションブロックを起
動する必要があり、すなわち、最低2回のデータ転送を
行う必要がある。
【0011】また、イベントタスクにファンクションブ
ロックを登録し、このイベントタスクでファンクション
ブロックを起動することによって、後段のファンクショ
ンブロックを起動するようにした場合、イベントタスク
の起動条件は、タスク側の設定であり、プログラム上に
は現れてこないため、ファンクションブロックを用いて
形成した制御プログラムにおいてその可読性が低下す
る。また、多数のイベントを記述する場合等には、イベ
ントタスクの起動条件等の設定ミスが発生しやすくな
り、さらに、一つのイベントタスクに対して、起動条件
は1種類だけであるため、イベントの種類によって処理
を切り換えるようなファンクションブロックにあっては
その記述が難しいという問題がある。
【0012】また、イベント駆動型ファンクションブロ
ックのための規格として、IEC1499等もあるが、
全てのファンクションブロックにイベントを実装するよ
うにしているため、従来のイベント駆動を必要としない
ファンクションブロックに関してもイベントの処理に関
するプログラミングが必要となり、ファンクションブロ
ックの機能が複雑になるという問題がある。そこで、こ
の発明は、上記従来の未解決の問題点に着目してなされ
たものであり、ファンクションブロック間におけるイベ
ントの伝達を容易に行うことの可能なイベント駆動型制
御プログラムのイベント伝達方法、イベント駆動型制御
装置、イベント駆動型ファンクションブロック用コンパ
イラ及びイベント駆動型制御プログラム用コンパイラを
提供することを目的としている。
【0013】
【課題を解決するための手段】上記目的を達成するため
に、本発明の請求項1に係るイベント駆動型ファンクシ
ョンブロックの起動方法は、イベントの発生が通知され
たとき前記イベントに対応する処理を実行するイベント
駆動型ファンクションブロックの起動方法であって、前
記イベントの発生の有無を表す2値のデータ型を定義
し、前記イベント駆動型ファンクションブロックにイベ
ントの発生を通知するためのイベント変数を前記2値の
データ型で設定し、前記イベント駆動型ファンクション
ブロックへのイベントの通知元のイベント変数がイベン
ト有りに設定されているときに当該イベントの通知先の
イベント駆動型ファンクションブロックのイベント変数
をイベント有りに設定すると共に前記イベント駆動型フ
ァンクションブロックを起動し、その後前記イベント有
りが検出された前記通知元におけるイベント変数をイベ
ント無しに設定するようにしたことを特徴としている。
【0014】また、請求項2に係るイベント駆動型制御
装置は、イベントの発生が通知されたとき前記イベント
に対応する処理を実行するイベント駆動型ファンクショ
ンブロックと、当該イベント駆動型ファンクションブロ
ックの起動指示を行う上位処理手段と、当該上位処理手
段で指示されたイベント駆動型ファンクションブロック
を起動する基本処理手段と、を備えたイベント駆動型制
御装置であって、前記イベントの有無を表す2値のデー
タ型を定義し、前記イベント駆動型ファンクションブロ
ックにイベントの発生を通知するためのイベント変数を
前記2値のデータ型で設定し、前記上位処理手段は、前
記イベント駆動型ファンクションブロックへのイベント
の通知元のイベント変数に基づいてイベントの有無を検
出するイベント有無検出手段と、当該イベント有無検出
手段でイベント有りを検出したとき当該イベントの通知
先のイベント駆動型ファンクションブロックのイベント
変数をイベント有りに設定し且つ前記基本処理手段に前
記イベント駆動型ファンクションブロックの起動を指示
するイベント伝達手段と、当該イベント伝達手段で前記
起動を指示した後、前記イベント有無検出手段でイベン
ト有りを検出した前記通知元におけるイベント変数をイ
ベント無しに設定するイベントリセット手段と、を備え
ることを特徴としている。
【0015】また、請求項3に係るイベント駆動型ファ
ンクションブロック用コンパイラは、イベントの有無を
表す2値のデータ型のイベント変数を有し、当該イベン
ト変数にイベント有りが設定されたときに所定の処理を
実行した後、前記イベント変数をイベント無しに設定す
るようになっているイベント駆動型ファンクションブロ
ックを実現するためのソースプログラムを、コンピュー
タで実行可能な機械語に変換するためのイベント駆動型
ファンクションブロック用コンパイラであって、前記イ
ベント駆動型ファンクションブロックにおいて、前記イ
ベント変数を参照する処理が全て終了したことを意味す
る処理を検索するイベント入力参照終了検索手段と、前
記機械語への変換を行う際に、前記イベント駆動型ファ
ンクションブロックの、前記イベント入力参照終了検索
手段で検索した処理の直前に、前記イベント入力変数を
イベント無しに設定する処理を挿入するイベント入力リ
セット挿入手段と、を備えることを特徴としている。
【0016】また、請求項4に係るイベント駆動型制御
プログラム用コンパイラは、イベントの発生が通知され
たとき前記イベントに対応する処理を実行するイベント
駆動型ファンクションブロックと、当該イベント駆動型
ファンクションブロックを起動する基本処理手段に対し
起動指示を行う上位処理手段と、を備え、且つ、前記イ
ベントの有無を表す2値のデータ型を定義し、前記イベ
ント駆動型ファンクションブロックにイベントの発生を
通知するためのイベント変数を前記2値のデータ型で設
定し、前記上位処理手段は、前記イベント駆動型ファン
クションブロックへのイベントの通知元のイベント変数
に基づいてイベントの有無を検出し、前記イベント駆動
型ファンクションブロックへのイベントが有るとき当該
イベントの通知先のイベント駆動型ファンクションブロ
ックのイベント変数をイベント有りに設定した後、前記
イベント有りを検出した前記通知元におけるイベント変
数をイベント無しに設定するようになっているイベント
駆動型制御プログラムのソースプログラムを、コンピュ
ータで実行可能な機械語に変換するためのイベント駆動
型制御プログラム用コンパイラであって、前記上位処理
手段において前記通知元のイベント変数を参照する処理
が全て終了したことを意味する処理を検索するイベント
出力参照終了検索手段と、前記機械語への変換を行う際
に、前記イベント出力参照終了検索手段で検出した処理
の直後に、前記通知元におけるイベント変数をイベント
無しに設定する処理を挿入するイベント出力リセット挿
入手段と、を備えることを特徴としている。
【0017】また、請求項5に係るイベント駆動型制御
装置は、イベントの発生が通知されたとき前記イベント
に対応する処理を実行するイベント駆動型ファンクショ
ンブロックと、当該イベント駆動型ファンクションブロ
ックの起動指示を行う上位処理手段と、当該上位処理手
段で指示されたイベント駆動型ファンクションブロック
を起動する基本処理手段と、を備えたイベント駆動型制
御装置であって、前記イベントの有無を表す2値のデー
タ型を定義し、前記イベント駆動型ファンクションブロ
ックにイベントの発生を通知するためのイベント変数を
前記2値のデータ型で設定すると共に、前記イベント駆
動型ファンクションブロックのインスタンスに前記イベ
ント変数を格納するための固定領域を設け、前記上位処
理手段は、前記基本処理手段に対して前記起動指示を行
う際に、前記イベント駆動型ファンクションブロックに
イベントを通知するための予め設定された通知元のイベ
ント変数を前記固定領域に複写する複写手段と、当該複
写手段での複写後に、前記通知元のイベント変数をイベ
ント無しに設定するイベント出力リセット手段と、を備
え、前記基本処理手段は起動が指示されたイベント駆動
型ファンクションブロックの前記固定領域を参照してイ
ベントの有無を検出するイベント有無検出手段と、当該
イベント有無検出手段でイベント有りを検出したときに
のみ指示されたイベント駆動型ファンクションブロック
を起動する起動手段と、を備えることを特徴としてい
る。
【0018】また、請求項6に係るイベント駆動型制御
装置は、請求項5記載のイベント駆動型制御装置におい
て、前記基本処理手段は、前記イベント駆動型ファンク
ションブロックによる処理終了後、当該イベント駆動型
ファンクションブロックから前記上位処理手段による処
理に復帰するための復帰処理を行うと共に、起動したイ
ベント駆動型ファンクションブロックの前記固定領域を
イベント無しに設定するようになっていることを特徴と
している。
【0019】また、請求項7に係るイベント駆動型制御
装置は、前記請求項2、請求項5及び請求項6の何れか
に記載のイベント駆動型制御装置において、前記上位処
理手段は、起動が指示されたイベント駆動型ファンクシ
ョンブロックで必要とするデータ情報を、当該データ情
報が格納された記録領域から前記イベント駆動型ファン
クションブロックが参照するためのデータ情報入力領域
に複写するようになっているイベント駆動型制御装置で
あって、前記イベント駆動型ファンクションブロックに
通知されるイベント変数と、当該イベント変数がイベン
ト有りのときに前記イベント駆動型ファンクションブロ
ックで必要とするデータ情報との対応を表す入力対応情
報、及び、前記イベント駆動型ファンクションブロック
に通知されるイベント変数と、当該イベント変数がイベ
ント有りのときに前記イベント変数の通知元が出力すべ
きデータ情報との対応を表す出力対応情報の少なくとも
何れか一方を有し、前記上位処理手段は、前記イベント
駆動型ファンクションブロックの起動指示を行う際に、
前記入力対応情報及び出力対応情報の少なくとも何れか
一方を参照し、起動が指示されたイベント駆動型ファン
クションブロックへの、イベント有りに設定されたイベ
ント変数に対応するデータ情報のみを前記データ情報入
力領域に複写するようになっていることを特徴としてい
る。
【0020】また、請求項8に係るイベント駆動型制御
装置は、請求項2記載のイベント駆動型制御装置におい
て、前記イベント駆動型ファンクションブロックで参照
する情報を記憶するための入力変数領域及び当該入力変
数領域用のバッファ領域を備え、前記上位処理手段は前
記バッファ領域に所定の情報を複写し、前記基本処理手
段は前記イベント駆動型ファンクションブロックを起動
する際に前記バッファ領域の情報を前記入力変数領域に
複写し、前記イベント駆動型ファンクションブロックは
前記入力変数領域に格納された情報を参照するようにな
っていることを特徴としている。
【0021】また、請求項9に係るイベント駆動型制御
装置は、請求項8記載のイベント駆動型制御装置におい
て、前記バッファ領域は、前記イベント駆動型ファンク
ションブロックのインスタンスに設けられていることを
特徴としている。また、請求項10に係るイベント駆動
型制御装置は、請求項8記載のイベント駆動型制御装置
において、前記イベント駆動型ファンクションブロック
で参照する情報のうち、前記イベント変数を除くデータ
情報を格納するためのバッファ領域は、前記データ情報
の送信元の前記データ情報の出力側に設けられているこ
とを特徴としている。
【0022】また、請求項11に係るイベント駆動型制
御装置は、請求項5記載のイベント駆動型制御装置にお
いて、前記固定領域用のバッファ領域を備え、前記上位
処理手段は前記バッファ領域に前記イベント変数を複写
し、前記基本処理手段は、起動が指示されたイベント駆
動型ファンクションブロックの前記バッファ領域の情報
を前記固定領域に複写した後、当該固定領域を参照して
前記イベントの有無を検出するようになっていることを
特徴としている。
【0023】また、請求項12に係るイベント駆動型制
御装置は、請求項11記載のイベント駆動型制御装置に
おいて、前記基本処理手段は、前記バッファ領域の情報
を前記固定領域に複写した後、前記バッファ領域にイベ
ント無しを設定するようになっていることを特徴として
いる。また、請求項13に係るイベント駆動型制御装置
は、イベントの発生が通知されたとき前記イベントに対
応する処理を実行するイベント駆動型ファンクションブ
ロックと、当該イベント駆動型ファンクションブロック
の起動指示を行う上位処理手段と、当該上位処理手段で
指示されたイベント駆動型ファンクションブロックを起
動する基本処理手段と、を備えたイベント駆動型制御装
置であって、前記イベントの有無を表す2値のデータ型
を定義し、前記イベント駆動型ファンクションブロック
にイベントの発生を通知するためのイベント変数を前記
2値のデータ型で設定すると共に、前記イベント駆動型
ファンクションブロックのインスタンスに前記イベント
変数を格納するための固定領域及び当該固定領域用のバ
ッファ領域を設け、前記上位処理手段は、前記イベント
駆動型ファンクションブロックの起動を指示する際に、
当該イベント駆動型ファンクションブロックで参照すべ
きイベント変数を前記バッファ領域に複写する複写手段
を備え、前記基本処理手段は、起動が指示されたイベン
ト駆動型ファンクションブロックの前記バッファ領域の
情報を前記固定領域に複写し、当該固定領域を参照して
イベントの有無を検出するイベント有無検出手段と、当
該イベント有無検出手段でイベント有りを検出したとき
にのみ指示されたイベント駆動型ファンクションブロッ
クを起動する起動手段とを備え、前記ファンクションブ
ロックは、起動時に、当該ファンクションブロックのイ
ベント出力をイベント無しに設定するイベント出力リセ
ット手段を備えることを特徴としている。
【0024】また、請求項14に係るイベント駆動型制
御装置は、請求項8乃至13の何れかに記載のイベント
駆動型制御装置において、前記基本処理手段は、前記イ
ベント有りを検出したときセットし前記バッファ領域か
らの前記複写が終了したときリセットする起動フラグ
と、前記イベント駆動型ファンクションブロックが実行
中であるときにセット状態に維持する実行中フラグと、
を備え、前記起動フラグがセットされ且つ前記実行中フ
ラグがリセットされているときに前記複写を行った後前
記イベント駆動型ファンクションブロックを起動するよ
うになっていることを特徴としている。
【0025】さらに、請求項15に係るイベント駆動型
制御プログラム用コンパイラは、イベントの発生が通知
されたとき前記イベントに対応する処理を実行するイベ
ント駆動型ファンクションブロックと、当該イベント駆
動型ファンクションブロックの起動指示を行う上位処理
手段と、当該上位処理手段で指示されたイベント駆動型
ファンクションブロックを起動する基本処理手段と、を
備え、且つ、前記イベントの有無を表す2値のデータ型
を定義し、前記イベント駆動型ファンクションブロック
にイベントの発生を通知するためのイベント変数を前記
2値のデータ型で設定すると共に、前記イベント駆動型
ファンクションブロックのインスタンスに前記イベント
変数を格納するための固定領域及び当該固定領域用のバ
ッファ領域を設け、前記上位処理手段は、前記イベント
駆動型ファンクションブロックの起動を指示する際に、
当該イベント駆動型ファンクションブロックで参照すべ
きイベント変数を前記バッファ領域に複写し、前記基本
処理手段は、起動が指示されたイベント駆動型ファンク
ションブロックの前記バッファ領域の情報を前記固定領
域に複写し、当該固定領域を参照してイベントの有無を
検出し当該イベント有無検出手段でイベント有りを検出
したときにのみ指示されたイベント駆動型ファンクショ
ンブロックを起動するようになっているイベント駆動型
制御プログラムのソースプログラムを、コンピュータで
実行可能な機械語に変換するためのイベント駆動型制御
プログラム用コンパイラであって、前記機械語に変換す
る際に、前記ファンクションブロックを実現するための
処理の開始位置に、当該ファンクションブロックのイベ
ント出力をイベント無しに設定する処理を挿入するイベ
ント出力リセット挿入手段を備えることを特徴としてい
る。
【0026】
【発明の実施の形態】以下に、本発明の実施の形態を説
明する。まず、第1の実施の形態を説明する。図1は、
本発明を適用したイベント駆動型制御システムの一例を
示す構成図であって、プログラミングツール1は、イベ
ント駆動型のファンクションブロックFBを用いてシス
テム制御プログラムを作成するための入力装置11、こ
の入力装置11での入力に応じて所定のデータを表示す
るための表示装置12、作成されたシステム制御プログ
ラム等を記録するための記録媒体13、さらに、前記入
力装置11、表示装置12及び記録媒体13を制御する
処理装置14を備えている。
【0027】そして、プログラミングツール1で生成さ
れたシステム制御プログラムは、コンパイラ2によっ
て、機械語プログラムに変換された後、伝送装置3によ
って、制御装置5に伝送され、ここで実行されるように
なっている。ここで、前記イベント駆動型ファンクショ
ンブロックFBについて説明する。このイベント駆動型
ファンクションブロックFBは、公知のファンクション
ブロックと同様に定義されるが、さらに、データ型とし
て、イベント型が定義されている。
【0028】図2は、データ型としてイベント型を宣言
する場合の、変数宣言の一例を示したものである。図2
では、“CU”及び“R”が、イベント型の変数として
宣言されている。ここでは、イベントを表すキーワード
として“EVENT”なる宣言子を用いているが、これ
に限るものはなく、他のデータ型と区別できるものであ
ればよい。また、ここでは、入力変数のイベント宣言の
例を示しているが、出力変数のイベント宣言を行う場合
も同様である。
【0029】そして、イベント型として、1ビットのデ
ータを想定し、真理値がTRUE(ビットが“1”)の
とき“イベント有り”、真理値がFALSE(ビットが
“0”)であるときに“イベント無し”としている。図
3は、このイベント宣言を用いた、イベント駆動型ファ
ンクションブロックFBを示したものである。前述の図
27に示す、公知のファンクションブロックFBと基本
的な構成は同じであるが、入力変数の一部21と出力変
数の一部22とがイベント型として宣言されている。
【0030】図4は、図3に示すファンクションブロッ
クFB20の内部構造を示すソースプログラムである。
前述の図28と同様に、31は、ファンクションブロッ
ク名(この場合、“E_CTU”)を宣言しており、こ
の宣言によってファンクションブロックの記述の始まり
を示している。そして、32は、入力変数宣言、33は
出力変数宣言を示す。
【0031】また、図中34及び37は、イベント入力
の判定を行い、35及び38は、イベント出力を行って
いる。なお、このイベント出力35及び38は、このフ
ァンクションブロックFB20単体では意味がないが、
後段のファンクションブロックFBへのイベントの伝達
や、上位ファンクションブロックFBにおいてイベント
の処理が正常に行われたかを確認するため等に用いられ
る。また、図中36及び39は、入力されたイベントの
クリア処理を行っている。これは、イベントの操作を全
てファンクションブロックの内部プログラム上に記述し
ているために、イベントの値が必要でなくなったところ
で明示的にクリアする必要があるためである。このよう
に、イベント変数を定義し、その動作をプログラム上に
全て記述すれば、イベント駆動型のファンクションブロ
ックFBを記述することができる。
【0032】図5は、このファンクションブロックFB
20を用いてシステム制御プログラムを作成した場合の
ファンクションブロックFB20に対するイベント及び
データの接続の一例を示したものであって、イベント駆
動型のファンクションブロックFB(FB_1)41か
らのイベント伝達にしたがって、イベント駆動型のファ
ンクションブロックFB(E_CTU)20及びFB
(FB_2)42が動作するようになっている。
【0033】図5においてファンクションブロックFB
41からファンクションブロックFB20へのイベント
伝達44及び45は、ファンクションブロックFB41
及びFB20が属する上位のファンクションブロックF
B又は上位のプログラム(以下、上位プログラムとす
る。)47上に記述される。つまり、図5においてイベ
ント伝達44及び45は、接続の概念を表したものであ
って、実際の上位プログラムとは異なる。これは、上位
プログラム47が、ファンクションブロックFB41で
設定される“イベント”型の変数EO1、EO2をもと
に、イベントの有無を判定し、これに基づいてイベント
の伝達及びファンクションブロックFBの起動を行うか
らである。
【0034】なお、イベント駆動型のファンクションブ
ロックFBの前段のファンクションブロックFBは、後
段のファンクションブロックFBにイベントを伝達する
ための、データ型が“イベント”であるイベント出力変
数を有し、イベント出力変数を“TRUE”に設定する
ことによってイベントの発生を通知するようになってい
る。つまり、図5の場合には、ファンクションブロック
FB41は、ファンクションブロックFB20及びFB
42にイベントを伝達するためのイベント出力EO1及
びEO2を備えており、これらイベント出力EO1或い
はEO2を“TRUE”に設定することによって、イベ
ントの発生を通知する。
【0035】図6は、上位プログラム47の、前記ファ
ンクションブロックFB41とファンクションブロック
FB20及びFB42との接続部分、つまり、イベント
伝達に関する記述のソースプログラムを示したものであ
る。図6においては、51の処理において、ファンクシ
ョンブロックFB41のイベント出力EO1及びEO2
が有るかどうか、つまり、イベント有りに設定されてい
るかどうかを判定し、イベント出力がある場合に、52
の処理でファンクションブロックFB(E_CTU)2
0を呼び出す処理を行う。つまり、例えば、図示しない
基本処理プログラムOSに対し、ファンクションブロッ
クFB(E_CTU)20の起動を指示すると共に、フ
ァンクションブロックFB41のイベント出力及び所定
の出力データをファンクションブロックFB(E_CT
U)20のインスタンスの所定の領域にコピーする。
【0036】同様に、54の処理でファンクションブロ
ックFB41のイベント出力EO2が有るか否かを判定
し、イベント出力がある場合に、55の処理でファンク
ションブロックFB(FB_2)42を呼び出す処理を
行う。また、イベント伝達が終わった時点でイベント伝
達44、45をクリアしておく必要があるので、53の
処理でファンクションブロックFB41のイベント出力
EO1をクリアし、54の処理でファンクションブロッ
クFB41のイベント出力EO2をクリアする。つま
り、ファクションブロックFB41のイベント出力EO
1及びEO2をクリアしておかなければ、次に上位プロ
グラム47においてイベント出力EO1及びEO2を参
照したときに、イベント出力EO1及びEO2がクリア
されていなければ、再度イベント伝達を行うことになる
ため、イベント伝達が終了した時点で、イベント出力E
O1及びEO2をクリアするようになっている。
【0037】したがって、このようにして生成した上位
プログラム47をコンパイラ2で機械語に変換し、これ
を伝送装置3によって制御装置5に伝送し、これを実行
すれば、ファンクションブロックFB41のイベント出
力EO1及びEO2は、上位プログラム47によって後
段のファンクションブロックFB20及びFB42に伝
達されることになる。このとき、上位プログラム47
が、ファンクションブロックFB41のイベント出力E
O1及びEO2についてイベントの有り無しを判定し、
これを後段のファンクションブロックFB20及びFB
42に伝達するようにしているから、ファンクションブ
ロックFB間でのイベントの伝達を上位プログラム47
によって行うことができると共に、上位プログラム47
上において、データ型のイベント変数と、このイベント
発生時に送信すべきデータとを関連付けることができる
から、上位プログラム47の可読性を向上させることが
でき、さらにはシステム制御プログラム全体の可読性を
向上させることができる。
【0038】また、このとき、上位プログラム47でイ
ベントの発生の有無を判定しイベント有りのときにの
み、ファンクションブロックFBを呼び出すようにして
いるから、必要なときのみファンクションブロックFB
を起動させればよく、ファンクションブロックFBを効
率良く動作させることができ、その分、制御システム全
体の処理効率を向上させることができる。ここで、ファ
ンクションブロックFB20がイベント駆動型ファンク
ションブロックに対応し、上位プログラム47が上位処
理手段に対応し、基本処理手段OSが基本処理手段に対
応し、図6において、51及び54の処理がイベント有
無検出手段に対応し、52及び55の処理がイベント伝
達手段に対応し、53及び56の処理がイベントリセッ
ト手段に対応している。
【0039】次に、本発明の第2の実施の形態を説明す
る。この第2の実施の形態は、上記第1の実施の形態に
おけるイベント駆動型ファンクションブロックFB20
において、イベント入力をリセットする処理を記述しな
いようにしたものである。図7は、第2の実施の形態に
おけるイベント駆動型のファンクションブロックFB2
0の内部構造を示す、高水準プログラミング言語で記載
されたソースプログラムである。なお、図4に示す第1
の実施の形態におけるファンクションブロックFB20
の内部構造を示すソースプログラムと同一部には同一符
号を付与している。
【0040】この第2の実施の形態におけるファンクシ
ョンブロックFB20のソースプログラムにおいては、
図7に示すように、34又は37の処理でイベントの判
定を行い、35及び38の処理でイベント出力を行う
が、図4の36及び39の処理で行っていたイベント入
力のクリアを行う処理はない。そして、第2の実施の形
態においては、前記イベント入力のクリアを行う処理
を、前記ファンクションブロックFB20のソースプロ
グラムをコンパイルする際に、コンパイラ2によって挿
入する。
【0041】つまり、コンパイラ2では、コンパイル時
には、イベント駆動型のファンクションブロックFBの
ソースプログラムに対し、図8に示すフローチャートに
したがって、コンパイル処理を行う。すなわち、まず、
公知のコンパイラと同様にしてコンパイル処理を行う
(ステップS1)。次いで、ファンクションブロックF
B20のソースプログラム中に、RETURN命令、或
いはファンクションブロックFBのEND宣言があるか
どうかを検索する(ステップS2)。
【0042】そして、RETURN命令或いはEND宣
言があった場合には、入力変数としてデータ型が“イベ
ント”と宣言されているイベント入力全てを特定し、イ
ベント入力全てをクリアするための処理を、機械語プロ
グラムのRETURN命令或いはEND宣言の直前に追
加する(ステップS3)。そして、全てのRETURN
命令或いはEND宣言の前にイベント入力クリア処理を
追加したかどうかを判定し(ステップS4)、全てに対
する追加処理が終了していない場合には、ステップS2
に戻って、イベント入力クリア処理の追加を行い、全て
のRETURN命令或いはEND宣言の前にイベント入
力クリア処理を追加したならば、コンパイル処理を終了
する。
【0043】図9は、図7に示す内部プログラムを有す
るファンクションブロックFB20のソースプログラム
を、図8に示すコンパイル処理にしたがって、コンパイ
ルした時の結果の一例を示したものである。図7におい
ては、40aにRETURN命令、また、40bにEN
D宣言が存在するから、図8のステップS2の処理でこ
の2箇所が検索される。したがって、ステップS3の処
理で、40aのRETURN命令及び40bのEND宣
言の前にイベント入力クリア処理が追加され、図9に示
すように、40aのRETURN命令の前に、イベント
入力R及びCUをクリアにするイベント入力クリア処理
36aが追加され、また、40bのEND宣言の前にイ
ベント入力クリア処理39aが追加される。
【0044】したがって、機械語プログラムに変化され
た時点でイベント入力クリア処理が追加されるから、こ
の時点で、ファンクションブロックFB20の内部プロ
グラムは、上記第1の実施の形態における図4の内部プ
ログラムと同等のプログラムとなる。ここで、イベント
入力は、イベント駆動型ファンクションブロックFB2
0の内部プログラム中では、イベントの判定、また、イ
ベント同士の簡単な論理演算、イベント出力への伝達等
に使われる。
【0045】これらの処理が終了した時点で使われなく
なったイベント入力をリセットすればよいが、それに
は、ファンクションブロックFBのプログラムの文脈の
解析等を行う必要があり、コンパイラ2の処理が複雑に
なる。しかしながら、イベント入力が、そのイベントが
入力されているファンクションブロックFBにおける処
理が終了する時点で確実に不必要となることに注目すれ
ば、イベント入力は、ファンクションブロックFBの処
理の終了の時点でクリアすればよい。このファンクショ
ンブロックFBの処理の終了を表すものはRETURN
命令及びファンクションブロックFBのEND FUN
CTION BLOCK宣言だけである。したがって、
図9に示すように、RETURN命令及びファンクショ
ンブロックFBのEND宣言の前にイベント入力のクリ
ア処理を追加することによって、内部プログラムの解析
等を行うことなく、容易且つ的確な位置にクリア処理を
追加することができる。
【0046】また、本来、イベントの概念からすれば、
イベントはその発生と伝達及び参照が必要な機能であっ
て、イベント入力のクリア処理を記述することはイベン
ト駆動型ファンクションブロックFBの内部プログラム
が冗長となり、プログラムミスを招く要因となるが、上
述のようにファンクションブロックFBの内部プログラ
ムに、イベント入力のクリア処理を記述する必要がない
から、内部プログラムが冗長となり、且つプログラムミ
スを招くことを回避することができる。
【0047】ここで、図8において、ステップS2の処
理がイベント入力参照終了検索手段に対応し、ステップ
S3の処理がイベント入力リセット挿入手段に対応して
いる。次に、本発明の第3の実施の形態を説明する。こ
の第3の実施の形態は、図6に示す上記第1の実施の形
態における上位プログラム47のイベント伝達に関する
記述のソースプログラムにおいて、前段のファンクショ
ンブロックFB、図5の場合、ファンクションブロック
FB41のイベント出力変数のクリア処理を記述しない
ようにしたものである。
【0048】図10は、第3の実施の形態における上位
プログラム47の、イベント伝達に関する部分のソース
プログラムを表したものである。なお、図6に示す上記
第1の実施の形態におけるイベント伝達に関する部分の
ソースプログラムにおいて同一部には同一符号を付与し
ている。この第3の実施の形態における上位プログラム
47のイベント伝達に関するソースプログラムにおいて
は、図10に示すように、51の処理において、イベン
ト出力EO1、EO2があるか否かを判定し、イベント
出力がある場合に、52の処理でファンクションブロッ
クFB(E_CTU)20を呼び出す処理を行い、ま
た、54の処理でイベント出力EO2が有るか否かを判
定し、イベント出力がある場合に55の処理でファンク
ションブロックFB(FB_2)42を呼び出す処理を
行うが、図6の53及び56の処理で行っていた、前段
のファンクションブロックFB41のイベント出力EO
1及びEO2をクリアする処理は記述しない。
【0049】そして、第3の実施の形態においては、上
位プログラム47をコンパイルする際に、前段のファン
クションブロックFBのイベント出力変数のクリアを行
う処理を、コンパイラ2において追加する。つまり、コ
ンパイラ2では、コンパイル時には、上位プログラム4
7のイベント伝達に関する部分のソースプログラムに対
し、図11に示すフローチャートにしたがって、コンパ
イル処理を行う。
【0050】すなわち、まず、公知のコンパイラと同様
にしてコンパイル処理を行う(ステップS11)。次い
で、上位プログラム47のイベント伝達に関する記述箇
所において、前段のファンクションブロックFBのイベ
ント出力変数を参照するファンクションブロックFBを
検索し、前記イベント出力変数を最後に参照しているフ
ァンクションブロックFBを特定する(ステップS1
2)。そして、この特定したファンクションブロックF
Bを呼び出している記述の直後に、イベント出力変数の
クリア処理を追加する(ステップS13)。そして、コ
ンパイル処理を終了する。
【0051】つまり、図10のイベント伝達に関する記
述においては、図5の前段のファンクションブロックF
B41のイベント出力EO1及びEO2を参照している
ファンクションブロックFBは、FB(E_CTU)2
0とFB(FB_2)42である。そのうち、イベント
出力EO1を最後に参照しているのは、図10の51の
処理であってファンクションブロックFB20が該当
し、イベント出力IO2を最後に参照しているのは、図
10の55の処理であってファンクションブロックFB
42が該当する(ステップS12)。
【0052】したがって、イベント出力EO1について
は、これを最後に参照しているファンクションブロック
FB20を呼び出す処理52の直後に、イベント出力E
O1をクリアする処理が追加され、同様に、イベント出
力EO2については、これを最後に参照しているファン
クションブロックFB42を呼び出す処理55の直後
に、イベント出力EO2をクリアする処理が追加される
ことになる。これはすなわち、図6の53及び56に示
すイベント出力をクリアする処理が追加されたことにな
り、コンパイル後の上位プログラム47のイベント伝達
に関する機械語プログラムの記述は、図6に示すソース
プログラムをコンパイルしたものと同等となる。
【0053】したがって、図11に示すように、イベン
ト出力を最後に参照しているファンクションブロックF
Bを呼び出す処理の直後に、イベント出力のクリア処理
を追加することによって、内部プログラムの解析等を行
うことなく、容易且つ的確な位置にクリア処理を追加す
ることができる。よって、この場合も、第2の実施の形
態と同様に、上位プログラム47におけるイベント伝達
に関する記述を簡略することができ、プログラムミスを
招くことを回避することができると共に、可読性を向上
させることができる。
【0054】なお、この第3の実施の形態においては、
上記第1の実施の形態において、上位プログラム47の
イベント出力のクリア処理に関する記述を行わないよう
にした場合について説明しているが、上記第2の実施の
形態と組み合わせるようにしてもよいことはいうまでも
なく、上記第2の実施の形態と組み合わせることによっ
て、システム制御プログラム全体の可読性をより向上さ
せることができる。ここで、図11の処理において、ス
テップS12の処理がイベント出力参照終了検索手段に
対応し、ステップS13の処理がイベント出力リセット
挿入手段に対応している。
【0055】次に、本発明の第4の実施の形態を説明す
る。この第4の実施の形態は、上記第3実施の形態にお
けるイベント駆動型のファンクションブロックFB20
において、そのインスタンスに、イベント入力領域を確
保するようにしたものである。図12は、ファンクショ
ンブロックFB20のインスタンスを示したものであっ
て、図12に示すように、入力変数領域61と、内部変
数領域62と、出力変数領域63とが形成されている。
前記入力変数領域61は、イベント入力領域61aとデ
ータ入力領域61bとから構成され、前記イベント入力
領域61aとして、インスタンスの先頭から予め設定し
たワード数の領域が確保されている。
【0056】図13は、第4の実施の形態における上位
プログラム47のイベント伝達に関する記述の一例を示
したものである。図13に示すように、イベント伝達時
に、イベントの有無の判定は行わず、公知のファンクシ
ョンブロックFB呼び出し時の処理と同様に、ファンク
ションブロックFBを呼び出す。この場合、ファンクシ
ョンブロックFB(E_CTU)20及びFB(FB_
2)42の呼び出しのみを行い、呼び出しに伴って、イ
ベント変数、データ変数等といった所定の変数をコピー
する。このとき、イベント変数はイベント入力変数とし
て、図12に示す、イベント入力領域61aにコピー
し、データ変数は、入力データとしてデータ入力領域領
域61bにコピーする。
【0057】そして、第4の実施の形態においては、上
位プログラム47でのファンクションブロックFBの呼
び出し処理が行われたときに、基本処理プログラム(O
S)において、イベントの有り無しを判定する。つま
り、基本処理プログラムOSでは、上位プログラム47
によって呼び出し処理が行われ、イベント駆動型のファ
ンクションブロックFB20の起動指示が行われると、
図14に示すように、起動が指示されたファンクション
ブロックFBのインスタンスのイベント入力領域61a
を参照し、イベント入力の有り無しを判定する(ステッ
プS21)。
【0058】ここで、前記イベント入力領域61aは、
ワード単位で確保されているから、基本処理プログラム
OSでは、ワード単位で、例えば零と比較すること等に
よって、イベントの有無を容易に検出することができ
る。例えば、イベント入力領域61aとして、最大16
のイベント入力変数を設定できる領域を確保した場合に
は、16イベントを1ワードとし、イベント入力変数が
16イベントない場合であっても、16イベントの1ワ
ードのデータとして取り扱い、このワードデータに対し
てイベントの有無の検出を行う。
【0059】そして、イベントの有無の検出を行った結
果、何れかのイベントがイベント有りであると判定され
る場合には、ステップS22に移行し、指定されたファ
ンクションブロックFBを起動する。ステップS21で
イベント無しと判定される場合には、指定されたファン
クションブロックFBの呼び出しは行わない。したがっ
て、基本処理プログラムOSによって、イベントの有無
を判定するようにしたから、図13に示すように、上位
プログラム47上に、イベント有無の判定処理を記述す
る必要はなく、イベント駆動型ではない通常のファンク
ションブロックの呼び出し時と同様の記述で構成するこ
とができる。よって、上位プログラム47が複雑になる
ことを回避することができる。
【0060】また、図12に示すように、インスタンス
の固定位置に固定領域のイベント入力領域61aを確保
し、イベント入力変数をワード単位で取り扱うようにし
たから、イベント入力変数を1ビットデータとして扱う
場合に比較して、イベント有無の判定をより短時間で容
易に行うことができ、イベント入力変数種が多い場合で
あっても、イベント有無の判定に伴いファンクションブ
ロックFBの呼び出しに時間がかかることを回避するこ
とができる。
【0061】また、このとき、イベント入力領域61a
の位置とサイズとを固定しているから、基本処理プログ
ラムOSにおいて、ファンクションブロックFBからの
復帰処理を行う際に、ファンクションブロックFBのイ
ンスタンスのイベント入力変数領域61aのイベント変
数をクリアするようにしてもよい。このようにすること
によって、ファンクションブロックFBの内部プログラ
ムに、イベント入力変数をクリアする処理を設ける必要
がなく、また、上記第2の実施の形態のように、コンパ
イル時にイベント入力をクリアする処理を追加する必要
もない。
【0062】なお、上記第4の実施の形態においては、
上記第3の実施の形態に適用した場合について説明した
が、これに限らず、上記第1及び第2の実施の形態の何
れかに適用することも可能である。ここで、イベント入
力領域61aが固定領域に対応し、図13においてファ
ンクションブロックFB(E_CTU)20及びFB
(FB_2)42を呼び出す際に、イベント変数をイベ
ント入力変数としてイベント入力領域61aにコピーす
る処理が複写手段に対応し、図14において、ステップ
S21の処理がイベント有無検出手段に対応し、ステッ
プS22の処理が起動手段に対応している。
【0063】次に、本発明の第5の実施の形態を説明す
る。この第5の実施の形態は、上記第1の実施の形態に
おいて、図1に示すプログラミングツール1において、
各ファンクションブロックFB毎に、イベント入力変数
と、このイベント入力変数がイベント有りとなったとき
に入力すべきデータ種との対応を表す対応テーブル(入
力対応情報)を作成し、この対応テーブルに基づいてデ
ータ転送を行うようにしたものである。
【0064】図15は、前記対応テーブルTを作成する
ための、対応テーブル作成処理の処理手順の一例を示す
フローチャートである。この対応テーブル作成処理で
は、入力装置11によって入力された、イベント駆動型
ファンクションブロックFBと、このファンクションブ
ロックFBに入力される入力データ種と、イベント入力
変数種とを読み込み(ステップS31)、これらファン
クションブロックFBと入力データとイベント入力変数
との対応を設定するための対応設定画面を表示装置12
にウィンドウ表示し、これらの対応付けを行うための対
応付け処理を、入力装置11での操作にしたがって行う
(ステップS32)。
【0065】例えば、図16に示すように、入力データ
種m1とファンクションブロックFBm2とを線m3で
結び、これらを接続する線m3の途中に、イベント入力
変数種m4毎に対応するチェックボックスm5を設け、
このチェックボックスm5にチェックを行うことによっ
て、イベント入力変数と、このイベント入力変数が必要
とする入力データ種とを対応付けるようになっている。
例えば図16の場合には、イベント入力変数“CAL”
は入力データ“DATA1”と関連付けられ、イベント
入力変数“SET”は入力データ“PARA1”及び
“PARA2”と関連付けられることを表している。
【0066】そして、入力装置11での操作による対応
付け処理が終了したら、ステップS33に移行し、設定
された対応付けにしたがって、例えば図17に示すよう
な、イベント入力変数と、このイベント入力変数がイベ
ント有りとなったときに必要な入力データの関連を表す
対応テーブルTを作成し、これを記録媒体13に記録し
て処理を終了する。なお、図16では、グラフィカルな
ユーザインタフェースを用いた場合について説明してい
るが、関連付けを行うことができれば、どのような形式
であってもよい。
【0067】そして、このようにして各ファンクション
ブロックFB毎に前記対応テーブルTを形成し、これを
制御装置5に転送する。この転送は、例えば、図1に示
す制御装置5にシステム制御プログラムを転送する際に
行うようにしてもよく、また、前記対応テーブルTを作
成したときに転送するようにしてもよい。そして、制御
装置5では、システム制御プログラムにしたがって処理
を実行し、上記第1の実施の形態と同様に、上位プログ
ラム47によって前段のファンクションブロックFBの
イベント出力の有無を検出する。そして、イベント有り
を検出し、該当するファンクションブロックFBを呼び
出す場合には、図18に示す処理を行った後、基本処理
プログラムOSに対し起動を指示する。
【0068】つまり、上位プログラム47では、前段の
ファンクションブロックFBのイベント出力に基づいて
イベント有りと判断した場合には、これを後段のファン
クションブロックFBのイベント入力変数として伝達し
(ステップS41)、続いて、対応テーブルTを参照
し、イベント有りを検出したイベント変数に対応する入
力データ種を特定する(ステップS42)。そして、前
段のファンクションブロックFBの出力変数領域からス
テップS42で特定した入力データを選択し、これを呼
び出し先のファンクションブロックFBの入力変数領域
にコピーする(ステップS43)。
【0069】したがって、後段のファンクションブロッ
クFBには、イベント有りと判定されたイベント入力変
数に関連付けられた入力データのみが転送されることに
なり、つまり、必要最小限のコピーが行われることにな
る。ここで、一般に、ファンクションブロックFBに複
数のイベント入力変数が入力され、また複数の入力デー
タが入力される場合には、ある一つのイベントが発生し
た場合に必要となる入力データは、そのファンクション
ブロックFBに入力されている入力データの全てを必要
としないことが多い。例えば、演算の実行を要求するイ
ベントと演算のためのパラメータをセットするためのイ
ベントとを持ち、入力データとして、演算対象のデータ
と設定すべきパラメータとを持つ、ファンクションブロ
ックFBの場合、パラメータセットのイベントが発生し
た場合にはパラメータデータがあればよく、また、演算
実行のイベントが発生した場合には演算データがあれば
よい。特に多数のパラメータを持つファンクションブロ
ックFBの場合、ファンクションブロックFBを起動す
る度に全てのパラメータデータを入力することは、ファ
ンクションブロックFBの呼び出し処理に時間がかかる
ことになり、効率が悪い。
【0070】しかしながら、上記第5の実施の形態にお
いては、イベント有りと検出されたイベントに関連付け
られた入力データのみを転送するようにしているから、
ファンクションブロックFBの呼び出しに伴う処理時間
の短縮を図ることができる。なお、上記第5の形態にお
いては、ファンクションブロックFB毎に、そのイベン
ト入力変数と、これに対応する入力データ種との対応を
表す対応テーブルを作成するようにした場合について説
明したが、例えばファンクションブロックFB毎に、イ
ベント出力変数種と、このイベント出力変数がイベント
有りとなったときに出力すべきデータ種、つまり、イベ
ント出力変数の伝達先の1又は複数のファンクションブ
ロックFBで必要とするデータ種の全てとの対応を表す
対応テーブル(出力対応情報)を作成するようにしても
よい。この場合には、上位プログラム47において、イ
ベント出力変数に基づいてイベント有りを検出したとき
には、このイベント出力変数に対応する出力すべきデー
タ種を特定し、特定したデータのみを所定の記憶領域に
コピーするようにすればよい。したがって、この場合も
必要なデータのみをコピーすることになるから、効率よ
くデータ転送を行うことができる。
【0071】また、イベント入力変数と入力データ種と
の対応を表す対応テーブルtinと、イベント出力変数と
データ種との対応を表す対応テーブルtout とを設ける
ようにしてもよい。このようにすることによって、例え
ば、前段のファンクションブロックFBから読み出した
データを一旦所定の記憶領域に格納し、この記憶領域か
ら、伝達先のファンクションブロックのインスタンスに
記憶するような場合等には、対応テーブルtout を参照
して必要なデータのみを前段のファンクションブロック
FBから前記記憶領域に格納し、対応テーブルtinを参
照して必要なデータのみを起動するファンクションブロ
ックのインスタンスに記憶するようにすれば、効率よく
データ転送を行うことができる。
【0072】なお、上記第5の実施の形態においては、
前記対応テーブルTを作成する処理を、前記プログラミ
ングツール1において実行するようにした場合について
説明したが、これに限るものではなく、例えば、制御装
置5において作成するようにしてもよい。また、上記第
5の実施の形態においては、上記第1の実施の形態に適
用した場合について説明したが、これに限らず、上記第
2から第4の実施の形態に適用することも可能である。
【0073】このとき、第4の実施の形態に適用する場
合には、上記と同様に上位プログラム47でイベントの
有無を検出し、イベント有りを検出したときにこれをフ
ァンクションブロックFBのイベント入力領域61aに
書き込むと共に、イベント入力変数に対応する入力デー
タのみをデータ入力領域61bにコピーする。そして、
基本処理プログラムOSでは、イベント入力領域61a
を参照してイベントの有無を検出し、イベント有りを検
出したときに、ファンクションブロックFBを呼び出す
ようにすればよい。
【0074】次に、本発明の第6の実施の形態を説明す
る。この第6の実施の形態は、第5の実施の形態におい
て、ファンクションブロックFBのインスタンスに、入
力バッファ領域を設けたものである。すなわち、この第
6の実施の形態におけるインスタンスは、公知のインス
タンスにおいて、さらに入力変数領域と同じ大きさの入
力バッファ領域を備えている。つまり、図19に示すよ
うに、後述の入力変数領域72と同じ大きさを有する入
力バッファ領域71と、イベント入力変数、入力データ
等の入力変数が入力される入力変数領域72と、内部変
数領域73と、出力変数領域74とから構成されてい
る。そして、上位プログラム47では、イベント入力変
数或いはデータ等の入力変数を、入力バッファ領域71
にコピーするようになっている。
【0075】そして、この第6の実施の形態において
は、基本処理プログラムOSでは、ファンクションブロ
ックFBを起動する際に、図20に示す手順で処理を行
う。すなわち、起動指示が行われるとまず、読み出し先
のファンクションブロックFBのインスタンスにおい
て、入力バッファ領域71に書き込まれているイベント
入力変数のうち、イベント有りに設定されているイベン
ト入力変数を検索し(ステップS51)、このイベント
有りに設定されているイベント入力変数に関連付けられ
ているデータ種を、前記対応テーブルTに基づいて検索
し、イベント有りに設定されたイベント入力変数と、こ
れに関連付けられたデータとを入力変数領域72にコピ
ーする(ステップS52)。
【0076】そして、イベント有りに設定されているイ
ベント入力変数をクリアする(ステップS53)。今、
例えば、図21に示すように、イベント駆動型のファン
クションブロックFB(FB_3)81の前段に、ファ
ンクションブロックFB(FB_1)82及びFB(F
B_2)83が接続され、ファンクションブロックFB
82はイベント変数EO1を、また、ファンクションブ
ロックFB83はイベント変数EO2をファンクション
ブロックFB81に出力するようになっている。
【0077】また、ファンクションブロックFB(FB
_3)81では、前記ファンクションブロックFB82
のイベント変数EO1に対応する“SET”イベントに
よってパラメータPARA1及びPARA2がセットさ
れ、ファンクションブロックFB83のイベント変数E
O2に対応する“CAL”イベントによって、セットさ
れているPARA1及びPARA2と入力データDAT
A1とで所定の演算を行うようになっているものとす
る。
【0078】ここで、イベントによって、ファンクショ
ンブロックFBを駆動する場合、どの時点で、ファンク
ションブロックFBにイベント及びデータの入力が行わ
れるかわからない。このため、前記図21において、
“CAL”イベントに伴って演算を行っている最中に
“SET”イベントが発生するということも考えられ
る。このような場合、演算の最中にパラメータPARA
1及びPARA2が書き換わってしまうと、演算結果を
保証することができなくなる場合がある。
【0079】しかしながら、イベント有りに伴ってファ
ンクションブロックFB81を起動する際に、図20に
示すように、イベント有りに関連づけられたデータを入
力バッファ領域71から入力変数領域72にコピーする
ようにしているから、ファンクションブロックFB81
で参照している入力データが書き換えられたとしても、
ファンクションブロックFB81では入力変数領域72
のデータを参照して処理を行っており、上位プログラム
47では、入力バッファ領域71へデータをコピーする
から、ファンクションブロックFB81で演算処理実行
中にその参照している入力データが更新されることを回
避することができる。
【0080】なお、この第6の実施の形態においては、
上記第5の実施の形態に適用した場合について説明した
が、これに限らず、上記第1乃至第4の実施の形態の何
れか、またはこれらを組み合わせて適用することも可能
である。この場合には、入力バッファ領域71の入力変
数を全て入力変数領域72にコピーすることになるため
コピーに要する時間が多少増加することになるが、上記
と同等の作用効果を得ることができる。
【0081】次に、本発明の第7の実施の形態を説明す
る。この第7の実施の形態は、上記第6の実施の形態に
おいて、第5の実施の形態に代えて第4の実施の形態を
適用したものである。この場合、そのインスタンスは、
図22に示すように、入力バッファ領域71及び入力変
数領域72のそれぞれに、イベント入力領域71a、7
2aと、データ入力領域71b、72bとが形成される
ことになる。なお、入力変数領域72のイベント入力領
域72aが固定領域に対応し、入力バッファ領域71の
イベント入力領域71aが固定領域用のバッファ領域に
対応する。
【0082】このとき、ファンクションブロックFBを
起動する際に、入力バッファ領域71のデータ入力領域
71bのデータをイベントの有り無しに関わらず全て入
力変数領域72のデータ入力領域72bにコピーし、入
力バファ領域71のイベント入力領域71aのイベント
入力変数を全てクリアにするようにすれば、イベント入
力をクリアするための処理に関する記述を上位プログラ
ム上に記述する必要がない。つまり、入力バッファ領域
のイベント入力変数をクリアすることはすなわち、イベ
ント入力のクリア処理を行うことと同等となるからであ
る。
【0083】図23は、図22に示すインスタンスを有
するファンクションブロックFBへのイベント入力変数
を伝達する際の動作の一例を示したものである。図23
では、ファンクションブロックFBへのイベント入力変
数は4種、すなわち、4ビットあり、最初に第2のイベ
ントが発生し、次に、第1のイベントが発生した場合を
示している。前記第4の実施の形態で説明したように、
イベントが発生した場合、上位プログラム47では、イ
ベント入力変数と共に入力データを、インスタンスの入
力バッファ領域71のイベント入力領域71a及びデー
タ入力領域71bにそれぞれコピーし、これと同時に基
本処理プログラムOSに対しファンクションブロックF
Bの起動を指示する。
【0084】基本処理プログラムOSは、入力バッファ
領域71(71a、71b)のイベント入力変数及び入
力データを全て入力変数領域72のイベント入力領域7
2a、データ入力領域72bにそれぞれコピーする。ま
た、イベント入力領域72aを参照し、イベントが発生
しているときファンクションブロックFBを起動し、入
力バッファ領域71のイベント入力変数をクリアする。
したがって、図23に示すように、第2のイベントが発
生しているときに、時点t1で上位プログラム47が入
力バッファ領域71のイベント入力領域71aにこれを
書き込むと、第2のイベントが発生しているから、基本
処理プログラムOSがこれを検出して時点t2でファン
クションブロックFBを呼び出すと共に、イベント入力
領域71aの情報を入力変数領域72のイベント入力領
域72aにコピーし、これを起動する。そして、入力バ
ッファ領域71のイベント入力領域71aのイベント有
りを検出したイベント入力変数をクリアする(時点t
3)。
【0085】そして、ファンクションブロックFBの処
理実行中に、第1のイベントが発生し、上位プログラム
47がこれを入力バッファ領域71のイベント入力領域
71aに書き込むと(時点t4)、基本処理プログラム
OSでは、時点t5でファンクションブロックFBを再
度呼び出すと共に、入力バッファ領域71の情報を、入
力変数領域72にコピーする。したがって、イベント入
力領域71aを入力変数領域72のイベント入力領域7
2aにコピーした後、入力バッファ領域71をクリアす
るようにしているから、入力バッファ領域71に前回の
イベント入力変数の情報を残すことなく、常に有効なイ
ベントのみが存在することが保証されることになる。
【0086】また、このとき、ファンクションブロック
FBによる処理が実行される前の時点で、入力変数領域
72のイベント入力領域72bへのコピーを行っている
から、入力変数領域72のイベント入力変数のクリアを
処理を行う必要がない。また、図22に示すインスタン
スを有するファンクションブロックFBでは、ファンク
ションブロックFBで参照する入力変数は、一旦、入力
バッファ領域71に保持されるため、ファンクションブ
ロックFBを呼び出す際に入力変数領域72にコピーさ
れる入力変数は、この時点の前段のイベント変数ではな
く、入力バッファ領域71で保持されているイベント入
力である。したがって、前段のイベントファンクション
ブロックFBのイベント出力をクリアするタイミング
は、イベントを伝達した直後でなくともよい。
【0087】したがって、上記第3の実施の形態におい
ては、前段のファンクションブロックFBのイベント出
力をクリアする処理を、コンパイラ2によって追加する
ようにしているが、図24の91の記述に示すように、
前段のファンクションブロックFBのイベント出力をク
リアする処理を、この前段のファンクションブロックF
BにおいてファンクションブロックFBにおける処理の
開始時に行うようにし(イベント出力リセット手段)、
このときファンクションブロックFBの処理の先頭にコ
ンパイラ2によって追加するようにすれば(イベント出
力リセット挿入手段)、前段のファンクションブロック
FBのイベント出力のクリア処理を、上位プログラム4
7或いは基本処理プログラムOSによって行う必要がな
く、ファンクションブロックFBの内部で閉じた処理と
することができる。よって、コンパイル処理も簡単とな
り、また、ファンクションブロックFBの独立性も向上
させることができる。なお、図24は、前記図4に示す
ファンクションブロックFB(E_CTU)のソースプ
ログラムに対応している。
【0088】なお、上記第7の実施の形態においては、
インスタンスに入力バッファ領域71を設けるようにし
ているが、入力データについては、イベントが発生した
ときに、ファンクションブロックFBの入力変数領域に
取り込むことができればよい。したがって、入力バッフ
ァ領域71にデータ入力領域71bを設ける替わりに、
前段のファンクションブロックFBに、データ出力バッ
ファを設けるようにしてもよい。
【0089】図25は、その一例を示したものであっ
て、ファンクションブロックFB(FB_1)101
が、ファンクションブロックFB(FB_2)102及
びFB(FB_3)103にイベントを出力し、これら
ファンクションブロックFB102及び103は、前記
ファンクションブロックFB101のデータ出力DO1
及びDO2を、参照するようになっている。そして、前
記ファンクションブロックFB102及び103のイン
スタンスには、前記図22に示す入力バッファ領域71
のイベント入力領域71aが形成されるが、データ入力
領域71bは形成されない。なお、図25において、バ
ッファ102a及び103aがイベント入力領域71a
に対応している。
【0090】一方、前記ファンクションブロックFB1
01は、そのデータ出力DO1及びDO2の直後にバッ
ファ101aを有している。つまり、上位プログラム4
7では、ファンクションブロックFB101のイベント
出力EO1を、イベント発生時に各ファンクションブロ
ックFB102及び103のバッファ102a及び10
3aにコピーし、また、ファンクションブロックFB1
01のデータ出力DO1及びDO2を、バッファ101
aにコピーする。また、基本処理プログラムOSでは、
前記ファンクションブロックFB102及び103を起
動するときに前記バッファ102a或いは103aの情
報、及びバッファ101aの情報を、ファンクションブ
ロックFBの入力変数領域にコピーする。
【0091】したがって、この場合も上記と同様の作用
効果を得ることができると共に、この場合、インスタン
スの入力バッファ領域71にデータ入力領域71bを設
ける必要がない。ここで、前述のように入力バッファ領
域71を設ける場合、全てのファンクションブロックF
Bの入力変数領域を二重にする必要があるため、制御プ
ログラム全体で考えるとメモリ効率が悪くなる。しかし
ながら、上述のようにデータ出力の直後にバッファ10
1aを設けることによって、メモリ効率の低下を回避す
ることができる。
【0092】次に、本発明の第8の実施の形態を説明す
る。この第8の実施の形態は、前記第4の実施の形態或
いは第7の実施の形態に示すように、インスタンスに入
力バッファ領域を有するファンクションブロックFBの
起動を、フラグを用いて管理するようにしたものであ
る。図26は、ファンクションブロックFBと、ファン
クションブロックFBの演算処理との関係を示したもの
である。
【0093】入力バッファ領域が確保されたインスタン
スを有するファンクションブロックFBの場合、上位プ
ログラム47は、ファンクションブロックFBの入力バ
ッファ領域に、イベント入力変数、入力データがコピー
された時点で、基本処理プログラムOSに対し、ファン
クションブロックFBの呼び出し処理を依頼する。基本
処理プログラムOSでは、このファンクションブロック
FBの呼び出しの管理を起動フラグFsと実行中フラグ
Fonとの二つのフラグを用いて管理する。
【0094】具体的には、基本処理プログラムOSは、
起動フラグFsがオフとなったときに、実行中フラグF
onをオンに設定する。そして、ファンクションブロック
FBによる演算処理実行中は実行中フラグFonをオンに
維持し、ファンクションブロックFBによる演算処理が
終了しファンクションブロックFBの呼び出し元への復
帰処理時に実行中フラグFonをオフに設定する。また、
イベント入力変数のイベント有りを検出したときに、起
動フラグFsをオンに設定し、入力バッファ領域から入
力変数領域への情報のコピーが終了したときに、起動フ
ラグFsをオフに設定する。また、前記入力バッファ領
域から入力変数領域への情報のコピーは、起動フラグF
sがオンであり、且つ実行中フラグFonがオフのときに
のみ行う。
【0095】ここで、入力バッファ領域を持ったインス
タンスを有するファンクションブロックFBの場合、上
位プログラム47では、ファンクションブロックFBの
入力バッファ領域にイベント入力変数或いは入力データ
がコピーされた時点で基本処理プログラムOSにファン
クションブロックFB呼び出し処理を依頼する。前記基
本処理プログラムOSでは、一般に、ファンクションブ
ロックFBの呼び出しを管理するためにフラグを用いて
いる。
【0096】このとき、前記ファンクションブロックF
Bが定周期で呼び出される場合には、そのフラグは一つ
でよい。これは、定周期のファンクションブロックFB
の場合には、その呼び出し要因が一つ(時間)のみであ
り、複数からの起動要求はないこと、また、多重起動が
おこるようならば呼び出し間隔とファンクションブロッ
クFBの処理時間の設定とに明らかに無理があり、呼び
出し間隔を拡げるか、ファンクションブロックFBの処
理内容を少なくする以外にこれを解消する術がないから
である。
【0097】一方、イベントの呼び出しの場合には、複
数のイベントが多少の時間差をおいて発生するといった
状況は十分に考えられる。例えば、図26に示すよう
に、イベントが発生し、上位プログラムにおいて、入力
バッファ領域へのコピー、また、ファンクションブロッ
クFBの起動指示等の処理が行われ、時点t11で基本
処理プログラムOSにおいてイベントの発生を認識する
と、起動フラグFs(図26(a))をオンに設定し、
入力バッファ領域から入力変数領域へのコピー処理を行
う。そして、コピー処理が終了し、ファンクションブロ
ックFB本体の演算処理が開始されるとき、起動フラグ
Fsをオフ、実行中フラグFon(図26(b))をオン
に設定する(時点t12)。
【0098】そして、時点t14でイベントが発生する
と、これを認識し、起動フラグFsをオンに設定する
が、実行中フラグFonがオンであるから、入力バッファ
領域から入力変数領域へのコピー処理は行わない。そし
て、時点t15で、ファンクションブロックFBの演算
処理が終了すると、ファンクションブロックFBの呼び
出し元への復帰処理を実行し、これと共に実行中フラグ
Fonをオフにする。これによって、起動フラグFsがオ
ン、実行中フラグFonがオフとなるから、入力バッファ
領域から入力変数領域へのコピー処理を行い(時点t1
6)、ファンクションブロックFBを起動する(時点t
17)。
【0099】前記時点t16で行われるコピー処理は、
時点t14で発生したイベントに対応するコピー処理で
あるから、ファンクションブロックFB実行中に発生し
たイベントが受け付けられたことになる。このとき、フ
ァンクションブロックFBによる演算処理が行われてい
る最中の時点t13でもイベントが発生した場合には、
この時点で起動フラグFsがオンに設定されることにな
るが、この時点t13では、実行中フラグFonはオンに
設定されているため、入力バッファ領域から入力変数領
域へのコピー処理は行われない。
【0100】そして、時点t14でイベントが発生する
と、起動フラグFsはオンに設定されているが、実行中
フラグFonはオンに設定されているから入力バッファ領
域から入力変数領域へのコピー処理は行われず、時点t
15で実行中フラグFonがオフになったとき、入力バッ
ファ領域から入力変数領域へのコピー処理が行われる
が、これは上述のように、時点t13で発生したイベン
トに対するコピー処理である。
【0101】したがって、ファンクションブロックFB
の実行中にイベントが発生した場合には、少なくとも最
後に発生したイベントについては、これに対する処理を
ファンクションブロックFBで実行させることができ
る。また、ファンクションブロックFBの演算処理が終
了した時点でコピー処理を開始するようにしているか
ら、複数のファンクションブロックFBが起動されるこ
とを回避することができる。
【0102】ここで、起動フラグを用いる方法として、
図26に示すように、イベントが発生したときに起動フ
ラグF1(図26(c))をオンに設定し、コピー処理
が終了したときに起動フラグF1をオフにする方法、ま
た、イベントが発生したときに起動フラグF2(図26
(d))をオンに設定し、このイベントに対するファン
クションブロックFBの処理が終了したときに起動フラ
グF2をオフに設定する方法等も考えられる。しかしな
がら、前記起動フラグF1を用いる場合には、ファンク
ションブロックFBが処理実行中にイベントが発生した
場合、このイベントを受け付けてしまい、ファンクショ
ンブロックFBを二重に起動してしまうことになる。ま
た、前記起動フラグF2を用いる場合には、ファンクシ
ョンブロックFB実行中に発生したイベントが無視され
てしまうことになる。
【0103】しかしながら、上述のように、起動フラグ
Fs及び実行中フラグFonを用いることによって、ファ
ンクションブロックFBの多重起動を回避することがで
きると共に、ファンクションブロックFBの呼び出し抜
けを低減することができる。
【0104】
【発明の効果】以上説明したように、本発明の請求項1
又は2に係る発明によれば、イベントの有無を表す2値
のデータ型を定義し、イベント駆動型ファンクションブ
ロックへのイベントの発生を通知するためのイベント変
数をもとにイベントの有無を検出し、イベント有りのと
きのみイベント駆動型ファンクションブロックを起動す
るようにしたから、イベント駆動型のファンクションブ
ロックを容易且つ的確なタイミングで起動させることが
できると共に、プログラムの可読性を向上させることが
できる。
【0105】また、本発明の請求項3に係る発明によれ
ば、イベント駆動型ファンクションブロックを実現する
ためのソースプログラムをコンパイルする際に、イベン
ト変数を参照する処理が全て終了したことを意味する処
理を検索し、この処理の直前に、前記イベント変数をイ
ベント無しに設定する処理を追加するようにしたから、
ソースプログラムには、イベント入力変数をイベント無
しに設定する処理を設ける必要がなく、イベント駆動型
ファンクションブロックのソースプログラムが冗長とな
ることを回避することができる。
【0106】また、本発明の請求項4に係る発明によれ
ば、イベント駆動型制御プログラムをコンパイルする際
に、上位処理手段においてイベント駆動型ファンクショ
ンブロックへのイベントの発生を通知する通知元のイベ
ント変数を参照する処理が全て終了したことを意味する
処理を検索し、この処理の直後に、前記通知元のイベン
ト変数をイベント無しに設定する処理を追加するように
したから、イベント駆動型制御プログラムのソースプロ
グラムに、前記通知元のイベント変数をイベント無しに
設定する処理を設ける必要がなく、イベント駆動型制御
プログラムのソースプログラムが冗長となることを回避
することができる。
【0107】また、本発明の請求項5に係る発明によれ
ば、上位処理手段において基本処理手段に対してイベン
ト駆動型ファンクションブロックの起動指示を行う際
に、前記イベント駆動型ファンクションブロックにイベ
ントを通知するための予め設定された通知元のイベント
変数を固定領域に複写し、基本処理手段によって固定領
域を参照しイベント有りが設定されいるときにのみ指定
されたイベント駆動型ファンクションブロックを起動す
るようにしたから、上位処理手段においてイベント有無
の判断を行う必要はなく上位処理手段の処理を簡略化す
ることができる。また、例えばワード単位等固定領域単
位でイベントの有無を検出することによって、基本処理
手段では、イベント有無の検出を容易に行うことができ
る。
【0108】また、請求項6に係る発明によれば、基本
処理手段でイベント駆動型ファンクションブロックを起
動した後、前記上位処理手段に復帰するための復帰処理
を行うと共に、基本処理手段が起動したイベント駆動型
ファンクションブロックの固定領域を基本処理手段によ
ってイベント無しに設定するようにしたから、上位処理
手段において固定領域をイベント無しに設定する処理を
行う必要がなく、その分、上位処理手段の処理を簡略す
ることができその可読性を向上させることができる。
【0109】また、請求項7に係る発明によれば、起動
が指示されたイベント駆動型ファンクションブロックで
必要とするデータ情報を、このデータ情報が記録された
記録領域からイベント駆動型ファンクションブロックで
参照するためのデータ情報入力領域に複写する際に、イ
ベント有りに設定されたイベント変数で必要とするデー
タ情報のみを、データ情報入力領域に複写するようにし
たから、不要なデータ情報を伝送することを回避し、デ
ータ伝送に要する処理時間の短縮を図ることができる。
【0110】また、請求項8乃至10に係る発明によれ
ば、イベント駆動型ファンクションブロックで参照する
情報を格納するための入力変数領域とこの入力変数領域
用のバッファ領域とを設け、上位処理手段はバッファ領
域に所定の情報を複写し、基本処理手段がイベント駆動
型ファンクションブロックを起動する際にバッファ領域
の情報を入力変数領域に複写し、イベント駆動型ファン
クションブロックでは入力変数領域を参照するようにし
たから、イベント駆動型ファンクションブロックが処理
実行中に、上位処理手段がイベント駆動型ファンクショ
ンブロックが参照するための情報の更新を行ったとして
も、イベント駆動型ファンクションブロックが参照して
いる情報が更新されることを回避することができ、情報
の一意性を確保することができる。
【0111】特に、イベント変数に応じた処理を実行す
る際に必要とするデータ情報を格納するためのデータ情
報用バッファ領域を、データ情報の送信元のこのデータ
情報の出力側に設けることによって、イベント駆動型フ
ァンクションブロックに二重に記録領域を設ける必要が
ないから、メモリ効率を向上させることができる。ま
た、請求項11及び12に係る発明によれば、イベント
変数を格納するための固定領域用のバッファ領域を設
け、上位処理手段はバッファ領域にイベント変数を複写
し、基本処理手段はバッファ領域の情報を固定領域に複
写した後、固定領域を参照してイベントの有無を検出す
るようにしたから、イベント駆動型ファンクションブロ
ックが処理実行中に、上位処理手段がイベント変数を更
新したとしても、イベント駆動型ファンクションブロッ
クが参照しているイベント変数が更新されることを回避
することができ、データの一意性を確保することができ
る。
【0112】特に、基本処理手段はバッファ領域の情報
を固定領域に複写した後、前記バッファ領域をイベント
無しに設定することによって、イベント駆動型ファンク
ションブロックに通知されたイベント変数をイベント無
しに設定する処理を設ける必要がなくその分、イベント
駆動型ファンクションブロックを簡略化することができ
る。また、請求項13に係る発明によれば、上位処理手
段がイベント駆動型ファンクションブロックを起動を指
示する際にイベント駆動型ファンクションブロックで参
照すべきイベント変数をバッファ領域に複写し、基本処
理手段がバッファ領域の情報を固定領域に複写し、この
固定領域を参照してイベント有りがを検出したときのみ
指示されたイベント駆動型ファンクションブロックを起
動し、ファンクションブロックは起動時にそのイベント
出力をイベント無しに設定するようにしたから、このイ
ベント出力をイベント無しに設定する処理を、上位処理
手段或いは基本処理手段で行う必要がなく、イベント駆
動型ファンクションブロック内での閉じた処理とするこ
とができる。
【0113】また、請求項14に係る発明によれば、イ
ベント有りを検出したときセットし、バッファ領域から
の複写が終了したときにリセットする起動フラグとイベ
ント駆動型ファンクションブロックが実行中であるとき
にセット状態に維持する実行中フラグとを設け、起動フ
ラグがセットされ且つ実行中フラグがリセットされてい
るときに、前記複写を行った後、イベント駆動型ファン
クションブロックを起動するようにしたから、複数のイ
ベント駆動型ファンクションブロックが起動されること
を回避することができる。
【0114】さらに、請求項15に係る発明によれば、
上位処理手段がイベント駆動型ファンクションブロック
を起動を指示する際にイベント駆動型ファンクションブ
ロックで参照すべきイベント変数をバッファ領域に複写
し、基本処理手段がバッファ領域の情報を固定領域に複
写し、この固定領域を参照してイベント有りがを検出し
たときのみ指示されたイベント駆動型ファンクションブ
ロックを起動するようにしたイベント駆動型制御プログ
ラムをコンパイルする際に、ファンクションブロックの
機能を実現するための処理の開始位置に、イベント駆動
型ファンクションブロックのイベント出力をイベント無
しに設定する処理を追加するようにしたから、イベント
駆動型制御プログラムのソースプログラムに前記イベン
ト駆動型ファンクションブロックのイベント出力をイベ
ント無しに設定する処理を設ける必要はなく、その分、
イベント駆動型制御プログラムを簡略化することができ
可読性を向上させることができる。
【図面の簡単な説明】
【図1】本発明を適用したイベント駆動型制御システム
の一例を示す構成図である。
【図2】データ型としてイベントを定義する場合の変数
宣言の一例である。
【図3】イベント駆動型ファンクションブロックの一例
である。
【図4】図3のファンクションブロックの内部構造を示
すソースプログラムの一例である。
【図5】イベント駆動型のファンクションブロックFB
を接続して構成したプログラムの一例である。
【図6】図5の上位プログラム47におけるイベント伝
達に関する部分のソースプログラムの一例である。
【図7】第2の実施の形態におけるイベント駆動型ファ
ンクションブロックの内部構造を示すソースプログラム
の一例である。
【図8】第2の実施の形態におけるコンパイラ2のコン
パイル時の処理手順の一例を示すフローチャートであ
る。
【図9】第2の実施の形態の動作説明に供する説明図で
ある。
【図10】第3の実施の形態における上位プログラム4
7のイベント伝達に関する部分のソースプログラムの一
例である。
【図11】第3の実施の形態におけるコンパイラ2のコ
ンパイル時の処理手順の一例を示すフローチャートであ
る。
【図12】第4の実施の形態におけるイベント駆動型フ
ァンクションブロックのインスタンスの構成図である。
【図13】第4の実施の形態における上位プログラム4
7のイベント伝達に関する部分のソースプログラムの一
例である。
【図14】第4の実施の形態における、基本処理プログ
ラムOSのファンクションブロック起動時の処理の一例
を示すフローチャートである。
【図15】第5の実施の形態における対応テーブル作成
処理の処理手順の一例を示すフローチャートである。
【図16】対応設定画面の一例である。
【図17】対応テーブルTの一例である。
【図18】第5の実施の形態における、上位プログラム
のデータ転送時の処理の処理手順の一例を示すフローチ
ャートである。
【図19】第6の実施の形態におけるイベント駆動型フ
ァンクションブロックのインスタンスの構成図である。
【図20】第6の実施の形態における、基本処理プログ
ラムのファンクションブロックFB起動時の処理の処理
手順の一例を示すフローチャートである。
【図21】第6の実施の形態の動作説明に供する説明図
である。
【図22】第7の実施の形態におけるイベント駆動型フ
ァンクションブロックのインスタンスの構成図である。
【図23】第7の実施の形態の動作説明に供する説明図
である。
【図24】イベント出力変数のクリア処理をファンクシ
ョンブロック内で行う場合の、ファンクションブロック
の内部構造の一例である。
【図25】入力データ用のバッファを前段のファンクシ
ョンブロックに設けた場合の概念図である。
【図26】第8の実施の形態の動作説明に供する説明図
である。
【図27】従来のファンクションブロックFBの一例で
ある。
【図28】図27のファンクションブロックFBの内部
構造の一例である。
【図29】ファンクションブロックFBを用いてシステ
ム制御プログラムを作成した場合のアプリケーションプ
ログラムの概念図である。
【符号の説明】
1 プログラミングツール 11 入力装置 12 表示装置 13 記録媒体 14 処理装置 2 コンパイラ 3 伝送装置 5 制御装置 61 入力変数領域 61a イベント入力領域 61b データ入力領域 62 内部変数領域 63 出力変数領域 71 入力バッファ領域 71a イベント入力領域 71b データ入力領域 72 入力変数領域 72a イベント入力領域 72b データ入力領域 73 内部変数領域 74 出力変数領域 101a、102a、103a バッファ FB ファンクションブロック OS 基本処理プログラム T 対応テーブル
フロントページの続き Fターム(参考) 5B076 AB15 DA01 DA04 5B081 CC41 5B098 GA04 GC14

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 イベントの発生が通知されたとき前記イ
    ベントに対応する処理を実行するイベント駆動型ファン
    クションブロックの起動方法であって、 前記イベントの発生の有無を表す2値のデータ型を定義
    し、前記イベント駆動型ファンクションブロックにイベ
    ントの発生を通知するためのイベント変数を前記2値の
    データ型で設定し、 前記イベント駆動型ファンクションブロックへのイベン
    トの通知元のイベント変数がイベント有りに設定されて
    いるときに当該イベントの通知先のイベント駆動型ファ
    ンクションブロックのイベント変数をイベント有りに設
    定すると共に前記イベント駆動型ファンクションブロッ
    クを起動し、 その後前記イベント有りが検出された前記通知元におけ
    るイベント変数をイベント無しに設定するようにしたこ
    とを特徴とするイベント駆動型ファンクションブロック
    の起動方法。
  2. 【請求項2】 イベントの発生が通知されたとき前記イ
    ベントに対応する処理を実行するイベント駆動型ファン
    クションブロックと、 当該イベント駆動型ファンクションブロックの起動指示
    を行う上位処理手段と、 当該上位処理手段で指示されたイベント駆動型ファンク
    ションブロックを起動する基本処理手段と、を備えたイ
    ベント駆動型制御装置であって、 前記イベントの有無を表す2値のデータ型を定義し、前
    記イベント駆動型ファンクションブロックにイベントの
    発生を通知するためのイベント変数を前記2値のデータ
    型で設定し、 前記上位処理手段は、前記イベント駆動型ファンクショ
    ンブロックへのイベントの通知元のイベント変数に基づ
    いてイベントの有無を検出するイベント有無検出手段
    と、 当該イベント有無検出手段でイベント有りを検出したと
    き当該イベントの通知先のイベント駆動型ファンクショ
    ンブロックのイベント変数をイベント有りに設定し且つ
    前記基本処理手段に前記イベント駆動型ファンクション
    ブロックの起動を指示するイベント伝達手段と、 当該イベント伝達手段で前記起動を指示した後、前記イ
    ベント有無検出手段でイベント有りを検出した前記通知
    元におけるイベント変数をイベント無しに設定するイベ
    ントリセット手段と、を備えることを特徴とするイベン
    ト駆動型制御装置。
  3. 【請求項3】 イベントの有無を表す2値のデータ型の
    イベント変数を有し、当該イベント変数にイベント有り
    が設定されたときに所定の処理を実行した後、前記イベ
    ント変数をイベント無しに設定するようになっているイ
    ベント駆動型ファンクションブロックを実現するための
    ソースプログラムを、コンピュータで実行可能な機械語
    に変換するためのイベント駆動型ファンクションブロッ
    ク用コンパイラであって、 前記イベント駆動型ファンクションブロックにおいて、
    前記イベント変数を参照する処理が全て終了したことを
    意味する処理を検索するイベント入力参照終了検索手段
    と、 前記機械語への変換を行う際に、前記イベント駆動型フ
    ァンクションブロックの、前記イベント入力参照終了検
    索手段で検索した処理の直前に、前記イベント入力変数
    をイベント無しに設定する処理を挿入するイベント入力
    リセット挿入手段と、を備えることを特徴とするイベン
    ト駆動型ファンクションブロック用コンパイラ。
  4. 【請求項4】 イベントの発生が通知されたとき前記イ
    ベントに対応する処理を実行するイベント駆動型ファン
    クションブロックと、当該イベント駆動型ファンクショ
    ンブロックを起動する基本処理手段に対し起動指示を行
    う上位処理手段と、を備え、 且つ、前記イベントの有無を表す2値のデータ型を定義
    し、前記イベント駆動型ファンクションブロックにイベ
    ントの発生を通知するためのイベント変数を前記2値の
    データ型で設定し、 前記上位処理手段は、前記イベント駆動型ファンクショ
    ンブロックへのイベントの通知元のイベント変数に基づ
    いてイベントの有無を検出し、前記イベント駆動型ファ
    ンクションブロックへのイベントが有るとき当該イベン
    トの通知先のイベント駆動型ファンクションブロックの
    イベント変数をイベント有りに設定した後、前記イベン
    ト有りを検出した前記通知元におけるイベント変数をイ
    ベント無しに設定するようになっているイベント駆動型
    制御プログラムのソースプログラムを、コンピュータで
    実行可能な機械語に変換するためのイベント駆動型制御
    プログラム用コンパイラであって、 前記上位処理手段において前記通知元のイベント変数を
    参照する処理が全て終了したことを意味する処理を検索
    するイベント出力参照終了検索手段と、 前記機械語への変換を行う際に、前記イベント出力参照
    終了検索手段で検出した処理の直後に、前記通知元にお
    けるイベント変数をイベント無しに設定する処理を挿入
    するイベント出力リセット挿入手段と、を備えることを
    特徴とするイベント駆動型制御プログラム用コンパイ
    ラ。
  5. 【請求項5】 イベントの発生が通知されたとき前記イ
    ベントに対応する処理を実行するイベント駆動型ファン
    クションブロックと、 当該イベント駆動型ファンクションブロックの起動指示
    を行う上位処理手段と、 当該上位処理手段で指示されたイベント駆動型ファンク
    ションブロックを起動する基本処理手段と、を備えたイ
    ベント駆動型制御装置であって、 前記イベントの有無を表す2値のデータ型を定義し、前
    記イベント駆動型ファンクションブロックにイベントの
    発生を通知するためのイベント変数を前記2値のデータ
    型で設定すると共に、前記イベント駆動型ファンクショ
    ンブロックのインスタンスに前記イベント変数を格納す
    るための固定領域を設け、 前記上位処理手段は、前記基本処理手段に対して前記起
    動指示を行う際に、前記イベント駆動型ファンクション
    ブロックにイベントを通知するための予め設定された通
    知元のイベント変数を前記固定領域に複写する複写手段
    と、 当該複写手段での複写後に、前記通知元のイベント変数
    をイベント無しに設定するイベント出力リセット手段
    と、を備え、 前記基本処理手段は起動が指示されたイベント駆動型フ
    ァンクションブロックの前記固定領域を参照してイベン
    トの有無を検出するイベント有無検出手段と、 当該イベント有無検出手段でイベント有りを検出したと
    きにのみ指示されたイベント駆動型ファンクションブロ
    ックを起動する起動手段と、を備えることを特徴とする
    イベント駆動型制御装置。
  6. 【請求項6】 前記基本処理手段は、前記イベント駆動
    型ファンクションブロックによる処理終了後、当該イベ
    ント駆動型ファンクションブロックから前記上位処理手
    段による処理に復帰するための復帰処理を行うと共に、
    起動したイベント駆動型ファンクションブロックの前記
    固定領域をイベント無しに設定するようになっているこ
    とを特徴とする請求項5記載のイベント駆動型制御装
    置。
  7. 【請求項7】 前記上位処理手段は、起動が指示された
    イベント駆動型ファンクションブロックで必要とするデ
    ータ情報を、当該データ情報が格納された記録領域から
    前記イベント駆動型ファンクションブロックが参照する
    ためのデータ情報入力領域に複写するようになっている
    イベント駆動型制御装置であって、 前記イベント駆動型ファンクションブロックに通知され
    るイベント変数と、当該イベント変数がイベント有りの
    ときに前記イベント駆動型ファンクションブロックで必
    要とするデータ情報との対応を表す入力対応情報、及
    び、前記イベント駆動型ファンクションブロックに通知
    されるイベント変数と、当該イベント変数がイベント有
    りのときに前記イベント変数の通知元が出力すべきデー
    タ情報との対応を表す出力対応情報の少なくとも何れか
    一方を有し、 前記上位処理手段は、前記イベント駆動型ファンクショ
    ンブロックの起動指示を行う際に、前記入力対応情報及
    び出力対応情報の少なくとも何れか一方を参照し、 起動が指示されたイベント駆動型ファンクションブロッ
    クへの、イベント有りに設定されたイベント変数に対応
    するデータ情報のみを前記データ情報入力領域に複写す
    るようになっていることを特徴とする請求項2、請求項
    5及び請求項6の何れかに記載のイベント駆動型制御装
    置。
  8. 【請求項8】 前記イベント駆動型ファンクションブロ
    ックで参照する情報を記憶するための入力変数領域及び
    当該入力変数領域用のバッファ領域を備え、 前記上位処理手段は前記バッファ領域に所定の情報を複
    写し、 前記基本処理手段は前記イベント駆動型ファンクション
    ブロックを起動する際に前記バッファ領域の情報を前記
    入力変数領域に複写し、 前記イベント駆動型ファンクションブロックは前記入力
    変数領域に格納された情報を参照するようになっている
    ことを特徴とする請求項2記載のイベント駆動型制御装
    置。
  9. 【請求項9】 前記バッファ領域は、前記イベント駆動
    型ファンクションブロックのインスタンスに設けられて
    いることを特徴とする請求項8記載のイベント駆動型制
    御装置。
  10. 【請求項10】 前記イベント駆動型ファンクションブ
    ロックで参照する情報のうち、前記イベント変数を除く
    データ情報を格納するためのバッファ領域は、前記デー
    タ情報の送信元の前記データ情報の出力側に設けられて
    いることを特徴とする請求項8記載のイベント駆動型制
    御装置。
  11. 【請求項11】 前記固定領域用のバッファ領域を備
    え、 前記上位処理手段は前記バッファ領域に前記イベント変
    数を複写し、 前記基本処理手段は、起動が指示されたイベント駆動型
    ファンクションブロックの前記バッファ領域の情報を前
    記固定領域に複写した後、当該固定領域を参照して前記
    イベントの有無を検出するようになっていることを特徴
    とする請求項5記載のイベント駆動型制御装置。
  12. 【請求項12】 前記基本処理手段は、前記バッファ領
    域の情報を前記固定領域に複写した後、前記バッファ領
    域にイベント無しを設定するようになっていることを特
    徴とする請求項11記載のイベント駆動型制御装置。
  13. 【請求項13】 イベントの発生が通知されたとき前記
    イベントに対応する処理を実行するイベント駆動型ファ
    ンクションブロックと、 当該イベント駆動型ファンクションブロックの起動指示
    を行う上位処理手段と、 当該上位処理手段で指示されたイベント駆動型ファンク
    ションブロックを起動する基本処理手段と、を備えたイ
    ベント駆動型制御装置であって、 前記イベントの有無を表す2値のデータ型を定義し、前
    記イベント駆動型ファンクションブロックにイベントの
    発生を通知するためのイベント変数を前記2値のデータ
    型で設定すると共に、前記イベント駆動型ファンクショ
    ンブロックのインスタンスに前記イベント変数を格納す
    るための固定領域及び当該固定領域用のバッファ領域を
    設け、 前記上位処理手段は、前記イベント駆動型ファンクショ
    ンブロックの起動を指示する際に、当該イベント駆動型
    ファンクションブロックで参照すべきイベント変数を前
    記バッファ領域に複写する複写手段を備え、 前記基本処理手段は、起動が指示されたイベント駆動型
    ファンクションブロックの前記バッファ領域の情報を前
    記固定領域に複写し、当該固定領域を参照してイベント
    の有無を検出するイベント有無検出手段と、 当該イベント有無検出手段でイベント有りを検出したと
    きにのみ指示されたイベント駆動型ファンクションブロ
    ックを起動する起動手段とを備え、 前記ファンクションブロックは、起動時に、当該ファン
    クションブロックのイベント出力をイベント無しに設定
    するイベント出力リセット手段を備えることを特徴とす
    るイベント駆動型制御装置。
  14. 【請求項14】 前記基本処理手段は、前記イベント有
    りを検出したときセットし前記バッファ領域からの前記
    複写が終了したときリセットする起動フラグと、前記イ
    ベント駆動型ファンクションブロックが実行中であると
    きにセット状態に維持する実行中フラグと、を備え、 前記起動フラグがセットされ且つ前記実行中フラグがリ
    セットされているときに前記複写を行った後前記イベン
    ト駆動型ファンクションブロックを起動するようになっ
    ていることを特徴とする請求項8乃至13の何れかに記
    載のイベント駆動型制御装置。
  15. 【請求項15】 イベントの発生が通知されたとき前記
    イベントに対応する処理を実行するイベント駆動型ファ
    ンクションブロックと、当該イベント駆動型ファンクシ
    ョンブロックの起動指示を行う上位処理手段と、当該上
    位処理手段で指示されたイベント駆動型ファンクション
    ブロックを起動する基本処理手段と、を備え、且つ、前
    記イベントの有無を表す2値のデータ型を定義し、前記
    イベント駆動型ファンクションブロックにイベントの発
    生を通知するためのイベント変数を前記2値のデータ型
    で設定すると共に、前記イベント駆動型ファンクション
    ブロックのインスタンスに前記イベント変数を格納する
    ための固定領域及び当該固定領域用のバッファ領域を設
    け、 前記上位処理手段は、前記イベント駆動型ファンクショ
    ンブロックの起動を指示する際に、当該イベント駆動型
    ファンクションブロックで参照すべきイベント変数を前
    記バッファ領域に複写し、 前記基本処理手段は、起動が指示されたイベント駆動型
    ファンクションブロックの前記バッファ領域の情報を前
    記固定領域に複写し、当該固定領域を参照してイベント
    の有無を検出し当該イベント有無検出手段でイベント有
    りを検出したときにのみ指示されたイベント駆動型ファ
    ンクションブロックを起動するようになっているイベン
    ト駆動型制御プログラムのソースプログラムを、コンピ
    ュータで実行可能な機械語に変換するためのイベント駆
    動型制御プログラム用コンパイラであって、 前記機械語に変換する際に、前記ファンクションブロッ
    クを実現するための処理の開始位置に、当該ファンクシ
    ョンブロックのイベント出力をイベント無しに設定する
    処理を挿入するイベント出力リセット挿入手段を備える
    ことを特徴とするイベント駆動型制御プログラム用コン
    パイラ。
JP2002066760A 2002-03-12 2002-03-12 イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ Pending JP2003263328A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002066760A JP2003263328A (ja) 2002-03-12 2002-03-12 イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002066760A JP2003263328A (ja) 2002-03-12 2002-03-12 イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ

Publications (1)

Publication Number Publication Date
JP2003263328A true JP2003263328A (ja) 2003-09-19

Family

ID=29198398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002066760A Pending JP2003263328A (ja) 2002-03-12 2002-03-12 イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ

Country Status (1)

Country Link
JP (1) JP2003263328A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016062126A (ja) * 2014-09-12 2016-04-25 富士電機株式会社 プログラムコンバート装置
JP2021039668A (ja) * 2019-09-05 2021-03-11 株式会社コマースロボティクス 情報処理システム、情報処理方法及び情報処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016062126A (ja) * 2014-09-12 2016-04-25 富士電機株式会社 プログラムコンバート装置
JP2021039668A (ja) * 2019-09-05 2021-03-11 株式会社コマースロボティクス 情報処理システム、情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
WO2020134633A1 (zh) 一种应用程序的开发方法、装置及集成开发工具
US5950000A (en) Integrated of a third party software tool
JP2007511834A (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
JP4426492B2 (ja) プログラマブル・ターミナル・システム
JP2003263328A (ja) イベント駆動型ファンクションブロックの起動方法、イベント駆動型制御装置、イベント駆動型ファンクションブロック用コンパイラ及びイベント駆動型制御プログラム用コンパイラ
CN108399068B (zh) 函数程序持久化的方法、电子设备及存储介质
JP2005108082A (ja) デバイスドライバのインターフェース方法
JP2004280299A (ja) コントローラ、開発装置及びシステム
JPH0410081B2 (ja)
JP2002268896A (ja) 制御プログラム作成方法とその装置
JP6115063B2 (ja) プログラマブルコントローラの周辺装置
JPH03127122A (ja) データ処理装置における演算処理方式
US11487564B1 (en) Terminal shell switching
JP7466806B1 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
WO2022190417A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
JP3341064B2 (ja) 制御プログラム作成装置
WO2022190418A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
JP6901430B2 (ja) 制御装置及び編集装置
JP2000020297A (ja) 制御装置
JP2002358102A (ja) プログラマブル・ロジック・コントローラのプログラミング装置
JP3145090B2 (ja) 情報反映装置
JP3130421B2 (ja) プログラム解析方法および装置
JP2928128B2 (ja) Cpu周辺装置のシミュレーション方式およびその方法
CN116467021A (zh) 一种用户界面运行方法、装置、设备及存储介质
JPS6051736B2 (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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061226