0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MELSEC iQ-R のラベルメモリについて調べる

Last updated at Posted at 2025-04-16

はじめに

MELSEC iQ-R シリーズでは、GX Works3 を使ったラベルベースのプログラミングが可能です。これにより、従来のデバイス番号ではなく、変数(ラベル)を使ってプログラムを記述することができます。

このラベルが実際にどのような内部構造を持ち、どのようにメモリへ割り当てられているのかを、本記事では掘り下げて解説していきます。


ラベルメモリとは?

GX Works3で使用されるラベルは、内部では「ラベルメモリ」と呼ばれる特別なメモリ領域にマッピングされます。

参考動画(公式)

三菱電機公式のYouTubeチャンネルでもラベル機能の解説がありますので、あわせて視聴することをおすすめします。

🔗 GX Works3 ラベルプログラミング講座(YouTube)


ラベルメモリの正体とは?

ラベルは、実際には以下のような専用のデバイスに割り当てられています。

記号 意味 用途
GV Global Variable グローバルラベルに割り当て
UV Unit Variable ユニットラベルに割り当て
LV Local Variable ローカルラベルに割り当て
LLV Local Latch Variable ラッチ付きローカルラベル(VAR_RETAIN)
LLP Local Label Pointer ポインタ型のローカルラベル
GLP Global Label Pointer ポインタ型のグローバルラベル

これらの情報は「GX Works3 オペレーティングマニュアル(SH-081214)」に記載されています。

このエリアを直接モニタする方法はありません。


ラベルメモリのバックアップ方法

注意: FX5CPUは非対応です。読出し/書込み可能な条件については「GX Works3 オペレーティングマニュアル(SH-081214)」を参照してください。

ラベルの割付け情報を確認・保存するには、以下の手順で行います。

バックアップ手順

  1. GX Works3 の「CPUメモリ操作」画面を開く
  2. 「CPU内蔵メモリ」を選択
  3. 「デバイス/ラベルメモリ」を選択
  4. 「ラベルメモリの読み出し/書き込み」を選択
  5. バックアップ処理を実行
    image.png
    image.png

バックアップ結果

実行後、指定したフォルダにBackupDataというフォルダが作成され、ラベルのバックアップファイルが保存されます。

LabelChg_before.csv というファイルに、ラベルごとの割り当てメモリアドレスが記載されており、内部的なラベルとデバイスの対応関係が把握できます。

GV、LV、LLVについてはこの方法で確認できます。

バックアップファイルの例

stGLBL3[0].AAA00	GV:7800.0	BOOL	1	60	0
stGLBL3[0].AAA01	GV:7800.1	BOOL	1	60	0
stGLBL3[0].AAA02	GV:7800.2	BOOL	1	60	0
stGLBL3[0].AAA03	GV:7800.3	BOOL	1	60	0

MAIN/ProgPou/stLLBL1[0].AAA00	LV:0.0	BOOL	1	10	0
MAIN/ProgPou/stLLBL1[0].AAA01	LV:0.1	BOOL	1	10	0
MAIN/ProgPou/stLLBL1[0].AAA02	LV:0.2	BOOL	1	10	0
MAIN/ProgPou/stLLBL1[0].AAA03	LV:0.3	BOOL	1	10	0

MAIN/ProgPou/stLLBL2[0].AAA00	LLV:0.0	BOOL	1	12	0
MAIN/ProgPou/stLLBL2[0].AAA01	LLV:0.1	BOOL	1	12	0
MAIN/ProgPou/stLLBL2[0].AAA02	LLV:0.2	BOOL	1	12	0
MAIN/ProgPou/stLLBL2[0].AAA03	LLV:0.3	BOOL	1	12	0

UV(ユニットラベル)の確認方法

UVについては、ユニットラベルの割付を確認すると、システムで割り付けられているアドレスを見ることができます。

image.png

ただ、このUVから始まるラベルが何に使えるかはマニュアルに記載がない気がします。

このようにコメントで説明はありますが、詳細な使用方法は不明です。

image.png

GLP、LLP(ポインタ型ラベル)の確認方法

GLP、LLPについては、GX Works3のプロジェクトファイルを解凍し、中のLabelDataをSQLiteブラウザで読み出すことで、確認することができます。

lp01、gp01がラベル名で、LLP2、GLP0が割付されたデバイスです。

image.png

image.png


デバイス/ラベルメモリエリア設定

R00CPUの場合

R00CPUの場合です。デバイス/ラベルメモリは仕様で252Kバイト(126Word)が上限となります。これを各それぞれのデバイスで分け合うことになります。

image.png

デバイスエリアの設定

デバイスエリアは下記の設定で点数が設定できます。MELSEC-Qと同じですね。

