PLC通信アドレスマップの読み方|ワード・ビット・n+1の意味を具体例で解説
PLC制御では、センサーの状態や設備の運転情報など、さまざまなデータを扱います。
これらの情報を他のPLCやデータ収集システムとやり取りする場合、重要になるのが「通信アドレスマップ」です。
PLC制御の基本的な仕組みを理解していても、通信仕様書を見て、次のような表記に戸惑うことがあります。
- 「n+1」「n+2」は何を意味しているのか?
- 1ワードと1ビットは何が違うのか?
- D1000などのアドレスは、どこを指しているのか?
- 32bitのデータには何ワード必要なのか?
- 設備メーカーから渡された通信アドレスマップは、何を確認すればよいのか?
PLCの通信アドレスマップは、一見すると数字や専門用語が並んだ難しい資料に見えます。
しかし、基本的なルールを理解すれば、「どのデータを、どのアドレスに、どのような形式で格納するのか」を読み取れるようになります。
この記事では、通信アドレスマップの基本から、ワード・ビット・オフセットの意味、実際の表の読み方まで具体例を使って解説します。
PLC間通信の送受信の仕組みを先に知りたい方は、こちらの記事も参考にしてください。
PLC通信アドレス表の読み方|送受信の仕組みとラダーでの確認方法

PLC通信アドレスマップとは?

PLC通信アドレスマップとは、PLCと他の機器・システムとの間でやり取りするデータについて、データの内容と格納先を対応付けた表です。
例えば、工場内の設備PLCからデータ収集用PLCへ、次の情報を送るとします。
- 設備が自動運転中かどうか?
- 設備に異常が発生しているか?
- 生産した製品の数量?
- モーターの回転速度?
- センサーの測定値?
これらのデータを受信側が正しく読み取るためには、送信側と受信側でデータの扱いを一致させる必要があります。
アドレスマップは送信側と受信側の共通ルール
例えば、設備PLCのD1000に生産数量が格納されているとします。
受信側がD1000の値を生産数量として取得する構成であれば、双方で次のような情報を共有する必要があります。
| 項目 | 設定例 |
|---|---|
| データ名称 | 生産数量 |
| 送信元 | 設備PLC |
| 送信元アドレス | D1000 |
| データ型 | 符号なし16bit整数 |
| 単位 | 個 |
| 更新条件 | 生産数量の更新時、または所定の周期 |
| 受信側での扱い | 生産数量として保存・表示 |
ここで重要なのは、アドレス番号だけが一致していても、正しくデータを扱えるとは限らないことです。
例えば、送信側が「10倍した整数」で温度を送っているのに、受信側がそのまま温度として表示すると、数値が一致しません。
そのため、通信アドレスマップではアドレスだけでなく、データ型・単位・倍率・更新条件なども確認します。

データ型を間違ると全然違う数値に見えるので特に注意して確認しましょう
PLC内部のデバイスと通信用アドレスは同じとは限らない
PLC制御では、設備を動かすための内部データと、外部システムへ渡すデータを区別して管理することがあります。
例えば、シリンダーの動作条件やモーターの運転指令は設備制御に使用し、運転状態や生産数量などはデータ収集システムへ送信します。
設備PLC内部では、制御プログラム用のデバイスと、外部に公開する通信用のデバイスを分けて管理する場合があります。
例えば、設備内部のD200にある生産数量を、通信用のD1000へコピーする構成です。
設備内部のデバイスを直接収集する方法もありますが、通信用の領域を整理しておけば、収集側が参照する場所を管理しやすくなります。
このように、設備制御とデータ収集の役割を整理しておくと、通信アドレスマップの必要性も理解しやすくなります。
ただし、通信用の領域を確保しただけで、外部機器から自動的に読み取れるわけではありません。通信方式に応じた設定やプログラムが必要です。
PLC制御で使うワードとビットの違い

通信アドレスマップを読むために、最初に理解したいのが「ビット」と「ワード」です。
ビットはON・OFFを表す最小単位
1ビットは、0または1の状態を表します。
例えば、次のような設備状態を扱う場合です。
| ビット | 設備状態 | 値が1の場合 |
|---|---|---|
| bit0 | 自動運転中 | 自動運転中 |
| bit1 | 異常発生中 | 異常あり |
| bit2 | 原点復帰完了 | 原点復帰完了 |
| bit3 | 生産完了 | 生産完了 |
このようなON・OFF情報は、ビット単位で管理できます。
なお、どのビットをどの状態に割り当てるかは、設備の通信仕様で決める必要があります。
1ワードは一般的に16ビット
三菱PLCなどで扱う一般的な16bitワードを例にすると、1ワードは16ビットで構成されています。
1ワード=16ビット=2バイト
例えば、D1000という16bitワードデバイスがある場合、その中の各ビットに設備状態を割り当てることができます。

