Melsec iqr device overview
Skill mokouliszt/iqr-device-skill/skills/melsec-iqr-device-overview
MELSEC iQ-Rシリーズ(三菱電機シーケンサ)のデバイス全般に関する知識を提供する。デバイスの分類体系、命名規則、グローバル/ローカル区分、ラッチ機能、インデックス修飾、間接指定、デバイス点数設定、CPU機種ごとの差異、バックアップ/リストア対象、トラッキング転送対象などの共通概念を扱う。ユーザが「iQ-R」「シーケンサ」「PLC」「デバイス」「X」「Y」「M」「D」「ラベル」「GX Works3」などに言及した場合や、デバイス選定・命名・パラメータ設定・プログラム移植に関する質問をした場合に必ずこのSkillを参照すること。個別デバイス(タイマ・カウンタ・特殊リレーなど)の詳細仕様は別Skill `melsec-iqr-device-specifications` を参照する。From its SKILL.md
npx -y skills add mokouliszt/iqr-device-skill --skill melsec-iqr-device-overviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
14.8 KB, ~5.6k tokens by cl100k_base, as published. Nobody here has run it
MELSEC iQ-R デバイス総合知識
このSkillは、三菱電機MELSEC iQ-Rシリーズのデバイスに関する横断的・概念的な知識を提供する。個別デバイスの数値スペック(点数・範囲)は姉妹Skill melsec-iqr-device-specifications に集約してあるので、本Skillと併用すること。
このSkillの守備範囲
| 扱う | 扱わない |
|---|---|
| デバイス分類体系・命名規則 | 個々のデバイスの点数・範囲(→specifications) |
| グローバル/ローカル、ラッチ、インデックス修飾、間接指定 | 命令語の詳細(プログラミングマニュアル参照) |
| CPU機種ごとのデバイス差異 | ネットワーク・モーション等のユニット固有仕様 |
| バックアップ/リストア・トラッキング転送の対象判定 | 安全制御プログラムの設計手法 |
| デバイス選定の考え方 | エラーコード・診断(別資料参照) |
基本原則
iQ-Rのデバイスは**「分類 → 種別(ビット/ワード/ダブルワード) → 記号」**の三層で整理されている。回答の際は必ずこの構造に沿って説明すること。表記基数(10進/16進)も合わせて伝えると誤解が減る。
デバイス分類体系
iQ-Rのデバイスは大きく 8 分類 に分かれる。質問されたデバイスがどの分類に属するかを最初に特定すると、利用可否やバックアップ可否などが芋づる式に決まる。
| 分類 | 役割 | 代表デバイス |
|---|---|---|
| ユーザデバイス | ユーザが自由に使う一般用途デバイス | X, Y, M, L, B, F, SB, V, S, T, ST, LT, LST, C, LC, D, W, SW |
| システムデバイス | CPUの状態格納・サブルーチン引数受渡し | FX, FY, FD, SM, SD |
| リンクダイレクトデバイス | ネットワークユニットのリンクデバイスへ直接アクセス | Jn\X, Jn\Y, Jn\B, Jn\SB, Jn\W, Jn\SW |
| ユニットアクセスデバイス | インテリジェント機能ユニットのバッファメモリへ直接アクセス | Un\G |
| CPUバッファメモリアクセスデバイス | マルチCPU間/内蔵機能用メモリ | U3En\G, U3En\HG |
| インデックスレジスタ | デバイス番号のインデックス修飾用 | Z, LZ |
| ファイルレジスタ/リフレッシュデータレジスタ | 拡張ワードデバイス | R/ZR, RD |
| その他のデバイス | ポインタ・ネスティング等の制御用 | P, I, N, J, U, BL, TR |
加えて、SIL2プロセスCPU・安全CPUでのみ使用可能な 安全デバイス (SA\X, SA\Y, SA\M, SA\B, SA\T, SA\ST, SA\C, SA\D, SA\W, SA\SM, SA\SD)が独立した体系で存在する。安全デバイスは安全プログラムでのみ使用可能で、一般プログラムからは使えない点に注意。
種別(データ幅)
| 種別 | 1点あたり | 該当デバイス |
|---|---|---|
| ビット | 1 bit | X, Y, M, L, B, F, SB, V, S, FX, FY, SM, ラッチリレー L 等 |
| ワード | 16 bit | D, W, SW, FD(4ワード), SD, R/ZR, RD, Z 等 |
| ダブルワード | 32 bit | LT, LST, LC, LZ |
| ビット/ワード両用 | - | T, ST, C (接点・コイル・現在値を持つ構造) |
| ビット/ダブルワード両用 | - | LT, LST, LC |
T/ST/LT/LST/C/LCは接点(S)・コイル(C)・現在値(N)を持つ構造体的デバイスで、ラベルではそれぞれ TIMER, RETENTIVETIMER, LTIMER, LRETENTIVETIMER, COUNTER, LCOUNTER 型に対応する。
デバイス番号の表記基数
デバイスごとに表記基数が決まっており、混在しないよう注意:
- 16進数表記: X, Y, B, SB, FX, FY, W, SW, Jn\X, Jn\Y, Jn\B, Jn\SB, Jn\W, Jn\SW, U
- 10進数表記: M, L, F, V, S, T, ST, LT, LST, C, LC, D, FD, SM, SD, Z, LZ, R, ZR, RD, N, P, I, J, BL, TR, Un\G, U3En\G, U3En\HG
入出力番号 X/Y0~X/YFFF の範囲は入出力ユニット・インテリジェント機能ユニットの実I/O点数として使われる予約領域である点もよく聞かれるポイント。
グローバルデバイスとローカルデバイス
- グローバルデバイス: すべてのプログラムで共用。ローカル指定していないデバイスはすべてグローバル扱い
- ローカルデバイス: プログラムごとに独立。同じ番号でもプログラムAとプログラムBで別の値を保持できる
ローカルデバイスとして使えるのは M, V, T, ST, LT, LST, C, LC, D, P に限られる。インデックスレジスタ (Z, LZ) は退避/復帰される性質上、「ローカルインデックスレジスタ」として別扱いになる。
ローカル領域はデバイス/ラベルメモリに確保され、CPU電源OFF→ON時/STOP→RUN時に再確保される。
ラッチ機能
電源OFFや リセットでも値を保持する仕組み。対象はユーザデバイスとファイルレジスタ系であり、システムデバイス(SM/SD)はラッチ対象外。
ラッチには2系統の設定枠 ラッチ(1) と ラッチ(2) があり、別々の範囲を指定できる。バッテリ駆動が標準だが、バッテリレスオプションカセットを装着するとバッテリなしで停電保持が可能になる(R00/R01/R02CPUは標準でバッテリレス保持対応のため本オプションカセットは不要)。
ラベルにラッチを設定する場合は属性に RETAIN を指定する。
インデックス修飾と間接指定
iQ-Rには3種類のデバイス番号修飾がある:
- インデックス修飾:
D10Z2のようにZ(16ビット)またはLZ(32ビット)でアドレスをオフセット - 間接指定:
@D10のように先頭に@を付けてポインタ的に参照 - ビット指定/桁指定:
D10.0(ワードデバイスの特定ビット)/K4M0(ビットデバイスの桁集合)
修飾の優先順位は固定されている:
- ビットデバイス: インデックス修飾 → 桁指定
- ワードデバイス: インデックス修飾 → 間接指定 → ビット指定
Z の修飾範囲は -32768〜32767、LZ は -2147483648〜2147483647。32768を超えるオフセットには必ずLZを使う。
ZZ表現(連続2点のZを使った32ビット修飾)も可能だが、LZの範囲では使えない、隣接Z点との重複に注意、などの制約があるため通常はLZを使うほうが安全。
デバイス点数の設定
ユーザデバイスのほとんどは CPUパラメータ → メモリ/デバイス設定 → デバイス/ラベルメモリエリア詳細設定 → デバイス設定 で点数を変更できる。設定単位はデバイスごとに異なる(例: M は 64 点単位、D は 4 点単位)。
各デバイスの点数合計はデバイスエリアの容量を超えてはならず、エリア容量自体も同じ画面で変更可能。
変更不可のデバイス: X, Y, FX, FY, FD, SM, SD, リンクダイレクト系全般, Un\G, U3En\G, ネスティング(N), 割込みポインタ(I) 等。
CPU機種による差異の考え方
iQ-RのCPUは大きく次の系統に分かれ、デバイス上限点数や使用可否が異なる:
- Rn系: R00/R01/R02CPU(小規模機。デフォルト点数が控えめ), R04/R08/R16/R32/R120CPU(標準)
- RnEN系: 上記にEthernet/CC-Link IE機能を内蔵
- RnPCPU: プロセスCPU(プロセスモード/二重化モード)
- RnPSFCPU + R6PSFM: SIL2プロセスCPU(一般+安全)
- RnSFCPU + R6SFM: 安全CPU(一般+安全)
R00/R01/R02CPUのデフォルト点数は他機種より少なく、特に X/Y/M=8K点, T=2K点, LT/LC=0点, C=1K点, D=12K点, BL=128点 となる。R120CPU/R120ENCPUなど120系では P が 16384点 となる(他は8192点)。
CPU機種ごとの機能可否はiQ-R基本マニュアル付3 / iQ-R応用マニュアル付3 の対応一覧を見るのが確実。「この機能は安全CPUで使えますか?」と聞かれたら必ず該当一覧を確認すること。
ラベルとデバイスの関係
iQ-Rではデバイス直接指定だけでなく ラベル(システム/グローバル/ローカル) が使える。ラベルはGX Works3でデータ型を指定して宣言し、内部でデバイスに割り付けられる。データ型には基本型(BIT, WORD, INT, REAL, STRING など)に加え、デバイスに対応する構造体型(TIMER, COUNTER など)がある。
ラベルにはクラス(VAR, VAR_GLOBAL, VAR_INPUT, VAR_OUTPUT 等)と属性(RETAINでラッチ等)が指定できる。
バックアップ/リストアとトラッキング転送の対象判定
「このデバイスは系切替え/バックアップで保持されますか?」という質問が頻出する。判定の原則:
- CPUユニットのバックアップ/リストア機能: ユーザデバイスはほぼ全部対象。SM/SD はバックアップ対象だがリストア時はSD955のbit14で制御。U3En\G は
*2扱い(システム使用エリアは上書きされる)。インデックスレジスタ Z/LZ はローカル含めて対象。R/ZR, RD は対象。N, P, I, J, U, BL, TR は対象外 - トラッキング転送(二重化): ユーザデバイス・安全ユーザデバイスはグローバル/ローカル指定可。SM/SDの一部はパラメータ設定にかかわらず自動転送される(具体的SM/SDリストはspecificationsスキルを参照)
詳細な可否表は melsec-iqr-device-specifications の各referenceファイルに掲載されている。
デバイス選定のガイダンス
ユーザがプログラムを書こうとしているときの選定ヒント:
- 外部入力を取り込みたい → X(実I/O領域は X0〜XFFF を使用)
- 外部出力を出したい → Y(同上)
- プログラム内部の補助フラグ → 停電保持不要なら M、必要なら L またはラッチ設定したM
- 設備の異常検出フラグ → F(アナンシェータ)。SM62/SD62〜SD79に検出情報が自動格納される
- 数値データの一時保存 → D(デフォルト18K点と最大級)
- ネットワーク経由のビット交換 → B(リンクリレー)
- ネットワーク経由のワード交換 → W(リンクレジスタ)
- 時間計測 → T(低速/高速、16ビット)または LT(32ビット、約11.9時間まで計測可)
- 積算時間 → ST(OFFしても保持)または LST
- 回数カウント → C(16ビット、最大65535)または LC(32ビット)
- 大量データ/プログラム間共通データ → R/ZR(ファイルレジスタ)
- インテリジェント機能ユニットのバッファメモリ参照 → Un\G(FROM/TO命令と等価)
- ネットワークユニットのリンクデバイス直接参照 → Jn\X 等
- エッジ検出をFOR-NEXTやCALL内でやりたい → V(エッジリレー、PLS/PLF/Pは不可)
- SFCプログラムのステップ参照 → S(一般のシーケンス命令で内部リレー代用は不可・エラー)
注意点:iQ-R特有の落とし穴
- ステップリレー(S)を SFC 以外で使うとエラー/システムダウンの恐れがある
- タイマは1スキャンに1回コイル命令を実行しないと正しく計測できない(CJ命令で飛ばすのは不可)。割込み・初期実行・定周期・イベント実行プログラムでは使用不可
- ロングタイマ(LT/LST)は1点で4ワードを占有し、上位2ワードはシステム用なのでユーザが書き換えると誤動作する
- アナンシェータ(F)は SET/RST/LEDR/BKRST 命令でのみ専用処理が走る。MOV等で書き換えるとSM62/SD62〜SD79が更新されない
- 割込みポインタ(I)とポインタ(P)はユーザデバイスではなく「その他のデバイス」分類。インデックス修飾は割込みポインタとして使用する場合は不可
- ファイルレジスタ R/ZR は「ブロック切替え方式 (R, RSET命令)」と「連番方式 (ZR)」の2種類の指定方法があり、容量が64Kバイト未満/倍数でない場合は番号上限が変わる
- SIL2プロセスCPUおよび安全CPUの安全プログラムでは、インデックス修飾・間接指定が使用不可
参考資料の構成
このSkillで扱う知識のソースは以下の三菱電機公式マニュアルである:
- MELSEC iQ-R CPUユニットユーザーズマニュアル(基本編): 基本機能・基本デバイス
- MELSEC iQ-R CPUユニットユーザーズマニュアル(応用編): 応用機能・拡張デバイス・SIL2/安全CPU・二重化
- MELSEC iQ-R プログラミングマニュアル(プログラム設計編): SFC・FB等
- MELSEC iQ-R プログラミングマニュアル(CPUユニット用命令/汎用FUN/汎用FB編): 命令詳細
回答の際にユーザに参照を促す場合は、これらの正式名称を使うこと。
個別デバイス仕様の参照
具体的な点数・範囲・用途・注意事項を聞かれた場合は melsec-iqr-device-specifications Skill に切り替えるか、そちらの該当referenceファイルを参照する:
| 質問内容 | 参照先(specifications skill内) |
|---|---|
| X, Y, M, L, B, F, SB, V, S, T, ST, LT, LST, C, LC, D, W, SW | references/user-devices.md |
| FX, FY, FD, SM, SD | references/system-devices.md |
| Jn\X, Jn\Y, Jn\B, Jn\SB, Jn\W, Jn\SW | references/link-direct-devices.md |
| Un\G, U3En\G, U3En\HG | references/unit-access-devices.md |
| Z, LZ, R, ZR, RD | references/index-and-file-registers.md |
| P, I, N, J, U, BL, TR | references/pointers-and-others.md |
| SA\X 等の安全デバイス | references/safety-devices.md |
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.