GX Developer 7 List of Used Devices: Complete Search Guide

Ryan Tanaka17 min read
GX WorksMitsubishiTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

GX Developer 7 List of Used Devices: Complete Search Guide

The List of Used Devices function in GX Developer Version 7 (SH-080166) is the direct equivalent of the Used List that Medoc users relied on for two decades. It scans an entire GX Developer project (ladder, SFC, ST, and structured text bodies) and returns every device address that the compiled program actually touches. This article is a field-ready technical reference: it documents the two menu paths, the supported device name syntax, the wildcards, the export options, the differences between the A-series and Q-series search scope, the indexed-addressing patterns that motivated the original question, and the migration path to GX Works 2 / GX Works 3.

Audience: Commissioning engineers, support technicians, and integrators who must reverse-engineer, audit, or modify an existing GX Developer 7 program without an up-to-date tag list. The procedure is also useful for code reviews, EOL documentation, and pre-migration cleanup.

1. Overview: Why the List of Used Devices Matters

When a Mitsubishi MELSEC program is downloaded from a controller, the offline .GP7 file is the only authoritative source of the original design intent. GX Developer Version 7 Operating Manual (Start-Up) (SH-080165) documents how GX Developer builds an internal cross-reference table while the project is compiled. The List of Used Devices is the user-facing window onto that table.

Three engineering tasks depend on the function:

  1. Pre-modification audit. Before adding logic that writes to a register, the engineer must know whether another step already writes to it. Indexed addressing (D0Z0, M0Z0) hides the actual address from the human reader, so a wildcard search is the only safe way to enumerate touched devices.
  2. I/O validation. The function proves which physical X and Y points are wired in software. A point that exists in the hardware list but is missing from the used list indicates a module slot change since the program was last saved.
  3. Documentation refresh. A pre-migration export to CSV provides the seed list for the GX Works 2 / GX Works 3 Device List and for the customer's EOL documentation pack.

2. Prerequisites

Before invoking the function, confirm the following:

  • GX Developer Version 7 (any service pack) is installed; SW7D5C-GXDEV-E or the Japanese equivalent SW7D5C-GPPW-E. The function does not exist in GPPQ (Q-series dedicated) versions older than 7.0.
  • The project is open and the Main, Initial, Scan, and any SFC / ST program bodies are present in the project tree.
  • The project has been compiled at least once since the last edit (use ConvertConvert/Compile or F4). An unconverted project returns a stale or empty used list.
  • File registers (R, ZR, D with battery-backed extension) are mapped if the program references them. A blocked file-register range hides devices from the search.
Important: The List of Used Devices is a static view of the compiled program. It does not reflect the live state of the PLC. To cross-check the live image, read the controller's Device Memory window after going online.

3. Accessing the List of Used Devices

There are two equivalent menu paths. Both produce the same result set because they call the same internal scan routine described in SH-080166, Section 7 — Find/Replace.

3.1 Method A — Right-click context menu

  1. Open the ladder (or SFC body) that contains the program you want to audit.
  2. Right-click anywhere inside the ladder grid. The context menu opens.
  3. Scroll to the bottom of the context menu and click List of used Devices.

This path is the most common because most engineers keep a hand on the mouse while reading rungs.

3.2 Method B — Find/Replace menu

  1. Click the Find/Replace menu from the main menu bar.
  2. Click the very last entry on the menu: List of used Devices.

This path is the documented path. The reason it is at the bottom of the menu is that the developers grouped every cross-reference tool under one heading, separating it from the Find String and Replace String routines higher up.

4. The List of Used Devices Dialog Box

Once the dialog opens, GX Developer presents the following controls:

Control Label on Screen Function
Single-line input Find Device Starting device address. Accepts a single address (D200) or a pattern (M*, X0?0, D10..D1F).
Drop-down Device Type Optional filter: Bit, Word, Double Word. Used to suppress D matches when only M is of interest.
Check box Include SFC When checked, SFC transition conditions and step outputs are scanned. Default: ON.
Check box Include ST When checked, structured-text program bodies are scanned. Default: ON.
Check box Include comments When checked, the result grid shows the device comment (first 32 characters).
Button Execute Runs the scan and populates the result grid.
Button CSV Export Writes the visible grid to a comma-delimited text file. Default extension: .csv.
Button Jump Closes the dialog and positions the ladder cursor on the first occurrence.

Click Execute to populate the result grid. The grid columns are:

  • Device — the absolute address.
  • Program — the program body that contains the reference (e.g. MAIN, SCAN, INIT).
  • Step / Instruction — the step number and the mnemonic that touches the device (e.g. 00124 LD X0).
  • R/W — read or write classification; write hits are flagged with a red icon.
  • Comment — first-line device comment when Include comments is checked.

5. Search Field Syntax and Wildcards

