IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

特許7603212通信装置、通信システム、通信制御方法、及びプログラム
<>
  • 特許-通信装置、通信システム、通信制御方法、及びプログラム 図1
  • 特許-通信装置、通信システム、通信制御方法、及びプログラム 図2
  • 特許-通信装置、通信システム、通信制御方法、及びプログラム 図3
  • 特許-通信装置、通信システム、通信制御方法、及びプログラム 図4
  • 特許-通信装置、通信システム、通信制御方法、及びプログラム 図5
  • 特許-通信装置、通信システム、通信制御方法、及びプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】通信装置、通信システム、通信制御方法、及びプログラム
(51)【国際特許分類】
   H04L 12/28 20060101AFI20241213BHJP
【FI】
H04L12/28 400
H04L12/28 100F
【請求項の数】 14
(21)【出願番号】P 2022538636
(86)(22)【出願日】2021-06-17
(86)【国際出願番号】 JP2021023014
(87)【国際公開番号】W WO2022019014
(87)【国際公開日】2022-01-27
【審査請求日】2024-04-04
(31)【優先権主張番号】P 2020125771
(32)【優先日】2020-07-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100106116
【弁理士】
【氏名又は名称】鎌田 健司
(74)【代理人】
【識別番号】100151378
【弁理士】
【氏名又は名称】宮村 憲浩
(74)【代理人】
【識別番号】100157484
【弁理士】
【氏名又は名称】廣田 智之
(72)【発明者】
【氏名】三島 雅史
(72)【発明者】
【氏名】園田 大輔
(72)【発明者】
【氏名】池内 慶成
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2014-53741(JP,A)
【文献】特開2019-139630(JP,A)
【文献】米国特許第6317415(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00
(57)【特許請求の範囲】
【請求項1】
処理部と、
1以上のスレーブと通信する通信部と、
を備え、
前記処理部は、
前記1以上のスレーブに対して、主データを含むフレームを前記通信部から第1周期で送信させる通信処理と、
前記第1周期内にN回(Nは2以上の整数)の第2周期、及び前記第2周期ごとに前記主データ以外の副データの通信が行われるスロット、を設定する設定処理と、
を実行する機能を有し、
前記フレームは、前記主データの送信期間の途中に前記スロットを少なくとも1つ含む、
通信装置。
【請求項2】
前記設定処理は、前記第2周期ごとに前記1以上のスレーブのうちの少なくとも1つのスレーブに前記スロットを割り当てることを含む、
請求項1に記載の通信装置。
【請求項3】
前記フレームは、前記第1周期で前記1以上のスレーブを制御するためのデータを含む、
請求項1又は2に記載の通信装置。
【請求項4】
前記フレームは、前記1以上のスレーブの動作を同期させるためのデータを含む、
請求項1~3のいずれか1項に記載の通信装置。
【請求項5】
前記1以上のスレーブは、前記通信装置に対してデイジーチェーン接続されている、
請求項1~4のいずれか1項に記載の通信装置。
【請求項6】
前記主データは、複数の主データ片を含み、
前記処理部は、前記通信処理において、前記複数の主データ片を前記N回の第2周期で分割して送信する、
請求項1~5のいずれか1項に記載の通信装置。
【請求項7】
前記処理部は、前記主データを前記複数の主データ片に分割する分割処理を実行する機能を、更に有する、
請求項6に記載の通信装置。
【請求項8】
前記複数の主データ片の各々のデータサイズは、前記第2周期で送信可能な範囲で設定される、
請求項7に記載の通信装置。
【請求項9】
前記処理部は、前記設定処理において、少なくとも前記第1周期、前記主データのデータサイズ、及び前記副データのデータサイズのうちの一つに基づいて、前記第2周期を設定する、
請求項6~8のいずれか1項に記載の通信装置。
【請求項10】
前記処理部は、前記設定処理において、前記1以上のスレーブの対応可能な通信周期の整数倍の周期を前記第2周期として設定する、
請求項1~9のいずれか1項に記載の通信装置。
【請求項11】
前記1以上のスレーブのうちの少なくとも1つのスレーブは、モータを駆動させるモータ駆動装置である、
請求項1~10のいずれか1項に記載の通信装置。
【請求項12】
請求項1~11のいずれか1項に記載の通信装置と、
前記通信装置に接続されて前記通信装置と通信する前記1以上のスレーブと、を備える、
通信システム。
【請求項13】
通信装置に接続される1以上のスレーブに対して、主データを含むフレームを第1周期で送信させる通信ステップと、
前記第1周期内にN回(Nは2以上の整数)の第2周期、及び前記第2周期ごとに前記主データ以外の副データの通信を行うためのスロット、を設定する設定ステップと
を含み、
前記フレームは、前記主データの送信期間の途中に前記スロットを少なくとも1つ含む、
通信制御方法。
【請求項14】
1以上のプロセッサに、請求項13記載の通信制御方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に通信装置、通信システム、通信制御方法、及びプログラムに関する。本開示は、より詳細には、1以上のスレーブと通信する通信装置、通信システム、通信制御方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、予め定められた周期ごとにデータが更新されるネットワークに接続される通信装置が開示されている。この通信装置は、第1のスケジューリング手段と、第2のスケジューリング手段と、を備える。第1のスケジューリング手段は、製造装置又は生産設備の制御に用いる第1のデータを予め定められた周期ごとに更新するのに必要な第1の通信帯域を確保する。第2のスケジューリング手段は、ネットワークが有する通信帯域のうち第1の通信帯域以外の通信帯域内に、第2のデータを指定された時間内に送信先へ到着させるのに必要な第2の通信帯域を確保する。
【0003】
特許文献1に記載の通信装置では、第1のデータ(主データ)を通信するのに必要な通信帯域以外の空き帯域にて第2のデータ(副データ)を送信することは可能である。しかしながら、この通信装置では、第2のデータ(副データ)を、第1のデータ(主データ)の伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させることが難しい、という問題があった。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-64245号公報
【発明の概要】
【0005】
本開示は、上記の点に鑑みてなされており、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすい通信装置、通信システム、通信制御方法、及びプログラムを提供することを目的とする。
【0006】
本開示の一態様に係る通信装置は、処理部と、通信部と、を備える。前記通信部は、1以上のスレーブと通信する。前記処理部は、通信処理と、設定処理と、を実行する機能を有する。前記通信処理は、前記1以上のスレーブに対して、主データを含むフレームを前記通信部から第1周期で送信させることを含む。前記設定処理は、前記第1周期内にN回(Nは2以上の整数)の第2周期を設定することを含む。前記設定処理は、前記第2周期ごとに、前記主データ以外の副データの通信が行われるスロットを設定することを含む。前記フレームは、前記主データの送信期間の途中に前記スロットを少なくとも1つ含む。
【0007】
本開示の他の一態様に係る通信システムは、上記の通信装置と、上記の1以上のスレーブと、を備える。前記1以上のスレーブは、前記通信装置に接続されて前記通信装置と通信する。
【0008】
本開示の他の一態様に係る通信制御方法は、通信ステップと、設定ステップと、を含む。前記通信ステップは、通信装置に接続される1以上のスレーブに対して、主データを含むフレームを第1周期で送信させることを含む。前記設定ステップは、前記第1周期内にN回(Nは2以上の整数)の第2周期を設定することを含む。前記設定ステップは、前記第2周期ごとに、前記主データ以外の副データの通信を行うためのスロットを設定することを含む。前記フレームは、前記主データの送信期間の途中に前記スロットを少なくとも1つ含む。
【0009】
本開示の他の一態様に係るプログラムは、1以上のプロセッサに、上記の通信制御方法を実行させる。
【0010】
本開示は、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすい、という利点がある。
【図面の簡単な説明】
【0011】
図1図1は、本開示の実施形態に係る通信装置を備えた通信システムの概要を示すブロック図である。
図2図2は、同上の通信装置による通信処理の説明図である。
図3図3は、同上の通信システムに含まれるスレーブの動作タイミングの説明図である。
図4図4は、同上の通信装置による設定処理のフローチャートである。
図5図5は、同上の通信装置による分割処理の説明図である。
図6図6は、比較例の通信装置による通信処理の説明図である。
【発明を実施するための形態】
【0012】
(1)概要
図1は、本開示の実施形態に係る通信装置1を備えた通信システム100の概要を示すブロック図である。通信システム100は、図1に示すように、通信装置1と、通信装置1に接続される1以上(ここでは、n(nは自然数)台)のスレーブ2(21,22,23,・・・2n)とを備える。通信装置1は、1以上のスレーブ2の上位装置に相当するマスタである。通信装置1及び1以上のスレーブ2は、同一のネットワークに接続されている。そして、1以上のスレーブ2は、通信装置1に接続されて通信装置1と通信する。
【0013】
本実施形態では、通信装置1及び1以上のスレーブ2は、産業用ネットワークに接続されている。本開示でいう「産業用ネットワーク」は、例えばファクトリーオートメーションにおいて用いられるフィールドネットワークであって、工場内に設置された複数の機器間で通信するために用いられる。産業用ネットワークは、一例として、Ethernet/IP(登録商標)、EtherCAT(登録商標)、又はPROFINET(登録商標)等を含み得る。産業用ネットワークに接続される機器は、一例として、コントローラ(例えば、PLC(Programmable Logic Controller)等)、センサ(例えば、変位センサ、流量計、圧力計、画像センサ等)、又はリモートI/O(Input / Output)等を含み得る。また、産業用ネットワークに接続される機器は、一例として、サーボアンプ、インバータ、ロボット、アクチュエータ、又はバルブ等を含み得る。
【0014】
産業用ネットワークは、オフィス等で用いられる標準的なベストエフォート型のネットワークと比較して、堅牢性、定時性、及びリアルタイム性が要求される。例えば、産業用ネットワークにおいて、コントローラからサーボアンプ等の制御対象の機器に対して周期的に制御データを送信する場合に、ベストエフォート(best effort)型のネットワークと比較して遅延が許されず、また、制御データに対する応答速度の高速化が求められる。
【0015】
通信装置1は、図1に示すように、処理部11と、通信部12と、を備えている。通信部12は、1以上のスレーブ2と通信する通信インタフェースである。処理部11は、通信処理と、設定処理と、を実行する機能を有している。
【0016】
図2は、本開示の実施形態に係る通信装置による通信処理の説明図である。通信処理は、1以上のスレーブ2に対して、主データを含むフレーム(通信フレーム)F1を通信部12から第1周期CT1で送信させる処理である。つまり、通信装置1は、通信処理を実行することにより、1以上のスレーブ2に対して主データを第1周期CT1で送信する。主データは、例えば通信装置1がコントローラであって、1以上のスレーブ2がサーボアンプ等の制御対象の機器であれば、スレーブ2を制御するための制御データを含み得る。第1周期CT1は、一例として、0.数ms~数msである。各スレーブ2は、主データを受信すると、受信した主データに応じた処理を実行する。例えば、主データが1以上のスレーブ2の各々に対応した1以上の制御データを含んでいる場合、各スレーブ2は、主データを受信すると、主データに含まれる対応した制御データを取得し、取得した制御データに応じた処理を実行する。
【0017】
設定処理は、第1周期CT1内に、第2周期CT2を設定することを含む。設定処理において、処理部11は、第1周期CT1内に第2周期CT2をN回(Nは2以上の整数)設定する。設定処理は、第2周期CT2ごとに、主データ以外の副データの通信を行うためのスロットS0を設定することを含む。つまり、第1周期CT1内において、N回の第2周期CT2の各々は、主データ以外の副データの通信を行うためのスロットS0を含んでいる。
【0018】
本実施形態では、設定処理において、処理部11は、第2周期CT2ごとに、1以上のスレーブ2のうちの少なくとも1つのスレーブ2に上記のスロットS0を割り当てる。
【0019】
スレーブ2は、対応するスロットS0(割り当てられたスロットS0)に含まれるデータを取得したり、対応するスロットS0を用いて他の機器(通信装置1又は他のスレーブ2)に対してデータを送信したりすることが可能である。すなわち、スロットS0を割り当てられたスレーブ2は、第1周期CT1で送信される主データとは別に、第2周期CT2ごとにスロットS0を用いて、副データを周期的に受信することが可能である。スロットS0を割り当てられたスレーブ2は、第2周期CT2ごとにスロットS0を用いて、主データとは別に副データを周期的に送信することが可能である。つまり、本実施形態では、例えば通信装置1に接続されたスレーブ2において、副データを周期的に(第2周期CT2で)送信、又は受信させやすい、という利点がある。
【0020】
さらに、処理部11は、通信処理において、主データの送信期間の途中にスロットS0が少なくとも1つ含まれるように、フレームF1を送信させる。言い換えれば、フレームF1の途中に、第2周期CT2のスロットS0が少なくとも1つ差し込まれることになる。そのため、本実施形態では、例えばスロットS0を割り当てられたスレーブ2は、主データの送信時間(主データの送信に要する時間)よりも短い周期(第2周期CT2)で、副データを周期的に送信、受信、又は送受信することが可能となる。つまり、本実施形態では、副データを、主データの伝送に要する時間よりも短い周期(第2周期CT2)で周期的に送信、受信、又は送受信させやすい、という利点がある。
【0021】
(2)詳細
以下、本実施形態の通信装置1を備えた通信システム100について図1を用いて詳細に説明する。本実施形態では、通信装置1には、複数(ここでは、n台(nは1以上の整数))のスレーブ2が接続されている。複数のスレーブ2(言い換えれば、1以上のスレーブ2)は、通信装置1に対してデイジーチェーン(daisy chain)接続されている。具体的には、通信装置1には、第1スレーブ21、第2スレーブ22、第3スレーブ23、…、第nスレーブ2nが順にリング状に接続されている。このため、本実施形態では、通信装置1から送信されるフレームF1は、第1スレーブ21、第2スレーブ22、第3スレーブ23、…、第nスレーブ2n、通信装置1の順に伝送されることになる。
【0022】
また、本実施形態の通信システム100においては、複数のスレーブ2のうちの1台のスレーブ2はセンサであり、残りのスレーブ2はサーボアンプである。言い換えれば、本実施形態では、1以上のスレーブ2のうちの少なくとも1つのスレーブ2は、モータを駆動させるモータ駆動装置である。また、通信システム100においては、通信装置1は、複数のスレーブ2(つまり、複数のサーボアンプ及びセンサ)を個別に又は全体的に制御するコントローラである。
【0023】
通信装置1は、処理部11と、通信部12と、を備えている。本実施形態では、通信装置1は、処理部11が有するメモリにデータを記憶しているが、処理部11とは別に記憶部を有していてもよい。記憶部は、一例として、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の電気的に書換え可能な不揮発性メモリ、及びRAM(Random Access Memory)等の揮発性メモリ等である。
【0024】
処理部11は、例えば、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、処理部11としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。
【0025】
通信部12は、複数のスレーブ2との通信を行うための通信インタフェースであって、例えば産業用のイーサネット(登録商標)プロトコルに準拠した有線通信モジュールを有している。通信部12は、通信装置1に直接接続された最前段にあるスレーブ2(図1では、第1スレーブ21)の通信部202(後述する)に対してフレームF1を送信する。また、通信部12は、通信装置1に直接接続された最後段にあるスレーブ2(図1では、第nスレーブ2n)の通信部202から送信されるフレームF1を受信する。
【0026】
処理部11は、通信処理と、設定処理と、分割処理と、を実行する機能を有している。設定処理及び分割処理は、いずれも通信装置1を含めた通信システム100を稼働させる前に実行される処理である。通信処理は、通信装置1を含めた通信システム100の稼働中に実行される処理である。
【0027】
分割処理は、主データを複数の主データ片に分割する処理である。本実施形態では、主データは、通信装置1から各スレーブ2に対して送信されるスレーブ2ごとの制御データを含み得る。分割後の各主データ片は、少なくとも1つのスレーブ2に対して送信される制御データの、一部又は全部を含み得る。分割処理において、処理部11は、許容最大データサイズADmdiv(後述する)に基づいて、主データを複数の主データ片に分割する。分割処理の詳細については、「(3)設定処理」にて後述する。
【0028】
通信処理は、複数のスレーブ2に対してフレームF1を通信部12から第1周期CT1で送信させる処理である。第1周期CT1は、通信装置1にあらかじめ設定されている。本実施形態では、通信装置1が第1スレーブ21に対してフレームF1を送信することにより、第1スレーブ21、第2スレーブ22、第3スレーブ23、…、第nスレーブ2nの順にフレームF1が伝送される(図1を参照)。
【0029】
図2に示すように、フレームF1は、複数の分割フレームF21,F22,…,F2β(βは2以上の整数)から構成される。つまり、通信処理において処理部11は、複数の分割フレームF21,F22,…,F2βから構成されるフレームF1を、第1周期CT1で(繰り返し)送信する。以下では、複数の分割フレームF21,F22,…,F2βを区別しない場合、「分割フレームF2」と表記する。
【0030】
ここで、「β」は分割数である。分割数βは、フレームF1を構成する分割フレームF2の数であって、後述するように、設定処理において算出される。分割数βは、第1周期CT1に含まれる第2周期CT2の回数Nと等しい。
【0031】
より詳細には、通信処理では、1つの第1周期CT1内において、複数のスレーブ2に対して、複数の分割フレームF21,F22,…,F2βが通信部12から第2周期CT2で送信される(図2を参照)。言い換えれば、通信処理において処理部11は、複数の分割フレームF21,F22,…,F2βを、第2周期CT2で送信する。第2周期CT2は、後述するように、設定処理において設定される。
【0032】
図2に示すように、各分割フレームF2は、ヘッダD100と、副データ領域D2と、フッタD101と、を少なくとも含んでいる。また、複数の分割フレームF21,F22,…,F2βのうちの少なくとも1つの分割フレームF2(図2の例では、分割フレームF21,F22,F23)は、主データ領域D1を更に含んでいる。
【0033】
主データ領域D1は、主データ(主データ片)の伝送に用いられる領域(スロット)である。すなわち、主データは、主データ領域D1にて伝送される。主データ領域D1を含む少なくとも1つの分割フレームF2(分割フレームF21,F22,F23)の各々において、主データ領域D1は、複数(ここでは、スレーブ2の数であるn個)のスロットD11,D12,…,D1nのうちの少なくとも1つのスロットの少なくとも一部を含んでいる。複数のスロットD11,D12,…,D1nは、それぞれ複数のスレーブ21,22,…,2nに割り当てられる。フレームF1の主データ領域D1に、n個のスレーブ2に対応するn個のスロットD11,D12,…,D1nの全てが含まれていることが好ましい。
【0034】
図2の例では、分割フレームF21の主データ領域D1は、スロットD11,D12を含んでいる。分割フレームF22の主データ領域D1は、スロットD13,D14を含んでいる。分割フレームF23の主データ領域D1は、スロットD15,D16を含んでいる。すなわち、主データ領域D1を含む分割フレームF21,F21,F23の各々において、主データ領域D1は、2つのスロットの各々の全体を含んでいる。ただし、この例に限らず、1つのスロット(例えば、第1スレーブ21に割り当てられるスロットD11)が、複数の分割フレームF2の主データ領域D1に分割して含まれていてもよい。例えば、分割フレームF21の主データ領域D1が、スロットD11の一部を含み、分割フレームF22の主データ領域D1が、スロットD11の残りの部分を含んでいてもよい。
【0035】
このように、本実施形態では、処理部11は、通信処理において、複数の主データ片をN回の第2周期CT2で分割して送信する。
【0036】
フレームF1を受信したスレーブ2は、主データ領域D1のうちの割り当てられたスロット(例えば、第1スレーブ21であればスロットD11)を用いて、通信装置1からの主データを取得することが可能である。具体的には、各スレーブ2は、自身に割り当てられているスロットを含む分割フレームF2から、自身に対する主データ(自身の制御データ)を取得する。図2の例では、第1スレーブ21は、分割フレームF21のスロットD11を用いて、通信装置1からの主データ(第1スレーブ21の制御データ)を取得することが可能である。また、第3スレーブ23は、分割フレームF22のスロットD13を用いて、通信装置1からの主データ(第3スレーブ23の制御データ)を取得することが可能である。
【0037】
本実施形態では、上述のように、主データは、通信装置1から各スレーブ2に対して送信されるスレーブ2ごとの制御データを含み得る。主データは、スレーブ2ごとの制御データに対する応答データを含み得る。
【0038】
本実施形態では、処理部11は、主データの伝送の終了タイミングを示すデータ(以下、「同期データ」ともいう)をフレームF1に含めて、フレームF1を送信する。すなわち、フレームF1は、主データの伝送の終了タイミングを示す同期データを含み得る。同期データは、例えば、複数の分割フレームF2のうちで主データ領域D1を含む最後の分割フレームF2(図2の例では、分割フレームF23)のヘッダD100に、含まれる。
【0039】
各分割フレームF2において、副データ領域D2は、複数(ここでは、n個)のスロットD21,D22,…,D2nに分割されている。複数のスロットD21,D22,…,D2nは、いずれも設定処理により設定されたスロットS0に相当し、それぞれ複数のスレーブ21,22,…,2nに割り当てられている。つまり、本実施形態では、フレームF1は、スロットS0を含んでいる。各分割フレームF2は、スロットS0を含んでいる。スロットS0は、設定処理により設定される。
【0040】
分割フレームF2を受信したスレーブ2は、副データ領域D2のうちの割り当てられたスロットS0(例えば、第1スレーブ21であればスロットD21)に含まれる副データを取得したり、スロットS0を用いて他の機器(通信装置1又は他のスレーブ2)に対して副データを送信したりすることが可能である。本実施形態では、副データは、スレーブ2から他のスレーブ2に対して送信される種々のデータを含み得る。つまり、スロットS0は、主データ以外の副データの通信を行うために用いられる。特に、スロットS0は、1以上のスレーブ2の間での通信に用いられ得る。
【0041】
本実施形態では、処理部11は、第1周期CT1ごとに主データを更新する。具体的には、処理部11は、フレームF1の送信を開始してから次のフレームF1の送信を開始するまでの間に、次のフレームF1に含める主データを生成する。主データを生成する際には、処理部11は、一例として、通信装置1の上位システムからの指令情報、及び各スレーブ2から受信した応答情報等を参照する。例えば、処理部11は、センサ(スレーブ2)から受信した検知情報を参照することにより、各サーボアンプ(各スレーブ2)を制御するための制御データ(主データ)を生成する。したがって、第1周期CT1は、主データを生成する処理を実行できる程度に設定される必要があり、処理部11の処理性能に依存する。
【0042】
設定処理は、通信処理で用いられる第2周期CT2と、スロットS0と、を設定する処理である。すなわち、通信処理は、設定処理で設定されたパラメータに基づいて実行される。
【0043】
設定処理において、処理部11は、第1周期CT1内に、第2周期CT2をN回(Nは2以上の整数)設定する。第2周期CT2は、第1周期CT1よりも短い。本実施形態では、処理部11は、後述するように、少なくとも第1周期CT1、主データのデータサイズ、及び副データのデータサイズに基づいて、第2周期CT2を設定する。スロットS0は、第2周期CT2ごとにスレーブ2に割り当てられる。本実施形態では、処理部11は、各第2周期CT2(各分割フレームF2)において、全てのスレーブ2に対してスロットS0を割り当てる。設定処理にて各スレーブ2に割り当てられたスロットS0は、上述の副データ領域D2を構成する。設定処理の詳細については、「(3)設定処理」にて後述する。なお、各スレーブ2に割り当てられるスロットS0のスロット長は、データサイズに応じて異なっていてもよい。
【0044】
スレーブ2は、処理部201と、通信部202と、を備えている。スレーブ2は、処理部201が有するメモリにデータを記憶しているが、処理部201とは別に記憶部を有していてもよい。記憶部は、一例として、EEPROM等の電気的に書換え可能な不揮発性メモリ、及びRAM等の揮発性メモリ等である。
【0045】
処理部201は、例えば、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、処理部201としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。
【0046】
処理部201は、通信部202にて受信した主データのうち対応したデータ(ここでは、制御データ)に基づく処理を実行する機能を有する。図3は、本開示の実施形態に係る通信システム100に含まれるスレーブの動作タイミングの説明図である。図3に示すように、処理部201は、同期データを含む分割フレームF2(図2の例では分割フレームF23)を受信すると、この分割フレームF2の受信の終了後に、主データ(制御データ)に応じた処理を実行する。同期データを含む分割フレームF2(分割フレームF23)は第1周期CT1で送信されるため、各スレーブ2の処理部201は、第1周期CT1で、主データに応じた処理を実行する。言い換えれば、フレームF1は、第1周期CT1でスレーブ2を制御するためのデータ(同期データ)を含んでいる。また、1以上(複数)のスレーブ2は、同期データに基づいて、互いに同期して主データに応じた処理を実行する。言い換えれば、フレームF1は、1以上のスレーブ2の動作を同期させるためのデータ(同期データ)を含んでいる。
【0047】
処理部201は、通信部202にて受信した副データのうち対応したデータに応じた処理を実行する機能を有する。例えば、処理部201は、各分割フレームF2のヘッダD100の受信時点を基準として、この受信時点から所定の遅延時間が経過すると、この分割フレームF2で受信した副データに応じた処理を実行する(図3を参照)。遅延時間は、例えば、第2周期CT2よりも、副データに応じた処理に要する時間だけ短い時間に設定されるが、これに限定されない。分割フレームF2は上述のように第2周期CT2で送信されるため、処理部201は、第2周期CT2で、副データに応じた処理を実行することになる。
【0048】
さらに、処理部201は、受信した分割フレームF2の副データ領域D2のうち割り当てられたスロットS0を用いて、副データを他の機器に対して送信する処理を実行する機能を有する。
【0049】
通信部202は、通信装置1又は他のスレーブ2との通信を行うための通信インタフェースであって、例えば産業用のイーサネット(登録商標)プロトコルに準拠した有線通信モジュールを有している。通信部202は、スレーブ2に直接接続された前段にある通信装置1の通信部12又はスレーブ2の通信部202から送信されるフレームF1(分割フレームF2)を受信する。通信部202は、スレーブ2に直接接続された後段にある通信装置1の通信部12又はスレーブ2の通信部202に対して、受信したフレームF1(分割フレームF2)を送信する。一例として、第1スレーブ21の通信部202は、通信装置1の通信部12から送信されるフレームF1を受信し、受信したフレームF1を第2スレーブ22の通信部202に対して送信する。この際に、第1スレーブ21の通信部202は、受信したフレームF1を適宜更新してから送信してもよい。
【0050】
(3)設定処理
以下、通信装置1の処理部11で実行される設定処理について、図4を用いて詳細に説明する。図4は、本開示の実施形態に係る通信装置1による設定処理のフローチャートである。
【0051】
上述のように、設定処理は、第2周期CT2及びスロットS0を設定する処理である。設定処理は、例えば通信システム100を稼働する前に、通信装置1が備えるユーザインタフェースを用いてユーザが所定の操作を行うことにより、処理部11にて実行される。設定処理を実行する前段階においては、ユーザは、設定処理を実行する際に必要な設定用データを、ユーザインタフェースを用いて通信装置1に入力する。
【0052】
本実施形態では、設定用データは、主データの総データサイズと、副データの総データサイズと、最小の通信周期CTminと、を含む。主データの総データサイズは、各スレーブ2にて受信可能な主データのデータサイズの全フレームについての総和である。副データの総データサイズは、各スレーブ2にて送信、受信、又は送受信可能な副データのデータサイズの全フレームについての総和である。最小の通信周期CTminは、通信装置1が1以上のスレーブ2との通信で許容される最小の通信周期である。本実施形態では、最小の通信周期CTminは、複数のスレーブ21,22,…,2nがそれぞれ対応可能な通信周期のうち、最長の通信周期である。
【0053】
なお、設定用データは、通信装置1と各スレーブ2との通信を確立して初期化フレームを通信装置1から各スレーブ2に対して送信する際に、通信装置1が各スレーブ2から取得してもよい。つまり、通信装置1は、初期化フレームの応答として、各スレーブ2から設定用データを取得することになる。この場合、設定用データは、例えばユーザが設定用データを入力する等して、あらかじめ各スレーブ2に設定されている、と仮定する。
【0054】
設定処理において、処理部11は、設定用データが入力されると(ST1)、まず、第2周期候補CCT2として、最小の通信周期CTminを設定する(ST2)。また、処理部11は、分割フレームF2の最小伝送時間TTsfを算出する(ST3)。最小伝送時間TTsfは、ヘッダD100と、副データ領域D2と、フッタD101と、のみを含む分割フレームF2の伝送時間(送出に要する時間)である。具体的には、処理部11は、下記の式(1)に基づいて演算することにより、最小伝送時間TTsfを算出する。
【0055】
【数1】
【0056】
上記の式(1)において、「Dh」は分割フレームF2のヘッダD100のデータサイズ、「Ds」は副データの総データサイズ、「Df」は分割フレームF2のフッタD101のデータサイズを表している。「Tr」は転送レート、「x」は通信システム100に属する機器(通信装置1及びスレーブ2)の台数(=n+1)、「Td1」は機器1台あたりの遅延時間、「Td2」は通信システム100全体での遅延時間を表している。
【0057】
処理部11は、最小伝送時間TTsfと、第2周期候補CCT2(最小の通信周期CTmin)と、を比較する(ステップST4)。最小伝送時間TTsfが第2周期候補CCT2よりも小さい場合(ステップST4でYes)、処理部11は、分割数βを算出する(ステップST5)。具体的には、処理部11は、下記の式(2)に基づいて演算することにより、分割数βを算出する。
【0058】
【数2】
【0059】
つまり、分割数βは、第1周期CT1を第2周期候補CCT2で除算することで算出される商である。
【0060】
処理部11は、次に、下記の式(3)に基づいて演算することにより、主データを分割した分割データのデータサイズDmdivを算出する(ステップST6)。
【0061】
【数3】
【0062】
上記の式(3)において、「Dm」は主データの総データサイズを表している。
【0063】
次に、処理部11は、分割フレームF2の必要伝送時間TTfを算出する(ステップST7)。必要伝送時間TTfは、ヘッダD100と、ステップST6で算出した分割データの伝送領域と、副データ領域D2と、フッタD101と、を含む分割フレームF2の伝送時間(送出に要する時間)である。具体的には、処理部11は、下記の式(4)に基づいて演算することにより、必要伝送時間TTfを算出する。
【0064】
【数4】
【0065】
次に、処理部11は、必要伝送時間TTfと、第2周期候補CCT2(最小の通信周期CTmin)と、を比較する(ステップST8)。必要伝送時間TTfが第2周期候補CCT2よりも小さい場合(ステップST8でYes)、処理部11は、第2周期候補CCT2(最小の通信周期CTmin)を第2周期CT2に設定する(ステップST9)。
【0066】
このように、本実施形態では、処理部11は、設定処理において、少なくとも第1周期CT1、主データのデータサイズDm、及び副データのデータサイズDsに基づいて、第2周期CT2を設定する。
【0067】
第2周期CT2が設定されると、処理部11は、第2周期CT2及び必要伝送時間TTfに基づいて、分割データのデータサイズDmdivを調整する(ステップST10)。ここでは、処理部11は、分割データの許容最大データサイズADmdivを算出する。許容最大データサイズADmdivは、1つの分割フレームF2の主データ領域D1に割り当て可能な分割データの最大データサイズである。具体的には、処理部11は、下記の式(5)に基づいて演算することにより、許容最大データサイズADmdivを算出する。
【0068】
【数5】
【0069】
上記の式(5)において、「α」は、ジッタ(Jitter)を考慮した余裕時間を表している。
【0070】
許容最大データサイズADmdivの算出後、処理部11は、各分割フレームF2の主データ領域D1及び副データ領域D2を設定する。
【0071】
具体的には、処理部11は、主データの全体が、複数の分割フレームF21,F22,…,F2βのうちのいずれかの分割フレームF2で送信されるように、少なくとも1つの分割フレームF2の主データ領域D1に、スロットD11,D12,…,D1nを設定する。
【0072】
処理部11は、例えば、許容最大データサイズADmdivに基づいて、主データを複数の分割データに分割し、これにより複数の主データ片を生成する。図5は、本開示の実施形態に係る通信装置による分割処理の説明図である。例えば、処理部11は、図5に示すように、複数の分割フレームF21,F22,…,F2βのうちの最初の分割フレームF21から順に、許容最大データサイズADmdivの分割データ(主データ片)を割り当てる。すなわち、本実施形態では、いわゆる「前詰め」で、複数の分割フレームF2に分割データ(主データ片)を割り当てる。これにより、複数の分割フレームF2のうちの少なくとも1つの分割フレームF2に、主データ領域D1が設定される。
【0073】
図5に示す例では、主データの総データサイズDmは、許容最大データサイズADmdivの2倍よりも大きく、3倍よりも小さい。そのため、1つ目の分割フレームF21及び2つ目の分割フレームF22には、許容最大データサイズADmdivの分割データ(主データ片)が割り当てられる。また、3つ目の分割フレームF23には、許容最大データサイズADmdivよりも小さなデータサイズの分割データ(主データ片)が割り当てられる。また、3つ目の分割フレームF23までで全ての分割データの割り当てが完了しているため、4つ目以降の分割フレームF24,…F2βには、主データ領域D1が含まれていない。
【0074】
このように、本実施形態では、ステップST10は、主データを複数の主データ片に分割する分割処理を含んでいる、と言える。
【0075】
また、処理部11は、設定された第2周期CT2ごとに(すなわち、各分割フレームF2に対して)、副データ領域D2を設定する。ここでは、処理部11は、第2周期CT2ごとに(各分割フレームF2に対して)、各スレーブ2に対してスロットS0を割り当てる。すなわち、処理部11は、スロットS0として、スレーブ21,22,…,2nにそれぞれスロットD21,D22,…,D2nを割り当てる。要するに、設定処理において、処理部11は、第2周期CT2ごとにスロットS0を設定する。
【0076】
一方、図4に戻り、最小伝送時間TTsfが第2周期候補CCT2以上の場合(ステップST4でNo)、或いは必要伝送時間TTfが第2周期候補CCT2以上の場合(ステップST8でNo)、処理部11は、第2周期候補CCT2を、現在の値よりも大きな値に変更する。ここでは、処理部11は、初期値が「1」に設定されている繰り返し回数「m」に「1」を加算(インクリメント)し(ステップST11)、第2周期候補CCT2を、最小の通信周期CTminと現在の繰り返し回数mとの積で得られる値へと変更(更新)する(ステップST12)。したがって、本実施形態では、処理部11は、設定処理において、1以上のスレーブ2の対応可能な通信周期(最小の通信周期CTmin)の整数倍の周期を第2周期CT2として設定していると言える。そして、処理部11は、ステップST4へと戻り、必要伝送時間TTfが第2周期候補CCT2より小さくなる(ステップST8でYes)まで、ステップST11,ST12,ST4~ST8を繰り返し行う。
【0077】
(4)具体例
以下、設定処理の具体例について説明する。以下の説明では、第1周期CT1は500μsである、と仮定する。また、以下の説明では、通信システム100が3台のスレーブ2(第1スレーブ21、第2スレーブ22、及び第3スレーブ23)を備えている、と仮定する。つまり、以下の説明では、通信システム100に属する機器(通信装置1及びスレーブ2)の台数xは4台である。以下の説明では、ヘッダD100のデータサイズが12バイト(Bytes)、フッタD101のデータサイズが12バイト(Bytes)である、と仮定する。以下の説明では、転送レートTrが100Mbps、スレーブ2の1台あたりの遅延時間Td1が3μs、通信システム100全体での遅延時間Td2が1.5μs、余裕時間αが3μsである、と仮定する。
【0078】
まず、各スレーブ2の設定用データが以下の表1に示すデータである場合について説明する。
【0079】
【表1】
【0080】
この場合、副データの総データサイズDsが16(=4+4+8)バイトであって、ヘッダD100と副データ領域D2とフッタD101とを含めた分割フレームF2のフレームサイズが320(=(12+16+12)×8)ビット(bits)であるので、最小伝送時間TTsfは、式(1)により、16.7(=320/100+3×4+1.5)μsと算出される。この場合、全てのスレーブ21,22,23の対応可能な通信周期のうち、第1スレーブ21及び第3スレーブ23の対応可能な通信周期が最長であるため、最小の通信周期CTminは31.25μsとなる。最小伝送時間TTsfが最小の通信周期CTmin(31.25μs)よりも小さいので、処理部11は、まず、最小の通信周期CTmin(31.25μs)を第2周期候補CCT2に設定する。この場合、分割数βは、式(2)より、16(=500/31.25)となる。
【0081】
また、主データの総データサイズDmが80(=32+16+32)バイトであるので、分割データのデータサイズDmdivは、式(3)により5(=80/16)バイトであり、ヘッダD100と分割データの伝送領域と副データ領域D2とフッタD101とを含めた分割フレームF2のフレームサイズが360(=(12+5+16+12)×8)ビットである。そのため、必要伝送時間TTfは、式(4)により、17.1(=360/100+3×4+1.5)μsと算出される。必要伝送時間TTfが第2周期候補CCT2(最小の通信周期CTmin(31.25μs))よりも小さいので、処理部11は、最小の通信周期CTmin(31.25μs)を第2周期CT2に設定する。
【0082】
処理部11は、許容最大データサイズADmdivに基づいて、主データを分割データに分割する。この場合、許容最大データサイズADmdivは、式(5)により、144.375(=5+(31.25-17.1-3)×100/8)バイトとなり、許容最大データサイズADmdivが、主データのデータサイズDm(80バイト)よりも大きい。そのため、処理部11は、例えば、主データを分割することなく、全ての主データが分割フレームF21で伝送されるように(すなわち、分割フレームF21のみが主データ領域D1を含み、残りの分割フレームF22,…F216は主データ領域D1を含まないように)、分割フレームF2を生成する。
【0083】
次に、各スレーブ2の設定用データが以下の表2に示すデータである場合について説明する。
【0084】
【表2】
【0085】
この場合、副データの総データサイズDsが220(=40+20+160)バイトであって、ヘッダD100と副データ領域D2とフッタD101とを含めた分割フレームF2のフレームサイズが1952(=(12+220+12)×8)ビットであるので、最小伝送時間TTsfは、式(1)により、33.02(=1952/100+3×4+1.5)μsと算出される。この場合、全てのスレーブ21,22,23の対応可能な通信周期のうち、第1スレーブ21及び第3スレーブ23の対応可能な通信周期が最長であるため、最小の通信周期CTminは31.25μsとなる。最小伝送時間TTsfが最小の通信周期CTmin(31.25μs)以上であるので、処理部11は、初期値が「1」である繰り返し回数「m」に「1」を加算し、最小の通信周期CTmin(31.25μs)を繰り返し回数m倍(ここでは2倍)した値(62.5μs)を、第2周期候補CCT2に設定する。この場合、分割数βは、式(2)により、8(=500/62.5)となる。
【0086】
また、主データの総データサイズDmが800(=320+320+160)バイトであるので、分割データのデータサイズDmdivは、式(3)により100(=800/8)バイトであり、ヘッダD100と分割データの伝送領域と副データ領域D2とフッタD101とを含めた分割フレームF2のフレームサイズが2752(=(12+100+220+12)×8)ビットである。そのため、必要伝送時間TTfは、式(4)により、41.02(=2752/100+3×4+1.5)μsと算出される。必要伝送時間TTfが、第2周期候補CCT2(62.5μs)よりも小さいので、処理部11は、第2周期候補CCT2(62.5μs)を第2周期CT2に設定する。
【0087】
処理部11は、許容最大データサイズADmdivに基づいて、主データを分割データに分割する。この場合、許容最大データサイズADmdivは、式(5)により、331(=100+(62.5-41.02-3)×100/8)バイトとなる。処理部11は、例えば、複数(ここでは、分割数β=8であるため、8つ)の分割フレームF21,F22,…,F28のうち、分割フレームF21,F22に、総データサイズが800バイトの主データのうち、331バイト分の分割データをそれぞれ割り当て、分割フレームF23に、残りの138(=800-331×2)バイト分の分割データを割り当てることで、主データを主データ片(分割データ)に分割する。
【0088】
以下、本実施形態の通信装置1の利点について、比較例の通信装置との比較を交えて説明する。比較例の通信装置は、分割処理及び設定処理を実行する機能を有していない点で、本実施形態の通信装置1と相違する。図6は、比較例の通信装置による通信処理の説明図である。比較例の通信装置は、図6に示すように、主データのデータサイズDmにかかわらず、1つのフレーム(主フレーム)F100にて、すべての主データを通信装置1又はスレーブ2から送信させる。そして、主データと異なる副データを通信装置1又はスレーブ2から送信させる場合、第1周期CT1における主フレームF100を除いた空き領域CT10にて、副データ領域D2を含む別のフレーム(副フレーム)F200を送信する。しかしながら、比較例の通信装置では、第2周期CT2が設定されていないため、副フレームF200が送信されるタイミングも規定されていないことから、副データを周期的に送信することができない。このため、比較例の通信装置では、主データとは異なる副データについて、産業用ネットワークでの使用に耐え得る周期的な通信を行うことが難しい。
【0089】
一方、本実施形態の通信装置1では、例えば設定処理によりスロットS0を割り当てられたスレーブ2は、第1周期CT1で送信される主データとは別に、第2周期CT2ごとにスロットS0を用いて、副データを周期的に受信することが可能である。例えば設定処理によりスロットS0を割り当てられたスレーブ2は、第2周期CT2ごとにスロットS0を用いて、主データとは別に副データを周期的に送信することが可能である。つまり、本実施形態では、通信装置1に接続されたスレーブ2において、副データを周期的に送信、受信、又は送受信させやすい、という利点がある。そのため、本実施形態では、主データだけでなく副データについても、産業用ネットワークでの使用に耐え得る周期的な通信を行いやすい、という利点がある。
【0090】
比較例の通信装置において、主データのデータサイズが比較的大きい場合には、主データの送信のみで第1周期CT1の半分以上を占める(すなわち、主フレームF100の送信のみで、第1周期CT1の半分以上の時間がかかる)可能性がある。その場合、第1周期CT1内に、第2周期CT2を複数回設定することが難しい。これに対して、本実施形態では、フレームF1が、主データの送信期間の途中にスロットS0を少なくとも1つ含んでいる。そのため、本実施形態の通信装置1では、例えばスロットS0を割り当てられたスレーブ2は、主データの送信時間よりも短い周期(第2周期CT2)で、副データを周期的に送信、受信、又は送受信することが可能となる。そのため、本実施形態では、通信装置1に接続されたスレーブ2において、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすい、という利点がある。そのため、本実施形態では、主データだけでなく副データについても、産業用ネットワークでの使用に耐え得る周期的な通信をさらに行いやすい、という利点がある。
【0091】
(5)変形例
上述の実施形態は、本開示の様々な実施形態の1つにすぎない。上述の実施形態は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。通信装置1と同様の機能は、通信制御方法、(コンピュータ)プログラム、又はプログラムを記録した非一時的記録媒体等で具現化されてもよい。
【0092】
一態様に係る通信制御方法は、通信ステップと、設定ステップと、を含む。通信ステップは、通信装置1に接続される1以上のスレーブ2に対して、主データを含むフレームF1を第1周期CT1で送信させるステップである。設定ステップは、第1周期CT1内にN回(Nは2以上の整数)の第2周期CT2、及び第2周期CT2ごとに主データ以外の副データの通信を行うためのスロットS0、を設定するステップである。フレームF1は、主データの送信期間の途中にスロットS0を少なくとも1つ含む。また、一態様に係るプログラムは、1以上のプロセッサに、上記の通信制御方法を実行させる。
【0093】
以下、上述の実施形態の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
【0094】
本開示における通信装置1は、例えば処理部11にコンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示における処理部11としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路(IC(Integrated Circuit))又は大規模集積回路(LSI(Large Scale Integration))を含む1又は複数の電子回路で構成される。ここでいうIC又はLSI等の集積回路は、集積の度合いによって呼び方が異なっており、システムLSI、VLSI(Very Large Scale Integration)、又はULSI(Ultra Large Scale Integration)と呼ばれる集積回路を含む。さらに、LSIの製造後にプログラムされる、FPGA(Field-Programmable Gate Array)、又はLSI内部の接合関係の再構成若しくはLSI内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。ここでいうコンピュータシステムは、1以上のプロセッサ及び1以上のメモリを有するマイクロコントローラを含む。したがって、マイクロコントローラについても、半導体集積回路又は大規模集積回路を含む1又は複数の電子回路で構成される。
【0095】
また、処理部11における複数の機能が、1つの筐体に集約されていることは処理部11に必須の構成ではない。処理部11の構成要素は、複数の筐体に分散して設けられていてもよい。さらに、処理部11の少なくとも一部の機能は、例えば、サーバ装置及びクラウド(クラウドコンピューティング)等によって実現されてもよい。反対に、上述の実施形態のように、処理部11の全ての機能が、1つの筐体に集約されていてもよい。
【0096】
一変形例において、通信装置1の処理部11は、設定処理にて対応可能な通信周期が比較的長いスレーブ2が通信システム100に属している場合、このスレーブ2の対応可能な通信周期を他のスレーブ2の対応可能な通信周期に揃えてもよい。すなわち、スレーブ2の対応可能な通信周期は、例えばデータを生成して送信する処理等、処理負荷の比較的大きい処理を実行する場合に必要な周期である。そのため、単にデータを取得する処理等の処理負荷の比較的小さい処理を実行する場合には、スレーブ2の対応可能な通信周期を短く設定することも可能である。このように、スレーブ2の対応可能な通信周期を他の対応可能な通信周期に揃えることで、結果として最小の通信周期CTminを調整することが可能である。言い換えれば、最小の通信周期CTminは、任意に設定可能であってもよい。
【0097】
一変形例において、スロットS0は、所定時間を基準としてある程度のばらつきがあってもよい。つまり、スロットS0のずれは、少なくとも第2周期CT2よりも短い許容時間内に収まっているのが好ましい。具体的には、主データ領域D1を含む分割フレームF2を送信する第2周期CT2においては、この第2周期CT2が終了するまでにスレーブ2にてスロットS0の受信が完了できれば、スロットS0の送信を開始するタイミングはどのタイミングであってもよい。例えば、主データ領域D1の終了タイミングが図2に示す例よりも遅くなった場合であっても、各スレーブ2でのスロットS0の受信がこの第2周期CT2が終了するまでに完了するのであれば、スロットS0の送信を開始するタイミングのずれが許容される。
【0098】
一変形例において、分割フレームF2内での主データ領域D1と副データ領域D2との順番は、主データ領域D1が先の場合に限られず、副データ領域D2が先であってもよい。
【0099】
上述の実施形態の設定処理では、対応可能な通信周期が互いに異なる複数種類のスレーブ2が存在する場合、対応可能な通信周期の最小公倍数の整数倍(繰り返し回数m倍)を第2周期CT2に設定しているが、これに限らない。一変形例において、複数種類のスレーブ2を全てスロットS0の割り当て対象とするのではなく、一部のスレーブ2をスロットS0の割り当て対象外としてもよい。例えば、複数種類のスレーブ2のうち1種類のスレーブ2のみをスロットS0の割り当て対象とするならば、第2周期CT2は、この種類のスレーブ2の対応可能な通信周期に設定されることになる。
【0100】
一変形例において、算出された第2周期CT2が各スレーブ2の対応可能な通信周期の整数倍に一致しない場合であっても、算出された第2周期CT2をそのまま第2周期CT2として設定してもよい。この場合、第1周期CT1内には、N回の第2周期CT2以外に、余り分の期間が含まれ得る。
【0101】
一変形例において、スレーブ2は、モータ駆動装置に限らず、センサ等の他の機器であってもよい。一変形例において、複数のスレーブ2にモータ駆動装置が含まれていなくてもよい。例えば、全てのスレーブ2がセンサであってもよい。
【0102】
一変形例において、通信システム100に属するスレーブ2は1台であってもよい。この態様では、通信装置1は、第1周期CT1ごとに、主データを生成しながら、スレーブ2から第2周期CT2で送信される副データを取得することが可能である。
【0103】
上述の実施形態では、通信装置1は、有線通信モジュールを用いて各スレーブ2と有線で通信しているが、これに限らない。一変形例において、通信装置1は、無線通信モジュールを用いて各スレーブ2と無線で通信してもよい。
【0104】
一変形例において、スレーブ2の処理部201は、例えば第2周期CT2における分割フレームF2を除いた空き領域を用いて、副データ以外の他データを通信部202から送信させてもよい。他データは、一例として、主データに含まれる制御データと比較してデータサイズが大きいデータであって、生産ライン又は工場での製造工程等を監視したり、管理したりするために用いられる画像等を含み得る。他データについては、主データ及び副データとは異なり、定時性及びリアルタイム性が要求されなくてよい。
【0105】
上述の実施形態では、通信装置1の処理部11は、通信処理において副データを各スレーブ2に対して送信していないが、副データを各スレーブ2に対して送信してもよい。すなわち、処理部11の処理性能に余裕があれば、処理部11は、副データを生成する処理を、主データを生成する処理と並行して実行し、生成した副データを各スレーブ2に対して送信することが可能である。
【0106】
第2周期候補CCT2の更新方法は、最小の通信周期CTminと繰り返し回数mとの積を用いる方法に限られない。一変形例において、ユーザから第2周期候補CCT2の入力を受け付けてもよいし、現在の第2周期候補CCT2の2倍の値を、更新後の第2周期候補CCT2として用いてもよい。
【0107】
一変形例において、処理部11は、分割処理において、スレーブ2を単位として、主データを複数の分割データ(主データ片)に分割してもよい。一例において、処理部11は、主データを、第1スレーブ21の制御データを含む分割データ、第2スレーブ22の制御データを含む分割データ、…、第nスレーブ2の制御データを含む分割データの、n個の分割データに分割する。別例において、処理部11は、主データを、第1スレーブ21の制御データ及び第2スレーブ22の制御データを含む分割データ、第3スレーブ23の制御データ及び第4スレーブ24の制御データを含む分割データ、…、第n-1スレーブ2n-1の制御データ及び第nスレーブ2nの制御データを含む分割データの、n/2個(nは偶数)の分割データに分割する。つまり、複数の分割データ(主データ片)の各々には、少なくとも1つのスレーブ2に対する制御データが含まれ得る。この場合、分割データのデータサイズの調整(すなわち分割処理)を行った(ステップST10)後に、ヘッダD100と分割データの伝送領域と副データ領域D2とフッタD101とを含む分割フレームF2の伝送時間が、ステップST9で設定された第2周期CT2を超えてしまう可能性がある。その場合、処理部11は、ステップST11へと戻り、第2周期CT2の設定(更新)を再度行ってもよい。もちろん、処理部11は、上述の実施形態のように、分割処理において主データを複数の主データ片に分割する際にスレーブ2を単位としなくてもよい。
【0108】
一変形例において、主データが予め複数の主データ片に分割されている場合、処理部11は、分割処理を行わなくてもよい。
【0109】
一変形例において、処理部11は、分割データのデータサイズの再調整の処理(ステップST10)を行わなくてもよい。例えば、処理部11は、ステップST6で算出された分割データのデータサイズDmdivに基づいて、主データを分割データ(主データ片)に分割してもよい。
【0110】
一変形例において、複数の主データ片の各々のデータサイズは、第2周期CT2で送信可能な範囲で任意に設定されてもよい。例えば、分割処理において、処理部11は、主データを、許容最大データサイズADmdivよりもデータサイズの小さな分割データに分割してもよい。
【0111】
一変形例において、複数のスレーブ2は、互いに同期して主データに応じた処理を実行しなくてもよい。例えば、図2の例では、第1スレーブ21及び第2スレーブ22は、分割フレームF21の伝送が完了した時点で、分割フレームF22の伝送を待つことなく主データに応じた処理を実行してもよい。
【0112】
一変形例において、互いに異なる第1周期CT1においては、第2周期CT2が互いに異なる値に設定されてもよい。つまり、第2周期CT2は、第1周期CT1ごとに可変であってもよい。ただし、互いに異なる第2周期CT2の各々は、通信システム100を稼働させる前に求めておくことが好ましい。
【0113】
デイジーチェーン接続の一例において、通信装置1には、第1スレーブ21、第2スレーブ22、第3スレーブ23、…、第nスレーブ2nが順にライン状に接続されていてもよい。この場合、通信装置1から送信されるフレームF1は、第1スレーブ21、第2スレーブ22、第3スレーブ23、…、第nスレーブ2nの順に伝送されることになる。
【0114】
(6)態様
以上説明した実施形態及び変形例等から以下の態様が開示されている。
【0115】
第1の態様の通信装置(1)は、処理部(11)と、通信部(12)と、を備える。通信部(12)は、1以上のスレーブ(2)と通信する。処理部(11)は、通信処理と設定処理とを実行する機能を有する。通信処理は、1以上のスレーブ(2)に対して、主データを含むフレーム(F1)を通信部(12)から第1周期(CT1)で送信させることを含む。設定処理は、第1周期(CT1)内にN回(Nは2以上の整数)の第2周期(CT2)を設定することを含む。設定処理は、第2周期(CT2)ごとに主データ以外の副データの通信が行われるスロット(S0)を設定することを含む。フレーム(F1)は、主データの送信期間の途中にスロット(S0)を少なくとも1つ含む。
【0116】
この態様によれば、主データの送信時間よりも短い周期(第2周期(CT2))で、副データの周期的な送信及び受信の少なくとも一方が可能となる。そのため、この態様では、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信又は受信させやすい、という利点がある。
【0117】
第2の態様の通信装置(1)では、第1の態様において、設定処理は、第2周期(CT2)ごとに1以上のスレーブ(2)のうちの少なくとも1つのスレーブ(2)にスロット(S0)を割り当てることを含む。
【0118】
この態様によれば、スロット(S0)を割り当てられたスレーブ(2)は、スロット(S0)を用いて副データを周期的に送信、受信、又は送受信することが可能となる。
【0119】
第3の態様の通信装置(1)では、第1又は第2の態様において、フレーム(F1)は、第1周期(CT1)で1以上のスレーブ(2)を制御するためのデータを含む。
【0120】
この態様によれば、第1周期(CT1)ごとにスレーブ(2)を制御することが可能となる。
【0121】
第4の態様の通信装置(1)では、第1~第3のいずれか1つの態様において、フレーム(F1)は、1以上のスレーブ(2)の動作を同期させるためのデータを含む。
【0122】
この態様によれば、1以上のスレーブ(2)の動作を同期させることが可能となる。
【0123】
第5の態様の通信装置(1)では、第1~第4のいずれか1つの態様において、1以上のスレーブ(2)は、通信装置(1)に対してデイジーチェーン接続されている。
【0124】
この態様によれば、通信装置(1)が、1以上のスレーブ(2)のうち通信装置(1)に直接接続されているスレーブ(2)のみにフレーム(F1)を送信すればよいので、通信装置(1)の処理負荷を低減しやすい。
【0125】
第6の態様の通信装置(1)では、第1~第5のいずれか1つの態様において、主データは、複数の主データ片を含む。処理部(11)は、通信処理において、複数の主データ片をN回の第2周期(CT2)で分割して送信する。
【0126】
この態様によれば、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすくなる。
【0127】
第7の態様の通信装置(1)では、第6の態様において、処理部(11)は、主データを複数の主データ片に分割する分割処理を実行する機能を、更に有する。
【0128】
この態様によれば、主データを複数の主データ片に分割し、この複数の主データ片をN回の第2周期(CT2)で分割して送信することが可能となり、フレーム(F1)の送信期間の途中に第2周期(CT2)のスロット(S0)を差し込む処理が容易となる。
【0129】
第8の態様の通信装置(1)では、第7の態様において、複数の主データ片の各々のデータサイズは、第2周期(CT2)で送信可能な範囲で任意に設定される。
【0130】
この態様によれば、主データ片の分割の態様を任意に設定可能となる。
【0131】
第9の態様の通信装置(1)では、第6~第8のいずれか1つの態様において、処理部(11)は、設定処理において、少なくとも第1周期(CT1)、主データのデータサイズ(Dm)、及び副データのデータサイズ(Ds)に基づいて、第2周期(CT2)を設定する。
【0132】
この態様によれば、第1周期(CT1)に含まれる第2周期(CT2)の回数を多く設定しやすく、結果として第1周期(CT1)において副データを送信、受信、又は送受信する回数を多くすることが可能となる。
【0133】
第10の態様の通信装置(1)では、第1~第9のいずれか1つの態様において、処理部(11)は、設定処理において、1以上のスレーブ(2)の対応可能な通信周期の整数倍の周期を第2周期(CT2)として設定する。
【0134】
この態様によれば、通信装置(1)と1以上のスレーブ(2)との間で同期をとりやすい。
【0135】
第11の態様の通信装置(1)では、第1~第10のいずれか1つの態様において、1以上のスレーブ(2)のうちの少なくとも1つのスレーブ(2)は、モータを駆動させるモータ駆動装置である。
【0136】
この態様によれば、主データのみならず、副データも用いてモータ駆動装置を周期的に制御しやすい。
【0137】
第12の態様に係る通信システム(100)は、第1~第11のいずれか1つの態様の通信装置(1)と、1以上のスレーブ(2)と、を備える。1以上のスレーブ(2)は、通信装置(1)に接続されて通信装置(1)と通信する。
【0138】
この態様によれば、スロット(S0)を用いて主データとは異なる副データを周期的に送信、受信、又は送受信することが可能である。このため、この態様によれば、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすい、という利点がある。
【0139】
第13の態様に係る通信制御方法は、通信ステップと、設定ステップと、を含む。通信ステップは、通信装置(1)に接続される1以上のスレーブ(2)に対して、主データを含むフレーム(F1)を第1周期(CT1)で送信させることを含む。設定ステップは、第1周期(CT1)内にN回(Nは2以上の整数)の第2周期(CT2)を設定することを含む。設定ステップは、N回の第2周期(CT2)ごとに主データ以外の副データの通信を行うためのスロット(S0)を設定することを含む。フレーム(F1)は、主データの送信期間の途中にスロット(S0)を少なくとも1つ含む。
【0140】
この態様によれば、主データの送信時間よりも短い周期(第2周期(CT2))で、副データの周期的な送信、受信、又は送受信が可能となる。そのため、この態様では、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすい、という利点がある。
【0141】
第14の態様に係るプログラムは、1以上のプロセッサに、第13の態様の通信制御方法を実行させる。
【0142】
この態様によれば、主データの送信時間よりも短い周期(第2周期(CT2))で、副データの周期的な送信、受信、又は送受信が可能となる。そのため、この態様では、副データを、主データの伝送に要する時間よりも短い周期で周期的に送信、受信、又は送受信させやすい、という利点がある。
【産業上の利用可能性】
【0143】
本開示は、副データを、主データの周期的伝送を行いつつ所定時間内に副データを送信又は受信する必要のある通信装置、通信システム、通信制御方法、及びプログラム、に適する。
【符号の説明】
【0144】
1 通信装置
11 処理部
12 通信部
2 スレーブ
100 通信システム
CT1 第1周期
CT2 第2周期
F1 フレーム
S0 スロット
図1
図2
図3
図4
図5
図6