WRX OBD2で車両情報を取得する その6 ELM327との通信テスト完了
前回、PLCから「ATZ」のコマンドを送信してもELM327で理解出来ていない状態となってしまいました。ただしELM327から受信した内容はPLCの画面上に表示は出来ています。今回はPLCから送信するコマンドをELM327で理解してもらう方法を探り、通信が行える事を確認したいと思います。
キャリッジリターン
再びELM327のデータシート(リンク先はpdf)を確認します。8ページ目にコマンドの最後には「キャリッジリターン文字(0D)」を付ける様に記載されています。キャリッジリターンが無い場合は約20秒後にその内容を中止し、「?」を表示するとあります。現状、確かにPLCのコマンド設定ではキャリッジリターンを入れていませんでした。前回の記事でその後に「?」と表示された事も、約20秒後にELM327がデータシートの記載通りの処理をした事になります。
キャリッジリターン文字の「0D」は16進数のアスキーコードで見ると「CR」になっています。また前回の記事でデータデバイスのD10に「3F0D」、D11に「0D3E」が入っていましたが、これをアスキーコードで見ると3F0Dは「?」と「CR」、0D3Eは「CR」と「>」となっていて、確かにその通りの表示だった事が分かりました。「CR」で改行されるので現状のタッチパネル画面では枠外に出てしまっている様です。この辺りはタッチパネル側の問題ですが、ちょっと分からない挙動です。
とりあえずPLCのコマンド送信設定に「0D」を追加しました。「ATZ」は文字定数として送っていますが、「0D」は16進数の定数です。またタッチパネルの画面も下記の様にとりあえず少し調整しました。PLCに修正したデータを転送して、もう一度ELM327にコマンドを送ってみます。
修正後の結果
コマンドを修正してPLCからELM327に送信すると、ELM327のランプが上記の様に点灯する様になりました(上記はgifアニメ)。「ATZ」コマンドによるリセットは、ELM327の電源ON時と同じ処理になる様です(電源ON時もランプが上記の様に点灯します)。
PLCの画面では「0D」が無かった時は「ATZ」の表示後に「?」が表示されましたが、今回は「ELM327 v1.2a」と表示される様になり、PLCから送信したコマンドをELM327が理解してリセットが行われた結果です。
さらにその後は上記の様にプロンプトが表示されます。再びPLCから送信を行うと同じ動作になります。
ちなみにELM327の電源を入れた直後は上記の様になっていました。
これでATコマンドによるPLCとELM327間での通信は可能である事が確認出来ました。その他の利用出来るATコマンドはこれから調べますが、タッチパネルの文字表示がちょっと気に入りません。この辺りももう少し調べる必要があります。また実際のOBD2からの情報取得はATコマンドとは異なる様なので、まだまだ関門は多くあります。
次回はその他のATコマンドについて試してみます。
「OBD2」関連記事
以下は「OBD2」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。
- 「セカイモン」でドイツから商品を購入
- WRX OBD2で車両情報を取得する その1 OBD2とは
- WRX OBD2で車両情報を取得する その2 ELM327の電源とRS232Cの配線
- WRX OBD2で車両情報を取得する その3 ELM327と「とある機器」の接続
- WRX OBD2で車両情報を取得する その4 通信テスト用のプログラムと画面
- WRX OBD2で車両情報を取得する その5 ELM327からの応答
- WRX OBD2で車両情報を取得する その6 ELM327との通信テスト完了
- WRX OBD2で車両情報を取得する その7 その他のATコマンドと調査用コマンド
- WRX OBD2で車両情報を取得する その8 ELM327を車両OBD2に接続する
- WRX OBD2で車両情報を取得する その9 OBD2のPIDを調べる
- WRX OBD2で車両情報を取得する その10 その他のPIDとエンジン回転数の取得
- WRX OBD2で車両情報を取得する その11 アスキーコードを数値に変換
- WRX OBD2で車両情報を取得する その12 正しいエンジン回転数取得の様子
- WRX OBD2で車両情報を取得する その13 エンジン回転数以外の項目とメーター表示
- WRX OBD2で車両情報を取得する その14 エンジン回転数以外の項目の返信内容
- WRX OBD2で車両情報を取得する その15 複数PIDの取得テスト
- WRX OBD2のアクセル開度によるSIドライブ自動変更機能の自作
- WRX OBD2で車両情報を取得する その16 複数PIDの取得の様子
- WRX OBD2で車両情報を取得する その17 エンジン回転数と車速からギア位置を判定する
- WRX OBD2ポート(OBD2コネクター)からの電源について
- WRX OBD2で車両情報を取得する その18 OBD2の分岐ケーブルについて
その他
ブロック形式でプログラミングが行える、教育用「micro:bit」も始めてみました。micro:bitでもELM327と接続して車両OBD2ポートからの情報取得を試しています。
- WRX micro:bitを車両で使う その16 シリアル通信(RS232C)を行う
- WRX micro:bitを車両で使う その19 ELM327の車両との通信を確認する
- WRX micro:bitを車両で使う その20 アスキーコード16進数から数値10進数への変換
- WRX micro:bitを車両で使う その21 車両からエンジン回転数を得る
- WRX micro:bitを車両で使う その40 フルカラーLED(WS2812B)でメーターを作る
micro:bit全体の記事は以下から始まります。
注記
- OBD2の仕様は各メーカーや車両で異なる部分があります。メーカーや車両によってはアフターマーケット製品による利用を推奨していない場合や、利用した場合による不具合発生の可能性を示している事があります。
- このブログ内で書いている内容はあくまで私の車両、私の利用する製品や機器での場合です。他メーカーや他の車両をはじめ、同じメーカーの車両または製品、機器であっても記事内容の保証、責任を負う事は出来ません。
- 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で、利用する車両などへの適合を確認し、自己判断と自己責任の下で利用して下さい。
- OBD2やELM327、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
- ELM327はElm Electronics Inc.の登録商標です。その他のブランド名または製品名は各所有者の商標です。