JP7087378B2 - 制御システムおよび制御装置 - Google Patents

制御システムおよび制御装置 Download PDF

Info

Publication number
JP7087378B2
JP7087378B2 JP2017247373A JP2017247373A JP7087378B2 JP 7087378 B2 JP7087378 B2 JP 7087378B2 JP 2017247373 A JP2017247373 A JP 2017247373A JP 2017247373 A JP2017247373 A JP 2017247373A JP 7087378 B2 JP7087378 B2 JP 7087378B2
Authority
JP
Japan
Prior art keywords
communication
unit
data
received
control information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017247373A
Other languages
English (en)
Other versions
JP2019114085A (ja
Inventor
典弘 前川
豊 田原
一誠 三宅
幸嗣 烏山
裕二 池尾
亮輔 藤村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2017247373A priority Critical patent/JP7087378B2/ja
Priority to EP18199598.6A priority patent/EP3502813B1/en
Priority to CN201811195863.3A priority patent/CN109960242B/zh
Priority to US16/159,737 priority patent/US20190197016A1/en
Publication of JP2019114085A publication Critical patent/JP2019114085A/ja
Application granted granted Critical
Publication of JP7087378B2 publication Critical patent/JP7087378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Programmable Controllers (AREA)

Description

本技術は、制御対象を制御する制御システムおよび制御装置に関する。
各種設備および製造装置などを制御するための制御装置として、PLC(プログラマブルコントローラ)などが用いられる。さらに、セーフティコントローラおよび各種セーフティコンポーネントからなるセーフティシステムが配置されることもある。
ICT(Information and Communication Technology)の進歩にともなって、このような産業用コントローラについてもネットワーク化が進行しつつある。公知の構成においては、例えば、特許文献1(特開2009-223398号公報)に開示されるように、演算処理を実行するCPUユニットに加えて、通信処理を担当する通信ユニットが装着される。特許文献2(特開2017-027539号公報)に開示されるように、CPUモジュールとは別に、IOモジュールの一例である通信モジュールを装着して、通信処理を行う構成が一般的である。
特開2009-223398号公報 特開2017-027539号公報
上述の特許文献2に開示されるような構成においては、基本的には、CPUモジュールと通信モジュールとを一対一で装着する必要があるため、複数のCPUモジュールがそれぞれ通信処理を行う場合には、複数の通信モジュールを用意する必要がある。
そのため、通信機能を有するユニットが複数の存在する場合であっても、付加的なユニットを必要とせず、柔軟に通信処理を実現できる構成が要望されている。
本発明のある実施の形態に係る制御システムは、制御対象を制御する。制御システムは、データを送受信するための第1の通信ポートを有する第1のユニットと、第1のユニットと電気的に接続された1または複数の第2のユニットとを含む。第2のユニットの各々は、第1のユニットの第1の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含む。第1のユニットは、第2のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を含む。
この開示によれば、第1のユニットが有している1つの通信ポートを、第1のユニットだけではなく、1または複数の第2のユニットも利用できるので、システム構成を簡素化しつつ、第2のユニットを高機能化できる。
上述の開示において、転送処理部は、いずれかのデバイスから受信した受信データを当該受信データの送信先の第2のユニットへ転送してもよい。
この開示によれば、第2のユニットからデータを送信するだけではなく、いずれかのデバイスからデータを受信することもできる。
上述の開示において、第1のユニットおよび1または複数の第2のユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部を含んでいてもよい。論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報とは異なる内容の制御情報を付加して、第1のユニットとデータ交換を行うようにしてもよい。
この開示によれば、データの更新の有無にかかわらず、予め定められた周期毎にデータ交換を行う構成においても、第1のユニットと第2のユニットとの間で、新たにデータが生成されたとき、および/または、新たにデータが受信されたときに限って、処理を実行できる。そのため、高い応答性能を維持しつつ、処理の肥大化を防止できる。
上述の開示において、論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報の値をインクリメントまたはデクリメントすることで、新たな制御情報を生成するようにしてもよい。
この開示によれば、新たに送信データが生成されたことを、制御情報の値の増加または減少によって検知できる。
上述の開示において、第1のユニットは、1または複数の第2のユニットとの間でデータ交換されるデータを格納する第1の記憶領域と、第1の通信ポートを介してデバイスとの間で送受信されるデータを格納する第2の記憶領域とを含んでいてもよい。転送処理部は、予め定められたデータ交換情報に従って、第1の記憶領域と第2の記憶領域との間でデータ交換を行うようにしてもよい。
この開示によれば、第1のユニットと1または複数の第2のユニットとの間でデータ交換されるデータのうち、デバイスとの間で送受信されるデータのみを効率的にデータ交換できる。その結果、第1のユニットにおける処理の肥大化を防止できる。
上述の開示において、転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の第2のユニットとデータ交換を行うようにしてもよい。
この開示によれば、第1のユニットがいずれかのデバイスから新たに受信データを受信したことを、1または複数の第2のユニットは即座に検知できる。
上述の開示において、第1のユニットは、データを送受信するための、第1の通信ポートとは異なる第2の通信ポートをさらに有していてもよい。第1の通信ポートを介してデータを送受信するための通信プロトコルは、第2の通信ポートを介してデータを送受信するための通信プロトコルとは異なっていてもよい。
この開示によれば、第1のユニットに設けられた複数の通信ポートを選択的に利用することで、さまざまなアプリケーションを実現できる。
上述の開示において、第1のユニットは、第2の通信ポートを介してデバイスとの間で送受信されるデータを格納する第3の記憶領域をさらに含んでいてもよい。転送処理部は、予め定められたデータ交換情報に従って、第1の記憶領域のデータを第2の記憶領域および第3の記憶領域との間で選択的にデータ交換を行うようにしてもよい。
この開示によれば、データを生成した第2のユニットの要求などに応じて、適切な通信プロトコルで、かつ、適切な送信先のデバイスでデータを伝送できる。
上述の開示において、第1のユニットは、第2の通信ポートを介してデバイスとの間で送受信されるデータを格納する第3の記憶領域をさらに含んでいてもよい。転送処理部は、予め定められたデータ交換情報に従って、第2の記憶領域と第3の記憶領域との間でデータ交換を行うようにしてもよい。
本発明の別の実施の形態によれば、制御対象を制御するための制御システムを構成する制御装置が提供される。制御装置は、データを送受信するための通信ポートと、1または複数の通信ユニットとの間で、予め定められた周期毎にデータ交換を行うためのデータ通信部とを含む。通信ユニットの各々は、通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含む。制御装置は、通信ユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を含む。
この開示によれば、第1のユニットが有している1つの通信ポートを、第1のユニットだけではなく、1または複数の第2のユニットも利用できるので、システム構成を簡素化しつつ、第2のユニットを高機能化できる。
本発明の実施の形態によれば、通信機能を有するユニットが複数の存在する場合であっても、付加的なユニットを必要とせず、柔軟に通信処理を実現できる。
本発明の関連技術に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムのユニット間の接続構成を示す模式図である。 本実施の形態に係る制御システムに含まれるCPUユニットのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムに含まれる通信ユニットのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムにおけるCPUユニットと通信ユニットとの接続構成の一例を示す模式図である。 本実施の形態に係るCPUユニットの共有メモリにおけるメモリレイアウトの一例を示す模式図である。 本実施の形態に係るCPUユニットに格納されるデータ交換情報の内容の一例を示す模式図である。 本実施の形態に係る制御システムにおける通信フレームの送信処理を説明するための模式図である。 本実施の形態に係る制御システムのCPUユニットにおける通信フレームの送信処理を説明するための模式図である。 本実施の形態に係る制御システムにおける通信フレームの送信処理の処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおける通信フレームの受信処理を説明するための模式図である。 本実施の形態に係る制御システムのCPUユニットにおける通信フレームの受信処理を説明するための模式図である。 本実施の形態に係る制御システムにおける通信フレームの受信処理の処理手順を示すフローチャートである。 本実施の形態の第1変形例に係る制御システムの構成例を示す模式図である。 本実施の形態の第1変形例に係る制御システムにおけるCPUユニットと通信ユニットとの接続構成の一例を示す模式図である。 本実施の形態の第1変形例に係るCPUユニットに格納されるデータ交換情報の内容の一例を示す模式図である。 本実施の形態の第2変形例に係る制御システムの構成例を示す模式図である。 本実施の形態の第2変形例に係る制御システムにおけるCPUユニットにおける接続構成の一例を示す模式図である。 本実施の形態の第3変形例に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムにおける設定ユーザインターフェイスの一例を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
図1は、本発明の関連技術に係る制御システム1Xの構成例を示す模式図である。図2は、本実施の形態に係る制御システム1の構成例を示す模式図である。
比較のために、先に、本発明の関連技術に係る制御システム1Xについて説明する。図1を参照して、制御システム1Xは、CPUユニット100Xと、複数の通信ユニット200X-1,200X-2,200X-3(以下、「通信ユニット200X」とも総称する。)とを含む。
図1に示す制御システム1Xの構成は、3つの通信デバイス300-1,300-2,300-3(以下、「通信デバイス300」とも総称する。)との間でそれぞれ通信処理を行うことが想定されている。
CPUユニット100Xは、制御対象に対する指令値を演算する制御プログラムを実行する演算処理部に相当する。通信ユニット200X-1,200X-2,200X-3は、一例として、通信ユニットであり、それぞれ通信デバイス300-1,300-2,300-3との間で通信フレームなどのデータを送受信する処理を実行する。通信ユニット200X-1,200X-2,200X-3は、データを送受信するための通信ポート250X-1,250X-2,250X-3をそれぞれ有している。
このように、図1に示す制御システム1Xにおいては、CPUユニット100Xに、各々が通信ポートを有する通信ユニット200Xを1または複数接続された構成が採用されている。各通信ユニット200Xと接続対象の通信デバイス300との間で、それぞれデータが送受信される構成が採用されている。図1に示すような制御システム1Xの構成を採用した場合には、以下のような課題が生じ得る。
(1)各通信ユニット200Xが通信ポートを含めた通信処理に必要な回路構成が実行されるので、ハードウェアとしてのコストが増加する。
(2)各通信ユニット200Xにおいて通信機能を実現する必要があり、複数の通信プロトコルに対応するような場合には、各通信ユニット200Xの開発コストおよび開発時間が増加する。
このような課題に対して、本実施の形態に係る制御システム1においては、特定のユニットが有している通信機能を他のユニットが利用可能な環境を提供する。すなわち、特定のユニットが有している通信機能を他のユニット共有することで、上述したような本発明の関連技術に係る制御システム1Xにおいて生じ得る課題を解決する。
より具体的には、図2を参照して、制御システム1は、制御対象を制御するためのものであり、CPUユニット100と、CPUユニット100と電気的に接続された1または複数の通信ユニット200-1,200-2,200-3(以下、「通信ユニット200」とも総称する。)とを含む。
本明細書において、「通信ユニット」は、通信対象(図2に示す例では、通信デバイス300)との間で、データを送受信するための論理的な通信処理が少なくとも実装されたユニットを包含する用語である。図2に示す通信ユニット200の各々は、論理通信部270を有している。本明細書において、「論理通信部」は、上述したような論理的な通信処理を提供するハードウェアロジックおよび/またはソフトウエアロジックを包含する。
例えば、OSI参照モデルを参照すると、論理通信部270は、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層などに相当する層を有することになる。但し、論理通信部270は、物理層は有していない。
典型的な通信ユニット200として、例えば、制御対象に対するセーフティ機能を提供するセーフティユニットなどが想定されている。セーフティユニットは、論理通信部に加えて、セーフティロジックをサイクリックに実行するための演算処理部を有していてもよい。但し、本明細書における「通信ユニット」は、セーフティユニットに限られず、例えば、CPUユニット100が接続されるネットワークを監視するようなユニットや、データベースや各種サーバ機能を提供するユニットなどであってもよい。
CPUユニット100は、一種の制御装置であり、データを送受信するための通信ポート150を有している。CPUユニット100の通信ポート150は、CPUユニット100だけに限らず、CPUユニット100に接続されている通信ユニット200からも利用可能になっている。そのため、通信ユニット200の論理通信部270は、CPUユニット100の通信ポート150と電気的に接続された通信デバイス300との間でデータを送受信するように構成される。
すなわち、CPUユニット100は、通信ユニット200から受信したデータを通信ポート150に中継(ブリッジ)できる。また、CPUユニット100は、通信ポート150で受信したデータを通信ユニット200に中継(ブリッジ)できる。
CPUユニット100は、通信ユニット200から送信された送信データを送信先の通信デバイス300へ転送する転送処理部を有する。このような転送処理部によって、通信ユニット200から送出されたデータは、CPUユニット100に転送され、CPUユニット100の通信ポート150から目的の通信デバイス300へ送出される。
CPUユニット100の転送処理部は、いずれかの通信デバイス300から受信した受信データを当該受信データの送信先の通信ユニット200へ転送する。このような転送処理部によって、ある通信デバイス300から送出されたデータは、CPUユニット100の通信ポート150で受信され、CPUユニット100から目的の通信ユニット200へ送出される。
このような各通信ユニット200と各通信デバイス300との間の中継は、CPUユニット100に格納されるデータ交換情報180に従って行われる。
後述するように、CPUユニット100と各通信ユニット200との間は、典型的には、通信ライン(以下、「内部バス」とも称す。)を介して接続されている。CPUユニット100は、データ交換情報180に従って、いずれかの通信デバイス300から通信ポート150を介して受信したデータを、内部バスを介して送信先の通信ユニット200へ転送するとともに、いずれかの通信ユニット200から内部バスを介して受信したデータを、通信ポート150を介して送信先の通信デバイス300へ転送する。
図2に示すような構成を採用することで、CPUユニット100に実装される通信機能を共有できるので、通信ユニット200に通信機能を実装する必要がなく、通信ユニット200のハードウェアとしてのコストを低減できるとともに、通信ユニット200の開発コストおよび開発時間を抑制できる。
なお、CPUユニット100の通信ポート150を介して通信デバイス300との間でデータを送受信するための通信プロトコルとしては、一般的なTCP/IPに加えて、EtherNet/IP(登録商標)、EtherCAT(登録商標)、FSoE(Functional Safety over EtherCAT)、CIP Safety(on EtherNet/IP、または、on DeviceNet)、Profinet Safetyなどが用いられてもよい。さらに、これらの通信プロトコルに限定されず、任意の通信プロコトルを採用してもよい。
以下の説明においては、通信ユニット200と通信デバイス300との間で送受信される主たるデータを「通信フレーム」として説明する。但し、転送処理を行うCPUユニット100と通信ユニット200との間、および、CPUユニット100の内部においては、「通信フレーム」に「制御情報」が付加されることもあるので、両者を合わせたデータが送受信の対象となる場合もある。
なお、「通信フレーム」との用語に基づいて、送受信されるデータを限定的に解釈すべきではなく、例えば、「パケット」の単位で送受信される場合や、より長いデータ列の単位で送受信されるような場合も含み得る。
<B.ハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する各ユニットのハードウェア構成例について説明する。
(b1:ユニット間の接続構成)
図3は、本実施の形態に係る制御システム1のユニット間の接続構成を示す模式図である。図3を参照して、CPUユニット100は、通信ラインである内部バス40(ダウンリンク42およびアップリンク44)を介して、1または複数の通信ユニット200と互いに通信処理可能になっている。図3に示す制御システム1の接続構成においては、CPUユニット100および1または複数の通信ユニット200は、デイジーチェーン接続されている。
一例として、内部バス40(ダウンリンク42およびアップリンク44)としては、シリアル通信が採用されており、通信対象のデータは、時系列に一列に並べられた形で順次伝搬する。ダウンリンク42上では、CPUユニット100から通信ユニット200へ向けて一方向にデータが順次転送される。一方、アップリンク44上では、いずれかの通信ユニット200からCPUユニット100へ向けて一方向にデータが順次転送される。
通信ユニット200の各々は、ダウンリンク42またはアップリンク44を伝搬する通信フレームを受信すると、その通信フレームからデータを復号して必要な処理を実行する。そして、通信ユニット200の各々は、受信した通信フレームを次段の通信ユニット200へ再送信(転送)する。
このような通信フレームの再送信(転送)処理を実現するために、通信ユニット200の各々は、ダウンリンク42に関して、受信部(以下「RX」とも記す。)230Rおよび送信部(以下「TX」とも記す。)230Tを含むとともに、アップリンク44に関して、受信部240Rおよび送信部240Tを含む。また、通信ユニット200の各々は、プロセッサ202を含む。
CPUユニット100は、ネットワーク通信部120と、内部バス通信部130とを含む。ネットワーク通信部120は、通信ポート150からの通信フレームの送出処理、および、通信ポート150を介した通信フレームの受信処理を担当する。内部バス通信部130は、内部バス40を介した通信フレームの送出処理および通信フレームの受信処理を担当する。ネットワーク通信部120および内部バス通信部130における処理は、プロセッサ102によって制御される。すなわち、プロセッサ102がシステムプログラム106を実行することで、転送処理部を実現する。
(b2:CPUユニット100の構成例)
図4は、本実施の形態に係る制御システム1に含まれるCPUユニット100のハードウェア構成例を示す模式図である。図4を参照して、CPUユニット100は、プロセッサ102と、フラッシュメモリ104と、RAM(Random Access Memory)110と、ネットワーク通信部120と、内部バス通信部130とを含む。
プロセッサ102は、フラッシュメモリ104に予め格納されているシステムプログラム106を読み出して実行することで、ネットワーク通信部120および内部バス通信部130に対する制御処理を実現する。プロセッサ102により実行される処理の詳細については、後述する。
フラッシュメモリ104は、システムプログラム106に加えて、構成情報108と、データ交換情報180とを格納している。
構成情報108は、CPUユニット100に接続されているそれぞれの通信ユニット200の設定値などを含む。
データ交換情報180は、後述するような、各通信ユニット200と通信デバイス300との間の通信フレームの送受信を制御するための経路情報などを含む。
RAM110には、図示しないワーキングデータに加えて、コネクション管理情報182などが配置される。コネクション管理情報182は、後述するように、CPUユニット100から通信デバイス300への通信フレームの送信処理に必要な管理情報を含む。典型的には、コネクション管理情報182は、送信先との間でコネクションを確立する毎に、適宜生成または更新される。
ネットワーク通信部120は、ネットワークコントローラ122と、送受信回路124と、共有メモリ128とを含む。
ネットワークコントローラ122は、共有メモリ128に蓄積される通信フレームに対して、転送処理などを実行する。
送受信回路124は、ネットワークコントローラ122から与えられるデータ列を電気信号に変調して、通信ポート150に接続されるネットワークケーブルを介して送出するとともに、通信ポート150に接続されるネットワークケーブルを介して受信される電気信号をデータ列に復調してネットワークコントローラ122へ出力する。
共有メモリ128は、ネットワークコントローラ122に加えて、プロセッサ102および内部バス通信部130からのデータアクセスを受付ける。共有メモリ128は、受信バッファ128Rおよび送信バッファ128Tを有している。受信バッファ128Rには、通信ポート150を介して受信された通信フレームが蓄積され、送信バッファ128Tには、通信ポート150を介して送出される予定の通信フレームが蓄積される。
内部バス通信部130は、内部バスコントローラ132と、送信回路134と、受信回路136と、共有メモリ138とを含む。
内部バスコントローラ132は、共有メモリ138に蓄積される通信フレームに対して、転送処理などを実行する。
送信回路134は、内部バスコントローラ132から与えられるデータ列を電気信号に変調して、内部バス40(ダウンリンク42)を介して送出する。受信回路136は、内部バス40(アップリンク44)を介して受信される電気信号をデータ列に復調して内部バスコントローラ132へ出力する。
共有メモリ138は、内部バスコントローラ132に加えて、プロセッサ102およびネットワーク通信部120からのデータアクセスを受付ける。共有メモリ138は、受信バッファ138Rおよび送信バッファ138Tを有している。受信バッファ138Rには、内部バス40(アップリンク44)を介して受信された通信フレームが蓄積され、送信バッファ138Tには、内部バス40(ダウンリンク42)を介して送出される予定の通信フレームが蓄積される。
(b3:通信ユニット200の構成例)
図5は、本実施の形態に係る制御システム1に含まれる通信ユニット200のハードウェア構成例を示す模式図である。図5を参照して、通信ユニット200は、プロセッサ202と、フラッシュメモリ204と、機能モジュール206と、共有メモリ208と、内部バス通信部220とを含む。
プロセッサ202は、フラッシュメモリ204に予め格納されているシステムプログラム216およびアプリケーションプログラム218を読み出して実行することで、制御対象に応じた制御処理を実現する。アプリケーションプログラム218には、任意の通信デバイス300との間でデータを送受信するような処理が規定されていてもよい。
すなわち、図2に示す論理通信部270は、通信ユニット200のプロセッサ202がシステムプログラム216および/またはアプリケーションプログラム218を実行することで、実現されてもよい。
機能モジュール206は、各通信ユニット200が担当する処理を実現するためのハードウェア回路であり、例えば、フィールドからの入力信号を受付ける回路、フィールドへの出力信号を発生する回路、他のコントローラとの間でシリアル通信を行う回路などを含み得る。なお、プロセッサ202がアプリケーションプログラム218を実行することで、必要な処理を実現できる場合には、機能モジュール206を省略してもよい。
共有メモリ208は、内部バス通信部220に加えて、プロセッサ202などからのデータアクセスを受付ける。共有メモリ208は、受信バッファ208Rおよび送信バッファ208Tを有している。受信バッファ208Rには、内部バス通信部220が受信した通信フレームが蓄積され、送信バッファ208Tには、内部バス通信部220が送出する予定の通信フレームが蓄積される。
内部バス通信部220は、逆シリアル変換器(de-serializer:以下「DES」とも称す。)232,242と、シリアル変換器(SER:serializer:以下「SER」とも称す。)236,246と、転送コントローラ234,244とを含む。
DES232と、転送コントローラ234と、SER236とは、図3に示すダウンリンク42についての受信部230Rおよび送信部230Tに対応する。同様に、DES242と、転送コントローラ244と、SER246とは、図4に示すアップリンク44についての送信部240Tおよび受信部240Rに対応する。
内部バス通信部220は、さらに、受信処理部250および送信処理部260を含む。
受信処理部250は、転送コントローラ234および244に接続され、前段の通信ユニット200から受信する通信フレームを処理する。受信処理部250は、復号部252と、CRCチェック部254とを含む。復号部252は、転送コントローラ234および244において受信された通信フレームを所定のアルゴリズムに従ってデータへ復号する。CRCチェック部254は、通信フレームの最後に付加されるフレームチェックシーケンス(Frame Check Sequence:FCS)などに基づいて誤りチェック(例えば、CRC(Cyclic Redundancy Check)符号)を行う。受信処理部250から出力されるデータは、受信バッファ208Rに蓄積される。
送信処理部260は、転送コントローラ234および244に接続され、プロセッサ202などからの指示に従って、次段の通信ユニット200へ再送信(転送)する通信フレームの生成およびタイミング制御などを行う。送信処理部260は、CRC生成部262と、符号化部264とを含む。CRC生成部262は、送信バッファ208Tに蓄積されるデータに対して誤り制御符号(CRC)を付加する。符号化部264は、CRC生成部262からのデータを符号化し、対応する転送コントローラ234または244へ出力する。
<C.通信ユニットと通信デバイスとの間の通信処理>
次に、通信ユニット200と通信デバイス300との間の通信処理に係る構成おおび処理について説明する。
(c1:接続構成)
図6は、本実施の形態に係る制御システム1におけるCPUユニット100と通信ユニット200との接続構成の一例を示す模式図である。図6を参照して、CPUユニット100の内部バスコントローラ132に繋がる共通の内部バス40に対して、各通信ユニット200の内部バス通信部220がそれぞれ接続されている。
CPUユニット100とそれぞれの通信ユニット200との間は、予め定められた更新周期でデータ交換をしている。より具体的には、CPUユニット100から各通信ユニット200送信されるOUTデータ(指令値など)と、各通信ユニット200からCPUユニット100へ送信されるINデータ(測定値および状態値など)とは、所定の更新周期毎に内部バス40を介して伝送され、これによって、CPUユニット100および各通信ユニット200が保持するデータは所定の更新周期毎に更新される。このような内部バス40を介した所定周期毎のデータ更新を「IOリフレッシュ」とも称す。
本明細書において、「IOリフレッシュ」は、CPUユニット100と1または複数の通信ユニット200との間で、予め定められた周期(以下、「IOリフレッシュ周期」とも称す。)毎にデータ交換を行う処理を包含する。
CPUユニット100において、IOリフレッシュにより更新されるデータは、内部バス通信部130の共有メモリ138に保持される。IOリフレッシュ周期は、一般的に、数100μs~数msであり、高速なデータ更新を実現できる。
本実施の形態に係る制御システム1においては、内部バス40を介したIOリフレッシュを利用して、通信ユニット200が生成する通信フレームおよび通信デバイス300から受信される通信フレームを伝送する。
CPUユニット100の内部バス通信部130、および、通信ユニット200の内部バス通信部220は、IOリフレッシュ周期毎にデータ交換を行うためのデータ通信部に相当する。
一方、CPUユニット100と通信デバイス300との間の通信処理(通信フレームの送受信処理)は、CPUユニット100のネットワーク通信部120が担当する。通信デバイス300との間で送受信される通信フレームは、ネットワーク通信部120の共有メモリ128に蓄積される。
CPUユニット100においては、ネットワーク通信部120の共有メモリ128に蓄積される通信フレームと、内部バス通信部130の共有メモリ138に蓄積される通信フレームとを適宜データ交換することで、1または複数の通信ユニット200と1または複数の通信デバイス300との間の通信処理を実現する。すなわち、CPUユニット100は、内部バス40を介して送受信されるデータと、通信ポート150およびネットワークケーブルを介して送受信されるデータとの間を相互に転送することで、通信ユニット200と通信デバイス300との間の通信処理を仲介するルータのように機能する。
図6に示すように、いずれかの通信ユニット200が通信フレームを生成する((1)通信フレーム生成)と、その生成された通信フレームは、IOリフレッシュのタイミングで、通信ユニット200からCPUユニット100へ伝送される((2)IOリフレッシュ)。このとき、IOリフレッシュによるデータ交換を利用するので、生成された通信フレームには当該制御情報が付加される。
IOリフレッシュにおいては、CPUユニット100の内部バス通信部130の共有メモリ138と通信ユニット200との間でデータが交換される。
続いて、CPUユニット100の内部バス通信部130の共有メモリ138とネットワーク通信部120の共有メモリ128との間でデータが交換される((3)データ交換)。共有メモリ138と共有メモリ128との間のデータ交換は、予め用意されたデータ交換情報180に従って実行される。
データ交換情報180は、典型的には、ユーザがサポート装置などを用いて設定することができる。データ交換情報180は、送信元のメモリアドレス、送信先のメモリアドレス、送信サイズなどを含む。
続いて、CPUユニット100のネットワーク通信部120は、共有メモリ128に蓄積された通信フレームを通信デバイス300へ送信し、あるいは、通信デバイス300から受信した通信フレームを共有メモリ128に蓄積する((4)通信フレーム送受信)。なお、共有メモリ128に蓄積された通信フレームに制御情報が付加されている場合には、当該付加されている制御情報に規定される通信プロトコルに従って、制御情報を除いた通信フレームを送信する。
CPUユニット100が通信デバイス300から受信した通信フレームは、通信フレームとは逆の手順で、対象の通信ユニット200へ通信フレームが転送される。そして、通信ユニット200は、受信した通信フレームを処理する((5)通信フレーム処理)。
図6に示すように、本実施の形態に係る制御システム1において、CPUユニット100は、通信ユニット200とのIOリフレッシュ結果を格納する記憶領域(共有メモリ138)と、通信ポート150を介した通信処理用の記憶領域(共有メモリ128)とを有している。すなわち、CPUユニット100は、1または複数の通信ユニット200との間でデータ交換されるデータを格納する第1の記憶領域(共有メモリ138)と、通信ポート150を介して通信デバイス300との間で送受信されるデータを格納する第2の記憶領域(共有メモリ128)とを有している。
CPUユニット100は、予め定められたデータ交換情報180に従って、第1の記憶領域(共有メモリ138)と第2の記憶領域(共有メモリ128)との間でデータ交換を行う。このような記憶領域間で通信フレームを中継することで、通信ユニット200と通信デバイス300との間の通信処理を実現する。
(c2:メモリレイアウトおよびデータ交換情報)
次に、CPUユニット100における、ネットワーク通信部120の共有メモリ128および内部バス通信部130の共有メモリ138におけるメモリレイアウト、ならびに、共通メモリ間でデータを交換するためのデータ交換情報180について説明する。
図7は、本実施の形態に係るCPUユニット100の共有メモリにおけるメモリレイアウトの一例を示す模式図である。図7を参照して、内部バス通信部130の共有メモリ138には、それぞれの通信ユニット200との間のIOリフレッシュに対応して、データの格納領域が規定されている。図7に示す例においては、共有メモリ138には、通信ユニット200-1,200-2,200-3,・・・のそれぞれに領域が割当てられており、各領域には、対応する通信ユニット200との間でデータ交換されるINデータおよびOUTデータが格納される。
INデータの一部には、通信ユニット200から送信される通信フレームが含まれ、OUTデータには、通信ユニット200へ転送される通信フレームが含まれる。
一方、ネットワーク通信部120の共有メモリ128にも、通信ユニット200-1,200-2,200-3,・・・のそれぞれに領域が割当てられている。共有メモリ128には、通信デバイス300との間で送受信される通信フレームのみが格納される。
このような共有メモリ138のメモリレイアウトと共有メモリ128のメモリレイアウトとを整合させるために、データ交換情報180が参照される。すなわち、データ交換情報180は、共有メモリ138上にある通信フレームが共有メモリ128上のいずれの位置にある通信フレームと対応するのかを規定するとともに、共有メモリ128上にある通信フレームが共有メモリ138上のいずれの位置にある通信フレームと対応するのかを規定する。
このように、CPUユニット100で実行されるデータ交換は、データ交換情報180を参照して、共有メモリ138上にある通信ユニット200から送信された通信フレームを共有メモリ128上のしかるべき位置に書込む処理、および、共有メモリ128上にある通信ユニット200へ向けられた通信フレームを共有メモリ138上のしかるべき位置に書込む処理を含む。
図8は、本実施の形態に係るCPUユニット100に格納されるデータ交換情報180の内容の一例を示す模式図である。図8を参照して、データ交換情報180は、1または複数のデータ交換設定を含む。データ交換設定の各々は、送信元のメモリアドレス、送信先のメモリアドレス、送信サイズなどを含む。
内部バス通信部130およびネットワーク通信部120のいずれか一方が送信元となり、他方が送信先となる。また、メモリアドレスとしては、共有メモリ128または共有メモリ138上のメモリアドレスが規定される。送信サイズは、交換対象のとなる通信フレームの大きさなどを示す。
例えば、通信ユニット200からいずれかの通信デバイス300へ通信フレームを送信する場合において、データ交換情報180は、(1)対象の通信ユニット200における記憶領域のパス(コピー元)と、(2)内部バス通信部130の共有メモリ138における記憶領域のパス(コピー先)と、(3)通信デバイス300宛の通信フレームと制御情報とのデータサイズとを含む。
逆に、いずれかの通信デバイス300から通信ユニット200へ通信フレームを送信する場合において、データ交換情報180は、(1)内部バス通信部130の共有メモリ138における記憶領域のパス(コピー元)と、(2)対象の通信ユニット200における記憶領域のパス(コピー先)と、(3)通信ユニット200宛の通信フレームと制御情報とのデータサイズとを含む。
なお、記憶領域のパスは、送信および受信に対してそれぞれ設定された順に、先頭から割当ることで、記憶領域のサイズをオーバしないようにデータ配置を制御する。
(c3:通信フレーム送信処理)
次に、通信ユニット200から通信フレームを送信する際の処理について説明する。
図9は、本実施の形態に係る制御システム1における通信フレームの送信処理を説明するための模式図である。図9には、CPUユニット100とバス接続されているいずれかの通信ユニット200が生成した通信フレームを、CPUユニット100とネットワーク接続されている通信デバイス300へ送信する処理を示す。
本実施の形態に係る制御システム1においては、通信フレームの応答性を保証するために、高速かつサイクリックなデータ伝送であるIOリフレッシュを用いて、通信フレームを伝送する。但し、IOリフレッシュを用いる場合には、送信すべき通信フレームが新たに追加されるか否かにかかわらず、IOリフレッシュ更新周期毎にデータ交換が行われるので、新たな通信フレームの生成を検知するために、都度更新される制御情報が通信フレームに付加される。
このように、IOリフレッシュを用いて通信フレームの送信をCPUユニット100へ依頼する場合には、通信フレームの変化の有無を管理する必要があり、このような通信フレームの変化を検知するために、制御情報が用いられる。
より具体的には、通信ユニット200が通信フレームを生成および送信する際に、当該通信フレームに付加される制御情報の内容が更新される。CPUユニット100は、所定周期(以下、「通信フレームポーリング周期」とも称す。)毎に、共有メモリ128に蓄積される各通信フレームに付加されている制御情報の内容を監視する。CPUユニット100は、いずれかの通信フレームに付加されている制御情報の内容の更新を検知すると、当該更新が検知された制御情報が付加されている通信フレームの送信処理を開始する。
すなわち、CPUユニット100は、通信フレームポーリング周期毎に、IOリフレッシュにより通信ユニット200との間でデータ交換される通信フレームに付加されている制御情報を確認し、その制御情報の変化をトリガとして、通信フレームを送信する。このような制御情報を用いることで、サイクリックなデータ交換であるIOリフレッシュを用いて、通信フレームの送信を実現できる。
基本的には、通信フレームポーリング周期は、IOリフレッシュ周期より長い時間に設定されるが、IOリフレッシュ周期と同じ時間長さであってもよいし、IOリフレッシュ周期より短い時間に設定されていてもよい。
なお、通信ユニット200としてセーフティユニットが用いられる場合には、通信フレームポーリング周期は、セーフティタスク周期の長さに設定されてもよい。すなわち、セーフティタスクの監視周期に対応させて、データの送受信を行うようにしてもよい。
図9には、通信フレームの送信処理の具体例を示す。図9を参照して、(1)通信フレーム生成において、通信ユニット200は、所定の送信周期毎に通信フレーム402を生成する。
新たに送信する通信フレーム402(送信データ)が生成されると、先に生成した通信フレーム402(送信データ)に付加された制御情報404とは異なる内容の制御情報404を付加して、CPUユニット100とデータ交換を行う。一例として、通信フレーム402に付加される制御情報404は、新たに送信する通信フレーム402が生成されるとインクリメント(または、デクリメント)される値を含む。すなわち、新たに送信する通信フレーム402(送信データ)が生成されると、先に生成した通信フレーム402(送信データ)に付加された制御情報404の値をインクリメントまたはデクリメントすることで、新たな制御情報404が生成される。
図9に示す例では、先行の通信フレーム402に付加される制御情報404には「100」が設定されており、後続の通信フレーム402が生成されると、その新たに生成された通信フレーム402に付加される制御情報404には、「100」から1だけインクリメントされた「101」が格納される。
このように、通信ユニット200は、所定の送信周期毎に通信フレーム402を生成するとともに、生成する通信フレーム402に付加する制御情報404の値を所定規則に従って更新する。
通信ユニット200が生成する通信フレーム402および通信フレーム402に付加される制御情報404は、IOリフレッシュの対象となっており、IOリフレッシュ周期毎に、内部バス通信部130の共有メモリ138に伝送される。共有メモリ138に格納される、通信ユニット200からの通信フレーム412および通信フレーム412に付加される制御情報414は、IOリフレッシュ周期毎に更新されることになる((2)IOリフレッシュ)。
CPUユニット100において、内部バス通信部130の共有メモリ138とネットワーク通信部120の共有メモリ128との間でデータが交換される((3)データ交換)。データ交換の結果、共有メモリ128には、通信ユニット200により生成されたものと同じ通信フレーム422および制御情報424が格納される。共有メモリ138と共有メモリ128との間でデータ交換は、IOリフレッシュ周期と同じ周期あるいはより短い周期でサイクリックに実行されるので、共有メモリ128における通信フレーム412および通信フレーム412に付加される制御情報414の更新と、共有メモリ138における通信フレーム422および通信フレーム422に付加される制御情報424の更新とは、ほぼ同時に実行されることになる。
ネットワーク通信部120は、通信フレームポーリング周期毎に、共有メモリ138上の制御情報424の値を監視する。制御情報424の値の変化を検知すると、ネットワーク通信部120は、値が変化した制御情報424が付加されている通信フレーム422に対応する通信フレーム432を送信する((4)通信フレーム送受信)。
図9に示す例では、第1番目の通信フレームポーリング周期が到来したときに、制御情報404が「99」から「100」に変化したと検知され、通信フレーム432が送信される。続く第2番目の通信フレームポーリング周期が到来したときに、制御情報404は「100」のままであるので、通信フレーム432の送信は行われない。
続く第3番目の通信フレームポーリング周期が到来したときに、制御情報404は「100」から「101」に変化したことが検知されるので、通信フレーム432が送信される。
このように、CPUユニット100のネットワーク通信部120は、所定の送信周期(通信フレームポーリング周期)毎に、送信すべき通信フレーム432が到着しているか否かを監視するとともに、到着していると判断されると、当該通信フレーム432の送信を開始する。
図10は、本実施の形態に係る制御システム1のCPUユニット100における通信フレームの送信処理を説明するための模式図である。図10を参照して、ネットワーク通信部120のネットワークコントローラ122は、論理的構成として、アプリケーションプロトコルスタック1222と、TCP/IPプロトコルスタック1224と、物理層ドライバ1226とを含む。
共有メモリ128に格納された通信フレームを送信する場合には、アプリケーションプロトコルスタック1222は、対象の通信フレームに対応するデータ交換情報180の設定と、コネクション管理情報182とを探索する。
コネクション管理情報182は、例えば、コネクションID、送信先IPアドレス、使用UDPポート、通信フレームシーケンスカウントなどを含む。アプリケーションプロトコルスタック1222は、通信フレームの送信に先だって、送信先との間のコネクションを確立する。
TCP/IPプロトコルスタック1224は、送信対象の通信フレームおよびコネクション管理情報182に基づいて、Ethernet(登録商標)フレームを生成する。物理層ドライバ1226は、TCP/IPプロトコルスタック1224からのEthernetフレームを電気信号として出力できるように、送受信回路124に指令を与える。
以上のような手順によって、通信ユニット200が生成した通信フレームがCPUユニット100を介して、通信デバイス300へ送信される。
図11は、本実施の形態に係る制御システム1における通信フレームの送信処理の処理手順を示すフローチャートである。図11には、CPUユニット100における処理手順、および、通信ユニット200における処理手順が示されている。図11に示す各ステップは、CPUユニット100のプロセッサ102および通信ユニット200のプロセッサ202がそれぞれプログラムを実行することで実現されてもよい。
図11を参照して、通信ユニット200は、送信すべき通信フレームが存在するか否かを判断する(ステップS100)。送信すべき通信フレームが存在しなければ(ステップS100においてNO)、ステップS102およびS104の処理はスキップされる。
送信すべき通信フレームが存在していれば(ステップS100においてYES)、通信ユニット200は、送信すべき通信フレームに付加する制御情報の内容を決定し(ステップS102)、送信すべき通信フレームおよび決定した制御情報を共有メモリ128の送信バッファ128Tに格納する(ステップS104)。
続いて、通信ユニット200は、IOリフレッシュ周期が到来しているか否かを判断する(ステップS106)。IOリフレッシュ周期が到来していなければ(ステップS106においてNO)、IOリフレッシュ周期の到来を待つ。
IOリフレッシュ周期が到来していれば(ステップS106においてYES)、通信ユニット200は、IOリフレッシュを実行して、CPUユニット100との間でデータ交換を行う(ステップS108)。そして、ステップS100以下の処理が繰返される。
一方、CPUユニット100は、まず、CPUユニット100は、予め定められた設定に従って、送信対象の通信フレームの送信先との間でコネクションを確立する(ステップS200)。コネクションが確立されると、その確立したコネクションを管理するためのコネクション管理情報182が生成または更新される。続いて、CPUユニット100は、IOリフレッシュ周期が到来しているか否かを判断する(ステップS202)。IOリフレッシュ周期が到来していなければ(ステップS202においてNO)、IOリフレッシュ周期の到来を待つ。
IOリフレッシュ周期が到来していれば(ステップS202においてYES)、CPUユニット100は、IOリフレッシュを実行して、通信ユニット200との間でデータ交換を行う(ステップS204)。データ交換によって取得されたデータは、内部バス通信部130の共有メモリ138に格納される。続いて、CPUユニット100は、データ交換情報180に従って、内部バス通信部130の共有メモリ138とネットワーク通信部120の共有メモリ128との間でデータ交換を行う(ステップS206)。
CPUユニット100は、通信フレームポーリング周期が到来しているか否かを判断する(ステップS208)。通信フレームポーリング周期が到来していなければ(ステップS208においてNO)、ステップS202以下の処理が繰返される。
通信フレームポーリング周期が到来していれば(ステップS208においてYES)、CPUユニット100は、内部バス通信部130の共有メモリ138上にある制御情報のうち値が変化しているものがあるか否かを判断する(ステップS210)。内部バス通信部130の共有メモリ138上にある制御情報のうち値が変化しているものがなければ(ステップS210においてNO)、ステップS202以下の処理が繰返される。
内部バス通信部130の共有メモリ138上にある制御情報の値が変化しているものがあれば(ステップS210においてYES)、CPUユニット100は、値が変化している制御情報に対応する送信対象の通信フレームについて、送信先とのコネクションが確立されているか否かを判断する(ステップS212)。送信先とのコネクションが確立されていなければ(ステップS212においてNO)、ステップS200以下の処理が繰返される。
送信先とのコネクションが確立済みであれば(ステップS212においてYES)、CPUユニット100は、送信対象の通信フレームを送信する(ステップS214)。そして、ステップS202以下の処理が繰返される。
(c4:通信フレーム受信処理)
次に、通信ユニット200が通信フレームを受信する際の処理について説明する。
図12は、本実施の形態に係る制御システム1における通信フレームの受信処理を説明するための模式図である。図12には、CPUユニット100とネットワーク接続されているいずれかの通信デバイス300から受信した通信フレームを、CPUユニット100とバス接続されている通信ユニット200へ転送する処理を示す。
上述したように、本実施の形態に係る制御システム1においては、通信フレームの応答性を保証するために、高速かつサイクリックなデータ伝送であるIOリフレッシュを用いて、通信フレームを伝送する。但し、IOリフレッシュを用いる場合には、送信すべき通信フレームが新たに追加されるか否かにかかわらず、IOリフレッシュ更新周期毎にデータ交換が行われるので、新たな通信フレームの生成を検知するために、都度更新される制御情報が通信フレームに付加される。
より具体的には、CPUユニット100は、いずれかの通信デバイス300から通信フレームを受信すると、その受信した通信フレームを対象の通信ユニット200へ転送する際に、当該通信フレームに付加される制御情報の内容が更新される。通信ユニット200は、共有メモリ138との間でIOリフレッシュされる各通信フレームに付加されている制御情報の内容を、所定周期(通信フレームポーリング周期)毎に監視する。通信ユニット200は、監視している制御情報の内容の更新を検知すると、当該更新が検知された制御情報が付加されている通信フレームの受信処理を開始する。
すなわち、通信ユニット200は、通信フレームポーリング周期毎に、IOリフレッシュによりCPUユニット100との間でデータ交換される通信フレームに付加されている制御情報を確認し、その制御情報の変化をトリガとして、通信フレームを受信する。このような制御情報を用いることで、サイクリックなデータ交換であるIOリフレッシュを用いて、通信フレームの受信を実現できる。
基本的には、通信フレームポーリング周期は、IOリフレッシュ周期より長い時間に設定されるが、IOリフレッシュ周期と同じ時間長さであってもよいし、IOリフレッシュ周期より短い時間に設定されていてもよい。また、送信処理においてCPUユニット100に設定されるIOリフレッシュ周期と、受信処理において通信ユニット200に設定されるIOリフレッシュ周期とは同一であってもよいし、異なっていてもよい。
図12には、通信フレームの受信処理の具体例を示す。図11を参照して、(4)通信フレーム受信において、CPUユニット100は、通信デバイス300から通信フレーム442を受信すると、当該受信した通信フレーム442を共有メモリ128に書込む。この共有メモリ128への書込処理において、通信フレーム452に付加される制御情報454の値が更新される。図12に示す例では、先行の通信フレーム452に付加される制御情報454には、それ以前の制御情報454に設定されていた「99」から変更された「100」が格納されている。さらに、後続の通信フレーム442を受信すると、その新たに生成された通信フレーム442が共有メモリ128に書込まれる際に付加される制御情報454には、「100」から1だけインクリメントされた「101」が格納される。
このように、CPUユニット100は、通信デバイス300から通信フレーム442を受信する毎に、受信した通信フレーム442のコピーである通信フレーム452を共有メモリ128に格納するとともに、通信フレーム452に付加される制御情報444の値を所定規則に従って更新する。
CPUユニット100において、ネットワーク通信部120の共有メモリ128と内部バス通信部130の共有メモリ138との間でデータが交換される((3)データ交換)。データ交換の結果、共有メモリ138には、共有メモリ128に格納されているものと同じ通信フレーム462および制御情報464が格納される。
共有メモリ128と共有メモリ138との間でデータ交換は、IOリフレッシュ周期と同じ周期あるいはより短い周期でサイクリックに実行されるので、共有メモリ128における通信フレーム452および通信フレーム452に付加される制御情報454の更新と、共有メモリ138における通信フレーム462および通信フレーム462に付加される制御情報464の更新とは、ほぼ同時に実行されることになる。
さらに、共有メモリ138に格納される通信フレーム462および制御情報464は、IOリフレッシュの対象となっており、IOリフレッシュ周期毎に、通信ユニット200に伝送される((2)IOリフレッシュ)。すなわち、CPUユニット100の共有メモリ128と通信ユニット200の共有メモリ208との間でサイクリックにデータ交換が行われる。
このように、CPUユニット100がいずれかの通信デバイス300から通信フレーム(受信データ)を受信すると、先に受信した通信フレーム(受信データ)に付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の通信ユニット200とデータ交換を行う。
通信ユニット200は、通信フレームポーリング周期毎に、IOリフレッシュにより取得される共有メモリ208上の制御情報474の値を監視する。制御情報474の値の変化を検知すると、通信ユニット200は、値が変化した制御情報474が付加されている通信フレーム472を処理する((5)通信フレーム受信)。
図12に示す例では、第1番目の通信フレームポーリング周期が到来したときに、制御情報474が「99」から「100」に変化したと検知され、対象の通信フレーム472が処理される。続く第2番目の通信フレームポーリング周期が到来したときに、制御情報474は「100」のままであるので、通信フレーム472の処理は行われない。
続く第3番目の通信フレームポーリング周期が到来したときに、制御情報474は「100」から「101」に変化したことが検知されるので、通信フレーム472が処理される。
このように、通信ユニット200は、所定の受信周期(通信フレームポーリング周期)毎に、処理すべき通信フレーム472が到着しているか否かを監視するとともに、到着していると判断されると、当該通信フレーム472の処理を開始する。
図13は、本実施の形態に係る制御システム1のCPUユニット100における通信フレームの受信処理を説明するための模式図である。図13を参照して、物理層ドライバ1226は、送受信回路124からの電気信号からデータ列を復号して、TCP/IPプロトコルスタック1224へ出力する。TCP/IPプロトコルスタック1224は、物理層ドライバ1226からのデータ列からEthernetフレームを再構成する。
アプリケーションプロトコルスタック1222は、コネクション管理情報182を参照して、TCP/IPプロトコルスタック1224からのEthernetフレーム内のコネクションIDに対応するエントリを探索する。コネクション管理情報182には、コネクション確立時にエントリが追加される。各エントリには、データ交換情報180との対応付けを示す情報が含まれる。アプリケーションプロトコルスタック1222は、データ交換情報180の探索された情報に基づいて、受信した通信フレームを共有メモリ128の対応する位置に格納する。
以上のような手順によって、CPUユニット100が受信した通信デバイス300からの通信フレームが通信ユニット200へ送信される。
図14は、本実施の形態に係る制御システム1における通信フレームの受信処理の処理手順を示すフローチャートである。図14を参照して、CPUユニット100は、いずれかの通信デバイス300から通信フレームを受信したか否かを判断する(ステップS300)。いずれの通信デバイス300からも通信フレームを受信していなければ(ステップS300においてNO)、ステップS302~S308の処理はスキップされる。
いずれかの通信デバイス300から通信フレームを受信していれば(ステップS300においてYES)、CPUユニット100は、コネクション管理情報182を参照して、受信した通信フレームの送信先である通信ユニット200を特定する(ステップS302)。CPUユニット100は、格納すべき通信フレームに付加する制御情報の内容を決定する(ステップS304)。そして、CPUユニット100は、特定した通信ユニット200に対応する、ネットワーク通信部120の共有メモリ128のアドレスに、当該受信した通信フレームおよび対応する制御情報を書込む(ステップS306)。
続いて、CPUユニット100は、データ交換情報180に従って、ネットワーク通信部120の共有メモリ128と内部バス通信部130の共有メモリ138との間でデータ交換を行う(ステップS308)。
続いて、CPUユニット100は、IOリフレッシュ周期が到来しているか否かを判断する(ステップS310)。IOリフレッシュ周期が到来していなければ(ステップS310においてNO)、IOリフレッシュ周期の到来を待つ。
IOリフレッシュ周期が到来していれば(ステップS310においてYES)、CPUユニット100は、IOリフレッシュを実行して、通信ユニット200との間でデータ交換を行う(ステップS312)。そして、ステップS300以下の処理が繰返される。
一方、通信ユニット200は、まず、IOリフレッシュ周期が到来しているか否かを判断する(ステップS400)。IOリフレッシュ周期が到来していなければ(ステップS400においてNO)、IOリフレッシュ周期の到来を待つ。
IOリフレッシュ周期が到来していれば(ステップS400においてYES)、通信ユニット200は、IOリフレッシュを実行して、CPUユニット100との間でデータ交換を行う(ステップS402)。
続いて、通信ユニット200は、通信ユニット200の共有メモリ208上にある制御情報のうち値が変化しているものがあるか否かを判断する(ステップS404)。通信ユニット200の共有メモリ208上にある制御情報のうち値が変化しているものがなければ(ステップS404においてNO)、ステップS400以下の処理が繰返される。
通信ユニット200の共有メモリ208上にある制御情報の値が変化しているものがあれば(ステップS404においてYES)、通信ユニット200は、値が変化している制御情報に対応する通信フレームを新たに受信した通信フレームとして処理する(ステップS406)。そして、ステップS400以下の処理が繰返される。
<D.変形例>
上述の実施の形態においては、CPUユニット100が有している1つの通信ポートを1または複数の通信ユニット200が利用する構成について例示したが、本実施の形態に係るCPUユニット100が有している転送機能または中継機能(ブリッジ機能)は、以下に示すような他の構成においても適用可能である。
(d1:複数の通信ポートの利用)
第1変形例として、複数の通信ポートを1または複数の通信ユニット200が利用する構成例について説明する。
図15は、本実施の形態の第1変形例に係る制御システム1Aの構成例を示す模式図である。図15を参照して、制御システム1Aは、CPUユニット100Aと、1または複数の通信ユニット200とを含む。
CPUユニット100Aは、通信フレームを送受信するための2つの通信ポート150,150Aを有している。すなわち、CPUユニット100Aは、データを送受信するための、通信ポート150とは異なる通信ポート150Aを有している。
通信ポート150がサポートしている通信プロトコルと通信ポート150Aがサポートしている通信プロトコルとは、同一であってもよいし、異なっていてもよい。典型的には、通信ポート150を介してデータを送受信するための通信プロトコルは、通信ポート150Aを介してデータを送受信するための通信プロトコルとは異なっている。
図15に示す構成例においては、通信ポート150には、通信デバイス300-1,300-2が接続されており、通信ポート150Aには、通信デバイス300-3が接続されている。CPUユニット100Aに接続されている通信ユニット200は、CPUユニット100Aの通信ポート150および通信ポート150Aのいずれをも利用可能になっている。
CPUユニット100Aは、通信ポート150に接続されている通信デバイス300および通信ポート150Aに接続されている通信デバイス300のうち一方と、通信ユニット200との間で、通信フレームを中継する。このような通信フレームの選択的な中継により、各通信ユニット200は、通信ポート150および通信ポート150Aの両方を利用できる。
このような各通信ユニット200と通信ポート150または通信ポート150Aに接続された通信デバイス300との間の中継は、CPUユニット100に格納されるデータ交換情報180Aに従って行われる。
図16は、本実施の形態の第1変形例に係る制御システム1AにおけるCPUユニット100Aと通信ユニット200との接続構成の一例を示す模式図である。図16を参照して、制御システム1AのCPUユニット100Aは、通信ポート150に関連付けられる共有メモリ128に加えて、通信ポート150Aに関連付けられる共有メモリ128Aを有している。
内部バス通信部130は、内部バス40を介して通信ユニット200との間で送受信される共有メモリ138に格納される通信フレームを、予め定められたデータ交換情報180Aに従って、共有メモリ128または共有メモリ128Aとの間でデータ交換する。
このように、CPUユニット100Aは、通信ポート150を介して通信デバイス300との間で送受信されるデータを格納する第2の記憶領域(共有メモリ128)と、通信ポート150Aを介して通信デバイス300との間で送受信されるデータを格納する第3の記憶領域(共有メモリ128A)とを有している。そして、CPUユニット100Aは、予め定められたデータ交換情報180Aに従って、第1の記憶領域(共有メモリ138)のデータを第2の記憶領域(共有メモリ138)および第3の記憶領域(共有メモリ138A)との間で選択的にデータ交換を行う。
共有メモリ138と共有メモリ128または共有メモリ128Aとの間のデータ交換に係る処理は、上述の実施の形態におけるデータ交換と同様であるので、詳細な説明は繰返さない。
図17は、本実施の形態の第1変形例に係るCPUユニット100に格納されるデータ交換情報180Aの内容の一例を示す模式図である。図17を参照して、データ交換情報180Aは、1または複数のデータ交換設定を含む。データ交換設定の各々は、送信元のメモリアドレス、送信先のメモリアドレス、送信サイズなどを含む。
図17に示すデータ交換情報180Aにおいては、データ交換設定の各々において、送信元または送信先として、それぞれの通信ポートに対応するネットワーク通信部を指定できるようになっている。このようなネットワーク通信部の選択的な指定によって、本実施の形態の第1変形例に係る制御システム1Aにおける通信フレームの送受信処理を実現できる。
本実施の形態の第1変形例に係る制御システム1Aの基本的な構成および処理は、本実施の形態に係る制御システム1と同様であるので、詳細な説明は繰返さない。
本実施の形態の第1変形例によれば、CPUユニット100Aにおいて、通信フレームを中継する経路は、サポート装置などを用いて、ユーザが任意に設定できる。このように、データ交換情報180を設定するだけで、通信ユニット200に特殊な通信プロトコルなどを実装することなく、CPUユニット100Aに実装されている複数の通信プロトコルを利用できる。
また、同一の通信ユニット200から送信される2種類の通信フレームのうち、一方をCPUユニット100Aの通信ポート150から送信し、他方をCPUユニット100Aの通信ポート150Aから送信するような利用形態も可能である。
このように、本実施の形態の第1変形例に係るCPUユニット100Aにおいては、それぞれ異なる通信プロトコルに従って伝送される複数の通信フレームを中継できるとともに、通信フレームを互いに異なる通信ポートに中継できる。このような構成を利用することで、複数の通信プロトコルが利用される制御システムであっても、簡素な制御構成で実現できる。
(d2:通信ポート間の中継)
第2変形例として、複数の通信ポートを有するCPUユニット100がルータのように機能する構成例について説明する。
図18は、本実施の形態の第2変形例に係る制御システム1Bの構成例を示す模式図である。図18を参照して、制御システム1Bは、CPUユニット100Bと、1または複数の通信ユニット200とを含む。制御システム1Bは、さらに、カプラユニット340と、通信ユニット200とを含む。
CPUユニット100Bは、通信フレームを送受信するための2つの通信ポート150,150Bを有している。通信ポート150がサポートしている通信プロトコルと通信ポート150Bがサポートしている通信プロトコルとは、同一であってもよいし、異なっていてもよい。
図18に示す構成例においては、通信ポート150には、通信デバイス300-1が接続されており、通信ポート150Bには、カプラユニット340が接続されている。カプラユニット340には、図示しない内部バスを介して通信ユニット200-4が接続されている。
CPUユニット100Bは、通信ポート150に接続されている通信デバイス300-1と、通信ポート150Bに接続されているカプラユニット340および通信ユニット200-4との間で、通信フレームを中継する。CPUユニット100Bにおける通信ポート間の通信フレームの中継により、通信プロトコルの異なるデバイス間の通信フレームの伝送なども可能になる。
このような通信ポート150に接続された通信デバイス300と通信ポート150Bに接続されたカプラユニット340(および、カプラユニット340に接続された通信ユニット200)との間の中継は、CPUユニット100に格納されるデータ交換情報180Bに従って行われる。
図19は、本実施の形態の第2変形例に係る制御システム1BにおけるCPUユニット100Bにおける接続構成の一例を示す模式図である。図19を参照して、制御システム1BのCPUユニット100Bは、通信ポート150に関連付けられる共有メモリ128に加えて、通信ポート150Bに関連付けられる共有メモリ128Bを有している。
CPUユニット100Bにおいては、通信ポート150に関連付けられる共有メモリ128と、通信ポート150Bに関連付けられる共有メモリ128Bとの間で、予め定められたデータ交換情報180Bに従って、データ交換が行われる。
このように、CPUユニット100Bは、通信ポート150を介して通信デバイス300との間で送受信されるデータを格納する第2の記憶領域(共有メモリ128)と、通信ポート150Bを介して通信デバイス300との間で送受信されるデータを格納する第3の記憶領域(共有メモリ128B)とを有している。そして、CPUユニット100Bは、予め定められたデータ交換情報180Bに従って、第2の記憶領域(共有メモリ128)と第3の記憶領域(共有メモリ128B)との間でデータ交換を行う。
本実施の形態の第2変形例に係る制御システム1Bの基本的な構成および処理は、本実施の形態に係る制御システム1と同様であるので、詳細な説明は繰返さない。
本実施の形態の第2変形例によれば、CPUユニット100Bにおいて、通信フレームを中継する経路は、サポート装置などを用いて、ユーザが任意に設定できる。このように、データ交換情報180を設定するだけで、通信ユニット200に特殊な通信プロトコルなどを実装することなく、CPUユニット100Bに接続されている複数の通信プロトコル間でのデータ伝送が可能になる。
このように、本実施の形態の第2変形例に係るCPUユニット100Bにおいては、通信フレームを中継する経路を自由に決定できるので、CPUユニット100に接続されている通信ユニット200に限らず、異なるネットワークに接続されている通信デバイス300からの通信フレームについても、他のネットワークに中継できる。すなわち、本実施の形態の第2変形例に係るCPUユニット100Bによれば、複数の階層のネットワーク間で通信フレームを中継できる。
(d3:複数のユニットの利用)
第3変形例として、単一の通信ユニットが複数のユニットにそれぞれ配置された通信ポートを利用する構成例について説明する。
図20は、本実施の形態の第3変形例に係る制御システム1Cの構成例を示す模式図である。図20を参照して、制御システム1Cは、CPUユニット100と、通信ユニット200-1,200-2と、通信ポートを有する通信ユニット200Cとを含む。
CPUユニット100は、通信フレームを送受信するための通信ポート150を有しており、通信ユニット200Cは、通信フレームを送受信するための通信ポート150Cを有している。CPUユニット100の通信ポート150がサポートしている通信プロトコルと、通信ユニット200Cの通信ポート150Cがサポートしている通信プロトコルとは、同一であってもよいし、異なっていてもよい。
図20に示す構成例においては、例えば、通信ユニット200-1は、CPUユニット100の通信ポート150を利用して通信デバイス300-2との間で通信フレームを送受信するとともに、通信ユニット200Cの通信ポート150Cを利用して通信デバイス300-5との間で通信フレームを送受信する。
この場合、通信ユニット200-1は、内部バス40を介して通信フレームをCPUユニット100へ送信するとともに、内部バス40を介して通信フレームを通信ユニット200Cへ送信する。
CPUユニット100においては、データ交換情報180に従って、通信ユニット200-1からの通信フレームが通信デバイス300-2へ中継される。一方、通信ユニット200Cにおいては、データ交換情報180Cに従って、通信ユニット200-1からの通信フレームが通信デバイス300-5へ中継される。
本実施の形態の第3変形例に係る制御システム1Cの基本的な構成および処理は、本実施の形態に係る制御システム1と同様であるので、詳細な説明は繰返さない。
このように、本実施の形態の第3変形例に係る制御システム1Cにおいては、制御システム1Cに含まれる物理的に異なる通信ユニットが有する通信ポートを利用して、通信フレームの送信を実現できる。
<E.設定ユーザインターフェイス>
次に、本実施の形態に係る制御システムにおいて利用されるデータ交換情報180およびコネクション管理情報182を設定するためのユーザインターフェイスの一例について説明する。
図21は、本実施の形態に係る制御システムにおける設定ユーザインターフェイスの一例を示す図である。図21に示すユーザインターフェイス画面500は、CPUユニット100に接続されたサポート装置上に提供されてもよい。
例えば、図15に示すような、CPUユニット100に2つの通信ポート150,150Aが配置されているような構成を想定する。一方の通信ポート150に接続されている通信先の通信デバイス300-1のIPアドレスが「162.168.1.100」(通信プロトコル:Ethernet/IP Safety)であり、他方の通信ポート150Aに接続されている通信先の通信デバイス300-3のIPアドレスが「162.168.250.200」(通信プロコトル:Profinet Safety)であるとする。
一例として、データ交換情報180およびコネクション管理情報182の情報源となるデータを設定する操作手順としては、以下のようになる。
(1)図21に示すようなユーザインターフェイス画面上で、通信フレームの中継を行うためのコネクション設定を行う。
(2)図21に示すようなユーザインターフェイス画面上で、通信フレームを中継するCPUユニット100の通信ポート150に通信デバイス300-1宛てのメッセージを割当てる。
(3)図21に示すようなユーザインターフェイス画面上で、通信フレームを中継するCPUユニット100の通信ポート150Aに通信デバイス300-3宛てのメッセージを割当てる。
(4)ユーザプログラムおよび設定ファイルを含むプロジェクトをビルドして、データ交換情報180を生成する。
(5)CPUユニット100および通信ユニット200にユーザプログラムおよび設定ファイルをダウンロードする。
図21を参照して、ユーザインターフェイス画面500は、CPUユニット100に設けられている通信ポート毎に設定領域502,504が配置されている。設定領域502,504の各々においては、対応する通信ポートを介して接続される通信デバイス300を設定するためのターゲットデバイス設定領域512と、実際に通信フレームを送受信する対象を設定するためのターゲットアッセンブリ設定領域514と、通信周期設定領域516とを含む。
ターゲットデバイス設定領域512は、対象のCPUユニット100において利用可能な通信ポートの一覧に相当する。ターゲットデバイス設定領域512の各々に対して、図示しないツールボックスから、通信対象の通信デバイスを割当てることでコネクション管理情報182の情報源となるデータを生成する。
CPUユニット100と通信対象の通信デバイスとの間の接続(すなわち、割当てたコネクション)に対して、宛先を示すIPアドレスおよび通信周期(パケットインターバル)などを設定や変更が可能である。
なお、図示しないツールボックスには、CPUユニット100において利用可能な通信デバイスの一覧が表示されてもよい。ユーザインターフェイス画面500に並べてツールボックスが表示される場合には、対象の通信デバイスをターゲットデバイス設定領域512にドラッグ・アンド・ドロップすることで、コネクションの設定を行うことができる。
さらに、ユーザインターフェイス画面500においては、各通信ポートで利用可能な通信プロトコルの種別および伝送されるメッセージのサイズなどを設定および変更できる。
図21に示すようなユーザインターフェイス画面500を用いて各種割当てを行うことで、通信フレームを中継(ブリッジ)する通信経路を確定できる。そして、確定した通信経路に対して、制御情報および通信フレームのデータ交換情報180を生成する。
図21に示すようなユーザインターフェイス画面500を提供することで、ユーザは、直感的な操作によって、CPUユニット100において通信フレームを中継(ブリッジ)するための設定を容易に行うことができる。
<F.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御対象を制御するための制御システム(1,1A,1B,1C)であって、
データを送受信するための第1の通信ポート(150)を有する第1のユニット(100,100A,100B)と、
前記第1のユニットと電気的に接続された1または複数の第2のユニット(200)とを備え、
前記第2のユニットの各々は、前記第1のユニットの前記第1の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部(270)を備え、
前記第1のユニットは、前記第2のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部(102)を備える、制御システム。
[構成2]
前記転送処理部は、いずれかのデバイス(300)から受信した受信データを当該受信データの送信先の第2のユニット(200)へ転送する、構成1に記載の制御システム。
[構成3]
前記第1のユニットおよび前記1または複数の第2のユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部(130,220)を備えており、
前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報とは異なる内容の制御情報(404)を付加して、前記第1のユニットとデータ交換を行う、構成1または2に記載の制御システム。
[構成4]
前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報の値をインクリメントまたはデクリメントすることで、新たな制御情報を生成する、構成3に記載の制御システム。
[構成5]
前記第1のユニットは、
前記1または複数の第2のユニットとの間でデータ交換されるデータを格納する第1の記憶領域(138)と、
前記第1の通信ポートを介してデバイスとの間で送受信されるデータを格納する第2の記憶領域(128)とを備え、
前記転送処理部は、予め定められたデータ交換情報(180)に従って、前記第1の記憶領域と前記第2の記憶領域との間でデータ交換を行う、構成3または4に記載の制御システム。
[構成6]
前記転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報(454)を付加して、当該受信データの送信先の第2のユニットとデータ交換を行う、構成5に記載の制御システム。
[構成7]
前記第1のユニットは、データを送受信するための、前記第1の通信ポートとは異なる第2の通信ポート(150A)をさらに有しており、
前記第1の通信ポートを介してデータを送受信するための通信プロトコルは、前記第2の通信ポートを介してデータを送受信するための通信プロトコルとは異なる、構成6に記載の制御システム。
[構成8]
前記第1のユニットは、前記第2の通信ポートを介してデバイスとの間で送受信されるデータを格納する第3の記憶領域(128A)をさらに備え、
前記転送処理部は、予め定められたデータ交換情報(180A)に従って、前記第1の記憶領域のデータを前記第2の記憶領域および前記第3の記憶領域との間で選択的にデータ交換を行う、構成7に記載の制御システム。
[構成9]
前記第1のユニットは、前記第2の通信ポート(150B)を介してデバイスとの間で送受信されるデータを格納する第3の記憶領域(128B)をさらに備え、
前記転送処理部は、予め定められたデータ交換情報(180B)に従って、前記第2の記憶領域と前記第3の記憶領域との間でデータ交換を行う、構成7に記載の制御システム。
[構成10]
制御対象を制御するための制御システムを構成する制御装置(100)であって、
データを送受信するための通信ポート(150)と、
1または複数の通信ユニット(200)との間で、予め定められた周期毎にデータ交換を行うためのデータ通信部(130)とを備え、前記通信ユニットの各々は、前記通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部(270)を含み、
前記通信ユニットから送信された送信データを送信先のデバイスへ転送する転送処理部(102)を備える、制御装置。
<G.まとめ>
本実施の形態によれば、CPUユニット100にデータ(通信フレーム)の中継機能(ブリッジ機能)を実装することで、CPUユニット100に設けられている通信ポートを用いて、他の通信ユニット200が通信を行うことができる。このような構成を採用することで、通信ユニット200の各々において、それぞれ通信機構を実装する必要がなく、システムの簡素化および通信ユニット200などの開発コストの低減を実現できる。
本実施の形態によれば、CPUユニット100におけるデータ(通信フレーム)の中継機能(ブリッジ機能)として規定される経路を、ユーザが自由に設定できる。そのため、通信プロトコルなどに依存することなく、複数の通信プロトコルに従う通信フレームをブリッジすることにより、異なるネットワークあるいは異なる通信ポートへの通信フレームの転送が可能となり、より柔軟なシステムを構築できる。
本実施の形態によれば、通信ユニット200の各々がアプリケーションの実行環境を有することもでき、このようなアプリケーションの実行環境によれば、CPUユニット100でのユーザプログラムの実行とは独立して、各種の処理および機能を提供できる。したがって、CPUユニット100および1または複数の通信ユニット200を含む制御システムを構築することで、各ユニットが自立して与えられたタスクを実行する、柔軟性の高い自立分散システムを実現できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1,1A,1B,1C,1X 制御システム、40 内部バス、42 ダウンリンク、44 アップリンク、100,100A,100B,100X CPUユニット、102,202 プロセッサ、104,204 フラッシュメモリ、106,216 システムプログラム、108 構成情報、110 RAM、120 ネットワーク通信部、122 ネットワークコントローラ、124 送受信回路、128,128A,128B,138,138A,208 共有メモリ、128R,138R,208R 受信バッファ、128T,138T,208T 送信バッファ、130,220 内部バス通信部、132 内部バスコントローラ、134 送信回路、136 受信回路、150,150A,150B,150C,250X 通信ポート、180,180A,180B,180C データ交換情報、182 コネクション管理情報、200,200C,200X 通信ユニット、206 機能モジュール、218 アプリケーションプログラム、230R,240R 受信部、230T,240T 送信部、232,242 DES(逆シリアル変換器)、234,244 転送コントローラ、236,246 SER(シリアル変換器)、250 受信処理部、252 復号部、254 CRCチェック部、260 送信処理部、262 CRC生成部、264 符号化部、270 論理通信部、300 通信デバイス、340 カプラユニット、402,412,422,432,442,452,462,472 通信フレーム、404,414,424,444,454,464,474 制御情報、500 ユーザインターフェイス画面、502,504 設定領域、512 ターゲットデバイス設定領域、514 ターゲットアッセンブリ設定領域、516 通信周期設定領域、1222 アプリケーションプロトコルスタック、1224 プロトコルスタック、1226 物理層ドライバ。

Claims (8)

  1. 制御対象を制御するための制御システムであって、
    データを送受信するための第1の通信ポートを有する第1のユニットと、
    前記第1のユニットと電気的に接続された1または複数の第2のユニットとを備え、
    前記第2のユニットの各々は、前記第1のユニットの前記第1の通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を備え、
    前記第1のユニットおよび前記1または複数の第2のユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部を備えており、
    前記第1のユニットは、前記第2のユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を備え、
    前記転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の第2のユニットとデータ交換を行い、
    前記論理通信部は、今回の周期にデータ交換された受信データに付加される制御情報が前回の周期から変化していれば、当該受信データを新たに受信したデータとして受信処理を行い、今回の周期にデータ交換された受信データに付加される制御情報が前回の周期から変化していなければ、当該受信データについての受信処理を行わない、制御システム。
  2. 前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報とは異なる内容の制御情報を付加して、前記第1のユニットとデータ交換を行う、請求項1に記載の制御システム。
  3. 前記論理通信部は、新たに送信する送信データを生成すると、先に生成した送信データに付加された制御情報の値をインクリメントまたはデクリメントすることで、新たな制御情報を生成する、請求項2に記載の制御システム。
  4. 前記第1のユニットは、
    前記1または複数の第2のユニットとの間でデータ交換されるデータを格納する第1の記憶領域と、
    前記第1の通信ポートを介してデバイスとの間で送受信されるデータを格納する第2の記憶領域とを備え、
    前記転送処理部は、予め定められたデータ交換情報に従って、前記第1の記憶領域と前記第2の記憶領域との間でデータ交換を行う、請求項2または3に記載の制御システム。
  5. 前記第1のユニットは、データを送受信するための、前記第1の通信ポートとは異なる第2の通信ポートをさらに有しており、
    前記第1の通信ポートを介してデータを送受信するための通信プロトコルは、前記第2の通信ポートを介してデータを送受信するための通信プロトコルとは異なる、請求項4に記載の制御システム。
  6. 前記第1のユニットは、前記第2の通信ポートを介してデバイスとの間で送受信されるデータを格納する第3の記憶領域をさらに備え、
    前記転送処理部は、予め定められたデータ交換情報に従って、前記第1の記憶領域のデータを前記第2の記憶領域および前記第3の記憶領域との間で選択的にデータ交換を行う、請求項5に記載の制御システム。
  7. 前記第1のユニットは、前記第2の通信ポートを介してデバイスとの間で送受信されるデータを格納する第3の記憶領域をさらに備え、
    前記転送処理部は、予め定められたデータ交換情報に従って、前記第2の記憶領域と前記第3の記憶領域との間でデータ交換を行う、請求項5に記載の制御システム。
  8. 制御対象を制御するための制御システムを構成する制御装置であって、
    データを送受信するための通信ポートと、
    1または複数の通信ユニットとの間で、予め定められた周期毎にデータ交換を行うためのデータ通信部とを備え、前記通信ユニットの各々は、前記通信ポートと電気的に接続されたデバイスとの間でデータを送受信するための論理通信部を含み、
    前記通信ユニットから送信された送信データを送信先のデバイスへ転送する転送処理部を備え、
    前記制御装置および前記1または複数の通信ユニットは、予め定められた周期毎にデータ交換を行うためのデータ通信部を備えており、
    前記転送処理部は、いずれかのデバイスから受信データを受信すると、先に受信した受信データに付加された制御情報とは異なる内容の制御情報を付加して、当該受信データの送信先の通信ユニットとデータ交換を行い、
    前記論理通信部は、今回の周期にデータ交換された受信データに付加される制御情報が前回の周期から変化していれば、当該受信データを新たに受信したデータとして受信処理を行い、今回の周期にデータ交換された受信データに付加される制御情報が前回の周期から変化していなければ、当該受信データについての受信処理を行わない、制御装置。
JP2017247373A 2017-12-25 2017-12-25 制御システムおよび制御装置 Active JP7087378B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017247373A JP7087378B2 (ja) 2017-12-25 2017-12-25 制御システムおよび制御装置
EP18199598.6A EP3502813B1 (en) 2017-12-25 2018-10-10 Control system and control device
CN201811195863.3A CN109960242B (zh) 2017-12-25 2018-10-15 控制***以及控制装置
US16/159,737 US20190197016A1 (en) 2017-12-25 2018-10-15 Control system and control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017247373A JP7087378B2 (ja) 2017-12-25 2017-12-25 制御システムおよび制御装置

Publications (2)

Publication Number Publication Date
JP2019114085A JP2019114085A (ja) 2019-07-11
JP7087378B2 true JP7087378B2 (ja) 2022-06-21

Family

ID=63921496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017247373A Active JP7087378B2 (ja) 2017-12-25 2017-12-25 制御システムおよび制御装置

Country Status (4)

Country Link
US (1) US20190197016A1 (ja)
EP (1) EP3502813B1 (ja)
JP (1) JP7087378B2 (ja)
CN (1) CN109960242B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244297B1 (ko) * 2019-12-17 2021-04-23 엘에스일렉트릭(주) Hart 패스-스루 인터페이스를 포함하는 plc 아날로그 모듈
CN110750069B (zh) * 2019-12-24 2020-05-22 武汉精立电子技术有限公司 一种aoi***的多设备控制装置
CN113542090B (zh) * 2020-04-14 2023-07-14 宁波弘讯科技股份有限公司 一种EtherCAT主从站一体网桥控制器及控制方法
CN111722581B (zh) * 2020-05-28 2021-10-22 国电南瑞科技股份有限公司 提高plc控制器与上位机通讯传输和数据处理效率的方法
CN117043691A (zh) * 2021-03-24 2023-11-10 发那科株式会社 I/o单元以及通信***
EP4318148A1 (en) * 2021-03-24 2024-02-07 Fanuc Corporation Master unit and communication system
EP4318149A1 (en) * 2021-03-24 2024-02-07 Fanuc Corporation Master unit
WO2022202388A1 (ja) * 2021-03-24 2022-09-29 ファナック株式会社 I/oユニット、マスターユニットおよび通信システム
EP4318146A1 (en) * 2021-03-24 2024-02-07 Fanuc Corporation I/o unit
CN117015749A (zh) * 2021-03-24 2023-11-07 发那科株式会社 I/o单元

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055046A1 (ja) 2005-11-14 2007-05-18 Mitsubishi Electric Corporation ネットワークユニットおよびこれを用いたプログラマブルコントローラ
US20100165878A1 (en) 2008-12-31 2010-07-01 Schneider Automation Inc. Communication Module with Network Isolation and Communication Filter
WO2015056695A1 (ja) 2013-10-15 2015-04-23 オムロン株式会社 制御装置および制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648064A (en) * 1976-01-02 1987-03-03 Morley Richard E Parallel process controller
JP2000267703A (ja) * 1999-03-15 2000-09-29 Omron Corp プログラマブルコントローラ
US7392331B2 (en) * 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
JP2006171833A (ja) * 2004-12-13 2006-06-29 Fuji Electric Fa Components & Systems Co Ltd Plcのデータ交換システム、及びplcのデータ交換システムの制御方法
JP4941365B2 (ja) 2008-03-13 2012-05-30 オムロン株式会社 産業用コントローラ
US9197576B2 (en) * 2010-11-15 2015-11-24 Rockwell Automation Technologies, Inc. Method and apparatus for allocating and prioritizing data transmission
CN202759477U (zh) * 2012-08-23 2013-02-27 北京电子科技职业学院 工业通讯协议转换***
JP6263836B2 (ja) * 2013-01-15 2018-01-24 オムロン株式会社 制御装置および制御方法
CN103944679B (zh) * 2014-04-21 2017-09-22 华北水利水电大学 一种基于vl的数据帧并发业务发生设备和方法
JP6498557B2 (ja) 2015-07-28 2019-04-10 株式会社日立産機システム プログラマブルコントローラ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055046A1 (ja) 2005-11-14 2007-05-18 Mitsubishi Electric Corporation ネットワークユニットおよびこれを用いたプログラマブルコントローラ
US20100165878A1 (en) 2008-12-31 2010-07-01 Schneider Automation Inc. Communication Module with Network Isolation and Communication Filter
WO2015056695A1 (ja) 2013-10-15 2015-04-23 オムロン株式会社 制御装置および制御方法

Also Published As

Publication number Publication date
CN109960242B (zh) 2022-07-05
US20190197016A1 (en) 2019-06-27
EP3502813A1 (en) 2019-06-26
EP3502813B1 (en) 2022-04-13
CN109960242A (zh) 2019-07-02
JP2019114085A (ja) 2019-07-11

Similar Documents

Publication Publication Date Title
JP7087378B2 (ja) 制御システムおよび制御装置
CN109792442B (zh) 通信装置、控制装置以及通信方法
KR101016145B1 (ko) 통신 컴포넌트
CN110235418B (zh) 通信***、通信装置以及通信方法
US7852857B2 (en) Coupler for a ring topology network and an ethernet-based network
US7900115B2 (en) Replacement messages for identifying and preventing errors during the transmission of realtime-critical data
JP4172490B2 (ja) プログラマブルコントローラ
KR101179431B1 (ko) 이더캣 네트워크 시스템 및 이의 운용 방법
JP2019179361A (ja) セーフティ制御システムおよびセーフティ制御ユニット
CN110663227A (zh) 总线转换器
JP2022540588A (ja) 特にエレベータシステムにおいて、データコンテンツを通信するための方法およびデータネットワーク
JP2017084173A (ja) 監視制御システムおよび監視制御方法
CN114531943B (zh) 数据传输方法和自动化通信网络
JP4488849B2 (ja) 無線伝送システム、その無線端末
JP4671056B2 (ja) プログラマブルコントローラおよび通信ユニット
WO2024024280A1 (ja) 通信処理装置および通信方法
JP2020065110A (ja) 通信装置
CN114868347A (zh) 对通过无线链路的数据业务的冗余控制
JP5223582B2 (ja) メッセージ伝送装置及びメッセージ伝送方法
Kim et al. A method for improving the reliability of the gateway system by using OSEK and duplication scheme
WO2020184381A1 (ja) 処理装置、情報処理システム、情報処理方法、及びプログラム
JP3941560B2 (ja) 無線通信システム
KR101726343B1 (ko) 멀티밴드 시리얼 통신장치 및 이를 이용한 데이터 통신방법
JP2006042164A (ja) ゲートウェイ装置
CN114145000A (zh) 云应用的高效的心跳机制

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R150 Certificate of patent or registration of utility model

Ref document number: 7087378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150