ソリオ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種類)

> 01050c0d
008
0: 41 05 7A 0C 0B AE
1: 0D 00 00 00 00 00 00

回答が2行になります

0x008 = 0d8 → データ数8byte(8個)

0Dの回答の00までで8個です

その先は13個まで00で埋まっています

(ELM327のMultiline Responsesを参照)

  • PID1 0x05
  • PID2 0x0c
  • PID3
  • 送信 : 0x0d (Vehicle speed)
  • 回答 : 0x00
  • 値 : 0km/h

PID 4byte(4種類)

> 01050c0d0f
00A
0: 41 05 7A 0C 0A 06
1: 0D 00 0F 4A 00 00 00
  • 0x00A = 0d10 → データ数10byte
  • PID1 0x05
  • PID2 0x0c
  • PID3 0x0d
  • PID4
  • 送信 : 0x0f (Intake air temperature)
  • 回答 : 0x4A
  • 値 : 74 - 40 = 34℃

PID 5byte(5種類)

> 01050c0d0f1f
00D
0: 41 05 7A 0C 0B B0
1: 0D 00 0F 4B 1F 0A AB
  • 0x00D = 0d13 → データ数13byte
  • PID1 0x05
  • PID2 0x0c
  • PID3 0x0d
  • PID4 0x0f
  • PID5
  • 送信 : 0x1f (Run time since engine start)
  • 回答 : 0x0AAB
    • 0x0A = 0d10
    • 0xAB = 0d171
  • 値 : 256 * 10 + 171 = 2731

PID 6byte(6種類)

> 01050c0d0f1f11
00F
0: 41 05 7A 0C 0A 1C
1: 0D 00 0F 4B 1F 0A B2
2: 11 22 00 00 00 00 00
  • 0x00F = 0d15 → データ数15byte
  • PID1 0x05
  • PID2 0x0c
  • PID3 0x0d
  • PID4 0x0f
  • PID5 0x1f
  • PID6
  • 送信 : 0x11 (Throttle position)
  • 回答 : 0x22
  • 0x22 = 0d34
  • 値 : (100 / 255 ) * 34 = 13.3%

PID 7byte(7種類)

> 01050c0d0f1f1142
?

ハテナになる

  • PID1 0x05
  • PID2 0x0c
  • PID3 0x0d
  • PID4 0x0f
  • PID5 0x1f
  • PID6 0x11
  • PID7
  • 送信 : 0x42

参考

minkara.carview.co.jp