【脱・Dレジスタ】まだエクセルで番号管理してるの? PLCで「ラベル(変数)」を使うべき3つの理由と、初心者が躓く「インスタンス」の壁

  • URLをコピーしました!

「D0に数値を入れて、M0でオンする。これが一番速いし分かりやすい!」「変数? ラベル? いちいち名前を付けるなんて面倒くさい!」

その気持ち、痛いほど分かります。私も昔は完全な「Dレジスタ至上主義」でした。設計変更のたびに、エクセルで作った「デバイス割付表」とにらめっこして、空いているD番号を探すのが仕事の一部でした。

しかし、この画像を見てください。あなたの現場もこうなっていませんか?

▲かつての管理手法のイメージ。Dレジスタの重複やデータ型の管理を、すべてこのエクセル表に頼っていました(※画像は本記事用に作成したサンプルです)。

「D103は予備だったはずなのに、誰かが勝手に使っている……」 「32bitデータを扱うのに、間違えてD201を使ってしまった……」

しかし、断言します。今すぐそのエクセルを捨ててください。

今回は、前回の「ラダー vs ST言語」で少し触れた、現代のPLCプログラミングに不可欠な「ラベル(変数)」と「インスタンス(FB)」について解説します。これを理解すれば、もう二度と「D番号の重複」に怯える夜は来なくなります。

あわせて読みたい
【ラダー vs ST言語】まだ戦ってるの? 「ラダーは時代遅れ」という極論への回答 & 賢い使い分け術 「ラダーは時代遅れ」「STは現場で使えない」という論争に終止符を打ちます。それぞれの致命的な弱点を補完し合う、現代の「ハイブリッド設計(インラインST・FB)」について解説します。

目次

理由①:ラベルは「コインロッカー」ではなく「名札付きの箱」

なぜ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業界の鉄板ルール「接頭辞(プレフィックス)」を使いましょう。「先頭の小文字を見れば型がわかる」というルールです。

接頭辞データ型意味実際の変数名例
bBitON/OFFbStartCmd (起動指令)
wWord (INT)整数wCount (個数)
rReal実数rWeight (重量)
sString文字列sLotNo (ロットNo)
fbFBインスタンス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 ST言語】まだ戦ってるの? 「ラダーは時代遅れ」という極論への回答 & 賢い使い分け術 「ラダーは時代遅れ」「STは現場で使えない」という論争に終止符を打ちます。それぞれの致命的な弱点を補完し合う、現代の「ハイブリッド設計(インラインST・FB)」について解説します。

他にも「現場で役立つ」技術ノート公開中

\ 未経験から一人前の設計者へ /

知識ゼロから現場で戦えるレベルまで。FA電気設計の学習手順を体系的にまとめました。学習の迷子にならないための「地図」です。

👉 FA電気設計・完全学習ロードマップを見る

💬 更新情報を X (Twitter) で発信中!

記事の更新通知や、現場で役立つ「電気制御の小ネタ」をツイートしています。「ねじ vs スプリング」のような実務の話に興味がある方は、ぜひフォローして繋がってください!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次