「D0に数値を入れて、M0でオンする。これが一番速いし分かりやすい!」「変数? ラベル? いちいち名前を付けるなんて面倒くさい!」
その気持ち、痛いほど分かります。私も昔は完全な「Dレジスタ至上主義」でした。設計変更のたびに、エクセルで作った「デバイス割付表」とにらめっこして、空いているD番号を探すのが仕事の一部でした。
しかし、この画像を見てください。あなたの現場もこうなっていませんか?

▲かつての管理手法のイメージ。Dレジスタの重複やデータ型の管理を、すべてこのエクセル表に頼っていました(※画像は本記事用に作成したサンプルです)。
「D103は予備だったはずなのに、誰かが勝手に使っている……」 「32bitデータを扱うのに、間違えてD201を使ってしまった……」
しかし、断言します。今すぐそのエクセルを捨ててください。
今回は、前回の「ラダー vs ST言語」で少し触れた、現代のPLCプログラミングに不可欠な「ラベル(変数)」と「インスタンス(FB)」について解説します。これを理解すれば、もう二度と「D番号の重複」に怯える夜は来なくなります。

理由①:ラベルは「コインロッカー」ではなく「名札付きの箱」
なぜDレジスタ(デバイス)管理が限界を迎えるのか。それは「中身が見えない」上に「鍵が共有されている」からです。
従来のDレジスタ管理 = コインロッカー
Dレジスタは、番号だけが振られた駅のコインロッカーと同じです。
- D100: 「100番のロッカーに入れておいたよ」
- 中身: 弁当なのか、爆弾なのか、開けてみる(モニタする)まで分かりません。
最大の恐怖は、「鍵が全員に共有されていること」です。 あなたがD100に入れた大切なデータを、別の担当者が書いたプログラムが「ただの空き箱だと思って」上書きしてしまう事故。 Dレジスタを使っている限り、この「うっかり上書き」のリスクからは逃れられません。
これを防ぐために、エンジニアは必死にエクセルで管理表を作りますが、開発終盤には必ずズレが生じます。
ラベル(変数)管理 = 専用の名札付きボックス
一方、ラベルは「名前」で管理します。
- sLotNo: 「ロット番号」という名札がついた箱。
- rWeight: 「重量」という名札がついた箱。
「で、これはD何番なの?」それを気にする必要はありません。
PLC(コンパイラ)が、空いているメモリ領域を勝手に探して自動で割り当ててくれます。人間が「D100は使用済みだから、次はD102で……」と考える時間は、これからは不要なのです。
理由②:「型(Type)」がバグを未然に防ぐ
Dレジスタのもう一つの弱点は、「何でも入ってしまうこと」です。
- Dレジスタの恐怖: 16bit整数のつもりで作った「D100」に、間違えて32bitの実数(浮動小数点)を転送しても、PLCは文句を言いません。 結果、「なんか数値がおかしいぞ?」と現場で誤動作して初めて気づきます。
- ラベル(型)の安全性: ラベルを作る時は、必ず「型(データの種類)」を決めます。 「この箱は『文字列』専用!」と決めたら、そこに数字を入れようとすると、書き込む前にソフトがエラーを出して怒ってくれます。


▲GX Works3の画面。文字列型のラベルに数値を代入しようとして、✖印(エラー)が出ています。「型が違うよ!」とソフトが教えてくれる。これが現場でのトラブルを未然に防ぎます。
「現場で動かす前にミスに気付ける」。これこそが、ラベルプログラミング最大のメリットです。
理由③:【最重要】「FB」と「インスタンス」の正体
さて、ここからが本題です。ラベルを使う最大の目的は、「ファンクションブロック(FB)」を使いこなすためです。
ここで多くの人がつまづく「インスタンス」という言葉。これは「たこ焼き」で考えると一発で理解できます。
- FB(定義) = 「たこ焼き器(金型)」
- 「どう焼くか(どう動くか)」という仕組みそのもの。
- これだけでは食べられません(動きません)。
- インスタンス = 「完成したたこ焼き(実体)」
- 金型を使ってポンと作り出したもの。
- これをパクっと食べる(プログラムで使う)わけです。
現場でのメリット:コンベア10台の制御
「コンベア制御」のラダー回路を、10台分作るシーンを想像してください。
1. 作るのが楽(コピペ不要)
ラダーの場合、1号機の回路をコピーして、2号機用に貼り付け。D0→D100、X0→X10……と、血眼になってアドレスを全置換します。1箇所でもミスれば誤動作確定です。
FBの場合、「コンベア制御」という金型(FB)を1つ作れば、あとはそれを10個ポンポンと置くだけ。 名前を「コンベア1」「コンベア2」と付けるだけで、内部のメモリはPLCが勝手に分けてくれます。アドレスの置換作業はゼロです。