設備の状態信号を1ワードにまとめれば、複数のON・OFF情報を1つのワードデータとして扱えます。
ただし、ビット番号の表記方法やビット単位の指定方法は、PLCメーカーや機種によって異なります。
1ワードに数値を格納する場合
ワードはON・OFF情報だけでなく、整数値の格納にも使用します。
16bitの符号なし整数であれば、表現できる範囲は0〜65535です。
一方、16bitの符号付き整数であれば、一般的な2の補数表現では-32768〜32767となります。
同じ16bitでも、符号の有無によって数値の解釈が異なります。

そのため、通信アドレスマップには「16bit」と記載するだけでなく、符号付き・符号なしの区別も必要です。
n+1・n+2とは?オフセット表記の読み方
通信アドレスマップでは、D1000などの具体的なアドレスではなく、次のような表記を見かけることがあります。
- n
- n+1
- n+2
- n+3
これは、基準となるアドレスから、どれだけ離れているかを示すオフセット表記です。
nは基準アドレスを意味する

例えば、基準アドレスをD1000とした場合、次のように読み替えられます。
| 仕様書の表記 | 実際のアドレス例 |
|---|---|
| n | D1000 |
| n+1 | D1001 |
| n+2 | D1002 |
| n+3 | D1003 |
| n+4 | D1004 |

n+2は「基準アドレスから2ワード先」という意味になる
なぜ具体的なアドレスを書かないのか?
設備ごとに使用するアドレスが異なる場合でも、同じ形式の通信仕様を使用できるようにするためです。
- 設備AはD1000~
- 設備BはD2000~
基準アドレスは各設備で決めてもらってそこから同じルールで運用する
どちらも同じアドレスマップの形式を使用し、基準アドレスだけ変更することができます。
ただし、実際のアドレスはPLCのデバイス体系や通信仕様に従って割り当てる必要があります。
また、アドレス番号の進数や表記方法も機種によって異なります。単純な十進数として扱えるかどうかは、対象PLCの仕様を確認してください。
通信アドレスマップの具体的な読み方
ここからは、架空の設備を例に、通信アドレスマップを読み解いてみましょう。
例:設備PLCから生産データを収集する

設備PLCから、次のデータを収集するとします。
- 自動運転状態
- 異常状態
- 生産数量
- モーター回転速度
- 積算運転時間
基準アドレスはD1000とします。
| オフセット | アドレス | データ名称 | データ型 | 単位 |
|---|---|---|---|---|
| n | D1000 | 設備状態 | 16bitビット集合 | ― |
| n+1 | D1001 | 生産数量 | 符号なし16bit整数 | 個 |
| n+2 | D1002 | モーター回転速度 | 符号なし16bit整数 | rpm |
| n+3〜n+4 | D1003〜D1004 | 積算運転時間 | 符号なし32bit整数 | 秒 |
D1000:設備状態をビット単位で管理
D1000には、設備の状態をまとめて格納します。
例えば、次のように割り当てます。
| ビット | 内容 |
|---|---|
| bit0 | 自動運転中 |
| bit1 | 異常発生中 |
| bit2 | 原点復帰完了 |
| bit3 | 生産完了 |
| bit4〜bit15 | 予備 |
D1000のbit0が1であれば、自動運転中を表します。
bit1が1であれば、異常発生中を表します。
このように、1つのワードの中に複数の状態情報を格納できます。
D1001:生産数量を数値で管理
D1001には生産数量を格納します。
例えば、D1001の値が250であれば、生産数量250個として扱う仕様です。
ただし、設備側がどのタイミングで数量を更新するか、数量をリセットする条件は何か、といった情報も確認する必要があります。
D1002:モーター回転速度を格納
D1002にはモーター回転速度を格納します。
例えば、D1002の値が1500であれば、1500rpmとして扱う仕様です。
ただし、実際の通信仕様では倍率が設定されている場合があります。
例えば「実際の回転速度×10」を整数として格納する仕様であれば、格納値1500は150.0rpmを意味します。
アドレスの数値だけでなく、単位と倍率を必ず確認しましょう。
D1003〜D1004:32bitデータを格納
積算運転時間を32bitの整数として管理する場合、16bitワードを2つ使用する構成があります。
この例ではD1003とD1004を使用します。
ただし、32bit値の上位・下位ワードの格納順序や、バイト順序は通信方式・機種・データ表現によって異なります。
送信側と受信側で扱いを一致させる必要があります。
データ型と占有ワード数で注意したいこと

