(57)【特許請求の範囲】
【請求項１】
設定された周期でデータ更新する複数のネットワークにそれぞれ接続される複数のノードと、
前記複数のノード間を通信路で接続するベースと、
一のネットワーク上の各ノードが定周期にデータを更新する第１の共有メモリ領域に格納されたデータを、他のネットワーク上の各ノードが定周期にデータを更新する第２の共有メモリ領域に転送するリンク間転送設定に基づいて、前記データを前記一のネットワークに接続されるノードから前記他のネットワークに接続されるノードに転送するリンク間転送制御手段と、
プログラムで使用されるメモリ領域に付されたラベルと、前記ラベルが、演算前にデータを格納する動作に割り当てられているか、または、前記ラベルが、演算後のデータの行き先となる動作に割り当てられているかを示しうるフラグ情報と、を有するラベル割付情報に基づいて、前記リンク間転送設定を生成するリンク間転送設定手段と、
を備えることを特徴とするデータ中継制御装置。
【請求項２】
前記リンク間転送設定手段は、前記一のネットワークの第１のラベル割付情報中の演算後のデータの行き先となる動作を示す書き込みフラグが付されたラベルと、前記他のネットワークの第２のラベル割付情報中の演算前にデータを格納する動作を示す読み込みフラグが付されたラベルと、が一致する場合に、前記書き込みフラグが付されたラベルを有する前記一のネットワークに接続されるノードを転送元とし、前記読み込みフラグが付されたラベルを有する前記他のネットワークに接続されるノードを転送先とする前記リンク間転送設定を生成することを特徴とする請求項１に記載のデータ中継制御装置。
【請求項３】
ノードを有する制御装置が複数接続され、設定された周期でデータ更新する複数のネットワークと、一の前記ネットワークに接続される第１のノードと他の前記ネットワークに接続される第２のノードとを有し、リンク間転送設定に基づいて前記一のネットワークと前記他のネットワークとの間でデータ転送するデータ中継制御装置と、を備える制御システムで前記データ中継制御装置による前記リンク間転送設定の生成を支援するリンク間転送設定支援装置であって、
前記制御装置で実行されるプログラムで使用されるラベルの名称、データ型および前記ラベルの有効範囲を示すクラスを定義するラベル定義と、前記ラベルに対応づけられたメモリ領域内の位置、および前記ラベルが、演算前にデータを格納する動作に割り当てられていることを示す読み込みフラグ、または、前記ラベルが、演算後のデータの行き先となる動作に割り当てられていることを示す書き込みフラグでありうるフラグを含むラベル割付情報と、を含むラベル定義情報を記憶するラベル定義情報記憶手段と、
前記ラベル定義情報を用いて作成されたプログラムを記憶するプログラム記憶手段と、
前記一のネットワークを構成する前記制御装置のプログラムで使用される前記ラベルのうち前記ラベル割付情報で前記書き込みフラグが付されているラベルに対して、前記一のネットワークを構成するすべての前記制御装置から見える共有メモリ領域の送信領域を割り当てる処理を、前記一のネットワーク内のすべての制御装置の前記書き込みフラグが付されているすべてのラベルについて行い、その後、各制御装置から見える共有メモリ領域毎に、当該制御装置以外の制御装置の前記書き込みフラグが付されているラベルに基づく送信領域を受信領域に変換することによって、ラベルを共有メモリ領域にマッピングして共有メモリ領域情報を生成する共有メモリ領域情報生成手段と、
前記ラベル定義情報、前記プログラムおよび前記共有メモリ領域情報をパラメータとして前記制御装置に書き込む書き込み手段と、
を備えることを特徴とするリンク間転送設定支援装置。
【請求項４】
ノードを有する制御装置が複数接続され、設定された周期でデータ更新する複数のネットワークと、一の前記ネットワークに接続される第１のノードと他の前記ネットワークに接続される第２のノードとを有し、リンク間転送設定に基づいて前記一のネットワークと前記他のネットワークとの間でデータ転送するデータ中継制御装置と、を備える制御システムで前記データ中継制御装置にて用いる前記リンク間転送設定を生成するリンク間転送設定方法であって、
前記制御システム内の前記制御装置または前記データ中継制御装置のいずれかにリンク間転送設定支援装置を接続し、前記制御システムを構成する前記各制御装置から、前記制御装置の構成を示すシステム構成を取得するシステム構成取得工程と、
前記システム構成に、ノード、プログラム、および前記ノードが属するネットワークで使用される共有メモリ領域を割り当ててシステム構成情報を生成するシステム構成情報生成工程と、
前記制御装置で実行されるプログラムで使用されるラベルと、メモリ領域内の位置と、を対応づけたラベル割付情報に、前記ラベルが演算前にデータを格納する動作に割り当てられている場合に読み込みフラグを付加し、演算後のデータの行き先となる動作に割り当てられている場合に書き込みフラグを付加するフラグ付加工程と、
一の前記ネットワークのラベル割付情報中のフラグが付されたラベルと、該ラベルのラベル名称とデータ型が一致する他の前記ネットワークのラベル割付情報中のラベルとを用いて、前記リンク間転送設定を生成するリンク間転送設定生成工程と、
を含むことを特徴とするリンク間転送設定方法。
【請求項５】
前記リンク間転送設定生成工程は、
前記一のネットワークのラベル割付情報中のフラグが付されたラベルを取得する工程と、
前記ラベルのラベル名称とデータ型が一致するラベルを前記他のネットワークのラベル割付情報から取得する工程と、
取得した前記ラベルのうち、書き込みフラグが付されているラベルを転送元に設定し、読み込みフラグが付されているラベルを転送先に設定して、前記リンク間転送設定を生成する工程と、
を含むことを特徴とする請求項４に記載のリンク間転送設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ中継制御装置、リンク間転送設定支援装置およびリンク間転送設定方法に関するものである。
【背景技術】
【０００２】
複数台の加工機や組立機などの装置を用いた製造システムでの装置の制御に、複数台のプログラマブルコントローラ（以下、ＰＬＣという）やプログラマブル表示器などのプログラムによって動作を制御するＦＡ（Factory  Automation）機器を用いた制御システムが構築される場合がある。このような制御システムでは、ＰＬＣ間をＦＡネットワークで接続し、サイクリック伝送によってデータのやり取りを行っている（たとえば、特許文献１参照）。ここで、サイクリック伝送とは、１つのネットワークで構成された複数の通信ノード間で、転送元から転送先へ定周期間隔でデータを更新することで、データを共有する伝送方式である。
【０００３】
サイクリック伝送は、共有メモリ方式の通信にて、同一のネットワークに接続された全ての通信ノードに同じメモリ構成である共有メモリ領域を有しており、全ての通信ノードが、各通信ノードから送信されたデータを、共有メモリ領域の予め定められたアドレス先へデータ転送することで実現する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２６５２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、共有メモリ方式のサイクリック伝送されているネットワークが複数存在し、１つのネットワーク上の通信ノードから別のネットワーク上の通信ノードへ共有メモリ領域のデータを転送するリンク間転送が要求される場合もある。このような場合には、一方のネットワークに接続される通信ノードと、他方のネットワークに接続される通信ノードと、を有する制御装置（以下、データ中継制御装置という）が設けられ、このデータ中継制御装置によってリンク間転送が実現される。しかし、従来では、このリンク間転送について開示されている技術はなく、転送元と転送先を予め定めたリンク間設定をシステムエンジニアが作成し、データ中継制御装置に設定する方法が一般的であった。
【０００６】
通常、１つのネットワークのサイクリック伝送しているデータを別のネットワークのサイクリック伝送している通信ノードにデータ転送する場合には、転送元の制御装置と転送先の制御装置は、それぞれ別のシステムエンジニアが複数グループに分かれて、同時に異なる場所でシステム構築し、最後にネットワークを構成する方式が採用されている。従来、システムエンジニアは、複数の通信ノードを有するデータ中継制御装置のリンク間転送設定において、リンク間転送設定に、転送元となるネットワークのサイクリック伝送のデータと転送先のサイクリック伝送のデータとを把握して、どのデータをリンク間転送するか設定していた。そのため、間違ったデータを転送したり、転送元や転送先の設定を間違ったりする可能性があった。
【０００７】
また、システムエンジニアのリンク間転送設定の誤りによって、制御装置が予期しない動作をしても、制御装置が実行するプログラムは正しいプログラムであるため、リンク間転送の設定ミスを発見するまでに、データをトレースする必要があった。
【０００８】
さらに、リンク間転送設定によって中継されたデータを使用している制御装置のシステム構成やプログラムをシステムエンジニアが変更するときに、複数ノードを有するデータ中継制御装置のリンク間転送設定を再設定しなければならず、システムエンジニアに負荷がかかってしまうという問題点もあった。
【０００９】
この発明は、上記に鑑みてなされたもので、共有メモリ方式のサイクリック伝送されているネットワークが複数存在する制御システムで、一つのネットワークの通信ノードから別のネットワークの通信ノードへ共有メモリ領域のデータを転送するリンク間転送の設定を人手によらず設定することができるデータ中継制御装置、リンク間転送設定支援装置およびリンク間転送設定方法を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、この発明にかかるデータ中継制御装置は、設定された周期でデータ更新する複数のネットワークにそれぞれ接続される複数のノードと、前記複数のノード間を通信路で接続するベースと、一のネットワーク上の各ノードが定周期にデータを更新する第１の共有メモリ領域に格納されたデータを、他のネットワーク上の各ノードが定周期にデータを更新する第２の共有メモリ領域に転送するリンク間転送設定に基づいて、前記データを前記一のネットワークに接続されるノードから前記他のネットワークに接続されるノードに転送するリンク間転送制御手段と、プログラムで使用されるメモリ領域に付されたラベルと、前記ラベルが、演算前にデータを格納する動作に割り当てられているか、または、前記ラベルが、演算後のデータの行き先となる動作に割り当てられているかを示しうるフラグ情報と、を有するラベル割付情報に基づいて、前記リンク間転送設定を生成するリンク間転送設定手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
この発明によれば、フラグが設定されたデータから複数のネットワーク間でデータ転送を行うリンク間設定情報を、複数のネットワーク間を接続する複数通信ノードを有するデータ中継制御装置が行うようにしたので、人手による設定時のように、制御装置が実行するプログラムは正しいが、リンク間転送されるデータが誤っているために、制御装置が予期しない動作をしてしまうことを防ぐことができるという効果を有する。
【図面の簡単な説明】
【００１２】
【図１】図１は、共有メモリ方式のサイクリック伝送の概念を模式的に示す図である。
【図２】図２は、ネットワーク範囲割付設定の一例を示す図である。
【図３】図３は、共有メモリ方式のサイクリック伝送されているネットワークが複数存在するシステム構成の一例を模式的に示す図である。
【図４】図４は、リンク間転送設定の一例を示す図である。
【図５】図５は、ラベル定義テーブルの一例を示す図である。
【図６】図６は、ラベル定義と関連付けしたネットワーク範囲割付設定の一例を示す図である。
【図７】図７は、ラベル定義と関連付けしたリンク間転送設定の一例を示す図である。
【図８】図８は、制御システムの構成の一例を示す図である。
【図９】図９は、リンク間転送設定支援装置のソフトウェア構成の一例を模式的に示す図である。
【図１０】図１０は、ラベル割付情報の一例を示す図である。
【図１１】図１１は、コンフィグレーションソフトウェアでのコンフィグレーション用データの生成手順の一例を示すフローチャートである。
【図１２】図１２は、システム構成情報の生成順序を模式的に示す図である。
【図１３】図１３は、各ステップでのシステム構成情報の一例を示す図である。
【図１４】図１４は、各制御装置のラベル定義とプログラムの一例を示す図である。
【図１５】図１５は、図１４のシステムラベルを含むプログラムのデータ処理の一例を示す図である。
【図１６】図１６は、プログラミングソフトウェアによって自動生成されたラベル割付情報の一例を示す図である。
【図１７】図１７は、システムラベルの送信領域への割り当て処理の手順の概要を模式的に示す図である。
【図１８】図１８は、共有メモリ領域へのシステムラベルの割り付けの一例を模式的に示す図である。
【図１９】図１９は、リンク間転送設定の自動生成処理の手順の一例を示すフローチャートである。
【図２０】図２０は、リンク間転送設定の一例を示す図である。
【図２１】図２１は、ネットワーク範囲割付設定の一例を示す図である。
【図２２】図２２は、データ中継制御装置によるリンク間転送の処理手順の流れを模式的に示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明の実施の形態にかかるデータ中継制御装置、リンク間転送設定支援装置およびリンク間転送設定方法を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、以下では、共有メモリ方式のサイクリック伝送と、共有メモリ方式のサイクリック伝送を行っている複数のネットワーク間でのデータ転送と、を説明した後、実施の形態について説明する。
【００１４】
サイクリック伝送とは、１つのネットワークで構成された複数ノード間で、転送元から転送先へ定周期間隔でデータを更新することで、データを共有する伝送方式である。サイクリック伝送は、共有メモリ方式の通信にて、同一のネットワークに接続された全てのノードに同じメモリ構成である共有メモリ領域を有しており、全てのノードが、各ノードから送信されたデータを、共有メモリ領域の予め定められたアドレス先へデータ転送することで実現される。
【００１５】
図１は、共有メモリ方式のサイクリック伝送の概念を模式的に示す図である。ネットワーク１００には、複数のノード１１０，１２０，１３０が接続されている。各ノード１１０，１２０，１３０は、共有メモリ領域１１１，１２１，１３１を有している。ノード１１０が他のノード１２０，１３０に送信するデータを共有メモリ領域１１１の送信領域１１２に格納すると、ノード１１０は、ネットワーク１００へ一定周期にデータを送信する。ノード１２０は、ネットワーク１００からデータを受信すると共有メモリ領域１２１の受信領域１２２にノード１１０が送信したデータ１１３を格納する。同様に、ノード１３０も受信したデータ１２３を受信領域１３２に格納する。その結果、ノード１１０の送信データ１１３がノード１２０とノード１３０に伝送されることになる。同様にして、ノード１２０，１３０の送信データも他のノードに伝送される。
【００１６】
共有メモリ方式のサイクリック伝送では、同一ネットワーク上の全てのノードについて、共有メモリ領域の送信領域を予め定めたネットワーク範囲割付設定を有しており、一つのネットワークに対して、ネットワーク範囲割付設定は一つである。同一ネットワーク上の全ノードは、ネットワーク範囲割付設定をもとに、他ノードから受信したデータを自身が有する共有メモリ領域の受信領域に格納する。
【００１７】
図２は、ネットワーク範囲割付設定の一例を示す図である。ネットワーク範囲割付設定は、同一ネットワーク上の各ノードの識別子であるノード番号と、ノード番号に対応するノードの共有メモリ領域の送信領域の先頭アドレスを示す共有メモリ領域先頭アドレスと、ノード番号に対応するノードの共有メモリ領域の送信領域のサイズを示すサイズと、を含む。
【００１８】
共有メモリ方式でサイクリック伝送されているネットワークが複数存在するシステム構成の場合において、１つのネットワーク上のノードから別のネットワーク上のノードへデータを転送することを、この明細書ではリンク間転送と定義する。リンク間転送は、転送元と転送先を予め定めたリンク間転送設定を有し、複数のノードを有する制御装置（データ中継制御装置）で実現される。
【００１９】
図３は、共有メモリ方式のサイクリック伝送されているネットワークが複数存在するシステム構成の一例を模式的に示す図である。ここでは、制御装置５００，５１０と複数ノード５２１，５２２を有するデータ中継制御装置５２０とが、１つのネットワーク５４０で接続され、制御装置５３０と複数ノード５２１，５２２を有するデータ中継制御装置５２０とがネットワーク５４０とは別のネットワーク５５０で接続された構成を有する。各制御装置５００，５１０，５３０は、それぞれノード５０１，５１１，５３１を有する。また、データ中継制御装置５２０は、複数のノード５２１，５２２を有する。つまり、データ中継制御装置５２０のノード５２１には、ネットワーク５４０が接続され、ノード５２２にはネットワーク５５０が接続されている。データ中継制御装置５２０における複数のノード５３１，５２２間は、たとえばバス接続されており、リンク間転送設定５２３に基づいてデータ転送がなされる。
【００２０】
図４は、リンク間転送設定の一例を示す図である。リンク間転送設定は、データの転送元となるノードを示す転送元と、データの転送先となるノードを示す転送先と、転送元となるノードのデータの共有メモリ領域の格納先の先頭アドレスを示す転送元共有メモリ領域先頭アドレスと、転送先となるノードのデータの共有メモリ領域の格納先の先頭アドレスを示す転送先共有メモリ領域先頭アドレスと、転送するデータを格納する共有メモリ領域の大きさを示すサイズと、を含む。
【００２１】
複数ノードを有するデータ中継制御装置５２０は、たとえば図４のリンク間転送設定を基に、転送元のノード５２１の共有メモリ領域に格納されたデータを、転送先のノード５２２の共有メモリ領域に転送することで、リンク間転送を実現する。
【００２２】
図３でノードを有する制御装置として、プログラマブルコントローラやプログラマブル表示器などプログラムによって動作を制御するＦＡ機器を挙げることができる。プログラムには、アドレス指定方式とラベル割付方式とがある。アドレス指定方式は、システムエンジニアがデータを格納するメモリアドレスを直接指定して表記するものである。一方のラベル割付方式は、データに任意のラベル名称、データ型、クラスをラベル情報として宣言し、ラベル情報から、ラベル名称、サイズ、メモリ領域の先頭アドレスに関連付けたテーブルを制御装置に設け、制御装置のデータを格納するメモリアドレスをラベル名称で間接的に指定して表記するものである。
【００２３】
図５は、ラベル定義テーブルの一例を示す図であり、（ａ）は、ラベル定義の一例を示す図であり、（ｂ）は、ラベル割付情報の一例を示す図である。図５（ａ）に示されるように、ラベル定義は、ラベル名称、データ型、クラスを含む。ラベル名称は、システムエンジニアが任意に作成したラベルの名称を示す。データ型は、ＢＯＯＬ型、ＷＯＲＤ型、構造体などや２進、１０進などのデータ種別とデータサイズを示す。クラスは、制御装置内で有効となる範囲であるラベル（グローバルラベル）、プログラム部品（ＰＯＵ）内で有効となる範囲であるラベル（ローカルラベル）など、ラベルの有効範囲を示す。
【００２４】
図５（ｂ）に示されるように、ラベル割付情報は、ラベル名称、サイズ、メモリ領域の先頭アドレスを含む。ラベル名称は、ラベル定義で定義されたラベル名称を示す。サイズは、ラベルのデータサイズを示す。メモリ領域の先頭アドレスは、ラベルのデータを格納するメモリ領域の先頭アドレスを示す。
【００２５】
システムエンジニアは、ラベル定義を設定し、プログラムの命令の引数やパラメータのイベントフラグなどにラベル名称を使用することで、ラベル割付情報のメモリ領域を意識することなくプログラミングが可能となる。
【００２６】
図６は、ラベル定義と関連付けしたネットワーク範囲割付設定の一例を示す図である。この図に示されるように、ラベル定義で定義したラベルを用いてネットワーク範囲割付設定を作成することで、間接的にメモリ領域の先頭アドレスをラベル名称で示すことが可能となる。
【００２７】
図７は、ラベル定義と関連付けしたリンク間転送設定の一例を示す図である。この図に示されるように、ラベル定義で定義したラベルを用いてリンク間転送設定を作成することによって、間接的にメモリ領域の先頭アドレスをラベル名称で示すことが可能となる。
【００２８】
つぎに、実施の形態によるデータ中継制御装置、リンク間転送設定支援装置およびリンク間転送設定方法について説明する。図８は、制御システムの構成の一例を示す図である。この制御システムは、制御装置１０，２０とデータ中継制御装置３０とが、１つのネットワーク５１で接続され、制御装置４０とデータ中継制御装置３０とが、ネットワーク５１とは別のネットワーク５２で接続された構成を有する。制御装置１０，２０，４０は、それぞれノード１１，２１，４１と、ラベルを使用したラベルプログラム（制御プログラム）１２，２２，４２と、を有する。
【００２９】
データ中継制御装置３０は、複数のノード３１，３２と、リンク間転送設定生成部３３と、リンク間転送設定記憶部３４と、リンク間転送制御部３５と、を有する。図８では、データ中継制御装置３０のノード３１には、ネットワーク５１が接続され、ノード３２にはネットワーク５２が接続されている。データ中継制御装置３０の複数のノード３１，３２は、たとえばベースユニットに取り付けられ、ベースユニット内のバスなどの通信路によって互いに通信可能な構成となっている。
【００３０】
ネットワーク５１を構成する各ノード１１，２１，３１は共有メモリ方式のサイクリック伝送を行うため、各制御装置１０，２０は、同一ネットワーク５１上の全ノード１１，２１，３１について、共有メモリ領域の送信領域を予め定めたネットワーク割付範囲設定を有する。また、ネットワーク５２を構成するノード３２，４１も共有メモリ方式のサイクリック伝送を行うため、制御装置４０は、ネットワーク５１のものとは異なるネットワーク範囲割付設定を有する。さらに、複数ノード３１，３２を有するデータ中継制御装置３０は、それぞれのネットワーク５１，５２のネットワーク範囲割付設定を有する。
【００３１】
リンク間転送設定生成部３３は、複数のネットワーク５１，５２のラベルプログラムで使用されるラベルのうち、演算後のデータの行き先となる動作に割り当てられているラベルと、演算前にデータを格納する動作に割り当てられているラベルと、を抽出し、これらのラベルから異なるネットワーク５１，５２間で共有メモリ領域にラベルをマッピングしてリンク間転送設定を自動生成する機能を有する。図８で、たとえばネットワーク５１の共有メモリ領域に格納されたデータを、ネットワーク５２の共有メモリ領域に転送するリンク間転送設定を自動生成する機能を有する。
【００３２】
リンク間転送設定記憶部３４は、リンク間転送設定生成部３３によって生成されたリンク間転送設定を記憶する。リンク間転送制御部３５は、サイクリック伝送中にリンク間転送設定記憶部３４に記憶されたリンク間転送設定に基づいて、一のネットワークに接続されるノード（たとえばネットワーク５１のノード３１）から他のネットワークに接続されるノード（たとえばネットワーク５２のノード３２）へとデータをリンク間転送する。
【００３３】
また、データ中継制御装置３０のリンク間転送設定生成部３３でリンク間転送設定を自動生成させるために必要な情報（パラメータ）は、リンク間転送設定支援装置によって生成される。リンク間転送設定支援装置は、後述するリンク間転送設定支援プログラムを有するパーソナルコンピュータなどによって構成され、制御システムを構成するいずれかの制御装置１０，２０，４０またはデータ中継制御装置３０に接続される。制御システムを構成する制御装置１０，２０，４０とデータ中継制御装置３０は、図８に示されるようにいずれもネットワーク５１，５２や、データ中継制御装置３０内のバスを介して接続されているので、リンク間転送設定支援装置がいずれかの制御装置１０，２０，４０またはデータ中継制御装置３０に接続されると、すべての制御装置１０，２０，４０とデータ中継制御装置３０にアクセス可能となる。
【００３４】
図９は、リンク間転送設定支援装置のソフトウェア構成の一例を模式的に示す図である。このソフトウェアは、プログラミングソフトウェア２００と、コンフィグレーションソフトウェア３００と、システム構成管理ソフトウェア４００とを、有する。
【００３５】
プログラミングソフトウェア２００は、システム構成上の複数のネットワークで接続された、複数の制御装置で共有するデータに対してラベル定義し、プログラムを実行する制御装置に対して、ユーザによるラベルを使用したプログラム（ラベルプログラム）の作成環境を提供するソフトウェアである。
【００３６】
プログラミングソフトウェア２００は、ＯＳ（Operating  System）２０１上にユーザインタフェース部２０２、制御装置通信インタフェース部２０３、アプリケーション通信インタフェース部２０４が設けられ、さらにこれらの処理部の上にメイン処理部２０５が設けられている。また、プログラミングソフトウェア２００は、プログラミング用データ２０６を管理している。
【００３７】
ユーザインタフェース部２０２は、システムエンジニアの操作および表示に関する処理を行う。システムエンジニアの操作内容は、ユーザインタフェース部２０２を介してメイン処理部２０５で処理され、必要に応じてプログラミング用データ２０６に反映される。
【００３８】
制御装置通信インタフェース部２０３は、プログラミングソフトウェア２００と制御装置との間の通信を処理するものであり、プログラミング用データ２０６の内容が制御装置へ反映される。
【００３９】
アプリケーション通信インタフェース部２０４は、当該プログラミングソフトウェア２００と、システム構成管理ソフトウェア４００やコンフィグレーションソフトウェア３００との間の通信を処理するものである。システムエンジニアの操作によって、プログラミング用データ２０６に関するデータがソフトウェア間で受け渡しされる。
【００４０】
メイン処理部２０５は、ユーザインタフェース部２０２からの入力などに基づいて処理を行い、たとえばプログラミング用データ２０６を生成する処理を行う。たとえば、システムエンジニアによって作成されたラベルを使用したプログラムから、ラベル割付情報にフラグを付加する処理を行う。
【００４１】
プログラミング用データ２０６は、ラベル定義テーブル２０７、プログラム２０８およびプログラム用パラメータ２０９を有する。ラベル定義テーブル２０７は、ラベル定義情報とラベル割付情報とを有する。ラベル定義情報は、たとえば図５（ａ）に示した構成を有するが、この実施の形態では、クラスとして、グローバルラベルとローカルラベルのほかに、複数ネットワークのシステム構成であるワークスペース上で有効となるラベル（システムラベル）が定義可能となっている。
【００４２】
ラベル割付情報は、プログラム２０８で用いられるラベル名称と、制御装置に設けられるメモリ内での格納位置とを関連付けたものである。図１０は、ラベル割付情報の一例を示す図である。ラベル割付情報は、ラベル名称と、ラベル名称が付されたデータのサイズと、ラベル名称が付されたデータが格納される制御装置のメモリ領域の先頭アドレスと、ラベルのクラスがシステムクラスの場合のラベル名称が付されたデータの処理動作を示すフラグと、を有する。フラグには、ラベルのクラスがシステムでない場合（グローバルまたはローカルの場合）には何も付されない。また、ラベルのクラスがシステムの場合で、ラベルが演算後のデータの行き先となる動作に割当てられている場合には書込みフラグが設定され、ラベルが演算前にデータを格納する動作に割当てられている場合には読み込みフラグが設定される。
【００４３】
プログラム２０８は、各制御装置が行う処理を規定したものであり、たとえばシステムエンジニアによって作成される。プログラム２０８は、データに任意のラベル名称、データ型、クラスをラベル定義情報として宣言し、実制御装置８０のデータを格納するメモリのメモリアドレスをラベル名称で間接的に指定してプログラム２０８中に表記するラベル方式が用いられるものとする。
【００４４】
プログラム用パラメータ２０９は、制御装置の動作を決めるパラメータであり、制御装置内で実行するプログラム２０８の指定や、制御装置がエラー検出した時の動作仕様などを定めるものである。
【００４５】
コンフィグレーションソフトウェア３００は、各制御装置の構成を定義する。たとえば図８の制御装置１０の場合には、ノード１１とラベルプログラム１２とを定義し、ノード１１がネットワーク５１に接続されているところまで管理する。ただし、この例では、ネットワーク５１が接続している他の制御装置についてまでは管理しない。
【００４６】
コンフィグレーションソフトウェア３００は、ＯＳ３０１上にユーザインタフェース部３０２、制御装置通信インタフェース部３０３、アプリケーション通信インタフェース部３０４が設けられ、さらにこれらの処理部の上にメイン処理部３０５が設けられている。また、コンフィグレーションソフトウェア３００は、コンフィグレーション用データ３０６を管理している。
【００４７】
ユーザインタフェース部３０２は、システムエンジニアの操作および表示に関する処理を行う。システムエンジニアの操作内容は、ユーザインタフェース部３０２を介してメイン処理部３０５で処理され、必要に応じてコンフィグレーション用データ３０６に反映される。
【００４８】
制御装置通信インタフェース部３０３は、コンフィグレーションソフトウェア３００と実制御装置８０との間の通信を処理するものであり、システムエンジニアの操作によって、コンフィグレーション用データ３０６の内容を実制御装置８０の実システム構成から自動生成する。
【００４９】
アプリケーション通信インタフェース部３０４は、当該コンフィグレーションソフトウェア３００と、プログラミングソフトウェア２００やシステム構成管理ソフトウェア４００との間の通信を処理するものである。システムエンジニアの操作によって、コンフィグレーション用データ３０６に関するデータがソフトウェア間で受け渡しされる。
【００５０】
メイン処理部３０５は、ユーザインタフェース部３０２や制御装置通信インタフェース部３０３からの入力などに基づいて処理を行い、たとえばコンフィグレーション用データ３０６の内容を変更する処理を行う。
【００５１】
コンフィグレーション用データ３０６は、制御装置情報テーブル３０７と、プログラミング用データ割付設定３０８と、システム構成情報３０９と、ノード割付情報３１０と、共有メモリ領域情報３１１、コンフィグレーション用パラメータ３１２と、を有する。
【００５２】
制御装置情報テーブル３０７は、コンフィグレーションソフトウェア３００に対応した制御装置の通信ノードとプログラムに関する情報の一覧であり、システム構成情報３０９と関連付けされる。制御装置情報テーブル３０７は、たとえば制御装置を構成するＣＰＵユニットやネットワークユニットなどのユニットを識別する識別子と、ユニットの型番（商品）と、ユニット（商品）で使用できるプログラム仕様と、が一覧にされたものであり、ユーザが使用するプログラムでユニットの型番を一覧から選択可能な構成のものを使用することができる。
【００５３】
プログラミング用データ割付設定３０８は、プログラミング用データ２０６をシステム構成情報３０９に関連付けした情報である。
【００５４】
システム構成情報３０９は、共有メモリ方式でサイクリック伝送を行うネットワークに存在する複数の制御装置によって構成される一つのシステムを実現する制御装置の構成情報と環境情報を有する。システム構成情報は、１つの制御装置を構成するユニットと、各ユニットに設定される内容と、を含むものであり、たとえばラベルを格納するメモリの位置、ノードの位置やノードに接続されたネットワーク番号、局番などの情報を含む。
【００５５】
ノード割付情報３１０は、システムエンジニアがユーザインタフェース部３０２を介して制御装置情報テーブル３０７から選択した制御装置が持つノードをシステム構成情報３０９に割り付けたものである。
【００５６】
共有メモリ領域情報３１１は、制御装置が持つ共有メモリ領域をシステム構成情報３０９に割り付けたものである。具体的には、ＣＰＵユニットやネットワークユニットなどからなる１つの制御装置内でのメモリの割り付け状態を示すものである。共有メモリ領域は、システム構成内で一つ存在する。システム構成情報に割り付けられた制御装置の実メモリ領域の一部を共有メモリ領域として設定することで、システム構成内で同一の共有メモリ領域を有し、同一のデータを共有することが可能となる。
【００５７】
コンフィグレーション用パラメータ３１２は、複数の制御装置を１つのシステムとして動作させるパラメータであり、システム構成情報３０９の制御装置の識別子をシステム構成内で共有する情報を有する。
【００５８】
システム構成管理ソフトウェア４００は、コンフィグレーションソフトウェア３００で管理されるネットワークで、データ転送を行う複数のネットワーク間を接続する（リンク間転送を行う）ための設定を管理する。システム構成管理ソフトウェア４００は、ＯＳ４０１上にユーザインタフェース部４０２、制御装置通信インタフェース部４０３、アプリケーション通信インタフェース部４０４が設けられ、さらにこれらの処理部の上にメイン処理部４０５が設けられている。また、システム構成管理ソフトウェア４００は、システム構成管理データ４０６を管理している。
【００５９】
ユーザインタフェース部４０２は、システムエンジニアの操作および表示に関する処理を行う。システムエンジニアの操作内容は、ユーザインタフェース部４０２を介してメイン処理部４０５で処理され、必要に応じてシステム構成管理データ４０６に反映される。
【００６０】
制御装置通信インタフェース部４０３は、システム構成管理ソフトウェア４００と実制御装置８０との間の通信を処理するものであり、システムエンジニアの操作によって、システム構成管理データ４０６の内容を実制御装置８０の実システム構成から自動生成する。
【００６１】
アプリケーション通信インタフェース部４０４は、当該システム構成管理ソフトウェア４００と、プログラミングソフトウェア２００やコンフィグレーションソフトウェア３００との間の通信を処理するものである。システムエンジニアの操作によって、システム構成管理データ４０６に関するデータがソフトウェア間で受け渡しされる。
【００６２】
メイン処理部４０５は、ユーザインタフェース部４０２や制御装置通信インタフェース部４０３からの入力などに基づいて処理を行い、たとえばコンフィグレーション用データ３０６の内容を変更する処理を行う。
【００６３】
システム構成管理データ４０６は、ネットワーク共有ラベル情報テーブル４０７と、ネットワーク範囲割付設定データベース４０８と、ネットワークパラメータ４０９と、コンフィグレーション割付設定情報４１０を有している。
【００６４】
ネットワーク共有ラベル情報テーブル４０７は、コンフィグレーションソフトウェア３００で作成したシステム構成間で共有するラベル情報の一覧を管理する。システムエンジニアによってラベルをシステム構成内の共有メモリ領域に割り付けた情報を有する。
【００６５】
ネットワーク範囲割付設定データベース４０８は、システム構成管理ソフトウェア４００で管理する全てのネットワークについて、ネットワーク番号ごとに並べられたネットワーク範囲割付設定から構成されるものであり、各ネットワーク範囲割付設定を有する。ネットワーク範囲割付設定は、１つのネットワークを構成するノードとノードとの間の割付情報である。
【００６６】
ネットワークパラメータ４０９は、システム構成管理ソフトウェア４００で管理するネットワークの設定である。ネットワークパラメータ４０９として、たとえば各通信ノードのノード番号、ネットワーク番号、ネットワーク種別、ネットワークグループなどを例示することができる。
【００６７】
コンフィグレーション割付設定情報４１０は、コンフィグレーションソフトウェア３００で構成したコンフィグレーション用データ３０６を用いて、システム構成間のネットワーク接続を管理する。システムエンジニアは、アプリケーション通信インタフェース部４０４で取得したシステム構成を選択し、作業領域に構成したシステムを配置し、システム構成間をネットワークで接続する。
【００６８】
つぎに、このようなソフトウェア（リンク間転送設定支援装置）を利用したシステム構築について説明する。最初に、システムエンジニアは複数のグループに分かれて、システム構成単位でシステム構築を担当するのが一般的である。システムエンジニアは、グループ毎に制御装置を組み合わせて一つのシステムを構築し、コンフィグレーションソフトウェア３００で、制御装置からシステム構成の情報を取得する。
【００６９】
図１１は、コンフィグレーションソフトウェアでのコンフィグレーション用データの生成手順の一例を示すフローチャートである。また、図１２は、システム構成情報の生成順序を模式的に示す図であり、図１３は、各ステップでのシステム構成情報の一例を示す図である。
【００７０】
まず、コンフィグレーションソフトウェア３００は、オンライン接続された制御装置に対して、制御装置のシステム構成の取得処理を行う（ステップＳ１１）。具体的には、コンフィグレーションソフトウェア３００は、制御装置に対して、制御装置のシステム構成を問い合わせる要求を送信し、制御装置は、要求に対してシステム構成を応答として返す（ステップＳ１２）。ここで取得される制御装置のシステム構成は、たとえば制御装置がベースユニット６０上のどの位置に、どの型番の製品（ユニット）が装着されているかを示すものである。そのため、図１３（ａ）に示されるように、システム構成は、ベースユニット６０上の位置であるベースユニット位置番号と、その位置に取り付けられている型名（ユニット名）とが対応付けられている。また、１番目の格納、２番目の格納、・・・などは、各ユニットに必要な情報が格納される。ユニットにプログラムが格納されている場合には、既に制御装置のシステム構成の割付がなされているので、その情報が１番目の格納、２番目の格納、・・・などに格納される。図１２（ａ）と図１３（ａ）の例では、ベースユニット位置番号Ｎｏ．１に型番が「ＣＰＵ−００１」のユニット６１が装着され、ベースユニット位置番号Ｎｏ．２に型番が「ＮＷ−１０１」のユニット６２が装着されている。なお、コンフィグレーションソフトウェア３００は、この状態では、ユニットがＣＰＵユニットであるのか、ネットワークユニットであるのかなどの識別を行うことができない（ＣＰＵユニットやネットワークユニットを識別する情報を得ていない）。
【００７１】
その後、コンフィグレーションソフトウェア３００は、システム構成の取得が完了したかを判定する（ステップＳ１３）。システム構成の取得が完了していない場合（ステップＳ１３でＮｏの場合）には、ステップＳ１１へと戻る。システム構成の取得が完了している場合（ステップＳ１３でＹｅｓの場合）には、システム構成情報を自動生成する（ステップＳ１４）。自動生成されるシステム構成情報は、図１３（ａ）に示されるシステム構成をたとえばバイナリコードにしたものである。
【００７２】
その後、コンフィグレーションソフトウェア３００は、各制御装置に問い合わせを行って、各制御装置の情報を取得する処理を行う（ステップＳ１５，Ｓ１６）。具体的には、コンフィグレーションソフトウェア３００は、作成したシステム構成内の各制御装置の識別子を問い合わせる要求を送信すると、各制御装置は、それに対する応答として識別子を返す。ここでは、識別子とは、各ユニットのメモリ容量やノード数などの固有情報を特定するコードである。予め、使用されるユニットには識別子が割り当てられている。たとえば、１つのユニットの型番に対して、識別子が割り当てられる。識別子は、各ユニットのバージョン情報まで管理している。
【００７３】
ついで、コンフィグレーションソフトウェア３００は、制御装置の情報の取得が完了したかを判定する（ステップＳ１７）。制御装置の情報の取得が完了していない場合（ステップＳ１７でＮｏの場合）には、ステップＳ１５へと戻る。制御装置の情報の取得が完了している場合（ステップＳ１７でＹｅｓの場合）には、コンフィグレーションソフトウェア３００は、制御装置情報テーブル３０７から識別子が一致する制御装置の各ノードをシステム構成内の制御装置に割り当てる（ステップＳ１８、図１２（ｂ））。この割り当てで、システム構成の各ユニットがＣＰＵユニットであるのか、ネットワークユニットであるのかが識別可能となる。また、ここでは、図１３（ｂ）に示されるように、ネットワークユニットに対して、接続されるネットワークを識別するネットワーク番号、ネットワーク内での局番やＩＰアドレス、グループ番号などの通信を行うのに必要な情報がノードとして割り当てられる。
【００７４】
同様に、コンフィグレーションソフトウェア３００は、制御装置情報テーブル３０７から識別子が一致する制御装置の共有メモリ領域のサイズ情報もシステム構成に割り当てる（ステップＳ１９、図１２（ｃ））。ここでは、図１３（ｃ）に示されるように、使用できる共有メモリ領域の最大値が設定される。
【００７５】
ついで、コンフィグレーションソフトウェア３００は、制御装置からプログラムを取得する処理を行う（ステップＳ２０，Ｓ２１）。具体的には、制御装置にプログラムの取得要求を送信し、各制御装置は、プログラムがある場合にはそれに対する応答としてプログラムを送信し、プログラムがない場合にはプログラムがない旨の応答を返す。
【００７６】
その後、コンフィグレーションソフトウェア３００は、プログラムがある場合（ステップＳ２２で有りの場合）には、ステップＳ２０，Ｓ２１で制御装置から取得したプログラムをシステム構成情報内の制御装置に割り当てる（ステップＳ２３、図１２（ｄ））。また、プログラムがない場合（ステップＳ２２で無しの場合）には、コンフィグレーションソフトウェア３００は、システム構成内の制御装置に、新規プログラムを割り当てる（ステップＳ２４、図１２（ｄ））。プログラムが割り当てられた後のシステム構成情報は、図１３（ｄ）のようになる。
【００７７】
その後またはステップＳ２３の後、コンフィグレーションソフトウェア３００は、システム構成内の全制御装置の割り当てが完了したか否かを判定し（ステップＳ２５）、まだシステム構成内の制御装置の割り当てが完了していない場合（ステップＳ２５でＮｏの場合）には、ステップＳ１５へと戻り、上記した手順と同様に、他の制御装置に対しても、各ノードと共有メモリ領域とプログラムをシステム構成内の制御機器に割り当てる。また、ステップＳ２５でシステム構成内の全制御装置の割り当てが完了した場合（ステップＳ２５でＹｅｓの場合）には、処理が終了する。
【００７８】
以上では、システム構成の割り当て処理について説明したが、複数のグループに分かれた別のシステムエンジニアは、システム構成内の制御装置のプログラム作成を担当する。プログラムを担当するシステムエンジニアは、プログラミング用ソフトウェアを用いて各制御装置にラベルを使用したプログラムを作成する。
【００７９】
図１４は、各制御装置のラベル定義とプログラムの一例を示す図である。この図では、図８に示される制御システムを構成する制御装置１０，２０，４０を例に挙げている。このようにシステムエンジニアによって作成されたラベル定義１３，２３，４３と、ラベルを使用してプログラミングしたラベルプログラム１２，２２，４２は、プログラミングソフトウェア２００のプログラミング用データ２０６に反映される。ここでは、各ラベル定義１３，２３，４３とラベルプログラム１２，２２，４２は、制御装置１０，２０，４０ごとに作成される。なお、制御装置１０，２０，４０のラベル名称「スイッチ１」のラベルの有効範囲は、複数ネットワークで接続されたシステム構成の各制御装置間で共有する範囲となるシステムクラスとされ、システム全体で共有される。
【００８０】
図１５は、図１４のシステムラベルを含むプログラムのデータ処理の一例を示す図である。プログラミングソフトウェア２００は、図１４のラベルプログラムにおいて、ラベルプログラムの命令の引数の位置やプログラマブル表示器のスイッチ、ランプなどのデータを扱うプログラム部品への割り当てや、パラメータのイベントフラグで、演算前にデータを格納する動作Ｓ３２，Ｓ３３となるか、演算後のデータの行き先となる動作Ｓ３１となるかを判別し、各制御装置１０，２０，４０のラベル割付情報を生成する。具体的には、演算後のデータの行き先となる動作のシステムラベルには書き込みラベルを付加し、演算前のデータの行き先となる動作のシステムラベルには読み込みフラグを付加する。
【００８１】
図１６は、プログラミングソフトウェアによって自動生成されたラベル割付情報の一例を示す図である。図１６（ａ）は、図８の制御装置１０のラベル割付情報であり、（ｂ）は、同じく制御装置２０のラベル割付情報であり、（ｃ）は、同じく制御装置４０のラベル割付情報である。
【００８２】
たとえば、図１４の制御装置１０におけるラベル定義では、スイッチ１がシステムラベル１４として宣言されており、同じくラベルプログラム１２では、スイッチ１がコイル命令に使用されている。そのため、スイッチ１が演算後のデータの行き先となる動作（図１５のステップＳ３１）に割り当てられていることになり、プログラミングソフトウェア２００は、図１６（ａ）に示されるように、書き込みフラグ１５１の情報をラベル割付情報に付加する。
【００８３】
また、図１４の制御装置２０におけるラベル定義では、スイッチ１がシステムラベル２４として宣言されており、同じくラベルプログラム２２では、スイッチ１がＡ接点命令に使用されている。そのため、スイッチ１が演算前にデータを格納する動作（図１５のステップＳ３２）に割り当てられていることになり、プログラミングソフトウェア２００は、図１６（ｂ）に示されるように、読み込みフラグ１５２の情報をラベル割付情報に付加する。他のラベル情報も同様に、制御装置のラベル定義とラベルプログラムから、書き込みフラグと読み込みフラグをラベル割付情報に付加するが、システムラベルではないラベルについては、フラグは付加されない。
【００８４】
さらに、プログラミングソフトウェア２００は、ラベルプログラムの命令の引数の位置以外にも、プログラマブル表示器のスイッチ（ＯＮ／ＯＦＦ後のデータの行き先となる動作）、ランプ（ＯＮ／ＯＦＦ前にデータを格納する動作）などのデータを扱うプログラム部品への割り当てや、パラメータのイベントフラグから、演算前にデータを格納する動作か、演算後のデータの行き先となる動作かを判断して、書き込みフラグと読み込みフラグをラベル割付情報に付加する。
【００８５】
たとえば、図１４の制御装置４０のラベル定義４３では、スイッチ１がシステムラベル４４として宣言されており、同じくラベルプログラム４２では、スイッチ１が表示器のランプ部品に使用されている。そのため、スイッチ１が演算前にデータを格納する動作（図１５のステップＳ３３）に割り当てられていることになり、プログラミングソフトウェア２００は、図１６（ｃ）に示されるように、読み込みフラグ１５３の情報をラベル割付情報に付加する。
【００８６】
続いて、コンフィグレーションソフトウェア３００は、プログラミングソフトウェア２００から自動生成されたラベル割付情報を受け取り、ラベル割付情報の書き込みフラグが付加されたシステムラベルを、コンフィグレーションソフトウェア３００で構成されたシステム構成内の共有メモリ領域の送信領域に割り当てる。
【００８７】
図１７は、システムラベルの送信領域への割り当て処理の手順の概要を模式的に示す図である。まず、図１７（ａ）に示されるように、あるネットワーク内の第１の制御装置の第１のノードは、ラベル割付情報の書き込みフラグが付加されたシステムラベルを共有メモリ領域に割り付ける。その後、第１の制御装置は、システム構成管理ソフトウェア４００で構成したネットワーク構成にしたがってネットワーク上のつぎの第２のノードに共有メモリ領域の割付情報を転送する。
【００８８】
図１７（ｂ）に示されるように、第１のノードから共有メモリ領域の割付情報を受け取った第２の制御装置の第２のノードは、第１のノードと同様にシステム構成内のシステムラベルの書き込みフラグが付加されたラベル割付情報から、共有メモリ領域の送信領域にラベルを割り付けた情報を付加する。そして、システム構成管理ソフトウェアで構成したネットワーク構成にしたがって、つぎのノードに共有メモリ領域の送信領域の割付情報を転送する。
【００８９】
このような処理をネットワーク内のすべてのノードに対して行う。図１７（ｃ）に示されるように、ネットワーク内の最後の第Ｎの制御装置の第Ｎのノードは、図示しない第Ｎ−１のノードから共有メモリ領域の割付情報を受け取り、システム構成内のシステムラベルの書き込みフラグが付加されたラベル割付情報から、共有メモリ領域の送信領域にラベルを割り付けた情報を付加する。そして、システム構成管理ソフトウェアで構成したネットワーク構成にしたがって、第１のノードに共有メモリ領域の送信領域の割付情報を転送する。
【００９０】
ネットワーク内のすべてのノードが共有メモリ領域の送信領域を割り当てる処理を終了すると、各ノードは受信領域の割り当てを行う。これは、すべてのノードによって割り付けられた送信領域のうち、読み込みフラグが付加されたシステムラベルをシステム構成内の各制御装置の共有メモリ領域の受信領域に割り当てる。具体的には、自制御装置のラベル割付情報からフラグが設定されているラベル名称を取得し、他の制御装置のラベル割付情報に同じラベル名称で、同じデータ型のものが存在するかを確認する。同じデータ型で同じラベル名称のものには、読み込みフラグが付されている。そして、同じデータ型で同じラベル名称のものに対応する送信領域を受信領域に設定する。これによって、各ノードでは、それぞれ送信領域と受信領域のラベル割付が済んだ共有メモリ領域の割付情報（共有メモリ領域情報）が生成される。また、この共有メモリ領域情報から、システム構成内のネットワーク範囲割付情報が自動生成され、図１に示されるように、サイクリック伝送が実現される。
【００９１】
図１８は、共有メモリ領域へのシステムラベルの割り付けの一例を模式的に示す図である。上記のように、制御装置内のメモリ領域の中の書き込みフラグを付したシステムラベルがネットワーク範囲割付設定の一部として設定される。また、このシステムラベルは、システム構成内の共有メモリ領域におけるその制御装置の送信領域として設定される。ネットワーク内のすべてのノードの送信領域が共有メモリ領域に設定され、他の制御装置の読み込みフラグを付加したシステムラベルに対応する送信領域を受信領域とすることで、共有メモリ領域情報が生成される。そして、共有メモリ領域情報の他の制御装置からの受信領域を、読み込みフラグを付加したシステムラベルとすることで、ネットワーク範囲割付設定が生成される。
【００９２】
つぎに、データ中継制御装置によるリンク間転送設定について説明する。図８に示すような複数ノード３１，３２を有するデータ中継制御装置３０は、それぞれのネットワーク５１，５２に接続されたノード１１，２１，４１の共有メモリ領域に、たとえば図１６に示されるようなフラグが付加されたラベル割付情報を有する。そこで、データ中継制御装置３０のリンク間転送設定生成部３３は、複数のフラグが付加されたラベル割付情報から、一のネットワーク（たとえばネットワーク５１）のシステムラベルと他のネットワーク（たとえばネットワーク５２）のシステムラベルのラベル名とデータ型を比較し、一致するならば、転送元から転送先へデータを転送するリンク間転送設定を生成する。
【００９３】
図１９は、リンク間転送設定の自動生成処理の手順の一例を示すフローチャートである。まず、データ中継制御装置３０は、一のネットワークの共有メモリ領域に格納されているラベル割付情報中のラベルのフラグの確認を行う（ステップＳ５１）。フラグがない場合（ステップＳ５１で無しの場合）には、つぎのラベルの処理をする（ステップＳ５２）。そして、つぎのラベルがあるかを判定し（ステップＳ５３）、ラベルがある場合（ステップＳ５３でＹｅｓの場合）には、ステップＳ５１へと戻る。また、ラベルがない場合（ステップＳ５３でＮｏの場合）には、リンク間転送設定の自動生成処理が終了する。
【００９４】
また、ステップＳ５１でフラグがある場合（ステップＳ５１で有りの場合）には、ラベル名の確認を行う（ステップＳ５４）。この処理は、ステップＳ５１でラベルの確認を行っているネットワークとは異なる他のネットワークの共有メモリ領域に格納されているラベル割付情報中のラベルに対応するラベル名が存在するかを確認するものである。
【００９５】
ラベル名が不一致の場合（ステップＳ５４で不一致の場合）には、リンク間転送設定の作成を行わずに、ステップＳ５２へと処理が移り、つぎのラベルの処理をする。ここで、ラベル名が不一致のラベルは、１つのネットワーク内でのみデータ共有されるラベルとなる。
【００９６】
また、ラベル名が一致する場合（ステップＳ５４で一致の場合）には、つぎにデータ型を確認する（ステップＳ５５）。この処理は、ステップＳ５１でラベルの確認を行っているネットワークのラベルのデータ型が、他のネットワークのラベル割付情報中のラベル（ラベル名）のデータ型と一致しているかを確認するものである。
【００９７】
データ型が不一致の場合（ステップＳ５５で不一致の場合）には、リンク間転送設定の作成を行わずに、ステップＳ５２へと処理が移り、つぎのラベルの処理をする。ここで、データ型が不一致のラベルは、システムエンジニアのプログラムミスの可能性があるので、データ型が不一致である旨のエラーを転送元、転送先に送信し、つぎのラベルの処理をする。
【００９８】
また、データ型が一致する場合（ステップＳ５５で一致の場合）には、転送元から転送先へリンク間転送設定を自動生成する（ステップＳ５６）。つまり、転送元を書き込みフラグが付加されたラベルを有するネットワークに接続されるノードとし、転送先を読み込みフラグが付加されたラベルを有するネットワークに接続されるノードとする。その後は、ステップＳ５２へと移って、フラグの確認が行われていないラベルがなくなるまでつぎのラベル処理を行う。
【００９９】
図２０は、リンク間転送設定の一例を示す図である。この図に示されるように、リンク間転送設定は、転送元、転送先、転送元共有メモリ領域先頭アドレス、転送先共有メモリ領域先頭アドレス、およびサイズを有し、これらの情報をラベル割付情報から取得して生成する。なお、書き込みフラグがあるラベルのネットワークの方を転送元と規定し、読み込みフラグがあるラベルのネットワークの方を転送先と規定するものとする。
【０１００】
図２１は、ネットワーク範囲割付設定の一例を示す図であり、（ａ）はたとえば図８のネットワーク５１のネットワーク範囲割付設定であり、（ｂ）は同じくネットワーク５２のネットワーク範囲割付設定である。これらのネットワーク範囲割付設定は、上記したように共有メモリ領域の割り付けを行った後に作成されるものである。各ネットワークのネットワーク範囲割付設定は、ノード番号、共有メモリ領域先頭アドレス、フラグ、およびサイズを有する。
【０１０１】
以上のようにして生成されたリンク間転送設定は、リンク間転送設定記憶部３４に記憶される。また、データ中継制御装置３０のリンク間転送制御部３５は、リンク間転送設定に基づいて、転送元のネットワークの共有メモリ領域のデータを転送先のネットワークの共有メモリ領域へと転送する。図２２は、データ中継制御装置によるリンク間転送の処理手順の流れを模式的に示す図である。まず、ネットワーク５１のノード１１でプログラム１のコイル命令がＯＮし、スイッチ１にデータが格納される（ステップＳ７１）。その後、ノード１１は、ノード２１、ノード３１へスイッチ１のデータをサイクリック伝送する（ステップＳ７２）。
【０１０２】
ノード３１は、サイクリック伝送によってスイッチ１のデータを受け取ると、スイッチ１のデータをネットワーク範囲割付設定に従って共有メモリ領域に格納する（ステップＳ７３）。同様に、ノード２１は、サイクリック伝送によってスイッチ１のデータを受け取ると、スイッチ１のデータをネットワーク範囲割付設定に従って共有メモリ領域に格納する。その結果、ノード２１のプログラム２の接点Ａ命令が立ち上がる（ステップＳ７４）。
【０１０３】
一方、ノード３１は、リンク間転送設定範囲にデータ受信したことをリンク間転送制御部３５に通知する（ステップＳ７５）。リンク間転送制御部３５は、リンク間転送設定に従い、転送元から転送先へデータをリンク間転送する（ステップＳ７６）。これによって、ネットワーク５１のノード３１のネットワーク共有メモリ領域のスイッチ１のデータが、ネットワーク５２のノード３２のネットワーク共有メモリ領域のスイッチ１に転送される（ステップＳ７７）。
【０１０４】
ついで、ノード３２は、ネットワーク５１からのスイッチ１のデータを受け取ると、ネットワーク５２へスイッチ１のデータをサイクリック伝送する（ステップＳ７８）。そして、ノード４１は、スイッチ１のデータを共有メモリ領域に格納し、これによって、ノード４１のプログラム３のランプがＯＮされる（ステップＳ７９）。
【０１０５】
なお、リンク間転送は、ステップＳ７５の受信確認および受信通知を省略し、ステップＳ７５のリンク間転送の実行を一定周期に実施することで、データ更新の定時性を保つことも可能である。
【０１０６】
この実施の形態では、サイクリック伝送を行っている異なるネットワーク間を跨いでデータ転送をする場合にシステムラベルを設定し、ネットワーク間を跨いでデータ転送を行うラベルを用いたプログラムから、そのラベルに書込みフラグまたは読み込みフラグかを設定した。そして、システムフラグが設定されたデータから複数のネットワーク間でデータ転送を行うリンク間設定情報を、複数のネットワーク間を接続する複数通信ノードを有するデータ中継制御装置が行うようにした。これによって、人手による設定時のように、制御装置が実行するプログラムは正しいが、リンク間転送されるデータが誤っているために、制御装置が予期しない動作をしてしまうことを防ぐことができるという効果を有する。
【０１０７】
また、システム構成やプログラムを変更する毎に、データ中継制御装置が自動でリンク間転送設定情報を再設定するので、システムエンジニアが転送元のネットワークでサイクリック伝送しているデータと、転送先のネットワークでサイクリック伝送しているデータとを把握して、どのデータをリンク間転送するのかをデータ中継制御装置に設定する手間が軽減されるという効果も有する。
【符号の説明】
【０１０８】
１０，２０，４０  制御装置
１１，２１，３１，３２，４１    ノード
１２，２２，４２  ラベルプログラム
１３，２３，４３  ラベル定義
３０  データ中継制御装置
３３  リンク間転送設定生成部
３４  リンク間転送設定記憶部
３５  リンク間転送制御部
５１，５２，１００  ネットワーク
６０  ベースユニット
６１，６２  ユニット
８０  実制御装置
２００  プログラミングソフトウェア
２０１，３０１，４０１  ＯＳ
２０２，３０２，４０２  ユーザインタフェース部
２０３，３０３，４０３  制御装置通信インタフェース部
２０４，３０４，４０４  アプリケーション通信インタフェース部
２０５，３０５，４０５  メイン処理部
２０６  プログラミング用データ
２０７  ラベル定義テーブル
２０８  プログラム
２０９  プログラム用パラメータ
３００  コンフィグレーションソフトウェア
３０６  コンフィグレーション用データ
３０７  制御装置情報テーブル
３０８  プログラミング用データ割付設定
３０９  システム構成情報
３１０  ノード割付情報
３１１  共有メモリ領域情報
３１２  コンフィグレーション用パラメータ
４０６  システム構成管理データ
４０７  ネットワーク共有ラベル情報テーブル
４０８  ネットワーク範囲割付設定データベース
４０９  ネットワークパラメータ
４１０  コンフィグレーション割付設定情報
【図１】
0005611158.tif 000002
【図２】
0005611158.tif 000003
【図３】
0005611158.tif 000004
【図４】
0005611158.tif 000005
【図５】
0005611158.tif 000006
【図６】
0005611158.tif 000007
【図７】
0005611158.tif 000008
【図８】
0005611158.tif 000009
【図９】
0005611158.tif 000010
【図１０】
0005611158.tif 000011
【図１１】
0005611158.tif 000012
【図１２】
0005611158.tif 000013
【図１３】
0005611158.tif 000014
【図１４】
0005611158.tif 000015
【図１５】
0005611158.tif 000016
【図１６】
0005611158.tif 000017
【図１７】
0005611158.tif 000018
【図１８】
0005611158.tif 000019
【図１９】
0005611158.tif 000020
【図２０】
0005611158.tif 000021
【図２１】
0005611158.tif 000022
【図２２】
0005611158.tif 000023