(57)【要約】【課題】全く同じ機能を有する複数台の制御装置を、統括的な役割を果たす１台の制御装置が制御するような制御システムを開発する場合において、各制御装置間で同じラベル名を用いたプログラム作成をすることができるプログラム作成支援装置を得ること。【解決手段】制御装置ごとに作成されたその制御装置で使用可能なラベルを含むラベル情報のうち、自制御装置のラベル情報中のラベルと、他制御装置のラベル情報中のラベルにその引用元を示す引用元識別情報を付したラベルとを用いて記述された制御プログラムを設定するとともに、その内容を有する制御プログラムを表示することができるように保持するプログラム設定部１５と、プログラム設定部１５で設定されまたは保持された制御プログラム中のラベルが他の制御装置で使用されるラベルである場合に、引用元識別情報をラベルに付して表示部１１に表示する表示処理部１８と、を備える。【選択図】        図１
2007265252.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御装置からなる制御システムで、それぞれの前記制御装置が制御対象を制御するためのラベルを用いた制御プログラムの作成を支援するプログラム作成支援装置において、
制御装置ごとに作成されたその制御装置で使用可能なラベルを含むラベル情報のうち、自制御装置のラベル情報中のラベルと、他制御装置のラベル情報中のラベルにその引用元を示す引用元識別情報を付したラベルとを用いて記述された制御プログラムを設定するとともに、その内容を有する制御プログラムを表示することができるように保持するプログラム設定手段と、
前記プログラム設定手段によって設定されまたは保持された前記制御プログラム中のラベルが他の制御装置で使用されるラベルである場合に、引用元識別情報を前記ラベルに付して表示手段に表示する表示処理手段と、
を備えることを特徴とするプログラム作成支援装置。
【請求項２】
前記制御プログラム中のラベルを読込み、引用元識別情報を付加したラベルをその引用元の制御装置ごとに分類した他装置用ラベル一覧情報を生成する他装置用ラベル一覧情報生成手段と、
生成された前記他装置用ラベル一覧情報中のラベルを、前記制御システム内の共有メモリとして機能するデバイスに関連付けするためのラベル−デバイス関連付け設定画面を生成し、このラベル−デバイス関連付け設定画面に入力された内容に基づいて他装置用ラベルと前記デバイスとの間の関連付けを行う他装置用ラベル−デバイス関連付け設定処理手段と、
前記他装置用ラベルと前記デバイスとの間の関連付けを、前記制御システムを構成する他の制御装置に対して反映させる関連付け反映手段と、
をさらに備えることを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項３】
前記制御システムは、前記制御装置としての複数のプログラマブルコントローラ（以下、ＰＬＣという）がネットワークを介して接続された構成を有し、
前記デバイスは、それぞれの前記ＰＬＣが有するリンクデバイスであり、
前記他装置用ラベル−デバイス関連付け設定処理手段は、前記ラベル−デバイス関連付け設定画面として、前記ラベルをリンクデバイスに関連付ける設定画面を生成することを特徴とする請求項２に記載のプログラム作成支援装置。
【請求項４】
前記制御システムは、前記制御装置としての複数のＣＰＵユニットがベースユニット上に複数装着されたマルチＣＰＵ構成を有し、
前記デバイスは、それぞれの前記ＣＰＵユニットが有する共有リフレッシュデバイスであり、
前記他装置用ラベル−デバイス関連付け設定処理手段は、前記ラベル−デバイス関連付け設定画面として、前記ラベルを共有リフレッシュデバイスに関連付ける設定画面を生成することを特徴とする請求項２に記載のプログラム作成支援装置。
【請求項５】
前記ラベル情報は、他の制御手段に対して公開する公開ラベル情報と、他の制御手段に対して非公開の非公開ラベル情報と、からなり、
前記制御プログラムは、他の制御装置のラベルを引用する場合に公開ラベル情報中のラベルのみを引用可能であることを特徴とする請求項１〜４のいずれか１つに記載のプログラム作成支援装置。
【請求項６】
１台以上の制御装置からなる装置と、１台以上の前記装置を統括制御する制御装置と、を含む制御システムで、それぞれの前記制御装置が所定の処理を実行するためのラベルを用いた制御プログラムの作成を支援するプログラム作成支援装置において、
前記装置ごとに作成されたその装置で使用可能なラベルを含む装置用ラベル情報中のラベルにその引用元を示す引用元識別情報を付したラベルと、前記制御装置ごとに作成されたその制御装置のみで使用可能なラベルを含む制御装置用ラベル情報中のラベルとを用いて記述された制御プログラムを設定するとともに、その内容を有する制御プログラムを表示することができるように保持するプログラム設定手段と、
前記プログラム設定手段によって設定されまたは保持された前記制御プログラム中のラベルが前記装置で使用されるラベルである場合に、引用元識別情報を前記ラベルに付して表示手段に表示する表示処理手段と、
を備えることを特徴とするプログラム作成支援装置。
【請求項７】
作成された制御プログラム中からラベルを読込み、引用元識別情報を付加したラベルをその引用元の装置ごとに分類した他装置用ラベル一覧情報を生成する他装置用ラベル一覧情報生成手段と、
生成された前記他装置用ラベル一覧情報中のラベルを、前記制御システム内の共有メモリとして機能するデバイスに関連付けするためのラベル−デバイス関連付け設定画面を生成し、このラベル−デバイス関連付け設定画面に入力された内容に基づいて他装置用ラベルと前記デバイスとの間の関連付けを行う他装置用ラベル−デバイス関連付け設定処理手段と、
前記他装置用ラベルと前記デバイスとの間の関連付けを、前記制御システムを構成する他の制御装置に対して反映させる関連付け反映手段と、
をさらに備えることを特徴とする請求項６に記載のプログラム作成支援装置。
【請求項８】
前記制御システムは、制御装置としての複数のプログラマブルコントローラ（以下、ＰＬＣという）がネットワークを介して接続された構成を有し、
前記デバイスは、それぞれの前記ＰＬＣが有するリンクデバイスであり、
前記他装置用ラベル−デバイス関連付け設定処理手段は、前記ラベル−デバイス関連付け設定画面として、前記ラベルをリンクデバイスに関連付ける設定画面を生成することを特徴とする請求項７に記載のプログラム作成支援装置。
【請求項９】
前記制御システムは、制御装置としての複数のＣＰＵユニットがベースユニット上に複数装着されたマルチＣＰＵ構成を有し、
前記デバイスは、それぞれの前記ＣＰＵユニットが有する共有リフレッシュデバイスであり、
前記他装置用ラベル−デバイス関連付け設定処理手段は、前記ラベル−デバイス関連付け設定画面として、前記ラベルを共有リフレッシュデバイスに関連付ける設定画面を生成することを特徴とする請求項７に記載のプログラム作成支援装置。
【請求項１０】
前記装置用ラベル情報中のラベルと、前記装置を構成する前記制御装置の制御装置用ラベル情報中のラベルとを対応付けるためのラベル関連付け設定画面を生成し、このラベル関連付け設定画面に入力された内容に基づいて前記装置用ラベル情報中のラベルと前記制御装置用ラベル情報中のラベルとの間の関連付けを行うラベル編集手段をさらに備えることを特徴とする請求項６に記載のプログラム作成支援装置。
【請求項１１】
前記装置を構成する前記制御装置の前記制御装置用ラベル情報は、他の制御装置に対して公開するラベルを含む公開ラベル情報と、他の制御装置に対して公開しないラベルを含む非公開ラベル情報と、を含み、
前記ラベル編集手段は、前記装置用ラベル情報中のラベルと、前記装置を構成する前記制御装置の公開ラベル情報中のラベルとを対応付けるためのラベル関連付け設定画面を生成し、このラベル関連付け設定画面に入力された内容に基づいて前記装置用ラベル情報中のラベルと前記制御装置の公開ラベル情報中のラベルとの間の関連付けを行うことを特徴とする請求項１０に記載のプログラム作成支援装置。
【請求項１２】
複数の制御装置からなる制御システムで、それぞれの前記制御装置が制御対象を制御するためのラベルを用いた制御プログラムの作成を支援する情報処理装置でのプログラム作成支援方法において、
制御装置ごとに作成されたその制御装置で使用可能なラベルを含むラベル情報のうち、自制御装置のラベル情報中のラベルと、他制御装置のラベル情報中のラベルにその引用元を示す引用元識別情報を付したラベルとを用いて記述された制御プログラムを設定するとともに、その内容を有する制御プログラムを表示することができるように保持する工程と、
前記制御プログラム中のラベルを読込み、引用元識別情報を付加したラベルをその引用元の制御装置ごとに分類した他装置用ラベル一覧情報を生成する工程と、
生成された前記他装置用ラベル一覧情報中のラベルを、前記制御システム内の共有メモリとして機能するデバイスに関連付けするためのラベル−デバイス関連付け設定画面を生成し、このラベル−デバイス関連付け設定画面に入力された内容に基づいて他装置用ラベルと前記デバイスとの間の関連付けを行う工程と、
前記他装置用ラベルと前記デバイスとの間の関連付けを、前記制御システムを構成する他の制御装置に対して反映させる工程と、
を含むことを特徴とするプログラム作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の制御装置からなる制御システムのそれぞれの制御装置の制御プログラムの作成を支援するプログラム作成支援装置およびその方法に関するものである。
【背景技術】
【０００２】
従来から、加工機や組立機などの装置を制御するために、プログラマブルコントローラ（以下、ＰＬＣという）やモーションコントローラ（以下、ＭＣという）、ＨＭＩ（Human  Machine  Interface；表示器やＳＣＡＤＡ（Supervisory  Control  And  Data  Acquisition））が用いられている。また、最近では、１つの装置の制御を行う場合のほかに、複数台の装置を用いて製造ラインを構成する場合などに、複数台のＰＬＣを用いた制御システムが構築されることがある。このような複数台のＰＬＣを用いて構築される制御システムには、（１）１台のＣＰＵ（Central  Processing  Unit）ユニットと１台のネットワークユニットとを有するＰＬＣがネットワークを介して複数接続される形式のリンク型の制御システムと、（２）１台のベースユニット上にＣＰＵユニットを複数装着し、それぞれのＣＰＵユニットがバスを介して接続されてＰＬＣを構成するマルチＣＰＵ型の制御システムと、の２つの形式がある。
【０００３】
（１）リンク型の制御システム
リンク型の制御システムでは、上述したように、複数台のＰＬＣ間でデータのやり取りが必要となり、これを実現するために、ＰＬＣ間をＦＡ（Factory  Automation）ネットワークで接続し、データのやり取りを行っている。このようなリンク型の制御システムの場合には、互いのＰＬＣ間でのデータのやり取りを、リンクデバイスを介して行っている。図２０−１は、リンク型の制御システムの構成の一例と、そのリンクデバイスを模式的に示す図であり、図２０−２は、図２０−１の制御システムのＰＬＣにおけるリンクデバイスの内容の一例を示す図である。この制御システム５００は、ＣＰＵユニット５０２とネットワークユニット５０３を有するＰＬＣ５０１−１〜５０１−４が、ＦＡネットワーク５０４を介して相互に接続された構成を有する。ここで、１つのＰＬＣを局と呼ぶことにし、ＰＬＣ５０１−１〜５０１−４をそれぞれ局１〜局４と呼ぶことにする。ＣＰＵユニット５０２には、リンクデバイスが設けられており、このリンクデバイスを介して、各ＰＬＣ５０１−１〜５０１−４間でのデータのやり取りを行う。このリンクデバイスは、周期的に他局のデバイス値が自局のデバイスにコピーされるものであって、ＦＡネットワーク５０４に接続されたＰＬＣ５０１−１〜５０１−４間での共有メモリとして扱えるものに相当する機能を有するものである。
【０００４】
図２０−２に示されるように、リンクデバイス５１０は、ネットワークで１つの割付を行い、同じ割付設定が各局のＣＰＵ５０２で使用されるが、リンクデバイス５１０の割付の際には、１つの局が書込むリンクデバイス５１０は１箇所に連続的に固めて割付ける仕様となっている。これは、周期的に他局のデバイス値が自局のリンクデバイス５１０にコピーされる場合において、１回の通信内に複数のデータ（１箇所にまとまって格納されたデバイス値）を一括して送信することで、局間での複数のデータの転送を効率的に行うようにするためである（たとえば、特許文献１参照）。
【０００５】
たとえば、各局のリンクデバイス５１０は、アドレス「Ｂ００〜Ｂ０Ｆ」の領域（以下、ブロック１という）に局１のデバイス値が書込まれ、アドレス「Ｂ１０〜Ｂ１Ｆ」の領域（以下、ブロック２という）に局２のデバイス値が書込まれ、アドレス「Ｂ２０〜Ｂ２Ｆ」の領域（以下、ブロック３という）に局３のデバイス値が書込まれ、アドレス「Ｂ３０〜Ｂ３Ｆ」の領域（以下、ブロック４という）に局４のアドレス値が書込まれる。ただし、書込み局に対応する局の領域には自局のみ書込むことができ、他の局の領域は参照することしかできない。たとえば、局１のリンクデバイス５１０では、ブロック１には局１自身が書込むことができるが、ブロック２は局２が書込んだデバイス値であるので局１は参照のみ可能である。また、ブロック３，４についても、それぞれ局３，４が書込んだデバイス値であるので参照のみ可能である。そして、局１は、ブロック１に自局のデバイス値がまとめて格納されているために、このデバイス値をまとめて周期的に他局へ送信する。
【０００６】
（２）マルチＣＰＵ型の制御システム
つぎに、マルチＣＰＵ型の制御システムについて説明する。１つの装置の制御に複数台のＰＬＣを用いる際には通常１台のＰＬＣに１つのＣＰＵが備わっているが、その代わりに、１台のＰＬＣをマルチＣＰＵ構成にして、１台のＰＬＣで装置を一括して制御する場合もある。同様に、複数台の装置を用いて製造ラインを構成する際にも通常１台のＰＬＣに１つのＣＰＵが備わっており、複数台のＰＬＣを用いて制御しているが、その代わりに、１台のＰＬＣをマルチＣＰＵ構成にして、１台のＰＬＣで複数台の装置を一括して制御する場合もある（たとえば、非特許文献１参照）。このようなマルチＣＰＵ構成のＰＬＣを有する制御システムをこの明細書では、マルチＣＰＵ型の制御システムと呼ぶ。
【０００７】
図２１は、マルチＣＰＵ型の制御システムの構成を模式的に示す図である。このマルチＣＰＵ型の制御システム６００は、ベースユニット６０１上にＣＰＵユニット６０２−１〜６０２−４が複数台装着された構成を有している。ベースユニット６０１にはバス６０３が設けられており、各ＣＰＵユニット６０２−１〜６０２−４間を接続している。このようなマルチＣＰＵ型の制御システム６００の場合には、互いのＣＰＵユニット６０２−１〜６０２−４間でのデータのやり取りを、共有リフレッシュデバイスを介して行っている。
【０００８】
図２２−１は、マルチＣＰＵ型の制御システムの共有リフレッシュデバイスを模式的に示す図であり、図２２−２は、図２２−１の制御システムのＰＬＣにおける共有リフレッシュデバイスの設定の一例を示す図である。ここでは、マルチＣＰＵ型の制御システムが、２つのＣＰＵユニット６０２−１，６０２−２からなる場合を例示している。各ＣＰＵユニット６０２−１，６０２−２には、共有リフレッシュデバイスが設けられている。この共有リフレッシュデバイスは、周期的に他ＣＰＵのデバイス値が自ＣＰＵのデバイスにコピーされるものであって、バス６０３を介して接続されたＣＰＵユニット６０２−１，６０２−２間で共有メモリとして扱えるものに相当する機能を有する。なお、周期的に他ＣＰＵユニットのデバイス値が自ＣＰＵユニットのデバイスにコピーされる機能をマルチＣＰＵ自動リフレッシュ機能という。
【０００９】
図２２−２の共有リフレッシュデバイスの設定６１０に示されるように、リフレッシュ元ＣＰＵがＣＰＵユニット６０２−１の場合に、そのマルチＣＰＵ自動リフレッシュ機能として、ＣＰＵユニット６０２−１のデバイス値を書込む先頭アドレスが「Ｄ００」に設定され、ＣＰＵユニット６０２−２のデバイス値を書込む先頭アドレスが「Ｄ１０」に設定されている。また、リフレッシュ元のＣＰＵがＣＰＵユニット６０２−２の場合に、そのマルチＣＰＵ自動リフレッシュ機能として、ＣＰＵユニット６０２−１のデバイス値を書込む先頭アドレスが「Ｄ１０」に設定され、ＣＰＵユニット６０２−２のデバイス値を書込む先頭アドレスが「Ｄ００」に設定されている。ただし、このときのデバイス値の点数は１６であるとする。
【００１０】
このようにマルチＣＰＵ自動リフレッシュ機能が設定されると、図２２−１に示されるように、ＣＰＵユニット６０２−１のアドレス「Ｄ００〜Ｄ０Ｆ」までがＣＰＵユニット６０２−１自身が書込む領域となり、ＣＰＵユニット６０２−１のアドレス「Ｄ１０〜Ｄ１Ｆ」までがＣＰＵユニット６０２−２のアドレス「Ｄ００〜Ｆ０Ｆ」のデバイス値が書込まれたものであり、ここは参照のみ可能となる。同様に、ＣＰＵユニット６０２−２のアドレス「Ｄ００〜Ｄ０Ｆ」までがＣＰＵユニット６０２−２自身が書込む領域となり、ＣＰＵユニット６０２−２のアドレス「Ｄ１０〜Ｄ１Ｆ」までがＣＰＵユニット６０２−１のアドレス「Ｄ００〜Ｆ０Ｆ」のデバイス値が書込まれたものであり、ここは参照のみ可能となる。
【００１１】
また、図２２−１〜図２２−２に示されるように、マルチＣＰＵ自動リフレッシュ機能は、共有リフレッシュデバイスの割付の際には、１つのＣＰＵが書込むデバイス値は１箇所に連続的に固めて割付ける仕様となっている。これは、周期的に他ＣＰＵユニットのデバイス値が自ＣＰＵユニットの共有リフレッシュデバイスにコピーされる場合において、１回の通信内に複数のデータ（１箇所にまとまって格納されたデバイス値）を一括して送信することで、ＣＰＵユニット間での複数のデータの転送を効率的に行うようにするためである。
【００１２】
以上が、リンク型の制御システムとマルチＣＰＵ型の制御システムの概略である。ところで、加工機や組立機などの装置を制御するために用いられるＰＬＣやＭＣの制御プログラムや、ＨＭＩの画面プログラムは、従来から、デバイスのアドレスにより記述する方式が一般的であった。図２３は、従来の制御プログラムの一例を示す図である。ここには、ラダープログラムで記述された制御プログラム７０１と、制御プログラムに使用されるデバイスデータが書込まれたデバイステーブル７０２と、が示されている。ラダープログラムは、制御プログラム７０１に示されるように、接点記号７１１とコイル記号７１２によって記述される。たとえば、上述のリンク型の制御システムの制御プログラムを記述する際には、ＰＬＣ間のデータのやり取りに関する部分についてはリンクデバイスである「Ｂ０」を用いてプログラムを記述したり、上述のマルチＣＰＵ型の制御システムの制御プログラムを記述する際には、ＣＰＵ間のデータのやり取りに関する部分については共有リフレッシュデバイスである「Ｄ０」を用いてプログラムを記述したりする。
【００１３】
従来では、図２３のようにデバイスのアドレスにより記述する方式が一般的であった制御プログラムや画面プログラムも、近年ではラベル名を用いて記述し、ラベル名とデバイスのアドレスとの関連付けを別途行うような方式も一般化しつつある。図２４は、ラベルを用いた制御プログラムの一例を示す図である。この図２４の左側に示される開発ツール内には、制御プログラム７０１と、デバイステーブル７０２と、デバイスとラベルとを関連付けるラベル−デバイス関連付けテーブル７０３と、が示されている。つまり、制御プログラム７０１が、ラベルを用いて記述され、ラベル−デバイス関連付けテーブル７０３で予め使用可能なデバイスとラベルとが対応付けられており、コンパイル時にラベルをデバイスに変換するようにしている。変換後には、図２４の右側に示されるように、制御プログラム７０１は、デバイスを用いて記述される。
【００１４】
ラベル名はＢＯＯＬやＷＯＲＤといったデータ型を有しているため、ラベル名をデバイスへ関連付ける際には、ＢＯＯＬ型のラベル名はＢＯＯＬ型のデバイスにさえ関連付ければよく、どのデバイスのどのアドレスに関連付けなければならないといった制約がない。また、ラベル名にはデータの内容がわかるような名前を付与できるので、デバイスで制御プログラムを記述する場合に比べ、プログラムの可読性がよい。これらの点において、ラベル名を用いた制御プログラムの作成は、従来のデバイスアドレスによるものに比べて、制御プログラム作成の効率化が図れる。
【００１５】
さて、上述した互いのＰＬＣ５０１間でのデータのやり取りを、リンクデバイスを介して行うリンク型の制御システム５００において、各ＰＬＣ５０１のプログラムをラベル名により記述する際には、ＰＬＣ５０１間でやりとりされるデータに対するラベル名は、各ＰＬＣ５０１間で同じラベル名を用いることが望ましい。これは、共有リフレッシュデバイスを介してＣＰＵユニット６０２間でデータのやり取りを行うマルチＣＰＵ型の制御システム６００でも同様である。
【００１６】
リンク型の制御システム５００において、ラベル名は各ＰＬＣ５０１単位で個別に管理されるため、ＰＬＣ５０１間でやりとりされるデータに対して同じラベル名を用いようとすれば、各ＰＬＣ５０１の制御プログラムを作成する担当者同士が予め同じラベル名を用いる“申し合わせ”をする必要がある。これは、共有リフレッシュデバイスを介してＣＰＵユニット６０２間でデータのやり取りを行うマルチＣＰＵ型の制御システム６００でも同様である。
【００１７】
複数のＰＬＣ５０１で同じラベル名を確実に使用するためには、担当者同士での“申し合わせ”だけでは、連絡行き違い等によりミスが発生する可能性がある。これを解決するために、各ＰＬＣ５０１間で同じラベル名を用いるための技術として、たとえば、各ＰＬＣ５０１のプログラムを作成するツール間でラベル名を共有するものが提案されている（たとえば、特許文献２参照）。
【００１８】
ところで、ＰＬＣやＭＣを用いて自動機や加工機、組立機などの装置を開発する装置開発者（セットメーカやシステムインテグレータ）においては、過去に開発した装置で用いた制御プログラムを次回に開発する装置へ再利用することで、装置の制御プログラムを新しくすべて記述するような手間を簡略化し、装置の開発を効率的に行っている。
【００１９】
たとえば、制御プログラムをデバイスのアドレスにより記述する方式を用いている装置開発者においては、デバイスのアドレスの標準化を行っている。すなわち、どのデバイスのアドレスがどういう意味のデータを保持するのかを予め装置開発者内で共通的に定義したデバイスマップを作成し、どの装置においてもこのデバイスマップに基づいた制御プログラムの開発を行うようにしている。
【００２０】
図２５は、デバイスマップを用いた制御プログラムのプログラミングの一例を示す図である。まず、「標準化」の欄中の制御プログラムα，βのようにデバイスのアドレスを用いて作成した標準化された制御プログラムと、制御プログラムに使用されるデバイスのアドレスをその使用用途と関係付けたデバイスマップとが、開発ツールとして用意される。そして、この標準化開発ツールを用いて、ＰＬＣア用やＰＬＣイ用に制御プログラムが作成される。このようなデバイスマップに基づいた制御プログラムの開発によって、標準化された制御プログラムがどの装置においても再利用可能なようにしている。
【００２１】
制御プログラムの開発に当たって、使用頻度の高い演算処理をファンクションまたはファンクションブロックとして関数化して再利用することが行われているが、このようなファンクションまたはファンクションブロックの再利用に比べ、デバイスマップの標準化に基づく制御プログラムの標準化による再利用は、再利用の規模が大きく、単なる演算処理の再利用という範囲を大きく超えて、機能単位の再利用を実現するための工夫であり、現実的に利便性の高いものとなっている。
【００２２】
また、制御プログラムをラベル名により記述しラベル名とデバイスのアドレスとの関連付けを別途行うような方式を用いている装置開発者においては、ラベル名の標準化を行っている。すなわち、どのラベルがどういう意味のデータを保持するのかを予め装置開発者内で共通的に定義したラベルマップを作成し、どの装置においてもこのラベルマップに基づいた制御プログラムの開発を行うようにしている。
【００２３】
図２６は、ラベルマップを用いた制御プログラムのプログラミングの一例を示す図である。まず、「標準化」の欄中の制御プログラムγ，δのようにラベルを用いて作成した標準化された制御プログラムと、制御プログラムに使用されるラベルをその使用用途と関係付けたラベルマップとが、開発ツールとして用意される。そして、この標準化開発ツールを用いて、ＰＬＣヱ用やＰＬＣヲ用に制御プログラムが作成される。そして、ラベルマップとそれぞれのＰＬＣに対して実際のデバイスのアドレスとを割付ける処理が行われる。このようなラベルマップに基づいた制御プログラムの開発によって、標準化された制御プログラムがどの装置においても再利用可能なようにしている。
【００２４】
デバイスマップの標準化に基づく制御プログラムの標準化による再利用と同様に、ラベルマップの標準化に基づく制御プログラムの標準化による再利用は、使用頻度の高い演算処理をファンクションまたはファンクションブロックとして関数化して再利用するのに比べ、再利用の規模が大きく、単なる演算処理の再利用という範囲を大きく超えて、機能単位の再利用を実現するための工夫であり、現実的に利便性の高いものとなっている。
【００２５】
ラベルを用いたプログラミング（以下、ラベルプログラミングという）では、制御プログラムがデバイスのアドレスに対して、ラベル名を介して依存しない記述となっている。そのため、開発する装置に応じてラベル名とデバイスのアドレスとの関連付けを変更することで、制御プログラムが再利用可能になっているので、ラベルプログラミングはデバイスを用いたプログラミング（以下、デバイスプログラミングという）に比べ、再利用の柔軟性が高い。たとえば、ラベルプログラミングを示す図２６の例では、センサＡがＸ０に割り付いている場合にはＬａｂｅｌＡをＸ０に関連付け、センサＡがＸ１０に割り付いている場合にはＬａｂｅｌＡをＸ１０に関連付ける、といったことにより、制御プログラムが再利用可能になっている。
【００２６】
すべての種類の装置を標準化するようなデバイスマップやラベルマップを定義することは困難であるので、実際の実用上としては、すべての種類の装置に共通する機能に関する部分のデバイスマップやラベルマップのみを定義して標準化したり、すべての種類の装置ではなく装置の種類別にそれぞれデバイスマップやラベルマップを定義したりして標準化される。
【００２７】
【特許文献１】特開平６−３１１２０２号公報
【特許文献２】国際公開第０２／０４２８５３号パンフレット
【非特許文献１】Q対応MELSECNET/Hネットワークシステム  三菱汎用シーケンサMELSEC-Q、［online］、三菱電機株式会社、２００５年１０月、［２００６年１月２０日検索］、インターネット、<URL:  http://wwwf3.mitsubishielectric.co.jp/members/o_manual/plc/sh080026/sh080026k.pdf>
【発明の開示】
【発明が解決しようとする課題】
【００２８】
ところで、全く同じ機能を有する複数台のＰＬＣを、統括的な役割を果たす１台のＰＬＣ（以下、統括ＰＬＣともいう）が制御するような制御システムをラベルプログラミングで開発する場合には、全く同じ機能を有する複数台のＰＬＣの制御プログラムは全く同じであり、そこで用いられるラベルも同じである。しかしながら、このような制御システムにおいて統括ＰＬＣの制御プログラムを作成する際に、ＰＬＣ間でやりとりされるデータに対して同じラベル名を用いようとしても、全く同じ機能を有する複数台のＰＬＣに対するラベル名が重複してしまう。そのため、全く同じ機能を有する複数台のＰＬＣのラベルを、それぞれ異なるラベル名に置き換える必要があるという問題点があった。これは、ラベル名の置き換えが手間であるとともに、再利用性の向上のために行ってきた制御プログラムの標準化を妨げることになるので好ましくない。
【００２９】
ベースユニット上に複数台のＣＰＵユニットが装着され、この複数台のＣＰＵユニットのうちの全く同じ機能を有する複数台のＣＰＵユニットを、統括的な役割を果たす１台のＣＰＵユニットが制御するようなマルチＣＰＵ構成の制御システムを開発する場合にも、同様の問題点があった。
【００３０】
この発明は、上記に鑑みてなされたもので、複数台のＰＬＣやＣＰＵユニットなどの制御装置で構成された制御システムにおいて、全く同じ機能を有する複数台の制御装置を、統括的な役割を果たす１台の制御装置が制御するような制御システムを開発する場合において、各制御装置間で同じラベル名を用いたプログラム作成をすることができるプログラム作成支援装置およびその方法を得ることを目的とする。
【課題を解決するための手段】
【００３１】
上記目的を達成するため、この発明にかかるプログラム作成支援装置は、複数の制御装置からなる制御システムで、それぞれの前記制御装置が制御対象を制御するためのラベルを用いた制御プログラムの作成を支援するプログラム作成支援装置において、制御装置ごとに作成されたその制御装置で使用可能なラベルを含むラベル情報のうち、自制御装置のラベル情報中のラベルと、他制御装置のラベル情報中のラベルにその引用元を示す引用元識別情報を付したラベルとを用いて記述された制御プログラムを設定するとともに、その内容を有する制御プログラムを表示することができるように保持するプログラム設定手段と、前記プログラム設定手段によって設定されまたは保持された前記制御プログラム中のラベルが他の制御装置で使用されるラベルである場合に、引用元識別情報を前記ラベルに付して表示手段に表示する表示処理手段と、を備えることを特徴とする。
【発明の効果】
【００３２】
この発明によれば、全く同じ機能を有する複数台の制御装置を統括的な役割を果たす１台の制御装置が制御するような制御システムの開発時に、全く同じ機能を有する複数台の制御装置のラベルが重複していても、それぞれ異なるラベル名に置き換える必要がなくなることで、再利用性の向上のために行ってきた制御プログラムの標準化を妨げることなく、モジュール化した制御装置の再利用による装置開発の効率化を実現することができるという効果も有する。
【発明を実施するための最良の形態】
【００３３】
以下に添付図面を参照して、この発明にかかるプログラム作成支援装置およびその方法の好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００３４】
最初に、この発明で使用されるプログラム作成支援装置（以下、開発ツールともいう）の構成と、このプログラム作成支援装置におけるプログラムの作成手順の概要について説明し、その後で、このプログラム作成支援装置を基本にしたこの発明にかかる実施の形態について説明する。
【００３５】
図１は、プログラム作成支援装置の機能構成を模式的に示すブロック図であり、図２は、このプログラム作成支援装置を実現する開発ツールの表示画面上の構成を模式的に示す図である。
【００３６】
このプログラム作成支援装置１０は、情報をユーザに対して表示する表示部１１と、ユーザによってプログラミングに必要な所定の情報が入力される入力部１２と、入力部１２から入力された情報に基づいてシステム構成を設定するシステム構成設定部１３と、入力部１２から入力された情報に基づいてラベルを設定するラベル設定部１４と、入力部１２から入力された情報に基づいてプログラムを設定するプログラム設定部１５と、ラベル設定部１４で設定されたラベルと実デバイスとを関連付けるラベル−デバイス関連付け処理部１６と、作成されたプログラムをコンパイルするコンパイル処理部１７と、システム構成の設定画面、ラベルの設定画面、プログラムの設定画面およびラベルと実デバイスの関連付け画面の表示部１１への表示処理を行う表示処理部１８と、これらの各処理部を制御する制御部１９と、を備える。
【００３７】
開発ツール１０Ａは、プログラム作成支援装置１０上に表示され、編集可能な構成要素を表示するツリービュー２１と、ツリービュー２１で選択された構成要素を編集する編集ツールと、を含む。ツリービュー２１は、図２に示されるように、ＰＬＣやＭＣをプログラミングする際の構成要素を示すものであり、システム構成２２、ラベル２３およびプログラム２４を含む。このツリービュー２１は、表示処理部１８によって表示部１１上に表示され、入力部１２でシステム構成２２、ラベル２３、プログラム２４がダブルクリックなどの選択動作で選択されると、それぞれに対応したシステム構成設定部１３、ラベル設定部１４、プログラム設定部１５が起動される。
【００３８】
システム構成設定部１３は、ユーザによって入力された内容にしたがって、Ｉ／Ｏ（Input/Output）ユニットやネットワークなどＰＬＣやＭＣのハードウェアシステムの構成を設定する。たとえば、図２のツリービュー２１のシステム構成２２が選択されると、システム構成設定部１３は、システム構成を編集するウィンドウやダイアログやエディタやツール（以下、システム構成編集ツールという）２２Ａを起動し、これらに入力された内容を用いてシステム構成を設定する。
【００３９】
ラベル設定部１４は、制御プログラムを記述する際に、デバイスアドレスの代わりに記述されるラベルを設定する。たとえば、図２のツリービュー２１のラベル２３が選択されると、ラベル設定部１４は、ラベルを編集するウィンドウやダイアログやエディタやツール（以下、ラベル編集ツールという）２３Ａを起動し、これらに入力された内容を用いてラベルを設定し、その内容をラベルテーブルとして保存する。
【００４０】
プログラム設定部１５は、ＰＬＣやＭＣに処理させる制御プログラム（たとえば、ラダープログラム）を設定する。たとえば、図２のツリービュー２１のプログラム２４が選択されると、プログラム設定部１５は、プログラムを編集するウィンドウやダイアログやエディタやツール（以下、プログラム編集ツールという）２４Ａを起動し、これらに入力された内容を用いてプログラムを設定し、その内容を保存する。
【００４１】
ラベル−デバイス関連付け処理部１６は、プログラム設定部１５で設定されたプログラムを、実際のＰＬＣ上やＭＣ上で動作させるために、そのプログラムで使用されるプログラム中の（すなわち、ラベル設定部１４で設定された）ラベルと、実際のＰＬＣやＭＣのデバイスとを関連付ける。
【００４２】
図３は、プログラミングの手順の一例を示すフローチャートである。ＰＬＣのプログラミングは、まずシステム構成を編集する（ステップＳ１１）。図２の開発ツール１０Ａのツリービュー２１からシステム構成２２が選択されると、システム構成編集ツール２２Ａが起動される。ユーザは、このシステム構成編集ツール２２Ａ上で入力部１２を用いて、Ｉ／ＯユニットやネットワークなどＰＬＣやＭＣのハードウェアシステムの構成を入力すると、その入力内容に基づいてシステム構成が設定される。
【００４３】
ついで、ラベルを編集する（ステップＳ１２）。図２の開発ツール１０Ａのツリービュー２１からラベル２３が選択されると、ラベル編集ツール２３Ａが起動される。ユーザは、このラベル編集ツール２３Ａで入力部１２を用いて、プログラムで使用するラベルを入力すると、その入力内容に基づいてラベルが設定される。設定されたラベルは、ラベルテーブルとして図示しない記憶部に記憶される。＾
【００４４】
ついで、プログラムを編集する（ステップＳ１３）。図２の開発ツール１０Ａのツリービュー２４からプログラムが選択されると、プログラム編集ツール２４Ａが起動される。ユーザは、このプログラム編集ツール２４Ａで入力部１２を用いて、記述するプログラムが、システム構成のどのＰＬＣまたはＣＰＵで実行させるかを指定した後、プログラムを記述する。そして、その入力内容に基づいてプログラムが設定される。設定されたプログラムは、図示しない記憶部に記憶される。
【００４５】
ここで、ステップＳ１３のプログラムを記述する際に、ステップＳ１２で設定したラベルを使用することが可能である。また、ステップＳ１３でのプログラムの編集中に、新しくラベルの設定が必要になった場合には、その都度ラベル編集を行ってもよい。すなわち、ステップＳ１３のプログラムの編集を行っている最中に、ステップＳ１２のラベルの編集を行ってもよい。
【００４６】
以上のＰＬＣまたはＣＰＵで処理させる制御プログラムのプログラミングが完了した後、ラベルを実デバイスへ関連付ける（ステップＳ１４）。図４〜図５は、ラベルを実デバイスへ関連付ける場合の開発ツールの表示画面上の構成を模式的に示す図であり、図４は、ラベルを実デバイスへ関連付ける作業をラベル編集ツールで行う場合を示す図であり、図５は、ラベルを実デバイスへ関連付ける作業を別のツールを設けて行う場合を示す図である。このラベルを実デバイスへ関連付ける作業は、図４に示されるように、ツリービュー２１のラベル２３と関連付けられる編集ツールに、デバイス関連付け機能をもたせたラベル編集兼デバイス関連付けツール２３Ｂで行う場合と、図５に示されるように、ラベル編集ツール２３Ａとは別にラベルを実デバイスへ関連付ける専用のウィンドウやダイアログやエディタやツール（以下、ラベル−デバイス関連付けツールという）２６Ａを設けて行う場合とがある。図５に場合には、ツリービュー２１のシステム構成２２の下位に、ハードウェア構成２５とラベル関連付け２６の構成要素が設けられる。このとき、ハードウェア構成２５が選択されると、システム構成編集ツール２２Ａが起動され、ラベル関連付け２６が選択されるとラベル−デバイス関連付けツール２６Ａが起動される。開発ツール１０Ａとしては、上記のどちらの形態でもよい。
【００４７】
そして、最後に、実機へダウンロードするために作成されたプログラムのコンパイル処理を行い（ステップＳ１５）、ＰＬＣやＭＣに搭載するためのプログラムのプログラミング処理が終了する。
【００４８】
以上のようにしてＰＬＣまたはＣＰＵについてのプログラミングを行えばよいが、この開発ツール１０Ａにおいては、複数台のＰＬＣがＦＡネットワークで接続されたリンク型の制御システムやマルチＣＰＵ構成のＰＬＣやＭＣからなるマルチＣＰＵ型の制御システムを対象として、以下の実施の形態で説明するようにプログラムを開発することが可能である。
【００４９】
実施の形態１．
この実施の形態１では、３台のＰＬＣがネットワークに接続された制御システムにおいて、全く同じ機能を有する２台のＰＬＣ１，ＰＬＣ２を、これらを統括制御する１台のＰＬＣ１が制御する制御システムを開発する場合を例に挙げて、そのプログラムの作成を支援する方法について説明する。
【００５０】
まず、図３のステップＳ１１に示されるように、システム構成の設定が行われる。図６−１は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図であり、図６−２は、リンク型のシステム構成が設定された場合の開発ツールの他の例を示す図である。ここでは、図６−１と図６−２に示されるように、システム構成編集ツールで、全く同じ機能を有する２台のＰＬＣ２，ＰＬＣ３と、これらを統括制御する１台のＰＬＣ１がネットワークで接続された制御システムについてのシステム構成が設定される。なお、開発ツールの図において、構成要素とツールとの間または構成要素とシステム構成編集ツール内の制御装置との間を結ぶ線は相互に関連付けられていることを示している。以下の開発ツールの図においても同様である。
【００５１】
つぎのステップＳ１２では、ラベルの編集が行われる。図６−１に示されるような開発ツールでは、ラベルは、システム構成編集ツールで作成されたシステム構成のＰＬＣごとにラベル編集ツールによって作成される。これにより、ＰＬＣ１で使用されるラベルテーブル（以下、ラベルＰＬＣ１ともいう）と、ＰＬＣ２で使用されるラベルテーブル（以下、ラベルＰＬＣ２ともいう）と、ＰＬＣ３で使用されるラベルテーブル（以下、ラベルＰＬＣ３ともいう）が作成される。これらのラベルテーブルでは、どのＰＬＣで用いられるラベルテーブルなのかを示す属性を保持する。具体的には、ユーザ（プログラム作成者）は、ラベルテーブルを作成する際に、作成するそのラベルテーブルがどのＰＬＣで用いられるかを指定した後に、ラベルの編集を行う。
【００５２】
一方、図６−２に示されるような開発ツールでは、システム構成編集ツールで作成されたシステム構成のＰＬＣごとに、ラベルとプログラムを分割して作成している。つまり、システム構成中のＰＬＣ１に関して、このＰＬＣ１に関連付けさせてラベルテーブルとプログラムを管理するようにし、ＰＬＣ２，ＰＬＣ３についても同様にラベルテーブルとプログラムを管理するようにしている。このような形態の管理ツール上では、ラベルテーブルに、どのＰＬＣで用いられるかの属性を自動的に保持させることができる。
【００５３】
つぎのステップＳ１３では、プログラムの編集が行われる。図６−１に示される開発ツールでは、プログラムも、ラベルと同様に、システム構成のＰＬＣごとに作成される。ただし、プログラムは、システム構成のどのＰＬＣで実行させるかを指定してから作成される。また、図６−２に示される開発ツールでは、ラベルと同様に、システム構成中のＰＬＣごとに分割してプログラムが作成される。このステップＳ１３で編集（作成）されたプログラムは図示しない記憶部に保持される。
【００５４】
このプログラム編集において、ラベルを用いてプログラム作成を行うには、既に作成したラベルテーブルの中から所望のラベルを選択してプログラムの記述に用いる。図７は、プログラムの記述の一例を示す図である。自ＰＬＣのラベルテーブルの中から所望のラベルを選択してプログラムを記述する場合には、プログラムの表示におけるラベルの表示は従来どおり、ラベルのみである。一方、他ＰＬＣのラベルテーブルの中から所望のラベルを選択してプログラムを記述する場合には、そのラベルを引用した元のラベルテーブル（ＰＬＣ）を示す引用元ラベル識別情報を付したラベルを用いて記述する。たとえば、図７の例においては、引用元ラベル識別情報として、引用元のラベルテーブルを保持するＰＬＣの名称に記号「−＞（矢印、または、ハイフンと不等号の組み合わせ）」を付加したものを用いている。この記号「−＞」は、他ＰＬＣの名称とラベル名との間を区別する記号である。記号「−＞」以外の記号を用いてもよい。しかし、たとえば「 . （ドット）」は構造体の要素であるラベルを指定する際に使用する記号であり、構造体ラベルとして他ＰＬＣ名称のラベルが自ＰＬＣのラベルテーブルに宣言されているかのように思われ一見しただけでは区別がつかず、また、「 _  （アンダースコア）」では他ＰＬＣ名称とラベル名称を１つにしたようなラベル名が自ＰＬＣのラベルテーブルに宣言されているかのように思われ一見しただけでは区別が付かない。この種の混同を避けるため、他の記号を用いる際には「−＞」などの従来のラベル名として用いられない表記方法を用いることが好ましい。
【００５５】
また、記述したプログラムの保持（保存）においては、自ＰＬＣのラベルテーブル中のラベルを用いて記述されたプログラムの場合には、ラベルの保持は従来どおりである。また、他ＰＬＣのラベルテーブル中のラベルを用いて記述されたプログラムの場合には、ラベルの保持は、他ＰＬＣのラベルであることを示す引用元ラベル識別情報を付加したラベルを保持する。これにより、編集後に保存したプログラムを、再度読み出して表示処理部１８で表示部１１に表示する際も、自ＰＬＣのラベルテーブル中のラベルを用いて記述したプログラムの表示におけるラベルの表示は従来どおりにラベルのみを表示し、他ＰＬＣのラベルテーブル中のラベルを用いて記述したプログラムの表示におけるラベルの表示は、引用元ラベル識別情報を付したラベル（図７の場合には、「他ＰＬＣの名称を表示したＰＬＣの名称  −＞  ラベル」）を表示する。
【００５６】
その後のステップＳ１４でのラベルを実デバイスへ関連付ける処理が行われる。図８−１は、ラベル−デバイス関連付け処理部のさらに詳細な機能構成を示すブロック図であり、図８−２は、ラベルの実デバイスへの関連付けを行う処理手順の一例を示すフローチャートである。
【００５７】
ラベル−デバイス関連付け処理部１６は、他装置用ラベル一覧情報生成部１６１、他装置用ラベル−デバイス関連付け設定処理部１６２、関連付け反映部１６３およびラベル−デバイス関連付け設定処理部１６４を有する。
【００５８】
他装置用ラベル一覧情報生成部１６１は、自制御装置（自ＰＬＣ）のプログラム中に、他制御装置（他ＰＬＣ）のラベルテーブルから引用したラベルが存在する場合に、引用元の他制御装置（他ＰＬＣ）ごとに引用したラベルをまとめた他装置用ラベル一覧情報を生成する。
【００５９】
他装置用ラベル−デバイス関連付け設定処理部１６２は、他装置用ラベル一覧情報生成部１６１で作成された他装置用ラベル一覧情報中のラベルを、制御装置間で共有するメモリに対応するデバイスに関連付けを行うための設定画面を生成するとともに、その設定画面に設定された内容に基づいてデバイスとラベルとの関連付けを行う機能を有する。
【００６０】
関連付け反映部１６３は、他装置用ラベル−デバイス関連付け設定処理部１６２で設定されたラベルとデバイスとの関連付けの内容を、制御システムを構成する他の制御装置にも反映させる機能を有する。
【００６１】
ラベル−デバイス関連付け設定処理部１６４は、他装置用ラベル−デバイス関連付け設定処理部１６２で設定されたラベル以外の自制御装置のラベルテーブル中のラベルを、自制御装置のデバイスに関連付けを行うための設定画面を生成するとともに、その設定画面に設定された内容に基づいてデバイスとラベルとの関連付けを行う機能を有する。
【００６２】
つぎに、ラベルの実デバイスへの関連付けを行う処理手順の一例について説明する。まず、ラベル−デバイス関連付け処理部１６の他装置用ラベル一覧情報生成部１６１は、統括制御用のＰＬＣ１の制御プログラムで使用されるラベルが、他ＰＬＣのラベルテーブル中のラベルである場合には、そのラベルテーブルが関連付けられるＰＬＣの名称ごとにラベルを分類した他装置用ラベル一覧情報を生成する（ステップＳ１１０）。ついで、他装置用ラベル−デバイス関連付け設定処理部１６２は、ステップＳ１１１で生成された他装置用ラベル一覧情報中の他ＰＬＣのラベルを、どのデバイスに関連付けるかを設定するための設定画面を表示部１１に表示し、その設定画面にユーザによって入力された内容（入力結果）に基づいて、他ＰＬＣのラベルとデバイスとを関連付ける（ステップＳ１２０）。その後、関連付け反映部１６３は、ステップＳ１２０での他ＰＬＣのラベルとデバイスとの関連付けの内容を、制御システムを構成する他のＰＬＣ２，ＰＬＣ３のデバイスにも反映させる（ステップＳ１３０）。そして、自制御装置のラベル、すなわちステップＳ１２０で関連付けされたラベル以外のラベルを自制御装置のどのデバイスに関連付けるかを設定するための設定画面を表示部１１に表示し、その設定画面へのユーザによる入力結果に基づいて、ラベルとデバイスとを関連付け、必要に応じて他ＰＬＣも同様に設定して（ステップＳ１４０）、処理を終了する。
【００６３】
以下に、図８−２中の各処理について詳細に説明する。図９は、他装置用ラベル一覧情報生成処理の手順の一例を示すフローチャートであり、図１０は、他装置用ラベル一覧情報生成処理の手順を説明するための図である。まず、プログラム設定部１５によって保持された制御プログラム中に使用されている１つのラベルを抽出し（ステップＳ１１１）、抽出したラベルに、引用元ラベル識別情報が付加されているか否かを判定する（ステップＳ１１２）。
【００６４】
ラベルに引用元ラベル識別情報が付加されている場合（ステップＳ１１２でＹｅｓの場合）には、その引用元のＰＬＣに対応付けられたラベルテーブル中に、ステップＳ１１１で抽出したラベルが存在するか否かを判定する（ステップＳ１１３）。抽出したラベルが引用元のＰＬＣのラベルテーブル中にない場合（ステップＳ１１３でＮｏの場合）には、制御プログラムのユーザがラベルテーブルにないものを入力した構文エラーと判定し（ステップＳ１１４）、その旨を表示部１１に表示させて処理を終了する。一方、抽出したラベルが引用元のＰＬＣのラベルテーブル中に存在する場合（ステップＳ１１３でＹｅｓの場合）には、当該ＰＬＣで使用されている他ＰＬＣのラベル一覧である他ＰＬＣラベル一覧情報に、そのラベルを登録する（ステップＳ１１５）。なお、この他ＰＬＣラベル一覧情報は、他装置用ラベル一覧情報に対応している。
【００６５】
その後またはステップＳ１１２で抽出したラベルに引用元ラベル識別情報が付加されていない場合（ステップＳ１１２でＮｏの場合）に、制御プログラム中のすべてのラベルについて判定を行ったかを判定し（ステップＳ１１６）、すべてのラベルの判定が終わっていない場合（ステップＳ１１６でＮｏの場合）には、ステップＳ１１１へと戻り、すべてのラベルについて上述した処理が繰り返し実行される。また、すべてのラベルの判定が終わった場合（ステップＳ１１６でＹｅｓの場合）には、他装置用ラベル一覧情報生成処理が終了し、図８−２の処理に戻る。
【００６６】
たとえば、他装置用ラベル一覧情報生成部１６１は、図１０のプログラムＰＬＣ１からラベル「ＬａｂｅｌＰ」を抽出すると、このＬａｂｅｌＰには、引用元ラベル識別情報が付加されていないので、ＰＬＣ１でのみ使用されるラベルであると判定する。つぎに、プログラムＰＬＣ１中からラベル「ＰＬＣ２−＞ＬａｂｅｌＡ」を抽出すると、このラベルには引用元ラベル識別情報「ＰＬＣ２−＞」が付加されているので、ＰＬＣ２のラベルテーブル中に「ＬａｂｅｌＡ」が存在するか確認する。ここでは、図７に示されるようにＰＬＣ２のラベルテーブルであるラベルＰＬＣ２中にＬａｂｅｌＡが存在するので、他装置用ラベル一覧情報生成部１６１は、このＬａｂｅｌＡを、ＰＬＣ２ラベル一覧情報に登録する。以下、プログラムＰＬＣ１中の他のラベルについても同様の処理を行う。その結果、ＰＬＣ２ラベル一覧情報とＰＬＣ３ラベル一覧情報が作成される。
【００６７】
図１１は、制御装置用ラベル−デバイス関連付け設定処理の手順の一例を示すフローチャートである。まず、他装置用ラベル−デバイス関連付け設定処理部１６２は、ステップＳ１１で設定したシステム構成から自制御装置（自ＰＬＣ）と他制御装置（他ＰＬＣ）とがネットワーク構成か否かを判定する（ステップＳ１２１）。自ＰＬＣと他ＰＬＣとがネットワーク構成である場合（ステップＳ１２１でＹｅｓの場合）には、図９の他装置用ラベル一覧情報生成処理で生成した他ＰＬＣラベル一覧情報に含まれるラベルを、リンク型の制御システムでの共有メモリに対応するリンクデバイスに関連付ける設定画面を生成し、表示処理部１８を介して表示部１１に表示させる（ステップＳ１２２）。その後、ユーザによって、この設定画面に入力された内容に基づいて、他装置用ラベル−デバイス関連付け設定処理部１６２は、他ＰＬＣラベル一覧情報に含まれるラベルとリンクデバイスとを関連付けて（ステップＳ１２３）、ラベルとデバイスの関連付け処理が終了し、図８−２の処理に戻る。
【００６８】
一方、ステップＳ１２１で自ＰＬＣと他ＰＬＣとがネットワーク構成でない場合（ステップＳ１２１でＮｏの場合）には、ステップＳ１１で設定したシステム構成から自制御装置（自ＣＰＵ）と他制御装置（他ＣＰＵ）とがマルチＣＰＵ構成であるか否かを判定する（ステップＳ１２４）。マルチＣＰＵ構成でない場合（ステップＳ１２４でＮｏの場合）には、エラーであるか、制御システム中のＣＰＵユニットに特性が異なる（たとえば他社の）ＣＰＵユニットが存在しているか、システム構成情報が設定されていないか、またはリンクデバイスでないネットワークによるシステム構成の場合であるとして、エラーメッセージを表示し（ステップＳ１２５）、処理を終了する。
【００６９】
また、マルチＣＰＵ構成である場合（ステップＳ１２４でＹｅｓの場合）には、図９の他装置用ラベル一覧情報生成処理で生成した他ＰＬＣラベル一覧情報に含まれるラベルを、マルチＣＰＵ型の制御システムでの共有メモリに対応する共有リフレッシュデバイスに関連付ける設定画面を生成し、表示処理部１８を介して表示部１１に表示させる（ステップＳ１２６）。その後、ユーザによって、設定画面に入力された内容に基づいて、他装置用ラベル−デバイス関連付け設定処理部１６２は、他ＰＬＣラベル一覧情報に含まれるラベルと共有リフレッシュデバイスとを関連付けて（ステップＳ１２７）、ラベルとデバイスの関連付け処理が終了し、図８−２の処理に戻る。
【００７０】
図１２は、ステップＳ２２で表示されるラベルをリンクデバイスに関連付ける設定画面の一例を示す図である。この設定画面には、他ＰＬＣラベル一覧情報に含まれるラベルが、図中の「ラベル」項目に格納される。そして、この項目「ラベル」に入力されたラベルに関して、項目「デバイス／定数値」や項目「デバイス種別」、項目「コメント」がユーザによる入力部１２からの設定が可能になっている。この設定画面によって、ラベルをどのデバイスに関連付けるかが設定される。なお、この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。
【００７１】
この実施の形態１の例では、ＰＬＣ２とＰＬＣ３は全く同一の機能を有するモジュール化されたものであり、ＰＬＣ１がそれらを統括制御する構成であるので、ＰＬＣ２とＰＬＣ３との間でのデータのやりとりがない。そのため、プログラムＰＬＣ１にて用いられているラベルＰＬＣ２やラベルＰＬＣ３が、リンクデバイスとなるデータ数のすべてとなる。したがって、プログラムＰＬＣ１で使用されているＰＬＣ２ラベル一覧情報中のラベルとＰＬＣ３ラベル一覧情報中のラベルの一覧を呈示することで、ユーザは、そのラベルの数を確認してからリンクデバイスの割付の設定を行うことができるとともに、リンクデバイスの割付を簡単に設定することができる。
【００７２】
なお、付加的な機能として、システム設定から、自ＰＬＣと他ＰＬＣとがネットワーク構成であれば、リンクデバイスに関連付けるような制約を付加し、自ＰＬＣと他ＰＬＣとがマルチＣＰＵ構成であれば、共有リフレッシュデバイスに関連付けるような制約を付加してもよい。
【００７３】
また、その他の付加的な機能として、リンクデバイスの割付や共有リフレッシュデバイスの割付が未だなされていない場合には、ここで先ずリンクデバイスの割付や共有リフレッシュデバイスの割付を行ってから、他ＰＬＣのラベルをリンクデバイスや共有リフレッシュデバイスに関連付ける手順となる旨のメッセージを表示するようにしてもよい。以上で、他装置用ラベル一覧情報生成処理が終了する。
【００７４】
ステップＳ１３０の関連付け反映処理では、ステップＳ１２０の他制御装置ラベル−デバイス関連付け設定処理で設定した、ラベルとデバイスとの関連付け結果を他ＰＬＣに対しても反映させる。図６−１や図６−２のように、他ＰＬＣであるＰＬＣ２とＰＬＣ３のデータもＰＬＣ１と同じ開発ツール上に存在し、ＰＬＣ２もＰＬＣ３も同じ開発ツール上でコンパイルするのであれば、同じ開発ツール上での反映なので、ＰＬＣ２やＰＬＣ３のそれぞれの設定データに対して反映すればよい。
【００７５】
しかし、他ＰＬＣであるＰＬＣ２とＰＬＣ３のデータが、ＰＬＣ１とは別の開発ツール上に存在し、ＰＬＣ２もＰＬＣ３も別の開発ツール上でコンパイルするのであれば、他装置用ラベル−デバイス関連付け設定処理にて設定した関連付け結果を、別の開発ツールへ反映する必要がある。この方法としては、たとえば、上記特許文献２では、各ＰＬＣのプログラムを作成するツール間で、ラベル名を共有する方法を利用することが可能である。また、他装置用ラベル−デバイス関連付け設定処理にて設定した関連付け結果をファイル出力して（エクスポートして）、別のツールでそのファイルを読み込む（インポートする）方法でもよい。
【００７６】
ステップＳ１４０の自制御装置のラベルと自制御装置のデバイスの関連付け処理では、ラベル−デバイス関連付け設定処理部１６４は、背景技術で説明したラベル名とデバイスのアドレスとの関連付けを行い、上記したステップＳ１１０〜１３０の処理の対象となっているラベル以外のラベルに対して、従来と同様の方法でラベル名とデバイスのアドレスとの関連付けを行う。この場合にも、自ＰＬＣのラベルを自ＰＬＣのどのデバイスに関連付けるかを設定する図１２と同様の設定画面を呈示し、その設定内容に応じて、ラベルとデバイスとの関連付けを行う。また、必要に応じて他ＰＬＣも同様に従来の設定画面を呈示して設定する。
【００７７】
特に、ＰＬＣ２とＰＬＣ３は機能が全く同じでモジュール化されている場合には、ＰＬＣ間でデータのやりとりを行うためのラベル以外のラベルを予めすべてＰＬＣ２とＰＬＣ３内のリンクデバイス以外のデバイスに関連付けておけば、ＰＬＣ２とＰＬＣ３に関して、ステップＳ１４０の処理は不要となる。すなわち、モジュール化されているＰＬＣの場合には、そのＰＬＣ内の制御を記述するプログラムやラベルを一切編集する必要がないので、ＰＬＣ単位での再利用が可能となる。
【００７８】
以上により、すべてのラベルを実デバイスへ関連付ける作業が完了したので、プログラムＰＬＣ１、プログラムＰＬＣ２およびプログラムＰＬＣ３と実機へダウンロードするための図３のステップＳ１５のコンパイル処理を行うことが可能となる。
【００７９】
なお、上述した説明では、ＰＬＣ１，ＰＬＣ２，ＰＬＣ３がリンク型の制御システムを構成する場合を例に挙げたが、複数のＣＰＵユニットがベースユニット上に接続され、１台のＰＬＣユニットが機能の全く同じ他の複数のＣＰＵユニットを統括制御するマルチＣＰＵ型の制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチＣＰＵ構成が混在している場合でも、処理の手順は同様に行うことができる。
【００８０】
この実施の形態１によれば、全く同じ機能を有する複数台の制御装置を統括的な役割を果たす１台の制御装置が制御するような制御システムの開発時に、複数台の制御装置のラベルが重複していても、統括の制御装置の制御プログラムを作成する際に制御装置間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能となる。その結果、プログラムの可読性が向上するとともに、全く同じ機能を有する複数台の制御装置のラベルを、それぞれ異なるラベル名に置き換える必要がなくなり、ラベル名の置き換えの手間がなくなるという効果を有する。
【００８１】
また、全く同じ機能を有する複数台の制御装置のラベルを、それぞれ異なるラベル名に置き換える必要がなくなることで、再利用性の向上のために行ってきた制御プログラムの標準化を妨げることなく、モジュール化した制御装置の再利用による装置開発の効率化を実現することができるという効果も有する。
【００８２】
実施の形態２．
この実施の形態２では、機能が同じ２台のＰＬＣであるＰＬＣ２，ＰＬＣ３と、それらを統括制御する１台のＰＬＣであるＰＬＣ１を用いて１つの制御システムを構築する場合の、３台のＰＬＣの制御プログラムを開発する場合について説明する。システム構成は実施の形態１と同じであるが、この実施の形態２では、ＰＬＣ２とＰＬＣ３のラベルにおいて、ＰＬＣ１でも使用してよいラベルと使用すべきでないラベルとを区別している点が異なる。
【００８３】
まず、図３のステップＳ１１に示されるように、システム構成の設定が行われる。図１３は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。ここでは、システム構成編集ツールで、機能が同じ２台のＰＬＣ２，ＰＬＣ３と、これらを統括制御する１台のＰＬＣ１がネットワークで接続された制御システムについてのシステム構成が設定される。
【００８４】
つぎのステップＳ１２では、ラベルの編集が行われ、ＰＬＣごとにラベルテーブルが作成される。それぞれのラベルテーブルでは、どのＰＬＣで用いられるかの属性を保持する。図１３に示される開発ツールでは、システム構成編集ツールで作成されたシステム構成のＰＬＣごとに、ラベルとプログラムを分割して作成している。つまり、システム構成のＰＬＣ１に関して、このＰＬＣ１に関連付けさせてラベルテーブルとプログラムを管理するようにし、ＰＬＣ２，ＰＬＣ３についても同様にラベルテーブルとプログラムを管理するようにしている。このような形態の管理ツール上では、ラベルテーブルに、どのＰＬＣで用いられるかの属性を自動的に保持させることができる。さらに、この実施の形態２においては、ラベルテーブルは、図中のラベルＰＬＣ２、ラベルＰＬＣ３と示したようにそのＰＬＣ内に閉じて用いられるラベルであるのか、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルと示したように他ＰＬＣと共有して用いられるか（すなわち、ラベルを他ＰＬＣに対して公開するか）を指定した２種類のラベルテーブルが作成される。このように公開するラベルと非公開のラベルを分けることによって、モジュール化されているＰＬＣ２とＰＬＣ３において、ＰＬＣ１が参照するラベルと、ＰＬＣ１が参照しないラベルとを予め分類しておくことになる。
【００８５】
つぎのステップＳ１３では、プログラムの編集が行われる。図１３に示される開発ツールでは、ラベルと同様に、システム構成のＰＬＣごとに分割してプログラムが作成される。ただし、プログラムは、システム構成のどのＰＬＣで実行させるかを指定してから作成される。
【００８６】
このプログラム編集において、他ＰＬＣのラベルテーブルの中から所望のラベルを選択してプログラムを記述する場合には、他ＰＬＣが公開しているラベルテーブル（ＰＬＣ２公開ラベルとＰＬＣ３公開ラベル）のラベルのみ、使用が可能であり、他ＰＬＣが公開していないラベルテーブル（ＰＬＣ２ラベルとＰＬＣ３ラベル）のラベルを使用することはできない。また、他ＰＬＣが公開しているラベルテーブルのラベルを使用する場合のラベルの表記方法は、実施の形態１の場合と同様に、ラベルに引用元ラベル識別情報を付して表記することになる。図１４は、プログラムの作成方の一例を示す図である。図１３には、ラベルテーブルは、ＰＬＣ１のラベルＰＬＣ１と、ＰＬＣ２のＰＬＣ２公開ラベルとラベルＰＬＣ２と、ＰＬＣ３のＰＬＣ３公開ラベルとラベルＰＬＣ３との５つである。プログラムＰＬＣ１のプログラミングには、ラベルＰＬＣ１とＰＬＣ２公開ラベルとＰＬＣ３公開ラベル中のラベルを使用することができるが、公開されていないラベルＰＬＣ２とラベルＰＬＣ３中のラベルを使用することはできない。
【００８７】
以上のように、他ＰＬＣに対して公開する公開ラベルとそうでない非公開ラベルのラベルテーブルを分けて管理した場合のＰＬＣのプログラミングが完了すると、ラベルを実デバイスへ関連付ける処理が行われる。このように、公開ラベルと非公開ラベルとを分けて予め作成しておく場合には、実施の形態１の図８−２のステップＳ１１０または図９の処理において、予め他装置用ラベル一覧情報を用意していることになるので、他装置用ラベル一覧情報生成処理は不要となる。つまり、実施の形態１では、ステップＳ１１０において、プログラムの保持におけるラベルの保持情報から、ラベルの保持情報の中に他ＰＬＣが保持されているラベルであるか否かを判定し、プログラムで使用されている他ＰＬＣのラベルの一覧を、他ＰＬＣの名称ごとに作成していたが、この実施の形態２では、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルが、そのままＰＬＣ１のプログラムで使用されている他ＰＬＣのラベルの一覧になるので、ステップＳ１１０を省略することが可能なる。
【００８８】
なお、このとき、ＰＬＣ１のプログラムにおいて、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルをすべて使用していない場合でも、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルをすべてデバイスに関連付けても、動作としては問題ない。また、ＰＬＣ１のプログラムにおいて、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルをわずかしか使用していない場合には、実施の形態１でのステップＳ１１０の処理を、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルに対して実施すれば、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベル中の他の使用していないラベルをデバイスに割付ける無駄を省くことができる。
【００８９】
この後のステップＳ１２０で、他装置用ラベル−デバイス関連付け設定処理部１６２は、ＰＬＣ２公開ラベルとＰＬＣ３公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによってこの設定画面に入力された情報に基づいて、ラベルとデバイスとの関連付けを行う。この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。その後の処理は、実施の形態１と同様であるので、その説明を省略する。
【００９０】
なお、上述した説明では、ＰＬＣ１，ＰＬＣ２，ＰＬＣ３がリンク型の制御システムを構成する場合を例に挙げたが、複数のＣＰＵユニットがベースユニット上に接続され、１台のＰＬＣユニットが機能の全く同じ他の複数のＣＰＵユニットを統括制御する制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチＣＰＵ構成が混在している場合でも、処理の手順は同様に行うことができる。
【００９１】
この実施の形態２によれば、実施の形態１の効果に加え、統括ＰＬＣの制御プログラムを作成するにあたり他ＰＬＣ間でのデータのやり取りに対して同じラベル名を用いたプログラムを作成する際に、他ＰＬＣが公開していないラベル名を使用することができないので、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減される。
【００９２】
すなわち、モジュール化したＰＬＣに対して動作指示などのデータのやりとりを行うべきラベルのみを公開し、他ＰＬＣとの間でやりとりを行うべきデータではないラベルは非公開とするようにしたので、そのモジュール化したＰＬＣを用いた装置の開発時に、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減される。そして、このようなＰＬＣの機能モジュール化が可能となるという効果を有する。よって、モジュール化したＰＬＣの再利用による装置開発の効率化と、ミスの軽減による装置開発の効率化とが、同時に実現可能となる。
【００９３】
実施の形態３．
この実施の形態３では、定められた機能を実現する１台の装置を複数台のＰＬＣによって制御し、さらにこれらを１台のＰＬＣで統括制御する１つの大規模装置を構築する場合におけるＰＬＣの制御プログラムを開発する場合について説明する。この場合、実施の形態１，２とは異なり、装置ごとにラベルを管理することになる。なお、以下では、２台のＰＬＣ２とＰＬＣ３が１台の装置を制御し、これらの２台のＰＬＣ２とＰＬＣ３をＰＬＣ１が統括制御する場合を例に挙げて説明する。
【００９４】
まず、図３のステップＳ１１に示されるように、システム構成の設定が行われる。図１５は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。ここでは、システム構成編集ツールで、まず装置名が「ＭＡＣＨＩＮＥ」という装置が作成される。この装置は、ＰＬＣ２とＰＬＣ３によって構成される。ついで、装置を構成する２台のＰＬＣ２，ＰＬＣ３と、これらを統括制御する１台のＰＬＣ１がネットワークで接続された制御システムが作成される。なお、この開発ツールのツリービューにおける構成要素は、システム構成と、装置と、この装置中のＰＬＣを統括制御するＰＬＣとから構成される。
【００９５】
つぎのステップＳ１２では、ラベルの編集が行われる。このとき、装置（装置を構成するＰＬＣ２，ＰＬＣ３を含む）で使用されるラベルと、装置を制御するＰＬＣ１で使用されるラベルの編集が行われる。ＰＬＣ１では、上述した実施の形態１，２と同様にラベルテーブルが形成される。装置では、装置として外部に公開するラベルテーブル（以下、装置公開ラベルという）が指定される。これにより、装置を統括制御するＰＬＣ１の制御プログラムは、この装置公開ラベルを用いてプログラムが作成されることになる。また、装置を構成するＰＬＣ２，ＰＬＣ３のラベルは、ＰＬＣ別に分割してラベルテーブルとしてそれぞれＰＬＣ２ラベル、ＰＬＣ３ラベルが作成される。これらのＰＬＣ２ラベルとＰＬＣ３ラベルは、他ＰＬＣに対して公開されないラベルテーブルである。それぞれのラベルテーブルでは、どのＰＬＣで用いられるかの属性を保持する。そのため、ユーザは、ラベルテーブルを作成する際に、そのラベルテーブルがどのＰＬＣで用いられるかを指定する必要がある。
【００９６】
ついで、ステップＳ１３では、プログラムの編集が行われる。図１５に示される開発ツールでは、ラベルと同様に、システム構成のＰＬＣごとに分割してプログラムが作成される。ただし、プログラムは、システム構成のどのＰＬＣで実行させるかを指定してから作成される。
【００９７】
このプログラム編集において、ＰＬＣ１のプログラムを作成する際には、ラベルＰＬＣ１と装置公開ラベルを用いる。これにより、装置を統括制御するＰＬＣ１は、この装置公開ラベルを用いて装置を制御するプログラムを作成することになるため、ＰＬＣ２やＰＬＣ３に対して動作指示を行うようなプログラムを作成するというよりは、むしろ装置に対して動作指示を行うようなプログラムを作成することになる。そのため、ＰＬＣ１のプログラムを作成する際には、ＰＬＣ２やＰＬＣ３のラベルテーブルであるラベルＰＬＣ２やラベルＰＬＣ３を用いることはできない。
【００９８】
一方、装置を構成するＰＬＣ２のプログラムを作成する際には、ラベルＰＬＣ２と装置公開ラベルテーブルを用いる。これにより、装置の機能を実現するＰＬＣ２は、この装置として公開されているラベルテーブルを用いて装置を制御するプログラムを作成することになる。そのため、ＰＬＣ２プログラムとしては、装置外部のＰＬＣ１からの動作指示を受けて実施する機能のうち、ＰＬＣ２が実施を担当する機能の部分のプログラムが作成されることになる。なお、他ＰＬＣが公開しているラベルテーブルのラベルを使用する場合のラベルの表記方法は、実施の形態１の場合と同様に、ラベルに引用元ラベル識別情報を付して表記することになる。また、ＰＬＣ３のプログラムを作成する際も、ＰＬＣ２の場合と同様である。
【００９９】
図１６は、プログラムの作成方法の一例を示す図である。図１６には、ラベルテーブルは、ＰＬＣ１のラベルテーブルであるラベルＰＬＣ１と、装置のラベルテーブルである装置公開ラベルと、装置を構成するＰＬＣ２とＰＬＣ３のラベルテーブルであるラベルＰＬＣ２とラベルＰＬＣ３との４つである。プログラムＰＬＣ１のプログラミングには、ラベルＰＬＣ１と装置公開ラベル中のラベルを使用することができるが、ラベルＰＬＣ２とラベルＰＬＣ３中のラベルを使用することはできない。また、プログラムＰＬＣ２のプログラミングには、ラベルＰＬＣ２と装置公開ラベル中のラベルを使用することができるが、ラベルＰＬＣ１とラベルＰＬＣ３中のラベルを使用することはできない。同様に、プログラムＰＬＣ３のプログラミングには、ラベルＰＬＣ３と装置公開ラベル中のラベルを使用することができるが、ラベルＰＬＣ１とラベルＰＬＣ２中のラベルを使用することはできない。装置公開ラベル中のラベルを使用する場合に、引用元ラベル識別情報として「ＭＡＣＨＩＮＥ−＞」が用いられている。
【０１００】
以上のように、装置として外部に公開するラベル（装置公開ラベル）とは、装置が外部に対して提供する機能に相当するものである。装置を外部から制御する側の制御装置（ＰＬＣ１）では、この装置公開ラベルを用いて制御プログラムが作成され、装置の内部で機能を実現する側の制御装置（ＰＬＣ２，ＰＬＣ３）では、この装置公開ラベルを用いて装置の機能を実施するプログラムが作成されることになる。
【０１０１】
このように、装置のラベルとして他ＰＬＣに公開している装置公開ラベルと、それぞれのＰＬＣ１，ＰＬＣ２，ＰＬＣ３でのみ使用するラベルのラベルテーブルを分けて管理した場合のＰＬＣのプログラミングが完了すると、図３のステップＳ１４と図８−２のラベルを実デバイスへ関連付ける処理が行われる。この実施の形態３のように、装置公開ラベルと、各ＰＬＣでのみ使用する非公開のラベルテーブルとを分けて予め作成しておく場合には、実施の形態１の図８−２のステップＳ１１０または図９の処理において、予め他装置用ラベル一覧情報を用意していることになるので、他装置用ラベル一覧情報生成処理は不要となる。つまり、実施の形態１では、ステップＳ１１０において、プログラムの保持におけるラベルの保持情報から、ラベルの保持情報の中に他ＰＬＣが保持されているラベルであるか否かを判定し、プログラムで使用されている他ＰＬＣのラベルの一覧を、他ＰＬＣの名称ごとに作成していたが、この実施の形態３では、装置公開ラベルが、そのままＰＬＣ１のプログラムで使用されている他ＰＬＣのラベルの一覧になるので、ステップＳ１１０を省略することが可能なる。
【０１０２】
なお、このとき、プログラムＰＬＣ１において、装置公開ラベルをすべて使用していない場合に、装置公開ラベルをすべてデバイスに関連付けても、動作としては問題ない。また、プログラムＰＬＣ１において、装置公開ラベル中のラベルをわずかしか使用していない場合には、実施の形態１でのステップＳ１１０の処理を、その装置公開ラベルに対して実施すれば、装置公開ラベル中の他の使用していないラベルをデバイスに割付ける無駄を省くことができる。
【０１０３】
この後の図８−２のステップＳ１２０で、他装置用ラベル−デバイス関連付け設定処理部１６２は、装置公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによってこの設定画面に入力された情報に基づいて、ラベルとデバイスとの関連付けを行う。この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。その後の、処理は、実施の形態１と同様であるので、その説明を省略する。
【０１０４】
上述した説明では、ＰＬＣ２とＰＬＣ３の２台のＰＬＣから構成される、定められた機能を実施する装置を１つ用いて、それらを統括制御する１台のＰＬＣであるＰＬＣ１を用いて１つの大規模装置を構築していた。しかし、装置側を改善することによって、具体的には、装置側を構成する２台のＰＬＣ２とＰＬＣ３を、同じ機能をより高速で安価に実施することができる１台の新しいＰＬＣ４によって置き換えることによって、この実施の形態３による大規模装置のプログラム開発の効果をさらに有効にすることができる。
【０１０５】
図１７は、リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。このシステム構成では、先に構築した装置名が「ＭＡＣＨＩＮＥ」という装置の中で、装置公開ラベルはそのままにして、装置が１つのＰＬＣ４のみから構成されるように改善している。ここで、ＰＬＣ１プログラムと装置公開ラベルは、改善前と全く同じであり、変更する必要はない。
【０１０６】
ＰＬＣ４のプログラムを作成する際には、ラベルＰＬＣ４と装置公開ラベルを用いる。これにより、装置の機能を実現するＰＬＣ４では、この装置公開ラベルを用いて装置を制御するプログラムが作成されることになる。そのため、プログラムＰＬＣ４としては、装置外部のＰＬＣ１からの動作指示を受けて実施する機能の部分のプログラムが作成される。なお、その他の処理は、改善前の場合と同様にして行われるので、その説明を省略する。
【０１０７】
なお、上述した説明では、ＰＬＣ１，ＰＬＣ２，ＰＬＣ３またはＰＬＣ１，ＰＬＣ４がリンク型の制御システムを構成する場合を例に挙げたが、複数のＣＰＵユニットがベースユニット上に接続され、１台のＰＬＣユニットが機能の全く同じ他の複数のＣＰＵユニットを統括制御する制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチＣＰＵ構成が混在している場合でも、処理の手順は同様に行うことができる。
【０１０８】
この実施の形態３によれば、実施の形態１，２の効果に加えて、定められた機能を実施する装置を統括的な役割を果たす１台の制御装置が制御するような大規模装置を開発する場合に、統括制御する制御装置の制御プログラムの再利用による装置開発の効率化を実現することができるという効果を有する。
【０１０９】
また、制御装置単位で機能をモジュール化する場合に加え、１台以上の制御装置をまとめた装置単位で機能をモジュール化する場合には、そのモジュール化した装置に対して動作指示などのデータのやりとりを行うべきラベルのみを公開し、他の制御装置や他装置との間でやりとりを行うべきデータではないラベルを他の制御装置に対して非公開とするようにしたので、モジュール化した装置を用いた装置の開発時に、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減される。そして、このような装置の機能モジュール化が可能になるという効果も有する。したがって、装置のモジュール化による再利用による装置開発の効率化と、ミスの軽減による装置開発の効率化とが、同時に実現可能となる。さらに、全く同じ機能を有する複数台の装置のラベルを、それぞれ異なるラベル名に置き換える必要がなくなるので、再利用性の向上のために行ってきた制御プログラムの標準化を妨げることがない。
【０１１０】
実施の形態４．
この実施の形態４では、定められた機能を実施する１つの装置を用いて、この装置を統括制御する１台のＰＬＣであるＰＬＣ１を用いて１つの大規模装置が構成されている場合において、装置を改善してプログラムの開発をさらに効率化する場合を説明する。なお、以下では、定められた機能を実施する装置を、モジュール化された２台のＰＬＣ５とＰＬＣ６で構成する場合について説明する。
【０１１１】
まず、図３のステップＳ１１に示されるように、システム構成の設定が行われる。図１８は、大規模装置のシステム構成が設定された場合の開発ツールの一例を示す図である。ここでは、システム構成編集ツールで、まず装置名が「ＭＡＣＨＩＮＥ」という装置が作成される。この装置は、モジュール化されているＰＬＣ５とＰＬＣ６によって構成される。したがって、ＰＬＣ５とＰＬＣ６は外部に公開するラベルテーブルを有している。ついで、装置を構成する２台のＰＬＣ５，ＰＬＣ６をネットワークを介して統括制御する１台のＰＬＣ１が作成される。なお、この開発ツールのツリービューにおける構成要素は、システム構成と、装置と、この装置中のＰＬＣを統括制御するＰＬＣとから構成される。
【０１１２】
つぎのステップＳ１２では、ラベルの編集が行われる。このとき、装置が公開するラベルと、装置を構成するＰＬＣ５とＰＬＣ６で使用されるラベルと、装置を制御するＰＬＣ１で使用されるラベルと、の編集が行われる。ＰＬＣ１では、上述した実施の形態１，２と同様にラベルテーブルが形成される。装置では、装置公開ラベルが指定される。また、装置を構成するＰＬＣ５，ＰＬＣ６のラベルは、ＰＬＣ別に分割して、また他ＰＬＣに対して公開するラベルテーブルであるＰＬＣ５公開ラベル、ＰＬＣ６公開ラベルと、そうでない非公開のラベルテーブルであるラベルＰＬＣ５、ラベルＰＬＣ６が形成される。それぞれのラベルテーブルでは、どのＰＬＣで用いられるかの属性を保持する。そのため、ユーザは、ラベルテーブルを作成する際に、そのラベルテーブルがどのＰＬＣで用いられるかを指定する必要がある。
【０１１３】
ラベルテーブルを作成した後、装置公開ラベル中のラベルと、ＰＬＣ５公開ラベルおよびＰＬＣ６公開ラベル中のラベルとを関連付ける。これは、ラベルをラベルに関連付けるものであるので、従来のラベルをデバイスへ関連付ける設定画面とは異なり、装置公開ラベル中のラベルと、ＰＬＣ５公開ラベルとＰＬＣ６公開ラベル中のラベルとを関連付ける専用の設定画面をユーザに呈示する。そして、この設定画面に入力された内容に基づいて、装置公開ラベル中のラベルと、各ＰＬＣ５公開ラベル、ＰＬＣ６公開ラベル中のラベルとの関連付け設定が行われる。なお、この装置公開ラベルと装置を構成する各ＰＬＣの公開ラベルとを関連付けたものを装置公開ラベル関連付け情報という。
【０１１４】
図１９は、装置公開ラベル関連付け情報の一例を示す図である。この装置公開ラベル関連付け情報は、装置公開ラベルのラベルに対して関連付けられるラベルテーブルとそのラベルとを関連付けるものであり、ここでは、装置公開ラベル中のラベルを示す「装置公開ラベル」と、装置公開ラベルに対して関連付けを行うラベルテーブルを示す「外部公開ラベルテーブル名称」と、この外部公開ラベルテーブル名称中のラベル名を示す「外部公開ラベル」と、を含む。この装置公開ラベル関連付け情報で、「装置公開ラベル」中のラベルが、「外部公開ラベルテーブル名称」中の「外部公開ラベル」と関連付けされる。
【０１１５】
ついで、ステップＳ１３では、プログラムの編集が行われる。図１５に示される開発ツールでは、ＰＬＣ１のプログラムの作成が行われる。このＰＬＣ１のプログラミングについては、実施の形態１〜３と同様であるので、その説明を省略する。一方、ＰＬＣ５とＰＬＣ６はモジュール化されており、外部に公開するラベルを装置公開ラベルと関連付けていることによって、装置の機能を実現することができ、ＰＬＣ５とＰＬＣ６のプログラミングは不要となる。
【０１１６】
以上のように、装置のラベルとして公開している装置公開ラベルと、装置を構成するＰＬＣ５，ＰＬＣ６の公開ラベルと非公開ラベルと、装置公開ラベルとＰＬＣ５，ＰＬＣ６の公開ラベルとを対応付けた装置公開ラベル関連付け情報とで、装置のラベルを管理した場合のＰＬＣのプログラミングが完了すると、図３のステップＳ１４と図８−２のラベルを実デバイスへ関連付ける処理が行われる。このように、装置公開ラベルを予め作成し、装置を構成する各ＰＬＣでのみ使用される非公開ラベルを作成しておく場合には、実施の形態１の図８−２のステップＳ１１０または図９の処理において、予め他装置用ラベル一覧情報を用意していることになるので、他装置用ラベル一覧情報生成処理は不要となる。つまり、実施の形態１では、ステップＳ１１０において、プログラムの保持におけるラベルの保持情報から、ラベルの保持情報の中に他ＰＬＣが保持されているラベルであるか否かを判定し、プログラムで使用されている他ＰＬＣのラベルの一覧を、他ＰＬＣの名称ごとに作成していたが、この実施の形態４では、装置公開ラベルが、そのままＰＬＣ１のプログラムで使用されている他ＰＬＣのラベルの一覧になるので、ステップＳ１１０を省略することが可能なる。
【０１１７】
この後の図８−２のステップＳ１２０で、他装置用ラベル−デバイス関連付け設定処理部１６２は、装置公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによってこの設定画面に入力された情報に基づいて、ラベルとデバイスとの関連付けを行う。この設定画面は、従来のラベルをデバイスへ関連付ける設定画面と同様でよい。なお、実施の形態３では、装置公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して設定するが、この実施の形態４では、装置公開ラベルはすべてＰＬＣ５公開ラベルとＰＬＣ６公開ラベルに関連付けられているため、ＰＬＣ５公開ラベルとＰＬＣ６公開ラベルを、どのデバイスに関連付けるかを設定する設定画面を呈示して、ユーザによる設定が行われれば、装置公開ラベルをデバイスに関連付けたことになる。その後の、処理は、実施の形態１と同様であるので、その説明を省略する。
【０１１８】
なお、上述した説明では、ＰＬＣ１，ＰＬＣ５，ＰＬＣ６がリンク型の制御システムを構成する場合を例に挙げたが、複数のＣＰＵユニットがベースユニット上に接続され、１台のＰＬＣユニットが機能の全く同じ他の複数のＣＰＵユニットを統括制御する制御システムの場合にも、同様の処理の手順でラベルとデバイスとを関連付けることができる。また、ネットワーク構成とマルチＣＰＵ構成が混在している場合でも、処理の手順は同様に行うことができる。
【０１１９】
この実施の形態４によれば、実施の形態３の効果に加えて、定められた機能を実施する装置を統括的な役割を果たす１台の制御装置が制御するような大規模装置を開発する場合において、装置公開ラベルを用意するとともに、装置を構成する制御装置の公開ラベルを装置公開ラベルと関連付けできるようにしたので、統括制御を行う制御装置の制御プログラムの再利用による大規模装置開発の効率化が実現可能であり、かつ、装置側の開発においてモジュール化した制御装置を用いることが可能であり、統括側の開発における再利用による効率化と、装置側の開発における再利用による効率化を同時に実現することができるという効果を有する。
【０１２０】
また、複数台の装置の公開するラベルが重複していても、統括制御を行う制御装置の制御プログラムを作成する際に、各装置との間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能となるので、プログラムの可読性が向上するとともに、全く同じ機能を有する複数台の装置の公開するラベルを、それぞれ異なるラベル名に置き換える必要がなくなり、ラベル名の置き換えの手間がなくなるという効果が、統括制御側の制御装置と装置側の制御装置とで同時に実現される。
【０１２１】
さらに、他装置との間でのデータのやり取りに対して同じラベル名を用いたプログラムを作成する際に、他装置が公開していないラベル名を使用することができないので、誤動作を起こすようなプログラムの作成を予め回避することが可能となり、ミスが軽減されるという効果も、統括側の制御装置と装置側の制御装置とで同時に実現される。
【０１２２】
なお、上述したプログラム作成支援方法は、その処理手順を書込んだプログラムを、ＣＰＵ（中央演算処理装置）を有するパーソナルコンピュータやワークステーションなどのコンピュータ（情報処理装置）で実行することにより実現することができる。この場合、コンピュータのＣＰＵ（制御手段）が、プログラムにしたがって、上述したプログラム作成支援方法の各処理工程を実行することになる。これらのプログラムは、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ（Compact  Disk）−ＲＯＭ（Read  Only  Memory）、ＭＯ（Magneto-Optical  disk）、ＤＶＤ（Digital  Versatile  DiskまたはDigital  Video  Disk）などのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、これらのプログラムは、インタネットなどのネットワーク（通信回線）を介して配布することもできる。
【産業上の利用可能性】
【０１２３】
以上のように、この発明にかかるプログラム作成支援装置は、複数のＰＬＣやＣＰＵなどの制御装置が一つの制御システムを構成する場合の制御プログラムの作成に有用である。
【図面の簡単な説明】
【０１２４】
【図１】プログラム作成支援装置の機能構成を模式的に示すブロック図である。
【図２】このプログラム作成支援装置を実現する開発ツールの表示画面上の構成を模式的に示す図である。
【図３】プログラミングの手順の一例を示すフローチャートである。
【図４】ラベルを実デバイスへ関連付ける作業をラベル編集ツールで行う場合を示す図である。
【図５】ラベルを実デバイスへ関連付ける作業を別のツールを設けて行う場合を示す図である。
【図６−１】リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。
【図６−２】リンク型のシステム構成が設定された場合の開発ツールの他の例を示す図である。
【図７】プログラムの記述の一例を示す図である。
【図８−１】ラベル−デバイス関連付け処理部のさらに詳細な機能構成を示すブロック図である。
【図８−２】ラベルの実デバイスへの関連付けを行う処理手順の一例を示すフローチャートである。
【図９】他装置用ラベル一覧情報生成処理の手順の一例を示すフローチャートである。
【図１０】他装置用ラベル一覧情報生成処理の手順を説明するための図である。
【図１１】制御装置用ラベル−デバイス関連付け設定処理の手順の一例を示すフローチャートである。
【図１２】ラベルをリンクデバイスに関連付ける設定画面の一例を示す図である。
【図１３】リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。
【図１４】プログラムの記述の一例を示す図である。
【図１５】リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。
【図１６】プログラムの記述の一例を示す図である。
【図１７】リンク型のシステム構成が設定された場合の開発ツールの一例を示す図である。
【図１８】大規模装置のシステム構成が設定された場合の開発ツールの一例を示す図である。
【図１９】装置公開ラベル関連付け情報の一例を示す図である。
【図２０−１】リンク型の制御システムの構成の一例と、そのリンクデバイスを模式的に示す図である。
【図２０−２】図２０−１の制御システムのＰＬＣにおけるリンクデバイスの内容の一例を示す図である。
【図２１】マルチＣＰＵ型の制御システムの構成を模式的に示す図である。
【図２２−１】マルチＣＰＵ型の制御システムの共有リフレッシュデバイスを模式的に示す図である。
【図２２−２】図２２−１の制御システムのＰＬＣにおける共有リフレッシュデバイスの設定の一例を示す図である。
【図２３】従来の制御プログラムの一例を示す図である。
【図２４】ラベルを用いた制御プログラムの一例を示す図である。
【図２５】デバイスマップを用いた制御プログラムのプログラミングの一例を示す図である。
【図２６】ラベルマップを用いた制御プログラムのプログラミングの一例を示す図である。
【符号の説明】
【０１２５】
１０  プログラム作成支援装置
１０Ａ  開発ツール
１１  表示部
１２  入力部
１３  システム構成設定部
１４  ラベル設定部
１５  プログラム設定部
１６  ラベル−デバイス関連付け処理部
１７  コンパイル処理部
１８  表示処理部
２１  ツリービュー
２２  システム構成
２２Ａ  システム構成編集ツール
２３  ラベル
２３Ａ  ラベル編集ツール
２３Ｂ  ラベル編集兼デバイス関連付けツール
２４  プログラム
２４Ａ  プログラム編集ツール
２５  ハードウェア構成
２６  ラベル関連付け
２６Ａ  ラベル−デバイス関連付けツール
１６１  他装置用ラベル一覧情報生成部
１６２  他装置用ラベル−デバイス関連付け設定処理部
１６３  関連付け反映部
１６４  ラベル−デバイス関連付け設定処理部
【図１】
2007265252.tif 000003
【図２】
2007265252.tif 000004
【図３】
2007265252.tif 000005
【図４】
2007265252.tif 000006
【図５】
2007265252.tif 000007
【図６−１】
2007265252.tif 000008
【図６−２】
2007265252.tif 000009
【図７】
2007265252.tif 000010
【図８−１】
2007265252.tif 000011
【図８−２】
2007265252.tif 000012
【図９】
2007265252.tif 000013
【図１０】
2007265252.tif 000014
【図１１】
2007265252.tif 000015
【図１２】
2007265252.tif 000016
【図１３】
2007265252.tif 000017
【図１４】
2007265252.tif 000018
【図１５】
2007265252.tif 000019
【図１６】
2007265252.tif 000020
【図１７】
2007265252.tif 000021
【図１８】
2007265252.tif 000022
【図１９】
2007265252.tif 000023
【図２０−１】
2007265252.tif 000024
【図２０−２】
2007265252.tif 000025
【図２１】
2007265252.tif 000026
【図２２−１】
2007265252.tif 000027
【図２２−２】
2007265252.tif 000028
【図２３】
2007265252.tif 000029
【図２４】
2007265252.tif 000030
【図２５】
2007265252.tif 000031
【図２６】
2007265252.tif 000032