(57)【要約】      （修正有）【課題】生産に関する情報に付帯する時刻情報を精度よく補正するすることが可能な情報管理システム、時刻情報補正方法及び時刻情報補正プログラムを提供する。【解決手段】生産管理装置の時差算出部２８は、生産装置から送信されるタイムスタンプを取得するとともに、タイムスタンプを取得したときに生産管理装置の内蔵時計が示す時刻情報を計時部２６から取得し、取得した情報に基づいて、生産装置の内蔵時計と生産管理装置の内蔵時計との時差を算出し、算出した時差を生産装置の装置ＩＤと対応付けて時差ＤＢ４６に格納する。また、情報処理部３０は、生産装置から送信される情報（ログ情報）を利用する際に、時差ＤＢ４６から時差を読み出し、読み出した時差を用いて、利用するログ情報に付帯する時刻情報を補正する。【選択図】図３
2018138898.tif 000002
【特許請求の範囲】
【請求項１】
生産に関する情報を送信する第１機器と、
前記第１機器から受信した情報を管理する情報管理装置と、を備え、
前記情報管理装置は、
前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記情報管理装置の内蔵時計が示す時刻情報を取得する取得部と、
前記取得部が取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記情報管理装置の内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶する第１処理部と、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する補正部と、を有することを特徴とする情報管理システム。
【請求項２】
前記情報管理装置は、
機器の識別情報と対応付けて前記機器の配置位置を示す配置情報及び前記機器が送信する時刻情報が正確か否かの情報が格納された格納部を参照して、送信する時刻情報が正確な第２機器と該第２機器と配置位置が同一又は類似する機器を特定する特定部と、
前記第２機器の内蔵時計が示す時刻情報と、該時刻情報を取得したときに前記情報管理装置の内蔵時計が示す時刻情報とに基づいて、前記情報管理装置と前記第２機器との間の遅延時間を算出し、算出した遅延時間を前記第２機器及び該第２機器と配置位置が同一又は類似する機器の識別情報と対応付けて第２記憶部に記憶する第２処理部と、を更に有し、
前記第１処理部は、
前記第２記憶部から前記第１機器の遅延時間を読み出し、
読み出した前記遅延時間と前記取得部が取得した時刻情報とに基づいて、前記第１機器の内蔵時計と前記情報管理装置の内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて前記第１記憶部に記憶する、ことを特徴とする請求項１に記載の情報管理システム。
【請求項３】
生産に関する情報を送信する第１機器と、
前記第１機器から通信網を経由して受信した情報を管理する情報管理装置と、
前記第１機器と前記通信網との間に配置され、前記第１機器から前記情報管理装置に向けて送信された前記第１機器の内蔵時計が示す時刻情報を受信すると、該時刻情報に正確な時刻情報を付与して前記情報管理装置に送信する中継装置と、を備え、
前記情報管理装置は、
前記第１機器の内蔵時計が示す時刻情報と前記正確な時刻情報との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて記憶部に記憶する処理部と、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記記憶部から前記第１機器に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、ことを特徴とする情報管理システム。
【請求項４】
第１機器から受信した生産に関する情報を管理するコンピュータが、
前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記コンピュータの内蔵時計が示す時刻情報を取得し、
前記取得する処理において取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記コンピュータの内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶し、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、
処理を実行することを特徴とする時刻情報補正方法。
【請求項５】
第１機器から受信した生産に関する情報を管理するコンピュータに、
前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記コンピュータの内蔵時計が示す時刻情報を取得し、
前記取得する処理において取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記コンピュータの内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶し、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、
処理を実行させるための時刻情報補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報管理システム、時刻情報補正方法及び時刻情報補正プログラムに関する。
【背景技術】
【０００２】
近年、工場などの生産現場において、ＩｏＴ（Internet of Things）化が進行している。例えば、多数の生産装置において取得された生産状況の情報をネットワークを介して生産管理装置に集約し、集約した情報を生産管理装置がビックデータ解析し、解析結果を出力するサービスが提案されつつある。
【０００３】
一方、生産装置は、設備投資の抑制のため長期間にわたって使用されることが多い。このため、生産装置には、最新のネットワーク機能に対応していない通信規格（例えばＲＳ（Recommended Standard）−２３２Ｃ、ＧＰＩＢ（General Purpose Interface Bus）など）を用いて情報を送受信する装置も含まれる。このような生産装置は、Network Time Protocolのような時刻同期機能を持たない場合が多い。また、セキュリティの観点から、外部のネットワークから切り離した状態で生産装置を稼働させることもあり、この場合には、時刻同期機能のために通信ポートが開放されていない。
【０００４】
したがって、各生産装置の中には、内蔵時計が示す時刻が正確でない装置が含まれる場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２１６０４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
生産管理装置がネットワークを介して情報を集約する場合、生産装置は、各情報に、生産装置の識別情報や、情報を取得した時刻の情報を付帯して生産管理装置に送信する。そして、生産管理装置は、時刻情報をインデックスとして情報をソートしたり、イベント発生の分析を行う。この場合、内蔵時計が正確でない生産装置から送信された情報は、そのままではソートやイベント発生の分析を精度よく行うことができないおそれがある。
【０００７】
１つの側面では、本発明は、生産に関する情報に付帯する時刻情報を精度よく補正することが可能な情報管理システム、時刻情報補正方法及び時刻情報補正プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、情報管理システムは、生産に関する情報を送信する第１機器と、前記第１機器から受信した情報を管理する情報管理装置と、を備え、前記情報管理装置は、前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記情報管理装置の内蔵時計が示す時刻情報を取得する取得部と、前記取得部が取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記情報管理装置の内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶する第１処理部と、前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する補正部と、を有する情報管理システムである。
【発明の効果】
【０００９】
生産に関する情報に付帯する時刻情報を精度よく補正することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る情報管理システムの構成を概略的に示す図である。
【図２】図１の生産管理装置のハードウェア構成を示す図である。
【図３】生産管理装置の機能ブロック図である。
【図４】図４（ａ）は、情報ＤＢのデータ構造を示す図であり、図４（ｂ）は、タイムスタンプのデータ構造を示す図であり、図４（ｃ）は、生産装置ＤＢのデータ構造を示す図である。
【図５】図５（ａ）は、遅延時間ＤＢのデータ構造を示す図であり、図５（ｂ）は、時差ＤＢのデータ構造を示す図である。
【図６】受信部の処理を示すフローチャートである。
【図７】遅延時間算出部の処理を示すフローチャートである。
【図８】時差算出部の処理を示すフローチャートである。
【図９】情報処理部の処理を示すフローチャートである。
【図１０】時差の算出方法及び利用方法を説明するための模式図である。
【図１１】第１の実施形態の変形例を示す図である。
【図１２】第２の実施形態に係る情報管理システムの構成を概略的に示す図である。
【図１３】図１３（ａ）は、第２の実施形態に係るタイムスタンプのデータ構造を示す図であり、図１３（ｂ）は、時差の算出方法及び利用方法を説明するため模式図である。
【発明を実施するための形態】
【００１１】
≪第１の実施形態≫
以下、情報管理システムの第１の実施形態について、図１〜図１０に基づいて詳細に説明する。図１には、第１の実施形態に係る情報管理システム１００の構成が概略的に示されている。
【００１２】
図１に示すように、情報管理システム１００は、情報管理装置としての生産管理装置１０と、複数の生産装置５０と、を備える。生産管理装置１０と生産装置５０とは、ネットワーク（通信網）８０を介して接続されている。
【００１３】
生産管理装置１０は、生産装置５０からネットワーク８０経由で生産に関する情報（ログ情報）を収集し、各生産装置５０による生産を管理する装置である。図２には、生産管理装置１０のハードウェア構成が示されている。図２に示すように、生産管理装置１０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、及び可搬型記憶媒体用ドライブ９９等を備えている。これら生産管理装置１０の構成各部は、バス９８に接続されている。生産管理装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（時刻情報補正プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（時刻情報補正プログラムを含む）をＣＰＵ９０が実行することにより、図３に示す各部の機能が実現される。なお、図３には、生産管理装置１０のＨＤＤ９６等に格納されている各種ＤＢ（database）についても図示されている。
【００１４】
図３には、ＣＰＵ９０がプログラムを実行することにより、生産管理装置１０で実現されている機能を示す機能ブロック図である。図３に示すように、生産管理装置１０は、受信部２０、タイムスタンプ取得部２２、特定部及び第２処理部としての遅延時間算出部２４、計時部２６、取得部及び第１処理部としての時差算出部２８、及び補正部としての情報処理部３０、の機能を実現する。
【００１５】
受信部２０は、生産装置５０から送信されてくる生産に関する情報（ログ情報）を取得し、情報ＤＢ４２に格納する。また、受信部２０は、生産装置５０からタイムスタンプを受信した場合に、受信したタイムスタンプをタイムスタンプ取得部２２に対して送信する。生産装置５０から送信されてくる生産に関する情報は、生産装置５０の識別情報である装置ＩＤやログ情報、ログ情報を生産装置５０が取得して送信した日時の情報等を含んでいる。日時の情報は、生産装置５０の内蔵時計が示す日付、時刻の情報であるため、生産装置５０の内蔵時計が不正確な場合には、不正確な日時情報が生産管理装置１０に対して送信される。ここで、情報ＤＢ４２は、生産装置５０から送信されてくる生産に関する情報が格納されるデータベースであり、図４（ａ）に示すように、「装置ＩＤ」、「ログ情報」、「日時情報」の各フィールドを有している。「装置ＩＤ」のフィールドには、送信先の生産装置５０の識別情報が格納され、「ログ情報」のフィールドには、送信先の生産装置５０で取得されたログ情報そのものが格納される。また、「日時情報」のフィールドには、送信先の生産装置５０でログ情報が取得され、生産管理装置１０に向けてログ情報を送信した日時の情報が格納される。
【００１６】
図３に戻り、タイムスタンプ取得部２２は、各生産装置５０の内蔵時計が予め定められた時刻（例えば午前６：００：００）を示したときに各生産装置５０から生産管理装置１０に対して送信されたタイムスタンプを受信部２０を介して取得する。また、タイムスタンプ取得部２２は、受信したタイムスタンプを遅延時間算出部２４及び時差算出部２８に対して送信する。図４（ｂ）には、タイムスタンプのデータ構造が示されている。図４（ｂ）に示すように、タイムスタンプは、「装置ＩＤ」のデータと「日時情報」のデータを含む。すなわち、タイムスタンプからは、タイムスタンプを送信した生産装置５０と、タイムスタンプを送信したタイミングで生産装置５０の内蔵時計が示していた日時情報と、を特定することができる。
【００１７】
遅延時間算出部２４は、タイムスタンプ取得部２２で取得されたタイムスタンプに基づいて、生産装置５０と生産管理装置１０との間の通信における遅延時間を算出する。ここで、図４（ｃ）には、遅延時間算出部２４が参照する格納部としての生産装置ＤＢ４０のデータ構造が示されている。生産装置ＤＢ４０は、生産装置５０の配置位置や内蔵時計が正確か否かの情報を管理するデータベースであり、図４（ｃ）に示すように、「装置ＩＤ」、「工場ＩＤ」、「ラインＩＤ」、「内蔵時計が正確／不正確」の各フィールドを有する。「工場ＩＤ」及び「ラインＩＤ」のフィールドには、各生産装置５０が配置されている工場及びラインの識別情報が格納される。なお、本第１の実施形態では、ラインＩＤが共通の生産装置は、同一位置に配置された生産装置であり、工場ＩＤが共通の生産装置は、類似位置に配置された生産装置であるものとする。「内蔵時計が正確／不正確」のフィールドには、各生産装置５０の内蔵時計が正確か否かの情報が格納される。ここで、内蔵時計が正確な生産装置５０とは、例えば、Network Time Protocolのような時刻同期機能を有する装置である。
【００１８】
遅延時間算出部２４は、生産装置ＤＢ４０を参照し、内蔵時計が正確な生産装置５０（第２機器）を特定し、特定した生産装置５０から送信されたタイムスタンプを用いて、特定した生産装置５０と生産管理装置１０との間の遅延時間を算出する。なお、本第１の実施形態においては、遅延時間は、生産装置５０と生産管理装置１０との間のネットワーク８０に起因して生じるものである。遅延時間算出部２４は、具体的には、特定した生産装置５０から送信されたタイムスタンプの日時情報と、タイムスタンプを遅延時間算出部２４が取得したとき（受信部２０が受信したときとほぼ一致）に計時部２６において計時された日時情報と、の差分を遅延時間とする。遅延時間算出部２４は、求めた遅延時間を特定した生産装置５０と対応付けて、第２記憶部としての遅延時間ＤＢ４４に格納する。また、遅延時間算出部２４は、遅延時間を算出した生産装置５０と配置位置が同一又は類似する生産装置を特定し、特定した生産装置と対応付けて、算出した遅延時間を遅延時間ＤＢ４４に格納する。
【００１９】
ここで、遅延時間ＤＢ４４は、各生産装置５０の遅延時間を管理するデータベースであり、図５（ａ）に示すように、「日付」、「装置ＩＤ」、「遅延時間」の各フィールドを有する。「日付」のフィールドには、遅延時間を算出した日付の情報が格納され、「装置ＩＤ」のフィールドには、生産装置５０の識別情報が格納される。また、「遅延時間」のフィールドには、遅延時間算出部２４が求めた遅延時間が格納される。
【００２０】
計時部２６は、生産装置５０の内蔵時計を参照して、日時情報を取得し、遅延時間算出部２４及び時差算出部２８に送信する。なお、生産管理装置１０は、例えば、Network Time Protocolのような時刻同期機能を有しているため、計時部２６（内蔵時計）は正確であるものとする。
【００２１】
時差算出部２８は、受信部２０が各生産装置５０から受信したタイムスタンプと、タイムスタンプを受信したときに計時部２６（内蔵時計）が計時した日時情報と、遅延時間ＤＢ４４に格納された遅延時間と、に基づいて、各生産装置５０の内蔵時計と生産管理装置１０の内蔵時計との時差（正確な時間とのずれ）を算出する。なお、時差算出部２８による時差の算出方法の詳細については、後述する。時差算出部２８は、算出した各生産装置５０の時差を第１記憶部としての時差ＤＢ４６に格納する。
【００２２】
ここで、時差ＤＢ４６は、図５（ｂ）に示すようなデータ構造を有する。具体的には、時差ＤＢ４６は、図５（ｂ）に示すように、「日付」、「装置ＩＤ」、「時差」の各フィールドを有する。「日付」のフィールドには、時差を算出した日付の情報が格納され、「装置ＩＤ」のフィールドには、生産装置の識別情報が格納される。また、「遅延時間」のフィールドには、時差算出部２８が求めた各生産装置５０の時差が格納される。
【００２３】
情報処理部３０は、情報ＤＢ４２に格納されているログ情報を利用するときに、ログ情報に付帯する日時情報を、時差ＤＢ４６に格納されている時差に基づいて補正する。なお、情報処理部３０は、日時情報を補正する場合、時差ＤＢ４６から、ログ情報と日付及び装置ＩＤが一致する時差を読み出し、読み出した時差に基づいて日時情報を補正する。そして、情報処理部３０は、補正後の日時情報に基づいてログ情報をソートしたり、イベント発生の分析を行う。
【００２４】
図１に戻り、生産装置５０は、例えば、ＰＬＣ（Programmable Logic Controller）やＣＮＣ（Computer Numerical Control）、ロボットコントローラ等である。生産装置５０は、各装置の処理を実行するほか、生産管理装置１０に対して生産に関する情報（ログ情報）を送信するとともに、所定時刻（毎日午前６：００：００）において、生産管理装置１０に対してタイムスタンプ（図４（ｂ）参照）を送信する。
【００２５】
＜生産管理装置１０の処理について＞
以下、生産管理装置１０の処理について、図６〜図９のフローチャートに沿って、その他図面を適宜参照しつつ詳細に説明する。
【００２６】
（受信部２０の処理）
まず、受信部２０の処理について説明する。図６は、受信部２０の処理を示すフローチャートである。受信部２０は、図６のステップＳ１０において、生産装置５０から情報（ログ情報やタイムスタンプ）が送信されてくるまで待機する。そして、生産装置５０から情報が送信されてくると、ステップＳ１２に移行する。
【００２７】
ステップＳ１２に移行すると、受信部２０は、生産装置５０から送信されてきた情報がタイムスタンプであるか否かを判断する。このステップＳ１２の判断が肯定された場合（タイムスタンプの場合）には、ステップＳ１４に移行し、否定された場合（ログ情報の場合）には、ステップＳ１６に移行する。
【００２８】
ステップＳ１４に移行した場合、受信部２０は、受信したタイムスタンプをタイムスタンプ取得部２２に送信する。なお、タイムスタンプ取得部２２は、タイムスタンプを受信すると、受信したタイムスタンプを遅延時間算出部２４及び時差算出部２８に送信する。
【００２９】
一方、ステップＳ１６に移行した場合、受信部２０は、受信したログ情報を情報ＤＢ４２に格納する。
【００３０】
なお、ステップＳ１４又はステップＳ１６の処理が行われた後は、ステップＳ１０に戻り、受信部２０は、上述した処理を繰り返し実行する。
【００３１】
（遅延時間算出部２４の処理）
次に、遅延時間算出部２４の処理について説明する。図７は、遅延時間算出部２４の処理を示すフローチャートである。
【００３２】
遅延時間算出部２４は、図７のステップＳ２０において、タイムスタンプ取得部２２からタイムスタンプを取得するまで待機する。遅延時間算出部２４は、タイムスタンプ取得部２２からタイムスタンプを取得すると、ステップＳ２２に移行し、遅延時間ＤＢ４４を参照し、タイムスタンプを送信してきた生産装置５０の当日の遅延時間が遅延時間ＤＢ４４に既に存在しているか否かを判断する。具体的には、遅延時間算出部２４は、タイムスタンプに含まれる装置ＩＤを抽出し、抽出した装置ＩＤに対応する当日の遅延時間が遅延時間ＤＢ４４に存在しているか否かを確認する。このステップＳ２２の判断が肯定された場合には、遅延時間を新たに求める必要がないため、ステップＳ２０に戻る。一方、ステップＳ２２の判断が否定された場合には、ステップＳ２４に移行し、遅延時間算出部２４は、生産装置ＤＢ４０を参照する。この場合、遅延時間算出部２４は、タイムスタンプを送信してきた生産装置５０の時刻（内蔵時計）が正確であるか否かを確認する。
【００３３】
ステップＳ２６では、遅延時間算出部２４は、取得したタイムスタンプが内蔵時計が正確な生産装置５０から送信されてきたタイムスタンプであるか否かを判断する。このステップＳ２６の判断が否定された場合には、取得したタイムスタンプからは遅延時間を算出できないためステップＳ２０に戻るが、肯定された場合には、ステップＳ２８に移行する。
【００３４】
ステップＳ２８に移行すると、遅延時間算出部２４は、計時部２６から日時情報を取得する。なお、ステップＳ２８に移行した場合、取得したタイムスタンプの日時情報も、計時部２６の日時情報も正確である。
【００３５】
次いで、ステップＳ３０では、遅延時間算出部２４は、タイムスタンプの日時情報と、計時部２６から取得した日時情報との差を遅延時間として算出する。例えば、タイムスタンプの日時情報（時刻）が「９：００：００」で、計時部２６から取得した日時情報（時刻）が「９：００：３０」であった場合には、これらの差である「３０秒」が遅延時間となる。
【００３６】
次いで、ステップＳ３２では、遅延時間算出部２４は、算出した遅延時間を遅延時間ＤＢ４４に格納する。
【００３７】
次いで、ステップＳ３４では、遅延時間算出部２４は、算出した遅延時間を、配置位置が同一又は類似する生産装置５０の遅延時間として遅延時間ＤＢ４４に格納する。具体的には、遅延時間算出部２４は、生産装置ＤＢ４０を参照して、ステップＳ３０で遅延時間を算出した生産装置５０と同一の工場ＩＤを有する生産装置５０を特定し、特定した生産装置５０の装置ＩＤに対応付けてステップＳ３０で算出した遅延時間を遅延時間ＤＢ４４に格納する。ステップＳ３４の処理が行われた後は、ステップＳ２０に戻り、上述した処理を繰り返し実行する。なお、本第１の実施形態では、各生産装置５０においてタイムスタンプを送信する所定時刻が１つ設定されている場合には、各生産装置５０の遅延時間を１日１回算出することができる。
【００３８】
（時差算出部２８の処理）
次に、時差算出部２８の処理について説明する。図８は、時差算出部２８の処理を示すフローチャートである。なお、時差算出部２８は、図８の処理と並行して、受信部２０から取得したタイムスタンプと、タイムスタンプを取得した日時情報（計時部２６から取得）と、をバッファにおいて一時記憶する。
【００３９】
時差算出部２８は、図８のステップＳ４０において、遅延時間ＤＢ４４に当日の遅延時間が既に格納された生産装置５０を特定し、特定した生産装置５０が当日に送信したタイムスタンプと日時情報をバッファから取得する。なお、バッファから取得したタイムスタンプと日時情報は、バッファから消去される。
【００４０】
次いで、ステップＳ４４では、時差算出部２８が、取得したタイムスタンプを送信してきた生産装置５０の遅延時間を遅延時間ＤＢ４４から取得する。
【００４１】
次いで、ステップＳ４６では、時差算出部２８は、タイムスタンプの日時情報、取得した日時情報、及び遅延時間ＤＢ４４に格納されている遅延時間に基づいて時差を算出する。図１０は、時差の算出方法及び利用方法を説明するための模式図である。
【００４２】
図１０に示すように、生産装置５０の内蔵時計の日時情報ｔａが不正確であり、生産管理装置の内蔵時計の日時情報Ｔｂが正確であるとする。この場合、生産装置５０の内蔵時計の日時情報と正確な日時との間の時差Ｔは、遅延時間をΔｔｓとすると、次式（１）にて求めることができる。
Ｔ＝ｔａ−（Ｔｂ-Δｔｓ）      …（１）
【００４３】
図１０の例では、時差Ｔは、Ｔ＝６：００：００−（６：０１：３０−３０秒）＝−１分となる。
【００４４】
図８に戻り、次のステップＳ４８では、時差算出部２８は、時差ＤＢ４６にステップＳ４６で算出した時差を格納する。この場合、時差算出部２８は、装置ＩＤと日付に対応付けて、時差ＤＢ４６に時差を格納する。その後は、ステップＳ４０に戻り、時差算出部２８は、上述した処理を繰り返し実行する。なお、本第１の実施形態では、各生産装置５０においてタイムスタンプを送信する所定時刻が１つ設定されている場合には、各生産装置５０の時差を１日１回算出することができる。
【００４５】
なお、内蔵時計が正確な生産装置５０については、時差を算出しなくてもよい。この場合、時差算出部２８は、ステップＳ４０においてタイムスタンプを取得した後に、生産装置ＤＢ４０を参照し、タイムスタンプを送信してきた生産装置５０の時刻（内蔵時計）が正確である場合には、ステップＳ４４〜Ｓ４８を省略して、生産装置５０の時差として「０」を時差ＤＢ４６に格納するようにすればよい。
【００４６】
（情報処理部３０の処理）
次に、情報処理部３０の処理について説明する。図９は、情報処理部３０の処理を示すフローチャートである。
【００４７】
情報処理部３０は、ステップＳ５０において、情報ＤＢ４２に格納されているログ情報を利用するか否かを判断する。このステップＳ５０の判断が否定された場合には、情報処理部３０は、ステップＳ５０を繰り返し実行するが、肯定された場合には、ステップＳ５２に移行する。
【００４８】
ステップＳ５２に移行すると、情報処理部３０は、情報ＤＢ４２から利用するログ情報を読み出す。
【００４９】
次いで、ステップＳ５４では、情報処理部３０は、時差ＤＢ４６を参照し、読み出したログ情報に付帯する日時情報を補正して、ログ情報を利用する。例えば、図１０の例において、ログ情報に付帯する日時情報（時刻）が「９：０１：００」であったとする。この場合、情報ＤＢ４２には、ログ情報に付帯する日時情報（時刻）ｔａとしてそのままの時刻「９：０１：００」が格納されている。また、時差ＤＢ４６には、利用するログ情報が取得された日の時差Ｔとして「−１分」が格納されているものとする。この場合、情報処理部３０は、ログ情報を利用する際に、情報ＤＢ４２に格納されている時刻「９：０１：００」から時差Ｔ＝−１分を差し引いて、「９：０２：００」と補正する。この場合の補正後の日時情報Ｔｅは、次式（２）で表すことができる。
Ｔｅ＝ｔａ−Ｔ      …（２）
【００５０】
その後は、ステップＳ５０に戻り、情報処理部３０は、上述した処理を繰り返し実行する。
【００５１】
なお、図９の処理においては、情報処理部３０は、生産装置ＤＢ４０を参照して、情報ＤＢ４２から読み出したログ情報に付帯する日時情報が正確な日時情報であるか否かを判断し、正確な場合には、時差ＤＢ４６を参照することなく、読み出したログ情報に付帯する日時情報をそのまま利用するようにしてもよい。
【００５２】
以上、詳細に説明したように、本第１の実施形態によると、情報管理システム１００は、生産に関する情報（ログ情報）を送信する生産装置５０と、生産装置５０から受信した情報を管理する生産管理装置１０とを備えている。また、生産管理装置１０の時差算出部２８は、生産装置５０から送信される日時情報（タイムスタンプ）を取得するとともに、タイムスタンプを取得したときに生産管理装置１０の内蔵時計が示す日時情報を計時部２６から取得し、取得した情報に基づいて、生産装置５０の内蔵時計と生産管理装置１０の内蔵時計との時差Ｔを算出し、算出した時差Ｔを生産装置５０の装置ＩＤと対応付けて時差ＤＢ４６に格納する。そして、情報処理部３０は、生産装置５０から送信される情報（ログ情報）を利用する際に、時差ＤＢ４６から時差Ｔを読み出し、読み出した時差Ｔを用いて、利用するログ情報に付帯する日時情報ｔａを補正する。これにより、本第１の実施形態では、生産管理装置１０の正確な内蔵時計と各生産装置５０の内蔵時計との時差を管理し、各生産装置５０から送信されてきたログ情報を利用するときに、各生産装置５０に対応する時差に基づいてログ情報に付帯する日時情報を補正するので、ログ情報に付帯する日時情報を精度よく補正することができる。このため、各生産装置５０から送信されてきた情報を適切に利用する（例えばログ情報を日時情報でソートしたり、イベント発生の分析を行う）ことができる。したがって、本第１の実施形態では、生産装置５０がNetwork Time Protocolのような時刻同期機能を有していなくても、適切にログ情報を利用することが可能であるため、設備投資を抑えつつＩｏＴを実現することができる。また、本第１の実施形態では、情報ＤＢ４２に格納された情報（生データ）を変更しないことから、生データを残しつつ、適切にログ情報を利用することができる。
【００５３】
また、本第１の実施形態では、生産管理装置１０の遅延時間算出部２４は、生産装置ＤＢ４０を参照して、送信する日時情報が正確な生産装置５０を特定し、特定した生産装置５０から送信されるタイムスタンプ（日時情報）と、該タイムスタンプを取得したときに生産管理装置１０の内蔵時計が示す日時情報とに基づいて遅延時間Δｔｓを算出し、算出した遅延時間Δｔｓを、特定した生産装置５０の識別情報（装置ＩＤ）と対応付けて遅延時間ＤＢ４４に格納する。また、遅延時間算出部２４は、生産装置ＤＢ４０を参照して、遅延時間を算出した生産装置５０と配置位置が同一又は類似する生産装置５０を特定し、算出した遅延時間Δｔｓを、特定した生産装置５０と対応付けて遅延時間ＤＢ４４に格納する。そして、時差算出部２８は、遅延時間ＤＢ４４から生産装置５０の遅延時間Δｔｓを読み出し、読み出した遅延時間Δｔｓと、日時情報ｔａ、Ｔｂとに基づいて、生産装置５０と生産管理装置１０の内蔵時計の時差Ｔを算出し、算出した時差Ｔを生産装置５０の装置ＩＤと対応付けて時差ＤＢ４６に格納する。これにより、各生産装置５０と生産管理装置１０との間の遅延時間を精度よく算出でき、精度よく算出した遅延時間を用いることで、各生産装置５０の内蔵時計と生産管理装置１０の内蔵時計との時差を精度よく算出することができる。
【００５４】
なお、上記第１の実施形態では、生産管理装置１０が遅延時間算出部２４を有しており、遅延時間算出部２４が各生産装置５０の遅延時間を算出する場合について説明したが、これに限られるものではない。例えば、生産装置５０の配置位置等に基づいて予め遅延時間ＤＢ４４を作成しておいてもよい。また、ネットワーク８０における通信速度が速いため、遅延時間が無視できるレベルである場合には、時差算出部２８は、遅延時間がない（Δｔｓ＝０）として時差を算出するようにしてもよい。
【００５５】
なお、上記第１の実施形態では、情報処理部３０は、情報ＤＢ４２に格納されている情報（生データ）に対応する日時情報を変更（補正後の日時情報で更新）しない場合について説明したが、これに限られるものではない。例えば、情報処理部３０は、補正後の日時情報で情報ＤＢ４２を更新してもよい。
【００５６】
なお、上記第１の実施形態では、生産装置５０が直接ネットワーク８０に接続されている場合について説明したが、これに限らず、例えば、図１１に示すように、生産装置５０は、工場内ネットワーク６２に接続され、工場内ネットワーク６２に接続されたエッジＰＣ６０を介して生産管理装置１０と接続されていてもよい。この場合、エッジＰＣ６０は、生産装置５０から送信されるログ情報に自己の内蔵時計が示す日時情報を付与して、生産管理装置１０に対してログ情報を送信するようにしてもよい。また、エッジＰＣ６０は、内蔵時計が所定時刻を示したときに生産管理装置１０に対してタイムスタンプ（所定時刻を示す情報）を送信するようにしてもよい。この場合、生産管理装置１０において、上記第１の実施形態と同様の処理を実行することで、エッジＰＣ６０が時刻同期機能を有していなくても適切に生産装置５０から送信される情報を利用することができる。
【００５７】
≪第２の実施形態≫
以下、第２の実施形態について、図１２、図１３に基づいて詳細に説明する。
【００５８】
図１２には、第２の実施形態に係る情報管理システム２００の構成が概略的に示されている。情報管理システム２００においては、図１２に示すように、生産装置５０が中継装置７０を介してネットワーク８０に接続されているものとする。
【００５９】
中継装置７０は、内蔵時計が正確な装置であり、複数の生産装置５０が接続されている。中継装置７０は、生産装置５０から生産管理装置１０に向けて所定時刻を示すタイムスタンプが送信されると、タイムスタンプに中継装置７０の内蔵時計が示す正確な日時情報を付与して、生産管理装置１０に送信する。
【００６０】
図１３（ａ）には、本第２の実施形態におけるタイムスタンプのデータ構造が示されている。図１３（ａ）に示すように、第２の実施形態におけるタイムスタンプは、生産装置５０の識別情報である「装置ＩＤ」、生産装置５０の内蔵時計が示していた日時（所定時刻）である「日時情報」、中継装置７０の内蔵時計が示していた日時（正確な時刻）である「中継装置の日時情報」を有している。図１３（ａ）の例では、生産装置５０が正確な時刻から１分遅れていることがわかる。
【００６１】
生産管理装置１０では、図１３（ｂ）において模式的に示すように、時差算出部２８がタイムスタンプから生産装置５０の日時情報ｔａと中継装置７０の日時情報（正確な時刻）ｔｂとの間の時差（図１３（ｂ）の例では、＋１分）を求め、時差ＤＢ４６に格納しておく。一方、生産管理装置１０では、生産装置５０から情報（ログ情報）が送信されてきた場合には、ログ情報に付帯する日時情報はそのまま（ｔａのまま）情報ＤＢ４２に格納しておく。そして、情報処理部３０は、情報ＤＢ４２に格納されているログ情報を利用する際には、時差ＤＢ４６に格納されている時差で、ログ情報に付帯する日時情報を補正する。例えば、図１３（ｂ）のように、ログ情報に付帯する日時情報（時刻）が「９：０１：００」であれば、時刻「９：０１：００」から時差＝＋１分を差し引いて、「９：００：００」と補正して、ログ情報を利用する。
【００６２】
ここで、前述した第１の実施形態では、正確な時刻を示す内蔵時計を有する生産管理装置１０と、不正確な時刻を示す可能性のある内蔵時計を有する生産装置５０との間にネットワーク８０が存在するため、時差を算出する際に、ネットワーク８０における遅延時間を考慮することとしていた。これに対し、本第２の実施形態では、生産装置５０と中継装置７０との間にネットワーク８０が存在しておらず、生産装置５０と中継装置７０との間の遅延時間は無視できるレベルであるため、時差算出において遅延時間を考慮する必要はない。
【００６３】
以上説明したように、本第２の実施形態によると、中継装置７０は、生産装置５０とネットワーク８０との間に配置されており、生産装置５０から生産管理装置１０に向けて送信されたタイムスタンプを受信すると、タイムスタンプに内蔵時計が示す日時情報を付与して生産管理装置１０に送信する。そして、生産管理装置１０は、生産装置５０から送信される情報（ログ情報）を利用する際に、生産装置５０の内蔵時計が示す日時情報と中継装置７０の内蔵時計が示す日時情報との時差を用いて、利用する情報に付与されている日時情報を補正する。これにより、生産装置５０の内蔵時計が不正確であっても、中継装置７０の内蔵時計が正確であれば、生産装置５０の内蔵時計が示す時刻と正確な時刻との間の時差を精度よく求めることができる。したがって、精度よく求められた時差を用いて情報に付与されている日時情報を補正することで、ログ情報を適切に利用することができる。また、本第２の実施形態では、生産装置５０がNetwork Time Protocolのような時刻同期機能を有していなくても、適切にログ情報を利用することが可能であるため、設備投資を抑えつつＩｏＴを実現することができる。また、本第２の実施形態では、情報ＤＢ４２に格納された情報（生データ）を変更しないことから、生データを残しつつ、適切に情報を利用することができる。
【００６４】
なお、上記第２の実施形態において、情報処理部３０は、補正後の日時情報で情報ＤＢ４２を更新してもよい。
【００６５】
上記第１、第２の実施形態では、所定時刻に生産装置５０がタイムスタンプを送信し、生産管理装置１０がタイムスタンプを用いて時差や遅延時間を算出する場合について説明したが、これに限られるものではない。例えば、生産装置５０が１日の最初に送信するログ情報に付帯する日時情報を用いて、上述したのと同様に時差や遅延時間を算出することとしてもよい。
【００６６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００６７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６９】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００７０】
なお、以上の第１、第２の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  生産に関する情報を送信する第１機器と、
前記第１機器から受信した情報を管理する情報管理装置と、を備え、
前記情報管理装置は、
前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記情報管理装置の内蔵時計が示す時刻情報を取得する取得部と、
前記取得部が取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記情報管理装置の内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶する第１処理部と、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する補正部と、を有することを特徴とする情報管理システム。
（付記２）  前記情報管理装置は、
機器の識別情報と対応付けて前記機器の配置位置を示す配置情報及び前記機器が送信する時刻情報が正確か否かの情報が格納された格納部を参照して、送信する時刻情報が正確な第２機器と該第２機器と配置位置が同一又は類似する機器を特定する特定部と、
前記第２機器の内蔵時計が示す時刻情報と、該時刻情報を取得したときに前記情報管理装置の内蔵時計が示す時刻情報とに基づいて、前記情報管理装置と前記第２機器との間の遅延時間を算出し、算出した遅延時間を前記第２機器及び該第２機器と配置位置が同一又は類似する機器の識別情報と対応付けて第２記憶部に記憶する第２処理部と、を更に有し、
前記第１処理部は、
前記第２記憶部から前記第１機器の遅延時間を読み出し、
読み出した前記遅延時間と前記取得部が取得した時刻情報とに基づいて、前記第１機器の内蔵時計と前記情報管理装置の内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて前記第１記憶部に記憶する、ことを特徴とする付記１に記載の情報管理システム。
（付記３）  生産に関する情報を送信する第１機器と、
前記第１機器から通信網を経由して受信した情報を管理する情報管理装置と、
前記第１機器と前記通信網との間に配置され、前記第１機器から前記情報管理装置に向けて送信された前記第１機器の内蔵時計が示す時刻情報を受信すると、該時刻情報に正確な時刻情報を付与して前記情報管理装置に送信する中継装置と、を備え、
前記情報管理装置は、
前記第１機器の内蔵時計が示す時刻情報と前記正確な時刻情報との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて記憶部に記憶する処理部と、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記記憶部から前記第１機器に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、ことを特徴とする情報管理システム。
（付記４）  第１機器から受信した生産に関する情報を管理するコンピュータが、
前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記コンピュータの内蔵時計が示す時刻情報を取得し、
前記取得する処理において取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記コンピュータの内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶し、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、
処理を実行することを特徴とする時刻情報補正方法。
（付記５）  機器の識別情報と対応付けて前記機器の配置位置を示す配置情報及び前記機器が送信する時刻情報が正確か否かの情報が格納された格納部を参照して、送信する時刻情報が正確な第２機器と該第２機器と配置位置が同一又は類似する機器を特定し、
前記第２機器の内蔵時計が示す時刻情報と、該時刻情報を取得したときに前記コンピュータの内蔵時計が示す時刻情報とに基づいて、前記コンピュータと前記第２機器との間の遅延時間を算出し、算出した遅延時間を前記第２機器及び該第２機器と配置位置が同一又は類似する機器の識別情報と対応付けて第２記憶部に記憶する、処理を前記コンピュータが更に実行し、
前記時差を算出する処理では、
前記第２記憶部から前記第１機器の遅延時間を読み出し、
読み出した前記遅延時間と前記取得する処理で取得した時刻情報とに基づいて、前記第１機器の内蔵時計と前記コンピュータの内蔵時計との時差を算出する、ことを特徴とする付記４に記載の時刻情報補正方法。
（付記６）  生産に関する情報を送信する第１機器と、前記第１機器から通信網を経由して受信した情報を管理する情報管理装置と、前記第１機器と前記通信網との間に配置される中継装置と、を備える情報管理システムにおける時刻情報補正方法であって、
前記中継装置は、前記第１機器から前記情報管理装置に向けて送信された前記第１機器の内蔵時計が示す時刻情報を受信すると、該時刻情報に正確な時刻情報を付与して前記情報管理装置に送信し、
前記情報管理装置は、
前記第１機器の内蔵時計が示す時刻情報と前記正確な時刻情報との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて記憶部に記憶し、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記記憶部から前記第１機器に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、
ことを特徴とする時刻情報補正方法。
（付記７）  第１機器から受信した生産に関する情報を管理するコンピュータに、
前記第１機器の内蔵時計が示す時刻情報を取得するとともに、前記時刻情報を取得したときに前記コンピュータの内蔵時計が示す時刻情報を取得し、
前記取得する処理において取得した時刻情報に基づいて、前記第１機器の内蔵時計と前記コンピュータの内蔵時計との時差を算出し、算出した前記時差を前記第１機器の識別情報と対応付けて第１記憶部に記憶し、
前記第１機器から送信される前記生産に関する情報を利用する際に、前記第１記憶部から前記第１機器の識別情報に対応する時差を読み出し、読み出した前記時差を用いて、利用する前記生産に関する情報に付帯する時刻情報を補正する、
処理を実行させるための時刻情報補正プログラム。
【符号の説明】
【００７１】
１０  生産管理装置（情報管理装置）
２４  遅延時間算出部（特定部、第２処理部）
２８  時差算出部（取得部、第１処理部）
３０  情報処理部（補正部）
４０  生産装置ＤＢ（格納部）
４４  遅延時間ＤＢ（第２記憶部）
４６  時差ＤＢ（第１記憶部）
５０  生産装置（第１機器、第２機器）
７０  中継装置
８０  通信網（ネットワーク）
１００  情報管理システム
【図１】
2018138898.tif 000003
【図２】
2018138898.tif 000004
【図３】
2018138898.tif 000005
【図４】
2018138898.tif 000006
【図５】
2018138898.tif 000007
【図６】
2018138898.tif 000008
【図７】
2018138898.tif 000009
【図８】
2018138898.tif 000010
【図９】
2018138898.tif 000011
【図１０】
2018138898.tif 000012
【図１１】
2018138898.tif 000013
【図１２】
2018138898.tif 000014
【図１３】
2018138898.tif 000015