(58)【調査した分野】(Int.Cl.,DB名)
前記遮断用入出力変数置換設定部は、さらに、登録された遮断対象の前記タスク、前記タスクを構成するプログラム、及びその前記第1の入出力変数、及び前記第2の入出力変数を一覧できる遮断用入出力変数一覧テーブルを備え、
前記遮断用入出力変数一覧テーブルを参照して、前記第1の入出力変数と前記第2の入出力変数との置換、及び一括解除ができるようにしたことを特徴とする請求項1に記載の制御プログラム作成装置。
【背景技術】
【0002】
システムプログラマは、プラントを自動運転するためのプログラムを、プラント制御装置のアプリケーションプログラム(以降、「制御プログラム」と呼ぶ)として、作成、試験、調整後、プラント運転者へ提供する。システムプログラマは、プラントを安全に制御するために、制御プログラムの調整時に制御プログラムのデバッグを行う。
【0003】
制御プログラムは、例えばIEC61131-3で規定されているLD(Ladder Diagram)やFBD(Function Block Diagram)などの言語を用いて記述される。制御プログラムのデバッグ時は、プログラムが動作中の状態で、制御プログラム単位の置き換え、または、接点や変数の値を強制変更することにより、制御プログラムの動作確認を行う。
【0004】
この動作確認のとき、システムプログラマに対して、誤操作を招かないように、制御プログラム作成装置がわかりやすく提示することが求められる。
【0005】
一般に、ダイアグラムの接続先を変更してデバッグする場合、元の制御プログラムの接続点の命令を置換して、その接続点に複数の命令数で構成するデバッグプログラムを挿入する場合には、ステップ数が変更されたプログラムを実行するために、コントローラ側のメモリ領域を変更する必要が生じるので、デバッグプログラムを挿入したり元のプログラムに復元したりすることが簡単に行なえない問題がある。
【0006】
そのため、作成されたダイアグラムの分岐点を含む接続点に、複数の命令数で構成されるデバッグプログラムを挿入したり、復元したりすることが容易に行えるようにしたデバッグシステムがある(例えば、特許文献1参照。)。
【0007】
また、特許文献2には、制御プログラムソースを自動的にバックアップし、プログラム設計者の負担を軽減するようにした制御プログラム作成装置がある(例えば、特許文献2参照。)。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、予め作成された制御プログラムの変数の値のデバッグの場合には、新たな機能の追加でなく、複数のプログラムに跨る多数の変数の値のみの調整が容易に行える制御プログラム作成装置が求められる。
【0010】
上述した特許文献1に開示された制御プログラムのデバッグシステムは、接続点を切断して、切断点に新たなデバッグプログラムを設定して接続点以降のダイアグラムの動作を確認するようにしたものである。
【0011】
したがって、接続点に任意の関数や変数の値を設定することには向いているが、変数の最適値を求めたり、変数を任意の値に変更して制御プログラムの制御性や安全動作などの確認を行ったりするデバッグ作業に適用するには不向きである。
【0012】
即ち、変数には多種類の形式があり、大規模な制御プログラムにおいては、複数のプログラムに跨る変数の設定作業は大量に存在するので、特許文献1に開示された方法で設定するには手間が掛かり、作業ミスが発生する恐れもある。
【0013】
本発明は、上記問題点を解決するためになされたものであり、制御プログラムの変数の変更や調整が正確、且つ、効率よく行えるようにした制御プログラム作成装置、及び制御プログラムのデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本実施形態の制御プログラム作成装置は、ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラム作成装置において、前記制御プログラム作成装置は、テキスト言語及びグラフィック言語で制御プログラムを作成する制御プログラム編集部と、制御プログラムのソースファイルとオブジェクトファイルとを記憶するデータベース部と、前記制御プログラム編集部で作成された制御プログラムを画面表示する表示部と、当該表示部の画面の操作による操作信号を前記制御プログラム編集部へ出力する入力部と、を備え、前記制御プログラム編集部は、予め前記コントローラへの入出力信号を生成する構成要素と前記制御プログラムの構成要素とを対応付けし、前記制御プログラムをテキスト言語及びグラフィック言語で記述して前記制御プログラムを作成するプログラムエディタ部と、前記制御プログラムのソースファイルをコンパイル処理してオブジェクトファイルに変換するコンパイラと、前記オブジェクトファイルを前記コントローラに送付するプログラムロードクライアント部と、を備え、さらに、前記制御プログラムの予め設定されるタスク内の前記グラフィック言語で記述された回路図の任意の入出力点において、第1の入出力変数を遮断して、夫々を予め設定される第2の入出力変数に置換する遮断用入出力変数置換設定部を備え、前記遮断用入出力変数置換設定部は、さらに、前記回路図の入出力点の入出力変数を、予め、入力点と出力点とで同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備え、ユーザは前記回路図を参照して、デバッグ対象の入出力点を選択し、選択した前記入出力点の入出力変数
に対して、前記遮断用入出力変数登録テーブルを参照して、置換前の前記第1の入出力変数と置換後前記第2の入出力変数を同じデータ型のグローバル変数に置換することを設定し、置換した前記第2の入出力変数で前記タスクを実行
することを特徴とする。
【0015】
上記目的を達成するために、本実施形態の制御プログラムのデバッグ方法は、ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラムのデバッグ方法であって、前記制御プログラムの予め設定されるタスク内
のグラフィック言語で記述された回路図の任意の入出力点の入出力変数を、予め、入力点と出力点とで同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備え、ユーザは前記回路図を参照してデバッグ対象の入出力点を選択し、選択した前記入出力点の入出力変数
に対して、前記遮断用入出力変数登録テーブルを参照して、置換前
の第1の入出力変数と置換後
の第2の入出力変数を同じデータ型のグローバル変数に置換することを設定し、置換した前記第2の入出力変数で前記タスクを実行
することを特徴とする。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態に係る制御プログラム作成装置について図面を参照して説明する。
【0018】
図1は本発明の一実施形態に係る制御プログラム作成装置の一構成例を概略的に示したものである。
図1において、本実施形態に係る制御プログラム作成装置100は、制御プログラムを生成し、生成した制御プログラムを、ネットワーク300を介してダウンロードし、プラントのプロセスを制御するコントローラ200に送る。
【0019】
制御プログラム作成装置100は、テキスト言語及びグラフィック言語で制御プログラムを作成する制御プログラム編集部110と、制御プログラムのソースファイルとオブジェクトファイルとを記憶するデータベース部150と、制御プログラム編集部110で作成された制御プログラムを画面表示する表示部160と、表示部160の画面の操作による操作信号を制御プログラム編集部110へ出力するマウス120及びキーボード140と、を備える。
【0020】
制御プログラム編集部110は、予めコントローラ200への入出力信号を生成するハードウェアの構成要素と制御プログラムのソフトウェアの構成要素とを対応付けし、IEC61131-3で規定されているLD(Ladder Diagram)やFBD(Function Block Diagram)などのグラフィック言語、及びテキスト言語でプログラムを記述して制御プログラムを作成するプログラムエディタ部112と、制御プログラムのソースファイルをコンパイル処理してオブジェクトファイルに変換するコンパイラ114と、オブジェクトファイルをコントローラに送付するプログラムロードクライアント部116と、を備える。
【0021】
さらに、制御プログラムのタスク内のグラフィック言語で記述された回路図の任意の入出力点において、第1の入出力変数を遮断して、夫々を予め設定される第2の入出力変数に置換する遮断用入出力変数置換設定部118を備える。
【0022】
また、遮断用入出力変数置換設定部118は、回路図の入出力点の入出力変数を、予め、同じデータ型のグローバル変数として登録した遮断用入出力変数登録テーブルを備える。
【0023】
次に、コントローラ200は、制御プログラムのオブジェクトファイルを格納するためのオブジェクトメモリ210と、これらの書き込み、読み出し、処理を実行する標準処理部220を有している。
【0024】
さらに、オブジェクトメモリ210は、データメモリ212とコードメモリ214とを有している。
【0025】
標準処理部220は、プログラムロードサーバ部222と、オブジェクトメモリ210に記録された制御プログラムを実行するためのプログラム実行処理部224と、制御対象であるプラントからのプロセス信号を制御プログラムに与えるためのプロセス入出力処理部226とを備える。
【0026】
プログラムロードサーバ部222は、ネットワーク300を経由して制御プログラム作成装置100から送付された制御プログラムのオブジェクトファイルを、オブジェクトメモリ210のデータメモリ212およびコードメモリ214に配置する。
【0027】
次に、
図2〜
図4を参照して、このように構成された制御プログラム作成装置100を使用して制御プログラムの入出力変数を置換し、制御プログラムのデバッグを効率よく行う動作原理について説明する。
【0028】
図2は、本発明の動作原理の概略を説明する図で、制御プログラムの動作中に、デバッグしたい対象のタスク内の回路の入出力点について、予め設定された入力点の入力変数を他の遮断用入力変数に、また、その出力点の出力変数を他の遮断用出力変数に置換し、入力元の状態にかかわらず、デバッグしたい任意の値に固定し、また、元の出力先のへの出力を遮断し、出力点の出力値を任意の値に固定して、置換した遮断用入出力変数の値で、タスクまたは回路を動作させてデバッグするものである。
【0029】
例えば、
図3(a)のLD(Ladder Diagram)は、左母線に接続された4つのb接点(VLA032B1、VLA037B1、VLA039B1、VLA303B1)が並列に接続され、その出力がコイル(VLA030A)にAND接続された回路を示す。これらの変数は全てブール(BOOL)型である。
【0030】
図3(b)は、このb接点の内2つの変数(VLA032B1、VLA037B1)を、同じブール型の変数(ISZ0_ON、ISZ0_OFF)に置換し、その出力変数(VLA030A)をブール型の変数(ISZ0_BOOL)に置換した状態を図示している。
【0031】
本発明の動作原理は、このように遮断したい回路の入出力点の変数を、置換前と置換後で同じデータ型で、且つ、入出点と出力点とで同じデータ型の変数に置換することによって、出力先の変数に影響を与えないように遮断して、回路の動作のデバッグを行うものである。
【0032】
そこで、
図4に示すように、予め回路に存在する入出力変数について元の回路の変数と同じデータ型の遮断用入出力変数とそのアドレスとを、予め遮断用入出力変数置換テーブルに登録しておく。
【0033】
そして、動作中の制御プログラムのデバッグしたいタスクの回路において、対象とする変数を、この遮断用入出力変数置換テーブルを参照して置換設定して、置換した変数の状態でタスクを起動してデバッグを行うものである。
【0034】
次に、このような動作原理に基づくデバッグ動作の詳細について
図5〜
図11を参照して説明する。
【0035】
先ず、デバッグ操作を行う前の制御プログラム作成装置100の準備作業について
図5(a)を参照して説明する。制御プログラムの作成作業は、プログラムエディタ部112のエディタ機能を使用して、コントローラ(CPU)200が制御するシステムの全体のハードウェアとソフトウェアの構成が登録される(s1)。
【0036】
そして、プログラムの構成と使用する変数がコントローラ200のハードウェアに割り当てられる。この変数登録においては、
図4に示したような遮断用入出力変数が、グローバル変数として設定される(s2)。
【0037】
そして、複数のタスクと、実行時プログラムが定義され、制御プログラムが登録される(s3)。
【0038】
登録された制御プログラムは、コントローラにダウンロードされて(s4)、プラントで使用されるが、デバッグは、プラントで使用される前、及び使用後において、制御プログラムの動作確認や保守のために必要となる。
【0039】
プラントで使用する前においては、プラントの入出力信号の状態をシミュレートして制御プログラムの動作を確認するが、プラントの入出力信号は直接接続できないので、実信号を模擬した模擬信号を接続したり、制御プログラムの入出力信号をプログラムで入出力変数の値を変えてプログラムによりテストしたりする。
【0040】
プラントの入出力信号は、大きなシステムにおいては数万点となるものもあり、このデバッグ作業を正確に効率よく行うことが求められる。
【0041】
次に、本実施形態によるデバッグ動作を
図5(b)のフロー図を参照して説明する。先ず、遮断用入出力変数置換設定部118に備えるデバッグを行うための操作画面の例について説明する。
【0042】
図6は、遮断用入出力変数置換設定部118のメニュー選択画面で、予め選択したタスクの入出力変数の置換対象となる回路図画面上にポップアップさせる。
【0043】
図7は、選択した回路図上の画面に選択した入出力変数の置換を選択し、制御プログラムに書き込み、解除(元に戻す)ことを操作する遮断用入出力変数置換設定画面の例である。
【0044】
また、
図8は、予め選択された回路図画面に対して、
図7の遮断用入出力変数置換設定画面を使用した場合の動作例を説明するための表示画面の例で、同じく
図9は、複数の入出力変数を置換設定する、連続設定動作を説明する場合の表示画面の例である。
【0045】
また、
図10は、遮断用入出力変数置換設定時に元の入出力変数の削除を保護するための表示画面の例で、
図11は、遮断用入出力変数置換設定一覧画面と一括操作画面の表示画面の例である。
【0046】
図5(b)において、先ず、ユーザは選択されたタスクの回路図を参照して、デバッグ対象の入出力点を選択する(s11)。
【0047】
この操作は、例えば、回路図上にポップアップした
図6のメニュー画面から、遮断用入出力変数置換画面を選択する。すると、
図7に示すような遮断用入出力変数置換設定画面が表示され、さらに、
図8(a)に示す回路図の対象のデバイス変数VIO_DI_001をクリックすると、選択された遮断用入出力変数置換設定画面から、遮断用入出力変数情報が、例えば、BOOL形の入力変数ISZI_ON、及びISZI_ONのように表示される。
【0048】
そして、この
図8(b)書き込みボタンをクリックすると、選択前の
図8(a)に示す元の置換前の回路図が
図8(c)のように更新され、設定された変数が、例えば、破線で示すような赤枠で表示されて、選択設定が可能となったことを示す。
【0049】
また、複数の入出力変数がある場合には、遮断用の入出力変数は連続して設定することが可能である。
【0050】
また、
図8(c)に示す元の入力変数VIO_AI_001、及びVIO_AI_002は、
図9(a)に示すように、予め登録された標準のデータ型の遮断用入出力変数ISZI_WORDは、2カ所に同じ値が設定される。
【0051】
さらに、制御プログラムに書き込みが完了すると、例えば、
図9(b)に示すように、置換する入力変数の背景色変えて表示させ、書き込みの完了が容易に行えるようにすることも可能である。
【0052】
また、多数の入出力変数の置換を登録するので、元の変数の値が解除されることを防ぐため、
図4に示す遮断用入出力変数登録テーブルに連動して表示される
図10に示すような変数の入出力変数設定一覧画面には、変数の値が解除されないように、解除操作に対して警告メッセージを表示しておく。
【0053】
また、この遮断用入出力変数置換設定においては、これらの変数操作の内容を
図11に示すような一覧表にして管理することが望ましい。
【0054】
即ち、
図11に示す遮断用入出力変数置換設定一覧の画面には、タスク(エントリ)No. 、プログラム名、ルーチン名、元の変数名、遮断用入出力変数名を一覧として記述しておき、この画面と変数の部分解除、全解除、表示更新等のアクセス機能を連動させることで、デバッグ作業の正確さと効率とを上げることができる。
【0055】
再び、
図5を参照して説明する。このようにして、デバッグ対象の入出力変数の置換設定が完了すると(s11〜s12)、設定した遮断用入出力変数値で制御プログラムの動作を実行し、その評価を行う(s13)。
【0056】
変数の最適値などを求める場合には、変数値の設定から評価までのサイクル(s11〜s14)を繰り返すことで容易に作業が進められる。
【0057】
そして、評価が完了すると、置換した入出力変数の解除(元に戻す)、または登録(置換設定)される(s15)。
【0058】
このような遮断用入出力変数置換設定部118を備える制御プログラム作成装置100は、ユーザが回路図を参照してデバッグ対象の入出力点を選択し、選択した前記入出力点の入出力変数対して、遮断用入出力変数登録テーブルを参照して、置換前の第1の入出力変数と置換後第2の入出力変数を同じデータ型のグローバル変数に置換することを設定し、置換した第2の入出力変数でタスクを実行することが容易に行える。
【0059】
また、遮断用入出力変数一覧テーブルを参照して、第1の入出力変数と第2の入出力変数の置換、及び一括解除の設定が可能である。この一括解除の機能は、制御プログラムのコンパイル操作を最小限に抑えることができる効果がある。
【0060】
以上説明したように、本実施形態に依れば、ネットワークを経由して、コントローラに制御プログラムのオブジェクトファイルを書き込む制御プログラムのデバッグ方法に依れば、制御プログラムの変数の変更や調整が正確、且つ、効率よく行えるようにした制御プログラム作成装置、及び制御プログラムのデバッグ方法を提供することができる。
【0061】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。