(57)【要約】【課題】ホスト装置から中継器にデータを送信し終わった後にホスト装置と中継器との間で通信障害が発生した場合でも、中継器が周辺装置にデータを送り終えたかどうかをホスト装置にて判断できるようにする。【解決手段】ホスト装置１００に通信ログ取得部１４を設けるとともに、中継器２００に通信ログ記憶部２４および通信ログ返信部２８を設け、中継器２００から周辺装置３００に対するデータ送信の成否を示す送信成否情報を通信ログ記憶部２４に記憶し、ホスト装置１００からの要求に応じて送信成否情報を返信することにより、ホスト装置１００から中継器２００へのデータ送信後にその間で通信障害が発生した場合でも、中継器２００に記憶しておいた送信成否情報を取得して、通信障害が発生する前に中継器２００から周辺装置３００へデータ送信が完了していたかどうかをホスト装置１００にて判断できるようにする。【選択図】図３
2020123129.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と周辺装置との間に中継器を接続してデータ通信を行うシステムにおいて、上記中継器における通信ログを管理するシステムであって、
上記中継器は、
上記ホスト装置から上記周辺装置宛てのデータを第１の通信プロトコルに則り受信するデータ受信部と、
上記データ受信部により受信されたデータを上記周辺装置に第２の通信プロトコルに則り送信するデータ転送部と、
上記ホスト装置から送信された上記データに対する応答として、上記周辺装置に対するデータ送信の成否を示す送信成否情報を上記ホスト装置に返信する送信成否情報返信部と、
上記送信成否情報を通信ログとして記憶する通信ログ記憶部と、
上記ホスト装置からの要求に応じて上記通信ログを返信する通信ログ返信部とを備え、
上記ホスト装置は、
上記周辺装置宛てのデータを上記第１の通信プロトコルに則り上記中継器に送信するデータ送信部と、
上記データ送信部が上記データを上記中継器に送信したことに対する応答として、上記中継器から送信されてくる上記送信成否情報を受信する送信成否情報受信部と、
上記通信ログの取得を上記中継器に要求し、その応答として上記中継器から上記通信ログとして送信されてくる上記送信成否情報を取得する通信ログ取得部とを備えた
ことを特徴とする中継器における通信ログ管理システム。
【請求項２】
上記通信ログ取得部は、上記データ送信部が送信したデータが上記中継器に届いたことを確認した後、その応答として上記送信成否情報が返信されてこない場合に、上記通信ログの取得を要求することを特徴とする請求項１に記載の中継器における通信ログ管理システム。
【請求項３】
上記通信ログ記憶部は、上記ホスト装置と上記中継器との間の通信障害の有無によらず、上記データ受信部が次のデータを受信するまで今回のデータに関する送信成否情報を上記通信ログとして記憶し、上記データ受信部が次のデータを受信して上記データ転送部が当該次のデータを上記周辺装置に送信しようとしたことの成否が確認されたときに、当該次のデータに関する送信成否情報によって上記今回のデータに関する送信成否情報を上書きすることにより上記通信ログを更新することを特徴とする請求項１または２に記載の中継器における通信ログ管理システム。
【請求項４】
上記中継器は、
上記データ転送部が上記データを上記周辺装置に送信したことに対する応答として、上記周辺装置から送信されてくる動作状況情報を受信する動作状況情報受信部と、
上記動作状況情報受信部により受信された上記動作状況情報を記憶する動作状況情報記憶部と、
上記ホスト装置からの要求に応じて上記動作状況情報を返信する動作状況情報返信部とを更に備え、
上記ホスト装置は、
上記中継器から上記周辺装置に対するデータ送信が完了したことを上記送信成否情報により確認した場合に、上記動作状況情報の取得を上記中継器に要求し、その応答として上記中継器から送信されてくる上記動作状況情報を取得する動作状況情報取得部を更に備えた
ことを特徴とする請求項１〜３の何れか１項に記載の中継器における通信ログ管理システム。
【請求項５】
上記ホスト装置は、上記通信ログ取得部により取得された上記送信成否情報により上記中継器から上記周辺装置に対するデータ送信が完了していないことが確認された場合には、上記データ送信部によるデータ送信を実行する一方、上記通信ログ取得部により取得された上記送信成否情報により上記中継器から上記周辺装置に対するデータ送信が完了したことが確認された場合には、上記動作状況情報取得部による上記動作状況情報の取得を実行することを特徴とする請求項４に記載の中継器における通信ログ管理システム。
【請求項６】
上記中継器は、上記動作状況情報受信部が上記動作状況情報を上記周辺装置から受信したか否かを示す受信有無情報を第２の通信ログとして記憶する第２の通信ログ記憶部を更に備え、
上記動作状況情報記憶部は、上記動作状況情報返信部が上記ホスト装置に対して上記動作状況情報を返信した時点で上記動作状況情報を削除し、
上記通信ログ返信部は、上記ホスト装置からの要求に応じて上記通信ログおよび上記第２の通信ログを返信し、
上記通信ログ取得部は、上記通信ログの取得を上記中継器に要求し、その応答として上記中継器から送信されてくる上記送信成否情報および上記受信有無情報を取得する
ことを特徴とする請求項４に記載の中継器における通信ログ管理システム。
【請求項７】
上記ホスト装置は、上記通信ログ取得部により取得された上記送信成否情報および上記受信有無情報により、上記中継器から上記周辺装置に対するデータ送信が完了しておらず、かつ、上記周辺装置から上記中継器に対する上記動作状況情報の受信がないことが確認された場合には、上記データ送信部によるデータ送信を実行する一方、上記中継器から上記周辺装置に対するデータ送信が完了し、かつ、上記動作状況情報の受信があることが確認された場合には、上記動作状況情報取得部による上記動作状況情報の取得を実行することを特徴とする請求項６に記載の中継器における通信ログ管理システム。
【請求項８】
ホスト装置と周辺装置との間におけるデータ通信を中継する中継器であって、
上記ホスト装置から上記周辺装置宛てのデータを第１の通信プロトコルに則り受信するデータ受信部と、
上記データ受信部により受信されたデータを上記周辺装置に第２の通信プロトコルに則り送信するデータ転送部と、
上記ホスト装置から送信された上記データに対する応答として、上記周辺装置に対するデータ送信の成否を示す送信成否情報を上記ホスト装置に返信する送信成否情報返信部と、
上記送信成否情報を通信ログとして記憶する通信ログ記憶部と、
上記ホスト装置からの要求に応じて上記通信ログを返信する通信ログ返信部とを備えた
ことを特徴とする中継器。
【請求項９】
上記データ転送部が上記データを上記周辺装置に送信したことに対する応答として、上記周辺装置から送信されてくる動作状況情報を受信する動作状況情報受信部と、
上記動作状況情報受信部により受信された上記動作状況情報を記憶する動作状況情報記憶部と、
上記ホスト装置からの要求に応じて上記動作状況情報を返信する動作状況情報返信部とを更に備えた
ことを特徴とする請求項８に記載の中継器。
【請求項１０】
上記動作状況情報受信部が上記動作状況情報を上記周辺装置から受信したか否かを示す受信有無情報を第２の通信ログとして記憶する第２の通信ログ記憶部を更に備え、
上記動作状況情報記憶部は、上記動作状況情報返信部が上記ホスト装置に対して上記動作状況情報を返信した時点で上記動作状況情報を削除し、
上記通信ログ返信部は、上記ホスト装置からの要求に応じて上記通信ログおよび上記第２の通信ログを返信する
ことを特徴とする請求項９に記載の中継器。
【請求項１１】
請求項８に記載の中継器を介して周辺装置との間でデータ通信を行うホスト装置であって、
上記周辺装置宛てのデータを第１の通信プロトコルに則り上記中継器に送信するデータ送信部と、
上記データ送信部が上記データを上記中継器に送信したことに対する応答として、上記中継器から送信されてくる上記送信成否情報を受信する送信成否情報受信部と、
上記データ送信部が送信したデータが上記中継器に届いたことを確認した後、その応答として上記送信成否情報が返信されてこない場合に、上記通信ログの取得を上記中継器に要求し、その応答として上記中継器から上記通信ログとして送信されてくる上記送信成否情報を取得する通信ログ取得部とを備えた
ことを特徴とするホスト装置。
【請求項１２】
請求項８に代えて請求項９に記載の中継器を介して周辺装置との間でデータ通信を行うホスト装置であって、
上記中継器から上記周辺装置に対するデータ送信が完了したことを上記送信成否情報により確認した場合に、上記動作状況情報の取得を上記中継器に要求し、その応答として上記中継器から送信されてくる上記動作状況情報を取得する動作状況情報取得部を更に備えた
ことを特徴とする請求項１１に記載のホスト装置。
【請求項１３】
請求項９に代えて請求項１０に記載の中継器を介して周辺装置との間でデータ通信を行うホスト装置であって、
上記通信ログ取得部は、上記通信ログの取得を上記中継器に要求し、その応答として上記中継器から送信されてくる上記送信成否情報および上記受信有無情報を取得する
ことを特徴とする請求項１２に記載のホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継器における通信ログ管理システム、中継器およびホスト装置に関し、特に、ホスト装置と周辺装置との間に中継器を接続してデータ通信を行うシステムに用いて好適なものである。
【背景技術】
【０００２】
従来、ホスト装置と周辺装置とを接続し、ホスト装置から周辺装置の動作を制御するようになされたシステムが知られている。例えば、ホスト装置と周辺装置との間を有線または無線のＬＡＮ（Local Area Network）により接続し、ＴＣＰ／ＩＰプロトコルに従って相互にデータ通信を行うシステムが広く利用されている。
【０００３】
これに対し、周辺装置の中には、通信インタフェース手段としてＬＡＮインタフェースは持たず、ＲＳ−２３２Ｃ等のシリアルインタフェースのみを有しているものが存在する。一方、ホスト装置の中には、ＬＡＮインタフェースは有るがシリアルインタフェースを有していないものが存在する。このようなホスト装置と周辺装置とを用いて、ホスト装置から命令を送って周辺装置を制御するためには、ホスト装置と周辺装置との間に中継器を接続する必要がある。
【０００４】
この場合における中継器は、ホスト装置から送られてくるＬＡＮ通信信号をシリアル通信信号に変換して周辺装置に送信する。また、中継器は、周辺装置から送られてくるシリアル通信信号をＬＡＮ通信信号に変換してホスト装置に送信する。特許文献１，２には、このようにホスト装置と周辺装置との間に中継器を接続し、中継器において信号を変換してデータ通信を行うようにしたシステムが開示されている。
【０００５】
特許文献１に記載の遠隔操作・遠隔監視システムでは、プレス装置２（周辺装置）とＰＬＣ（プログラム可能制御装置）３とが通信ケーブル９で接続され、ＰＬＣ３と信号変換器５（両方合わせて中継器）とがシリアル通信専用ケーブル４で接続され、当該信号変換器５がＬＡＮを介してデータ収集用コンピュータ８（ホスト装置）と接続されている。ＰＬＣ３は、プレス装置２を制御するとともに、プレス装置２の稼動状況データを収集して内部のメモリに記憶する。ＰＬＣ３は収集した１日の稼動状況データを５日間記憶するので、仮にＰＬＣ３によって収集された稼動状況データをＰＬＣ３からデータ収集用コンピュータ８へ送信している際に、ＰＬＣ３とデータ収集用コンピュータ８との間で通信エラー等が発生しても 、５日間は、その稼動状況データをＰＬＣ３からデータ収集用コンピュータ８へ再度送信することができるように構成されている。
【０００６】
特許文献２に記載の防災システムでは、火災受信機１１（周辺装置）と伝送用ＩＦ１２（中継器）とがＲＳ−２３２Ｃで接続され、伝送用ＩＦ１２がＬＡＮを介して統合監視制御盤４０（ホスト装置）と接続されている。伝送用ＩＦ１２はＩＣカード接続器を備え、このＩＣカード接続器に接続されたＩＣカードに通信ログが記録される。通信ログとしては、（１）中継先の火災受信機１１から伝送用ＩＦ１２にて受信する情報の全て、（２）伝送用ＩＦ１２から火災受信機１１に送信する情報の全て、（３）伝送用ＩＦ１２から統合監視制御盤４０に送信する情報の全て、（４）統合監視制御盤４０から伝送用ＩＦ１２にて受信する情報の全てである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２２２１３３号公報
【特許文献２】特開２００２−２９８２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ホスト装置と周辺装置との間に中継器を接続してデータ通信を行うシステムにおいて、ホスト装置から中継器を介して周辺装置に動作命令データを送信する場合、中継器は、周辺装置へのデータ送信が完了した後に、ホスト装置に対して「送信完了」の応答データを返す。一方、中継器と周辺装置との間のシリアル通信に何らかの障害が発生していて動作命令データを送信できなかった場合、中継器は、ホスト装置に対して「送信不能」の応答データを返す。この応答データにより、ホスト装置は中継器が周辺装置に動作命令データを送信できたかどうかを判断することができる。
【０００９】
ホスト装置は、中継器から周辺装置に対するデータ送信の完了を確認できた場合、周辺装置の動作状況データの取得を中継器に要求する。中継器は、周辺装置に動作命令データを送信した後、その動作命令データに従って周辺装置が正常に動作を完了したか否かを示す動作状況データを周辺装置から受信している。中継器は、この動作状況データをホスト装置からの要求に応じて返信する。これにより、ホスト装置から周辺装置に対する動作命令に関する一連の処理が完了する。
【００１０】
ところで、ホスト装置と中継器との間におけるＬＡＮ通信に一時的に障害が発生することがある。ＬＡＮ通信では、その仕組みにより、ホスト装置は自身が送信したデータが相手に届いたか否かを判断することができる。そのため、ホスト装置から中継器にデータを送信する際にＬＡＮ通信の障害が発生し、ホスト装置から中継器へのデータ送信が失敗した場合、ホスト装置はそれを検知可能である。したがって、ホスト装置はデータ再送等の対応をとることができる。
【００１１】
しかしながら、ホスト装置から中継器にデータ（動作命令データ）を送信し終わった後に通信障害が発生した場合、ホスト装置は中継器からデータ（送信完了または送信不能の応答データ）を取得することができない。そのため、ホスト装置では、中継器が周辺装置にデータを送り終えたかどうかを判断することができないという問題があった。この場合、ホスト装置は、中継器が周辺装置に動作命令データを送り終えたかどうかが不明であるため、中継器に動作命令データを再送するといった対応をとることができない。
【００１２】
なお、上記特許文献１に記載のシステムでは、ＰＬＣ３がプレス装置２（周辺装置）の稼動状況データを収集して内部メモリに記憶しているが、ＰＬＣ３（中継器）とプレス装置２との通信ログを記憶するものではない。そのため、ＰＬＣ３とデータ収集用コンピュータ８との間で通信エラーが発生したときに、それ以前にＰＬＣ３に記憶された稼動状況データを用いても、通信エラーの発生時にＰＬＣ３がプレス装置２にデータを送り終えていたかどうかは判断することができない。
【００１３】
一方、上記特許文献２に記載のシステムでは、火災受信機１１（周辺装置）と伝送用ＩＦ１２（中継器）との間の通信ログを記録しているが、単にＩＣカードに記録しているだけであり、これを統合監視制御盤４０（ホスト装置）に通知する構成は含まれていない。したがって、この特許文献２に記載の技術を用いたとしても、ホスト装置では、中継器との間に通信障害が発生したときに、中継器が周辺装置にデータを送り終えたかどうかを判断することができない。
【００１４】
本発明は、このような問題を解決するために成されたものであり、ホスト装置と周辺装置との間に中継器を接続してデータ通信を行うシステムにおいて、ホスト装置から中継器にデータを送信し終わった後にホスト装置と中継器との間で通信障害が発生した場合でも、中継器が周辺装置にデータを送り終えたかどうかをホスト装置にて判断することができるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
上記した課題を解決するために、本発明では、中継器がホスト装置から周辺装置宛てのデータを受信して周辺装置に送信すると、周辺装置に対するデータ送信の成否を示す送信成否情報をホスト装置に返信するとともに、当該送信成否情報を通信ログとして記憶し、ホスト装置からの要求に応じて当該通信ログを返信するようにしている。ホスト装置では、周辺装置宛てのデータを中継器に送信し、その応答として中継器から送信されてくる送信成否情報を受信することに加え、通信ログの取得を中継器に要求し、その応答として中継器から通信ログとして送信されてくる送信成否情報を取得するようにしている。
【００１６】
上記のように構成した本発明によれば、ホスト装置と中継器との間に通信障害が発生していない場合には、ホスト装置から中継器にデータを送信した後に中継器から返信されてくる送信成否情報に基づいて、ホスト装置から中継器にデータを送信し終わったか否かを確認することができる。一方、中継器から周辺装置にデータを送信し終わった後にホスト装置と中継器との間に通信障害が発生した場合でも、その通信障害の復旧後に、中継器に通信ログとして記憶しておいた送信成否情報をホスト装置が中継器から取得することができるので、通信障害が発生する前にホスト装置から中継器に送信したデータを中継器が周辺装置に送り終えていたかどうかをホスト装置にて判断することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態による通信ログ管理システムの全体構成例を示す図である。
【図２】第１の実施形態によるホスト装置および中継器のハードウェア構成を示す図である。
【図３】第１の実施形態によるホスト装置および中継器の機能構成例を示すブロック図である。
【図４】第１の実施形態による通信ログ管理システムの動作例（通信障害が発生していない場合の動作例）を示すフローチャートである。
【図５】第１の実施形態による通信ログ管理システムの動作例（ＬＡＮ通信障害が発生している場合の動作例）を示すフローチャートである。
【図６】第１の実施形態による通信ログ管理システムの動作例（ＬＡＮ通信障害およびシリアル通信障害が発生している場合の動作例）を示すフローチャートである。
【図７】第２の実施形態によるホスト装置および中継器の機能構成例を示すブロック図である。
【図８】第２の実施形態による通信ログ管理システムの動作例（通信障害が発生していない場合の動作例）を示すフローチャートである。
【図９】第２の実施形態による通信ログ管理システムの動作例（ＬＡＮ通信障害が発生している場合の動作例）を示すフローチャートである。
【図１０】第２の実施形態による通信ログ管理システムの動作例（ＬＡＮ通信障害およびシリアル通信障害が発生している場合の動作例）を示すフローチャートである。
【図１１】第２の実施形態による通信ログ管理システムの他の動作例（ＬＡＮ通信障害が発生している場合の動作例）を示すフローチャートである。
【発明を実施するための形態】
【００１８】
（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。図１は、第１の実施形態による中継器における通信ログ管理システム（以下、単に通信ログ管理システムという）の全体構成例を示す図である。本実施形態の通信ログ管理システムは、ホスト装置１００と、中継器２００と、周辺装置３００とを備えて構成される。本実施形態の通信ログ管理システムは、ホスト装置１００と周辺装置３００との間に中継器２００を接続してデータ通信を行うシステムにおいて、中継器２００における通信ログを管理するものである。
【００１９】
ホスト装置１００は、周辺装置３００に対して動作実行命令等のデータを送信することにより、周辺装置３００の動作を制御する機能を備えたものである。ホスト装置１００としては、例えば、スマートフォン、タブレット端末、ＰＯＳ（Point of sales）端末などを用いることが可能である。ホスト装置１００は、ＬＡＮインタフェースを有する一方、ＲＳ−２３２Ｃ等のシリアルインタフェースは有していない。そのため、ホスト装置１００と中継器２００との間は、有線または無線のＬＡＮにより接続される。
【００２０】
周辺装置３００は、ホスト装置１００から中継器２００を介して送られてくる動作実行命令に従って所定の動作を実行する機能を備えたものである。例えば、ホスト装置１００がＰＯＳ端末である場合に用い得る周辺装置３００としては、自動釣銭機、クレジット決済端末、プリンタなどがある。この場合における自動釣銭機は、ホスト装置１００から送られてくる動作実行命令に従って、例えば現金の払い出しに関する動作を実行する。また、クレジット決済端末は、ホスト装置１００から送られてくる動作実行命令に従って、例えば決済金額の設定に関する動作を実行する。また、プリンタは、ホスト装置１００から送られてくる動作実行命令に従って、例えば印字、ファームウェア更新、ステータス情報の送信などの動作を実行する。周辺装置３００は、ＲＳ−２３２Ｃ等のシリアルインタフェースを有する一方、ＬＡＮインタフェースは有していない。そのため、周辺装置３００と中継器２００との間は、シリアル通信ケーブルにより接続される。
【００２１】
中継器２００は、ホスト装置１００と周辺装置３００との間の通信を中継するものである。すなわち、中継器２００は、ホスト装置１００から受信するＬＡＮ通信信号をシリアル通信信号に変換して周辺装置３００に送信する。また、中継器２００は、周辺装置３００から受信するシリアル通信信号をＬＡＮ通信信号に変換してホスト装置１００に送信する。ホスト装置１００から中継器２００を介して周辺装置３００に送信される通信信号は、上述の動作実行命令等のデータを含む。一方、周辺装置３００から中継器２００を介してホスト装置１００に送信される通信信号は、動作実行命令に基づく動作実行の結果を示す動作状況情報等のデータを含む。
【００２２】
図２は、本実施形態による通信ログ管理システムの主要要素であるホスト装置１００および中継器２００のハードウェア構成例を示す図である。
【００２３】
図２に示すように、ホスト装置１００は、そのハードウェア構成として、ＣＰＵ１０１、ＬＡＮインタフェース（Ｉ／Ｆ）１０２、タッチパネル等の入力部１０３、液晶ディスプレイ等の表示部１０４、ＲＯＭ１０５、ＲＡＭ１０６および補助記憶装置１０７を備えている。ＣＰＵ１０１は、ＲＯＭ１０５または補助記憶装置１０７に記憶されたプログラムに従って、ホスト装置１００の動作を制御する。特に、ＣＰＵ１０１は、ＬＡＮインタフェース１０２を介して中継器２００との間で相互にデータ通信を行う。
【００２４】
中継器２００は、そのハードウェア構成として、ＣＰＵ２０１、ＬＡＮインタフェース（Ｉ／Ｆ）２０２、シリアルインタフェース（Ｉ／Ｆ）２０３、ＲＯＭ２０４、ＲＡＭ２０５および補助記憶装置２０６を備えている。ＣＰＵ２０１は、ＲＯＭ２０４または補助記憶装置２０６に記憶されたプログラムに従って、中継器２００の動作を制御する。特に、ＣＰＵ２０１は、ＬＡＮインタフェース２０２を介してホスト装置１００との間で相互にデータ通信を行うとともに、シリアルインタフェース２０３を介して周辺装置３００との間で相互にデータ通信を行う。
【００２５】
図３は、第１の実施形態によるホスト装置１００および中継器２００の機能構成例を示すブロック図である。図３に示すように、ホスト装置１００は、その機能構成として、データ送信部１１、送信成否情報受信部１２、動作状況情報取得部１３および通信ログ取得部１４を備えている。これらの各機能ブロック１１〜１４は、実際には図２に示したＣＰＵ１０１、ＲＯＭ１０５、ＲＡＭ１０６などを含むマイコンを備えて構成され、ＲＯＭ１０５または補助記憶装置１０７に記憶されたプログラムが動作することによって実現される。
【００２６】
また、中継器２００は、その機能構成として、データ受信部２１、データ転送部２２、送信成否情報返信部２３、通信ログ記憶部２４、動作状況情報受信部２５、動作状況情報記憶部２６、動作状況情報返信部２７および通信ログ返信部２８を備えている。これらの各機能ブロック２１〜２８は、実際には図２に示したＣＰＵ２０１、ＲＯＭ２０４、ＲＡＭ２０５などを含むマイコンを備えて構成され、ＲＯＭ２０４または補助記憶装置２０６に記憶されたプログラムが動作することによって実現される。
【００２７】
ホスト装置１００のデータ送信部１１は、周辺装置３００宛てのデータをＬＡＮ通信により中継器２００に送信する。周辺装置３００宛てのデータは、例えば周辺装置３００における所定の動作の実行を指示するための動作実行命令である。ホスト装置１００から中継器２００にデータ（動作実行命令）を送信する際には、データ送信部１１は、中継器２００から周辺装置３００にデータを転送することを指示する転送命令を送信する。この転送命令には、データ転送の指示と、送信するデータの内容（動作実行命令）とが含まれる。なお、以下では説明を簡略化するため、単に、ホスト装置１００から中継器２００に対してデータ（動作実行命令）を送信するといい、中継器２００から周辺装置３００に対してデータ（動作実行命令）を転送（または送信）するという。
【００２８】
中継器２００のデータ受信部２１は、ホスト装置１００から周辺装置３００宛てのデータをＬＡＮ通信のプロトコル（第１の通信プロトコルの一例）に則り受信する。データ転送部２２は、データ受信部２１により受信されたデータを周辺装置３００にシリアル通信のプロトコル（第２の通信プロトコルの一例）に則り送信（転送）する。送信成否情報返信部２３は、ホスト装置１００から送信されたデータに対する応答として、周辺装置３００に対するデータ送信（転送）の成否（データ送信が完了したか否か）を示す送信成否情報をホスト装置１００に返信する。この送信成否情報は、後述するように、通信ログ記憶部２４に記憶されている。
【００２９】
送信成否情報返信部２３は、中継器２００から周辺装置３００に対してデータを送信できた場合、ホスト装置１００に対して「送信完了」の送信成否情報を返信する。一方、中継器２００から周辺装置３００に対してデータを送信できなかった場合、送信成否情報返信部２３は、ホスト装置１００に対して「送信不能」の送信成否情報を返信する。中継器２００から周辺装置３００にデータを送信できない場合とは、例えば、中継器２００と周辺装置３００との間のシリアル通信ケーブルが良好に接続されていない場合や、周辺装置３００の電源が入っていない場合などによる通信障害や周辺装置３００にエラーやバッファフルなどの障害が生じている状態が考えられる。
【００３０】
通信ログ記憶部２４は、送信成否情報を通信ログとして記憶する。通信ログ記憶部２４は、ホスト装置１００と中継器２００との間の通信障害の有無によらず、データ受信部２１が次のデータを受信してデータ転送部２２がそのデータを周辺装置３００に送信しようとしたことの成否が確認されるまで、今回のデータに関する送信成否情報を通信ログとして記憶する。そして、データ転送部２２による周辺装置３００に対する次のデータの送信の成否が確認されたときに、当該次のデータに関する送信成否情報によって今回のデータに関する送信成否情報を上書きすることにより、通信ログを更新する。すなわち、通信ログ記憶部２４は、データ転送部２２が周辺装置３００に次のデータを送信しようとし、その送信が完了したこと、もしくは送信できずタイムアウトしたことを把握したタイミングで、当該次のデータに関する送信成否情報によって今回のデータに関する送信成否情報を上書きする。
【００３１】
動作状況情報受信部２５は、データ転送部２２がデータ（動作実行命令）を周辺装置３００に送信したことに対する応答として、周辺装置３００から送信されてくる動作状況情報を受信する。すなわち、周辺装置３００は、中継器２００から動作実行命令を受信すると、その動作実行命令に従って所定の動作を実行する。このとき、周辺装置３００が動作実行を正常に終了できた場合、周辺装置３００は中継器２００に対して「動作実行成功」を意味するＡｃｋ信号を送信する。一方、何らかの理由によって周辺装置３００が動作実行を正常に終了できなかった場合、周辺装置３００は中継器２００に対して「動作実行失敗」を意味するステータス情報を送信する。ステータス情報は、動作実行が失敗した理由に関する情報を含む。動作状況情報受信部２５は、Ａｃｋ信号またはステータス情報の何れかを動作状況情報として受信する。
【００３２】
動作状況情報記憶部２６は、動作状況情報受信部２５により受信された動作状況情報を記憶する。動作状況情報返信部２７は、ホスト装置１００からの要求に応じて、動作状況情報記憶部２６に記憶されている動作状況情報を返信する。動作状況情報記憶部２６は、動作状況情報返信部２７がホスト装置１００に対して動作状況情報を返信した時点で当該動作状況情報を削除する。このため、ホスト装置１００と中継器２００との間に通信障害が発生していない場合は、動作状況情報記憶部２６に記憶された動作状況情報は短時間のうちにホスト装置１００に送信され、削除される。一方、ホスト装置１００と中継器２００との間に通信障害が発生している場合は、その通信障害が復旧して動作状況情報返信部２７が動作状況情報をホスト装置１００に送信するまで、動作状況情報は動作状況情報記憶部２６に継続して記憶される。
【００３３】
ホスト装置１００の送信成否情報受信部１２は、データ送信部１１がデータ（動作実行命令）を中継器２００に送信したことに対する応答として、中継器の送信成否情報返信部２３から送信されてくる送信成否情報を受信する。ホスト装置１００では、この送信成否情報を中継器２００から受信することにより、中継器２００から周辺装置３００に対してデータが送信されたか否かを認識することが可能となる。
【００３４】
動作状況情報取得部１３は、中継器２００から周辺装置３００に対するデータ送信が完了したことを送信成否情報により確認した場合に、動作状況情報の取得を中継器２００に要求し、その応答として中継器２００の動作状況情報返信部２７から送信されてくる動作状況情報を取得する。ホスト装置１００では、この動作状況情報を中継器２００から取得することにより、ホスト装置１００から中継器２００を介して周辺装置３００に送信した動作実行命令に基づく動作が周辺装置３００において完了したか否か、完了していない場合はその理由を認識することが可能となる。
【００３５】
なお、動作状況情報取得部１３が動作状況情報の取得を中継器２００に要求した時点で、周辺装置３００の動作がまだ完了していない場合がある。この場合、中継器２００の動作状況情報記憶部２６には動作状況情報が記憶されていない。この場合、動作状況情報返信部２７は、動作状況情報取得部１３からの要求に対して「受信データなし」の応答を返信する。動作状況情報取得部１３は、「受信データなし」の応答を取得した場合、動作状況情報の取得を中継器２００に再度要求する。以降、中継器２００から動作状況情報を受信するまで以上のような動作を繰り返す。
【００３６】
ホスト装置１００と中継器２００との間に通信障害が発生していない場合は、以上の動作によって、ホスト装置１００による動作実行命令の送信から動作状況情報の取得までの一連の処理を問題なく実行することが可能である。一方、ホスト装置１００と中継器２００との間に通信障害が発生すると、以上の一連の処理が完了しない。例えば、ホスト装置１００から中継器２００に動作実行命令を送信する際に通信障害が発生している場合は、この間ではＬＡＮ通信を行っているために、ホスト装置１００は自身が送信した動作実行命令が中継器２００に届いていないと判断することができる。この場合、ホスト装置１００のデータ送信部１１は、動作実行命令を再送するなどの対応をとることができる。
【００３７】
これに対し、ホスト装置１００から中継器２００に動作実行命令を送信し終わった後にホスト装置１００と中継器２００との間で通信障害が発生した場合、ホスト装置１００は自身が送信した動作実行命令が中継器２００に届いていることを確認できているが、中継器２００から送信成否情報を取得することができない。そのため、ホスト装置１００では、中継器２００が周辺装置３００に動作実行命令を送り終えたかどうかを判断することができない。この場合、中継器２００が周辺装置３００に動作実行命令を送り終えたかどうかが不明であるため、ホスト装置１００は、中継器２００に動作実行命令を再送するといった対応をとることができない。
【００３８】
このような問題に対応するため、第１の実施形態では、ホスト装置１００に通信ログ取得部１４を設けるとともに、中継器２００に通信ログ記憶部２４および通信ログ返信部２８を設けている。ホスト装置１００の通信ログ取得部１４は、通信ログの取得を中継器２００に要求し、その応答として中継器２００から通信ログとして送信されてくる送信成否情報を取得する。中継器２００の通信ログ返信部２８は、ホスト装置１００からの要求に応じて、通信ログ記憶部２４に記憶されている送信成否情報を通信ログとして返信する。
【００３９】
通信ログ取得部１４は、次の２つのタイミングで通信ログの取得を要求する。第１のタイミングは、データ送信部１１がデータを送信する直前である。上述したように、中継器２００の通信ログ記憶部２４に記憶される送信成否情報は、データ受信部２１がホスト装置１００からデータを受信してデータ転送部２２がそのデータを周辺装置３００に送信しようとしたことの成否が確認される毎に更新される。従って、データ送信部１１が今回のデータを送信する直前のタイミングでは、通信ログ記憶部２４には、前回のデータ送信時に更新された送信成否情報が記憶されている。これにより、通信ログ取得部１４が第１のタイミングで通信ログの取得を要求することにより、前回のデータ送信時に中継器２００から周辺装置３００にデータが送信されたか否かを示す送信成否情報を取得することができる。
【００４０】
第２のタイミングは、データ送信部１１が送信したデータが中継器２００に届いたことを確認した後、その応答として送信成否情報が返信されてこない場合、すなわち、データ送信部１１が中継器２００にデータを送信してから、送信成否情報を受信することなく所定のタイムアウト時間が経過したタイミングである。この場合は、ホスト装置１００から中継器２００に動作実行命令を送信し終わった後に、ホスト装置１００と中継器２００との間に通信障害が発生している可能性がある。よって、通信ログ取得部１４は、今回のデータ送信に関する通信ログとして通信ログ記憶部２４に記憶されている送信成否情報を取得するために、通信ログの取得を中継器２００に要求する。
【００４１】
なお、第２のタイミングは、ホスト装置１００と中継器２００との間に通信障害が発生している状況であるため、通信ログ取得部１４が通信ログの取得要求を中継器２００に再送しても、それが中継器２００に届かない。この場合、ホスト装置１００は、自身が送信した通信ログの取得要求が中継器２００に届いていないと判断することができるので、通信ログの取得要求を再送する。発生している通信障害が一時的なものであれば、通信障害の復旧後に送信された通信ログの取得要求が中継器２００で受信される。これにより、今回のデータ送信に関する通信ログとして通信ログ記憶部２４に記憶されている送信成否情報が、通信ログ返信部２８によって中継器２００から返信されてくる。
【００４２】
ホスト装置１００では、第２のタイミングで通信ログ取得部１４により取得された送信成否情報により、中継器２００から周辺装置３００に対するデータ送信が完了していないことが確認された場合には、データ送信部１１によるデータ送信を再実行する。一方、第２のタイミングで通信ログ取得部１４により取得された送信成否情報により、中継器２００から周辺装置３００に対するデータ送信が完了したことが確認された場合には、動作状況情報取得部１３による動作状況情報の取得を実行する。
【００４３】
図４〜図６は、以上のように構成した第１の実施形態による通信ログ管理システムの動作例を示すフローチャートである。図４〜図６に示すフローチャートは何れも、ホスト装置１００において、周辺装置３００の動作実行を指示する操作が入力部１０３に対して行われたときに開始する。
【００４４】
図４は、ホスト装置１００と中継器２００との間に通信障害が発生していない場合の基本動作を示すものである。図４において、まず、ホスト装置１００の通信ログ取得部１４は、通信ログの取得を中継器２００に要求する（ステップＳ１）。この要求に応じて、中継器２００の通信ログ返信部２８は、通信ログ記憶部２４に記憶されている送信成否情報（前回のデータ送信に関するもの）を通信ログとしてホスト装置１００に返信する（ステップＳ２）。
【００４５】
ここで受信する送信成否情報は、上述したように、データ送信部１１が中継器２００にデータを前回送信したときに、中継器２００から周辺装置３００に対するデータ転送が完了したか否かを示す通信ログである。ここでは、「送信完了」を示す送信成否情報の受信により、前回はデータ転送が完了したことをホスト装置１００にて確認したものとする（ステップＳ３）。
【００４６】
なお、この時点で「送信不能」を示す送信成否情報を受信した場合は、前回のデータ送信時に中継器２００と周辺装置３００との間に通信障害などの障害が発生していて、データの転送が完了しないまま動作が終了している可能性がある。そこで、ホスト装置１００はエラーメッセージを表示部１０４に表示して、中継器２００と周辺装置３００との間における通信障害の状態を確認することをユーザに促すようにしてもよい。
【００４７】
上記ステップＳ３で、前回のデータ送信に関する送信成否情報が「送信完了」であることを確認した後、ホスト装置１００のデータ送信部１１は、周辺装置３００宛ての動作実行命令を中継器２００に送信する（ステップＳ４）。中継器２００のデータ受信部２１は、ホスト装置１００から送信された動作実行命令を受信する。また、データ転送部２２は、当該受信した動作実行命令を周辺装置３００に送信する（ステップＳ５）。
【００４８】
次いで、中継器２００の通信ログ記憶部２４は、周辺装置３００に対するデータ送信が完了したことを示す「送信完了」の送信成否情報を今回の通信ログとして記憶する（ステップＳ６）。そして、送信成否情報返信部２３は、通信ログ記憶部２４に記憶された「送信完了」の送信成否情報をホスト装置１００に返信する（ステップＳ７）。
【００４９】
上記ステップＳ５で中継器２００から送信された動作実行命令を受信した周辺装置３００では、当該動作実行命令に基づく動作を実行する（ステップＳ８）。そして、周辺装置３００は、その動作実行を正常に終了できたか否かに応じて、Ａｃｋ信号またはステータス情報の何れかの動作状況情報を中継器２００に送信する（ステップＳ９）。中継器２００の動作状況情報受信部２５は、周辺装置３００から送られてくる動作状況情報を受信する。そして、動作状況情報記憶部２６は、動作状況情報受信部２５により受信された動作状況情報を記憶する（ステップＳ１０）。
【００５０】
ホスト装置１００の動作状況情報取得部１３は、上記ステップＳ７で送信成否情報受信部１２が取得した送信成否情報により、中継器２００から周辺装置３００に対するデータ送信が完了したことを確認した場合、動作状況情報の取得を中継器２００に要求する（ステップＳ１１）。動作状況情報返信部２７は、ホスト装置１００からの要求に応じて、上記ステップＳ１０で動作状況情報記憶部２６に記憶された動作状況情報をホスト装置１００に送信する（ステップＳ１２）。この動作状況情報の送信後に、動作状況情報記憶部２６は、記憶されている動作状況情報を削除する（ステップＳ１３）。
【００５１】
なお、図４のフローチャートでは、ステップＳ１１で動作状況情報取得部１３が動作状況情報の取得要求を中継器２００に送信する前までに、周辺装置３００での動作実行が終了し、動作状況情報記憶部２６に動作状況情報が記憶されている例を示している。これに対し、ステップＳ１１で動作状況情報取得部１３が動作状況情報の取得要求を中継器２００に送信する前までに周辺装置３００での動作実行が終了していない場合は、上述のように、動作状況情報返信部２７は「受信データなし」の動作状況情報をホスト装置１００に送信する。これを受けて動作状況情報取得部１３は、Ａｃｋ信号またはステータス情報の動作状況情報を取得するまで、動作状況情報の取得要求を中継器２００に繰り返し送信する。
【００５２】
図５は、ホスト装置１００から中継器２００に動作実行命令を送信し終わった後にホスト装置１００と中継器２００の間で通信障害が発生した場合の動作例を示すフローチャートである。図５の例では、中継器２００と周辺装置３００との間に通信障害は発生していない場合の動作を示している。なお、図５において、図４に示した処理と同様の内容の処理には同じステップ番号を付している。以下、図４と相違する部分を中心に動作を説明する。
【００５３】
図５において、ステップＳ１〜Ｓ１０の処理は、図４と同様である。ただし、ステップＳ４でホスト装置１００から中継器２００に動作実行命令を送信し終わった後に、ホスト装置１００と中継器２００との間に通信障害が発生したため、ステップＳ７で中継器２００の送信成否情報返信部２３が送信した送信成否情報は、ホスト装置１００の送信成否情報受信部１２で受信されない。
【００５４】
この場合、ステップＳ４でデータ送信部１１が中継器２００に動作実行命令を送信してから、送信成否情報を受信することなく所定のタイムアウト時間が経過するので、タイムアウト時間が経過したタイミングで、通信ログ取得部１４は通信ログの取得を中継器２００に要求する（ステップＳ１４）。この通信ログの取得要求は、ホスト装置１００と中継器２００との間の一時的な通信障害が復旧するまで繰り返される。
【００５５】
通信障害の復旧後に、中継器２００の通信ログ返信部２８が通信ログの取得要求を受信すると、通信ログ返信部２８は、ステップＳ６で通信ログ記憶部２４に記憶された送信成否情報をホスト装置１００に返信する（ステップＳ１５）。図５の例では、中継器２００との周辺装置３００との間に通信障害は発生していなので、通信ログ記憶部２４には「送信完了」の送信成否情報が記憶されている。よって、通信ログ返信部２８は、この「送信完了」の送信成否情報をホスト装置１００に返信する。
【００５６】
ホスト装置１００では、通信ログ取得部１４により取得された「送信完了」の送信成否情報により、ステップＳ４でホスト装置１００から中継器２００に送信された動作実行命令が周辺装置３００に転送されていることを確認する（ステップＳ１６）。この場合、動作実行命令を再度送信することは不要であるため、ステップＳ１１に進んで動作状況情報取得部１３による動作状況情報の取得要求を実行する。以下、ステップＳ１１〜Ｓ１３の処理は、図４と同様である。
【００５７】
図６も、ホスト装置１００から中継器２００に動作実行命令を送信し終わった後に通信障害が発生した場合の動作例を示すフローチャートである。ただし、図６の例では、中継器２００と周辺装置３００との間にも通信障害が発生している場合の動作を示している。なお、図６において、図４および図５に示した処理と同様の内容の処理には同じステップ番号を付している。また、図６において、同じステップ番号で「’」の記号を付したものは、同じ処理が再実行されたことを意味している。以下、図４および図５と相違する部分を中心に動作を説明する。
【００５８】
図６において、ステップＳ１〜Ｓ１０の処理は、図４と同様である。ただし、中継器２００と周辺装置３００との間に通信障害が発生しているため、ステップＳ５で中継器２００のデータ転送部２２が送信した動作実行命令は、周辺装置３００で受信されない。このため、中継器２００と周辺装置３００との間の通信障害が復旧して、ステップＳ５’で中継器２００から再送された動作実行命令が周辺装置３００で受信されるまでの間、ステップＳ８における周辺装置３００での動作実行の開始が遅延している。また、ステップＳ６では、ホスト装置１００から受信した動作実行命令が破棄されるとともに、「送信不能」の送信成否情報が通信ログ記憶部２４に記憶され、ステップＳ７ではその「送信不能」の送信成否情報がホスト装置１００に送信されている。
【００５９】
また、図６の例では、ステップＳ４でホスト装置１００から中継器２００に動作実行命令を送信し終わった後に、ホスト装置１００と中継器２００との間に通信障害が発生したため、ステップＳ７で中継器２００の送信成否情報返信部２３が送信した「送信不能」の送信成否情報は、ホスト装置１００の送信成否情報受信部１２で受信されない。このため、図６の例でも図５に示したステップＳ１４〜Ｓ１６と同様の処理を実行することにより、通信ログ取得部１４が中継器２００から送信成否情報の通信ログを取得する。図６の例で取得される送信成否情報は、「送信不能」を示すものである。
【００６０】
ホスト装置１００では、通信ログ取得部１４により取得された「送信不能」の送信成否情報により、ステップＳ４でホスト装置１００から中継器２００に送信された動作実行命令が周辺装置３００に転送されていないことを確認する（ステップＳ１６）。この場合、データ送信部１１は、中継器２００に対する動作実行命令の送信を再実行する（ステップＳ４’）。以下、ステップＳ４’〜Ｓ７’において、上記ステップＳ４〜Ｓ７と同様の処理が再実行される。このとき、中継器２００と周辺装置３００との間の通信障害が復旧しているので、ステップＳ７’で送信成否情報返信部２３が送信する送信成否情報は、「送信完了」を示すものに変わっている。以下、ステップＳ８〜Ｓ１３の処理は、図４と同様である。
【００６１】
以上詳しく説明したように、第１の実施形態では、ホスト装置１００に通信ログ取得部１４を設けるとともに、中継器２００に通信ログ記憶部２４および通信ログ返信部２８を設け、中継器２００から周辺装置３００に対するデータ送信の成否を示す送信成否情報を通信ログとして通信ログ記憶部２４に記憶し、ホスト装置１００の通信ログ取得部１４からの要求に応じて当該通信ログを通信ログ返信部２８が返信するようにしている。
【００６２】
このように構成した第１の実施形態によれば、ホスト装置１００と中継器２００との間に通信障害が発生していない場合には、ホスト装置１００から中継器２００にデータを送信した後に中継器２００から返信されてくる送信成否情報に基づいて、中継器２００から周辺装置３００にデータを送信し終わったか否かを確認することができる。一方、ホスト装置１００から中継器２００にデータを送信し終わった後にホスト装置１００と中継器２００との間に通信障害が発生した場合でも、その通信障害の復旧後に、中継器２００において通信ログとして記憶しておいた送信成否情報をホスト装置１００が中継器２００から取得することができるので、通信障害が発生する前にホスト装置１００から中継器２００に送信したデータを中継器２００が周辺装置３００に送り終えていたかどうかをホスト装置１００にて判断することができる。これにより、ホスト装置１００では、データを再送信するか、動作状況情報の取得を要求するか、どちらかを選択して適切な処理を実行することができる。
【００６３】
また、上記第１の実施形態では、データ受信部２１がホスト装置１００からデータを受信してデータ転送部２２がそのデータを周辺装置３００に送信しようとしたことの成否が確認されるタイミング毎に通信ログ記憶部２４の通信ログ（送信成否情報）を上書きし、上書きの都度ホスト装置１００が通信ログを取得できるようにしている。このため、過去の複数回にわたるデータ送信に関する送信成否情報を蓄積していく必要がなく、最新の送信成否情報のみを記憶すればよいので、中継器２００に必要とされるメモリ容量を少なくすることができる。
【００６４】
また、上記第１の実施形態では、中継器２００はホスト装置１００からの要求に応じて通信ログを返信しているため、ホスト装置１００がクライアントで中継器２００がサーバの関係となる。要求なく中継器２００から通信ログを送信するためには、ホスト装置１００にさらにサーバ機能を持たせ中継器２００がクライアントとなるか、あるいは中継器２００に対してサーバの関係となる新たな装置を設ける必要がある。このように、中継器２００が通信ログを自発的に送信する構成ではないため、システムを簡易化できる。
【００６５】
また、上記第１の実施形態によれば、中継器２００から周辺装置３００に対するデータ送信の成否を示す送信成否情報と、周辺装置３００における動作実行の結果を示す動作状況情報とを、ホスト装置１００と中継器２００との間の通信障害の有無に関わらずホスト装置１００で取得することができる。そのため、ホスト装置１００は、ホスト装置１００からの動作実行命令が周辺装置３００に送信され実行されたか否か、および、実行されなかった場合には、原因となる問題の発生箇所（中継器２００と周辺装置３００との間の通信障害か、周辺装置３００自体に問題が生じたか）を把握することができる。
【００６６】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。第２の実施形態による通信ログ管理システムの全体構成は、図１と同様である。ただし、ホスト装置１００に代えてこれとは機能が一部異なるホスト装置１００’を用いるとともに、中継器２００に代えてこれとは機能が一部異なる中継器２００’を用いる。第２の実施形態は、第１の実施形態で説明した通信ログに加えて第２の通信ログを中継器２００’に記憶し、この第２の通信ログもホスト装置１００’にて取得できるようにしたものである。
【００６７】
図７は、第２の実施形態によるホスト装置１００’および中継器２００’の機能構成例を示すブロック図である。なお、この図７において、図３に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図７に示すように、ホスト装置１００’は、通信ログ取得部１４に代えて通信ログ取得部１４’を備えている。また、中継器２００’は、通信ログ返信部２８に代えて通信ログ返信部２８’を備えるとともに、第２の通信ログ記憶部２９を更に備えている。
【００６８】
中継器２００’の第２の通信ログ記憶部２９は、動作状況情報受信部２５が動作状況情報を周辺装置３００から受信したか否か（動作状況情報記憶部２６に動作状況情報が記憶されているか否か）を示す受信有無情報を第２の通信ログとして記憶する。上述したように、周辺装置３００では、中継器２００’から動作実行命令を受信すると、その動作実行命令に従って所定の動作を実行する。そして、その動作を正常に終了できたか否かに応じて、Ａｃｋ信号またはステータス情報を動作状況情報として送信する。動作状況情報受信部２５は、この動作状況情報を受信する。
【００６９】
周辺装置３００が中継器２００’から動作実行命令を受信していない状況では、動作状況情報記憶部２６に動作状況情報は記憶されていない。この場合、第２の通信ログ記憶部２９は、「受信データなし」を示す受信有無情報を第２の通信ログとして記憶する。また、周辺装置３００が動作実行命令を受信して動作実行を開始したが、その動作実行がまだ完了しない状況でも、動作状況情報受信部２５が周辺装置３００から動作状況情報を受信していないため、動作状況情報記憶部２６に動作状況情報は記憶されていない。この場合も、第２の通信ログ記憶部２９は、「受信データなし」を示す受信有無情報を第２の通信ログとして記憶する。
【００７０】
これに対して、周辺装置３００の動作実行が終了し、動作状況情報受信部２５が周辺装置３００から動作状況情報を受信して動作状況情報記憶部２６に記憶させると、第２の通信ログ記憶部２９は、「受信データあり」を示す受信有無情報を第２の通信ログとして記憶する。その後、動作状況情報記憶部２６に記憶された動作状況情報を動作状況情報返信部２７がホスト装置１００’に送信すると、動作状況情報記憶部２６に記憶されている動作状況情報が削除される。この時点で第２の通信ログ記憶部２９は、第２の通信ログの受信有無情報を「受信データあり」から「受信データなし」に更新する。
【００７１】
通信ログ返信部２８’は、ホスト装置１００’からの要求に応じて、通信ログ記憶部２４に記憶されている通信ログ（送信成否情報）および第２の通信ログ記憶部２９に記憶されている第２の通信ログ（受信有無情報）をホスト装置１００’に返信する。ホスト装置１００’の通信ログ取得部１４’は、通信ログの取得を中継器２００’に要求し、その応答として中継器２００’から送信されてくる送信成否情報および受信有無情報を取得する。
【００７２】
ホスト装置１００’では、第２のタイミングで通信ログ取得部１４’により取得された送信成否情報および受信有無情報により、中継器２００’から周辺装置３００に対するデータ送信が完了しておらず、かつ、周辺装置３００から中継器２００’に対する動作状況情報の受信がない（動作状況情報記憶部２６に動作状況情報が記憶されていない）ことが確認された場合には、データ送信部１１によるデータ送信を実行する。一方、中継器２００’から周辺装置３００に対するデータ送信が完了し、かつ、受信有無情報により動作状況情報の受信があることが確認された場合には、動作状況情報取得部１３による動作状況情報の取得を実行する。
【００７３】
図８〜図１０は、以上のように構成した第２の実施形態による通信ログ管理システムの動作例を示すフローチャートである。なお、図８〜図１０は、それぞれ図４〜図６に対応するものである。すなわち、図８は、ホスト装置１００’と中継器２００’との間に通信障害が発生していない場合の基本動作を示し、図９は、ホスト装置１００’と中継器２００’との間にのみ通信障害が発生している場合の動作を示し、図１０は、ホスト装置１００’と中継器２００’との間および中継器２００’と周辺装置３００との間に通信障害が発生している場合の動作を示す。
【００７４】
図８〜図１０では、ステップ番号の符号として「Ｐ」を用いるが、図４〜図６において「Ｓ」の符号で示すステップ番号と同じ番号を付した処理は互いに同様の処理であることを意味する。また、図８〜図１０においても、同じステップ番号で「’」の記号を付したものは、同じ処理が再実行されたことを意味している。図８〜図１０において、「ログ１」と記載しているのは送信成否情報を意味し、「ログ２」と記載しているのは受信有無情報を意味する。図８〜図１０に示すフローチャートは何れも、ホスト装置１００’において、周辺装置３００の動作実行を指示する操作が入力部１０３に対して行われたときに開始する。以下、第１の実施形態と相違する部分を中心に動作を説明する。
【００７５】
まず、図８のフローチャートについて説明する。ここでは、図４と相違する部分を中心に説明する。図８において、ステップＰ２で中継器２００’の通信ログ返信部２８’は、ホスト装置１００’の通信ログ取得部１４’からの要求に応じて、通信ログ記憶部２４に記憶されている送信成否情報（前回のデータ送信に関するもの）および第２の通信ログ記憶部２９に記憶されている受信有無情報（前回のデータ送信に関するもの）をホスト装置１００’に返信する。
【００７６】
通信障害がなく前回のデータ送信が完了し、ホスト装置１００’による動作状況情報の取得まで終わっている場合、送信成否情報は「送信完了」、受信有無情報は「受信データなし」となっている。ここで、「送信完了」を示す送信成否情報および「受信データなし」を示す受信有無情報の受信により、前回のデータ送信および周辺装置３００での動作実行が完了していることをホスト装置１００’にて確認すると（ステップＰ３）、処理はステップＰ４以降へと進む。ステップＰ４〜Ｐ１３の処理は、図４に示したステップＳ４〜Ｓ１０の処理と同様である。
【００７７】
第２の実施形態では、ステップＰ１０の後にステップＰ２１の処理が、ステップＰ１３の後にステップＰ２２の処理がそれぞれ挿入されている。ステップＰ２１において、第２の通信ログ記憶部２９は、ステップＰ９で動作状況情報受信部２５が周辺装置３００から動作状況情報を受信しステップＳ１０で動作状況情報記憶部２６が動作状況情報を記憶したことを受けて、第２の通信ログとして「受信データあり」の受信有無情報を記憶する。また、ステップＰ２２において、第２の通信ログ記憶部２９は、ステップＰ１３で動作状況情報記憶部２６が動作状況情報を削除したことを受けて、第２の通信ログとしての受信有無情報を「受信データなし」に変更する。
【００７８】
次に、図９のフローチャートについて説明する。ここでは、図５と相違する部分を中心に説明する。図９において、ステップＰ１〜Ｐ１６（ステップＰ２，Ｐ１５，Ｐ１６を除く）の処理は、図５のステップＳ１〜Ｓ１６（ステップＳ２，Ｓ１５，Ｓ１６を除く）の処理と同様である。また、ステップＰ１０の後にステップＰ２１の処理が、ステップＰ１３の後にステップＰ２２の処理がそれぞれ挿入される点は、図８と同様である。
【００７９】
図９に示すステップＰ２の処理は、図８のステップＰ２の処理と同様である。すなわち、中継器２００’の通信ログ返信部２８’は、第１のタイミングでホスト装置１００’の通信ログ取得部１４’から送信される要求に応じて、前回のデータ送信に関する送信成否情報（「送信完了」を示す通信ログ）および受信有無情報（「受信データなし」を示す第２の通信ログ）をホスト装置１００’に返信する。
【００８０】
また、ステップＰ１５において、中継器２００’の通信ログ返信部２８’は、第２のタイミングでホスト装置１００’の通信ログ取得部１４’から送信される要求に応じて、今回のデータ送信に関する送信成否情報（「送信完了」を示す通信ログ）および受信有無情報（「受信データあり」を示す第２の通信ログ）をホスト装置１００’に返信する。ここで、送信成否情報が「送信完了」、受信有無情報が「受信データあり」となっているのは、ホスト装置１００’から中継器２００’を介して周辺装置３００に送信された動作実行命令に応じて周辺装置３００が動作を実行し、動作状況情報が周辺装置３００から中継器２００’に送信されて動作状況情報記憶部２６に記憶されているからである。
【００８１】
この場合、ホスト装置１００’では、「送信完了」の送信成否情報および「受信データあり」の受信有無情報により、中継器２００’から周辺装置３００に対するデータ送信が完了していて、かつ、周辺装置３００から中継器２００’に対する動作状況情報の受信があることを確認すると（ステップＰ１６）、処理はステップＰ１１以降へと進む。ステップＰ１１〜Ｐ１３，Ｐ２２の処理は、図８に示したステップＰ１１〜Ｐ１３，Ｐ２２の処理と同様である。
【００８２】
次に、図１０のフローチャートについて説明する。ここでは、図６と相違する部分を中心に説明する。図１０において、ステップＰ１〜Ｐ１６（ステップＰ２，Ｐ１５，Ｐ１６を除く）の処理は、図６のステップＳ１〜Ｓ１６（ステップＳ２，Ｓ１５，Ｓ１６を除く）の処理と同様である。また、ステップＰ１０の後にステップＰ２１の処理が、ステップＰ１３の後にステップＰ２２の処理がそれぞれ挿入される点は、図８と同様である。
【００８３】
図１０に示すステップＰ２の処理は、図８のステップＰ２の処理と同様である。すなわち、中継器２００’の通信ログ返信部２８’は、第１のタイミングでホスト装置１００’の通信ログ取得部１４’から送信される要求に応じて、前回のデータ送信に関する送信成否情報（「送信完了」を示す通信ログ）および受信有無情報（「受信データなし」を示す第２の通信ログ）をホスト装置１００’に返信する。
【００８４】
また、ステップＰ１５において、中継器２００’の通信ログ返信部２８’は、第２のタイミングでホスト装置１００’の通信ログ取得部１４’から送信される要求に応じて、今回のデータ送信に関する送信成否情報（「送信不能」を示す通信ログ）および受信有無情報（「受信データなし」を示す第２の通信ログ）をホスト装置１００’に返信する。ここで、送信成否情報が「送信不能」、受信有無情報が「受信データなし」となっているのは、ホスト装置１００’から中継器２００’に送信した動作実行命令を周辺装置３００に送信することができず、動作実行命令に応じた動作が周辺装置３００にて実行されていないからである。
【００８５】
この場合、ホスト装置１００’では、「送信不能」の送信成否情報および「受信データなし」の受信有無情報により、中継器２００’から周辺装置３００に対するデータ送信が完了しておらず、かつ、周辺装置３００から中継器２００’に対する動作状況情報の受信がないことを確認すると（ステップＰ１６）、処理はステップＰ４’以降へと進む。ステップＰ４’〜Ｐ１３，Ｐ２１，Ｐ２２の処理は、図６に示したステップＳ４’〜Ｓ１３および図８に示したステップＰ２１，Ｐ２２の処理と同様である。
【００８６】
以上詳しく説明したように、第２の実施形態では、ホスト装置１００’に通信ログ取得部１４’を設けるとともに、中継器２００’に通信ログ記憶部２４、第２の通信ログ記憶部２９および通信ログ返信部２８’を設け、中継器２００’から周辺装置３００に対するデータ送信の成否を示す送信成否情報と、周辺装置３００からの動作状況情報の受信の有無を示す受信有無情報とを通信ログ記憶部２４および第２の通信ログ記憶部２９に記憶し、ホスト装置１００’の通信ログ取得部１４’からの要求に応じて当該送信成否情報および受信有無情報を通信ログ返信部２８’が返信するようにしている。
【００８７】
上述した第１の実施形態では、通信ログ取得部１４が通信ログとして中継器２００から取得した送信成否情報が「送信完了」を示しているか「送信不能」を示しているかに応じて、動作状況情報取得部１３による動作状況情報の取得から処理を続行するか、データ送信部１１によるデータ送信から再実行するかを決めていた。この場合、送信成否情報が「送信完了」であることを確認して、動作状況情報取得部１３が動作状況情報の取得を中継器２００に要求していた。すなわち、中継器２００が周辺装置３００から実際に動作状況情報を受信済みであるかどうかが不明な状態で、動作状況情報の取得を中継器２００に要求していた。
【００８８】
これに対し、上記のように構成した第２の実施形態によれば、通信ログ取得部１４’により中継器２００’から取得された受信有無情報が「受信データあり」となっていることを確認して、動作状況情報取得部１３が動作状況情報の取得を中継器２００’に要求している。これにより、中継器２００’に動作状況情報が記録されているかどうかが不明な状態で動作状況情報の取得を中継器２００’に要求することをなくすことができる。その他、第２の実施形態においても第１の実施形態と同様の効果を奏することが可能である。
【００８９】
なお、ホスト装置１００’から中継器２００’に動作実行命令を送信し、その応答としてホスト装置１００’が中継器２００’から送信成否情報を受信するまでは通信障害がなく、ホスト装置１００’から中継器２００’に動作状況情報の取得要求を送信した後に、ホスト装置１００’と中継器２００’との間に通信障害が発生することもあり得る。図１１は、この場合の動作を示すフローチャートである。
【００９０】
図１１において、ステップＰ１〜Ｐ１２，Ｐ２１の処理は、図８と同様である。ただし、ステップＰ１１でホスト装置１００’から中継器２００’に動作状況情報の取得を要求し終わった後に、ホスト装置１００’と中継器２００’との間に通信障害が発生したため、ステップＰ１２で中継器２００’の動作状況情報返信部２７が送信した動作状況情報は、ホスト装置１００’の動作状況情報取得部１３で受信されない。この場合は、この時点からステップＰ１４以降の処理が実行される。ステップＰ１４以降の処理は、図９と同様である。
【００９１】
なお、ここでは、第２の実施形態による通信ログ管理システムにおいて、ホスト装置１００’から中継器２００’に動作状況情報の取得を要求し終わった後に通信障害が発生した場合の動作例を示したが、第１の実施形態による通信ログ管理システムにおいて、ホスト装置１００から中継器２００に動作状況情報の取得を要求し終わった後に通信障害が発生した場合にも同様に適用することが可能である。
【００９２】
上記第１および第２の実施形態では、データ送信部１１によるデータ送信の直前である第１のタイミングと、データ送信部１１が中継器２００にデータを送信してから送信成否情報を受信することなくタイムアウト時間が経過した第２のタイミング（図１１の場合は、動作状況情報取得部１３が中継器２００’に動作状況情報の取得要求を送信してから動作状況情報を受信することなくタイムアウト時間が経過したタイミング）とにおいて通信ログ（第２の実施形態の場合は第２の通信ログを含む）の取得を要求する例について説明したが、第２のタイミングのみとしてもよい。また、第１のタイミングおよび第２のタイミングに加えて、任意のタイミングで通信ログの取得を要求するようにしてもよい。
【００９３】
また、上記第１および第２の実施形態では、データ受信部２１がホスト装置１００，１００’からデータを受信してデータ転送部２２がそのデータを周辺装置３００に送信しようとしたことの成否が確認されるタイミング毎に通信ログ記憶部２４の通信ログ（送信成否情報）を上書きする例について説明したが、本発明はこれに限定されない。例えば、第２の通信ログ記憶部２９に記憶する第２の通信ログ（受信有無情報）と同様に、中継器２００，２００’からホスト装置１００，１００’に送信成否情報を送信した時点で削除するようにしてもよい。
【００９４】
ただし、上記実施形態のように構成することにより、通信ログ記憶部２４から送信成否情報をわざわざ削除する処理を省くことでき、処理負荷を軽減できる点で好ましい。また、中継器２００，２００’からホスト装置１００，１００’に対する送信成否情報の送信が完了したか否かを確認して削除することが好ましいが、この確認を確実に行うことができない場合もあるため、送信成否情報返信部２３が送信成否情報をホスト装置１００，１００’に送信する都度削除するのではなく、データ受信部２１が次のデータを受信してデータ転送部２２がそのデータを周辺装置３００に送信しようとしたことの成否が確認されたときに生成される送信成否情報で上書きするのが好ましい。
【００９５】
また、ホスト装置１００，１００’と中継器２００，２００’とがWebSocketと呼ばれる技術を使ってデータ通信を行っている場合も、上記第１および第２の実施形態を適用することが可能である。WebSocketは、ウェブアプリケーションにおいて双方向通信を実現するための技術規格である。WebSocketによるデータ通信では、最初に接続を確立するために、クライアント側がまずハンドシェイク要求を送り、サーバ側はハンドシェイク応答を返す。接続が確立されるまではクライアント−サーバの関係があるが、接続が確立された後は双方向通信が可能となる。このようなWebSocketを使ってホスト装置１００，１００’と中継器２００，２００’とがデータ通信を行っている場合にも、本実施形態のように中継器２００，２００’に通信ログを記憶することで、通信途中に障害が発生した場合においても、次回接続時に通信ログを確認することにより、直前の通信が成立したか否かを判断することが可能である。
【００９６】
また、上記第２の実施形態において、送信成否情報および受信有無情報に加え、ホスト装置１００’から中継器２００’に送信された動作実行命令の受信の有無を示す「送信データ有無情報」を第３の通信ログとして中継器２００’に記憶するようにしてもよい。この場合、図８に示すフローチャートにおいて、中継器２００’のデータ受信部２１がホスト装置１００’から動作実行命令を受信すると（ステップＰ４）、「送信データあり」を示す送信データ有無情報を中継器２００’に記憶する。その後、動作実行命令が周辺装置３００に送信され（ステップＰ５）、その送信が完了すると、ステップＰ６のタイミングで送信データ有無情報を「送信データなし」に書き換える。ステップＰ５において中継器２００’から周辺装置３００に動作実行命令を送信できなかった場合は、中継器２００’はその動作実行命令を破棄し、ステップＰ６のタイミングで送信データ有無情報を「送信データなし」に書き換える。ステップＰ２では、送信成否情報および受信有無情報に送信データ有無情報を加えた３つの通信ログを中継器２００’からホスト装置１００’に返信する。
【００９７】
このように送信データ有無情報を第３の通信ログとして併用することにより、送信データの流れをホスト装置１００’にてより詳細に把握することが可能となる。
【００９８】
また、上記第１および第２の実施形態では、第１の通信プロトコルの例としてＬＡＮ通信のプロトコル、第２の通信プロトコルの例としてシリアル通信のプロトコルを挙げて説明したが、本発明はこれに限定されない。すなわち、ホスト装置１００，１００’と周辺装置３００との間で異なるプロトコルの通信を仲介する中継器を持つシステムであれば、本発明を適用することが可能である。例えば、第２の通信プロトコルの別の例として、有線または無線によるＵＳＢ（Universal Serial Bus）やＢｌｕｅｔｏｏｔｈ（登録商標）などを用いてもよい。
【００９９】
その他、上記第１および第２の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１００】
１１  データ送信部
１２  送信成否情報受信部
１３  動作状況情報取得部
１４，１４’  通信ログ取得部
２１  データ受信部
２２  データ転送部
２３  送信成否情報返信部
２４  通信ログ記憶部
２５  動作状況情報受信部
２６  動作状況情報記憶部
２７  動作状況情報返信部
２８，２８’  通信ログ返信部
２９  第２の通信ログ記憶部
１００，１００’  ホスト装置
２００，２００’  中継器
３００  周辺装置
【図１】
2020123129.tif 000003
【図２】
2020123129.tif 000004
【図３】
2020123129.tif 000005
【図４】
2020123129.tif 000006
【図５】
2020123129.tif 000007
【図６】
2020123129.tif 000008
【図７】
2020123129.tif 000009
【図８】
2020123129.tif 000010
【図９】
2020123129.tif 000011
【図１０】
2020123129.tif 000012
【図１１】
2020123129.tif 000013