脱・エクセル管理!PLCで「ラベル(変数)」を使うべき4つの理由

  • URLをコピーしました!
\ 迷子にならないための地図 /

未経験から一人前への
「最短ルート」公開中

独学で「何から勉強すれば…?」と悩んでいませんか?
現場で戦える知識を、体系的にまとめました。

FA電気設計ロードマップを見る

「D100は使用済みだから、次はD102を使って…」 「あれ? D102ってタッチパネルで使ってなかったっけ?」 「D200は32bitで使ってるから、D201は使っちゃダメだぞ!」

設計変更のたびに、エクセルで作った「デバイス割り付け表」とにらめっこして、空いているアドレスを探す作業。 あなたのデスクトップも、こんな「見るだけで胃が痛くなる表」で埋め尽くされていませんか?

エクセルで作成されたPLCデバイス割付表のイメージ。D100番台のアドレスに用途やデータ型を手入力で管理しており、重複や型ミスのリスクがある従来の手法を示す図。

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

「予備」の隙間に無理やりタイマーを押し込んだり、重複ミスで赤字になったり…。これが「仕事」だと思っていました。

しかし、断言します。 ここに、エンジニアとしての付加価値は1ミリもありません。

これはただの「空き地探し」です。 しかも、もしうっかり重複して使ってしまったら? 原因不明の誤動作(ダブルコイル)が発生し、その調査に何時間も費やすことになります。

はっきり言います。それは、本来『人間がやるべき仕事』ではありません。

現代のプログラミング(IEC 61131-3)において、メモリの番地を人間が管理することはあり得ません。 それは「コンパイラ(変換ソフト)」の仕事だからです。

人間は「動作(ロジック)」を考えることに集中し、面倒な「アドレス管理」は機械に任せる。
今回は、脱・初心者の第一歩として、そのエクセルを手放して「ラベル(変数)」を使うべき3つの理由を解説します。

目次

そもそも「ラベル(変数)」とは何か?

今まであなたは、データを保存する箱に「番地(住所)」でアクセスしていました。

  • デバイス(Device):D100, M50
    • いきなり「住所」を指定する方法。
  • ラベル(Label):CurrentSpeed, StartBtn
    • 箱に「名前」をつけて、住所は機械に任せる方法。

これを「ホテルの部屋」で例えてみましょう。

  • デバイス方式: 「お客様、205号室にお入りください」 (あなたは205号室が空いているか、清掃済みか、常に台帳(エクセル)で管理しなければなりません)
  • ラベル方式: 「お客様、田中様のお部屋をご用意しました(部屋番号はシステムが勝手に決めます)」 (あなたは「田中様の部屋」と呼ぶだけ。実際の部屋が205号室だろうが301号室だろうが、知る必要はありません)

どちらが楽か、一目瞭然ですよね。

理由①:アドレス重複ミスが「物理的に」消滅する

これが最大のメリットです。 ラベルプログラミングでは、具体的なアドレス(D○○)を人間が決めません。 「コンパイル(変換)」ボタンを押した瞬間に、PLCソフトが自動的に空いているメモリを割り振ります。

つまり、「うっかり同じアドレスを使ってしまった(重複)」という事故が、仕組み上起こり得ないのです。

エクセルの管理表で「使用済み」セルを塗りつぶす作業は、もう必要ありません。 その時間は、もっとクリエイティブな「動作設計」に使ってください。

理由②:「型(Type)」がバグを未然に防ぐ

Dレジスタのもう一つの弱点は、「何でも入ってしまうこと」です。

  • Dレジスタの恐怖: 整数を入れるつもりの「D100」に、間違えて「3.14(実数)」を転送しても、PLCは文句を言いません。 その結果、現場で機械が暴走して初めて「なんか数値がおかしいぞ?」と気づくことになります。
  • ラベル(変数)の安全性: ラベルを作る時は、必ず「型(データの種類)」を決めます。 「この箱は『整数』専用!」と決めたら、そこに小数を入れようとすると、書き込む前にソフトがエラーを出して怒ってくれます。
GX Works3のエラー画面。文字列型(String)の変数に実数型(Real)のデータを代入しようとして、コンパイルエラー(型不一致)が発生している様子。ラベルプログラミングによるバグ防止効果を示す図1。
GX Works3のエラー画面。文字列型(String)の変数に実数型(Real)のデータを代入しようとして、コンパイルエラー(型不一致)が発生している様子。ラベルプログラミングによるバグ防止効果を示す図2。

▲「文字列」の箱に「実数」を入れようとしてエラーになっている図。これが現場での命拾いになります。

「現場で動かす前にミスに気付ける」。 これこそが、コンパイラ(監視役)を持つ変数プログラミングの最大のメリットです。

理由③:プログラムの「可読性」が段違い

半年前に自分が書いたラダーを見返して、絶望したことはありませんか?

  • デバイスで書いた回路: LD M100 AND LD D200 > K50 OUT Y10 (M100って何だっけ? D200は何の値? いちいちコメントを見ないと分からない…)
  • ラベルで書いた回路: LD b_AutoMode AND LD w_Speed > K50 OUT o_FanMotor (自動モードで、速度が50を超えたら、ファンを回すんだな)

ラベル(変数名)そのものが意味を持っているので、「コメントなし」でも回路の意味が通じます。 「コメントを書くのが面倒くさい」という人ほど、ラベルを使うべきなのです。

※補足: 読みやすい名前をつけるにはコツがいります。それは「命名規則」の記事で詳しく解説します。


理由④:流用設計(コピペ)が爆速になる

他の装置から回路をコピーしてくる時、デバイス方式だと何が起きますか? 「あ、D100はこっちの機械ではもう使ってるから、D500に置換して…」 という、地獄の「デバイス置換作業」が発生します。

しかし、ラベルなら? そのままコピペして終わりです。

なぜなら、コピー先でコンパイルした瞬間に、その機械で空いているアドレスに自動で割り振り直されるからです。 「アドレスが被る」という概念がないため、過去の資産をそのままパズルのように組み合わせることができます。


まとめ:メモリ管理は人間にやらせるな

  • Dレジスタ(固定アドレス): 人間がメモリを管理する(エクセル必須)。ミスが起きる。
  • ラベル(自動割付): 機械がメモリを管理する。ミスゼロ。

「Dレジスタを使わないと不安だ」というベテランもいますが、それは「オートマ車は不安だからマニュアル車に乗る」と言っているのと同じです。 進化を恐れず、便利な機能は使い倒しましょう。

※本記事で使用している画面は、三菱電機株式会社「GX Works3」の操作画面です。
※GX Works3、MELSECは、三菱電機株式会社の登録商標です。
※本記事で紹介しているプログラムや回路図は、技術解説のためのサンプルです。実機での動作を保証するものではありません。
※実際に使用する際は、十分な検証を行った上で、安全に配慮して運用してください。

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

記事の更新通知や、現場で役立つ「電気制御の小ネタ」をツイートしています。 また、「記事のここが分からなかった」「現場でここが困っているけどどうしたらいい?」といった疑問があれば、DMで募集しています!個別のトラブル相談も、ブログのネタにさせていただけるなら大歓迎です!ぜひフォローして気軽に絡んでください!

【脱・Dレジスタ】まだエクセルで番号管理してるの?PLCで「ラベル(変数)」を使うべき3つの理由。左側は大量のDレジスタ管理表に埋もれて疲弊するエンジニア、右側はラベルとインスタンス(たこ焼きの金型と実体)を活用してスマートに開発するエンジニアの対比イラスト。

この記事が気に入ったら
フォローしてね!

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

この記事を書いた人

目次