(57)【特許請求の範囲】
【請求項１】
ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラム作成装置において、
前記制御プログラム作成装置は、テキスト言語及びグラフィック言語で制御プログラムを作成する制御プログラム編集部と、制御プログラムのソースファイルとオブジェクトファイルとを記憶するデータベース部と、前記制御プログラム編集部で作成された制御プログラムを画面表示する表示部と、当該表示部の画面の操作による操作信号を前記制御プログラム編集部へ出力する入力部と、を備え、
前記制御プログラム編集部は、予め前記コントローラへの入出力信号を生成する構成要素と前記制御プログラムの構成要素とを対応付けし、前記制御プログラムをテキスト言語及びグラフィック言語で記述して前記制御プログラムを作成するプログラムエディタ部と、前記制御プログラムのソースファイルをコンパイル処理してオブジェクトファイルに変換するコンパイラと、前記オブジェクトファイルを前記コントローラに送付するプログラムロードクライアント部と、を備え、
さらに、前記制御プログラムの予め設定されるタスク内の前記グラフィック言語で記述された回路図の任意の入出力点において、第1の入出力変数を遮断して、夫々を予め設定される第２の入出力変数に置換する遮断用入出力変数置換設定部を備え、
前記遮断用入出力変数置換設定部は、さらに、前記回路図の入出力点の入出力変数を、予め、入力点と出力点とで同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備え、
ユーザは前記回路図を参照して、デバッグ対象の入出力点を選択し、
選択した前記入出力点の入出力変数に対して、前記遮断用入出力変数登録テーブルを参照して、置換前の前記第1の入出力変数と置換後前記第２の入出力変数を同じデータ型のグローバル変数に置換することを設定し、
置換した前記第２の入出力変数で前記タスクを実行することを特徴とする制御プログラム作成装置。
【請求項２】
前記遮断用入出力変数置換設定部は、さらに、登録された遮断対象の前記タスク、前記タスクを構成するプログラム、及びその前記第1の入出力変数、及び前記第２の入出力変数を一覧できる遮断用入出力変数一覧テーブルを備え、
前記遮断用入出力変数一覧テーブルを参照して、前記第1の入出力変数と前記第２の入出力変数との置換、及び一括解除ができるようにしたことを特徴とする請求項1に記載の制御プログラム作成装置。
【請求項３】
ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラムのデバッグ方法であって、
前記制御プログラムの予め設定されるタスク内のグラフィック言語で記述された回路図の任意の入出力点の入出力変数を、予め、入力点と出力点とで同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備え、
ユーザは前記回路図を参照してデバッグ対象の入出力点を選択し、
選択した前記入出力点の入出力変数に対して、前記遮断用入出力変数登録テーブルを参照して、置換前の第1の入出力変数と置換後の第２の入出力変数を同じデータ型のグローバル変数に置換することを設定し、
置換した前記第２の入出力変数で前記タスクを実行することを特徴とする制御プログラムのデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御プログラム作成装置、及び制御プログラムのデバッグ方法に関する。
【背景技術】
【０００２】
システムプログラマは、プラントを自動運転するためのプログラムを、プラント制御装置のアプリケーションプログラム（以降、「制御プログラム」と呼ぶ）として、作成、試験、調整後、プラント運転者へ提供する。システムプログラマは、プラントを安全に制御するために、制御プログラムの調整時に制御プログラムのデバッグを行う。
【０００３】
制御プログラムは、例えばIEC61131-3で規定されているＬＤ（Ladder Diagram）やＦＢＤ（Function Block Diagram）などの言語を用いて記述される。制御プログラムのデバッグ時は、プログラムが動作中の状態で、制御プログラム単位の置き換え、または、接点や変数の値を強制変更することにより、制御プログラムの動作確認を行う。
【０００４】
この動作確認のとき、システムプログラマに対して、誤操作を招かないように、制御プログラム作成装置がわかりやすく提示することが求められる。
【０００５】
一般に、ダイアグラムの接続先を変更してデバッグする場合、元の制御プログラムの接続点の命令を置換して、その接続点に複数の命令数で構成するデバッグプログラムを挿入する場合には、ステップ数が変更されたプログラムを実行するために、コントローラ側のメモリ領域を変更する必要が生じるので、デバッグプログラムを挿入したり元のプログラムに復元したりすることが簡単に行なえない問題がある。
【０００６】
そのため、作成されたダイアグラムの分岐点を含む接続点に、複数の命令数で構成されるデバッグプログラムを挿入したり、復元したりすることが容易に行えるようにしたデバッグシステムがある（例えば、特許文献１参照。）。
【０００７】
また、特許文献２には、制御プログラムソースを自動的にバックアップし、プログラム設計者の負担を軽減するようにした制御プログラム作成装置がある（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２９４７８３号公報
【特許文献２】特開２０１１−２２７８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、予め作成された制御プログラムの変数の値のデバッグの場合には、新たな機能の追加でなく、複数のプログラムに跨る多数の変数の値のみの調整が容易に行える制御プログラム作成装置が求められる。
【００１０】
上述した特許文献1に開示された制御プログラムのデバッグシステムは、接続点を切断して、切断点に新たなデバッグプログラムを設定して接続点以降のダイアグラムの動作を確認するようにしたものである。
【００１１】
したがって、接続点に任意の関数や変数の値を設定することには向いているが、変数の最適値を求めたり、変数を任意の値に変更して制御プログラムの制御性や安全動作などの確認を行ったりするデバッグ作業に適用するには不向きである。
【００１２】
即ち、変数には多種類の形式があり、大規模な制御プログラムにおいては、複数のプログラムに跨る変数の設定作業は大量に存在するので、特許文献1に開示された方法で設定するには手間が掛かり、作業ミスが発生する恐れもある。
【００１３】
本発明は、上記問題点を解決するためになされたものであり、制御プログラムの変数の変更や調整が正確、且つ、効率よく行えるようにした制御プログラム作成装置、及び制御プログラムのデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本実施形態の制御プログラム作成装置は、ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラム作成装置において、前記制御プログラム作成装置は、テキスト言語及びグラフィック言語で制御プログラムを作成する制御プログラム編集部と、制御プログラムのソースファイルとオブジェクトファイルとを記憶するデータベース部と、前記制御プログラム編集部で作成された制御プログラムを画面表示する表示部と、当該表示部の画面の操作による操作信号を前記制御プログラム編集部へ出力する入力部と、を備え、前記制御プログラム編集部は、予め前記コントローラへの入出力信号を生成する構成要素と前記制御プログラムの構成要素とを対応付けし、前記制御プログラムをテキスト言語及びグラフィック言語で記述して前記制御プログラムを作成するプログラムエディタ部と、前記制御プログラムのソースファイルをコンパイル処理してオブジェクトファイルに変換するコンパイラと、前記オブジェクトファイルを前記コントローラに送付するプログラムロードクライアント部と、を備え、さらに、前記制御プログラムの予め設定されるタスク内の前記グラフィック言語で記述された回路図の任意の入出力点において、第1の入出力変数を遮断して、夫々を予め設定される第２の入出力変数に置換する遮断用入出力変数置換設定部を備え、前記遮断用入出力変数置換設定部は、さらに、前記回路図の入出力点の入出力変数を、予め、入力点と出力点とで同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備え、ユーザは前記回路図を参照して、デバッグ対象の入出力点を選択し、選択した前記入出力点の入出力変数に対して、前記遮断用入出力変数登録テーブルを参照して、置換前の前記第1の入出力変数と置換後前記第２の入出力変数を同じデータ型のグローバル変数に置換することを設定し、置換した前記第２の入出力変数で前記タスクを実行することを特徴とする。
【００１５】
上記目的を達成するために、本実施形態の制御プログラムのデバッグ方法は、ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラムのデバッグ方法であって、前記制御プログラムの予め設定されるタスク内のグラフィック言語で記述された回路図の任意の入出力点の入出力変数を、予め、入力点と出力点とで同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備え、ユーザは前記回路図を参照してデバッグ対象の入出力点を選択し、選択した前記入出力点の入出力変数に対して、前記遮断用入出力変数登録テーブルを参照して、置換前の第1の入出力変数と置換後の第２の入出力変数を同じデータ型のグローバル変数に置換することを設定し、置換した前記第２の入出力変数で前記タスクを実行することを特徴とする。
【図面の簡単な説明】
【００１６】
【図１】実施形態の制御プログラム作成装置の構成を説明する図。
【図２】実施形態の遮断用入出力変数置換方式の動作原理を説明する図。
【図３】本遮断用入出力変数置換方式の動作を説明するダイアグラムの例。
【図４】遮断用入出力変数登録テーブルの例。
【図５】制御プログラムのデバッグ方法の動作を説明するフロー図。
【図６】遮断用入出力変数置換設定のメニュー画面の例。
【図７】遮断用入出力変数置換設定の操作画面の例。
【図８】遮断用入出力変数置換設定の動作を説明する画面。
【図９】遮断用入出力変数置換設定の連続設定動作を説明する画面。
【図１０】入出力変数設定一覧で元の入出力変数の削除を保護する説明の例。
【図１１】遮断用入出力変数置換設定一覧画面と一括解除動作の説明の画面。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態に係る制御プログラム作成装置について図面を参照して説明する。
【００１８】
図１は本発明の一実施形態に係る制御プログラム作成装置の一構成例を概略的に示したものである。図１において、本実施形態に係る制御プログラム作成装置１００は、制御プログラムを生成し、生成した制御プログラムを、ネットワーク３００を介してダウンロードし、プラントのプロセスを制御するコントローラ２００に送る。
【００１９】
制御プログラム作成装置１００は、テキスト言語及びグラフィック言語で制御プログラムを作成する制御プログラム編集部１１０と、制御プログラムのソースファイルとオブジェクトファイルとを記憶するデータベース部１５０と、制御プログラム編集部１１０で作成された制御プログラムを画面表示する表示部１６０と、表示部１６０の画面の操作による操作信号を制御プログラム編集部１１０へ出力するマウス１２０及びキーボード１４０と、を備える。
【００２０】
制御プログラム編集部１１０は、予めコントローラ２００への入出力信号を生成するハードウェアの構成要素と制御プログラムのソフトウェアの構成要素とを対応付けし、IEC61131-3で規定されているＬＤ（Ladder Diagram）やＦＢＤ（Function Block Diagram）などのグラフィック言語、及びテキスト言語でプログラムを記述して制御プログラムを作成するプログラムエディタ部１１２と、制御プログラムのソースファイルをコンパイル処理してオブジェクトファイルに変換するコンパイラ１１４と、オブジェクトファイルをコントローラに送付するプログラムロードクライアント部１１６と、を備える。
【００２１】
さらに、制御プログラムのタスク内のグラフィック言語で記述された回路図の任意の入出力点において、第１の入出力変数を遮断して、夫々を予め設定される第２の入出力変数に置換する遮断用入出力変数置換設定部１１８を備える。
【００２２】
また、遮断用入出力変数置換設定部１１８は、回路図の入出力点の入出力変数を、予め、同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備える。
【００２３】
次に、コントローラ２００は、制御プログラムのオブジェクトファイルを格納するためのオブジェクトメモリ２１０と、これらの書き込み、読み出し、処理を実行する標準処理部２２０を有している。
【００２４】
さらに、オブジェクトメモリ２１０は、データメモリ２１２とコードメモリ２１４とを有している。
【００２５】
標準処理部２２０は、プログラムロードサーバ部２２２と、オブジェクトメモリ２１０に記録された制御プログラムを実行するためのプログラム実行処理部２２４と、制御対象であるプラントからのプロセス信号を制御プログラムに与えるためのプロセス入出力処理部２２６とを備える。
【００２６】
プログラムロードサーバ部２２２は、ネットワーク３００を経由して制御プログラム作成装置１００から送付された制御プログラムのオブジェクトファイルを、オブジェクトメモリ２１０のデータメモリ２１２およびコードメモリ２１４に配置する。
【００２７】
次に、図２〜図４を参照して、このように構成された制御プログラム作成装置１００を使用して制御プログラムの入出力変数を置換し、制御プログラムのデバッグを効率よく行う動作原理について説明する。
【００２８】
図２は、本発明の動作原理の概略を説明する図で、制御プログラムの動作中に、デバッグしたい対象のタスク内の回路の入出力点について、予め設定された入力点の入力変数を他の遮断用入力変数に、また、その出力点の出力変数を他の遮断用出力変数に置換し、入力元の状態にかかわらず、デバッグしたい任意の値に固定し、また、元の出力先のへの出力を遮断し、出力点の出力値を任意の値に固定して、置換した遮断用入出力変数の値で、タスクまたは回路を動作させてデバッグするものである。
【００２９】
例えば、図３（ａ）のＬＤ(Ladder Diagram)は、左母線に接続された４つのｂ接点（VLA032B1、VLA037B1、VLA039B1、VLA303B1）が並列に接続され、その出力がコイル(VLA030A)にＡＮＤ接続された回路を示す。これらの変数は全てブール(BOOL)型である。
【００３０】
図３（ｂ）は、このｂ接点の内２つの変数（VLA032B1、VLA037B1）を、同じブール型の変数（ISZ0_ON、ISZ0_OFF）に置換し、その出力変数（VLA030A）をブール型の変数（ISZ0_BOOL）に置換した状態を図示している。
【００３１】
本発明の動作原理は、このように遮断したい回路の入出力点の変数を、置換前と置換後で同じデータ型で、且つ、入出点と出力点とで同じデータ型の変数に置換することによって、出力先の変数に影響を与えないように遮断して、回路の動作のデバッグを行うものである。
【００３２】
そこで、図４に示すように、予め回路に存在する入出力変数について元の回路の変数と同じデータ型の遮断用入出力変数とそのアドレスとを、予め遮断用入出力変数置換テーブルに登録しておく。
【００３３】
そして、動作中の制御プログラムのデバッグしたいタスクの回路において、対象とする変数を、この遮断用入出力変数置換テーブルを参照して置換設定して、置換した変数の状態でタスクを起動してデバッグを行うものである。
【００３４】
次に、このような動作原理に基づくデバッグ動作の詳細について図５〜図１１を参照して説明する。
【００３５】
先ず、デバッグ操作を行う前の制御プログラム作成装置１００の準備作業について図５（ａ）を参照して説明する。制御プログラムの作成作業は、プログラムエディタ部１１２のエディタ機能を使用して、コントローラ（ＣＰＵ）２００が制御するシステムの全体のハードウェアとソフトウェアの構成が登録される（ｓ１）。
【００３６】
そして、プログラムの構成と使用する変数がコントローラ２００のハードウェアに割り当てられる。この変数登録においては、図４に示したような遮断用入出力変数が、グローバル変数として設定される（ｓ２）。
【００３７】
そして、複数のタスクと、実行時プログラムが定義され、制御プログラムが登録される（ｓ３）。
【００３８】
登録された制御プログラムは、コントローラにダウンロードされて（ｓ４）、プラントで使用されるが、デバッグは、プラントで使用される前、及び使用後において、制御プログラムの動作確認や保守のために必要となる。
【００３９】
プラントで使用する前においては、プラントの入出力信号の状態をシミュレートして制御プログラムの動作を確認するが、プラントの入出力信号は直接接続できないので、実信号を模擬した模擬信号を接続したり、制御プログラムの入出力信号をプログラムで入出力変数の値を変えてプログラムによりテストしたりする。
【００４０】
プラントの入出力信号は、大きなシステムにおいては数万点となるものもあり、このデバッグ作業を正確に効率よく行うことが求められる。
【００４１】
次に、本実施形態によるデバッグ動作を図５（ｂ）のフロー図を参照して説明する。先ず、遮断用入出力変数置換設定部１１８に備えるデバッグを行うための操作画面の例について説明する。
【００４２】
図６は、遮断用入出力変数置換設定部１１８のメニュー選択画面で、予め選択したタスクの入出力変数の置換対象となる回路図画面上にポップアップさせる。
【００４３】
図７は、選択した回路図上の画面に選択した入出力変数の置換を選択し、制御プログラムに書き込み、解除（元に戻す）ことを操作する遮断用入出力変数置換設定画面の例である。
【００４４】
また、図８は、予め選択された回路図画面に対して、図７の遮断用入出力変数置換設定画面を使用した場合の動作例を説明するための表示画面の例で、同じく図９は、複数の入出力変数を置換設定する、連続設定動作を説明する場合の表示画面の例である。
【００４５】
また、図１０は、遮断用入出力変数置換設定時に元の入出力変数の削除を保護するための表示画面の例で、図１１は、遮断用入出力変数置換設定一覧画面と一括操作画面の表示画面の例である。
【００４６】
図５（ｂ）において、先ず、ユーザは選択されたタスクの回路図を参照して、デバッグ対象の入出力点を選択する（ｓ１１）。
【００４７】
この操作は、例えば、回路図上にポップアップした図６のメニュー画面から、遮断用入出力変数置換画面を選択する。すると、図７に示すような遮断用入出力変数置換設定画面が表示され、さらに、図８（ａ）に示す回路図の対象のデバイス変数VIO_DI_001をクリックすると、選択された遮断用入出力変数置換設定画面から、遮断用入出力変数情報が、例えば、BOOL形の入力変数ISZI_ON、及びISZI_ONのように表示される。
【００４８】
そして、この図８（ｂ）書き込みボタンをクリックすると、選択前の図８（ａ）に示す元の置換前の回路図が図８(ｃ)のように更新され、設定された変数が、例えば、破線で示すような赤枠で表示されて、選択設定が可能となったことを示す。
【００４９】
また、複数の入出力変数がある場合には、遮断用の入出力変数は連続して設定することが可能である。
【００５０】
また、図８（ｃ）に示す元の入力変数VIO_AI_001、及びVIO_AI_002は、図９（ａ）に示すように、予め登録された標準のデータ型の遮断用入出力変数ISZI_WORDは、２カ所に同じ値が設定される。
【００５１】
さらに、制御プログラムに書き込みが完了すると、例えば、図９（ｂ）に示すように、置換する入力変数の背景色変えて表示させ、書き込みの完了が容易に行えるようにすることも可能である。
【００５２】
また、多数の入出力変数の置換を登録するので、元の変数の値が解除されることを防ぐため、図４に示す遮断用入出力変数登録テーブルに連動して表示される図１０に示すような変数の入出力変数設定一覧画面には、変数の値が解除されないように、解除操作に対して警告メッセージを表示しておく。
【００５３】
また、この遮断用入出力変数置換設定においては、これらの変数操作の内容を図１１に示すような一覧表にして管理することが望ましい。
【００５４】
即ち、図１１に示す遮断用入出力変数置換設定一覧の画面には、タスク（エントリ）No．  、プログラム名、ルーチン名、元の変数名、遮断用入出力変数名を一覧として記述しておき、この画面と変数の部分解除、全解除、表示更新等のアクセス機能を連動させることで、デバッグ作業の正確さと効率とを上げることができる。
【００５５】
再び、図５を参照して説明する。このようにして、デバッグ対象の入出力変数の置換設定が完了すると（ｓ１１〜ｓ１２）、設定した遮断用入出力変数値で制御プログラムの動作を実行し、その評価を行う（ｓ１３）。
【００５６】
変数の最適値などを求める場合には、変数値の設定から評価までのサイクル（ｓ１１〜ｓ１４）を繰り返すことで容易に作業が進められる。
【００５７】
そして、評価が完了すると、置換した入出力変数の解除(元に戻す)、または登録(置換設定)される（ｓ１５）。
【００５８】
このような遮断用入出力変数置換設定部１１８を備える制御プログラム作成装置１００は、ユーザが回路図を参照してデバッグ対象の入出力点を選択し、選択した前記入出力点の入出力変数対して、遮断用入出力変数登録テーブルを参照して、置換前の第1の入出力変数と置換後第２の入出力変数を同じデータ型のグローバル変数に置換することを設定し、置換した第２の入出力変数でタスクを実行することが容易に行える。
【００５９】
また、遮断用入出力変数一覧テーブルを参照して、第1の入出力変数と第２の入出力変数の置換、及び一括解除の設定が可能である。この一括解除の機能は、制御プログラムのコンパイル操作を最小限に抑えることができる効果がある。
【００６０】
以上説明したように、本実施形態に依れば、ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラムのデバッグ方法に依れば、制御プログラムの変数の変更や調整が正確、且つ、効率よく行えるようにした制御プログラム作成装置、及び制御プログラムのデバッグ方法を提供することができる。
【００６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６２】
１００  制御プログラム作成装置
１１０  プログラムエディタ部
１１２  プログラムエディタ部
１１４  プログラムコンパイラ
１１６  プログラムロードクライアント部
１１８  遮断用入出力変数置換設定部
１２０  マウス
１４０  キーボード
１５０  データベース部
１５２  ソースファイル部
１５４  オブジェクトファイル部
１６０  表示部
２００  コントローラ
２１０  制御プログラム編集部
２１２  データメモリ
２１４  コードメモリ
２２０  標準処理部
２２２  プログラムロードサーバ部
２２４  プログラム実行処理部
２２６  プロセス入出力処理部
３００  ネットワーク
【図１】
0006483507.tif 000002
【図２】
0006483507.tif 000003
【図３】
0006483507.tif 000004
【図４】
0006483507.tif 000005
【図５】
0006483507.tif 000006
【図６】
0006483507.tif 000007
【図７】
0006483507.tif 000008
【図８】
0006483507.tif 000009
【図９】
0006483507.tif 000010
【図１０】
0006483507.tif 000011
【図１１】
0006483507.tif 000012