(57)【要約】【課題】アプリケーションが実行されるタイミングとアプリケーションにデータが入力されるタイミングの前後関係を正確に記録することができる。【解決手段】演算装置は、アプリケーションを繰り返し実行する実行部と、アプリケーションが所定回数実行される間隔を１つのサイクルとし、アプリケーションの実行に基づきサイクル数をカウントするカウント部と、アプリケーションへ入力される入力データ、および入力データがアプリケーションへ入力される時刻のサイクル数の組み合わせを入力ログとして記録する記録部とを備える。【選択図】図１
2018185709.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを繰り返し実行する実行部と、
前記アプリケーションが所定回数実行される間隔を１つのシーケンスとし、前記アプリケーションの実行に基づきシーケンス数をカウントするカウント部と、
前記アプリケーションへ入力される入力データ、および前記入力データが前記アプリケーションへ入力される時刻における前記シーケンス数の組み合わせを入力ログとして記録する記録部とを備える演算装置。
【請求項２】
請求項１に記載の演算装置において、
前記入力ログに含まれる前記シーケンス数が示すシーケンスの開始時刻から、前記入力データが前記アプリケーションへ入力される時刻までを示す時間をオフセット値として算出するオフセット算出部をさらに備え、
前記記録部は、前記入力ログに前記オフセット値をさらに組み合わせて記録する演算装置。
【請求項３】
請求項１に記載の演算装置において、
前記入力データに含まれる時刻情報と前記入力データが前記アプリケーションへ入力される時刻との差を時刻補正情報として算出する補正算出部をさらに備え、
前記記録部は、前記入力ログに前記時刻補正情報をさらに組み合わせて記録する演算装置。
【請求項４】
請求項１に記載の演算装置において、
前記入力ログを送信する通信部をさらに備え、
前記記録部は、前記通信部を介して前記入力ログを他の装置に記録する演算装置。
【請求項５】
請求項１に記載の演算装置において、
複数の前記入力ログが記録されたログ格納部と、
前記ログ格納部に格納された複数の前記入力ログに含まれるそれぞれの前記入力データを、前記入力データに組み合わされた前記シーケンス数に基づき前記アプリケーションに入力するログ再生部とをさらに備える演算装置。
【請求項６】
請求項２に記載の演算装置において、
複数の前記入力ログが記録されたログ格納部と、
前記ログ格納部に格納された複数の前記入力ログに含まれるそれぞれの前記入力データを、前記入力データに組み合わされた前記シーケンス数および前記オフセット値に基づき前記アプリケーションに入力するログ再生部とをさらに備える演算装置。
【請求項７】
請求項３に記載の演算装置において、
複数の前記入力ログが記録されたログ格納部と、
前記ログ格納部に格納された複数の前記入力ログに含まれるそれぞれの前記入力データに含まれる時刻情報を前記時刻補正情報に基づき補正し、補正された前記入力データを前記入力データに組み合わされた前記シーケンス数に基づき前記アプリケーションに入力するログ再生部とをさらに備える演算装置。
【請求項８】
請求項４に記載の演算装置において、
前記通信部は前記入力ログを複数受信し、
前記通信部が受信した前記入力ログが記録されるログ格納部と、
前記通信部が最初に受信する前記入力ログである初回ログを受信した時刻から前記初回ログに含まれる前記入力データを前記アプリケーションに入力する時刻までの間隔を示す情報である格納遅延時間が格納されるパラメータ格納部と、
前記通信部が前記初回ログを受信した際の前記シーケンス数、および前記格納遅延時間に基づき前記初回ログに含まれる前記入力データを前記アプリケーションに入力する前記シーケンスである初回ログ入力シーケンスを決定し、
前記初回ログ入力シーケンスに前記初回ログに含まれる前記入力データを前記アプリケーションに入力するログ再生部とをさらに備える演算装置。
【請求項９】
請求項８に記載の演算装置において、
前記ログ再生部は、前記通信部が受信する2つ目以降の前記入力ログである後続ログに含まれる前記入力データを、前記初回ログに含まれる前記シーケンス数、前記後続ログに含まれる前記シーケンス数、および前記初回ログ入力シーケンスに基づき決定される前記シーケンスに前記アプリケーションに入力する演算装置。
【請求項１０】
アプリケーションを繰り返し実行することと、
前記アプリケーションが所定回数実行される間隔を１つのシーケンスとし、前記アプリケーションの実行に基づきシーケンス数をカウントすることと、
前記アプリケーションへ入力される入力データ、および前記入力データが前記アプリケーションへ入力される時刻における前記シーケンス数の組み合わせを入力ログとして記録することとを含むログ記録方法。
【請求項１１】
ネットワークにより接続されるアプリ実行装置およびログ保存装置を含むログ記録システムであって、
前記アプリ実行装置は、
アプリケーションを繰り返し実行する実行部と、
前記アプリケーションが所定回数実行される間隔を１つのシーケンスとし、前記アプリケーションの実行に基づきシーケンス数をカウントするカウント部と、
前記ログ保存装置と通信を行う実行装置通信部と、
前記アプリケーションへ入力される入力データ、および前記入力データが前記アプリケーションへ入力される時刻における前記シーケンス数の組み合わせを入力ログとして前記実行装置通信部を介して前記ログ保存装置に記録する記録部とを備え、
前記ログ保存装置は、
前記アプリ実行装置から前記入力ログを受信する保存装置通信部と、
前記入力ログおよび前記入力ログを保存装置通信部が受信した時刻を関連付けて格納する記憶部とを備えるログ記録システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、ログ記録方法、およびログ記録システムに関する。
【背景技術】
【０００２】
自動運転を実現する制御アプリケーションはあらゆる状況下での動作保証が求められるため、膨大な実環境走行による動作検証が必要となる。実環境走行で発生したアプリケーションの不具合を効率的に解消するための不具合の再現方法として、以下の手法が知られている。すなわち走行時にアプリケーションに入力された周辺環境等に関するデータをログに記録しておき、不具合発生時にはログから当該データを再生してアプリケーションに入力することにより、不具合を再現する手法である。特許文献１には、仮想環境を模擬する模擬手段と、上記模擬手段により模擬された結果をリアルタイムで表示する１台以上の表示手段と、上記模擬の内容を記録保存するための条件を設定する記録保存条件設定手段と、上記条件に基づいて上記模擬の内容全てをチェックポイントファイルに保存するチェックポイントファイル手段と、上記チェックポイントファイルに保存を行った時刻から次の保存を行う時刻までの間の上記模擬の内容の変化の差分だけをイベントログファイルに保存するイベントログファイル手段と、保存された上記チェックポイントファイル及び上記イベントログファイルを用いて、任意の時刻における上記模擬の内容を再生して上記表示手段に表示するための再生手段と、システム全体の統合管理を行うための統合管理手段と、を備えたことを特徴とする分散シミュレーションシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特願平１１−３２１４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、アプリケーションが実行されるタイミングとアプリケーションにデータが入力されるタイミングの前後関係を正確に記録できない。
【課題を解決するための手段】
【０００５】
本発明の第１の態様による演算装置は、アプリケーションを繰り返し実行する実行部と、前記アプリケーションが所定回数実行される間隔を１つのシーケンスとし、前記アプリケーションの実行に基づきシーケンス数をカウントするカウント部と、前記アプリケーションへ入力される入力データ、および前記入力データが前記アプリケーションへ入力される時刻における前記シーケンス数の組み合わせを入力ログとして記録する記録部とを備える。
本発明の第２の態様によるログ記録方法は、アプリケーションを繰り返し実行することと、前記アプリケーションが所定回数実行される間隔を１つのシーケンスとし、前記アプリケーションの実行に基づきシーケンス数をカウントすることと、前記アプリケーションへ入力される入力データ、および前記入力データが前記アプリケーションへ入力される時刻における前記シーケンス数の組み合わせを入力ログとして記録することとを含む。
本発明の第３の態様によるログ記録システムは、ネットワークにより接続されるアプリ実行装置およびログ保存装置を含むログ記録システムであって、前記アプリ実行装置は、アプリケーションを繰り返し実行する実行部と、前記アプリケーションが所定回数実行される間隔を１つのシーケンスとし、前記アプリケーションの実行に基づきシーケンス数をカウントするカウント部と、前記ログ保存装置と通信を行う実行装置通信部と、前記アプリケーションへ入力される入力データ、および前記入力データが前記アプリケーションへ入力される時刻における前記シーケンス数の組み合わせを入力ログとして前記実行装置通信部を介して前記ログ保存装置に記録する記録部とを備え、前記ログ保存装置は、前記アプリ実行装置から前記入力ログを受信する保存装置通信部と、前記入力ログおよび前記入力ログを保存装置通信部が受信した時刻を関連付けて格納する記憶部とを備える。
【発明の効果】
【０００６】
本発明によれば、アプリケーションが実行されるタイミングとアプリケーションにデータが入力されるタイミングの前後関係を正確に記録することができる。
【図面の簡単な説明】
【０００７】
【図１】車両制御システム１の構成を示すブロック図
【図２】図２（ａ）は出力値にタイムスタンプを含む場合のログデータ１１４Ａのフォーマットを示す図、図２（ｂ）は出力値にタイムスタンプを含まない場合のログデータ１１４Ａのフォーマットを示す図
【図３】シーケンス履歴１１５の一例を示す図
【図４】センサ情報取得部１０１の動作を示すフローチャート
【図５】アプリケーション実行管理部１０２の動作を示すフローチャート
【図６】ログ生成部１０３の動作を示すフローチャート
【図７】ログ再生部１０４の動作を示すフローチャート
【図８】ログ記録再生装置２０の動作を表すフローチャート
【図９】ログ記録モードの動作例を示す図
【発明を実施するための形態】
【０００８】
―実施の形態―
以下、図１〜図９を参照して、演算装置である車両制御装置の実施の形態を説明する。
【０００９】
（用語の定義）
本実施の形態における「アプリケーション」とは、定期的に実行されるプログラムである。本実施の形態における「実行周期」とは、あるアプリケーションを実行する時間の間隔の目標値である。すなわち実際にあるアプリケーションが実行される時間の間隔は、実行周期と一致しないことがある。アプリケーションの実行のタイミングは、たとえば、アプリケーションの実行する毎に、その目標値となるまで時間経過を測っておき、その目標値に達したらアプリケーションを実行する等の方法により決まる。この場合は時間経過の計測の際のタイマーの誤差や、他の処理の負荷により遅延が入ることなどにより、目標値と実際のアプリケーションが実行される時間の間隔は一致しないことが想定される。
【００１０】
本実施の形態における「シーケンス」とは、基準となるアプリケーションが実際に実行される時刻によって区切られる長さを持った時間である。すなわち各シーケンスの開始時刻は、基準となるアプリケーションが実行された時刻である。本実施の形態における「シーケンス番号」とは、基準となるアプリケーションが実行されるごとにカウントアップされる数値である。
【００１１】
（システム構成）
図１は、本発明に係る演算装置である車両制御装置１０を含む車両制御システム１の構成を示すブロック図である。車両制御システム１は、車両制御装置１０、ログ記録再生装置２０、外界センサ群３０、車両センサ群４０、およびアクチュエータ群５０を備える。車両制御装置１０、ログ記録再生装置２０、外界センサ群３０、車両センサ群４０、およびアクチュエータ群５０は、車載ネットワーク６０により接続される。車両制御システム１は、たとえば、車両に搭載され、車両の周辺における走行道路や周辺車両等の障害物の状況を認知した上で車両の運転行動や車両制御を判断し、車両運動を制御することで自動運転を実現するシステムである。
【００１２】
外界センサ群３０は、車両周辺の一定範囲の障害物、たとえば他車両、歩行者、物体などや、道路標識や白線などの特徴物を認識するセンサ群である。外界センサ群３０は、たとえば、カメラ、レーダ、ライダ等により構成される。外界センサ群３０は、検出した車両周辺の障害物や特徴物の情報、たとえば車両からの相対距離と相対角度などを、外界センサ群３０や車両制御装置１０が接続されている車載ネットワーク６０に出力する。車両制御装置１０は、この車載ネットワーク６０を介して外界センサ群３０からの出力結果を取得できるように構成されている。なお本実施の形態では、外界センサ群３０で障害物や特徴物を検出する処理を実施する構成になっているが、外界センサ群３０から出力される信号やデータを用いて車両制御装置１０や他装置でこれらの検出処理を行ってもよい。
【００１３】
車両センサ群４０は、車両の動きに関する情報、たとえば走行速度、操舵角、アクセルの操作量、ブレーキの操作量などを検出する装置群である。車両センサ群４０は、たとえば、車載ネットワーク６０上に検出したこれらの状態量を出力する。車載ネットワーク６０に接続された車両制御装置１０や他装置は、この車載ネットワーク６０を通じて、車両センサ群４０から出力された各種部品の状態量を取得する。
【００１４】
アクチュエータ群５０は、車両の動きを決定する操舵、ブレーキ、アクセル等の制御要素を制御する装置群である。アクチュエータ群５０は、運転者によるハンドル、ブレーキペダル、アクセルペダル等の操舵情報や、車両制御装置１０から出力される目標制御値に基づいて車両の動きを制御する。
【００１５】
（車両制御装置の構成）
車両制御装置１０は、たとえばＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）であり、処理部１００と、記憶部１１０と、通信部１２０とを備える。なお車両制御装置１０の形態に特に制限はない。たとえば、車両制御装置１０は、外界センサ群３０に統合されてもよい。本実施の形態における車両制御装置１０およびログ記録再生装置２０は、ログ記録モードとログ再生モードの２つの動作モードを備える。車両制御装置１０およびログ記録再生装置２０は、ログ記録モードでは車両に搭載されてログを記録する。車両制御装置１０およびログ記録再生装置２０は、ログ再生モードでは車両制御システム１上で動作させても良いが、車両制御システム１と物理的に離間した場所、たとえば室内の机上で動作させてもよい。
【００１６】
記憶部１１０には不図示のアプリケーションＡが格納されており、このアプリケーションＡが本実施の形態における基準となるアプリケーションである。すなわちアプリケーションＡが実行されるとシーケンス番号がカウントアップされる。詳しくは後述する。なお以下では、アプリケーションＡを「アプリＡ」とも呼ぶ。
【００１７】
処理部１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算処理装置）、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を備え、ＣＰＵが記憶部１１０に格納された不図示のプログラムをＲＡＭに展開して実行することにより以下の機能を実現する。処理部１００はその機能として、センサ情報取得部１０１、アプリケーション実行管理部１０２、ログ生成部１０３、およびログ再生部１０４を備える。処理部１００は、車両制御装置１０に外部から停止命令が入力されると、センサ情報取得部１０１、アプリケーション実行管理部１０２、ログ生成部１０３、およびログ再生部１０４に停止指令を出力する。
【００１８】
センサ情報取得部１０１はログ記録モードのみで動作する。センサ情報取得部１０１は、車両の周辺に関連する周辺環境情報と、車両の動きに関連する車両センサ情報とを取得して、これらを「出力値」としてアプリケーション入出力データ群１１１に格納する。
さらにセンサ情報取得部１０１は、この出力値および出力値をアプリケーション入出力データ群１１１に格納した時刻を関連付けてログデータバッファ１１４に格納する。センサ情報取得部１０１は、出力値を外界センサ群３０および車両センサ群４０から取得する。周辺環境情報とは、たとえば車両の周辺に存在する障害物の情報や、車両の周辺における道路の特徴を示す特徴物等の情報等である。なお車両の周辺に存在する障害物とは、たとえば車両の周囲を移動している他車両、自転車、歩行者等の移動体や、車両の周囲の道路上で静止している駐車車両、落下物、設置物等である。車両センサ情報とは、たとえば車両の位置、走行速度、操舵角、アクセルの操作量、ブレーキの操作量等である。センサ情報取得部１０１により取得された周辺環境情報と車両センサ情報は、アプリケーション入出力データ群１１１として記憶部１１０に格納される。
【００１９】
アプリケーション実行管理部１０２は、ログ記録モードおよびログ再生モードの両方で動作する。アプリケーション実行管理部１０２は、記憶部１１０に格納されているアプリケーション実行パラメータ群１１２からアプリケーションＡの実行周期を読み取り、アプリケーションＡをその実行周期ごとに実行させる。またアプリケーション実行管理部１０２は、アプリケーションＡが実行されるごとにシーケンス番号を増加させ、シーケンス番号とそのシーケンスが開始された時刻を後述するシーケンス履歴１１５に記録する。
【００２０】
ログ生成部１０３は、ログ記録モードのみで動作し、ログデータバッファ１１４に格納される出力値、および時刻情報に基づきログデータ１１４Ａを作成する。ログ生成部１０３は作成したログデータ１１４Ａをログデータバッファ１１４に保存し、そのログデータ１１４Ａを通信部１２０を介してログ記録再生装置２０に送信する。ただしログ生成部１０３は、作成したログデータ１１４Ａをログデータバッファ１１４に格納することなくそのままログ記録再生装置２０に送信してもよい。
【００２１】
ログ再生部１０４は、ログ再生モードのみで動作し、通信部１２０を介してログ記録再生装置２０から受信したログデータ１１４Ａから出力値を抽出する。そしてログ生成部１０３は、ログデータ１１４Ａの解析結果に基づきその出力値をアプリケーション入出力データ群１１１へ格納するべきタイミングを算出し、そのタイミングに出力値をアプリケーション入出力データ群１１１に格納する。
【００２２】
記憶部１１０は、たとえば、ＨＤＤ（ＨＡＲＤ  Ｄｉｓｋ  Ｄｒｉｖｅ）やフラッシュメモリである。ただしＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を含んで構成されてもよい。記憶部１１０には、処理部１００がその機能を実現するために実行するプログラム、周期的に実行されるアプリケーション、車両制御装置１０が動作するために必要なデータ群などが格納される。具体的には、記憶部１１０には、アプリケーション入出力データ群１１１、アプリケーション実行パラメータ群１１２、ログ再生パラメータ群１１３、ログデータバッファ１１４、および不図示のアプリケーションＡが格納される。
【００２３】
アプリケーション入出力データ群１１１には、アプリケーションＡに入力される情報、およびアプリケーションＡから出力される情報が格納される。具体的にはアプリケーション入出力データ群１１１には、車両の周辺に関連する周辺環境情報や、車両の動きに関連する車両センサ情報、およびアプリケーションＡがそれらを処理した情報が格納される。ログ記録モードでは、センサ情報取得部１０１とアプリケーションＡがアプリケーション入出力データ群１１１へデータを格納する。ログ再生モードでは、ログ生成部１０３がアプリケーション入出力データ群１１１へデータを格納する。
【００２４】
アプリケーション実行パラメータ群１１２には、車両制御装置１０において実行されるアプリケーションＡに関する設定情報、および車両制御装置１０が次回起動時に実行すべき動作モードが格納される。アプリケーションＡに関する設定情報とは、たとえば、アプリケーションＡの実行周期や初回遅延時間などである。アプリケーション実行管理部１０２は、アプリケーション実行パラメータ群１１２を利用してアプリケーションの実行を管理する。アプリケーション実行パラメータ群１１２は、車載ネットワーク６０に接続された不図示のターミナル装置から書き換え可能である。たとえばオペレーターが車両制御装置１０の動作に不具合を発見すると、以下のように車両制御装置１０の動作モードをログ記録モードからログ再生モードに変更する。すなわちオペレータは、ターミナル装置を用いてアプリケーション実行パラメータ群１１２に格納される動作モードをログ再生モードに書き換え、車両制御装置１０の電源を再投入する。
【００２５】
アプリケーション実行パラメータ群１１２に含まれる初回遅延時間とは、アプリケーションの初回の実行タイミングを決定するパラメータである。ただしここでいう初回とは、車両制御装置１０が起動するごとの初回である。たとえば初回遅延時間がゼロの場合は車両制御装置１０が起動した直後にそのアプリケーションが実行される。すなわちあるアプリケーションの初回遅延時間がＴｄ、個別周期がＴｉの場合は、そのアプリケーションは車両制御装置１０が起動した時刻をゼロとすると、Ｔｄ、Ｔｄ＋Ｔｉ、Ｔｄ＋２×Ｔｉ、Ｔｄ＋３×Ｔｉの時刻に実行される。ただし本実施の形態では、初回遅延時間はゼロとする。
【００２６】
ログ再生パラメータ群１１３には、ログ再生モードにおいてログ生成部１０３の動作を決定するパラメータである格納遅延シーケンスが格納される。格納遅延シーケンスとは、ログ再生モードにおいて最初に通信部１２０が受信したログデータ１１４Ａをアプリケーション入出力データ群１１１へ格納するタイミングを決定する際に使用するパラメータである。たとえば格納遅延シーケンスが「３」であり、ログ再生モードにおいてシーケンス番号が「５」の時に通信部１２０が最初のログデータ１１４Ａを受信した場合は、以下のように処理が行われる。すなわち、受信時のシーケンス番号に格納遅延シーケンスを加えたシーケンス番号、すなわち５＋３＝８により、シーケンス番号が「８」の時に最初のログデータ１１４Ａに含まれる出力値がアプリケーション入出力データ群１１１に入力される。なおログ再生パラメータ群１１３には格納遅延シーケンス以外のパラメータが格納されてもよい。
【００２７】
ログデータバッファ１１４は、ログ記録モードにおいてログデータ１１４Ａおよびログデータ１１４Ａを作成するための情報が格納される。ログデータ１１４Ａを作成するための情報とは、出力値、およびその出力値がアプリケーション入出力データ群１１１に入力された時刻である。またログデータバッファ１１４は、ログ再生モードにおいて、通信部１２０がログ記録再生装置２０から受信するログデータ１１４Ａが一時的に保存される。
【００２８】
図２（ａ）は出力値にタイムスタンプを含む場合のログデータ１１４Ａのフォーマットを示す図、図２（ｂ）は出力値にタイムスタンプを含まない場合のログデータ１１４Ａのフォーマットを示す図である。ログデータ１１４Ａは、図２（ａ）に示すように、出力値、シーケンス番号、後述するオフセット値、およびタイムスタンプ補正情報の４つから構成される。ただし出力値がタイムスタンプを含まない場合は、図２（ｂ）に示すようにタイムスタンプ補正情報を備えない。なお出力値にタイムスタンプを含む場合は、タイムスタンプ補正情報を用いて後述するようにタイムスタンプを補正するので、出力値からはタイムスタンプを削除してもよい。図１に戻って説明を続ける。
【００２９】
記憶部１１０に格納されるシーケンス履歴１１５は、それぞれのシーケンス番号が開始された時刻を示す情報である。シーケンス履歴１１５はアプリケーション実行管理部１０２によって作成される。なおシーケンス履歴１１５はログデータ１１４Ａとともにログ記録再生装置２０に送信されてもよい。
【００３０】
図３は、シーケンス履歴１１５の一例を示す図である。図３に示す例では、アプリケーションＡの実行周期が１０ｍｓの場合を示しており、おおよそ１０ｍｓごとにシーケンス番号が更新されているが、厳密には一定ではない。図１に戻って説明を続ける。
【００３１】
記憶部１１０に格納される不図示のアプリケーションＡは、アプリケーション実行管理部１０２により周期的に実行される。ただし図３に例示したシーケンス履歴１１５において示した通り、厳密には一定時間ごとではなくいくらかの時間のずれがある。アプリケーションＡは、アプリケーション入出力データ群１１１に書き込まれた情報を即座に読み込む。すなわちアプリケーション入出力データ群１１１に出力値が書き込まれた時刻はアプリケーションＡに出力値が入力された時刻とみなすことができる。またアプリケーションＡは、アプリケーション入出力データ群１１１に書き込みを行う際にはログデータバッファ１１４に同じ情報を出力するとともにその出力時刻をログデータバッファ１１４に書き込む。
【００３２】
通信部１２０は各種通信プロトコルに基づいて車両に搭載された他の装置と通信する。通信部１２０は、たとえば、ＩＥＥＥ８０２．３またはＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信規格に準拠したネットワークカードを含んで構成される。なお、通信部１２０と車両に搭載された他の装置との間の接続形態は、Ｅｔｈｅｒｎｅｔのような有線接続に限定されることはなく、Ｂｌｕｅｔｏｏｔｈ（登録商標）や無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの近距離無線接続であってもよい。通信部１２０は、ログ記録モードにおいて、ログ生成部１０３から出力されるログデータ１１４Ａをログ記録再生装置２０に送信する。通信部１２０は、ログ再生モードにおいて、ログ記録再生装置２０から受信するログデータ１１４Ａをログデータバッファ１１４に格納するとともに、ログ再生部１０４にログデータ１１４Ａの受信を伝達する。
【００３３】
（ログ記録再生装置の構成）
ログ記録再生装置２０は、ＣＰＵ、ＲＯＭ、およびＲＡＭを備える、たとえばＥＣＵである。ログ記録再生装置２０は、ログ記録モードとログ再生モードの２つの動作モードを有し、ログ記録モードではログ記録機能を発揮しログ再生モードではログ再生機能を発揮する。ログ記録再生装置２０の動作モードは、不図示のＤＩＰスイッチの設定により、または外部からの通信により変更可能である。ログ記録機能とは、車両制御装置１０から車載ネットワーク６０に出力されたログデータ１１４Ａを記録する機能である。ログ再生機能とは、ログ記録機能により記録したログデータ１１４Ａを再生して車載ネットワーク６０に出力する機能である。ログ記録再生装置２０は、ログ再生時のログデータ１１４Ａの出力間隔を、ログデータ１１４Ａの記録時と同等となるように制御する。ログ記録再生装置２０は、通信部２２０、ログデータ群２１０、およびログ記録再生部２００を備える。
【００３４】
通信部２２０は各種通信プロトコルに基づいて車両制御装置１０とログデータ１１４Ａのやり取りを行う。通信部２２０は、たとえば、ＩＥＥＥ８０２．３またはＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信規格に対応する。なお通信部２２０と他の装置との間の接続形態は有線接続に限定されず、Ｂｌｕｅｔｏｏｔｈ（登録商標）や無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの無線接続であってもよい。
【００３５】
ログデータ群２１０はたとえばＨＤＤやフラッシュメモリである。ログデータ群２１０には、車両制御装置１０から取得したログデータ１１４Ａ、およびそのログデータ１１４Ａの受信時刻が格納される。ログデータ群２１０は、ログ記録再生部２００により書き込みおよび読み出しが行われる。
【００３６】
ログ記録再生部２００は、ログ記録モードでは、車両制御装置１０から受信したログデータ１１４Ａを受信時刻を関連付けてログデータ群２１０へ格納する。ただし通信部２２０は、受信時刻に代えてログデータ１１４Ａを受信した時間の間隔を記録してもよい。ログ記録再生部２００は、ログ再生モードでは、ログデータ群２１０に格納されているログデータ１１４Ａを、受信時と同一の時間間隔で車載ネットワーク６０に出力する。
【００３７】
（車両制御装置の動作）
図４〜図７を参照して、車両制御装置１０のセンサ情報取得部１０１、アプリケーション実行管理部１０２、ログ生成部１０３、およびログ再生部１０４の動作を説明する。なおいずれの動作も非同期に実行される。
【００３８】
図４は、センサ情報取得部１０１の動作を示すフローチャートである。以下に説明する各ステップの実行主体は車両制御装置１０のＣＰＵである。前述のとおり、センサ情報取得部１０１はログ記録モードのみで動作する。
【００３９】
ステップＳ３０１において、センサ情報取得部１０１は、センサデータを外界センサ群３０と車両センサ群４０から取得する。センサ情報取得部１０１がセンサデータを取得するタイミングには特に制限はない。外界センサ群３０や車両センサ群４０から車載ネットワークに出力されたセンサデータを受信したのを検知して、その度に取得してもよい。もしくは、センサ情報取得部１０１は外界センサ群３０や車両センサ群４０の動作とは関係なく、タイマーをセットして定期的にセンサデータを取得してもよい。
【００４０】
続くステップＳ３０２において、センサ情報取得部１０１は、センサデータをアプリケーション入出力データ群１１１へ格納する。続くステップＳ３０３において、センサ情報取得部１０１は、現在時刻およびステップＳ３０２において格納したセンサデータと同一のデータを組み合わせてログデータバッファ１１４へ格納する。続くステップＳ３０４において、車両制御装置１０が停止指令を受けたか否かを判断し、停止指令を受けたと判断する場合は図４に示す動作を終了し、停止指令を受けていないと判断する場合はステップＳ３０１に戻る。
【００４１】
図５は、アプリケーション実行管理部１０２の動作を示すフローチャートである。以下に説明する各ステップの実行主体は車両制御装置１０のＣＰＵである。アプリケーション実行管理部１０２は、動作モードによらず以下に説明するように同様の動作を行う。
【００４２】
アプリケーション実行管理部１０２は、車両制御装置１０が起動するとステップＳ３１１とステップＳ３２１の処理を並行して開始する。ステップＳ３１１では、アプリケーション実行管理部１０２は、シーケンス数を示す変数であるＮにゼロを代入する。続くステップＳ３１２では、アプリケーションＡが実行されたか否かを判断する。アプリケーションＡが実行されたと判断する場合はステップＳ３１３に進み、アプリケーションＡが実行されていないと判断する場合はステップＳ３１２に留まる。
【００４３】
ステップＳ３１３ではアプリケーション実行管理部１０２は、変数Ｎをインクリメント、すなわち変数Ｎの値を１増加させる。続くステップＳ３１４ではアプリケーション実行管理部１０２は、シーケンス履歴１１５に現在の時刻、および変数Ｎの値、すなわち現在のシーケンス番号を記録する。続くステップＳ３１７ではアプリケーション実行管理部１０２は、停止指令を受けたか否かを判断し、停止指令を受けたと判断する場合は図５に示すフローチャートの動作を終了し、停止指令を受けていないと判断する場合はステップＳ３１２に戻る。
【００４４】
ステップＳ３２１ではアプリケーション実行管理部１０２は、設定された初回遅延時間だけ待機し、続くステップＳ３２２ではアプリケーションＡを実行する。続くステップＳ３２３ではアプリケーション実行管理部１０２は、アプリケーションＡの実行周期だけ待機する。続くステップＳ３２４ではアプリケーション実行管理部１０２は、停止指令を受けたか否かを判断し、停止指令を受けたと判断する場合は図５に示すフローチャートの動作を終了し、停止指令を受けていないと判断する場合はステップＳ３２２に戻る。
【００４５】
図６は、ログ生成部１０３の動作を示すフローチャートである。前述のとおり、ログ生成部１０３はログ記録モードにおいてのみ動作する。以下に説明する各ステップの実行主体は車両制御装置１０のＣＰＵである。ログ生成部１０３が動作を開始するタイミングに特に制限はない。たとえば、ログデータバッファ１１４にデータと格納時刻情報が格納されたことをログ生成部１０３が検知して、その度に動作を開始してもよいし定期的に動作を開始してもよい。
【００４６】
ステップＳ３４１において、ログ生成部１０３は、ログデータバッファ１１４に格納された出力値と時刻の組み合わせを読み込む。続くステップＳ３４２において、ログ生成部１０３は、シーケンス履歴１１５を読み込む。続くステップＳ３４３において、ログ生成部１０３は、ステップＳ３４１において読み込んだ時刻がいずれのシーケンス番号に該当するかを特定する。たとえばシーケンス履歴１１５が図３に示すものであった場合に、時刻が「２５．６７」の場合には、「２０．０３」と「２９．９９」の間なのでシーケンス番号は「３」と特定される。続くステップＳ３４４において、ログ生成部１０３は、オフセット値を算出する。オフセット値とは、シーケンスの開始時刻からの経過時間を示す値である。たとえば時刻が「２５．６７」の場合には、前述のとおりシーケンス番号が「３」と特定されるので、オフセット値は「２５．６７」からシーケンス番号「３」の開始時刻である「２０．０３」を減算した「５．６４」と算出される。
【００４７】
続くステップＳ３４５ではログ生成部１０３は、タイムスタンプ補正情報を作成する。タイムスタンプ補正情報は、受信時刻と出力値に含まれるタイムスタンプの差として算出される。たとえば「２５．００」というタイムスタンプを含む出力値が時刻「２５．６７」とともにログデータバッファ１１４に格納されている場合は、タイムスタンプ補正情報は「０．６７」である。ただし出力値にタイムスタンプが含まれない場合は本ステップは実行しない。続くステップＳ３４６ではログ生成部１０３は、出力値、シーケンス番号、およびオフセット値、およびタイムスタンプ補正情報を組み合わせてログデータ１１４Ａを作成する。そしてログ生成部１０３は、作成したログデータ１１４Ａをログデータバッファ１１４に格納するとともに通信部１２０を介してログ記録再生装置２０に送信する。またログ生成部１０３は、作成したログデータ１１４Ａに対応する出力値と時刻情報の組み合わせをログデータバッファ１１４から削除する。
【００４８】
続くステップＳ３４７ではログ生成部１０３は、停止指令を受けたか否かを判断し、停止指令を受けたと判断する場合は図６に示すフローチャートの動作を終了し、停止指令を受けていないと判断する場合はステップＳ３４１に戻る。
【００４９】
図７は、ログ再生部１０４の動作を表すフローチャートである。以下に説明するフローチャートの各ステップの実行主体はログ記録再生装置２０のＣＰＵである。
【００５０】
ステップＳ３７１において、ログ再生部１０４は、ログ再生パラメータ群１１３から格納遅延シーケンスを読み込む。続くステップＳ３７２において、ログ再生部１０４は、１つ目のログデータ１１４Ａを通信部１２０が受信したか否かを判断する。ログ再生部１０４は受信したと判断する場合はステップＳ３７３に進み、受信していないと判断する場合はステップＳ３７２に留まる。ステップＳ３７３ではログ再生部１０４は、変数Ｊに受信した１つ目のログデータ１１４Ａに含まれるシーケンス番号を代入する。なおこの変数Ｊは、後述するステップＳ３８３において参照される。続くステップＳ３７４ではログ再生部１０４は、変数Ｎに現在のシーケンス番号、換言すると通信部１２０が１つ目のログデータ１１４Ａを受信した際の時刻におけるシーケンス番号を代入する。続くステップＳ３７５ではログ再生部１０４は、変数ＭにステップＳ３７４において代入した変数Ｎの値と、ステップＳ３７１において読み込んだ格納遅延シーケンスとの和を代入する。
【００５１】
続くステップＳ３７６ではログ再生部１０４は、現在のシーケンス番号がＭであるか否かを判断する。現在のシーケンス番号がＭであると判断する場合はステップＳ３７７に進み、現在のシーケンス番号がＭではないと判断する場合はステップＳ３７６に留まる。ステップＳ３７７ではログ再生部１０４は、受信した１つ目のログデータ１１４Ａの出力値をアプリケーション入出力データ群１１１に格納する。ただしこの際に、ログデータ１１４Ａにタイムスタンプ補正情報が含まれる場合は、ログデータ１１４Ａの出力値に含まれるタイムスタンプを補正した後にアプリケーション入出力データ群１１１に格納する。またログ再生部１０４が出力値をアプリケーション入出力データ群１１１に格納する詳細なタイミングは、そのログデータ１１４Ａに含まれるオフセット値に従う。たとえばオフセット値が「２．５」の場合は、そのシーケンスが開始されてから２．５ｍｓ後にその出力値をアプリケーション入出力データ群１１１に格納する。
【００５２】
続くステップＳ３８１ではログ再生部１０４は、通信部１２０が次のログデータ１１４Ａを受信したか否かを判断する。次のログデータ１１４Ａを受信したと判断する場合はステップＳ３８２に進み、次のログデータ１１４Ａをまだ受信していないと判断する場合はステップＳ３８１に留まる。ステップＳ３８２では、ステップＳ３８１において受信を確認したログデータ（以下、「処理対象のログデータ」）１１４Ａに含まれるシーケンス番号を変数Ｋに代入する。続くステップＳ３８３では、変数ＬにＭ＋（Ｋ−Ｊ）の値を代入する。この演算は、１つ目のログデータ１１４Ａをアプリケーション入出力データ群１１１に格納するシーケンス番号に、１つ目のログデータ１１４Ａのシーケンス番号と処理対象のログデータ１１４Ａのシーケンス番号の差を加えるものである。
【００５３】
続くステップＳ３８４ではログ再生部１０４は、現在のシーケンス番号がＬであるか否かを判断する。現在のシーケンス番号がＬであると判断する場合はステップＳ３８５に進み、現在のシーケンス番号がＬではないと判断する場合はステップＳ３８４に留まる。ステップＳ３８５では、処理対象のログデータ１１４Ａに含まれる出力値をアプリケーション入出力データ群１１１に格納する。ただしこの際に、処理対象のログデータ１１４Ａにタイムスタンプ補正情報が含まれる場合は、ログデータ１１４Ａの出力値に含まれるタイムスタンプを補正した後にアプリケーション入出力データ群１１１に格納する。本ステップにおけるタイムスタンプの補正は以下のとおりである。
【００５４】
補正後のタイムスタンプの時刻をＴｓｐ、そのログデータ１１４Ａの出力値をアプリケーション入出力データ群１１１に格納される時刻をＴｏｐ、補正前のタイムスタンプの時刻をＴｓｒ、ログ記録モードにおいてそのログデータ１１４Ａがアプリケーション入出力データ群１１１に格納された時刻をＴｏｒとすると、以下の式１が成り立つようにタイムスタンプを補正する。
Ｔｏｐ−Ｔｓｐ＝Ｔｏｒ−Ｔｓｒ・・・・（１）
【００５５】
ここで、式１の右辺の値はタイムスタンプ補正情報としてログデータ１１４Ａに格納されている。そのため、Ｔｏｐが明らかになればＴｓｐを算出できる。ここでＴｏｐは、ステップＳ３８３において算出したシーケンス番号Ｌと、ログデータ１１４Ａに含まれるオフセット値により算出できる。ただしここでは、各シーケンスの時間はアプリケーションＡの実行周期そのものとして、換言するとアプリケーションＡは実行周期どおりに実行されると仮定して計算する。したがって補正後のタイムスタンプＴｓｐは、算出したＴｏｐおよびタイムスタンプ補正情報から算出可能である。
【００５６】
またログ再生部１０４が出力値をアプリケーション入出力データ群１１１に格納する詳細なタイミングは、そのログデータ１１４Ａに含まれるオフセット値に従う。詳細はステップＳ３７７において例示したとおりである。続くステップＳ３８６ではログ再生部１０４は、停止指令を受けたか否かを判断し、停止指令を受けたと判断する場合は図７に示すフローチャートの動作を終了し、停止指令を受けていないと判断する場合はステップＳ３８１に戻る。
【００５７】
（ログ記録再生装置の動作）
図８は、ログ記録再生装置２０の動作を表すフローチャートである。以下に説明するフローチャートの各ステップの実行主体はログ記録再生装置２０のＣＰＵである。
【００５８】
ステップＳ３５１において、ログ記録再生部２００は、動作モードが記録モードと生成モードのいずれに設定されているかを判断する。記録モードに設定されていると判断する場合はステップＳ３５２に進み、再生モードに設定されていると判断する場合はステップＳ３５６に進む。
【００５９】
ステップＳ３５２において、ログ記録再生部２００は、車両制御装置１０が接続されている車載ネットワーク６０から通信部２２０がログデータ１１４Ａを受信したか否かを判断する。通信部２２０がログデータ１１４Ａを受信したと判断する場合はステップＳ３５３に進み、受信していないと判断する場合はステップＳ３５２に留まり次の受信を待つ。ステップＳ３５３において、ログ記録再生装置２０は、通信部２２０が受信したログデータ１１４Ａ、およびログデータ１１４Ａの受信時刻を取得する。続くステップＳ３５４において、ログ記録再生部２００は、ステップＳ３５３において取得したログデータ１１４Ａおよび受信時刻をログデータ群２１０へ格納する。続くステップＳ３５５では、ログ記録再生装置２０は、停止指令を受けたか否かを判断する。停止指令を受けたと判断する場合は図８に示すフローチャートの動作を終了し、停止指令を受けていないと判断する場合はステップＳ３５２に戻る。
【００６０】
ステップＳ３５５において、ログ記録再生部２００は、ログデータ群２１０を読み込む。続くステップＳ３５６において、ログ記録再生部２００は、ログデータ群２１０に含まれるログデータ１１４Ａであってまだ送信していない最も古いログデータ１１４Ａを出力する。ただしこの際に、直前に出力したログデータ１１４Ａとの時間間隔が、ログデータ１１４Ａの受信時の時間間隔と同一になるように送信タイミングを調整する。たとえば、記録時にログデータ１１４Ａが８ｍｓ、５ｍｓ、１５ｍｓの間隔で順に通信部２２０が受信した場合には、同様に８ｍｓ、５ｍｓ、１５ｍｓの間隔でログデータ１１４Ａを車載ネットワーク６０に出力する。
【００６１】
続くステップＳ３５７では、ログ記録再生部２００は、未送信のログデータ１１４Ａがログデータ群２１０に含まれるか否かを判断する。未送信のログデータ１１４Ａが存在すると判断する場合はステップＳ３５６に戻り、全てのログデータ１１４Ａを送信したと判断する場合は図８に示すフローチャートの動作を終了する。
【００６２】
（動作例）
図９は、記録モードにおける車両制御装置１０の動作例を示す図である。図９は図示左から右に向かって時間が経過しており、図中の目盛りは１０ｍｓごとに記載している。図９に示す四角Ａ１〜Ａ４はアプリケーションＡの実行タイミングを示しており、この四角の左端のタイミングに実行されたことを示している。すなわちこの四角の幅や四角の右端は特段の意味を持たない。図中の下向き矢印は出力値Ｐ１〜Ｐ４がアプリケーション入出力データ群１１１に入力されたタイミングを表している。図９に示す例において、アプリケーションＡの実行周期は１０ｍｓであるが、図９に示すように実際にはアプリケーションＡが実行される間隔は１０ｍｓとは必ずしも一致しない。
【００６３】
シーケンス番号は、アプリケーション実行管理部１０２によってアプリＡが実行されるごとにカウントされる。図９では丸囲みの数字がシーケンス番号を示しており、シーケンスの区切りがアプリＡの実行タイミングであることが示されている。すなわち出力値Ｐ１とＰ２はシーケンス番号１に属し、出力値Ｐ３とＰ４はシーケンス番号３に属することが示されている。仮に、アプリＡの実際の実行タイミングを考慮せず、アプリＡの実行周期である１０ｍｓごとに一律にシーケンス番号を更新した場合には、１０ｍｓよりも後に発生する出力値Ｐ２はシーケンス番号２に、２０ｍｓよりも前に発生する出力値Ｐ３もシーケンス番号２に属する。すなわちその場合はシーケンス番号ではアプリＡの実行タイミングと出力値が入力されるタイミングとの前後関係を正しく表すことができない。
【００６４】
ログ生成部１０３は、アプリケーション実行管理部１０２が生成したシーケンス履歴１１５を参照してそれぞれの出力値が属するシーケンス番号を特定する。そしてログ生成部１０３は、出力値Ｐ１〜Ｐ４のオフセット値を、それぞれが属するシーケンスの開始時刻から経過時間として図９に示すＱ１〜Ｑ４として算出する。
【００６５】
上述した実施の形態によれば、次の作用効果が得られる。
（１）車両制御装置１０は、アプリケーションＡを繰り返し実行するアプリケーション実行管理部１０２と、アプリケーションＡが１回実行される間隔を１つのシーケンスとし、アプリケーションの実行に基づきシーケンス数をカウントするアプリケーション実行管理部１０２と、アプリケーションＡへ入力される出力値、および出力値がアプリケーションＡへ入力される時刻のシーケンス数の組み合わせを含む情報をログデータ１１４Ａとして記録するログ生成部１０３とを備える。すなわち車両制御装置１０は、アプリケーションＡへデータ入力のタイミングをアプリケーションＡの実行回数に基づくシーケンス数を使って記録する。そのためアプリケーションＡが実行されるタイミングとアプリケーションＡにデータが入力されるタイミングの前後関係を正確に記録することができる。
【００６６】
（２）車両制御装置１０は、入力ログに含まれるシーケンス数が示すシーケンスの開始時刻から、出力値がアプリケーションＡへ入力される時刻までを示す時間をオフセット値として算出するログ生成部１０３（図６のステップＳ３４４）を備える。ログ生成部１０３は、図２（ｂ）に示すように出力値、シーケンス番号、およびオフセット値を組み合わせて記録する。そのためアプリケーションＡにデータが入力されたタイミングを詳細に記録することができる。
【００６７】
（３）車両制御装置１０は、出力値に含まれる時刻情報と出力値がアプリケーションＡへ入力される時刻との差を時刻補正情報として算出するログ生成部１０３（図６のステップＳ３４５）を備える。ログ生成部１０３は、図２（ａ）に示すように出力値とタイムスタンプ補正情報を組み合わせて記録する。そのため出力値に含まれるタイムスタンプを補正するための情報をあわせて記録することができる。
【００６８】
（４）車両制御装置１０は、ログデータ１１４Ａを送信する通信部１２０を備える。ログ生成部１０３は、通信部１２０を介してログデータ１１４Ａをログ記録再生装置２０に記録する。そのため車両制御装置１０の記憶領域が乏しい場合や車両制御装置１０が不揮発性メモリを備えない場合であっても、車両制御装置１０の動作ログを記録することができる。
【００６９】
（５）車両制御装置１０は、複数の入力ログが記録されたログ格納部と、ログ格納部に格納された複数のログデータ１１４Ａに含まれるそれぞれの出力値を、出力値に組み合わされたシーケンス数に基づきアプリケーションＡに入力するログ再生部１０４を備える。そのため車両制御装置１０は、アプリケーションＡに出力値が入力されるタイミングとアプリケーションＡの実行タイミングとの前後関係を再現することができる。
【００７０】
（６）車両制御装置１０は、複数の入力ログが記録されたログデータバッファ１１４と、ログデータバッファ１１４に格納された複数のログデータ１１４Ａに含まれるそれぞれの出力値を、出力値に組み合わされたシーケンス数およびオフセット値に基づきアプリケーションＡに入力するログ再生部１０４を備える。そのため車両制御装置１０はアプリケーションＡに出力値が入力されたタイミングを詳細に再現することができる。これにより、たとえば不具合の再現性を向上することができる。
【００７１】
（７）車両制御装置１０は、複数の入力ログが記録されたログデータバッファ１１４と、ログデータバッファ１１４に格納された複数のログデータ１１４Ａに含まれるそれぞれの出力値に含まれる時刻情報をタイムスタンプ補正情報に基づき補正し、補正された出力値を出力値に組み合わされたシーケンス数に基づきアプリケーションＡに入力するログ再生部１０４を備える。そのため車両制御装置１０は、出力値に含まれるタイムスタンプを補正したうえで、アプリケーションＡに出力値が入力されるタイミングとアプリケーションＡの実行タイミングとの前後関係を再現することができる。
【００７２】
（８）車両制御装置１０の通信部１２０はログデータ１１４Ａを複数受信し、通信部１２０が受信したログデータ１１４Ａが記録されるログデータバッファ１１４と、通信部１２０が最初に受信するログデータ１１４Ａである初回ログを受信した時刻から初回ログに含まれる出力値をアプリケーションＡに入力する時刻までの間隔を示す情報である格納遅延サイクルが格納されるログ再生パラメータ群１１３と、通信部１２０が初回ログを受信した際のシーケンス数、および格納遅延サイクルに基づき初回ログに含まれる出力値をアプリケーションに入力するシーケンスである初回ログ入力シーケンスを決定し、初回ログ入力シーケンスに初回ログに含まれる出力値をアプリケーションＡに入力するログ再生部１０４を備える。そのため車両制御装置１０は、規定された格納遅延サイクルだけ待機してからログの再生を開始するので、いわばバッファリングを行うことになり、車載ネットワーク６０に問題が生じてもログの再生への悪影響を低減させることができる。
【００７３】
（９）車両制御装置１０のログ再生部１０４は、通信部１２０が受信する２つ目以降の入力ログである後続ログに含まれる出力値を、初回ログに含まれるシーケンス数、後続ログに含まれるシーケンス数、および初回ログに含まれる出力値がアプリケーションＡに入力されるシーケンスに基づき決定されるシーケンスにアプリケーションＡに入力する。そのため格納遅延サイクルだけ待機したのちに、後続するログデータ１１４Ａの出力値をログ記録モード時を再現するようにアプリケーション入出力データ群１１１に入力することができる。
【００７４】
―変形例―
上述した実施の形態は以下のように変形してもよい。
（１）車両制御装置１０はアプリケーション入出力データ群１１１を備えず、車両制御装置１０は出力値をアプリケーションＡに直接入力してもよい。
（２）車両制御装置１０は、ログ記録モードにおいてオフセット値を記録しなくてもよい。この場合は、ログ再生モードにおいてオフセット値を用いた出力値をアプリケーション入出力データ群１１１に入力するタイミングの詳細な決定は行わない。
【００７５】
（３）アプリケーションＡはアプリケーション入出力データ群１１１に入力された情報を即座に読み込まず、必要に応じて読み込んでもよい。
（４）車両制御装置１０は、アプリケーションＡ以外のアプリケーションも定期的に実行してもよい。この場合は、各アプリケーションの実行周期の公倍数で算出した繰り返し単位により、シーケンス数を数えることとすればよい。たとえば、実行周期がそれぞれ２０ｍｓと５０ｍｓの二つのアプリケーションを実行する場合は、その最小公倍数は１００ｍｓであるので、１００ｍｓごとを目標として実行されるアプリケーションの実行回数を基準として、シーケンス番号をカウントアップすればよい。
（５）車両制御装置１０は、アプリケーションＡが２回以上実行することを条件にカウントアップしてもよい。
【００７６】
車両制御装置１０が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと車両制御装置１０が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やＦＰＧＡにより実現されてもよい。上述した複数の変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００７７】
１…車両制御システム
１０…車両制御装置
２０…ログ記録再生装置
６０…車載ネットワーク
１００…処理部
１０１…センサ情報取得部
１０２…アプリケーション実行管理部
１０３…ログ生成部
１０４…ログ再生部
１１０…記憶部
１１１…アプリケーション入出力データ群
１１２…アプリケーション実行パラメータ群
１１３…ログ再生パラメータ群
１１４…ログデータバッファ
１１５…シーケンス履歴
１２０…通信部
２００…ログ記録再生部
２１０…ログデータ群
【図１】
2018185709.tif 000003
【図２】
2018185709.tif 000004
【図３】
2018185709.tif 000005
【図４】
2018185709.tif 000006
【図５】
2018185709.tif 000007
【図６】
2018185709.tif 000008
【図７】
2018185709.tif 000009
【図８】
2018185709.tif 000010
【図９】
2018185709.tif 000011