「Data1 って何の値だっけ?」 「Start って、外部入力ボタン? それともタッチパネルのスイッチ?」
半年前に自分が書いたプログラムなのに、意味が分からなくて頭を抱える。 そんな経験はありませんか?
変数名にルールがないのは、「名札のないロッカー」に荷物を詰め込むのと同じです。 中身を確認するためだけに、「クロスリファレンス」で検索し、詳細画面を開く…。 そんなことを繰り返しているうちに、貴重な時間が過ぎていきます。
なぜ、あなたのコードは読みにくいのか。 それは、変数名に「情報」が入っていないからです。
私は9年の設計経験の中で、ある「魔法」を使うようになってから、デバッグ速度が劇的に上がりました。
それは、国際標準(IEC 61131-3)の指針でも推奨されている「プレフィックス(接頭辞)」という技術です。
これを使えば、名前を見ただけで「変数の正体」が一瞬で分かるようになります。 今回は、他人が読んでも一瞬で理解できる「美しいコード」を書くための、プロの命名ルールを解説します。
なぜ「名前」にこだわるのか?
理由は単純です。 プログラムは、「書く時間」より「読む時間」の方が圧倒的に長いからです。
ラダー回路における「デバイスコメント」は、表示設定をオンにしないと見えませんし、文字数制限もあります。 しかし、「変数名(ラベル名)」は常に回路図上に表示されます。
つまり、分かりやすい変数名をつけることは、「常に表示されるコメントを書く」のと同じこと。 これこそが、最強の効率化なのです。
鉄則①:「どこから来たか」を区別せよ(スコープ)

ここが初心者の盲点であり、プロとの決定的な違いです。 初心者は「型(ビットか整数か)」ばかり気にしますが、プロは「スコープ(有効範囲)」を最も気にします。
「この変数は、PLCの外から来た信号なのか? それとも内部で勝手に変わる値なのか?」 これを区別するために、変数の頭に小文字(プレフィックス)を付けます。
プロが使う推奨ルール(スコープ)
g_(Global):グローバル変数- 意味: プログラムのどこからでも読み書きできる変数。
- 効果: 「
g_」が付いていると、「これは他のプログラムでも使われているから、勝手に値を書き換えると危険だぞ」と一目で警戒できます。
i_(Input):外部入力- 意味: 物理的な入力端子(X)。センサや押しボタン。
- 効果: プログラムで値を書き換えられない「読み取り専用」であることが分かります。
o_(Output):外部出力- 意味: 物理的な出力端子(Y)。ソレノイドバルブや表示灯。
n_(Network):通信データ- 意味: タッチパネルや他ラインとの通信エリア。
- 効果: 「通信タイミングによって値が変わるかもしれない」というリスク管理ができます。
【事例:Start の正体】
Start… 詳細を開くまで正体不明。i_Start… 「あ、物理的な押しボタンだな」g_Start… 「ライン全体の一斉起動フラグだな」n_Start… 「タッチパネルの起動ボタンだな」プレフィックスがあるだけで、これだけの情報量が手に入ります。
鉄則②:「どんな形か」を区別せよ(データ型)

次に、「その箱の形(データ型)」を示します。 これは、前回解説したFB(ファンクションブロック)の引数などで特に役立ちます。
プロが使う推奨ルール(データ型)
b_(Bool/Bit):ビット- 意味: ON/OFF(True/False)の信号。
- 例:
b_AutoMode(自動モード中)
w_(Word/Int):整数- 意味: 数字(16bit/32bit整数)。
- 例:
w_TimerSet(タイマー設定値)
r_(Real):実数- 意味: 小数点を含む数値。
- 例:
r_Temperature(現在温度)
s_(String):文字列- 意味: 文字データ。
- 例:
s_LotNo(ロット番号)
【メリット】
w_Val(整数用の箱)に10.5(実数)を入れようとしたら、「あ、型が違う(wだから整数だ)」と書いている途中で気づけます。 つまらない型変換ミス(バグ)を未然に防げるのです。
実践! 悪い例 vs 良い例
では、実際にどれくらい読みやすくなるか比較してみましょう。
❌ 悪い例(1年後に読めない)
Temp- (Temporaryの一時変数? Temperatureの温度? どっち?)
SW1- (何のスイッチ? 入力? 内部?)
Data- (情報量ゼロ。何が入っているか全く不明)
⭕ 良い例(組み合わせ技)
i_b_EmsStopi_(入力)+b_(ビット)+EmsStop(非常停止)- 意味:「物理的な非常停止ボタンの入力信号」
g_r_OvenTempg_(グローバル)+r_(実数)+OvenTemp(炉内温度)- 意味:「全体で共有されている炉内温度の現在値(小数あり)」
解説:長すぎませんか?
「名前が長くなって入力が面倒くさい」と思いましたか? 大丈夫です。最近の設計ツール(GX Works3など)には、強力な入力補助機能(インテリセンス)があります。
「i_」と打つだけで、候補がズラッと出てきます。 むしろ、適当な名前をつけて後で「えーっと、あの変数は何だっけ…」と探す時間の方が、人生の無駄です。
まとめ:未来の自分へのプレゼント
命名ルールは、あなたを縛る「拘束」ではありません。 未来のあなたが迷わないための「道しるべ」です。
いきなり全てを変えるのは大変かもしれません。 まずは、「g_(グローバル変数)」をつけるところから始めてみてください。
それだけで、「この変数はどこか別の場所でも使われているのか?」という恐怖から解放され、安心してプログラムを修正できるようになります。
「変数名」という名のプレゼントを、未来の自分に贈ってあげましょう。
▼ 現場で役立つ!あわせて読みたい
- プログラムを部品化して資産にする技術
▶ 【脱コピペ】回路を「部品」化せよ。ファンクションブロックでバグを根絶する技術 - ラダー図とST言語、どっちを使うべき?
▶ 【言語比較】ラダーは最強だが万能ではない。適材適所で選ぶ現場の勝ち筋