(57)【要約】【課題】ファンクションブロック定義を修正することによりファンクションブロックインスタンスの編集を自動的に行うこと。【解決手段】ファンクションブロックを含むシーケンスプログラムを編集するシーケンスプログラム編集装置において、パラメータの数や属性を定義するファンクションブロック定義を修正する場合、シーケンスプログラムの中から修正されたファンクションブロック定義に対応するファンクションブロックインスタンスにおいて修正後のファンクションブロック定義に整合するようにパラメータの数や属性を修正する修正手段を有するシーケンスプログラム編集装置。【選択図】図１
2009009462.tif 000002
【特許請求の範囲】
【請求項１】
ファンクションブロックを含むシーケンスプログラムを編集するシーケンスプログラム編集装置において、
ファンクションブロック定義の修正を入力するファンクションブロック定義修正入力手段と、シーケンスプログラムの中から前記修正されたファンクションブロック定義に対応するファンクションブロックインスタンスを検出する検出手段と、
検出されたファンクションブロックインスタンスにおいて修正後のファンクションブロック定義に整合するようにパラメータの数や属性を修正する修正手段とを有するシーケンスプログラム編集装置。
【請求項２】
前記修正手段は、修正前後のファンクションブロック定義において修正されなかったパラメータやその属性を判断する判断手段と、修正されなかったパラメータの属性の情報はそのまま修正後のファンクションブロックインスタンスに再配置する機能を有することを特徴とする請求項１に記載のシーケンスプログラム編集装置。
【請求項３】
修正されたファンクションブロック定義において、対応するファンクションブロックインスタンスの修正されたパラメータや属性の個所がどこかわかるように表示する機能を有する請求項１又は２のいずれか１つに記載のシーケンスプログラム編集装置。
【請求項４】
ファンクションブロック定義を修正することにより、前記検出手段および修正手段が自動的に起動できることを特徴とする、請求項１〜３のいずれか１つに記載のシーケンスプログラム編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファンクションブロック定義を修正した際、既にシーケンスプログラムの中で使用しているファンクションブロックインスタンスの使用状況を調査し、自動的に整合性を調査して入力及び出力の引数を再配置することが可能な、シーケンスプログラム編集装置に関する。
【背景技術】
【０００２】
オブジェクト指向プログラミング言語により、ファンクションブロックを新規に作成、使用する技術に関するものは存在した。しかしながら、ファンクションブロック定義を修正することによりファンクションブロックインスタンスの編集を自動的に行うことができなかった。
【０００３】
【特許文献１】特開２００１−５１７０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、修正したファンクションブロック定義を指定するだけで、既にシーケンスプログラムの中で使用しているファンクションブロックインスタンスを「検索」し、検索された該ファンクションブロックインスタンスを「削除」し、新たに「修正したファンクションブロック定義の再インスタンス化」を自動的に行えるようにし、また、入力部・出力部の数や変数タイプが変更になり配置できないパラメータは作業者に問い合わせを行うことにより、シーケンスプログラムの編集作業の効率化を図ることを課題とする。
【課題を解決するための手段】
【０００５】
本願の請求項１に記載された発明は、ファンクションブロックを含むシーケンスプログラムを編集するシーケンスプログラム編集装置において、ファンクションブロック定義の修正を入力するファンクションブロック定義修正入力手段と、シーケンスプログラムの中から前記修正されたファンクションブロック定義に対応するファンクションブロックインスタンスを検出する検出手段と、検出されたファンクションブロックインスタンスにおいて修正後のファンクションブロック定義に整合するようにパラメータの数や属性を修正する修正手段とを有するシーケンスプログラム編集装置である。
【０００６】
請求項２に記載された発明は、前記修正手段は、修正前後のファンクションブロック定義において修正されなかったパラメータやその属性を判断する判断手段と、修正されなかったパラメータの属性の情報はそのまま修正後のファンクションブロックインスタンスに再配置する機能を有することを特徴とする請求項１に記載のシーケンスプログラム編集装置である。
【０００７】
請求項３に記載された発明は、修正されたファンクションブロック定義において、対応するファンクションブロックインスタンスの修正されたパラメータや属性の個所がどこかわかるように表示する機能を有する請求項１又は２のいずれか１つに記載のシーケンスプログラム編集装置である。
【０００８】
請求項４に記載された発明は、ファンクションブロック定義を修正することにより、前記検出手段および修正手段が自動的に起動できることを特徴とする、請求項１〜３のいずれか１つに記載のシーケンスプログラム編集装置である。
【発明の効果】
【０００９】
本発明により、修正したファンクションブロック定義を指定（入力）するだけで、既にシーケンスプログラムの中で使用しているファンクションブロックインスタンスを「検索」、「削除」、「修正したファンクションブロック定義の再インスタンス化」を自動的に行い情報の再入力を省略することができる。また、入力部・出力部の数や変数タイプが変更になり配置できないパラメータは作業者に問い合わせを行うことにより、シーケンスプログラムの編集作業を効率的に行える。
【発明を実施するための最良の形態】
【００１０】
以下、本発明のシーケンスプログラム編集装置の一実施形態について図面とともに説明する。
【００１１】
図１は本発明の一実施形態であるシーケンスプログラム編集装置のブロック図である。ＲＯＭ３には本発明を実施するためのシーケンスプログラムを編集するためのプログラムが格納されている。
【００１２】
図２はファンクションブロック定義の構成要素を示している。１３はファンクションブロックの定義名である。１４は使用するパラメータおよび内部変数などの情報を示している。図２では、ファンクションブロックＦＢは、入力パラメータＩｎ１，Ｉｎ２、入出力パラメータＩｎＯｕｔ、出力パラメータＯｕｔ１，Ｏｕｔ２の変数タイプからなる。１５は本体プログラムを示している。このファンクションブロックＦＢをラダー線図で示すと本体プログラム１５のように表される。ＢＯＯＬはビット型でＳＩＮＴ／ＤＩＮＴは整数型のデータタイプを示している。
【００１３】
図３はファンクションブロックの図式である。図２で示されたラダー線図を基に入力パラメータと出力パラメータを持つファンクションブロック図が作成される。
【００１４】
図４はファンクションブロックインスタンスを含んだシーケンスプログラムを示している。１６は入力部、１７はファンクションブロックインスタンス名ＦＢ＿０００１、１８は出力部を示す。Ｒ９０９１．１やＤ０１００はＰＭＣアドレスを意味し、前者は小数点があるのでビット型、後者はバイト型である。
シーケンスプログラムは左から右、上から下に処理される。
（１）  入力部の引数を入力パラメータへ渡す。  
Ｒ９０９１．１の内容をＩｎ１入力パラメータへ渡す。
Ｄ０１００の内容をＩｎ２入力パラメータへ渡す。
Ｒ０１００．０の内容をＩｎＯｕｔ入出力パラメータへ渡す。
（２）  ＦＢ＿０００１の処理（本体プログラムが実行される。）
（３）  出力パラメータの内容を出力部の引数へ渡す。
Ｏｕｔ１出力パラメータの内容をＤ０２００へ渡す。
Ｏｕｔ２出力パラメータの内容をＲ０３００．０へ渡す。
ＩｎＯｕｔ入出力パラメータの内容をＲ０３００．１へ渡す。
【００１５】
図５はファンクションブロック定義編集画面を示し、シンボル名Ｎｅｗ、データタイプＢＹＴＥである入力パラメータを追加した例１９を示している。入力パラメータ（配置順序３、シンボル名Ｎｅｗ、データタイプＢＹＴＥ）が新たにファンクションブロック定義に追加された例を示している。
【００１６】
図６は再配置処理で検索されるファンクションブロックインスタンスの一例を示している。図６の点線で囲まれるブロックは、検索されたファンクションブロックインスタンス２０を示している。ファンクションブロック定義を変更すると、ファンクションブロック定義編集画面から再配置処理へ変更されたファンクションブロック定義名を通知する。再配置処理は調査するファンクションブロック定義名の通知を受け、シーケンスプログラムから対応するファンクションブロックインスタンスを検索する。
【００１７】
図７は、変更したファンクションブロック定義に対応するファンクションブロックインスタンスを見つけた場合、図７（ａ），（ｂ），（ｃ）に示されるテーブルを作成することを示している。これらのテーブルは例えば図１のＲＡＭ４に格納される。図７（ａ）は修正前のパラメータ一覧をファンクションブロックインスタンスから作成する。図７（ｂ）は修正後のパラメータ一覧をファンクションブロック定義から作成する。図７（ｃ）は、図７（ａ）と図７（ｂ）との双方の整合性を判定し、判定結果が再配置可であるファンクションブロックの修正前後で相違が無い入力部及び出力部の引数を再配置することを示している。そして、修正により追加されたシンボル名がＮｅｗ、変数タイプとしてＢＹＴＥである入力パラメータは判定結果が再配置不可と判定される。
【００１８】
以下、図７で作成されたテーブル（ａ）、（ｂ）、（ｃ）を用い、ファンクションブロック定義を再インスタンス化する手順について説明する。
【００１９】
図８は、修正前のファンクションブロックインスタンスの入力部・出力部の引数を記憶することを示している。図９はファンクションブロック定義の再インスタンス化に先立ち、修正前のファンクションブロックインスタンスを削除することを示している。図１０はファンクションブロック定義を再インスタンス化することを示している。図１１は変数タイプ、シンボル名、変数タイプが修正前と修正後とで一致しているパラメータの入力部・出力部の引数を再配置することを示している。図１２は修正又は追加されたパラメータ２１や属性の箇所がどこかわかるように色を変えたり点滅させたりして表示することを示している。
【００２０】
図１３−１，図１３−２はファンクションブロック定義を修正したことに伴う再インスタンス化を行う処理を示すフローチャートの例である。再配置処理を開始すると、調査するファンクションブロック定義名の変更通知を受ける（ステップＳ１）。調査位置を全ラダープログラムの先頭に設定する（ステップＳ２）。調査位置から命令を取得する（ステップＳ３）。調査するファンクションブロック定義を使用したインスタンスか否かを判断する（ステップＳ４）。ＮＯであれば２Ｂへ行く。ＹＥＳと判断されると、変更前のパラメータ一覧をファンクションブロック定義から作成する（ステップＳ５）。次に変更後のパラメータ一覧をファンクションブロックから作成する（ステップＳ６）。ファンクションブロックインスタンスの引数を記憶する（ステップＳ７）。ファンクションブロックインスタンスを削除する（ステップＳ８）。ファンクションブロック定義を再インスタンス化する（ステップＳ９）。２Ａに行く。
【００２１】
データタイプ、シンボル名、変数タイプは一致するか否かを判断する（ステップＳ１０）。ＮＯの場合、ステップＳ１２に行く。ＹＥＳと判断されると、記憶した引数を編集バッファに再配置する（ステップＳ１１）。エラーネットか否かを判断する（ステップＳ１２）。ＹＥＳの場合、作業者に入力を求める（ステップＳ１３）。ＮＯの場合、最後の命令であるか否かを判断する（ステップＳ１４）。ＹＥＳの場合、終了する。ＮＯの場合、調査位置を次の命令へ進め（ステップＳ１５）、１Ａに行きステップＳ３へ行く。
なお、ステップＳ１２でエラーネットか判断することについて説明する。
ステップＳ１０とステップＳ１１でデータタイプ、シンボル名、変数タイプが変更前と変更後とで一致した引数を編集バッファに再配置しますが、Ｎｅｗの入力パラメータの引数は未定義になる。入力パラメータは省略できないので情報が不足することになり、エラーネットと認識される。エラーネットは回路を赤色、線を太く表示するなどしてユーザーに入力を要求する。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態であるシーケンスプログラム編集装置のブロック図である。
【図２】ファンクションブロックの構成要素を示す図である。
【図３】ファンクションブロックを示す図である。
【図４】ファンクションブロックインスタンスを示す図である。
【図５】ファンクションブロック定義編集画面で、シンボル名Ｎｅｗ、データタイプＢＹＴＥの入力パラメータを追加する例を示す図である。
【図６】ファンクションブロックインスタンスを検索する例を示す図である。
【図７】修正前後の整合性を判定するためのテーブルの例を示す図である。
【図８】修正前のファンクションブロックインスタンスの入力部・出力部の引数を記憶する例を示す図である。
【図９】ファンクションブロックインスタンスを削除する例を示す図である。
【図１０】ファンクションブロック定義を再インスタンス化する例を示す図である。
【図１１】変数タイプ、シンボル名、変数タイプが変更前と変更後とで一致しているパラメータの入力部・出力部の引数を再配置する例を示す図である。
【図１２】修正・追加されたパラメータや属性の箇所がどこかわかるように表示する例を示す図である。
【図１３−１】再インスタンスの処理を示すフローチャートの例を示す図である。
【図１３−２】再インスタンスの処理を示すフローチャートの例を示す図である。
【符号の説明】
【００２３】
１  シーケンスプログラム編集装置
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  ハードディスク
６  キーボードインタフェース
７  表示器インタフェース
８  通信インタフェース
９  キーボード
１０  表示器
１１  プログラマブルコントローラ
１２  Ｉ／Ｏデバイス
１３  ファンクションブロック定義名
１４  使用するパラメータおよび内部変数などの情報
１５  本体プログラム
１６  入力部
１７  ファンクションブロックインスタンス名
１８  出力部
１９  入力パラメータが追加された例
２０  検索されたファンクションブロックインスタンス
２１  追加された入力パラメータの例
【図１】
2009009462.tif 000003
【図２】
2009009462.tif 000004
【図３】
2009009462.tif 000005
【図４】
2009009462.tif 000006
【図５】
2009009462.tif 000007
【図６】
2009009462.tif 000008
【図７】
2009009462.tif 000009
【図８】
2009009462.tif 000010
【図９】
2009009462.tif 000011
【図１０】
2009009462.tif 000012
【図１１】
2009009462.tif 000013
【図１２】
2009009462.tif 000014
【図１３−１】
2009009462.tif 000015
【図１３−２】
2009009462.tif 000016