はじめに
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
参考
OBDIIの複数PID同時通信 (PC->ELM327->ECU編)|sz2のブログ|sz2出張所 - みんカラ
以上:)