説明

通信制御方法、通信制御プログラムおよびマスタ通信装置

【課題】マスタ通信装置がスレーブ通信装置の一時故障を永久故障と誤判定することを防止する。
【解決手段】マスタ通信装置2は、スレーブ通信装置4の1つを指定し、指定したスレーブ通信装置4へ指示情報を送信し、それに応答する応答情報を受信する処理を単位通信処理として繰り返し実行する。マスタ通信装置2は、スレーブ通信装置4ごとに応答情報を受信できなかった回数をカウントするタイムアウトエラーカウンタ24を有し、送信した指示情報に対する応答情報を受信したとき、タイムアウトエラーカウンタ24をゼロクリアし、所定の時間内に応答情報を受信しなかったとき、タイムアウトエラーカウンタ24をカウントアップする。そして、マスタ通信装置2は、速やかに当該単位通信処理を終了させるとともに、タイムアウトエラーカウンタ24の計数値が所定の回数に達したときには、スレーブ通信装置4が(永久)故障していると判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のスレーブ通信装置が通信ネットワークを介してマスタ通信装置に接続されて構成されたマスタ・スレーブ形通信システムで用いられる通信制御方法、通信制御プログラムおよびマスタ通信装置に関する。
【背景技術】
【0002】
プラントの監視・制御用などの用途として、しばしば、マスタ・スレーブ形通信システムが用いられる。そのマスタ・スレーブ形通信システムは、例えば、監視センタなどに設置されるマスタ通信装置に、隔地に設置された複数のスレーブ通信装置が接続されて構成される。このようなマスタ・スレーブ形通信システムでは、例えばMODBUS(登録商標)プロトコルが利用されるが、その通信方法に従えば、マスタ通信装置およびスレーブ通信装置の機能は、次のように定められる。
【0003】
(1)マスタ通信装置は、スレーブ通信装置を指定し、その指定したスレーブ通信装置に対して、監視装置を制御したり監視装置からデータを収集したりするための指示情報を送信する機能を有する。(2)スレーブ通信装置は、マスタ通信装置からの指示情報を受信し、その指示情報であらかじめ指定された処理をした後、その処理結果の情報を応答情報としてマスタ装置へ送信する機能を有する。ただし、スレーブ通信装置は、マスタ通信装置に対し、自発的に指示情報を送信する機能は有していない。
【0004】
従来、このようなマスタ・スレーブ形通信システムでは、マスタ通信装置は、複数のスレーブ通信装置に対して、所定の時間ごとに、送信先のスレーブ通信装置を所定の順序で巡回しながら指定し、その指定したスレーブ通信装置へ指示情報を送信し、その送信先のスレーブ通信装置から返送される応答情報を受信する。マスタ通信装置は、これらの一連の処理において、所定の時間内にスレーブ通信装置から応答情報が返送されなかった場合には、前回に送信した指示情報と同じ指示情報を再送信して、スレーブ通信装置からの応答情報を待つ。そして、所定の回数以上、同じ指示情報を再送信しても、スレーブ通信装置から応答情報が返送されなかった場合には、そのスレーブ通信装置は故障していると判定する。
【0005】
このようにしてスレーブ通信装置の故障を判定する従来の方法には、次のような課題があることが知られている。第一に、このような従来の故障判定方法では、あるスレーブ通信装置から応答情報が送信されない場合には、マスタ通信装置は、同じ指示情報の再送信と、その再送信に対する応答情報の受信待と、を数回繰り返すことになる。そのため、他のスレーブ通信装置に対して送信すべき指示情報の送信が遅延するようなことがあった。その結果、他のスレーブ通信装置における処理が遅延したり、処理する時間的な余裕がなくなったりする場合があった。
【0006】
第二に、従来の故障判定方法の場合、マスタ通信装置は、その故障判定を比較的短時間のうちに行うため、スレーブ通信装置における一時故障(例えば、ノイズなどによる通信障害、スレーブ通信装置側における偶発的な処理遅れなど、放置しても自然に回復する故障)を、永久故障(一時故障でない故障の総称)と誤判断する可能性があった。永久故障の場合、保守者による何らかの作業が必要となるが、一時故障の場合には、放置しておくことができる。従って、一時故障を永久故障と誤判断した場合には、必ずしも故障していないスレーブ通信装置の保守作業を行うことになるので、保守者の作業負担が増大することになる。
【0007】
特許文献1には、前記第一の課題を解決するために、マスタ通信装置が2回目以降の応答情報を待つ待時間を短縮する技術が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2002−26908号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1に開示されている技術は、前記した第二の課題に対しては、何らの解決策にもなっていない。むしろ、より短い時間でスレーブ通信装置の故障を判定することになるので、一時故障を永久故障と判定する確率は大きくなる。
【0010】
そこで、本発明は、マスタ・スレーブ形通信システムにおいて、マスタ通信装置がスレーブ通信装置の一時故障を永久故障と誤判定することを防止した故障判定が可能な通信制御方法、通信制御プログラムおよびマスタ通信装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、複数のスレーブ通信装置が通信ネットワークを介してマスタ通信装置に接続されて構成されたマスタ・スレーブ形通信システムにおける通信制御方法、通信制御プログラムおよびマスタ通信装置であり、そのマスタ・スレーブ形通信システムにおいて、マスタ通信装置は、複数のスレーブ通信装置のうちの1のスレーブ通信装置を指定する通信装置指定処理と、その指定したスレーブ通信装置へ指示情報を送信する指示情報送信処理と、その指示情報を送信した送信先のスレーブ通信装置から応答情報を受信する応答情報受信処理と、を一連の単位通信処理として繰り返して実行する。
【0012】
そして、そのマスタ通信装置は、
(1)送信した指示情報に対する応答情報の受信の有無を検知するタイムアウトエラー監視タイマと、スレーブ通信装置ごとに、それぞれ連続したタイムアウトエラーの検知回数を計数するタイムアウトエラーカウンタと、を有し、
(2)前記応答情報受信処理において、その前の通信装置指定処理で指定したスレーブ通信装置から応答情報を受信した場合には、当該スレーブ通信装置に対応するタイムアウトエラーカウンタの計数値をゼロクリアし、かつ、タイムアウトエラー監視タイマからの通知に基づき、タイムアウトエラーを検知した場合には、当該スレーブ通信装置に対応するタイムアウトエラーカウンタの計数値をカウントアップし、その後速やかに当該単位通信処理を終了させるとともに、その終了時に併せて、前記エラーカウンタの計数値が所定の計数値に達しているか否かを判定し、そのエラーカウンタの計数値が所定の計数値に達したときには、当該スレーブ通信装置が故障していることを示すエラー情報を出力すること、を特徴とする。
【発明の効果】
【0013】
本発明によれば、マスタ・スレーブ形通信システムにおいて、マスタ通信装置がスレーブ通信装置の一時故障を永久故障と誤判定することを防止した故障判定が可能になる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係るマスタ・スレーブ形ネットワークシステムの構成の例を示した図。
【図2】本発明の実施形態に係るマスタ通信装置と4台のスレーブ通信装置との間で指示情報および応答情報が送受信される様子の例を示した比較例の図。
【図3】従来技術に従ってマスタ通信装置と4台のスレーブ通信装置との間で指示情報および応答情報が送受信される様子の例を示した図。
【図4】本発明の実施形態に係るマスタ通信装置の通信制御処理部が実行する通信制御処理のフローチャートの例を示した図。
【図5】本発明の実施形態の変形例に係るマスタ・スレーブ形ネットワークシステムの構成の例を示した図。
【図6】本発明の実施形態の変形例に係るマスタ通信装置の通信制御処理部が実行する通信制御処理のフローチャートの例を示した図。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【0016】
図1は、本発明の実施形態に係るマスタ・スレーブ形ネットワークシステムの構成の例を示した図である。図1に示すように、マスタ・スレーブ形ネットワークシステム10は、マスタ通信装置2に複数のスレーブ通信装置4が通信ネットワーク3を介して接続されて構成される。さらに、マスタ通信装置2には、一般的なパソコンやワークステーションなどで構成されたマスタ情報処理装置1が接続される。また、スレーブ通信装置4には、様々な装置が接続されるが、当該マスタ・スレーブ形ネットワークシステム10が、例えば、プラントの監視システムであるような場合には、各種センサなどからなる監視機器5が接続される。
【0017】
ここで、通信ネットワーク3としては、イーサネット(登録商標)やRS485などを用い、また、その通信方法としては、MODBUS(登録商標)プロトコルなど、一般的には、マスタ・スレーブ形通信と呼ばれる通信方法を用いる。なお、イーサネットのTCP/IPプロトコル上に実装されたMODBUSプロトコルは、MODBUS−TCPと呼ばれているが、その基本となる通信方法は、マスタ・スレーブ形通信に分類される。
【0018】
マスタ・スレーブ形通信におけるマスタ通信装置2とスレーブ通信装置4との間の通信は、マスタ通信装置2が主体的に実行する通信制御処理に従って進行する。すなわち、マスタ通信装置2の通信制御は、次の3ステップの処理を単位処理として、その単位処理を繰り返し実行することによって実現される。
(1)通信の相手先となるスレーブ通信装置4を指定する処理。
(2)前記指定したスレーブ通信装置4へ、そのスレーブ通信装置4が実行すべき処理を指示する情報である指示情報を送信する処理。
(3)前記指示情報を受信したスレーブ通信装置4が、その指示情報によって指示された処理を実行し、その処理結果の情報を応答情報としてマスタ通信装置2へ送信するので、そのスレーブ通信装置4から送信される応答情報を受信する処理。
【0019】
ここで、マスタ通信装置2がスレーブ通信装置4へ送信する指示情報とは、例えば、監視機器5からボイラの温度を取得せよとか、監視機器5に付属するバルブを絞ってガスの流量を減少させよといった指示情報である。そして、応答情報としては、その指示情報に応じて、ボイラの温度やバルブの開度を4から3へ絞ったなどの情報が含まれる。また、その応答情報には、ボイラの温度取得に失敗したなどのエラー情報が含まれてもよい。
【0020】
以上のようなマスタ・スレーブ形通信の通信制御を実行するマスタ通信装置2は、図1に示すように、通信制御処理部21と、ネットワークインタフェース22と、タイムアウトエラー監視タイマ23と、複数のスレーブ通信装置4のそれぞれに対応して設けられたタイムアウトエラーカウンタ24と、を含んで構成される。
【0021】
ここで、通信制御処理部21は、図示しないCPU(Central Processing Unit)とメモリとを含んで構成され、メモリには、マスタ通信装置2の通信制御機能を実現するためのプログラムが格納されるほか、スレーブ通信装置4との間で送受信される指示情報や応答情報が記憶される。また、ネットワークインタフェース22は、通信ネットワーク3に接続され、通信ネットワーク3に対する電気的なインタフェースをとるとともに、送信フレームの生成・送出や、受信フレームの検出などを行う。
【0022】
なお、ネットワークインタフェース22が生成する送信フレームには、送信先となるスレーブ通信装置4を指定するアドレス情報が含まれており、マスタ通信装置2(つまり、通信制御処理部21)がスレーブ通信装置4を指定する処理とは、送信フレームに含まれるスレーブ通信装置4のアドレス情報を設定する処理にほかならない。
【0023】
タイムアウトエラー監視タイマ23は、ネットワークインタフェース22が指示情報を送出した後、スレーブ通信装置4から送信される応答情報を受信するまでの時間を監視するタイマである。すなわち、タイムアウトエラー監視タイマ23は、指示情報がネットワークインタフェース22を介してスレーブ通信装置4へ送信されたとき、その時間監視を開始し、通信制御処理部21が前記指示情報に対する応答情報を受信したときに、時間監視を停止する。そして、所定の時間内に通信制御処理部21が応答情報を受信しなかったとき、すなわち、タイムアウトエラー監視タイマ23の監視時間が所定時間を超えても停止されることがなかった場合には、応答情報を受信しなかったことを意味するタイムアウトエラーを通信制御処理部21へ通知する。
【0024】
タイムアウトエラーカウンタ24は、複数のスレーブ通信装置4のそれぞれに対応して設けられるカウンタであるが、本実施形態では、そのタイムアウトエラーカウンタ24は、マスタ通信装置2内の図示しないメモリ上に設けられる。すなわち、通信制御処理部21は、スレーブ通信装置4からの応答情報を受信すると、そのスレーブ通信装置4に対応するタイムアウトエラーカウンタ24をゼロクリアし、スレーブ通信装置4からの応答情報を受信待ちしている場合に、タイムアウトエラー監視タイマ23からタイムアウトエラーの通知を受けたときには、そのスレーブ通信装置4に対応するタイムアウトエラーカウンタ24の計数値を1つカウントアップする。
【0025】
図2は、本発明の実施形態に係るマスタ通信装置2と4台のスレーブ通信装置4との間で指示情報および応答情報が送受信される様子の例を示した図である。図2において、左半分は、マスタ通信装置2の通信制御処理の内容を示し、右半分は、矢印の方向によって、指示情報の送信先および応答情報の送信元がいずれのスレーブ通信装置4に該当するかを示している。
【0026】
図2に示すように、マスタ通信装置2は、最初のブロックで、スレーブ通信装置4(#1)を指定し(丸で囲んだ1)、その指定したスレーブ通信装置4(#1)へ、あらかじめ定められた指示情報(1,1)を送信し(丸で囲んだ2)、その送信先のスレーブ通信装置4(#1)から返送される応答情報(1,1)を受信する(丸で囲んだ3)。
【0027】
以下、同様に、次のブロックで、マスタ通信装置2は、スレーブ通信装置4(#2)を指定し(丸で囲んだ1)、その指定したスレーブ通信装置4(#2)へ、あらかじめ定められた指示情報(2,1)を送信し(丸で囲んだ2)、その送信先のスレーブ通信装置4(#2)から返送される応答情報(2,1)を受信する(丸で囲んだ3)。さらに、マスタ通信装置2は、スレーブ通信装置4(#3)および(#4)を指定し、同様の処理を行う。
【0028】
以上のように、マスタ・スレーブ形ネットワークシステム10では、マスタ通信装置2は、通信ネットワーク3に接続されている複数のスレーブ通信装置4を1つずつ指定しながら、その指定したスレーブ通信装置4へあらかじめ定められた指示情報を送信するとともに、その指定したスレーブ通信装置4から返信される応答情報を受信する処理を、一連の単位処理として繰り返し実行する。なお、図2の例では、通信ネットワーク3に接続されているスレーブ通信装置4の数は、4としているが、その数は、4に限定されるものではない。
【0029】
マスタ通信装置2は、以上のようにして、通信ネットワーク3に接続された4台のスレーブ通信装置4に対する指示情報の送信と応答情報の受信の処理を一巡すると、続いて、2巡目の通信制御処理を行う。なお、1巡目の通信制御処理では、マスタ通信装置2は、スレーブ通信装置4(#1)、(#2)、(#3)、(#4)のいずれからも、それぞれの応答情報(1,1)、(2,1)、(3,1)、(4,1)を受信したので、タイムアウトエラーカウンタ24(#1)、(#2)、(#3)、(#4)は、いずれもゼロクリアされる。
【0030】
図2に示すように、2巡目の通信制御処理でも、マスタ通信装置2とスレーブ通信装置4(#1)、(#2)、(#3)、(#4)との間では、1巡目と同様に指示情報および応答情報の送受信が行われる。ただし、図2の例では、マスタ通信装置2は、スレーブ通信装置4(#2)からの応答情報(2,2)を所定の時間内に受信できなかった(タイムアウトエラー監視タイマ23からタイムアウトエラーの通知を受けた)としている。そのため、スレーブ通信装置(#2)に対応するタイムアウトエラーカウンタ24(#2)は、1つカウントアップされ、その計数値は1となる。図2では、これを「EC=1」と表している。
【0031】
続く3巡目の通信制御処理でも、マスタ通信装置2とスレーブ通信装置4(#1)、(#2)、(#3)、(#4)との間では、2巡目と同様に指示情報および応答情報の送受信が行われる。ただし、この場合には、マスタ通信装置2がスレーブ通信装置4(#2)へ送信する指示情報は、指示情報(2,2)となっている。これは、スレーブ通信装置4(#2)へは、2巡目の指示情報(2,2)と同じ指示情報(2,2)が送信されることを意味している。すなわち、マスタ通信装置2は、2巡目でスレーブ通信装置4(#2)からの応答情報(2,2)の受信ができなかったため、2巡目と同じ指示情報(2,2)を再送信(リトライ)したものである。
【0032】
なお、図2の例では、3巡目の通信制御でも、マスタ通信装置2は、スレーブ通信装置4(#2)からの応答情報(2,2)の受信ができなかったとされている。そのため、タイムアウトエラーカウンタ24(#2)は、再度、カウントアップされ、その計数値は2となっている。図2では、これを「EC=2」と表している。
【0033】
さらに、4巡目の通信制御でも、マスタ通信装置2とスレーブ通信装置4(#1)、(#2)、(#3)、(#4)との間では、3巡目と同様に指示情報および応答情報の送受信が行われるが、前回、マスタ通信装置2は、スレーブ通信装置4(#2)からの応答情報(2,2)の受信ができなかったため、スレーブ通信装置4(#2)へは、2巡目や3巡目と同じ指示情報(2,2)を送信している。
【0034】
図2の例では、マスタ通信装置2は、4巡目でも、スレーブ通信装置4(#2)からの応答情報(2,2)の受信できなかったとされている。従って、タイムアウトエラーカウンタ24(#2)は、再度、カウントアップされ、「EC=3」となっている。以上のようにして、マスタ通信装置2は、所定回数以上(例えば、3回以上)同じスレーブ通信装置4へ同じ指示情報を送信しても、それに対する応答情報を受信できなかった場合には、そのスレーブ通信装置4が故障していると判定する。
【0035】
なお、以上の説明では、3巡目および4巡目でスレーブ通信装置4(#2)に送信する指示情報は、最初に応答情報の受信ができなかった2巡目に送信した指示情報(2,2)と同じ指示情報であるとしているが、必ずしも同じ指示情報でないとしてもよい。すなわち、図2において、マスタ通信装置2は、3巡目で「スレーブ通信装置4(#2)へ指示情報(2,3)を送信し、応答情報(2,3)を受信せず」、4巡目で「スレーブ通信装置4(#2)へ指示情報(2,4)を送信し、応答情報(2,4)を受信せず」としてもよい。
【0036】
ちなみに、マスタ・スレーブ形ネットワークシステム10が適用されるプラント監視・制御システムなどの例においては、例えば、スレーブ通信装置4に対して、毎回「ボイラの温度を取得せよ」という指示情報が送信されるケースは、必ずしも珍しいケースではない。このようなケースでは、ある巡回でスレーブ通信装置4からの応答情報がなかったからといって、マスタ通信装置2は、次の巡回で、前回と同じ指示情報を再送信する必要はない。次の巡回で送信される指示情報は、あらかじめ定められていた「(その時点での)ボイラの温度を取得せよ」という指示情報である。
【0037】
従って、スレーブ通信装置4に対して、例えば、奇数回に「ボイラの温度を取得せよ」という指示情報を送信し、偶数回に「ボイラの圧力を取得せよ」という指示情報を送信することが予定されているケースでは、マスタ通信装置2は、ある巡回で「ボイラの温度を取得せよ」という指示情報に対する応答情報を受信できなくても、次の巡回では、「ボイラの温度を取得せよ」という指示情報を再送信するのではなく、予定されていた「ボイラの圧力を取得せよ」という指示情報を送信するようにしてもよい。
【0038】
以上のように、スレーブ通信装置4ごとに応答情報を連続して受信できなかった巡回数をカウントして、そのカウント数が所定値を超えたことによって検出されるスレーブ通信装置4の故障は、スレーブ通信装置4が何らかの原因で正常に動作していないために、指示情報を受信できないか、または、応答情報を送信することができない故障である。しかしながら、通信ネットワーク3の障害のためにスレーブ通信装置4に指示情報が届かない場合や、スレーブ通信装置4から送信された応答情報がマスタ通信装置2へ届かない通信障害も、その故障として検出される。一般に、通信ネットワーク3における通信障害は、一時故障であることが多い。
【0039】
図3は、従来技術に従ってマスタ通信装置2と4台のスレーブ通信装置4との間で指示情報および応答情報が送受信される様子の例を示した比較例の図である。図3に示すように、マスタ通信装置2とスレーブ通信装置4(#1)、(#2)、(#3)、(#4)との間で行われる指示情報および応答情報の送受信は、図2に示した本発明の実施形態とほとんど同様にして行われる。相違点は、マスタ通信装置2がスレーブ通信装置4からの応答情報を受信しない場合の処理にある。
【0040】
図3の例では、マスタ通信装置2は、2巡目のスレーブ通信装置4(#2)への指示情報(2,2)に対する応答情報(2,2)を受信していない。その場合、マスタ通信装置2は、その後、直ちに、スレーブ通信装置4(#2)に対して、同じ指示情報(2,2)を再送信して、応答情報(2,2)を受信することをリトライする。マスタ通信装置2は、このようなリトライを所定回数(例えば、3回)繰り返している。そして、その所定回数の繰り返しによっても、応答情報(2,2)を受信することができない場合には、スレーブ通信装置4(#2)が故障していると判定する。
【0041】
図3の例と図2の例とを比較すると、次の点で相違していることが分かる。すなわち、図3(比較例)では、マスタ通信装置2は、あるスレーブ通信装置4からの応答情報を受信できなかった場合、その後、直ちに所定回数のリトライを行うのに対し、図2(本発明の実施形態)では、リトライを直ちに行うのではなく、当該スレーブ通信装置4との間の次の送受信が行われるときに、1回ずつリトライを行っている。
【0042】
そのため、マスタ通信装置2が最初の応答情報の受信失敗から、所定回数のリトライを経て、その応答情報を送信すべきスレーブ通信装置4の故障を判定するまでの時間は、図3(比較例)の場合に短く、図2(本発明の実施形態)の場合に長い。ちなみに、あるスレーブ通信装置4(例えば、(#2))における応答情報受信のタイムアウトエラー時間を2秒とし、また、マスタ通信装置2がそのスレーブ通信装置4との間で指示情報および応答情報を送受信する処理を繰り返して行う時間間隔を、1分とすれば、スレーブ通信装置4の故障を判定するまでの時間は、図3(比較例)の場合で、6秒、図2(本発明の実施形態)の場合で、3分となる。
【0043】
その場合、マスタ通信装置2は、図3(比較例)の場合、スレーブ通信装置4の故障を短時間に検出することができるようになるが、その検出が短時間で行われるがゆえに、一時故障を永久故障と誤る可能性が生じる。一方、図2(本発明の実施形態)の場合には、スレーブ通信装置4の故障を検出するまでの時間は余計に掛かるが、一時故障を永久故障と誤る可能性は極めて小さくなる。ちなみに、ノイズなどにより、一時故障が6秒ほど継続する場合はあっても、3分継続する可能性は小さい。
【0044】
また、マスタ通信装置2における応答情報受信のタイムアウトエラーがスレーブ通信装置4における偶発的な処理混雑による送信遅延であった場合、図3(比較例)では、マスタ通信装置2からの指示情報送信のリトライにより、スレーブ通信装置4は、再度、直ちに応答情報を送信することが求められる。そのため、スレーブ通信装置4における処理混雑は、さらに悪化することになり兼ねない。その場合には、所定回数、マスタ通信装置2から指示情報が送信されたとしても、スレーブ通信装置4は、応答情報を送信することができず、結局、「スレーブ通信装置4は永久故障している」と誤判定される結果になる。
【0045】
一方、図2(本発明の実施形態)の場合には、指示情報送信は、すぐには再送信されることはなく、当該スレーブ通信装置4に対する次の巡回時に送信される。従って、そのときまでにはスレーブ通信装置4における偶発的な処理混雑は、解消している可能性が大きいため、スレーブ通信装置4は、応答情報を所定に時間内に送信することができる。従って、「スレーブ通信装置4は永久故障している」と誤判定される可能性は、ほとんどなくなり、また、後続するスレーブ通信装置4に対する指示情報および応答情報の送受信処理が遅延させられることもなくなる。
【0046】
図4は、本発明の実施形態に係るマスタ通信装置2の通信制御処理部21が実行する通信制御処理のフローチャートの例を示した図である。通信制御処理部21は、この通信制御処理を実行することによって、例えば、図2に示したマスタ通信装置2の通信制御処理を実現することができる。以下、図4および図1を参照して、通信制御処理部21が実行する通信制御処理について説明する。
【0047】
マスタ通信装置2の通信制御処理部21は、まず、通信相手となるスレーブ通信装置4を指定し(ステップS11)、その指定したスレーブ通信装置4に対応するタイムアウトエラーカウンタ24の計数値を取得し(ステップS12)、その計数値が「0」であるか否かを判定する(ステップS13)。なお、各スレーブ通信装置4に対応するタイムアウトエラーカウンタ24の計数値の初期値は、「0」であるとする。
【0048】
次に、ステップS13の判定で、タイムアウトエラーカウンタ24の計数値が「0」であった場合(ステップS13でYes)、つまり、指示情報送信に対して応答情報の受信に前回成功していた場合には、通信制御処理部21は、ステップS11で指定したスレーブ通信装置4に、あらかじめ指定された指示情報を送信する(ステップS14)。また、計数値が「0」でなかった場合(ステップS13でNo)、つまり、前回の指示情報の送信に対する応答情報の受信に失敗していた場合には、ステップS11で指定したスレーブ通信装置4へ、前回送信した指示情報と同じ指示情報を送信する(ステップS15)。
【0049】
なお、前記したように、プラント監視・制御システムなどの応用例の場合には、ステップ15では、前回送信した指示情報と同じ指示情報でなく、当初から指定されていた指示情報を送信するものとしてもよい。従って、この場合には、ステップS15の処理は、ステップS15の処理と同じになるので、ステップS12,S13,S15の処理は、図4のフローチャートから省略してもよい。
【0050】
なお、以上の処理でスレーブ通信装置4を指定する情報や、その指定したスレーブ通信装置4に応じて、そのスレーブ通信装置4へ送信する指示情報は、通信制御処理部21の図示しないメモリにあらかじめ格納されておいてもよく、または、その都度、マスタ情報処理装置1から供給される情報であるとしてもよい。
【0051】
続いて、通信制御処理部21は、ステップS14またはステップS15で送信した指示情報に応じて、スレーブ通信装置4から送信される応答情報を受信したか否かを判定する(ステップS16)。そして、その判定の結果、応答情報を受信した場合には(ステップS16でYes)、ステップS11で指定したスレーブ通信装置4に対応するタイムアウトエラーカウンタ24をゼロクリアする(ステップS17)。なお、ステップS16で受信した応答情報は、例えば、いったん通信制御処理部21の図示しないメモリに一時記憶された後に、マスタ情報処理装置1へ送信される。
【0052】
通信制御処理部21は、ステップS17の次には、ステップS11へ戻って、ステップS11以下の処理を再度実行する。
【0053】
次に、ステップS16の判定の結果、応答情報を受信していない場合には(ステップS16でNo)、通信制御処理部21は、タイムアウトエラー監視タイマ23からタイムアウトエラーの通知があったか否かを判定し(ステップS18)、タイムアウトエラーの通知がなかったときには(ステップS18でNo)、応答情報を受信したか否かを判定するステップS16へ戻る。また、タイムアウトエラーの通知があったときには(ステップS18でYes)、ステップS11で指定したスレーブ通信装置4に対応するタイムアウトエラーカウンタ24をカウントアップする(ステップS19)。
【0054】
次に、通信制御処理部21は、タイムアウトエラーカウンタの計数値が、あらかじめ定められた値N(例えば、N=3)に到達したか否かを判定し(ステップS20)、到達していない場合には(ステップS20でNo)、ステップS11へ戻って、ステップS11以下の処理を再度実行する。また、ステップS20で、タイムアウトエラーカウンタの計数値がNに到達した場合には(ステップS20でYes)、通信制御処理部21は、ステップS11で指定したスレーブ通信装置4は、故障していると判定し、故障であることを示すエラー情報を出力する(ステップS21)。なお、そのエラー情報の出力先は、例えば、マスタ情報処理装置1であってもよく、また、マスタ通信装置2が何らかの表示装置を有している場合には、その表示装置に表示してもよい。
【0055】
通信制御処理部21は、ステップS21の次には、ステップS11へ戻って、ステップS11以下の処理を再度実行する。
【0056】
なお、図4を用いて説明した通信制御処理のステップS13では、通信制御処理部21は、タイムアウトエラーカウンタ24の計数値が「0」であるか否かを判定することによって、前回の指示情報の送信に対する応答情報の受信が成功したか否かを判定しているが、その判定方法は、これに限定されるものではない。例えば、マスタ通信装置2内にタイムアウトエラーカウンタ24とは別に各スレーブ通信装置4に対応付けられたタイムアウトエラーフラグを設けておき、そのタイムアウトエラーフラグにより、応答情報の受信の成否を判定してもよい。
【0057】
この場合、マスタ通信装置2の通信制御処理部21が応答情報の受信に成功したとき、そのタイムアウトエラーフラグを「0」クリアし、応答情報の受信に失敗したとき、そのタイムアウトエラーフラグに「1」をセットするとすれば、タイムアウトエラーフラグの「0」は、応答情報受信の「成功」を意味し、タイムアウトエラーフラグの「1」は、応答情報受信の「失敗」を意味する。
【0058】
(実施形態の変形例)
図5は、本発明の実施形態の変形例に係るマスタ・スレーブ形ネットワークシステムの構成の例を示した図である。なお、図5において、図1と同じ構成要素については、同じ符号を付し、その説明を省略する。
【0059】
図5に示した実施形態の変形例に係るマスタ・スレーブ形ネットワークシステム10Aと、図1に示した元の実施形態に係るマスタ・スレーブ形ネットワークシステム10との相違は、通信ネットワーク3の構成、および、マスタ通信装置2Aの中に例外エラーカウンタ25が追加されていることにある。
【0060】
本実施形態の変形例では、通信ネットワーク3は、ネットワーク変換装置6によって2つの通信ネットワーク3a,3bに分割されている。ここで、通信ネットワーク3aは、例えば、MODBUS−TCPのネットワークであり、また、通信ネットワーク3bは、例えば、MODBUSプロトコルのRS−485規格のネットワークである。
【0061】
図5において、それぞれの通信ネットワーク3a,3bには、スレーブ通信装置4が接続されているが、本明細書の以下の記載で必要な場合には、通信ネットワーク3aに接続されているスレーブ通信装置4を上位のスレーブ通信装置4aと呼び、通信ネットワーク3bに接続されているスレーブ通信装置4を下位のスレーブ通信装置4bと呼ぶ。また、各スレーブ通信装置4には、図1で示したように、様々な監視機器などが接続されるが、ここでは、その図示を省略している。
【0062】
マスタ通信装置2Aは、下位のスレーブ通信装置4bとの間の指示情報および応答情報の送受信を、ネットワーク変換装置6を介して行う。ネットワーク変換装置6は、通信ネットワーク3aと通信ネットワーク3bとの間でプロトコルや電気信号の変換などを行う機能を有している。その機能は、基本的には、単なる変換であるので、下位のスレーブ通信装置4bが正常に動作しているときは、マスタ通信装置2Aからは、そのネットワーク変換装置6は、あたかも存在していないように見える。
【0063】
しかしながら、下位のスレーブ通信装置4bが故障し、マスタ通信装置2Aからの指示情報に対する応答情報を返送できない場合には、その応答情報が返信されないタイムアウトエラーは、ネットワーク変換装置6によって検知される。そのとき、ネットワーク変換装置6は、下位のスレーブ通信装置4bから応答情報を受信しなかったことを示すタイムアウトエラー(以下、このタイムアウトエラーを例外エラーと呼ぶ)を含んだ情報をマスタ通信装置2Aへ送信する。
【0064】
従って、マスタ通信装置2Aの通信制御処理部21は、下位のスレーブ通信装置4bから応答情報が送信されないことは、タイムアウトエラー監視タイマ23からの通知ではなく、ネットワーク変換装置6から送信される例外エラーによって知る。なお、マスタ通信装置2Aは、下位のスレーブ通信装置4bへ指示情報を送信した後、所定の時間内に、ネットワーク変換装置6から例外エラーも含めて何らの応答情報も受信しない場合には、ネットワーク変換装置6自身が故障していると判断する。
【0065】
図5において、マスタ通信装置2A内に追加された例外エラーカウンタ25は、下位のスレーブ通信装置4bのそれぞれに対応して設けられ、そのそれぞれのスレーブ通信装置4bについてネットワーク変換装置6から送信される例外エラーの回数をカウントする。なお、例外エラーカウンタ25も、タイムアウトエラーカウンタ24と同様に、通信制御処理部21内のメモリ上に設けられる。
【0066】
図6は、本発明の実施形態の変形例に係るマスタ通信装置2Aの通信制御処理部21が実行する通信制御処理のフローチャートの例を示した図である。その通信制御処理の基本形は図4に示したフローチャートと同じである。ただし、本実施形態の変形例では、下位のスレーブ通信装置4bからの応答情報の受信については、そのタイムアウトエラーの監視をネットワーク変換装置6が代行し、そのタイムアウトエラーを例外エラーとしてマスタ通信装置へ報告する形態であるので、図6では、その例外エラーの受信に応対する処理ステップ(ステップS31−ステップS35)が図4のフローチャートに追加された形となっている。
【0067】
以下、図6のフローチャートについて説明するが、図4と同じ処理ステップについては同じステップ番号を付しており、その説明を省略する。
【0068】
図6のフローチャートにおいて、ステップS11−ステップS16までの処理は、ステップS12aを除き、図4のフローチャートと同じである。通信制御処理部21は、ステップS12aで、ステップS11で指定したスレーブ通信装置4に対応するエラーカウンタの計数値を取得するが、ここでいうエラーカウンタとは、当該スレーブ通信装置4が上位のスレーブ通信装置4aである場合には、タイムアウトエラーカウンタ24を指し、当該スレーブ通信装置4が下位のスレーブ通信装置4bである場合には、例外エラーカウンタ25を指す。
【0069】
また、図4の場合と同様に、プラント監視・制御システムなどの応用例の場合には、ステップ15では、前回送信した指示情報と同じ指示情報でなく、当初から指定されていた指示情報を送信するものとしてもよい。そして、その場合には、ステップS15の処理は、ステップS15の処理と同じになるので、ステップS12,S13,S15の処理は、図6のフローチャートから省略してもよい。
【0070】
また、通信制御処理部21は、ステップ16でスレーブ通信装置4からの応答情報を受信したか否かを判定し、応答情報を受信しなかった場合には(ステップS16でNo)、それ以降に実行される処理(ステップS18−ステップS21)は、図4のフローチャートと同じである。また、ステップ16の判定で、応答情報を受信した場合には(ステップS16でYes)、その応答情報として、例外エラーが含まれている可能性があるので、通信制御処理部21は、ステップS17以下の処理を実行する。
【0071】
すなわち、通信制御処理部21は、まず、ステップS11で指定したスレーブ通信装置4に対応するタイムアウトエラーカウンタ24をゼロクリアする(ステップS17)。なお、このとき、ステップS11で指定したスレーブ通信装置4が下位のスレーブ通信装置4bであった場合には、その下位のスレーブ通信装置4bに対応するタイムアウトエラーカウンタ24は設けられていないため、実質的な処理は行われない。
【0072】
次に、通信制御処理部21は、ステップS11で指定したスレーブ通信装置4からの応答情報に例外エラーが含まれているか否かを判定する(ステップS31)。そして、その判定の結果、その応答情報に例外エラーが含まれていない場合には(ステップS31でNo)、通信制御処理部21は、下位のスレーブ通信装置4bに対応する例外エラーカウンタをセロクリアした(ステップS32)後、ステップS11へ戻って、ステップS11以下の処理を再度実行する。
【0073】
一方、ステップS31の判定の結果、ステップS11で指定したスレーブ通信装置4からの応答情報に例外エラーが含まれていた場合には(ステップS31でYes)、通信制御処理部21は、そのスレーブ通信装置4は、下位のスレーブ通信装置4bであり、その下位のスレーブ通信装置4bに対応する例外エラーカウンタをカウントアップする(ステップS33)。
【0074】
次に、通信制御処理部21は、例外エラーカウンタの計数値が、あらかじめ定められた値N(例えば、N=3)に到達したか否かを判定し(ステップS34)、到達していない場合には(ステップS34でNo)、ステップS11へ戻って、ステップS11以下の処理を再度実行する。また、ステップS34で、タイムアウトエラーカウンタの計数値がNに到達した場合には(ステップS34でYes)、通信制御処理部21は、当該下位のスレーブ通信装置4bは、故障していると判定し、下位のスレーブ通信装置4bの故障であることを示すエラー情報を出力する(ステップS35)。なお、そのエラー情報の出力先は、例えば、マスタ情報処理装置1であってもよく、また、マスタ通信装置2が何らかの表示装置を有している場合には、その表示装置であってもよい。
【0075】
通信制御処理部21は、ステップS35の次には、ステップS11へ戻って、ステップS11以下の処理を再度実行する。
【0076】
以上、本実施形態の変形例でも、基本的な通信ネットワーク3の構成や通信制御処理部21の処理内容は、元の実施形態と同じであるので、元の実施形態と同様に、マスタ通信装置2Aがスレーブ通信装置4の故障を判定するとき、一時故障を永久故障と誤ることはほとんどなくなる。
【符号の説明】
【0077】
1 マスタ情報処理装置
2,2A マスタ通信装置
3,3a,3b 通信ネットワーク
4 スレーブ通信装置
4a 上位のスレーブ通信装置
4b 下位のスレーブ通信装置
5 監視機器
6 ネットワーク変換装置
10,10A マスタ・スレーブ形ネットワークシステム
21 通信制御処理部
22 ネットワークインタフェース
23 タイムアウトエラー監視タイマ
24 タイムアウトエラーカウンタ
25 例外エラーカウンタ

【特許請求の範囲】
【請求項1】
複数のスレーブ通信装置が通信ネットワークを介してマスタ通信装置に接続されて構成されたマスタ・スレーブ形通信システムにおいて、前記マスタ通信装置が、前記複数のスレーブ通信装置のうちの1のスレーブ通信装置を指定する通信装置指定処理と、前記指定したスレーブ通信装置へ指示情報を送信する指示情報送信処理と、前記指示情報を送信した送信先のスレーブ通信装置から応答情報を受信する応答情報受信処理と、を一連の単位通信処理として繰り返して実行する通信制御方法であって、
前記マスタ通信装置は、
前記送信した指示情報に対する応答情報の受信の有無を検知するタイムアウトエラー監視タイマと、前記スレーブ通信装置ごとに、それぞれ連続したタイムアウトエラーの検知回数を計数するタイムアウトエラーカウンタと、を有し、
前記応答情報受信処理において、
前記通信装置指定処理で指定したスレーブ通信装置から前記応答情報を受信した場合には、当該スレーブ通信装置に対応する前記タイムアウトエラーカウンタの計数値をゼロクリアし、前記タイムアウトエラー監視タイマからの通知に基づき、タイムアウトエラーを検知した場合には、当該スレーブ通信装置に対応する前記タイムアウトエラーカウンタの計数値をカウントアップし、その後速やかに当該単位通信処理を終了させるとともに、その終了時に併せて、前記エラーカウンタの計数値が所定の計数値に達しているか否かを判定し、前記エラーカウンタの計数値が所定の計数値に達したときには、当該スレーブ通信装置が故障していることを示すエラー情報を出力すること
を特徴とする通信制御方法。
【請求項2】
複数のスレーブ通信装置が通信ネットワークを介してマスタ通信装置に接続されて構成されたマスタ・スレーブ形通信システムにおいて、前記マスタ通信装置に、前記複数のスレーブ通信装置のうちの1のスレーブ通信装置を指定する通信装置指定処理と、前記指定したスレーブ通信装置へ指示情報を送信する指示情報送信処理と、前記指示情報を送信した送信先のスレーブ通信装置から応答情報を受信する応答情報受信処理と、を一連の単位通信処理として繰り返して実行させるための通信制御プログラムであって、
前記マスタ通信装置は、
前記送信した指示情報に対する応答情報の受信の有無を検知するタイムアウトエラー監視タイマと、前記スレーブ通信装置ごとに、それぞれ連続したタイムアウトエラーの検知回数を計数するタイムアウトエラーカウンタと、を有し、
前記マスタ通信装置に、
前記応答情報受信処理において、
前記通信装置指定処理で指定したスレーブ通信装置から前記応答情報を受信した場合には、当該スレーブ通信装置に対応する前記タイムアウトエラーカウンタの計数値をゼロクリアし、前記タイムアウトエラー監視タイマからの通知に基づき、タイムアウトエラーを検知した場合には、当該スレーブ通信装置に対応する前記タイムアウトエラーカウンタの計数値をカウントアップし、その後速やかに当該単位通信処理を終了させるとともに、その終了時に併せて、前記エラーカウンタの計数値が所定の計数値に達しているか否かを判定し、前記エラーカウンタの計数値が所定の計数値に達したときには、当該スレーブ通信装置が故障していることを示すエラー情報を出力する処理
を実行させるための通信制御プログラム。
【請求項3】
複数のスレーブ通信装置が通信ネットワークを介してマスタ通信装置に接続されて構成されたマスタ・スレーブ形通信システムにおいて、前記複数のスレーブ通信装置のうちの1のスレーブ通信装置を指定する通信装置指定処理と、前記指定したスレーブ通信装置へ指示情報を送信する指示情報送信処理と、前記指示情報を送信した送信先のスレーブ通信装置から応答情報を受信する応答情報受信処理と、を一連の単位通信処理として繰り返して実行するマスタ通信装置であって、
前記マスタ通信装置は、
前記送信した指示情報に対する応答情報の受信の有無を検知するタイムアウトエラー監視タイマと、前記スレーブ通信装置ごとに、それぞれ連続したタイムアウトエラーの検知回数を計数するタイムアウトエラーカウンタと、を有し、
前記応答情報受信処理において、
前記通信装置指定処理で指定したスレーブ通信装置から前記応答情報を受信した場合には、当該スレーブ通信装置に対応する前記タイムアウトエラーカウンタの計数値をゼロクリアし、前記タイムアウトエラー監視タイマからの通知に基づき、タイムアウトエラーを検知した場合には、当該スレーブ通信装置に対応する前記タイムアウトエラーカウンタの計数値をカウントアップし、その後速やかに当該単位通信処理を終了させるとともに、その終了時に併せて、前記エラーカウンタの計数値が所定の計数値に達しているか否かを判定し、前記エラーカウンタの計数値が所定の計数値に達したときには、当該スレーブ通信装置が故障していることを示すエラー情報を出力すること
を特徴とするマスタ通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−188322(P2011−188322A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−52562(P2010−52562)
【出願日】平成22年3月10日(2010.3.10)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】