(57)【特許請求の範囲】
【請求項１】
第１のデータと、前記第１のデータと異なり、前記第１のデータよりリアルタイムに送信する優先度が低い第２のデータと、を含むデータを複数のスレーブ局に送信するサイクリック通信において、
前記サイクリック通信を開始する前に、前記第２のデータを分割する分割数ｎを予め設定し、設定した前記分割数ｎを含むパラメータ設定フレームを第２のスレーブ局に送信し、前記第２のスレーブ局から送信された前記パラメータ設定フレームに対する応答フレームを受信するパラメータ設定部と、
前記パラメータ設定部が前記応答フレームを受信した後、前記第１のデータを１つのサイクリック周期で第１のスレーブ局に送信し、前記第２のデータを前記パラメータ設定部により予め設定された前記分割数ｎに分割し、分割した前記第２のデータを前記分割数ｎの前記サイクリック周期に分割して前記第２のスレーブ局に送信する通信制御部と、
を備える通信装置。
【請求項２】
前記パラメータ設定部は、エンジニアリングツールから送信された前記分割数ｎを含むパラメータに基づいて、サイクリック通信によりデータを送信するための前記分割数ｎを予め設定する、
請求項１に記載の通信装置。
【請求項３】
前記パラメータ設定部は、ユーザにより設定された分割数ｎを含むパラメータに基づいて、サイクリック通信によりデータを送信するための前記分割数ｎを予め設定する、
請求項１または２に記載の通信装置。
【請求項４】
前記パラメータ設定部は、前記第１のデータを分割する分割数を１に設定し、
前記通信制御部は、前記パラメータ設定部により設定された前記分割数が１であることを示すデータを前記第１のスレーブ局に送信し、その後、前記第１のデータを１つのサイクリック周期で第１のスレーブ局に送信する、
請求項１から３の何れか１項に記載の通信装置。
【請求項５】
前記データは、前記第１のデータと、前記第２のデータと、前記第２のデータよりリアルタイムに送信する優先度が低い第３のデータとを含み、
前記パラメータ設定部は、前記第３のデータの分割数ｍを前記第２のデータの前記分割数ｎより大きい値に設定する、
請求項１から４の何れか１項に記載の通信装置。
【請求項６】
前記データは、前記第１のデータと、前記第１のデータとは異なり、第１のスレーブに送信する第４のデータと、を含み、
前記パラメータ設定部は、前記第４のデータの分割数ｐを設定し、
前記通信制御部は、前記第１のスレーブ局に、前記第１のデータを分割せずに１つの前記サイクリック周期で送信し、前記第４のデータを前記分割数ｐに分割し、分割した前記第４のデータを前記分割数ｐの前記サイクリック周期に分割して送信する、
請求項１から５の何れか１項に記載の通信装置。
【請求項７】
１つの前記サイクリック周期に送信するデータ量に基づいて、前記サイクリック周期を設定するサイクリック周期設定部を備える、
請求項１から６の何れか１項に記載の通信装置。
【請求項８】
前記通信制御部は、スレーブ局から分割して送信されたデータを受信し、全てのデータを受信すると、複数の前記サイクリック周期で分割して受信したデータを結合する、
請求項１から７の何れか１項に記載の通信装置。
【請求項９】
請求項１から８の何れか１項に記載の通信装置と、
前記通信装置から送信された前記データを受信する複数のスレーブ局と、
を備える通信システム。
【請求項１０】
前記通信装置の前記通信制御部は、前記第２のデータを送信する前に、前記第２のスレーブ局に前記パラメータ設定部により設定された前記分割数ｎを示すデータを送信し、
前記第２のスレーブ局は、前記分割数ｎを示すデータを受信した後、複数に分割された前記第２のデータを全て受信するとリフレッシュ処理を実行する、
請求項９に記載の通信システム。
【請求項１１】
前記スレーブ局は、前記スレーブ局から前記通信装置に送信するデータを分割し、分割された複数のデータを複数のサイクリック周期で送信し、
前記通信装置の前記通信制御部は、スレーブ局から分割して送信されたデータを受信し、分割された元のデータを全て受信すると、受信したデータを結合する、
請求項９または１０に記載の通信システム。
【請求項１２】
前記スレーブ局は、前記通信装置から受信した、前記分割数ｎと、受信エリア格納先アドレスと、送信点数と、受信点数と、を含むパラメータにより、前記受信エリア格納先アドレスを予め設定し、複数の前記サイクリック周期に分割されたデータを受信し、分割前の全データ受信完了時にリフレッシュする、
請求項９から１１の何れか１項に記載の通信システム。
【請求項１３】
第１のデータと、前記第１のデータと異なり、前記第１のデータよりリアルタイムに送信する優先度が低い第２のデータと、を含むデータを複数のスレーブ局に送信するサイクリック通信において、
前記サイクリック通信を開始する前に、前記第２のデータを分割する分割数ｎを予め設定し、設定した前記分割数ｎを含むパラメータ設定フレームを第２のスレーブ局に送信し、前記第２のスレーブ局から送信された前記パラメータ設定フレームに対する応答フレームを受信するパラメータ設定ステップと、
前記パラメータ設定ステップにより前記応答フレームを受信した後、前記第１のデータを１つのサイクリック周期で第１のスレーブ局に送信し、前記第２のデータを前記パラメータ設定ステップにより予め設定された前記分割数ｎに分割し、分割した前記第２のデータを前記分割数ｎの前記サイクリック周期に分割して前記第２のスレーブ局に送信する通信制御ステップと、
を備える通信方法。
【請求項１４】
第１のデータと、前記第１のデータと異なり、前記第１のデータよりリアルタイムに送信する優先度が低い第２のデータと、を含むデータを複数のスレーブ局に送信するサイクリック通信を実行する通信装置を制御するコンピュータを、
前記サイクリック通信を開始する前に、前記第２のデータを分割する分割数ｎを予め設定し、設定した前記分割数ｎを含むパラメータ設定フレームを第２のスレーブ局に送信し、前記第２のスレーブ局から送信された前記パラメータ設定フレームに対する応答フレームを受信するパラメータ設定部、
前記パラメータ設定部が前記応答フレームを受信した後、前記第１のデータを１つのサイクリック周期で第１のスレーブ局に送信し、前記第２のデータを前記パラメータ設定部により予め設定された前記分割数ｎに分割し、分割した前記第２のデータを前記分割数ｎの前記サイクリック周期に分割して前記第２のスレーブ局に送信する通信制御部、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置、通信システム、通信方法、およびプログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）システムでは、リアルタイム性を保証したサイクリック伝送が実施されている。生産工程で必要とする機器の台数が増えることにより、接続可能台数の増加などに起因し、サイクリックデータは大容量化する傾向にある。これにより、大容量のデータをリアルタイムに送信することも要求されている。このため、従来、ＰＬＣ（Programmable Logic Controller）と通信機器間で送信データサイズの限界値をもって、データを分割し、サイクリック伝送を実施する方法、および送信データごとの優先度を通信中常に比較し、重要なデータを優先して送信する方法が提案されている。【０００３】
特許文献１は、サイクリック周期によって第１保証時間での到達が保証される第１制御データと、サイクリック周期よりも長い第２保証時間での到達が保証され、構成する情報の順序が決められた複数の第２制御データと、通信を制御するサイクリック通信部と、複数の第２制御データの優先度に応じて、複数の第２制御データの通信の順序を決定する通信管理部と、を備える通信装置を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−１３９６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１は、通信中に第２制御データ同士の優先度を比較しているが、優先度の高いデータが連続して発生した際に第２制御データの到達保証時間までに送信が完了しない虞があるという問題がある。また、フォーマットＩＤ、トランザクションＩＤ、総データサイズ、フラグメントＩＤ、フラグメントデータサイズを含む情報が送信データに含まれ、通信装置から送信された送信データを受信する受信装置は、サイクリック周期毎にこれらの情報を基にした処理が必要であり、データ受信時の処理負荷が大きいという問題もある。【０００６】
本開示は、上記に鑑みてなされたものであり、リアルタイムに送信する優先度の高いデータと低いデータを効率よく送信する通信装置、通信システム、通信方法、およびプログラム提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本開示に係る通信装置は、第１のデータと、第１のデータと異なり、第１のデータよりリアルタイムに送信する優先度が低い第２のデータと、を含むデータを複数のスレーブ局に送信するサイクリック通信において、サイクリック通信を開始する前に、第２のデータを分割する分割数ｎを予め設定し、設定した分割数ｎを含むパラメータ設定フレームを第２のスレーブ局に送信し、第２のスレーブ局から送信されたパラメータ設定フレームに対する応答フレームを受信するパラメータ設定部と、パラメータ設定部が前記応答フレームを受信した後、第１のデータを１つのサイクリック周期で第１のスレーブ局に送信し、第２のデータをパラメータ設定部により予め設定された分割数ｎに分割し、分割した第２のデータを分割数ｎのサイクリック周期に分割して第２のスレーブ局に送信する通信制御部と、を備える。
【発明の効果】
【０００８】
本開示によれば、リアルタイムに送信する優先度の高いデータと低いデータを効率よく送信することができる。
【図面の簡単な説明】
【０００９】
【図１】開示の実施の形態に係る通信システムを示す図
【図２】開示の実施の形態に係る通信装置を示す図
【図３】開示の実施の形態に係る通信装置を示すブロック図
【図４】開示の実施の形態に係るスレーブ局を示す図
【図５】開示の実施の形態に係るスレーブ局を示すブロック図
【図６】開示の実施の形態に係る送信処理を示すフローチャート
【図７】開示の実施の形態に係るパラメータ設定処理１を示すフローチャート
【図８】開示の実施の形態に係る受信処理を示すフローチャート
【図９】開示の実施の形態に係るパラメータ設定処理２を示すフローチャート
【図１０】開示の実施の形態に係るパラメータを示す図
【図１１】開示の実施のパラメータ設定処理を示すシーケンス図
【図１２】開示の実施の形態に係る通信装置が送信する通信データを示す図
【図１３】開示の実施の形態に係る通信装置が各周期に送信する通信データを示す図
【図１４】比較例に係る通信装置が各周期に送信する通信データを示す図
【発明を実施するための形態】
【００１０】
以下、本開示を実施するための形態に係る通信装置および通信システムを図面を参照しながら説明する。
【００１１】
本実施の形態に係る通信システム１は、図１に示すように、通信システム１を制御するパラメータを設定するエンジニアリングツール１０と、サイクリック通信を実行する通信装置１００と、通信装置１００からデータが送信されるスレーブ局２００ａ〜２００ｘと、を備える。スレーブ局２００ａ〜２００ｘには、それぞれロボット３００ａ、ロボット３００ｃ、計測器３００ｂ、装置Ｘ３００ｘが接続され、スレーブ局２００ａ〜２００ｘから送信されたデータにより制御される。通信システム１が、ロボット３００ａ、ロボット３００ｃ、計測器３００ｂ、装置Ｘ３００ｘを制御するＦＡ（Factory Automation）システムの制御システムとして用いられる例について説明する。
【００１２】
エンジニアリングツール１０は、通信装置１００からスレーブ局２００ａ〜２００ｘにデータを送信するためのパラメータを設定し、設定したパラメータを示すデータを通信装置１００に送信する。パラメータは、スレーブ局２００ａ〜２００ｘの局番と、分割数と、送信点数および受信点数と、リフレッシュデバイスの送信アドレスおよび受信アドレスと、を含む。分割する場合、送信点数は分割後の１つのサイクリック周期に送信する点数である。エンジニアリングツール１０は、通信装置から送信するデータのうち、第１のデータの分割数を１に設定し、第２のデータの分割数を複数に設定する。第１のデータは、リアルタイムに送信する優先度の高いデータであり、第２のデータは、第１のデータよりリアルタイムに送信する優先度の低いデータである。なお、第１のデータと第２のデータは、スレーブ局２００ａ〜２００ｘのうちの同一のスレーブ局に送信されてもよく、異なるスレーブ局に送信されてもよい。
【００１３】
通信装置１００は、ＰＬＣ（Programmable Logic Controller）およびＣＰＵ（Central Processing Unit）を含み、通信ケーブル２０によりエンジニアリングツール１０に通信可能に接続され、エンジニアリングツール１０から送信されたデータの分割数を示すデータを受信する。通信装置１００は、図２に示すように、制御部１１０と、通信部１２０を備える。通信装置１００は、サイクリック通信におけるマスタ局として機能する。
【００１４】
制御部１１０は、図２に示すように、通信装置１００を制御するための処理を行うプロセッサ１３０と、プロセッサ１３０の作業領域として用いられる主記憶部１４０と、プロセッサ１３０の処理に用いられる種々のデータおよびプログラムを格納する補助記憶部１５０と、を有する。主記憶部１４０および補助記憶部１５０はいずれも、バス１６０を介してプロセッサ１３０に接続される。
【００１５】
プロセッサ１３０は、ＭＰＵ（Micro Processing Unit）を含む。プロセッサ１３０は、補助記憶部１５０に格納されたプログラムを実行することにより、通信装置１００の種々の機能を実現する。
【００１６】
主記憶部１４０は、ＲＡＭ（Random Access Memory）を含む。主記憶部１４０には、補助記憶部１５０からプログラムがロードされる。そして、主記憶部１４０は、プロセッサ１３０の作業領域として用いられ、エンジニアリングツール１０から送信されたパラメータおよびスレーブ局２００ａ〜２００ｘに送信するデータを格納する。
【００１７】
補助記憶部１５０は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）に代表される不揮発性メモリを含む。補助記憶部１５０は、プログラムの他に、プロセッサ１３０の処理に用いられる種々のデータを格納する。補助記憶部１５０は、プロセッサ１３０の指示に従って、プロセッサ１３０によって利用されるデータをプロセッサ１３０に供給し、プロセッサ１３０から供給されたデータを格納する。
【００１８】
通信部１２０は、エンジニアリングツール１０および通信装置１００からスレーブ局２００ａ〜２００ｘと通信するためのネットワークインタフェース回路を含む。通信部１２０は、エンジニアリングツール１０およびスレーブ局２００ａ〜２００ｘから信号を受信して、この信号により示されるデータをプロセッサ１３０へ出力する。また、通信部１２０は、プロセッサ１３０から出力されたデータを示す信号を外部の機器へ送信する。
【００１９】
制御部１１０は、図３に示すように、補助記憶部１５０に格納したプログラムを実行することにより、パラメータ設定部１１１と、通信制御部１１２と、サイクリック周期設定部１１３として機能する。
【００２０】
パラメータ設定部１１１は、エンジニアリングツール１０から送信されたパラメータに基づいて、通信装置１００からスレーブ局２００ａ〜２００ｘにサイクリック通信によりデータを送信するためのパラメータを予め設定する。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘを検出する検出用フレームを作成し、検出用フレームをスレーブ局２００ａ〜２００ｘに送信する。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘから送信された応答フレームを受信する。また、エンジニアリングツール１０にて設定したスレーブ局２００ａ〜２００ｘで、検出用フレームに応答を返さないスレーブ局２００ａ〜２００ｘがあった場合、パラメータ設定部１１１は、検出用フレームを再送する。再送した検出用フレームに対する返答がない場合、パラメータ設定部１１１は、応答フレームを受信しなかったスレーブ局２００ａ〜２００ｘを通信対象から除外する。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘにパラメータ設定フレームを送信する。パラメータ設定フレームに含まれるパラメータは、分割数、送信点数および受信点数と、リフレッシュデバイスの送信アドレスおよび受信アドレスと、を含む。
【００２１】
通信制御部１１２は、通信部１２０を介して、パラメータ設定部１１１により設定されたパラメータに基づいて、サイクリック通信により、データをスレーブ局２００ａ〜２００ｘに送信する。通信制御部１１２は、スレーブ局２００ａ〜２００ｘに送信するデータをエンジニアリングツール１０から取得する。つぎに、通信制御部１１２は、エンジニアリングツール１０から取得したパラメータに基づいて、スレーブ局２００ａ〜２００ｘに送信する各データの分割数を設定し、各データを分割数で分割する。なお、分割数１で分割することは、分割しない意味を含み、分割数が１に設定されているデータは、分割されず送信される。また、つぎに、通信制御部１１２は、１つのサイクリック周期で送信する送信データを作成する。サイクリック周期で送信する送信データは、前回分割した残りのデータを含む。送信データは、通信装置１００から１つのサイクリック周期で送信するフレームとなり、１つのパケットにより送信するスレーブ局２００ａ〜２００ｘへの送信データがすべて格納される。通信データは、ヘッダ部およびフッタ部と、スレーブ局２００ａ〜２００ｘに送信するデータと、を含む。スレーブ局２００ａ〜２００ｘに送信するデータは、それぞれ宛先、受信エリア格納先アドレス、シーケンシャル番号および送信点数と、を含む。通信制御部１１２は、分割したデータの内の何番目のデータであるかを示す「シーケンシャル番号」と、スレーブ局２００ａ〜２００ｘが分割されたデータを受信した際に格納する「受信エリア格納先アドレス」を自動的にパラメータとして割り当てる。シーケンシャル番号は、分割なしの場合は１を設定する。受信エリア格納先アドレスは、受信エリアの先頭アドレス「０」から始まり、同じスレーブ局２００ａ〜２００ｘ宛に複数のデータを設定した場合、直前に設定した設定Ｎｏ．の受信エリア格納先アドレスを、送信点数とリフレッシュデバイス１つのデータサイズとの積に１を加えた値に設定する。その後、通信制御部１１２は、作成した送信データを送信する。
【００２２】
サイクリック周期設定部１１３は、１つのサイクリック周期で送信する送信データの量に基づいて、サイクリック周期を設定する。１つのサイクリック周期で送信する送信データは、通信制御部１１２により作成されたものである。なお、サイクリック周期設定部１１３は、サイクリック周期毎に、サイクリック周期を変更してもよい。また、サイクリック周期設定部１１３は、サイクリック周期を基準回数繰り返す毎に、送信データ量に基づいて、サイクリック周期を変更してもよい。
【００２３】
スレーブ局２００ａ〜２００ｘは、図１に示す通信ケーブル２１により通信装置１００と通信可能に接続され、通信装置１００から送信されたデータを受信する。スレーブ局２００ａには、ロボット３００ａ、スレーブ局２００ｂには、計測器３００ｂ、スレーブ局２００ｃには、ロボット３００ｃ、スレーブ局２００ｘには、装置Ｘ３００ｘが接続され、それぞれスレーブ局２００ａ〜２００ｘから送信されたデータにより制御される。スレーブ局２００ａ〜２００ｘは、図４に示すように、それぞれ制御部２１０と、通信部２２０を備える。スレーブ局２００ａ〜２００ｘは、それぞれロボット３００ａ、３００ｃ、計測器３００ｂ、装置Ｘ３００ｘに、リフレッシュデバイスの送信アドレスにより設定されたアドレスに通信装置１００から送信されたデータを格納する。
【００２４】
制御部２１０は、スレーブ局２００ａ〜２００ｘを制御するための処理を行うプロセッサ２３０と、プロセッサ２３０の作業領域として用いられる主記憶部２４０と、プロセッサ２３０の処理に用いられる種々のデータおよびプログラムを格納する補助記憶部２５０と、を有する。主記憶部２４０および補助記憶部２５０はいずれも、バス２６０を介してプロセッサ２３０に接続される。
【００２５】
プロセッサ２３０は、ＭＰＵ（Micro Processing Unit）を含む。プロセッサ２３０は、補助記憶部２５０に格納されるプログラムを実行することにより、スレーブ局２００ａ〜２００ｘの種々の機能を実現する。
【００２６】
主記憶部２４０は、ＲＡＭ（Random Access Memory）を含む。主記憶部２４０には、補助記憶部２５０からプログラムがロードされる。そして、主記憶部２４０は、プロセッサ２３０の作業領域として用いられる。
【００２７】
補助記憶部２５０は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）に代表される不揮発性メモリを含む。補助記憶部２５０は、プログラムの他に、プロセッサ２３０の処理に用いられる種々のデータを格納する。補助記憶部２５０は、プロセッサ２３０の指示に従って、プロセッサ２３０によって利用されるデータをプロセッサ２３０に供給し、プロセッサ２３０から供給されたデータを格納する。
【００２８】
通信部２２０は、通信装置１００と通信するためのネットワークインタフェース回路を含む。通信部２２０は、通信装置１００から信号を受信して、この信号により示されるデータをプロセッサ２３０へ出力する。また、通信部２２０は、プロセッサ２３０から出力されたデータを示す信号を外部の機器へ送信する。
【００２９】
制御部２１０は、図５に示すように、補助記憶部２５０に格納したプログラムを実行することにより、パラメータ設定部２１１と、通信制御部２１２と、データ結合部２１３として機能する。
【００３０】
パラメータ設定部２１１は、サイクリック通信により送信されるデータを受信するためのパラメータを設定する。パラメータ設定部２１１は、通信装置１００から送信された検出用フレームを受信すると、応答フレームを送信する。つぎに、パラメータ設定部２１１は、通信装置１００から送信された自局番のパラメータ設定フレームを受信する。パラメータ設定フレームに含まれるパラメータは、分割数、送信点数および受信点数と、リフレッシュデバイスの送信アドレスおよび受信アドレスと、を含む。つぎに、パラメータ設定部２１１は、パラメータ設定フレームに対する応答フレームを通信装置１００に送信する。つぎに、パラメータ設定部２１１は、パラメータ送信フレームに含まれるパラメータに基づいて、受信パラメータを更新する。
【００３１】
通信制御部２１２は、サイクリック通信により送信されたデータを受信する処理を実行する。通信制御部２１２は、通信装置１００から送信された送信データの宛先が自局番であると、その受信データをバッファに格納する。バッファは、主記憶部２４０に含まれる。つぎに、通信制御部２１２は、受信エリア格納先アドレス、シーケンシャル番号、送信点数を確認し、受信データが正常でないと判定すると、バッファに格納した受信データを破棄し、再送を要求するデータを通信装置１００に送信する。受信データが正常であると判定すると、通信制御部２１２は、バッファに格納した受信データを受信バッファ格納先アドレスに格納する。受信バッファ格納先アドレスは、主記憶部２４０に含まれる。つぎに、通信制御部２１２は、データを全て受信したか否かを判定する。ここで、データを全て受信したか否かは、受信データのシーケンシャル番号を確認し、分割データの最終番号であるか否かにより判定する。
【００３２】
データ結合部２１３は、通信制御部２１２によりデータを全て受信したと判定されると、リフレッシュ処理を実行する。データ結合部２１３は、データが分割されて送信されていた場合、複数のサイクリック周期にわたって受信した送信データを結合し、リフレッシュ処理を実行し、データが分割されず送信された場合、そのデータでリフレッシュ処理を実行する。その後、データ結合部２１３は、結合したデータを、スレーブ局２００ａ〜２００ｘに接続されたロボット３００ａ、ロボット３００ｃ、計測器３００ｂ、装置Ｘ３００ｘにデータを送信する。
【００３３】
つぎに、以上の構成を有する通信装置１００が実行する送信処理、およびスレーブ局２００ａ〜２００ｘが実行する受信処理を説明する。
【００３４】
ユーザによる処理を開始させる指示に応答し、通信装置１００は、図６に示す送信処理を開始し、スレーブ局２００ａ〜２００ｘは、図８に示す受信処理を開始する。以下、通信装置１００が実行する送信処理、およびスレーブ局２００ａ〜２００ｘが実行する受信処理をフローチャートを用いて説明する。
【００３５】
送信処理が開始されると、パラメータ設定部１１１は、サイクリック通信を実行するためのパラメータを設定するパラメータ設定処理を開始する（ステップＳ１０１）。
【００３６】
図７に示すパラメータ設定処理が開始されると、パラメータ設定部１１１は、パラメータの設定処理が必要か否かを判定する（ステップＳ２０１）。パラメータ設定部１１１は、パラメータがすでに設定され、変更の必要がないと判定すると（ステップＳ２０１；Ｎｏ）、パラメータ設定処理を終了し、図６に示す送信処理に戻る。
【００３７】
パラメータ設定部１１１は、パラメータの設定が必要であると判定すると（ステップＳ２０１；Ｙｅｓ）、エンジニアリングツール１０から送信用の各データを分割する分割数を含むパラメータを取得する（ステップＳ２０２）。取得するパラメータは、通信相手の局番、分割数、送信点数および受信点数と、リフレッシュデバイスの送信アドレスおよび受信アドレスと、を含む。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘを検出する検出用フレームを作成する（ステップＳ２０３）。つぎに、パラメータ設定部１１１は、検出用フレームをスレーブ局２００ａ〜２００ｘに送信する（ステップＳ２０４）。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘから送信された応答フレームを受信する（ステップＳ２０５）。エンジニアリングツール１０にて設定したスレーブ局２００ａ〜２００ｘで、検出用フレームに応答を返さないスレーブ局２００ａ〜２００ｘがあった場合、パラメータ設定部１１１は、検出用フレームを再送する。再送した検出用フレームに対する返答がない場合、パラメータ設定部１１１は、応答フレームを受信しなかったスレーブ局２００ａ〜２００ｘを通信対象から除外する（ステップＳ２０６）。
【００３８】
パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘにパラメータ設定フレームを送信する（ステップＳ２０７）。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘからパラメータ設定フレームに対する応答フレームを受信する（ステップＳ２０８）。なお、パラメータ設定フレームに応答を返さないスレーブ局２００ａ〜２００ｘがあった場合、パラメータ設定部１１１は、応答を返すまで、パラメータ設定フレームに対する応答フレームを再送する。その後、パラメータ設定処理を終了し、図６に示す送信処理に戻る。
【００３９】
送信処理に戻ると、通信制御部１１２は、エンジニアリングツール１０のパラメータに基づいて、ＣＰＵからリフレッシュにて取得したデータから通信可能なスレーブ局に送信するデータを取得する（ステップＳ１０２）。つぎに、通信制御部１１２は、エンジニアリングツール１０から取得したパラメータに基づいて、スレーブ局２００ａ〜２００ｘに送信する各データの分割数を設定する（ステップＳ１０３）。つぎに、通信制御部１１２は、各データを分割数で分割する（ステップＳ１０４）。通信制御部１１２は、分割数が１に設定されているデータである場合、そのデータを分割しない。つぎに、通信制御部１１２は、このサイクリック周期で送信する送信データを作成する（ステップＳ１０５）。このサイクリック周期で送信する送信データは、前回分割した残りのデータを含む。つぎに、サイクリック周期設定部１１３は、１つのサイクリック周期で送信する送信データの量に基づいて、サイクリック周期を設定する（ステップＳ１０６）。通信制御部１１２は、分割したデータのうち残りのデータを主記憶部１４０に格納する（ステップＳ１０７）。つぎに、このサイクリック周期で送信するデータを送信する（ステップＳ１０８）。
【００４０】
つぎに、通信制御部１１２は、終了指示が入力されたか否かを判定する（ステップＳ１０９）。終了指示が入力されていないと判定されると（ステップＳ１０９；Ｎｏ）、ステップＳ１０１に戻り、ステップＳ１０１からステップＳ１０９を繰り返す。これにより、分割したデータを複数のサイクリック周期で送信することができる。終了指示が入力されたと判定されると（ステップＳ１０９；Ｙｅｓ）、送信処理を終了する。
【００４１】
スレーブ局２００ａ〜２００ｘが受信処理を開始すると、スレーブ局２００ａ〜２００ｘは、それぞれサイクリック通信を実行するためのパラメータを設定するパラメータ設定処理を開始する（ステップＳ３０１）。
【００４２】
図９に示すパラメータ設定処理が開始されると、パラメータ設定部２１１は、通信装置１００から送信された検出用フレームを受信したか否かを判定する（ステップＳ４０１）。パラメータ設定部２１１は、検出用フレームが送信されていないと判定すると（ステップＳ４０１；Ｎｏ）、パラメータ設定処理を終了し、図８に示す受信処理に戻る。
【００４３】
パラメータ設定部２１１は、検出用フレームを受信したと判定すると（ステップＳ４０１；Ｙｅｓ）、応答フレームを送信する（ステップＳ４０２）。つぎに、パラメータ設定部２１１は、通信装置１００から送信された自局番のパラメータ設定フレームを受信する（ステップＳ４０３）。パラメータ設定フレームに含まれるパラメータは、分割数、送信点数および受信点数と、リフレッシュデバイスの送信アドレスおよび受信アドレスと、を含む。つぎに、パラメータ設定部２１１は、パラメータ設定フレームに対する応答フレームを通信装置１００に送信する（ステップＳ４０４）。つぎに、パラメータ設定部２１１は、パラメータ送信フレームに含まれるパラメータに基づいて、受信パラメータを更新する（ステップＳ４０５）。その後、パラメータ設定処理を終了し、図８に示す受信処理に戻る。
【００４４】
受信処理に戻ると、通信制御部２１２は、通信装置１００から送信された送信データの宛先が自局番か否かを判定する（ステップＳ３０２）。受信した送信データの宛先が自局番でないと判定すると（ステップＳ３０２；Ｎｏ）、その受信データを破棄する（ステップＳ３０３）。その後、ステップＳ３０１に戻って、ステップＳ３０１からステップＳ３０３を繰り返す。
【００４５】
受信した送信データの宛先が自局番であると判定すると（ステップＳ３０２；Ｙｅｓ）、通信制御部２１２は、その受信データをバッファに格納する（ステップＳ３０４）。バッファは、主記憶部２４０に含まれる。つぎに、通信制御部２１２は、受信エリア格納先アドレス、シーケンシャル番号、送信点数を確認する（ステップＳ３０５）。つぎに、通信制御部２１２は、受信データが正常か否かを判定する（ステップＳ３０６）。受信データが正常でないと判定すると（ステップＳ３０６；Ｎｏ）、通信制御部２１２は、バッファに格納した受信データを破棄し（ステップＳ３０７）、再送を要求するデータを通信装置１００に送信する（ステップＳ３０８）。その後、ステップＳ３０１に戻って、ステップＳ３０１からステップＳ３０８を繰り返す。
【００４６】
受信データが正常であると判定すると（ステップＳ３０６；Ｙｅｓ）、通信制御部２１２は、バッファに格納した受信データを受信バッファ格納先アドレスに格納する（ステップＳ３０９）。受信バッファ格納先アドレスは、主記憶部２４０に含まれる。つぎに、通信制御部２１２は、全てのデータの受信を完了したか否かを判定する（ステップＳ３１０）。ここで、データを全て受信したか否かは、受信データのシーケンシャル番号を確認し、分割データの最終番号であるか否かにより判定する。データを全て受信していないと判定すると（ステップＳ３１０；Ｎｏ）、ステップＳ３０１に戻って、ステップＳ３０１からステップＳ３１０を繰り返す。全てのデータの受信を完了したと判定すると（ステップＳ３１０；Ｙｅｓ）、データ結合部２１３は、リフレッシュ処理を実行する（ステップＳ３１１）。データ結合部２１３は、データが分割されて送信されていた場合、複数のサイクリック周期にわたって受信した送信データを結合し、リフレッシュ処理を実行し、データが分割されず送信された場合、そのデータでリフレッシュ処理を実行する。その後、データ結合部２１３は、結合したデータを、スレーブ局２００ａ〜２００ｘに接続されたロボット３００ａ、ロボット３００ｃ、計測器３００ｂ、装置Ｘ３００ｘにデータを送信する。
【００４７】
つぎに、通信制御部２１２は、終了指示が入力されたか否かを判定する（ステップＳ３１２）。終了指示が入力されていないと判定されると（ステップＳ３１２；Ｎｏ）、ステップＳ３０１に戻り、ステップＳ３０１からステップＳ３１２を繰り返す。これにより、分割し複数のサイクリック周期で送信されたデータを受信することができる。終了指示が入力されたと判定されると（ステップＳ３１２；Ｙｅｓ）、送信処理を終了する。
【００４８】
つぎに、エンジニアリングツール１０により図１０に示すパラメータが設定された例について、通信装置１００が実行する送信処理およびスレーブ局２００ａ〜２００ｘが実行する受信処理を説明する。第１のデータは、リアルタイムに送信する優先度の高いデータであり、分割数が１に設定され、分割されずに送信されるデータである。第２のデータは、第１のデータよりリアルタイムに送信する優先度の低いデータであり、分割数ｎは４に設定されている。第３のデータは、第２のデータよりリアルタイムに送信する優先度の低いデータであり、分割数ｍは、第２のデータの分割数ｎより大きい値である１６に設定されている。第４のデータは、第１のデータと同じスレーブ局２００ａに送信されるデータであり、第１のデータよりリアルタイムに送信する優先度が低いデータであり、分割数ｐは８に設定されている。なお、分割数ｎおよび分割数ｐは２以上の自然数であり、分割数ｍは分割数ｎより大きい自然数である。第Ｘのデータは、第３のデータよりリアルタイムに送信する優先度の低いデータである。第２から第４のデータおよび第Ｘのデータは、それぞれの分割数で分割されて送信されるデータである。
【００４９】
通信装置１００のパラメータ設定部１１１は、図１１に示すように、エンジニアリングツール１０から送信用の各データを分割する分割数を含むパラメータを取得する（ステップＳ２０２；図７）。ここで、パラメータ設定部１１１は、図１０に示すパラメータを取得する。つぎに、パラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘを検出する検出用フレームを作成する（ステップＳ２０３；図７）。つぎに、パラメータ設定部１１１は、検出用フレームをスレーブ局２００ａ〜２００ｘに送信する（ステップＳ２０４；図７）。つぎに、スレーブ局２００ａ〜２００ｘのパラメータ設定部２１１は、検出用フレームを受信したと判定すると（ステップＳ４０１；Ｙｅｓ；図９）、応答フレームを送信する（ステップＳ４０２；図９）。つぎに、通信装置１００のパラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘから送信された応答フレームを受信する（ステップＳ２０５；図７）。
【００５０】
つぎに、通信装置１００のパラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘにパラメータ設定フレームを送信する（ステップＳ２０７；図７）。スレーブ局２００ａ〜２００ｘのパラメータ設定部２１１は、通信装置１００から送信された自局番のパラメータ設定フレームを受信する（ステップＳ４０３；図９）。つぎに、パラメータ設定部２１１は、パラメータ設定フレームに対する応答フレームを通信装置１００に送信する（ステップＳ４０４；図９）。つぎに、パラメータ設定部２１１は、パラメータ送信フレームに含まれるパラメータに基づいて、受信パラメータを更新する（ステップＳ４０５；図９）。つぎに、通信装置１００のパラメータ設定部１１１は、スレーブ局２００ａ〜２００ｘからパラメータ設定フレームに対する応答フレームを受信する（ステップＳ２０８；図７）。
【００５１】
つぎに、通信制御部１１２は、スレーブ局２００ａ〜２００ｘに送信するデータをエンジニアリングツール１０のパラメータに基づいて、ＣＰＵからリフレッシュにて取得したデータから通信可能なスレーブ局に送信するデータを取得する（ステップＳ１０２；図６）。つぎに、通信制御部１１２は、エンジニアリングツール１０から取得したパラメータに基づいて、スレーブ局２００ａ〜２００ｘに送信する各データの分割数を設定する（ステップＳ１０３；図６）。つぎに、通信制御部１１２は、各データを分割数で分割する（ステップＳ１０４；図６）。なお、第１のデータの分割数は１に設定されているため、通信制御部１１２は、第１のデータを分割しない。つぎに、通信制御部１１２は、このサイクリック周期で送信する図１２に示す送信データを作成する（ステップＳ１０５；図６）。通信データは、通信装置１００から１つのサイクリック周期で送信するフレームとなり、１つのパケットにより送信するスレーブ局２００ａ〜２００ｘへの送信データがすべて格納される。通信データは、ヘッダ部およびフッタ部と、スレーブ局２００ａ〜２００ｘに送信するデータと、を含む。スレーブ局２００ａ〜２００ｘに送信するデータは、それぞれ宛先、受信エリア格納先アドレス、シーケンシャル番号および送信点数と、第１〜第４のデータまたは第Ｘのデータとを含む。シーケンシャル番号は、分割なしの場合は１を設定する。通信制御部１１２は、分割したデータの内の何番目のデータであるかを示す「シーケンシャル番号」と、スレーブ局２００ａ〜２００ｘが分割されたデータを受信した際に格納する「受信エリア格納先アドレス」を自動的にパラメータとして割り当てる。シーケンシャル番号は、分割なしの場合は１を設定する。
【００５２】
それぞれのデータは、図１０に示す分割数で分割されている。スレーブ局１宛データ１は、第１のデータを含み、分割数１であるため分割されていない第１のデータを含む。この第１のデータは、この例では制御データである。スレーブ局１宛てデータ２は、第４のデータを含み、分割数ｐは８であるため、８つに分割された第４のデータのうちの１つである。この第４のデータは、この例ではモニタ・監視用データである。スレーブ局２宛てデータは、第２のデータを含み、分割数ｎは４であるため、４に分割された第２のデータのうちの１つである。スレーブ局３宛てデータは、第３のデータを含み、分割数ｍは１６であるため、１６に分割された第３のデータのうちの１つである。スレーブ局Ｘ宛てデータは、第Ｘのデータを含み、分割数３２であるため、３２に分割された第Ｘのデータのうちの１つである。
【００５３】
つぎに、サイクリック周期設定部１１３は、１つのサイクリック周期で送信する送信データの量に基づいて、サイクリック周期を設定する（ステップＳ１０６；図６）。この例では、図１２に示す送信データを送信できる周期に設定する。通信制御部１１２は、分割したデータのうち残りのデータを主記憶部１４０に格納する（ステップＳ１０７；図６）。つぎに、このサイクリック周期で送信するデータを送信する（ステップＳ１０８；図６）。
【００５４】
スレーブ局２００ａ〜２００ｘの通信制御部２１２は、受信データが正常であると判定すると（ステップＳ３０６；Ｙｅｓ；図８）、バッファに格納した受信データを受信バッファ格納先アドレスに格納する（ステップＳ３０９；図８）。受信バッファ格納先アドレスは、主記憶部２４０に含まれる。つぎに、通信制御部２１２は、データを全て受信したか否かを判定する（ステップＳ３１０；図８）。ここで、データを全て受信したか否かは、分割されていないデータである第１のデータである場合、第１のデータを受信したか否かであり、分割されたデータである第２のデータである場合、分割された全ての第２のデータを受信したか否かである。データを全て受信したと判定すると（ステップＳ３１０；Ｙｅｓ；図８）、データ結合部２１３は、リフレッシュ処理を実行する（ステップＳ３１１；図８）。以上のように、通信装置１００が通信処理、スレーブ局２００ａ〜２００ｘが受信処理を実行することにより、リアルタイムに送信する優先度の低いデータを分割することで、図１３に示すように、１つのサイクリック周期で送信するデータ量を少なくでき、周期ｔ１〜ｔｘを短くすることができる。
【００５５】
上記構成を有する通信装置１００は、エンジニアリングツール１０によりスレーブ局２００ａ〜２００ｘに送信するデータの分割数を決定し、リアルタイムに送信する優先度の高いデータを分割無しである分割数１に決定し、リアルタイムに送信する優先度の低いデータを複数の分割数に決定することができる。これにより、ユーザが任意にサイクリックデータの分割数、送受信点数を設定可能にし、パラメータとしてマスタからスレーブへ送信することで通信周期を短縮し、複数周期で動作する混在システムにおいて到達保証時間内に通信完了することができる。また、１つのサイクリック周期で送信する送信データの量に基づいて、サイクリック周期を設定することで、サイクリック周期を短くすることができる。また、あらかじめ、パラメータ設定を実施し、リアルタイムに送信する優先度の低いデータまたはスレーブ局２００ａ〜２００ｘ宛のデータを分割して送信・受信することで、１つのサイクリック周期で送信するデータを相対的に少なくでき、サイクリック周期を短縮することができる。さらに、１つのサイクリック周期に送信するデータ量は一定となり、サイクリック通信の到達保証時間以内に通信が完了することができる。
【００５６】
これに対して、サイクリック周期が予め設定され、１つのサイクリック周期で送信できなかったデータを分割し、つぎのサイクリック周期で送信する比較例の装置では、図１４に示すように、周期ｔ１’で第１〜４および第Ｘのデータを送信する。第１のデータは毎周期送信するデータである。第２〜４および第Ｘのデータは、１つのサイクリック周期で送信できなかった場合、分割して送信するデータである。周期ｔ２’では、毎周期送信する第１のデータと、周期ｔ１’で送信できなかった第２、４および第Ｘのデータを送信する。周期ｔ３’では、毎周期送信する第１のデータと、周期ｔ１’〜ｔ２’で送信できなかった第４および第Ｘのデータを送信する。このようにすると、周期ｔ１’〜３’を小さくすることができず、効率よくデータを送信することが困難である。また、大量のデータを同時に送信する必要が生じた場合、これらのうち何れかのデータの送信タイミングが遅れるという問題がある。
【００５７】
（変形例）
上述の実施の形態においては、通信装置１００からスレーブ局２００ａ〜２００ｘに送信するデータを分割する例について説明した。通信装置１００およびスレーブ局２００ａ〜２００ｘは、リアルタイムに送信する優先度の高いデータと低いデータを効率よく送信することができればよく、スレーブ局２００ａ〜２００ｘから送信するデータを分割して通信装置１００に送信してもよい。この場合、通信装置１００は、スレーブ局２００ａ〜２００ｘそれぞれに、分割数、受信点数、シーケンシャル番号を含むパラメータを送信する。スレーブ局２００ａ〜２００ｘは、分割数、受信点数、シーケンシャル番号を含むパラメータに基づいて、スレーブ局２００ａ〜２００ｘから通信装置１００に送信するデータを分割して通信装置１００に送信する。ここで送信するデータは、図１２に示す送信データと同様であり、宛先が自局番号になっているエリアに送信データを格納し送信する。通信装置１００ではスレーブ局２００ａ〜２００ｘの受信方法と同様な方法にて分割データを受信する。
【００５８】
上述の実施の形態では、通信システム１は、ＦＡ（Factory Automation）システムの制御システムとして用いられる例について説明したが、サイクリック通信により機器を制御するものであればよく、通信システム１は、エレベータまたはホームドアを制御する制御システムとして用いられてもよい。
【００５９】
上述の実施の形態では、通信装置１００の制御部１１０は、１つのプロセッサ１３０を備える構成を示したが、複数のプロセッサ１３０が連携して上述の機能を実行してもよい。また制御部１１０は複数の主記憶部１４０および補助記憶部１５０を備えてもよい。その他、スレーブ局２００ａ〜２００ｘを含む上記のハードウェア構成は一例であり、任意に変更および修正が可能である。
【００６０】
通信システム１、通信装置１００およびスレーブ局２００ａ〜２００ｘは、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、上述の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read-Only Memory）など）に格納して配布し、上記コンピュータプログラムをコンピュータにインストールすることにより、上述の処理を実行する通信システム１を構成してもよい。また、通信ネットワーク上のサーバ装置が有する記憶装置に上記コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロードすることで通信システム１、通信装置１００およびスレーブ局２００ａ〜２００ｘを構成してもよい。
【００６１】
また、通信システム１、通信装置１００およびスレーブ局２００ａ〜２００ｘの機能を、ＯＳ（Operating System）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体または記憶装置に格納してもよい。
【００６２】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板（BBS：Bulletin Board System）に上記コンピュータプログラムを掲示し、通信ネットワークを介して上記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行してもよい。
【００６３】
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、この開示の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
【符号の説明】
【００６４】
１…通信システム、１０…エンジニアリングツール、２０、２１…通信ケーブル、１００…通信装置、１１０、２１０…制御部、１１１、２１１…パラメータ設定部、１１２、２１２…通信制御部、１１３…サイクリック周期設定部、１２０、２２０…通信部、１３０、２３０…プロセッサ、１４０、２４０…主記憶部、１５０、２５０…補助記憶部、１６０、２６０…バス、２００ａ〜２００ｘ…スレーブ局、２１３…データ結合部、３００ａ、３００ｃ…ロボット、３００ｂ…計測器、３００ｘ…装置Ｘ
【要約】
通信装置（１００）は、第１のデータと、第１のデータと異なり、第１のデータよりリアルタイムに送信する優先度が低い第２のデータと、を含むデータを複数のスレーブ局に送信するサイクリック通信において、パラメータ設定部（１１１）と、通信制御部（１１２）と、を備える。パラメータ設定部（１１１）は、サイクリック通信を開始する前に、第２のデータを分割する分割数ｎを予め設定する。通信制御部（１１２）は、第１のデータを１つのサイクリック周期で第１のスレーブ局に送信し、第２のデータを分割数ｎに分割し、分割した第２のデータを分割数ｎのサイクリック周期に分割して第２のスレーブ局に送信する。通信制御部（１１２）は、第２のデータを送信する前に、パラメータ設定部（１１１）により設定された分割数ｎを示すデータを第２のスレーブ局に送信する。【図１】
0006878705.tif 000002
【図２】
0006878705.tif 000003
【図３】
0006878705.tif 000004
【図４】
0006878705.tif 000005
【図５】
0006878705.tif 000006
【図６】
0006878705.tif 000007
【図７】
0006878705.tif 000008
【図８】
0006878705.tif 000009
【図９】
0006878705.tif 000010
【図１０】
0006878705.tif 000011
【図１１】
0006878705.tif 000012
【図１２】
0006878705.tif 000013
【図１３】
0006878705.tif 000014
【図１４】
0006878705.tif 000015