The Find Device field accepts more than a single address. The supported patterns are:

Pattern Example Result
Single address D200 Every reference to D200 anywhere in the project.
Hex literal D0FF Equivalent to D255. The dialog accepts leading-zero hex notation.
Single-character wildcard D0?0 Matches D000, D010, D020 ... D0F0. ? replaces exactly one hex digit.
Multi-character wildcard M* Matches every used M address in the project, regardless of magnitude.
Type filter X* Returns every used input. Combine with the Bit filter to suppress word-typed X regions (e.g. DX in some Q-series modules).
Range D100..D1FF Restricts the scan to a contiguous range. Use the ASCII two-dot range operator.

The * and ? wildcards apply to the numeric portion only — the device letter prefix is fixed. To scan both M and L in one pass, run the search twice with the appropriate letter.

Indexed addressing caveat. GX Developer 7 does not auto-resolve the runtime target of an indexed address (D0Z0, M100Z1, X0Z0). The result grid lists the indexed address, not the resolved absolute address. To enumerate the absolute targets you must either read the index register's range (look for BMOV, FMOV, or arithmetic near the index), or run a wildcard scan with the device letter and a conservative numeric prefix. See Section 9.

6. Device Range Reference Tables

The device ranges supported by the function depend on the PLC type declared in the project header. The two common platforms are summarised below.

6.1 MELSEC-A series (AnS, AnN, AnA, AnU)

Prefix Name Default Range Searchable?
X Input X0–X1FF (AnS main base) plus extension bases Yes
Y Output Y0–Y1FF Yes
M Internal relay M0–M8191 (AnS) / M0–M9999 (AnN) Yes
L Latch relay L0–L8191 Yes
S Step relay S0–S2047 (AnS) / S0–S9999 (AnN) Yes (SFC mode)
B Link relay B0–B1FFF Yes
F Annunciator F0–F2047 Yes
T Timer contact / coil T0–T2047 Yes
C Counter contact / coil C0–C1023 Yes
D Data register D0–D8191 Yes
W Link register W0–W1FFF Yes
R File register R0–R8191 (block 0 default) Yes, requires file parameter
V Edge relay V0–V511 (AnS) Yes
Z Index register Z, Z1–Z6 (AnS) Yes

6.2 MELSEC-Q series (Q00–Q25, Universal model)

Prefix Name Default Range Searchable?
X Input X0–X1FFF (8K points) Yes
Y Output Y0–Y1FFF Yes
M Internal relay M0–M61439 (default latch range is 0–8191) Yes
L Latch relay L0–L32767 Yes
S Step relay S0–S32767 (block 0) Yes (SFC mode)
B Link relay B0–B7FFF Yes
F Annunciator F0–F32767 Yes
V Edge relay V0–V32767 Yes
T Timer T0–T32767 (contact + coil, current value is TN) Yes
C Counter C0–C32767 (contact + coil, current value is CN) Yes
D Data register D0–D421887 (default use 0–12287) Yes
W Link register W0–W7FFF Yes
R File register (block) R0–R32767 per block Yes, requires file parameter
ZR File register (continuous) ZR0–ZR4184063 Yes, requires file parameter
Z Index register Z0–Z19 (Universal model) Yes

The ranges above are the default user ranges. Project memory parameters (PLC ParameterDevice tab) can shrink or expand them. The List of Used Devices always honours the project-specific range; addresses that lie outside the parameterised range are silently ignored.

7. Reading and Interpreting the Result Grid

Each row in the result grid corresponds to a single mnemonic reference. The same device may appear many times if it is read in several rungs.

To interpret the grid efficiently:

  1. Sort by Device (click the column header) to group all references to a single address.
  2. Filter on R/W = W to isolate write hits. Compare them with the original specification — a missing write is a common bug after a copy-paste refactor.
  3. Sort by Program to verify that every declared program body in the project tree (e.g. SCAN, FAULT, INIT) has at least one device in use. A program body with zero hits is either unused or misnamed.
  4. Double-click any row to Jump the ladder cursor to the referenced step. The ladder view scrolls and centres on the line.

8. Exporting and Printing the Used Device List

For documentation, the CSV Export button writes a UTF-8 (or Shift-JIS, depending on the OS locale) file. The default fields written are:

Device,Program,Step,Instruction,R/W,Comment
D200,MAIN,00042,DMOV D200 D201,W,production counter
D200,MAIN,00124,LD>= D200 K100,R,limit reached
M0,SCAN,00003,LD M0,R,start request
Y10,MAIN,00210,OUT Y10,W,motor contactor

Use the export to seed the customer's EOL register map. Typical workflow:

  1. Export the full device list with * as the search pattern.
  2. Open the CSV in Excel and add a Description column populated from the device comments.
  3. Sort and de-duplicate on the Device column to produce a one-line-per-address register map.

