(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024017943
(43)【公開日】2024-02-08
(54)【発明の名称】サーバ装置、通信装置、及び制御システム
(51)【国際特許分類】
H04L 67/141 20220101AFI20240201BHJP
【FI】
H04L67/141
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022120927
(22)【出願日】2022-07-28
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100125151
【弁理士】
【氏名又は名称】新畠 弘之
(72)【発明者】
【氏名】大西 直哉
(72)【発明者】
【氏名】中谷 博司
(72)【発明者】
【氏名】平野 竜馬
(72)【発明者】
【氏名】松山 拓紀
(72)【発明者】
【氏名】高柳 洋一
(72)【発明者】
【氏名】岡部 基彦
(57)【要約】
【課題】本実施形態における課題は、ネットワークを介した制御をより安定的に行えるサーバ装置、通信装置、及び、制御システムを提供する。
【解決手段】本実施形態によれば、サーバ装置は、通信部と、判定部と、制御演算部と、を備える。通信部は、複数の異なる接続情報毎に同一の第1信号をそれぞれ含む複数の第1パケットを、ネットワークを介して順に受信する。判定部は、第1パケットに含まれる第1信号が受信済みであるか否かを判定する。制御演算部は、判定に基づき、受信済みでない場合には、第1信号に応じた第2信号を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の異なる接続情報毎に同一の第1信号をそれぞれ含む複数の第1パケットを、ネットワークを介して順に受信する通信部と、
前記第1パケットに含まれる前記第1信号が受信済みであるか否かを判定する判定部と、
前記判定に基づき、受信済みでない場合には、前記第1信号に応じた第2信号を生成する制御演算部と、
を備える、サーバ装置。
【請求項2】
前記ネットワークを介した複数の個別の接続要求に対して、前記複数の異なる接続情報のいずれかを前記ネットワークを介して付与する接続部、を更に備え、
前記判定部は、前記複数の異なる接続情報のいずれかを有する前記第1パケットに対して、前記第1信号が受信済みであるか否かを判定する、請求項1に記載のサーバ装置。
【請求項3】
前記複数の異なる接続情報のいずれかを前記第2信号にそれぞれ付与した複数の第2パケットを生成する第1生成部を更に備え、
前記通信部は、前記複数の第2パケットを、前記ネットワークを介して送信する、請求項1又は2に記載のサーバ装置。
【請求項4】
前第1生成部は、前記複数の第2パケットの送信間隔を変更可能である、請求項3に記載のサーバ装置。
【請求項5】
前記第1生成部は、複数の異なる接続情報のいずれかに対応し、対応する接続情報を前記第2信号に付与した第2パケットを生成する複数の生成部を有し、
前記複数の生成部は、前記通信部を介して、前記複数の第2パケットを、前記ネットワークに独立に送信する、請求項3に記載のサーバ装置。
【請求項6】
前記複数の接続要求は、複数の個別の送信部、或いは複数の個別の通信装置に対応する、請求項3に記載のサーバ装置。
【請求項7】
前記接続部は、送信周期と、送信回数と、通信時間と、の組み合わせに基づき、前記複数の異なる接続情報の発行数を決定する、請求項2に記載のサーバ装置。
【請求項8】
前記第1生成部は、前記ネットワークの負荷と、パケットロス率と、通信時間との組み合わせに基づき、前記複数の第2パケットの送信回数と送信間隔を動的に変更する、請求項3に記載のサーバ装置。
【請求項9】
前記第1生成部は、前記第2パケットを生成する順番に応じて、前記複数の異なる接続情報を順に繰り返し付与する、請求項3に記載のサーバ装置。
【請求項10】
前記第1生成部は、前記複数の前記第2パケットのうちの送信中のフラグに基づき、前記複数の異なる接続情報のなかの送信中の前記第2パケットに使用していない接続情報を、生成する前記第2パケットに付与する、請求項3に記載のサーバ装置。
【請求項11】
前第1生成部は、通信装置の識別番号に対応する接続情報、何周期目の送信であるかを示す送信周期、及び同じ周期内で何回送信したかを示す送信回数の少なくともいずれかを前記第2パケットに含ませる、請求項3に記載のサーバ装置。
【請求項12】
複数の接続要求を通信対象の装置にネットワークを介して要求する第2接続部と、
前記複数の接続要求にそれぞれ対応する複数の接続情報のいずれかを第1信号に付与した複数の第1パケットを生成する第2生成部と、
前記複数の第1パケットを、前記ネットワークを介して順に送信する第2通信部と、
を備える、通信装置。
【請求項13】
サーバ装置と、通信装置と、を備える制御システムであって、
前記サーバ装置は、
ネットワークを介した複数の個別の接続要求に対して、前記複数の異なる接続情報のいずれかを前記ネットワークを介して付与する接続部と、
前記複数の異なる接続情報毎に同一の第1信号をそれぞれ含む複数の第1パケットを、前記ネットワークを介して順に受信する通信部と、
前記複数の第1パケットに含まれる前記第1信号が受信済みであるか否かを判定する判定部と、
前記判定に基づき、受信済みでない場合には、前記第1信号に応じた第2信号を生成する制御演算部と、
を有し、
前記通信装置は、
複数の個別の送信部にそれぞれ対応する前記複数の個別の接続要求を、前記ネットワークを介して前記サーバ装置に要求する第2接続部と、
前記ネットワークを介して取得した前記複数の異なる接続情報のいずれかを前記第1信号にそれぞれ付与した前記複数の第1パケットを生成する第2生成部と、
前記複数の第1パケットを、前記ネットワークを介して前記サーバ装置に順に送信する第2通信部と、
を有する、制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、サーバ装置、通信装置、及び制御システムに関する。
【背景技術】
【0002】
PLC(Programmable Logic Controller:プログラマブルロジックコントローラ)等で行われているシーケンス制御やプロセス制御を、インターネットなどのネットワークを介したサーバ装置で実行する制御システムが検討されている。工場や産業システム等の制御システムは一定周期でリアルタイムに動作する。システムを正常に制御するために、ネットワーク遅延等が発生しても、入出力のデータを一定時間以内に伝送することが要求される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、インターネットなどのネットワークは通信帯域や通信遅延が保証されていないため、ネットワークを介して制御を行うと、一定周期内に目的とする制御を行うことができない恐れがある。また、複数のサーバ装置を用いても、突発的な通信遅延が発生する可能性があり、一定周期の制御を行うことができない恐れがある。さらに、制御システムのセキュリティ等を考慮して、エッジ側のネットワークにファイアウォールやプロキシサーバが配置されていると、UDP(User Datagram Protocol)等のリアルタイム通信に向いた通信プロトコルを使うことができない場合がある。
【0005】
このような課題を解決するため、本実施形態における課題は、ネットワークを介した制御をより安定的に行えるサーバ装置、通信装置、及び、制御システムを提供することである。
【課題を解決するための手段】
【0006】
本実施形態によれば、サーバ装置は、通信部と、判定部と、制御演算部と、を備える。通信部は、複数の異なる接続情報毎に同一の第1信号をそれぞれ含む複数の第1パケットを、ネットワークを介して順に受信する。判定部は、第1パケットに含まれる第1信号が受信済みであるか否かを判定する。制御演算部は、判定に基づき、受信済みでない場合には、第1信号に応じた第2信号を生成する。
【発明の効果】
【0007】
ネットワークを介した制御をより安定的に行える。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係る制御システムの構成例を示す図。
【
図2】接続部が使用する送信用接続情報の例を示す表。
【
図3】送信管理部が送信する入力信号パケットの構成例を示す図。
【
図4】送信中フラグを用いて接続情報を参照する場合の方法例を示す表。
【
図5】送信管理部が使用する出力信号パケットの構成例を示す図。
【
図7】サーバ装置に入力信号を送信する通信シーケンス図。
【
図8】サーバ装置から通信装置に出力信号を送信する通信シーケンス図。
【
図9】第2実施形態に係る制御システムの構成例を示す図。
【
図10】第2実施形態に係る初期接続の通信シーケンスの例を示す図。
【
図11】通信装置からサーバ装置に入力信号を送信する通信シーケンス図。
【
図12】サーバ装置から通信装置に出力信号を送信する通信シーケンス図。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態に係るサーバ装置、通信装置、及び制御システムについて、図面を参照しながら詳細に説明する。なお、以下に示す実施形態は、本発明の実施形態の一例であって、本発明はこれらの実施形態に限定して解釈されるものではない。また、本実施形態で参照する図面において、同一部分又は同様な機能を有する部分には同一の符号又は類似の符号を付し、その繰り返しの説明は省略する場合がある。また、図面の寸法比率は説明の都合上実際の比率とは異なる場合や、構成の一部が図面から省略される場合がある。
【0010】
(第1実施形態)
(構成)
図1は、第1実施形態に係る制御システムの構成例を示す図である。
図1に示すように、制御システム1は、サーバ装置10と、通信装置20とを備える。サーバ装置10と通信装置20とは、ネットワーク40を介して接続される。すなわち、このサーバ装置10は、例えば、CPU(Censral Processing Unis)、メモリ、ストレージ等を備える計算機であり、ネットワーク40及び通信装置20を介して、アクチュエータ等の機器を制御する。
【0011】
入力装置41は、アクチュエータ等の機器の状態情報を生成するセンサ等から得られるデータである入力信号を入力する。出力装置42は、例えばサーバ装置10の制御対象となるアクチュエータ等の機器である。すなわち、サーバ装置10は、通信装置20及びネットワーク40を介して取得した入力信号に応じて、制御用の出力信号を生成する。そして、サーバ装置10は、ネットワーク40及び通信装置20を介して、出力信号を出力装置42に出力する。なお、本実施形態に係る入力信号が第1信号に対応し、出力信号が第2信号に対応する。
【0012】
より具体的には、サーバ装置10は、制御演算部11と、接続部12と、受信部13と、送信部14と、通信部19とを備える。受信部13は、受信用接続情報を記憶する受信用接続情報記憶部15と、冗長パケット判定部16とを有する。また、送信部14は、送信用接続情報を記憶する送信用接続情報記憶部17と、送信管理部18とを有する。さらにまた、サーバ装置10は、例えばメモリに記憶されるプログラムを実行することにより、制御演算部11と、接続部12と、受信部13と、送信部14と、通信部19とを構成することが可能である。なお、本実施形態に係る冗長パケット判定部16が判定部に対応する。また、本実施形態に係る送信管理部18が第1生成部に対応する。また、本実施形態に係る接続部12を接続受付部と称する場合がある。
【0013】
通信装置20は、例えば、CPU(Censral Processing Unis)とメモリとを有し、接続部21と、受信部23と、送信部22と、通信部28と、信号入力部29と、信号出力部30と、を備える。送信部22は、送信部14と同等の構成であり、送信用接続情報を記憶する送信用接続情報記憶部24と、送信管理部25とを有する。受信部23は、また、受信部13と同等の構成であり、受信用接続情報を記憶する受信用接続情報記憶部26と、冗長パケット判定部27とを有する。この通信装置20は、例えばメモリに記憶されるプログラムを実行することにより、接続部21と、受信部23と、送信部22と、通信部28と、信号入力部29と、信号出力部30とを構成することが可能である。なお、本実施形態に係る冗長パケット判定部27が判定部に対応し、送信管理部25が第2生成部に対応する。また、本実施形態に係る接続部21が第2接続部に対応し、通信部28が第2通信部に対応する。
【0014】
まず、通信装置20側のより具体的な構成を説明する。
図2は、接続部21が使用する送信用接続情報の例を示す表である。
図2に示すように、送信用接続情報は、送信を行う一つの装置に割振られる固有番号である。ID0~4は、個別の送信部、或いは、個別の通信装置に対応する。例えば、ID0~4には、それぞれ、送信用接続情報として10~14が割振られている。つまり、本実施形態に係るID0~4は、例えば独立した送信部(或いは後述する送受信部)、或いは、独立した通信装置それぞれ対応させることが可能である。これにより、本実施形態に係る通信装置20は一装置であるが、複数の通信装置、或いは、複数の送信部(或いは後述する送受信部)に対する通信処理と同等の通信処理を通信装置20に対して行うことが可能となる。
【0015】
接続部21は、サーバ装置10の接続部12に対してID0~4のそれぞれの接続要求を、ネットワーク40を介して送信する。接続要求を、ネットワーク40を介して受け付けたサーバ装置10の接続部12は、接続応答として、ID0~4のそれぞれに対応する送信用接続情報として10~14を、ネットワーク40を介して通信装置20に送信する。これにより、ID0~4のそれぞれには、送信用接続情報10~14が割振られる。このため、上述したように、本実施形態に係る制御システム1では、通信装置20は一装置であるが、ネットワーク40を介して受信する側は、IDの数に対応する通信装置、或いは、IDの数に対応する送信部が実在するように通信を行うことが可能となる。
【0016】
また、接続部21は、例えば一組となるID0~4の情報を予めサーバ装置10側に通知することが可能である。接続部21は、送信部22の送信用接続記憶部24、及び受信部23の受信用接続情報記憶部26に、一組となるID0~4に対応する送信用接続情報10~14を送信用接続情報、或いは受信用接続情報として記憶させる。このように、送信用接続記憶部24は、通信の確立後に、一組となるID0~4に対応する送信用接続情報10~14を送信用接続情報として記憶する。同様に、受信用接続情報記憶部26は、通信の確立後に、一組となるID0~4に対応する送信用接続情報10~14を受信用接続情報として記憶する。
【0017】
図3は、通信装置20の送信管理部25が送信する入力信号パケットの構成例を示す図である。入力信号パケットは、通信装置の識別番号である装置ID、何周期目の送信であるかを示す送信周期、同じ周期内で何回送信したかを示す送信回数、入力信号のデータで構成される。なお。本実施形態に係る入力信号パケットが第1パケットに対応する。
【0018】
送信管理部25は、同一の送信信号を、同じ周期で連続送信する際には、送信周期に同じ値を格納し、送信回数はインクリメントする。また、送信管理部25は、次の周期に送信する際は、送信周期はインクリメントし、送信回数を初期値に戻す。なお、何回目に送信したパケットが届いたかを判定する必要がない場合、送信回数は省略可能である。また、1台のサーバ装置10に対して通信装置20が1台しかない場合、装置IDも省略可能である場合がある。
【0019】
送信管理部25は、例えば1周期に同一の送信信号を10回送信する場合がある。この場合、送信管理部25は、例えば接続数が5個の場合、送信用接続情報であるファイルディスクリプタを10→11→12→13→14→10→11…のように接続順に使用する。このように、各パケットの装置IDには、ラウンドロビン方式では、送信用接続情報10~14が順に割振られた後に、再び送信用接続情報10~14が順に割振られる。例えば、一番目の送信周期である場合には、各パケットの送信周期に1が割振られる。そして、各パケットの送信回数には、0から9が順に割り振られる。このように、送信管理部25は、パケットを生成する順番に応じて、前記複数の異なる接続情報を順に繰り返し付与する。
【0020】
より具体的には、送信管理部25は、例えば(送信用接続情報、送信周期、送信回数)の情報を、(10、0、0)、(11、0、1)、(12、0、2)、(13、0、3)、(14、0、4)、(10、0、5)、(11、0、6)、(12、0、7)、(13、0、8)、(14、0、9)のように、同一の送信信号に対して各パケットのデータヘッドに順に割振ることが可能である。このように、送信管理部25は、あたかも送信用接続情報10~14を有する5台の通信装置が、各パケットを送信しているように、(送信用接続情報、送信周期、送信回数)を順に割振ることが可能である。すなわち、同一の入力信号が、送信用接続情報と送信回数を変えて、繰り返し、通信装置20側から通信部28を介して送信される。このような、各パケットは、信管理部25により、送信側から順に送信されるが、ネットワーク40の環境により、受信側で受信される順番は入れ変わる場合がある。或いは、ファイアウォールなどにより、受信側で受信されないパケットも生じ得る。
【0021】
また、送信管理部25は、同じ送信信号を有するパケットを複数回送信する際の時間間隔を管理する送信時間管理機能を有する。送信管理部25は、例えばネットワークの負荷と、パケットロス率と、通信時間との組み合わせに基づき、同じ送信信号を有するパケットの送信回数と送信間隔を動的に変更する。ネットワークの負荷は、単位時間当たりの通信量である。送信管理部25は例えばアック(ACK)の戻り時間に応じて、単位時間当たりの通信量を判定することが可能である。また、送信管理部25は、パケットロス率を、送信用接続情報の数に対して、所定の時間内に到達した同じ送信信号を有するパケットの数に基づき、判定する。通信時間は、一つの送信信号の通信に予め設定された時間である。
【0022】
これにより、送信管理部25は、例えばネットワーク負荷が多い場合、動的に送信回数を少なくするか、待機時間を長くすることでネットワーク負荷を下げることができる。また、送信管理部25は、パケットロス率が高い場合、送信回数を多くする。これにより、パケットロスが発生した場合でもサーバ装置にデータが到達する確率が高くなる。
【0023】
また、送信管理部25は、通信遅延が大きい場合、待機時間を短くする。信管理部25は例えばアック(Ack)の戻り時間に応じて、通信遅延の情報を得ることが可能である。これにより、送信回数分繰り返す際に要する時間を短くすることができる。例えば送信用接続情報記憶部24は、ネットワーク環境に対応する送信回数と待機時間とをあらかじめ記憶しておくことが可能である。このように、送信管理部25は、ネットワーク環境に応じて、送信回数と待機時間とを設定することが可能となる。この場合、送信管理部25は、通信状況を測定して、IO周期毎に送信回数と待機時間とを動的に変更してもよい。
【0024】
図4は、送信中フラグを用いて接続情報を参照する場合の方法例を示す表である。送信管理部25は、上述のラウンドロビン方式の他に、
図4に示すように、未使用のファイルディスクリプタを選択し、使用することが可能である。
【0025】
図4に示すように、送信管理部25は、例えば接続数が5個で12と13のファイルディスクリプタが使用中の場合、3回の連続送信では10と11と14のファイルディスクリプタを使用する。周期ごとに送信中フラグは変化するため、毎周期送信フラグを確認する処理を行う。送信管理部25は、使用中のファイルディスクリプタの情報を送信中フラグ(1)として送信用接続記憶部24に記憶させることが可能である。これにより、送信管理部25は、送信用接続記憶部24に記憶される使用中のファイルディスクリプタの情報を参照し、毎周期毎に、未使用の送信中フラグ(0)のファイルディスクリプタを使用することが可能となる。このように、送信管理部25は、同一の入力信号を有する複数のパケットのうちの送信中の送信中フラグ(1)に基づき、複数の異なる接続情報のなかの送信中のパケットに使用していない接続情報(送信中フラグ(0)に対応)を、次に生成するパケットに付与する。
【0026】
上述のように、受信部23は、受信用接続情報記憶部26と、冗長パケット判定部27とを有する。受信部23は、通信部28を介してサーバ装置10側から送信される同一の出力信号を有する複数のパケットを受信することが可能である。
【0027】
受信部23の冗長パケット判定部27は、同一の出力信号を有する送信信号が送信されてきたか、否かを判定する。冗長パケット判定部27は、例えば、受信用接続情報記憶部26の受信用接続情報を参照して、受信対象となる送信用接続情報の組合せの情報の中で、同一の送信周期か否かを判定する。冗長パケット判定部27は、例えば、例えば(送信用接続情報、送信周期、送信回数)の情報として(10、0、0)、(11、0、1)、(12、0、2)、(13、0、3)、(14、0、4)、(10、0、5)、(11、0、6)、(12、0、7)、(13、0、8)、(14、0、9)が割振られたパケットに対して、まず、受信用接続情報記憶部26に記憶される受信用接続情報を参照して、送信用接続情報が10~14の範囲か否かを判定する。次に、冗長パケット判定部27は、送信用接続情報が10~14の範囲であれば、送信周期が初めて受信された送信周期の番号0か否かを判定する。冗長パケット判定部27は、送信周期が初めて受信された番号0であれば、受信した入力信号を、信号出力部30に出力すると共に、その送信周期の番号0を受信用接続情報記憶部26に受信用接続情報として、記憶する。
【0028】
一方で、冗長パケット判定部27は、受信用接続情報記憶部26に記憶される受信用接続情報を参照して、既に送信周期の番号0が受信されていた場合には、冗長な入力信号であると判定して、その出力信号を、信号出力部30に出力しない処理を行う。
【0029】
通信装置20の通信部28は、ネットワークインタフェースを介して、サーバ装置10側の通信部19と通信を行う。同様に、サーバ装置10側の通信部19は、ネットワークインタフェースを介して、通信装置20側の通信部28と通信を行う。
【0030】
信号入力部29は、入力装置41が出力する入力信号を時系列に入力し、送信部22に出力する。信号出力部30は、受信部26が出力する出力信号を時系列に入力し、出力装置42に出力する。
【0031】
ここで、サーバ装置10の詳細な構成を説明する。制御演算部11は、受信部13から供給される入力信号に応じた出力信号を生成し、送信部14に出力する。
【0032】
上述のように、サーバ装置10の接続部12は、通信装置20の接続部21の接続要求に対する接続応答として、ID0~4のそれぞれに対応する送信用接続情報として10~14(
図2参照)を通信装置20に送信する。また、接続部12は、例えば送信周期と、送信回数と、通信時間と、の組み合わせに基づき、複数の異なる接続情報の発行数を決定することも可能である。
【0033】
なお、本実施形態では、通信装置20の接続部21が接続要求を行い、サーバ装置10の接続部12が接続要求を受け付けるが、これに限定されない。例えば、サーバ装置10の接続部12が、接続要求を行って、通信装置20の接続部21が接続要求を受け付ける構成でもよい。或いは、通信装置20の送信時には、通信装置20の接続部21が接続要求を行い、サーバ装置10の送信時には、サーバ装置10の接続部12が、接続要求を行ってもよい。
【0034】
受信部13は、受信部26と同等の構成である。つまり、受信部13は、通信部19を介して通信装置20側から送信される同一の入力信号を有する複数のパケットを受信することが可能である。
【0035】
受信部13の冗長パケット判定部16は、同一の入力信号を有する送信信号が送信されてきたか、否かを判定する。冗長パケット判定部16は、例えば、受信用接続情報記憶部15の受信用接続情報を参照して、受信対象となる送信用接続情報の組合せの情報の中で、同一の送信周期か否かを判定する。冗長パケット判定部16は、例えば、例えば(送信用接続情報、送信周期、送信回数)の情報として(10、0、0)、(11、0、1)、(12、0、2)、(13、0、3)、(14、0、4)、(10、0、5)、(11、0、6)、(12、0、7)、(13、0、8)、(14、0、9)が割振られたパケットに対して、まず、受信用接続情報記憶部15に記憶される受信用接続情報を参照して、送信用接続情報が10~14の範囲か否かを判定する。次に、冗長パケット判定部16は、送信用接続情報が10~14の範囲であれば、送信周期が初めて受信された送信周期の番号0か否かを判定する。冗長パケット判定部16は、送信周期が初めて受信された番号0であれば、受信した入力信号を、制御演算部11に出力すると共に、その送信周期の番号0を受信用接続情報記憶部15に受信用接続情報として、記憶する。
【0036】
一方で、冗長パケット判定部16は、受信用接続情報記憶部15に記憶される受信用接続情報を参照して、既に送信周期の番号0が受信されていた場合には、冗長な入力信号であると判定して、その入力信号を、制御演算部11に出力しない処理を行う。
【0037】
図5は、送信管理部18が使用する出力信号パケットの構成例を示す図である。入力信号パケットと同様に、(送信用接続情報、送信周期、送信回数)の情報が、同一の出力信号に対して各パケットのデータヘッドに順に割振られる。なお、本実施形態に係る出力信号パケットが第2パケットに対応する。
【0038】
送信部14は、送信部22と同等の構成である。つまり、送信管理部18は、同じ周期で連続送信する際は、送信周期に同じ値を格納し、送信回数をインクリメントする。送信管理部18は、次の周期に送信する際は、送信周期をインクリメントし、送信回数を初期値に戻す。
【0039】
送信管理部18は、制御演算部11から供給された出力信号に対して、
図5に示す出力信号パケットの構成のパケットを生成する。例えば(送信用接続情報、送信周期、送信回数)の情報は、(10、3、0)、(11、3、1)、(12、3、2)、(13、3、3)、(14、3、4)、(10、3、5)、(11、3、6)、(12、3、7)、(13、3、8)、(14、3、9)のように、同一の出力信号に対して各パケットのデータヘッドに順に割振られる。なお、本実施形態では送信用接続情報を、サーバ装置10と通信装置20とで共通する情報を使用するが、これに限定されない。例えば、通信装置20側から、サーバ装置10側に、各ID0から4に対応する送信用接続情報の割振りを新たに要求することも可能である。
【0040】
このように、あたかも5台の通信装置に対して、各パケットを送信しているように、(送信用接続情報、送信周期、送信回数)が同一の出力信号を有する各パケットのデータヘッド順に割振られる。これにより、同一の出力信号が、送信用接続情報と送信回数を変えて、繰り返し、サーバ装置10側から送信される。このような、各パケットは、送信側から順番に送信されるが、ネットワーク40の環境により、受信側で受信される順番は入れ変わる場合がある。或いは、ファイアウォールなどにより、受信側で受信されないパケットも生じる。
【0041】
また、送信管理部18は、送信管理部25と同等の機能を有する。すなわち、送信管理部18は、同一の出力信号を有するパケットを複数回送信する際の時間間隔を管理する送信時間管理機能を有する。すなわち、送信管理部18は、例えばネットワークの負荷と、パケットロス率と、通信時間との組み合わせに基づき、同一の出力信号を有するパケットの送信回数と送信間隔を動的に変更する。ネットワークの負荷は、単位時間当たりの通信量である。送信管理部18は例えばアック(Ack)の戻り時間に応じて、単位時間当たりの通信量を判定する。また、送信管理部18はパケットロス率を、送信用接続情報の数に対して、所定の時間内に到達した同じ送信信号を有するパケットの数に基づき、判定する。通信時間は、一つの送信信号の通信に予め設定された時間である。例えば送信用接続情報記憶部17は、ネットワーク環境に対応する送信回数と待機時間とをあらかじめ記憶しておくことが可能である。これにより、送信管理部18は、ネットワーク環境に応じて、送信回数と待機時間とを設定することが可能となる。この場合、送信管理部18は、通信状況を測定しIO周期毎に動的に変更してもよい。
【0042】
送信管理部18は、
図2に示すように、パケットを生成する順番に応じて、前記複数の異なる接続情報を順に繰り返し付与する。また、送信管理部18は、
図4に示すように、同一の出力信号を有する複数のパケットのうちの送信中の送信中フラグ(1)に基づき、複数の異なる接続情報のなかの送信中のパケットに使用していない接続情報(送信中フラグ(0)に対応)を、次に生成するパケットに付与することが可能である。
【0043】
なお、サーバ装置10は、物理的なサーバでもよいし、仮想化されたサーバやクラウドサーバでもよい。接続部12、及び接続部21で接続を受け付けるプロトコルは、TCP(Transmission Control Protocol)だけでなく、HTTP(Hypertext Transfer Protocol)や、HTTPS(Hypertext Transfer Protocol Secure)、MQTT (Message Queueing Telemetry Transport)等のTCPベースのプロトコルや、QUIC、MQTT-SN(MQTT for Sensor Networks)等のUDPベースのプロトコルでもよい。また、受信部13と送信部14は、OSの別スレッドに割り当て並列に動作させてもよい。同様に受信部23と送信部22とは、OSの別スレッドに割り当て並列に動作させてもよい。なお、QUICとは、インターネットなどのIPネットワーク上で利用される通信規約(プロトコル)の一つで、高速性と安全性の両立を目指したものである。
【0044】
また、出力装置42は、アクチュエータ等の機器へ出力信号を伝えるIOモジュールでもよい。或いは、IOモジュールに入力信号や出力信号を伝えるモジュールでもよい。また、サーバ装置10は、例えば仮想化されたサーバやクラウドサーバでもよい。さらにまた、ネットワーク40における伝送方法は、ネットワークやフィールドバス等を介した方法でもよいし、或いはASICやFPGA等を介した方法でもよい。また、1台のサーバ装置10に複数の通信装置20を接続する構成でもよい。以上が第1実施形態に係る制御システム1の構成の説明であるが、以下に作用を説明する。
【0045】
(作用)
図6は、本実施形態に係る初期接続の通信シーケンス図である。通信装置20の接続部21、送信部22、及び受信部22と、サーバ装置10の接続部12、受信部13、及び送信部14との処理例を示す。通信装置20がTCPのクライアントとしてサーバ装置10に接続する通信シーケンスであり、TCPのACKのシーケンスは省いて記載する。
【0046】
まず、通信装置20の接続部21は、サーバ装置10の接続部12に対して接続要求を送信する(ステップS100)。接続要求を受け付けたサーバ装置10の接続部12は、送信接続情報を含む接続応答を通信装置20に送信する(ステップS102)。
【0047】
次に、通信装置20の接続部21は、接続完了処理を行い(ステップS104)、受信した送信接続情報を、受信部23と送信部22に通知する(ステップS106)。続けて受信部23の受信用接続情報記憶部26と、送信用接続情報記憶部24は、送信接続情をそれぞれ格納する(ステップS108、S110)。
【0048】
次に、サーバ装置10の接続部12は、送信接続情報を、受信部13と送信部14に通知する(ステップS112)。続けて受信部13の受信用接続情報記憶部15と、送信用接続情報記憶部17は、送信接続情をそれぞれ格納する(ステップS108、S110)。
【0049】
複数個の接続を行うため、このような、接続処理(ステップS100~S110)を接続数分繰り返す。これにより、サーバ装置10の受信用接続情報記憶部15、送信用接続情報記憶部17、通信装置20の受信用接続情報記憶部26、送信用接続情報記憶部24、接続数分の接続情報を格納することとなる。ここで、接続数は、入力信号や出力信号を送信する周期、同一パケットを連続送信する回数、平均的な通信時間から算出してもよい。
【0050】
TCPの場合、ウインドウサイズを超えるデータは連続的に送信できず、また、受信する際にもパケットが到達した順にしかアプリケーションでデータを受け取ることができないため、同一パケットを連続送信するためには、複数個の接続が必要となる。例えば、サーバ装置10と通信装置20との間の同一送信信号あたりの平均的な通信割り当て時間が1秒程度である場合、100ms周期で3回連続送信し、接続数を30個以上(IDを30個以上)にすると、連続送信の際に接続が不足することがなくなる。つまり、1秒以内である3×100ms×30=900msの間に、90個の同一送信信号を送信することが可能となる。
【0051】
図7は、通信装置20からサーバ装置10に入力信号を送信する通信シーケンスの例を示す図である。通信装置20の送信部22と、サーバ装置10の制御演算部11、及び受信部13との処理例を示す。
【0052】
送信部22の送信管理部25は、入力装置41から入力信号を取得し(ステップS200)、送信用接続情報記憶部24の送信用接続情報を参照し(ステップS202)、送信するパケットを生成して、入力信号パケットを送信する(ステップS204)。
【0053】
そして、送信管理部25は、待機処理として、一定時間待機する(ステップS206)。待機時間なくパケットを連続して送信すると、単位時間当たりの通信量が多くなることに加え、ネットワーク30にあるプロキシサーバやファイアウォールでDoS攻撃とみなされ切断される可能性があるため、送信管理部25は、一定時間待機してから次の入力信号パケットを送信する。
【0054】
次に、サーバ装置10の受信部13は、入力信号パケットを受信する(ステップS208)。続けて、受信部13の冗長パケット判定部16は、受信用接続情報記憶部15に記憶される受信用接続情報を参照して、既に受信済みの送信信号か否かを判定する(ステップS210)。初回の送信処理であるので、冗長パケット判定部16は、受信済みでないと判定し、制御演算部11にその入力信号を転送する(ステップS212)。そして、サーバ装置10の制御演算部11は、入力信号に応じた出力信号を生成する(ステップS214)。このように、制御演算部11に渡された入力信号は、制御演算の入力として用いられる。
【0055】
送信部22と受信部13とは、IO周期の間に、同一の入力信号に対してこのような処理をn回くり返す。この場合、2回目以降の冗長パケット判定部16の判定処理は、初回の送信処理でないのでので、受信済の冗長パケットと判定し、制御演算部11にその入力信号を転送しない(ステップS216)。同じIO周期で送信する入力信号パケットには、同じ送信周期(
図3参照)が格納されているため、上述のように冗長パケット判定部16は、入力信号パケットに含まれる装置IDと送信周期の組で判定することができる。また、送信管理部25は、このような処理をn回くり返した後に、次のIO周期が開始されるまでの待機処理を行う(ステップS218)。そして、通信装置20の送信部23は、IO周期毎に、入力信号の取得からn回分の送信処理を繰り返し行う。
【0056】
図8は、サーバ装置10から通信装置20に出力信号を送信する通信シーケンス図を示す。サーバ装置10の制御演算部11は制御周期で制御演算を行う。送信部14は、制御演算部11から制御演算の結果である出力信号を取得する。ここで、送信部14は、制御周期と同期して出力信号を取得してもよいし、制御周期と非同期や異なる周期で出力信号を取得してもよい。送信部14は、通信装置20が入力信号を送信する場合と同様の方法で、接続情報を参照し、出力信号パケットを生成し、通信装置20の受信部23に出力信号パケットを送信し、一定時間待機する。送信処理を送信回数分繰り返す。入力信号を送信する場合と出力信号を送信する場合で、送信回数や待機時間を変更してもよい。
【0057】
図8は、サーバ装置10から通信装置20に出力信号を送信する通信シーケンスの例を示す図である。通信装置20の受信部23と、サーバ装置10の制御演算部11、及び送信部14との処理例を示す。
【0058】
サーバ装置10の制御演算部11は、入力信号に応じた出力信号を生成する(ステップS214)。送信部14の送信管理部18は、制御演算部11から出力信号を取得し(ステップS300)、送信用接続情報記憶部17の送信用接続情報を参照し(ステップS302)、送信するパケットを生成して、出力信号パケットを送信する(ステップS304)。
【0059】
そして、送信管理部18は、待機処理として、一定時間待機する(ステップS306)。次に、通信装置20の受信部23は、出力信号パケットを受信する(ステップS308)。続けて、受信部23の冗長パケット判定部276は、受信用接続情報記憶部26に記憶される受信用接続情報を参照して、既に受信済みの出力信号か否かを判定する(ステップS310)。初回の出力信号であるので、冗長パケット判定部27は、受信済みでないと判定し、出力信号を、信号出力部30を介して出力装置42に転送する(ステップS312)。
【0060】
送信部14と受信部23とは、制御周期の間に、同一の出力信号に対してこのような処理をn回くり返す。この場合、2回目以降の冗長パケット判定部27の判定処理は、初回の送信処理でないのでので、受信済の冗長パケットと判定し、出力装置42にその出力信号を転送しない(ステップS314)。同じ制御周期で送信する出力信号パケットには、同じ送信周期(
図5参照)が格納されているため、冗長パケット判定部27は、出力信号パケットに含まれる装置IDと送信周期の組で判定することができる。また、送信管理部18は、このような処理をn回くり返した後に、次の制御周期が開始されるまでの待機処理を行う(ステップS316)。そして、サーバ装置10の送信部14は、制御周期毎に、出力信号の取得からn回分の送信処理を繰り返し行う。
【0061】
(効果)
サーバ装置10と通信装置20とは、送信側が複数の接続情報を用いて同一信号を有するパケットを複数回連続的に送信することとした。これにより、受信側は、同一信号を有するパケットを複数の装置からそれぞれ送信された場合と同等の受信処理を行うことが可能となる。このため、ある一つの装置IDに対応する接続情報を用いたパケットのパケットロスや通信遅延があった場合でも、他の装置IDに対応する接続情報を用いたパケットを受信することが可能となる。これにより、TCPをベースにした通信プロトコルであっても通信遅延を抑制し、一定周期の制御を行うことが可能となる。また、送信側が複数の接続情報を用いて同一信号を有するパケットを複数回連続的に送信する場合でも、受信側の冗長パケット判定部16、27が、同一信号を有するパケットを一度しか転送しない、或いは、出力しない処理を行うので、受信側の装置で冗長処理が発生することが抑制される。
【0062】
さらにまた、送信側の送信管理部18、25は、同一信号を有するパケットを複数回連続で送信する際に、待機時間を設けることとした。これにより、ネットワーク40の通信負荷を低減させること、ファイアウォールやプロキシサーバが配置されているプロキシサーバ等を通過させること等が可能となる。
【0063】
また、サーバ装置10の接続部12と、通信装置20の接続部21とが、送信周期や送信回数、通信時間から接続数を決定し、あらかじめ接続数分の接続処理を行っておくこととした。これにより、突発的な遅延が発生した場合でも接続数が不足することなく連続送信することが可能となる。
【0064】
また、送信側の送信管理部18、25が、周期的な通信におけるネットワーク40の通信負荷、パケットロス率、及び通信時間のいずれかの情報に応じて、動的に送信回数と待機時間を変更することとした。これにより、ネットワーク40のネットワーク環境に応じた送信回数と待機時間に変更することができ、パケット到達率を向上させることができる。
【0065】
また、送信側の送信管理部18、25が、同一信号を有するパケットのそれぞれに対して、ラウンドロビンで接続情報を付与することとした。これにより、各送信用接続情報を有する各パケットが送信中か否かを判定する必要がなくなる。このため、送信側の送信管理部18、25が、同一信号を有するパケットのそれぞれに対して、より高速に接続情報を付与することができる。
【0066】
また、送信側の送信管理部18、25が、通信確立後の各接続情報に送信中フラグを設けることとした。これにより、送信側の送信管理部18、25が、同一信号を有するパケットのそれぞれに対して、接続情報を付与する場合に、送信中でない接続情報を用いて連続送信することが可能となる。
【0067】
また、送信側の送信管理部25が入力信号パケットに送信周期を格納し、受信側の冗長パケット判定部17が同じ送信周期が格納されるパケットを冗長パケットと判定することとした。これにより、冗長パケット判定処理を高速に行うことができる。同様に、送信側の送信管理部18が出力信号パケットに送信周期を格納し、受信側の冗長パケット判定部27が同じ送信周期のパケットを冗長パケットと判定することとした。これにより、冗長パケット判定処理を高速に行うことができる。
【0068】
さらにまた、送信側の送信管理部25が入力信号パケットに装置IDに対応する接続情報と送信周期とを格納し、接続部21が一組となる接続情報を受信側に通知することとした。また、受信側の冗長パケット判定部17が一組となる接続情報を有し、且つ同じ送信周期が格納されるパケットを冗長パケットと判定することとした。これにより、通信装置20が複数ある場合でも冗長パケット判定処理を高速に行うことができる。同様に、送信側の送信管理部18が出力信号パケットに装置IDと送信周期とを格納し、受信側の冗長パケット判定部27が同じ装置IDと同じ送信周期が格納されるパケットを冗長パケットと判定することとした。これにより、通信装置20が複数ある場合でも冗長パケット判定処理を高速に行うことができる。
【0069】
(第2実施形態)
第1実施形態に係る制御システム1は、サーバ装置10及び通信装置20のいずれも単一の送信部と、単一の受信部を有していたのに対し、第2実施形態に係る制御システム2は、サーバ装置10及び通信装置20のいずれも、複数の送受信部を有することで相違する。以下では、第1実施形態に係る制御システム1と相違する点を説明する。
【0070】
(構成)
図9は、第2実施形態に係る制御システム2の構成例を示す図である。なお、
図1と同一の要素には同一の符号を付け、説明は省略する。
【0071】
制御システム2は、サーバ装置50と通信装置60とを備える。これらのサーバ装置50と通信装置60とは、ネットワーク40を介して接続される。すなわち、通信装置60は、入力装置41から得られるデータを含む入力信号を受け取り、ネットワーク40を介してサーバ装置50に送信する。サーバ装置50は、受信した入力信号に応じた出力信号を生成し、ネットワーク40を介して出力装置42に出力する。このサーバ装置50は、例えばマルチコアのサーバであり、CPU(Censral Processing Unis)、メモリ、ストレージ等を備える。
【0072】
サーバ装置50は、制御演算部11と、通信部19と、接続部51と、複数の送受信部52A~Gと、冗長パケット判定部54と、信時間管理部55とを備える。また、複数の送受信部52A~Gは、それぞれ接続情報記憶部53A~Gを有する。なお、複数の送受信部52A~Gの数は、任意の数に設定することが可能である。サーバ装置50は、例えばモリに記憶されるプログラムを実行することにより、制御演算部11と、通信部19と、接続部51と、複数の送受信部52A~Gと、冗長パケット判定部54と、信時間管理部55とを構成することが可能である。なお、本実施形態に係る冗長パケット判定部54が判定部に対応する。
【0073】
通信装置60は、例えば、CPU(Censral Processing Unis)とメモリとを有し、通信部28と、信号入力部29と、信号出力部30と、接続部61と、複数の送受信部62A~Gと、冗長パケット判定部64と、送信時間管理部65とを備える。また、複数の送受信部62A~Gは、それぞれ接続情報記憶部63A~Gを有する。なお、複数の送受信部62A~Gの数は、任意の数に設定することが可能である。通信装置60は、例えばリに記憶されるプログラムを実行することにより、通信部28と、信号入力部29と、信号出力部30と、接続部61と、複数の送受信部62A~Gと、冗長パケット判定部64と、信時間管理部65とを構成することが可能である。なお、本実施形態に係る冗長パケット判定部64が判定部に対応し、送受信部62A~Gが個別の送信部に対応する。
【0074】
まず、サーバ装置50の構成を詳細に説明する。サーバ装置50の接続部51は、接続部61の要求に応じて、複数のIDに対応する送信用接続情報(
図5参照)を発行する。この接続部51は、複数のIDに対応する送信用接続情報をそれぞれ順に送受信部52A~Gに割ふる。そして、各接続情報記憶部53A~Gは、それぞれ自身に割振られた送信用接続情報を記憶する。
【0075】
複数の送受信部52A~Gのそれぞれは、通信部19を介して、自身に割振られた送信用接続情報を有する入力信号パケット(
図3参照)を受信し、冗長パケット判定部54に出力する。冗長パケット判定部54は、同一の入力信号を有する送信信号が送信されてきたか、否かを判定する。冗長パケット判定部54は、例えば、信用接続情報を参照して、受信対象となる送信用接続情報の組合せの情報の中で、同一の送信周期か否かを判定し、同一の出力信号を有する送信信号が送信されてきたか、否かを判定する。冗長パケット判定部16は、同一の入力信号を有する送信信号が初めて送信されてきた場合に、制御演算部11に入力信号を転送する。一方で、冗長パケット判定部54は、同一の入力信号を有する送信信号が初めて送信されてきていない場合には、冗長な入力信号であると判定して、その入力信号を、制御演算部11に出力しない処理を行う。
【0076】
また、複数の送受信部52A~Gのそれぞれは、自身に割振られた送信用接続情報と、送信時間管理部55から供給される送信周期、送信回数、及び出力信号とを、含む出力信号パケット(
図5参照)を生成する。
【0077】
送信時間管理部55は、制御演算部11から出力信号が供給される度に、複数の送受信部52A~Gのそれぞれに、送信周期、送信回数、及び出力信号を供給する。つまり、送信時間管理部55は、同一の出力信号に対して、同じ周期で連続送信する際は、送信周期として同じ値を供給し、送信回数をインクリメントして供給する。送信時間管理部55は、次の周期に送信する際は、送信周期をインクリメントし、送信回数を初期値に戻す。これにより、同一の出力信号に対して、複数の送受信部52A~Gのそれぞれが生成する出力信号パケットは、送信用接続情報と、送信回数とが異なり、送信周期は同一になる。また、送信時間管理部55は、同じパケットを複数回送信する際の時間間隔を管理する送信時間管理機能を有する。なお、複数の送受信部52A~Gの数は、接続数分が構成される。複数の送受信部52A~Gと冗長パケット判定部54と送信時間管理部55はOSの別スレッドに割り当て並列に動作させてもよい。なお、本実施形態に係る送信時間管理部55及び送受信部52A~Gの構成が第1生成部に対応し、送受信部52A~Gが複数の生成部に対応する。
【0078】
次に、通信装置60の構成を詳細に説明する。通信装置60の接続部61は、サーバ装置50の接続部51に対して、複数のIDに対応する送信用接続情報(
図5参照)の発行を要求する。この接続部61は、発行された複数のIDに対応する送信用接続情報をそれぞれ順に送受信部62A~Gに割ふる。そして、各接続情報記憶部63A~Gは、それぞれ自身に割振られた送信用接続情報を記憶する。
【0079】
複数の送受信部62A~Gのそれぞれは、通信部28を介して、自身に割振られた送信用接続情報を有する出力信号パケット(
図5参照)を受信し、冗長パケット判定部64に出力する。冗長パケット判定部64は、同一の出力信号を有する送信信号が送信されてきたか、否かを判定する。冗長パケット判定部64は、例えば、信用接続情報を参照して、受信対象となる送信用接続情報の組合せの情報の中で、同一の送信周期か否かを判定し、同一の出力信号を有する送信信号が送信されてきたか、否かを判定する。冗長パケット判定部64は、同一の出力信号を有する送信信号が初めて送信されてきた場合に、出力装置42に信号出力部30を介して出力信号を転送する。一方で、冗長パケット判定部64は、同一の出力信号を有する送信信号が初めて送信されてない場合には、冗長な入力信号であると判定して、その入力信号を、出力装置42に転送しない処理を行う。なお、複数の送受信部62A~Gの数は、接続数分が構成される。複数の送受信部62A~Gと冗長パケット判定部64と送信時間管理部65はOSの別スレッドに割り当て並列に動作させてもよい。
【0080】
また、複数の送受信部62A~Gのそれぞれは、自身に割振られた送信用接続情報と、送信時間管理部65から供給される送信周期、送信回数、及び入力信号とを、含む入力信号パケット(
図3参照)を生成する。
【0081】
送信時間管理部65は、入力装置41から信号入力部29を介して、入力信号が供給される度に、複数の送受信部62A~Gのそれぞれに、送信周期、送信回数、及び入力信号を供給する。つまり、送信管理部65は、同一の入力信号に対して、同じ周期で連続送信する際は、送信周期として同じ値を供給し、送信回数をインクリメントして供給する。送信管理部65は、次の周期に送信する際は、送信周期をインクリメントし、送信回数を初期値に戻す。これにより、同一の入力信号に対して、複数の送受信部62A~Gのそれぞれが生成する入力信号パケット(
図3参照)は、送信用接続情報と、送信回数とが異なり、送信周期は同一になる。また、送信時間管理部65は、同じパケットを複数回送信する際の時間間隔を管理する送信時間管理機能を有する。なお、本実施形態に係る送信時間管理部65及び送受信部62A~Gの構成が第2生成部に対応し、送受信部62A~Gが複数の生成部に対応する。
【0082】
(作用)
図10は、第2実施形態に係る初期接続の通信シーケンスの例を示す図である。通信装置60の接続部61、及び送受信部62A~Gと、サーバ装置50の接続部51、及び送受信部52A~Gとの処理例を示す。通信装置60がTCPのクライアントとしてサーバ装置50に接続する通信シーケンスであり、TCPのACKのシーケンスは省いて記載する。
【0083】
まず、通信装置60の接続部61は、サーバ装置50の接続部51に対して接続要求を送信する(ステップS400)。接続要求を受け付けたサーバ装置50の接続部51は、送信接続情報を含む接続応答を通信装置60に送信する(ステップS402)。
【0084】
次に、通信装置60の接続部61は、接続完了処理を行い(ステップS404)、受信した送信接続情報を、送受信部62Aに通知する(ステップS406)。続けて送受信部62Aの接続情報記憶部63Aは、送信接続情を格納する(ステップS408)。
【0085】
次に、サーバ装置50の接続部51は、送信接続情報を、送受信部52Aに通知する(ステップS410)。続けて送受信部52Aの接続情報記憶部53Aは、送信接続情報を格納する(ステップS412)。
【0086】
複数個の接続を行うため、このような、接続処理(ステップS400~S412)を接続数分繰り返す。この場合、2回目の接続処理では、送信接続情報が、送受信部62Bの接続情報記憶部63Bに格納され(ステップS414)、送受信部52Bの接続情報記憶部53Bに格納される(ステップS416)。同様に3回目以降の接続処理では、送信接続情報が、順に異なる接続情報記憶部63C~G、接続情報記憶部53C~Gに格納される。
【0087】
図11は、通信装置60からサーバ装置50に入力信号を送信する通信シーケンスの例を示す図である。通信装置60の送信時間管理部65、及び送受信部62A~Gと、サーバ装置50の制御演算部11、送受信部52A~Gと、冗長パケット判定部54との処理例を示す。
【0088】
送信時間管理部65は、入力装置41から入力信号を取得し(ステップS500)、送受信部62Aに送信周期、送信回数、及び入力信号を転送する(ステップS502)。そして、送信管理部25は、待機処理として、一定時間待機する(ステップS504)。
【0089】
次に、送受信部62Aは、自身の送信接続情報、送信周期、送信回数、及び入力信号を含む送信パケット信号を生成して、サーバ装置50に送信する(ステップS506)。
【0090】
次に、サーバ装置50の送受信部52A~Gの中の送受信部52Aは、自身の送信接続情報を含む送信パケット信号を受信し(ステップS508)、冗長パケット判定部54に転送する(ステップS510)。続けて冗長パケット判定部54は、その入力信号が冗長か、否かを判定する(ステップS512)。冗長パケット判定部54は、入力信号が初めて送信されてきたので冗長ではないと判定し、入力信号を制御演算部11に転送する(ステップS514)。制御演算部11は、入力信号に応じた出力信号を生成する(ステップS516)。
【0091】
このような処理をIO周期の期間に送信時間管理部65の制御下で送受信部62A~Gはこのような処理を繰り返す。この場合、2回目以降の冗長パケット判定部54の判定処理は、初回の送信処理でないのでので、受信済の冗長パケットと判定し、制御演算部11にその入力信号を転送しない(ステップS518)。また、送信時間管理部65は、このような処理をA~Gまでくり返した後に、次のIO周期が開始されるまでの待機処理を行う(ステップS520)。そして、送信時間管理部65は、IO周期毎に、入力信号の取得からA~Gまでの送信処理を繰り返し行う。
【0092】
図12は、サーバ装置50から通信装置60に出力信号を送信する通信シーケンスの例を示す図である。通信装置60の送受信部62A~G、及び冗長パケット判定部64と、サーバ装置50の制御演算部11、送受信部52A~G、及び送信時間管理部55との処理例を示す。
【0093】
サーバ装置50の制御演算部11は、入力信号に応じた出力信号を生成する(ステップS516)。送信時間管理部55は、制御演算部11から出力信号を取得し(ステップS600)、送受信部52Aに送信周期、送信回数、及び出力信号を転送する(ステップS602)。そして、送信時間管理部55は、待機処理として、一定時間待機する(ステップS604)。
【0094】
次に、送受信部52Aは、自身の送信接続情報、送信周期、送信回数、及び出力信号を含む出力信号パケット(
図5参照)を生成して、通信装置60に送信する(ステップS606)。
【0095】
次に、通信装置60の送受信部62A~Gの中の送受信部62Aは、自身の送信接続情報を含む出力信号パケットを受信し(ステップS608)、冗長パケット判定部64に転送する(ステップS610)。続けて冗長パケット判定部64は、その出力信号が冗長か、否かを判定する(ステップS612)。冗長パケット判定部64は、出力信号が初めて送信されてきたので冗長ではないと判定し、出力信号を、信号出力部30を介して出力装置42に転送する(ステップS614)。
【0096】
このような処理を制御周期の期間に送信時間管理部55の制御下で送受信部52A~Gはこのような処理を繰り返す。この場合、2回目以降の冗長パケット判定部64の判定処理は、初回の送信処理でないのでので、受信済の冗長パケットと判定し、出力装置42にその出力信号を転送しない(ステップS616)。また、送信時間管理部55は、このような処理をA~Gまでくり返した後に、次の制御周期が開始されるまでの待機処理を行う(ステップS618)。そして、送信時間管理部55は、制御周期毎に、出力信号の取得からA~Gまでの送信処理を繰り返し行う。
【0097】
(効果)
本実施形態に係る制御システム2は、送信時間管理部55の制御下で送受信部52A~Gは、入力信号を独立的に送信することとし、送信時間管理部65の制御下で送受信部62A~Gは出力信号を独立的に送信することとした。これにより、本実施形態に係る制御システム1の効果に加え、複数の送受信部52A~G、62A~Gを並列に動作させることでマルチコアのサーバのCPUを効率的に使うことが可能となり、正確な時間間隔でパケットを送信可能となる。
【0098】
以上、いくつかの実施形態を説明したが、これらの実施形態は、例としてのみ提示したものであり、発明の範囲を限定することを意図したものではない。本明細書で説明した新規な装置、方法及びプログラムは、その他の様々な形態で実施することができる。また、本明細書で説明した装置、方法及びプログラムの形態に対し、発明の要旨を逸脱しない範囲内で、種々の省略、置換、変更を行うことができる。
【符号の説明】
【0099】
1:制御システム、2:制御システム、10:サーバ装置、11:制御演算部、12:接続部、16:冗長パケット判定部、18:送信管理部、19:通信部、20:通信装置、21:接続部、25:送信管理部、27:冗長パケット判定部、28:通信部、50:サーバ装置、51:接続部、52A~52G:送受信部、54:冗長パケット判定部、55:送信時間管理部、60:通信装置、61:接続部、62A~62G:送受信部、64:冗長パケット判定部、65:送信時間管理部。