OBD2を速く読み過ぎる


5

私はELM327互換ケーブルを使用してOBD2から私の2001年のVWゴルフmk4読書パラメータのための遠隔測定アプリケーションを作るためにソフトウェアを書いています。

私はこれまで成功しました。私が今抱えている問題は、ソフトウェアが遅すぎるということです(毎秒3 - 4の値)。問題の中には私のソフトウェアにあるものもあれば、車内のOBD2プロトコルの制限事項にあるものもありますが、それはすべて私のソフトウェアによるもので、私が読める程度に改善するつもりです。できるだけ速く。

2002年以前にOBD2規格を使用している車で、100ミリ秒より早く値を読み取ることが禁じられているケーブルの説明書を読みました。それは問題だという 5月 発生しますが、詳細には入りません。

私の質問は:誰がどんな種類の問題が発生する可能性があるのか​​についての考えを持っていますか? 読む OBD2から高速にするための情報、および問題が発生した場合は、& Bを削除するだけで修正できます。バッテリー端子を車に再接続しますか?

回答:


6

ELMのドキュメント これが照会のみの問題ではないことを示します。その文書の31ページで、問題はJ1850要求がOBDシステムに到着する速度の問題であることがわかりました(これは2002年4月に行われた J1979規格 )具体的には、100ミリ秒を超える速度(1秒あたり10とも呼ばれます)でのクエリに対して警告しますが、具体的な内容は提供しません。

あなたが単に受動的にデータを読んでいるのではないことを理解することは重要です。クエリ - レスポンス非同期ループが進行中です。私が言える限りでは、あまりにも多くのクエリが速すぎるとOBDシステムの送信メッセージキューがオーバーフローする可能性があります。そのような状況は非常に多くのように聞こえるので バッファオーバーフロー問題 エンジンコンピュータ全体でなくても、OBDシステムに致命的な損傷を与える可能性があります。

それは私がおかしなことです:それはもちろんあなたの車です。

これで、OBD監視ツールはUbuntuから無料で入手できるように見えます。の obdgpsloggerのマニュアルページ 興味のある2つのオプションを表示します。

   -a|--samplerate <samples-per-second>
          Sample at most this many times a second. The software will sleep
          temporarily at the end of each loop if appropriate. Keep in mind
          there is an upper limit to samplerate, typically capped  by  I/O
          on  your  serial  port.  Set  this  to zero to sample as fast as
          possible.  BE WARNED. Values greater than ten here are forbidden
          for  cars  predating April 2002. If you think your car postdates
          early 2002, and you'd like to sample as fast as possible, the -o
          option may help

   -o|--enable-optimisations
          Enable  certain  elm327  optimisations. This will [usually] make
          sampling faster [not a noticeable amount if you're only sampling
          once a second], but makes it much easier to accidentally disobey
          the standard if you're sampling as fast as possible.

そのページから、あなたが達成する可能性が最も高い実際のレートは次のものからもたらされると思われます。

obdgpslogger --samplerate 10 --enable-optimisations

私はあなたがそうであるようにドキュメンテーションから同じことを得ました、しかし私は自動車規格でバッファオーバーフローのようなそのようなずさんな問題があるだろうことに驚きました。通常、彼らは非常に厳しいテスト体制を持っています。とにかく。私は自分の車でテストしましたが、どうしてもしたくても、投票が速くなることはありません。ご意見ありがとうございました。
Nicu Surdu

「しかし、具体的な内容は提供しないでください。」それは私を怒らせ、それが私が探しているものです。
Nicu Surdu

1
公正に言えば、@ NicolaeSurduは、2002年4月以前の自動車の挙動は未定義のようです。サードパーティがすべての自動車に関する有用な情報を提供しているとは限らないのは明らかではありません。とにかく、あなたはまだ限られたデータから有用なモニタリングシステムを作り出すことができます:例えば、適応内挿/外挿フィルターのためのカルマンフィルター: cs.unc.edu/~welch/kalman
Bob Cross

2

ほとんどのOBDソフトウェアツールは、1ビューにつき4つまたは5つ以上の出力を表示することはめったにありません。一度に多すぎる値を読み込もうとしたときにも問題が発生します。

経験から言えば、私はさまざまな価値観をポーリングするための戦略を立てることを提案します。例えば、あなたは本当に投票する必要があるだけです

  1. 2秒ごとに車速
  2. 1秒ごとにRPM。
  3. 30秒ごとの燃料レベル。
  4. 5秒ごとの電池電圧。
  5. 吸気マニホールド圧力、別名ブースト圧力1秒ごと。
  6. クーラント温度は10秒ごと
  7. 1〜2秒ごとにエンジン負荷。

トリックは、より頻繁に、より頻繁に変化するものをポーリングすることです。

次回、オンボードコンピュータを搭載した車の中で、インスタント消費ビューに切り替えて、値がどれだけ頻繁に変化するかを確認します。私の車では、それは毎秒です。それは実際にそれがあなたが面倒なしで毎秒100msで9 PIDを読むことを可能にするので私は1秒がすばらしいベースラインであると言うでしょう。


「トリックは、より頻繁に、より頻繁に変化するものをポーリングすることです」今度は、私が検討しなかったことが卑猥に明白なことです。ご協力ありがとうございます
Nicu Surdu

経験は最高の先生です;)
Captain Kenpachi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.