2. 直すのがもっと楽(メンテナンス最強)
インスタンスの凄さは、作った後にこそ発揮されます。 もし「コンベアの停止時間を1秒延ばしたい」となった時、どうしますか?
ラダーの場合は 10台分、あちこちに散らばった回路をすべて修正して回る必要があります。見落としのリスクも大です。
FBの場合は 「金型」を1箇所直すだけ。 これで、その金型から作られた10台すべてのコンベアが一瞬で修正されます。
実際のソフト(GX Works3)ではどうやるの?
「概念は分かったけど、設定画面の『クラス』ってところが難しそう……」そう思うかもしれませんが、覚えるのは3つだけです。これも「たこ焼き作り」の流れで考えましょう。
| クラス | たこ焼きでの役割 | 実際のプログラム | 外から見える? |
| VAR_INPUT | 材料(タコ・生地) | 入力 (外からデータを受け取る) | 見える |
| VAR_OUTPUT | 完成品(お皿) | 出力 (外へデータを渡す) | 見える |
| VAR | 鉄板の中 | 内部変数 (計算用のメモ) | 見えない |
- VAR_INPUT: 「ロット番号」や「重量」など、外から入れてあげないと動かない材料。
- VAR_OUTPUT: 計算が終わって、最終的に欲しい完成品。
- VAR: 「今焼いてる途中」「ひっくり返した回数」など、外(メインラダー)からは見なくていい内部事情。
これさえ選べば、あとはPLCが勝手に「良い感じ」にメモリを割り当ててくれます。
※「他の英語」は無視してOKです! リストを開くと VAR_RETAIN(電源を切っても忘れない変数)や VAR_CONSTANT(定数)なども出てきますが、今回は無視して構いません。 まずは「INPUT(材料)」「OUTPUT(完成品)」「VAR(内部)」の3つさえ覚えれば、FBは動かせます。
付録:【迷ったらこれを使え】命名ルールのススメ
「変数名は自由につけていい」と言われると、逆に悩みますよね。StartButton なのか ButtonStart なのか……。
迷ったら、FA業界の鉄板ルール「接頭辞(プレフィックス)」を使いましょう。「先頭の小文字を見れば型がわかる」というルールです。
| 接頭辞 | データ型 | 意味 | 実際の変数名例 |
| b | Bit | ON/OFF | bStartCmd (起動指令) |
| w | Word (INT) | 整数 | wCount (個数) |
| r | Real | 実数 | rWeight (重量) |
| s | String | 文字列 | sLotNo (ロットNo) |
| fb | FB | インスタンス | fbConveyor1 (コンベア1) |
さらにFBの中身(入力・出力)には「場所」を表す文字をつけると完璧です。
- i_ (Input):
i_sLotNo(入力されたロットNo) - o_ (Output):
o_bComplete(完了フラグ出力)
これなら、数年後に他人のプログラムを見ても(あるいは自分のプログラムを見返しても)、「あ、これは入力端子の文字列だな」と一瞬で理解できます。
※注意点:会社ごとの「方言」 命名ルールはプロジェクトや会社によって異なります(ハンガリアン記法を使わない会社もあります)。まずは自社のルールや、先輩のコードを確認してから使いましょう!
「Dレジスタ(デバイス管理)から卒業して、変数(ラベル)設計を本格的に学びたい!」という方は、この本がバイブルになります。
📘 『実践 PLCプログラム設計』 まさに今回解説した「グローバルラベル」や「構造体」を使った設計手法が、体系的にまとまっています。「Excelのデバイス管理表とおさらばしたい」という人が読むと、世界が変わる一冊です。
💻 実機で試すなら『三菱電機 FX5S』 変数や構造体をフル活用するなら、最新のiQ-Fシリーズ(FX5S)が安くて最適です。
⚠️ 注意:古い「FX3S」などはインラインSTに対応していません。
まとめ:管理簿(エクセル)を捨てよう
- Dレジスタ管理 = コインロッカー管理。限界がある。
- ラベル管理 = 自動倉庫。PLCに場所はおまかせ。
- FBとインスタンス = 金型と製品。量産が一瞬で終わる。
最初はとっつきにくい「ラベル」ですが、一度この快適さを知ってしまえば、もう二度と「D番号を探す作業」には戻れません。まずは、簡単な計算処理やタイマー回路から、「Dを使わずにラベルで作ってみる」ことから始めてみませんか?
その一歩が、あなたの技術をアップデートしてくれます。
※本記事で使用している画面は、三菱電機株式会社「GX Works3」の操作画面です。
※GX Works3、MELSECは、三菱電機株式会社の登録商標です。
※本記事で紹介しているプログラムや回路図は、技術解説のためのサンプルです。実機での動作を保証するものではありません。
※実際に使用する際は、十分な検証を行った上で、安全に配慮して運用してください。
現場で役立つ!あわせて読みたい /
「Dレジスタ」からの卒業ができたら、次は「ラダー回路とST言語」の使い分けを極めませんか?
「ラベル(変数)」を使うなら、複雑な計算はST言語に任せるとさらに効率が上がります!現場で役立つ「ハイブリッド設計」のノウハウをまとめました。👇

他にも「現場で役立つ」技術ノート公開中
- 🔩 今一番読まれています!接続の常識が変わる【緩む vs 緩まない】ねじ式端子 vs スプリング式端子:プロが選ぶ接続方法
- 🏢 メーカー選びで迷ったら【PLC選定】三菱・キーエンス・オムロン、初心者はどれから学ぶべき?(※独断と偏見マシマシ版)
- そもそもラダー図は「電気回路」とどう違う? プログラム以前の「仕組み」の違いを解説。【PLC入門】回路図とラダー図は「別物」と思え!初心者がハマる「上から下へ」の罠