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.
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:
-
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. -
I/O validation. The function proves which physical
XandYpoints 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. - 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 Convert → Convert/Compile or F4). An unconverted project returns a stale or empty used list.
- File registers (
R,ZR,Dwith battery-backed extension) are mapped if the program references them. A blocked file-register range hides devices from the search.
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
- Open the ladder (or SFC body) that contains the program you want to audit.
- Right-click anywhere inside the ladder grid. The context menu opens.
- 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
- Click the Find/Replace menu from the main menu bar.
- 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.
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 Parameter → Device 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:
- Sort by Device (click the column header) to group all references to a single address.
- 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.
- 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. - 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:
- Export the full device list with
*as the search pattern. - Open the CSV in Excel and add a Description column populated from the device comments.
- 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.
- Use Find String (Ctrl+F) for the literal pattern
D0Zto find every base address used with an index register. - For each base address, identify the index register letter (
Z0throughZ19on a Universal Q, orZ,Z1..Z6on an AnS). - Find the rung that bounds the index register — typically a
+or-instruction. Example:+ Z0 K1 Z0inside aFOR/NEXTloop bounds the index between 0 andn. - 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. - 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 theZRcontinuous 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 andZR*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:
-
Cross-check against the I/O assignment table. Open PLC Parameter → I/O Assignment. Every used
XandYin 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. - 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.
- 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.
-
Confirm comment retention. Toggle Include comments off, then on. A comment that disappears is missing from the project's
.txtcomment file and must be restored from the EOL pack. - 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
.txtfile. 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 (Z0–Z19 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.