(57)【要約】【課題】マスタ・スレーブ型の通信プロトコルに従って、マスタ機器とスレーブ機器との間で双方向通信を実現すると共に、無線通信期間の制約に拘らず無線通信を実現することができる。【解決手段】本発明に係るスレーブ装置は、マスタ・スレーブ型の通信プロトコルに従って、マスタ装置に対して自律的に書込要求又は読取要求を行うスレーブ装置であって、マスタ装置に対して書込要求又は読取要求のメッセージを作成する際に、書込みデータに読取応答ヘッダ部を付与し、又は、読取データに書込応答ヘッダ部を付与して、メッセージを作成するメッセージ作成手段と、受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込応答又は読取要求を判別する判別手段とを備えることを特徴とする。【選択図】      図６
2017046250.tif 000002
【特許請求の範囲】
【請求項１】
マスタ・スレーブ型の通信プロトコルに従って、マスタ装置に対して自律的に書込要求又は読取要求を行うスレーブ装置であって、
上記マスタ装置に対して書込要求又は読取要求のメッセージを作成する際に、書込みデータに読取応答ヘッダ部を付与し、又は、読取データに書込応答ヘッダ部を付与して、メッセージを作成するメッセージ作成手段と、
受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込応答又は読取要求を判別する判別手段と
を備えることを特徴とするスレーブ装置。
【請求項２】
マスタ・スレーブ型の通信プロトコルに従って、スレーブ装置から自律的な書込要求又は読取要求を受信するマスタ装置であって、
受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込要求又は読取応答を判別する判別手段を備えることを特徴とするマスタ装置。
【請求項３】
マスタ・スレーブ型の通信プロトコルに従って、マスタ装置とスレーブ装置との間で双方向の通信を行う通信システムであって、
スレーブ装置は、上記マスタ装置に対して書込要求又は読取要求のメッセージを作成する際に、書込みデータに読取応答ヘッダ部を付与し、又は、読取データに書込応答ヘッダ部を付与して、メッセージを作成してマスタ装置に送信し、
マスタ装置は、受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込要求又は読取応答を判別し、
スレーブ装置は、受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込応答又は読取要求を判別する
ことを特徴とする通信システム。
【請求項４】
上記マスタ装置が無線通信親機と接続され、
上記スレーブ装置が無線通信子機と接続されて
上記無線通信子機が、上記スレーブ装置からのメッセージを上記無線通信親機に無線送信し、
上記無線通信親機が、無線受信した上記スレーブ装置からのメッセージを上記マスタ装置に与える
ことを特徴とする請求項３に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び通信システムに関し、例えば、マスタ・スレーブ型の通信プロトコルＭｏｄｂｕｓ（登録商標）を利用してシリアル伝送システムに適用し得るものである。
【背景技術】
【０００２】
Ｍｏｄｂｕｓ（登録商標）は、Ｍｏｄｉｃｏｎ社がプログラマブルロジックコントローラ（ＰＬＣ）向けに策定したシリアル通信プロトコルであり、産業界におけるデファクト標準の通信プロトコルとなっている。Ｍｏｄｂｕｓプロトコルは、マスタ・スレーブ型プロトコルとして規定され、センサデバイスなどのシリアル接続された電子機器のレジスタ値の読み書き用途に広く用いられている。
【０００３】
マスタ・スレーブ型の通信プロトコルでは、マスタ側電子機器（以下、マスタ機器と呼ぶ。）からスレーブ側電子機器（以下、スレーブ機器と呼ぶ。）に対してレジスタ値を書込（ｓｅｔ）する要求メッセージ、マスタ機器からスレーブ機器に対してレジスタ値を読取（ｇｅｔ）する要求メッセージ、および、それら要求メッセージに対する応答メッセージが定義されている。
【０００４】
しかし、スレーブ機器から自律的にマスタ機器に対して通知を行うメッセージは、プロトコル上は規定されていない。
【０００５】
特許文献１には、通信トラフィックの軽減を目的として、マスタ機器側およびスレーブ機器の両方の機能を具備したＭｏｄｂｕｓ制御機器を用いることで、スレーブ機器からの自律的な通信をマスタ機器に対して行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２３４１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、Ｍｏｄｂｕｓプロトコルにおいては、スレーブ機器から通知することと同等の機能を実現するためには、マスタ機器から周期的にスレーブ側の特定のレジスタ値を読取（ｇｅｔ）して、通知の有無を監視（ポーリング）する必要がある。
【０００８】
このマスタ機器からの周期監視方式では、スレーブ機器から発せられる通知はマスタ機器のレジスタ値の読取周期に依存するため、即時性（リアルタイム性）が損なわれることになる。
【０００９】
即時性を確保する方法として、マスタ機器の読取周期を短くする手段がある。しかし、マスタ機器から発せられる監視通信の回数が増えるため、スレーブ機器で通知する情報がない場合にシリアル通信のネットワーク帯域を無駄遣いすることとなる。
【００１０】
また、通信帯域の無駄遣いを回避するために、マスタ機器の読取要求に対して、スレーブ機器で通知する事象が発生するまでスレーブ機器から応答を遅らせる長期監視（ロングポーリング）方式がある。この長期監視方式では、マスタ機器の要求に対してスレーブ機器の応答が長時間送信されないことになるため、通信トランザクション（要求〜応答の一連処理）が長期間生存することになる。そのため、トランザクション管理のために、マスタ機器のリソース（メモリ）を無駄遣いすることとなり、元々簡易で軽量な通信プロトコルであるＭｏｄｂｕｓ通信を実装したマスタ機器に不相応なリソースを用意する必要があるという欠点がある。
【００１１】
さらに、シリアル通信を行うネットワーク区間にＭｏｄｂｕｓプロトコル通信をサポートした９２０ＭＨｚ帯マルチホップ無線通信機器を利用すると、無線親機側にマスタ機器を搭載し、無線子機側にスレーブ機器を搭載する制約によって、通信機器にマスタ・スレーブ両方の機能を具備してもスレーブ側からマスタ側への通信は無線通信区間の制約により通信ができなくなるという問題がある。
【００１２】
そのため、マスタ装置とスレーブ装置との間で双方向通信を実現すると共に、無線通信期間の制約に拘らず無線通信を実現することができるマスタ装置、スレーブ装置及び通信システムが求められている。
【課題を解決するための手段】
【００１３】
かかる課題を解決するために、第１の本発明に係るスレーブ装置は、マスタ・スレーブ型の通信プロトコルに従って、マスタ装置に対して自律的に書込要求又は読取要求を行うスレーブ装置であって、（１）マスタ装置に対して書込要求又は読取要求のメッセージを作成する際に、書込みデータに読取応答ヘッダ部を付与し、又は、読取データに書込応答ヘッダ部を付与して、メッセージを作成するメッセージ作成手段と、（２）受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込応答又は読取要求を判別する判別手段とを備えることを特徴とする。
【００１４】
第２の本発明に係るマスタ装置は、マスタ・スレーブ型の通信プロトコルに従って、スレーブ装置から自律的な書込要求又は読取要求を受信するマスタ装置であって、（１）受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込要求又は読取応答を判別する判別手段を備えることを特徴とする。
【００１５】
第３の本発明に係る通信システムは、マスタ・スレーブ型の通信プロトコルに従って、マスタ装置とスレーブ装置との間で双方向の通信を行う通信システムであって、スレーブ装置は、マスタ装置に対して書込要求又は読取要求のメッセージを作成する際に、書込みデータに読取応答ヘッダ部を付与し、又は、読取データに書込応答ヘッダ部を付与して、メッセージを作成してマスタ装置に送信し、マスタ装置は、受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込要求又は読取応答を判別し、スレーブ装置は、受信したメッセージのヘッダ部に含まれるメッセージ識別情報に基づいて、書込応答又は読取要求を判別することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、マスタ装置とスレーブ装置との間で双方向通信を実現すると共に、無線通信期間の制約に拘らず無線通信を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】マスタ機器とスレーブ機器との接続関係を示す接続関係図である。
【図２】Ｍｏｄｂｕｓプロトコルの標準化技術に従って、マスタ機器がスレーブ機器に対する書込要求の通信シーケンスとメッセージフォーマットを示す。
【図３】Ｍｏｄｂｕｓプロトコルの標準化技術に従って、マスタ機器がスレーブ機器に対する読取要求の通信シーケンスとメッセージフォーマットを示す。
【図４】Ｍｏｄｂｕｓプロトコルの標準化技術を用いて、スレーブ機器がマスタ機器に対する書込要求の通信シーケンスとメッセージフォーマットを示す。
【図５】Ｍｏｄｂｕｓプロトコルの標準化技術を用いて、スレーブ機器がマスタ機器に対する読取要求の通信シーケンスとメッセージフォーマットを示す。
【図６】本願発明を用いて、スレーブ機器がマスタ機器に対する書込要求の通信シーケンスとメッセージフォーマットを示す。
【図７】本願発明を用いて、スレーブ機器がマスタ機器に対する読取要求の通信シーケンスとメッセージフォーマットを示す。
【図８】第１の実施形態に係るマスタ機器１及びスレーブ機器２の接続関係と内部構成を示す構成図である。
【図９】Ｍｏｄｂｕｓプロトコルの要求メッセージ及び応答メッセージのフォーマットを説明する説明図である。
【図１０】第１の実施形態のスレーブ機器２におけるメッセージ生成処理を示す動作フローチャートである。
【図１１】第１の実施形態に係るマスタ機器１及びスレーブ機器１の受信メッセージの解析処理を示す動作フローチャートである。
【図１２】第１の実施形態の変形実施形態に係るマスタ機器とスレーブ機器とのカスケード接続関係を示す接続関係図である。
【図１３】第２の実施形態に係る通信システムの構成を示す構成図である。
【図１４】第２の実施形態に係る通信システムにおけるスレーブ機器発の書込要求処理の通信シーケンスとメッセージフォーマットを示すシーケンス図である。
【図１５】第２の実施形態に係る通信システムにおけるスレーブ機器発の読取要求処理の通信シーケンスとメッセージフォーマットを示すシーケンス図である。
【発明を実施するための形態】
【００１８】
（Ａ）本願発明の技術的概念の説明
本発明は、マスタ・スレーブ型の通信プロトコルに従って、マスタ機器とスレーブ機器との間で行う通信システムにおいて、通信帯域の無駄使いを回避すると共に、マスタ機器のリソースの過搭載の問題を回避し、ネットワーク区間の制約に抵触することなく、スレーブ機器がマスタ機器に対して書込要求又は読取メッセージの送信を実現するものである。
【００１９】
以下では、マスタ・スレーブ型の通信プロトコルが、シリアルデータの伝送を実現するＭｏｄｂｕｓプロトコルである場合を例示する。なお、通信プロトコルは、Ｍｏｄｂｕｓプロトコルの標準化技術に限定されるものではなく、標準化技術を拡張したＭｏｄｂｕｓプロトコルの拡張技術にも適用できる。
【００２０】
また、Ｍｏｄｂｕｓプロトコルに従って、シリアルデータの伝送を実現するマスタ側の通信装置を「マスタ装置」と呼び、このマスタ装置を搭載する電子機器を「マスタ機器」と呼ぶ。同様に、スレーブ側の通信装置を「スレーブ装置」と呼び、スレーブ装置を搭載した電子機器を「スレーブ機器」と呼ぶ。
【００２１】
さらに、マスタ機器がスレーブ機器に対してスレーブ機器に搭載されるレジスタのレジスタ値の書き込み又は読み取りを要求するメッセージを「マスタ側発メッセージ」と呼ぶ。
【００２２】
これに対して、スレーブ機器が、自律的に、自身に搭載されるレジスタのレジスタ値の書き込み又は読み込みを行ない、その結果をマスタ機器に送信するメッセージを「スレーブ発メッセージ」と呼ぶ。
【００２３】
図１は、マスタ機器とスレーブ機器との接続関係を示す接続関係図である。
【００２４】
図１に示すように、マスタ機器１及びスレーブ機器２はそれぞれシリアル通信インタフェースを具備する通信機器である。マスタ機器１及びスレーブ機器２のそれぞれは、通信インタフェースを介して、シリアルケーブル３で接続されている。
【００２５】
図２及び図３は、Ｍｏｄｂｕｓプロトコルの標準化技術に従って、マスタ機器がスレーブ機器に対する書込要求及び読取要求の通信シーケンスとメッセージフォーマットを示す。
【００２６】
図４及び図５は、Ｍｏｄｂｕｓプロトコルの標準化技術を用いて、スレーブ機器がマスタ機器に対する書込要求及び読取要求の通信シーケンスとメッセージフォーマットを示す。
【００２７】
図２に示すように、マスタ機器１が、スレーブ機器２に対して、マスタ機器発の書込要求メッセージを送信し（Ｓ９０１）、スレーブ機器２は、マスタ機器発の書込要求メッセージに対する書込応答メッセージを返信する（Ｓ９０２）。このとき、書込要求メッセージは、要求ヘッダ部８０１とボディ部８０２とを構成している。また、書込応答メッセージは、応答ヘッダ８０３とボディ部８０４とを構成している。
【００２８】
また、図３に示すように、マスタ機器１が、スレーブ機器２に対して、マスタ機器発の読取要求メッセージを送信し（Ｓ９０３）、スレーブ機器２は、マスタ機器発の読取要求メッセージに対する読取応答メッセージを返信する（Ｓ９０４）。このとき、読取要求メッセージは、要求ヘッダ部８０５とボディ部８０６とを構成している。また、読取応答メッセージは、応答ヘッダ８０７とボディ部８０８とを構成している。
【００２９】
これに対して、Ｍｏｄｂｕｓプロトコルの標準化技術に従って、スレーブ機器２が、マスタ機器１に対して、書込要求又は読取要求を行う場合、図４及び図５の通信シーケンス及びメッセージを用いることになる。つまり、Ｍｏｄｂｕｓプロトコルは、マスタ機器１からスレーブ機器への一方向へのシリアル伝送を実現するものであるため、図４及び図５に示すように、Ｍｏｄｂｕｓプロトコルを逸脱することになる。
【００３０】
図４に示すように、スレーブ機器２が、マスタ機器１に対して、スレーブ機器発の書込要求メッセージを送信する（Ｓ９１１）。また、マスタ機器１は、スレーブ機器発の書込要求メッセージに対する書込応答メッセージを返信する（Ｓ９１２）。
【００３１】
また、図５に示すように、スレーブ機器２が、マスタ機器１に対して、スレーブ機器発の読取要求メッセージを送信する（Ｓ９１３）。また、マスタ機器１は、スレーブ機器発の読取要求メッセージに対する読取応答メッセージを返信する（Ｓ９１４）。
【００３２】
図４に示すように、スレーブ機器２が書込要求のヘッダ部８０１を用いたメッセージを用いても、マスタ機器１はスレーブ機器発の書込要求メッセージの受信できない。また、仮に、マスタ機器１が、スレーブ機器発の書込要求メッセージに対して書込応答メッセージをスレーブ機器２に返信したとしても、スレーブ機器２は、書込応答メッセージを受信できない。
【００３３】
スレーブ機器発の読取要求メッセージの場合も同様に、読取応答メッセージは、読取要求のヘッダ部８０５を用いているので、マスタ機器１はスレーブ機器発の読取要求メッセージを受信できず、スレーブ機器２も、マスタ機発の読取応答メッセージを受信できない。
【００３４】
図６及び図７は、本願発明を用いて、スレーブ機器がマスタ機器に対する書込要求及び読取要求の通信シーケンスとメッセージフォーマットを示す。
【００３５】
本発明の通信シーケンスは、図４の通信メッセージ（書込要求・書込応答）のフォーマットが、図３の通信メッセージ（読取応答・読取要求）のフォーマットと同じフォーマットであることに着目する。
【００３６】
また、図５の通信メッセージ（読取要求・読取応答）のフォーマットが、図２の通信メッセージ（書込応答・書込要求）のフォーマットと同じフォーマットである点に着目する。
【００３７】
このように本発明は、要求及び応答メッセージのヘッダ部を、マスタ側発とスレーブ側発とで役割を入れ替えることで、双方向の通信を実現したものである。
【００３８】
（Ｂ）第１の実施形態
以下では、本発明に係るマスタ装置、スレーブ装置及び通信システムの第１の実施形態を、図面を参照しながら詳細に説明する。
【００３９】
第１の実施形態では、マスタ・スレーブ型の通信プロトコルとしてｍｏｄｂｕｓプロトコルを採用し、本発明を用いて、マスタ機器及びスレーブ機器の間で双方向の通信を行う方向通信システムを例示する。
【００４０】
（Ｂ−１）第１の実施形態の構成
第１の実施形態では、図１に例示するように、マスタ機器１とスレーブ機器１とが１対１の接続構成の場合を例示する。
【００４１】
図８は、第１の実施形態に係るマスタ機器１及びスレーブ機器２の接続関係と内部構成を示す構成図である。
【００４２】
図８において、スレーブ機器２は、通信部２１、メッセージ解析部２２、メッセージ生成部２３、アプリケーション部２４を有する。
【００４３】
通信部２１は、例えば、通信部２１は、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＲＳ−４８５等の物理層であり、シリアルポートを用いてシリアル伝送を行うものである。
【００４４】
メッセージ生成部２３は、スレーブ機器発のメッセージを生成するものである。例えば、アプリケーション部２４からの伝送要求等の指示を受けることで、メッセージ生成部２３はスレーブ機器発のメッセージを生成する。
【００４５】
図９は、Ｍｏｄｂｕｓプロトコルの要求メッセージ及び応答メッセージのフォーマットを説明する説明図である。
【００４６】
図９に示すように、要求メッセージは、「デバイスアドレス」、「ファンクションコード（メッセージＩＤ）」、「クエリデータ」、「エラーチェック」を有する。要求メッセージのヘッダ部は、「デバイスアドレス」及び「ファンクションコード（メッセージＩＤ）」を含むものであり、ボディ部は、「クエリデータ」を含む。
【００４７】
「デバイスアドレス」には、送信先のマスタ機器１の物理層のアドレスである。スレーブ機器発の要求メッセージを送信するとき、要求先であるマスタ機器１の物理層のアドレスが挿入される。
【００４８】
「ファンクションコード」には、Ｍｏｄｂｕｓプロトコルにより定められたメッセージＩＤが挿入される。
【００４９】
ここで、メッセージ生成部２３は、Ｍｏｄｂｕｓプロトコル又はその拡張技術により定められたファンクションコードを「ファンクションコード」に挿入する。メッセージ生成部２３は、スレーブ機器発の書込要求を行うときには、「読取応答」のヘッダ部を付与した書込要求メッセージを生成し、スレーブ機器発の読取要求を行うときには、「書込応答」のヘッダ部を付与した読取要求メッセージを生成する。言い換えると、書込要求を行うときに、読取応答ヘッダ部を有するメッセージフォーマットを生成し、読取要求を行うときには、書込応答ヘッダ部を有するメッセージフォーマットを生成する。
【００５０】
より具体的には、例えば、スレーブ機器２のメッセージ生成部２３は、スレーブ機器発の「書込」要求を行うときには、「読取要求」のファンクションコードを挿入し、スレーブ機器２が読取応答を行うときの読取応答ヘッダ部を生成し、読取応答ヘッダ部を書込データを含むボディ部に付与してメッセージを生成する。
【００５１】
また例えば、スレーブ機器２のメッセージ生成部２３は、スレーブ機器発の「読取」要求を行うときには、「書込要求」のファンクションコードを挿入し、スレーブ機器２が書込応答を行うときの書込応答ヘッダ部を生成し、書込応答ヘッダ部を読取データを含むボディ部に付与してメッセージを生成する。
【００５２】
「クエリデータ」には、要求データが挿入される。例えば、スレーブ機器２に入力する入力レジスタのデータ値や、スレーブ機器２に保持される保持レジスタのデータ値等が挿入される。
【００５３】
「エラーチェック」には、メッセージ全体のエラーチェックビットが挿入される。
【００５４】
また、図９に示すように、応答メッセージは、「確認用デバイスアドレス」、「確認用ファンクションコード（メッセージＩＤ）」、「応答データ」、「エラーチェック」を有する。
【００５５】
応答メッセージのヘッダ部は、「デバイスアドレス」及び「ファンクションコード（メッセージＩＤ）」を含むものであり、ボディ部は、「クエリデータ」を含む。
【００５６】
「確認用デバイスアドレス」には、要求元（応答先）の機器の物理層のアドレスが挿入される。
【００５７】
「確認用ファンクションコード」には、要求メッセージの「ファンクションコード」に挿入されたメッセージＩＤが挿入される。
【００５８】
「応答データ」には、レジスタデータが挿入される。
【００５９】
「エラーチェック」には、メッセージ全体のエラーチェックビットが挿入される。
【００６０】
メッセージ解析部２２は、通信部２１を介して受信したメッセージのヘッダ部に基づいて、当該受信メッセージが要求メッセージであるか又は応答メッセージであるかを解析するものである。
【００６１】
マスタ機器発の要求メッセージである場合、メッセージ解析部２２は、当該受信メッセージのボディ部のデータをアプリケーション部２４に与えると共に、ヘッダ部のメッセージＩＤ（以下、ファンクションコードとも呼ぶ。）の機能をアプリケーション２４に与える。これにより、メッセージＩＤに従った機能をアプリケーション部２４に実行させることができる。また、マスタ機器発の応答メッセージである場合、メッセージ解析部２２は、当該スレーブ機器２がマスタ機器１に要求した応答処理をアプリケーション部２４に実行させる。
【００６２】
また、メッセージ解析部２２は、受信したメッセージの種類を判別する要求／応答判別部２２１を有する。
【００６３】
要求／応答判別部２２１は、受信メッセージのヘッダ部に含まれているアドレス情報及びメッセージＩＤを解析して、受信メッセージが要求メッセージであるか又は応答メッセージであるかを判断するものである。
【００６４】
アプリケーション部２４は、各種機能を実行するアプリケーション処理部である。アプリケーション部２４が実行する機能は、この実施形態の特徴ではなく、種々のアプリケーション処理を広く適用することができるため、ここでの詳細な説明は省略する。
【００６５】
図８において、マスタ機器１は、通信部１１、メッセージ解析部１２、メッセージ生成部１３、アプリケーション部１４を有する。
【００６６】
通信部１１は、例えば、通信部２１は、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＲＳ−４８５等の物理層であり、シリアルポートを用いてシリアル伝送を行うものである。
【００６７】
メッセージ解析部１２は、通信部１１を介して受信したメッセージのヘッダ部に基づいて、当該受信メッセージが要求メッセージであるか又は応答メッセージであるかを解析するものである。
【００６８】
スレーブ機器発の要求メッセージである場合、メッセージ解析部１２は、当該メッセージのボディ部のデータをアプリケーション部１４に与えると共に、ヘッダ部のメッセージＩＤの機能をアプリケーション１４に与える。また、スレーブ機器発の応答メッセージである場合、メッセージ解析部１２は、当該マスタ機器１がスレーブ機器２に要求した応答処理をアプリケーション部１４に実行させる。
【００６９】
メッセージ生成部１３は、Ｍｏｄｂｕｓプトロコルに従って、マスタ機器発のメッセージを生成するものである。また、スレーブ機器発の要求メッセージを受信した場合には、スレーブ機器発の要求メッセージに対する応答メッセージを生成する。
【００７０】
アプリケーション部１４は、各種機能を実行するアプリケーション処理部である。アプリケーション部１４が実行する機能は、この実施形態の特徴ではなく、種々のアプリケーション処理を広く適用することができるため、ここでの詳細な説明は省略する。
【００７１】
（Ｂ−２）第１の実施形態の動作
次に、第１の実施形態に係る通信システムの処理の動作を、図面を参照しながら詳細に説明する。
【００７２】
図１０は、第１の実施形態のスレーブ機器２におけるメッセージ生成処理を示す動作フローチャートである。図１１は、第１の実施形態に係るマスタ機器１及びスレーブ機器１の受信メッセージの解析処理を示す動作フローチャートである。
【００７３】
まず、スレーブ機器発の書込要求の動作を、図６、図１０及び図１１を参照して説明する。
【００７４】
スレーブ機器２は、スレーブ機器発の書込要求メッセージを生成して、マスタ機器１に送信する（Ｓ９２１）。
【００７５】
ここで、図１０において、スレーブ機器２では、例えばアプリケーション部２４からの書込要求指示や所定のトリガとなる指示を受けて書込要求の指示を受ける（Ｓ１１）。そして、書込要求の指示を受けると、書込データを含むボディ部を生成し、そのボディ部の先頭に読取応答ヘッダ部を付与し（Ｓ１２）、スレーブ機器発の書込要求メッセージを送信する（Ｓ１４）。
【００７６】
例えば、Ｍｏｄｂｕｓプロトコルにおいて、「書込」のメッセージＩＤが「ファンクションコード；Ａ」であり、「読取」のファンクションコードが「ファンクションコード；Ｂ」であるとする。
【００７７】
このとき、スレーブ機器２のメッセージ生成部２３は、マスタ機器１の物理層のアドレスと、読取の「ファンクションコード；Ｂ」とを用いて読取応答ヘッダ部を、書込データをボディ部に付与して書込要求メッセージを生成して送信する。
【００７８】
なお、メッセージＩＤは、拡張可能であり、独自に定めたファンクションコードを設定することで、マスタ機器１とスレーブ機器２との間でメッセージＩＤを認識可能としても良い。
【００７９】
スレーブ機器発の書込要求メッセージは読取応答ヘッダ部を用いているため、マスタ側発の読取要求に対する読取応答メッセージと同じフォーマットになる。このことにより、スレーブ機器発の書込要求メッセージは、Ｍｏｄｂｕｓプロトコルに従ったメッセージとして、スレーブ機器２からマスタ機器１へメッセージが到達可能になる。
【００８０】
マスタ機器１では、スレーブ機器２からの書込要求メッセージを受信すると、書込要求メッセージを解析して、指定された書込み処理を行ない、書込応答メッセージを生成してスレーブ機器２に応答する（Ｓ９２２）。
【００８１】
図１１において、マスタ機器１では、メッセージが受信されると（Ｓ２１）、メッセージ解析部１２が受信メッセージのヘッダ部のアドレスを解析する（Ｓ２２）。
【００８２】
次に、メッセージ解析部１２の要求／応答判別部１２２が、ヘッダ部に含まれているメッセージＩＤを判別する（Ｓ２３）。
【００８３】
換言すると、マスタ機器１は、ヘッダ部に含まれるメッセージＩＤを判別することにより、マスタ機器発の読取要求メッセージに対する読取応答メッセージであるか（図３参照）、又は、スレーブ機器発の書込要求メッセージであるか（図６参照）を判別する。
【００８４】
スレーブ機器発の書込要求メッセージの場合、マスタ機器１では、受信したメッセージがアプリケーション部１４に与えられて、要求処理が実行される（Ｓ２４）。そして、マスタ機器１のメッセージ生成部１３は、スレーブ機器２に対して、読取要求ヘッダ部を用いて、書込応答メッセージを返信する（Ｓ２５）。
【００８５】
さらに、書込応答メッセージを受信したスレーブ機器２は、メッセージ解析部２３が、図１１に示す処理により、マスタ機器発の応答メッセージを受信し、応答処理を行なう。
【００８６】
すなわち、スレーブ機器２において、メッセージ解析部２３は、受信したメッセージのヘッダ部に含まれるメッセージＩＤを判別して（Ｓ２１〜Ｓ２３）、マスタ機器発の読取要求メッセージであるか（図３参照）、又は、スレーブ機器の書込要求メッセージの書込応答メッセージであるか（図６参照）を判別する。
【００８７】
そして、スレーブ機器発の書込要求メッセージの書込応答メッセージの場合、スレーブ機器２はメッセージボディ部の応答コードに従って処理を完結する（Ｓ２６）。
【００８８】
次に、スレーブ機器発の読取要求の動作を、図７、図１０及び図１１を参照して説明する。
【００８９】
スレーブ機器２は、スレーブ機器発の読取要求メッセージを生成して、マスタ機器１に送信する（Ｓ９２３）。
【００９０】
図１０において、スレーブ機器２では、例えばアプリケーション部２４からの読取要求指示や所定のトリガとなる指示を受けて読取要求の指示を受ける（Ｓ１１）。そして、読取要求の指示を受けると、書込データを含むボディ部を生成し、そのボディ部の先頭に読取応答ヘッダ部を付与し（Ｓ１３）、スレーブ機器発の書込要求メッセージを送信する（Ｓ１４）。
【００９１】
例えば、上述したように、Ｍｏｄｂｕｓプロトコルにおいて、「書込」のメッセージＩＤが「ファンクションコード；Ａ」であり、「読取」のファンクションコードが「ファンクションコード；Ｂ」であるとする。このとき、スレーブ機器２のメッセージ生成部２３は、マスタ機器１の物理層のアドレスと、書込の「ファンクションコード；Ａ」とを用いて書込応答ヘッダ部を、読取データをボディ部に付与して読取要求メッセージを生成して送信する。
【００９２】
スレーブ機器２からの読取要求メッセージは、書込応答ヘッダ部を用いることで、マスタ機器発の書込要求メッセージに対する書込応答メッセージと同じフォーマットになる。このことにより、Ｍｏｄｂｕｓプロトコルに従ったメッセージとしてスレーブ機器２からマスタ機器１へメッセージが到達可能になる。
【００９３】
スレーブ機器発の読取要求メッセージを受信したマスタ機器１は、スレーブ機器２からの読取要求メッセージを受信すると、読取要求メッセージを解析して、指定された読取処理を行ない、読取応答メッセージを生成してスレーブ機器２に応答する（Ｓ９２４）。
【００９４】
図１１において、マスタ機器１では、メッセージが受信されると（Ｓ２１）、メッセージ解析部１２が受信メッセージのヘッダ部のアドレスを解析し（Ｓ２２）、要求／応答判別部１２２が、ヘッダ部に含まれているメッセージＩＤを判別する（Ｓ２３）。
【００９５】
つまり、マスタ機器１は、ヘッダ部に含まれるメッセージＩＤを判別することにより、マスタ機器発の書込要求メッセージに対する書込応答メッセージであるか（図２参照）、又は、スレーブ機器発の読取要求メッセージであるか（図７参照）を判別する。
【００９６】
スレーブ機器発の読取要求メッセージの場合、マスタ機器１では、受信したメッセージがアプリケーション部１４に与えられて、要求処理が実行される（Ｓ２４）。そして、マスタ機器１のメッセージ生成部１３は、スレーブ機器２に対して、書込要求ヘッダ部を用いて、読取応答メッセージを返信する（Ｓ２５）。
【００９７】
さらに、マスタ機器発の読取応答メッセージを受信したスレーブ機器２は、メッセージ解析部２３が、図１１に示す処理により、マスタ機器発の応答メッセージを受信し、応答処理を行なう。
【００９８】
すなわち、スレーブ機器２において、メッセージ解析部２３は、受信したメッセージのヘッダ部に含まれるメッセージＩＤを判別して（Ｓ２１〜Ｓ２３）、マスタ機器発の書込要求メッセージであるか（図２参照）、又は、スレーブ機器の読取要求メッセージの読取応答メッセージであるか（図７参照）を判別する。
【００９９】
そして、スレーブ機器発の読取要求メッセージの応答メッセージの場合、スレーブ機器２はメッセージボディ部の応答コードに従って処理を完結する（Ｓ２６）。
【０１００】
（Ｂ−３）第１の実施形態の変形実施形態
上述した第１の実施形態では、マスタ機器１とスレーブ機器２とが１対１の接続構成の場合を例示した。
【０１０１】
しかし、図１１に例示するように、１台のマスタ機器１と、複数のスレーブ機器２−１〜２−ｎ（ｎは整数）のカスケード接続構成とする場合であっても良い。
【０１０２】
図１１に示すように、マスタ機器１と、複数のスレーブ機器２−１、２−２、・・・、２−ｎとの間の通信は、マスタ機器１がそれぞれの機器ＩＤ（アドレス）を利用して、いずれのスレーブ機器と通信を行うかを設定することで、特定のスレーブ機器との間で双方向の通信を行うことができる。
【０１０３】
図１１の場合も、Ｍｏｄｂｕｓプロトコルの標準構成のバリエーションのひとつであり、図１の接続構成の場合と同様に、図６および図７の通信シーケンスによる通信が適用可能である、また同様に、通信帯域を無駄遣いすることがなく、過分なマスタ側のリソース（メモリ）も必要としないスレーブ側発の通信を実現できる。
【０１０４】
（Ｂ−４）第１の実施形態の効果
以上のように、第１の実施形態によれば、Ｍｏｄｂｕｓプロトコルの標準シーケンスであるメッセージフォーマットを利用しているため、メッセージの順序以外にプロトコルの逸脱がなく、通信路においてＭｏｄｂｕｓプロトコル違反でメッセージが破棄されることなくメッセージが到達可能となる。
【０１０５】
また、第１の実施形態によれば、子機から発信が必要な時にのみ通信を行うため、通信帯域を無駄遣いすることがなく、過分なマスタ機器のリソース（メモリ）を回避できる。
【０１０６】
（Ｃ）第２の実施形態
次に、本発明に係るマスタ装置、スレーブ装置及び通信システムの第１の実施形態を、図面を参照しながら詳細に説明する。
【０１０７】
（Ｃ−１）第２の実施形態の構成
図１３は、第２の実施形態に係る通信システムの構成を示す構成図である。
【０１０８】
第２の実施形態では、他の無線通信装置の間で、無線マルチホップ通信を行う無線通信機のそれぞれが、第１の実施形態で説明したマスタ機器１若しくはスレーブ機器２を搭載する。
【０１０９】
図１３において、無線通信親機４０、無線通信中継機５１、無線通信子機４−１〜４−ｎがそれぞれ、所定の無線通信プロトコルに従って、無線マルチホップ通信を行う。
【０１１０】
ここで、第２の実施形態では、例えば、９２０ＭＨｚ帯を通信帯域として無線マルチホップ通信を行う通信方式を適用する場合を例示する。例えば、９２０ＭＨｚ帯の通信帯域を用いることで、無線通信機の間で電波到達性が向上するため、無線通信機間でつながりやすくなる。勿論、無線通信で用いる通信帯域は、９２０ＭＨｚに限定されるものではない。
【０１１１】
無線通信親機４０は、無線マルチホップ通信システムにおいて、親局として機能するものである。無線通信親機４０は、シリアルケーブル３を介して、第１の実施形態で説明したマスタ機器１と接続するものである。無線通信親機４０は、無線通信プロトコルに従ったフレームフォーマットのペイロード部にマスタ機器１からのシリアルデータを含めてパケット化して無線通信したり、又は、無線受信したフレームのペイロードに含まれているデータをマスタ機器１に与えたりする。
【０１１２】
複数の無線通信子機４−１〜４−ｎは、無線マルチホップ通信システムにおいて、親局である無線通信親局４０に対して子局として機能するものである。無線通信子機４−１〜４−ｎはそれぞれ、シリアルケーブル３を介して、第１の実施形態で説明したスレーブ機器２−１〜２−ｎと接続するものである。無線通信子機４−１〜４−ｎは、無線受信したフレームのペイロードに含まれているデータをスレーブ機器１に与えたり、又は、スレーブ機器２−１〜２−ｎにより生成されたスレーブ機器発の要求メッセージを無線通信プロトコルに従ったフレームフォーマットのペイロード部に含めてパケット化して無線通信したりする。
【０１１３】
なお、図示しないが、無線通信親機４０、無線通信子機４−１〜４−ｎは、シリアル通信インタフェース部と、無線通信インタフェース部との両方を具備した通信機器である。
【０１１４】
無線通信中継機５１は、無線通信親機４０と無線通信子機４−１〜４−ｎのそれぞれとの間の無線通信距離を延長するために、無線通信親機４０と無線通信子機との間でマルチホップの無線通信を行う。なお、無線通信中継機５１は、中継機として専用に設けたものであっても良いし、又は無線通信子機４−１〜４−ｎのいずれかが、無線通信中継機５１として機能するものであっても良い。
【０１１５】
（Ｃ−２）第２の実施形態の動作
図１４は、第２の実施形態に係る通信システムにおけるスレーブ機器発の書込要求処理の通信シーケンスとメッセージフォーマットを示すシーケンス図である。
【０１１６】
まず、スレーブ機器２−１が生成する書込要求メッセージの生成処理は、第１の実施形態と同様の処理であるため、ここでの詳細な説明は省略する。
【０１１７】
図１４に示すように、スレーブ機器発の書込要求メッセージが生成されると、スレーブ機器２−１から無線通信子機４−１に与えられる（Ｓ５０１）。
【０１１８】
なお、スレーブ機器２−１は、書込要求メッセージの「デバイスアドレス」にはマスタ機器１のアドレスとしても良いし、例えば「０」等のように特定しないアドレスとしても良い。
【０１１９】
無線通信子機４−１では、スレーブ機器発の書込要求メッセージを無線通信方式のプロトコルのペイロードに含め、無線通信親機４０を送信先とするヘッダ部を付与して無線送信する（Ｓ５０２）。
【０１２０】
無線通信中継機５１では、無線受信したパケットの送信先を判断し、無線通信親機４０にパケットを到達させるために、次の中継先に受信パケットを無線中継する（Ｓ５０３）。
【０１２１】
無線通信親機４０では、無線受信したパケットを解析して、ペイロードに含まれているデータをマスタ機器１にシリアル伝送する（Ｓ５０４）。これにより、スレーブ機器発の書込要求メッセージがマスタ機器１に与えられる。
【０１２２】
マスタ機器１における受信メッセージの判別処理は、第１の実施形態と同様の処理であるためここでの詳細な説明は省略する。また、マスタ機器１では、第１の実施形態と同様にして、書込要求メッセージ対する書込応答メッセージが生成され、無線通信親機４０に与えられる（Ｓ５０５）。
【０１２３】
そして、無線通信親機４０は、書込応答メッセージを含むパケットを無線送信して、無線通信中継機５１を介して、無線通信子機４−１に向けて送信される（Ｓ５０６〜Ｓ５０８）。
【０１２４】
スレーブ機器２−１では、メッセージＩＤの解析によって、マスタ機器１からの書込要求メッセージ対する書込応答メッセージを取得し、応答処理を行なう。
【０１２５】
図１５は、第２の実施形態に係る通信システムにおけるスレーブ機器発の読取書込要求処理の通信シーケンスとメッセージフォーマットを示すシーケンス図である。基本的には、図１４に示したスレーブ機器発の書込要求処理の通信シーケンスと同様の処理であるため、ここでの詳細な説明は省略する。
【０１２６】
ネットワーク通信区間が、第１の実施形態に示すシリアルパスと、第２の実施形態に示す無線ネットワークとの差分はある。しかし、第２の実施形態は、ネットワーク通信区分の差分を除けば、Ｍｏｄｂｕｓプロトコルの標準構成のバリエーションのひとつであり、基本的には、図６及び図７の通信シーケンスによる通信が適用可能である。
【０１２７】
また、無線区間は、マスタ機器１およびスレーブ機器２からのメッセージを次の隣接通信機器（次ホップ）へ透過するため、シーケンス上は図１４及び図１５のように、ネットワーク区間が多段通信となるが、基本的には、図６及び図７のシーケンスと内容は同義である。
【０１２８】
（Ｃ−３）第２の実施形態の効果
以上のように、第２の実施形態によれば、第１の実施形態で説明したスレーブ機器発の要求メッセージの通信を実現できる。
【０１２９】
また、第２の実施形態によれば、無線ネットワーク区間の通信において、マスタ側（無線通信親機側）からスレーブ側（無線通信子機側）への通信は、Ｍｏｄｂｕｓ要求メッセージフォーマットで通信メッセージを送信でき、又スレーブ側（無線通信子機側）からマスタ側（無線通信親機側）への通信はＭｏｄｂｕｓ応答メッセージフォーマットで通信メッセージを送信できる。そのため、マスタ／スレーブ型の通信からの逸脱によってネットワーク区間においてメッセージが破棄されることなく通信されることが期待できる。これにより、マスタ／スレーブ型の両方の機能を具備した機器による双方向通信では破棄されてしまうという無線ネットワーク区間の制約を受けずに、マスタ／スレーブ型の双方向通信が実現できる。
【０１３０】
（Ｄ）他の実施形態
上述した第１及び第２の実施形態においても種々の変形実施形態を言及したが、以下の変形実施形態にも適用できる。
【０１３１】
（Ｄ−１）本発明は、Ｍｏｄｂｕｓプロトコルを用いたシリアル通信の様々な用途に適用できる。特にスレーブ側発の自律的な通知を行う必要があるシステムにて有効となる。
【０１３２】
（Ｄ−２）例えば、Ｍｏｄｂｕｓプロトコルが多く利用されているセンサデバイス分野において、例えば温度計、湿度計、流量メータなどのセンサデバイスからのデータ取得を、データ変化点のみセンサデバイス（スレーブ機器側）から自律的にデータを送信することで通信利用帯域を削減したシステムの構築に適用できる。
【０１３３】
（Ｄ−３）また例えば、センサデバイス側の起動・停止・障害等の通知を自律的に通知する用途にも利用できる。これは、簡易ネットワーク管理プロトコルＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）における自律メッセージ（Ｔｒａｐ）に相応する障害通知の機能を、ＳＮＭＰをサポートしないＭｏｄｂｕｓ通信ネットワーク／機器において実現することと同等である。
【０１３４】
（Ｄ−４）スレーブ機器側にヒューマンマシンインタフェースを具備することでＴＣＰ／ＩＰネットワークで実現している１対多の双方向コミュニケーションのアプリケーションを実現できる。具体例として１対多のチャットや、緊急連絡網、安否確認、アンケート／投票システムといったアプリケーションを、シリアル通信ネットワーク上でのＭｏｄｂｕｓ通信において実現することが出来る。
【符号の説明】
【０１３５】
１…マスタ機器、２，２−１〜２−ｎ…スレーブ機器、３，３−１〜３−ｎ…シリアルケーブル、４０…無線通信親機、４−１〜４−ｎ…無線通信子機、１１…通信部、１２及び２２…メッセージ解析部、１２１及び２２１…要求／応答判別部、１３及び２３…メッセージ生成部、１４及び２４…アプリケーション部。
【図１】
2017046250.tif 000003
【図２】
2017046250.tif 000004
【図３】
2017046250.tif 000005
【図４】
2017046250.tif 000006
【図５】
2017046250.tif 000007
【図６】
2017046250.tif 000008
【図７】
2017046250.tif 000009
【図８】
2017046250.tif 000010
【図９】
2017046250.tif 000011
【図１０】
2017046250.tif 000012
【図１１】
2017046250.tif 000013
【図１２】
2017046250.tif 000014
【図１３】
2017046250.tif 000015
【図１４】
2017046250.tif 000016
【図１５】
2017046250.tif 000017