通信アドレスマップを読む際は、データ型と必要なワード数を確認します。
16bitと32bitでは必要なワード数が違う
16bitワードを使用する構成では、代表的なデータ型と占有ワード数は次のようになります。
| データ型 | データ長 | 占有ワード数 |
|---|---|---|
| 16bit整数 | 16bit | 1ワード |
| 32bit整数 | 32bit | 2ワード |
| 32bit浮動小数点数 | 32bit | 2ワード |
| 64bit浮動小数点数 | 64bit | 4ワード |
例えば、32bitデータをD1003から使用する場合、D1003とD1004の2ワードを占有します。
次のデータをD1004から割り当ててしまうと、アドレスが重複します。
そのため、アドレスマップでは開始アドレスだけでなく、占有ワード数や終了アドレスも確認します。
W0〜W10は何ワード?
PLCのアドレスを数えるときは、デバイス番号が何進数で表記されているかを確認する必要があります。
例えば、三菱PLCのリンクレジスタWは、機種によって16進数でアドレスを表します。
このように、アドレスの表記方法によって必要なワード数の数え方が異なります。
通信アドレスマップでは、開始アドレス・終了アドレス・占有ワード数を確認し、対象PLCのデバイス仕様と照合しましょう。
文字列データにも注意する
製品番号や品種名称など、文字列を通信する場合もあります。
この場合、「1文字=1バイト」とは限りません。
ASCIIなどの文字コードと、日本語を含むUnicodeなどでは必要なバイト数が異なります。
そのため、文字列を扱う場合は次の情報を確認します。
設備メーカーに確認すべき項目

通信アドレスマップは、PLCプログラムを作成する人だけの資料ではありません。
設備を発注する担当者や、工場DX・データ収集を担当する人にとっても重要な資料です。
例えば、設備メーカーに「設備の生産数量と異常情報を収集したい」と依頼する場合、取得項目だけでなく、次のような内容を確認する必要があります。
1. どのデータを取得するのか
設備のすべての内部データを取得できるとは限りません。
必要な情報を整理し、取得元の機器やPLCで利用可能か確認します。
2. どのアドレスを使用するのか
データの格納先と、送信側・受信側の対応関係を確認します。
通信用の領域を確保する場合は、既存の制御用デバイスとの重複や将来の予備領域も考慮します。
3. データ型・単位・倍率は何か
同じ数値でも、データ型や倍率が違えば意味が変わります。
温度、電流、回転速度などのデータでは特に注意が必要です。
4. いつデータが更新されるのか
PLC内部で値が更新される周期と、通信でデータが取得される周期は必ずしも同じではありません。
例えば、設備で短時間だけ発生する異常信号を、長い周期で読み取ると、変化を見逃す可能性があります。
短時間のイベントを記録したい場合は、設備側での保持やタイムスタンプ付与なども検討します。
5. 誰がアドレスマップを作成・承認するのか

設備メーカーとデータ収集側で認識が異なると、通信試験の段階で問題が発覚する可能性があります。
そのため、実務では次のような流れで確認する方法があります。

これは進め方の一例です。
実際の担当範囲や承認手順は契約・プロジェクト体制によって異なります。
まとめ|通信アドレスマップはデータの共通ルール
PLCの通信アドレスマップを読むときは、アドレス番号だけに注目するのではなく、データの意味と格納方法をセットで確認することが重要です。
今回のポイントを整理します。
PLC制御を理解するうえでは、ラダー回路の動作だけでなく、PLC内部のデータがどのように管理され、外部機器と共有されるのかを知ることも大切です。
通信アドレスマップの読み方を身につけることで、PLC制御とデータ収集システムの関係を整理しやすくなります。
通信仕様書を見たときは、まず「このデータは何を表しているのか」「どのアドレスに何ワード使っているのか」を確認してみてください。
PLC間通信の送受信やラダー上での信号の追い方については、こちらの記事で詳しく解説しています。
PLC通信アドレス表の読み方|送受信の仕組みとラダーでの確認方法


