(57)【要約】【課題】無駄に消費される計算機資源を節約すること。【解決手段】図形言語で表された制御ロジックから外部出力または外部表示に無関係な出力演算ブロックを検出し、検出した出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、出力演算ブロックから分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置を提供する。【選択図】図１
2008176639.tif 000002
【特許請求の範囲】
【請求項１】
図形言語で表された制御ロジックから外部出力または外部表示に無関係な出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置。
【請求項２】
図形言語で表された制御ロジックから固定入力を与える演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置。
【請求項３】
図形言語で表されたマクロ演算ブロックにおいて、外部の制御ロジックと結線されていない出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置。
【請求項４】
前記削除候補ブロックを削除する請求項１から請求項３のいずれかに記載の制御ロジック修正装置。
【請求項５】
前記削除候補ブロックを削除した後の前記制御ロジックを表示する表示装置に接続されている請求項１から請求項４のいずれかに記載の制御ロジック修正装置。
【請求項６】
前記制御ロジックにおいて、削除可能な演算ブロックの領域が指定可能とされている請求項１から請求項５に記載の制御ロジック修正装置。
【請求項７】
図形言語で表された制御ロジックから外部出力または外部表示に無関係な出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する検出処理をコンピュータに実行させるための制御ロジック修正プログラム。
【請求項８】
図形言語で表された制御ロジックから固定入力を与える演算ブロックを削除候補ブロックとして検出する検出処理をコンピュータに実行させるための制御ロジック修正プログラム。
【請求項９】
図形言語で表されたマクロ演算ブロックにおいて、外部の制御ロジックと結線されていない出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する検出処理をコンピュータに実行させるための制御ロジック修正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵやメモリ等の計算機資源を有効に利用することのできる制御ロジック修正装置及びプログラムに関するものである。
【背景技術】
【０００２】
従来、プラントやロボット等の制御を行う制御プログラムのロジックを図形的に表現するために、図形言語が広く使用されている。図形言語で記述されたプログラムは、プログラムに記述されたロジックを視野的に直感的に把握することが可能であり、ユーザフレンド性に優れている。図形言語プログラムでは、制御ロジックが図形要素とそれらを結びつける結線とによって表現される。図形要素は、それぞれが所定の演算を示していることから演算要素とも呼ばれている。
また、大規模な制御対象を制御する場合には、制御ロジックが複雑化するため、効率よくプログラムを作成するためにマクロ演算ブロックが使用される。マクロ演算ブロックは、ある特定の機能が集約されたブロックであり、複数の演算要素で構成される。このマクロ演算ブロックを組み合わせることにより、複雑なロジックを簡略に表現することが可能となる。
例えば、特開２００４−５０４７号公報には、マクロ演算ブロックを用いてプログラムの作成効率を向上させることが開示されている。
【特許文献１】特開２００４−５０４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、マクロ演算ブロックを使用する場合、マクロ演算ブロックを構成する全ての演算要素が出力に寄与するわけではなく、実際には使用されない無駄な演算要素が含まれることがある。このため、ＣＰＵ負荷やメモリが無駄に消費されるという問題があった。
同様に、マクロ演算ブロックを使用しない制御ロジックにおいても、実際の出力に影響しない無駄な演算要素が含まれており、これらによってＣＰＵ負荷やメモリが無駄に消費されていた。
【０００４】
本発明は、上記問題を解決するためになされたもので、無駄に消費される計算機資源を節約することのできる制御ロジック修正装置および制御ロジック修正プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明は、図形言語で表された制御ロジックから外部出力または外部表示に無関係な出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置を提供する。
【０００６】
上記構成によれば、外部出力または外部表示に無関係な出力演算ブロック、更に、該出力演算ブロックに結線されているが、出力演算に寄与しない演算ブロックを削除候補ブロックとして検出するので、これらの無駄な演算ブロックを削除する、或いは、演算時に無視することが可能となる。
【０００７】
本発明は、図形言語で表された制御ロジックから固定入力を与える演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置を提供する。
【０００８】
上記構成によれば、固定入力を与える演算ブロックを削除候補ブロックとして検出するので、これらの無駄な演算ブロックを削除する、或いは、演算時に無視することが可能となる。
【０００９】
本発明は、図形言語で表されたマクロ演算ブロックにおいて、外部の制御ロジックと結線されていない出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する制御ロジック修正装置を提供する。
【００１０】
上記構成によれば、マクロ演算ブロックにおいて、外部の制御ロジックと結線されていない出力演算ブロック、更に、該出力演算ブロックに結線されているが、出力演算に寄与しない演算ブロックを削除候補ブロックとして検出するので、これらの無駄な演算ブロックを削除する、或いは、演算時に無視することが可能となる。
【００１１】
上記制御ロジック修正装置は、前記削除候補ブロックを削除することとしてもよい。
このように、削除候補ブロックを削除することにより、メモリの空き容量を増加させることができるとともに、ＣＰＵ負荷の低減を図ることができる。
【００１２】
上記制御ロジック修正装置は、前記削除候補ブロックを削除した後の前記制御ロジックを表示する表示装置に接続されていてもよい。
このように、削除後の制御ロジックが表示装置に表示されるので、ユーザは、修正後の制御ロジックを確認することができる。
【００１３】
上記制御ロジック修正装置は、前記制御ロジックにおいて、削除可能な演算ブロックの領域が指定可能とされていることとしてもよい。
このように、制御ロジックにおいて、削除可能な演算ブロックの領域が指定可能とされているので、削除したい演算ブロックのみを削除候補ブロックの検索対象とすることが可能となる。これにより、削除したくない演算ロジックをそのまま残すことができる。
【００１４】
本発明は、図形言語で表された制御ロジックから外部出力または外部表示に無関係な出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する検出処理をコンピュータに実行させるための制御ロジック修正プログラムを提供する。
【００１５】
本発明は、図形言語で表された制御ロジックから固定入力を与える演算ブロックを削除候補ブロックとして検出する検出処理をコンピュータに実行させるための制御ロジック修正プログラムを提供する。
【００１６】
本発明は、図形言語で表されたマクロ演算ブロックにおいて、外部の制御ロジックと結線されていない出力演算ブロックを検出し、検出した前記出力演算ブロックから入力側へ向けて結線を順次辿り、当該結線ルートとは異なる結線ルートに接続されている分岐演算ブロックに到達した場合に、前記出力演算ブロックから前記分岐演算ブロックの一つ手前までの全ての演算ブロックを削除候補ブロックとして検出する検出処理をコンピュータに実行させるための制御ロジック修正プログラム。
【００１７】
また、上記制御ロジック修正装置及び制御ロジック修正プログラムは、例えば、火力発電所等で用いられるボイラやタービン等の産業用機器を制御するための制御ロジックの修正を行うのに適したものである。
【発明の効果】
【００１８】
本発明によれば、無駄に消費される計算機資源を節約することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明の一実施形態に係る制御ロジック修正装置および制御ロジック修正プログラムについて図面を参照して説明する。
図１は、本発明の一実施形態に係る制御ロジック修正装置の概略構成を示すブロック図である。制御ロジック修正装置１は、いわゆるパーソナルコンピュータであり、例えば、図示しないＣＰＵ（中央演算装置）、ＨＤ（Hard Disc）、ＲＯＭ（Read
Only Memory）、ＲＡＭ（Random Access Memory）等を備えている。制御ロジック修正装置１には、図形言語によって制御プログラムの作成を行うための作図プログラム、例えば、ＭＡＴＬＡＢ等の数値解析プログラム等がインストールされている。また、これらのプログラムによって作成された制御ロジックの無駄を検出して修正するための制御ロジック修正プログラムがインストールされている。
【００２０】
制御ロジック修正装置１は、入力装置２および表示装置３に接続されている。
入力装置２は、例えば、マウス、ポインティングデバイス、キーボード等である。また、表示装置３の表示画面をタッチパネルとして形成することにより、表示装置３に入力装置２の機能を付加することも可能である。表示装置３は、例えば、ＣＲＴ（cathode-ray tube）やＬＣＤ（liquid Crystal
Display）等である。
また、制御ロジック修正装置１は、制御装置４と通信回線を介して接続されている。制御ロジック修正装置１において修正された制御ロジックは、通信回線を介して制御装置４へ送信され、制御装置４において当該制御ロジックに対応する制御プログラムが実行されることにより、図示しない制御対象が制御装置４により制御されることとなる。制御対象としては、例えば、火力発電所等で用いられるボイラやタービン等の産業用機器が挙げられる。
【００２１】
次に、上記構成からなる制御ロジック修正装置１により取り扱われる制御ロジックの一例を図２に示す。この図に示すように、制御ロジックは、コンピュータによって実行されるコンピュータ言語で記載される制御プログラムを人間が容易に解読することができるように、図形言語を用いて表わされたものである。
例えば、制御ロジックは、その制御機能に応じた各種演算ブロック（演算要素）２０により表現される。演算ブロック２０としては、例えば、入力情報を表す入力演算ブロック、出力結果を表す出力演算ブロック、算術演算子、論理演算子等の演算子を表す各種演算ブロック等が挙げられる。そして、これらの演算ブロック２０が制御プログラムの演算手順に従って結線２１されて表示されていることにより、人間が制御プログラムの内容を理解しやすいようになっている。
【００２２】
次に、上述した制御ロジック修正装置１により実現される制御ロジック修正方法について、図を参照して説明する。
まず、制御ロジックを修正する場合には、制御ロジック修正装置１が備えるＣＰＵにより制御ロジック修正プログラムが実行される。制御ロジック修正プログラムは、主に、後述するメインルーチン１及びメインルーチン２から構成されている。メインルーチン１は、出力とは無関係な演算ブロックを検出して削除するためのプログラムであり、メインルーチン２は、固定入力値を与える演算ブロックを検出して削除するためのプログラムである。
【００２３】
メインルーチン１では、まず、各演算ブロックに対して、その演算ブロックの種別が出力を行う出力演算ブロックか否かを判定する（図３のステップＳＡ１）。この結果、出力演算ブロックでなかった場合には（ステップＳＡ１において「ＮＯ」）、ステップＳＡ４に進む。一方、当該演算ブロックが出力を行う演算ブロックであった場合には（ステップＳＡ１において「ＹＥＳ」）、ステップＳＡ２において、外部出力または外部表示に関係するか否かを判定する。
この結果、外部出力または外部表示に関係すると判定した場合には（ステップＳＡ２において「ＹＥＳ」）、ステップＳＡ４に進み、関係しないと判定した場合には（ステップＳＡ２において「ＮＯ」）、ステップＳＡ３に進み、サブルーチン１を実行する。
【００２４】
サブルーチン１では、当該演算ブロックに、既に削除候補ブロックである旨を示すフラグが立っているか否かを判定する（図４のステップＳＢ１）。この結果、フラグが立っていた場合には（ステップＳＢ１において「ＹＥＳ」）、当該サブルーチン１を終了し、フラグが立っていなかった場合には（ステップＳＢ１において「ＮＯ」）、ステップＳＢ２に進み、当該演算ブロックにフラグを立て、続くステップＳＢ３において、当該演算ブロックの入力側の演算ブロックが他の結線ルートを有するか否かを判定する。
この結果、他の結線ルートを有していない場合には（ステップＳＢ３において「ＮＯ」）、ステップＳＢ４に進み、入力側の演算ブロックに対しても当該サブルーチン１を実行する。一方、他の結線ルートを有していた場合には、当該サブルーチン１を終了する。
【００２５】
サブルーチン１の処理が終了すると、上述のメインルーチン１のステップＳＡ４に進む。ステップＳＡ４では、全演算ブロックについて処理済みか否かを判定する。この結果、全ての演算ブロックについて処理を行っていなかった場合には、未処理の演算ブロックを指定し（ステップＳＡ５）、ステップＳＡ１に戻り、当該演算ブロックに対しても上述した処理を繰り返し行う。
一方、ステップＳＡ４において、全ての演算ブロックについて処理を行っていた場合には、ステップＳＡ６に進み、フラグが立っている演算ブロックを削除し、当該メインルーチン１を終了する。
【００２６】
次に、上述したメインルーチン１について、具体的な例を挙げて説明する。
例えば、図５に示すような制御ロジックを例示した場合、演算ブロックＢＬ１では、図３に示したメインルーチン１のステップＳＡ１、ステップＳＡ２において、外部出力または外部表示に関係しない出力演算ブロックであると判定され、ステップＳＡ３においてサブルーチン１が実行される。サブルーチン１のステップＳＢ１，２Ｂ２では、当該演算ブロックＢＬ１に削除候補ブロックであることを示すフラグが立てられ、更に、ステップＳＢ３において、当該演算ブロックＢＬ１の入力側の演算ブロックＢＬ２が他の結線ルートを有するか否かが判定される。この結果、演算ブロックＢＬ２は、他の結線ルートを有していないので、この演算ブロックＢＬ２についてもサブルーチン１が実行されることとなる。
【００２７】
これにより、ステップＳＢ１，ＳＢ２において、当該演算ブロックＢＬ２においてもフラグが立てられ、更に、ステップＳＢ３において、当該演算ブロックＢＬ２の入力側の演算ブロックＢＬ３が他の結線ルートを有するか否かが判定される。この結果、演算ブロックＢＬ３は、他の結線ルートを有しているので、ステップＳＢ３において「ＹＥＳ」と判断され、サブルーチン１が終了される。
【００２８】
また、図５に示した制御ロジックにおける演算ブロックＢＬ４においては、メインルーチン１のステップＳＡ１、ステップＳＡ２において、外部出力または外部表示に関係しない出力演算ブロックであると判定され、ステップＳＡ３においてサブルーチン１が実行される。サブルーチン１においては、当該演算ブロックＢＬ４にフラグが立てられた後、ステップＳＢ３において、この演算ブロックＢＬ４の入力側に結線されている演算ブロックＢＬ５が他の結線ルートを有するか否かが判定される。この結果、演算ブロックＢＬ５は、他の結線ルートを有していないので、この演算ブロックＢＬ５についてもサブルーチンが実行されることとなる。
【００２９】
そして、同様の処理を進めていくことにより、演算ブロックＢＬ５、演算ブロックＢＬ５の入力側に結線されている演算ブロックＢＬ６、演算ブロックＢＬ６の入力側に結線されている演算ブロックＢＬ７についても、いずれも他の結線ルートを有していないと判断され、最終的に演算ブロックＢＬ４からＢＬ７のそれぞれに対してフラグが立てられることとなる。
【００３０】
この結果、メインルーチン１のステップＳＡ６において、フラグが立てられている演算ブロックＢＬ１，ＢＬ２，ＢＬ４〜ＢＬ７が削除され、メインルーチン１が終了される。
このように、メインルーチン１及びサブルーチン１が実行されることにより、外部出力または外部表示に無関係な演算ブロックを削除することが可能となる。
【００３１】
続いて、ＣＰＵは、制御ロジックの更なる修正を行うべく、メインルーチン２を実行する。
メインルーチン２では、まず、各演算ブロックに対して、その演算ブロックが入力演算ブロックであるか否かを判定する（図６のステップＳＣ１）。この結果、その演算ブロックが入力演算ブロックでなかった場合には、ステップＳＣ４に進む。一方、当該演算ブロックが入力演算ブロックであった場合には（ステップＳＣ１において「ＹＥＳ」）、その出力が固定値か否かを判定する（ステップＳＣ２）。この結果、出力が固定値でなかった場合には（ステップＳＣ２において「ＮＯ」）、ステップＳＣ４に進み、一方、出力が固定値であった場合には（ステップＳＣ２において「ＹＥＳ」）、ステップＳＣ３に進み、当該演算ブロックに対してサブルーチン２を実行する。
【００３２】
サブルーチン２では、まず、当該演算ブロックに既に削除候補ブロックである旨を示すフラグが立っているか否かを判定する（図７のステップＳＤ１）。この結果、フラグが立っていた場合には（ステップＳＤ１において「ＹＥＳ」）、当該サブルーチン２を終了する。一方、フラグが立っていなかった場合には（ステップＳＤ１において「ＮＯ」）、ステップＳＤ２に進み、当該演算ブロックにフラグを立て、続くステップＳＤ３において、当該演算ブロックが出力側に演算ブロックを有するか否かを判定する。この結果、出力側に演算ブロックを有さない場合には（ステップＳＤ３において「ＮＯ」）、当該サブルーチン２を終了する。一方、ステップＳＤ３において、出力側に演算ブロックを有する場合には（ステップＳＤ３において「ＹＥＳ」）、ステップＳＤ４に進み、出力側の演算ブロックに対して、その演算ブロックからの入力結線を止め、その演算ブロックの固定出力値を入力パラメータに置き換える。続いて、ステップＳＤ５において、入力が固定値となったことで、出力側演算ブロックも固定出力とされたか否かを判定する。この結果、固定出力とされなかった場合には（ステップＳＤ５において「ＮＯ」）、当該サブルーチン２を終了する。
一方、固定出力とされた場合には（ステップＳＤ５において「ＹＥＳ」）、ステップＳＤ６に進み、その出力側演算ブロックに対してもサブルーチン２を実行する。
【００３３】
サブルーチン２が終了すると、上述のメインルーチン２に戻り、全演算ブロックについて処理済みか否かを判定する（ステップＳＣ４）。この結果、全ての演算ブロックについて処理を行っていなかった場合には、未処理の演算ブロックを指定し（ステップＳＣ５）、ステップＳＣ１に戻り、当該演算ブロックに対しても上述した処理を繰り返し行う。
一方、ステップＳＣ４において、全ての演算ブロックについて処理を行っていた場合には、ステップＳＣ６に進み、フラグが立っている演算ブロックを削除し、当該メインルーチン２を終了する。
【００３４】
次に、上述したメインルーチン２について、具体的な例を挙げて説明する。
例えば、図５に示すような制御ロジックを例示した場合、演算ブロックＢＬ１０では、メインルーチン２のステップＳＣ１において入力演算ブロックであると判定され、続くステップＳＣ２において、固定値を出力すると判定されて、ステップＳＣ３においてサブルーチン２が実行される。サブルーチン２のステップＳＤ１，２Ｄ２では、当該演算ブロックＢＬ１０に削除候補ブロックであることを示すフラグが立てられ、更に、ステップＳＤ３において、当該演算ブロックＢＬ１０が出力側に演算ブロックを有するか否かが判定される。この結果、演算ブロックＢＬ１０は、出力側に演算ブロックＢＬ１１を有するので、ステップＳＤ４に進む。ステップＳＤ４では、演算ブロックＢＬ１０からＢＬ１１への入力結線が止められ、演算ブロックＢＬ１０の固定出力値を演算ブロックＢＬ１１への入力パラメータに置き換えられ、更に、ステップＳＤ５において、演算ブロックＢＬ１１の出力側演算ブロックが固定出力とされたか否かが判定される。この結果、演算ブロックＢＬ１１の出力も固定値であるので、この演算ブロックＢＬ１１についてもサブルーチン２が実行されることとなる。
【００３５】
これにより、ステップＳＤ１，ＳＤ２では、当該演算ブロックＢＬ１１においてもフラグが立てられ、更に、ステップＳＤ３において、当該演算ブロックＢＬ１１が出力側に演算ブロックを有するか否かが判定される。この結果、演算ブロックＢＬ１１は、出力側に演算ブロックＢＬ１２を有するので、ステップＳＤ４に進む。ステップＳＤ４では、演算ブロックＢＬ１１からＣ１２への入力結線が止められ、演算ブロックＢＬ１１の固定出力値が演算ブロックＢＬ１２への入力パラメータに置き換えられ、更に、ステップＳＤ５において、演算ブロックＢＬ１１の出力側の演算ブロックＢＬ１２が固定出力とされたか否かが判定される。この結果、演算ブロックＢＬ１２の出力は、他の結線ルートからの入力により変化する変数であるので、ステップＳＤ５において「ＮＯ」と判断し、本サブルーチン２が終了される。
【００３６】
この結果、メインルーチン２のステップＳＣ６において、フラグが立てられている演算ブロックＢＬ１０，ＢＬ１１が削除され、メインルーチン２が終了される。
このように、メインルーチン２及びサブルーチン２が実行されることにより、固定入力値を与える演算ブロックを削除することが可能となる。
図８は、図５に示した制御ロジックにおいて、上記メインルーチン１、２が実行されることにより削除候補ブロックとして指定された演算ブロックを点線で示した図である。
【００３７】
以上説明してきたように、本実施形態に係る制御ロジック修正装置１及び制御ロジック修正プログラムによれば、出力等に寄与しない演算ブロックや固定入力値を与えるに過ぎない演算ブロックを検出し、これらの無駄な演算ブロックを削除するので、修正後における制御ロジックの実行時におけるＣＰＵの処理負担を軽減することができるとともに、当該制御ロジックを保存しておくメモリの使用容量を小さくすることができる。この結果、無駄に消費される計算機資源を節約することができる。
【００３８】
本実施形態においては、通常の制御ロジックを例示して説明したが、図９に示すように、マクロ制御ロジックのように階層化されている制御ロジックについても適用することが可能である。この場合には、例えば、図３のステップＳＡ１において、マクロ制御ロジック内において、外部に結線されていない出力演算ブロックを検出し、この出力演算ブロックに対して同様の処理を実行することとすればよい。なお、図９において、点線で示されている演算ブロックは、上記メインルーチン１、２が実行されることにより削除候補ブロックとして指定される演算ブロックである。
【００３９】
また、上記実施形態においては、削除候補ロジックを削除した後の制御ロジックを表示装置３に表示させることとしてもよい。
また、これに代えて、制御ロジック修正装置１においては、削除候補ロジックの削除を行わずにフラグのみたてることで、削除候補ロジックであることが判別できる状態としておき、このような制御ロジックを実行する制御装置４において、制御プログラムの実行時に、削除候補ロジックについては処理を実行しないようにしてもよい。このようにすることで、制御ロジック修正装置におけるメモリの節約はできないが、制御装置４におけるＣＰＵの負荷軽減については実現させることができる。
【００４０】
また、上記実施形態において、削除したくない制御ブロックが存在する場合には、ユーザが、その制御ブロックを削除不可ブロックとして指定できるようにしてもよい。例えば、図１０に示すように、削除不可領域として削除されたくない制御ロジックを指定することで、この制御ロジックについては、上記制御ロジック修正処理において、自動的に削除されることを回避することが可能となる。
【００４１】
また、このような態様のほかに、上記メインルーチン１、２において、フラグが立っている演算ブロックを自動的に削除するのではなく、一旦、削除候補ブロックとして指定された演算ブロックを表示装置３に表示することにより、ユーザに通知し、この削除候補ブロックとして検出されたブロックの中からユーザによって削除実行が指示されたブロックのみを削除することとしてもよい。
【００４２】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係る制御ロジック修正装置及びその周辺機器を示した図である。
【図２】制御ロジックの一例を示した図である。
【図３】本発明の一実施形態に係る制御ロジック修正装置により実行される制御ロジック修正プログラムを構成するメインルーチン１のフローチャートである。
【図４】メインルーチン１の中で実行されるサブルーチン１のフローチャートである。
【図５】制御ロジックの一例を示した図である。
【図６】本発明の一実施形態に係る制御ロジック修正装置により実行される制御ロジック修正プログラムを構成するメインルーチン２のフローチャートである。
【図７】メインルーチン２の中で実行されるサブルーチン２のフローチャートである。
【図８】図５に示した制御ロジックにおいて、メインルーチン１及び２が実行されることにより、削除候補ブロックとして指定された演算ブロックを点線で示した図である。
【図９】マクロ制御ロジックにおいて、メインルーチン１及び２が実行されることにより、削除候補ブロックとして指定された演算ブロックを点線で示した図である。
【図１０】削除不可領域について示した図である。
【符号の説明】
【００４４】
１  制御ロジック修正装置
２  入力装置
３  表示装置
４  制御装置
【図１】
2008176639.tif 000003
【図２】
2008176639.tif 000004
【図３】
2008176639.tif 000005
【図４】
2008176639.tif 000006
【図５】
2008176639.tif 000007
【図６】
2008176639.tif 000008
【図７】
2008176639.tif 000009
【図８】
2008176639.tif 000010
【図９】
2008176639.tif 000011
【図１０】
2008176639.tif 000012