WRX OBD2で車両情報を取得する その3 ELM327と「とある機器」の接続
前回ELM327のスキャンツール(以下、ELM327)に電源を入れ、PCなどと接続する側となるRS232Cコネクターから、通信に必要な配線を取り出しました。次はこの配線をELM327と通信を行う機器に接続しますが、今回はこのRS232CでELM327と通信を行う「とある機器」についてです。少し勿体ぶる様な形になりましたが、その機器とは「PLC」です。
PLCについて
家庭内でPLCというと「高速電力線通信(Wiki)」の方を言いますが、今回利用する機器としてのPLCは主に工場のFA設備で利用される方のPLCで、いわゆる「シーケンサ(Wiki)」と呼ばれるものです。私の仕事でもPLCを利用するので扱いには慣れているつもりですが、PLCが専門では無いので分からない事も多々あります。
またPCでのプログラミングや、基盤やチップなどを用いて電子回路を作成する技術や知識は持ち合わせていません。今回、ELM327で車両の様々な情報を見てみようと思いELM327の仕様を調べた所、RS232CとATコマンドで通信出来る様なのでPLCを利用してみようと考えました。
PLCでは周辺機器との通信に様々な規格を利用する事が出来ます。またI/O(入出力)やデータも扱えますし、タッチパネルを使用すればそれらを自由に表示、操作も可能です。従って特にハード面ではPLCを使用する事でELM327との通信環境と車両データの応用環境は揃ってしまう形です。またPLCでも「プログラミング」は必要ですが、〇〇言語とは異なり「ラダー」と呼ばれる方式で行います(他にもありますが)。Wikiにも記載がありますが、情報処理系ではなく電気工事系の分野です。
利用するPLC
PLCはFA向けの製品なので個人で購入、利用する方はほとんど居ないと思います。PLC本体だけではなくラダープログラムを作成する為のツール(PCソフト)も必要ですし、入出力を行う為のスイッチやランプ、データを表示するにはタッチパネルなどの表示器も必要です。しかし今回はあくまで私の趣味としての利用なので、個人的に下記のPLCを購入しました。
タッチパネルとPLCが一体になっているタイプです。側面や背面に電源や入出力端子、RS232C、USBポート、Ethernetポートもあります。実際の所はELM327で利用する為に購入したのではなく、たまたまネット通販で販売していたのを見つけ、何か作ろうかと思ってELM327よりも先に購入していました。またこのPLCは「スターターキット」として、メーカーがラダープログラムやタッチパネル画面の作成ツール、スイッチング電源(DC24V)などとセットで格安販売していました(格安といっても約4万円でしたが・・・)。※スターターキットはメーカー及び代理店が行っているキャンペーンなので、予定数の完売で終了するとあります。
そして今回、「何か作ろう」でELM327を利用する事を思い付いた次第です。しかしマニュアルの厚さにちょっと心折れそうです。
PLCのRS232Cへ接続
前回ELM327のRS232Cへ接続する為のコネクター配線を作成しましたが、その配線をPLCのRS232Cへ繋ぎます。
PLCのRS232Cは脱着式のコネクターとなっていて、RS422/485用のピンも用意されています。
RS232Cの仕様に合わせて送信→受信、受信←送信、グランド=グランドとなる様に接続しました(本来は棒端子を使用します)。この後はPLCの通信ポート設定やラダープログラムを作成して、ELM327と通信が行えるか確認します。
余談
今回利用するPLCについてもう少し様子を書いてみます。購入したPLCのタッチパネルは240*100ドットのモノクロ液晶で白黒の8階調、バックライトは白色以外に赤色もあり、任意に点灯させることが出来ます。タッチパネルがカラータイプの機種もありますが、価格はやはり高くなります。
底面に入出力(I/O)端子とEthernetポートがあります。出力は4点で容量10Aのリレー出力、入力はデジタル6点、アナログ2点です。機種によってトランジスタ出力、アナログ出力もあります。上記写真の右上に少し見える端子はUSBでMiniBとType-Aの2つありますが、MiniB側はラダープログラムやタッチパネル画面を作成して、PCから転送などを行うメンテナンス用です。Type-A側にELM327のUSBタイプを刺す事は出来ますが、Windowsではないのでドライバーはインストール出来ません。
スターターキットにはDC24V-15Wのスイッチング電源も付属しています。RS232Cポートの隣にある電源ポートにDC24Vを供給します。
PLCを利用する事について
先でも少し書きましたが、このPLCを利用する事でタッチパネルによるスイッチ類の作成やデータの表示は自由に出来ます。またデータの条件を決めればそのタイミングでI/Oの出力をONさせたり、データそのもののロギングも可能です。さすがに自動車メーカーでは専用の開発ツールが存在するのでしょうけれど、ちょっとした自動車関連の開発や調査などにもこの形であれば自由に使えそうな気がしています。何をするか?にもよりますが、今回利用するPLCでは力不足な部分があるので、どこまで可能かは分かりません。また某PLCメーカーからはCAN通信に対応したデータ収集ユニットも発売されています。
「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.の登録商標です。その他のブランド名または製品名は各所有者の商標です。