(57)【要約】【課題】  プログラムを編集する度に実行形式へ変換する必要のないプログラムの実行制御方式を提供するものである。【解決手段】  この発明のプログラムの実行制御方式は、ファンクションブロック形式によりプログラムを作成するプログラム作成手段と、上記プログラム作成手段で作成されたプログラムを実行するプログラム実行手段とを備えており、上記ファンクションブロックにそのファンクションブロックを実行するかしないかを決める実行フラグを設け、上記ファンクションブロックで記述されたプログラムの停止中あるいは実行中に前記実行フラグのON/OFFを操作することを可能とし、前記実行フラグが有効であるファンクションブロックのみを上記プログラム実行手段によって実行するようにしたものである。【選択図】図８
2005310056.tif 000002
【特許請求の範囲】
【請求項１】
ファンクションブロック形式によりプログラムを作成するプログラム作成手段と、上記プログラム作成手段で作成されたプログラムを実行するプログラム実行手段とを備え、上記ファンクションブロックにそのファンクションブロックを実行するかしないかを決める実行フラグを設け、上記ファンクションブロックで記述されたプログラムの停止中あるいは実行中に前記実行フラグのON/OFFを操作することを可能とし、前記実行フラグが有効であるファンクションブロックのみを上記プログラム実行手段によって実行するようにしたことを特徴とするプログラムの実行制御方式。
【請求項２】
ファンクションブロックの実行フラグを操作した結果、文法的に正しいプログラムとなっているかどうかを確認すると共に、不正なプログラムとなる場合は、プログラム中で不正となる部分を検出するプログラム確認手段を設けたことを特徴とする請求項１記載のプログラムの実行制御方式。
【請求項３】
プログラム中の不正な部分を強調して表示する表示手段を設けたことを特徴とする請求項３記載のプログラムの実行制御方式。
【請求項４】
ファンクションブロックにそのファンクションブロックの代替ファンクションブロックが定義されており、ファンクションブロックの実行フラグがOFFの場合に、定義されている代替ファンクションブロックを実行することを特徴とする請求項１に記載のプログラムの実行制御方式。
【請求項５】
各ファンクションブロックの実行フラグを操作する実行フラグ操作手段と、上記実行フラグ操作手段によって操作された実行フラグを文法的に正しいプログラムであるかを確認するプログラム確認手段と、文法的に成立している実行フラグの組み合わせを実行するプログラム実行手段を設けたことを特徴とする請求項１に記載のプログラムの実行制御方式。
【請求項６】
ファンクションブロックが持つ実行フラグの設定を、実行するファンクションブロックから操作可能としたことを特徴とする請求項１に記載のプログラムの実行制御方式。
【請求項７】
ファンクションブロックが持つ実行フラグに文字列を設定し、この文字列をプログラム実行手段が管理する有効文字列保持手段によって保持されている文字列と比較し、同じ文字列を持つファンクションブロックを有効と判断して実行することを特徴とする請求項１に記載のプログラムの実行制御方式。
【請求項８】
実行フラグが有効なファンクションブロックを検出する有効ファンクションブロック検出手段を設け、有効な設定がなされており実行時に処理を行うファンクションブロックのみをプログラム表示手段に表示することを特徴とする請求項１に記載のプログラムの実行制御方式。
【請求項９】
実行フラグをフローチャートに適用した請求項１乃至８のいずれかに記載のプログラムの実行制御方式。
【請求項１０】
実行フラグを表示器に表示する表示部品に適用した請求項４、６、７、８のいずれかに記載のプログラムの実行制御方式。
【請求項１１】
実行フラグを表形式プログラムの各要素に適用した請求項１乃至８のいずれかに記載のプログラムの実行制御方式。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、検査装置、計測装置等のプログラムの編集を行う際のプログラム実行制御方式に関し、特に実行するプログラムの内容を実行時に切り換え可能なプログラム実行制御方式に関するものである。
【背景技術】
【０００２】
プログラムの開発過程においては、プログラムのデバッグを行う際、開発したプログラムの部分的な動作を確認するために動作の確認に関係の無い部分をコメントアウトして実行することがある。また、開発したプログラムに関連するプログラムで、実行はしないが参照したいプログラムを、コメントアウトして同じプログラム中に記述することがある。
コメントアウトする場合は、プログラムに対してコメントアウトを意味する記号を追加する。フローチャートやブロックダイヤグラム等の図形情報を扱うグラフィカルプログラミングに、このようなコメントアウト機能を適用する試みが行われている（例えば特許文献１参照）。
【０００３】
特許文献１には、例えば図面中に注釈を書き込む機能を実現するために、プログラム編集領域においてコメントアウトとして扱う領域をそれぞれ指定することにより、これをコード化しないようにする技術が開示されている。すなわち、プログラム領域においてコメントとして扱う領域を指定して、所定のプログラムオブジェクトをこの領域で囲い、それぞれのオブジェクトがプログラムとして扱われるか、コメントとして扱われるかを判別するようにしている。
【０００４】
【特許文献１】特開平２−１４３７０号公報（特許番号第２８５１８５２号）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、プログラムを実行する際に実行コードへ変換する形態のプログラミング方式にあっては、コメントアウトなどのプログラムに対する変更内容を実行時に反映させるためには、変更したプログラムを実行する前に、再度実行コードへ変換する必要があった。コメント位置を変換する度に、プログラムを実行形式に変換し、変換した実行形式をプログラム実行手段にダウンロードして、実行の開始を指示していたため、プログラム開発の効率が悪いものとなっていた。特に、プログラムの実行コードへの変化やダウンロードに時間がかかるシステムにおいては、プログラムを変更する度にこのような処理を行う必要があるため、プログラムの開発効率は低下してしまうという問題があった。
また、プログラムによっては、オンラインでプログラムを実行しながら、プログラムの一部の実行・非実行の操作を行うと、文法的に正しいプログラムとならず、実行が停止する可能性があった。
【０００６】
更に、プログラム中に実行フラグを設定すると、有効な設定がなされているために実行するプログラムと、設定がなされていないため無効なプログラムが存在することになり、プログラム中のどの部分が実際に実行されるのかの判断が難しくなり、プログラムの可読性が低下してしまうという問題もあった。
この発明の第一の目的は、プログラムを編集する度に実行形式へ変換する必要のないプログラムの実行制御方式を提供するものである。
この発明の第二の目的は、プログラムが文法的に正しいプログラムになっているかを確認し、プログラム中で不正となる部分を検出するプログラム確認手段を有するプログラムの実行制御方式を提供するものである。
この発明の第三の目的は、プログラム中の条件分岐のための記述を減らし、可読性の高いプログラムの実行制御方式を提供するものである。
【課題を解決するための手段】
【０００７】
この発明のプログラムの実行制御方式は、ファンクションブロック形式によりプログラムを作成するプログラム作成手段と、上記プログラム作成手段で作成されたプログラムを実行するプログラム実行手段とを備え、上記ファンクションブロックにそのファンクションブロックを実行するかしないかを決める実行フラグを設け、上記ファンクションブロックで記述されたプログラムの停止中あるいは実行中に前記実行フラグのON/OFFを操作することを可能とし、前記実行フラグが有効であるファンクションブロックのみを、上記プログラム実行手段によって実行するようにしたものである。
【０００８】
また、この発明のプログラムの実行制御方式は、ファンクションブロックの実行フラグを操作した結果、文法的に正しいプログラムとなっているかを確認すると共に、不正なプログラムとなる場合は、プログラム中で不正となる部分を検出するプログラム確認手段を設けたものである。
更に、この発明のプログラムの実行制御方式は、実行フラグが有効なファンクションブロックを検出する有効ファンクションブロック検出手段を設け、有効な設定がなされており実行時に処理を行うファンクションブロックのみをプログラム表示手段に表示するようにしたものである。
【発明の効果】
【０００９】
本発明によれば、ファンクションブロックにそのファンクションブロックを実行するかしないかを指定する実行フラグを設け、ファンクションブロックで作成したプログラムを実行形式へ変換後もこの実行フラグを操作可能な仕組みとすることで、プログラムの一部をコメントアウトするなど、プログラムに対して変更を行っても、この実行フラグを切り換えるだけで、プログラムを再度実行形式に変換しなおすことなく、継続してプログラムを実行することができるため、プログラムのデバッグ効率を高めることができる。
また、実行フラグ操作後のプログラムが文法的に正しいプログラムとなっているかを確認し、文法的に正しく無い場合は、どの部分が正しく無いかをユーザに示すことによって、ユーザに対して正しい実行フラグの設定を入力するように促すことができる。
更に、プログラムの中で、実行フラグが有効になっているプログラムだけを表示したり、有効なプログラムと無効なプログラムの表示色を分けて表示することができるので、プログラムの可読性を確保することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１.
以下、図面を参照して、本発明の実施例について述べる。
図１はこの発明のプログラム実行制御方式に使用されるシステム構成を示すブロック図である。このシステムは、ハードウェア資源として、CPU（中央演算装置）１００と、ROM（リードオンリメモリ）１０１と、RAM（ランダムアクセスメモリ）１０２と、表示装置１０３と、I/O（入出力装置）１０５と、D/A（ディジタルーアナログ変換器）１０６と、A/D（アナログーディジタル変換器）１０７とを備えて構成される。
これらはバスを介して接続されているが、これらの全ては揃う必要はなく、アナログ入力を扱わない場合は、A/D１０７が無くても良く、アナログ出力を扱わない場合は、D/A１０６が無くても良い。また、画面上に表示する必要がない場合は、表示装置１０３を省略することができる。
例えば、ROM１０１には、オペレーティングシステムやシステムの動作を制御するプログラムが格納されており、また、RAM１０２には、ユーザが作成するプログラムやデータが格納される。CPU１００は、ROM１０１に格納されているシステムの動作を制御するプログラムによって各種機能を実行するものである。
【００１１】
図２は本発明の実施の形態１によるシステムの動作を示す機能構成図で、上記CPU１００、ROM１０１、RAM１０２、表示装置１０３、入力装置１０４の各種処理によって実行されるものである。たとえば、CPU１００は、表示装置１０３と共に表示手段２０７として機能し、入力装置１０４と共に操作手段２０６として機能すると共に、ROM１０１とRAM１０２と共にファンクションブロック実行手段などのユーザが作成したプログラムを実行する手段２０２として機能し、I/O１０５とA/D１０７と共に入力手段２０４として機能し、I/O１０５とD/A１０６と共に出力手段２０５として機能する。表示装置１０３は例えばLCDから成り、ユーザプログラムの実行状況を表示することができる。入力装置１０４は例えばキーボードやLCDに貼られたタッチパネルから成り、プログラムの実行の指示や処理を切り換えることができる。
【００１２】
次に、CPU１００が実行する各種機能について、図２を参照して説明する。
プログラム作成手段２００は、ユーザが所望の動作を実現するプログラムを作成するための手段である。この手段は、プログラム実行手段２０２と同じハードウェア上に存在することもあるし、他のハードウェア上に存在することもある。他のハードウェア上に存在する場合は、そこで作成したプログラムを、通信手段を用いてプログラム実行手段２０２と同じハードウェア上に転送する。プログラム作成手段２００では、ユーザがファンクションブロックなどのプログラム言語によってプログラムの作成を行うが、プログラム実行手段２０２は、そのままでは実行できないため、プログラム言語をプログラム実行手段２０２で実行可能な形式に変換し、一旦、プログラム保持手段２０１に格納する。
【００１３】
プログラム保持手段２０１は、プログラム作成手段２００で作成したプログラムを保持する手段である。プログラム実行手段２０２は、プログラム作成手段２００によって作成され、プログラム保持手段２０１に保持されているユーザプログラムを読み出して実行する手段である。このプログラム実行手段２０２では、プログラムに記述されている動作指示に基づいて、データ保持手段２０３からデータを取り込み、そのデータを加工して再びデータ保持手段２０３に出力する。また、プログラム実行手段２０２では、操作手段２０６からユーザの指示を受け取って対応する処理を行うと共に、プログラムの実行状況を表示手段２０７に表示する。また、実行結果を保持する場合は、実行結果保持手段２０８に実行結果を出力する。
【００１４】
入力手段２０４及び出力手段２０５は、周期的あるいはプログラム実行手段２０２の指示によって動作し、外部接続機器との間で、データ保持手段２０３に格納されているデータを入出力する。
図３にユーザがプログラムの作成を行う際に用いるファンクションブロックダイアグラム（以下FBD）の一例を示す。FBDは、ファンクションブロック（以下FB）によって記述されたプログラムである。この図で、FB1（３１）の処理が終了すると、FB1（３１）での処理結果がFB２（３２）に入力される。次にFB２（３２）での処理が終了すると、FB３（３３）に入力される。最後にFB３（３３）の処理結果が出力される。
【００１５】
このようにFBDでは、個々のFBで処理されたデータが、接続線によって接続されたFBに入力として与えられることでデータの加工が進められる。先頭のFBには、データ保持手段２０３の値が入力され、最後尾のFBから出力される値が、再びデータ保持手段２０３に出力される。
背景技術の項で説明したごとく、プログラム開発中の段階では、プログラムの動作を部分的に確認するため、動作確認の対象から外れる部分をコメントアウトすることがある。ただし、ユーザが作成したプログラムをコメントアウトするには、プログラム作成手段２００上で、プログラムに変更を加える必要があり、そして、変更したプログラムを実行するには、実行形式に変換し、プログラム保持手段２０１に格納した後、プログラム実行手段２０２に読み込む必要があった。コメントアウトの位置を変更する度に、この一連の作業を行うのは、効率的ではなく、プログラムの開発効率が高いとは言えない。
【００１６】
そこで、本実施の形態１においては、各FBに実行フラグを設け、プログラム実行手段２０２でプログラムを実行する際に、プログラム実行フラグが付いているFBのみを実行する形式としたものである。また、実行フラグのON/OFFは、プログラム作成手段２００でプログラムを編集することなく、実行形式に変換後のプログラム上で行えるものとする。実行フラグのON／OFFの操作は、FBDを実行する実機がLCD等の表示装置を持っている場合は、その表示装置に表示されるFBDを見ながら入力装置を用いてON／OFFの操作をすることが可能である。FBDを表示せず実行フラグのみを画面に並べて表示し、ON／OFFの操作を実機上で行うことも可能である。また、FBDを実行する実機が、パソコン等のプログラム開発環境と接続されている場合は、プログラム開発環境上にFBDを表示して、所望のFBの実行フラグを操作することも可能である。
【００１７】
コメントアウトの位置を変更する度に、プログラム作成手段２００にてプログラムを編集し、実行形式に変換後、プログラム実行手段２０２に再度読み込む必要がないため、プログラムの開発効率を改善することができる。
次に、実現の手段について述べる。
図４は実行フラグを設けたFBの一例を示す図であり、図４（a）は、実行フラグ４２にチェックが入っており、このFB４１を実行することを示している。一方、図４（b）は、実行フラグ４２にチェックが入っておらず、このFB４１を実行しないことを示している。
実行フラグ４２を持つFBによって記述したFBDの一例を図５に示す。図５では、ＦＢ１（３１）とＦＢ３（３３）には実行フラグ４２にチェックが入っているが、FB２（３２）の実行フラグ４２にチェックが入っていないため、FB２（３２）は実行されない。このため、図６に示すFBDと等価なプログラムとなる。
【００１８】
この例では、実行フラグにチェックが入っているFBを有効と判断して実行し、チェックが外れているFBは実行しない方式を示しているが、これとは逆に、実行フラグにチェックが入っているFBは実行せず、実行フラグにチェックが入っていないFBを実行する方式であってもよい。
従って、各FBの演算結果は、演算結果を保持するための変数に代入され、この変数の値は次に実行するFBの入力となる。したがって、連続したFBの中で、実行しないFBが存在すれば、そのFBの処理が、結果として得られる値に反映されないことになり、コメントアウトと同じ結果が得られる。
【００１９】
実行フラグ４２を設けたFBのデータフォーマットの例を図７に示す。個々のFBのデータは、FBを特定するためのファンクションブロックのID７１、実行を制御する実行フラグ７２、FBの入力ピンに接続する接続線のデータを保持する入力１（７３）と入力２（７５）、同様に出力ピンに接続する接続線のデータを保持する出力１（７５）と出力２（７６）から成る。実行フラグ４２の情報は、このようにFBのデータフォーマットの中に含めることもできるし、実行フラグ４２だけをまとめて格納する領域を作成し、各FBから対応する実行フラグ４２を参照するようにしてもよい。
【００２０】
次に、プログラム実行手段２０２での処理について図８を用いて説明する。プログラム実行手段２０２は、プログラムから、１つのFBを読み出す（ステップ８１）。そのFBの実行フラグ４２が有効か無効かを判断し（ステップ８２）、有効であればそのFBの処理を実行する（ステップ８３）。無効の場合はそのFBの処理を実行しない。次に、実行するFBを指し示すプログラムカウンタを１つ進める（ステップ８４）。そして、プログラムの終端に達したかを判断する（ステップ８５）。プログラムの終端に達した場合はプログラムを終了し、続きが存在する場合は次のFBの読み出しへ移る。
この実行フラグ４２のON/OFFは、表示手段２０７上に表示されたFBDを確認しながら、操作手段２０６によって操作することも可能であるし、プログラム作成手段２００上で、表示したFBDを確認しながら操作することも可能である。これらの操作は、実行形式に変換後のFBDに対して行われるため、操作後にプログラムを実行形式へ変換する必要はない。
【００２１】
図９は、実行形式を変換することなく、実行の流れを切り換える方法として、条件文を追加する方法を示すFBDである。同図では、条件文９１、９２を付け加えたために、本来プログラムで記述したい処理とは異なるFBをプログラム中に追加することになる。その結果、コードの可読性やメンテナンス性を悪くすることになる。従って、各FBに実行フラグ４２を設ける方法に比べ、好ましいとは言えない。
以上のように、プログラム中でコメントアウトをしようとする部分がある場合は、該当する箇所の実行フラグを無効に切り換えるだけで、プログラムを実行形式に変換することなく、コメントアウトと同様の効果を得ることができる。また、プログラム作成中に、プログラムの変換作業が必要とならないため、プログラムの開発効率を効率化することができる。
【００２２】
実施の形態２.
図１０は、プログラムとして文法的に正しいかを判定するプログラム確認手段１００２をプログラム開発環境上に設けた場合の実施の形態である。プログラム確認手段１００２は、FBD１００１中のあるFBの実行フラグ４２のON/OFFの操作によって、文法的に正しいFBDとなっているかを判定する手段である。プログラム確認手段１００２は、FBDを実行する実機上に存在しても良い。
プログラム確認手段１００２は、実行フラグ４２の切り換え操作を行った直後に動作し、プログラムの文法チェックを行う。そして、確認した結果をプログラム表示手段１００３に表示する。プログラム表示手段１００３は、プログラムを表示するものであり、例えば、表示手段２０７やプログラム作成手段２００の表示部分が挙げられる。
【００２３】
次にプログラム確認手段１００２の流れについて図１１を用いて説明する。
プログラム確認手段１００２は、FBの実行フラグ４２が操作されると、毎回起動される。プログラム確認手段１００２が起動すると、プログラムを読み出し（ステップ１１１）、プログラムが文法的に正しいかを確認する（ステップ１１２）。次に、プログラムが文法的に正しいかを確認する（ステップ１１３）。プログラムが文法的に正しい場合は、プログラムに問題が無いことをプログラム表示手段１００３によって示す。一方、プログラムが文法的に正しくない場合は、例えばプログラム中の不正な部分を強調して表示する（ステップ１１４）。
【００２４】
プログラム表示手段１００３の表示例を図１２及び図１３に示す。図１２では、２入力１出力を持つFB１２（１２３）の実行フラグ４２をOFFにしている。FB１２（１２３）が無効になると、このFBDは、文法的に成立しなくなるため、実行することができない。そこで、図１３に示すように、不正な部分を強調表示する。
この例では、線の幅を太くすることにより、不正な部分を強調しているが、線の色を変え
たり、背景の色を変えるなど、様々な方法によって不正な部分を強調することができる。
このように、不正な部分を強調表示することにより、問題が発生している箇所を容易に特定することができる。
【００２５】
実施の形態３.
図１４に、FBの実行フラグ４２がOFFの場合に実行する代替FB（１４１）を持つFBの例を示す。この例では、FB１２（１２３）が代替FB（１４１）として、ANDのFBを保持している。FB１２（１２３）の実行フラグ４２がOFFになっているため、実行時にはFB１２（１２３）ではなく、FB AND（１４１）が実行される。一方、実行フラグ４２がONの場合は、FB1２（１２３）が実行される。
代替FB（１４１）を持つFBのデータフォーマットの例を図１５に示す。通常のFBのデータフォーマットに対して代替FBのID１５１を追加している。実行フラグ４２がOFFの場合は、代替FBのID１５１を読み出し、実行する。
【００２６】
このように、実行フラグ４２をOFFにした際に実行する代替FB１４１を別途保持することにより、実行フラグ４２の操作によって、プログラムが文法的に不正になることを防ぐことができる。また、プログラムを変更し、実行形式へ再変換することなく、プログラムの実行内容を切り換えることができるため、デバッグ用のFBを登録しておくなど、デバッグを効率化することができる。
なお、この例では、１つのFBに対して１つの代替FB１４１を記述しているが、１つのFBに対して、複数のFBからなる１つの回路を登録することもできる。
【００２７】
実施の形態４.
FBの実行フラグの書き換えは、FBDのプログラムを停止している間でも良いし、実行している間でもよい。FBDのプログラムの実行フラグを書き換えるには、実機上で行う方法と、パソコン等の上に実現されたプログラム開発環境上で行う方法がある。
FBの実行フラグの書き換えを実機上で行う場合の実施の形態を図１６に示す。実行フラグ操作手段１６１とは、FBDの各FBの実行フラグ４２を操作する手段である。この実行フラグ操作手段１６１は、実機が持つ画面上にFBを表示したり、実行フラグに対応する表示部品を並べて表示するなど、実行フラグの状態を表示する手段と、実行フラグ４２の操作を行う実機の入力装置１０４によって実現する。実機が表示画面を持たない場合は、入力装置１０４に実行フラグ４２を対応させて、入力に応じて実行フラグ４２を操作する。
【００２８】
実行フラグ操作手段１６１によって操作された実行フラグは、実機上のプログラム確認手段１００２によって文法的に正しいプログラムとなるかを確認する。
プログラム開発環境上で行う場合は、図１６の実行フラグ操作手段１６１及びプログラム確認手段１００２がプログラム開発環境上に存在し、新たに設定した実行フラグの組み合わせが文法的に問題ないかを確認する。そして、文法的に成立している実行フラグの組み合わせを、実行形式のプログラムに反映させる。
プログラム確認手段１００２が、実機上に存在する場合も、プログラム開発環境上に存在する場合も、プログラムが文法的に正しくなるような実行フラグ４２の設定がなされていない場合は、実行形式のプログラム中に存在する実行フラグ４２の切り換えを一切行わない。
このように、オンラインで実行フラグ４２を書き換える際に、プログラム確認手段１００２によって文法的に正しいことを確認してから、一斉にFBの実行フラグ４２を切り換えることにより、実行フラグ４２の操作が原因となり、FBDの処理に文法エラーが発生し、処理を中断する、といった状況が発生することを防ぐことができる。
【００２９】
実施の形態５.
プログラム中の実行フラグ４２の操作をプログラム中から行う実行フラグ制御手段１７１を設けた場合の実施の形態を図１７に示す。FBの一つとして、指定したFBの実行フラグ４２を操作するFBを設ける。このFBには、実行フラグ４２の操作対象となるFBの識別番号を指定する。識別番号とは、実行フラグ４２の操作対象となるFBを１つ特定できる番号である。
【００３０】
プログラム実行手段２０２は、実行フラグ４２を操作するFBを読み込むと、実行フラグ制御手段１７１を呼び出し、実行フラグ４２の操作を行う。実行フラグ４２の操作は、ONからOFFにすることもできるし、OFFからONにすることもできる。
プログラム中から、指定したFBの実行フラグ４２を操作することにより、実行するFBを選択することができる。このため、実行状況に応じて実行するFBを切り換えるといった処理が可能になる。
この実行フラグ４２の制御は、代替回路を持つFBにも適用可能である。また、プログラムの確認を行ってから実行フラグ４２を操作することもできる。
【００３１】
実施の形態６.
この実施の形態６では実行フラグ４２として文字列を設定したものである。
図１８はこの場合のシステム構成例を示しており、実行フラグ４２に設定した文字列と、有効文字列保持手段１８１が保持している文字列を、プログラム実行手段２０２が比較し、一致する文字列を実行フラグ４２に持つFBを実行するようにしたものである。
有効文字列保持手段１８１は、FBの実行フラグ４２に記述された文字列と比較するための文字列を保持する手段であり、複数の文字列を保持することができる。プログラム実行手段２０２は、読み込んだFBの実行フラグ４２に文字列が記述されている場合、有効文字列保持手段１８１の中に、一致する文字列が存在するかを確認し、一致する文字列が存在する場合はそのFBを実行する。
【００３２】
実行フラグ４２に文字列を記述した例を図１9に示す。実行フラグ４２には、ON/OFFだけではなく、文字列を記述することができる。この例では、文字列として“DEBUG”を記述している。
文字列を指定した場合は、プログラム実行手段２０２の中で、有効と定義されている文字列を持つFBだけを実行する。有効と定義されていない文字列を持つFBは、実行されることはない。また、実行フラグ４２に何も設定されていないFBは、そのまま実行する。
有効文字列保持手段１８１に“DEBUG”が存在すれば、FB31（１９２）とFB４１（１９５）は実行される。一方、有効文字列保持手段１８１に“DEBUG”が存在しなければ、FB31（１９２）とFB４１（１９５）の処理は実行されない。
【００３３】
この場合のプログラム実行手段２０２の処理の流れを図２０に示す。
プログラム実行手段２０２は、プログラムから１つのFBを読み出す（ステップ２００１）。そのFBの実行フラグ４２が文字列かどうかを判断する（ステップ２００２）。文字列ではなく、ON/OFFを表すフラグであれば、実行フラグ４２が有効となっているかを判定する（ステップ２００３）。一方、実行フラグ４２に文字列が設定されている場合は、有効文字列保持手段１８１の中に一致する文字列が存在するかを確認する（ステップ２００４）。一致する文字列が存在する場合は、実行フラグ４２がONの場合と同様に該当するFBを実行する（ステップ２００５）。一方、有効文字列保持手段１８１の中に一致する文字列が存在しない場合は、実行フラグ４２がOFFの場合と同様に、該当するFBを実行せず、プログラムカウンタの移動へ移る（ステップ２００６）。
【００３４】
プログラムカウンタを次のFBに進めた後、プログラムの終端に達したかを判定する（ステップ２００７）。プログラムの終端に達した場合はプログラムを終了し、続きが存在する場合は、次のFBの読み出しへ移る。有効と定義する文字列の指定は、プログラム作成手段２００や入力装置１０４によって行う。
有効と定義する文字列を有効文字列保持手段１８１に登録する前に、プログラム確認手段１００２を用いて、有効な文字列を変更することで文法的に正しいプログラムとなるかを確認することもできる。
【００３５】
デバッグ時に、情報を表示したい場合は、データの表示機能を持つFBの実行フラグ４２に同じ文字列を定義し、有効文字列保持手段１８１に同文字列を有効と定義すればよい。同文字列が有効と定義されていれば、情報を表示するFBが実行されるため、表示機能を持つFBによって、プログラムの動作を確認することができる。一方、プログラムの動作確認が終わると、同文字列を無効にすることによって、表示を全て消去することが可能である。
また、FBの実行フラグ４２に定義する文字列を製品毎に設定することによって、多品種に対応したプログラムを作成することができる。図２１は、２種類の製品に対応したFBDの例である。
【００３６】
FB６０（２１１）とFB７０（２１４）を実行後、有効文字列保持手段１８１に“WorkA”が定義されている場合は、FB６１（２１２）とFB71（２１５）が、“WorkB”が定義されている場合は、FB６２（２１３）とFB72（２１６）が実行される。製品毎に切り換える処理を条件分岐で記述すると、品種が増えるに伴って条件分岐が増加するため、プログラムの可読性が悪くなる。実行フラグ４２に文字列を設定する方法では、有効文字列保持手段１８１に保持されている文字列と一致するFBだけが実行されるため、条件分岐を記述することなく、可読性の良いプログラムの記述が可能である。
【００３７】
実施の形態７.
プログラム中で、実行フラグ４２が有効なFBを検出する有効FB検出手段２２２を設けた実施の形態を図22に示す。有効FB検出手段２２２は、プログラム中のFBに設定されている実行フラグ４２や、有効文字列保持手段１８１に保持されている文字列を参照し、有効な設定がなされており実行時に処理を行うFBのみをプログラム表示手段１００３に表示する。
この実施の形態によれば、有効な設定がなされているFBのみが表示されるため、各FBに設定されている実行フラグ４２を個々に確認する必要がなくなり、プログラムをわかり易く表示することができる。
また、有効な設定がされているFBとそれ以外のFBの表示色を変えて表示することにより、有効なFBをわかり易く表示することも可能である。
【００３８】
実施の形態８.
実施の形態８では実行フラグ４２としてフローチャートを設定したものである。
図２３は、この場合のシステム構成図を示しており、フローチャートの各フローに実行フラグ４２を設定し、各フローに設定されている実行フラグ４２の状態によってそのフローの実行・非実行を決定するフローチャート実行手段２３３を設けたものである。
フローチャート実行手段２３３は、実施の形態２から実施の形態７の各手段の中で、FBに相当する部分をフローに置き換えて実施することができる。
実施の形態２によれば、プログラム確認手段１００２によって、プログラム中の文法的に誤りのある箇所を強調して表示することができる。
【００３９】
実施の形態３によれば、各フローに代替フローを記述し、実行フラグ４２がOFFや無効の場合は、代替フローに記述されている内容を実行することができる。
実施の形態４によれば、プログラム確認手段１００２によって、プログラムが文法的に正しいことを確認してから、実行フラグ操作手段１６１によってプログラム中の実行フラグ４２を一斉に切り替えることができる。
実施の形態５によれば、プログラム中から実行フラグ制御手段１７１を用いて、各フローの実行フラグ４２を操作することができる。
実施の形態６によれば、各フローの実行フラグ４２に文字列を指定し、有効文字列保持手段１８１が保持する文字列と比較し、一致する文字列を持つフローのみを実行することができる。
【００４０】
実施の形態７によれば、各フローの実行フラグ４２に文字列を指定し、有効文字列保持手段１８１が保持する文字列と比較し、一致する文字列を持つフローのみをプログラム作成手段２００や、プログラム表示手段１００３に表示することができる。
さらに、ファンクションブロックやフローチャートに限らず、グラフィカルなプログラミング言語であるラダーや、シーケンシャル・ファンクション・チャートも、同様に各実行モジュールに実行フラグ４２を設定することにより、実行時に実行フラグ４２を制御して、動作の切り換えなどが可能である。
【００４１】
実施の形態９.
実施の形態９では実行フラグ４２として表示器を設定したものである。  表示器は、表示処理手段が表示部品のデータを読み込み、表示データが示す部品を画面上に表示する機能を持つ。図２４は、この場合のシステム構成図を示しており、表示部品に実行フラグ４２を設定し、各表示部品に設定されている実行フラグ４２の状態によって、その表示部品の表示・非表示を決定する表示実行手段２４４を設けたものである。
表示実行手段２４４は、実施の形態３、実施の形態６、および実施の形態７に相当する部分を表示部品に適用して実行可能である。
【００４２】
実施の形態３によれば、１つの表示部品に対して、その表示部品を表示しないときに代わりに表示する表示部品を登録することができる。また実施の形態６によれば、表示部品に対してその表示部品を表示するかしないかを決める文字列を定義し、その文字列が有効と判断される場合のみその表示部品を表示することができる。複数の表示部品を同じ座標に配置し、それぞれ異なる文字列を有効と定義することにより、有効な表示部品のみを表示することが可能になる。さらに、実施の形態７によれば、有効表示部品検出手段２４２によって有効な設定となっている表示部品のみが編集画面上に表示されるため、編集作業を効率化することができる。
【００４３】
実施の形態１０.
図２５はこの発明の一対象である検査システムのユニット構成を示す図である。図２５に対象とする搬入機３００、検査ステーション３０１、搬出機３０２と、これらを制御するプログラマブル検査装置３０３を示し、検査を実施することを考える。プログラマブル検査装置３０３は、搬入機３００を制御して検査対象３０４を検査ステーション３０１へ搬入する。検査ステーション３０１では、検査対象３０４に対して治具を取り付けるなど、検査対象３０４とプログラマブル検査装置３０３を電気的に接続し、表形式プログラムで記述された検査項目の検査を実施する。検査を終えた検査対象３０４は、搬出機３０２によって検査ステーション３０１から搬出される。
【００４４】
検査の進行状況はプログラマブル検査装置３０３の表示画面上で確認することができる。プログラム検査装置３０３では、検査の項目と流れを一覧表にした、表形式プログラムを実行することが可能である。図２６に表形式プログラムの例を示す。表形式プログラムは、ステップ番号４００、コメント４０１、計測条件設定部４１３、計測対象設定部４１４、判定基準設定部４１５、判定後処理設定部４１６から構成される。
表形式プログラムの実行時は、実行中のステップのステップ番号４００やコメント４０１、計測条件設定部４１３に記述されている値、計測対象設定部４１４に記述されている計測対象、判定基準設定部４１５に記述されている値、判定後処理設定部４１６に記述されている内容を、表示画面に表示することができる。
【００４５】
計測条件設定部４１３には、計測時に検査対象３０４に設定する条件を記述する。図２６では、検査対象３０４が、スイッチとしてＳＷ−１とＳＷ−２の２つを持ち、電圧を入力するチャンネルＣＨ−１を持っている場合を示している。図２６の表形式プログラム中のＳＷ−１、ＳＷ−２やＣＨ−１は、すべてタグ（検査装置が有する入出力デバイスに対してユーザ等が任意に付与する名称）であり、実際にはデータ保持手段２０３に対応するデバイスが存在する。さらにそれらのデバイスは、入力手段２０４や出力手段２０５を介して検査対象３０４に接続されている。図２６の例では、ステップ１で、ＳＷ−１をＯＮに、ＳＷ−２をＯＦＦにし、ＣＨ−１に０.０Ｖを印加している。計測条件設定部４１３には、任意の数のデバイスを設定することができる。
【００４６】
ウエイト欄４０５には、計測条件を設定してから、計測対象の値を取得するまでの待ち時間を指定する。計測対象によって異なる時定数の違いをウエイト欄に待ち時間を指定することによって調整する。ウエイトに設定する時間の単位には、秒やミリ秒などが挙げられる。ウエイト欄４０５で指定した時間が経過した後、計測対象設定部４１４で指定した対象から計測を行う。計測対象設定部４１４の対象欄には、検査対象３０４の値を計測するチャンネルの番号を指定する。図２６のステップ１の例では、Ａ／Ｄ１−ＣＨ３を対象として指定している。これは、検査対象３０４が接続されているプログラマブル検査装置３０３の１番目のＡ／Ｄボード上のチャンネル３の値を計測することを示している。計測したデータは、データ型欄４０７で指定したデータ型で保持され、後の合否判定も指定したデータ型で行われる。
【００４７】
計測対象設定部４１４の対象欄４０６で指定し、計測した対象の値は、判定基準設定部４１５で指定された値と比較し、判定基準を満たしているかを判定する。判定基準設定部４１５には、最小値欄４０８、最大値欄４０９、一致比較欄４１０がある。最小値欄４０８には、合否判定基準の最小値を記述し、最大値欄４０９には、合否判定基準の最大値を記述する。計測した値がこの範囲に入っていれば、合格（ＯＫ）の判定を行う。計測した値がこの値に入っていなければ、不合格（ＮＧ）の判定を行う。最小値、最大値に値の記述が無く、一致比較欄４１０にのみ数値が記述されている場合には、計測した値と、一致比較欄４１０に記述された数値が一致しているかを判定する。一致している場合は、合格（ＯＫ）の判定を行う。一致していなければ不合格（ＮＧ）の判定を行う。
【００４８】
計測対象設定部４１４で計測された値と、判定基準設定部４１５にて設定された値を比較して判定された判定結果に基づいて、判定後処理設定部４１６に記述された処理を実行する。判定後処理設定部４１６は、ＯＫ欄４１１とＮＧ欄４１２の２つの欄からなる。ＯＫ欄４１１には、判定結果が合格（ＯＫ）の場合に実行する処理を記述する。ＮＧ欄４１２には、判定結果が不合格（ＮＧ）の場合に実行する処理を記述する。図２６のステップ４の判定後処理設定部４１６のＯＫ欄４１１では、システム上に存在する他のソフトウェアオブジェクトである「Func1」を呼び出す処理を指定している。ステップ４の判定結果がOKとなった場合、この「Func1」が後述する表形式プログラム実行手段２７３から呼び出され、実行される。
【００４９】
判定後処理設定部４１６に記述した処理を終えると、表形式プログラム実行手段２７３は、同じ表形式プログラムの次のステップ（行）へ進み、ステップ番号４００とコメント４０１を読み出す。これらを表示画面に表示した後、計測条件設定部４１３に記述されたデータを出力し、この行の残りの処理を進める。
このように1行のデータの処理を終えると次の行に進む。そして表プログラム全体の処理を終えると、その表形式プログラムの終了となる。
実施の形態１０では実行フラグ４２として表形式プログラムの各要素を設定したものである。
【００５０】
図２７は、この場合のシステム構成図を示しており、表形式プログラムの各要素に実行フラグ４２を設定し、各要素に設定されている実行フラグ４２の状態によって、その要素の実行・非実行を決定する表形式プログラム実行手段２７３を設けたものである。
表形式プログラム実行手段２７３は、実施の形態２から実施の形態７に相当する処理を表形式プログラムに適用して実行可能である。
すなわち、実施の形態２では、プログラム確認手段１００２によって、表形式プログラムの文法が守られているかを確認する。実施の形態３では、表形式プログラムのセルに対して、代替セルを用意する。各セルの実行フラグ４２がONであれば、セルに記述されている内容を実行し、セルの内容がOFFであれば、代替セルに記述されている内容を実行する。
【００５１】
実施の形態４では、書き換えた実行フラグ４２の状態が、正しく動作する設定であるかをプログラム確認手段１００２を用いて確認してから、実際にプログラムの実行フラグ４２を書き換える。実施の形態５では、表形式プログラム中から、実行フラグ制御手段１７１を用いてセルの実行フラグ４２を操作する。セルの実行フラグ４２の操作は、スクリプト欄にスクリプトによって記述することも可能であるし、条件設定欄にデバイスと共にセルに設定する実行フラグ４２や、有効にする文字列を記述することも可能である。
【００５２】
実施の形態６では、各セルに文字列を設定し、有効文字列保持手段１８１に保持されている文字列と比較する。セルに記述されている文字列と、有効文字列保持手段１８１に保持されている文字列が一致する場合は、そのセルに記述されている内容を実行する。セルに記述されている文字列が、有効文字列保持手段１８１の中に保持されていない場合は、そのセルに記述されている内容は実行しない。また、セルの実行フラグ４２を設定する欄に文字列が設定されていない場合は、有効文字列保持手段１８１に格納されている文字列にかかわらず、そのセルの内容を実行する。
【００５３】
実施の形態７では、実行フラグ４２がONに成っているか、実行フラグ４２に設定されている文字列と同じ文字列が、有効文字列保持手段１８１に含まれている場合に、該当するセルの内容を表示する。それ以外のセルは表示しない。また、該当するセルとそれ以外のセルを異なる表示色で表示することにより、有効となっているセルをわかり易く表示することが可能である。
また、表形式プログラムでは、列単位、行単位での指定も可能である。
実施の形態３によると、行単位で代替行を作成したり、列単位で代替列を作成することが可能である。
【００５４】
また、実施の形態６によると、行単位で実行フラグ４２に有効文字列を設定したり、列単位で実行フラグ４２に有効文字列を設定することが可能である。有効文字列保持手段１８１に格納されている文字列と一致する行や列が実行される。したがって、多品種を扱うプログラムを記述する場合は、実行する行や列を、有効文字列保持手段１８１によって、調整することが可能である。
【図面の簡単な説明】
【００５５】
【図１】この発明のプログラム実行制御方式に使用されるシステムを示すブロック構成図である。
【図２】上記システムの動作を示す機能構成図である。
【図３】ファンクションブロックダイアグラムの一例を示す図である。
【図４】この発明の実施の形態１による実行フラグを設けたファンクションブロックの一例を示す図である。
【図５】上記実行フラグを持つファンクションブロックによって記述したファンクションブロックダイアグラムの一例を示す図である。
【図６】図５のファンクションブロックダイアグラムと等価なファンクションブロックダイアグラムである。
【図７】実行フラグを設けたファンクションブロックのデータフォーマットの例を示す図である。
【図８】上記実施の形態１におけるプログラム実行手段の処理を示すフローチャートである。
【図９】本発明の代替案を示すファンクションブロックダイアグラムである。
【００５６】
【図１０】本発明の実施の形態２におけるプログラム確認手段を備えたシステムの構成を示す図である。
【図１１】上記実施の形態２におけるプログラム確認手段の処理を示すフローチャートである。
【図１２】本発明の実施の形態２におけるプログラム表示手段の表示例を示す図である。
【図１３】同じく上記プログラム表示手段の他の表示例を示す図である。
【図１４】本発明の実施の形態３における代替回路を有する場合のファンクションブロックダイアグラムである。
【図１５】上記実施の形態３におけるファンクションブロックのデータフォーマットの例を示す図である。
【図１６】本発明の実施の形態４におけるオンライン書き換えを行う実行フラグ操作手段を備えたシステムの構成を示す図である。
【図１７】本発明の実施の形態５における実行フラグ制御手段を設けた場合の制御態様を示す図である。
【図１８】本発明の実施の形態６における実行フラグとして文字列を設定した場合のシステム構成例を示す図である。
【００５７】
【図１９】実行フラグに文字列を記述した例を示すファンクションブロックダイアグラムである。
【図２０】上記実施の形態６におけるプログラム実行手段の処理の流れを示すフローチャートである。
【図２１】実行フラグに定義する文字列を製品毎に設定した場合のファンクションブロックダイアグラムである。
【図２２】本発明の実施の形態７における有効ファンクションブロック検出手段を設けた場合のシステム構成図である。
【図２３】本発明の実施の形態８における実行フラグとしてフローチャートを設定した場合のシステム構成例を示す図である。
【図２４】本発明の実施の形態９における実行フラグとして表示器を設定した場合のシステム構成例を示す図である。
【図２５】この発明の一対象である検査システムのユニット構成を示す図である。
【図２６】上記検査システムのプログラマブル検査装置にて用いられる表形式プログラムの例を示す図である。
【図２７】本発明の実施の形態１０における実行フラグとして表形式プログラムの各要素を設定した場合のシステム構成例を示す図である。
【符号の説明】
【００５８】
２００  プログラム作成手段             ２０１  プログラム保持手段
２０２  プログラム実行手段             ２０３  データ保持手段     
２０４  入力手段                       ２０５  出力手段 
２０６  操作手段                      ２０７  表示手段 
３１〜３３、４１、１２１〜１２４         ファンクションブロック     
４２    実行フラグ               １００２  プログラム確認手段       
１００３  プログラム表示手段        １４１  代替ファンクションブロック
１６１  実行フラグ操作手段          １７１  実行フラグ制御手段 
１８１  有効文字列保持手段          ２２２  有効ＦＢ検出手段   
２３３  フローチャート実行手段      ２４４  表示実行手段       
２７３  表形式プログラム実行手段
【図１】
2005310056.tif 000003
【図２】
2005310056.tif 000004
【図３】
2005310056.tif 000005
【図４】
2005310056.tif 000006
【図５】
2005310056.tif 000007
【図６】
2005310056.tif 000008
【図７】
2005310056.tif 000009
【図８】
2005310056.tif 000010
【図９】
2005310056.tif 000011
【図１０】
2005310056.tif 000012
【図１１】
2005310056.tif 000013
【図１２】
2005310056.tif 000014
【図１３】
2005310056.tif 000015
【図１４】
2005310056.tif 000016
【図１５】
2005310056.tif 000017
【図１６】
2005310056.tif 000018
【図１７】
2005310056.tif 000019
【図１８】
2005310056.tif 000020
【図１９】
2005310056.tif 000021
【図２０】
2005310056.tif 000022
【図２１】
2005310056.tif 000023
【図２２】
2005310056.tif 000024
【図２３】
2005310056.tif 000025
【図２４】
2005310056.tif 000026
【図２５】
2005310056.tif 000027
【図２６】
2005310056.tif 000028
【図２７】
2005310056.tif 000029