(57)【要約】【課題】リアルタイム通信部によるリアルタイム通信の遅延を抑制する。【解決手段】実施形態のコントローラは、リアルタイム通信部と、アプリケーション通信部と、ソケット管理部と、を有する。リアルタイム通信部は、複数のノードのうち送信権を持つノードを示す送信権マップに基づいて、第１ソケットを用いて、外部のノードと通信する。アプリケーション通信部は、送信権マップに基づかずに、第１ソケットとは異なる第２ソケットを用いて、外部のノードと通信する。ソケット管理部は、アプリケーション通信部による外部のノードへの情報の送信およびアプリケーション通信部による外部のノードからの情報の受信の少なくとも一方を制限する。【選択図】図２
2020184668.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードのうち送信権を持つノードを示す送信権マップに基づいて、第１ソケットを用いて、外部の前記ノードと通信するリアルタイム通信部と、
前記送信権マップに基づかずに、前記第１ソケットとは異なる第２ソケットを用いて、前記外部のノードと通信するアプリケーション通信部と、
前記アプリケーション通信部による前記外部のノードへの情報の送信および前記アプリケーション通信部による前記外部のノードからの情報の受信の少なくとも一方を制限するソケット管理部と、
を備えるコントローラ。
【請求項２】
前記送信権は、予め設定された順番で、前記複数のノード間を巡回し、
前記ソケット管理部は、前記送信権を得る順番が１つ前の前記外部のノードが、前記送信権を得てから、前記コントローラ自身が前記送信権を持つ間、前記アプリケーション通信部による前記外部のノードからの情報の受信を制限する請求項１に記載のコントローラ。
【請求項３】
前記ソケット管理部は、前記コントローラ自身が前記送信権を持つ間、前記アプリケーション通信部による前記外部のノードへの情報の送信を制限する請求項２に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コントローラに関する。
【背景技術】
【０００２】
産業用のコントローラは、ＬＡＮ（Local  Area  Network）を介した外部のノードとのリアルタイム通信を実現するために、コントローラ内に設けられる送信制御部によって、いずれのノードが送信権を得たかを判定し、その判定結果に基づいて、ノード間での通信のタイミングを制御している。
【０００３】
ところで、ＩｏＴの普及に伴い、ＬＡＮに接続される機器が増加し、同一の通信手順で通信を行うノードのみが接続される専用のＬＡＮではなく、異なる通信手順で通信を行うノードが接続可能なＬＡＮへの要求が高まっている。これは、異なる通信手順で通信を行うノードがＬＡＮを共有することで、ネットワークの敷設にかかるコストや接続用の機器を削減できるためである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２６３４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、異なる通信手順で通信を行うノードが接続されるＬＡＮを構築した場合、ノード間での情報の送受信の制御が機能しなくなり、リアルタイム性を確保しなければならない通信に遅延等の影響が発生する可能性がある。
【課題を解決するための手段】
【０００６】
実施形態のコントローラは、リアルタイム通信部と、アプリケーション通信部と、ソケット管理部と、を有する。リアルタイム通信部は、複数のノードのうち送信権を持つノードを示す送信権マップに基づいて、第１ソケットを用いて、外部のノードと通信する。アプリケーション通信部は、送信権マップに基づかずに、第１ソケットとは異なる第２ソケットを用いて、外部のノードと通信する。ソケット管理部は、アプリケーション通信部による外部のノードへの情報の送信およびアプリケーション通信部による外部のノードからの情報の受信の少なくとも一方を制限する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態にかかるコントローラのハードウェア構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。
【図３】図３は、第１の実施形態にかかるコントローラが記憶するインリングマップの一例を示す図である。
【図４】図４は、第１の実施形態にかかるコントローラによる送信権を得たノードの判定処理の一例を説明するための図である。
【図５】図５は、第１の実施形態にかかるコントローラのリアルタイム通信部による外部のノードへの情報の送信処理の一例を説明するための図である。
【図６】図６は、第２の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。
【図７】図７は、第２の実施形態にかかるコントローラのアプリケーション通信部の通信の制限処理の一例を説明するための図である。
【図８】図８は、第３の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。
【図９】図９は、第３の実施形態にかかるコントローラのアプリケーション通信部の通信の制限処理の一例を説明するための図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を用いて、本実施形態にかかるコントローラの一例について説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態にかかるコントローラのハードウェア構成の一例を示すブロック図である。まず、図１を用いて、本実施形態にかかるコントローラ１のハードウェア構成の一例について説明する。
【００１０】
図１に示すように、本実施形態にかかるコントローラ１は、通信Ｉ／Ｆ１１と、Ｉ／Ｏインターフェース１２と、ＲＡＭ（Random  Access  Memory）１３と、ＨＤＤ（Hard  Disk  Drive）１４と、プロセッサ１５と、ＲＯＭ（Read  Only  Memory）１６と、を備えている。
【００１１】
通信Ｉ／Ｆ１１は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続するためのインターフェースとする。
【００１２】
Ｉ／Ｏインターフェース１２は、コントローラ１が制御／監視対象となる制御・監視機器と接続するためのインターフェースとする。当該制御・監視機器としては、例えば、プラントに設けられた機器等が考えられる。そして、本実施形態のコントローラ１は、当該制御・監視機器との間で信号の送受信を行う。
【００１３】
ＲＡＭ１３は、ＨＤＤ１４により高速に読み書き可能な揮発性メモリであって、コントローラ１が、作業領域として用いるほかに、仮想共有メモリの一部としても用いられる。
【００１４】
ＨＤＤ１４は、情報を読み書き可能な不揮発性の記憶部であって、アプリケーション等が格納される他に、仮想共有メモリの一部としても用いられる。
【００１５】
プロセッサ１５は、コントローラ１全体を制御する制御部として機能する。プロセッサ１５は、ＲＯＭ１６からプログラムを読み出して実行した結果をＲＡＭ１３上に展開することで、各構成が実現される。
【００１６】
図２は、第１の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。まず、図２を用いて、本実施形態にかかるコントローラ１の機能構成の一例について説明する。
【００１７】
本実施形態にかかるコントローラ１は、産業用のコントローラであり、ＬＡＮに接続されるノード（伝送装置）の一例である。コントローラ１には、一定時間内に、ＬＡＮに接続されるノードとの通信が完了するリアルタイム性が要求される。そのため、コントローラ１は、送信権マップに基づいて、予め設定されたソケットを用いて、外部のノードと通信するリアルタイム通信を行う。ここで、送信権マップは、複数のノード（本実施形態では、ＬＡＮに接続されかつリアルタイム通信を行うノード）のうち送信権を持つノードを示すマップである。また、送信権は、予め設定された順番で、複数のノード間を周回（巡回）する。本実施形態では、コントローラ１は、予め設定されたソケットを用いて、外部のノードから情報を受信し、かつ、当該コントローラ１自身が送信権を得た場合に、予め設定されたソケットを用いて、予め設定された送信周期内に、外部のノードへの情報の送信を行うリアルタイム通信を実行する。
【００１８】
リアルタイム通信の実現方法には、ＩＲＴ（Isochronous  Real  Time）、およびＳＲＴ（Soft  Real  Time）の２種類がある。ここで、ＩＲＴは、専用のハードウェアによって、ノード間の通信を実現する方法である。また、ＳＲＴは、専用のハードウェアを用いずに、ソフトウェアによって、ノード間の通信を実現する方法である。本実施形態では、コントローラ１は、ＳＲＴによって、リアルタイム通信を実現するものとする。
【００１９】
具体的には、本実施形態にかかるコントローラ１は、図２に示すように、プロセッサ１５が、ＲＯＭ１６からプログラムを読み出し、ＲＡＭ１３上に展開することにより、ＬＡＮ管理部１０１、送信制御部１０２、リアルタイム通信部１０３、アプリケーション通信部１０４、およびソケット管理部１０５を実現する。ノード記憶部１０６、およびソケット記憶部１０７は、ＲＡＭ１３等の記憶媒体により実現される。
【００２０】
ノード記憶部１０６は、インリングマップ、および送信権マップを記憶する。ここで、インリングマップは、ＬＡＮに接続されるノードのうちリアルタイム通信を行うノードを示すマップである。また、送信権マップは、上述したように、リアルタイム通信を行うノード（本実施形態では、インリングマップが示すノード）のうち送信権を持つノードを示すマップである。
【００２１】
ソケット記憶部１０７は、管理ソケットテーブルおよび通信制限状態を記憶する。ここで、管理ソケットテーブルは、コントローラ１が有する複数のソケットＳ１〜Ｓｎ（ｎは、１以上の整数である。以下の説明では、ソケットＳ１〜Ｓｎを区別する必要が無い場合には、ソケットＳと記載する）のうち、リアルタイム通信に用いるソケットＳの番号（以下、ソケット番号と言う）を示すテーブルである。ここで、ソケットＳは、ＬＡＮを介したノード間での通信に用いられ、固有のポート番号やＩＰアドレスが割り振られたソケット（ポート）である。
【００２２】
また、通信制限状態は、送信制限状態および受信制限状態を含む。ここで、送信制限状態は、アプリケーション通信部１０４による外部のノードへの情報の送信を制限するか否かを示す情報である。また、受信制限状態は、アプリケーション通信部１０４による外部のノードからの情報の受信を制限するか否かを示す情報である。本実施形態では、送信制限状態および受信制限状態は、それぞれ、１ビットの情報であり、初期値として“０”が設定されているものとする。
【００２３】
ＬＡＮ管理部１０１は、後述するリアルタイム通信部１０３による外部のノードとの通信結果に基づいて、ＬＡＮに接続されるノードのうちリアルタイム通信を行うノードを特定する。そして、ＬＡＮ管理部１０１は、リアルタイム通信を行うノードの特定結果に基づいて、インリングマップを生成し、当該生成したインリングマップをノード記憶部１０６に書き込む。
【００２４】
また、ＬＡＮ管理部１０１は、後述するリアルタイム通信部１０３による外部のノードとの通信結果、および予め設定された送信周期に基づいて、リアルタイム通信を行うノードのうち送信権を持つノードを特定する。そして、ＬＡＮ管理部１０１は、送信権を持つノードの特定結果に基づいて、ノード記憶部１０６に記憶される送信権マップを更新する。また、ＬＡＮ管理部１０１は、予め設定された周期で、ノード記憶部１０６から送信権マップを読み込み、当該読み込んだ送信権マップを送信制御部１０２に通知する。
【００２５】
送信制御部１０２は、複数のノードのうちいずれのノードが送信権を持っているかを判定する。本実施形態では、送信制御部１０２は、ＬＡＮ管理部１０１から通知される送信権マップに基づいて、いずれのノードが送信権を得たかを判定する。また、送信制御部１０２は、コントローラ１自身が送信権を得たと判定した場合、コントローラ１自身が送信権を得たことをリアルタイム通信部１０３に通知する。
【００２６】
さらに、送信制御部１０２は、いずれのノードが送信権を持っているかの判定結果に基づいて、アプリケーション通信部１０４による外部のノードとの通信を制限すること、および、アプリケーション通信部１０４による外部のノードとの通信の制限を解除することを、ソケット管理部１０５に通知する。
【００２７】
リアルタイム通信部１０３は、送信権マップに基づいて、コントローラ１が有する複数のソケットＳ１〜Ｓｎのうち予め設定されたソケット（本実施形態では、ソケットＳ２）を用いて、外部のノードと通信するリアルタイム通信を行う。具体的には、リアルタイム通信部１０３は、ソケットＳ２を用いて、外部のノードから情報を受信し、かつ、送信制御部１０２によって、コントローラ１自身が送信権を持つと判定された場合に、ソケットＳ２を用いて、外部のノードに対して情報を送信するリアルタイム通信を行う。
【００２８】
アプリケーション通信部１０４は、送信権マップに基づかずに、複数のソケットＳ１〜Ｓｎのうち、リアルタイム通信に用いられるソケットＳ２とは異なるソケットＳ（本実施形態では、ソケットＳ１）を用いて、外部のノードと通信する。具体的には、アプリケーション通信部１０４は、送信権マップに基づかずに、ソケットＳ１を用いて、外部のノードとの間での情報を送受信する非リアルタイム通信を行う。
【００２９】
ソケット管理部１０５は、ソケットＡＰＩ（Application  Programming  Interface）等であり、ソケットＳを用いた、リアルタイム通信部１０３やアプリケーション通信部１０４等による外部のノードとの通信を制御する。具体的には、ソケット管理部１０５は、アプリケーション通信部１０４による、外部のノードへの情報の送信および外部のノードからの情報の受信を制限する。
【００３０】
これにより、リアルタイム通信とは異なる通信手順に従ってノード間で非リアルタイム通信を行うアプリケーションが含まれている場合に、リアルタイム通信部１０３による外部のノードとの通信（リアルタイム通信）が機能しなくなることを防止できる。その結果、リアルタイム通信部１０３によるリアルタイム通信の遅延を抑制することができる。
【００３１】
ここで、アプリケーション通信部１０４による外部のノードとの非リアルタイム通信を制限するとは、アプリケーション通信部１０４による外部のノードとの情報の通信を停止させたり、アプリケーション通信部１０４による外部のノードとの通信の頻度や単位時間当たりの通信量を減らしたりすることを含む。
【００３２】
本実施形態では、ソケット管理部１０５は、リアルタイム通信部１０３によって、外部のノードとの通信が行われる場合に、ソケットＳ１〜ＳｎのうちソケットＳ２以外のソケットＳの使用を禁止する。これにより、ソケット管理部１０５は、アプリケーション通信部１０４による、外部のノードへの情報の送信および外部のノードからの情報の受信を制限する。
【００３３】
本実施形態では、ソケット管理部１０５は、アプリケーション通信部１０４による、外部のノードへの情報の送信および外部のノードからの情報の受信の両方を制限するものとするが、リアルタイム通信部１０３による、外部のノードへの情報の送信および外部のノードからの情報の受信の少なくとも一方を制限するものであれば、これに限定するものではない。例えば、ソケット管理部１０５は、アプリケーション通信部１０４による外部のノードへの情報の送信のみを制限しても良い。または、ソケット管理部１０５は、アプリケーション通信部１０４による外部のノードからの情報の受信のみを制限しても良い。
【００３４】
次に、図２を用いて、本実施形態にかかるコントローラ１が有するソケット管理部１０５の具体的な機能構成の一例について説明する。
【００３５】
本実施形態では、ソケット管理部１０５は、図２に示すように、送信部１１１、受信部１１２、通信制限部１１３、通信制限解除部１１４、通信制限状態管理部１１５、および管理ソケット登録部１１６を有する。
【００３６】
管理ソケット登録部１１６は、リアルタイム通信部１０３により外部のノードと送受信する情報に基づいて、ソケットＳ１〜Ｓｎのうち、リアルタイム通信に用いるソケットＳ２を特定する。そして、管理ソケット登録部１１６は、特定したソケットＳ２のソケット番号を示す管理ソケットテーブルを、ソケット記憶部１０７に保存する。
【００３７】
通信制限部１１３は、送信制御部１０２から、アプリケーション通信部１０４による外部のノードとの通信を制限することが通知された場合、ソケット記憶部１０７に記憶される送信制限状態および受信制限状態に“１”を設定する。
【００３８】
通信制限解除部１１４は、送信制御部１０２から、アプリケーション通信部１０４による外部のノードとの通信の制限を解除することが通知された場合、ソケット記憶部１０７に記憶される送信制限状態および受信制限状態に“０”を設定する。
【００３９】
すなわち、送信制限状態および受信制限状態は、アプリケーション通信部１０４による外部のノードとの情報の送受信が制限されていない場合には“０”を示す。一方、送信制限状態および受信制限状態は、アプリケーション通信部１０４による外部のノードとの情報の送受信が制限されている場合には、“１”を示す。
【００４０】
通信制限状態管理部１１５は、ソケット記憶部１０７に記憶される通信制限状態（送信制限状態および受信制限状態）および管理ソケットテーブルを読み込み、当該読み込んだ通信制限状態および管理ソケットテーブルを、送信部１１１および受信部１１２に通知する。
【００４１】
送信部１１１は、リアルタイム通信部１０３およびアプリケーション通信部１０４による外部のノードへの情報の送信を制御する。具体的には、送信部１１１は、リアルタイム通信部１０３から外部のノードへの情報の送信が要求された場合、管理ソケットテーブルが示すソケット番号のソケットＳ（例えば、ソケットＳ２）を用いて、外部のノードに対して情報を送信する。
【００４２】
また、送信部１１１は、アプリケーション通信部１０４から外部のノードへの情報の送信が要求された場合、管理ソケットテーブルが示すソケット番号以外のソケット番号のソケットＳ（例えば、ソケットＳ１）を用いて、外部のノードに対して情報を送信する。ただし、通信制限状態管理部１１５から通知される送信制限状態が“１”である場合、送信部１１１は、通信制限状態管理部１１５から通知される管理ソケットテーブルが示すソケット番号示すソケットＳ２以外のソケットＳを用いた外部のノードへの情報の送信を制限する。すなわち、送信部１１１は、アプリケーション通信部１０４による外部のノードへの情報の送信を制限する。
【００４３】
受信部１１２は、リアルタイム通信部１０３およびアプリケーション通信部１０４による外部のノードからの情報の受信を制御する。具体的には、受信部１１２は、リアルタイム通信部１０３から外部のノードからの情報の受信が要求された場合、リアルタイム通信部１０３に予め設定されたソケットＳ２を用いて、外部のノードから情報を受信し、当該受信した情報をリアルタイム通信部１０３に通知する。
【００４４】
また、受信部１１２は、アプリケーション通信部１０４から外部のノードからの情報の受信が要求された場合、アプリケーション通信部１０４に予め設定されたソケットＳ１を用いて、外部のノードから情報を受信し、当該受信した情報をアプリケーション通信部１０４に通知する。ただし、通信制限状態管理部１１５から通知される受信制限状態が“１”である場合、受信部１１２は、通信制限状態管理部１１５から通知される管理ソケットテーブルが示すソケット番号が示すソケットＳ２以外のソケットＳを用いた外部のノードからの情報の受信を制限する。すなわち、受信部１１２は、アプリケーション通信部１０４による外部のノードからの情報の受信を制限する。
【００４５】
図３は、第１の実施形態にかかるコントローラが記憶するインリングマップの一例を示す図である。次に、図３を用いて、本実施形態にかかるコントローラ１のノード記憶部１０６が記憶するインリングマップの一例について説明する。
【００４６】
ＬＡＮに接続される各ノードには、当該各ノードを識別可能とする番号（以下、ノード番号と言う）が割り付けられている。インリングマップは、図３に示すように、各ノードのノード番号に対応する位置（以下、ビット位置と言う）を含み、参加状態が、各ノードのノード番号に対応するビット位置に書き込まれている。ここで、参加状態は、各ノードがリアルタイム通信を行うか否かを示す１ビットの情報である。本実施形態では、参加状態は、ノードがリアルタイム通信を行う場合には“１”を示し、ノードがリアルタイム通信を行わない場合には“０”を示す。
【００４７】
例えば、ノード番号：２５のノードがリアルタイム通信を行う場合には、インリングマップにおいて、ノード番号：２５に対応するビット位置の参加状態は“１”を示す。また、ノード番号：１５のノードがリアルタイム通信を行わない場合には、インリングマップにおいて、ノード番号：１５に対応するビット位置の参加状態は“０”を示す。
【００４８】
ＬＡＮ管理部１０１は、上述したように、リアルタイム通信部１０３による外部のノードとの通信結果に基づいて、ＬＡＮに接続されるノードのうちリアルタイム通信を行うノードを特定する。そして、ＬＡＮ管理部１０１は、リアルタイム通信を行うノードとして特定したノードの参加状態が“１”を示すインリングマップを生成し、当該生成したインリングマップをノード記憶部１０６に書き込む。
【００４９】
図４は、第１の実施形態にかかるコントローラによる送信権を得たノードの判定処理の一例を説明するための図である。次に、図４を用いて、本実施形態にかかるコントローラ１の送信制御部１０２による送信権を得たノードの判定処理の一例について説明する。
【００５０】
本実施形態では、図４に示すように、各ノードに予め設定される優先度を示す送信周期番号に対応付けて、送信周期が予め設定されている。本実施形態では、ＬＡＮ管理部１０１は、図３に示すインリングマップにおいて参加状態が“１”を示すノード番号のノードのうち、ノード番号が小さいノードから順に、送信権を周回（巡回）するものとする。
【００５１】
その際、ＬＡＮ管理部１０１は、送信権を移したノードの優先度を示す送信周期番号に対応する送信周期が経過するか、若しくは、各ノードのリアルタイム通信部１０３による外部のノードへの情報の送信が完了すると、次のノードへ送信権を移す。これにより、ＬＡＮ管理部１０１は、各ノードのリアルタイム通信部１０３による外部のノードへの情報の送信が送信周期内に完了するように、各ノードのリアルタイム通信部１０３による外部のノードへの情報の送信を制御する。
【００５２】
図５は、第１の実施形態にかかるコントローラのリアルタイム通信部による外部のノードへの情報の送信処理の一例を説明するための図である。次に、図５を用いて、本実施形態にかかるコントローラ１のリアルタイム通信部１０３による外部のノードへの情報の送信処理の一例について説明する。
【００５３】
本実施形態では、ＬＡＮ管理部１０１は、外部のノードのＬＡＮ管理部１０１と同期して、図５に示すように、ノード番号：１のノードから順に、昇順で、送信権を周回させる。そして、送信権を得たノードのリアルタイム通信部１０３は、図５に示すように、当該ノードの送信周期番号に対応する送信周期内において、外部のノードへの情報の送信を行う。
【００５４】
これにより、ＬＡＮ管理部１０１は、図５に示すように、予め設定された周回周期内に、リアルタイム通信を行う全てのノードによる情報の送信を完了させる。ここで、周回周期は、ＬＡＮに接続されかつリアルタイム通信を行う全てのノードを１周するのに許容される周期である。
【００５５】
ところで、リアルタイム通信を行う各ノードには、コントローラ１等のように、リアルタイム通信部１０３とは異なる通信手順で外部のノードと通信を行うアプリケーション通信部１０４を備える場合がある。
【００５６】
この場合、アプリケーション通信部１０４による外部のノードとの通信によって、リアルタイム通信部１０３によるリアルタイム通信が機能しなくなり、リアルタイム通信に遅延等の影響が発生する可能性がある。
【００５７】
また、リアルタイム通信を行う全てのノードのリアルタイム通信部１０３が、各ノードの送信周期を最大限に使って、外部のノードへの情報の送信を行うと、周回周期内に、リアルタイム通信を行う全てのノードによる情報の送信を完了させることができない場合がある。
【００５８】
そこで、本実施形態では、通信制限状態管理部１１５から通知される送信制限状態が“０”である場合、送信部１１１は、アプリケーション通信部１０４からの外部のノードへの情報の送信の要求に応じて、外部のノードに対して情報を送信する。また、通信制限状態管理部１１５から通知される受信制限状態が“０”である場合、受信部１１２は、アプリケーション通信部１０４からの外部のノードからの情報の受信の要求に応じて、外部のノードから情報を受信し、当該受信した情報をアプリケーション通信部１０４に通知する。
【００５９】
一方、送信部１１１は、通信制限状態管理部１１５から通知される送信制限状態が“１”である場合、外部のノードへの情報の送信に用いているソケットＳのソケット番号が、管理ソケットテーブルが示すソケット番号と一致するか否かを判断する。
【００６０】
そして、外部のノードへの情報の送信に用いているソケットＳのソケット番号が、管理ソケットテーブルが示すソケット番号と一致する場合、送信部１１１は、外部のノードへの情報の送信に用いているソケットＳがリアルタイム通信部１０３により用いられるソケットＳと判断して、外部のノードへの情報の送信を継続する。
【００６１】
一方、外部ノードへの情報の送信に用いているソケットＳのソケット番号が、管理ソケットテーブルが示すソケット番号と一致しない場合、送信部１１１は、外部のノードへの情報の送信に用いているソケットＳがアプリケーション通信部１０４により用いられるソケットＳと判断して、当該ソケットＳを用いた外部のノードへの情報の送信を継続せずに停止する。
【００６２】
その際、送信部１１１は、アプリケーション通信部１０４に対して、外部のノードへの情報の送信のエラー番号を通知する。ここで、アプリケーション通信部１０４に通知するエラー番号は、一時的に、外部のノードへ情報を送信することができないため、予め設定された時間後に、再度、外部のノードへの情報の送信を要求することを指示する番号である。
【００６３】
また、受信部１１２は、通信制限状態管理部１１５から通知される受信制限状態が“１”である場合、外部のノードからの情報の受信に用いているソケットＳのソケット番号が、管理ソケットテーブルが示すソケット番号と一致するか否かを判断する。
【００６４】
そして、外部のノードからの情報の受信に用いているソケットＳのソケット番号が、管理ソケットテーブルが示すソケット番号と一致する場合、受信部１１２は、外部のノードからの情報の受信に用いているソケットＳがリアルタイム通信部１０３により用いられるソケットＳと判断して、外部のノードからの情報の受信を継続する。
【００６５】
一方、外部のノードからの情報の受信に用いているソケットＳのソケット番号が、管理ソケットテーブルが示すソケット番号と一致しない場合、受信部１１２は、外部のノードからの情報の受信に用いているソケットＳがアプリケーション通信部１０４により用いられるソケットＳと判断して、当該ソケットＳを用いた外部のノードからの情報の受信を継続せずに停止する。
【００６６】
その際、受信部１１２は、アプリケーション通信部１０４に対して、外部のノードからの情報の受信のエラー番号を通知する。ここで、アプリケーション通信部１０４に通知するエラー番号は、一時的に、外部のノードから情報を受信することができないため、予め設定された時間後に、再度、外部のノードからの情報の受信を要求することを指示する番号である。
【００６７】
このように、第１の実施形態にかかるコントローラ１によれば、リアルタイム通信とは異なる通信手順に従ってノード間で通信を行うアプリケーションが含まれている場合に、リアルタイム通信部１０３による外部のノードとの通信（リアルタイム通信）が機能しなくなることを防止できる。その結果、リアルタイム通信部１０３によるリアルタイム通信の遅延を抑制することができる。
【００６８】
（第２の実施形態）
本実施形態は、送信順番が１つ前の外部のノードが、送信権を得てから、コントローラ自身が送信権を持つ間、アプリケーション通信部による外部のノードからの情報の受信を制限する例である。以下の説明では、第１の実施形態と同様の構成については説明を省略する。
【００６９】
図６は、第２の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。本実施形態にかかるコントローラ６００は、図６に示すように、ＬＡＮ管理部１０１、送信制御部１０２、リアルタイム通信部１０３、アプリケーション通信部１０４、ソケット管理部６０１、ノード記憶部１０６、およびソケット記憶部１０７を有する。また、ソケット管理部６０１は、図６に示すように、送信部１１１、受信部１１２、通信制限部６０２、通信制限解除部１１４、通信制限状態管理部１１５、および管理ソケット登録部１１６を有する。
【００７０】
ＬＡＮ管理部１０１は、リアルタイム通信部１０３による外部のノードとの通信結果に基づいて、送信権を持つノードによる情報の送信が予め設定された期間内に完了したか否かを検出する。そして、ＬＡＮ管理部１０１は、送信権を持つノードによる情報の送信が予め設定された期間内に完了しなかった場合には、当該ノードによる情報の送信の完了を待たずに、次の送信順番のノードへ送信権を移す。
【００７１】
ところで、アプリケーション通信部１０４による通信によって、リアルタイム通信部１０３による外部のノードとの通信に遅延が発生し、送信権を持つノードによる情報の送信が予め設定された期間内に完了したか否かを検出が遅れると、次の送信順番のノードに対して送信権を移すタイミングが遅れる。
【００７２】
そこで、本実施形態では、ソケット管理部６０１は、送信制御部１０２によって、送信順番がコントローラ６００自身の１つ前のノードが送信権を持つと判定されてから、コントローラ６００自身が、送信権を持つ間、アプリケーション通信部１０４による外部のノードからの情報の受信を制限する。
【００７３】
これにより、リアルタイム通信部１０３による送信順番が１つ前のノードからの情報の受信の遅延を抑制して、当該１つ前のノードによる情報の送信が予め設定された期間内に完了したか否かを検出が遅れることを防止できる。その結果、コントローラ６００自身に送信権が移るタイミングが遅れることを防止でき、リアルタイム通信の遅延を削減できる。
【００７４】
具体的には、送信制御部１０２によって、１つ前のノードが送信権を得たと判定されると、通信制限部６０２は、ソケット記憶部１０７に記憶される受信制限状態に“１”を設定する。
【００７５】
受信部１１２は、受信制限状態が“１”になると、管理ソケットテーブルが含むソケット番号が示すソケットＳ２以外のソケットＳを用いた外部のノードからの情報の受信を制限する。すなわち、受信部１１２は、１つ前のノードが送信権を得た際に、アプリケーション通信部１０４による外部のノードからの情報の受信を制限する。
【００７６】
その後、通信制限解除部１１４は、送信制御部１０２によって、送信順番がコントローラ１自身の次のノードに送信権が移ったと判定されると、ソケット記憶部１０７に記憶される受信制限状態に“０”を設定する。
【００７７】
受信部１１２は、受信制限状態が“０”になると、管理ソケットテーブルが示すソケット番号が示すソケットＳ２以外のソケットＳを用いた外部のノードからの情報の受信を再開する。
【００７８】
図７は、第２の実施形態にかかるコントローラのアプリケーション通信部の通信の制限処理の一例を説明するための図である。次に、図７を用いて、本実施形態にかかるコントローラ６００におけるアプリケーション通信部１０４の通信の制限処理の一例について説明する。
【００７９】
例えば、コントローラ６００がノード番号：３のノードである場合、通信制限部６０２は、送信制御部１０２によって、送信順番が１つ前のノード番号：２のノードが送信権を得たと判定されると、ソケット記憶部１０７に記憶される受信制限状態に“１”を設定する。
【００８０】
これにより、受信部１１２は、送受順番が１つ前のノード番号：２のノードが送信権を得てから、コントローラ６００自身が送信権を持っている間、アプリケーション通信部１０４による外部のノードからの情報の受信を制限する。
【００８１】
このように、第２の実施形態にかかるコントローラ６００によれば、リアルタイム通信部１０３による送信順番が１つ前のノードからの情報の受信の遅延を抑制して、当該１つ前のノードによる情報の送信が予め設定された期間内に完了したか否かの検出が遅れることを防止できる。その結果、コントローラ１自身に送信権が移るタイミングが遅れることを防止でき、リアルタイム通信の遅延を削減できる。
【００８２】
（第３の実施形態）
本実施形態では、コントローラ自身が送信権を持つ間、アプリケーション通信部による外部のノードへの情報の送信を制限する例である。以下の説明では、第２の実施形態と同様の構成については説明を省略する。
【００８３】
図８は、第３の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。本実施形態にかかるコントローラ８００は、図８に示すように、ＬＡＮ管理部１０１、送信制御部１０２、リアルタイム通信部１０３、アプリケーション通信部１０４、ソケット管理部８０１、ノード記憶部１０６、およびソケット記憶部１０７を有する。また、ソケット管理部６０１は、図８に示すように、送信部１１１、受信部１１２、通信制限部８０２、通信制限解除部１１４、通信制限状態管理部１１５、および管理ソケット登録部１１６を有する。
【００８４】
本実施形態では、ソケット管理部８０１は、送信制御部１０２によって、コントローラ１自身が送信権を持つと判定されている間、アプリケーション通信部１０４による外部のノードへの情報の送信を制限する。これにより、アプリケーション通信部１０４による外部のノードからの情報の受信の制限に加えて、アプリケーション通信部１０４による外部のノードへの情報の送信も制限できる。その結果、リアルタイム通信部１０３による外部のノードへの情報の送信が遅延をより削減することができる。
【００８５】
具体的には、送信制御部１０２によって、コントローラ１自身が送信権を得たと判定されると、通信制限部６０２は、ソケット記憶部１０７に記憶される送信制限状態に“１”を設定する。
【００８６】
送信部１１１は、送信制限状態が“１”になると、管理ソケットテーブルが含むソケット番号が示すソケットＳ２以外のソケットＳを用いた外部のノードへの情報の送信を制限する。すなわち、送信部１１１は、コントローラ１自身が送信権を得た際に、アプリケーション通信部１０４による外部のノードへの情報の送信を制限する。
【００８７】
その後、通信制限解除部１１４は、送信制御部１０２によって、送信順番がコントローラ１自身の次のノードに送信権が移ったと判定されると、ソケット記憶部１０７に記憶される送信制限状態に“０”を設定する。
【００８８】
図９は、第３の実施形態にかかるコントローラのアプリケーション通信部の通信の制限処理の一例を説明するための図である。次に、図９を用いて、本実施形態にかかるコントローラ８００におけるアプリケーション通信部１０４による通信の制限処理の一例について説明する。
【００８９】
例えば、コントローラ８００がノード番号：３のノードである場合、送信制御部１０２によって、ノード番号：３のノードが送信権を得たと判定されると、通信制限部８０２は、ソケット記憶部１０７に記憶される送信制限状態に“１”を設定する。これにより、送信部１１１は、コントローラ８００自身が送信権を持っている間、アプリケーション通信部１０４による外部のノードへの情報の送信を制限する。
【００９０】
このように、第３の実施形態にかかるコントローラ６００によれば、アプリケーション通信部１０４による外部のノードからの情報の受信の制限に加えて、アプリケーション通信部１０４による外部のノードへの情報の送信も制限できる。その結果、リアルタイム通信部１０３による外部のノードへの情報の送信が遅延をより削減することができる。
【００９１】
以上説明したとおり、第１から第３の実施形態によれば、リアルタイム通信部１０３によるリアルタイム通信の遅延を抑制することができる。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９３】
１，６００，８００  コントローラ
１３  ＲＡＭ
１５  プロセッサ
１６  ＲＯＭ
１０１  ＬＡＮ管理部
１０２  送信制御部
１０３  リアルタイム通信部
１０４  アプリケーション通信部
１０５，６０１，８０１  ソケット管理部
１０６  ノード記憶部
１０７  ソケット記憶部
１１１  送信部  
１１２  受信部
１１３，６０２，８０２  通信制限部
１１４  通信制限解除部
１１５  通信制限状態管理部
１１６  管理ソケット登録部
Ｓ  ソケット
【図１】
2020184668.tif 000003
【図２】
2020184668.tif 000004
【図３】
2020184668.tif 000005
【図４】
2020184668.tif 000006
【図５】
2020184668.tif 000007
【図６】
2020184668.tif 000008
【図７】
2020184668.tif 000009
【図８】
2020184668.tif 000010
【図９】
2020184668.tif 000011
【手続補正書】
【提出日】令和2年9月15日(2020.9.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
具体的には、本実施形態にかかるコントローラ１は、図２に示すように、プロセッサ１５が、ＲＯＭ１６からプログラムを読み出し、ＲＡＭ１３上に展開することにより、ＬＡＮ管理部１０１、送受信制御部１０２、リアルタイム通信部１０３、アプリケーション通信部１０４、およびソケット管理部１０５を実現する。ノード記憶部１０６、およびソケット記憶部１０７は、ＲＡＭ１３等の記憶媒体により実現される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
また、ＬＡＮ管理部１０１は、後述するリアルタイム通信部１０３による外部のノードとの通信結果、および予め設定された送信周期に基づいて、リアルタイム通信を行うノードのうち送信権を持つノードを特定する。そして、ＬＡＮ管理部１０１は、送信権を持つノードの特定結果に基づいて、ノード記憶部１０６に記憶される送信権マップを更新する。また、ＬＡＮ管理部１０１は、予め設定された周期で、ノード記憶部１０６から送信権マップを読み込み、当該読み込んだ送信権マップを送受信制御部１０２に通知する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
送受信制御部１０２は、複数のノードのうちいずれのノードが送信権を持っているかを判定する。本実施形態では、送受信制御部１０２は、ＬＡＮ管理部１０１から通知される送信権マップに基づいて、いずれのノードが送信権を得たかを判定する。また、送受信制御部１０２は、コントローラ１自身が送信権を得たと判定した場合、コントローラ１自身が送信権を得たことをリアルタイム通信部１０３に通知する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
さらに、送受信制御部１０２は、いずれのノードが送信権を持っているかの判定結果に基づいて、アプリケーション通信部１０４による外部のノードとの通信を制限すること、および、アプリケーション通信部１０４による外部のノードとの通信の制限を解除することを、ソケット管理部１０５に通知する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
リアルタイム通信部１０３は、送信権マップに基づいて、コントローラ１が有する複数のソケットＳ１〜Ｓｎのうち予め設定されたソケット（本実施形態では、ソケットＳ２）を用いて、外部のノードと通信するリアルタイム通信を行う。具体的には、リアルタイム通信部１０３は、ソケットＳ２を用いて、外部のノードから情報を受信し、かつ、送受信制御部１０２によって、コントローラ１自身が送信権を持つと判定された場合に、ソケットＳ２を用いて、外部のノードに対して情報を送信するリアルタイム通信を行う。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
通信制限部１１３は、送受信制御部１０２から、アプリケーション通信部１０４による外部のノードとの通信を制限することが通知された場合、ソケット記憶部１０７に記憶される送信制限状態および受信制限状態に“１”を設定する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
通信制限解除部１１４は、送受信制御部１０２から、アプリケーション通信部１０４による外部のノードとの通信の制限を解除することが通知された場合、ソケット記憶部１０７に記憶される送信制限状態および受信制限状態に“０”を設定する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
図４は、第１の実施形態にかかるコントローラによる送信権を得たノードの判定処理の一例を説明するための図である。次に、図４を用いて、本実施形態にかかるコントローラ１の送受信制御部１０２による送信権を得たノードの判定処理の一例について説明する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
図６は、第２の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。本実施形態にかかるコントローラ６００は、図６に示すように、ＬＡＮ管理部１０１、送受信制御部１０２、リアルタイム通信部１０３、アプリケーション通信部１０４、ソケット管理部６０１、ノード記憶部１０６、およびソケット記憶部１０７を有する。また、ソケット管理部６０１は、図６に示すように、送信部１１１、受信部１１２、通信制限部６０２、通信制限解除部１１４、通信制限状態管理部１１５、および管理ソケット登録部１１６を有する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
そこで、本実施形態では、ソケット管理部６０１は、送受信制御部１０２によって、送信順番がコントローラ６００自身の１つ前のノードが送信権を持つと判定されてから、コントローラ６００自身が、送信権を持つ間、アプリケーション通信部１０４による外部のノードからの情報の受信を制限する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
具体的には、送受信制御部１０２によって、１つ前のノードが送信権を得たと判定されると、通信制限部６０２は、ソケット記憶部１０７に記憶される受信制限状態に“１”を設定する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
その後、通信制限解除部１１４は、送受信制御部１０２によって、送信順番がコントローラ１自身の次のノードに送信権が移ったと判定されると、ソケット記憶部１０７に記憶される受信制限状態に“０”を設定する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
例えば、コントローラ６００がノード番号：３のノードである場合、通信制限部６０２は、送受信制御部１０２によって、送信順番が１つ前のノード番号：２のノードが送信権を得たと判定されると、ソケット記憶部１０７に記憶される受信制限状態に“１”を設定する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
図８は、第３の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。本実施形態にかかるコントローラ８００は、図８に示すように、ＬＡＮ管理部１０１、送受信制御部１０２、リアルタイム通信部１０３、アプリケーション通信部１０４、ソケット管理部８０１、ノード記憶部１０６、およびソケット記憶部１０７を有する。また、ソケット管理部６０１は、図８に示すように、送信部１１１、受信部１１２、通信制限部８０２、通信制限解除部１１４、通信制限状態管理部１１５、および管理ソケット登録部１１６を有する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
本実施形態では、ソケット管理部８０１は、送受信制御部１０２によって、コントローラ１自身が送信権を持つと判定されている間、アプリケーション通信部１０４による外部のノードへの情報の送信を制限する。これにより、アプリケーション通信部１０４による外部のノードからの情報の受信の制限に加えて、アプリケーション通信部１０４による外部のノードへの情報の送信も制限できる。その結果、リアルタイム通信部１０３による外部のノードへの情報の送信が遅延をより削減することができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
具体的には、送受信制御部１０２によって、コントローラ１自身が送信権を得たと判定されると、通信制限部６０２は、ソケット記憶部１０７に記憶される送信制限状態に“１”を設定する。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
その後、通信制限解除部１１４は、送受信制御部１０２によって、送信順番がコントローラ１自身の次のノードに送信権が移ったと判定されると、ソケット記憶部１０７に記憶される送信制限状態に“０”を設定する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
例えば、コントローラ８００がノード番号：３のノードである場合、送受信制御部１０２によって、ノード番号：３のノードが送信権を得たと判定されると、通信制限部８０２は、ソケット記憶部１０７に記憶される送信制限状態に“１”を設定する。これにより、送信部１１１は、コントローラ８００自身が送信権を持っている間、アプリケーション通信部１０４による外部のノードへの情報の送信を制限する。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
１，６００，８００  コントローラ
１３  ＲＡＭ
１５  プロセッサ
１６  ＲＯＭ
１０１  ＬＡＮ管理部
１０２  送受信制御部
１０３  リアルタイム通信部
１０４  アプリケーション通信部
１０５，６０１，８０１  ソケット管理部
１０６  ノード記憶部
１０７  ソケット記憶部
１１１  送信部
１１２  受信部
１１３，６０２，８０２  通信制限部
１１４  通信制限解除部
１１５  通信制限状態管理部
１１６  管理ソケット登録部
Ｓ  ソケット
【手続補正２０】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2020184668.tif 000012
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2020184668.tif 000013
【手続補正２２】
【補正対象書類名】図面
【補正対象項目名】図８
【補正方法】変更
【補正の内容】
【図８】
2020184668.tif 000014