(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラを動作させるプログラムを制御フロー図示表現で作成させるプログラミング装置において、
前記プログラムをメイン処理の制御フローとサブ処理の制御フローとに分けて制御フロー図示表現で作成させる制御フロー作成手段と、
該制御フロー作成手段で作成された前記メイン処理の制御フロー内に、特定の事象が生じたときに前記サブ処理に遷移することを許可する範囲である割込範囲を、図示表現で指定させる割込範囲指定手段と、
該割込範囲指定手段で２つ以上の割込範囲が指定された場合に、該割込み範囲が前記メイン処理の制御フロー内のある要素に対して重複またはネスティングしていることを判別する判別手段と、
を有することを特徴とするプログラミング装置。
【請求項２】
上記請求項１記載のプログラミング装置によって作成されたプログラムを実行するプログラマブルコントローラ。
【請求項３】
プログラマブルコントローラを動作させるプログラムを制御フロー図示表現で作成させるプログラミング装置における割込処理記述方法において、
前記プログラムをメイン処理の制御フローとサブ処理の制御フローとに分けて制御フロー図示表現で作成させ、
該作成された前記メイン処理の制御フロー内に、特定の事象が生じたときに前記サブ処理に遷移することを許可する範囲である割込範囲を、図示表現で指定させ、
２つ以上の割込範囲が指定された場合に、該割込み範囲が前記メイン処理の制御フロー内のある要素に対して重複またはネスティングしていることを判別することを特徴とする割込処理記述方法。
【請求項４】
コンピュータにおいて用いられたとき、
プログラマブルコントローラを動作させるプログラムをメイン処理の制御フローとサブ処理の制御フローとに分けて制御フロー図示表現で作成させる機能と、
作成された前記メイン処理の制御フロー内に、特定の事象が生じたときに前記サブ処理に遷移することを許可する範囲である割込範囲を、図示表現で指定させる機能と、
２つ以上の割込範囲が指定された場合に、該割込み範囲が前記メイン処理の制御フロー内のある要素に対して重複またはネスティングしていることを判別する機能と、
を実現させるためのプログラムを前記コンピュータが読取可能な形式で記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シーケンス制御プログラムを作成する装置に係わり、特にこのプログラムにおける割込処理の記述方法に関する。
【０００２】
【従来の技術】
従来より、例えばプログラマブル・コントローラ（以後、ＰＣと記述する）において、目的とするシーケンス制御プログラムを作成する為のプログラミング・サポート・ツール（プログラミング装置）が存在する。このようなプログラミング装置は、例えば、ＣＲＴ、ＣＰＵ、メモリ、入力部（キーボード、タッチペン等）等を有し、例えばラダー図やＦＢ（ファンクションブロック）図のような図示表現により、あるいは命令語を使用して、プログラムの作成を行わせるものである。
【０００３】
シーケンス制御プログラムにおいて、割込処理は、例えば制御対象機器の動作を監視（モニタ）して異常動作状態を検出すると、異常ランプを点灯させるという動作を行わせたい場合に記述される。これは、メイン制御フロープログラムの割込範囲内で割込条件が発生すると、メイン制御フロープログラムの実行を中断してサブ制御フロープログラムを実行し、このサブ制御フロープログラムの処理（割込処理）終了後、再びメイン制御フロープログラムに戻る処理を行わせるものである。上記割込範囲は、メイン制御フロープログラムにおいて、割込みの実行を禁止する禁止命令（例えば“ＤＩ”）と割込みの実行禁止を解除する許可命令（例えば“ＥＩ”）とを記述することによって規定される割込み禁止範囲以外のプログラム範囲である。そして、割込範囲内の処理実行中、例えばモータの回転制御中に上記異常状態が検出されると、割込みが発生してサブ制御フロープログラムに処理が遷移する。そして、このサブ制御フロープログラムの処理（割込処理）によりモータが停止し、また異常ランプが点灯する。
【０００４】
上記割込処理後は、メイン制御フロープログラムに処理が遷移し、このメイン制御フロープログラムの割込まれた次の位置から処理を実行するようにしていた。
【０００５】
【発明が解決しようとする課題】
上述したように、従来のプログラミング装置では、割込範囲を設定する為には、割込みの実行を禁止する禁止命令と割込みの実行禁止を解除する許可命令とを記述しなければならず、プログラム作成作業が面倒であり、また一目で割込範囲が分かるようにはなっていなかった。
【０００６】
更に、簡単な操作で割込範囲の重複指定、またはネスティング指定を行えて、これら指定した割込範囲が一目で分かるようにはなっていなかった。
また、サブ制御フロープログラムからメイン制御フロープログラムの任意の位置に戻ることができなかった。
【０００７】
本発明の課題は、簡単な操作で割込範囲の指定が行え、また指定した割込範囲が一目で分かるグラフィカル・ユーザ・インタフェースを有し、更にサブ制御フロープログラムからメイン制御フロープログラムの任意の位置に戻ることが可能なプログラムを作成できるプログラミング装置、及びこのプログラミング装置における割込処理記述方法を提供することである。
【０００８】
【課題を解決するための手段】
本発明のプログラミング装置は、プログラマブルコントローラを動作させるプログラムを制御フロー図示表現で作成させるプログラミング装置において、前記プログラムをメイン処理の制御フローとサブ処理の制御フローとに分けて制御フロー図示表現で作成させる制御フロー作成手段と、該制御フロー作成手段で作成された前記メイン処理の制御フロー内に、特定の事象が生じたときに前記サブ処理に遷移することを許可する範囲である割込範囲を、図示表現で指定させる割込範囲指定手段と、該割込範囲指定手段で２つ以上の割込範囲が指定された場合に、該割込み範囲が前記メイン処理の制御フロー内のある要素に対して重複またはネスティングしていることを判別する判別手段とを有する。
【０００９】
上記プログラミング装置によれば、プログラムをメイン処理の制御フローとサブ処理の制御フローとに分けて図示表現で作成させ、この図示表示されるメイン処理の制御フロー内に割込範囲を図示表現で指定させるようにしているので、オペレータ等は簡単な操作で割込範囲の指定が行え、また指定した割込範囲が一目で分かる。更に、上記割込範囲指定手段で２つ以上の割込範囲が指定された場合に、該割込み範囲が前記メイン処理の制御フロー内のある要素に対して重複またはネスティングしていることを判別するようにしているので、簡単な操作で割込範囲の重複指定またはネスティング指定を行えて、これら指定した割込範囲が一目で分かるようになる。
【００１２】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。
図１は、本実施形態によるプログラミング装置の構成を示すブロック図である。
【００１３】
同図において、ＣＰＵ１は、プログラミング装置のシステム全体を制御する中央処理装置である。
入力部２は、例えばキーボード、マウスあるいはタッチパネル等である。
【００１４】
ＲＡＭ３は、オペレータ等によって入力設定される制御フロープログラムの設定内容等が一時的に記憶される記憶領域を有するメモリである。
表示装置４は、後述するＧＵＩ（グラフィカル・ユーザ・インタフェース）画面を表示するディスプレイである。
【００１５】
記憶装置５は、少なくとも本実施例による制御フロープログラム作成の為のアプリケーションプログラムが記憶されている例えばＨＤＤ（ハードディスク装置）である。あるいは、例えばＦＤＤ（フロッピー・ディスク・ドライブ）、ＣＤ−ＲＯＭドライブ等の記憶媒体駆動装置であり、記憶媒体５ａに記憶されているプログラム、データ等の読み出し、あるいは書込み等をＣＰＵ１の制御によって実行するものである。記憶媒体５ａには、少なくとも本実施例による制御フロープログラム作成の為のアプリケーションプログラムが、記憶装置５で読み出し可能であり且つＣＰＵ１により実行可能な形式で記憶されている。また、記憶媒体５ａは、装置本体とは独立しており、持ち運び可能な可搬記憶媒体である。記憶媒体５ａは、例えばＦＤ（フロッピーディスク）である。あるいは、ＭＯ（光磁気ディスク）、ＣＤ−ＲＯＭ、メモリカード等であっても良い。これらの記憶媒体に、上記アプリケーションプログラムのプログラムコードが、磁気的、光磁気的、又は電気的に記憶されている。
【００１６】
図２は、本実施形態による制御フロープログラム作成処理の全体を説明するメイン・フローチャートである。尚、同図に示すステップＳ１、Ｓ２、Ｓ３、及びＳ４の処理の詳細については、後に図面を参照して詳細に説明する。
【００１７】
図２に示す処理手順により、オペレータ等により制御フロープログラムの作成が行われる。制御フロープログラムの作成については、例えば図５に示すような図示表現によるプログラム入力方式が採られている。これについては、本出願の出願人は、特願平８−８８５９８号の発明を提案している。この特願平８−８８５９８号の発明は、例えば、“部品”（表示制御部によって表示部に表示される）と、動作指令（「回転」指令と「停止」指令）と、動作状態（「故障」状態）とによって制御プログラムを記述できるようにすることで、記述した制御プログラムの表現から実際の機器の動作が直感的にイメージできるような制御プログラムの記述方法を提案するものである。
【００１８】
上記制御フロープログラムの作成は、まず、制御処理内容をメイン制御フロープログラムとサブ制御フロープログラムとに分けて記述する（ステップＳ１）。メイン制御フロープログラム、サブ制御フロープログラムは、時系列的に実行される複数の“要素”より成る。
【００１９】
メイン／サブの各制御フロープログラムの作成が完了すると、次に、例えば図５に示すような表示装置４の表示画面上に表示されているメイン制御フロープログラムにおいて、例えば図７に示すように割込範囲（破線で囲まれた矩形領域）２６を指定させる。また、図８に示すような入力画面の表示に切換えて、この入力画面を介して遷移先（サブ制御フロープログラム名称）を記述する（ステップＳ２）。続いて、上記割込範囲に対する割込条件を記述する（ステップＳ３）。
【００２０】
次に、サブ制御フロープログラムからメイン制御フロープログラムへの戻り位置を指定する（ステップＳ４）。
そして、割込範囲の指定操作を終了するか否かを判定する（ステップＳ５）。引き続き他の割込範囲の指定を行う場合には（ステップＳ５、ＮＯ）、上記ステップＳ２〜ステップＳ４の処理を繰り返し行う。
【００２１】
上記のようにしてオペレータ等によって設定入力された割込範囲、割込条件等の情報は、後述する図３に示す各要素毎の割込情報として、上記各制御フロープログラム中に埋め込まれる。各要素とこれに対応する各割込情報とは、要素番号によってリンクする。すなわち、特に図示しないが、図３（ａ）に示す割込情報は、対応する要素番号の情報を有するものである。
【００２２】
上記割込情報の中の“監視数”のデータは、通常、初期設定値‘１’が設定されているが、以下に説明する処理によって“監視数”のデータが変更される場合がある。
【００２３】
上記割込範囲の指定が終了すると（ステップＳ５、ＹＥＳ）、次に、メイン制御フロープログラムにおいて割込範囲が重複しているか否かを判別する（ステップＳ６）。
【００２４】
重複している場合には（ステップＳ６、ＹＥＳ）、メイン制御フロープログラムにおいて、割込範囲が重複している箇所にある要素が有する割込情報を更新する。すなわち、この要素が有する割込情報の中の“監視数”の情報を、当該要素が含まれる割込範囲の数（例えば２）とする（ステップＳ７）。
【００２５】
次に、割込範囲がネスティング（入れ子構造）しているか否かを判別する（ステップＳ８）。ネスティングしている場合には（ステップＳ８、ＹＥＳ）、メイン制御フロープログラムにおいて、割込範囲がネスティングしている箇所にある要素が有する割込情報を更新する。すなわち、この要素が有する割込情報の中の“監視数”の情報を、当該要素が含まれる割込範囲の数（例えば２）とする（ステップＳ９）。
【００２６】
図３は、図２に示す処理によってメイン制御フロープログラム中及びサブ制御フロープログラム中に埋め込まれる情報を示す図であり、図３（ａ）は割込情報１０、図３（ｂ）は識別情報２０である。
【００２７】
図３（ａ）に示す割込情報１０は、各プログラム要素毎に存在する。
割込情報１０は、その先頭に、その要素において監視する事象の数を示す“監視数”１１の情報を有する。そして、“監視数”１１の数の分だけ、“割込範囲”１２、“範囲名称”１３、“割込条件”１４、“設定値”１５、“サブ制御フロー名称”１６、“メイン制御フロー名称”１７、及び“メイン制御要素番号”１８の各情報からなる割込情報を有する。これらの各情報については、詳しくは後述するが、メイン制御フロープログラムとサブ制御フロープログラムとでは割込情報１０の内容が異なる。例えば、メイン制御フロープログラム中の割込情報１０は上記“メイン制御フロー名称”１７等の情報は有しない。また、サブ制御フロープログラム中の割込情報１０は上記“割込条件”１４、“設定値”１５、“サブ制御フロー名称”１６等の情報は有しない。
【００２８】
尚、割込要素外の要素に対しても図３（ａ）に示す割込情報１０の記憶領域は存在する。但し、割込みが定義されていない要素に対応する記憶領域には、割込情報は格納されていない（未定義となっている）。
【００２９】
図３（ｂ）に示す識別情報２０は、作成される各制御フロープログラムを互いに識別する為の情報であり、メイン制御フロープログラムにおける割込処理発生時に遷移先のサブ制御フロープログラムを識別し、遷移先のサブ制御フロープログラムにおいて戻り先のメイン制御フロープログラムを識別するために用いられる情報である。
【００３０】
識別情報２０は、“フロー種別”２１と“フロー名称”２２の各情報より成る。“フロー種別”２１は、当該制御フロープログラムがメイン／サブのいずれであるかを示し、“フロー名称”２２は当該制御フロープログラムの名称を示す。この識別情報２０は、後述する図５の図示表現プログラム作成に伴って、制御フロープログラム中に埋め込まれる。
【００３１】
以下、図４〜図１３を参照して、図２のフローチャートに示した各処理の詳細を説明する。
図４は、図２のステップＳ１の制御フロープログラム作成手順を説明するフローチャートである。
【００３２】
図５は、図４のフローチャートに従って作成される上述した本出願人による図示表現プログラムの一例（表示装置４の表示画面）の一例を示す図である。
以下、図４及び図５を参照して、図２のステップＳ１の制御フロープログラム作成処理を説明する。
【００３３】
図４において、まずメイン制御フロープログラムの名称を記述する（ステップＳ１１）。次に、メイン制御フロープログラムの処理内容を記述する。（ステップＳ１２）。
【００３４】
図示表現による上記ステップＳ１１、Ｓ１２の処理プログラムの作成は、例えば図５（ａ）に示すように、メイン制御フロープログラムのＳＴＡＲＴ位置にそのフロー名称を記述する。更に、処理内容は、要素Ａ、要素Ｂ、要素Ｃ、及び要素Ｄの各プログラム要素毎に記述する。例えば、要素Ａの処理内容として「モータＡ」、「正転」を記述し、要素Ｂの処理内容として「モータＡ」、「停止」を記述する。ここで、上記各“要素”は上述した特願平８−８８５９８号の発明における“部品”に相当し、「正転」、「停止」、あるいは後述する「逆転」等は“動作指令”である。また、「モータＡ」あるいは後述する「ランプＡ」等は、上記発明における“ラベル名称”に相当する。
【００３５】
同様にして、要素Ｃの処理内容として「モータＡ」、「逆転」を記述し、要素Ｄの処理内容として「モータＡ」、「停止」を記述する。
上記の様にして作成されたメイン制御フロープログラム中には、図３（ｂ）の識別情報２０が埋め込まれる。この場合、“フロー種別”２１のフィールドには‘メイン’が格納される。また、上記ステップＳ１１の処理によって記述された名称が、“フロー名称”２２のフィールドに格納される。
【００３６】
次に、サブ制御フロープログラムの名称を記述する（ステップＳ１３）。続いて、サブ制御フロープログラムの処理内容を記述する。（ステップＳ１４）。
上記処理により、例えば図５（ｂ）に示すように、サブ制御フロープログラムのＳＴＡＲＴ位置にそのフロー名称を記述する。更に、処理内容は、要素Ｅ、要素Ｆの各プログラム要素毎に記述する。例えば、要素Ｅの処理内容として「モータＡ」、「停止」を記述し、要素Ｆの処理内容として「ランプＡ」、「点灯」を記述する。尚、要素Ｆの処理は異常発生を知らせるランプを点灯させるものである。
【００３７】
このサブ制御フロープログラム中にも、上記メイン制御フロープログラムと同様に、識別情報２０が埋め込まれる。
上記のように各制御フロープログラム中に埋め込まれた識別情報２０は、当該制御フロープログラムがＰＣにおいて実行され、割込処理が発生したときに、割込先又は戻り先の制御フロープログラムを識別する為に用いられる。
【００３８】
図６は、図２のステップＳ２の処理（割込範囲の記述）を説明するフローチャートである。
図７は、図５（ａ）に示すように作成したメイン制御フロープログラムに対する割込範囲の指定操作の一例を示す図である。
【００３９】
図８は、図７のように指定した割込範囲の名称等の記述、あるいは後述する割込条件の設定等をオペレータ等に行わせる入力画面（ＧＵＩ）３０の一例を示す図である。
【００４０】
以下、図６、図７、及び図８を参照して割込範囲の記述処理を説明する。
図６において、まず、メイン制御フロープログラム内に割込範囲を指定する（ステップＳ２１）。例えば図７に示すように、表示装置４の表示画面上に表示されているメイン制御フロープログラムに対して、例えばマウス等を用いた範囲指定操作によって、要素Ａ及び要素Ｂを含む範囲２６（図中において破線で囲まれた範囲）を、割込範囲として指定する。
【００４１】
次に、所定のキー操作を行う等して、図８に示すような入力画面３０の表示に切換える。そして、この入力画面３０を介して、上記ステップＳ２１で指定した割込範囲の名称を記述すると共に、この割込範囲内で後述する割込条件を満たす事象が発生したときに遷移すべきサブ制御フロープログラムの名称を記述する（ステップＳ２２）。これらの記述は、それぞれ図８の入力画面３０上の“範囲名称の入力領域”３１、“フロー名称の入力領域”３２に対する入力により行われる。
【００４２】
図９は、図２のステップＳ３の処理（割込条件の記述）を説明するフローチャートである。
同図において、まずオペレータ等によって割込条件の入力指定が行われると（この指定は、図８の入力画面３０上の“条件の入力領域”３３において行われる）、この指定された割込条件の種類を判断する（ステップＳ３１）。
【００４３】
割込条件の種類には、図８の入力画面３０上の“条件の入力領域”３３に示すように、「タイマ」または「イベント」の２種類がある。
「タイマ」は、当該制御フロープログラムをＰＣにおいて実行する際に、割込範囲の先頭からタイマを起動して、タイマが規定時間を越えた場合を割込条件とする割込みである。入力画面３０上の“条件の入力領域”３３において「タイマ」が選択指定された場合、続いて、オペレータ等は入力画面３０上の“時間”３４の入力領域に上記タイマの規定時間を入力する（ステップＳ３２）。「タイマ」の条件は、例えば、モータが正常な動作を行っている場合であれば、要素Ａ、要素Ｂの処理が規定時間内に終るはずであるのに、何等かの異常によって規定時間を過ぎてもモータが正回転を続けている場合等を想定している。
【００４４】
一方、「イベント」は、メイン制御フロープログラムの割込範囲内で（割込範囲内のプログラムを実行中に）、ある外部イベントが発生した場合に対する割込条件である。入力画面３０上の“条件の入力領域”３３において割込条件として「イベント」が指定された場合は、続いて、オペレータ等は、入力画面３０上の“イベント名（アドレス）”３５の入力領域に、例えば外部イベントのプログラマブルコントローラ（ＰＣ）のメモリアドレス（外部イベント発生時の割込処理プログラムの格納先頭アドレス）を入力する（ステップＳ３３）。
【００４５】
上述した図６〜図９の処理に応じて、図７に示すメイン制御フロープログラム内に、指定された割込範囲内のプログラム要素Ａ、要素Ｂの割込情報１０（図３（ａ））が埋め込まれる。この例では、図７に示すように、要素Ａ、要素Ｂに係わる割込範囲は１つであるので、“監視数”１１は‘１’である。尚、あるプログラム要素に対して２つ以上の割込範囲が重複等した場合は、“監視数”１１は‘２’以上となる。これについては後述する。
【００４６】
“割込範囲”１２には、図７に示すように割込範囲が指定されると、この割込範囲の開始／終了位置を検出して、この開始／終了位置を示すデータ（要素番号）が格納される。“範囲名称”１３、“サブ制御フロー名称”１６には、それぞれ、図８の入力画面３０上の“範囲名称の入力領域”３１、“フロー名称の入力領域”３２に入力（記述）された情報が格納される。
【００４７】
“割込条件”１４には、“条件の入力領域”３３において指定されたイベント／タイマのいずれか一方の割込条件が格納される。
“設定値”１５には、“時間の入力領域”３４又は“条件の入力領域”３３において入力されたタイマの設定値又はメモリアドレス等が格納される。
【００４８】
尚、以上の“監視数”１１〜“設定値”１５までの情報は、メイン制御フロープログラム側に埋め込まれる割込情報である。図３（ａ）に示す割込情報１０内の他の情報（サブ制御フロー名称１６〜メイン制御要素番号１８）はサブ制御フロープログラム側に埋め込まれる割込情報である。
【００４９】
図１０は、図２のステップＳ４の処理を説明するフローチャートである。
図１１は、図１０の処理における遷移位置、戻り位置の指定等を行う図示表現プログラムの入力画面を示す。
【００５０】
図１２は、図１０の処理における名称の記述等をオペレータ等に行わせる為の入力画面４０を示す図である。
以下、図１０、図１１、及び図１２を参照して説明する。
【００５１】
図１０において、まず、サブ制御フロープログラム内に、メイン制御フロープログラムへの遷移位置を指定する（ステップＳ４１）。これは、例えば図１１（ｂ）に示すように、サブ制御フロープログラム内に、メイン制御フロープログラムへの遷移位置（戻り位置）を図示表現で入力指定する。同図では、要素Ｆと要素Ｇの間に遷移位置が指定され、更にメイン制御フローにおける戻り位置を示す記号（▽）が図示入力されている。
【００５２】
次に、このメイン制御フロー内の戻り位置を指定するために、上記ステップＳ４１で指定した遷移位置に図６のステップＳ２２で指定した割込範囲名称と、メイン制御フロープログラム内のサブ制御フロープログラムからの戻り位置であるステップ名称とを記述する（ステップＳ４２）。この記述は、例えば入力装置２において所定のキー操作を行う等して、表示装置４の画面を図１２に示す入力画面４０の表示に切換えることにより行われる。
【００５３】
図１２に示す入力画面４０には、「範囲名称：」、「ステップ名称：」の文字列が表示されるとともに、それらの各入力領域である“範囲名称の入力領域”４１、“ステップ名称の入力領域”４２が示される。
【００５４】
「ステップ名称」は、例えば、メイン制御フロープログラム内の要素番号である。
オペレータ等は、各入力領域４１、４２に当該データを入力してから、設定ボタン４３をマウスでクリックする等して、設定作業を完了する。設定作業を中断する場合は、取消ボタン４４をクリックする。
【００５５】
上記設定作業が完了すると、再び図１１に示す図示表現入力画面に戻る。
そして、メイン制御フロープログラム内に、割込処理における遷移先のサブ制御フロープログラムからの戻り位置を指定する（図１０のステップＳ４３）。
【００５６】
図１１（ａ）に示す例では、要素Ｂと要素Ｃの間に戻り位置が指定される。このとき、図１１（ｂ）に示すサブ制御フロープログラムにおいて図示入力された記号と同一の記号（▽）が図示入力されることで、両者が対応付けられることになる。
【００５７】
最後に、上記ステップＳ４３で指定した戻り位置に、図６のステップＳ２２で指定した割込範囲名称と上記ステップＳ４２で記述したステップ名称とを記述する（図１０のステップＳ４４）。これは、上記ステップＳ４２の処理と同様に、表示装置４の画面が図１２に示す入力画面４０の表示に切換えられて、“範囲名称の入力領域”４１、“ステップ名称の入力領域”４２に各々当該データを書込むことにより行われる。
【００５８】
尚、ステップＳ４２、４４において、後述する図１３（ａ）、（ｂ）のように割込範囲が重複またはネスティングしている場合以外は、範囲名称は入力せずに、ステップ名称の入力のみ行うようにしてもよい。
【００５９】
上記の処理によって、例えば図１１に示すように、割込処理終了後に、サブ制御フロープログラム内の任意の位置からメイン制御フロープログラム内の任意の位置（指定した戻り位置）に戻ることができる。
【００６０】
図１３は、上記図２のステップＳ５、ステップＳ７の判定処理がＹＥＳとなる割込範囲の指定状況の一例を示す。図１３（ａ）は割込範囲を重複して指定する例を示し、図１３（ｂ）は割込範囲がネスティングして指定された例を示す。
【００６１】
図１３（ａ）において、割込範囲ａは、要素Ａと要素Ｂを含む範囲を指定している。割込範囲ｂは、要素Ｂと要素Ｃを含む範囲を指定している。よって、要素Ｂでは割込範囲ａと割込範囲ｂが重複しているので、上記図２のステップＳ６の処理によって、要素Ｂの割込情報１０の“監視数”１１の情報は‘２’となる。また、要素Ｂの割込情報１０には、上記２つの割込範囲ａ、ｂについて、それぞれの情報が格納される。
【００６２】
図１３（ｂ）において、割込範囲ｃは要素Ａ、要素Ｂ、及び要素Ｃを含む範囲を指定しており、割込範囲ｄは要素Ｂを含む範囲を指定しているので、要素Ｂにおいて割込範囲ｃ内に割込範囲ｄがネスティングしている。この場合も、上記重複している場合と略同様にして、要素Ｂの割込情報１０の“監視数”１１の情報が‘２’となり、要素Ｂの割込情報１０には各割込範囲ｃ、ｄのそれぞれの情報が格納される。
【００６３】
尚、割込範囲が重複しているかネスティングしているかの区別は、図３（ａ）の割込情報１０における“割込範囲”１２の情報より、一方の割込範囲が他方の割込範囲を完全に包合しているか否かにより判別する。
【００６４】
図１４（ａ）、（ｂ）は、上記のようにして作成された制御フロープログラムをＰＣにおいて実行する処理の一例を説明するための図である。
図１４（ａ）に示すフロー制御フラグ５０、図１４（ｂ）に示すステップ情報６０は、それぞれＰＣにおいて上記制御フロープログラムを実行する際に使用される情報である。
【００６５】
以下、これらのフロー制御フラグ５０、ステップ情報６０を使用して制御フロープログラムを実行する処理の一例について説明する。
まず、上記図５、図７、図１１等に示すようにして作成された制御フロープログラムには、特に表示装置４の表示画面上に表示されなくても、各要素間に判定処理が入る。例えば、要素Ａ−要素Ｂ間に入る判定処理を判定処理ＡＢ、要素Ｂ−要素Ｃ間に入る判定処理を判定処理ＢＣと表現するものとする。また、割込条件をタイマ監視の場合を例にして説明する。
【００６６】
まず、要素Ａの処理が終了すると、判定処理ＡＢにおいて、タイマを起動するとともに要素Ａの処理から要素Ｂの処理に実行権を渡す処理を行う。そして、要素Ｂの処理が実行され、また判定処理ＢＣにおいてタイマのアップ（終了）を監視する。これは、要素Ｂの割込情報１０を要素番号（この場合“要素Ｂ”とする）を用いて検索し、この割込情報１０内の割込条件１５、設定値１６の情報に基づいて行われる。
【００６７】
そして、要素Ｂの処理が終了する前にタイマがアップした場合には、割込情報１０内のサブ制御フロー名称１６の情報より遷移先のプログラムを決定して、割込処理に移る。その際、図１４（ａ）、（ｂ）に示すフロー制御フラグ５０、ステップ情報６０を用いる。例えば、上記の様に判定処理ＢＣにおいてタイマがアップしたことを判定すると、上記のように要素Ｂの割込情報１０によって割込先のサブ制御フロープログラムを判別し、次に、フロー制御フラグ５０の起動５１のビットをセットする。これによって、メイン制御フロープログラムは保留状態になり、実行権はサブ制御フロープログラムに渡されることになる。
【００６８】
一方、サブ制御フロープログラムは、フロー制御フラグ５０を常時監視しており、上記起動５１のビットがセットされたことを検出すると処理（割込処理）を開始する。そして、サブ制御フロープログラムは、処理を終了すると、フロー制御フラグ５０の保留解除５２のフラグを立てることで、メイン制御フロープログラムの保留状態を解除する。更に、サブ制御フロープログラムの要素Ｆに対応する割込情報１０のメイン制御要素番号１６の記憶領域から戻り先フロー位置（要素番号）を読み出して、これを図１４（ｂ）に示すステップ情報６０に書込む。そして、サブ制御フロープログラムは実行を停止する。
【００６９】
そして、メイン制御フロープログラムは、上記フロー制御フラグ５０、ステップ情報６０により判定処理を行い、保留が解除されたことを検出すると、上記戻り先フロー位置に実行権を渡して処理を再開する。
【００７０】
【発明の効果】
以上、詳細に説明したように、本発明のプログラミング装置、及びこのプログラミング装置における割込処理記述方法によれば、簡単な操作で割込範囲の指定が行え、更には簡単な操作で割込み範囲の重複指定またはネスティング指定を行えて、これら指定した割込範囲が一目で分かるようになる。
【００７１】
また、サブ制御フロープログラムからメイン制御フロープログラムの任意の位置に戻ることができる。
【図面の簡単な説明】
【図１】本実施形態によるプログラミング装置の構成を示すブロック図である。
【図２】本実施形態による制御フロープログラム作成処理の全体を説明するメイン・フローチャートである。
【図３】図２に示す処理によって制御フロープログラム中に埋め込まれる情報を示す図であり、（ａ）は割込情報、（ｂ）は識別情報である。
【図４】図２のステップＳ１の制御フロープログラム作成手順を説明するフローチャートである。
【図５】図４のフローチャートによる図示表現プログラム作成の一例を示す図である。
【図６】図２のステップＳ２の処理（割込範囲の指定）を説明するフローチャートである。
【図７】図５（ａ）のように作成したメイン制御フロープログラムに対する割込範囲の指定操作の一例を示す図である。
【図８】割込範囲の名称、割込条件の設定等の入力画面の一例を示す図である。
【図９】図２のステップＳ３の処理（割込条件の記述）を説明するフローチャートである。
【図１０】図２のステップＳ４の処理を説明するフローチャートである。
【図１１】遷移位置、戻り位置の指定等を行う図示表現プログラムの入力画面を示す。
【図１２】名称の記述等を行う入力画面の一例を示す図である。
【図１３】割込範囲の重複、ネスティングの一例を示す図である。
【図１４】作成された制御フロープログラムをＰＣにおいて実行する処理の一例を説明するための図である。
【符号の説明】
１  ＣＰＵ
２  入力装置
３  ＲＡＭ
４  表示装置
５  記憶装置
５ａ  記憶媒体
１０  割込情報
１１  監視数
１２  割込範囲
１３  範囲名称
１４  割込条件
１５  設定値
１６  サブ制御フロー名称
１７  メイン制御フロー名称
１８  メイン制御要素番号
２０  識別情報
２１  フロー種別
２２  フロー名称
２６  割込範囲
３０  表示画面
３１  範囲名称の入力領域
３２  フロー名称の入力領域
３３  条件の設定領域
３４  時間の入力領域
３５  イベント名の入力領域
３６  設定（ボタン）
３７  取消（ボタン）
４０  入力画面
４１  範囲名称の入力領域
４２  ステップ名称の入力領域
【図１】
0003579220.tif 000002
【図２】
0003579220.tif 000003
【図３】
0003579220.tif 000004
【図４】
0003579220.tif 000005
【図５】
0003579220.tif 000006
【図６】
0003579220.tif 000007
【図７】
0003579220.tif 000008
【図８】
0003579220.tif 000009
【図９】
0003579220.tif 000010
【図１０】
0003579220.tif 000011
【図１１】
0003579220.tif 000012
【図１２】
0003579220.tif 000013
【図１３】
0003579220.tif 000014
【図１４】
0003579220.tif 000015