For a hard-copy deliverable, use File → Print Preview while the result grid has focus. The grid is printable on A4 / Letter with a header that names the project, the search pattern, and the timestamp.

9. Indexed Addressing and the Implicit Search Use Case

The original question that motivated this guide concerned a program dense with indexed addressing. The List of Used Devices does not symbolically resolve D0Z0 to D0..D±n, but the following procedure enumerates the touched range reliably.

  1. Use Find String (Ctrl+F) for the literal pattern D0Z to find every base address used with an index register.
  2. For each base address, identify the index register letter (Z0 through Z19 on a Universal Q, or Z, Z1..Z6 on an AnS).
  3. Find the rung that bounds the index register — typically a + or - instruction. Example: + Z0 K1 Z0 inside a FOR/NEXT loop bounds the index between 0 and n.
  4. Run the used list with the wildcard D0* to retrieve every absolute address that the program reads or writes. The set is a superset of the runtime targets.
  5. Manually annotate the subset that is reachable through indexing.

This procedure produces a worst-case map. For a tighter map, add a temporary BMOV K0 D9000 K1 probe on each candidate address, go online, and observe D9000 while the program runs. The addresses that actually change are the live targets.

10. Used List vs Cross-Reference Window

GX Developer 7 has a second, related tool: the Cross-Reference Window (opened from the ladder by Shift+F7 or via the View menu). The two are not interchangeable.

Feature List of Used Devices Cross-Reference Window
Scope Entire project, all program bodies. Single device, single program body.
Trigger User-driven, one scan per project. Incremental, updated as the cursor lands on a device.
Indexed support Lists the indexed address; no resolution. Same — no resolution.
Export CSV (whole project). No direct export; print only.
Filter Wildcards, device type, SFC/ST inclusion. Read-only.
Best for Pre-modification audit, documentation, EOL. Live troubleshooting of a single address.

Use the List of Used Devices for the big picture. Use the Cross-Reference Window when you already know the address of interest and need to walk every reference to it in a single program.

11. Working with Mixed A-Series and Q-Series Projects

When a single project contains both A- and Q-series code (a common situation during staged migrations), the device ranges from the two series coexist. The List of Used Devices respects the active project header, but engineers should keep the following rules in mind:

  • The search always uses the destination project header, not the source. If you copied A-series logic into a Q-series project, the device letters are unchanged (M, D, X), but the available range and the ZR continuous file-register namespace expand.
  • For an A→Q migration, the file-register translation is the most error-prone step. Use the used list with the pattern R* on the A-series side and ZR* on the Q-series side. The two result sets must be reconciled manually.
  • The Include SFC checkbox is required whenever the program contains SFC. An SFC body that is excluded still appears in the project tree but contributes zero hits.

12. Migrating Projects to GX Works 2 / GX Works 3

GX Developer 7 is the last release line of the older MELSEC programming environment. New deployments use GX Works 2 (SW1DNC-GXW2-E) for Q/L-series and GX Works 3 (SW1DND-GXW3-E) for iQ-R/iQ-F. The List of Used Devices survives the migration as the Device List in the newer tools.

Function GX Developer 7 GX Works 2 GX Works 3
Menu path Right-click → List of used Devices / Find/Replace → bottom item Find/Replace → Cross Reference Find/Replace → Cross Reference
Wildcards *, ? *, ? *, ?
Indexed resolution No No No
Export CSV CSV, HTML CSV, HTML, JSON (via iQ-R symbolic info)
Symbolic tags Not available Available, optional First-class

When you convert a .GP7 project to a .gxw project, the device list migrates as plain numeric addresses. Run the same List of Used Devices in GX Works 2/3 immediately after the conversion and compare the result against the GX Developer 7 export. The two must match to the last row, otherwise a parameter did not convert cleanly.

13. Verification and Field-Proven Checks

After running the search, perform these checks before committing the modification:

  1. Cross-check against the I/O assignment table. Open PLC Parameter → I/O Assignment. Every used X and Y in the result grid must map to a slot. An address that exists in the used list but not in the I/O assignment indicates that a module has been moved or replaced since the program was last saved.
  2. Cross-check the live image. Go online, open Monitor → Device Memory, and dump the relevant range. Compare the live register count to the used list count. A divergence suggests an unconverted program or a parameter mismatch.
  3. Watch the cross-reference update. After any edit, the result grid must be re-run. There is no automatic refresh of the previously displayed result.
  4. Confirm comment retention. Toggle Include comments off, then on. A comment that disappears is missing from the project's .txt comment file and must be restored from the EOL pack.
  5. Print to PDF for audit trail. Use a virtual printer to write the result grid to a dated PDF. The file is the evidence that the audit was performed.

14. Troubleshooting Matrix

