(57)【特許請求の範囲】
【請求項１】
複数の制御装置からなる制御システムで、それぞれの前記制御装置が制御対象を制御するためのラベルを用いた制御プログラムの作成を支援するプログラム作成支援装置において、
ぞれぞれの前記制御装置の制御プログラム中から、複数の制御装置間で共有するメモリに対応するデバイスに関連付けられる共有ラベルを抽出する共有ラベル抽出手段と、
前記共有ラベルについて、どの制御装置がデータを書込み、どの制御装置がデータを読出しているのかを、前記制御プログラムを参照して判定し、共有ラベル書込み／読出し情報を生成する共有ラベル書込み／読出し情報生成手段と、
前記共有ラベル書込み／読出し情報を用いて、制御装置が書込む共有ラベルを前記制御装置ごとに分類し、この分類ごとに前記共有ラベルと前記デバイスのアドレスを関連付けるデバイス一括割付関連付け手段と、
前記制御システムの構成を示すシステム構成情報に基づいて、前記制御システムの構成を判定するシステム構成判定手段と、
を備え、
前記デバイス一括割付関連付け手段は、前記制御システム構成判定手段の判定結果に基づいて、前記デバイスのアドレスと前記共有ラベルとを関連付けることを特徴とするプログラム作成支援装置。
【請求項２】
前記システム構成判定手段は、前記制御システムが、複数のプログラマブルコントローラ（以下、ＰＬＣという）がネットワークを介して接続されたリンク型の構成か、複数のＣＰＵユニットがベースユニット上に複数装着されたマルチＣＰＵ型の構成かを判定し、
前記デバイス一括割付関連付け手段は、前記制御システムがリンク型の構成の場合には、前記ＰＬＣが有するリンクデバイスのアドレスと前記共有ラベルとを関連付け、前記制御システムがマルチＣＰＵ型の構成の場合には、前記ＣＰＵユニットが有する共有リフレッシュデバイスのアドレスと前記共有ラベルとを関連付けることを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項３】
複数の制御装置からなる制御システムで、それぞれの前記制御装置が制御対象を制御するためのラベルを用いた制御プログラムの作成を支援する情報処理装置によるプログラム作成支援方法において、
ぞれぞれの前記制御装置の制御プログラム中から、複数の制御装置間で共有するメモリに対応するデバイスに関連付けられる共有ラベルを抽出する共有ラベル抽出工程と、
前記共有ラベルについて、どの制御装置がデータを書込み、どの制御装置がデータを読出しているのかを、前記制御プログラムを参照して判定し、共有ラベル書込み／読出し情報を生成する共有ラベル書込み／読出し情報生成工程と、
前記制御システムの構成を示すシステム構成情報に基づいて、前記制御システムの構成を判定するシステム構成判定工程と、
前記共有ラベル書込み／読出し情報を用いて、制御装置が書込む共有ラベルを前記制御装置ごとに分類し、この分類ごとに前記共有ラベルを前記システム構成判定工程の判定結果に基づいた前記デバイスのアドレスと関連付けるデバイス一括割付関連付け工程と、
を含むことを特徴とするプログラム作成支援方法。
【請求項４】
前記システム構成判定工程は、前記制御システムが、複数のプログラマブルコントローラ（以下、ＰＬＣという）がネットワークを介して接続されたリンク型の構成か、複数のＣＰＵユニットがベースユニット上に複数装着されたマルチＣＰＵ型の構成かを判定し、
前記デバイス一括割付関連付け工程は、前記制御システムがリンク型の構成の場合には、前記ＰＬＣが有するリンクデバイスのアドレスと前記共有ラベルとを関連付け、前記制御システムがマルチＣＰＵ型の構成の場合には、前記ＣＰＵユニットが有する共有リフレッシュデバイスのアドレスと前記共有ラベルとを関連付けることを特徴とする請求項３に記載のプログラム作成支援方法。
【請求項５】
請求項３または４に記載された方法をコンピュータに実行させるプログラム。
【請求項６】
請求項５に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の制御装置からなる制御システムのそれぞれの制御装置の制御プログラムの作成を支援するプログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体に関するものである。
【背景技術】
【０００２】
従来より、加工機や組立機などの装置を制御するために、プログラマブルコントローラ（以下、ＰＬＣという）やモーションコントローラ（以下、ＭＣという）、ＨＭＩ（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>
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、ＰＬＣ間でやりとりされるデータやＣＰＵ間でやりとりされるデータに対して、たとえ同じラベル名を用いていたとしても、それらのラベルは、リンク型の制御システムのリンクデバイスやマルチＣＰＵ型の制御システムの共有リフレッシデバイスへ関連付ける必要があり、この関連付け作業が煩雑となるという問題点があった。
【００２０】
リンク型の制御システムでこの問題点を具体的に説明すると、リンクデバイスは、ネットワークで１つの割付を行い、同じ割付設定を各局のＰＬＣで使用する。このとき、１つの局が書込むリンクデバイスは１箇所に連続的に固めて割付ける必要がある。したがって、ラベルをリンクデバイスに関連付ける際には、そのラベルに関してどの局が書込むデータであるかを考慮してラベルをリンクデバイスに関連付ける必要がある。たとえば図１−１で、局１が書込むデータとして使用されているラベルは、局１が書込むリンクデバイスにしか関連付けることができない。そればかりか、リンクデバイスの割付を行う際には、局１が書込むデータとして使用されているラベル全ての点数を数え上げて、それらを１箇所に連続的に固めてリンクデバイスの割付を実施する必要がある。つまり、せっかくラベルを用いてプログラミングを効率化しているにもかかわらず、リンクデバイス割付を考慮しながらラベルをリンクデバイスへ関連付ける作業、およびラベル全ての点数を考慮しながらリンクデバイス割付を行う作業が新たに発生するため、従来のようにデバイスを用いてプログラミングを行っていた場合にくらべてトータルでの効率化が図れないという問題点があった。
【００２１】
図６は、リンク型の制御システムにおけるラベルの割付と、リンクデバイスへの割付の一例を示す図である。この図６の例では、局１が書込むデータとして使用されているラベルは、開始指示を示す「ProcStart」と、緊急停止を示す「EmStop」であり、リンクデバイス割付の際には、局１が書込むリンクデバイスとして少なくとも２点は確保する必要がある。また、局２が書込むデータとして使用されているラベルは、開始応答を示す「StartAck」と、処理終了を示す「complete」と、エラー発生を示す「Error」であり、リンクデバイス割付の際には、局２が書込むリンクデバイスとして少なくとも３点は確保する必要がある。このような考慮を行いながら、リンクデバイスの割付を行う必要があった。
【００２２】
また、局１が書込むデータとして使用されているラベル「ProcStart」と「EmStop」は、局１が書込むリンクデバイスとして割付けられたアドレス「Ｂ００〜Ｂ０Ｆ」にまとめて関連付ける必要があり、局２が書込むデータとして使用されているラベル「StartAck」と「complete」と「Error」は、局２が書込むリンクデバイスとして割付けられたアドレス「Ｂ１０〜Ｂ１Ｆ」にまとめて関連付ける必要がある。このような考慮を行いながら、ラベルのリンクデバイスへの関連付けを、局１と局２のそれぞれのラベルのデバイスへの関連付けにおいて行う必要があった。
【００２３】
つぎに、マルチＣＰＵ型の制御システムで上記の問題点を具体的に説明すると、共有リフレッシュデバイスは、共有リフレッシュデバイスの割付の際には、１つのＣＰＵが書込む共有リフレッシュデバイスは１箇所に連続的に固めて割付ける必要がある。したがって、ラベルを共有リフレッシュデバイスに関連付ける際には、そのラベルに関してどのＣＰＵが書込むデータであるかを考慮してラベルを共有リフレッシュデバイスに関連付ける必要がある。たとえば図３−１で、ＣＰＵユニット６０２−１が書込むデータとして使用されているラベルは、ＣＰＵユニット６０２−１が書込む共有リフレッシュデバイスにしか関連付けることができない。そればかりか、共有リフレッシュデバイスの割付を行う際には、ＣＰＵユニット６０２−１が書込むデータとして使用されているラベル全ての点数を数え上げて、それらを１箇所に連続的に固めて共有リフレッシュデバイスの割付を実施する必要がある。つまり、せっかくラベルを用いてプログラミングを効率化しているにもかかわらず、共有リフレッシュデバイス割付を考慮しながらラベルを共有リフレッシュデバイスへ関連付ける作業、およびラベル全ての点数を考慮しながら共有リフレッシュデバイス割付を行う作業が新たに発生するため、従来のようにデバイスを用いてプログラミングを行っていた場合にくらべてトータルでの効率化が図れないという課題がある。
【００２４】
図７は、マルチＣＰＵ型制御システムにおけるラベルの割付と、共有リフレッシュデバイスへの割付の一例を示す図である。この図７の例では、ＣＰＵユニット６０２−１が書込むデータとして使用されているラベルは、準備指示を示す「ProcReady」と、開始指示を示す「ProcStart」であり、共有リフレッシュデバイス割付の際には、ＣＰＵユニット６０２−１が書込む共有リフレッシュデバイスとして少なくとも２点は確保する必要がある。また、ＣＰＵユニット６０２−２が書込むデータとして使用されているラベルは、準備ＯＫを示す「ReadyOK」と、開始応答を示す「StartAck」と、処理終了を示す「complete」であり、共有リフレッシュデバイス割付の際には、ＣＰＵユニット６０２−２が書込む共有リフレッシュデバイスとして少なくとも３点は確保する必要がある。このような考慮を行いながら、共有リフレッシュデバイスの割付を行う必要があった。
【００２５】
また、ＣＰＵユニット６０２−１におけるラベルのデバイスへの関連付けにおいては、ＣＰＵユニット６０２−１が書込むデータとして使用されているラベル「ProcReady」と「ProcStart」は、ＣＰＵユニット６０２−１が書込む共有リフレッシュデバイスとして割付けられたアドレス「Ｄ００〜Ｄ０Ｆ」に関連付ける必要があり、ＣＰＵユニット６０２−２が書込むデータとして使用されているラベル「ReadyOK」と「StartAck」と「complete」は、ＣＰＵユニット６０２−２が書込む共有リフレッシュデバイスとして割付けられたアドレス「Ｄ１０〜Ｄ１Ｆ」に関連付ける必要がある。さらに、ＣＰＵユニット６０２−２におけるラベルのデバイスへの関連付けにおいては、ＣＰＵユニット６０２−１が書込むデータとして使用されているラベル「ProcReady」と「ProcStart」は、ＣＰＵユニット６０２−１が書込む共有リフレッシュデバイスとして割付けられたアドレス「Ｄ１０〜Ｄ１Ｆ」に関連付ける必要があり、ＣＰＵユニット６０２−２が書込むデータとして使用されているラベル「ReadyOK」と「StartAck」と「complete」は、ＣＰＵユニット６０２−２が書込む共有リフレッシュデバイスとして割付けられたアドレス「Ｄ００〜Ｄ０Ｆ」に関連付ける必要がある。これらのような考慮を行いながら、ラベルの共有リフレッシュデバイスへの関連付けを、ＣＰＵユニット６０２−１とＣＰＵユニット６０２−２のそれぞれのラベルのデバイスへの関連付けにおいて行う必要があった。
【００２６】
このような煩雑さを解決するための技術としては、ＰＬＣ間でやりとりされるデータに付けるラベルに対して、各ＰＬＣ内のローカルメモリを自動で関連付け、そのローカルメモリ同士を、ネットワークを介して同値化する手段を備えるものが提案されている（たとえば、特許文献３参照）。
【００２７】
しかしながら、上記特許文献３では、上述したようなリンク型の制御システムやマルチＣＰＵ型の制御システムを用いずに、同値化する手段を用いて、同値化すべきデータごとに値読出し要求を送信し、応答データを受信して、応答データを書込むことで同値化を実現している。そのため、同値化のための通信がボトルネックとなり、同値化の周期は遅くなる。つまり、１点のデータをＰＬＣ間で転送するために必要な処理時間と、１０点のデータをまとめてＰＬＣ間で転送するために必要な処理時間とは、あまり変わらないので、１０点のデータを１０回個別にＰＬＣ間で転送することは、１０点のデータをまとめてＰＬＣ間で転送する場合に比べて、実に１０倍の処理時間を必要とする、ということに起因する。
【００２８】
上述したリンク型の制御システムのようなＰＬＣ間でのデータのやり取りや、マルチＣＰＵ型の制御システムのようなＣＰＵユニット間でデータのやり取りを行うしくみとして、リンクデバイスや共有リフレッシュデバイスという機能を用意しているのは、上記特許文献３において課題となる「通信がボトルネックとなって同値化の周期は遅くなる」ことを避けるためのものであって、そのために１つの局または１つのＣＰＵが書込むデバイスを１箇所に連続的に固めて割付ける仕様となっている。
【００２９】
この発明は上記に鑑みてなされたもので、リンク型の制御システムにおけるＰＬＣ間でのデータのやり取りを高速に行うリンクデバイスの機能や、マルチＣＰＵ型の制御システムにおけるマルチＣＰＵ間でのデータのやり取りを高速に行う共有リフレッシュデバイスの機能において、各ＰＬＣ間やマルチＣＰＵ間で同じラベル名を用いたプログラム作成を可能にし、かつリンクデバイスや共有リフレッシュデバイスの割付作業、およびラベルのリンクデバイスや共有リフレッシュデバイスへの関連付け作業を簡略化することができるプログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体を得ることを目的とする。
【課題を解決するための手段】
【００３０】
上記目的を達成するため、この発明にかかるプログラム作成支援装置は、複数の制御装置からなる制御システムで、それぞれの前記制御装置が制御対象を制御するためのラベルを用いた制御プログラムの作成を支援するプログラム作成支援装置において、ぞれぞれの前記制御装置の制御プログラム中から、複数の制御装置間で共有するメモリに対応するデバイスに関連付けられる共有ラベルを抽出する共有ラベル抽出手段と、前記共有ラベルについて、どの制御装置がデータを書込み、どの制御装置がデータを読出しているのかを、前記制御プログラムを参照して判定し、共有ラベル書込み／読出し情報を生成する共有ラベル書込み／読出し情報生成手段と、前記共有ラベル書込み／読出し情報を用いて、制御装置が書込む共有ラベルを前記制御装置ごとに分類し、この分類ごとに前記共有ラベルと前記デバイスのアドレスを関連付けるデバイス一括割付関連付け手段と、前記制御システムの構成を示すシステム構成情報に基づいて、前記制御システムの構成を判定するシステム構成判定手段と、を備え、前記デバイス一括割付関連付け手段は、前記制御システム構成判定手段の判定結果に基づいて、前記デバイスのアドレスと前記共有ラベルとを関連付けることを特徴とする。
【発明の効果】
【００３１】
この発明によれば、制御装置間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能で、かつ、そのラベルのデバイスへの関連付けやデバイスの割付作業がシステム構成に基づいて自動で行われるので、制御装置間で同じラベル名を用いたプログラム作成を行うことによる装置開発を効率化することができるという効果を有する。また、それらの制御装置間でデータのやり取りがリンクデバイスの機能により高速に行われる制御システムの開発も実現可能となる。
【発明を実施するための最良の形態】
【００３２】
以下に添付図面を参照して、この発明にかかるプログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体の好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００３３】
最初に、この発明で使用されるプログラム作成支援装置（以下、開発ツールともいう）の構成と、このプログラム作成支援装置におけるプログラムの作成手順の概要について説明し、その後で、このプログラム作成支援装置を基本にしたこの発明にかかる実施の形態について説明する。
【００３４】
図８は、プログラム作成支援装置の機能構成を模式的に示すブロック図であり、図９は、このプログラム作成支援装置を実現する開発ツールの表示画面上の構成を模式的に示す図である。
【００３５】
このプログラム作成支援装置１０は、情報をユーザに対して表示する表示部１１と、ユーザによってプログラミングに必要な所定の情報が入力される入力部１２と、入力部１２から入力された情報に基づいてシステム構成を設定するシステム構成設定部１３と、入力部１２から入力された情報に基づいてラベルを設定するラベル設定部１４と、入力部１２から入力された情報に基づいてプログラムを設定するプログラム設定部１５と、ラベル設定部１４で設定されたラベルと実デバイスとを関連付けるラベル−デバイス関連付け処理部１６と、作成されたプログラムをコンパイルするコンパイル処理部１７と、システム構成の設定画面、ラベルの設定画面、プログラムの設定画面およびラベルと実デバイスの関連付け画面の表示部１１への表示処理を行う表示処理部１８と、これらの各処理部を制御する制御部１９と、を備える。
【００３６】
開発ツール１０Ａは、プログラム作成支援装置１０上に表示され、編集可能な構成要素を表示するツリービュー２１と、ツリービュー２１で選択された構成要素を編集する編集ツールと、を含む。ツリービュー２１は、図９に示されるように、ＰＬＣやＭＣをプログラミングする際の構成要素を示すものであり、システム構成２２、ラベル２３およびプログラム２４を含む。このツリービュー２１は、表示処理部１８によって表示部１１上に表示され、入力部１２でシステム構成２２、ラベル２３、プログラム２４がダブルクリックなどの選択動作で選択されると、それぞれに対応したシステム構成設定部１３、ラベル設定部１４、プログラム設定部１５が起動される。
【００３７】
システム構成設定部１３は、ユーザによって入力された内容にしたがって、Ｉ／Ｏ（Input/Output）ユニットやネットワークなどＰＬＣやＭＣのハードウェアシステムの構成を設定する。たとえば、図９のツリービュー２１のシステム構成２２が選択されると、システム構成設定部１３は、システム構成を編集するウィンドウやダイアログやエディタやツール（以下、システム構成編集ツールという）２２Ａを起動し、これらに入力された内容を用いてシステム構成を設定する。
【００３８】
ラベル設定部１４は、制御プログラムを記述する際に、デバイスアドレスの代わりに記述されるラベルを設定する。たとえば、図９のツリービュー２２のラベル２３が選択されると、ラベル設定部１４は、ラベルを編集するウィンドウやダイアログやエディタやツール（以下、ラベル編集ツールという）２３Ａを起動し、これらに入力された内容を用いてラベルを設定する。
【００３９】
プログラム設定部１５は、ＰＬＣやＭＣに処理させる制御プログラム（たとえば、ラダープログラム）を設定する。たとえば、図９のツリービュー２１のプログラム２４が選択されると、プログラム設定部１５は、プログラムを編集するウィンドウやダイアログやエディタやツール（以下、プログラム編集ツールという）２４Ａを起動し、これらに入力された内容を用いてプログラムを設定する。
【００４０】
ラベル−デバイス関連付け処理部１６は、プログラム設定部１５で設定されたプログラムを、実際のＰＬＣ上やＭＣ上で動作させるために、そのプログラムで使用されるプログラム中の（すなわち、ラベル設定部１４で設定された）ラベルと、実際のＰＬＣやＭＣのデバイスとを関連付ける。
【００４１】
図１０は、プログラミングの手順の一例を示すフローチャートである。ＰＬＣのプログラミングは、まずシステム構成を編集する（ステップＳ１１）。図９の開発ツール１０Ａのツリービュー２１からシステム構成２２が選択されると、システム構成編集ツール２２Ａが起動される。ユーザは、このシステム構成編集ツール２２Ａ上で入力部１２を用いて、Ｉ／ＯユニットやネットワークなどＰＬＣやＭＣのハードウェアシステムの構成を入力すると、その入力内容に基づいてシステム構成が設定される。
【００４２】
ついで、ラベルを編集する（ステップＳ１２）。図９の開発ツール１０Ａのツリービュー２１からラベル２３が選択されると、ラベル編集ツール２３Ａが起動される。ユーザは、このラベル編集ツール２３Ａで入力部１２を用いて、プログラムで使用するラベルを入力すると、その入力内容に基づいてラベルが設定される。
【００４３】
ついで、プログラムを編集する（ステップＳ１３）。図９の開発ツール１０Ａのツリービュー２１からプログラムが選択されると、プログラム編集ツール２４Ａが起動される。ユーザは、このプログラム編集ツール２４Ａで入力部１２を用いて、記述するプログラムが、システム構成のどのＰＬＣまたはＣＰＵで実行させるかを指定した後、プログラムを記述する。そして、その入力内容に基づいてプログラムが設定される。
【００４４】
ここで、ステップＳ１３のプログラムを記述する際に、ステップＳ１２で設定したラベルを使用することが可能である。また、ステップＳ１３でのプログラムの編集中に、新しくラベルの設定が必要になった場合には、その都度ラベル編集を行ってもよい。すなわち、ステップＳ１３のプログラムの編集を行っている最中に、ステップＳ１２のラベルの編集を行ってもよい。
【００４５】
以上のＰＬＣまたはＣＰＵで処理させる制御プログラムのプログラミングが完了した後、ラベルを実デバイスへ関連付ける（ステップＳ１４）。図１１−１〜図１１−２は、ラベルを実デバイスへ関連付ける場合の開発ツールの表示画面上の構成を模式的に示す図であり、図１１−１は、ラベルを実デバイスへ関連付ける作業をラベル編集ツールで行う場合を示す図であり、図１１−２は、ラベルを実デバイスへ関連付ける作業を別のツールを設けて行う場合を示す図である。このラベルを実デバイスへ関連付ける作業は、図１１−１に示されるように、ツリービュー２１のラベル２３と関連付けられる編集ツールに、デバイス関連付け機能をもたせたラベル編集兼デバイス関連付けツール２３Ｂで行う場合と、図１１−２に示されるように、ラベル編集ツール２３Ａとは別にラベルを実デバイスへ関連付ける専用のウィンドウやダイアログやエディタやツール（以下、ラベル−デバイス関連付けツールという）２６Ａを設けて行う場合とがある。図１１−２に場合には、ツリービュー２１のシステム構成２２の下位に、ハードウェア構成２５とラベル関連付け２６の構成要素が設けられる。このとき、ハードウェア構成２５が選択されると、システム構成編集ツール２２Ａが起動され、ラベル関連付け２６が選択されるとラベル−デバイス関連付けツール２６Ａが起動される。開発ツール１０Ａとしては、上記のどちらの形態でもよい。
【００４６】
そして、最後に、実機へダウンロードするために作成されたプログラムのコンパイル処理を行い（ステップＳ１５）、ＰＬＣやＭＣに搭載するためのプログラムのプログラミング処理が終了する。
【００４７】
以上のようにしてＰＬＣまたはＣＰＵについてのプログラミングを行えばよいが、この開発ツール１０Ａにおいては、複数台のＰＬＣがＦＡネットワークで接続されたリンク型の制御システムやマルチＣＰＵ構成のＰＬＣやＭＣからなるマルチＣＰＵ型の制御システムを対象として、以下の実施の形態で説明するようにプログラムを開発することが可能である。
【００４８】
実施の形態１．
この実施の形態１では、リンク型の制御システムを構成する複数のＰＬＣの制御プログラムのラベルと実デバイスとを関連付けることができるプログラム作成支援装置について説明する。なお、以下の説明では、リンク型の制御システムとして、２台のＰＬＣがネットワークで接続された構成を有する制御システムを例に挙げる。
【００４９】
リンク型の制御システムを構成する各ＰＬＣの制御プログラムのプログラミングの処理手順について説明する。図１０のフローチャートのステップＳ１１に示されるように、最初にシステム構成の設定が行われる。図１２は、システム構成が設定された開発ツールの表示画面上の構成の一例を模式的に示す図である。ここでは、上述したように、システム構成編集ツール２２Ａで２台のＰＬＣがネットワークで接続されたシステム構成が設定される。
【００５０】
また、ステップＳ１２では、ラベルの編集が行われる。ラベルは、ＰＬＣ１の制御プログラム（以下、プログラムＰＬＣ１という）でのみ使用するラベルも、ＰＬＣ２の制御プログラム（以下、プログラムＰＬＣ２という）でのみ使用するラベルも、ＰＬＣ１−ＰＬＣ２間でやりとりするデータのラベルも、同じラベル編集にて作成されるものとする。このとき、ラベルテーブルが生成される。図１３は、作成されたラベルテーブルの一例を示す図である。このラベルテーブル１１０には、「ＬａｂｅｌＡ」〜「ＬａｂｅｌＨ」までの８個のラベルが作成されたものとする。
【００５１】
さらに、ステップＳ１３では、プログラムの編集が行われる。このとき、ＰＬＣ１で動作するプログラムＰＣＬ１と、ＰＬＣ２で動作するプログラムＰＣＬ２を、それぞれ作成する。このとき、システム構成編集ツール２２Ａで作成されたシステム構成のどのＰＬＣで実行されるかを指定して、プログラムを作成する。すなわち、プログラムＰＬＣ１はシステム構成編集ツール２２Ａで作成されたシステム構成のＰＬＣ１で実行されるように指定し、プログラムＰＬＣ２はシステム構成編集ツール２２Ａで作成されたシステム構成のＰＬＣ２で実行されるように指定する。また、プログラムＰＬＣ１を記述する際にも、プログラムＰＬＣ２を記述する際にも、ステップＳ１２で作成した同じラベルテーブルを参照する。これにより、ＰＬＣ１とＰＬＣ２とでやりとりするデータのラベルに対して、同じラベル名で扱うことが可能となる。図１４は、作成されたラダープログラムの一例を示す図である。この図に示されるように、ステップＳ１２で作成された図１３のラベルテーブル中のラベルを用いて、２つのＰＬＣ１、ＰＬＣ２のラダープログラムが作成されている。
【００５２】
以上の制御システムを構成するそれぞれのＰＬＣを制御する制御プログラムのプログラミングが完了した後、ステップＳ１４でのラベルを実デバイスへ関連付ける処理を行う。以下に、このラベルを実デバイスへ関連付ける処理であるプログラム作成支援方法について詳細に説明する。
【００５３】
図１５は、ラベルを実デバイスへ関連付ける処理手順の一例を示すフローチャートである。このラベルの実デバイスの関連付け処理は、図８のラベル−デバイス関連付け処理部１６によって実行される処理である。
【００５４】
まず、ラベル−デバイス関連付け処理部１６は、プログラミングにおけるラベルの使用を判定して、複数のＰＬＣ（または、実施の形態２で説明する場合には、複数のＣＰＵ）間で共有するデバイスへ関連付けられる共有ラベルであるか、それ以外のデバイスへ関連付けられるラベルであるかを、判定する判定処理Ａを行う（ステップＳ３１）。この判定を行う処理部を、請求の範囲では共有ラベル抽出手段としている。
【００５５】
ついで、ステップＳ３１で共有ラベルの場合には、複数のＰＬＣ（ＣＰＵ）のうちどのＰＬＣ（ＣＰＵ）が書込み、どのＰＬＣ（ＣＰＵ）が読出しているかを判定する判定処理Ｂを行う（ステップＳ３２）。この判定を行う処理部を、請求の範囲では、共有ラベル書込み／読出し情報生成手段としている。
【００５６】
その後、共有ラベルについて、複数のＰＬＣ（複数のＣＰＵ）がネットワーク構成を有しているのか、それとも一つのベースユニット上に接続されたマルチＣＰＵ構成を有しているのかを、システム構成から判定する判定処理Ｃを行う（ステップＳ３３）。この判定を行う処理部を、請求の範囲では、システム構成判定手段としている。
【００５７】
ステップＳ３３でネットワーク構成の場合には、リンクデバイスの割付と、共有ラベルのリンクデバイスへの関連付けを、同時に一括で行うネットワーク一括割付関連付処理Ｄを行い（ステップＳ３４）、ラベル−デバイス関連付け処理が終了する。このラベル−デバイス関連付け処理を行う処理部を、請求の範囲では、デバイス一括割付関連付け処理手段としている。
【００５８】
また、ステップＳ３３でマルチＣＰＵ構成の場合には、共有リフレッシュデバイスの割付と、共有ラベルの共有リフレッシュデバイスへの関連付けを、同時一括で行うマルチＣＰＵ一括割付関連付処理Ｅを行い（ステップＳ３５）、ラベル−デバイス関連付け処理が終了する。なお、このステップＳ３５でのマルチＣＰＵ一括割付関連付処理は、後述する実施の形態２で説明する。
【００５９】
また、ステップＳ３１で共有ラベル以外のラベルの場合には、そのラベルについて、デバイスのアドレスと関連付けるラベル関連付け処理Ｆを行い（ステップＳ３６）、ラベル−デバイス関連付け処理が終了する。
【００６０】
以下に、各処理Ａ〜Ｆについてさらに詳細に説明する。
（判定処理Ａ）
共有ラベルか否かを判定する判定処理Ａについて、図１６のフローチャートを参照しながら説明する。まず、ラベル−デバイス関連付け処理部１６は、ステップＳ１２で生成されたラベルテーブルから１つのラベルを抽出する（ステップＳ１０１）。ついで、抽出したラベルが、作成されたプログラムを参照して、複数のプログラムで使用されているか否かを判定する（ステップＳ１０２）。ラベルが複数のプログラムで使用されている場合（ステップＳ１０２でＹｅｓの場合）には、さらにそのラベルが複数のＰＬＣ（ＣＰＵ）で実行されているかを判定する（ステップＳ１０３）。ラベルが複数のＰＬＣ（ＣＰＵ）で実行されている場合（ステップＳ１０３でＹｅｓの場合）には、そのラベルは共有ラベルであると判定される（ステップＳ１０４）。共有ラベルであると判定されたラベルは、共有ラベルテーブルに格納される。一方、ステップＳ１０２で複数のプログラムで使用されていない場合（ステップＳ１０２でＮｏの場合）、またはステップＳ１０３で複数のＰＬＣ（ＣＰＵ）で使用されていない場合（ステップＳ１０３でＮｏの場合）には、そのラベルは共有ラベルでないと判定される（ステップＳ１０５）。共有ラベルでないと判定されたテーブルは、非共有ラベルテーブルに格納される。
【００６１】
その後、ラベルテーブル中の全てのラベルについて判定したかを判定し（ステップＳ１０６）、全てのラベルについて判定していない場合（ステップＳ１０６でＮｏの場合）には、ステップＳ１０１へと戻り、ラベルテーブル中の他のラベルについても上述した処理が同様に実行される。また、全てのラベルについて判定した場合（ステップＳ１０６でＹｅｓの場合）には、判定処理Ａが終了し、図１５に戻る。以上の判定処理Ａによって、共有ラベルテーブルと非共有ラベルテーブルとが作成される。
【００６２】
ここで、図１３のラベルテーブル１１０と図１４のプログラムを用いて、具体例を説明すると、たとえば、まず、図１３のラベルテーブル１１０中から「ＬａｂｅｌＡ」が抽出され、このＬａｂｅｌＡについて、図１４のプログラムからプログラムＰＬＣ１とプログラムＰＬＣ２で使用されているか判定される。ここでは、プログラムＰＬＣ１とプログラムＰＬＣ２で使用されているので、続けて、複数のＰＬＣで実行されているか判定される。図１４を参照すると、プログラムＰＬＣ１はＰＬＣ１で実行され、プログラムＰＬＣ２はＰＬＣ２で実行されるため、「ＬａｂｅｌＡ」は共有ラベルとなる。
【００６３】
つぎに、図１３のラベルテーブル１１０中から別の「ＬａｂｅｌＢ」が抽出され、このＬａｂｅｌＢについて、図１４のプログラムからプログラムＰＬＣ１とプログラムＰＬＣ２で使用されているか判定される。ここでは、プログラムＰＬＣ１のみで使用されているので、共有ラベルではないと判定される。なお、図１３のラベルテーブル１１０中のその他のＬａｂｅｌＣ〜ＬａｂｅｌＨについても同様に判定される。その結果、図１７に示されるように共有ラベルテーブル１１１と非共有ラベルテーブル１１２が作成される。
【００６４】
（判定処理Ｂ）
複数のＰＬＣ（ＣＰＵ）のうちどのＰＬＣ（ＣＰＵ）が書込み、どのＰＬＣ（ＣＰＵ）が読出しているかを判定する判定処理Ｂについて、図１８のフローチャートを参照しながら説明する。まず、ラベル−デバイス関連付け処理部１６は、判定処理Ａで生成された共有ラベルテーブルから１つのラベルを抽出する（ステップＳ１２１）。ついで、このラベルについて、プログラムの記述内容を参照しながら、どのＰＬＣ（ＣＰＵ）が書込み、どのＰＬＣ（ＣＰＵ）が読出すのかを判定する（ステップＳ１２２）。そして、共有ラベルテーブル中の全てのラベルについて判定したかを判定し（ステップＳ１２３）、全てのラベルについて判定していない場合（ステップＳ１２３でＮｏの場合）には、ステップＳ１２１へと戻り、共有ラベルテーブル中の全てのラベルについて上述した処理が繰り返し実行される。また、全てのラベルについて判定した場合（ステップＳ１２３でＹｅｓの場合）には、判定処理Ｂが終了し、図１５に戻る。以上の判定処理Ｂによって、共有ラベル書込み／読出し情報が作成される。
【００６５】
ここで、図１４のプログラムと図１７の共有ラベルテーブル１１１を用いて、具体例を説明すると、たとえば、まず、図１７の共有ラベルテーブル１１１中のＬａｂｅｌＡは、プログラムＰＬＣ１においてはコイルデータとして制御プログラムに記述されている。コイルは制御プログラム（ラダープログラム）においては「書込み」であると判定される。すなわち、ＬａｂｅｌＡは、プログラムＰＬＣ１では書込みであると判定される。また、ＬａｂｅｌＡは、プログラムＰＬＣ２においては接点データとして制御プログラムに記述されている。接点は制御プログラム（ラダープログラム）においては「読出し」であると判定される。すなわち、ＬａｂｅｌＡは、プログラムＰＬＣ２では読出しであると判定される。以上より、ＬａｂｅｌＡについては、ＰＬＣ１が書込むラベルであり、ＰＬＣ２が読出すラベルとなる。共有ラベルテーブル中の他のラベルＬａｂｅｌＤ，Ｆ，Ｇについても同様に処理される。その結果、図１９に示されるように、共有ラベル書込み／読出し情報１１３が作成される。
【００６６】
（判定処理Ｃ）
システム構成を判定する判定処理Ｃは、図１０のステップＳ１１で作成されたシステム構成を参照して、ＰＬＣがネットワーク接続されている場合には、リンクデバイスに関連付けされる共有ラベルであり、このラベルが使用される制御システムはリンク型の制御システムであると判定される。また、ＣＰＵが１つのベースユニット上に接続されている場合には、共有リフレッシュデバイスに関連付けされる共有ラベルであり、このラベルが使用される制御システムはマルチＣＰＵ型の制御システムであると判定される。その結果、リンクデバイス関連付けラベルテーブルと、共有リフレッシュデバイス関連付けラベルテーブルとに分類される。
【００６７】
ここで、図１２のシステム構成編集ツール２２Ａで作成されたシステム構成と図１９の共有ラベル書込み／読出し情報を用いて、具体例を説明すると、図１９の共有ラベル書込み／読出し情報中の最初のラベルであるＬａｂｅｌＡは、このＬａｂｅｌＡが使用されるＰＬＣ１とＰＬＣ２が、図１２のシステム構成編集ツール２２Ａのシステム構成においてネットワーク構成となっているため、リンクデバイスへ関連付けられるラベルであると判定される。そのため、図２０に示されるように、ＬａｂｅｌＡは、リンクデバイス関連付けラベルテーブル１１４に分類される。共有ラベル書込み／読出し情報１１３中の他のラベルについても同様に処理される。なお、ここでは、全てのラベルはリンクデバイス関連付けラベルテーブル１１４に分類され、共有リフレッシュデバイス関連付けラベルテーブル１１５には何も分類されない。
【００６８】
（ネットワーク一括割付関連付処理Ｄ）
リンクデバイスに関連付けされるラベルとデバイスとの関連付けを同時一括で行うネットワーク一括割付関連付処理Ｄについて、図２１のフローチャートを参照しながら説明する。まず、リンクデバイス関連付けラベルテーブル中の各ＰＬＣが書込むラベルを集めて、ＰＬＣごとに順に並べる（ステップＳ１４１）。この並べ替えたリンクデバイス関連付けラベルテーブルを、ＰＬＣ書込ラベル分類テーブルとする。制御システムが２つのＰＬＣ１とＰＬＣ２で構成される場合には、ＰＬＣ１が書込むラベルを集めて順に並べ、ついでＰＬＣ２が書込むラベルも集めて順に並べる。
【００６９】
ついで、作成したＰＬＣ書込みラベル分類テーブルを用いて、それぞれのＰＬＣが書込むラベルの数からリンクデバイスの割付を決定する（ステップＳ１４２）。ＰＬＣが２つの場合には、ＰＬＣ１が書込むラベルの数とＰＬＣ２が書込むラベルの数からリンクデバイスの割付を決定する。
【００７０】
その後、各ＰＬＣが書込むラベルの先頭を、ステップＳ１４２で割付けたそのＰＬＣが書込むリンクデバイスの先頭に関連付け、以下、ステップＳ１４１で並べたラベルの順に、ラベルとリンクデバイスとの関連付けを行う（ステップＳ１４３）。ＰＬＣが２つの場合には、ＰＬＣ１が書込むラベルの先頭を、ステップＳ１４２で割付けたＰＬＣ１が書込むリンクデバイスの先頭に関連付け、以下、ステップＳ１４１で並べたラベルの順に、ラベルとリンクデバイスとの関連付けを行う。ＰＬＣ２が書込むラベルについても同様に行う。以上により、ネットワーク一括割付関連付処理Ｄが終了し、図１５に戻る。
【００７１】
図２２は、ネットワーク一括割付関連付け処理Ｄの具体的な手順を示す図である。なお、この図２２には、図２１の各処理と対応する位置にステップ番号を付している。まず、図２０に示されるリンクデバイス関連付けラベルテーブル１１４について、リンクデバイスを割付ける処理と、共有ラベルをリンクデバイスへ関連付ける処理を行うための必要な前処理として、ＰＬＣが書込むラベルをそのＰＬＣごとに集めて順に並べたＰＬＣ書込ラベル分類テーブル１１６を作成する。図２２に示されるように、ＰＬＣ１が書込むラベルと、ＰＬＣ２が書込むラベルとに分類される（ステップＳ１４１）。
【００７２】
ついで、ＰＬＣ書込ラベル分類テーブル１１６のＰＬＣ順に並べた結果を利用して、ＰＬＣごとにそれぞれ何点データを書込むかを抽出し、その点数でリンクデバイスを割付ける。ＰＬＣ１は２点データを書込むので、２点必要である。しかし、リンクデバイスは１６点単位で割付けるというシステム制約があるので、１６点に切り上げる。その結果、ＰＬＣ１が書込むリンクデバイスとして、１６点をＢ００〜Ｂ０Ｆに割付ける。また、ＰＬＣ２は２点データを書込むので、同様に１６点に切り上げてから、ＰＬＣ２が書込むリンクデバイスとして１６点を、ＰＬＣ１が書込むリンクデバイスの続きのアドレスから始まるＢ１０〜Ｂ１Ｆに割付ける（ステップＳ１４２）。
【００７３】
その後、割付結果であるＰＬＣ１の書込むリンクデバイス先頭アドレスＢ００と、ＰＬＣ書込ラベル分類テーブルの並べかえた結果であるＰＬＣ１の書込む先頭ラベルＬａｂｅｌＡとを関連付け、以下順にリンクデバイスのアドレスＢ０１とラベルＬａｂｅｌＧとを関連付ける。また、ステップＳ１４２で割付けたＰＬＣ２の書込むリンクデバイス先頭アドレスＢ１０と、ＰＬＣ書込ラベル分類テーブル中のＰＬＣ２の書込む先頭ラベルＬａｂｅｌＤとを関連付け、以下順にリンクデバイスのアドレスＢ１１とラベルＬａｂｅｌＦとを関連付ける。
【００７４】
なお、リンクデバイスの割付設定は制御システムで使用される各ＰＬＣで同じ設定を用いるので、各ＰＬＣにおけるコンパイルにおいて、このリンクデバイスの割付設定が共通して使用される。
【００７５】
（ラベル関連付け処理Ｆ）
このラベル関連付け処理Ｆは、背景技術で説明したラベル名とデバイスのアドレスとの関連付けであり、共有ラベル以外のラベルに対して、従来と同様の方法でラベル名とデバイスのアドレスとの関連付けを行う。ネットワーク一括割付関連付け処理Ｄで既にラベルを関連付けたデバイス以外のデバイスに対して関連付けを行えばよい。
【００７６】
以上により、全てのラベルを実デバイスへ関連付ける処理が完了したので、プログラムＰＬＣ１もプログラムＰＬＣ２も実機のＰＬＣ１とＰＬＣ２へダウンロードするための図１０のステップＳ１５のコンパイル処理を行うことが可能となる。なお、上述した説明では、２つのＰＬＣがＦＡネットワークに接続された例を挙げて説明したが、これに限られず、複数台のＰＬＣがＦＡネットワークを介して接続される場合にも同様に適用することができる。
【００７７】
この実施の形態１によれば、ＰＬＣ間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能で、かつ、そのラベルのリンクデバイスへの関連付けや、リンクデバイスの割付作業が自動で行われるので、ＰＬＣ間で同じラベル名を用いたプログラム作成を行うことによる装置開発を効率化することができるという効果を有する。また、それらのＰＬＣ間でデータのやり取りがリンクデバイスの機能により高速に行われる制御システムの開発も実現可能となる。
【００７８】
実施の形態２．
実施の形態１では、リンク型の制御システムの各ＰＬＣの制御プログラムのプログラミングにおける共有ラベルの一括関連付け処理を行う場合を説明したが、この実施の形態２ではマルチＣＰＵ型の制御システムの各ＣＰＵの制御プログラムのプログラミングにおける共有ラベルの一括関連付け処理を行う場合について説明する。
【００７９】
ここでも、図１０に示される手順で、プログラミング処理が行われる。まず、図１０のフローチャートのステップＳ１１に示されるように、システム構成の設定が行われる。図２３は、システム構成が設定された開発ツールの表示画面上の構成の一例を模式的に示す図である。ここでは、システム構成編集ツール２２Ａで、２つのＣＰＵユニットがベースユニット上に接続されたシステム構成が設定されるものとする。
【００８０】
図２４は、マルチＣＰＵ型の制御システムにおける共有ラベルの一括割付関連付け処理の手順の具体例を示す図である。以下、この図２４を参照しながら共有ラベルの一括割付関連付け処理について説明する。図２３のようにシステム構成が設定された後、図１０のステップＳ１２でラベルの編集が行われる。ラベルは、ＣＰＵ１の制御プログラム（以下、プログラムＣＰＵ１という）でのみ使用するラベルも、ＣＰＵ２の制御プログラム（以下、プログラムＣＰＵ２という）でのみ使用するラベルも、ＣＰＵ１−ＣＰＵ２間でやりとりするデータのラベルも、同じラベル編集にて作成されるものとする。これにより、ＣＰＵ１とＣＰＵ２とでやりとりするデータのラベルに対して、同じラベル名で扱うことが可能である。このとき、ラベルテーブルが生成される。ここでは、図２４のラベルテーブル１１０に示されるように、「ＬａｂｅｌＡ」〜「ＬａｂｅｌＨ」までの８個のラベルが作成されたものとする。
【００８１】
さらに、図１０のステップＳ１３でプログラムの編集が行われる。このとき、ＣＰＵ１で動作するプログラムと、ＣＰＵ２で動作するプログラムを、それぞれ作成する。このとき、システム構成のどのＣＰＵで実行されるかを指定して、プログラムを作成する。すなわち、プログラムＣＰＵ１はシステム構成のＣＰＵ１で実行されるように指定し、プログラムＣＰＵ２はシステム構成のＣＰＵ２で実行されるように指定する。また、プログラムＣＰＵ１を記述する際にも、プログラムＣＰＵ２を記述する際にも、同じラベルテーブルを参照する。これにより、ＣＰＵ１とＣＰＵ２とでやりとりするデータのラベルに対して、同じラベル名で扱うことが可能となる。図２４に、作成されたラダープログラムの一例が示されている。この図に示されるように、ステップＳ１２で作成されたラベルを用いて、２つのＣＰＵ１、ＣＰＵ２のラダープログラム（プログラムＣＰＵ１、プログラムＣＰＵ２）が作成されている。
【００８２】
以上の制御システムを構成するそれぞれのＣＰＵを制御する制御プログラムのプログラミングが完了した後、図１０のステップＳ１４でのラベルを実デバイスへ関連付ける処理を行う。このラベルを実デバイスへ関連付ける処理は、実施の形態１の図１５で説明した処理とほぼ同様であるが、この実施の形態２では、共有リフレッシュデバイスを用いるので、ステップＳ３４のネットワーク一括割付関連付け処理Ｄではなく、ステップＳ３５のマルチＣＰＵ一括割付関連付け処理Ｅが実行されることになる。そのため、以下では、実施の形態１と同様の部分については説明を簡略化し、実施の形態１と異なる部分について詳細に説明する。
【００８３】
まず、ラベル−デバイス関連付け処理部１６は、プログラミングにおけるラベルの使用を判定して、複数のＣＰＵ間で共有するデバイスへ関連付けられる共有ラベルであるか否かを判定し、その結果、共有ラベルの場合には、複数のＣＰＵのうちどのＣＰＵが書込み、どのＣＰＵが読出しているかを判定する。その結果が図２４の共有ラベル書込み／読出し情報１１３に示されている。その後、共有ラベルについて、複数のＣＰＵがネットワーク構成を有しているのか、それとも一つのベースユニット上に接続されたマルチＣＰＵ構成を有しているのかを、システム構成から判定し、共有ラベルをリンクデバイス関連付けラベルテーブル１１４または共有リフレッシュデバイス関連付けラベルテーブル１１５に分類する。なお、ここでは、全て共有リフレッシュデバイス関連付けラベルテーブル１１５に分類され、リンクデバイス関連付けラベルテーブル１１４には何も分類されない（図１５のステップＳ３１〜Ｓ３３）。
【００８４】
（マルチＣＰＵ一括割付関連付処理Ｅ）
図１５のステップＳ３３では、共有ラベルが共有リフレッシュデバイス関連付けラベルテーブルに分類されるので、その後、ステップＳ３５のマルチＣＰＵ一括割付関連付け処理Ｅが実行される。この共有リフレッシュデバイスに関連付けされるラベルのデバイスへの関連付けを同時一括で行うマルチＣＰＵ一括割付関連付処理Ｅについて、図２５のフローチャートを参照しながら説明する。まず、共有リフレッシュデバイス関連付けラベルテーブル中の各ＣＰＵユニットが書込むラベルを集めてそのＣＰＵユニットごとに順に並べる（ステップＳ２０１）。この並べ替えた共有リフレッシュデバイス関連付けラベルテーブルを、ＣＰＵ書込ラベル分類テーブルとする。制御システムが２つのＣＰＵ１、ＣＰＵ２からなる場合には、ＣＰＵ１が書込むラベルを集めて順に並べ、またＣＰＵ２が書込むラベルも集めて順に並べる。
【００８５】
ついで、作成したＣＰＵ書込みラベル分類テーブルを用いて、それぞれのＣＰＵが書込むラベルの数から共有リフレッシュデバイスの割付を決定する（ステップＳ２０２）。ＣＰＵが２つの場合には、ＣＰＵ１が書込むラベルの数とＣＰＵ２が書込むラベルの数から共有リフレッシュデバイスの割付を決定する。
【００８６】
その後、各ＣＰＵユニットが書込むラベルの先頭を、ステップＳ２０２で割付けたそのＣＰＵユニットが書込む共有リフレッシュデバイスの先頭に関連付け、以下、ステップＳ２０１でラベルを並べた順にラベルと共有リフレッシュデバイスとの関連付けを行う（ステップＳ２０３）。ＣＰＵが２つの場合には、ＣＰＵ１が書込むラベルの先頭を、ステップＳ２０２で割付けたＣＰＵ１が書込む共有リフレッシュデバイスの先頭に関連付け、以下、ステップＳ２０１で並べたラベルの順にラベルと共有リフレッシュデバイスとの関連付けを行う。ＣＰＵ２が書込むラベルについても同様に行う。以上により、マルチＣＰＵ一括割付関連付処理Ｅが終了し、図１５に戻る。なお、このマルチＣＰＵ一括割付関連付け処理Ｅを行う処理部を、請求の範囲では、デバイス一括割付関連付け処理手段としている。
【００８７】
図２６は、マルチＣＰＵ一括割付関連付け処理Ｅの具体的な手順を示す図である。なお、この図２６には、図２５の各処理と対応する位置にステップ番号を付している。まず、共有リフレッシュデバイス関連付けラベルテーブル１１５について、共有リフレッシュデバイスを割付ける処理と、共有ラベルを共有リフレッシュデバイスへ関連付ける処理を行うために必要な前処理として、ＣＰＵが書込むラベルを集めて順に並べたＣＰＵ書込ラベル分類テーブル１１７を作成する。図２６に示されるように、ＣＰＵ１が書込むラベルと、ＣＰＵ２が書込むラベルとが分類される（ステップＳ２０１）。
【００８８】
ついで、ＣＰＵ書込ラベル分類テーブル１１７のＣＰＵ順に並べた結果を利用して、ＣＰＵごとにそれぞれ何点データを書込むかを抽出し、その点数で共有リフレッシュデバイスを各ＣＰＵでそれぞれ割付ける。ＣＰＵ１は２点データを書込むので、２点必要である。しかし、共有リフレッシュデバイスは１６点単位で割付けるというシステム制約があるので、１６点に切り上げる。その結果、ＣＰＵ１が書込む共有リフレッシュデバイスとして１６点を、ＣＰＵ１においてはＭ００〜Ｍ０Ｆとして割付ける。また、ＣＰＵ２は２点データを書込むので、同様に１６点に切り上げてから、ＣＰＵ２が書込む共有リフレッシュデバイスとして１６点を、ＣＰＵ１が書込む共有リフレッシュデバイスの続きのアドレスから始まるＭ１０〜Ｍ１Ｆとして割付ける。
【００８９】
ＣＰＵ２においてもＣＰＵ１で割付けた点数と同様の点数を用いて共有リフレッシュデバイスを割付けるが、割付け先アドレスは、ＣＰＵ１と同じであってもよいし、ＣＰＵ１と同じでなくてもよい。この例で、ＣＰＵ２においては、ＣＰＵ１が書込む共有リフレッシュデバイスとして１６点を、Ｍ２０〜Ｍ２Ｆとして割付け、ＣＰＵ２が書込む共有リフレッシュデバイスとして１６点をＣＰＵ１が書込む共有リフレッシュデバイスの続きのアドレスから始まるＭ３０〜Ｍ３Ｆとして割付ける（ステップＳ２０２）。
【００９０】
なお、ラベル関連付け処理Ｆは、このマルチＣＰＵ一括割付関連付け処理Ｅの後に行われるので、特に共有リフレッシュデバイスとして割付ける先頭アドレスに指定がない場合には、ＣＰＵ１とＣＰＵ２とでは同じアドレスＭ００から自動的に割付ければよく、ラベル関連付け処理Ｆでは、それ以外のアドレスにラベルを関連付けるようにすればよい。
【００９１】
また、上述した説明では、共有リフレッシュデバイスは１６点単位で割付けるというシステム制約がある場合を説明したが、３２点単位で割付けるシステム制約がある場合には、ＣＰＵが書込むデータが３２点未満の場合には３２点に切り上げる。また、他の点単位で割付ける場合も、同様の処理を行う。
【００９２】
その後、ＣＰＵ１においては、割付結果であるＣＰＵ１の書込む共有リフレッシュデバイスの先頭アドレスＭ００と、ＣＰＵ書込ラベル分類テーブル１１７の並べかえた結果であるＣＰＵ１の書込む先頭ラベルＬａｂｅｌＡとを関連付け、以下順に共有リフレッシュデバイスのアドレスＭ０１とラベルＬａｂｅｌＧとを関連付ける。また、ステップＳ２０２で割付けたＣＰＵ２の書込む共有リフレッシュデバイスの先頭アドレスＭ１０と、ＣＰＵ書込ラベル分類テーブル１１７中のＣＰＵ２の書込む先頭ラベルＬａｂｅｌＤとを関連付け、以下順に共有リフレッシュデバイスのアドレスＭ１１とラベルＬａｂｅｌＦとを関連付ける。ＣＰＵ２においても、同様の処理で関連付ける。すなわち、ステップＳ２０２の割付結果であるＣＰＵ１の書込む共有リフレッシュデバイスの先頭アドレスＭ２０と、ＣＰＵ書込ラベル分類テーブル１１７の並べかえた結果であるＣＰＵ１の書込む先頭ラベルＬａｂｅｌＡとを関連付け、以下順に共有リフレッシュデバイスのアドレスＭ２１とラベルＬａｂｅｌＧとを関連付ける。また、ステップＳ２０２で割付けたＣＰＵ２の書込む共有リフレッシュデバイスの先頭アドレスＭ３０と、ＣＰＵ書込ラベル分類テーブル１１７中のＣＰＵ２の書込む先頭ラベルＬａｂｅｌＤとを関連付け、以下順に共有リフレッシュデバイスのアドレスＭ３１とラベルＬａｂｅｌＦとを関連付ける。
【００９３】
共有リフレッシュデバイスの割付設定は各ＣＰＵで同じ点数の設定を用いる必要があるが、割付け先のアドレスは各ＣＰＵでそれぞれ設定すればよいので、各ＣＰＵにおけるコンパイルにおいては、上述のような処理によって設定された共有リフレッシュデバイスの割付設定を使用する。
【００９４】
その後のラベル関連付け処理Ｆは、従来の技術で説明したラベル名とデバイスのアドレスとの関連付けであり、共有ラベル以外のラベルに対して、従来と同様の方法でラベル名とデバイスのアドレスとの関連付けを行う。マルチＣＰＵ一括割付関連付け処理Ｅで既にラベルを関連付けたデバイス以外のデバイスに対して関連付けを行えばよい。
【００９５】
以上により、全てのラベルを実デバイスへ関連付ける作業が完了したので、プログラムＣＰＵ１もプログラムＣＰＵ２も実機のＣＰＵ１とＣＰＵ２へダウンロードするための図１０のステップＳ１５のコンパイル処理を行うことが可能となる。なお、上述した説明では、２つのＣＰＵユニットがベースユニット上に装着された例を挙げて説明したが、これに限られず、複数台のＣＰＵユニットがベースユニット上に装着される場合にも同様に適用することができる。
【００９６】
この実施の形態２によれば、マルチＣＰＵ間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能で、かつ、そのラベルの共有リフレッシュデバイスへの関連付けや、共有リフレッシュデバイスの割付作業が自動で行われるので、マルチＣＰＵ間で同じラベル名を用いたプログラム作成を行うことによる装置開発の効率化を実現することができるという効果を有する。また、これらＣＰＵ間でのデータのやり取りが共有リフレッシュデバイスの機能により高速に行われる装置の開発も実現可能となる。
【００９７】
実施の形態３．
この実施の形態３では、２台のＣＰＵからなるマルチＣＰＵ型の制御システムを構築する場合で、その一方のＣＰＵがモーションＣＰＵである場合の図１５のフローチャートにおける判定処理Ｂについて説明する。プログラム記述言語がラダー言語ではなくモーション特有のメカ言語の場合、ラダー言語の場合のように、どのＰＬＣ（ＣＰＵ）が書込み、どのＰＬＣ（ＣＰＵ）が読出すかを一意に決めることができない。そこで、メカ言語の要素ごとにそれぞれ、どの値を参照するかを指定する項目を予め設定しておく必要があり、ここにデバイスアドレスまたはラベルを設定する。
【００９８】
図２７は、制御システムの実施の形態３の構成の一例を示す図であり、図２８−１〜図２８−５は、図２７の各メカ要素のパラメータの一例を示す図である。図２７に示されるように、この制御システムは、ギヤ、仮想サーボモータ、クラッチ、回転テーブルおよびボールネジによって構成されており、図２８−１〜図２８−５はそれぞれのパラメータを示している。
【００９９】
たとえば、図２８−１のギヤの場合には、「ギヤ比」の「入力軸歯車数」と「出力軸歯車数」をラベル参照として設定可能で、読出しデータ属性とされる。図２８−２の仮想サーボモータの場合には、デバイス指定できるパラメータがない。図２８−３のクラッチの場合には、「クラッチＯＮ／ＯＦＦ」をラベル参照として設定可能で、読出しデータ属性とされる。図２８−４の回転テーブルの場合には、「仮想軸１回転内現在値格納デバイス」をラベル参照として設定可能で、書込みデータ属性とされる。図２８−５のボールネジの場合には、「トルク制限」をラベル参照として設定可能で、読出しデータ属性とされる。
【０１００】
図２９は、図２８−１〜図２８−５の各メカ要素のパラメータの書込データと読出データの一覧であるメカ要素属性情報の一例を示す図である。このメカ要素属性情報に示されるように、メカ要素ごとにラベル参照として設定可能な項目と、それぞれが書込みか読出しかの属性を一覧として保持する。この図２９には、図２８−１〜図２８−５で説明した内容が記載されている。
【０１０１】
実施の形態１〜２の判定処理Ｂにおいて、ラダー言語で記述された制御プログラムでは、接点記号なら書込み、コイル記号なら読出し、と一律に判定していたが、メカ言語の場合には、図２９のようなメカ要素属性情報を参照して判定することになる。
【０１０２】
たとえば、ラベルがクラッチのＯＮ／ＯＦＦパラメータで用いられている場合には、図２９のメカ要素属性情報を参照すると、このラベルはメカ言語においては読出しである。また、ラベルが回転テーブルの１回転内現在値で用いられている場合には、同様に、このラベルがメカ言語においては書き出しである。このように、メカ要素ごとにラベルを参照して読出しか書き出しかを定めた図２９に示されるようなメカ要素属性情報を予め定めておき、このメカ要素属性情報に基づいてそのラベルが書込データか読出データかを判定することが可能となる。
【０１０３】
なお、その他の処理は、実施の形態１〜２で説明したものと同様であるので、その説明を省略する。
【０１０４】
この実施の形態３によれば、各メカ要素について、ラベル参照として設定可能な項目とそれが書込みか読出しかの属性を記憶したメカ要素属性情報を用いて、どのＣＰＵが書込み、どのＣＰＵが読出すのかを判定するようにしたので、制御プログラムがモーション特有のメカ言語で記述されている場合でも、そのラベルの共有リフレッシュデバイスへの関連付けや、共有リフレッシュデバイスの割付作業を自動に行うことができるという効果を有する。その結果、マルチＣＰＵ間で同じラベル名を用いたプログラム作成を行うことによる装置開発の効率化を実現することができる。また、それらＣＰＵ間でデータのやり取りが共有リフレッシュデバイスの機能により高速に行われる装置の開発も実現可能となる。
【０１０５】
実施の形態４．
この実施の形態４では、ネットワークで構成される２台のＰＬＣを用いて１つの制御システムを構築する際に、２台のＰＬＣの制御プログラムを開発する場合について、特にラベルテーブルを共有ラベルと、そうでないラベル（非共有ラベル）と、に分けて管理する場合について、説明する。
【０１０６】
図３０は、管理ツールにおけるラベルの管理方法の一例を示す図である。この例では、開発ツール１０Ａのツリービュー２１では、システム構成、共有ラベル、プログラムという形で管理を行い、プログラムでは、そのプログラムのみで使用するラベルと、プログラムとを管理する形となっている。
【０１０７】
たとえば、図に示されるように、２つのＰＬＣ１、ＰＬＣ２がネットワークで接続されて制御システムが構成される場合には、プログラムとして、ＰＬＣ１で動作する制御プログラム（以下、プログラムＰＬＣ１という）と、ＰＬＣ２で動作する制御プログラム（以下、プログラムＰＬＣ２という）とが作成される。これらのプログラムは、システム構成のどのＰＬＣで実行されるかを指定する。すなわち、プログラムＰＬＣ１はシステム構成のＰＬＣ１で実行されるように指定し、プログラムＰＬＣ２はシステム構成のＰＬＣ２で実行されるように指定する。
【０１０８】
ラベルは、プログラムＰＬＣ１でのみ使用するラベル、プログラムＰＬＣ２でのみ使用するラベル、ＰＬＣ１−ＰＬＣ２間でやりとりするデータの共有ラベルを、それぞれ別のラベルテーブルにて作成する。この図２９の例では、共有ラベル以外のラベルテーブルは、プログラムに付随させる形態で管理している。この場合には、プログラムはどのＰＬＣで実行されるか指定されるので、ラベルテーブルもどのＰＬＣに関連付けられるかが一意に決まる。
【０１０９】
図３１は、管理ツールにおけるラベルの管理方法の他の例を示す図である。この例では、開発ツール１０Ａのツリービュー２１では、システム構成、ラベル、プログラムという形で管理を行い、ラベルの下位には、さらに共有ラベルと、それぞれのＰＬＣ（ＣＰＵ）で使用されるラベルと、が存在し、ラベルテーブルごとにその属性を保持する形態で管理している。
【０１１０】
このように、２つのＰＬＣ１、ＰＬＣ２がネットワークで接続されて制御システムが構成される場合には、各ラベルテーブルが共有ラベルであるか、またはどのＰＬＣ１、ＰＬＣ２に関連付けられるかを、ラベルテーブルごとの属性として指定する。
【０１１１】
ＰＬＣ１の制御プログラムであるプログラムＰＬＣ１を記述する際には、プログラムＰＬＣ１でのみ使用するラベルテーブルと、ＰＬＣ間でやりとりするデータの共有ラベルを参照する。また、ＰＬＣ２の制御プログラムであるプログラムＰＬＣ２を記述する際には、プログラムＰＬＣ２でのみ使用するラベルテーブルと、ＰＬＣ間でやりとりするデータの共有ラベルを参照する。これにより、ＰＬＣ１とＰＬＣ２とでやりとりするデータのラベルに対して、同じラベル名で扱うことが可能であるとともに、プログラムＰＬＣ１でのみ使用するラベルと、プログラムＰＬＣ２でのみ使用するラベルとが、同じラベル名であったとしても、それぞれ別のものとして扱われることになる。
【０１１２】
以上のように、共有ラベルとそうでないラベル（非共有ラベル）のラベルテーブルを分けて管理した場合のＰＬＣのプログラミングが完了すると、ラベルを実デバイスへ関連付ける処理が行われる。このように、共有ラベルと非共有ラベルとを分けて予め作成しておく場合には、実施の形態１の図１５のフローチャートにおいて、共有ラベルテーブルにあるラベルを共有ラベルと判定するので、判定処理Ａは不要となる。その結果、共有ラベルであるか否かがプログラム設計から明確にする必要があるが、判定処理Ｂ以下を行って、一括割付関連付処理を行うので、コンパイル処理が早くなる。なお、上述した説明では、リンク型の制御システムについて説明したが、マルチＣＰＵ型の制御システムでも同様に処理することができる。
【０１１３】
この実施の形態４によれば、実施の形態１〜３の効果に加えて、ＰＬＣ間でのデータのやり取りに対してまたはマルチＣＰＵ間でのデータのやり取りに対して、予めラベルを複数のＰＬＣ間またはＣＰＵ間で使用する共有ラベルと、各ＰＬＣまたはＣＰＵでのみ使用する非共有ラベルとを予め分けているので、そのラベルのリンクデバイスへの関連付けやリンクデバイスの割付作業、またはそのラベルの共有リフレッシュデバイスへの関連付けや共有リフレッシュデバイスの割付作業が、実施の形態１〜３に比べて短時間に行うことができるという効果を有する。
【０１１４】
実施の形態５．
この実施の形態５では、ネットワークで構成される２台のＰＬＣを用いて制御システムを構築し、その２台のＰＬＣの制御プログラムを開発する際に、ラベルテーブルを共有ラベルと非共有ラベルとを分けて管理し、かつ各ラベルに対してどのＰＬＣが書込み、どのＰＬＣが読出すのかを指定してから、ラベルのデバイスへの一括割付関連付け処理を行う場合について説明する。
【０１１５】
実施の形態４では、共有ラベルと非共有ラベルとを予め分けて管理していたが、この実施の形態５では、さらにこの共有ラベルの編集において、各ラベルに対してどのＰＬＣが書込み、どのＰＬＣが読出すのかについても指定した共有ラベル書込み／読出し情報を予め作成しておく。図３２は、実施の形態５の共有ラベル書込み／読出し情報の一例を示す図である。
【０１１６】
以上のように、共有ラベルと非共有ラベルのラベルテーブルを分けて、さらに共有ラベルの各ラベルに対してどのＰＬＣが書込み、どのＰＬＣが読出すのかを指定した共有ラベル書込み／読出し情報を予め用意した場合のＰＬＣのプログラミングが完了すると、ラベルを実デバイスへ関連付ける処理が行われる。この場合には、実施の形態１の図１５のフローチャートにおいて、共有ラベルテーブルにあるラベルを共有ラベルと判定するので、判定処理Ａは不要となり、また、共有ラベルテーブルの各ラベルについて、どのＰＬＣ（ＣＰＵ）が書込み、どのＰＬＣ（ＣＰＵ）が読出しているのかも指定されているので、判定処理Ｂも不要となる。その結果、どのＰＬＣ（ＣＰＵ）が書込む共有ラベルであるか否かがプログラム設計から明確にする必要があるが、判定処理Ｃ以下のみを行って、一括割付関連付処理を行うので、コンパイル処理が早くなる。
【０１１７】
この実施の形態５によれば、実施の形態４の効果に加えて、共有ラベルの各ラベルについて、どのＰＬＣ（ＣＰＵ）が書込み、どのＰＬＣ（ＣＰＵ）が読出すのかを指定して管理しているので、そのラベルのリンクデバイスへの関連付けやリンクデバイスの割付作業、またはそのラベルの共有リフレッシュデバイスへの関連付けや共有リフレッシュデバイスの割付作業が、実施の形態１〜４に比べて短時間に行うことができるという効果を有する。
【０１１８】
なお、上述したプログラム作成支援方法は、その処理手順を書込んだプログラムを、ＣＰＵ（中央演算処理装置）を有するパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。この場合、コンピュータのＣＰＵ（制御手段）が、プログラムにしたがって、上述したプログラム作成支援方法の各処理工程を実行することになる。これらのプログラムは、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ（Compact  Disk）−ＲＯＭ（Read  Only  Memory）、ＭＯ（Magneto-Optical  disk）、ＤＶＤ（Digital  Versatile  DiskまたはDigital  Video  Disk）などのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、これらのプログラムは、インタネットなどのネットワーク（通信回線）を介して配布することもできる。
【産業上の利用可能性】
【０１１９】
以上のように、本発明にかかるプログラム作成支援装置は、複数のＰＬＣやＣＰＵなどの制御装置が一つの制御システムを構成する場合の制御プログラムの作成に有用である。
【図面の簡単な説明】
【０１２０】
【図１−１】図１−１は、リンク型の制御システムの構成の一例と、そのリンクデバイスを模式的に示す図である。
【図１−２】図１−２は、図１−１の制御システムのＰＬＣにおけるリンクデバイスの内容の一例を示す図である。
【図２】図２は、マルチＣＰＵ型の制御システムの構成を模式的に示す図である。
【図３−１】図３−１は、マルチＣＰＵ型の制御システムの共有リフレッシュデバイスを模式的に示す図である。
【図３−２】図３−２は、図３−１の制御システムのＰＬＣにおける共有リフレッシュデバイスの設定の一例を示す図である。
【図４】図４は、従来の制御プログラムの一例を示す図である。
【図５】図５は、ラベルを用いた制御プログラムの一例を示す図である。
【図６】図６は、リンク型の制御システムにおけるラベルの割付と、リンクデバイスへの割付の一例を示す図である。
【図７】図７は、マルチＣＰＵ型制御システムにおけるラベルの割付と、共有リフレッシュデバイスへの割付の一例を示す図である。
【図８】図８は、プログラム作成支援装置の機能構成を模式的に示すブロック図である。
【図９】図９は、このプログラム作成支援装置を実現する開発ツールの表示画面上の構成を模式的に示す図である。
【図１０】図１０は、プログラミングの手順の一例を示すフローチャートである。
【図１１−１】図１１−１は、ラベルを実デバイスへ関連付ける作業をラベル編集ツールで行う場合を示す図である。
【図１１−２】図１１−２は、ラベルを実デバイスへ関連付ける作業を別のツールを設けて行う場合を示す図である。
【図１２】図１２は、システム構成が設定された開発ツールの表示画面上の構成の一例を模式的に示す図である。
【図１３】図１３は、作成されたラベルテーブルの一例を示す図である。
【図１４】図１４は、作成されたラダープログラムの一例を示す図である。
【図１５】図１５は、ラベルを実デバイスへ関連付ける処理手順の一例を示すフローチャートである。
【図１６】図１６は、判定処理Ａの手順を示すフローチャートである。
【図１７】図１７は、共有ラベルテーブルと非共有ラベルテーブルの一例を示す図である。
【図１８】図１８は、判定処理Ｂの手順を示すフローチャートである。
【図１９】図１９は、共有ラベル書込み／読出し情報の一例を示す図である。
【図２０】図２０は、リンクデバイス関連付けラベルテーブルと共有リフレッシュデバイス関連付けラベルテーブルの一例を示す図である。
【図２１】図２１は、ネットワーク一括割付関連付処理Ｄの手順を示すフローチャートである。
【図２２】図２２は、ネットワーク一括割付関連付け処理Ｄの具体的な手順を示す図である。
【図２３】図２３は、システム構成が設定された開発ツールの表示画面上の構成の一例を模式的に示す図である。
【図２４】図２４は、マルチＣＰＵ型の制御システムにおける共有ラベルの一括割付関連付け処理の手順の具体例を示す図である。
【図２５】図２５は、マルチＣＰＵ一括割付関連付処理Ｅの手順を示すフローチャートである。
【図２６】図２６は、マルチＣＰＵ一括割付関連付け処理Ｅの具体的な手順を示す図である。
【図２７】図２７は、制御システムの実施の形態３の構成の一例を示す図である。
【図２８−１】図２８−１は、図２７の各メカ要素のパラメータの一例を示す図である。
【図２８−２】図２８−２は、図２７の各メカ要素のパラメータの一例を示す図である。
【図２８−３】図２８−３は、図２７の各メカ要素のパラメータの一例を示す図である。
【図２８−４】図２８−４は、図２７の各メカ要素のパラメータの一例を示す図である。
【図２８−５】図２８−５は、図２７の各メカ要素のパラメータの一例を示す図である。
【図２９】図２９は、図２８−１〜図２８−５の各メカ要素についてのメカ要素属性情報の一例を示す図である。
【図３０】図３０は、管理ツールにおけるラベルの管理方法の一例を示す図である。
【図３１】図３１は、管理ツールにおけるラベルの管理方法の他の例を示す図である。
【図３２】図３２は、実施の形態５の共有ラベル書込み／読出し情報の一例を示す図である。
【符号の説明】
【０１２１】
１０  プログラム作成支援装置
１０Ａ  開発ツール
１１  表示部
１２  入力部
１３  システム構成設定部
１４  ラベル設定部
１５  プログラム設定部
１６  ラベル−デバイス関連付け処理部
１７  コンパイル処理部
１８  表示処理部
１９  制御部
２１  ツリービュー
２２  システム構成
２２Ａ  システム構成編集ツール
２３  ラベル
２３Ａ，２３Ｂ  ラベル編集ツール
２４  プログラム
２４Ａ  プログラム編集ツール
２５  ハードルエア構成
２６  ラベル関連付け
２６Ａ  ラベル−デバイス関連付けツール
【図１−１】
0004541437.tif 000002
【図１−２】
0004541437.tif 000003
【図２】
0004541437.tif 000004
【図３−１】
0004541437.tif 000005
【図３−２】
0004541437.tif 000006
【図４】
0004541437.tif 000007
【図５】
0004541437.tif 000008
【図６】
0004541437.tif 000009
【図７】
0004541437.tif 000010
【図８】
0004541437.tif 000011
【図９】
0004541437.tif 000012
【図１０】
0004541437.tif 000013
【図１１−１】
0004541437.tif 000014
【図１１−２】
0004541437.tif 000015
【図１２】
0004541437.tif 000016
【図１３】
0004541437.tif 000017
【図１４】
0004541437.tif 000018
【図１５】
0004541437.tif 000019
【図１６】
0004541437.tif 000020
【図１７】
0004541437.tif 000021
【図１８】
0004541437.tif 000022
【図１９】
0004541437.tif 000023
【図２０】
0004541437.tif 000024
【図２１】
0004541437.tif 000025
【図２２】
0004541437.tif 000026
【図２３】
0004541437.tif 000027
【図２４】
0004541437.tif 000028
【図２５】
0004541437.tif 000029
【図２６】
0004541437.tif 000030
【図２７】
0004541437.tif 000031
【図２８−１】
0004541437.tif 000032
【図２８−２】
0004541437.tif 000033
【図２８−３】
0004541437.tif 000034
【図２８−４】
0004541437.tif 000035
【図２８−５】
0004541437.tif 000036
【図２９】
0004541437.tif 000037
【図３０】
0004541437.tif 000038
【図３１】
0004541437.tif 000039
【図３２】
0004541437.tif 000040