どうもこんにちは!まろんです!
今日はOBD2の「PID」と「DTC」って結局何なのか、についてまとめていこうと思います!
うちはFREED HYBRID(GB7)にOBDLink MX+を挿しっぱなしにして、もう3年以上CarScannerでログを取り続けています。これまで「PID」という単語は当たり前のように使ってきたんですが…冷静に考えると、正確には何の略で、どういう仕組みで決まっているのか、実はちゃんと調べたことがなかったんですよね。しかも「DTC(故障コード)」というもう1つの重要な単語もある。この2つ、ちゃんと区別できていますか?と聞かれたら、私自身も自信を持ってYESとは言えませんでした…!
というわけで今回は、SAE(米国自動車技術者協会)が公開している公式規格の文書まで遡って、PIDとDTCの違いを整理してみることにしました。ちなみにうちのFREEDは幸い、これまで一度もCheck Engineランプが点いたことがありません。なのでDTCが実際に出た体験談は書けないんですが、その分「仕組みそのもの」をきっちり押さえておこうと思います!
そもそもOBD2の中で、PIDとDTCは何をしているもの?
本題に入る前に、まず全体像をざっくり掴んでおきましょう。OBD2(車載式故障診断システム)の中には、大きく分けて2つの役割を持つ情報があります。
- PID(Parameter ID):今のセンサー値を聞くための識別番号
- DTC(Diagnostic Trouble Code):異常が検出された時に自動で記録される故障コード
実はこの2つ、それぞれ別のSAE規格で定義されています。PIDの通信方法を決めているのがSAE J1979の公式文書、DTCの構造を決めているのがSAE J2012の公式文書です。この2つの規格書は、お互いの文書内でお互いを参照し合っている、いわばセットの関係にあります。「PIDで会話するためのルールがJ1979」「その会話の中で報告されるDTCの中身のルールがJ2012」と考えると、ちょっとイメージしやすくなるんじゃないでしょうか!
今回はOBD2全体の仕組みには深入りせず、PID・DTCの中身に絞って進めますね。
PID(パラメータID)とは? 今の状態を聞くための識別番号
Service $01とService $02、2つの聞き方がある
SAE J1979では、OBD2の通信サービスがいくつかの「Service」に分かれて定義されています。このうちPIDが主に使われるのは2つです。
- Service $01:今この瞬間のリアルタイムデータを要求する
- Service $02:異常が起きた瞬間の記録(フリーズフレームデータ)を要求する
要は「今すぐ聞く」か「あの時の記録を聞く」かの違い、とざっくり捉えるとイメージしやすいと思います。規格書のAppendix Aが対応するPIDの一覧を、Appendix Bがその換算方法(スケーリング)を定義しているとのことでした。地味な話ですが、こういう部分まで規格でガチガチに決まっているんだなと、正直ちょっと驚きました!
PIDの実例:010CでエンジンRPMが取れる
分かりやすい実例を1つ挙げます。CarScanner公式のカスタムPIDガイドによると、カスタムPIDを追加する時は「Command(Mode+PID)」という形式で指定するそうです。例えば010Cと入力すると、エンジン回転数(RPM)が取得できるとのことでした。この「01」がService $01、「0C」がPIDそのものの番号にあたります。地味な数字の並びですが、こうして見ると「へえ、そういう仕組みだったのか」と新鮮でした!
うちのFREEDでは実際に462種類ものPIDが見えていた
実際、うちのFREED HYBRID(GB7)のCarScannerログ(2023年3〜7月・121本)をPID名で数えてみました。すると、なんと462種類ものPIDが記録されていたんです。最初にこの数字を見た時は、さすがに多すぎるのでは…と二度見しました!ただし、100本以上のログで安定して出てきたのはそのうち29種類だけ。残りの大半は、初回接続時の一括チェックで1回だけ出てきたものだったんです。この数字を仕分けるだけでも、地味に骨が折れる作業でした!
DTC(診断トラブルコード)とは? 異常時に記録されるコード
続いてDTCです。DTCはSAE J2012の公式文書という別の規格で、フォーマットと具体的な意味が定義されています。俗に言う「故障コード」「エラーコード」というのがこれで、ディーラーやカー用品店でスキャンツールを繋いだ時に「P0301」のような英数字5桁で表示されるあれです。
正直に書いておくと、うちのFREEDはこの記事を書いている時点(2026年8月時点)で、幸か不幸か一度もこのDTCが出たことがありません。なので実体験としては書けないんですが、その分、仕組みだけはきっちり押さえておこうと思います!
5桁のコードは、実は1文字ずつに意味がある
DTCの5桁、例えば「P0301」は、実はでたらめな並びではありません。SAE J2012の規格書には、1文字ずつに役割があると明記されています。
- 1文字目:対象システム(P・C・B・U)
- 2文字目:標準コードかメーカー独自コードか
- 3文字目:サブシステムの領域(16進0〜F)
- 4〜5文字目:個別の不具合番号(16進00〜FF、最大256通り)
1文字目の対応はこんな感じです。表にするとかなり分かりやすくなりました!
| 1文字目 | 対象システム | 参考:16進レンジ |
|---|---|---|
| P | パワートレイン(エンジン・トランスミッション) | 0xxx〜3xxx |
| C | シャシー(ブレーキ・ステアリングなど) | 4xxx〜7xxx |
| B | ボディ(エアバッグ・パワーウィンドウなど) | 8xxx〜Bxxx |
| U | ネットワーク(通信系) | Cxxx〜Fxxx |
2文字目は基本ルールとして、0ならSAE/ISO共通の標準コード、1ならメーカー独自コードです。ただしパワートレイン系だけは細かい例外規定もあるらしく、そこまで踏み込むと規格書レベルの話になるので、今回は「だいたいこのルール」ということだけ押さえておけば十分だと思います!
パワートレイン(P)の3文字目は、ハイブリッド機構にも割り当てがある
3文字目はサブシステムの領域を表します。パワートレイン(P)の場合、こんな内訳です。
| 3文字目 | 内容 |
|---|---|
| P00 | 燃料・空気系メータリング+補助排出制御 |
| P01 | 燃料・空気系メータリング |
| P03 | 点火系統・失火 |
| P04 | 補助排出制御 |
| P05 | 車速・アイドル制御・補助入力 |
| P06 | コンピュータ・補助出力 |
| P07〜09 | トランスミッション |
| P0A | ハイブリッド推進系 |
うちのFREEDはi-DCDというハイブリッド機構を積んでいます。もし将来DTCが出るとしたら、通常のエンジン系(P00〜P06)に加えてP0Axx系のコードも可能性としてはあり得るわけです。実際に出たことがないので想像するしかないんですが、こうして表で見ると「だいたいどのあたりの系統か」の見当がつけやすくなりますね!
データの中身は、実はビット演算で決まっている
規格書には、実際の通信データがどうDTCの文字列に変換されるかの例も載っていました。データバス上の値「$9234」が、実際の表示ではDTC「B1234」になる、という変換例です。
先頭の「9」は2進数だと「1001」で、上位2ビット「10」がBody系を表す符号になっています(さっきの対応表のB=10と一致します)。残りのビットの変換は細かいビット演算の話になるので省略しますが、「生の通信データ」と「表示される英数字5桁」を変換するルールが、規格としてちゃんと決まっているということです。地味な話ですが、こういうルールがきっちり作り込まれているのを見ると、規格ってちゃんとしてるんだなと妙に感心してしまいました!
PIDとDTC、結局どう使い分けられているのか
整理すると、PIDとDTCはこんな役割分担です。
- PID:今、この瞬間のセンサー値を聞く(回転数・車速・水温など)
- DTC:システムが異常を検出した時に、自動的に記録される故障コード
J1979とJ2012はお互いの規格書内で参照し合っていて、しかもどちらも国際規格のISO/DIS 15031-5・15031-6と技術的に同等だと明記されています。つまり北米のOBD-IIも欧州のEOBDも、PID・DTCの定義の土台は共通というわけです。こういう国際的な足並みの揃え方、地味ですけどなんだか安心しますよね!
さらに、カリフォルニア州のOBD規則(13 CCR 1968.2)もSAE J1979を参照規定として組み込んでいます。趣味のログ取りで何気なく見ていたPIDが、実は「法律に組み込まれた規格」だったとは、正直ちょっと意外でした!
実際のログではどう見える?うちのFREEDでの例
仕組みの話ばかりだと実感が湧きにくいと思うので、うちの実例も少し挟んでおきます。うちはOBDLink MX+というBluetoothアダプタを、OBD2ポート(運転席足元の診断用コネクタ)に挿しっぱなしにしています。そのままCarScannerというアプリでPIDのログを記録しています。
OBDLink MX+(Bluetooth OBD2アダプタ)
Amazonで見るこのアダプタとアプリの組み合わせで、3年分の実燃費を検証したり、462種類のPIDを数えたりしてきました。CSVログの読み込み方から知りたい方は、以前まとめた記事もどうぞ!
まぎらわしい関連用語もついでに整理
ここまでの話に出てきた用語、初心者だとごちゃっとしやすいと思うので表にまとめておきます。
| 用語 | 意味 |
|---|---|
| ECU | エンジンなどを制御しているコンピュータ本体 |
| OBD2ポート | 診断機器を挿すコネクタ(運転席足元にあることが多い) |
| スキャンツール | PID・DTCを読み書きする機器やアプリ(CarScannerもこの一種) |
| フリーズフレームデータ | DTCが記録された瞬間のPID値のスナップショット(Service $02で取得) |
特にフリーズフレームデータは、DTCとPIDがセットで働く場面そのものです。「異常が起きた(DTC)瞬間の状態(PID)」を保存しておく仕組み、と考えると2つの関係がすっと繋がるんじゃないでしょうか!
この記事だけでは分からないこと
最後に、正直に線を引いておきます。
- 車種別の具体的なPID対応表が知りたい人:今回は規格の仕組みの説明が中心です。うちのFREEDで実際に取れたPIDの一覧は別記事にまとめてあります
- 実際にDTCが出た時の対処体験談が知りたい人:うちのFREEDは幸いこれまでDTCが出た経験がないため、体験談としては書けません
- 最新版の規格の細かい差分が知りたい人:今回確認したのはSAE J1979・J2012とも2002年版の本文です。後継のJ1979-2やJ2012の最新改訂版との詳しい差分までは調べていません
よくある質問(FAQ)
Q1. PIDとDTC、初心者はどっちを覚えればいい?
まずはPIDから触ってみるのがおすすめです。DTCは異常時にしか出てきませんが、PIDは今すぐアプリで眺められるので、仕組みを実感しやすいと思います!
Q2. DTCが出たら、まず何をすればいい?
うちはまだ経験がないので一般論になりますが、まずは慌てず取扱説明書で警告灯の意味を確認するのが先決だと思います。その上で、必要ならディーラーや整備工場に相談する、という流れが安心です。
Q3. スキャンツールがあれば自分でDTCを消せますか?
多くのスキャンツールにDTCをクリアする機能はあるようですが、原因を直さずに消すだけだと同じ異常がまた記録される可能性があります。うちも消去経験は無いので、あくまで一般論としての紹介にとどめておきます。
Q4. PIDの種類はどの車も同じですか?
標準セットの「聞き方」自体は車種を問わず共通ですが、どのPIDが本物の値を返すかは装備次第です。うちのFREEDでも、積んでいない装備(ターボやディーゼル関連)のPIDは、実際には意味をなさない値(規格が想定する範囲外の数値)が返ってきていました。
Q5. OBD2アダプタを挿すこと自体、車に対して安全ですか?
多くの車で想定された使い方ではあるようですが、車両や機器の組み合わせ次第では不具合の原因になり得るようです。取り付け・使用は自己責任で、保証の扱いも事前に確認しておくと安心だと思います。


まとめ:PIDは「今を聞く」、DTCは「異常の記録」
今回整理した内容を3行にまとめます。
- PID:今この瞬間のセンサー値を聞くための識別番号(SAE J1979)。Service $01でリアルタイム値、Service $02でフリーズフレームデータが取れる
- DTC:異常を検出した時に記録される5桁の故障コード(SAE J2012)。1文字目でシステム区分、2文字目で標準/独自、3文字目でサブシステム、4〜5文字目で個別番号が決まる
- 関係:J1979とJ2012はセットの規格で、PIDで会話し、DTCで異常を報告するという役割分担
正直、「PID」も「DTC」も今まで感覚で使い分けていた単語だったので、規格書まで遡って調べてみたら、想像以上にきっちり設計されていて驚きました!うちのFREEDにDTCが出る日が来るかは分かりませんが、その時は今日調べた知識を武器に、慌てず読み解いていきたいと思います。というわけで、今回はOBD2用語の整理でした!では今回はこの程度で〜!

コメント