(57)【要約】【課題】通信機能を有するユニットが複数の存在する場合であっても、付加的なユニットを必要とせず、柔軟に通信処理を実現できる構成を提供する。【解決手段】制御システムは、データを送受信するための第１の通信ポートを有する第１のユニットと、第１のユニットと電気的に接続された１または複数の第２のユニットとを含む。第２のユニットの各々は、第１のユニットの第１の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含む。第１のユニットは、第２のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を含む。【選択図】図１
2019114085.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御システムであって、
データを送受信するための第１の通信ポートを有する第１のユニットと、
前記第１のユニットと電気的に接続された１または複数の第２のユニットとを備え、
前記第２のユニットの各々は、前記第１のユニットの前記第１の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を備え、
前記第１のユニットは、前記第２のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を備える、制御システム。
【請求項２】
前記転送処理部は、いずれかのデバイスから受信した受信データを当該受信データの送信先の第２のユニットへ転送する、請求項１に記載の制御システム。
【請求項３】
前記第１のユニットおよび前記１または複数の第２のユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部を備えており、
前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報とは異なる内容の制御情報を付加して、前記第１のユニットとデータ交換を行う、請求項１または２に記載の制御システム。
【請求項４】
前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報の値をインクリメントまたはデクリメントすることで、新たな制御情報を生成する、請求項３に記載の制御システム。
【請求項５】
前記第１のユニットは、
前記１または複数の第２のユニットとの間でデータ交換されるデータを格納する第１の記憶領域と、
前記第１の通信ポートを介してデバイスとの間で送受信されるデータを格納する第２の記憶領域とを備え、
前記転送処理部は、予め定められたデータ交換情報に従って、前記第１の記憶領域と前記第２の記憶領域との間でデータ交換を行う、請求項３または４に記載の制御システム。
【請求項６】
前記転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の第２のユニットとデータ交換を行う、請求項５に記載の制御システム。
【請求項７】
前記第１のユニットは、データを送受信するための、前記第１の通信ポートとは異なる第２の通信ポートをさらに有しており、
前記第１の通信ポートを介してデータを送受信するための通信プロトコルは、前記第２の通信ポートを介してデータを送受信するための通信プロトコルとは異なる、請求項６に記載の制御システム。
【請求項８】
前記第１のユニットは、前記第２の通信ポートを介してデバイスとの間で送受信されるデータを格納する第３の記憶領域をさらに備え、
前記転送処理部は、予め定められたデータ交換情報に従って、前記第１の記憶領域のデータを前記第２の記憶領域および前記第３の記憶領域との間で選択的にデータ交換を行う、請求項７に記載の制御システム。
【請求項９】
前記第１のユニットは、前記第２の通信ポートを介してデバイスとの間で送受信されるデータを格納する第３の記憶領域をさらに備え、
前記転送処理部は、予め定められたデータ交換情報に従って、前記第２の記憶領域と前記第３の記憶領域との間でデータ交換を行う、請求項７に記載の制御システム。
【請求項１０】
制御対象を制御するための制御システムを構成する制御装置であって、
データを送受信するための通信ポートと、
１または複数の通信ユニットとの間で、予め定められた周期毎にデータ交換を行うためのデータ通信部とを備え、前記通信ユニットの各々は、前記通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含み、
前記通信ユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を備える、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、制御対象を制御する制御システムおよび制御装置に関する。
【背景技術】
【０００２】
各種設備および製造装置などを制御するための制御装置として、ＰＬＣ（プログラマブルコントローラ）などが用いられる。さらに、セーフティコントローラおよび各種セーフティコンポーネントからなるセーフティシステムが配置されることもある。
【０００３】
ＩＣＴ（Information and Communication Technology）の進歩にともなって、このような産業用コントローラについてもネットワーク化が進行しつつある。公知の構成においては、例えば、特許文献１（特開２００９−２２３３９８号公報）に開示されるように、演算処理を実行するＣＰＵユニットに加えて、通信処理を担当する通信ユニットが装着される。特許文献２（特開２０１７−０２７５３９号公報）に開示されるように、ＣＰＵモジュールとは別に、ＩＯモジュールの一例である通信モジュールを装着して、通信処理を行う構成が一般的である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２２３３９８号公報
【特許文献２】特開２０１７−０２７５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の特許文献２に開示されるような構成においては、基本的には、ＣＰＵモジュールと通信モジュールとを一対一で装着する必要があるため、複数のＣＰＵモジュールがそれぞれ通信処理を行う場合には、複数の通信モジュールを用意する必要がある。
【０００６】
そのため、通信機能を有するユニットが複数の存在する場合であっても、付加的なユニットを必要とせず、柔軟に通信処理を実現できる構成が要望されている。
【課題を解決するための手段】
【０００７】
本発明のある実施の形態に係る制御システムは、制御対象を制御する。制御システムは、データを送受信するための第１の通信ポートを有する第１のユニットと、第１のユニットと電気的に接続された１または複数の第２のユニットとを含む。第２のユニットの各々は、第１のユニットの第１の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含む。第１のユニットは、第２のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を含む。
【０００８】
この開示によれば、第１のユニットが有している１つの通信ポートを、第１のユニットだけではなく、１または複数の第２のユニットも利用できるので、システム構成を簡素化しつつ、第２のユニットを高機能化できる。
【０００９】
上述の開示において、転送処理部は、いずれかのデバイスから受信した受信データを当該受信データの送信先の第２のユニットへ転送してもよい。
【００１０】
この開示によれば、第２のユニットからデータを送信するだけではなく、いずれかのデバイスからデータを受信することもできる。
【００１１】
上述の開示において、第１のユニットおよび１または複数の第２のユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部を含んでいてもよい。論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報とは異なる内容の制御情報を付加して、第１のユニットとデータ交換を行うようにしてもよい。
【００１２】
この開示によれば、データの更新の有無にかかわらず、予め定められた周期毎にデータ交換を行う構成においても、第１のユニットと第２のユニットとの間で、新たにデータが生成されたとき、および／または、新たにデータが受信されたときに限って、処理を実行できる。そのため、高い応答性能を維持しつつ、処理の肥大化を防止できる。
【００１３】
上述の開示において、論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報の値をインクリメントまたはデクリメントすることで、新たな制御情報を生成するようにしてもよい。
【００１４】
この開示によれば、新たに送信データが生成されたことを、制御情報の値の増加または減少によって検知できる。
【００１５】
上述の開示において、第１のユニットは、１または複数の第２のユニットとの間でデータ交換されるデータを格納する第１の記憶領域と、第１の通信ポートを介してデバイスとの間で送受信されるデータを格納する第２の記憶領域とを含んでいてもよい。転送処理部は、予め定められたデータ交換情報に従って、第１の記憶領域と第２の記憶領域との間でデータ交換を行うようにしてもよい。
【００１６】
この開示によれば、第１のユニットと１または複数の第２のユニットとの間でデータ交換されるデータのうち、デバイスとの間で送受信されるデータのみを効率的にデータ交換できる。その結果、第１のユニットにおける処理の肥大化を防止できる。
【００１７】
上述の開示において、転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の第２のユニットとデータ交換を行うようにしてもよい。
【００１８】
この開示によれば、第１のユニットがいずれかのデバイスから新たに受信データを受信したことを、１または複数の第２のユニットは即座に検知できる。
【００１９】
上述の開示において、第１のユニットは、データを送受信するための、第１の通信ポートとは異なる第２の通信ポートをさらに有していてもよい。第１の通信ポートを介してデータを送受信するための通信プロトコルは、第２の通信ポートを介してデータを送受信するための通信プロトコルとは異なっていてもよい。
【００２０】
この開示によれば、第１のユニットに設けられた複数の通信ポートを選択的に利用することで、さまざまなアプリケーションを実現できる。
【００２１】
上述の開示において、第１のユニットは、第２の通信ポートを介してデバイスとの間で送受信されるデータを格納する第３の記憶領域をさらに含んでいてもよい。転送処理部は、予め定められたデータ交換情報に従って、第１の記憶領域のデータを第２の記憶領域および第３の記憶領域との間で選択的にデータ交換を行うようにしてもよい。
【００２２】
この開示によれば、データを生成した第２のユニットの要求などに応じて、適切な通信プロトコルで、かつ、適切な送信先のデバイスでデータを伝送できる。
【００２３】
上述の開示において、第１のユニットは、第２の通信ポートを介してデバイスとの間で送受信されるデータを格納する第３の記憶領域をさらに含んでいてもよい。転送処理部は、予め定められたデータ交換情報に従って、第２の記憶領域と第３の記憶領域との間でデータ交換を行うようにしてもよい。
【００２４】
本発明の別の実施の形態によれば、制御対象を制御するための制御システムを構成する制御装置が提供される。制御装置は、データを送受信するための通信ポートと、１または複数の通信ユニットとの間で、予め定められた周期毎にデータ交換を行うためのデータ通信部とを含む。通信ユニットの各々は、通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含む。制御装置は、通信ユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を含む。
【００２５】
この開示によれば、第１のユニットが有している１つの通信ポートを、第１のユニットだけではなく、１または複数の第２のユニットも利用できるので、システム構成を簡素化しつつ、第２のユニットを高機能化できる。
【発明の効果】
【００２６】
本発明の実施の形態によれば、通信機能を有するユニットが複数の存在する場合であっても、付加的なユニットを必要とせず、柔軟に通信処理を実現できる。
【図面の簡単な説明】
【００２７】
【図１】本発明の関連技術に係る制御システムの構成例を示す模式図である。
【図２】本実施の形態に係る制御システムの構成例を示す模式図である。
【図３】本実施の形態に係る制御システムのユニット間の接続構成を示す模式図である。
【図４】本実施の形態に係る制御システムに含まれるＣＰＵユニットのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係る制御システムに含まれる通信ユニットのハードウェア構成例を示す模式図である。
【図６】本実施の形態に係る制御システムにおけるＣＰＵユニットと通信ユニットとの接続構成の一例を示す模式図である。
【図７】本実施の形態に係るＣＰＵユニットの共有メモリにおけるメモリレイアウトの一例を示す模式図である。
【図８】本実施の形態に係るＣＰＵユニットに格納されるデータ交換情報の内容の一例を示す模式図である。
【図９】本実施の形態に係る制御システムにおける通信フレームの送信処理を説明するための模式図である。
【図１０】本実施の形態に係る制御システムのＣＰＵユニットにおける通信フレームの送信処理を説明するための模式図である。
【図１１】本実施の形態に係る制御システムにおける通信フレームの送信処理の処理手順を示すフローチャートである。
【図１２】本実施の形態に係る制御システムにおける通信フレームの受信処理を説明するための模式図である。
【図１３】本実施の形態に係る制御システムのＣＰＵユニットにおける通信フレームの受信処理を説明するための模式図である。
【図１４】本実施の形態に係る制御システムにおける通信フレームの受信処理の処理手順を示すフローチャートである。
【図１５】本実施の形態の第１変形例に係る制御システムの構成例を示す模式図である。
【図１６】本実施の形態の第１変形例に係る制御システムにおけるＣＰＵユニットと通信ユニットとの接続構成の一例を示す模式図である。
【図１７】本実施の形態の第１変形例に係るＣＰＵユニットに格納されるデータ交換情報の内容の一例を示す模式図である。
【図１８】本実施の形態の第２変形例に係る制御システムの構成例を示す模式図である。
【図１９】本実施の形態の第２変形例に係る制御システムにおけるＣＰＵユニットにおける接続構成の一例を示す模式図である。
【図２０】本実施の形態の第３変形例に係る制御システムの構成例を示す模式図である。
【図２１】本実施の形態に係る制御システムにおける設定ユーザインターフェイスの一例を示す図である。
【発明を実施するための形態】
【００２８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２９】
＜Ａ．適用例＞
まず、図１および図２を参照して、本発明が適用される場面の一例について説明する。
【００３０】
図１は、本発明の関連技術に係る制御システム１Ｘの構成例を示す模式図である。図２は、本実施の形態に係る制御システム１の構成例を示す模式図である。
【００３１】
比較のために、先に、本発明の関連技術に係る制御システム１Ｘについて説明する。図１を参照して、制御システム１Ｘは、ＣＰＵユニット１００Ｘと、複数の通信ユニット２００Ｘ−１，２００Ｘ−２，２００Ｘ−３（以下、「通信ユニット２００Ｘ」とも総称する。）とを含む。
【００３２】
図１に示す制御システム１Ｘの構成は、３つの通信デバイス３００−１，３００−２，３００−３（以下、「通信デバイス３００」とも総称する。）との間でそれぞれ通信処理を行うことが想定されている。
【００３３】
ＣＰＵユニット１００Ｘは、制御対象に対する指令値を演算する制御プログラムを実行する演算処理部に相当する。通信ユニット２００Ｘ−１，２００Ｘ−２，２００Ｘ−３は、一例として、通信ユニットであり、それぞれ通信デバイス３００−１，３００−２，３００−３との間で通信フレームなどのデータを送受信する処理を実行する。通信ユニット２００Ｘ−１，２００Ｘ−２，２００Ｘ−３は、データを送受信するための通信ポート２５０Ｘ−１，２５０Ｘ−２，２５０Ｘ−３をそれぞれ有している。
【００３４】
このように、図１に示す制御システム１Ｘにおいては、ＣＰＵユニット１００Ｘに、各々が通信ポートを有する通信ユニット２００Ｘを１または複数接続された構成が採用されている。各通信ユニット２００Ｘと接続対象の通信デバイス３００との間で、それぞれデータが送受信される構成が採用されている。図１に示すような制御システム１Ｘの構成を採用した場合には、以下のような課題が生じ得る。
【００３５】
（１）各通信ユニット２００Ｘが通信ポートを含めた通信処理に必要な回路構成が実行されるので、ハードウェアとしてのコストが増加する。
【００３６】
（２）各通信ユニット２００Ｘにおいて通信機能を実現する必要があり、複数の通信プロトコルに対応するような場合には、各通信ユニット２００Ｘの開発コストおよび開発時間が増加する。
【００３７】
このような課題に対して、本実施の形態に係る制御システム１においては、特定のユニットが有している通信機能を他のユニットが利用可能な環境を提供する。すなわち、特定のユニットが有している通信機能を他のユニット共有することで、上述したような本発明の関連技術に係る制御システム１Ｘにおいて生じ得る課題を解決する。
【００３８】
より具体的には、図２を参照して、制御システム１は、制御対象を制御するためのものであり、ＣＰＵユニット１００と、ＣＰＵユニット１００と電気的に接続された１または複数の通信ユニット２００−１，２００−２，２００−３（以下、「通信ユニット２００」とも総称する。）とを含む。
【００３９】
本明細書において、「通信ユニット」は、通信対象（図２に示す例では、通信デバイス３００）との間で、データを送受信するための論理的な通信処理が少なくとも実装されたユニットを包含する用語である。図２に示す通信ユニット２００の各々は、論理通信部２７０を有している。本明細書において、「論理通信部」は、上述したような論理的な通信処理を提供するハードウェアロジックおよび／またはソフトウエアロジックを包含する。
【００４０】
例えば、ＯＳＩ参照モデルを参照すると、論理通信部２７０は、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層などに相当する層を有することになる。但し、論理通信部２７０は、物理層は有していない。
【００４１】
典型的な通信ユニット２００として、例えば、制御対象に対するセーフティ機能を提供するセーフティユニットなどが想定されている。セーフティユニットは、論理通信部に加えて、セーフティロジックをサイクリックに実行するための演算処理部を有していてもよい。但し、本明細書における「通信ユニット」は、セーフティユニットに限られず、例えば、ＣＰＵユニット１００が接続されるネットワークを監視するようなユニットや、データベースや各種サーバ機能を提供するユニットなどであってもよい。
【００４２】
ＣＰＵユニット１００は、一種の制御装置であり、データを送受信するための通信ポート１５０を有している。ＣＰＵユニット１００の通信ポート１５０は、ＣＰＵユニット１００だけに限らず、ＣＰＵユニット１００に接続されている通信ユニット２００からも利用可能になっている。そのため、通信ユニット２００の論理通信部２７０は、ＣＰＵユニット１００の通信ポート１５０と電気的に接続された通信デバイス３００との間でデータを送受信するように構成される。
【００４３】
すなわち、ＣＰＵユニット１００は、通信ユニット２００から受信したデータを通信ポート１５０に中継（ブリッジ）できる。また、ＣＰＵユニット１００は、通信ポート１５０で受信したデータを通信ユニット２００に中継（ブリッジ）できる。
【００４４】
ＣＰＵユニット１００は、通信ユニット２００から送信された送信データを送信先の通信デバイス３００へ転送する転送処理部を有する。このような転送処理部によって、通信ユニット２００から送出されたデータは、ＣＰＵユニット１００に転送され、ＣＰＵユニット１００の通信ポート１５０から目的の通信デバイス３００へ送出される。
【００４５】
ＣＰＵユニット１００の転送処理部は、いずれかの通信デバイス３００から受信した受信データを当該受信データの送信先の通信ユニット２００へ転送する。このような転送処理部によって、ある通信デバイス３００から送出されたデータは、ＣＰＵユニット１００の通信ポート１５０で受信され、ＣＰＵユニット１００から目的の通信ユニット２００へ送出される。
【００４６】
このような各通信ユニット２００と各通信デバイス３００との間の中継は、ＣＰＵユニット１００に格納されるデータ交換情報１８０に従って行われる。
【００４７】
後述するように、ＣＰＵユニット１００と各通信ユニット２００との間は、典型的には、通信ライン（以下、「内部バス」とも称す。）を介して接続されている。ＣＰＵユニット１００は、データ交換情報１８０に従って、いずれかの通信デバイス３００から通信ポート１５０を介して受信したデータを、内部バスを介して送信先の通信ユニット２００へ転送するとともに、いずれかの通信ユニット２００から内部バスを介して受信したデータを、通信ポート１５０を介して送信先の通信デバイス３００へ転送する。
【００４８】
図２に示すような構成を採用することで、ＣＰＵユニット１００に実装される通信機能を共有できるので、通信ユニット２００に通信機能を実装する必要がなく、通信ユニット２００のハードウェアとしてのコストを低減できるとともに、通信ユニット２００の開発コストおよび開発時間を抑制できる。
【００４９】
なお、ＣＰＵユニット１００の通信ポート１５０を介して通信デバイス３００との間でデータを送受信するための通信プロトコルとしては、一般的なＴＣＰ／ＩＰに加えて、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＥｔｈｅｒＣＡＴ（登録商標）、ＦＳｏＥ（Functional Safety over EtherCAT）、ＣＩＰ  Ｓａｆｅｔｙ（ｏｎ  ＥｔｈｅｒＮｅｔ／ＩＰ、または、ｏｎ  ＤｅｖｉｃｅＮｅｔ）、Ｐｒｏｆｉｎｅｔ  Ｓａｆｅｔｙなどが用いられてもよい。さらに、これらの通信プロトコルに限定されず、任意の通信プロコトルを採用してもよい。
【００５０】
以下の説明においては、通信ユニット２００と通信デバイス３００との間で送受信される主たるデータを「通信フレーム」として説明する。但し、転送処理を行うＣＰＵユニット１００と通信ユニット２００との間、および、ＣＰＵユニット１００の内部においては、「通信フレーム」に「制御情報」が付加されることもあるので、両者を合わせたデータが送受信の対象となる場合もある。
【００５１】
なお、「通信フレーム」との用語に基づいて、送受信されるデータを限定的に解釈すべきではなく、例えば、「パケット」の単位で送受信される場合や、より長いデータ列の単位で送受信されるような場合も含み得る。
【００５２】
＜Ｂ．ハードウェア構成例＞
次に、本実施の形態に係る制御システム１を構成する各ユニットのハードウェア構成例について説明する。
【００５３】
（ｂ１：ユニット間の接続構成）
図３は、本実施の形態に係る制御システム１のユニット間の接続構成を示す模式図である。図３を参照して、ＣＰＵユニット１００は、通信ラインである内部バス４０（ダウンリンク４２およびアップリンク４４）を介して、１または複数の通信ユニット２００と互いに通信処理可能になっている。図３に示す制御システム１の接続構成においては、ＣＰＵユニット１００および１または複数の通信ユニット２００は、デイジーチェーン接続されている。
【００５４】
一例として、内部バス４０（ダウンリンク４２およびアップリンク４４）としては、シリアル通信が採用されており、通信対象のデータは、時系列に一列に並べられた形で順次伝搬する。ダウンリンク４２上では、ＣＰＵユニット１００から通信ユニット２００へ向けて一方向にデータが順次転送される。一方、アップリンク４４上では、いずれかの通信ユニット２００からＣＰＵユニット１００へ向けて一方向にデータが順次転送される。
【００５５】
通信ユニット２００の各々は、ダウンリンク４２またはアップリンク４４を伝搬する通信フレームを受信すると、その通信フレームからデータを復号して必要な処理を実行する。そして、通信ユニット２００の各々は、受信した通信フレームを次段の通信ユニット２００へ再送信（転送）する。
【００５６】
このような通信フレームの再送信（転送）処理を実現するために、通信ユニット２００の各々は、ダウンリンク４２に関して、受信部（以下「ＲＸ」とも記す。）２３０Ｒおよび送信部（以下「ＴＸ」とも記す。）２３０Ｔを含むとともに、アップリンク４４に関して、受信部２４０Ｒおよび送信部２４０Ｔを含む。また、通信ユニット２００の各々は、プロセッサ２０２を含む。
【００５７】
ＣＰＵユニット１００は、ネットワーク通信部１２０と、内部バス通信部１３０とを含む。ネットワーク通信部１２０は、通信ポート１５０からの通信フレームの送出処理、および、通信ポート１５０を介した通信フレームの受信処理を担当する。内部バス通信部１３０は、内部バス４０を介した通信フレームの送出処理および通信フレームの受信処理を担当する。ネットワーク通信部１２０および内部バス通信部１３０における処理は、プロセッサ１０２によって制御される。すなわち、プロセッサ１０２がシステムプログラム１０６を実行することで、転送処理部を実現する。
【００５８】
（ｂ２：ＣＰＵユニット１００の構成例）
図４は、本実施の形態に係る制御システム１に含まれるＣＰＵユニット１００のハードウェア構成例を示す模式図である。図４を参照して、ＣＰＵユニット１００は、プロセッサ１０２と、フラッシュメモリ１０４と、ＲＡＭ（Random Access Memory）１１０と、ネットワーク通信部１２０と、内部バス通信部１３０とを含む。
【００５９】
プロセッサ１０２は、フラッシュメモリ１０４に予め格納されているシステムプログラム１０６を読み出して実行することで、ネットワーク通信部１２０および内部バス通信部１３０に対する制御処理を実現する。プロセッサ１０２により実行される処理の詳細については、後述する。
【００６０】
フラッシュメモリ１０４は、システムプログラム１０６に加えて、構成情報１０８と、データ交換情報１８０とを格納している。
【００６１】
構成情報１０８は、ＣＰＵユニット１００に接続されているそれぞれの通信ユニット２００の設定値などを含む。
【００６２】
データ交換情報１８０は、後述するような、各通信ユニット２００と通信デバイス３００との間の通信フレームの送受信を制御するための経路情報などを含む。
【００６３】
ＲＡＭ１１０には、図示しないワーキングデータに加えて、コネクション管理情報１８２などが配置される。コネクション管理情報１８２は、後述するように、ＣＰＵユニット１００から通信デバイス３００への通信フレームの送信処理に必要な管理情報を含む。典型的には、コネクション管理情報１８２は、送信先との間でコネクションを確立する毎に、適宜生成または更新される。
【００６４】
ネットワーク通信部１２０は、ネットワークコントローラ１２２と、送受信回路１２４と、共有メモリ１２８とを含む。
【００６５】
ネットワークコントローラ１２２は、共有メモリ１２８に蓄積される通信フレームに対して、転送処理などを実行する。
【００６６】
送受信回路１２４は、ネットワークコントローラ１２２から与えられるデータ列を電気信号に変調して、通信ポート１５０に接続されるネットワークケーブルを介して送出するとともに、通信ポート１５０に接続されるネットワークケーブルを介して受信される電気信号をデータ列に復調してネットワークコントローラ１２２へ出力する。
【００６７】
共有メモリ１２８は、ネットワークコントローラ１２２に加えて、プロセッサ１０２および内部バス通信部１３０からのデータアクセスを受付ける。共有メモリ１２８は、受信バッファ１２８Ｒおよび送信バッファ１２８Ｔを有している。受信バッファ１２８Ｒには、通信ポート１５０を介して受信された通信フレームが蓄積され、送信バッファ１２８Ｔには、通信ポート１５０を介して送出される予定の通信フレームが蓄積される。
【００６８】
内部バス通信部１３０は、内部バスコントローラ１３２と、送信回路１３４と、受信回路１３６と、共有メモリ１３８とを含む。
【００６９】
内部バスコントローラ１３２は、共有メモリ１３８に蓄積される通信フレームに対して、転送処理などを実行する。
【００７０】
送信回路１３４は、内部バスコントローラ１３２から与えられるデータ列を電気信号に変調して、内部バス４０（ダウンリンク４２）を介して送出する。受信回路１３６は、内部バス４０（アップリンク４４）を介して受信される電気信号をデータ列に復調して内部バスコントローラ１３２へ出力する。
【００７１】
共有メモリ１３８は、内部バスコントローラ１３２に加えて、プロセッサ１０２およびネットワーク通信部１２０からのデータアクセスを受付ける。共有メモリ１３８は、受信バッファ１３８Ｒおよび送信バッファ１３８Ｔを有している。受信バッファ１３８Ｒには、内部バス４０（アップリンク４４）を介して受信された通信フレームが蓄積され、送信バッファ１３８Ｔには、内部バス４０（ダウンリンク４２）を介して送出される予定の通信フレームが蓄積される。
【００７２】
（ｂ３：通信ユニット２００の構成例）
図５は、本実施の形態に係る制御システム１に含まれる通信ユニット２００のハードウェア構成例を示す模式図である。図５を参照して、通信ユニット２００は、プロセッサ２０２と、フラッシュメモリ２０４と、機能モジュール２０６と、共有メモリ２０８と、内部バス通信部２２０とを含む。
【００７３】
プロセッサ２０２は、フラッシュメモリ２０４に予め格納されているシステムプログラム２１６およびアプリケーションプログラム２１８を読み出して実行することで、制御対象に応じた制御処理を実現する。アプリケーションプログラム２１８には、任意の通信デバイス３００との間でデータを送受信するような処理が規定されていてもよい。
【００７４】
すなわち、図２に示す論理通信部２７０は、通信ユニット２００のプロセッサ２０２がシステムプログラム２１６および／またはアプリケーションプログラム２１８を実行することで、実現されてもよい。
【００７５】
機能モジュール２０６は、各通信ユニット２００が担当する処理を実現するためのハードウェア回路であり、例えば、フィールドからの入力信号を受付ける回路、フィールドへの出力信号を発生する回路、他のコントローラとの間でシリアル通信を行う回路などを含み得る。なお、プロセッサ２０２がアプリケーションプログラム２１８を実行することで、必要な処理を実現できる場合には、機能モジュール２０６を省略してもよい。
【００７６】
共有メモリ２０８は、内部バス通信部２２０に加えて、プロセッサ２０２などからのデータアクセスを受付ける。共有メモリ２０８は、受信バッファ２０８Ｒおよび送信バッファ２０８Ｔを有している。受信バッファ２０８Ｒには、内部バス通信部２２０が受信した通信フレームが蓄積され、送信バッファ２０８Ｔには、内部バス通信部２２０が送出する予定の通信フレームが蓄積される。
【００７７】
内部バス通信部２２０は、逆シリアル変換器（de-serializer：以下「ＤＥＳ」とも称す。）２３２，２４２と、シリアル変換器（ＳＥＲ：serializer：以下「ＳＥＲ」とも称す。）２３６，２４６と、転送コントローラ２３４，２４４とを含む。
【００７８】
ＤＥＳ２３２と、転送コントローラ２３４と、ＳＥＲ２３６とは、図３に示すダウンリンク４２についての受信部２３０Ｒおよび送信部２３０Ｔに対応する。同様に、ＤＥＳ２４２と、転送コントローラ２４４と、ＳＥＲ２４６とは、図４に示すアップリンク４４についての送信部２４０Ｔおよび受信部２４０Ｒに対応する。
【００７９】
内部バス通信部２２０は、さらに、受信処理部２５０および送信処理部２６０を含む。
受信処理部２５０は、転送コントローラ２３４および２４４に接続され、前段の通信ユニット２００から受信する通信フレームを処理する。受信処理部２５０は、復号部２５２と、ＣＲＣチェック部２５４とを含む。復号部２５２は、転送コントローラ２３４および２４４において受信された通信フレームを所定のアルゴリズムに従ってデータへ復号する。ＣＲＣチェック部２５４は、通信フレームの最後に付加されるフレームチェックシーケンス（Frame Check Sequence：ＦＣＳ）などに基づいて誤りチェック（例えば、ＣＲＣ（Cyclic Redundancy Check）符号）を行う。受信処理部２５０から出力されるデータは、受信バッファ２０８Ｒに蓄積される。
【００８０】
送信処理部２６０は、転送コントローラ２３４および２４４に接続され、プロセッサ２０２などからの指示に従って、次段の通信ユニット２００へ再送信（転送）する通信フレームの生成およびタイミング制御などを行う。送信処理部２６０は、ＣＲＣ生成部２６２と、符号化部２６４とを含む。ＣＲＣ生成部２６２は、送信バッファ２０８Ｔに蓄積されるデータに対して誤り制御符号（ＣＲＣ）を付加する。符号化部２６４は、ＣＲＣ生成部２６２からのデータを符号化し、対応する転送コントローラ２３４または２４４へ出力する。
【００８１】
＜Ｃ．通信ユニットと通信デバイスとの間の通信処理＞
次に、通信ユニット２００と通信デバイス３００との間の通信処理に係る構成おおび処理について説明する。
【００８２】
（ｃ１：接続構成）
図６は、本実施の形態に係る制御システム１におけるＣＰＵユニット１００と通信ユニット２００との接続構成の一例を示す模式図である。図６を参照して、ＣＰＵユニット１００の内部バスコントローラ１３２に繋がる共通の内部バス４０に対して、各通信ユニット２００の内部バス通信部２２０がそれぞれ接続されている。
【００８３】
ＣＰＵユニット１００とそれぞれの通信ユニット２００との間は、予め定められた更新周期でデータ交換をしている。より具体的には、ＣＰＵユニット１００から各通信ユニット２００送信されるＯＵＴデータ（指令値など）と、各通信ユニット２００からＣＰＵユニット１００へ送信されるＩＮデータ（測定値および状態値など）とは、所定の更新周期毎に内部バス４０を介して伝送され、これによって、ＣＰＵユニット１００および各通信ユニット２００が保持するデータは所定の更新周期毎に更新される。このような内部バス４０を介した所定周期毎のデータ更新を「ＩＯリフレッシュ」とも称す。
【００８４】
本明細書において、「ＩＯリフレッシュ」は、ＣＰＵユニット１００と１または複数の通信ユニット２００との間で、予め定められた周期（以下、「ＩＯリフレッシュ周期」とも称す。）毎にデータ交換を行う処理を包含する。
【００８５】
ＣＰＵユニット１００において、ＩＯリフレッシュにより更新されるデータは、内部バス通信部１３０の共有メモリ１３８に保持される。ＩＯリフレッシュ周期は、一般的に、数１００μｓ〜数ｍｓであり、高速なデータ更新を実現できる。
【００８６】
本実施の形態に係る制御システム１においては、内部バス４０を介したＩＯリフレッシュを利用して、通信ユニット２００が生成する通信フレームおよび通信デバイス３００から受信される通信フレームを伝送する。
【００８７】
ＣＰＵユニット１００の内部バス通信部１３０、および、通信ユニット２００の内部バス通信部２２０は、ＩＯリフレッシュ周期毎にデータ交換を行うためのデータ通信部に相当する。
【００８８】
一方、ＣＰＵユニット１００と通信デバイス３００との間の通信処理（通信フレームの送受信処理）は、ＣＰＵユニット１００のネットワーク通信部１２０が担当する。通信デバイス３００との間で送受信される通信フレームは、ネットワーク通信部１２０の共有メモリ１２８に蓄積される。
【００８９】
ＣＰＵユニット１００においては、ネットワーク通信部１２０の共有メモリ１２８に蓄積される通信フレームと、内部バス通信部１３０の共有メモリ１３８に蓄積される通信フレームとを適宜データ交換することで、１または複数の通信ユニット２００と１または複数の通信デバイス３００との間の通信処理を実現する。すなわち、ＣＰＵユニット１００は、内部バス４０を介して送受信されるデータと、通信ポート１５０およびネットワークケーブルを介して送受信されるデータとの間を相互に転送することで、通信ユニット２００と通信デバイス３００との間の通信処理を仲介するルータのように機能する。
【００９０】
図６に示すように、いずれかの通信ユニット２００が通信フレームを生成する（（１）通信フレーム生成）と、その生成された通信フレームは、ＩＯリフレッシュのタイミングで、通信ユニット２００からＣＰＵユニット１００へ伝送される（（２）ＩＯリフレッシュ）。このとき、ＩＯリフレッシュによるデータ交換を利用するので、生成された通信フレームには当該制御情報が付加される。
【００９１】
ＩＯリフレッシュにおいては、ＣＰＵユニット１００の内部バス通信部１３０の共有メモリ１３８と通信ユニット２００との間でデータが交換される。
【００９２】
続いて、ＣＰＵユニット１００の内部バス通信部１３０の共有メモリ１３８とネットワーク通信部１２０の共有メモリ１２８との間でデータが交換される（（３）データ交換）。共有メモリ１３８と共有メモリ１２８との間のデータ交換は、予め用意されたデータ交換情報１８０に従って実行される。
【００９３】
データ交換情報１８０は、典型的には、ユーザがサポート装置などを用いて設定することができる。データ交換情報１８０は、送信元のメモリアドレス、送信先のメモリアドレス、送信サイズなどを含む。
【００９４】
続いて、ＣＰＵユニット１００のネットワーク通信部１２０は、共有メモリ１２８に蓄積された通信フレームを通信デバイス３００へ送信し、あるいは、通信デバイス３００から受信した通信フレームを共有メモリ１２８に蓄積する（（４）通信フレーム送受信）。なお、共有メモリ１２８に蓄積された通信フレームに制御情報が付加されている場合には、当該付加されている制御情報に規定される通信プロトコルに従って、制御情報を除いた通信フレームを送信する。
【００９５】
ＣＰＵユニット１００が通信デバイス３００から受信した通信フレームは、通信フレームとは逆の手順で、対象の通信ユニット２００へ通信フレームが転送される。そして、通信ユニット２００は、受信した通信フレームを処理する（（５）通信フレーム処理）。
【００９６】
図６に示すように、本実施の形態に係る制御システム１において、ＣＰＵユニット１００は、通信ユニット２００とのＩＯリフレッシュ結果を格納する記憶領域（共有メモリ１３８）と、通信ポート１５０を介した通信処理用の記憶領域（共有メモリ１２８）とを有している。すなわち、ＣＰＵユニット１００は、１または複数の通信ユニット２００との間でデータ交換されるデータを格納する第１の記憶領域（共有メモリ１３８）と、通信ポート１５０を介して通信デバイス３００との間で送受信されるデータを格納する第２の記憶領域（共有メモリ１２８）とを有している。
【００９７】
ＣＰＵユニット１００は、予め定められたデータ交換情報１８０に従って、第１の記憶領域（共有メモリ１３８）と第２の記憶領域（共有メモリ１２８）との間でデータ交換を行う。このような記憶領域間で通信フレームを中継することで、通信ユニット２００と通信デバイス３００との間の通信処理を実現する。
【００９８】
（ｃ２：メモリレイアウトおよびデータ交換情報）
次に、ＣＰＵユニット１００における、ネットワーク通信部１２０の共有メモリ１２８および内部バス通信部１３０の共有メモリ１３８におけるメモリレイアウト、ならびに、共通メモリ間でデータを交換するためのデータ交換情報１８０について説明する。
【００９９】
図７は、本実施の形態に係るＣＰＵユニット１００の共有メモリにおけるメモリレイアウトの一例を示す模式図である。図７を参照して、内部バス通信部１３０の共有メモリ１３８には、それぞれの通信ユニット２００との間のＩＯリフレッシュに対応して、データの格納領域が規定されている。図７に示す例においては、共有メモリ１３８には、通信ユニット２００−１，２００−２，２００−３，・・・のそれぞれに領域が割当てられており、各領域には、対応する通信ユニット２００との間でデータ交換されるＩＮデータおよびＯＵＴデータが格納される。
【０１００】
ＩＮデータの一部には、通信ユニット２００から送信される通信フレームが含まれ、ＯＵＴデータには、通信ユニット２００へ転送される通信フレームが含まれる。
【０１０１】
一方、ネットワーク通信部１２０の共有メモリ１２８にも、通信ユニット２００−１，２００−２，２００−３，・・・のそれぞれに領域が割当てられている。共有メモリ１２８には、通信デバイス３００との間で送受信される通信フレームのみが格納される。
【０１０２】
このような共有メモリ１３８のメモリレイアウトと共有メモリ１２８のメモリレイアウトとを整合させるために、データ交換情報１８０が参照される。すなわち、データ交換情報１８０は、共有メモリ１３８上にある通信フレームが共有メモリ１２８上のいずれの位置にある通信フレームと対応するのかを規定するとともに、共有メモリ１２８上にある通信フレームが共有メモリ１３８上のいずれの位置にある通信フレームと対応するのかを規定する。
【０１０３】
このように、ＣＰＵユニット１００で実行されるデータ交換は、データ交換情報１８０を参照して、共有メモリ１３８上にある通信ユニット２００から送信された通信フレームを共有メモリ１２８上のしかるべき位置に書込む処理、および、共有メモリ１２８上にある通信ユニット２００へ向けられた通信フレームを共有メモリ１３８上のしかるべき位置に書込む処理を含む。
【０１０４】
図８は、本実施の形態に係るＣＰＵユニット１００に格納されるデータ交換情報１８０の内容の一例を示す模式図である。図８を参照して、データ交換情報１８０は、１または複数のデータ交換設定を含む。データ交換設定の各々は、送信元のメモリアドレス、送信先のメモリアドレス、送信サイズなどを含む。
【０１０５】
内部バス通信部１３０およびネットワーク通信部１２０のいずれか一方が送信元となり、他方が送信先となる。また、メモリアドレスとしては、共有メモリ１２８または共有メモリ１３８上のメモリアドレスが規定される。送信サイズは、交換対象のとなる通信フレームの大きさなどを示す。
【０１０６】
例えば、通信ユニット２００からいずれかの通信デバイス３００へ通信フレームを送信する場合において、データ交換情報１８０は、（１）対象の通信ユニット２００における記憶領域のパス（コピー元）と、（２）内部バス通信部１３０の共有メモリ１３８における記憶領域のパス（コピー先）と、（３）通信デバイス３００宛の通信フレームと制御情報とのデータサイズとを含む。
【０１０７】
逆に、いずれかの通信デバイス３００から通信ユニット２００へ通信フレームを送信する場合において、データ交換情報１８０は、（１）内部バス通信部１３０の共有メモリ１３８における記憶領域のパス（コピー元）と、（２）対象の通信ユニット２００における記憶領域のパス（コピー先）と、（３）通信ユニット２００宛の通信フレームと制御情報とのデータサイズとを含む。
【０１０８】
なお、記憶領域のパスは、送信および受信に対してそれぞれ設定された順に、先頭から割当ることで、記憶領域のサイズをオーバしないようにデータ配置を制御する。
【０１０９】
（ｃ３：通信フレーム送信処理）
次に、通信ユニット２００から通信フレームを送信する際の処理について説明する。
【０１１０】
図９は、本実施の形態に係る制御システム１における通信フレームの送信処理を説明するための模式図である。図９には、ＣＰＵユニット１００とバス接続されているいずれかの通信ユニット２００が生成した通信フレームを、ＣＰＵユニット１００とネットワーク接続されている通信デバイス３００へ送信する処理を示す。
【０１１１】
本実施の形態に係る制御システム１においては、通信フレームの応答性を保証するために、高速かつサイクリックなデータ伝送であるＩＯリフレッシュを用いて、通信フレームを伝送する。但し、ＩＯリフレッシュを用いる場合には、送信すべき通信フレームが新たに追加されるか否かにかかわらず、ＩＯリフレッシュ更新周期毎にデータ交換が行われるので、新たな通信フレームの生成を検知するために、都度更新される制御情報が通信フレームに付加される。
【０１１２】
このように、ＩＯリフレッシュを用いて通信フレームの送信をＣＰＵユニット１００へ依頼する場合には、通信フレームの変化の有無を管理する必要があり、このような通信フレームの変化を検知するために、制御情報が用いられる。
【０１１３】
より具体的には、通信ユニット２００が通信フレームを生成および送信する際に、当該通信フレームに付加される制御情報の内容が更新される。ＣＰＵユニット１００は、所定周期（以下、「通信フレームポーリング周期」とも称す。）毎に、共有メモリ１２８に蓄積される各通信フレームに付加されている制御情報の内容を監視する。ＣＰＵユニット１００は、いずれかの通信フレームに付加されている制御情報の内容の更新を検知すると、当該更新が検知された制御情報が付加されている通信フレームの送信処理を開始する。
【０１１４】
すなわち、ＣＰＵユニット１００は、通信フレームポーリング周期毎に、ＩＯリフレッシュにより通信ユニット２００との間でデータ交換される通信フレームに付加されている制御情報を確認し、その制御情報の変化をトリガとして、通信フレームを送信する。このような制御情報を用いることで、サイクリックなデータ交換であるＩＯリフレッシュを用いて、通信フレームの送信を実現できる。
【０１１５】
基本的には、通信フレームポーリング周期は、ＩＯリフレッシュ周期より長い時間に設定されるが、ＩＯリフレッシュ周期と同じ時間長さであってもよいし、ＩＯリフレッシュ周期より短い時間に設定されていてもよい。
【０１１６】
なお、通信ユニット２００としてセーフティユニットが用いられる場合には、通信フレームポーリング周期は、セーフティタスク周期の長さに設定されてもよい。すなわち、セーフティタスクの監視周期に対応させて、データの送受信を行うようにしてもよい。
【０１１７】
図９には、通信フレームの送信処理の具体例を示す。図９を参照して、（１）通信フレーム生成において、通信ユニット２００は、所定の送信周期毎に通信フレーム４０２を生成する。
【０１１８】
新たに送信する通信フレーム４０２（送信データ）が生成されると、先に生成した通信フレーム４０２（送信データ）に付加された制御情報４０４とは異なる内容の制御情報４０４を付加して、ＣＰＵユニット１００とデータ交換を行う。一例として、通信フレーム４０２に付加される制御情報４０４は、新たに送信する通信フレーム４０２が生成されるとインクリメント（または、デクリメント）される値を含む。すなわち、新たに送信する通信フレーム４０２（送信データ）が生成されると、先に生成した通信フレーム４０２（送信データ）に付加された制御情報４０４の値をインクリメントまたはデクリメントすることで、新たな制御情報４０４が生成される。
【０１１９】
図９に示す例では、先行の通信フレーム４０２に付加される制御情報４０４には「１００」が設定されており、後続の通信フレーム４０２が生成されると、その新たに生成された通信フレーム４０２に付加される制御情報４０４には、「１００」から１だけインクリメントされた「１０１」が格納される。
【０１２０】
このように、通信ユニット２００は、所定の送信周期毎に通信フレーム４０２を生成するとともに、生成する通信フレーム４０２に付加する制御情報４０４の値を所定規則に従って更新する。
【０１２１】
通信ユニット２００が生成する通信フレーム４０２および通信フレーム４０２に付加される制御情報４０４は、ＩＯリフレッシュの対象となっており、ＩＯリフレッシュ周期毎に、内部バス通信部１３０の共有メモリ１３８に伝送される。共有メモリ１３８に格納される、通信ユニット２００からの通信フレーム４１２および通信フレーム４１２に付加される制御情報４１４は、ＩＯリフレッシュ周期毎に更新されることになる（（２）ＩＯリフレッシュ）。
【０１２２】
ＣＰＵユニット１００において、内部バス通信部１３０の共有メモリ１３８とネットワーク通信部１２０の共有メモリ１２８との間でデータが交換される（（３）データ交換）。データ交換の結果、共有メモリ１２８には、通信ユニット２００により生成されたものと同じ通信フレーム４２２および制御情報４２４が格納される。共有メモリ１３８と共有メモリ１２８との間でデータ交換は、ＩＯリフレッシュ周期と同じ周期あるいはより短い周期でサイクリックに実行されるので、共有メモリ１２８における通信フレーム４１２および通信フレーム４１２に付加される制御情報４１４の更新と、共有メモリ１３８における通信フレーム４２２および通信フレーム４２２に付加される制御情報４２４の更新とは、ほぼ同時に実行されることになる。
【０１２３】
ネットワーク通信部１２０は、通信フレームポーリング周期毎に、共有メモリ１３８上の制御情報４２４の値を監視する。制御情報４２４の値の変化を検知すると、ネットワーク通信部１２０は、値が変化した制御情報４２４が付加されている通信フレーム４２２に対応する通信フレーム４３２を送信する（（４）通信フレーム送受信）。
【０１２４】
図９に示す例では、第１番目の通信フレームポーリング周期が到来したときに、制御情報４０４が「９９」から「１００」に変化したと検知され、通信フレーム４３２が送信される。続く第２番目の通信フレームポーリング周期が到来したときに、制御情報４０４は「１００」のままであるので、通信フレーム４３２の送信は行われない。
【０１２５】
続く第３番目の通信フレームポーリング周期が到来したときに、制御情報４０４は「１００」から「１０１」に変化したことが検知されるので、通信フレーム４３２が送信される。
【０１２６】
このように、ＣＰＵユニット１００のネットワーク通信部１２０は、所定の送信周期（通信フレームポーリング周期）毎に、送信すべき通信フレーム４３２が到着しているか否かを監視するとともに、到着していると判断されると、当該通信フレーム４３２の送信を開始する。
【０１２７】
図１０は、本実施の形態に係る制御システム１のＣＰＵユニット１００における通信フレームの送信処理を説明するための模式図である。図１０を参照して、ネットワーク通信部１２０のネットワークコントローラ１２２は、論理的構成として、アプリケーションプロトコルスタック１２２２と、ＴＣＰ／ＩＰプロトコルスタック１２２４と、物理層ドライバ１２２６とを含む。
【０１２８】
共有メモリ１２８に格納された通信フレームを送信する場合には、アプリケーションプロトコルスタック１２２２は、対象の通信フレームに対応するデータ交換情報１８０の設定と、コネクション管理情報１８２とを探索する。
【０１２９】
コネクション管理情報１８２は、例えば、コネクションＩＤ、送信先ＩＰアドレス、使用ＵＤＰポート、通信フレームシーケンスカウントなどを含む。アプリケーションプロトコルスタック１２２２は、通信フレームの送信に先だって、送信先との間のコネクションを確立する。
【０１３０】
ＴＣＰ／ＩＰプロトコルスタック１２２４は、送信対象の通信フレームおよびコネクション管理情報１８２に基づいて、Ｅｔｈｅｒｎｅｔ（登録商標）フレームを生成する。物理層ドライバ１２２６は、ＴＣＰ／ＩＰプロトコルスタック１２２４からのＥｔｈｅｒｎｅｔフレームを電気信号として出力できるように、送受信回路１２４に指令を与える。
【０１３１】
以上のような手順によって、通信ユニット２００が生成した通信フレームがＣＰＵユニット１００を介して、通信デバイス３００へ送信される。
【０１３２】
図１１は、本実施の形態に係る制御システム１における通信フレームの送信処理の処理手順を示すフローチャートである。図１１には、ＣＰＵユニット１００における処理手順、および、通信ユニット２００における処理手順が示されている。図１１に示す各ステップは、ＣＰＵユニット１００のプロセッサ１０２および通信ユニット２００のプロセッサ２０２がそれぞれプログラムを実行することで実現されてもよい。
【０１３３】
図１１を参照して、通信ユニット２００は、送信すべき通信フレームが存在するか否かを判断する（ステップＳ１００）。送信すべき通信フレームが存在しなければ（ステップＳ１００においてＮＯ）、ステップＳ１０２およびＳ１０４の処理はスキップされる。
【０１３４】
送信すべき通信フレームが存在していれば（ステップＳ１００においてＹＥＳ）、通信ユニット２００は、送信すべき通信フレームに付加する制御情報の内容を決定し（ステップＳ１０２）、送信すべき通信フレームおよび決定した制御情報を共有メモリ１２８の送信バッファ１２８Ｔに格納する（ステップＳ１０４）。
【０１３５】
続いて、通信ユニット２００は、ＩＯリフレッシュ周期が到来しているか否かを判断する（ステップＳ１０６）。ＩＯリフレッシュ周期が到来していなければ（ステップＳ１０６においてＮＯ）、ＩＯリフレッシュ周期の到来を待つ。
【０１３６】
ＩＯリフレッシュ周期が到来していれば（ステップＳ１０６においてＹＥＳ）、通信ユニット２００は、ＩＯリフレッシュを実行して、ＣＰＵユニット１００との間でデータ交換を行う（ステップＳ１０８）。そして、ステップＳ１００以下の処理が繰返される。
【０１３７】
一方、ＣＰＵユニット１００は、まず、ＣＰＵユニット１００は、予め定められた設定に従って、送信対象の通信フレームの送信先との間でコネクションを確立する（ステップＳ２００）。コネクションが確立されると、その確立したコネクションを管理するためのコネクション管理情報１８２が生成または更新される。続いて、ＣＰＵユニット１００は、ＩＯリフレッシュ周期が到来しているか否かを判断する（ステップＳ２０２）。ＩＯリフレッシュ周期が到来していなければ（ステップＳ２０２においてＮＯ）、ＩＯリフレッシュ周期の到来を待つ。
【０１３８】
ＩＯリフレッシュ周期が到来していれば（ステップＳ２０２においてＹＥＳ）、ＣＰＵユニット１００は、ＩＯリフレッシュを実行して、通信ユニット２００との間でデータ交換を行う（ステップＳ２０４）。データ交換によって取得されたデータは、内部バス通信部１３０の共有メモリ１３８に格納される。続いて、ＣＰＵユニット１００は、データ交換情報１８０に従って、内部バス通信部１３０の共有メモリ１３８とネットワーク通信部１２０の共有メモリ１２８との間でデータ交換を行う（ステップＳ２０６）。
【０１３９】
ＣＰＵユニット１００は、通信フレームポーリング周期が到来しているか否かを判断する（ステップＳ２０８）。通信フレームポーリング周期が到来していなければ（ステップＳ２０８においてＮＯ）、ステップＳ２０２以下の処理が繰返される。
【０１４０】
通信フレームポーリング周期が到来していれば（ステップＳ２０８においてＹＥＳ）、ＣＰＵユニット１００は、内部バス通信部１３０の共有メモリ１３８上にある制御情報のうち値が変化しているものがあるか否かを判断する（ステップＳ２１０）。内部バス通信部１３０の共有メモリ１３８上にある制御情報のうち値が変化しているものがなければ（ステップＳ２１０においてＮＯ）、ステップＳ２０２以下の処理が繰返される。
【０１４１】
内部バス通信部１３０の共有メモリ１３８上にある制御情報の値が変化しているものがあれば（ステップＳ２１０においてＹＥＳ）、ＣＰＵユニット１００は、値が変化している制御情報に対応する送信対象の通信フレームについて、送信先とのコネクションが確立されているか否かを判断する（ステップＳ２１２）。送信先とのコネクションが確立されていなければ（ステップＳ２１２においてＮＯ）、ステップＳ２００以下の処理が繰返される。
【０１４２】
送信先とのコネクションが確立済みであれば（ステップＳ２１２においてＹＥＳ）、ＣＰＵユニット１００は、送信対象の通信フレームを送信する（ステップＳ２１４）。そして、ステップＳ２０２以下の処理が繰返される。
【０１４３】
（ｃ４：通信フレーム受信処理）
次に、通信ユニット２００が通信フレームを受信する際の処理について説明する。
【０１４４】
図１２は、本実施の形態に係る制御システム１における通信フレームの受信処理を説明するための模式図である。図１２には、ＣＰＵユニット１００とネットワーク接続されているいずれかの通信デバイス３００から受信した通信フレームを、ＣＰＵユニット１００とバス接続されている通信ユニット２００へ転送する処理を示す。
【０１４５】
上述したように、本実施の形態に係る制御システム１においては、通信フレームの応答性を保証するために、高速かつサイクリックなデータ伝送であるＩＯリフレッシュを用いて、通信フレームを伝送する。但し、ＩＯリフレッシュを用いる場合には、送信すべき通信フレームが新たに追加されるか否かにかかわらず、ＩＯリフレッシュ更新周期毎にデータ交換が行われるので、新たな通信フレームの生成を検知するために、都度更新される制御情報が通信フレームに付加される。
【０１４６】
より具体的には、ＣＰＵユニット１００は、いずれかの通信デバイス３００から通信フレームを受信すると、その受信した通信フレームを対象の通信ユニット２００へ転送する際に、当該通信フレームに付加される制御情報の内容が更新される。通信ユニット２００は、共有メモリ１３８との間でＩＯリフレッシュされる各通信フレームに付加されている制御情報の内容を、所定周期（通信フレームポーリング周期）毎に監視する。通信ユニット２００は、監視している制御情報の内容の更新を検知すると、当該更新が検知された制御情報が付加されている通信フレームの受信処理を開始する。
【０１４７】
すなわち、通信ユニット２００は、通信フレームポーリング周期毎に、ＩＯリフレッシュによりＣＰＵユニット１００との間でデータ交換される通信フレームに付加されている制御情報を確認し、その制御情報の変化をトリガとして、通信フレームを受信する。このような制御情報を用いることで、サイクリックなデータ交換であるＩＯリフレッシュを用いて、通信フレームの受信を実現できる。
【０１４８】
基本的には、通信フレームポーリング周期は、ＩＯリフレッシュ周期より長い時間に設定されるが、ＩＯリフレッシュ周期と同じ時間長さであってもよいし、ＩＯリフレッシュ周期より短い時間に設定されていてもよい。また、送信処理においてＣＰＵユニット１００に設定されるＩＯリフレッシュ周期と、受信処理において通信ユニット２００に設定されるＩＯリフレッシュ周期とは同一であってもよいし、異なっていてもよい。
【０１４９】
図１２には、通信フレームの受信処理の具体例を示す。図１１を参照して、（４）通信フレーム受信において、ＣＰＵユニット１００は、通信デバイス３００から通信フレーム４４２を受信すると、当該受信した通信フレーム４４２を共有メモリ１２８に書込む。この共有メモリ１２８への書込処理において、通信フレーム４５２に付加される制御情報４５４の値が更新される。図１２に示す例では、先行の通信フレーム４５２に付加される制御情報４５４には、それ以前の制御情報４５４に設定されていた「９９」から変更された「１００」が格納されている。さらに、後続の通信フレーム４４２を受信すると、その新たに生成された通信フレーム４４２が共有メモリ１２８に書込まれる際に付加される制御情報４５４には、「１００」から１だけインクリメントされた「１０１」が格納される。
【０１５０】
このように、ＣＰＵユニット１００は、通信デバイス３００から通信フレーム４４２を受信する毎に、受信した通信フレーム４４２のコピーである通信フレーム４５２を共有メモリ１２８に格納するとともに、通信フレーム４５２に付加される制御情報４４４の値を所定規則に従って更新する。
【０１５１】
ＣＰＵユニット１００において、ネットワーク通信部１２０の共有メモリ１２８と内部バス通信部１３０の共有メモリ１３８との間でデータが交換される（（３）データ交換）。データ交換の結果、共有メモリ１３８には、共有メモリ１２８に格納されているものと同じ通信フレーム４６２および制御情報４６４が格納される。
【０１５２】
共有メモリ１２８と共有メモリ１３８との間でデータ交換は、ＩＯリフレッシュ周期と同じ周期あるいはより短い周期でサイクリックに実行されるので、共有メモリ１２８における通信フレーム４５２および通信フレーム４５２に付加される制御情報４５４の更新と、共有メモリ１３８における通信フレーム４６２および通信フレーム４６２に付加される制御情報４６４の更新とは、ほぼ同時に実行されることになる。
【０１５３】
さらに、共有メモリ１３８に格納される通信フレーム４６２および制御情報４６４は、ＩＯリフレッシュの対象となっており、ＩＯリフレッシュ周期毎に、通信ユニット２００に伝送される（（２）ＩＯリフレッシュ）。すなわち、ＣＰＵユニット１００の共有メモリ１２８と通信ユニット２００の共有メモリ２０８との間でサイクリックにデータ交換が行われる。
【０１５４】
このように、ＣＰＵユニット１００がいずれかの通信デバイス３００から通信フレーム（受信データ）を受信すると、先に受信した通信フレーム（受信データ）に付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の通信ユニット２００とデータ交換を行う。
【０１５５】
通信ユニット２００は、通信フレームポーリング周期毎に、ＩＯリフレッシュにより取得される共有メモリ２０８上の制御情報４７４の値を監視する。制御情報４７４の値の変化を検知すると、通信ユニット２００は、値が変化した制御情報４７４が付加されている通信フレーム４７２を処理する（（５）通信フレーム受信）。
【０１５６】
図１２に示す例では、第１番目の通信フレームポーリング周期が到来したときに、制御情報４７４が「９９」から「１００」に変化したと検知され、対象の通信フレーム４７２が処理される。続く第２番目の通信フレームポーリング周期が到来したときに、制御情報４７４は「１００」のままであるので、通信フレーム４７２の処理は行われない。
【０１５７】
続く第３番目の通信フレームポーリング周期が到来したときに、制御情報４７４は「１００」から「１０１」に変化したことが検知されるので、通信フレーム４７２が処理される。
【０１５８】
このように、通信ユニット２００は、所定の受信周期（通信フレームポーリング周期）毎に、処理すべき通信フレーム４７２が到着しているか否かを監視するとともに、到着していると判断されると、当該通信フレーム４７２の処理を開始する。
【０１５９】
図１３は、本実施の形態に係る制御システム１のＣＰＵユニット１００における通信フレームの受信処理を説明するための模式図である。図１３を参照して、物理層ドライバ１２２６は、送受信回路１２４からの電気信号からデータ列を復号して、ＴＣＰ／ＩＰプロトコルスタック１２２４へ出力する。ＴＣＰ／ＩＰプロトコルスタック１２２４は、物理層ドライバ１２２６からのデータ列からＥｔｈｅｒｎｅｔフレームを再構成する。
【０１６０】
アプリケーションプロトコルスタック１２２２は、コネクション管理情報１８２を参照して、ＴＣＰ／ＩＰプロトコルスタック１２２４からのＥｔｈｅｒｎｅｔフレーム内のコネクションＩＤに対応するエントリを探索する。コネクション管理情報１８２には、コネクション確立時にエントリが追加される。各エントリには、データ交換情報１８０との対応付けを示す情報が含まれる。アプリケーションプロトコルスタック１２２２は、データ交換情報１８０の探索された情報に基づいて、受信した通信フレームを共有メモリ１２８の対応する位置に格納する。
【０１６１】
以上のような手順によって、ＣＰＵユニット１００が受信した通信デバイス３００からの通信フレームが通信ユニット２００へ送信される。
【０１６２】
図１４は、本実施の形態に係る制御システム１における通信フレームの受信処理の処理手順を示すフローチャートである。図１４を参照して、ＣＰＵユニット１００は、いずれかの通信デバイス３００から通信フレームを受信したか否かを判断する（ステップＳ３００）。いずれの通信デバイス３００からも通信フレームを受信していなければ（ステップＳ３００においてＮＯ）、ステップＳ３０２〜Ｓ３０８の処理はスキップされる。
【０１６３】
いずれかの通信デバイス３００から通信フレームを受信していれば（ステップＳ３００においてＹＥＳ）、ＣＰＵユニット１００は、コネクション管理情報１８２を参照して、受信した通信フレームの送信先である通信ユニット２００を特定する（ステップＳ３０２）。ＣＰＵユニット１００は、格納すべき通信フレームに付加する制御情報の内容を決定する（ステップＳ３０４）。そして、ＣＰＵユニット１００は、特定した通信ユニット２００に対応する、ネットワーク通信部１２０の共有メモリ１２８のアドレスに、当該受信した通信フレームおよび対応する制御情報を書込む（ステップＳ３０６）。
【０１６４】
続いて、ＣＰＵユニット１００は、データ交換情報１８０に従って、ネットワーク通信部１２０の共有メモリ１２８と内部バス通信部１３０の共有メモリ１３８との間でデータ交換を行う（ステップＳ３０８）。
【０１６５】
続いて、ＣＰＵユニット１００は、ＩＯリフレッシュ周期が到来しているか否かを判断する（ステップＳ３１０）。ＩＯリフレッシュ周期が到来していなければ（ステップＳ３１０においてＮＯ）、ＩＯリフレッシュ周期の到来を待つ。
【０１６６】
ＩＯリフレッシュ周期が到来していれば（ステップＳ３１０においてＹＥＳ）、ＣＰＵユニット１００は、ＩＯリフレッシュを実行して、通信ユニット２００との間でデータ交換を行う（ステップＳ３１２）。そして、ステップＳ３００以下の処理が繰返される。
【０１６７】
一方、通信ユニット２００は、まず、ＩＯリフレッシュ周期が到来しているか否かを判断する（ステップＳ４００）。ＩＯリフレッシュ周期が到来していなければ（ステップＳ４００においてＮＯ）、ＩＯリフレッシュ周期の到来を待つ。
【０１６８】
ＩＯリフレッシュ周期が到来していれば（ステップＳ４００においてＹＥＳ）、通信ユニット２００は、ＩＯリフレッシュを実行して、ＣＰＵユニット１００との間でデータ交換を行う（ステップＳ４０２）。
【０１６９】
続いて、通信ユニット２００は、通信ユニット２００の共有メモリ２０８上にある制御情報のうち値が変化しているものがあるか否かを判断する（ステップＳ４０４）。通信ユニット２００の共有メモリ２０８上にある制御情報のうち値が変化しているものがなければ（ステップＳ４０４においてＮＯ）、ステップＳ４００以下の処理が繰返される。
【０１７０】
通信ユニット２００の共有メモリ２０８上にある制御情報の値が変化しているものがあれば（ステップＳ４０４においてＹＥＳ）、通信ユニット２００は、値が変化している制御情報に対応する通信フレームを新たに受信した通信フレームとして処理する（ステップＳ４０６）。そして、ステップＳ４００以下の処理が繰返される。
【０１７１】
＜Ｄ．変形例＞
上述の実施の形態においては、ＣＰＵユニット１００が有している１つの通信ポートを１または複数の通信ユニット２００が利用する構成について例示したが、本実施の形態に係るＣＰＵユニット１００が有している転送機能または中継機能（ブリッジ機能）は、以下に示すような他の構成においても適用可能である。
【０１７２】
（ｄ１：複数の通信ポートの利用）
第１変形例として、複数の通信ポートを１または複数の通信ユニット２００が利用する構成例について説明する。
【０１７３】
図１５は、本実施の形態の第１変形例に係る制御システム１Ａの構成例を示す模式図である。図１５を参照して、制御システム１Ａは、ＣＰＵユニット１００Ａと、１または複数の通信ユニット２００とを含む。
【０１７４】
ＣＰＵユニット１００Ａは、通信フレームを送受信するための２つの通信ポート１５０，１５０Ａを有している。すなわち、ＣＰＵユニット１００Ａは、データを送受信するための、通信ポート１５０とは異なる通信ポート１５０Ａを有している。
【０１７５】
通信ポート１５０がサポートしている通信プロトコルと通信ポート１５０Ａがサポートしている通信プロトコルとは、同一であってもよいし、異なっていてもよい。典型的には、通信ポート１５０を介してデータを送受信するための通信プロトコルは、通信ポート１５０Ａを介してデータを送受信するための通信プロトコルとは異なっている。
【０１７６】
図１５に示す構成例においては、通信ポート１５０には、通信デバイス３００−１，３００−２が接続されており、通信ポート１５０Ａには、通信デバイス３００−３が接続されている。ＣＰＵユニット１００Ａに接続されている通信ユニット２００は、ＣＰＵユニット１００Ａの通信ポート１５０および通信ポート１５０Ａのいずれをも利用可能になっている。
【０１７７】
ＣＰＵユニット１００Ａは、通信ポート１５０に接続されている通信デバイス３００および通信ポート１５０Ａに接続されている通信デバイス３００のうち一方と、通信ユニット２００との間で、通信フレームを中継する。このような通信フレームの選択的な中継により、各通信ユニット２００は、通信ポート１５０および通信ポート１５０Ａの両方を利用できる。
【０１７８】
このような各通信ユニット２００と通信ポート１５０または通信ポート１５０Ａに接続された通信デバイス３００との間の中継は、ＣＰＵユニット１００に格納されるデータ交換情報１８０Ａに従って行われる。
【０１７９】
図１６は、本実施の形態の第１変形例に係る制御システム１ＡにおけるＣＰＵユニット１００Ａと通信ユニット２００との接続構成の一例を示す模式図である。図１６を参照して、制御システム１ＡのＣＰＵユニット１００Ａは、通信ポート１５０に関連付けられる共有メモリ１２８に加えて、通信ポート１５０Ａに関連付けられる共有メモリ１２８Ａを有している。
【０１８０】
内部バス通信部１３０は、内部バス４０を介して通信ユニット２００との間で送受信される共有メモリ１３８に格納される通信フレームを、予め定められたデータ交換情報１８０Ａに従って、共有メモリ１２８または共有メモリ１２８Ａとの間でデータ交換する。
【０１８１】
このように、ＣＰＵユニット１００Ａは、通信ポート１５０を介して通信デバイス３００との間で送受信されるデータを格納する第２の記憶領域（共有メモリ１２８）と、通信ポート１５０Ａを介して通信デバイス３００との間で送受信されるデータを格納する第３の記憶領域（共有メモリ１２８Ａ）とを有している。そして、ＣＰＵユニット１００Ａは、予め定められたデータ交換情報１８０Ａに従って、第１の記憶領域（共有メモリ１３８）のデータを第２の記憶領域（共有メモリ１３８）および第３の記憶領域（共有メモリ１３８Ａ）との間で選択的にデータ交換を行う。
【０１８２】
共有メモリ１３８と共有メモリ１２８または共有メモリ１２８Ａとの間のデータ交換に係る処理は、上述の実施の形態におけるデータ交換と同様であるので、詳細な説明は繰返さない。
【０１８３】
図１７は、本実施の形態の第１変形例に係るＣＰＵユニット１００に格納されるデータ交換情報１８０Ａの内容の一例を示す模式図である。図１７を参照して、データ交換情報１８０Ａは、１または複数のデータ交換設定を含む。データ交換設定の各々は、送信元のメモリアドレス、送信先のメモリアドレス、送信サイズなどを含む。
【０１８４】
図１７に示すデータ交換情報１８０Ａにおいては、データ交換設定の各々において、送信元または送信先として、それぞれの通信ポートに対応するネットワーク通信部を指定できるようになっている。このようなネットワーク通信部の選択的な指定によって、本実施の形態の第１変形例に係る制御システム１Ａにおける通信フレームの送受信処理を実現できる。
【０１８５】
本実施の形態の第１変形例に係る制御システム１Ａの基本的な構成および処理は、本実施の形態に係る制御システム１と同様であるので、詳細な説明は繰返さない。
【０１８６】
本実施の形態の第１変形例によれば、ＣＰＵユニット１００Ａにおいて、通信フレームを中継する経路は、サポート装置などを用いて、ユーザが任意に設定できる。このように、データ交換情報１８０を設定するだけで、通信ユニット２００に特殊な通信プロトコルなどを実装することなく、ＣＰＵユニット１００Ａに実装されている複数の通信プロトコルを利用できる。
【０１８７】
また、同一の通信ユニット２００から送信される２種類の通信フレームのうち、一方をＣＰＵユニット１００Ａの通信ポート１５０から送信し、他方をＣＰＵユニット１００Ａの通信ポート１５０Ａから送信するような利用形態も可能である。
【０１８８】
このように、本実施の形態の第１変形例に係るＣＰＵユニット１００Ａにおいては、それぞれ異なる通信プロトコルに従って伝送される複数の通信フレームを中継できるとともに、通信フレームを互いに異なる通信ポートに中継できる。このような構成を利用することで、複数の通信プロトコルが利用される制御システムであっても、簡素な制御構成で実現できる。
【０１８９】
（ｄ２：通信ポート間の中継）
第２変形例として、複数の通信ポートを有するＣＰＵユニット１００がルータのように機能する構成例について説明する。
【０１９０】
図１８は、本実施の形態の第２変形例に係る制御システム１Ｂの構成例を示す模式図である。図１８を参照して、制御システム１Ｂは、ＣＰＵユニット１００Ｂと、１または複数の通信ユニット２００とを含む。制御システム１Ｂは、さらに、カプラユニット３４０と、通信ユニット２００とを含む。
【０１９１】
ＣＰＵユニット１００Ｂは、通信フレームを送受信するための２つの通信ポート１５０，１５０Ｂを有している。通信ポート１５０がサポートしている通信プロトコルと通信ポート１５０Ｂがサポートしている通信プロトコルとは、同一であってもよいし、異なっていてもよい。
【０１９２】
図１８に示す構成例においては、通信ポート１５０には、通信デバイス３００−１が接続されており、通信ポート１５０Ｂには、カプラユニット３４０が接続されている。カプラユニット３４０には、図示しない内部バスを介して通信ユニット２００−４が接続されている。
【０１９３】
ＣＰＵユニット１００Ｂは、通信ポート１５０に接続されている通信デバイス３００−１と、通信ポート１５０Ｂに接続されているカプラユニット３４０および通信ユニット２００−４との間で、通信フレームを中継する。ＣＰＵユニット１００Ｂにおける通信ポート間の通信フレームの中継により、通信プロトコルの異なるデバイス間の通信フレームの伝送なども可能になる。
【０１９４】
このような通信ポート１５０に接続された通信デバイス３００と通信ポート１５０Ｂに接続されたカプラユニット３４０（および、カプラユニット３４０に接続された通信ユニット２００）との間の中継は、ＣＰＵユニット１００に格納されるデータ交換情報１８０Ｂに従って行われる。
【０１９５】
図１９は、本実施の形態の第２変形例に係る制御システム１ＢにおけるＣＰＵユニット１００Ｂにおける接続構成の一例を示す模式図である。図１９を参照して、制御システム１ＢのＣＰＵユニット１００Ｂは、通信ポート１５０に関連付けられる共有メモリ１２８に加えて、通信ポート１５０Ｂに関連付けられる共有メモリ１２８Ｂを有している。
【０１９６】
ＣＰＵユニット１００Ｂにおいては、通信ポート１５０に関連付けられる共有メモリ１２８と、通信ポート１５０Ｂに関連付けられる共有メモリ１２８Ｂとの間で、予め定められたデータ交換情報１８０Ｂに従って、データ交換が行われる。
【０１９７】
このように、ＣＰＵユニット１００Ｂは、通信ポート１５０を介して通信デバイス３００との間で送受信されるデータを格納する第２の記憶領域（共有メモリ１２８）と、通信ポート１５０Ｂを介して通信デバイス３００との間で送受信されるデータを格納する第３の記憶領域（共有メモリ１２８Ｂ）とを有している。そして、ＣＰＵユニット１００Ｂは、予め定められたデータ交換情報１８０Ｂに従って、第２の記憶領域（共有メモリ１２８）と第３の記憶領域（共有メモリ１２８Ｂ）との間でデータ交換を行う。
【０１９８】
本実施の形態の第２変形例に係る制御システム１Ｂの基本的な構成および処理は、本実施の形態に係る制御システム１と同様であるので、詳細な説明は繰返さない。
【０１９９】
本実施の形態の第２変形例によれば、ＣＰＵユニット１００Ｂにおいて、通信フレームを中継する経路は、サポート装置などを用いて、ユーザが任意に設定できる。このように、データ交換情報１８０を設定するだけで、通信ユニット２００に特殊な通信プロトコルなどを実装することなく、ＣＰＵユニット１００Ｂに接続されている複数の通信プロトコル間でのデータ伝送が可能になる。
【０２００】
このように、本実施の形態の第２変形例に係るＣＰＵユニット１００Ｂにおいては、通信フレームを中継する経路を自由に決定できるので、ＣＰＵユニット１００に接続されている通信ユニット２００に限らず、異なるネットワークに接続されている通信デバイス３００からの通信フレームについても、他のネットワークに中継できる。すなわち、本実施の形態の第２変形例に係るＣＰＵユニット１００Ｂによれば、複数の階層のネットワーク間で通信フレームを中継できる。
【０２０１】
（ｄ３：複数のユニットの利用）
第３変形例として、単一の通信ユニットが複数のユニットにそれぞれ配置された通信ポートを利用する構成例について説明する。
【０２０２】
図２０は、本実施の形態の第３変形例に係る制御システム１Ｃの構成例を示す模式図である。図２０を参照して、制御システム１Ｃは、ＣＰＵユニット１００と、通信ユニット２００−１，２００−２と、通信ポートを有する通信ユニット２００Ｃとを含む。
【０２０３】
ＣＰＵユニット１００は、通信フレームを送受信するための通信ポート１５０を有しており、通信ユニット２００Ｃは、通信フレームを送受信するための通信ポート１５０Ｃを有している。ＣＰＵユニット１００の通信ポート１５０がサポートしている通信プロトコルと、通信ユニット２００Ｃの通信ポート１５０Ｃがサポートしている通信プロトコルとは、同一であってもよいし、異なっていてもよい。
【０２０４】
図２０に示す構成例においては、例えば、通信ユニット２００−１は、ＣＰＵユニット１００の通信ポート１５０を利用して通信デバイス３００−２との間で通信フレームを送受信するとともに、通信ユニット２００Ｃの通信ポート１５０Ｃを利用して通信デバイス３００−５との間で通信フレームを送受信する。
【０２０５】
この場合、通信ユニット２００−１は、内部バス４０を介して通信フレームをＣＰＵユニット１００へ送信するとともに、内部バス４０を介して通信フレームを通信ユニット２００Ｃへ送信する。
【０２０６】
ＣＰＵユニット１００においては、データ交換情報１８０に従って、通信ユニット２００−１からの通信フレームが通信デバイス３００−２へ中継される。一方、通信ユニット２００Ｃにおいては、データ交換情報１８０Ｃに従って、通信ユニット２００−１からの通信フレームが通信デバイス３００−５へ中継される。
【０２０７】
本実施の形態の第３変形例に係る制御システム１Ｃの基本的な構成および処理は、本実施の形態に係る制御システム１と同様であるので、詳細な説明は繰返さない。
【０２０８】
このように、本実施の形態の第３変形例に係る制御システム１Ｃにおいては、制御システム１Ｃに含まれる物理的に異なる通信ユニットが有する通信ポートを利用して、通信フレームの送信を実現できる。
【０２０９】
＜Ｅ．設定ユーザインターフェイス＞
次に、本実施の形態に係る制御システムにおいて利用されるデータ交換情報１８０およびコネクション管理情報１８２を設定するためのユーザインターフェイスの一例について説明する。
【０２１０】
図２１は、本実施の形態に係る制御システムにおける設定ユーザインターフェイスの一例を示す図である。図２１に示すユーザインターフェイス画面５００は、ＣＰＵユニット１００に接続されたサポート装置上に提供されてもよい。
【０２１１】
例えば、図１５に示すような、ＣＰＵユニット１００に２つの通信ポート１５０，１５０Ａが配置されているような構成を想定する。一方の通信ポート１５０に接続されている通信先の通信デバイス３００−１のＩＰアドレスが「１６２．１６８．１．１００」（通信プロトコル：Ｅｔｈｅｒｎｅｔ／ＩＰ  Ｓａｆｅｔｙ）であり、他方の通信ポート１５０Ａに接続されている通信先の通信デバイス３００−３のＩＰアドレスが「１６２．１６８．２５０．２００」（通信プロコトル：Ｐｒｏｆｉｎｅｔ  Ｓａｆｅｔｙ）であるとする。
【０２１２】
一例として、データ交換情報１８０およびコネクション管理情報１８２の情報源となるデータを設定する操作手順としては、以下のようになる。
【０２１３】
（１）図２１に示すようなユーザインターフェイス画面上で、通信フレームの中継を行うためのコネクション設定を行う。
【０２１４】
（２）図２１に示すようなユーザインターフェイス画面上で、通信フレームを中継するＣＰＵユニット１００の通信ポート１５０に通信デバイス３００−１宛てのメッセージを割当てる。
【０２１５】
（３）図２１に示すようなユーザインターフェイス画面上で、通信フレームを中継するＣＰＵユニット１００の通信ポート１５０Ａに通信デバイス３００−３宛てのメッセージを割当てる。
【０２１６】
（４）ユーザプログラムおよび設定ファイルを含むプロジェクトをビルドして、データ交換情報１８０を生成する。
【０２１７】
（５）ＣＰＵユニット１００および通信ユニット２００にユーザプログラムおよび設定ファイルをダウンロードする。
【０２１８】
図２１を参照して、ユーザインターフェイス画面５００は、ＣＰＵユニット１００に設けられている通信ポート毎に設定領域５０２，５０４が配置されている。設定領域５０２，５０４の各々においては、対応する通信ポートを介して接続される通信デバイス３００を設定するためのターゲットデバイス設定領域５１２と、実際に通信フレームを送受信する対象を設定するためのターゲットアッセンブリ設定領域５１４と、通信周期設定領域５１６とを含む。
【０２１９】
ターゲットデバイス設定領域５１２は、対象のＣＰＵユニット１００において利用可能な通信ポートの一覧に相当する。ターゲットデバイス設定領域５１２の各々に対して、図示しないツールボックスから、通信対象の通信デバイスを割当てることでコネクション管理情報１８２の情報源となるデータを生成する。
【０２２０】
ＣＰＵユニット１００と通信対象の通信デバイスとの間の接続（すなわち、割当てたコネクション）に対して、宛先を示すＩＰアドレスおよび通信周期（パケットインターバル）などを設定や変更が可能である。
【０２２１】
なお、図示しないツールボックスには、ＣＰＵユニット１００において利用可能な通信デバイスの一覧が表示されてもよい。ユーザインターフェイス画面５００に並べてツールボックスが表示される場合には、対象の通信デバイスをターゲットデバイス設定領域５１２にドラッグ・アンド・ドロップすることで、コネクションの設定を行うことができる。
【０２２２】
さらに、ユーザインターフェイス画面５００においては、各通信ポートで利用可能な通信プロトコルの種別および伝送されるメッセージのサイズなどを設定および変更できる。
【０２２３】
図２１に示すようなユーザインターフェイス画面５００を用いて各種割当てを行うことで、通信フレームを中継（ブリッジ）する通信経路を確定できる。そして、確定した通信経路に対して、制御情報および通信フレームのデータ交換情報１８０を生成する。
【０２２４】
図２１に示すようなユーザインターフェイス画面５００を提供することで、ユーザは、直感的な操作によって、ＣＰＵユニット１００において通信フレームを中継（ブリッジ）するための設定を容易に行うことができる。
【０２２５】
＜Ｆ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御対象を制御するための制御システム（１，１Ａ，１Ｂ，１Ｃ）であって、
データを送受信するための第１の通信ポート（１５０）を有する第１のユニット（１００，１００Ａ，１００Ｂ）と、
前記第１のユニットと電気的に接続された１または複数の第２のユニット（２００）とを備え、
前記第２のユニットの各々は、前記第１のユニットの前記第１の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部（２７０）を備え、
前記第１のユニットは、前記第２のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部（１０２）を備える、制御システム。
［構成２］
前記転送処理部は、いずれかのデバイス（３００）から受信した受信データを当該受信データの送信先の第２のユニット（２００）へ転送する、構成１に記載の制御システム。
［構成３］
前記第１のユニットおよび前記１または複数の第２のユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部（１３０，２２０）を備えており、
前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報とは異なる内容の制御情報（４０４）を付加して、前記第１のユニットとデータ交換を行う、構成１または２に記載の制御システム。
［構成４］
前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報の値をインクリメントまたはデクリメントすることで、新たな制御情報を生成する、構成３に記載の制御システム。
［構成５］
前記第１のユニットは、
前記１または複数の第２のユニットとの間でデータ交換されるデータを格納する第１の記憶領域（１３８）と、
前記第１の通信ポートを介してデバイスとの間で送受信されるデータを格納する第２の記憶領域（１２８）とを備え、
前記転送処理部は、予め定められたデータ交換情報（１８０）に従って、前記第１の記憶領域と前記第２の記憶領域との間でデータ交換を行う、構成３または４に記載の制御システム。
［構成６］
前記転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報（４５４）を付加して、当該受信データの送信先の第２のユニットとデータ交換を行う、構成５に記載の制御システム。
［構成７］
前記第１のユニットは、データを送受信するための、前記第１の通信ポートとは異なる第２の通信ポート（１５０Ａ）をさらに有しており、
前記第１の通信ポートを介してデータを送受信するための通信プロトコルは、前記第２の通信ポートを介してデータを送受信するための通信プロトコルとは異なる、構成６に記載の制御システム。
［構成８］
前記第１のユニットは、前記第２の通信ポートを介してデバイスとの間で送受信されるデータを格納する第３の記憶領域（１２８Ａ）をさらに備え、
前記転送処理部は、予め定められたデータ交換情報（１８０Ａ）に従って、前記第１の記憶領域のデータを前記第２の記憶領域および前記第３の記憶領域との間で選択的にデータ交換を行う、構成７に記載の制御システム。
［構成９］
前記第１のユニットは、前記第２の通信ポート（１５０Ｂ）を介してデバイスとの間で送受信されるデータを格納する第３の記憶領域（１２８Ｂ）をさらに備え、
前記転送処理部は、予め定められたデータ交換情報（１８０Ｂ）に従って、前記第２の記憶領域と前記第３の記憶領域との間でデータ交換を行う、構成７に記載の制御システム。
［構成１０］
制御対象を制御するための制御システムを構成する制御装置（１００）であって、
データを送受信するための通信ポート（１５０）と、
１または複数の通信ユニット（２００）との間で、予め定められた周期毎にデータ交換を行うためのデータ通信部（１３０）とを備え、前記通信ユニットの各々は、前記通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部（２７０）を含み、
前記通信ユニットから送信された送信データを送信先のデバイスへ転送する転送処理部（１０２）を備える、制御装置。
【０２２６】
＜Ｇ．まとめ＞
本実施の形態によれば、ＣＰＵユニット１００にデータ（通信フレーム）の中継機能（ブリッジ機能）を実装することで、ＣＰＵユニット１００に設けられている通信ポートを用いて、他の通信ユニット２００が通信を行うことができる。このような構成を採用することで、通信ユニット２００の各々において、それぞれ通信機構を実装する必要がなく、システムの簡素化および通信ユニット２００などの開発コストの低減を実現できる。
【０２２７】
本実施の形態によれば、ＣＰＵユニット１００におけるデータ（通信フレーム）の中継機能（ブリッジ機能）として規定される経路を、ユーザが自由に設定できる。そのため、通信プロトコルなどに依存することなく、複数の通信プロトコルに従う通信フレームをブリッジすることにより、異なるネットワークあるいは異なる通信ポートへの通信フレームの転送が可能となり、より柔軟なシステムを構築できる。
【０２２８】
本実施の形態によれば、通信ユニット２００の各々がアプリケーションの実行環境を有することもでき、このようなアプリケーションの実行環境によれば、ＣＰＵユニット１００でのユーザプログラムの実行とは独立して、各種の処理および機能を提供できる。したがって、ＣＰＵユニット１００および１または複数の通信ユニット２００を含む制御システムを構築することで、各ユニットが自立して与えられたタスクを実行する、柔軟性の高い自立分散システムを実現できる。
【０２２９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２３０】
１，１Ａ，１Ｂ，１Ｃ，１Ｘ  制御システム、４０  内部バス、４２  ダウンリンク、４４  アップリンク、１００，１００Ａ，１００Ｂ，１００Ｘ  ＣＰＵユニット、１０２，２０２  プロセッサ、１０４，２０４  フラッシュメモリ、１０６，２１６  システムプログラム、１０８  構成情報、１１０  ＲＡＭ、１２０  ネットワーク通信部、１２２  ネットワークコントローラ、１２４  送受信回路、１２８，１２８Ａ，１２８Ｂ，１３８，１３８Ａ，２０８  共有メモリ、１２８Ｒ，１３８Ｒ，２０８Ｒ  受信バッファ、１２８Ｔ，１３８Ｔ，２０８Ｔ  送信バッファ、１３０，２２０  内部バス通信部、１３２  内部バスコントローラ、１３４  送信回路、１３６  受信回路、１５０，１５０Ａ，１５０Ｂ，１５０Ｃ，２５０Ｘ  通信ポート、１８０，１８０Ａ，１８０Ｂ，１８０Ｃ  データ交換情報、１８２  コネクション管理情報、２００，２００Ｃ，２００Ｘ  通信ユニット、２０６  機能モジュール、２１８  アプリケーションプログラム、２３０Ｒ，２４０Ｒ  受信部、２３０Ｔ，２４０Ｔ  送信部、２３２，２４２  ＤＥＳ（逆シリアル変換器）、２３４，２４４  転送コントローラ、２３６，２４６  ＳＥＲ（シリアル変換器）、２５０  受信処理部、２５２  復号部、２５４  ＣＲＣチェック部、２６０  送信処理部、２６２  ＣＲＣ生成部、２６４  符号化部、２７０  論理通信部、３００  通信デバイス、３４０  カプラユニット、４０２，４１２，４２２，４３２，４４２，４５２，４６２，４７２  通信フレーム、４０４，４１４，４２４，４４４，４５４，４６４，４７４  制御情報、５００  ユーザインターフェイス画面、５０２，５０４  設定領域、５１２  ターゲットデバイス設定領域、５１４  ターゲットアッセンブリ設定領域、５１６  通信周期設定領域、１２２２  アプリケーションプロトコルスタック、１２２４  プロトコルスタック、１２２６  物理層ドライバ。
【図１】
2019114085.tif 000003
【図２】
2019114085.tif 000004
【図３】
2019114085.tif 000005
【図４】
2019114085.tif 000006
【図５】
2019114085.tif 000007
【図６】
2019114085.tif 000008
【図７】
2019114085.tif 000009
【図８】
2019114085.tif 000010
【図９】
2019114085.tif 000011
【図１０】
2019114085.tif 000012
【図１１】
2019114085.tif 000013
【図１２】
2019114085.tif 000014
【図１３】
2019114085.tif 000015
【図１４】
2019114085.tif 000016
【図１５】
2019114085.tif 000017
【図１６】
2019114085.tif 000018
【図１７】
2019114085.tif 000019
【図１８】
2019114085.tif 000020
【図１９】
2019114085.tif 000021
【図２０】
2019114085.tif 000022
【図２１】
2019114085.tif 000023