(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-09-05
(45)【発行日】2025-09-16
(54)【発明の名称】制御用通信システム
(51)【国際特許分類】
H04L 47/35 20220101AFI20250908BHJP
H04L 12/28 20060101ALI20250908BHJP
【FI】
H04L47/35
H04L12/28 100F
(21)【出願番号】P 2025508502
(86)(22)【出願日】2023-12-19
(86)【国際出願番号】 JP2023045492
【審査請求日】2025-02-13
(73)【特許権者】
【識別番号】501387839
【氏名又は名称】株式会社日立ハイテク
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】丸山 龍也
(72)【発明者】
【氏名】北村 純一
(72)【発明者】
【氏名】山本 浩一
(72)【発明者】
【氏名】菅谷 祐二
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2019-29790(JP,A)
【文献】国際公開第2021/079599(WO,A1)
【文献】国際公開第2018/230063(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
制御用データを含んだパケットを送信する通信部を有する制御用通信装置と、
前記通信部に含まれる通信ポートと通信可能に接続され、受信した前記パケットに沿って動作する複数のデバイスと、
を有する制御用通信システムであって、
前記パケットは、前記制御用データが選択されて配置されたパケットデータ領域を含み、前記通信部から、前記通信部に接続された前記デバイスに送信され、
前記制御用通信装置は、
前記制御用データの送受信に関わる通信制御情報に基づいて前記制御用データを生成し、
前記デバイスと前記制御用データとの対応関係を保持し、
前記デバイスの状態変更時は、前記対応関係に基づいて、前記デバイスに関わる前記通信制御情報を変更する、
制御用通信システム。
【請求項2】
前記制御用データは、前記制御用通信システムにおいて共有される仮想領域へのアクセス内容を含む、
請求項1に記載の制御用通信システム。
【請求項3】
前記通信制御情報は、前記制御用データに含まれる検証パラメータを、前記制御用通信装置の前記通信部で受信した際の期待値を含み、
前記検証パラメータは、前記制御用データを処理する前記デバイスの数に基づいて決定される、
請求項1に記載の制御用通信システム。
【請求項4】
前記通信制御情報は、前記仮想領域のアドレスを含む、
請求項2に記載の制御用通信システム。
【請求項5】
前記通信制御情報は、前記制御用データのサイズを含む、
請求項1に記載の制御用通信システム。
【請求項6】
前記対応関係は、前記デバイスと当該デバイスのアドレス空間が割り当てられた前記仮想領域との対応、または前記制御用データと当該制御用データがアクセスする前記仮想領域との対応のいずれか、または両方を含む、
請求項2に記載の制御用通信システム。
【請求項7】
前記制御用通信装置は、前記期待値と、前記制御用データを受信した際の前記検証パラメータの値とが不一致だった場合に、当該制御用データを含むパケットを再送する、
請求項3に記載の制御用通信システム。
【請求項8】
前記制御用通信装置は、前記通信部を複数有し、
前記制御用通信装置は、前記パケットを受信した際に、前記パケットを受信した前記通信部に対して設定された前記期待値と、前記パケットに含まれる前記制御用データの前記検証パラメータの値とに基づいて、前記デバイスとの通信経路の異常の有無の判定、前記通信経路に隣接する前記デバイスの特定、前記複数の通信部のいずれかからの当該制御用データを含むパケットの再送、の少なくともいずれかを実行する、
請求項3に記載の制御用通信システム。
【請求項9】
前記通信制御情報は、前記デバイスの総数を含み、
前記制御用通信装置は、前記パケットを受信した際に、前記パケットに含まれる前記制御用データの前記検証パラメータの値が前記総数と等しい場合に当該制御用データを含むパケットを再送しない、
請求項8に記載の制御用通信システム。
【請求項10】
第一の前記デバイスが隣接する第二の前記デバイスとの通信経路で異常が生じた際の通信遅延補正情報を前記制御用通信システムの構成に基づいて決定し、
異なる前記制御用通信システムの構成に応じた前記通信遅延補正情報を、それぞれ異なる前記仮想領域に格納し、
前記対応関係は、前記デバイスと、前記制御用通信システムの構成に応じた前記通信遅延補正情報を格納した前記仮想領域のアドレスとの対応を含み、
前記通信制御情報は、前記通信遅延補正情報を格納した前記仮想領域のアドレスを含み、
前記制御用通信装置は、前記制御用通信システムの構成変更時は、前記対応関係に基づいて、前記制御用データに含めるアドレスを、前記制御用通信システムの構成に応じた前記通信遅延補正情報を格納した前記仮想領域のアドレスに変更する、
請求項4に記載の制御用通信システム。
【請求項11】
前記制御用通信システムに対して変更対象となる前記デバイスのアドレス空間を前記仮想領域上に集約して割り当てる、
請求項4に記載の制御用通信システム。
【請求項12】
前記制御用通信装置は、前記デバイスの状態を変更する間、前記パケットを受信した際の前記検証パラメータに基づく処理を無効化する期間を設ける、
請求項7または請求項8に記載の制御用通信システム。
【請求項13】
前記対応関係は、前記制御用通信システムの稼働時にとり得る最大構成での前記デバイスと、前記制御用データとの対応関係を有する、
請求項1に記載の制御用通信システム。
【請求項14】
前記対応関係は、前記デバイスの接続順を含み、
前記制御用通信装置は、前記デバイスの状態変更時には、前記対応関係に基づいて前記デバイスの接続順を検証する、
請求項1に記載の制御用通信システム。
【請求項15】
前記制御用通信装置は、前記通信部を複数有し、
前記通信制御情報は、前記通信部ごとに定義される、
請求項1に記載の制御用通信システム。
【請求項16】
前記制御用通信システムにおけるシステム構成の変更要因と、状態変更の対象となる前記デバイスとが対応付けられる、
請求項1に記載の制御用通信システム。
【請求項17】
前記制御用通信装置は、前記制御用通信システムにおけるシステム構成の変更を検知するための前記制御用データを定期的に送信し、前記制御用通信システムにおけるシステム構成の変更を自動で検知する、
請求項16に記載の制御用通信システム。
【請求項18】
前記対応関係は、前記複数のデバイスをひと纏めのグルーブとして前記制御用データに対応付ける、
請求項1に記載の制御用通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御用通信システムに関し、例えば、制御用通信システムで行われる制御用通信の設定方法の技術に関する。
【背景技術】
【0002】
社会インフラを支える制御システムは、例えば、センサ、コントローラ、アクチュエータで構成される。このような制御システムでは、物理対象の状態をセンサが取得してコントローラに入力し、コントローラがアクチュエータに指示するための制御指令値を演算し、その指令値に基づいてアクチュエータが物理対象に働きかける。制御システムは、例えば、このような一連の処理を周期的に繰り返すことで所望の制御を実行する。
【0003】
このような制御システムとして、工場などのFactory Automation(FA)、化学プラント等におけるProcess Automation(PA)、半導体製造装置、半導体検査装置が例示される。さらには、医用機器、分散制御システム(Distributed Control System)、電力系統の制御システムや発電プラント、上下水処理システム、鉄鋼制御システムなどが例示される。
【0004】
こうした中、特許文献1には、複数のノードを含むネットワークの通信状態に応じてフレームを再構成する通信制御装置が示される。具体的には、生産装置(部品装着機1)が生産(装着処理)を休止し、メンテナンスの実行中にフレームを再構成する場合に、通信制御装置は、データフィールドの全域を対象フィールドとし、対象フィールドを複数のノードごとに再配分することにより各データ区画の比率を変更してフレームを再構成する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、大規模な制御システムや複雑な制御システムでは、複数のセンサ、コントローラ、アクチュエータがネットワークを介して接続される。このようなネットワークでは、制御システムの要件である時間的制約(例えば、最悪遅延)、コスト、信頼性、適用分野特有の要件を満足すべく、制御ネットワークとしての技術が進展している。特に、制御システムを構成する制御ネットワークに対しては、制御システムの大規模化や高度化、あるいは昨今の産業用IoTの進展に牽引されて、通信の高速化、制御通信周期の短縮、通信量の大容量化等が求められている。
【0007】
このようなニーズに対応する方法として、制御ネットワークにEthernet(登録商標)を導入することにより、通信大容量化が図られている。加えて、制御システム稼働後において、制御システムへの要求の変化や継続的な制御システムの性能改善に向け、システム構成の変化が求められる場合がある。これは、新規に通信制御装置を追加する場合もあれば、単独の通信制御装置の性能向上によって、通信制御装置を削減し、運用コストの低減を図る場合もあり得る。
【0008】
システム構成の変化が求められる場合は、これに限らず、例えば、制御システムを保守する場合に一時的に一部または全ての通信制御装置を停止する場合や、保守用の通信制御装置を制御システムに追加する場合がありえる。制御システムによっては、一部の通信制御装置を停止する場合であっても、それ以外の通信制御装置は継続して通信を確立しておく必要がある。
【0009】
このような背景を踏まえ、通信性能の向上と、システム構成の変化の両方の要求に対応する技術が求められる。しかしながら、通信性能の向上とシステム構成の変化への対応の両立に課題がある。例えば、システム構成の変化に対応するためには、通常、個々の通信制御装置が識別され、通信の単位は通信制御装置ごととなる。しかしながら、このような通信方式では、通信制御装置の数だけ通信データが必要となり、通信データに付属するオーバーヘッドによって通信遅延の増加や通信帯域利用効率の低下など、通信性能が低下する。
【0010】
例えば、Ethernetフレームにおいては、アプリケーション向けの通信データに加えて、ヘッダやFCS(Frame Check Sequence)、IFG(Inter Frame Gap)の通信が必要となる。これらは、通信には必要であるが、アプリケーション向けの有効データを含まないという意味ではオーバーヘッドである。
【0011】
本発明は、主に、以上のような課題を解決することを目的とする。
【0012】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0013】
本発明は、上記課題を解決するために、制御用データを含んだパケットを送信する通信部を有する制御用通信装置と、通信部に含まれる通信ポートと通信可能に接続され、受信したパケットに沿って動作する複数のデバイスと、を有する。パケットは、制御用データが選択されて配置されたパケットデータ領域を含み、通信部から、通信部に接続されたデバイスに送信される。制御用通信装置は、制御用データの送受信に関わる通信制御情報に基づいて制御用データを生成し、デバイスと制御用データとの対応関係を保持し、デバイスの状態変更時は、当該対応関係に基づいて、デバイスに関わる通信制御情報を変更する。
【発明の効果】
【0014】
本発明によれば、通信性能を向上させながら、制御システムへの要求に応じてシステム構成を変更可能な、システム可変性に優れた制御システムを提供できる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、第1の実施の形態による制御用通信システムの構成例を示す概略図である。
【
図2】
図1における制御装置のハードウェア構成例を示すブロック図である。
【
図3】
図1における制御装置の機能構成例を示す機能ブロック図である。
【
図4】
図1における制御ネットワーク上を伝送するEtherCATフレームの構成例を示す図である。
【
図5】
図1における制御対象装置のハードウェア構成例を示すブロック図である。
【
図6】
図5における制御対象装置用通信制御ICの機能構成例を示すブロック図である。
【
図7】
図1における制御システム構成装置の機能構成例を示すブロック図である。
【
図8】
図7に示した制御システム構成装置が有する各機能部の動作手順の一例を示すフローチャートである。
【
図9A】
図8に示される動作手順の具体例を示す図である。
【
図9B】
図8に示される動作手順の具体例を示す図である。
【
図9C】
図8に示される動作手順の具体例を示す図である。
【
図9D】
図8に示される動作手順の具体例を示す図である。
【
図10】
図3に示される制御装置において、送信処理の実行手順の一例を示すフローチャートである。
【
図11】
図3に示される制御装置において、受信処理の実行手順の一例を示すフローチャートである。
【
図12】
図3における異常判定部による異常判定処理と、再送部による異常対応処理の実行手順の一例を示すフローチャートである。
【
図13】
図3における制御対象装置選択部、データグラム生成情報変更部、制御システム構成情報記憶部によるシステム構成変更時の実行手順の一例を示すフローチャートである。
【
図15】第2の実施の形態による制御用通信システムにおいて、
図1における制御装置のハードウェア構成例を示すブロック図である。
【
図16】
図15における制御装置の機能構成例を示す機能ブロック図である。
【
図17】
図16における異常判定部による異常判定処理と、再送部および冗長経路制御部による異常対応処理の実行手順の一例を示すフローチャートである。
【
図18A】第2の実施の形態による制御用通信システムにおいて、冗長化経路を用いた通信方式の一例を説明する概略図である。
【
図18B】第2の実施の形態による制御用通信システムにおいて、冗長化経路を用いた通信方式の一例を説明する概略図である。
【
図19A】第2の実施の形態による制御用通信システムにおいて、冗長化経路を用いた別の通信方式の一例を説明する概略図である。
【
図19B】第2の実施の形態による制御用通信システムにおいて、冗長化経路を用いた別の通信方式の一例を説明する概略図である。
【
図20】
図18に示す複製方式において、複数箇所の経路異常または制御対象装置の障害が発生した場合の通信経路の一例を示す図である。
【
図21】
図19に示す転送方式において、複数箇所の経路異常または制御対象装置の障害が発生した場合の通信経路の一例を示す図である。
【
図22A】
図18に示す複製方式において、制御装置に隣接する通信経路に異常が発生した場合の通信経路の一例を示す図である。
【
図22B】
図19に示す転送方式において、制御装置に隣接する通信経路に異常が発生した場合の通信経路の一例を示す図である。
【
図23】第3の実施の形態による制御用通信システムの前提として、経路冗長化を適用した上で、複数の制御対象装置に対して、同じ論理アドレスを割り当ててリードする場合の動作例を示す概略図である。
【
図24A】
図23に示す論理アドレスの仕組みを利用して、システム構成の変更に対応する方式の一例を説明する概略図である。
【
図24B】
図23に示す論理アドレスの仕組みを利用して、システム構成の変更に対応する方式の一例を説明する概略図である。
【
図24C】
図23に示す論理アドレスの仕組みを利用して、システム構成の変更に対応する方式の一例を説明する概略図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。例えば、ある一つの構成要素の符号を“1”として、複数の構成要素を“1a”,“1b”等で区別する場合がある。これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合もある。
【0017】
(第1の実施の形態)
<システム例>
図1は、第1の実施の形態による制御用通信システムの構成例を示す概略図である。
図1に示される制御用通信システムは、制御システム123と、制御システム構成装置124と、制御システム管理装置125とを備える。制御システム123は、制御装置120、言い換えれば制御用通信装置、制御対象装置121、および制御ネットワーク122で構成される。制御システム123として、半導体製造装置、半導体検査装置、臨床検査用装置などの医用機器、FA(Factory Automation)、PA(Process Automation)向けのDCS等の制御システムが例示される。
【0018】
さらには、制御システム123として、無線網を介した遠隔制御システム、電力分野の監視制御・保護制御システム、産業用機器、車載システム、建設機械や鉄道車両内の制御システム、鉄道地上信号システム、航空機内の制御システムなどが例示される。あるいは、制御システム123は、装置の構成要素であってもよい。例えば、制御システム123は、半導体製造装置であるエッチング装置やスパッタリング装置のチャンバや、FAシステムの製造ラインや、DCSを構成する装置や、車載システムや、航空制御システムなどにおける部分要素であってもよい。
【0019】
制御装置120は、制御ネットワーク122を介して、制御対象装置121と通信し、制御する。制御装置120は、センサやアクチュエータといった制御対象装置121に対して、通信パケットを送受信する。これにより、制御装置120は、制御対象装置121を制御するための制御指令値の伝送や、または、制御対象装置121の計測値、センサ情報の取得や、あるいは、制御対象装置121に対する各種設定などを実行する。
【0020】
制御装置120は、半導体製造装置や半導体検査装置内のコントローラや、DCS(Distributed Control System)の中央制御装置や、電力系統の保護制御装置のように、各制御システム内のサンプリングデータや、制御指令、状態信号などをやりとりすることが例示される。この際に、制御装置120は、同一制御システム内の複数のデータをパケット内に格納してもよい。また、制御装置120は、ソフトウェア仮想化技術やソフトウェアコンテナ技術をサポートし、アプリケーションまたはOS(Operating System)を仮想化してコンテナとして管理できるように構成されてもよい。
【0021】
制御装置120として、専用コントローラ、産業用パソコン、制御用計算機、DCSコントローラ、MEC(Multi-access Edge Computing)装置、コンピュータクラウドやサーバ、SCADA(Supervisory Control and Data Acquisition)サーバが例示される。さらには、制御装置120として、PLC(Programmable Logic Controller)、IED(Intelligent Electronic Device)、保護制御装置、クラウド、サーバなどが例示される。
【0022】
制御対象装置121は、センサやアクチュエータと言った機器であり、制御ネットワーク122を介して、制御装置120から受信した制御指令に応じた制御や、各種設定を実行する。また、制御対象装置121は、機器の状態や情報を取得して、制御ネットワーク122を介して制御装置120へ送信する。制御対象装置121は、センサのように情報を入力する機能のみ備えてもよいし、アクチュエータのように情報を出力する機能のみ備えてもよいし、入力と出力の両方の機能を兼ね備えてもよい。
【0023】
制御対象装置121として、移動ロボット、ヒューマノイドロボット、ロボットアーム等の産業用ロボットが例示される。また、制御対象装置121として、AGV(Automated Guided Vehicle)、AMR(Autonomous Mobile Robot)、自律移動体、遠隔操作移動体(Autonomous mobile object or remote-controlled mobile object)が例示される。また、制御対象装置121として、チップマウンタ、工作機械テーブル、加工装置、工作機械、半導体製造装置、半導体検査装置、臨床検査用装置などの医用機器、または、製造装置内のモータ、インバータ、サーボアンプ、サーボモータが例示される。
【0024】
あるいは、制御対象装置121として、遮断器、断路器といった電力機器や、各種センサ(エンコーダ、温度センサ、圧力センサ等)が例示される。さらには、制御対象装置121として、専用コントローラ、産業用パソコン、制御用計算機、DCSコントローラ、SCADA装置、PLCや、無線通信インターフェースを備えたスマートフォンまたは通信装置や、IED(Intelligent Electronic Device)や、MU(Merging Unit)や、保護制御装置などが例示される。
【0025】
制御ネットワーク122は、制御装置120と、1以上の制御対象装置121とを接続するネットワークである。制御ネットワーク122として、EtherCAT(登録商標)、IEC61784、TSN(Time Sensitive Networking)といったIEEE 802.3(Ethernet(登録商標))をベースとしたネットワークが例示される。IEEE 802.3に関しては、100Mbps、1Gbps、マルチギガビットイーサネット、10Gbpsなどの通信速度に対応した規格や、ジャンボフレームの利用が例示される。
【0026】
また、制御ネットワーク122として、5G、6Gや4Gといった無線網におけるコアネットワーク、CAN(Controller Area Network:登録商標)、RS-232C、USB(Universal Serial Bus:登録商標)といった各種有線ネットワークが例示される。さらには、制御ネットワーク122として、Bluetooth(登録商標)といった各種無線ネットワークが例示される。
【0027】
また、プロトコルスタックにおける上位プロトコルとして、OPC UA(Unified Architecture)、DDS(Data Distribution Service)、サービスベースのインターフェースSBI(Service Based Interface)に基づく通信プロトコルが例示される。また、上位プロトコルとして、REST API、HTTP/2、OpenAPI、JSON(JavaScript Object Notation)データ、IEC61850等が例示される。あるいは、以上のプロトコルは、階層化されていてもよい。例えば、TSN上でデータ領域の内容はOPC UA規格を適用することが例示される。
【0028】
明細書では、制御ネットワーク122として、EtherCATを用いる場合を例として説明する。EtherCATのネットワークは、以下の(1)-(3)の特徴を有する。
(1)マスタと呼ばれる制御装置120は、スレーブと呼ばれる単数または複数の制御対象装置(単にデバイスとも呼ぶ)121に接続される。制御装置120から送出される制御用パケット、詳細には制御用パケットを含む通信フレームは、1台以上の制御対象装置121を順に廻り、制御装置120へと戻ってくる。トポロジは、ライン型、リング型、スター型などが例示される。必要に応じて、EtherCATに適応した中継装置を用いる。
(2)1つの制御用パケットには、複数台の制御対象装置121それぞれへの制御用データ、詳細にはデータグラムを含めてもよい。これにより、制御装置120は、複数台の制御対象装置121それぞれに対して個別にパケットの送受信をするよりも、少ない数のパケットを送受信するだけで済む。
(3)制御用パケットは、複数台の制御対象装置121それぞれへのアクセス内容を表す制御用コマンドを含む。制御用パケットは、制御装置120から送出されると、ネットワークの接続順にしたがって各制御対象装置121へと順に転送された後、送出元の制御装置120へと戻る。
【0029】
制御システム構成装置124は、制御システム123の構成を設定する装置であり、例えば、コンフィギュレータとも呼ばれる。設定には、例えば、制御装置120や制御対象装置121のパラメータや動作モードの設定が含まれる。あるいは、設定には、制御対象装置121を論理アドレス、言い換えれば仮想領域にマッピングする際のアドレス割り当てや、そのような論理アドレスの設定に関わる制御対象装置121の設定が含まれる。
【0030】
このような設定に際し、設定するためのデータグラムを制御システム構成装置124で決定し、決定した情報を制御装置120に転送し、制御装置120が制御対象装置121に送信してもよい。これらは、EtherCATにおけるEtherCAT Slave Information(ESI)、EtherCAT Network Information(ENI)の生成、編集、管理として実行されてもよい。
【0031】
このように制御システム構成装置124を制御システム123の設定として用いる場合は、制御システム123を稼働させているオンライン状態での設定だけでなく、制御システム123を稼働させる前のオフライン状態での設定が行われもよい。このような場合、制御システム構成装置124と制御装置120、あるいは制御システム構成装置124と制御対象装置121の接続は、設定の間のみでもよい。あるいは、制御システム構成装置124は、制御装置120を介さず、制御対象装置121と直接接続してもよい。
【0032】
なお、ここで言う接続は、制御ネットワーク122やネットワークケーブルによる物理的な接続だけではなく、通信プロトコル、設定のためのソフトウェアといった論理的な接続も含む。このような接続としては、USBケーブルや、JTAG(Joint Test Action Group)仕様に基づく接続、無線LANなどの無線通信による接続等が例示される。
【0033】
また、制御システム構成装置124は、制御システム123、制御装置120、または制御対象装置121と物理的に接続せず、取り外し可能な外部記憶媒体に、出力や生成物を記憶してもよい。この場合、その外部記憶媒体を制御装置120や制御対象装置121といった対象装置に取り付けることで、該出力や生成物が伝達される。このような外部記憶媒体として、USBメモリ、CD、DVD、ブルーレイ(登録商標)、コンパクトフラッシュ、フロッピーディスク(FD)等の利用が例示される。
【0034】
制御システム構成装置124として、制御装置120と同様の実装が例示し得る。制御システム構成装置124は、制御ネットワーク122を介して制御装置120と接続してもよいし、制御ネットワーク122とは独立したネットワークで制御装置120と接続してもよい。
【0035】
制御システム管理装置125は、制御装置120と接続して、制御装置120を制御、管理する装置である。制御システム管理装置125は、例えば、制御装置120が制御を実行するために必要な制御パラメータや制御ポリシーを設定、取得する。また、制御システム管理装置125は、制御装置120に対して、時間分解能の観点から機能分割し得る。すなわち、制御装置120が実行する制御周期に対して、制御システム管理装置125は、相対的に長い制御周期で制御装置120の制御パラメータ、目標値等を制御し得る。別の側面では、制御装置120が自動制御を実行する一方で、制御システム管理装置125は、システムオペレータによる手動制御が実行され得る。
【0036】
制御システム管理装置125として、制御装置120と同様の実装が例示し得る。制御システム管理装置125は、制御ネットワーク122を介して制御装置120と接続してもよいし、制御ネットワーク122とは独立したネットワークで制御装置120と接続してもよい。
【0037】
なお、制御システムとして、
図1で制御システム123として例示したシステムに加え、制御ネットワーク122を介して収集した情報をもとに、クラウドや制御システム管理装置125上で人工知能等を用いて解析し、制御システムの性能向上や予防保全などの診断技術の適用を図るIoTシステムなどを加えた形態が例示される。これらの形態は、制御システム123と上位システムとの接続に5Gなどの無線や公衆網による接続形態を含み得る。
【0038】
<制御装置120のハードウェア構成>
図2は、
図1における制御装置120のハードウェア構成例を示すブロック図である。
図2において、プロセッサの一例であるCPU101は、プログラム、またはソフトウェアを不揮発性記憶媒体105からメモリ104に転送して実行する。実行処理プログラムとしては、オペレーティングシステム(以下、OSと称す)やOS上で動作するアプリケーションプログラムが例示される。CPU101上は、このようなプログラムに基づいて、通信制御IC102に対する動作設定や、通信制御IC102における状態情報の取得などを実行する。
【0039】
通信制御IC102は、ソフトウェアに基づき動作するCPU101から送信要求、送信データを受け取り、PHY103を用いて制御ネットワーク122に対して送信する。また、通信制御IC102は、制御ネットワーク122からPHY103を介して受信したデータを、バス106を介してCPU101、メモリ104、不揮発性記憶媒体105へ転送する。
【0040】
通信制御IC102の実装例としては、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、ASIC(Application Specific Integrated Circuit)、ゲートアレイ等のICが例示される。あるいは、通信制御IC102は、CPU101と一体化して構成されてもよい。
【0041】
また、通信制御IC102を、MAC層、PHY層を含めたIEEE 802.3通信デバイスとして構成してもよいし、PHY機能、すなわちPHY103まで含めて通信制御IC102に包含してもよい。この場合、通信制御IC102の実装例としては、IEEE802.3規格のMAC(Media Access Control)チップ、PHY(物理層)チップ、MACとPHYの複合チップを含む。なお、通信制御IC102は、CPU101や、コンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。また、
図2の構成では、通信制御IC102を1つ示しているが、通信制御IC102の数は複数であってもよい。
【0042】
PHY103は、制御ネットワーク122との通信機能を実装した送受信機ICである。PHY103の提供する通信規格として、IEEE802.3のPHY(物理層)チップが例示される。なお、
図2の構成例では、PHY103と通信制御IC102が接続しているので、IEEE802.3のMAC層の処理は通信制御IC102に含まれる。ただし、MAC機能を提供するICを、通信制御IC102とPHY103と間に配置する構成や、MAC機能を提供するICとPHY103を組み合わせた通信用ICと、通信制御IC102とを接続する構成を用いてもよい。また、通信制御IC102とPHY103との数量関係は、一つの通信制御IC102に対して、PHY103は1つでもよいし、複数でもよい。
【0043】
メモリ104は、CPU101が動作するための一時的な記憶領域であり、不揮発性記憶媒体105から転送したOS、アプリケーションプログラム等が格納される。不揮発性記憶媒体105は、情報の記憶媒体であり、OS、アプリケーション、デバイスドライバ等や、CPU101を動作させるためのプログラムなどを保存するため、または、プログラムの実行結果を保存するために利用される。不揮発性記憶媒体105として、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュメモリが例示される。また、取り外しが容易な外部記憶媒体として、フロッピーディスク(FD)、CD、DVD、ブルーレイ(登録商標)、USBメモリ、コンパクトフラッシュ等の利用が例示される。
【0044】
バス106は、CPU101、通信制御IC102、メモリ104、不揮発性記憶媒体105をそれぞれ接続する。バス106としては、PCIバス、ISAバス、PCI Expressバス、オンチップバス、システムバス、メモリバス等が例示される。
【0045】
<制御装置120の機能構成>
図3は、
図1における制御装置120の機能構成例を示す機能ブロック図である。
図4は、
図1における制御ネットワーク122上を伝送するEtherCATフレームの構成例を示す図である。
図3において、演算部150は、制御演算や情報処理演算等を実行する。そのような演算の例として、演算部150は、制御対象装置121から受信したセンサ情報を処理し、所定の制御則に基づいて、制御対象装置121を駆動するための制御指令を導出する。あるいは、演算部150は、センサ値に適用するフィルタ処理または統計処理や、過去の所定期間におけるセンサ値の集合に対する統計処理等を実行する。
【0046】
演算部150のより具体的な演算内容として、フィードバック制御やフィードフォワード制御といった制御工学理論に基づく制御演算や、AIを用いた制御演算が例示される。例えば、I(積分)制御やステートマシンによる制御のように、過去情報に依存して状態を変更し得る制御演算などが例示される。あるいは、制御対象装置121に対する状態管理(故障や危険状態の検知)、機器管理や資産管理(ソフトウェアのバージョン管理や更新等)、予防保全、CBM(Condition Based Maintenance)、余寿命予測を目的としたAIや機械学習処理といった統計的な制御演算が例示される。
【0047】
また、演算部150のより具体的な演算内容として、制御対象装置121が移動体であれば、移動方向や目標移動位置の決定、速度制御、加速度制御、停止、減速等の制御演算が例示される。制御対象装置121が産業用ロボットアームであれば、各関節ジョイントのモータに対する制御指令の演算や、ロボットアームの先端位置の制御、あるいはロボットアームの軌跡制御等の制御演算が例示される。
【0048】
なお、制御対象装置121は、多種多様であり、アクチュエータだけでなく、単純なセンサである場合もある。このため、演算部150は、制御対象装置121の種類に応じた制御を実行する。演算部150は、CPU101またはCPU101上で動作するアプリケーションで構成されることが例示される。
【0049】
データ記憶部151は、通信されるデータを記憶する機能部である。データ記憶部151の内容は、演算部150、またはデータグラム解析部156によって更新される。データ記憶部151は、個別または複数の制御対象装置121に対して、所定の制御や情報処理を実行する上で、演算部150で生成されるデータを保持する。
【0050】
具体例として、まず、受信時における受信データは、データグラム解析部156によってデータ記憶部151に記憶される。このようにして記憶されたデータは、演算部150、またはデータグラム生成部153によって取得される。演算部150は、センサ情報等を取得するためにデータ記憶部151からデータを抽出する。また、データグラム生成部153は、送信時にデータグラムを生成するために、データ記憶部151からデータを抽出する。抽出されるデータは、例えば、
図4におけるデータ領域177に該当する。
【0051】
なお、データ記憶部151は、データグラム生成部153によって複数のデータグラムが生成される場合は、該データグラム群の複数のデータ部分を集約して保持する。また、データ記憶部151は、演算部150、制御対象装置121で実行する制御または情報処理で定まる通信周期または制御周期を単位としてデータを管理してもよい。データ記憶部151は、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。
【0052】
データグラム生成情報記憶部152は、データグラム生成部153がデータグラムを生成するために必要なデータグラム生成情報、言い換えれば通信制御情報を記憶する。データグラム生成情報記憶部152は、CPU101、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。データグラム生成情報としては、以下の(1)-(8)のいずれか、または複数の情報が例示される。
【0053】
(1)データグラムのヘッダを構成する情報
例えば、
図4に示すEtherCATフレーム、言い換えれば制御用パケットの場合では、コマンド179、index180、アドレス181、サイズ182、CIRCLE184、MORE185が例示される。なお、IRQ186は、主に制御対象装置121側からの事象通知であるため、データグラム生成情報に含めるか否かは任意である。
(2)生成したデータグラムの転送先である通信フレーム生成部154の情報
通信フレーム生成部154は、複数設けられ得る。
(3)通信周期の情報
【0054】
(4)開始時間の情報
開始時間は、相対時刻または絶対時刻のいずれであってもよい。
(5)検証コード(検証パラメータ)の期待値の情報
当該情報は、
図4に示すEtherCATフレームの場合は、WKC178に相当する。受信時に、WKC178の値と、期待値とを比較することで、対象のデータグラムが想定通りに処理されたかを検証できる。WKC178は、主に受信時に用いられるため、送信時には利用されずともよい。
(6)所定のステートマシンにおける送信対象ステータスの情報
当該情報は、送信対象とするデータグラムのセットを切り替える用途向けに、データグラムが送信対象であるかを制御するための情報である。当該情報は、単純に送信対象か否かといった真理値でもよい。
【0055】
(7)送信パターン情報
当該情報は、上記の通信周期ごとに、対象のデータグラムを送信するか否かを示すパターン情報である。
(8)データグラム生成情報の有効/無効の情報
例えば、一部の機器が保守、清掃等の理由で無効化される場合、該機器へのデータグラムを生成、送信する必要はない。このため、当該情報によって、該当するデータグラム生成情報を無効化することができる。
【0056】
データグラム生成部153は、データグラム生成情報記憶部152から、データグラムの生成に必要な情報を抽出する。抽出したデータグラム生成情報は、データ記憶部151上のデータ位置を含み、データグラム生成部153は、該データ位置に基づいて、データ記憶部151からデータを抽出する。データグラム生成部153は、抽出したデータとデータグラム生成情報(通信制御情報)からデータグラム(制御用データ)を生成し、通信フレーム生成部154に転送する。データグラム生成部153は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102のいずれか、または複数で実装されることが例示される。
【0057】
通信フレーム生成部154は、データグラム生成部153が生成したデータグラムを通信フレーム(例えば、EtherCAT規格であればEtherCATフレーム)に整形する。通信フレーム生成部154は、通信フレームを構築するために、複数のデータグラムを用いてもよい。また、通信フレーム生成部154は、通信フレームを構築するために必要なヘッダ情報や末尾情報を保持または算出し、付加することが例示される。これらの情報は、例えば、EtherCAT規格であれば、Ethernetヘッダ171とFCS173(Frame Check Sequence)に相当する。
【0058】
通信フレーム生成部154は、構築した通信フレームを、送信部155へと転送する。通信フレーム生成部154は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。送信部155は、制御装置120から制御ネットワーク122に対してパケットを送信する際の送信機能部である。送信部155は、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。
【0059】
データグラム解析部156は、通信フレーム分解部157から転送されたデータグラムを解析して、受信内容に応じてデータ記憶部151を更新する。データグラム解析部156は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。
【0060】
通信フレーム分解部157は、受信部158から転送された受信フレームを受信し、ヘッダ、末尾情報を除去し、データグラム単位に分解する。通信フレーム分解部157は、分解したデータグラムをデータグラム解析部156に転送する。通信フレーム分解部157は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。
【0061】
受信部158は、制御ネットワーク122からパケットを受信する際の受信機能部である。受信部158は、FCS(Frame Check Sequence)を検証し、受信パケットの正当性を判定してもよいし、異常と判定した受信パケットを破棄してもよい。受信部158は、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。
【0062】
通信部159は、制御ネットワーク122に接続し、制御ネットワーク122の通信プロトコルにしたがって通信をするための機能部であり、送信部(言い換えれば通信ポート)155と受信部(言い換えれば通信ポート)158とを含む。
図2の構成例では、PHY103が通信制御IC102の外にあるため、通信部159は、MAC層の処理部に該当する。ただし、通信制御IC102をMAC層、PHY層を含めたEthernet通信デバイスとしてもよいし、また、PHY機能まで含めて通信制御IC102に包含してもよい。通信部159は、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。
【0063】
制御対象装置選択部160は、例えば、保守、計画停止などに伴う一時的な制御対象装置121の追加、停止、無効化または除去のために、制御対象装置121を選択する。制御対象装置選択部160は、選択した制御対象装置121の識別子をデータグラム生成情報変更部161に伝送する。なお、制御対象装置選択部160は、データグラム生成情報変更部161に、制御対象装置121の識別子のみではなく、制御対象装置121に関する情報をあわせて伝送してもよい。
【0064】
制御対象装置121に関する情報としては、制御対象装置121の性能や仕様、制御ネットワーク122における接続位置や対象期間等が例示される。接続位置とは、選択した制御対象装置121を新たに追加する場合の接続位置、または選択した制御対象装置121を取り除く場合は接続していた位置を表す。対象期間とは、選択した制御対象装置121を停止する期間や、有効にする期間を表す。
【0065】
なお、選択対象の制御対象装置121は、複数であってもよい。また、選択した制御対象装置121に対する処理は、例えば、追加、停止、無効化、除去のいずれかであり、互いに異なっていてもよい。制御対象装置121に対する具体的な処理内容として、制御システム123から物理的に取り除く場合や、制御ネットワーク122に接続したままで機能的に停止する場合(例えば、電源停止)や、通電を維持したまま、パケットを処理させない、または制御装置120からの指示を無視させる場合、などが例示される。
【0066】
制御対象装置選択部160は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。あるいは、制御対象装置選択部160は、制御システム管理装置125でGUI(Graphical User Interface)などのHMI(Human Machine Interface)を構成することで実現されてもよい。
【0067】
その場合、オペレータが制御システム管理装置125のHMIを操作して制御対象装置121を選択し、その結果を制御システム管理装置125が制御装置120に通知することが例示される。選択した制御対象装置121の付属情報(制御対象装置121の機能、仕様、接続位置など)は、予め制御システム管理装置125が保持することで制御装置120に伝送してもよい。あるいは、制御システム管理装置125からは制御対象装置121の識別子情報のみを制御装置120に通知し、制御装置120において、通知された制御対象装置121の識別子から付属情報を選択してもよい。この場合、制御対象装置121の付属情報は、制御システム構成情報記憶部162に保持することが例示される。
【0068】
データグラム生成情報変更部161は、制御対象装置選択部160から通知された制御対象装置121の情報をもとに制御システム構成情報記憶部162から関連情報を取得し、データグラム生成情報記憶部152に記憶されているデータグラム生成情報を変更する。データグラム生成情報変更部161は、CPU101またはCPU101上で動作するアプリケーションで実装されることが例示される。
【0069】
制御システム構成情報記憶部162は、制御システム123の制御システム構成情報を記憶する。制御システム構成情報としては、制御対象装置121と、データグラム生成情報記憶部152で保持されているデータグラム生成情報と、論理アドレス、言い換えれば仮想領域の割り当て情報との三者間におけるいずれか、または全ての対応付けが例示される。例えば、ある制御対象装置121への通信が、どのデータグラム生成情報、すなわちデータグラムと対応づいているか、また、そのデータグラムが、どの論理アドレス向けであるかといった情報が例示される。これらは1対1の対応に限定されず、1対複数、または複数対複数の対応関係でもよい。
【0070】
すなわち、例えば、複数対複数の対応に関し、ある制御対象装置121への通信となるデータグラムは複数となり得る一方、あるデータグラムの通信対象の制御対象装置121も同様に複数となりえる。制御対象装置121と論理アドレスの割り当ての対応関係も同様であり、ある制御対象装置121の入出力領域は複数の論理アドレス領域に割り当てられ得る一方、ある論理アドレス領域内には複数の制御対象装置121が含まれ得る。
【0071】
なお、ここで言う、一つの論理アドレス領域、は、例えば連続したアドレス空間に割り当てられた領域であり、EtherCATの例でいえば、ひとつのFMMU(Fieldbus Memory Management Unit)で管理する領域である。異なる制御対象装置121のFMMUに同じ論理アドレスを指定する場合など、同一の論理アドレスに対しても、複数の制御対象装置121を対応付けることが可能である。また、制御システム構成情報は、論理アドレスに限らず、各制御対象装置121に対応するオートインクリメントアドレス、ステーションアドレスを含めてもよい。
【0072】
制御システム構成情報記憶部162は、CPU101、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。また、制御システム構成情報は、ソフトウェア上のデータベースや、CSV(Comma Separated Values)、XML(Extensible Markup Language)、JSON(JavaScript Object Notation)といったファイルフォーマットや、ソフトウェア上にインスタンス化された、所定プログラミング言語における構造体、オブジェクトで実装されることが例示される。
【0073】
異常判定部163は、受信した通信フレームに関する情報、通信フレーム分解部157から転送された受信データグラムの内容や受信したタイミング、データグラム生成情報記憶部152に記憶された情報、システムオペレータからの設定のいずれか、または複数をもとに異常を判定する。通信フレームに関する情報をもとに判定する場合は、通信フレーム分解部157において、該情報を抽出してデータグラム解析部156に通知してもよい。また、受信データグラムを基準に判定する場合は、通信フレームを構成する複数の受信データグラムに対して統合的に判定してもよい。
【0074】
詳細には、異常判定部163は、以下の基準のいずれか、または複数を満たした場合に異常と判定することが例示される。
a) 受信したデータグラムのWKC178が、制御システム123の構成計画、設定から予め決定される期待値と異なる。
b) 対象の通信フレームまたはデータグラムを送信してから受信するまでの経過時間が所定値を超過している。
c) 受信した通信フレームのFCS173において誤りを検出した。
d) a)におけるWKC178の期待値不一致となったデータグラムの数が所定数以上である。
e) a)におけるWKC178の期待値不一致となったデータグラムの数が、通信フレームを構成する受信データグラムの総数に占める割合が所定値以上である。
【0075】
なお、複数の条件を考慮する場合は、各条件で構成される論理式で判定してもよい。例えば、d & e(dかつe)といった場合である。また、a)におけるWKC178の期待値は、データグラム生成情報に含めて保持することが例示される。
【0076】
ここで、b)における送信タイミングの例としては下記がある。
・データグラム生成部153がデータグラムの生成を開始したタイミング。
・通信フレーム生成部154が通信フレームの生成を開始したタイミング。
・データグラム生成部153から最初のデータグラムが通信フレーム生成部154に転送されたタイミング。
・データグラム生成部153から最後のデータグラムが通信フレーム生成部154に転送されたタイミング。
・通信フレーム生成部154から送信部155に対して、通信フレームの先頭が転送されたタイミング。
・通信フレーム生成部154から送信部155に対して、通信フレームの末尾が転送されたタイミング。
・送信部155から通信フレームの先頭が送出されたタイミング。
・送信部155から通信フレームの末尾が送出されたタイミング。
【0077】
一方、b)における受信タイミングの例としては下記がある。
・データグラム解析部156がデータグラムの解析を開始したタイミング。
・通信フレーム分解部157が通信フレームの分解を開始したタイミング。
・データグラム解析部156が最初のデータグラムの解析を完了したタイミング。
・データグラム解析部156が最後のデータグラムの解析を完了したタイミング。
・受信部158から通信フレーム分解部157に対して、通信フレームの先頭が転送されたタイミング。
・受信部158から通信フレーム分解部157に対して、通信フレームの末尾が転送されたタイミング。
・受信部158が通信フレームの先頭を受信したタイミング。
・受信部158が通信フレームの末尾を受信したタイミング。
【0078】
なお、異常判定部163は、b)における受信タイミングにおいては、FCS173を検証し、受信した通信フレームが問題ないことを確認してから通信フレームを受信したと判断してもよい。異常判定部163は、異常と判定した場合に外部に通知してもよい。外部への通知手段として、制御システム管理装置125などの外部装置への通知と、HMI等による視覚手段による提示や制御装置120上のLEDによる提示が例示される。異常判定部163は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102、PHY103のいずれか、または複数で実装されることが例示される。
【0079】
再送部164は、異常判定部163が異常と判定した場合に通信フレームを再送する。再送部164は、再送するために、通信フレーム生成部154から送信部155に伝送した通信フレーム、またはデータグラム生成部153から通信フレーム生成部154に伝送したデータグラムを記憶することが例示される。再送部164は、生じた異常がデータグラム単位である場合(例えば、WKC178期待値の不一致)、該当するデータグラムのみで通信フレームを構成して再送してもよいし、該当するデータグラムが含まれていた通信フレーム全体を再送してもよい。
【0080】
図3では、再送部164を独立した機能部として構成しているが、再送部164を設けず、データグラム生成部153または通信フレーム生成部154のいずれか、または両方が再送機能を有し、異常判定部163からの異常判定の通知をもとに再送してもよい。また、データグラム生成部153と通信フレーム生成部154のそれぞれと、再送部164とを接続しているが、いずれか一方のみでもよい。あるいは再送部164が独立して、データグラム生成部153と同様にデータグラム生成情報記憶部152にアクセスしてデータグラムを生成してもよい。
【0081】
再送部164は、有効化、無効化機能を備え、有効化していて、かつ、異常判定部163から異常判定の通知があった場合にのみ再送してもよい。再送部164が再送するタイミングは、異常判定部163から異常判定を通知されたタイミングでもよいし、所定の時間経過後に再送してもよい。あるいは、再送部164は、異常判定部163から異常判定を通知された後、異常が生じた通信フレームまたはデータグラムにおける、データグラム生成部153、通信フレーム生成部154、送信部155のいずれかの送信タイミングから所定の時間経過後に再送してもよい。再送部164は、CPU101またはCPU101上で動作するアプリケーション、通信制御I C102、PHY103のいずれか、または複数で実装されることが例示される。
【0082】
計時部165は、時間経過を管理する機能部である。計時部165は、
図3の各機能部内、あるいは機能部間の事象の経過時間を計測することや、特定事象の発生時刻を計時する。このときの時刻は、GPS(Global Positioning System)等に基づく絶対時刻でもよいし、制御装置120自身の時刻でもよいし、制御システム123内の基準時刻に基づく同期時刻でもよい。例えば、EtherCATでは、制御対象装置121の中で、Distributed Clockプロトコル(DC)に対応し、制御装置120に最も近い制御対象装置121を基準時刻とする構成が示されている。
【0083】
計時部165の計測対象となる事象は、所定の通信フレーム、データグラムの送信時刻および受信時刻、機能部間のデータ転送時間、機能部内のデータ処理時間またはデータ保持期間である。あるいは、計時部165は、指定の時間経過または指定時間への到達によって割り込みを生成し、他の機能部に対して通知してもよい。この際に、計時部165は、割り込みを周期的に生成、通知してもよい。計時部165の実装例としては、CPU101または通信制御IC102の計時デバイス(水晶振動子やタイマーデバイス)が例示され、計測時刻の記憶手段としてメモリ104や不揮発性記憶媒体105を用いてもよい。
【0084】
なお、
図3において、送信部155と受信部158は一つずつ示しているが、通信制御IC102、PHY103を複数備え、送信部155と受信部158がぞれぞれ複数含まれていてもよい。送信部155が複数含まれる場合、データグラム生成部153や通信フレーム生成部154は、送信部155ごとに設けられてもよい。または、一つの通信フレーム生成部154から複数の送信部155に通信フレームを転送してもよいし、一つのデータグラム生成部153から複数の通信フレーム生成部154にデータグラムを転送してもよい。
【0085】
この場合、データグラム生成部153は、通信フレーム生成部154へデータグラムを転送する際に、あわせて、どの送信部155に、該データグラムを含む通信フレームを転送するかという情報を転送することが例示される。あるいは、データグラム生成情報記憶部152のデータグラム生成情報に、該データグラムを送信する送信部155の識別子を含め、通信フレーム生成部154がデータグラム生成情報記憶部152のデータグラム生成情報を確認してもよい。このとき、複数の送信部155から送信し得ることを踏まえ、データグラム生成情報に含まれる送信部155の識別子は複数でもよい。
【0086】
同様に、受信部158が複数含まれる場合、データグラム解析部156や通信フレーム分解部157は、受信部158ごとに設けられてもよい。または、複数の受信部158から一つの通信フレーム分解部157に通信フレームを転送してもよいし、複数の通信フレーム分解部157から一つのデータグラム解析部156にデータグラムを転送してもよい。この場合、通信フレーム分解部157は、データグラム解析部156へデータグラムを転送する際に、あわせて、どの受信部158から該データグラムを含む通信フレームが転送されたかという情報を転送することが例示される。
【0087】
<制御対象装置121のハードウェア構成>
図5は、
図1における制御対象装置121のハードウェア構成例を示すブロック図である。ここでは、IEC61158、IEC61784パート2のCommunication Profile Family 12で定義されるEtherCAT仕様に準拠した制御対象装置121を例に説明する。ただし、実施の形態よる制御対象装置121は、EtherCAT仕様に限定されない。
【0088】
図5において、CPU101は、バス106を介して制御対象装置用通信制御IC130を制御する。また、CPU101に周辺デバイスを接続し、CPU101は、周辺デバイスを介してセンサやアクチュエータを制御してもよい(図示なし)。制御対象装置用通信制御IC130は、複数のPHY103によって制御ネットワーク122と通信する。制御対象装置用通信制御IC130は、IEC61158、IEC61784パート2のCommunication Profile Family 12で定義されるEtherCAT仕様に準拠した専用のICである。
【0089】
また、制御対象装置用通信制御IC130は、通信に必要な情報の記憶と参照において不揮発性記憶媒体105を用いてもよい。制御対象装置用通信制御IC130は、バス106を介してCPU101と接続しているが、専用のバスを用いて、CPU101と直接接続してもよい。また、制御対象装置用通信制御IC130専用のメモリ104、不揮発性記憶媒体105のいずれか、または両方を別途備え、制御対象装置用通信制御IC130の処理に必要な情報を記憶させてもよい。
【0090】
入出力機器131は、制御対象装置121を構成するセンサからセンサ値の取得と、制御対象装置121を構成するアクチュエータの制御とを実行するための入出力インターフェースである。入出力機器131として、モータなどの各種アクチュエータや、各種センサ(エンコーダ、温度センサ、圧力センサ、画像センサ、カメラ等)や、各種のデジタル入出力またはアナログ入出力ICや、ドライバIC等が例示される。
【0091】
ここでは、入出力機器131からの信号線を1本で示しているが、制御対象装置121の構成により、複数でもよい。また、入出力機器131自体を複数含む構成であってもよい。入出力機器131は、接続先のセンサに対して情報を入力するのみでもよいし、接続先のアクチュエータに対して情報を出力するのみでもよいし、あるいは入力と出力の両方の機能を兼ね備えてもよい。なお、CPU101、メモリ104、不揮発性記憶媒体105のいずれか複数を制御対象装置用通信制御IC130内に含め、ワンチップ型の通信制御ICとしてもよい。
【0092】
<制御対象装置用通信制御IC130の機能構成>
図6は、
図5における制御対象装置用通信制御IC130の機能構成例を示すブロック図である。
図6において、通信転送制御部141と通信部142との組み合わせによる通信ポート機能は、例えば4組設けられる。また、通信処理部140は、2つの通信ポート機能に係る通信転送制御部141aと通信転送制御部141dの間に接続されている。通信処理部140は、EtherCAT仕様に準拠して、通信処理を実行するICであり、実装としてEtherCAT Processor Unit(EPU)が例示される。なお、通信処理部140は、他の演算の機能や入出力機能と接続して構成してもよい(図示なし)。
【0093】
通信転送制御部141は、受信したパケットを隣接する通信転送制御部141または通信部142へ転送する機能部である。通信転送制御部141間の転送方向は、制御対象装置用通信制御IC130内で一定になっており、例えば、通信転送制御部141a、b、c、dの順である。加えて、通信転送制御部141は、通信処理部140からの設定と、通信部142が接続する通信経路の接続状態とに基づいて、通信部142へパケットを転送するか、あるいは隣接する通信転送制御部141へパケットを転送する。
【0094】
通信部142は、制御ネットワーク122に接続し、制御ネットワーク122の通信プロトコルにしたがって通信をするための機能部である。通信部142は、送信部167と受信部168とによって構成される。通信部142は、制御対象装置用通信制御IC130、PHY103のいずれか、または複数で実装されることが例示される。
【0095】
入出力部143は、制御対象装置121を構成するセンサからセンサ値の取得、または制御対象装置121を構成するアクチュエータの制御を実行するための入出力機能である。入出力部143は、入出力機器131で構成することが例示される。バス144は、CPU101、メモリ104、不揮発性記憶媒体105のいずれか、または複数と接続するための通信線であり、
図5におけるバス106で構成されることが例示される。
【0096】
<制御システム構成装置124の機能構成>
図7は、
図1における制御システム構成装置124の機能構成例を示すブロック図である。なお、制御システム構成装置124のハードウェア構成は、
図2に示した制御装置120と同様である。
図7において、
制御システム情報記憶部110は、制御システム123の情報を記憶する。具体的には、制御システム123の情報として、制御システム123上で実行する制御処理、情報処理の要求や、制御装置120、制御対象装置121における要求が例示される。そのような要件としては、制御周期、通信周期、制御対象装置121の入出力容量、周期性通信の要否等が例示される。
【0097】
また、制御システム123の情報として、制御装置120や制御対象装置121の台数、計算機資源の仕様や性能、通信性能、通信ネットワークの構成等が例示される。さらには、CPU101の周波数、コア数、ビット幅、アーキテクチャや、メモリ104または不揮発性記憶媒体105の記憶容量、通信スループットや、バス106の転送スループットや、制御ネットワーク122の通信帯域、接続距離等が例示される。CPU、メモリ、不揮発性記憶媒体といった計算機資源は、制御装置120、制御対象装置121の両方を含む。
【0098】
また、制御システム123の情報として、制御ネットワーク122の通信プロトコルの実装に依存する情報を含めてもよい。例えばEtherCATであれば、制御対象装置121におけるFMMUやSyncManagerの対応数が例示される。さらに、制御ネットワーク122が中継装置を含む場合、制御システム123の情報は、中継装置の計算機資源、通信性能や、ネットワークトポロジや、制御ネットワーク122の構成情報(中継装置の各通信ポートの設定等)を含む。
【0099】
制御システム情報記憶部110は、システムオペレータ等によって、記憶する情報を手動で入力されてもよいし、情報収集ソフトウェアや所定の通信プロトコルを用いて、制御装置120、制御対象装置121、制御ネットワーク122の情報を動的に収集してもよい。そのような通信プロトコルとしては、SNMP(Simple Network Management Protocol)や、EtherCATでの所定レジスタ(例えば、スレーブICの型番を示すレジスタ)へのアクセスが例示される。制御システム情報記憶部110は、CPU101またはCPU101上で動作するアプリケーション、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。
【0100】
データグラム生成情報計画部111は、制御システム情報記憶部110で記憶する情報や論理アドレス割当計画部113が決定した論理アドレス空間の割り当てに基づいて、
図3に示したデータグラム生成情報記憶部152で記憶するデータグラム生成情報を決定する。データグラム生成情報計画部111が決定するデータグラムの構成としては、個々のデータグラムのサイズやヘッダ上のパラメータ(アクセス先の論理アドレス空間など)が例示される。なお、ある制御対象装置121の物理アドレス空間を割り当てた論理アドレス空間は、単一のデータグラムだけでなく、複数に分割したデータグラムによってアクセスされてもよい。データグラム生成情報計画部111は、CPU101またはCPU101上で動作するアプリケーション、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。
【0101】
制御システム構成情報構築部112は、
図3に示した制御システム構成情報記憶部162で記憶する制御システム123の構成情報を構築する。そのような構成情報として、制御対象装置121と、データグラム生成情報と、論理アドレスの割り当て情報の三者間のいずれか、または全ての対応付けが例示される。当該対応付けは、データグラム生成情報計画部111が計画したデータグラム生成情報と、制御システム情報記憶部110で記憶する情報と、論理アドレス割当計画部113で計画する論理アドレス空間の割り当てのいずれか、または複数に基づいて構築される。制御システム構成情報構築部112は、CPU101またはCPU101上で動作するアプリケーション、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。
【0102】
論理アドレス割当計画部113は、制御システム情報記憶部110で記憶する情報に基づいて、各制御対象装置121のアドレス空間の論理アドレス空間への割り当てを計画する。論理アドレス空間とは、所定のアドレス空間上に、アクチュエータやセンサの入出力を割り当てる方式で作成されるアドレス空間である。論理アドレス空間では、各スレーブの持つ任意のデータ領域(すなわち物理的な入出力)を単一の仮想的な論理アドレス空間に割り当てる。その領域の大きさや割り当て方は自由に設定することができる。論理アドレス割当計画部113は、CPU101またはCPU101上で動作するアプリケーション、メモリ104、不揮発性記憶媒体105のいずれか、または複数で実装されることが例示される。
【0103】
なお、データグラム生成情報計画部111によるデータグラム生成情報の計画と、論理アドレス割当計画部113による論理アドレス空間の割り当ての計画は、いずれかが先に実行されることで順番に実行されてもよい。例えば、論理アドレス割当計画部113が論理アドレス空間の割り当てを計画した後に、論理アドレス空間の割り当て情報をデータグラム生成情報計画部111に通知し、データグラム生成情報計画部111は、通知された論理アドレス空間の割り当てをもとにデータグラム生成情報を計画することが例示される。
【0104】
あるいは、データグラム生成情報計画部111が、制御対象装置121の制御要件、通信要件を満足するようにデータグラム生成情報を計画した後に、データグラム生成情報を論理アドレス割当計画部113に通知し、論理アドレス割当計画部113は、通知されたデータグラム生成情報をもとに論理アドレス空間の割り当てを計画することが例示される。この場合、論理アドレス割当計画部113は、決定した論理アドレス空間の割り当て情報を再度データグラム生成情報計画部111に通知して、データグラム生成情報計画部111が論理アドレス空間にアクセスするデータグラムのアクセス先論理アドレスの値を決定することが例示される。
【0105】
あるいは、データグラム生成情報計画部111、論理アドレス割当計画部113のいずれか、または両方で制約条件、満足条件、収束条件を定義し、それらの条件を満足するまで、相互に計画した結果を通知し、計画動作を繰り返してもよい。制約条件として、データグラム生成情報計画部111におけるデータグラム生成情報の計画において、計画するデータグラム数が所定数以下であること、論理アドレス割当計画部113において、割り当てた論理アドレス空間を、アドレスが連続する領域で分けた場合に、所定数以下の領域となること、といった条件が例示される。
【0106】
また、動作例として、まず、論理アドレス割当計画部113は、論理アドレス空間の割り当てを計画してデータグラム生成情報計画部111に通知する。続いて、データグラム生成情報計画部111は、通知された論理アドレス空間ではデータグラム数を所定数以下にできない場合に、論理アドレス割当計画部113に対して、再度、論理アドレス空間の割り当てを計画するように要求する。このようにして、条件を満足するまでデータグラム生成情報計画部111、論理アドレス割当計画部113のそれぞれの計画動作を繰り返すことが例示される。また、所定数繰り返しても計画が収束しなかった場合に、オペレータや外部に計画が失敗したことを通知してもよい。
【0107】
<制御システム構成装置124の動作手順>
図8は、
図7に示した制御システム構成装置124が有する各機能部の動作手順の一例を示すフローチャートである。
図9A、
図9B、
図9Cおよび
図9Dは、
図8に示される動作手順の具体例を示す図である。
図8において、はじめに、論理アドレス割当計画部113は、制御システム情報記憶部110から制御システム123の情報を取得して、各制御対象装置121の入出力等の、論理アドレス空間への割り当てを計画する(手順S001)。なお、前述したように、データグラム生成情報計画部111と論理アドレス割当計画部113は独立して動作できるが、
図8では順番に動作させる例を説明する。
【0108】
例えば、
図9Aに示す制御システム123を想定した場合、制御システム情報記憶部110は、各制御対象装置121の入出力空間の大きさ(例えば、制御対象装置121Aの400byte)や、入出力方向(例えば、制御対象装置121Aはセンサであり、制御装置120から見て入力となるリードアクセス)や、ネットワークトポロジを、制御システム情報として記憶する。論理アドレス割当計画部113は、これらの情報から
図9Bに示す論理アドレス空間への割り当てを計画することが例示される。論理アドレス空間への割り当ては、多様な方法が考えられるが、例えば、
図9Bでは、次の(1)-(3)の手順にしたがっている。
【0109】
(1)各制御対象装置121を入出力方向に基づいてグループ分けする。
この結果、入力(リード)となる制御対象装置121A、B、C、D、Eと制御対象装置121Fの2グループに別れる。
(2)各グループに対して、論理アドレス空間上の領域を割り当てる。
図9Bでは、0x00000000から始まる領域190aと0x00001000から始まる領域190bをそれぞれのグループに割り当てている。なお、2番目のグループを割り当てた領域190bの先頭アドレスを0x00001000としているが、1番目のグループの領域190aと重複しなければ、開始アドレスは任意の値でよい。例えば、領域190aに連続したアドレスでもよい。
(3)(1)で分けた各グループ内で、制御装置120への接続順に論理アドレス空間へ各制御対象装置121を割り当てる。
【0110】
図9Bでは、1番目のグループにおいては、領域190aの先頭から制御対象装置121A、B、C、D、Eの順に入出力を割り当てている。2番目のグループは制御対象装置121Fのみであるため、そのまま領域190bの先頭から入出力を割り当てている。このように、
図9Bでは、入出力方向、接続順という2つの属性を順番に考慮して論理アドレス空間へ制御対象装置121の入出力を割り当てている。
【0111】
これ以外にも割り当ての方法は考えられ、データサイズや通信周期(
図9Aに記載なし)などの属性に基づいて、グループ分けや割り当ての順序を変更することが例示される。または、これら入出力方向、接続順、データサイズ、通信周期、制御対象装置121のデバイス種類といった属性に基づいて、論理アドレス空間への割り当てを決定してもよい。あるいは、これらの論理アドレス空間上の並びを決定する際に、各属性を適用する順序を変更してもよい。
【0112】
あるいは、制御装置120が複数の通信部159を備える場合は、対象の制御対象装置121が接続する通信部159によって論理アドレス空間への割り当てを決定してもよい。例えば、同じ通信部159に接続する制御対象装置121群ごとに、上記の入出力方向、接続順、データサイズ、通信周期といった属性にしたがって、順番に論理アドレス空間上に割り当てることが例示される。
【0113】
図8において、次に、データグラム生成情報計画部111は、制御システム情報記憶部110が保持する制御システム123の情報や、論理アドレス割当計画部113が計画した論理アドレス空間の割り当て情報等に基づいて、データグラム生成情報を計画する(手順S002)。一例として、
図9Cに示すデータグラム生成情報(通信制御情報)が例示される。
【0114】
ここで、
図9Bに示す論理アドレス空間への割り当てを前提とすると、各領域190は入出力方向に基づいてグループ分けされているため、領域190内で同じコマンドが適用可能である。領域190aは入力方向であるため、論理アドレスに対するリードであるLRDコマンドのデータグラムにまとめることができる。同様に、領域190bは出力方向であるため、論理アドレスに対するライトであるLWRコマンドのデータグラムにまとめることができる。
【0115】
ただし、EthernetフレームまたはEtherCATデータグラムでは、データサイズの上限があるため、集約できる制御対象装置121の入出力は制限がある。
図9Cに示す構成では、制御対象装置121A、B、Cをデータグラム[1]に集約している。Ethernetフレーム内にEtherCATデータグラムを一つだけ格納する場合、データサイズの上限は1486byteとなる。制御対象装置121A、B、Cの入出力をあわせると合計で1000byte(=400byte+400byte+200byte)であり、制御対象装置121Dを含めると1500byteとなって、上限である1486byteを超える。
【0116】
そのため、
図9Cに示す構成では、制御対象装置121A、B、Cをデータグラム[1]に集約している。同様に、制御対象装置121D、Eをデータグラム[2]に集約している。データグラム[1]、[2]は、いずれもLRDコマンドとしている。このように、データグラムの構成にあたっては、通信フレームやデータグラムの上限内におさまるようにしなければならない。
【0117】
なお、
図9Cに示す構成では、データグラムの構成単位は、制御対象装置121毎となっているが、これに限らず細分化されてもよい。すなわち、制御対象装置121Dの領域を分割してデータグラム[1]とデータグラム[2]のそれぞれに含めてもよい。例えば、上限までデータを含める場合は、制御対象装置121Dの入出力の先頭486byte(=1486byte-1000byte)をデータグラム[1]に含め、残りの14byte(=500byte-486byte)をデータグラム[2]に含めてもよい。また、
図9Cに示す構成では、制御対象装置121Fをデータグラム[3]とし、LWRコマンドとしている。
【0118】
また、データグラム生成情報は、WKC178の期待値を含む。制御装置120は、WKC178を含んだデータグラムを制御ネットワーク122に送信する。各制御対象装置121は、受信したデータグラムを処理し、WKC178の値を適宜更新する。そして、制御装置120は、このようにしてWKC178の値が更新されたデータグラムを受信する。
【0119】
検証パラメータであるWKC178の期待値は、データグラムを処理する制御対象装置121の数に基づいて決定される。データグラム[1]は、制御対象装置121A、B、C宛てであるため、WKC178の期待値を3としている。同様に、データグラム[2]は、制御対象装置121D、E宛てであるため、WKC178の期待値を2とし、データグラム[3]は、制御対象装置121F宛てであるため、WKC178の期待値を1としている。
【0120】
図8において、手順S002ののち、制御システム構成装置124、例えば制御システム構成情報構築部112は、論理アドレス割当計画部113が計画した論理アドレス空間の割り当て、データグラム生成情報計画部111が計画したデータグラム生成情報が所定条件を満足しているか判定する(手順S003)。そのような条件としては、以下が例示される。なお、制御システム構成装置124は、これらの条件のいずれか複数を組み合わせて判定してもよい。
【0121】
・データグラム生成情報計画部111が計画したデータグラム生成情報が実行可能であるかどうか。
・論理アドレス割当計画部113が計画した論理アドレス空間の領域190間で重複がないか。
・論理アドレス割当計画部113による論理アドレス空間の割り当ての計画、またはデータグラム生成情報計画部111によるデータグラム生成情報の計画に探索的手法、最適化手法を適用する場合、所定回数実行したかどうか。その場合、データグラム数や通信フレーム数の最小化や通信帯域の利用効率の最大化等の指標で最適な計画を採用することが例示される。
・データグラム数や通信帯域の利用効率等の指標が、制御システムの情報に基づいて決定される所定値を満足しているかどうか。例えば、制御対象装置121の数や入出力の方向やデータサイズから、データグラム数や通信フレーム数の最適値を決定し、データグラム生成情報計画部111が計画したデータグラムの数が、その最適値となっているかどうか。
【0122】
なお、データグラム数が増えるとヘッダやWKCといった領域がオーバーヘッドとなり、通信帯域の利用効率が低下するため、データグラム数は少ない方が望ましい。同様に、通信フレーム数が増えるとヘッダやフレーム間ギャップがオーバーヘッドとなり、通信帯域の利用効率が低下するため、通信フレーム数は少ない方が望ましい。また、通信フレームやデータグラムにおけるデータサイズの上限が決まっているため、制御対象装置121の入出力のデータサイズの合計が定まれば、理論的に最小となる通信フレーム数またはデータグラム数が決定される。
【0123】
例えば、制御対象装置121の入出力のデータサイズの合計が2000byteである場合、1つのデータグラムのデータサイズの上限は1486byteであるため、最小のデータグラム数は2となる。Ethernetフレームのデータサイズの上限についても1498byteであるため、最小のEthernetフレーム数についても2となる。したがって、データグラム数は2が最適値であるため、手順S003では、データグラム生成情報計画部111が計画したデータグラム数が2であるかを判定することが例示される。なお、手順S003では、特に所定条件を設けずに、手順S004に進めてもよい。
【0124】
手順S003で所定条件を満足していると判定すれば(手順S003のY)、制御システム構成情報構築部112は、制御システム構成情報を構築する(手順S004)。制御システム構成情報の例として、
図9Dが例示される。
図9Bでは、論理アドレス空間の領域190aに、先頭から制御対象装置121A、B、Cを順に割り当て、これらを、
図9Cに示すように、データグラム[1]に含めている。このため、
図9Dに示す制御システム構成情報において、制御対象装置121A、B、Cは、データグラム[1]及び領域190aと対応付けられる。
【0125】
同様に、制御対象装置121D、Eは、データグラム[2]及び領域190aと対応付けられる。制御対象装置121Fは、データグラム[3]及び領域190bと対応付けられる。このように、制御システム構成情報は、制御対象装置(デバイス)121と、データグラム(制御用データ)との対応関係を表し、詳細には、
図9Dに示される情報と、
図9Dに関連する
図9Bに示される情報とを含んでいる。
【0126】
一方、手順S003で所定条件を満足していないと判定すれば(手順S003のN)、制御システム構成装置124は、手順S001に戻る。このとき、制御システム構成装置124は、論理アドレス空間への割り当てを変更せずに手順S002に戻ってもよい。
【0127】
手順S004の後、データグラム生成情報計画部111は、計画したデータグラム生成情報を制御装置120のデータグラム生成情報記憶部152に送信する(手順S005)。また、制御システム構成情報構築部112は、構築した制御システム構成情報を制御装置120の制御システム構成情報記憶部162に送信する(手順S006)。
【0128】
手順S005と手順S006は、
図8に示すように並列に実行されてもよいし、いずれかを先にして順番に実行されてもよい。また、制御装置120に送信するデータグラム生成情報と制御システム構成情報は、同じ通信(通信フレームあるいは上位プロトコルにおけるセッションやコネクション)で伝送されてもよい。手順S005と手順S006を実行後、制御システム構成装置124は、
図8に示した動作手順を終了する。
【0129】
なお、手順S002において、データグラム生成情報計画部111が計画するデータグラム生成情報は、論理アドレスへアクセスするデータグラムだけでなく、例えば、論理アドレスの設定や制御対象装置121における状態遷移(EtherCATにおけるEtherCAT State Machine)の管理といった初期化のためのデータグラムを含めてもよい。また、データグラム生成情報計画部111は、制御システム情報記憶部110の保持する制御対象装置121の情報に基づいて、各データグラムの送信タイミングや通信周期といった通信スケジュールを計画してもよい。
【0130】
また、制御装置120が複数の通信部159を備える場合、データグラム生成情報計画部111は、通信部159ごとにデータグラム生成情報を分けて計画してもよい。このとき、通信部159ごとに分けて計画されたデータグラム生成情報がWKC178の期待値を含む場合、WKC178の期待値は、それぞれの通信部159に接続された制御対象装置121に基づいて決定される。あるいは、あるデータグラム生成情報内において、WKC178の期待値のみを通信部159ごとに定義してもよい。また、制御装置120が複数の通信部159を備える場合、制御システム構成情報構築部112が構築する制御システム構成情報は、対象の制御対象装置121が接続する制御装置120の通信部159の識別子を含み得る。
【0131】
また、制御システム構成情報構築部112が構築する制御システム構成情報において、論理アドレスの領域190への対応付けは任意とし、制御システム構成情報に含めなくともよい。あるいは、制御システム構成情報に領域190との対応付けを含める場合は、制御装置120のデータ記憶部151において、論理アドレスの各領域190と、データ記憶部151におけるデータの記憶位置を対応付けてもよい。例えば、
図9Bにおいて、領域190aは論理アドレス0x00000000から2000byteの領域を占めているため、データ記憶部151において、所定のアドレス(例えば、0x00000000)から2000byteの領域を、領域190aと同じように制御対象装置121A、B、C、D、Eのデータ領域とすることが例示される。
【0132】
<制御装置120の送信処理手順>
図10は、
図3に示される制御装置120において、送信処理の実行手順の一例を示すフローチャートである。
図10において、はじめに、データグラム生成部153は、実行開始タイミングを待機する(手順S010)。データグラム生成部153の実行開始タイミングは、例えば、制御システム構成情報や、制御システム情報で指定される送信タイミングや通信周期などに基づいて定められる。制御システム構成情報は、制御システム構成情報記憶部162で保持され、制御システム情報は、制御システム構成装置124内の制御システム情報記憶部110で保持される。
【0133】
あるいは、データグラム生成部153の実行開始タイミングは、演算部150からの通知によって定められてもよい。演算部150からデータグラム生成部153への通知として、演算部150によるデータ記憶部151へのデータアクセスの開始や完了の通知が例示される。または、当該実行開始タイミングは、データグラム生成情報に定義されている送信タイミングであってもよい。あるいは、当該実行開始タイミングは、複数のデータグラム生成情報で定義されている周期の最大公約数となる周期に基づいて定められてもよい。
【0134】
なお、最初の開始時刻は、所定の時刻をシステムオペレータ等が設定してもよく、その時刻は制御装置120自身の時刻に基づいていてもよい。あるいは、最初の開始時刻は、Distributed Clockプロトコル等の時刻同期プロトコルで同期した時刻体系に基づいた時刻でもよい。
【0135】
次に、データグラム生成部153は、データグラム生成情報記憶部152からデータグラム生成情報を抽出する(手順S011)。そして、データグラム生成部153は、手順S011で抽出したデータグラム生成情報がデータグラム生成の対象であるかを判定する(手順S012)。手順S011で抽出したデータグラム生成情報がデータグラム生成の対象であるか否かを判定するため、例えば、データグラム生成情報に有効または無効の情報を含めてもよい。この場合、データグラム生成部153は、有効の情報が含まれる場合に生成対象であると判定すればよい。
【0136】
あるいは、ESM(EtherCAT State Machine)において、そのデータグラム生成情報で生成されるデータグラムを送信すべきステートを、データグラム生成情報に含めてもよい。この場合、データグラム生成部153は、制御装置120として指定されたステートと一致した場合に生成対象であると判定すればよい。あるいは、データグラム生成情報は、送信周期を含んでもよい。この場合、データグラム生成部153は、前回の送信時刻からの経過時間が、その送信周期と一致する、または送信周期を経過している場合に生成対象であると判定すればよい。
【0137】
このように構成する場合、前回の送信時刻を記憶する手段を設けることが例示され、データグラム生成情報中に前回送信時刻を記憶するか、あるいはデータグラム生成部153が記憶手段を備えて、前回送信時刻を記憶してもよい。あるいは、次回の送信予定時刻を記憶し、データグラム生成部153は、その時刻に到達した場合に生成対象であると判定してもよい。また、一定の送信周期ではなく、所定の送信パターンとして送信タイミングを定義してもよい。例えば、1ミリ秒の周期において、200マイクロ秒、300マイクロ秒、500マイクロ秒おきに送信することとし、データグラム生成部153は、前回の送信時刻からの経過時間が、その送信パターンと一致する、または送信周期を経過している場合に生成対象であると判定してもよい。
【0138】
生成対象であるとの判定基準は、上記に示した判定基準のいずれか、または複数でもよい。複数の場合は、いずれかの条件が一致した場合(論理和)でもよいし、全ての条件が一致した場合(論理積)でもよいし、任意の論理式で定めた条件に一致した場合でもよい。任意の論理式として、例えば、「そのデータグラム生成情報が有効であるという情報を含み、かつ、ステートが一致するか、あるいは送信タイミングが所定の条件に一致する場合」に、生成対象であると判定する、といった例が挙げられる。
手順S012で、データグラム生成部153は、生成対象のデータグラム生成情報であると判定すれば(手順S012のY)、データグラム生成情報に基づいて、データを準備する(手順S013)。この際に、データグラム生成部153は、データグラム生成情報にコマンドを含め、コマンドの性質に基づいて、データの準備処理を制御してもよい。
【0139】
例えば、生成するデータグラムがライトコマンドである場合は、制御装置120から制御対象装置121への指令(書き込み、ライト方向とする)となる。このため、データグラム生成部153は、データ記憶部151から指令値相当のデータを抽出する。このとき、データグラム生成情報にデータ記憶部151中の対象データの位置とサイズを示す情報を含め、データグラム生成部153は、これらの情報を参照することが例示される。すなわち、データグラム生成部153は、これらの位置とサイズを用いて、データ記憶部151から、必要なデータを抽出する。
【0140】
データの記憶位置に関し、記憶位置をデータグラム生成情報に含めてもよいし、データグラム生成情報に順序がある場合は、抽出したデータグラム生成情報の順序よりも前に位置するデータグラム生成情報のサイズを積算することで、記憶位置を算出してもよい。データ記憶部151の記憶領域がライト系コマンドとリード系コマンドのそれぞれに分かれている場合は、ライト系コマンドのみのデータグラム生成情報のサイズを加算して記憶位置を算出することが例示される。この際に、ARMW(Auto Increment Read Multiple Write)コマンドやFRMW(Configured Read Multiple Write)のような特殊なコマンドをライト系コマンドに含めるかは、システムオペレータ等が静的に事前定義してもよい。
【0141】
一方、生成するデータグラムがリードコマンドである場合は、制御装置120が制御対象装置121の情報を取得する通信(読み出し、リード方向とする)となる。このため、データグラム生成部153は、データ記憶部151からデータを抽出せずに、内容が空あるいはゼロであり、かつ、データサイズがリードサイズであるデータグラムを生成する。これは、EtherCATではリードコマンドであっても、リードサイズに相当するデータ領域が必要であるためである。なお、サイズが制御システム123内で一定といった特徴がある場合は、サイズ情報は、データグラム生成情報に含まれなくともよい。
【0142】
また、ARMWコマンドやFRMWコマンドのように、指定の制御対象装置121のみリードし、それ以外の制御対象装置121にライトする特殊コマンドの場合、データグラム生成部153は、データ記憶部152からデータを抽出してもよいし、リードコマンドのように、内容が空あるいはゼロであり、かつ、データサイズがリードサイズであるデータグラムを生成してもよい。この際には、データグラム生成情報に含まれるアドレス情報をもとに切り替えが行われてもよい。
【0143】
例えば、コマンドがARMWで、オートインクリメントアドレスが0の場合、制御装置120に隣接する制御対象装置121を示すことになる。このような場合、送信されたデータグラムの情報は、隣接する制御対象装置121に対するリード処理によって、ただちに上書きされるため、制御装置120において、データ記憶部151からデータを抽出する処理は無意味となる。したがって、コマンドがARMWで、オートインクリメントアドレスが0の場合は、データ記憶部151からデータを抽出しないことが例示される。
【0144】
続いて、データグラム生成部153は、データグラム生成情報と、準備したデータからデータグラムを生成する(手順S014)。
図4に示すデータグラム175を生成するため、データグラム生成情報は、少なくともコマンド179、アドレス181、サイズ182を含む。コマンド179は、論理アドレスへのアクセス内容を表す。index180、IRQ186、WKC178は、値を指定したい場合にデータグラム生成情報に含めてもよい。index180、IRQ186、WKC178の値を指定する必要がなければ、デフォルト値(例えば、0)を設定することが例示される。MORE185は、明示的に最終データグラムであるかどうかを示したい場合に、データグラム生成情報に含めてもよい。
【0145】
このようにして、データグラム生成部153は、データグラム生成情報から抽出したヘッダ情報、手順S013において準備したデータ、WKC178を組み合わせてデータグラムを生成する。そして、データグラム生成部153は、生成したデータグラムを、データグラム生成情報に基づいて、該当する通信フレーム生成部154に転送する(手順S015)。ここで、通信フレーム生成部154を複数備える場合、全ての制御対象装置121に通知する内容や、全ての制御対象装置121から情報を取得する場合は、ブロードキャストコマンド(BRD、BWR、BRWコマンド)を用いて、全ての通信フレーム生成部154に転送することが例示される。
【0146】
あるいは、全ての通信フレーム生成部154でなくとも、複数の通信フレーム生成部154に転送することが例示される。この際には、複数の通信フレーム生成部154を個々に指定するため、データグラム生成情報に、データグラム転送先の通信フレーム生成部154を表すビットマップ形式の情報を含ませることが例示される。各ビットは、個々の通信フレーム生成部154を示し、値を真理値または0、1で示すことが例示される。真理値の真または1の場合に、該当する通信フレーム生成部154にデータグラムを転送することが例示される。
【0147】
複数の通信フレーム生成部154にデータグラムを転送する場合、データグラム生成部153は、同時に送信してもよいし、順番に送信してもよい。制御システム123の運用上、全体の処理遅延を短縮するためには、データグラム生成部153は、同時に送信することが望ましい。
【0148】
手順S015でデータグラムを通信フレーム生成部154に転送した後、あるいは手順S012において、生成対象のデータグラム生成情報ではないと判定した場合(手順S012のN)、データグラム生成部153は、必要なデータグラム生成情報を全て処理したかを判定する(手順S016)。この際に、データグラム生成部153は、データグラム生成情報記憶部152上の全てのデータグラム生成情報を処理したかどうかで判定してもよいし、個々のデータグラム生成情報におけるデータサイズの合計が所定値を超えた場合に、必要なデータグラム生成情報の全てを処理したと判定してもよい。データサイズの合計を比較する際の所定値として、例えば、通信フレームの最大サイズが例示される。各データグラム生成情報のデータサイズは、通信プロトコル上のヘッダや末尾情報のサイズを含めて計算されもよい。
【0149】
または、データグラム生成情報にMORE185を含めることで、データグラム生成部153は、MORE185が0の場合(つまり、後続のデータグラムがない)に、最後のデータグラムと判定し、必要なデータグラム生成情報の全てを処理したと判定してもよい。あるいは、データグラム生成部153は、データグラム生成情報に含まれる、その他のヘッダ上の情報に基づいて判定してもよい。例えば、データグラム生成情報のコマンド179が所定のコマンドであれば、最後のデータグラム生成情報と判定してもよいし、index180、アドレス181、IRQ186をデータグラム生成情報に含めて、それぞれ所定の値である場合に最後のデータグラム生成情報と判定してもよい。
【0150】
さらに、この際に、データグラム生成部153は、複数のパラメータを組み合わせて判定してもよい。例えば、コマンド179とアドレス181が同時に、それぞれ所定の値であった場合に最後のデータグラム生成情報と判定してもよい。また、パラメータに限らず、データ記憶部152から抽出したデータの値が所定値であった場合に、最後のデータグラム生成情報と判定してもよい。例えば、ヘッダ176を構成するパラメータとデータ記憶部151から抽出したデータの値の組み合わせによって、最後のデータグラム生成情報であるかどうかを判定してもよい。
【0151】
手順S016において、必要なデータグラム生成情報の全てを処理したと判定した場合(手順S016のY)は、手順S017に進む。一方、手順S016において、必要なデータグラム生成情報の全てを処理したと判定しない場合(手順S016のN)は、手順S011へと戻る。
【0152】
手順S017で、通信フレーム生成部154は、データグラム生成部153から転送されたデータグラムを組み合わせ、かつ、制御ネットワーク122の通信プロトコルにしたがったヘッダと末尾情報を付加し、通信フレームを生成する。EtherCATの場合は、
図4に示す通り、Ethernetヘッダ171とFCS173をデータグラム群と組み合わせる。データグラムを連結する順序として、データグラム生成部153から転送された順序が例示される。
【0153】
または、通信フレーム生成部154は、構成する内容に基づいて、データグラムを並びかえてもよい。例えば、データグラムのサイズにしたがって昇順または降順に並びかえてもよい。あるいは、所定のコマンドを格納するデータグラムを、通信フレームの先頭に配置してもよい。例えば、論理アドレスに対するリードコマンド(LRDコマンド)を通信フレームの先頭に配置、集約することが例示される。
【0154】
なお、これらの並び替えは、
図8における手順S005で、データグラム生成情報計画部111から送信されたデータグラム生成情報を、データグラム生成情報記憶部152に登録する際の順序に反映されてもよいし、登録後にデータグラム生成情報記憶部152内でデータグラム生成情報を記憶する順序に反映されてもよい。あるいは、これらの並び替えは、手順S011においてデータグラム生成部153がデータグラム生成情報記憶部152に記憶されているデータグラム生成情報にアクセスする順序に反映されてもよい。
【0155】
通信フレームを生成する際、通信フレーム生成部154は、最後のデータグラムのMORE185は0(後続のデータグラムが存在しないことを示す)に設定し、それ以外のデータグラムのMORE185を1(後続のデータグラムが存在することを示す)に設定してもよい。あるいは、手順S014において、データグラム生成部153が生成中のデータグラムが最後であるかを判定し、最後であると判定した場合にMORE185を0に設定し、最後ではないと判定した場合にMORE185を1に設定してもよい。データグラム生成部153による判定基準は、手順S016と同様である。あるいは、データグラム生成情報にMORE185の値を含めて、手順S014でのデータグラム生成時に反映してもよい。
【0156】
次に、通信フレーム生成部154は、生成した通信フレームの送信タイミングであるかを判定する(手順S018)。この際に、通信フレーム生成部154は、特に送信タイミングを判定せずに、手順S017の終了後にただちに送信タイミングであると判定してもよい。あるいは、通信フレーム生成部154は、制御システム構成情報記憶部162で保持する制御システム構成情報や、制御システム情報記憶部110で保持する制御システム情報で送信タイミングや通信周期が指定されていれば、それに基づいて送信タイミングを決定してもよい。あるいは、通信フレーム生成部154は、データグラム生成情報で定義されている送信周期に基づいて、送信タイミングを決定してもよい。
【0157】
手順S018において、通信フレームの送信タイミングであると判定した場合、通信フレーム生成部154は、通信フレームを送信部155に転送し、送信部155を介して送信する(手順S019)。次に、制御装置120は、所定の完了処理を実行する(手順S020)。完了処理の例としては、演算部150に対して、送信完了したことを通知することが例示される。
【0158】
あるいは、完了処理として、手順S011から手順S019までの手順で異常が生じた場合に、異常発生を演算部150に通知することが例示される。例えば、データアクセスサイズの合計が所定値を超えた場合に、これを通知する。あるいは、データ記憶部151の領域にアクセスした際の通信異常、データ記憶部151を実現するメモリ104、不揮発性記憶媒体105でのアクセス異常、機能部の演算手段や記憶手段として構成している通信制御IC102、メモリ104、不揮発性記憶媒体105でのソフトエラー(半導体の一時的な故障)等が発生した場合に、これを通知する。これらの異常検出のために、誤り訂正符号(ECC)機能を具えたデバイス、機能部を利用することや、データ記憶部152、メモリ104、不揮発性記憶媒体105にデータを記憶する際にパリティチェックなどの誤り訂正符号とあわせて記憶することが例示される。
【0159】
これらの異常通知によって、システムオペレータ等は、異常に気づくことができ、必要な対策を講じることができる。結果として、制御システム123の実行、運用の安定化、正常化、復旧が可能となる。例えば、データアクセスサイズが所定値を超えた場合は、制御システム構成装置124内のデータグラム生成情報計画部111において、誤ってデータグラム生成情報を計画したことが原因となり得る。このような原因を調査することで、データグラム生成情報計画部111、制御システム構成情報構築部112または論理アドレス割当計画部113や、制御装置120内の各機能部のいずれか、あるいは複数に誤設定や不具合があった場合は、それを改善することにより、該当機能部が高信頼化される。
【0160】
あるいは、システムオペレータ等が、これらの機能部を利用した際に、誤った設定をしたことが原因であれば、設定を見直すとともに、誤設定を防止するための機能を制御システム構成装置124の機能部に追加することが例示される。具体的には、該機能部を操作する際のユーザインターフェースの改良や、サイズ上限値などの想定条件に対するチェック機能が例示される。
【0161】
手順S020での完了処理にともなう通知は、通信制御IC102からCPU101への割り込みとして実装することが例示される。あるいは、完了処理として、通信フレーム生成部154または送信部155は、通信フレームの送信時刻を記憶してもよい。送信時刻を記憶することで、制御ネットワーク122を介して同じデータグラムを受信した際に通信時間を計測でき、通信性能の評価、可視化や、タイムアウト値との比較による異常判定が可能となる。送信時刻は、通信フレームごとではなく、手順S015におけるデータグラム転送時にデータグラムごとに記憶されてもよい。
【0162】
なお、手順S011におけるデータグラム生成情報の抽出に際して、ESMに基づくモードを設けることで、手順S012において、モードにあわせて、生成対象のデータグラムであるかを判定してもよい。このとき、現在設定しているモードの情報に加え、データグラム生成情報に、送信対象となるモードを定義することが例示される。ESMに基づくステートの変更完了は、手順S020において確認することが例示される。ESMに基づくステートの変更を要求するデータグラムは、データグラム生成情報として定義することが例示される。
【0163】
手順S020の実行後、制御装置120は、終了条件を判定する(手順S021)。終了条件として、所定の時刻に達したことや、所定の時間経過したこと、所定の制御回数を実行したことが例示される。あるいは所定の制御性能に達したことが例示される。また、システムオペレータ等によって明示的に終了を指示されてもよい。
【0164】
制御装置120は、手順S021で終了条件を満足したと判定すれば(手順S021のY)、
図10に示される手順を終了する。手順S021で終了条件を満足していないと判定すれば(手順S021のN)、手順S010に戻る。手順S017から手順S020までの処理は、複数存在するPHY103、または通信フレーム生成部154、あるいは送信部155のそれぞれで実行されるため、並列に実行されてもよい。
【0165】
<制御装置120の受信処理手順>
図11は、
図3に示される制御装置120において、受信処理の実行手順の一例を示すフローチャートである。はじめに、受信部158は、通信フレームの受信を待機する(手順S030)。受信部158は、通信フレームを受信すれば、通信フレーム分解部157に転送し、通信フレーム分解部157は、受信した通信フレームをデータグラムに分解する(手順S031)。なお、受信部158は、受信した通信フレームがEtherCATフレームではない場合は、破棄して終了してもよいし、非EtherCATフレームを受信したことや、受信した通信フレームを演算部150等に通知してもよい。
【0166】
通信フレーム分解部157は、通信フレームをデータグラムに分解すると、個々のデータグラムをデータグラム解析部156に転送する(手順S032)。データグラム解析部156は、データグラムを受信すると、データグラム生成情報記憶部152を探索して、そのデータグラムに該当するデータグラム生成情報があるかどうかを判定する(手順S033)。
【0167】
データグラム生成情報の探索および有無判定は、受信したデータグラムの内容に基づいて行われる。すなわち、データグラム解析部156は、例えば、受信データグラム上のヘッダ情報やデータ長と、データグラム生成情報に含まれるヘッダ情報が一致する場合に、データグラム生成情報があると判定する。ヘッダ情報を判定する際には、全てのパラメータについて一致を判定せずに、コマンド179、アドレス181、サイズ182などの一部のパラメータのみの一致について判定してもよい。
【0168】
もし、データグラム生成情報記憶部152が、該当するデータグラム生成情報を記憶していれば(手順S033のY)、データグラム解析部156は、そのデータグラム生成情報を抽出する(手順S034)。そして、データグラム解析部156は、抽出したデータグラム生成情報と受信データグラムを異常判定部163と共有し、異常判定部163は、受信データグラムの異常を判定する(手順S035)。異常判定部163の動作については後述する。
【0169】
手順S035において、受信データグラムに異常がなければ(手順S035のN)、データグラム解析部156は、受信したデータグラムがリード系コマンドであるかを判定する(手順S036)。リード系コマンドの場合は、受信したデータをデータ記憶部151に反映する必要がある。そこで、データグラム解析部156は、受信したデータグラムがリード系コマンドであれば(手順S036のY)、探索したデータグラム生成情報に基づいて、データ記憶部151における、受信データの記憶位置を決定する(手順S037)。
【0170】
受信データの記憶位置に関し、当該記憶位置をデータグラム生成情報に含めてもよいし、データグラム生成情報に順序がある場合は、抽出したデータグラム生成情報の順序よりも前に位置するデータグラム生成情報のサイズを積算することで、記憶位置を算出してもよい。データ記憶部151の記憶領域がライト系コマンドとリード系コマンドに分かれている場合は、リード系コマンドのみのデータグラム生成情報のサイズを加算して記憶位置を算出することが例示される。ARMWコマンドやFRMWのような特殊なコマンドをリード系コマンドに含めるかは、システムオペレータ等が決定してもよいし、静的に事前定義してもよい。
【0171】
データの記憶位置を決定後、データグラム解析部156は、データグラムから受信データを抽出し、データ記憶部151の該当領域を更新する(手順S038)。手順S038の完了後、または手順S035において、受信したデータグラムに異常があった場合(手順S035のY)、あるいは受信したデータグラムがリード系コマンドではない場合(手順S036のN)、データグラム解析部156は、データグラム処理における完了処理を実行する(手順S039)。データグラム処理の完了処理として、データグラムの受信回数や受信データサイズをカウントアップすることが例示される。
【0172】
手順S039の実行後、または手順S033において、受信したデータグラムに該当するデータグラム生成情報がないと判定した場合(手順S033のN)、制御装置120は、全てのデータグラムを処理したかどうかを判定する(手順S040)。この際には、受信した通信フレームに含まれる、全てのデータグラムを処理したかどうかで判定することが例示される。あるいは、予め定めたヘッダパラメータの値やWKCの値の条件に一致するデータグラムを受信した際に、全てのデータグラムを処理したと判定してもよい。
【0173】
制御装置120は、手順S040において、全てのデータグラムを処理していないと判定すれば(手順S040のN)、手順S032に戻る。一方、手順S040において、全てのデータグラムを処理したと判定すれば(手順S040のY)、データグラム解析部156、通信フレーム分解部157は、受信したデータグラム群、受信した通信フレーム、抽出したデータグラム生成情報を異常判定部163と共有し、異常判定部163は、受信した通信フレームの異常を判定する(手順S041)。
【0174】
手順S041で、異常判定部163が通信フレームに異常があると判定した場合(手順S041のY)、制御装置120は、対応処理を実行する(手順S042)。異常への対応処理に関しては後述する。手順S042の実行後、または手順S041において、通信フレームに異常がないと判定した場合(手順S041のN)、制御装置120は、通信フレームにおける完了処理を実行し(手順S043)、
図11に示される手順を終了する。
【0175】
通信フレームにおける完了処理として、通信フレームの受信回数や受信データサイズをカウントアップすることが例示される。あるいは、通信フレームの完了処理として、演算部150に対して、受信処理を完了したことを通知することが例示される。この際に、通信部159を複数設ける場合、通信部159ごとに受信した通信フレームに対する受信処理ごとに、完了を通知してもよい。
【0176】
あるいは、所定の時間が経過した場合や、所定の通信フレーム数を処理した場合や、所定の受信データサイズ(通信フレームの受信サイズまたは
図4に示す所定の領域に対する受信サイズの合計)を処理した場合や、所定の制御対象装置121の数のデータグラムを処理した場合に、完了を通知してもよい。これらの統計値は、通信部159ごとに判定されてもよいし、全ての通信部159または複数の通信部159の合計値で判定されてもよい。演算部150に完了を通知する場合、データグラム解析部156は、通知要因を提示する手段を備えることが例示される。
【0177】
または、通信フレームの完了処理として、データ記憶部151や演算部150に対して、データ記憶部151の必要な領域の更新を完了したことを通知することが例示される。これらの完了処理に伴う通知は、通信制御IC102からCPU101への割り込みとして実装することが例示される。
【0178】
あるいは、完了処理として、通信フレーム分解部157または受信部158は、通信フレームの受信時刻を記憶してもよい。受信時刻を記憶することで、通信フレームを受信した際に通信時間を計測でき、通信性能の評価、可視化や、タイムアウト値との比較による異常判定が可能となる。受信時刻の記憶は、手順S030で通信フレームを受信した(手順S030のY)直後に実行されてもよい。通信部159を複数設ける場合は、受信時刻を通信部159ごとに計測することが例示される。このようにすることで、通信部159ごとの通信時間を計測でき、通信部159ごとの制御対象装置121の接続構成が適切であるかを確認、検証できる。
【0179】
<異常判定と対応手順>
図12は、
図3における異常判定部163による異常判定処理と、再送部164による異常対応処理の実行手順の一例を示すフローチャートである。
図12に示される手順は、
図11における手順S035、S041、S042に対応する。
図12において、はじめに、異常判定部163は、異常判定タイミングを待機する(手順S050)。異常判定タイミングは、データグラム解析部156が異常判定部163と受信データグラムやデータグラム生成情報を共有したタイミングでもよいし、通信フレーム分解部157が異常判定部163と、受信した通信フレームを共有したタイミングでもよい。
【0180】
あるいは、異常判定タイミングは、以下の(A)-(C)のタイミングのいずれかから所定期間が経過したタイミングでもよい。当該異常判定タイミングは、制御ネットワーク122上での通信フレームの損失を検出するためのタイムアウト値に相当するタイミングである。
(A)データグラム生成部153が、生成したデータグラム(例えば、通信フレーム内で最初のデータグラム)を通信フレーム生成部154に転送したタイミング
(B)通信フレーム生成部154が、生成した通信フレームを送信部155に転送したタイミング
(C)送信部155が通信フレームの送信を開始したタイミング
【0181】
手順S050で異常判定のタイミングとなれば(手順S050のY)、異常判定部163は、受信データグラム単位での異常判定(手順S051)と、受信した通信フレーム単位での異常判定(手順S052)とを実行する。手順S051と手順S052は、
図12に示すように並列に実行されてもよいし、どちらかを先に実行することで順番に実行されてもよい。あるいは、異常判定部163は、該当する情報がない場合は、どちらか一方を実行するのみでもよい。
【0182】
例えば、通信フレームが複数のデータグラムで構成され、データグラム解析部156から先頭のデータグラムのみを異常判定部163に転送された場合、異常判定部163は、通信フレームについての異常を判定できないため、手順S051のみを実行する。一方で、例えば、タイムアウトによる異常判定のタイミングとなれば、異常判定部163は、個々のデータグラムについての異常判定はできないため、手順S052のみを実行する。また、FCS173における巡回冗長検査(CRC:Cyclic Redundancy Check)の異常を判定する場合は、FCS173が通信フレームごとに付与され、通信フレームに対する異常判定となるために、異常判定部163は、手順S051のみを実行する。
【0183】
手順S051におけるデータグラムに対する異常の判定に際し、データグラム生成情報に、データグラム受信時のWKC178の期待値を設けることが例示される。この場合、異常判定部163は、受信したデータグラムに格納されるWKC178の値と期待値とを比較して、不一致の場合に異常と判定すればよい。あるいは、異常判定部163は、受信したデータグラムのフォーマットが、通信プロトコルで定義するフォーマットに対して不整合がある場合に、異常と判定してもよい。
【0184】
手順S052における通信フレームに対する異常の判定に際し、通信フレームの通信に対して、タイムアウト値を定めることが例示される。この場合、異常判定部163は、
図10における手順S015でのデータグラム転送時や、手順S019での通信フレームの転送時または送信時から、
図11における手順S030での通信フレーム受信時や、手順S032のデータグラム受信時までの時間が、タイムアウト値を経過した場合に異常と判定すればよい。
【0185】
あるいは、異常判定部163は、受信した通信フレームにおけるFCS173を用いた巡回冗長検査(CRC:Cyclic Redundancy Check)において異常が検知された場合に異常と判定してもよい。CRCによる異常判定は、
図11における手順S030で通信フレームを受信した(手順S030のY)直後に実行されてもよい。すなわち、
図12における手順S050において、通信フレームを受信したタイミングを、異常判定のタイミングとする。または、異常判定部163は、受信した通信フレームのフォーマットに、通信プロトコルで定義するフォーマットに対して不整合がある場合に、これを異常と判定してもよい。
【0186】
あるいは、異常判定部163は、データ記憶部151の領域にアクセスした際の通信異常、データ記憶部151を実現するメモリ104、不揮発性記憶媒体105でのアクセス異常、機能部の演算手段や記憶手段として構成している通信制御IC102、メモリ104、不揮発性記憶媒体105でのソフトエラー、といった異常を検出してもよい。さらに、異常判定部163は、
図11における手順S038で発生した異常を検出してもよい。これらの異常検出のために、誤り訂正符号(ECC)機能を具えたデバイス、機能部を利用することや、データ記憶部151、メモリ104、不揮発性記憶媒体105にデータを記憶する際にパリティチェックなどの誤り訂正符号とあわせて記憶することが例示される。
【0187】
手順S051、S052での異常判定後、異常判定部163は、異常が生じているかを確認する(手順S053)。異常が生じていれば(手順S053のY)、異常判定部163は、再送の要否判定(手順S054)と異常通知(手順S056)とを実行する。手順S054と手順S056は、
図12に示すように並列に実行されてもよいし、どちらかを先に実行することで順番に実行されてもよい。あるいは、いずれか一方のみが実行されてもよい。
【0188】
手順S054における再送の要否判定に関し、予めシステムオペレータ等によって、異常が生じた時には再送を実行するように設定しておくことで、異常判定部163は、その設定に基づいて再送すると判定してもよい。あるいは、所定周期内の再送の上限回数を設けることで、異常判定部163は、手順S053において異常が生じたと判定した場合であっても、再送回数が上限回数に達している場合は再送しないと判定してもよい。
【0189】
あるいは、データグラム生成情報記憶部152が保持するデータグラム生成情報において、データグラムごとに再送対象であるか否かを設定しておくことで、異常判定部163は、異常が生じたと判定したデータグラムが再送対象に該当する場合に、再送すると判定してもよい。同様に、異常判定部163は、異常が生じたデータグラムが再送対象のデータグラムに該当しない場合は、再送しないと判定してもよい。
【0190】
あるいは、受信処理までは異常が発生せず、データ記憶部151、メモリ104、不揮発性記憶媒体105へのアクセス時に異常が生じた場合は、異常判定部163は、再送をしないと判定してもよい。そのような場合、異常判定部163は、データグラム解析部156などに、再度、データ記憶部151、メモリ104、不揮発性記憶媒体105へアクセスさせることが例示される。再アクセスでも失敗した場合や、所定回数の再アクセスが失敗した場合に、異常判定部163は、演算部150や外部に通知することが例示される。
【0191】
手順S054において、再送すると判定した場合(手順S054のY)、異常判定部163は、再送対象のデータグラム、通信フレーム、データグラム生成情報のいずれか、または複数の情報を再送部164に転送し、再送部164は、該情報を用いて再送する(手順S055)。再送する場合は、通信フレーム単位で再送してもよいし、WKC不一致などで異常と判定したデータグラム単位で再送してもよい。
【0192】
再送部164は、再送するために、異常判定部163から転送された情報を元にデータグラムや通信フレームを構築して送信部155に転送してもよい。あるいは、データグラム生成部153から通信フレーム生成部154へ転送されるデータグラムや、通信フレーム生成部154から送信部155に転送される通信フレームを、再送部164に対しても転送してもよい。この場合、異常判定部163から再送部164に転送された情報を元に、再送部164は、再送が必要なデータグラムや通信フレームを特定して、送信部155に転送すればよい。
【0193】
このとき、再送部164は、再送であることがわかるように、送信部155に転送するデータグラムまたは通信フレーム上のパラメータを変更してもよい。そのようなパラメータとしては、Ethernetヘッダ171上の送信先MACアドレス、送信元MACアドレス、index180、データ領域177のいずれか、または複数が例示される。また、変更対象は、選択したパラメータの一部でもよい(例えば、送信元MACアドレスの一部やindex180の所定ビット)。また、通信フレームの構成の変更にともない、再送部164は、MORE185等のパラメータを変更してもよい。
【0194】
手順S056では、異常判定部163は、異常が生じたと判定した場合に、その異常に関する情報を演算部150に通知する。異常に関する情報として、該当のデータグラムや通信フレームに関する情報、データグラム生成情報に関する情報、異常要因、異常の発生タイミング、発生時刻のいずれか、または複数が例示される。異常発生を演算部150に通知する場合に、異常が発生した通信部159、通信フレーム、データグラム等が特定できる場合は、異常判定部163は、それらの識別情報のいずれか、または複数をあわせて通知することが例示される。
【0195】
また、異常判定部163から演算部150に通知する手段は、割り込み信号や、CPU101がアクセス可能なレジスタ情報が例示される。あるいは、異常判定部163は、制御装置120が備え得るディスプレイやLED、スピーカーといった外部提示手段を通じて異常を通知、提示してもよい。あるいは、手順S056において、異常判定部163は、異常発生回数をカウントアップすることが例示される。
【0196】
<システム構成の変更手順>
図13は、
図3における制御対象装置選択部160、データグラム生成情報変更部161、制御システム構成情報記憶部162によるシステム構成変更時の実行手順の一例を示すフローチャートである。
図14A、
図14B、
図14Cおよび
図14Dは、
図13に示される実行手順の具体例を示す図である。
図14は、
図9に示した例に基づいている。システム構成変更とは、制御対象装置(デバイス)121の追加や取り除きなどを表し、デバイスの情報変更を表す。
【0197】
図13において、はじめに、制御装置120は、システム構成を変更するタイミングを待機する(手順S060)。当該タイミングとして、オペレータ等が明示的にシステム構成を変更したタイミングが例示される。または、制御装置120による所定回数の通信の実行後のタイミングや、所定の通信サイズの実行後(制御システム123全体に対しての通信サイズでもよいし、所定の制御対象装置121に対する通信サイズでもよい)のタイミングのいずれかが例示される。または、所定の稼働時間の経過後のタイミングや、制御システム123として所定の性能に到達した場合のタイミングや、所定の処理動作が完了したタイミングのいずれかが例示される。
【0198】
あるいは、当該タイミングは、所定周期に基づくタイミングでもよい。この際に、周期の程度は、特に限定されるものではなく、例えば、5秒周期ごとの10ミリ秒といった相対的に短い周期中の期間であっても、1週間における月曜日の午後1時から午後2時までの1時間といった相対的に長い周期中の期間であってもよい。ここでは、変更に要する期間も定義されているが(10ミリ秒の経過、1時間)、所定条件を満足するまで、もとの構成に戻らなくてもよいし、あるいは、そのままシステム構成を維持してもよい。
【0199】
あるいは、制御装置120または所定の制御対象装置121において、制御システム123における所定事象を検知したことにより、システム構成の変更を開始してもよい。例えば、制御対象装置121が所定のセンサを備え、制御装置120がセンサ値を収集する構成を前提として、制御装置120は、該センサ値が所定の基準を満足した場合にシステム構成を変更するタイミングと判定する。
【0200】
なお、時間指定によってシステムを変更する場合、対象となる制御対象装置121は、自動的に制御システム123に対して接続または離脱してもよい。接続の場合は、制御対象装置121が制御システム123に対して物理的に接続されている状態で自動的に電源が投入されることが例示される。離脱の場合は、制御対象装置121が制御対象装置121に対して物理的に接続されている状態で、自動的に電源が停止されることが例示される。これらの自動処理を実行する時刻は、DCプロトコルによって同期された時刻を用いることが例示される。
【0201】
手順S060でシステム構成を変更するタイミングになれば(手順S060のY)、制御対象装置選択部160は、変更する制御対象装置121を選択する(手順S061)。この際には、制御対象装置121を制御システム123に追加する場合と、制御対象装置121を制御システム123から取り除く場合と、制御対象装置121を交換する場合のいずれか、または複数があり得る。
【0202】
具体例として、
図14Aに示す制御システム123において、制御対象装置121B、C、Eを取り除き、制御対象装置121Gを新たに追加する場合を想定する。この際の運用例として、オペレータが制御システム管理装置125に設けられたHMIを介して、対象の制御対象装置121を選択し、制御システム管理装置125が選択された情報を制御装置120に送信することが例示される。
【0203】
なお、手順S060において所定の条件を満足した時に自動でシステム構成を変更する場合は、該条件に基づいて変更する制御対象装置121が、あらかじめ定義されてもよい。すなわち、システム構成の変更要因と、変更対象となる制御対象装置121との対応が、あらかじめ定義されてもよい。このようにすれば、制御装置120は、変更要因に基づいて、対象の制御対象装置121を自動で選択できる。例えば、制御システム123における所定事象をセンシングした場合にシステム構成を変更する場合は、センサの種類やセンサ値に基づいて制御対象装置121を決定するように、あらかじめ定義が行われてもよい。
【0204】
次に、データグラム生成情報変更部161は、制御システム構成情報記憶部162が保持する制御システム構成情報を取得する(手順S062)。例えば、
図14Dに示す制御システム構成情報が例示される。
図14Dでは、
図9Dに示した制御システム構成情報に対して、制御対象装置121Gが追加されている。制御システム構成情報記憶部162で保持する制御システム構成情報を変更する場合は、
図8に示す手順を任意のタイミングで実行することで、制御システム構成情報記憶部162で保持する制御システム構成情報を変更してもよい。
【0205】
そして、データグラム生成情報変更部161は、データグラム生成情報を変更する前の対応処理を実行する(手順S063)。対応処理としては、通信を停止することや、制御システム123の制御動作を停止することが例示される。あるいはWKC178の期待値との比較による異常判定を無効化することが例示される。これにより、異常判定部163は、受信時におけるWKC178の値と期待値との比較を行わないため、
図12に示した手順S054、S055に示す再送がなされない場合がある。
【0206】
あるいは、制御対象装置121を取り除く場合、制御装置120は、手順S061で選択された制御対象装置121に対する通信を停止してもよい。あるいは、対応処理として、ESMの変更や通信周期の変更、DCプロトコルによる時刻同期の停止等が例示される。なお、手順S063での対応処理として、処理を実行しなくともよい。また、手順S060において、システム構成を自動的に変更する場合にあわせ、手順S063による対応処理は、所定周期での所定期間に実行されてもよい。
【0207】
次に、データグラム生成情報変更部161は、取得した制御システム構成情報、すなわち制御対象装置121とデータグラムとの対応関係に基づいて、データグラム生成情報記憶部152が保持するデータグラム生成情報(通信制御情報)を変更する(手順S064)。変更する情報としては、ヘッダ176のパラメータの一部または複数や、受信するWKC178の値に対する期待値が例示される。
【0208】
WKC178の期待値を変更する際の具体例として、まず、データグラム生成情報変更部161は、
図14Dに示す制御システム構成情報、すなわち制御システム構成情報記憶部162の保持情報に基づき、除去する制御対象装置121B、Cがデータグラム[1]に含まれていることがわかる。したがって、この2つの制御対象装置121を制御システム123から取り除くため、データグラム生成情報変更部161は、
図14Cに示されるように、データグラム[1]に対するWKC178の期待値を、3から、2を減じた1に変更する。
【0209】
同様に、データグラム生成情報変更部161は、
図14Dに示す制御システム構成情報に基づき、除去する制御対象装置121Eがデータグラム[2]に含まれていることがわかる。したがって、この制御対象装置121Eを制御システム123から取り除くため、データグラム生成情報変更部161は、
図14Cに示されるように、データグラム[2]に対するWKC178の期待値を、2から、1を減じた1に変更する。
【0210】
さらに、データグラム生成情報変更部161は、
図14Dに示す制御システム構成情報に基づき、追加する制御対象装置121Gがデータグラム[3]に新たに含まれることがわかる。したがって、この制御対象装置121Gを制御システム123に追加するため、データグラム生成情報変更部161は、
図14Cに示されるように、データグラム[3]に対するWKC178の期待値を、1から、1を加えた2に変更する。
【0211】
加えて、データグラム生成情報変更部161は、データ領域177のサイズ(パラメータとしてはサイズ182)を変更してもよい。具体例として、
図14Aでは、制御対象装置121B、Cが制御システム123から取り除かれる。このため、データグラム生成情報変更部161は、
図14Cに示されるように、データグラム[1]に対するデータ領域177のサイズ、すなわち
図4におけるサイズ182を、1000byteから、制御対象装置121B、Cのサイズの合計である600byteを減じた400byteに変更する。
【0212】
この際に、データグラム生成情報変更部161は、制御対象装置121B、C宛ての通信がデータグラム[1]に含まれることを、
図14Dに示す制御システム構成情報から取得できる。さらに、データグラム生成情報変更部161は、制御対象装置121B、Cのデータ領域177のサイズの合計が600byteであることを、
図14Aに示す制御システム構成情報から取得できる。
【0213】
同様に、データグラム生成情報変更部161は、
図14Dに示す制御システム構成情報に基づき、除去する制御対象装置121Eがデータグラム[2]に含まれていることがわかる。したがって、この制御対象装置121Eを制御システム123から取り除くため、データグラム生成情報変更部161は、
図14Cに示されるように、データグラム[2]に対するデータ領域177のサイズを1000byteから、制御対象装置121Eのサイズである500byteを減じた500byteに変更する。
【0214】
さらに、データグラム生成情報変更部161は、
図14Dに示す制御システム構成情報に基づき、追加する制御対象装置121Gがデータグラム[3]に新たに含まれることがわかる。したがって、この制御対象装置121Gを制御システム123に追加するため、データグラム生成情報変更部161は、
図14Cに示されるように、データグラム[3]に対するデータ領域177のサイズを200byteから、制御対象装置121Gのサイズである100byteを加えた300byteに変更する。
【0215】
なお、データ領域177のサイズ182を変更する場合は、
図8に示す手順S004において、制御システム構成情報構築部112が制御システム構成情報を構築する際の、論理アドレス割当計画部113による論理アドレス空間の割り当て情報が必要である。一方、データ領域177のサイズ182は、変更されなくてもよい。ただし、データ領域177のサイズ182を変更した方が、制御ネットワーク122の通信帯域の利用効率を向上できる。
【0216】
また、データグラムの構成単位を、制御対象装置121単位ではなく、制御対象装置121内で細分化している場合、
図13における手順S061で選択した制御対象装置121に関わる複数のデータグラム構成情報を変更することが例示される。例えば、
図14Dにおいて、制御対象装置121Dの領域を分割してデータグラム[1]とデータグラム[2]のそれぞれに含めた場合、
図14Cにおいて、データグラム[1]とデータグラム[2]のデータグラム構成情報(例えば、WKC178の期待値)を変更することが例示される。
【0217】
このようにして、データグラム生成情報を変更したのち(手順S064)、自動または手動で制御システム123のシステム構成を変更する(手順S065)。例えば、制御対象装置121を取り除く場合、手順S061で選択された制御対象装置121の電源を自動または手動で停止する。一例として、制御システム123が半導体製造装置である場合、チャンバ内に堆積した反応生成物を清掃するようなメンテナンスを行う際に、対象の制御対象装置121の電源を停止する。このような場合、制御対象装置121は物理的には制御システム123に存在しているが、電源が停止されているため、制御システム123上は無効化された状態となる。対象とするシステム構成変更は、このような場合も含む。
【0218】
具体例として、
図14Aに示す例では、制御装置120、または、図示しない制御システム管理装置125などは、制御対象装置121B、C、Eに、制御ネットワーク122を介して電源停止のコマンドを送信することで電源を停止し、制御システム123から論理的に取り除いてもよい。または、オペレータや作業員等が手動で、制御対象装置121を操作することで電源を停止してもよい。その際、物理的に制御対象装置121B、C、Eを持ち運び、制御システム123から取り除いてもよい。
【0219】
あるいは、対象の制御対象装置121に対して、データグラムを受信した際に、異常判定部163での異常判定に用いるパラメータ(例えば、WKC178)を変更しないように設定してもよい。この設定に際し、制御対象装置121に制御ネットワーク122を介してコマンドを送信することや、制御対象装置121に保守用PCをUSBケーブル等で接続して設定することや、制御対象装置121上に設けられた操作インターフェース(例えば、DIPスイッチ)を用いて設定することが例示される。
【0220】
制御対象装置121Gについても、オペレータや作業員が制御対象装置121Gを制御システム123内に持ち運び、電源や制御ネットワーク122へ接続して、制御対象装置121Gを制御システム123に追加してもよい。または、予め、制御システム123内に備え付けられていた制御対象装置121Gの電源を、手動で起動してもよいし、Wake-on-LANの機能を用いて、制御対象装置121Gの電源を制御ネットワーク122を介して自動で起動してもよい。
【0221】
その後、データグラム生成情報変更部161は、システム変更後の対応処理を実行する(手順S066)。当該対応処理として、制御システム123の通信の再稼働や、変更した制御対象装置121への通信の再開、WKC178の期待値との比較の有効化、ESMの変更、論理アドレスの再割当て、SyncManagerの設定、通信周期の変更、DCプロトコルによる時刻同期の再実行等が例示される。
【0222】
あるいは、当該対応処理として、各制御対象装置121の接続順を確認することが例示される。具体例として、制御システム構成情報に、制御対象装置121の接続順の情報を含める(例えば、各制御対象装置121のオートインクリメントアドレス)。制御装置120は、オートインクリメントアドレスの値を順番に変更しながら、各制御対象装置121の識別情報を保持するアドレスに順番にアクセスして所望の接続順となっているかを確認してもよい。
【0223】
なお、手順S066での対応処理は、省略されてもよい。また、手順S060において、システム構成を自動的に変更する場合にあわせ、手順S066による対応処理を、所定周期での所定期間に実行してもよい。制御装置120は、手順S066の実行後に、
図13に示す実行手順を終了する。また、制御装置120において、
図10に示す送信手順、
図11に示す受信手順、
図12に示す異常判定手順と対応手順は、いずれも
図13に示すシステム構成の変更手順に基づいて変更されたデータグラム生成情報に基づいて実行される。
【0224】
図14では、論理アドレスに対するコマンドを中心に説明したが、変更の対象となるデータグラムは、これに限らない。例えば、オートインクリメントアドレスに対するコマンド(APRD、APWR、APRW)、ステーションアドレスに対するコマンド(FPRD、FPWR、FPRW)、ブロードキャストコマンド(BRD、BWR、BRW)、NOPコマンド、ARMWコマンド、FRMWコマンドが例示される。
【0225】
例えば、手順S061において選択した制御対象装置121に対するデータグラム生成情報において、オートインクリメントアドレスやステーションアドレスにアクセスするコマンドを用いて、対象アドレスへのアクセスが可能となっている場合を想定する。この場合のWKC178の期待値は、制御対象装置121を制御システム123から取り除く場合には、0とし、制御対象装置121を制御システム123に追加する場合には、1とすることが例示される。ただし、リードライトコマンドの場合、WKC178の期待値は、1(アクセス先レジスタがリードのみの場合)、2(アクセス先レジスタがリードのみの場合)、3(アクセス先レジスタがリード及びライトをサポートする場合)となる。
【0226】
別の例として、選択した制御対象装置121に対するデータグラム生成情報において、ブロードキャストコマンドを用いて、対象アドレスへのアクセスが可能となっている場合を想定する。この場合のWKC178の期待値は、制御対象装置121を制御システム123から取り除く場合には、制御対象装置121の総数から、選択した制御対象装置121の数を減じた値にし、制御対象装置121を制御システム123に追加する場合は、追加する制御対象装置121の数を加えた値にすることが例示される。ただし、リードライトコマンドの場合、1つの制御対象装置121に対して変更する値は、1(アクセス先レジスタがリードのみの場合)、2(アクセス先レジスタがリードのみの場合)、3(アクセス先レジスタがリード及びライトをサポートする場合)のいずれかとなる。
【0227】
さらに別の例として、一つの制御対象装置121において、本来無視すべきNOPコマンドを応答するように実装している場合を想定する。この場合のWKC178の期待値は、制御対象装置121を制御システム123から取り除く場合は、1を減じた値にし、制御対象装置121を制御システム123に追加する場合は、1を加えた値にすることが例示される。
【0228】
さらに別の例として、選択した制御対象装置121に対するデータグラム生成情報において、ARMWコマンドやFRMWコマンドを用いて、対象のレジスタへのアクセスが可能となっている場合を想定する。この場合のWKC178の期待値は、制御対象装置121を制御システム123から取り除く場合には、選択した制御対象装置121の数を減じた値にし、制御対象装置121を制御システム123に追加する場合には、選択した制御対象装置121の数を加えた値にすることが例示される。
【0229】
また、手順S064におけるデータグラム生成情報の変更においては、オートインクリメントアドレスに対するコマンドであれば、オートインクリメントアドレスを変更してもよい。例えば、ある制御対象装置121を制御システム123から取り除く場合、接続順において、その制御対象装置121以降の制御対象装置121の順番が繰り上がる。このため、取り除く制御対象装置121以降の制御対象装置121のオートインクリメントアドレスを、1ずつ加算することが例示される。
【0230】
同様に、ある制御対象装置121を制御システム123に追加する場合、接続順において、その制御対象装置121以降の制御対象装置121の順番が繰り下がる。このため、追加する制御対象装置121以降の制御対象装置121のオートインクリメントアドレスを、1ずつ減じることが例示される。
【0231】
また、制御対象装置121を制御システム123から取り除く場合において、データグラム生成情報で定義されるデータグラムが、取り除く制御対象装置121のみに対するデータグラムである場合、制御装置120は、
図10に示す手順S012において、生成対象のデータグラムでないと判定すればよい(手順S012のN)。また、制御装置120が複数の通信部159を備える場合、制御装置120は、
図13に示す手順S064において、手順S061で選択された制御対象装置121を接続する通信部159を対象に、当該通信部159から送信されるデータグラムのデータグラム生成情報を変更する。
【0232】
<再接続の例>
一旦、取り除いた制御対象装置121や追加した制御対象装置121を再度元に戻す場合(取り除いた制御対象装置121を再接続する、または追加した制御対象装置121を取り除く場合)、再度、
図13に示す手順を実行することが例示される。
【0233】
<変更対象の制御対象装置121の論理アドレスへの割り当て>
また、制御システム123に対して追加または除去する制御対象装置121が予め判明していれば、
図8に示す手順S001において、論理アドレス割当計画部113は、論理アドレスを割り当てる際に、変更対象の制御対象装置121を論理アドレスの先頭か末尾に集約して割り当てることが例示される。このようにすれば、制御システム123に対して制御対象装置121を取り除いた場合であっても、残る制御対象装置121の入出力が連続した空間に割り当てられている。このため、データグラムを分割する必要やデータグラム上に無効な領域を含む必要がない。
【0234】
同様に、制御システム123に制御対象装置121を追加する場合であっても、追加する制御対象装置121の入出力を含めて連続した空間に割り当てられているため、データグラムを分割する必要やデータグラム上に無効な領域を含む必要がない。したがって、以下に述べるように、論理アドレス空間を効率的に活用でき、通信帯域の利用効率の向上の効果を得ることができる。
【0235】
図25A、
図25Bおよび
図25Cは、それぞれ、
図14B、
図14Cおよび
図14Dを変更した具体例を示す図である。まず、比較例として、
図14Aに示す構成では、制御対象装置121B、C、Eが取り除かれる一方で、各制御対象装置121の論理アドレスは、
図14Bに示すように、接続順に割り当てられている。この場合、システム構成変更前と変更後の両方において、制御対象装置121A、B、C、D、Eに対するデータグラムは、データグラム[1]とデータグラム[2]のままである。
【0236】
ここで、
図25Aに示すように、変更対象の制御対象装置121を、論理アドレス空間の末尾に集約した場合を想定する。具体的には、
図25Aでは、
図14Bの場合と異なり、取り除き対象の制御対象装置121B、C、Eは、領域190aの末尾に割り当てられ、制御対象装置Dの入出力は、制御対象装置121Aの入出力に連続して割り当てられる。
【0237】
さらに、
図8に示す手順S002において、データグラム生成情報計画部111が、
図25Bに示すようなデータグラム生成情報を計画した場合を想定する。
図25Bでは、制御対象装置121A、D、Bの入出力は、データグラム[1]でアクセスされ、制御対象装置121C、Eの入出力は、データグラム[2]でアクセスされる。なお、データグラム[1]を制御対象装置121A、Dの入出力に対するアクセスに割り当て、データグラム[2]を制御対象装置121B、C、Eの入出力に対するアクセスに割り当ててもよい。いずれの構成においても、通信フレーム、データグラムの上限サイズの制約を満足している。
【0238】
このような構成を前提として、比較例の場合と同様に制御対象装置121B、C、Eを取り除いた場合、
図25Bにおいて、データグラム[1]は、そのままでよく(ただしデータサイズを変更してもよい)、データグラム[2]は、除去する制御対象装置121に対するアクセスであるため、無効化できる。つまり、
図14に示したデータグラム構成を用いる場合と比較して、データグラム数を3(データグラム[1]、[2]、[3])から2(データグラム[1]、[3])に削減できる。
【0239】
そのため、Ethernetヘッダ171、ヘッダ176、WKC178、フレーム間ギャップといったオーバーヘッドを削減できる。すなわち、変更対象となる制御対象装置121の入出力を論理アドレス空間の先頭または末尾に連続して割り当てることで、システム構成変更時に通信帯域の利用効率を向上できる。
【0240】
<一時的な運用に向けた最大構成への適用>
また、制御システム123は、用途によって一時的なシステム構成で運用し得る。例えば、制御システム123の立ち上げ時では全ての制御対象装置121が揃わず、部分的な制御対象装置121のみで制御システム123を構成することがあり得る。あるいは、制御システム123の運用後に、性能を改善するための目的や何らかの不具合があり、制御システム123に一時的にセンサを追加してモニタリング、解析したい場合がありえる。
【0241】
このような場合、制御システム123がとり得る最大構成の制御対象装置121群に基づいて、
図8に示す手順を実行することが例示される。すなわち、制御システム情報記憶部110は、最大構成の制御対象装置121群の情報を保持する。そして、データグラム生成情報計画部111、論理アドレス割当計画部113、制御システム構成情報構築部112は、それぞれ最大構成の制御対象装置121群に基づいて、それぞれ、データグラム生成情報の計画、論理アドレスの割り当て、制御システム構成情報の構築を実行する。
【0242】
例えば、制御システム123の立ち上げ時は、一部の制御対象装置121が接続されていない。このような状態で、最大構成の制御対象装置121群に基づいた計画を用いて、
図13に示す手順を実行することは、
図13に示す手順S061において、制御システム123の立ち上げ時に接続されていない制御対象装置121を選択して取り除くことと等価である。一方、制御システム123の運用後に一時的にセンサを追加してモニタリング、解析したい場合は、最大構成の制御対象装置121群となるため(他の制御対象装置121が関係しない場合)、
図8、
図10、
図11、
図12、
図13の手順をそのまま適用できる。
【0243】
このように、最大構成の制御対象装置121群に基づいて計画すれば、制御システム123の立ち上げ時で全ての制御対象装置121が揃っていない場合や、制御システム123の運用後に制御システム123に一時的にセンサを追加してモニタリング、解析したい場合であっても、実施の形態の方式を適用できる。そして、実施の形態の方式と同様の効果を得ることができる。
【0244】
<制御対象装置121の追加または除去の自動認識>
また、制御システム123のオペレータや作業者が、制御対象装置121を手動で追加または除去したことを自動で認識するように構成してもよい。具体的には、
図8に示す手順S002において、データグラム生成情報計画部111は、制御ネットワーク122中のすべての制御対象装置121が応答するコマンドを含むデータグラムのデータグラム生成情報を計画する。該データグラムは、システム構成の変更を自動的に検知するために用いられる。そして、制御装置120は、該データグラムを定期的に送信する。
【0245】
そのようなデータグラムを構成すれば、WKC178の値は、各制御対象装置121を経由するたびに所定値加算されるため、制御装置120での受信時には、制御対象装置121の総数を表す。そこで、制御装置120は、該データグラムを受信するたびにWKC178を観測し、WKC178の値が変化した場合にシステム構成が変更したと判定できる(
図13に示す手順S060のY)。
【0246】
より詳細には、制御装置120は、WKC178の値が増えた場合は、制御対象装置121が新たに追加されたと判定でき、WKC178の値が減った場合は、制御対象装置121が取り除かれたと判定できる。このような場合、手順S061において、制御対象装置選択部160は、オートインクリメントアドレスまたは事前に定義した制御対象装置121ごとのステーションアドレスにアクセスするコマンドを用いて、1台ずつ制御対象装置121にアクセスし、変化した制御対象装置121を特定する。以降は、特定された制御対象装置121に基づいて、手順S062以降の手順を実行すればよい。
【0247】
なお、この場合、制御対象装置121が追加または取り除かれたにも関わらず、受信したWKC178の値と期待値との比較を継続すると、異常判定部163によって異常と判定される。このため、制御対象装置121の追加または除去を自動認識する場合は、手順S060の直後に手順S063を実行することで、WKC178の比較を実行しないように構成することが例示される。あるいは、異常判定部163は、物理層でのリンク接続は確認できるが、論理的な通信が確立しない場合に、異常と判定してもよい。
【0248】
<複数の制御対象装置121の一括指定>
なお、手順S061において、制御対象装置121を選択する際、予め、複数の制御対象装置121をひと纏めのグループとし、グループ単位で選択してもよい。あるいは、構成する制御対象装置121の組み合わせ毎に区別されるシステム構成のパターンを予め定義しておき、手順S061において、該パターン群の中から1つを選択してもよい。いずれも、単独の制御対象装置121を選択して手順S062から手順S066を実行する場合の組み合わせとして実行できる。
【0249】
または、手順S062、S063、S065、S066のいずれか、または複数の手順を、グループやパターンに対して一括して実行し、手順S064を含む、残りの処理を、グループやパターンを構成する制御対象装置121ごとに実行してもよい。あるいは、制御対象装置121の選択において、このようなグループやパターンの定義内で、他のグループやパターンを参照するような階層構造を構成してもよい。
【0250】
具体的な実装例として、制御対象装置121の選択方法を、制御システム管理装置125や制御装置120のHMIや設定ファイルで実現し、それらのHMIや設定ファイルにおいて、このようなグループ定義、パターン定義を可能とすることが例示される。また、このようなグループ定義、パターン定義にXMLやJSONといったフォーマットを用いることが例示される。また、これらのグループ、パターンには、制御対象装置121の選択情報のみならず、制御対象装置121間の接続やネットワークトポロジを定義する情報を含めてもよい。
【0251】
このようなグループ、パターンに含まれる制御対象装置121を論理アドレス空間に割り当てる場合は、先頭のアドレス位置を固定せずに、各制御対象装置121の論理アドレス空間へ割り当てる際の相対位置のみを定義してもよい。この場合、制御対象装置選択部160は、手順S061においてグループ、パターンを選択する際に、グループ、パターンの先頭のアドレス位置を決定すればよい。
【0252】
以上のグループ、パターンといった複数の制御対象装置121の選択、設定に関して、
図13に示す手順S061のみならず、
図8に示す手順S002におけるデータグラム生成情報計画部111や論理アドレス割当計画部113による計画においても同様の仕組みを適用してもよい。すなわち、手順S002において、データグラム生成情報計画部111がデータグラム生成情報を計画する際に、グループ、パターンで指定される複数の制御対象装置121に対するデータグラムをひと纏めにし、グループ、パターン定義に含めてもよい。
【0253】
例えば、グループ、パターンに含まれる制御対象装置121を、論理アドレス空間上の連続する領域に割り当て、これにアクセスする論理アドレスコマンド(例えば、LRD)の部分定義を、グループ、パターン定義に含めることが例示される。そのような部分定義としては、データグラムのヘッダ176に含まれるサイズ182や、受信時のWKC178の期待値が例示される。アドレス181については、データグラム生成情報の計画時に定まるため、グループ、パターン定義には含めないことが例示される。
【0254】
また、
図13における手順S060で例示したように、システム構成の変更が所定タイミングや所定期間といった所定の条件を満足したときに自動で実行される場合は、変更後のシステム構成を、所定のグループやパターン定義としてもよい。このような複数の制御対象装置121に対する定義により、個別の部分的な構成を用いて制御システム123全体の構成を定義できる。その結果、制御システム123のシステム構成に関するエンジニアリング工数を短縮でき、また、部分定義の再利用によりシステム構成に関する知見、ノウハウを蓄積でき、システム定義の効率化の効果を得ることができる。
【0255】
<第1の実施の形態による主要な効果>
以上、第1の実施の形態の方式を用いることで、代表的には、通信性能を向上させながら、制御システムへの要求に応じてシステム構成を変更可能な、システム可変性に優れた制御システムを実現できる。詳細に説明すると、まず、論理アドレス空間を用いれば、
図9や
図14に示すように、複数の制御対象装置121に対して一括して通信できる。例えば、
図9Cでは、制御対象装置121A、B、Cに対してデータグラム[1]のみでアクセスできる。
【0256】
このようにデータグラムを集約できれば、ヘッダ176やWKC178といった通信上のオーバーヘッドを削減でき、通信帯域の利用効率向上や通信周期の短縮といった性能向上が可能になる。場合によっては、通信フレーム数を削減でき、Ethernetヘッダ171やFCS173にともなう通信上のオーバーヘッドを低減できる。
【0257】
したがって、以上のように構成すれば、論理アドレスを活用して制御通信の性能を向上できる。さらに、その上で、システム構成の変更にも対応できる。すなわち、制御システム構成情報に基づいて、WKC178の期待値といったデータグラム生成情報を変更できるため、システム構成の変更後であっても、異常判定部163による異常判定や再送部164による再送を適切に実行できる。このように、制御システム123の構成変更に応じて、適切に異常判定、異常通知、再送処理をすることで、制御システム123を高信頼化できる。
【0258】
また、システム構成変更にともなって、適切にWKC178といったデータグラム生成情報を変更しているため、通信経路の異常と、システム構成の変更にともなう制御対象装置121の数の変更を区別でき、通信経路の異常を、誤判定することなく検出できる。すなわち、システム構成の変更にともないWKC178の期待値を変更しない場合には、受信したWKC178の値と期待値とに不一致が生じるため、通信経路に異常が生じたと誤判定され得る。
【0259】
また、論理アドレスを用いて制御対象装置121にアクセスする場合、制御対象装置121のネットワーク上の位置に依存せずに、制御対象装置121と通信できる。このため、例えば、制御対象装置121間の通信ケーブルの差し替えといった通信トポロジの変化、制御対象装置121の接続順の変化があったとしても、論理アドレスの利用による制御通信の性能向上と、システム構成の変化への対応とを両立できる。
【0260】
また、論理アドレス空間への制御対象装置121の入出力の割り当てに際しては、自由度があるため、制御システム123の要求に応じて柔軟に割り当てることができる。実施の形態では、論理アドレス空間への制御対象装置121の入出力の割り当てを制御システム構成情報として管理するため、特定の論理アドレス空間の割り当てに限定されず、論理アドレス空間の割り当ての自由度、柔軟性を維持しながら、制御システムの変更を可能としている。
【0261】
制御システム123の構成変更の柔軟性を確保しながら、論理アドレス空間の活用による通信性能の向上により、制御通信の周期を短縮できる。制御通信の周期を短縮できれば、制御システム123の制御周期を短縮でき、結果として制御システム123の制御性能を向上できる。また余剰の通信帯域を活用して、設定や状態取得などの他の通信を実行でき、制御対象装置121、制御システム123の可視化や、IoTの活用による保守、診断に活用できる。したがって、制御システム123の運用を高度化し、制御システムとしての性能や稼働率を向上できる。
【0262】
(第2の実施の形態)
第2の実施の形態では、第1の実施の形態と異なり、通信経路の異常判定や経路冗長化に関する形態について説明する。
<経路冗長化における制御装置120のハードウェア構成>
図15は、第2の実施の形態による制御用通信システムにおいて、
図1における制御装置120のハードウェア構成例を示すブロック図である。
図15に示す制御装置120では、
図2に示した構成例と異なり、経路冗長化に対応するため、通信制御IC102は、複数(この例では2つ)のPHY103a、bに接続される。
【0263】
<経路冗長化における制御装置120の機能構成>
図16は、
図15における制御装置120の機能構成例を示す機能ブロック図である。
図16では、
図3の構成例に対して、経路冗長化通信を制御する機能部である冗長経路制御部200が設けられる。冗長経路制御部200は、通信フレーム生成部153から転送された通信フレームを複製して送信部15
5aと送信部15
5bに送信するか、単に送信部15
5aに送信する。
【0264】
また、冗長経路制御部200は、受信部158aと受信部158bから受信した通信フレームを、通信フレーム分解部157または送信部155bに転送する。また、冗長経路制御部200は、必要に応じて、受信部158aと受信部158bから受信した内容を合成する。合成とは、例えば、LRD(論理アドレスリード)やBRD(ブロードキャストリード)で受信した内容の論理和をとることを意味する。
【0265】
冗長経路制御部200は、CPU101またはCPU101上で動作するアプリケーション、通信制御IC102のいずれか、または複数で実装されることが例示される。
図16に示す機能構成を用いることで、詳細は後述するが、制御ネットワーク122における通信経路の異常の有無や、異常の発生箇所を判定し、冗長化された通信経路を用いて通信の高信頼化を図れる。冗長化経路を用いた通信方式は、以下の
図18と
図19に示すように2つの方式がある。
【0266】
<複製方式による冗長化通信>
図18Aおよび
図18Bは、第2の実施の形態による制御用通信システムにおいて、冗長化経路を用いた通信方式の一例を説明する概略図である。
図18では、冗長経路制御部200は、通信フレーム生成部154から転送された通信フレームを複製して、送信部155aと送信部155bの両方から送信する。
【0267】
図18Aに示す経路正常時では、送信部155aから送信された通信フレームは、制御対象装置121a、b、cを順に経由して、受信部158bで受信される。また、送信部155bから送信された通信フレームは、制御対象装置121c、b、aを順に経由して、受信部158aで受信される。一方、
図18Bに示す経路異常時では、送信部155aから送信された通信フレームは、制御対象装置121aで折り返されたのち、受信部158aで受信される。送信部155bから送信された通信フレームは、制御対象装置121bで折り返されたのち、受信部158bで受信される。
【0268】
<転送方式による冗長化通信>
図19Aおよび
図19Bは、第2の実施の形態による制御用通信システムにおいて、冗長化経路を用いた別の通信方式の一例を説明する概略図である。
図19では、冗長経路制御部200は、通信フレーム生成部154から転送された通信フレームを送信部155aから送信し、経路の状態に応じて、受信時の通信フレームの転送先を切り替える。
【0269】
図19Aに示す経路正常時では、送信部155aから送信された通信フレームは、制御対象装置121a、b、cを順に経由して、受信部158bで受信される。冗長経路制御部200は、受信部158bで受信した通信フレームを送信部155bに転送する。その後、送信部155bから送信された通信フレームは、制御対象装置121c、b、aを順に経由して、受信部158aで受信される。冗長経路制御部200は、受信部158aで受信した通信フレームを、通信フレーム分解部157に転送する。なお、受信部158bで受信した通信フレームは、すべての制御対象装置121のEPUを通過している。このため、冗長経路制御部200は、当該通信フレームを送信部155bに転送せずに、通信フレーム分解部157に転送してもよい。
【0270】
一方、
図19Bに示す経路異常時では、送信部155aから送信された通信フレームは、制御対象装置121aで折り返されたのち、受信部158aで受信される。冗長経路制御部200は、受信部158bで受信した通信フレームを送信部155bに転送する。送信部155bから送信された通信フレームは、制御対象装置121bで折り返されたのち、受信部158bで受信される。冗長経路制御部200は、受信部158bで受信した通信フレームを、通信フレーム分解部157に転送する。
【0271】
なお、冗長経路制御部200は、通信フレームを識別するための情報を記憶し、該通信フレームに対して実施した処理(送信部155a、送信部155bでの送信、受信部158a、受信部158bでの受信、送信部155bへの転送)とあわせて記憶することで、該通信フレームを受信した際に実施すべき処理を判定できる。通信フレームを識別するための情報として、通信フレーム上の情報(サイズ、データグラムの数、各データグラムのコマンドなどのパラメータ等)や、通信フレーム生成部154から冗長経路制御部200に転送した時刻や、送信部155a、送信部155bから送信した時刻や、受信部158a、受信部158bで受信した時刻のいずれか、または複数が例示される。
【0272】
<経路冗長化における送信処理手順>
経路冗長化の際の制御装置120における送信処理の実行手順は、
図10とほぼ同様である。ただし、
図18に示す複製方式の場合、手順S019において、冗長経路制御部200は、通信フレーム生成部154から転送された通信フレームを複製して、送信部155aと送信部155bの両方に転送する。そして、送信部155aと送信部155bは、共に、転送された通信フレームを送信する。
【0273】
一方、
図19に示す転送方式の場合、手順S019において、冗長経路制御部200は、送信部155aと送信部155bのいずれか一方を選択し、選択した送信部155を介して通信フレームを送信する。このとき、冗長経路制御部200は、送信部155aと送信部155bのいずれか一方を常に固定して選択してもよいし、過去の通信量(送信したパケットの総サイズ)や送信回数、または前回送信に用いた送信部155とは異なる送信部155というように、稼働実績に基づいて選択してもよい。
【0274】
このとき、冗長経路制御部200は、送信するデータグラムまたは通信フレームに対して実施する処理(送信部155a、送信部155bでの送信)の記録として、選択した送信部155の識別子を、該データグラムまたは通信フレーム上に反映させてもよい。例えば、Ethernetヘッダ171の宛先MACアドレスや、先頭データグラムのindex180等に実施処理の情報を反映させることが例示される。例えば、送信部155aでの送信有無、送信部155bでの送信有無の情報は、1ビットで表すことができ、これらのいずれか、または両方をデータグラムまたは通信フレーム上に反映させることが例示される(この際に情報“1”が該当事象の有りを示す)。
【0275】
<経路冗長化における受信処理手順>
経路冗長化の際の制御装置120における受信処理の実行手順は、
図11とほぼ同様である。ただし、手順S030において、受信部158aまたは受信部158bは、通信フレームを受信した際に、冗長経路制御部200を経由して、通信フレームを通信フレーム分解部157に転送する。
【0276】
図18に示す複製方式の場合は、受信部158a、受信部158bの両方で通信フレームを受信してから、手順S031に進むことが例示される。このとき、冗長経路制御部200は、受信した通信フレーム内のデータグラムのデータ領域を論理和によって合成し、または、それぞれのWKC178を合算して、通信フレーム分解部157に転送することが例示される。より詳細には、冗長経路制御部200は、受信データグラムのコマンドによって通信フレームの処理を変更してもよく、例えば、LRDやBRDコマンドであれば論理和で合成し、APRDコマンドなどのその他のコマンドであれば合成せずに通信フレーム分解部157に順次転送してもよい。
【0277】
WKC178に関しても同様に、冗長経路制御部200は、LRDやBRDなどの複数のスレーブにアクセスし得るコマンドであればWKC178を合算し、ARPDコマンドのように単一のスレーブにアクセスするコマンドであればデータグラムのWKC178をそのまま転送してもよい。あるいは、冗長経路制御部200は、先着した通信フレームのみ、または後着した通信フレームのみを選択して通信フレーム分解部157に転送してもよい。なお、これらのデータグラムごとの合成(論理和や通信フレームの選択)は、通信フレーム分解部157やデータ記憶部151が実行してもよい。
【0278】
図19に示す転送方式の場合は、
図11に示す手順S030において、受信部158a、受信部158bのいずれかで通信フレームを受信した場合に手順S031に進めてもよい。また、
図19に示す転送方式の場合、手順S039または手順S043のいずれか、または両方において、冗長経路制御部200は、受信した通信フレームに対して実施した処理(受信部158a、受信部158bでの受信)の記録として、受信した受信部158の識別子を該データグラムまたは通信フレーム上に反映させてもよい。
【0279】
例えば、Ethernetヘッダ171の宛先MACアドレスや、先頭データグラムのindex180等に実施処理の情報を反映させることが例示される。例えば、受信部155aの受信有無、受信部155bの受信有無の情報は、1ビットで表すことができ、これらのいずれか、または両方を通信フレーム上に反映することが例示される(この際に情報“1”が該当事象の有りを示す)。
【0280】
<異常判定と対応手順>
図17は、
図16における異常判定部163による異常判定処理と、再送部164および冗長経路制御部200による異常対応処理の実行手順の一例を示すフローチャートである。
図17に示す手順は、
図11における手順S035、S041、S042に対応する。
図17に示す手順は、基本的には
図12とほぼ同様であるが、
図12とはいくつかの手順の詳細が異なる。
【0281】
まず、
図18に示す複製方式を用いる場合を想定する。この場合、
図17に示す手順S051や手順S052での異常判定において、異常判定部163は、受信部158aと受信部158bのそれぞれで受信したデータグラムのWKC178の値を合算した値と、データグラム生成情報の期待値とを比較して、不一致の場合に異常と判定する。次に、
図19に示す転送方式を用いる場合を想定する。この場合、手順S051や手順S052での異常判定において、異常判定部163は、受信したデータグラムまたは通信フレームに対する実施処理に基づいて異常を判定することが例示される。
【0282】
具体例として、受信部158aで通信フレームを受信した際に、その通信フレームに、送信部155aから送信された後に受信部158bで受信され、その後、送信部155bから送信されたことを表す情報が記憶されていた場合、異常判定部163は、
図19Aに示す正常経路で処理されたと判定できる。一方で、受信部158aで通信フレームを受信した際に、その通信フレームに、送信部155aから送信されたことのみを表す情報が記憶されていた場合、異常判定部163は、
図19Bに示す経路異常で処理されたと判定でき、異常を判定できる。
【0283】
また、受信部158aで通信フレームを受信した際に、その通信フレームに、送信部155aから送信され、受信部158aで受信され、送信部155bから送信されたことを表す情報が記憶されていた場合を想定する。この場合、異常判定部163は、
図19Bに示す経路異常が一時的な発生であり、送信部155bから送信した際に、通信経路が正常となり、受信部158aで受信したと判定できる。このような場合、制御対象装置121b、121cと通信できていないと判定できるため、該通信フレームを破棄する、または該通信フレームを再送する(
図17に示す手順S055)といった処理を実行することが例示される。
【0284】
また、
図17では、
図12と異なり、手順S054において、再送すると異常判定部163が判定した場合(手順S054のY)、再送部164を介して冗長経路制御部200は、送信部155を選択する(手順S070)。例えば、
図18に示す複製方式では、冗長経路制御部200は、送信部155aと送信部155bの両方を選択する。
【0285】
一方、
図19に示す転送方式では、冗長経路制御部200は、以下のような場合に、
図10に示す手順S019と同様にして送信部155を選択してもよい。
・データグラム受信時のWKC178の値が、データグラム生成情報に定義する期待値と不一致の場合
・受信したデータグラムのフォーマットが、通信プロトコルで定義するフォーマットに対して不整合がある場合
・タイムアウト値を経過した場合
・受信した通信フレームにおけるFCS173を用いた巡回冗長検査において異常が検知された場合
【0286】
または、冗長経路制御部200は、以下のような場合に、
図10に示す手順S019と同様にして送信部155を選択してもよい。
・データ記憶部151の領域にアクセスした際の通信異常を検知した場合
・データ記憶部151を実現するメモリ104、不揮発性記憶媒体105でのアクセス異常を検知した場合
・機能部の演算手段や記憶手段として構成している通信制御IC102、メモリ104、不揮発性記憶媒体105でのソフトエラーを検知した場合
・
図11における手順S038で異常等が発生した場合
【0287】
あるいは、冗長経路制御部200は、受信したデータグラムまたは通信フレームに対する実施処理に基づいて、送信部155を選択することが例示される。例えば、受信部158aで通信フレームを受信した際に、その通信フレームに送信部155aからの送信のみの記録があるか、または受信部158bでの受信記録がない場合、異常判定部163または冗長経路制御部200は、
図19Bに示す経路異常と判定できる。そのため、冗長経路制御部200は、送信部155bを選択して(
図17に示す手順S070)、該通信フレームを再送する(
図17に示す手順S055)。
【0288】
また、例えば、受信部158aで通信フレームを受信した際に、その通信フレームに、送信部155aから送信された後に、受信部158aで受信され、その後、送信部155bから送信されたと判断できる記録があった場合を想定する。この場合、異常判定部163または冗長経路制御部200は、
図19Bに示す経路異常が一時的な発生であり、送信部155bから送信した際に、通信経路が正常となり、受信部158aで受信したと判定できる。
【0289】
これに伴い、制御対象装置121b、121cと通信できていないと判定できるため、該通信フレームを破棄する、該通信フレームを再送するといった処理を実行することが例示される。この際に、冗長経路制御部200は、再送で用いる送信部155を、
図10に示す手順S019と同様に選択することが例示される。このように構成することで、経路異常が一時的であったとしても、制御ネットワーク122上に通信フレームがあふれること(フラッディングの発生)を防止でき、安定して制御システム123を運用できる。
【0290】
<異常箇所の判定>
異常箇所を判定するため、
図8に示す手順S002において、データグラム生成情報計画部111は、制御ネットワーク122中のすべての制御対象装置121が応答するコマンドを含むデータグラムのデータグラム生成情報を計画するとよい。すべての制御対象装置121が応答するコマンドを含むデータグラムを構成すれば、各制御対象装置121を経由するたびにWKC178の値が所定値加算される。これにより、異常判定部163は、経路異常時の異常箇所を判定できる。以下、すべての制御対象装置121が応答するコマンドを含むデータグラムを異常検知用データグラムと呼び、異常箇所の判定方法の詳細について説明する。
【0291】
異常検知用データグラムのWKC178の期待値は、制御システム123を構成する制御対象装置121の総数と同じとなる。異常検知用データグラムとしては、制御対象装置121が共通で有するレジスタへのブロードキャストコマンド(BRD、BWR、BRW)や、すべての制御対象装置121に設定した、共通の論理アドレス割り当てに対する論理アドレスアクセスコマンド(LRD、LWR、LRW)などが例示される。
【0292】
例えば、
図18Aに示す経路正常時において、送信部155aから送信された通信フレームが受信部158bで受信された場合、異常検知用データグラムのWKC178の値は、3(リードライトコマンドではなく、リードまたはライトコマンドの場合)である。また、送信部155bから送信された通信フレームが受信部158aで受信された場合、異常検知用データグラムのWKC178の値は、0である。
【0293】
一方、
図18Bに示す経路異常時において、送信部155aから送信された通信フレームが受信部158aで受信された場合、異常検知用データグラムのWKC178の値は、制御対象装置121aが応答するため1(リードライトコマンドではなく、リードまたはライトコマンドの場合)である。また、送信部155bから送信された通信フレームが受信部158bで受信された場合、異常検知用データグラムのWKC178の値は、制御対象装置121b、cが応答するため2である。
【0294】
また、
図19Aに示す経路正常時において、送信部155aから送信された通信フレームが受信部158bで受信された場合、異常検知用データグラムのWKC178の値は、3(リードライトコマンドではなく、リードまたはライトコマンドの場合)である。一方、
図19Bに示す経路異常時において、送信部155aから送信された通信フレームが受信部158aで受信された場合、異常検知用データグラムのWKC178の値は、制御対象装置121aが応答するため1(リードライトコマンドではなく、リードまたはライトコマンドの場合)である。その後、受信部158aで受信した通信フレームを送信部155bに転送して送信し、送信された通信フレームが受信部158bで受信された場合、異常検知用データグラムのWKC178の値は、制御対象装置121b、cが追加で応答するため3である。
【0295】
すなわち、
図17に示す手順S051において、
図18に示す複製方式の場合、異常判定部163は、受信部158aと受信部158bで受信した異常検知用データグラムのWKC178の値に基づいて、経路異常箇所を判定できる。例えば、
図18Bの場合、受信部158aと受信部158bで受信した異常検知用データグラムのWKC178の値は、それぞれ1と2であるため、経路異常箇所は制御対象装置121aと制御対象装置121bの間の通信路であると判定できる。
【0296】
同様に、
図17に示す手順S051において、
図19に示す転送方式の場合、異常判定部163は、受信部158aで受信した異常検知用データグラムのWKC178の値に基づいて、経路異常箇所を判定できる。例えば、
図19Bの場合、受信部158aで受信した異常検知用データグラムのWKC178の値は1であるため、経路異常箇所は制御対象装置121aと制御対象装置121bの間の通信路であると判定できる。
【0297】
さらに、複製方式におけるWKC178の値の合計数、あるいは転送方式における、転送後のWKC178の値を用いて、2箇所以上の経路異常または制御対象装置121の障害を判定できる。
図20は、
図18に示す複製方式において、複数箇所の経路異常または制御対象装置121の障害が発生した場合の通信経路の一例を示す図である。
図20では、2箇所の経路異常、または、一つの制御対象装置121bの障害が生じている。
【0298】
この場合、受信部158a、および受信部158bで受信した異常検知用データグラムのWKC178の値は、それぞれ、制御対象装置121aの応答による1、および制御対象装置121cの応答による1である。このため、WKC178の値の合計値は、2となる。制御装置120において事前に制御対象装置121の総数を3と把握することにより、
図20の場合、その総数と、受信したWKC178の合計値とは、不一致となる。
【0299】
このため、異常判定部163は、2箇所以上の経路異常または一つの制御対象装置121の障害と判定できる。さらに、異常判定部163は、WKC178の値に基づき、異常の発生箇所を、制御対象装置121aと制御対象装置121b間の経路、および制御対象装置121bと制御対象装置121c間の経路からなる2箇所の経路か、または、制御対象装置121bの障害か、あるいは、これらの両方と判定できる。
【0300】
受信部158a、受信部158bで受信した異常検知用データグラムのWKC178の値は、それぞれ、送信部155a、送信部155bから送信した異常検知用データグラムがEPUを経由した数である。このため、このように、各受信部158で受信した異常検知用データグラムのWKC178の値によって、それぞれの送信部155から到達可能な制御対象装置121を判定でき、ひいては、経路異常の発生箇所または通信ができなかった制御対象装置121を特定できる。
【0301】
図21は、
図19に示す転送方式において、複数箇所の経路異常または制御対象装置121の障害が発生した場合の通信経路の一例を示す図である。
図21では、
図20の場合と同じ箇所に経路異常または制御対象装置121bの障害が生じている。この場合、受信部158a、および受信部158bで受信した異常検知用データグラムのWKC178の値は、それぞれ、制御対象装置121aの応答による1、および制御対象装置121cの追加の応答による2となる。
【0302】
制御装置120において事前に制御対象装置121の総数を3と把握することにより、
図21の場合、その総数と、受信部158bで受信したWKC178の値とは、不一致となる。このため、異常判定部163は、2箇所以上の経路異常または一つの制御対象装置121の障害と判定できる。さらに、異常判定部163は、WKC178の値に基づき、異常の発生箇所を、制御対象装置121aと制御対象装置121b間の経路、および制御対象装置121bと制御対象装置121c間の経路からなる2箇所の経路か、または、制御対象装置121bの障害か、あるいは、これらの両方と判定できる。
【0303】
受信部158aで受信した異常検知用データグラムのWKC178の値は、送信部155aから送信されたデータグラムがEPUを経由した数である。一方、受信部158bで受信した異常検知用データグラムのWKC178の値は、送信部155aから送信されたデータグラムがEPUを経由した数と、送信部155bから送信されたデータグラムがEPUを経由した数の合計である。このため、このように、各受信部158で受信したデータグラムのWKC178の値によって、それぞれの送信部155から到達可能な制御対象装置121を判定でき、ひいては、経路異常の発生箇所または通信ができなかった制御対象装置121を特定できる。
【0304】
なお、
図17に示す手順S056において、異常判定部163は、通信経路の異常が生じたと判定した場合に、その異常に関する情報を演算部150に通知する。異常に関する情報として、
図12で述べた手順S056で通知する情報に加えて、経路異常が生じたと判定された通信経路、具体的には、通信経路に隣接する制御対象装置121の識別子、または障害が生じたと判定された制御対象装置121の識別子が例示される。
図20または
図21に示す例では、制御対象装置121bの識別子が演算部140に通知される。
【0305】
<制御装置120に接続する通信経路で異常が生じた場合>
図22Aは、
図18に示す複製方式において、制御装置120に隣接する通信経路に異常が発生した場合の通信経路の一例を示す図である。
図22Aでは、制御装置120と、制御対象装置121cとの間に経路異常が生じている。このような経路異常が生じた場合、通信部159bにおいて通信経路の異常を検知することで、送信部155bは、通信フレームを送信せず、内部にループバックすることとなる。その結果、受信部158bで受信したことと同様となる。したがって、通信経路の受信部158aで受信する異常検知用データグラムのWKC178の値は、3となり、受信部158bで受信する異常検知用データグラムのWKC178の値は、0となる。
【0306】
一方、制御ネットワーク122の通信経路に異常がなければ、受信部158aは、
図18Aに示すように、送信部155bから送信された異常検知用データグラムを受信するため、受信部158aで受信する異常検知用データグラムのWKC178の値は、0である。異常判定部163は、
図22Aでは、当該異常検知用データグラムのWKC178の値が非0となっているため、通信経路に異常が生じていると判定できる。その一方で、制御対象装置121の総数が3であり、受信部158aで受信した異常検知用データグラムのWKC178の値が3であるため、異常判定部163は、送信部155aから送信された通信フレームはすべての制御対象装置121のEPUを経由したと判定できる。
【0307】
したがって、このような場合は、
図11に示す手順S030において、冗長経路制御部200は、受信部158bでの通信フレームの受信を待たずに手順S031へ処理を進めてよい。そのため、冗長経路制御部200は、受信した通信フレーム内のデータグラムのデータ領域を論理和によって合成せず、また、それぞれのデータグラムのWKC178の値を合算せず、通信フレームを通信フレーム分解部157に転送することが例示される。
【0308】
図22Bは、
図19に示す転送方式において、制御装置120に隣接する通信経路に異常が発生した場合の通信経路の一例を示す図である。
図22Bでは、
図22Aと同じ箇所に経路異常が生じている。このような経路異常が生じた場合、受信部158aで受信する異常検知用データグラムのWKC178の値は、3となる。一方、受信した通信フレームに関連付けられた処理の履歴に基づき、
図19Aに示すような送信部155bへの転送、送信部155bからの送信、受信部158bでの受信がなければ、通信フレームを送信部155aから送信後に受信部158aで受信していると判定できる。
【0309】
このため、異常判定部163は、通信経路に異常が生じていると判定できる。その一方で、制御対象装置121の総数が3であり、受信部158aで受信した異常検知用データグラムのWKC178の値が3であるため、異常判定部163は、送信部155aから送信された通信フレームはすべての制御対象装置121のEPUを経由したと判定できる。
【0310】
したがって、このような場合、
図17に示す手順S053において、異常判定部163は、再送不要と判定し(手順S053のN)、送信部155bに転送しなくてよい。すなわち、
図17に示す手順S056において、異常判定部163は、経路異常の発生箇所となる制御装置120に隣接する通信経路の情報を演算部150等に通知し得る。ただし、異常判定部163は、
図11に示す手順S035において、受信データグラムに異常がないと判定して(手順S035のN)、手順S036に進み、その後の手順S037、S038において、受信データをデータ記憶部151に記録する処理が行われてもよい。
【0311】
<システム構成変更時の制御対象装置121総数の変更>
以上のように、経路冗長化においては、制御システム123における制御対象装置121の総数によって、判定や処理の内容が変わり得る。したがって、制御装置120において、データグラム生成情報記憶部152、制御システム構成情報記憶部162、あるいは図示しない機能部において、制御対象装置121の総数を保持することが例示される。
【0312】
あわせて、
図13に示すシステム構成の変更手順において、制御対象装置選択部160は、手順S061にて、変更する制御対象装置121を選択し、データグラム生成情報変更部161は、手順S064にて、制御対象装置121の総数情報を変更することが例示される。この際には、複数の制御対象装置121を指定するグループ、パターン定義の中に、グループ、パターンに含まれる制御対象装置121の総数情報を含ませることが例示される。この場合、制御対象装置選択部160は、手順S061において、グループ、パターンを選択した際に、この総数情報を用いて、制御対象装置121の総数を変更すればよい。
【0313】
このように構成すれば、システム構成変更時であっても、制御対象装置121の総数を変更することで、制御対象装置121の総数に応じた経路冗長化を適切に実行でき、制御システム123を高信頼化できる。制御システム123の高信頼化により、稼働率の向上、制御システム123による生産性の向上といった効果を得ることができる。
【0314】
<第2の実施の形態による主要な効果>
以上、第2の実施の形態の方式を用いることで、第1の実施の形態で述べた各種効果と同様の効果が得られる。これに加えて、WKC178の値に基づいて異常、障害の発生箇所を特定でき、特に、システム構成を変更した場合であっても、制御対象装置121の総数を変更することで、異常、障害の発生箇所を特定できる。その結果、システム可変性に優れた制御システムを実現できる。
【0315】
(第3の実施の形態)
第3の実施の形態では、第1の実施の形態、第2の実施の形態と異なり、同じ論理アドレスを複数の制御対象装置121に割り当て、システム構成変更時に該論理アドレスを変更する形態について説明する。前提となる問題点として、経路冗長化を用いる場合、異常の状況に応じて経路が変わるため、時刻同期が困難となり得る。このため、異常発生時にも時刻同期を実現でき、さらに、システム構成の変更にも対応可能な仕組みが求められる。
【0316】
<経路冗長化と時刻同期の両立>
図23は、第3の実施の形態による制御用通信システムの前提として、経路冗長化を適用した上で、複数の制御対象装置121に対して、同じ論理アドレスを割り当ててリードする場合の動作例を示す概略図である。
図23では、
図19に示す転送方式が適用される。論理アドレス空間は、複数の制御対象装置121に対して、同じアドレスを割り当ててリードすると、最後にアクセスした論理アドレスの情報が読み込まれるという特徴がある。
【0317】
図23において、制御対象装置121a、b、cは、同じ論理アドレス0x10000000から始まる4byteの空間に割り当てられ、それぞれ、異なるデータ0、1、2を保持している。また、
図23では、制御対象装置121aと制御対象装置121bの間の通信経路に異常が生じている。この場合、送信部155aから送信された論理アドレス0x10000000へのリードコマンドは、受信部158aで受信され、
図4におけるデータ領域177には、制御対象装置121aが保持するデータ0が格納される。
【0318】
図24A、
図24Bおよび
図24Cは、
図23に示す論理アドレスの仕組みを利用して、システム構成の変更に対応する方式の一例を説明する概略図である。
図24Aおよび
図24Bに示す制御システム123では、
図23の場合と異なり、各制御対象装置121は、システム構成に応じた経路異常時の補正遅延情報を別の論理アドレスに保持する。そして、制御装置120は、システム構成変更時に、補正遅延情報を取得するデータグラム生成情報のアドレス181を変更することで迅速に対応する。
【0319】
各制御対象装置が保持する補正遅延情報は、隣接する制御対象装置121との通信経路が正常である場合の遅延と、隣接する制御対象装置121との通信経路に異常が生じている場合の遅延との差分である。例えば、制御対象装置121aが保持する補正遅延情報は、
図19Aに示すように、通信フレームが制御対象装置121aのEPUから制御対象装置121bのEPUまで伝搬する際の通信遅延と、
図24Aに示すように、通信フレームが制御対象装置121aのEPUによって折り返されてから、受信部158aおよび送信部155bを介して制御対象装置121bのEPUまで伝搬する際の通信遅延との差分である。このような補正遅延情報は、予め算出可能な情報でもある。
【0320】
各制御対象装置121で補正遅延情報を保持することで、経路異常時に受信部158aで受信されたLRDコマンドのデータグラムには、補正遅延情報が格納される。冗長経路制御部200は、その補正遅延情報を用いて、DCプロトコルにおける時刻配信用データグラムの時刻基準となる制御対象装置121の基準時刻を補正することにより、経路異常箇所以降の制御対象装置121に対する経路異常による遅延増加の影響を相殺できる。この際、制御装置120は、システム構成に応じて、各制御対象装置121の補正遅延情報を保持する論理アドレスを変更する。
【0321】
図24Aでは、制御システム123が制御対象装置121a、b、cで構成されており、その場合の補正遅延情報を論理アドレス0x10000000に保持している。Ca1は制御対象装置121aが保持する補正遅延情報、Cb1は制御対象装置121bが保持する補正遅延情報、Cc1は制御対象装置121aが保持する補正遅延情報である。
【0322】
ここで、システム構成を変更し、制御対象装置121cを取り除いた場合の例が、
図24Bに示される。
図24Bにおいて、制御対象装置121aと制御対象装置121bの間の通信経路で異常が起きた場合の制御対象装置121aから制御対象装置121bへの通信遅延は、
図24Aに比べて、制御対象装置121cを経由する時間だけ短縮される。つまり、補正遅延情報は、
図24Aと
図24Bとで変化するように、システム構成に応じて変わり得る。
【0323】
そこで、制御対象装置121a、bで構成される
図24Bの構成において、制御対象装置121a、bは、補正遅延情報を論理アドレス0x10000004に保持している。Ca2は制御対象装置121aが保持する補正遅延情報、Cb2は制御対象装置121bが保持する補正遅延情報である。
図24Bに示す構成では、制御対象装置121cが取り除かれるため、制御対象装置121cは補正遅延情報を保持しない。
【0324】
このように構成することで、
図13に示す手順S064において、データグラム生成情報変更部161は、システム構成の変更に応じてデータグラム生成情報を変更する際、
図24Cに示すように、アドレス181を変更すればよい。具体的には、データグラム生成情報変更部161は、論理アドレスを0x10000000から0x10000004に変更する。この際には、システム構成に応じた補正時刻情報の格納先論理アドレスを、
図24Cに示すようなデータグラム生成情報、および
図9B、
図9Dに示すような制御システム構成情報として予め記憶することが例示される。
【0325】
<第3の実施の形態による主要な効果>
以上、第3の実施の形態の方式を用いることで、第1の実施の形態および第2の実施の形態で述べた各種効果と同様の効果が得られる。これに加えて、主に、システム構成を変更する際であっても、ただちに補正遅延情報を変更できる。比較対象として、仮に、単独の論理アドレスを用いる場合、各制御対象装置121の所定アドレスにアクセスして補正遅延情報を更新しなければならない。このため、制御システム123を構成する制御対象装置121の数と、制御対象装置121の補正遅延情報を更新する時間に応じた時間だけ、システム構成の変更に時間がかかる。
【0326】
一方、システム構成に応じた補正遅延情報は、EtherCATのリアルタイムネットワークの特徴により、事前に算出可能であり、制御システム123のセットアップ段階において、各制御対象装置121に設定可能である。したがって、システム構成の変更時は、
図24Cに示すようにアクセス先論理アドレスを変更するのみで、迅速にシステム構成の変更が可能である。
【0327】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0328】
120 制御装置(制御用通信装置)
121 制御対象装置(デバイス)
123 制御システム
153 データグラム生成部
159 通信部
160 制御対象装置選択部
161 データグラム生成情報変更部
162 制御システム構成情報記憶部
163 異常判定部
178 WKC
【要約】
通信性能を向上させながら、制御システムへの要求に応じてシステム構成を変更可能な、システム可変性に優れた制御システムを実現する。そこで、制御用データを含んだパケットを送信する通信部を有する制御用通信装置と、通信部に含まれる通信ポートと通信可能に接続され、受信したパケットに沿って動作する複数のデバイスと、を有する。パケットは、制御用データが選択されて配置されたパケットデータ領域を含み、通信部から、通信部に接続されたデバイスに送信される。制御用通信装置は、制御用データの送受信に関わる通信制御情報に基づいて制御用データを生成し、デバイスと制御用データとの対応関係を保持し、デバイスの状態変更時は、当該対応関係に基づいて、デバイスに関わる通信制御情報を変更する。