Quantcast
Channel: ザリガニが見ていた...。
Viewing all articles
Browse latest Browse all 54

アウトランダーPHEVと対話する

$
0
0

何と!ELM327のWi-Fiバージョンにはtelnetで接続できるらしい。さっそく接続してみる。

Wi-Fi接続

telnet接続

  • ターミナル.appを起動して、以下のtelnetコマンドを実行してみた。
    • 192.168.0.10= ELM327のIPアドレス
    • 35000= ELM327の接続ポート
$ telnet 192.168.0.10 35000
Trying 192.168.0.10...
Connected to 192.168.0.10.
Escape character is '^]'.
  • Connected to 192.168.0.10.と表示されているので、接続できたみたい。
  • Escape character is '^]'.なので、control-]で接続状態を終了するようだ。

改行モードの選択

  • 接続しているはずなのに、コマンドプロンプトの>が表示されない...。
  • atzコマンドを実行(ELM327を初期化する)してみると、結果出力がすべて同じ行に出力されている模様。
  • 調べてみると、ELM327のデフォルトは改行コードにCR(キャリッジリターン=0x0D)が出力されるようだ。
  • OSXUNIXではLF(ラインフィード=0x0A)を改行コードと認識するので、どおりで改行されない訳だ...。
  • こうゆう時はLF(ラインフィード=0x0A)をオンにするatl1(AT L1)コマンドを実行しておくのだ。
    • ATコマンドは大文字・小文字どちらで入力してもOK。
    • ATに続けてスペースを入力しても、省略してもOK。
atl1
OKl1

>

はじめての対話

  • ELM327のバージョンを確認してみた。
>atiati
ELM327 v1.5
>atdp
atdp
ISO 15765-4 (CAN 11/500)

対話の終了

>^]telnet>quit
Connection closed.
$ 


以上は、ELM327とATコマンドで対話しただけ。まだ車と対話していない。

  • ATコマンドはELM327の設定をしたり、その状態を確認するコマンドである。

車とお話し

  • 車とお話しするにはOBD2のモードとパラメーター(OBD-II PIDs)を使うのだ。
  • 例えば、以下のように0105を実行してみる。
    • 01=モード(現在のデータを取得する)
    • 05=パラメーター(エンジン冷却水温を指定)
$ telnet 192.168.0.10 35000
Trying 192.168.0.10...
Connected to 192.168.0.10.
Escape character is '^]'.
atl1
OKl1

>0105
0105
41 05 39 
  • 0105に対して、41 05 39が出力されている。
    • 41=返答であることを明示するため、モード01に0x40が加算された値が返される。
    • 05=指定したパラメーターがそのまま返される。
    • 39=16進数なので、10進数に変換すると57(=16×3+9)となる。
  • ここで、エンジン冷却水温は(摂氏)57度なのか!と早合点してはいけない。
  • エンジン冷却水温については取得データから40を減算することになっている。
    • OBD-II PIDs - Wikipedia
    • おそらく16進数にはマイナス表現がないので、0x00を(摂氏)-40度と見なしているのだ。

よって、57-40=(摂氏)17度がエンジン冷却水温となる。

  • この日の外気温は17度。PHEVは昨夜からエンジン停止中なので、冷却水温も外気温とほぼ同じ17度になっている。
  • 以上の要領で、01に続けて好みのパラメーターを指定すれば、いろいろなデータが取得できるのだ!ワクワクする。

パラメーターのサポート状況

  • 但し、車種によって、OBD2で規定されるパラメーターのサポート状況は異なる。
  • その車のOBD2パラメーターのサポート状況は、0100、0120、0140、0160...を実行してみると確認できる。
>0100
0100
41 00 BE 3F A8 13 
  • 例によって、01 00は41 00として返ってくる。
  • 続くBE 3F A8 13がパラメーターのサポート状況である。
  • BE 3F A8 13を二進数に変換すると...
        B    E    3    F    A    8    1    3
サポートビット 1011 1110 0011 1111 1010 1000 0001 0011
  • パラメーターIDと対応させてみると...
    • ビットが1であれば、そのパラメーターはサポートされている。

サポートビット
1 = サポート
パラメーターID
 
内容
 
101Monitor status since DTCs cleared.
002Freeze DTC
103Fuel system status
104Calculated engine load
105Engine coolant temperature(エンジン冷却水温)
106Short term fuel trim―Bank 1
107Long term fuel trim―Bank 1
008Short term fuel trim―Bank 2
009Long term fuel trim―Bank 2
00AFuel pressure
10BIntake manifold absolute pressure
10CEngine RPM(エンジン回転数)
10DVehicle speed(車速)
10ETiming advance
10FIntake air temperature
110MAF air flow rate
111Throttle position
012Commanded secondary air status
113Oxygen sensors present (in 2 banks)
014Oxygen Sensor 1
115Oxygen Sensor 2
016Oxygen Sensor 2
017Oxygen Sensor 2
018Oxygen Sensor 2
019Oxygen Sensor 2
01AOxygen Sensor 2
01BOxygen Sensor 2
11COBD standards this vehicle conforms to
01DOxygen sensors present (in 4 banks)
01EAuxiliary input status
11FRun time since engine start(エンジン稼働時間)
120PIDs supported [21 - 40](PIDサポート状況)

  • 同じ要領で、アウトランダーPHEVがサポートするモード01のパラメーターを調べてみる。
>0120
0120
41 20 90 17 A0 01 

>0140
0140
41 40 FE 10 80 40 

>0160
0160
NO DATA

>0180
0180
NO DATA
  • アウトランダーPHEVがサポートするモード01のパラメーターは、以下のようになった。


いろいろなお話し

  • サポートされているパラメーターをいろいろ試してみた。
# Ambient air temperature(周囲の気温)>0146
0146
41 46 3D 
# 0x3D = 61; 61 - 40 = 21℃# Control module voltage(コントロールモジュールの電圧)>0142
0142
41 42 38 A5 
# 0x38A5 = 14501; 14501 / 1000 = 14.501V# Absolute Barometric Pressure(気圧)>0133
0133
41 33 65 
# 0x65 = 101kPa = 1010hPa# Distance traveled since codes cleared(区間距離)>0131
0131
41 31 2B 3B 
# 0x2B3B = 11067km# Fuel Tank Level Input(燃料タンクの残量レベル)>012f
012f
41 2F FC 
# 0xFC = 172;  172 / 255 × 100 = 67%# OBD standards this vehicle conforms to(この車が対応しているOBDの種類>011c
011c
41 1C 0A 
# 0x0A = 10 = JOBD (Japan)# Engine RPM(エンジン回転数)>010c
010c
41 0C 00 00 
# 0x0000 / 4 = 0.00rpm# Vehicle speed(車速)>010d
010d
41 0D 00 
# 0x00 = 0km/h# Fuel system status(燃料系統の警告>0103
0103
41 03 00 00
# 0x0000 = 警告なし

ELM327の使い方

マニュアルは揃っているのだけど例によって英語。
読むだけでは、なかなかすべてを理解できない...。


数少ない日本語の情報に感謝です!


Viewing all articles
Browse latest Browse all 54

Trending Articles