ソリオMA15S ELM327 複数PID同時問い合わせ

はじめに ELM327は複数PIDを同時に扱うことができ、時短になります。 車両が対応していれば、最大6byte(6個)のpidを同時に問い合わせ可能です。 ソリオは対応してる様です。 返答データが6byte以上だと、ELM327 データシートのMultiline Responses (p44/82)に記載があるように複数行で返ってきます。 使用したもの ELM327 v1.5 結果 PIDを一つずつ増やしていき、挙動を確認しました。 PID 1byte(1種類)(通常) > 0105 41 05 7A 送信 : 0x05 (Engine coolant temperature) 回答 : 0x7A 0x7A = 0d122 値 : 122 - 40 = 82℃ PID 2byte(2種類) > 01050c 41 05 7A 0C 0A 16 順番は service(01) PID1(05) PID1のdata(7A) PID2(0C) PID2のdata1(0A) PID2のdata2(16) PID1 : 0x05 PID2 送信 : 0x0c (Engine speed) 回答 : 0x0A16 0x0A = 0d10 0x16 = 0d22 値 : (256 * 10 + 22) / 4 = 645rpm PID 3byte(3種類) ...

2025/01/12 · Last updated on 2025/03/14 · 2 min · 332 words

ソリオMA15Sが対応しているPIDを調べる

はじめに OBDから取れるデータは何か、対応しているPIDを調べてみました。 Wikiに載ってるStandard PIDsは全て対応しているわけでは無いため、ソリオが対応しているPIDを調べてみます。 使ったもの ELM327 v1.5 調べ方 Service 01 PID 00 - Show PIDs supported 上記wikiにあるように、ELM327からコマンド01 00(service 01 PID 00)を送信するとPID 01からPID 20までで、対応しているPIDのビットには1、未対応のPIDのビットには0がセットされます。 wikiの例だと、01 00の応答が0x BE 1F A8 13だった場合、これを2進数に変換すると 0b 1011 1110 0001 1111 1010 1000 0001 0011 となるため 対応してるPIDは1が立っているPID 01, 03, 04, 05, 06, 07, 0C, 0D, 0E, 0F, 10, 11, 13, 15, 1C, 1F ,20となります。 左端から見ていくため、例えば左端の0xB=0b1011では、PID 01は対応、02は未対応、03,04は対応ということになります。 PID 20が対応しているということは次の PIDs supported [$21 - $40] ということになるため、PID 21 から PID 40 が存在するということになります。 コマンド01 00と同様に考えて、01 20を送信するとPID 21 から PID 40 までの対応状況が分かります。 ...

2025/01/05 · Last updated on 2025/02/19 · 3 min · 473 words