image.png

ラベルエリアの設定

ラベルエリアは下記の設定で点数が設定できます。

  • ラベルエリア: GV、LV
  • ラッチラベルエリア: GV(VAR_RETAIN指定時)、LLV

image.png

現状、このラベルの使用率はコンパイル正常完了時に見ることができます。

image.png

ファイル格納エリアの設定

ファイル格納エリアを使用するファイルレジスタは下記の設定で点数が設定できます。
64Kワード領域があるので、最大64Kワードまで設定可能です。

image.png


MELSEC iQ-Fの場合

MELSEC iQ-Fのデバイス/ラベルメモリエリア設定です。
MELSEC iQ-Fは容量が少ないため、このような機能になっているようです。

image.png

image.png

参考資料:https://www.mesw.co.jp/technology/archives/techlib-msw_35_04.html


ファンクションブロック内にローカルラベルを追加する場合の注意事項

**テクニカルニュース(FA-D-0232)**に記載の内容です。

予約領域について

ファンクションブロックは、ローカルラベルを追加するための領域として、下記の予約領域を持っています。

ラベルの種別 予約領域容量
ローカルラベル 48ワード
ローカルラッチラベル 16ワード

重要な注意事項

**RUN中のCPUユニットにローカルラベルの追加操作を行った場合、追加したローカルラベルは、本予約領域内に割り付けられます。**そのため、ファンクションブロックの予約領域容量を超えるローカルラベルの追加はできません。

ファンクションブロックの予約領域容量を超えるローカルラベルの追加を行う場合は、GX Works3にて全変換(再割付)を実施後、CPUユニットをSTOPにして書込みを行ってください。

予約領域容量を超えてローカルラベルの追加を行った場合は、予約領域容量が足りない旨の変換エラーが発生します。ローカルラベルを変更した場合も対象となります。

予約領域容量を超えてローカルラベルを追加する場合の対処方法

ファンクションブロックの予約領域容量を超えてローカルラベルを追加する場合は、必ず下記の手順で全変換(再割付)を実施してください。全変換(再割付)を実施すると予約領域容量を再確保します。

  1. CPUユニットをSTOPにして、全変換(再割付)後のプログラムを書き込んでください。
  2. ラベルデータの現在値をクリアしてください。

ラベルを使用したプログラムを変換する場合の注意事項

**テクニカルニュース(FA-D-0202)**に記載の内容です。

変換方法の種類

ラベルを使用したプログラムの変換方法は、変換種別とラベル割付設定の組合せにより、下記の3種類があります。

  • 全変換(再割付)
  • 全変換(維持)
  • 変換

ラベルデータの仕様

下表は、それぞれの変換方法で変換したプログラムをSTOP中のRCPUに書き込み、RCPUをRUN状態に切り換えた場合のラベルデータの仕様です。

ラベルデータの現在値を維持しない変換を行った場合(下表の△部分に該当する変換を行った場合)は、ラベルデータのクリアを行ってから、RCPUをRUN状態に切り換えてください。

  • : ラベルデータの現在値を維持
  • : ラベルデータの現在値を維持しない
プロジェクトに対する変更内容 全変換(再割付) 全変換(再割付) 全変換(維持) 全変換(維持) 変換 変換
グローバル ローカル グローバル ローカル グローバル ローカル
ラベル定義の追加/変更
ラベル定義の一部を削除
ラベル定義の追加/変更/削除なし(プログラムのみを変更)

重要な注意事項

  • ラベル定義の変更とは、あらかじめ定義されているラベルのラベル名やデータ型、クラス、ラベル初期値など、ラベルエディタで設定した情報を変更することです。
  • 追加/変更対象のラベルについては、新しいメモリを割り付けるため、ラベルデータの現在値がありませんので、追加/変更対象のラベルをGX Works3のウォッチウィンドウへ登録し、現在値を初期化してください。
  • 追加/変更対象外のラベルデータの現在値を維持する必要がある場合は、「変換+RUN中書込み」を実施してください。

まとめ

MELSEC iQ-Rのラベルメモリは、内部で専用のデバイスに割り当てられており、その構造を理解することで、より効率的なプログラミングが可能になります。

重要なポイント

  1. ラベルメモリの種類: GV、UV、LV、LLV、LLP、GLPの6種類
  2. バックアップ方法: CPUメモリ操作から実行可能
  3. 容量制限: R00CPUでは252Kバイトが上限
  4. 予約領域: ファンクションブロックには予約領域がある
  5. 変換時の注意: ラベルデータの現在値維持に注意

このような内部構造を理解しておくことで、より確実なPLCプログラミングが可能になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?