(57)【要約】【課題】マスタ機器がスレーブ機器からデータを定期的に取得する場合にネットワーク処理負担と通信データ量の軽減を行うことを可能とする通信システムを提供すること。【解決手段】本発明のスレーブ機器１０は、データを格納するデータ部６０と、データ部６０に格納されているデータを更新する機能動作部７０と、データ部６０に格納されているデータの更新を管理するデータ更新管理部５０と、マスタ機器２０からのデータ要求が送信されてきた際に、データ部６０に格納されたデータの内でデータ要求により要求されたデータが該データを前回送信してから更新されたか否かを判定し、該データが前回送信してから更新されたと判定された場合に更新された該データをデータ要求に対する応答とし、該データが前回送信してから更新されていないと判定された場合にデータ要求に対する応答を保留するコマンド解析部４０と、を備える。【選択図】図１
2018064178.tif 000002
【特許請求の範囲】
【請求項１】
マスタ機器との間でマスタ・スレーブ間通信を行い、前記マスタ機器から送信されてきたデータ要求に対して、該データ要求により要求されたデータを応答として送信するスレーブ機器において、
データを格納するデータ部と、
前記データ部に格納されているデータを更新する機能動作部と、
前記データ部に格納されているデータの更新を管理するデータ更新管理部と、
前記マスタ機器からのデータ要求が送信されてきた際に、前記データ部に格納されたデータの内で前記データ要求により要求されたデータが該データを前回送信してから更新されたか否かを判定し、該データが前回送信してから更新されたと判定された場合に更新された該データを前記データ要求に対する応答とし、該データが前回送信してから更新されていないと判定された場合に前記データ要求に対する応答を保留するコマンド解析部と、
を備えたスレーブ機器。
【請求項２】
前記データ更新管理部は、前記データ部に格納されたデータが更新された場合にＯＮとなるデータ更新フラグを格納しており、
前記コマンド解析部は、前記データ部に格納されているデータに対応する前記データ更新フラグがＯＮとなっている場合に、該データが前回送信してから更新されたと判定する、
請求項１に記載のスレーブ機器。
【請求項３】
前記データ更新管理部は、前記データ部に格納されたデータを前回送信した際のデータ値を送信済みデータとして格納しており、
前記コマンド解析部は、前記データ部に格納されているデータと、該データに対応する送信済みデータとが異なる場合に、前記データが前回送信してから更新されたと判定する、
請求項１に記載のスレーブ機器。
【請求項４】
前記コマンド解析部は、動作モードに応じて、前記データ部に格納されたデータの内で前記データ要求により要求されたデータが該データを前回送信してから更新されたか否かの判定を行う、
請求項１〜３のいずれか１つに記載のスレーブ機器。
【請求項５】
前記コマンド解析部は、前記マスタ機器と前記スレーブ機器とのタイムアウト時間に基づいて、前記データ要求に対する応答を保留する時間を決定する、
請求項１〜４のいずれか１つに記載のスレーブ機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スレーブ機器に関し、特にマスタ・スレーブ間通信における情報の伝達タイミングを決定するスレーブ機器に関する。
【背景技術】
【０００２】
ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）技術の普及に従い、センサや内部情報をネットワークを通じて収集することがますます盛んになっており、工場内のネットワークにおいては、一般的にマスタ機器（ＣＮＣやＰＣ）が、定期的にスレーブ機器（センサなど）に対してデータの読み出しを要求することで、データを収集する方法が広く普及している。
【０００３】
マスタ機器とスレーブ機器との間で行われるマスタ・スレーブ間通信の規格においては通常マスタ機器からスレーブ機器への読み書きを両方サポートする規格が多い。しかし、実際の運用においては、読み書きを両方使う機器（ＩＯ機器など）以外に、マスタ機器が一方的にデータを読み出すことを想定しているスレーブ機器（センサ、カウンタなど）や、マスタ機器がデータ収集を目的としてデータの読み出しのみを要求する場合（稼動管理システムなど）が多くある。
【０００４】
これらのマスタ・スレーブ間通信において、マスタ機器がスレーブ機器のデータを定期的に収集する場合、スレーブ機器の持つデータが変化してからマスタ機器が変化を知るまでにかかる時間（情報の伝達時間）の最大値は、図４に示すように、マスタ機器がスレーブ機器に対してデータ要求を行う時間間隔（ポーリング間隔）に依存する。よって、この情報の伝達時間を短くするためには、マスタ機器はスレーブに対して行うデータ要求の時間間隔を短くする必要がある。
【０００５】
マスタ・スレーブ間の通信に関する従来技術として、例えば特許文献１には、データに変化があったことを示すフラグをスレーブ機器の内部に持たせ、スレーブ機器は通常はフラグのみを応答として送信し、マスタ機器は応答の中にデータの変化を示すフラグが有った場合、内容を別途要求することで通常の通信量を削減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０７−１４７５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マスタ・スレーブ間通信において、スレーブ機器でのデータの変化に対してマスタ機器が素早く対応できるようにする場合、例えば図５に示すように、マスタ機器のスレーブ機器に対するデータ要求の時間間隔（ポーリング間隔）を短くして、上記した情報の伝達時間の最大値を小さくする方法が考えられるが、そのようにした場合、マスタ機器とスレーブ機器との間での要求と応答のやり取りの頻度が増えるため、これが原因で通信路上を流れる通信量が増加する。このことは、スレーブ機器でデータの変化がしていなくとも、同じデータが大量に通信路上を流れることを意味する。その結果、マスタ機器、スレーブ機器共にＣＰＵ負荷やシステム全体のネットワーク負荷の増加を招くという問題がある。
【０００８】
特許文献１に開示される従来技術では、通常のデータ転送をフラグのみで実施し、フラグが変更された場合に限り実際のデータを転送することでデータの転送回数を減らし、通信量の削減を図っているものの、データの更新頻度が高くなるとフラグとデータの両方を頻繁に通信することとなり、フラグの通信が必要な分、従来の転送よりも通信量が増加するという問題が発生し、上記した課題に対して十分な対応ができない。
【０００９】
そこで本発明は、マスタ・スレーブ間通信において、マスタ機器がスレーブ機器からデータを定期的に取得する場合にネットワーク処理負担と通信データ量の軽減を行うことを可能とするスレーブ機器を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では、マスタ機器からのデータ読み出し要求に対して、スレーブ機器が自身の持つデータの状態に合わせて応答の送信タイミングを制御することにより上記課題を解決する。本発明では、スレーブ機器からのマスタ機器に対する前回のデータ送信時以降に、当該データに変化が有るか否かを判定できる構成をスレーブ機器に設け、マスタ機器からスレーブ機器に対してデータの読み出しの要求が来た場合に、スレーブ機器は、データに変化が有った場合、またはあらかじめ定めた保留時間が経過した場合にのみ応答を送信するようにする。
【００１１】
そして、本願の請求項１に係る発明は、マスタ機器との間でマスタ・スレーブ間通信を行い、前記マスタ機器から送信されてきたデータ要求に対して、該データ要求により要求されたデータを応答として送信するスレーブ機器において、データを格納するデータ部と、前記データ部に格納されているデータを更新する機能動作部と、前記データ部に格納されているデータの更新を管理するデータ更新管理部と、前記マスタ機器からのデータ要求が送信されてきた際に、前記データ部に格納されたデータの内で前記データ要求により要求されたデータが該データを前回送信してから更新されたか否かを判定し、該データが前回送信してから更新されたと判定された場合に更新された該データを前記データ要求に対する応答とし、該データが前回送信してから更新されていないと判定された場合に前記データ要求に対する応答を保留するコマンド解析部と、を備えたスレーブ機器である。
【００１２】
本願の請求項２に係る発明は、前記データ更新管理部は、前記データ部に格納されたデータが更新された場合にＯＮとなるデータ更新フラグを格納しており、前記コマンド解析部は、前記データ部に格納されているデータに対応する前記データ更新フラグがＯＮとなっている場合に、該データが前回送信してから更新されたと判定する、請求項１に記載のスレーブ機器である。
【００１３】
本願の請求項３に係る発明は、前記データ更新管理部は、前記データ部に格納されたデータを前回送信した際のデータ値を送信済みデータとして格納しており、前記コマンド解析部は、前記データ部に格納されているデータと、該データに対応する送信済みデータとが異なる場合に、前記データが前回送信してから更新されたと判定する、請求項１に記載のスレーブ機器である。
【００１４】
本願の請求項４に係る発明は、前記コマンド解析部は、動作モードに応じて、前記データ部に格納されたデータの内で前記データ要求により要求されたデータが該データを前回送信してから更新されたか否かの判定を行う、請求項１〜３のいずれか１つに記載のスレーブ機器である。
【００１５】
本願の請求項５に係る発明は、前記コマンド解析部は、前記マスタ機器と前記スレーブ機器とのタイムアウト時間に基づいて、前記データ要求に対する応答を保留する時間を決定する、請求項１〜４のいずれか１つに記載のスレーブ機器である。
【発明の効果】
【００１６】
本発明により、スレーブ機器のデータ変更頻度が低い場合のマスタ・スレーブ間通信において、ネットワーク負荷、ＣＰＵ負荷の低減ができる。また、ネットワーク負荷、ＣＰＵ負荷が低減されることからマスタのポーリング間隔を従来よりも短くすることが可能となり、情報の伝達時間を短くすることができる。更に、本発明は、従来技術の通信システムにおけるスレーブ機器の動作を改良したものであり、マスタ機器については従来の規格に対応した機器をそのまま利用することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態によるスレーブ機器を備えた通信システムの概略的な機能ブロック図である。
【図２】本発明の第１の実施形態によるスレーブ機器の概略的な動作を示すフローチャートである。
【図３】本発明の第２の実施形態によるスレーブ機器を備えた通信システムの概略的な機能ブロック図である。
【図４】従来技術におけるマスタ・スレーブ間通信を説明する図である。
【図５】従来技術の問題点を説明する図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面と共に説明する。
本発明では、通信システムにおいてマスタ機器とスレーブ機器との間で行われるマスタ・スレーブ間通信において、マスタ機器がスレーブ機器に対して定期的にデータ要求を行うような場合を想定している。例えばマスタ機器が制御装置でありスレーブ機器がワークの温度を測るセンサである場合や、マスタ機器が情報収集のみを目的とする稼動管理サーバである場合などである。また、本発明では、基本的にマスタ機器とスレーブ機器の間の通信に用いられる通信プロトコルとしてＭｏｄｂｕｓ／ＴＣＰを使用することを想定し、以下の各実施形態に関しても、Ｍｏｄｂｕｓ／ＴＣＰでマスタ機器とスレーブ機器が通信しているものとして説明を行う。しかし、マスタ機器と各スレーブ機器との通信において、マスタ機器とスレーブ機器との通信順序が固定されていないプロトコルであれば本発明で用いることが可能であり、本発明で用いられる通信プロトコルを限定することは無い。
【００１９】
図１は、本発明の第１の実施形態によるスレーブ機器を備えた通信システムの概略的な機能ブロック図である。また、図２は、図１のスレーブ機器上で実行される概略的な処理を示すフローチャートである。本実施形態の通信システム１は、マスタ機器２０に対して少なくとも１つのスレーブ機器１０が有線又は無線で通信可能に接続されて構成される。
【００２０】
スレーブ機器１０は、マスタ機器２０からの情報を受信する通信部３０および、マスタ機器２０から送信されてきたコマンドを解析して応答を作成するコマンド解析部４０を持つ。また、スレーブ機器１０はコマンド解析部４０が解析したコマンドに従って、読み出すデータが格納されたデータ部６０およびデータ更新フラグが格納されているデータ更新フラグ部５１をデータ更新管理部５０として備え、更に、スレーブ機器１０が機器として動作するための機能動作部７０を備える。
【００２１】
データ更新フラグ部５１には、データ部６０に格納されるデータに対応したデータ更新フラグが格納されている。データ更新フラグは、データ部６０内のデータ毎に持っても良いし、データのグループ毎や、データ部６０全部に対して、１つのデータ更新フラグを持つようにしても良い。データ更新フラグ部５１に格納されるデータ更新フラグは、スレーブ機器１０の起動時に１（ＯＮ）に初期化される。
【００２２】
機能動作部７０は、スレーブ機器１０の機能として、センサやカウンタ、加工など機器毎に様々な動作を行う。機能動作部７０は、動作結果や、稼動状態をデータ部６０に格納するが、その際に前回格納した値と違う値を格納する場合、データ更新フラグ部５１に格納されているデータ更新フラグの内、データ部６０に格納したデータに対応するデータ更新フラグを１（ＯＮ）にする。
【００２３】
スレーブ機器１０では、マスタ機器２０からの要求を通信部３０で受けた場合（ステップＳＡ０１）、その要求内容をコマンド解析部４０で解析する（ステップＳＡ０２）。コマンド解析部４０が解析したコマンドがデータの読み出しではないコマンドだった場合（ステップＳＡ０３）、コマンド解析部４０は従来のスレーブ機器と同様の反応を行い、マスタ機器２０に対して応答を送信する（ステップＳＡ０４）。一方で、コマンド解析部４０が解析したコマンドがデータの読み出し要求だった場合（ステップＳＡ０３）、コマンド解析部４０は、データ更新フラグ部５１を参照して読み出し対象のデータに対応するデータ更新フラグを確認し、データ更新フラグが１（ＯＮ）であれば、すなわち読み出し対象のデータが前回の読出しから更新されていれば（ステップＳＡ０５）、データ部６０から該当するデータを読み出してマスタ機器２０に対して応答を送信すると共に、送信したデータに対応するデータ更新フラグを０（ＯＦＦ）にする（ステップＳＡ０４）。また、データ更新フラグが０（ＯＦＦ）であれば、すなわち読み出し対象のデータが前回の読出しから更新されていなければ（ステップＳＡ０５）、コマンド解析部４０は、マスタ機器２０への応答の送信を保留する。
【００２４】
マスタ機器２０への応答の送信を保留した場合、コマンド解析部４０は、データ更新フラグ部５１に格納されているデータ更新フラグの内、読み出し対象のデータに対応するデータ更新フラグを監視し、当該データ更新フラグを機能動作部７０が１（ＯＮ）に更新したタイミングで、データ部６０から該当するデータを読み出し、読み出したデータを応答としてマスタ機器２０に対して送信すると共に、送信したデータに対応するデータ更新フラグを０（ＯＦＦ）にする（ステップＳＡ０４）。また、マスタ機器２０への応答の送信を保留したままで機能動作部７０がデータ更新フラグをあらかじめ定めた所定の保留時間以上更新しなかった場合、すなわち保留時間以上データが更新されなかった場合（ステップＳＡ０６）には、コマンド解析部４０は、タイムアウトによりマスタ機器２０がエラーとなることを回避するために、更新されていないデータ（前回と同じデータ）を応答としてマスタ機器２０に対して送信する（ステップＳＡ０４）。
なお、保留時間は、機能動作部７０やスレーブ機器１０の管理者により設定されるものとしてよい。
【００２５】
このように、第１の実施形態では、データ更新管理部においてデータ更新フラグを管理することにより、前回のマスタ機器へのデータ送信時からデータに変化がなかった場合に応答が保留されるため、マスタ・スレーブ間でのデータ変更頻度が低い場合のネットワーク負荷、ＣＰＵ負荷を低減することができる。
【００２６】
図３は、本発明の第２の実施形態によるスレーブ機器を備えた通信システムの概略的な機能ブロック図である。本実施形態のスレーブ機器１０は、第１の実施形態のスレーブ機器１０におけるデータ更新管理部５０としてのデータ更新フラグ部５１の代わりに、送信済みデータ部５２を備えたものである。送信済みデータ部５２には、マスタ機器２０からの前回の読出し要求に対して応答したデータである送信済みデータが格納されている。送信済みデータ部５２には、マスタ機器２０から読み出し要求され得るデータごとに送信済みデータが格納される。送信済みデータ部５２に格納される送信済みデータは、スレーブ機器１０の起動時には、未送信を意味するデータ（例えば、当該データが通常では取りえないデータ値）に初期化される。
【００２７】
本実施形態の通信システム１では、機能動作部７０はデータ変更時にデータ部６０のデータのみを操作し、送信済みデータ部５２の送信済みデータは操作しない。コマンド解析部４０は、データ読み出し要求をマスタ機器２０から受信した場合、データ部６０のデータと、当該データに対応する送信済みデータ部５２の送信済みデータとを比較し、これらデータ間に違いがあった場合にはデータ部６０に格納されている読み出し対象のデータをマスタ機器２０に対する応答として送信すると共に、応答として送信したデータにより送信済みデータ部５２の送信済みデータを更新する。一方で、データ部６０のデータと、当該データに対応する送信済みデータ部５２の送信済みデータとを比較した結果、これらデータ間に違いが無い場合には、第１の実施形態と同様にマスタ機器２０への回答を保留とし、コマンド解析部４０はデータ部６０の読出し対象となるデータが変化することを監視する。そして、コマンド解析部４０は、保留時間内にデータが変化した場合にはデータ部６０内の変化したデータをマスタ機器２０に対する応答として送信すると共に、応答として送信したデータにより送信済みデータ部５２の送信済みデータを更新し、保留時間内にデータが変化しなかった場合には、タイムアウトエラーを回避するために、データ部６０内の変化しなかったデータをマスタ機器２０に対する応答として送信する。
【００２８】
このように、第２の実施形態では、データ更新管理部において送信済みデータを管理することにより、前回のマスタ機器へのデータ送信時からデータに変化がなかった場合に応答が保留されるため、マスタ・スレーブ間でのデータ変更頻度が低い場合のネットワーク負荷、ＣＰＵ負荷を低減することができる。
【００２９】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００３０】
例えば、上記した実施形態で示したスレーブ機器では上記した通信方法を常時有効にしているものとして説明しているが、上記した通信方法を常時有効とせずにモードとして従来のスレーブ機器の挙動と動的に切り替えるようにしてもよい。
このようなモードの切り替えは、マスタ機器２０からのコマンドで切り替えられるようにしても良い。そのような場合には、モード切り替えのトリガーは通信規格を拡張して専用のコマンドを用意しても良いし、コマンドによりデータ部６０内の特定のデータに特定の値を書き込むことでモードが切り替わるようにしても良い。
モードの切り替えは、スレーブ機器１０が動作状況を判断して切り替えるようにしても良い。例えば、スレーブ機器１０の機能動作部７０が、自身のＣＰＵ負荷を監視し、一定以上のＣＰＵ負荷になった場合、コマンド解析部４０にモードの変更を指示してもよい。また、マスタ機器２０からの初期設定の書き込み要求などデータの読み出し以外のコマンドの要求が電源投入時やネットワーク加入時に行われる場合、スレーブ機器１０の機能動作部７０が、それらのデータ読み出し以外のコマンド処理が完了したかを判断して、コマンド解析部４０にモードの変更を指示してもよい。逆に、機能動作部７０にエラーが発生した場合など、定常状態ではなくなった場合、本発明により導入される通信方法のモードから従来のスレーブ機器１０の挙動に戻しても良く、その際にコマンド解析部４０に保留中のコマンドが合った場合、コマンド解析部４０はマスタ機器２０に即時に応答し、応答後にモードを変更するようにすればよい。
【００３１】
上記した第１，２の実施形態では、保留時間をあらかじめ設定されたものとしているが、コマンド解析部４０は、コマンドの保留時間を機能動作部７０やスレーブ機器１０の管理者による設定以外により定めるようにしても良い。例えば、マスタ機器２０とネットワークで接続された後、スレーブ機器１０は、最初のマスタ機器２０からのコマンド要求に対して一定時間以上応答を返さないようにする。この場合マスタ機器２０側で、コマンド要求がタイムアウトするため、マスタ機器２０はスレーブ機器１０に対して、エラーが発生したとして通信路を切断、又は、スレーブ機器１０と再接続を実施しようとする。スレーブ機器１０は、このコマンド要求を受信してからマスタ機器２０が通信路の切断や再接続を試行するまでの時間をマスタ機器のタイムアウト時間と仮定して、その時間に一定の倍率（例えば０．８倍する）を掛けたものを保留時間として設定するようにしてもよい。
【符号の説明】
【００３２】
１  通信システム
１０  スレーブ機器
２０  マスタ機器
３０  通信部
４０  コマンド解析部
５０  データ更新管理部
５１  データ更新フラグ部
５２  送信済みデータ部
６０  データ部
７０  機能動作部
【図１】
2018064178.tif 000003
【図２】
2018064178.tif 000004
【図３】
2018064178.tif 000005
【図４】
2018064178.tif 000006
【図５】
2018064178.tif 000007