(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024011461
(43)【公開日】2024-01-25
(54)【発明の名称】制御システム、制御装置および通信方法
(51)【国際特許分類】
H04L 12/46 20060101AFI20240118BHJP
【FI】
H04L12/46 100C
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022113437
(22)【出願日】2022-07-14
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】植田 貴雅
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033CA13
5K033DA03
5K033DB19
(57)【要約】
【課題】複数の制御装置がネットワーク接続された制御システムにおいて、設計および開発の制限を緩和する仕組みを提供する。
【解決手段】中継ユニットは、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致するか否か、および、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断する。中継ユニットは、予め定められた第1の状態において、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、交換設定に従うデータ転送を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ネットワークを介して接続された第1制御装置および第2制御装置を備える制御システムであって、
前記第2制御装置は、制御演算を実行する演算ユニットと、前記ネットワークに接続するためのインターフェイスを有する中継ユニットとを備え、
前記中継ユニットは、交換設定に従って、前記演算ユニットが管理するデータの前記ネットワークを介した送信、および、前記ネットワークを介して受信したデータによる前記演算ユニットが管理するデータの更新、を含むデータ転送を実行するように構成されており、
前記交換設定は、前記演算ユニットが管理するデータのうち送信対象のデータを示す第1の設定と、前記ネットワークを介して送信するデータを示す第2の設定と、前記演算ユニットが管理するデータのうち更新対象となるデータを示す第3の設定と、前記ネットワークを介して受信するデータを示す第4の設定とを含み、
前記中継ユニットは、
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致するか否か、および、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断し、
予め定められた第1の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、前記交換設定に従うデータ転送を実行する、制御システム。
【請求項2】
前記中継ユニットは、前記第1の状態においては、前記第1の設定が示すデータおよび前記第3の設定が示すデータの周期的な更新、ならびに、前記第2の設定が示すデータおよび前記第4の設定が示すデータの周期的な更新を繰返し実行する、請求項1に記載の制御システム。
【請求項3】
前記中継ユニットは、前記交換設定が存在しなくても、前記第1制御装置とのデータ更新および前記演算ユニットとのデータ更新を継続する、請求項2に記載の制御システム。
【請求項4】
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合に、警告を報知する報知部をさらに備える、請求項1に記載の制御システム。
【請求項5】
前記中継ユニットは、前記第1の設定が示すデータと前記第2の設定が示すデータとのうち一致しているデータ、および、前記第3の設定が示すデータと前記第4の設定が示すデータとのうち一致しているデータ、についてデータ転送を実行する、請求項1~4のいずれか1項に記載の制御システム。
【請求項6】
前記中継ユニットは、予め定められたデータサイズのデータがデータ転送されるように、前記交換設定に基づいてダミーデータを生成する、請求項1~4のいずれか1項に記載の制御システム。
【請求項7】
前記制御システムは、ユーザ操作に応じて、前記交換設定を作成するためのユーザインターフェイスを提供する、請求項1~4のいずれか1項に記載の制御システム。
【請求項8】
前記中継ユニットは、
前記第1の状態とは異なる第2の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合には、前記交換設定に従うデータ転送を停止または無効化する、請求項1~4のいずれか1項に記載の制御システム。
【請求項9】
ユーザによって設定されるモードに応じて、前記第1の状態および前記第2の状態が決定される、請求項8に記載の制御システム。
【請求項10】
ネットワークを介して他の制御装置と接続された制御装置であって、
制御演算を実行する演算ユニットと、
前記ネットワークに接続するためのインターフェイスを有する中継ユニットとを備え、
前記中継ユニットは、交換設定に従って、前記演算ユニットが管理するデータの前記ネットワークを介した送信、および、前記ネットワークを介して受信したデータによる前記演算ユニットが管理するデータの更新、を含むデータ転送を実行するように構成されており、
前記交換設定は、前記演算ユニットが管理するデータのうち送信対象のデータを示す第1の設定と、前記ネットワークを介して送信するデータを示す第2の設定と、前記演算ユニットが管理するデータのうち更新対象となるデータを示す第3の設定と、前記ネットワークを介して受信するデータを示す第4の設定とを含み、
前記中継ユニットは、
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致するか否か、および、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断し、
予め定められた第1の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、前記交換設定に従うデータ転送を実行する、制御装置。
【請求項11】
ネットワークを介して接続された第1制御装置および第2制御装置を備える制御システムにおける通信方法であって、前記第2制御装置は、制御演算を実行する演算ユニットと、前記ネットワークに接続するためのインターフェイスを有する中継ユニットとを備え、前記通信方法は、
前記中継ユニットが、交換設定に従って、前記演算ユニットが管理するデータの前記ネットワークを介した送信、および、前記ネットワークを介して受信したデータによる前記演算ユニットが管理するデータの更新、を含むデータ転送を実行するステップを備え、前記交換設定は、前記演算ユニットが管理するデータのうち送信対象のデータを示す第1の設定と、前記ネットワークを介して送信するデータを示す第2の設定と、前記演算ユニットが管理するデータのうち更新対象となるデータを示す第3の設定と、前記ネットワークを介して受信するデータを示す第4の設定とを含み、
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致するか否か、および、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断するステップと、
予め定められた第1の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、前記中継ユニットが、前記交換設定に従うデータ転送を実行するステップとを備える、通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システム、制御装置および通信方法に関する。
【背景技術】
【0002】
近年の情報通信技術の飛躍的な発展に伴って、産業用装置においてもより多くのデータを処理する必要性が高まっている。より具体的には、IoT(Internet of Things)やIndustry 4.0などに代表される、通信技術を用いた技術革新が進みつつある。これによって、システム内でやり取りされるデータは増大傾向にある。
【0003】
このようなデータ処理量の増大に対する解決手段の一つとして、国際公開第2013/137023号(特許文献1)は、複数の通信ラインを含む構成において、装置間のデータ更新をより適切に行うことができる構成を開示する。
【0004】
複数のネットワークを用いて複数のコントローラを接続してネットワーク分散制御システムを構成する場合には、ネットワーク間のデータ転送を担当するゲートウェイである中継ユニットが用いられる。このようなゲートウェイを介して制御装置間のデータ交換を実現する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ネットワーク分散制御システムを設計および開発するにあたって、ある制御装置の設計変更などの影響が他の制御装置へ及ばないようにしたいというニーズがある。本発明は、複数の制御装置がネットワーク接続された制御システムにおいて、設計および開発の制限を緩和する仕組みを提供する。
【課題を解決するための手段】
【0007】
本発明の一例に従えば、ネットワークを介して接続された第1制御装置および第2制御装置を備える制御システムが提供される。制御システムは、第2制御装置は、制御演算を実行する演算ユニットと、ネットワークに接続するためのインターフェイスを有する中継ユニットとを含む。中継ユニットは、交換設定に従って、演算ユニットが管理するデータのネットワークを介した送信、および、ネットワークを介して受信したデータによる演算ユニットが管理するデータの更新、を含むデータ交換を実行するように構成されている。交換設定は、演算ユニットが管理するデータのうち送信対象のデータを示す第1の設定と、ネットワークを介して送信するデータを示す第2の設定と、演算ユニットが管理するデータのうち更新対象となるデータを示す第3の設定と、ネットワークを介して受信するデータを示す第4の設定とを含む。中継ユニットは、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致するか否か、および、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断し、予め定められた第1の状態において、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、交換設定に従うデータ交換を実行する。
【0008】
この構成によれば、第1制御装置および第1制御装置で実行されるプログラムなどの設計および開発を行っている過程であって、第1制御装置が送受信するデータの構成が不確定であるような場合、および/または、第2制御装置および第2制御装置で実行されるプログラムなどの設計および開発を行っている過程であって、演算ユニットが送受信するデータの構成が不確定であるような場合において、データの構成が変更されたことで、制御システム全体が動作しなくなるといった現象を回避できる。これによって、第1制御装置および第2制御装置に対する設計および開発をそれぞれ独立して行うことができる。
【0009】
中継ユニットは、第1の状態においては、第1の設定が示すデータおよび第3の設定が示すデータの周期的な更新、ならびに、第2の設定が示すデータおよび第4の設定が示すデータの周期的な更新を繰返し実行するようにしてもよい。この構成によれば、交換設定が完全に一致していなくても、第1制御装置と第2制御装置との間のデータ交換、および、第2制御装置の内部におけるデータ交換は継続されるので、第1制御装置および第2制御装置のいずれか一方の変更などが他方に影響を与えるような事態を回避できる。
【0010】
中継ユニットは、交換設定が存在しなくても、第1制御装置とのデータ更新および演算ユニットとのデータ更新を継続するようにしてもよい。この構成によれば、交換設定に依存することなく、第1制御装置と中継ユニットとの間のデータ更新、および、演算ユニットと中継ユニットとの間のデータ更新を継続できる。
【0011】
制御システムは、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致しない場合に、警告を報知する報知部をさらに含んでいてもよい。この構成によれば、ユーザは、データサイズが一致していないことを確実に認識できる。
【0012】
中継ユニットは、第1の設定が示すデータと第2の設定が示すデータとのうち一致しているデータ、および、第3の設定が示すデータと第4の設定が示すデータとのうち一致しているデータ、についてデータ交換を実行するようにしてもよい。この構成によれば、データサイズが完全には一致しない場合であっても、可能な範囲でデータ交換を行うことができる。
【0013】
中継ユニットは、予め定められたデータサイズのデータがデータ交換されるように、交換設定に基づいてダミーデータを生成するようにしてもよい。この構成によれば、データ交換の対象として、予め定められたデータサイズに固定できるので、データ交換に係る処理を簡素化および高速化できる。
【0014】
制御システムは、ユーザ操作に応じて、交換設定を作成するためのユーザインターフェイスを提供するようにしてもよい。この構成によれば、この構成によれば、ユーザは、ユーザインターフェイスを介して、交換設定を容易に作成できる。
【0015】
中継ユニットは、第1の状態とは異なる第2の状態において、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致しない場合には、交換設定に従うデータ交換を停止または無効化するようにしてもよい。この構成によれば、第1制御装置が送受信するデータの構成が確定している場合、および/または、演算ユニットが送受信するデータの構成が確定している場合において、厳密なデータ交換を実現できる。
【0016】
ユーザによって設定されるモードに応じて、第1の状態および第2の状態が決定されてもよい。この構成によれば、状況に応じて、第1の状態および第2の状態を適宜変更できる。
【0017】
本発明の別の一例に従えば、ネットワークを介して他の制御装置と接続された制御装置が提供される。制御装置は、制御演算を実行する演算ユニットと、ネットワークに接続するためのインターフェイスを有する中継ユニットとを含む。中継ユニットは、交換設定に従って、演算ユニットが管理するデータのネットワークを介した送信、および、ネットワークを介して受信したデータによる演算ユニットが管理するデータの更新、を含むデータ交換を実行するように構成されている。交換設定は、演算ユニットが管理するデータのうち送信対象のデータを示す第1の設定と、ネットワークを介して送信するデータを示す第2の設定と、演算ユニットが管理するデータのうち更新対象となるデータを示す第3の設定と、ネットワークを介して受信するデータを示す第4の設定とを含む。中継ユニットは、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致するか否か、および、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断し、予め定められた第1の状態において、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、交換設定に従うデータ交換を実行する。
【0018】
本発明のさらに別の一例に従えば、ネットワークを介して接続された第1制御装置および第2制御装置を備える制御システムにおける通信方法が提供される。第2制御装置は、制御演算を実行する演算ユニットと、ネットワークに接続するためのインターフェイスを有する中継ユニットとを含む。通信方法は、中継ユニットが、交換設定に従って、演算ユニットが管理するデータのネットワークを介した送信、および、ネットワークを介して受信したデータによる演算ユニットが管理するデータの更新、を含むデータ交換を実行するステップを含む。交換設定は、演算ユニットが管理するデータのうち送信対象のデータを示す第1の設定と、ネットワークを介して送信するデータを示す第2の設定と、演算ユニットが管理するデータのうち更新対象となるデータを示す第3の設定と、ネットワークを介して受信するデータを示す第4の設定とを含む。通信方法は、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致するか否か、および、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断するステップと、予め定められた第1の状態において、第1の設定が示すデータと第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、第3の設定が示すデータと第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、中継ユニットが、交換設定に従うデータ交換を実行するステップとを含む。
【発明の効果】
【0019】
本発明によれば、複数の制御装置がネットワーク接続された制御システムにおいて、設計および開発の制限を緩和する仕組みを提供できる。
【図面の簡単な説明】
【0020】
【
図1】本実施の形態に従う制御システムの適用例を示す模式図である。
【
図2】本実施の形態に従う制御システムの全体構成例を示す模式図である。
【
図3】本実施の形態に従う主制御装置の演算ユニットのハードウェア構成例を示すブロック図である。
【
図4】本実施の形態に従う副制御装置の演算ユニットのハードウェア構成例を示すブロック図である。
【
図5】本実施の形態に従う副制御装置の中継ユニットのハードウェア構成例を示すブロック図である。
【
図6】本実施の形態に従う制御システムのフィールドネットワークをサイクリック伝送されるフレームのデータ構造の一例を示す。
【
図7】本実施の形態に従う制御システムの副制御装置によるデータ転送を説明するための図である。
【
図8】本実施の形態に従う制御システムの中継ユニットによるデータ転送を説明するための図である。
【
図9】本実施の形態に従う制御システムの中継ユニットにおいて設定されたデータサイズが一致しない例を示す図である。
【
図10】本実施の形態に従う制御システムの中継ユニットにおいて設定されたデータサイズが一致しない場合の処理例を示す図である。
【
図11】本実施の形態に従う制御システムの中継ユニットにおける処理例を説明するための図である。
【
図12】本実施の形態に従う制御システムにおいてデータ更新が停止している場合の動作例を説明するための図である。
【
図13】本実施の形態に従う中継ユニットのサイクリック通信によるI/Oデータ送信の処理手順例を示すフローチャートである。
【
図14】本実施の形態に従う制御システムにおける中継ユニットの交換設定を作成するためのユーザインターフェイス例を示す模式図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0022】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
【0023】
図1は、本実施の形態に従う制御システム1の適用例を示す模式図である。
図1を参照して、制御システム1は、ネットワーク(
図2のフィールドネットワーク4など参照)を介して接続された主制御装置10(第1制御装置)および1または複数の副制御装置20(第2制御装置)を含む。
【0024】
本明細書において、「主制御装置」および「副制御装置」との用語は、説明の便宜上の区別であり、実質的に同一のハードウェア構成であってもよいし、実質的に同一の機能構成であってもよい。主制御装置および副制御装置は、PLC(プログラマブルロジックコントローラ)などの一種のコンピュータであってもよい。
【0025】
副制御装置20は、制御演算を実行する演算ユニット200と、ネットワークに接続するためのインターフェイス(
図5のフィールドネットワークインターフェイス270など)を有する中継ユニット250とを含む。
【0026】
中継ユニット250は、副制御装置20(演算ユニット200)と主制御装置10との間で互いにデータを転送するためのゲートウェイである。より具体的には、交換設定268に従って、演算ユニット200が管理するプロセスデータ70のネットワークを介した送信、および、ネットワークを介して受信したデータによる演算ユニット200が管理するプロセスデータの更新、を含むデータ転送を実行する。
【0027】
中継ユニット250は、ネットワークを介してデータ交換される送信データ50および受信データ60を保持するとともに、演算ユニット200との間でデータ交換される入力データ90および出力データ80を保持する。
【0028】
本明細書においては、データ転送の対象として設定されるデータを「エントリ」と称す。「エントリ」は、送信データ50、受信データ60、出力データ80、および、入力データ90に含まれるべき各データを特定するための情報を含む。
【0029】
交換設定268は、
図1に示す各データのエントリの設定を含む。より具体的には、交換設定268は、演算ユニット200が管理するプロセスデータ70のうち送信対象のデータ(出力データ80)を示す第1の設定(出力データ80に含まれるエントリ)と、ネットワークを介して送信するデータ(送信データ50)を示す第2の設定(送信データ50に含まれるエントリ)と、演算ユニット200が管理するプロセスデータ70のうち更新対象となるデータ(入力データ90)を示す第3の設定(入力データ90に含まれるエントリ)と、ネットワークを介して受信するデータ(受信データ60)を示す第4の設定(受信データ60に含まれるエントリ)とを含む。
【0030】
データ転送は、主制御装置10と中継ユニット250との間のデータ更新42(送信データ50の送信および受信データ60の更新)と、演算ユニット200と中継ユニット250との間のデータ更新44(出力データ80の更新および入力データ90の送信)と、中継ユニット250におけるデータ交換46(送信データ50を出力データ80で更新、および、入力データ90を受信データ60で更新)とを含む。
【0031】
中継ユニット250は、出力データ80に含まれるエントリ(第1の設定が示すデータ)と送信データ50に含まれるエントリ(第2の設定が示すデータ)との間でデータサイズが一致するか否か、および、入力データ90に含まれるエントリ(第3の設定が示すデータ)と受信データ60に含まれるエントリ(第4の設定が示すデータ)との間でデータサイズが一致するか否か、のうち少なくとも一方を判断する。
【0032】
図1に示すように、出力データ80に含まれるエントリ(第1の設定が示すデータ)と送信データ50に含まれるエントリ(第2の設定が示すデータ)との間でデータサイズが一致しない場合、および/または、入力データ90に含まれるエントリ(第3の設定が示すデータ)と受信データ60に含まれるエントリ(第4の設定が示すデータ)との間でデータサイズが一致しない場合であっても、交換設定268に従うデータ転送を実行する。
【0033】
データ転送は、主制御装置10と中継ユニット250との間のデータ更新42、および、演算ユニット200と中継ユニット250との間のデータ更新44を含む。中継ユニット250におけるデータ交換46については、データ交換が可能な範囲で実行される。
【0034】
なお、予め定められた第1の状態においては、データサイズが一致しなくても、データ転送を実行するようにしてもよく、別の第2の状態においては、データサイズが一致しなければ、データ転送を停止または無効化するようにしてもよい。すなわち、データサイズが一致しない場合に、データ転送を停止または無効化するか否かを、モードなどに応じて異ならせてもよい。
【0035】
<B.全体構成例>
次に、本実施の形態に従う制御システム1の全体構成例について説明する。
【0036】
図2は、本実施の形態に従う制御システム1の全体構成例を示す模式図である。
図2を参照して、本実施の形態に従う制御システム1は、主制御装置10と、1または複数の副制御装置20とを含む。
【0037】
主制御装置10と、1または複数の副制御装置20とは、フィールドネットワーク4を介して接続されている。フィールドネットワーク4は、サイクリック通信およびメッセージ通信をサポートしている。フィールドネットワーク4としては、例えば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、PROFINET(登録商標)、PROFIBUS(登録商標)、DeviceNet(登録商標)、FL-net、CompoNet(登録商標)などを用いてもよい。
【0038】
主制御装置10は、制御演算を実行する演算ユニット100を含む。演算ユニット100は、フィールドネットワーク4によるデータ通信が可能になっている。主制御装置10は、電源ユニット、I/Oユニット、特殊ユニットなどをさらに有してもよい。
【0039】
副制御装置20は、制御演算を実行する演算ユニット200と、フィールドネットワーク4に接続するためのインターフェイスを有する中継ユニット250とを含む。副制御装置20は、電源ユニット、I/Oユニット、特殊ユニットなどをさらに有してもよい。
【0040】
演算ユニット200と中継ユニット250とは、内部バス6(
図4および
図5参照)を介して接続されている。なお、副制御装置20がI/Oユニットおよび/または特殊ユニットを含む場合には、当該ユニットも内部バス6を介して接続される。
【0041】
中継ユニット250は、主制御装置10から送信されるデータを演算ユニット200が参照できるように転送するとともに、演算ユニット200が出力するデータを主制御装置10が参照できるように転送する。
【0042】
制御システム1は、主制御装置10および/または副制御装置20で実行されるプログラムや設定などを作成および変更するためのサポート装置300を含んでいてもよい。サポート装置300は、副制御装置20の演算ユニット200に接続されてもよいし、主制御装置10の演算ユニット100に接続されてもよい。
【0043】
<C.ハードウェア構成例>
次に、本実施の形態に従う制御システム1の主要な装置のハードウェア構成例について説明する。
【0044】
(c1:演算ユニット100)
図3は、本実施の形態に従う主制御装置10の演算ユニット100のハードウェア構成例を示すブロック図である。
図3を参照して、演算ユニット100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メモリ106と、ストレージ108と、上位ネットワークインターフェイス110と、USB(Universal Serial Bus)インターフェイス112と、メモリカードインターフェイス114と、フィールドネットワークインターフェイス120とを含む。
【0045】
プロセッサ102は、ストレージ108に格納された各種プログラムを読み出して、メモリ106に展開して実行することで、演算ユニット100で必要な処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータ通信などを制御する。
【0046】
ストレージ108には、典型的には、システムプログラム131と、制御演算に必要なコンピュータ読み取り可能なコードを含むユーザプログラム132とが格納される。
【0047】
ストレージ108に格納されたプログラムが実行されることで、コンピュータである演算ユニット100に本明細書に記載された処理を実行させるとともに、コンピュータである演算ユニット100において本明細書に記載された機能構成を実現させる。
【0048】
上位ネットワークインターフェイス110は、上位ネットワークを介した他の装置との間のデータ通信を制御する。USBインターフェイス112は、USB接続を介してサポート装置との間のデータ通信を制御する。
【0049】
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書き込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
【0050】
フィールドネットワークインターフェイス120は、フィールドネットワーク4を介した副制御装置20との間のデータ通信を制御する。
【0051】
(c2:演算ユニット200)
図4は、本実施の形態に従う副制御装置20の演算ユニット200のハードウェア構成例を示すブロック図である。
図4を参照して、演算ユニット200は、CPUやMPUなどのプロセッサ202と、チップセット204と、メモリ206と、ストレージ208と、上位ネットワークインターフェイス210と、USBインターフェイス212と、メモリカードインターフェイス214と、内部バスインターフェイス220とを含む。
【0052】
プロセッサ202は、ストレージ208に格納された各種プログラムを読み出して、メモリ206に展開して実行することで、演算ユニット200で必要な処理を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータ通信などを制御する。
【0053】
ストレージ208には、典型的には、システムプログラム231と、制御演算に必要なコンピュータ読み取り可能なコードを含むユーザプログラム232とが格納される。
【0054】
ストレージ208に格納されたプログラムが実行されることで、コンピュータである演算ユニット200に本明細書に記載された処理を実行させるとともに、コンピュータである演算ユニット200において本明細書に記載された機能構成を実現させる。
【0055】
上位ネットワークインターフェイス210は、上位ネットワークを介した他の装置との間のデータ通信を制御する。USBインターフェイス212は、USB接続を介してサポート装置との間のデータ通信を制御する。
【0056】
メモリカードインターフェイス214は、メモリカード216を着脱可能に構成されており、メモリカード216に対してデータを書き込み、メモリカード216から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
【0057】
内部バスインターフェイス220は、内部バス6を介した1または複数のユニット(中継ユニット250を含む)との間のデータ通信を制御する。
【0058】
内部バス6は、フィールドネットワーク4と同様に、サイクリック通信およびメッセージ通信をサポートしている。内部バス6としては、メーカ専用の通信方式を採用してもよいし、例えば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、PROFINET(登録商標)、PROFIBUS(登録商標)、DeviceNet(登録商標)、FL-net、CompoNet(登録商標)などを用いてもよい。
【0059】
(c3:中継ユニット250)
図5は、本実施の形態に従う副制御装置20の中継ユニット250のハードウェア構成例を示すブロック図である。
図5を参照して、中継ユニット250は、処理回路260と、フィールドネットワークインターフェイス270と、内部バスインターフェイス280とを含む。
【0060】
処理回路260は、後述するような中継ユニット250の処理および機能を実現する。より具体的には、処理回路260は、プロセッサ262と、メモリ264と、ストレージ266とを含む。プロセッサ262は、ストレージ266に格納されたシステムプログラム(ファームウェア)を読み出して、メモリ264に展開して実行することで、中継ユニット250で必要な処理を実現する。ストレージ266には、システムプログラムに加えて、データ転送を実現するための交換設定268が格納されている。
【0061】
フィールドネットワークインターフェイス270は、フィールドネットワーク4を介した主制御装置10との間のデータ通信を制御する。
【0062】
内部バスインターフェイス280は、内部バス6を介した1または複数のユニット(演算ユニット200を含む)との間のデータ通信を制御する。
【0063】
(c4:その他の構成)
図3~
図5には、プロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
【0064】
本明細書において、「プロセッサ」は、ストアードプログラム方式で処理を実行する狭義のプロセッサに限られず、ASICやFPGAなどのハードワイヤード回路を含み得る。そのため、「プロセッサ」との用語は、コンピュータ読み取り可能なコードおよび/またはハードワイヤード回路によって予め処理が定義されている、処理回路(processing circuitry)と読み替えることもできる。
【0065】
演算ユニットの主要部は、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0066】
(c5:サポート装置300)
本実施の形態に従うサポート装置300は、一例として、汎用的なアーキテクチャに従う汎用コンピュータなどで構成される。汎用コンピュータのハードウェア構成例は公知であるので、詳細な説明は行わない。
【0067】
<D.データ転送>
次に、本実施の形態に従う制御システム1のデータ転送に係る処理について説明する。
【0068】
フィールドネットワーク4としてEtherCATが採用される場合には、フィールドネットワーク4におけるフレーム30の送信タイミングなどを管理する通信マスタ(以下、「マスタ」と略称する。)と、通信マスタによる管理に従う1または複数の通信スレーブ(以下、「スレーブ」と略称する。)とが存在する。
図2に示す構成例においては、例えば、主制御装置10がマスタとなり、中継ユニット250がスレーブとなる。
【0069】
各デバイスは、隣接するデバイスからフレーム30を受信すると、フレーム30に含まれているデータを読み出すとともに、自デバイスが保持しているデータをフレーム30に書き込む(フレーム30の対応する領域のデータを更新する)。
【0070】
図6は、本実施の形態に従う制御システム1のフィールドネットワーク4をサイクリック伝送されるフレーム30のデータ構造の一例を示す。フレーム30は、予め定められた送信周期(例えば、1msec~数100msec)毎に、フィールドネットワーク4に接続されたすべてのデバイス(主制御装置10および中継ユニット250を含む)を巡回する。
【0071】
図6に示すように、フレーム30は、デバイス毎に送信データを格納する領域が設定されている。一例として、フレーム30は、マスタからの送信データを格納する領域3Mと、スレーブ1~Nからの送信データをそれぞれ格納する領域31~3Nとを含む。
【0072】
例えば、中継ユニット250がスレーブ1に相当する場合には、中継ユニット250は、フレーム30を受信すると、受信したフレーム30の領域31に自ユニットが保持しているデータ(送信データ50)を書き込むとともに、フレーム30の領域3M,32~3Nに格納されているデータ(受信データ60)を読み出す。
【0073】
演算ユニット200は、中継ユニット250を介してデータを送受信する。すなわち、演算ユニット200は、中継ユニット250を介して、フィールドネットワーク4に接続された主制御装置10および他の副制御装置20とデータを交換する。
【0074】
図7は、本実施の形態に従う制御システム1の副制御装置20によるデータ転送を説明するための図である。
図7を参照して、副制御装置20の演算ユニット200は、プロセスデータ70を保持している。
【0075】
プロセスデータ70は、入力データ72と、出力データ74と、システムデータ76とを含む。入力データ72は、例えば、各種センサで計測あるいは検出された信号を含む。出力データ74は、入力データ72などに基づく制御演算40の結果を含む。システムデータ76は、システム管理82による管理情報を含む。管理情報は、副制御装置20の運転状態やエラー発生などを示す。
【0076】
入力データ72、出力データ74およびシステムデータ76のうち、指定されたデータが送信データ50としてコピーされる。また、受信データ60は、基本的には、入力データ72としてコピーされる。副制御装置20においては、交換設定268に従って、プロセスデータ70と、送信データ50および受信データ60との間でデータ交換が行われる。
【0077】
送信データ50および受信データ60は、フィールドネットワーク4のサイクリック通信の送信周期毎に更新されることになる。プロセスデータ70と送信データ50および受信データ60との間のデータ交換は、内部バス6の送信周期毎に行われる。
【0078】
このように、中継ユニット250は、交換設定268に従って、演算ユニット200が管理するプロセスデータ70のフィールドネットワーク4を介した送信、および、フィールドネットワーク4を介して受信した受信データ60による演算ユニット200が管理するプロセスデータ70の更新、を含むデータ転送を実行するように構成されている。
【0079】
<E.中継ユニット>
次に、本実施の形態に従う制御システム1の中継ユニット250によるデータ転送について説明する。
【0080】
上述したように、副制御装置20の演算ユニット200は、中継ユニット250を介して、フィールドネットワーク4に接続された主制御装置10および他の副制御装置20とデータを交換する。このようなデータ交換を実現するために、中継ユニット250は、フィールドネットワーク4を介して送受信されるデータを保持する記憶領域と、内部バス6を介して送受信されるデータを保持する記憶領域とを有している。
【0081】
図8は、本実施の形態に従う制御システム1の中継ユニット250によるデータ転送を説明するための図である。
図8を参照して、中継ユニット250は、フィールドネットワーク4を介してデータ交換される送信データ50および受信データ60を保持するとともに、演算ユニット200との間でデータ交換される入力データ90および出力データ80を保持する。
【0082】
上述の交換設定268は、演算ユニット200が管理するプロセスデータ70のうち送信対象のデータ(出力データ80)を示す第1の設定(出力データ80に含まれるエントリ)と、ネットワークを介して送信するデータ(送信データ50)を示す第2の設定(送信データ50に含まれるエントリ)と、演算ユニット200が管理するプロセスデータ70のうち更新対象となるデータ(入力データ90)を示す第3の設定(入力データ90に含まれるエントリ)と、ネットワークを介して受信するデータ(受信データ60)を示す第4の設定(受信データ60に含まれるエントリ)とを含む。
【0083】
通常、演算ユニット200からの出力データ80に含まれるデータのデータサイズは、主制御装置10および他の副制御装置20に送信される送信データ50に含まれるデータのデータサイズと一致する。同様に、主制御装置10および他の副制御装置20からの受信データ60に含まれるデータのデータサイズは、演算ユニット200に送信される入力データ90に含まれるデータのデータサイズと一致する。
【0084】
そのため、中継ユニット250(または、演算ユニット200)は、交換設定268に設定されたエントリに基づいて、出力データ80と送信データ50との間で設定されたデータサイズが一致しない、および/または、入力データ90と受信データ60との間で設定されたデータサイズが一致しない場合には、データ転送を停止または無効化するようにしてもよい。
【0085】
すなわち、中継ユニット250(または、演算ユニット200)は、出力データ80に含まれるエントリと送信データ50に含まれるエントリとの間でデータサイズが一致するか否か、および、入力データ90に含まれるエントリと受信データ60に含まれるエントリとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断する。そして、出力データ80に含まれるエントリと送信データ50に含まれるエントリとの間でデータサイズが一致しない場合、および/または、入力データ90に含まれるエントリと受信データ60に含まれるエントリとの間でデータサイズが一致しない場合には、交換設定268に従うデータ転送が停止または無効化される。
【0086】
しかしながら、制御システム1の全体または一部を設計および開発している段階においては、主制御装置10および1または複数の副制御装置20が送受信するデータはしばしば変更され得る。そのため、出力データ80と送信データ50との間で設定されたデータサイズが一致しない、および/または、入力データ90と受信データ60との間で設定されたデータサイズが一致しないといった事態もしばしば生じ得る。その結果、制御システム1におけるデータ転送が停止または無効化され得る。
【0087】
そこで、本実施の形態に従う制御システム1においては、出力データ80に含まれるエントリと送信データ50に含まれるエントリとの間でデータサイズが一致しない場合、および/または、入力データ90に含まれるエントリと受信データ60に含まれるエントリとの間でデータサイズが一致しない場合であっても、交換設定268に従うデータ転送を実行することが可能になっている。
【0088】
すなわち、出力データ80と送信データ50との間で設定されたデータサイズが一致しない、および/または、入力データ90と受信データ60との間で設定されたデータサイズが一致しない場合であっても、中継ユニット250でのデータ転送を実行することも可能である。
【0089】
図9は、本実施の形態に従う制御システム1の中継ユニット250において設定されたデータサイズが一致しない例を示す図である。
図9を参照して、出力データ80は2つのエントリのみを含むのに対して、送信データ50は4つのエントリを含む。また、受信データ60は4つのエントリを含むのに対して、入力データ90は2つのエントリのみを含む。
【0090】
図9に示す例においては、出力データ80と送信データ50との間で設定されたデータサイズは一致しない。同様に、入力データ90と受信データ60との間で設定されたデータサイズは一致しない。このような場合であっても、中継ユニット250でのデータ転送が実行されてもよい。
【0091】
このようなデータ転送を実現するために、例えば、中継ユニット250が保持する送信データ50および受信データ60を予め定められたデータサイズに設定してもよい。データサイズを固定する方法として、エントリが明示的に設定されていなくても、固定のデータサイズが維持されるように、ダミーデータのエントリが自動的に設定されるようにしてもよい。あるいは、エントリが存在しない領域には、何らかのデータをパディングすることで、エントリが変動しても、データサイズを一定に維持できるようにしてもよい。
【0092】
図10は、本実施の形態に従う制御システム1の中継ユニット250において設定されたデータサイズが一致しない場合の処理例を示す図である。
【0093】
図10を参照して、
図9に示すようなデータサイズが一致しない場合において、中継ユニット250は、ダミーデータを追加することで、形式的にデータサイズを一致させる。
図10に示す例では、出力データ80には、送信データ50の2つのエントリに対応するダミーデータが追加されている。また、入力データ90には、受信データ60の2つのエントリに対応するダミーデータが追加されている。
【0094】
このように、中継ユニット250は、予め定められたデータサイズのデータがデータ転送されるように、交換設定268に基づいてダミーデータを生成するようにしてもよい。すなわち、中継ユニット250は、交換設定268が示すエントリのデータサイズと予め定められたデータサイズとの差分に相当するダミーデータを生成するようにしてもよい。
【0095】
また、出力データ80と送信データ50との間で一致したエントリ、および/または、入力データ90と受信データ60との間で一致したエントリについては、データ転送が実行されてもよい。
【0096】
図9および
図10に示す例においては、出力データ80と送信データ50との間では2つのエントリが一致しており、これらの2つのエントリに対応するデータについては、データ転送が行われてもよい。また、入力データ90と受信データ60との間では2つのエントリが一致しており、これらの2つのエントリに対応するデータについては、データ転送が行われてもよい。
【0097】
このように、出力データ80と送信データ50との間で一致しているエントリの範囲、および/または、入力データ90と受信データ60との間で一致しているエントリの範囲において、データ転送が実行されてもよい。すなわち、中継ユニット250は、出力データ80に含まれるエントリ(第1の設定が示すデータ)と送信データ50に含まれるエントリ(第2の設定が示すデータ)とのうち一致しているデータ、および、入力データ90に含まれるエントリ(第3の設定が示すデータ)と受信データ60に含まれるエントリ(第4の設定が示すデータ)とのうち一致しているデータ、についてデータ転送を実行する。
【0098】
なお、エントリが一致しているか否かは、各エントリに設定されているデータのデータ数およびデータ型に基づいて判断されてもよいし、各エントリに設定されているデータのデータ長さに基づいて判断されてもよい。
【0099】
図11は、本実施の形態に従う制御システム1の中継ユニット250における処理例を説明するための図である。
図11には、出力データ80と送信データ50との間で一致しているエントリは存在せず、かつ、入力データ90と受信データ60との間で一致しているエントリは存在しない例を示す。
【0100】
図11に示すような交換設定268においては、データ交換46は実質的に実行されない。但し、フィールドネットワーク4を介した主制御装置10と中継ユニット250との間のデータ更新42、および、内部バス6を介した演算ユニット200と中継ユニット250との間のデータ更新44は、周期的に実行される。
【0101】
このように、中継ユニット250は、出力データ80に含まれるエントリ(第1の設定が示すデータ)および入力データ90に含まれるエントリ(第3の設定が示すデータ)の周期的な更新、ならびに、送信データ50に含まれるエントリ(第2の設定が示すデータ)および受信データ60に含まれるエントリ(第4の設定が示すデータ)の周期的な更新を繰返し実行する。
【0102】
また、出力データ80と送信データ50との間で設定されたデータサイズが一致しない、および/または、入力データ90と受信データ60との間で設定されたデータサイズが一致しない場合の挙動を任意に設定できるようにしてもよい。例えば、データサイズが一致しない場合に、(1)ユーザに対して警告を報知した上で中継ユニット250でのデータ転送を実行する、(2)何らかの警告も報知せず中継ユニット250でのデータ転送を実行する、(3)中継ユニット250でのデータ転送を停止または無効化する、といった複数のモードをユーザが任意に選択できるようにしてもよい。
【0103】
すなわち、予め定められた特定の状態において、(1)または(2)が選択されてもよく、当該特定の状態とは別の状態において、(3)が選択されてもよい。
【0104】
(1)または(2)が選択された場合には、主制御装置10と中継ユニット250との間のデータ更新、ならびに、演算ユニット200と中継ユニット250との間のデータ更新については、交換設定268の設定内容に依存せずに実行されてもよい。さらに、報知する警報の種類あるいは重要度を異ならせたモードを追加してもよい。
【0105】
(3)が選択された場合には、主制御装置10と中継ユニット250との間のデータ更新、演算ユニット200と中継ユニット250との間のデータ更新、ならびに、中継ユニット250におけるデータ交換のいずれもが停止または無効化されてもよい。
【0106】
このように、ユーザによって設定されるモードに応じて、(1)~(3)の各々を実行するための状態を選択するようにしてもよい。ユーザが設定を行う方法として、中継ユニット250または演算ユニット200に設けられたスイッチを用いてもよいし、ユーザがサポート装置300を操作することで内部のモード設定を変更するようにしてもよい。
【0107】
また、(1)における警告の報知の方法として、中継ユニット250または演算ユニット200に設けられた表示デバイス(例えば、LED)を点滅または点灯する方法を採用してもよい。あるいは、警告の報知の方法として、中継ユニット250または演算ユニット200に設けられた音声デバイス(例えば、スピーカ)から警告を示す音または音声を出力する方法を採用してもよい。あるいは、演算ユニット200のシステムデータに、警告の有無を示すフラグなどを用意しておき、ユーザがサポート装置300を操作することで、警告の発生を認識できるようにしてもよい。
【0108】
このように、制御システム1は、出力データ80に含まれるエントリと送信データ50に含まれるエントリとの間でデータサイズが一致しない場合、および/または、入力データ90に含まれるエントリと受信データ60に含まれるエントリとの間でデータサイズが一致しない場合に、警告を報知する報知部を含んでいてもよい。
【0109】
図12は、本実施の形態に従う制御システムにおいてデータ更新が停止している場合の動作例を説明するための図である。
図12には、演算ユニット200と中継ユニット250との間のデータ更新44(出力データ80の更新および入力データ90の送信)が何らかの理由で停止している状態を示す。
【0110】
停止の理由としては、例えば、(1)いずれかのユニットに何らかの故障が生じた場合、(2)いずれかのユニットの設定に何らかの誤りがある(何らの設定もなされていない場合も含み得る)、(3)いずれかのユニットが関与する通信に何らかの異常が発生している(自ユニットが通信異常の原因になっている場合もあるし、他のユニットが通信異常の原因になっている場合もある)などが挙げられる。
【0111】
このような状態であっても、主制御装置10と中継ユニット250との間のデータ更新42(送信データ50の送信および受信データ60の更新)は継続する。すなわち、主制御装置10と中継ユニット250との間のデータ更新42、および、演算ユニット200と中継ユニット250との間のデータ更新44の互いに独立して実行されるので、一方が何らかの理由で停止したとしても、他方に影響を与えることはない。
【0112】
なお、
図12には、演算ユニット200と中継ユニット250との間のデータ更新44が停止している状態を示すが、主制御装置10と中継ユニット250との間のデータ更新42が停止している状態であっても同様である。
【0113】
さらに、主制御装置10において、演算ユニット200と中継ユニット250との間のデータ更新44が停止している状態を知ることができる仕組み、および/または、演算ユニット200において、主制御装置10と中継ユニット250との間のデータ更新42が停止している状態を知ることができる仕組みを用意してもよい。
【0114】
例えば、
図12に示す状態において、主制御装置10と中継ユニット250との間のデータ更新42は継続されて、主制御装置10は、演算ユニット200と中継ユニット250との間のデータ更新44が停止していることを直接的に知ることができない。そこで、中継ユニット250は、演算ユニット200と中継ユニット250との間のデータ更新44が停止していることを含めた通信の正当性に関する情報を主制御装置10に送信するようにしてもよい。
【0115】
主制御装置10は、中継ユニット250からの情報に基づいて、中継ユニット250から演算ユニット200までのデータ通信に生じている異常を知ることができる。例えば、正当性に関する情報を任意の変数に割り当てることで、主制御装置10において実行されるユーザプログラム132から当該変数を参照可能にしてもよい。
【0116】
同様に、主制御装置10と中継ユニット250との間のデータ更新42が停止している状態において、中継ユニット250は、主制御装置10と中継ユニット250との間のデータ更新42が停止していることを含めた通信の正当性に関する情報を演算ユニット200に送信するようにしてもよい。
【0117】
このように、主制御装置10および/または演算ユニット200において、直接的に接続されていないネットワークの状態を知ることができるような仕組みを採用することで、通信の正当性を監視しながら、主制御装置10および/または演算ユニット200において通信処理を実行できる。
【0118】
<F.処理手順例>
次に、本実施の形態に従う制御システム1における中継ユニット250の処理手順例について説明する。
【0119】
図13は、本実施の形態に従う中継ユニット250のサイクリック通信によるI/Oデータ送信の処理手順例を示すフローチャートである。
図13に示す各ステップは、中継ユニット250のプロセッサ262がシステムプログラムを実行することで実現されてもよい。
【0120】
図13を参照して、中継ユニット250は、交換設定268を読み込む条件が成立したか否かを判断する(ステップS100)。交換設定268を読み込む条件は、例えば、中継ユニット250の電源投入直後、中継ユニット250のリセット直後、新たな交換設定268がサポート装置300から転送された直後などを含む。
【0121】
交換設定268を読み込む条件が成立していれば(ステップS100においてYES)、中継ユニット250は、交換設定268を読み込んで、出力データ80および入力データ90のエントリの割り当て、ならびに、送信データ50および受信データ60のエントリの割り当てを取得し(ステップS102)、出力データ80と送信データ50との間で設定されたデータサイズが一致するか否か、および、入力データ90と受信データ60との間で設定されたデータサイズが一致するか否かを判断する(ステップS104)。
【0122】
出力データ80と送信データ50との間で設定されたデータサイズが一致しない、および/または、入力データ90と受信データ60との間で設定されたデータサイズが一致しない場合(ステップS104においてNO)、中継ユニット250は、現在設定されているモードを取得し(ステップS106)、設定されているモードに応じて、データサイズの不一致がデータ転送の実行条件であるか否かを判断する(ステップS108)。
【0123】
データサイズの不一致がデータ転送の実行条件であれば(ステップS108においてYES)、中継ユニット250は、データ転送を停止する(ステップS110)。そして、処理は終了する。
【0124】
データサイズの不一致がデータ転送の実行条件でなければ(ステップS108においてNO)、中継ユニット250は、設定されているモードに応じた態様で、データサイズの不一致を示す警告を報知する(ステップS112)。また、中継ユニット250は、出力データ80と送信データ50との間で一致しているエントリ、および、入力データ90と受信データ60との間で一致しているエントリに基づいて、データ転送の対象データを決定する(ステップS114)。そして、ステップS100以下の処理が繰り返される。
【0125】
出力データ80と送信データ50との間で設定されたデータサイズが一致し、かつ、入力データ90と受信データ60との間で設定されたデータサイズが一致する場合(ステップS104においてYES)、中継ユニット250は、交換設定268に基づいて、データ転送の対象データを決定する(ステップS116)。そして、ステップS100以下の処理が繰り返される。
【0126】
交換設定268を読み込む条件が成立していなければ(ステップS100においてNO)、中継ユニット250は、送信データ50および受信データ60を更新する(ステップS118)とともに、出力データ80および入力データ90を更新する(ステップS120)。すなわち、中継ユニット250は、交換設定268の設定内容にかかわらず、フィールドネットワーク4を介した主制御装置10と中継ユニット250との間の送信データ50および受信データ60のデータ更新、および、内部バス6を介した演算ユニット200と中継ユニット250との間の出力データ80および入力データ90のデータ更新、をそれぞれ周期的に実行する。
【0127】
そして、中継ユニット250は、データ転送の対象データについて、出力データ80と送信データ50との間、および、受信データ60と入力データ90との間でデータ転送を行う(ステップS122)。なお、データ転送の対象データがない場合も存在する。この場合には、実質的にデータ交換は行われない。そして、ステップS100以下の処理が繰り返される。
【0128】
なお、
図13には、中継ユニット250が交換設定268の設定内容を評価する処理例を示すが、演算ユニット200が交換設定268の設定内容を評価するようにしてもよい。この場合には、
図13に示す処理手順は、演算ユニット200および中継ユニット250が連携して実行されることになる。さらに、
図13に示す処理手順の少なくとも一部をサポート装置300が実行するようにしてもよい。
【0129】
なお、交換設定268が存在しない場合、および/または、交換設定268の設定内容が実質的に何もない場合においては、仮に、中継ユニット250が交換設定268を読み込んでも、何らの設定もなされない。このような場合であっても、中継ユニット250におけるデータ交換46(送信データ50を出力データ80で更新、および、入力データ90を受信データ60で更新)が実行されないだけであり、主制御装置10と中継ユニット250との間のデータ更新42(送信データ50の送信および受信データ60の更新)、および、演算ユニット200と中継ユニット250との間のデータ更新44(出力データ80の更新および入力データ90の送信)は、予め定められた設定に従って実行されてもよい。
【0130】
このように、中継ユニット250は、交換設定268が存在しなくても、主制御装置10とのデータ更新および演算ユニット200とのデータ更新を継続するようにしてもよい。
【0131】
<G.ユーザインターフェイス>
次に、本実施の形態に従う制御システム1における中継ユニット250の交換設定268を作成するためのユーザインターフェイス例について説明する。
【0132】
図14は、本実施の形態に従う制御システム1における中継ユニット250の交換設定268を作成するためのユーザインターフェイス例を示す模式図である。例えば、サポート装置300が
図14に示すユーザインターフェイスを提供する。
【0133】
図14を参照して、設定画面350は、演算ユニット200から主制御装置10へ転送するデータの設定項目群352と、主制御装置10から演算ユニット200へ転送するデータの設定項目群354とを含む。設定項目群352,354の各々は、データ構造およびデータ種類の別に複数種類の設定を含む。設定画面350は、データ転送の対象となるデータ候補群356を含む。
【0134】
ユーザは、設定項目群352,354のうち対象の項目を選択した上で、データ候補群356から転送対象のデータを選択する。追加ボタン358が押下されることで、選択中のデータが転送対象として追加され、削除ボタン360が押下されることで、選択中のデータが転送対象から削除される。
【0135】
ユーザが設定画面350を操作して作成した交換設定268は、中継ユニット250に格納されるとともに、主制御装置10および演算ユニット200にも対応する設定が格納される。
【0136】
図14に示すユーザインターフェイス例に限られず、任意のインターフェイスが提供されてもよいし、ユーザインターフェイスを用意せずに、任意の方法で交換設定268を作成できるようにしてもよい。
【0137】
また、フィールドネットワーク4のフレーム30に含まれるデータのエントリの設定については、別の設定画面が提供される。
【0138】
さらに、ユーザインターフェイスは、サポート装置300が提供するのではなく、演算ユニット200または中継ユニット250が直接的に提供するようにしてもよい。この場合には、例えば、演算ユニット200または中継ユニット250にウェブサーバ機能を組み込んでもよい。
【0139】
このように、制御システム1は、ユーザ操作に応じて、交換設定268を作成するためのユーザインターフェイスを提供するようにしてもよい。
【0140】
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0141】
[構成1]
ネットワーク(4)を介して接続された第1制御装置(10)および第2制御装置(20)を備える制御システム(1)であって、
前記第2制御装置は、制御演算を実行する演算ユニット(200)と、前記ネットワークに接続するためのインターフェイス(270)を有する中継ユニット(250)とを備え、
前記中継ユニットは、交換設定(268)に従って、前記演算ユニットが管理するデータ(70)の前記ネットワークを介した送信、および、前記ネットワークを介して受信したデータによる前記演算ユニットが管理するデータの更新、を含むデータ転送を実行するように構成されており、
前記交換設定は、前記演算ユニットが管理するデータのうち送信対象のデータ(80)を示す第1の設定と、前記ネットワークを介して送信するデータ(50)を示す第2の設定と、前記演算ユニットが管理するデータのうち更新対象となるデータ(90)を示す第3の設定と、前記ネットワークを介して受信するデータ(60)を示す第4の設定とを含み、
前記中継ユニットは、
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致するか否か、および、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断し、
予め定められた第1の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、前記交換設定に従うデータ転送を実行する、制御システム。
【0142】
[構成2]
前記中継ユニットは、前記第1の状態においては、前記第1の設定が示すデータおよび前記第3の設定が示すデータの周期的な更新、ならびに、前記第2の設定が示すデータおよび前記第4の設定が示すデータの周期的な更新を繰返し実行する、構成1に記載の制御システム。
【0143】
[構成3]
前記中継ユニットは、前記交換設定が存在しなくても、前記第1制御装置とのデータ更新および前記演算ユニットとのデータ更新を継続する、構成2に記載の制御システム。
【0144】
[構成4]
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合に、警告を報知する報知部をさらに備える、構成1~3のいずれか1項に記載の制御システム。
【0145】
[構成5]
前記中継ユニットは、前記第1の設定が示すデータと前記第2の設定が示すデータとのうち一致しているデータ、および、前記第3の設定が示すデータと前記第4の設定が示すデータとのうち一致しているデータ、についてデータ転送を実行する、構成1~4のいずれか1項に記載の制御システム。
【0146】
[構成6]
前記中継ユニットは、予め定められたデータサイズのデータがデータ転送されるように、前記交換設定に基づいてダミーデータを生成する、構成1~5のいずれか1項に記載の制御システム。
【0147】
[構成7]
前記制御システムは、ユーザ操作に応じて、前記交換設定を作成するためのユーザインターフェイス(350)を提供する、構成1~6のいずれか1項に記載の制御システム。
【0148】
[構成8]
前記中継ユニットは、
前記第1の状態とは異なる第2の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合には、前記交換設定に従うデータ転送を停止または無効化する、構成1~7のいずれか1項に記載の制御システム。
【0149】
[構成9]
ユーザによって設定されるモードに応じて、前記第1の状態および前記第2の状態が決定される、構成8に記載の制御システム。
【0150】
[構成10]
ネットワーク(4)を介して他の制御装置(10)と接続された制御装置(20)であって、
制御演算を実行する演算ユニット(200)と、
前記ネットワーク(4)に接続するためのインターフェイス(270)を有する中継ユニット(250)とを備え、
前記中継ユニットは、交換設定(268)に従って、前記演算ユニットが管理するデータ(70)の前記ネットワークを介した送信、および、前記ネットワークを介して受信したデータによる前記演算ユニットが管理するデータの更新、を含むデータ転送を実行するように構成されており、
前記交換設定は、前記演算ユニットが管理するデータのうち送信対象のデータ(80)を示す第1の設定と、前記ネットワークを介して送信するデータ(50)を示す第2の設定と、前記演算ユニットが管理するデータ(90)のうち更新対象となるデータを示す第3の設定と、前記ネットワークを介して受信するデータ(60)を示す第4の設定とを含み、
前記中継ユニットは、
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致するか否か、および、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断し、
予め定められた第1の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、前記交換設定に従うデータ転送を実行する、制御装置。
【0151】
[構成11]
ネットワーク(4)を介して接続された第1制御装置(10)および第2制御装置(20)を備える制御システム(1)における通信方法であって、前記第2制御装置は、制御演算を実行する演算ユニットと、前記ネットワークに接続するためのインターフェイスを有する中継ユニットとを備え、前記通信方法は、
前記中継ユニットが、交換設定(268)に従って、前記演算ユニットが管理するデータ(70)の前記ネットワークを介した送信、および、前記ネットワークを介して受信したデータによる前記演算ユニットが管理するデータの更新、を含むデータ転送を実行するステップを備え、前記交換設定は、前記演算ユニットが管理するデータのうち送信対象のデータ(80)を示す第1の設定と、前記ネットワークを介して送信するデータ(50)を示す第2の設定と、前記演算ユニットが管理するデータのうち更新対象となるデータ(90)を示す第3の設定と、前記ネットワークを介して受信するデータ(60)を示す第4の設定とを含み、
前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致するか否か、および、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致するか否か、のうち少なくとも一方を判断するステップ(S104)と、
予め定められた第1の状態において、前記第1の設定が示すデータと前記第2の設定が示すデータとの間でデータサイズが一致しない場合、および/または、前記第3の設定が示すデータと前記第4の設定が示すデータとの間でデータサイズが一致しない場合であっても、前記中継ユニットが、前記交換設定に従うデータ転送を実行するステップ(S118~S122)とを備える、通信方法。
【0152】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0153】
1 制御システム、3M,31,32~3N 領域、4 フィールドネットワーク、6 内部バス、10 主制御装置、20 副制御装置、30 フレーム、40 制御演算、50 送信データ、60 受信データ、70 プロセスデータ、72,90 入力データ、74,80 出力データ、76 システムデータ、82 システム管理、100,200 演算ユニット、102,202,262 プロセッサ、104,204 チップセット、106,206,264 メモリ、108,208,266 ストレージ、110,210 上位ネットワークインターフェイス、112,212 USBインターフェイス、114,214 メモリカードインターフェイス、116,216 メモリカード、120,270 フィールドネットワークインターフェイス、131,231 システムプログラム、132,232 ユーザプログラム、220,280 内部バスインターフェイス、250 中継ユニット、260 処理回路、268 交換設定、300 サポート装置、350 設定画面、352,354 設定項目群、356 データ候補群、358 追加ボタン、360 削除ボタン。