Symptom Likely Cause Corrective Action
Result grid is empty Project not converted/compiled since last edit. Press F4 (Convert/Compile) and re-run.
Wildcard * returns nothing Project's PLC type has no devices of that prefix (e.g. R not declared on AnN). Open PLC Parameter → Device and declare the file-register range, or change the search letter.
Device appears in grid but Jump does not move the cursor Reference is in a closed SFC transition or in an unexpanded ST function block. Open the SFC body or expand the FB; the device is in a body that is hidden.
Indexed address D0Z0 is listed but no absolute D matches Index bounds are zero; program never executes the indexed path. Trace the index register; confirm with the cross-reference window.
CSV export contains mojibake Excel opens UTF-8 as Shift-JIS. Use Data → From Text/CSV in Excel and force UTF-8.
SFC devices missing from grid Include SFC checkbox is off. Reopen the dialog, check the box, click Execute.
Used list disagrees with online device memory The PC is editing a stale .GP7. Re-read the project from the PLC with Online → Read from PLC.
Result grid runs but the dialog freezes Project is over 200 K steps; scan is single-threaded. Increase the project's parameter Compile buffer or split the audit into per-program searches.

15. Related Tools and Edge Cases

  • Device Initial Value: the Device Initial Value window is the write-only companion of the used list. Compare it with the used list to verify that every device with a non-zero initial value is also referenced in the program; an orphaned initial value is dead data.
  • Device Comment Utility: the Device Comment Utility reads comments from the project's .txt file. The Include comments checkbox in the used list reads the same file; both must be in sync.
  • Global Device Comment / Local Device Comment: Q-series projects can have two comment files. The used list shows comments from both, in that order. The Jump routine follows the global comment first.
  • Function Block (FB) library: used devices inside an FB are listed against the FB's local name, not against the call site. To audit the actual call sites, search the calling program body separately.
  • Macro instruction: a macro (MC/MCR) is a label, not a device, and does not appear in the used list. Verify macro usage with Search → Jump → Label.

16. Quick-Reference Procedure Card

Goal: enumerate every device touched by the current project

1.  Project → Compile (F4)        # ensure the scan table is fresh
2.  Open MAIN, SCAN, INIT, ...       # all program bodies
3.  Right-click in ladder            # or: Find/Replace → bottom item
4.  Click 'List of used Devices'
5.  Type the pattern:                # e.g. M*, X*, D100..D1FF
6.  Check 'Include SFC' / 'Include ST'
7.  Check 'Include comments'         # for the documentation export
8.  Click 'Execute'
9.  Sort by Device, filter on W      # isolate write hits
10. Click 'CSV Export'               # write to the project audit folder
11. Jump to each row that requires a code change

Print the card above and pin it next to the engineering workstation. The total elapsed time for a 30 K-step project on a typical Windows 10 PC is under 12 seconds.

How do I open the List of Used Devices in GX Developer 7?

Open the ladder, right-click anywhere in the grid, and choose List of used Devices at the bottom of the context menu. The same function is also reachable from Find/Replace → List of used Devices, which is the last item on that menu. Both paths call the same scan routine documented in the GX Developer Version 7 Operating Manual (SH-080166).

Does the search resolve indexed addresses like D0Z0 to their absolute targets?

No. GX Developer 7 lists the indexed address exactly as it appears in the program. To find the absolute targets, run the wildcard D0*, identify the index register (Z0Z19 on a Universal Q), trace its bounds, and reconstruct the reachable range manually. A live probe (read D9000 after a temporary BMOV) is the only fully reliable check.

What is the difference between the List of Used Devices and the Cross-Reference Window?

The List of Used Devices scans the entire project and returns every device in one grid; it is built for documentation, audits, and pre-modification sweeps. The Cross-Reference Window (Shift+F7) is incremental and per-device, built for live troubleshooting of a single address. Use the list for the big picture, and the cross-reference for a deep dive on one address.

Why does the result grid come back empty after I edited the program?

GX Developer 7 does not refresh the cross-reference table automatically. Press F4 (Convert/Compile), then re-run the search. An unconverted project returns a stale or empty grid, and the dialog will not warn you about it.

How do I export the used list for a customer EOL deliverable?

Open the dialog, run a wildcard search with *, check Include comments, and click CSV Export. The default encoding is UTF-8; in Excel use Data → From Text/CSV and force UTF-8 to avoid mojibake. Sort and de-duplicate on the Device column to produce a one-line-per-address register map.

Is the List of Used Devices available in GX Works 2 and GX Works 3?

Yes, as the Cross Reference function under Find/Replace. The wildcard syntax (*, ?) and the indexed-addressing limitations are identical, and the CSV export format is backward compatible. Always re-run the cross-reference immediately after a .GP7.gxw conversion to confirm that the migration did not drop a device.

Back to blog