(57)【特許請求の範囲】
【請求項１】
制御機器が持つ機能を機能ブロックとして捉え機能ブロックを組合わせることにより作成された第１の制御プログラムを、前記機能ブロックを用いる他の第２の制御プログラムに変換する制御プログラム作成コンバータにおいて、
受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第１の制御プログラムを読み込む制御プログラム読込手段と、
送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を前記接続のうちの所定の箇所に使用すると共にその他の箇所に前記入力接続方式を使用する前記第２の制御プログラムへの変換に際して、前記出力接続方式を優先して使用すべき機能ブロックおよびパラメータが定義された優先接続定義テーブルと、
この優先接続定義テーブルに基づいて、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として前記入力接続方式を使用するか前記出力接続方式を使用するかを判定する入出力接続方式判定手段と、
この入出力接続方式判定手段の判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換手段とを備えることを特徴とする制御プログラム作成コンバータ。
【請求項２】
請求項１記載の制御プログラム作成コンバータにおいて、
前記制御プログラム変換手段は、前記接続のうち前記入力接続方式を優先すると判定された箇所に前記入力接続方式を使用し、前記出力接続方式を優先すると判定された箇所に前記出力接続方式を使用することを特徴とする制御プログラム作成コンバータ。
【請求項３】
制御機器が持つ機能を機能ブロックとして捉え機能ブロックを組合わせることにより作成された第１の制御プログラムを、前記機能ブロックを用いる他の第２の制御プログラムに変換する制御プログラム作成コンバータにおいて、
送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を送り手側の機能ブロックと受け手側の機能ブロック間の接続のうちの所定の箇所に使用すると共に、その他の箇所に受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式を使用する前記第１の制御プログラムを読み込む制御プログラム読込手段と、
前記入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第２の制御プログラムへの変換に際して、前記第１の制御プログラムにおいて前記接続に前記入力接続方式が使用されているか前記出力接続方式が使用されているかを判定する入出力接続方式判定手段と、
この入出力接続方式判定手段の判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換手段とを備えることを特徴とする制御プログラム作成コンバータ。
【請求項４】
請求項３記載の制御プログラム作成コンバータにおいて、
前記制御プログラム変換手段は、前記接続のうち前記出力接続方式が使用されていると判定された箇所を前記入力接続方式に変換することを特徴とする制御プログラム作成コンバータ。
【請求項５】
制御機器が持つ機能を機能ブロックとして捉え機能ブロックを組合わせることにより作成された第１の制御プログラムを、前記機能ブロックを用いる他の第２の制御プログラムに変換する制御プログラム変換方法において、
受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第１の制御プログラムを読み込む制御プログラム読込ステップと、
送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を前記接続のうちの所定の箇所に使用すると共にその他の箇所に前記入力接続方式を使用する前記第２の制御プログラムへの変換に際して、前記出力接続方式を優先して使用すべき機能ブロックおよびパラメータが定義された優先接続定義テーブルを参照し、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として前記入力接続方式を使用するか前記出力接続方式を使用するかを判定する入出力接続方式判定ステップと、
この入出力接続方式判定ステップの判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換ステップとを備えることを特徴とする制御プログラム変換方法。
【請求項６】
制御機器が持つ機能を機能ブロックとして捉え機能ブロックを組合わせることにより作成された第１の制御プログラムを、前記機能ブロックを用いる他の第２の制御プログラムに変換する制御プログラム変換方法において、
送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を送り手側の機能ブロックと受け手側の機能ブロック間の接続のうちの所定の箇所に使用すると共に、その他の箇所に受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式を使用する前記第１の制御プログラムを読み込む制御プログラム読込ステップと、
前記入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第２の制御プログラムへの変換に際して、前記第１の制御プログラムにおいて前記接続に前記入力接続方式が使用されているか前記出力接続方式が使用されているかを判定する入出力接続方式判定ステップと、
この入出力接続方式判定ステップの判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換ステップとを備えることを特徴とする制御プログラム変換方法。
【請求項７】
制御機器が持つ機能を機能ブロックとして捉え機能ブロックを組合わせることにより作成された第１の制御プログラムを、同じく機能ブロックを用いる他の第２の制御プログラムに変換する制御プログラム作成コンバータにおいて、
機能ブロックに埋め込むアルゴリズムであるブロックタイプ名の変換手段と、
機能ブロック同士を結びつける入出力ポートにかかるパラメータ名の変換手段と、
機能ブロック間の結線を示すリンクの接続方式を、第１の制御プログラムの接続方式から第２の制御プログラムの接続方式に適合させるように、当該リンクを追加または削除する変換手段と、
これら変換手段が参照する変換のための定義テーブルと、
を備えることを特徴とする制御プログラム作成コンバータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御機器の機能単位のアルゴリズムが定義された機能ブロックを組合わせることにより作成された制御プログラムを、同じく機能ブロックを用いるが記述形式が異なる他の制御プログラムに変換する制御プログラム作成コンバータおよび制御プログラム変換方法に関するものである。
【背景技術】
【０００２】
従来、機能ブロックを用いた制御設計コンフィギュレーションツール（制御プログラム作成装置）では、制御プログラム作成装置の画面上に機能ブロックを置き、機能ブロック中のパラメータに相当する接続端子から、その接続相手となる接続端子に接続線（リンク）を設定して、制御系の設計を行っている。このような制御プログラム作成装置を用いた制御プログラム作成方法は、一般にＤＣＳ（Distributed Control System：分散制御システム）やＰＬＣ（Programmable Logic Controller ：プログラマブル・コントローラ）のコンフィギュレーションツールで用いられている方法であるが、機能ブロックを用いるフィールドバス（Foundation Fieldbus ）のエンジニアリングツールにも一般的に用いられている（例えば特許文献１参照）。以下、特許文献１に開示された従来の制御プログラム作成装置をＲＴエディタと呼ぶ。
【０００３】
従来の分散制御システムに比べ、フィールドバスの機能ブロックを用いた制御設計は複雑であると言える。その理由は、機能ブロックのパラメータが多く、また、演算結果を上位機能ブロックに反映する（Backward-Calculation）ためのリンクが必要であること等、より多くの接続線を定義する必要があるからである。このような設計の複雑さは、フィールドバスの制御設計作業がその知識を持つ一部の作業者しか行うことができない原因の一つになっている（例えば特許文献２参照）。
【０００４】
フィールドバスの制御ロジックは、例えば単純なＰＩＤ制御ループなどの比較的単純なロジックからより複雑な制御ロジックまでを機能ブロックを種々組合わせて作ることが多いと考えられ、作業工数削減のために機能ブロックを組合わせた制御ロジックを取り込んで行うことが求められる。
【０００５】
そこで、発明者らは、制御設計作業を容易にし、作業工数を削減することができる制御プログラム作成装置を提案した（特願２００７−２８５８６５）。以下、この制御プログラム作成装置をＦＢエディタと呼ぶ。ＦＢエディタは、制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのパラメータとこれらの定義ブロック間の接続関係とを定義してテンプレート化した接続パターンのファイルを予め作成しておき、この接続パターンのファイルの中から選択した接続パターンにある定義ブロックに対して実際の制御機器の機能ブロックを関連付けることにより、制御プログラムを生成するようにしたものである。
【０００６】
さて、従来のＲＴエディタとＦＢエディタとでは、種々の違い（アルゴリズム名、パラメータ名など）に加えて、特にＰＩＤコントローラの機能ブロック間の接続仕様が異なるという大きな違いがある。すなわち、従来のＲＴエディタは通常のＰＩＤ制御ループを構築する際には、ＦＢエディタのような複合的な制御ロジックの作成を行わないで済むように設計されており、ユーザのデータ設定によるそのような接続作業を必要としていないことである。
【０００７】
ＰＩＤ制御演算は、デジタルコンピュータで演算するものはサンプルタイム毎に離散的に演算するサンプル値ＰＩＤ型が一般的である。この演算は、出力値＝前回値＋変化分（速度型演算結果）により求める（例えば特許文献３参照）。この前回値を種々の条件で書き換えることで、バンプレス／バランスレス操作出力が実現されて便利だからである。例えば、マニュアルモードではアナログ出力（ＡＯ）モジュールの手動出力値によりＰＩＤモジュール出力の前回値を書き換えておくことで、オートモードに移行するときにＰＩＤ出力を手動出力値から突変なく（バンプレス）始めることができ、逆にオートモードからマニュアルモードへの移行では、ＡＯモジュールの出力値はＰＩＤ出力値から調整操作なし（バランスレス）で始められるのである。以下、この前回値の書き換え動作をイニシャリゼーションと呼ぶ。
【０００８】
ＦＢエディタでは、機能ブロック間の接続関係を全て明示してリンクで接続する仕様となっている。この仕様では、パラメータの受け手側の機能ブロックにおいて取り込むべき送り手側の機能ブロックおよび送り手側の出力パラメータを定義する入力接続方式が使用されるのが通常である。
【０００９】
一方、従来のＲＴエディタでは、入力接続方式も使用されるが、ＰＩＤ演算を行う機能ブロックが送り手側の場合には、この送り手側の機能ブロックにおいて受け手側の機能ブロックおよび受け手側の入力パラメータを定義する出力接続方式が使用される。この出力接続方式によれば、ＰＩＤ制御演算に係る接続のうち、ＰＩＤ演算の出力パラメータ以外の他の接続関係については暗黙的に定義されるので、接続を明示しなくて済む仕様になっている。
【００１０】
【特許文献１】特開２００２−１６３００３号公報
【特許文献２】特開平１０−１７７４１０号公報
【特許文献３】特公平０６−０６６０４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ＦＢエディタによれば、従来のＲＴエディタに比べて複雑な制御ループの作成においては制御設計作業を容易にし、作業工数を削減することができる。
しかしながら、制御システムの中には、ＲＴエディタで作成した制御プログラムにしか対応しておらず、ＦＢエディタで作成した制御プログラムをダウンロードできない制御システムが存在する。この場合、ＦＢエディタで作成した制御プログラムをＲＴエディタで読み込み可能な制御プログラムに変換する必要があるが、このような変換手段は存在しない。
【００１２】
また、従来のＲＴエディタで作成された制御プログラムをＦＢエディタで編集して新たなプログラムを作成したい場合が考えられる。この場合、ＲＴエディタで作成した制御プログラムをＦＢエディタで読み込み可能な制御プログラムに変換する必要があるが、このような変換手段は存在しない。
【００１３】
本発明は、上記課題を解決するためになされたもので、制御機器の機能単位のアルゴリズムが定義された機能ブロックを組合わせることにより作成された制御プログラムを、機能ブロックを用いる別の制御プログラムに変換可能な制御プログラム作成コンバータおよび制御プログラム変換方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、制御機器が持つ機能を機能ブロックとして捉え機能ブロックを組合わせることにより作成された第１の制御プログラムを、前記機能ブロックを用いる他の第２の制御プログラムに変換する制御プログラム作成コンバータにおいて、受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第１の制御プログラムを読み込む制御プログラム読込手段と、送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を前記接続のうちの所定の箇所に使用すると共にその他の箇所に前記入力接続方式を使用する前記第２の制御プログラムへの変換に際して、前記出力接続方式を優先して使用すべき機能ブロックおよびパラメータが定義された優先接続定義テーブルと、この優先接続定義テーブルに基づいて、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として前記入力接続方式を使用するか前記出力接続方式を使用するかを判定する入出力接続方式判定手段と、この入出力接続方式判定手段の判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換手段とを備えるものである。
また、本発明の制御プログラム作成コンバータの１構成例において、前記制御プログラム変換手段は、前記接続のうち前記入力接続方式を優先すると判定された箇所に前記入力接続方式を使用し、前記出力接続方式を優先すると判定された箇所に前記出力接続方式を使用するものである。
【００１５】
また、本発明の制御プログラム作成コンバータは、送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を送り手側の機能ブロックと受け手側の機能ブロック間の接続のうちの所定の箇所に使用すると共に、その他の箇所に受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式を使用する前記第１の制御プログラムを読み込む制御プログラム読込手段と、前記入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第２の制御プログラムへの変換に際して、前記第１の制御プログラムにおいて前記接続に前記入力接続方式が使用されているか前記出力接続方式が使用されているかを判定する入出力接続方式判定手段と、この入出力接続方式判定手段の判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換手段とを備えるものである。
また、本発明の制御プログラム作成コンバータの１構成例において、前記制御プログラム変換手段は、前記接続のうち前記出力接続方式が使用されていると判定された箇所を前記入力接続方式に変換するものである。
【００１６】
また、本発明の制御プログラム変換方法は、受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第１の制御プログラムを読み込む制御プログラム読込ステップと、送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を前記接続のうちの所定の箇所に使用すると共にその他の箇所に前記入力接続方式を使用する前記第２の制御プログラムへの変換に際して、前記出力接続方式を優先して使用すべき機能ブロックおよびパラメータが定義された優先接続定義テーブルを参照し、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として前記入力接続方式を使用するか前記出力接続方式を使用するかを判定する入出力接続方式判定ステップと、この入出力接続方式判定ステップの判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換ステップとを備えるものである。
【００１７】
また、本発明の制御プログラム変換方法は、送り手側の機能ブロックの接続情報として受け手側の機能ブロックおよび入力パラメータを定義する出力接続方式を送り手側の機能ブロックと受け手側の機能ブロック間の接続のうちの所定の箇所に使用すると共に、その他の箇所に受け手側の機能ブロックの接続情報として送り手側の機能ブロックおよび出力パラメータを定義する入力接続方式を使用する前記第１の制御プログラムを読み込む制御プログラム読込ステップと、前記入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された前記第２の制御プログラムへの変換に際して、前記第１の制御プログラムにおいて前記接続に前記入力接続方式が使用されているか前記出力接続方式が使用されているかを判定する入出力接続方式判定ステップと、この入出力接続方式判定ステップの判定結果に基づいて前記第１の制御プログラムを前記第２の制御プログラムに変換する制御プログラム変換ステップとを備えるものである。
また、本発明の制御プログラム作成コンバータは、機能ブロックに埋め込むアルゴリズムであるブロックタイプ名の変換手段と、機能ブロック同士を結びつける入出力ポートにかかるパラメータ名の変換手段と、機能ブロック間の結線を示すリンクの接続方式を、第１の制御プログラムの接続方式から第２の制御プログラムの接続方式に適合させるように、当該リンクを追加または削除する変換手段と、これら変換手段が参照する変換のための定義テーブルと、を備えるものである。
【発明の効果】
【００１８】
入力接続方式により送り手側の機能ブロックと受け手側の機能ブロック間の接続が定義された第１の制御プログラムを、入力接続方式と出力接続方式の両方を使用する第２の制御プログラムに変換する場合、第２の制御プログラムにおいては入力接続と出力接続のどちらかを任意に選択可能となる。本発明では、出力接続方式を優先して使用すべき機能ブロックおよびパラメータを定義した優先接続定義テーブルを設け、この優先接続定義テーブルに基づいて、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として入力接続方式を使用するか出力接続方式を使用するかを判定し、この判定結果に基づいて制御プログラムを変換するようにしたので、第１の制御プログラムを第２の制御プログラムに変換することができる。したがって、従来の制御プログラム作成装置で作成された第２の制御プログラムだけにしか対応していないシステムに対しても、制御プログラムをダウンロードすることができる。
【００１９】
また、入力接続方式と出力接続方式の両方を使用する第１の制御プログラムを、入力接続方式のみを使用する第２の制御プログラムに変換する場合、本発明では、第１の制御プログラムにおいて送り手側の機能ブロックと受け手側の機能ブロック間の接続に入力接続方式が使用されているか出力接続方式が使用されているかを判定し、この判定結果に基づいて制御プログラムを変換するようにしたので、第１の制御プログラムを第２の制御プログラムに変換することができる。したがって、従来の制御プログラム作成装置で作成された第１の制御プログラムを、第２の制御プログラムの作成装置で編集して新たなプログラムを作成することができる。
【発明を実施するための最良の形態】
【００２０】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して説明する。ここでは、まず発明者らが提案したＦＢエディタについて説明する。なお、従来のＲＴエディタについては特許文献１に開示されているので、説明は省略する。
【００２１】
図１は本発明の第１の実施の形態に係るＦＢエディタ（制御プログラム作成装置）の構成を示すブロック図である。ＦＢエディタ１０００は、制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのパラメータとこれらの定義ブロック間の接続関係とを制御ロジック毎に定義してテンプレート化した接続パターンを作成する接続パターン作成部１００１と、制御機器の機能ブロックのデータおよび接続パターンのファイルを予め記憶する記憶部１００２と、記憶部１００２に記憶されている接続パターンファイルの中から選択された接続パターンファイルを読み込む接続パターン読込部１００３と、記憶部１００２に記憶された機能ブロックの中から選択された機能ブロックと選択された接続パターンの定義ブロックとを関連付けて制御プログラムを作成する制御プログラム編集部１００４と、ＦＢエディタ１０００の使用者が装置に対して指示を与えるための入力部１００５と、ＦＢエディタ１０００の使用者に対して情報を表示するための表示部１００６とを有する。
【００２２】
機能ブロックは、例えばセンサやバルブポジショナなどの実際の制御機器における最小機能単位のアルゴリズムやパラメータを定義するものである。接続パターンは、各機能ブロックのパラメータと機能ブロック間の接続関係とを制御ロジック毎（例えばＰＩＤ制御やカスケード制御）に定義してテンプレート化したものである。なお、接続パターンで用いる機能ブロックは、例えば制御機器の製造メーカ等が異なる場合であってもアルゴリズムやパラメータが同じであれば使用できるように汎用的に定義された機能ブロックなので、以下では接続パターンで用いる機能ブロックを定義ブロックと呼ぶことにする。
【００２３】
図２、図３は図１のＦＢエディタ１０００を用いた制御プログラム作成方法を説明するための図であり、図２はＦＢエディタ１０００による制御プログラム作成の概略を示す図、図３はＦＢエディタ１０００の動作を示すフローチャートである。
まず、接続パターン作成部１００１は、事前に制御ループのテンプレートである接続パターン１００を作成しておく（図３ステップＳ１）。作成された接続パターン１００のファイルは、記憶部１００２に格納される。
【００２４】
図２の例では、接続パターン１００は、ＰＩＤ制御ループのアルゴリズムを定義したテンプレートであり、アナログ入力（ＡＩ）の定義ブロック１０１−ＡＩとＰＩＤ演算を行う定義ブロック１０１−ＰＩＤとアナログ出力（ＡＯ）を行う定義ブロック１０１−ＡＯとを含む。各定義ブロック１０１の入出力端子にかかるパラメータを示すポート１０２はリンク１０３によって接続され、定義ブロック１０１のパラメータの接続関係が定義されている。図２の例では、例えば定義ブロック１０１−ＡＩのＯＵＴパラメータと定義ブロック１０１−ＰＩＤのＩＮパラメータが接続されている。
【００２５】
このような接続パターン１００を作成するには、使用者の指示に従って画面上で定義ブロック１０１とポート１０２とリンク１０３とを作成し、定義ブロック１０１とポート１０２とリンク１０３の各々の属性を設定すればよい。
記憶部１００２に格納される接続パターンファイルは、ブロックデータとポートデータとリンクデータなどの情報を含む。
【００２６】
ブロックデータは、接続パターン中の各定義ブロックの情報を示すものであり、定義ブロック毎に生成される。ブロックデータは、定義ブロックの名称とブロックタイプと定義ブロックに設けられた各ポートのポートデータなどを含む。ブロックタイプとしては、例えばＡＩ、ＰＩＤ、ＡＯ、ＣＳ（セレクタ）などがある。このブロックタイプを設定することで、定義ブロック１０１のアルゴリズムが選択されたことになり、また、設定可能なポートタイプ（パラメータのタイプ）が選択されたことになる。
【００２７】
ポートデータは、ポートタイプなどを含む。ポートタイプとしては、例えばＩＮ、ＯＵＴ、ＣＡＳ＿ＩＮ、ＢＫＣＡＬ＿ＩＮ、ＢＫＣＡＬ＿ＯＵＴなどがある。
リンクデータは、接続パターン中の各リンクの情報を示すものであり、リンク毎に生成される。リンクデータは、入力側の定義ブロックの名称と、入力側のポートタイプと、出力側の定義ブロックの名称と、出力側のポートタイプなどを含む。このリンクデータによって、前述の入力接続方式が実現される。
【００２８】
次に、ＦＢエディタ１０００の接続パターン読込部１００３は、使用者が選択した接続パターン１００のファイルを記憶部１００２から読み込み、制御プログラム編集部１００４は、接続パターン読込部１００３が読み込んだ接続パターン１００を表示部１００６の画面の制御ロジック編集ウィンドウ１０４上に表示する（図３ステップＳ２）。
【００２９】
そして、制御プログラム編集部１００４は、使用者の指示に応じて各制御機器の使用可能な機能ブロックのリスト１０５から機能ブロックを選択し、制御ロジック編集ウィンドウ１０４上の接続パターン１００の定義ブロック１０１と制御機器の機能ブロックとを関連付ける（図３ステップＳ３）。
【００３０】
定義ブロック１０１と制御機器の機能ブロックとを関連付けるには、表示部１００６の画面上で所望の機能ブロックを、関連付けしたい定義ブロック１０１上まで移動させればよい。図２の例では、定義ブロック１０１−ＡＩに制御機器名が「ＤＳＴ＿０２」で機能ブロック名が「ＡＩ」の機能ブロックが関連付けされ、定義ブロック１０１−ＰＩＤに制御機器名が「ＡＶＰ＿０８」で機能ブロック名が「ＰＩＤ」の機能ブロックが関連付けされ、定義ブロック１０１−ＡＯに制御機器名が「ＡＶＰ＿０８」で機能ブロック名が「ＡＯ」の機能ブロックが関連付けされている。機能ブロックと定義ブロックとの関連付けは、制御プログラム編集部１００４が関連付けデータを生成することによって実現される。関連付けデータは、制御機器名及び機能ブロック名と、定義ブロック名とを対応付けるものである。
【００３１】
制御プログラム編集部１００４は、このような定義ブロック１０１と制御機器の機能ブロックとの関連付けを未処理の定義ブロック１０１がなくなるまで（図３ステップＳ４においてＮＯ）繰り返し行う。
定義ブロック１０１と制御機器の機能ブロックとの関連付けが完了した時点でＦＢエディタ１０００の処理が終わり、接続パターンファイルと、機能ブロックと定義ブロックとの関連付けデータとからなる制御プログラムが記憶部１００２に保存される。
【００３２】
［制御プログラム作成コンバータの説明］
次に、本実施の形態の制御プログラム作成コンバータについて説明する。図４は制御プログラム作成コンバータの構成を示すブロック図である。
制御プログラム作成コンバータ１は、ＦＢエディタ１０００によって作成された制御プログラムを読み込む制御プログラム読込部２と、制御プログラム読込部２が読み込んだ制御プログラムをＲＴエディタ（不図示）で読み込み可能な制御プログラムに変換する制御プログラム変換部３と、制御プログラム変換部３が変換した制御プログラムをＲＴエディタ用に出力する制御プログラム出力部４と、プログラムやデータを記憶する記憶部５と、制御プログラム作成コンバータ１の使用者が装置に対して指示を与えるための入力部６と、使用者に対して情報を表示するための表示部７とを有する。
【００３３】
制御プログラム変換部３は、制御プログラムのブロックタイプを変換するブロックタイプ変換部３０と、制御プログラムのパラメータを変換するパラメータ変換部３１と、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として入力接続方式を使用するか出力接続方式を使用するかを判定する入出力接続方式判定部３２と、入出力接続方式判定部３２の判定結果に基づいて制御プログラムの入出力接続方式を変換する入出力接続設定部３３とを有する。
【００３４】
記憶部５には、制御プログラム読込部２、制御プログラム変換部３および制御プログラム出力部４などの各種機能手段を実現するプログラム５０と、ＦＢエディタ１０００によって作成された制御プログラムのブロックタイプを変換するためのブロックタイプ変換テーブル５１と、ＦＢエディタ１０００によって作成された制御プログラムのパラメータを変換するためのパラメータ変換テーブル５２と、ＲＴエディタで読み込み可能な制御プログラムへの変換に際して出力接続方式を優先して使用すべき機能ブロックおよびパラメータを定義した優先接続定義テーブル５３とが記憶されている。
【００３５】
図５はブロックタイプ変換テーブル５１の構成を示す図、図６はパラメータ変換テーブル５２の構成を示す図、図７は優先接続定義テーブル５３の構成を示す図である。
ブロックタイプ変換テーブル５１は、図５に示すようにＦＢエディタで使用されるブロックタイプ５１０とＲＴエディタで使用されるブロックタイプ５１１とを対応付けたものである。図５のブロックタイプ変換テーブル５１によれば、ＦＢエディタの記述形式でブロックタイプが「ＰＩＤ」となっている場合、ＲＴエディタの記述形式ではブロックタイプは「ＦＦ＿ＰＩＤ」になることが分かる。
【００３６】
パラメータ変換テーブル５２は、図６に示すようにＦＢエディタで使用されるブロックタイプ５２０とパラメータ５２１とＲＴエディタで使用されるパラメータ５２２とを対応付けたものであり、パラメータ５２１と５２２との対応関係をＦＢエディタで使用されるブロックタイプ毎に定義したものである。図６のパラメータ変換テーブル５２によれば、ＦＢエディタの記述形式でブロックタイプが「ＰＩＤ」でパラメータが「ＣＡＳ＿ＩＮ」となっている場合、ＲＴエディタの記述形式ではパラメータは「ＳＰ」になることが分かる。
【００３７】
優先接続定義テーブル５３は、図７に示すようにＲＴエディタで使用される受け手側のブロックタイプ５３０と受け手側のパラメータ５３１と接続パラメータ名５３２とを対応付けたものであり、出力接続方式を優先して使用すべきブロックタイプ５３０とパラメータ５３１とを定義したものである。図７の優先接続定義テーブル５３によれば、ＲＴエディタの記述形式で受け手側のブロックタイプが「ＦＦ＿ＰＩＤ」で入力パラメータが「ＳＰ」となっている場合は、出力接続（ＣＯＤＳＴＮ）を優先して使用することが分かる。ＲＴエディタでは、イニシャリゼーションのためには出力接続が必要である。したがって、図７の例のように受け手側のブロックタイプが「ＦＦ＿ＰＩＤ」の場合には、出力接続方式を優先して使用すべきであるとして優先接続定義テーブル５３に定義されている。
【００３８】
次に、制御プログラム作成コンバータ１の動作について説明する。図８は制御プログラム作成コンバータ１の動作を示すフローチャートである。
最初に、制御プログラム読込部２は、ＦＢエディタ１０００によって作成されＦＢエディタ１０００の記憶部１００２に記憶された制御プログラムの中から、入力部６を操作する使用者の指示に応じて制御プログラムを選択し、この制御プログラムを読み込んで記憶部５に格納する（図８ステップＳ１０）。
【００３９】
続いて、制御プログラム変換部３のブロックタイプ変換部３０は、ブロックタイプ変換テーブル５１を参照し、記憶部５に格納された制御プログラムに記述されている全てのブロックタイプについて、ＦＢエディタの記述形式のブロックタイプをＲＴエディタの記述形式のブロックタイプに変換する（ステップＳ１１）。
【００４０】
制御プログラム変換部３のパラメータ変換部３１は、パラメータ変換テーブル５２を参照し、記憶部５に格納された制御プログラムに記述されている全てのパラメータ（ポート）について、ＦＢエディタの記述形式のパラメータをＲＴエディタの記述形式のパラメータに変換する（ステップＳ１２）。
【００４１】
制御プログラム変換部３の入出力接続方式判定部３２は、ステップＳ１１，Ｓ１２でブロックタイプとパラメータが変換された後の制御プログラムにおいて、パラメータの受け手側の機能ブロックに入力接続機能が有るかどうかを判定する（ステップＳ１３）。ＲＴエディタの記述形式の機能ブロックに入力接続機能が有るかどうかについては、記憶部５に格納された定義情報（不図示）によって予め定義されている。入出力接続方式判定部３２は、この定義情報を参照することにより、機能ブロックに入力接続機能が有るかどうかを判定することができる。
【００４２】
入出力接続方式判定部３２は、受け手側の機能ブロックに入力接続機能が有る場合、この受け手側の機能ブロックと送り手側の機能ブロック間の接続方式として、入力接続方式を使用するか出力接続方式を使用するかを判定する（ステップＳ１４）。
【００４３】
入出力接続方式判定部３２は、通常は入力接続方式を優先して機能ブロック間の接続情報を設定する。すなわち、入出力接続方式判定部３２は、ステップＳ１１，Ｓ１２でブロックタイプとパラメータが変換された後の制御プログラムにおいて、受け手側のブロックタイプと受け手側の入力パラメータとの組が優先接続定義テーブル５３に登録されていない場合は、入力接続方式を優先して使用すると判定する（ステップＳ１４においてＮＯ）。
【００４４】
入出力接続設定部３３は、入力接続方式を優先すると判定された場合、入力接続方式を使用して送り手側の機能ブロックと受け手側の機能ブロック間の接続情報を設定する（ステップＳ１５）。入力接続方式を使用する場合は、受け手側の機能ブロックの接続情報として、取り込むべき送り手側の機能ブロックおよび送り手側の出力パラメータを定義すればよい。
【００４５】
また、入出力接続方式判定部３２は、ステップＳ１１，Ｓ１２でブロックタイプとパラメータが変換された後の制御プログラムにおいて、受け手側のブロックタイプと受け手側のパラメータとの組が優先接続定義テーブル５３に登録されている場合は、出力接続方式を優先して使用すると判定する（ステップＳ１４においてＹＥＳ）。
【００４６】
入出力接続設定部３３は、ステップＳ１３において受け手側の機能ブロックに入力接続機能が無いと判定された場合、又はステップＳ１４において出力接続方式を優先すると判定された場合、出力接続方式を使用して送り手側の機能ブロックと受け手側の機能ブロック間の接続情報を設定する（ステップＳ１６）。出力接続方式を使用する場合は、送り手側の機能ブロックの接続情報として、受け手側の機能ブロックおよび受け手側の入力パラメータを定義すればよい。
【００４７】
なお、送り手側の機能ブロックのタイプが例えば「ＰＩＤ」である場合、このブロックの出力接続機能を使用して、ＰＩＤ演算出力と受け手側の機能ブロックとの接続を明示的に定義すればよく、送り手側の機能ブロックと受け手側の機能ブロック間のその他の接続については暗黙的に定義される。
【００４８】
入出力接続方式判定部３２と入出力接続設定部３３とは、制御プログラムに記述されている送り手側の機能ブロックと受け手側の機能ブロックの組毎に、ステップＳ１３〜Ｓ１６の処理を行う。
全ての接続設定が終了した時点で（ステップＳ１７においてＹＥＳ）、制御プログラムの変換が終了する。
【００４９】
制御プログラム出力部４は、記憶部５に記憶された変換後の制御プログラムを、入力部６を操作する使用者の指示に応じてＲＴエディタに出力する（ステップＳ１８）。
以上で、制御プログラム作成コンバータ１の処理が終了する。
【００５０】
図９（Ａ）はＦＢエディタ１０００で作成された制御プログラムの１例を機能ブロック表現で模式的に示す図、図９（Ｂ）は図９（Ａ）の制御プログラムを変換した後の制御プログラムを機能ブロック表現で模式的に示す図である。
図９（Ａ）の例は、機能ブロック２００と２０１とからなるＰＩＤ制御ループの制御プログラムを示している。
【００５１】
図９（Ａ）に示した制御プログラムを制御プログラム作成コンバータ１で変換すると、図９（Ｂ）に示すようにブロックタイプとパラメータが変換される。つまり、機能ブロック２００のブロックタイプ「ＰＩＤ」は、変換後の機能ブロック３００では「ＦＦ＿ＰＩＤ」となり、機能ブロック２０１のブロックタイプ「ＡＯ」は、変換後の機能ブロック３０１では「ＦＦ＿ＡＯ」となる。
【００５２】
また、機能ブロック２００のパラメータ「ＯＵＴ」は「ＯＰ」に変換され、機能ブロック２０１のパラメータ「ＣＡＳ＿ＩＮ」は「ＳＰ」に変換される。なお、制御プログラム変換部３は、機能ブロック２００の制御機器名「ＡＶＰ＿０１」と機能ブロック名「ＰＩＤ＿１」を、変換後の機能ブロック３００においてもそのまま使用する。機能ブロック２０１の制御機器名と機能ブロック名についても同様である。
【００５３】
変換後の受け手側の機能ブロック３０１には、入力接続機能が無い。このため、入出力接続設定部３３は、送り手側の機能ブロック３００の出力接続機能を使用して、機能ブロック３００と３０１間の接続３０２を設定する。機能ブロック３００の出力接続機能を使用したことにより、機能ブロック３０１のフィードバック出力ＢＫＣＡＬ＿ＯＵＴと機能ブロック３００のフィードバック入力ＢＫＣＡＬ＿ＩＮとの間の接続３０３については、暗黙的に定義される。
【００５４】
図１０（Ａ）はＦＢエディタ１０００で作成された制御プログラムの他の例を模式的に示す図、図１０（Ｂ）は図１０（Ａ）の制御プログラムを変換した後の制御プログラムを模式的に示す図である。
図１０（Ａ）の例は、機能ブロック２０４と２０５とからなるカスケードＰＩＤ制御の制御プログラムを示している。
【００５５】
図１０（Ａ）に示した制御プログラムを制御プログラム作成コンバータ１で変換すると、図９（Ａ）の場合と同様にブロックタイプとパラメータが変換され、図１０（Ｂ）のようになる。
【００５６】
このとき、変換後の受け手側の機能ブロック３０５は、入力接続機能を備えているため、出力接続方式だけでなく入力接続方式を選択することも可能である。しかし、受け手側の機能ブロック３０５のブロックタイプ「ＦＦ＿ＰＩＤ」と入力パラメータ「ＳＰ」は優先接続定義テーブル５３に登録されている。このため、入出力接続設定部３３は、送り手側の機能ブロック３０４の出力接続機能を使用して、機能ブロック３０４と３０５間の接続３０６を設定する。図９（Ｂ）の例と同様に、機能ブロック３０４の出力接続機能を使用したことにより、機能ブロック３０５のフィードバック出力ＢＫＣＡＬ＿ＯＵＴと機能ブロック３０４のフィードバック入力ＢＫＣＡＬ＿ＩＮとの間の接続３０７については、暗黙的に定義される。なお、実際には接続パラメータ名はＣＯＤＳＴＮ（図７）を用いて接続するものであるが、ＣＯＤＳＴＮはパラメータＯＰに包含されているため、図１０の結線図上はＯＰとして示されるものである。
【００５７】
以上のように、従来のＲＴエディタにおいては入力接続と出力接続のどちらかを任意に選択可能な場合があるので、本実施の形態では、出力接続方式を優先して使用すべき機能ブロックおよびパラメータを定義した優先接続定義テーブルを設け、この優先接続定義テーブルに基づいて、送り手側の機能ブロックと受け手側の機能ブロック間の接続方式として入力接続方式を使用するか出力接続方式を使用するかを判定し、この判定結果に基づいて制御プログラムを変換するようにしたので、ＦＢエディタ１０００で作成された制御プログラムをＲＴエディタで読み込み可能な制御プログラムに変換することができる。その他、ブロックタイプ、パラメータ名なども適宜変換される。したがって、ＲＴエディタで作成した制御プログラムだけにしか対応していないシステムに対しても、ＲＴエディタを通じて制御プログラムをダウンロードすることができる。
【００５８】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。図１１は本発明の第２の実施の形態に係る制御プログラム作成コンバータの構成を示すブロック図である。
本実施の形態の制御プログラム作成コンバータ１ａは、ＲＴエディタによって作成された制御プログラムをＦＢエディタ１０００で読み込み可能な制御プログラムに変換するものである。この制御プログラム作成コンバータ１ａは、ＲＴエディタによって作成された制御プログラムを読み込む制御プログラム読込部２ａと、制御プログラム読込部２ａが読み込んだ制御プログラムをＦＢエディタ１０００で読み込み可能な制御プログラムに変換する制御プログラム変換部３ａと、制御プログラム変換部３ａが変換した制御プログラムをＦＢエディタ１０００に出力する制御プログラム出力部４ａと、記憶部５ａと、入力部６と、表示部７ａとを有する。
【００５９】
制御プログラム変換部３ａは、制御プログラムのブロックタイプを変換するブロックタイプ変換部３０ａと、制御プログラムのパラメータを変換するパラメータ変換部３１ａと、ＲＴエディタで作成された制御プログラムにおいて送り手側の機能ブロックと受け手側の機能ブロック間の接続に入力接続方式が使用されているか出力接続方式が使用されているかを判定する入出力接続方式判定部３２ａと、入出力接続方式判定部３２ａの判定結果に基づいて制御プログラムの入出力接続方式を変換する入出力接続設定部３３ａとを有する。
【００６０】
記憶部５には、制御プログラム読込部２ａ、制御プログラム変換部３ａおよび制御プログラム出力部４ａなどの各種機能手段を実現するプログラム５０ａと、ブロックタイプ変換テーブル５１ａと、パラメータ変換テーブル５２ａとが記憶されている。
【００６１】
ブロックタイプを変換するには、ＲＴエディタの記述形式のブロックタイプをキーとして、対応するＦＢエディタの記述形式のブロックタイプを検索すればよい。したがって、ブロックタイプ変換テーブル５１ａの構成は、ブロックタイプ変換テーブル５１と同じでよい。
【００６２】
図１２はパラメータ変換テーブル５２ａの構成を示す図である。パラメータ変換テーブル５２ａは、図１２に示すようにＲＴエディタで使用されるブロックタイプ５２３とパラメータ５２４とＦＢエディタで使用されるパラメータ５２５とを対応付けたものであり、パラメータ５２４と５２５との対応関係をＲＴエディタで使用されるブロックタイプ毎に定義したものである。
【００６３】
次に、制御プログラム作成コンバータ１ａの動作について説明する。図１３は制御プログラム作成コンバータ１ａの動作を示すフローチャートである。
最初に、制御プログラム読込部２ａは、ＲＴエディタによって作成された制御プログラムの中から使用者が選択した制御プログラムを読み込み、この制御プログラムを記憶部５ａに格納する（図１３ステップＳ２０）。
【００６４】
続いて、制御プログラム変換部３ａのブロックタイプ変換部３０ａは、ブロックタイプ変換テーブル５１ａを参照し、記憶部５ａに格納された制御プログラムに記述されている全てのブロックタイプについて、ＲＴエディタの記述形式のブロックタイプをＦＢエディタの記述形式のブロックタイプに変換する（ステップＳ２１）。
【００６５】
制御プログラム変換部３ａのパラメータ変換部３１ａは、パラメータ変換テーブル５２ａを参照し、記憶部５ａに格納された制御プログラムに記述されている全てのパラメータについて、ＲＴエディタの記述形式のパラメータをＦＢエディタの記述形式のパラメータに変換する（ステップＳ２２）。
【００６６】
制御プログラム変換部３ａの入出力接続方式判定部３２ａは、ステップＳ２１，Ｓ２２でブロックタイプとパラメータが変換された後の制御プログラムにおいて、送り手側の機能ブロックと受け手側の機能ブロック間の接続に入力接続方式が使用されているかどうかを判定する（ステップＳ２３）。
【００６７】
入出力接続設定部３３ａは、入力接続方式を使用していると判定された場合、そのまま入力接続方式を使用して送り手側の機能ブロックと受け手側の機能ブロック間の接続情報（ＦＢエディタのリンクデータ）を設定する（ステップＳ２４）。
【００６８】
また、入出力接続設定部３３ａは、出力接続方式を使用していると判定された場合、出力接続方式を入力接続方式に変換し、送り手側の機能ブロックと受け手側の機能ブロック間の接続情報を設定する（ステップＳ２５）。さらに、入出力接続設定部３３ａは、出力接続方式を使用している機能ブロックに関して、図９（Ｂ）の接続３０３のように暗黙的に定義されている接続がある場合には、この接続を入力接続方式で設定する（ステップＳ２６）。
【００６９】
入出力接続方式判定部３２ａと入出力接続設定部３３ａとは、制御プログラムに記述されている送り手側の機能ブロックと受け手側の機能ブロックの組毎に、ステップＳ２３〜Ｓ２６の処理を行う。
全ての接続設定が終了した時点で（ステップＳ２７においてＹＥＳ）、制御プログラムの変換が終了する。
【００７０】
制御プログラム出力部４ａは、記憶部５ａに記憶された変換後の制御プログラムを、入力部６ａを操作する使用者の指示に応じてＦＢエディタ１０００に出力する（ステップＳ２８）。こうして、制御プログラム作成コンバータ１ａの処理が終了する。なお以上の例では、ＦＢエディタでは通常の接続方式を入力接続方式であるとして説明してきたが、リンク結線の仕様を変えて別の接続形態をとる設計も考えられるが、その場合も本発明の範囲に属することは云うまでもない。
【００７１】
以上のように、従来のＲＴエディタにおいては入力接続と出力接続の両方が使用されているので、本実施の形態では、ＲＴエディタで作成されたプログラムにおいて送り手側の機能ブロックと受け手側の機能ブロック間の接続に入力接続方式が使用されているか出力接続方式が使用されているかを判定し、この判定結果に基づいて制御プログラムを変換するようにしたので、ＲＴエディタで作成された制御プログラムをＦＢエディタで読み込み可能な制御プログラムに変換することができる。その他、ブロックタイプ、パラメータ名なども適宜変換される。したがって、例えばＲＴエディタで作成された制御プログラムをＦＢエディタで編集して新たなプログラムを作成することができる。
【００７２】
なお、第１実施の形態および第２の実施の形態のＦＢエディタ、制御プログラム作成コンバータ１，１ａ、ＲＴエディタは、それぞれＣＰＵ、記憶装置および外部とのインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。これらのコンピュータにおいて、本発明の制御プログラム変換方法を実現させるためのプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカードなどの記録媒体に記録された状態で提供される。ＣＰＵは、記録媒体から読み込んだプログラムを記憶装置に書き込み、プログラムに従って第１、第２の実施の形態で説明した処理を実行する。
【００７３】
また、第１、第２の実施の形態では、制御プログラム作成コンバータ１，１ａをＦＢエディタやＲＴエディタと別体のものとして説明しているが、これに限るものではなく、制御プログラム作成コンバータ１，１ａをＦＢエディタ又はＲＴエディタと同一のコンピュータ上に設けてもよい。
【産業上の利用可能性】
【００７４】
本発明は、制御機器の機能ブロックを用いた制御プログラムを変換する技術に適用することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施の形態に係る制御プログラム作成装置の構成を示すブロック図である。
【図２】図１の制御プログラム作成装置による制御プログラム作成の概略を示す図である。
【図３】図１の制御プログラム作成装置の動作を示すフローチャートである。
【図４】本発明の第１の実施の形態に係る制御プログラム作成コンバータの構成を示すブロック図である。
【図５】本発明の第１の実施の形態におけるブロックタイプ変換テーブルの構成を示す図である。
【図６】本発明の第１の実施の形態におけるパラメータ変換テーブルの構成を示す図である。
【図７】本発明の第１の実施の形態における優先接続定義テーブルの構成を示す図である。
【図８】本発明の第１の実施の形態に係る制御プログラム作成コンバータの動作を示すフローチャートである。
【図９】図１の制御プログラム作成装置で作成された制御プログラムおよび変換後の制御プログラムの例を模式的に示す図である。
【図１０】図１の制御プログラム作成装置で作成された制御プログラムおよび変換後の制御プログラムの他の例を模式的に示す図である。
【図１１】本発明の第２の実施の形態に係る制御プログラム作成コンバータの構成を示すブロック図である。
【図１２】本発明の第２の実施の形態におけるパラメータ変換テーブルの構成を示す図である。
【図１３】本発明の第２の実施の形態に係る制御プログラム作成コンバータの動作を示すフローチャートである。
【符号の説明】
【００７６】
１，１ａ…制御プログラム作成コンバータ、２，２ａ…制御プログラム読込部、３，３ａ…制御プログラム変換部、４，４ａ…制御プログラム出力部、５，５ａ…記憶部、６，６ａ…入力部、７，７ａ…表示部、３０，３０ａ…ブロックタイプ変換部、３１，３１ａ…パラメータ変換部、３２，３２ａ…入出力接続方式判定部、３３，３３ａ…入出力接続設定部、５０，５０ａ…プログラム、５１，５１ａ…ブロックタイプ変換テーブル、５２，５２ａ…パラメータ変換テーブル、５３…優先接続定義テーブル。
【図１】
0004851420.tif 000002
【図２】
0004851420.tif 000003
【図３】
0004851420.tif 000004
【図４】
0004851420.tif 000005
【図５】
0004851420.tif 000006
【図６】
0004851420.tif 000007
【図７】
0004851420.tif 000008
【図８】
0004851420.tif 000009
【図９】
0004851420.tif 000010
【図１０】
0004851420.tif 000011
【図１１】
0004851420.tif 000012
【図１２】
0004851420.tif 000013
【図１３】
0004851420.tif 000014