(57)【要約】【課題】  既存のラダープログラムの一部をＦＢプログラムに変換するための操作を、簡単かつ迅速に行うことが可能なプログラム開発支援装置を提供すること。【解決手段】  既存のラダープログラム中のＦＢプログラムに変換したい領域を任意に選択するための領域選択手段と、領域選択手段により任意に選択された領域のラダープログラムをＦＢプログラムに変換するに必要な変数定義用の案内画面を表示する案内画面表示手段と、案内画面表示手段により表示された案内画面にしたがう操作を介して定義された各変数の内容に基づいてＦＢプログラムを生成するＦＢプログラム生成手段とを有し、かつ案内画面表示手段にて表示される案内画面においては、選択された領域のラダープログラム中に含まれる各命令のオペランドと既知の情報とに基づく自動判定処理を介して求められた変数種別情報により、各変数の変数種別が予め定義済みとされている。【選択図】  図４
2008033913.tif 000002
【特許請求の範囲】
【請求項１】
ＦＢプログラムを含むラダープログラムを実行する機能を有するＰＬＣのプログラム開発支援装置であって、
既存のラダープログラム中のＦＢプログラムに変換したい領域を任意に選択するための領域選択手段と、
領域選択手段により任意に選択された領域のラダープログラムをＦＢプログラムに変換するに必要な変数定義用の案内画面を表示する案内画面表示手段と、
案内画面表示手段により表示された案内画面にしたがう操作を介して定義された各変数の内容に基づいてＦＢプログラムを生成するＦＢプログラム生成手段とを有し、かつ
案内画面表示手段にて表示される案内画面においては、選択された領域のラダープログラム中に含まれる各命令のオペランドと既知の情報とに基づく自動判定処理を介して求められた変数種別情報により、各変数の変数種別が予め定義済みとされている、
ことを特徴とするＰＬＣのプログラム開発支援装置。
【請求項２】
各変数の変数種別に加えて、各変数のデータ型についても定義済みとされている、ことを特徴とする請求項１に記載のＰＬＣのプログラム開発支援装置。
【請求項３】
変数名の付されていないオペランドアドレスについては、自動生成された変数名が付与される、ことを特徴とする請求項１又は２に記載のＰＬＣのプログラム開発支援装置。
【請求項４】
既知の情報が、各命令のオペランドとその用途との関係を示す情報である、ことを特徴とする請求項１〜３のいずれかに記載のＰＬＣのプログラム開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファンクションブロック（以下、ＦＢと称する）プログラムを含むラダープログラムを実行する機能を有するプログラマブルコントローラ（以下、ＰＬＣと称する）のプログラム開発支援装置に関する。
【背景技術】
【０００２】
ＩＥＣ１１３１の普及やプログラムの部品化による再利用性の向上の必要性が高まるにつれて、ＦＢを使用したＰＬＣプログラムの作成が行われる場合が増えてきた（特許文献１参照）。その１つの流れとして、プログラム開発支援装置を使用して、既存のラダープログラムの一部分をＦＢプログラムに置き換える場合がある。
【０００３】
このような場合におけるプログラム開発支援装置の操作手順が図１０〜図１２に示されている。なお、図１０はラダー言語で作成されたユーザプログラムの画面表示例を示す図、図１１は選択されたプログラム領域を含むユーザプログラムの画面表示例を示す図、図１２はＦＢプログラム生成のための従来の案内画面の説明図である。
【０００４】
いま仮に、図１０に示されるように、プログラム開発支援装置を構成するコンピュータ（例えば、パソコン等）の画面上に、ラダー言語で作成されたユーザプログラム（以下、ラダープログラムと称する）が表示されているものと想定する。
【０００５】
このときに、いわゆるマウスのドラッグ操作で、ラダープログラム中のＦＢプログラムに変換したい領域を選択すると、図１１に示されるように、選択された領域ａは他の領域と異なる色で表示された状態となる。
【０００６】
その後、ＦＢプログラム生成のための案内画面上において、図１２（ｂ）に示されるように、選択されたラダープログラムをペースト処理すると、同図（ａ）に示されるように、同画面の別の領域には変数定義表が表示される。
【０００７】
この変数定義表は、５個のタブＴＢ１〜ＴＢ５によって選択可能な５つのページ画面を有している。それらのページ画面は、タブＴＢ１に対応する内部変数（Ｉｎｔｅｒｎａｌｓ）を定義するページ、タブＴＢ２に対応する入力変数（Ｉｎｐｕｔｓ）を定義するページ、タブＴＢ３に対応する出力変数（Ｏｕｔｐｕｔｓ）を定義するページ、タブＴＢ４に対応する入出力変数（Ｉｎ Ｏｕｔ）を定義するページ、及びタブＴＢ５に対応する外部変数（Ｅｘｔｅｒｎａｌｓ）を定義するページを含んでいる。
【０００８】
ここで各変数について簡単に説明する。入力変数とは、ラダープログラム中のＦＢプログラムに変換したい領域内では、入力用途のオペランドに使用されている変数であり、かつ、領域外でも使用されている変数をＦＢプログラム内で扱う場合の変数の種別のことである。
【０００９】
出力変数とは、ラダープログラム中のＦＢプログラムに変換したい領域内では、出力用途のオペランドに使用されている変数であり、かつ、領域外でも使用されている変数をＦＢプログラム内で扱う場合の変数の種別のことである。
【００１０】
入出力変数とは、ラダープログラム中のＦＢプログラムに変換したい領域内では、入力および出力の両方の用途のオペランドに使用されている変数であり、かつ、領域外でも使用されている変数をＦＢプログラム内で扱う場合の変数の種別のことである。
【００１１】
内部変数とは、ラダープログラム中のＦＢプログラムに変換したい領域内でのみ使用されている変数をＦＢプログラム内で扱う場合の変数の種別のことである。
【００１２】
以上で説明した変数は、変数名と呼ばれるラベルを用いてプログラムに含まれる命令のオペランドとして使用される。
【００１３】
図１２（ａ）から明らかなように、選択領域に含まれる全ての命令（ラダープログラムの場合は、接点、コイル、各種の応用命令など）のオペランドに使用される変数名は、ＦＢプログラム内において、仮に、内部変数として初期設定される。すなわち、図１２（ａ）に示されるように、全ての変数名はタブＴＢ１に対応する内部変数ページにまとめて表示される。
【００１４】
一方、プログラム開発支援装置の側では、選択された領域内の全ての命令のオペランドに使用される変数名が、内部変数、入力変数、出力変数、入出力変数として適切に定義された場合に限り、その選択されたラダープログラムに対応するＦＢプログラムを正常に生成するように構成されている。
【００１５】
そのため、以後オペレータは、当初内部変数を定義するページに表示された全ての変数名を、１つ１つ確認しながら、適切な変数種別に割り当て、該当する種別ページへと転記するといった操作を行わねばならない。選択された領域内に存在する命令数が増加するにつれて、上述の割り振りないし転記作業は煩雑を極め、多大なる時間と労力を費やす結果となる。
【００１６】
例えば、特定の命令のオペランドに使用される変数名が内部変数であるか外部変数であるかを確認するためには、その変数名が選択領域以外の他の領域に存在するか否かを確認せねばならない。これには膨大な時間と労力を要する。
【特許文献１】特開２００４−２８０３４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述の例からも明らかなように、従来のプログラム開発支援装置において、既存のラダープログラムの一部をＦＢプログラムに変換するためには、アドレスベースで作成されたラダープログラムを、変数ベースのＦＢプログラムに置き換える必要性から、（１）各命令オペランドに使用されているアドレスの変数名定義が必要であること、（２）各命令オペランドに使用されているアドレスの用途（入力、出力、入出力など）の決定が必要であること、といった非常に複雑な作業が要求されるという問題点があった。
【００１８】
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、既存のラダープログラムの一部をＦＢプログラムに変換するための操作を、簡単かつ迅速に行うことが可能なプログラム開発支援装置を提供することにある。
【００１９】
この発明のさらに他の目的ならびに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００２０】
上述の課題を解決するための手段としては、次のような構成を採用することができる。すなわち、このプログラム開発支援装置は、ＦＢプログラムを含むラダープログラムを実行する機能を有するＰＬＣのプログラム開発支援装置である。このプログラム開発支援装置には、既存のラダープログラム中のＦＢプログラムに変換したい領域を任意に選択するための領域選択手段と、領域選択手段により任意に選択された領域のラダープログラムをＦＢプログラムに変換するに必要な変数定義用の案内画面を表示する案内画面表示手段と、案内画面表示手段により表示された案内画面にしたがう操作を介して定義された各変数の内容に基づいてＦＢプログラムを生成するＦＢプログラム生成手段が設けられている。加えて、このプログラム開発支援装置にあっては、案内画面表示手段にて表示される案内画面においては、選択された領域のラダープログラム中に含まれる各命令のオペランドと既知の情報とに基づく自動判定処理を介して求められた変数種別情報により、各変数の変数種別があらかじめ定義済みとされている。
【００２１】
このような構成によれば、ＦＢプログラムの生成に必要な変数定義において、各変数の種別（例えば、内部変数、入力変数、出力変数、入出力変数、外部変数等々）については適切な内容に自動設定されるため、変数種別定義のための煩雑な操作からオペレータを解放することができる。しかも、各変数の変数種別定義のために使用される変数種別情報は、選択された領域のラダープログラム中に含まれる各命令のオペランドと既知の情報とに基づく自動判定処理を介して求められたものであるから、非常に信頼性が高いという利点もある。
【００２２】
このとき、選択された領域のラダープログラム中に含まれる各命令のオペランドと既知の情報とに基づく自動判定処理によれば、変数種別情報のみならず各変数のデータ型情報についても求めることができるから、各変数のデータ型についても定義済みとすれば、オペレータの労力を一層軽減することができる。
【００２３】
また、このような変数種別情報自動定義処理に際しては、変数名の付されていないオペランドアドレスについては、自動生成された変数名を付与してもよく、このような構成によれば、ラダープログラム上に変数名が存在しない場合においても、自動生成された変数名を前提として、変数種別や変数のデータ型についても自動的に定義することができる。ここで、オペランドアドレスとは、命令のオペランドに使用されているアドレスのことである。ＦＢプログラムに変換したい領域を含む既存のプログラム中に含まれる各命令のオペランドには、変数名または、アドレスが使用される。
【００２４】
以上の構成において、自動判定処理に利用される「既知の情報」としては、各命令のオペランドとその用途との関係を示す情報を利用することができ、一般にこの種のプログラム開発支援装置においては、このような情報がクロスリファレンスリストとして用意されているのが通例である。
【発明の効果】
【００２５】
本発明のプログラム開発支援装置によれば、既存のラダープログラムの一部を利用してＦＢプログラムを生成するための操作を著しく簡単なものとすることができる。
【発明を実施するための最良の形態】
【００２６】
以下に、この発明に係るプログラム開発支援装置の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００２７】
本発明に係るプログラム開発支援装置を含むＰＬＣシステムの一例を示す外観構成図が図１に示されている。同図に示されるように、このＰＬＣシステムは、ＰＬＣ１とプログラム開発支援装置２とを通信ケーブル５を介して接続して構成されている。ＰＬＣ１はこの例ではバックプレーン３を有するビルディングブロックタイプに構成されている。より具体的には、このＰＬＣ１は、電源ユニット１０と、ＣＰＵユニット１２と、Ｉ／Ｏユニット１３と、特殊機能ユニット１４とを含んでいる。ＰＬＣ１を構成するＣＰＵユニット１２は、この例にあっては、ＦＢプログラムを含むラダープログラムを実行する機能を有している。
【００２８】
一方、プログラム開発支援装置２は、パソコン等の汎用コンピュータに、プログラム開発支援装置としてのアプリケーションプログラムをインストールすることによって構成されている。
【００２９】
後に詳細に説明するように、このアプリケーションプログラムには、既存のラダープログラム中のＦＢプログラムに置換したい領域を任意に選択するための領域選択手段と、領域選択手段により任意に選択された領域のラダープログラムをＦＢプログラムに置換するに必要な変数定義用の案内画面を表示する案内画面表示手段と、案内画面表示手段により表示された案内画面にしたがう操作を介して定義された各変数名の内容に基づいてＦＢプログラムを生成するＦＢプログラム生成手段としてのプログラムが含まれている。
【００３０】
加えて、案内画面表示手段にて表示される案内画面においては、選択された領域のラダープログラム中に含まれる各命令のオペランドと既知の情報とに基づく自動判定処理を介して求められた変数種別情報により、各変数の変数種別があらかじめ定義済みとされるようにプログラム構成されている。
【００３１】
次に、本発明に係るプログラム開発支援装置において、既存のラダープログラムの一部をＦＢプログラムに変換するための操作について説明する。
【００３２】
プログラム開発支援装置２を構成するパソコンの画面上において、ＦＢプログラムに変換したいラダープログラム部分を選択した後（図１０及び図１１参照）、図４（ｂ）に示されるように、ＦＢプログラム生成支援のための案内画面上において所定領域に選択されたラダープログラム部分をペーストすると、同図（ａ）に示されるように、選択された領域内に含まれる変数名は、変数定義表へ格納され、また、画面上に表示される。
【００３３】
ここで、図４（ａ）に示される変数定義表と図１２（ａ）に示される変数定義表とを比較して明らかなように、本発明の場合には、選択されたプログラム領域に含まれる各命令に使用される変数名は、それぞれ適切な変数種別に割り振られた後、変数定義表へ格納され、また、画面上に表示される。
【００３４】
なお、図４（ａ）の例にあっては、タブＴＢ１に対応する内部変数を定義するページが開かれた状態にあるため、他のページについては記述内容が見えないが、図５（ａ）〜（ｃ）に示されるように、入力変数を定義するページ、出力変数を定義するページ、入出力変数を定義するページのそれぞれにも、該当する変数名が適切に割り振られて格納され、また、画面上に表示される。
【００３５】
このように、本発明のプログラム開発支援装置によれば、既存のラダープログラムが表示された状態において、マウスを用いて領域選択のためのドラッグ操作を行い、これをＦＢプログラム生成支援のための案内画面上において所定位置にペーストすれば、直ちに変数種別の自動割り振り作業が実行されて、それらの変数名は該当する種別の変数定義表へ格納され、また、画面上に表示される。
【００３６】
しかも、各変数種別を定義するページについて見ると、各変数種別の属性として、データ型（Ｄａｔａ Ｔｙｐｅ）、現在値（ＡＴ）、初期値（Ｉｎｉｔｉａｌ Ｖａｌ．．．）、保持の有無（Ｒｅｔａｉｎ．．．）の中で、データ型と初期値については、同様に定義済みとされている。
【００３７】
そのため、本発明のプログラム開発支援装置によれば、既存のラダープログラムの一部をＦＢプログラムに変換するための操作としては、ドラッグ操作の他には、僅かな属性項目について必要な値を記述するだけで済み、特に、変数種別の割り振りが既に定義済みであることから、従前のように、変数種別を確認するために、プログラム全体を調べ上げるといった煩雑な作業が不要となって、この種の操作を著しく簡素化することができる。変数種別の割り振りの概念が図３に示されている。
【００３８】
次に、以上の操作を実現するために、パソコンにインストールされるアプリケーションプログラムの構成を、図６及び図７のフローチャートを中心として説明する。
【００３９】
オペランドの変数割付処理を示すフローチャートが図６に示されている。同図において処理が開始されると、まず、ステップ６０１では、マウスのドラッグ操作を介して、ＦＢ化する回路を選択する。続くステップ６０２では、ＦＢ化する機能開始のための所定の前処理（フラグやレジスタの初期設定など）を実行する。続くステップ６０３では、新規ＦＢの作成のための処理を行う。この処理によって、メモリ内のＦＢプログラム作成領域が定義され、ここにＦＢ変数（ＦＢプログラム内で使用される変数）を登録するための変数定義表が作成され、以後登録されていく。
【００４０】
続くステップ６０４では、ラダープログラム中より選択回路内１命令の取得が行われる（ステップ６０４）。続くステップ６０５においては、取得された１命令に対応する命令データが命令仕様データベース（ＤＢ）から取得され、その１命令の構造が解析される。続くステップ６０６では、命令仕様ＤＢ内のオペランドデータからオペランドのデータ型が取得される。このようにステップ６０４〜６０６を通じて、ラダープログラム内の選択された領域から取得された１命令について、その内容が解析される。
【００４１】
しかる後、その取得された１命令についてその命令のオペランドとして変数名の有無がチェックされる（ステップ６０７）。ここで変数名なしと判定されれば（この場合は、オペランドとして変数名ではなくアドレスが使用されている）、ステップ６０８へと進んで、変数名の自動生成処理が行われる。この変数名の自動生成処理においては、図２に示されるように、「名称なしの変数」から「“ＡｕｔｏＧｅｎ＿”＋アドレス」のように、自動生成された変数名称がそのアドレスに付されることとなる。なお、ステップ６０７で変数名ありの場合には、ステップ６０８はスキップされる。
【００４２】
続くステップ６０９では、ラダープログラムからオペランドの取得が行われる。続くステップ６１０では、取得されたオペランドに基づいて、そのオペランドの用途の確認処理が行われる。これにより、取得されたオペランドの用途（入力、出力、入出力など）が確認される結果、これに基づいて、変数種別情報が生成される。なお、このオペランドの用途確認処理（ステップ６１０）の詳細については、後に、図７を参照して詳細に説明する。
【００４３】
続くステップ６１１では、以上の処理で得られた情報に基づいて、ＦＢ内変数の生成が行われ、メモリ内の該当する記憶領域（変数定義表が格納される領域）へと格納される。
【００４４】
以上説明したステップ６０４〜６１１の処理が、選択されたラダー回路内の最後の命令に至るまで繰り返し実行される（ステップ６１２）。
【００４５】
次に、オペランドの用途確認処理を示すフローチャートが図７に示されている。同図において処理が開始されると、まずステップ７０１においては、ラダープログラムから全体プログラム内１命令の取得が行われる。続くステップ７０２においては、同様にラダープログラムから、命令のオペランドの取得が行われる。以後、こうして取得されたオペランドと図６のステップ６０９で取得されたオペランドとの一致が確認されるまで、以上の１命令取得及びオペランド取得処理が繰り返し実行される（ステップ７０１，７０２）。
【００４６】
その間に、全体プログラム内１命令のオペランドと選択回路内命令のオペランドとの一致が確認されると（ステップ７０３ＹＥＳ）、続いてステップ７０４が実行されて、命令のオペランドの用途（入力／出力／入出力）の取得が命令データに基づき行われる。この命令データは、命令仕様データベースＤＢから取得される。続くステップ７０５では、ステップ７０１で取得された１命令が、選択範囲の命令であるか否かの判定が行われる。ここで、選択範囲の命令である場合にはステップ７０６へと進むのに対し、選択範囲の命令ではない場合にはステップ７０７へと進む。
【００４７】
ステップ７０６においては、用途が入力とされる場合には、選択範囲内入力フラグはＯＮとされる。また、用途が出力とされる場合には、選択範囲内出力フラグはＯＮとされる。さらに用途が入出力とされる場合、選択範囲内入力フラグはＯＮとされ且つ選択範囲内出力フラグについてもＯＮとされる。
【００４８】
一方、ステップ７０７においては、用途が入力の場合、選択範囲外入力フラグはＯＮとされる。用途が出力の場合、選択範囲外出力フラグはＯＮとされる。用途が入出力の場合、選択範囲外入力フラグはＯＮとされ且つ選択範囲外出力フラグについてもＯＮとされる。
【００４９】
以上の処理ステップ７０１〜７０７が、全体プログラムの最後の命令に至るまで繰り返され、全体プログラムの最後の命令が到来するのを待って、図８のテーブルに基づき用途の決定処理が実行される（ステップ７０９）。
【００５０】
この用途決定処理（ステップ７０９）においては、図８に示される参照テーブルに従って、選択回路外または選択回路内別に、内部変数、入力変数、出力変数、入出力変数の別の割り振りが行われる。
【００５１】
次に、図６のステップ６１１に相当するＦＢ内変数の生成処理を示すフローチャートが図９に示されている。同図に示されるように、処理が開始されると、新規ＦＢ内変数の生成処理（ステップ９０１）、取得したオペランドデータ型をＦＢ変数に登録する処理（ステップ９０２）、変数名をＦＢ変数に登録する処理（ステップ９０３）及び決定した用途をＦＢ変数に登録する処理（ステップ９０４）が実行され、その結果新規ＦＢ変数が生成ないし定義されることになるのである。ここでＦＢ変数に登録するとは変数定義表に登録することを意味している。
【００５２】
以上説明したように、図６に示されるオペランド変数割付処理、図７に示されるオペランドの用途確認処理、図９に示されるＦＢ内変数の生成処理が実行されることによって、オペレータは、ラダープログラム全体の中から任意のプログラム領域を選択し、これをＦＢプログラム生成のための案内画面上にペーストするだけで、その選択領域に含まれた各命令に対応する変数を自動的に定義させることができ、これにより従前の人手に頼った命令種別確認操作に比べ、この種のＦＢ化操作を著しく簡便なものとすることができる。
【産業上の利用可能性】
【００５３】
本発明によれば、既存のラダープログラムの一部を利用してＦＢプログラムを生成するための操作を著しく簡単なものとすることができる。
【図面の簡単な説明】
【００５４】
【図１】本発明に係る開発支援装置を含むＰＬＣシステムの一例を示す外観構成図である。
【図２】本発明装置の作用説明図である。
【図３】変数種別の割り振りの概念を示す図である。
【図４】ＦＢプログラム生成支援のための案内画面の説明図（その１）である。
【図５】ＦＢプログラム生成支援のための案内画面の説明図（その２）である。
【図６】オペランドの変数割付処理を示すフローチャートである。
【図７】オペランドの用途確認処理を示すフローチャートである。
【図８】用途決定のための参照テーブルの説明図である。
【図９】ＦＢ内変数の生成処理を示すフローチャートである。
【図１０】ラダー言語で作成されたユーザプログラムの画面表示例を示す図である。
【図１１】選択されたプログラム領域を含むユーザプログラムの画面表示例を示す図である。
【図１２】ＦＢプログラム生成のための従来の案内画面の説明図である。
【符号の説明】
【００５５】
１ ＰＬＣ
２ プログラム開発支援装置
ａ 選択領域
ＴＢ１〜ＴＢ５ タブ
【図１】
2008033913.tif 000003
【図２】
2008033913.tif 000004
【図３】
2008033913.tif 000005
【図４】
2008033913.tif 000006
【図５】
2008033913.tif 000007
【図６】
2008033913.tif 000008
【図７】
2008033913.tif 000009
【図８】
2008033913.tif 000010
【図９】
2008033913.tif 000011
【図１０】
2008033913.tif 000012
【図１１】
2008033913.tif 000013
【図１２】
2008033913.tif 000014