How to Read Japanese PLC Programs: Mitsubishi X/Y/M/D

A machine built in Japan stops on your line in Thailand, Ohio, or Pune. You connect a laptop to the PLC, open the program, and find rung after rung of contacts labeled X1A, M120, and D200. The comments under them are in Japanese. Or they show up as strings of question marks and random symbols. The ladder logic itself is familiar, but the naming, the numbering, and the comments are not.
The short answer: most programs from Japanese machine builders are written in ladder logic, and on Mitsubishi PLCs every address is a "device" whose letter tells you what it is: X for inputs, Y for outputs, M for internal relays, D for data registers. Once you know the letters, the numbering rules (some are hexadecimal or octal, not decimal), and a short list of Japanese comment terms, you can trace why a machine stopped without waiting for the builder.
This guide is for maintenance and controls engineers outside Japan. It covers how a PLC scans its program, why Japanese builders still favor ladder, how to read Mitsubishi device names, how Omron, Keyence, and Siemens name the same things, the Japanese conventions you will see in ladder and comments, and what to do when comments are unreadable. It ends with a checklist of what to ask the builder for before the machine ships.
Contents
- What a PLC Does: Inputs, Logic, Outputs
- Why Japanese Machines Are Mostly Programmed in Ladder
- Mitsubishi Device Names: X, Y, M, D, and the Rest
- How Omron, Keyence, and Siemens Name the Same Things
- Japanese Ladder Conventions You Will Meet
- When the Comments Are Garbled or Missing
- Tracing a Stopped Machine Through the Ladder
- Checklist: What to Get from the Japanese Builder
- Limits of This Guide
- FAQ
- Sources
What a PLC Does: Inputs, Logic, Outputs
A PLC (programmable logic controller) is an industrial controller that reads signals from sensors and switches and drives motors, valves, and lamps according to its program. In Japan it is also called a sequencer (シーケンサ, shikensa) or a programmable controller, so expect all three terms on Japanese drawings and manuals. Keyence describes a PLC as a microcomputer with a CPU and memory that controls output devices based on signals from input devices, built to run in harsher factory conditions than an ordinary computer: dust, vibration, electrical noise, and temperature swings, for years without stopping. PLCs replaced panels full of electromagnetic relays, so a change in the control sequence usually means editing the program rather than rewiring.
A typical PLC task is sequence control (シーケンス制御): moving through steps in a fixed order when conditions are met. For example: "When the start button is pressed, run the conveyor; when the sensor detects a part, stop it."
The PLC reads signals from input devices and controls output devices according to its program.
The letters in parentheses are Mitsubishi's device names. HMIs (touch panels) and host PCs connect through communication modules or networks.
A typical modular PLC has a CPU module that runs the program, plus power supply, input, and output modules. Output modules come in types such as relay and transistor outputs, chosen to suit the voltage and response speed of the connected devices. Builders add communication modules, positioning modules for servo or stepper motors, and analog I/O modules for temperature or pressure as needed, so functions can be added by adding or swapping modules. Compact PLCs put the power supply, CPU, and I/O in one housing and are common on small, standalone machines. To match each physical terminal to its address, you need the builder's I/O list; see DI/DO, AI/AO, PI/PO: Reading a Japanese I/O List.
The Scan Cycle and Why It Matters When You Troubleshoot
A PLC does not react to inputs one by one. It reads all inputs at once, runs the program from top to bottom, writes all outputs at once, and repeats. One pass is a scan, and the scan time is typically in the millisecond range.
The PLC repeats these three steps as one cycle, with a scan time measured in milliseconds.
In practice, self-diagnostics and communication are also handled within each cycle.
This matters when you watch a program online. A signal that turns on for less than one scan can be missed entirely. As a program grows, the scan time can get longer and slow the machine's response. That is why builders use dedicated high-speed counter modules to count fast pulses. When a short signal seems to be ignored, check the scan time before you suspect the sensor.
Why Japanese Machines Are Mostly Programmed in Ladder
The international standard for PLC programming languages is IEC 61131-3. Up to its third edition it defined five languages: three graphical (LD, FBD, SFC) and two text-based (IL, ST). The first edition was published in 1993, and the fourth edition, published in May 2025, removed IL.
Graphical and text-based languages, each suited to different tasks.
Based on Omron, "Features of IEC 61131-3" (Japanese).
On Japanese shop floors, ladder dominates. A ladder diagram places contacts and coils on horizontal rungs between two vertical power rails, so it looks like a ladder. Because it maps almost one-to-one onto relay schematics, it is also easy for electrical maintenance staff to read.
The Japan Electrical Manufacturers' Association (JEMA) 2024 PLC user survey asked machine builders' sites that had already adopted IEC 61131-3 which languages they use. Even among those sites, 88.9% used ladder. FBD was at 37.8% and ST at 28.9%. Builders add ST for calculations and data handling and FBD where they want to show the control flow, but ladder remains the base.
Ladder is the core language; some builders also use FBD or ST alongside it.
Responses from machine builders' sites that have adopted IEC 61131-3 (multiple answers allowed). Source: JEMA, 2024 PLC User Survey Report (March 2025, Japanese).
In the same survey, 86.4% of responding machine-builder sites bought PLCs from only one to three makers. Because programming tools, instruction sets, and networks differ by maker, builders tend to standardize on a few brands, so state your required brand in the specification if you have one. For how the main brands compare, see Mitsubishi vs Keyence vs Omron vs Siemens: Choosing a PLC.
Mitsubishi Device Names: X, Y, M, D, and the Rest
Mitsubishi Electric's MELSEC series is widely used in Japan, so you will often meet it on Japanese equipment. In MELSEC programs, every input, output, bit, and register is called a device (デバイス). The letter tells you the type, and the number tells you which one. The table below lists the devices that appear most often on Q, L, and iQ-R series CPUs.
| Device | Name | What it is | Numbering |
|---|---|---|---|
| X | Input | A physical input signal (button, sensor, limit switch) | Hexadecimal (octal on FX) |
| Y | Output | A physical output (contactor, solenoid valve, lamp) | Hexadecimal (octal on FX) |
| M | Internal relay | An internal bit for logic, such as "ready" or "step complete" | Decimal |
| L | Latch relay | An internal bit that keeps its state through a power cycle | Decimal |
| B | Link relay | A bit shared with other stations over the network | Hexadecimal |
| F | Annunciator | A bit used to flag faults | Decimal |
| T / C | Timer / counter | Timers and counters, each with a contact, a coil, and a current value | Decimal |
| D | Data register | A 16-bit word for numbers: setpoints, counts, recipe values | Decimal |
| W | Link register | A word shared with other stations over the network | Hexadecimal |
| SM / SD | Special relay / special register | System bits and words provided by the CPU for status and diagnostics | Decimal |
Device ranges and the full list vary by CPU model and parameter settings, so treat the table as a reading aid, not a specification. The authoritative list is in the programming manual for the CPU on your machine, and in GX Works the ranges are set in the PLC parameters.
Why X7 Is Followed by X10 on One Machine and X8 on Another
The numbering base trips up many engineers on their first Mitsubishi machine. On the compact FX series, X and Y are numbered in octal, so the inputs run X0–X7 and then X10–X17. Mitsubishi's own FAQ gives the example that Y7 is followed by Y10, and Y77 by Y100. X8 and X9 do not exist on an FX. On Q, L, and iQ-R CPUs, X and Y are hexadecimal, so X7 is followed by X8, then X9, XA through XF, and X10. M and D stay decimal on all of them.
Sixteen inputs on an FX CPU and on a Q/iQ-R CPU are addressed differently.
X10 X11 X12 X13 X14 X15 X16 X17
X8 X9 XA XB XC XD XE XF
So "X10" is the 9th input on an FX CPU but the 17th on a Q or iQ-R CPU. Check the CPU model before you match addresses to terminals.
When you compare an address in the program with a terminal number on the I/O module or a row on the I/O list, check the CPU series first. A mismatch here is one of the easiest ways to end up probing the wrong terminal.
Constants and Common Instructions
Numbers written into instructions carry a prefix. K marks a decimal constant and H a hexadecimal one, so K100 is one hundred and H100 is 256. Timers are a common place to see this. A timer setting of K50 means 50 counts of the timer's time base: 5.0 seconds on a 100 ms timer, but a different time on a 10 ms timer. The time base depends on the CPU and the timer settings, so check it before you assume a delay.
A few instructions appear in almost every Mitsubishi program:
- SET / RST: turn a bit on and leave it on (latch), or turn it off (unlatch). A bit that stays on after its condition clears is often held by SET.
- PLS / PLF: turn a bit on for one scan on the rising edge (PLS) or falling edge (PLF) of a condition. These one-scan pulses are easy to miss when you watch online.
- MOV: copy a value, for example a constant such as K100 into D0, or D0 into D10.
Two consecutive D registers can hold a 32-bit value, so a value in D200 may continue into D201. Check the instruction before you read a single register on its own.
How Omron, Keyence, and Siemens Name the Same Things
Even though most major makers state that their software complies with IEC 61131-3, the address names in ladder differ from brand to brand. If your plant runs equipment from several Japanese builders, you will likely see more than one naming system.
| Mitsubishi MELSEC | Omron CS/CJ/CP | Keyence KV | Siemens S7 (for comparison) | |
|---|---|---|---|---|
| Inputs and outputs | X (input), Y (output) | CIO area, e.g. 0.00 | R (input, output, and internal relays) | I (input), Q (output) |
| Internal bits | M | W (work area) | MR (internal auxiliary relay) | M |
| Retained bits | L (latch relay) | H (holding area) | LR (latch relay) | — |
| Data words | D | D (data memory, "DM") | DM (data memory), EM (expansion) | DB (data blocks), MW |
| Address style | Letter + number | Word.bit (bits 00–15) | Letter + number | Byte.bit, e.g. I0.0 |
A few points help when you switch between them:
- Omron CS/CJ and CP-series programs use a word.bit format. CIO 0.00 is word 0, bit 00, and bits run 00 to 15 within each word. Omron's newer NJ/NX controllers, programmed in Sysmac Studio, use named variables instead of fixed addresses.
- Keyence KV PLCs use R for input, output, and internal relays together, so you cannot tell from the letter alone whether an R device is a physical I/O point. The KV-8000 also has control relays (CR) and control memory (CM) for system functions.
- Siemens addresses use the byte.bit format. German-language mnemonics write inputs as E and outputs as A instead of I and Q. The program is the same; only the display setting differs.
- Newer Mitsubishi projects in GX Works3 can also use labels (named variables). The underlying devices still exist, so you may see both.
The same brand can also differ between series and software generations. Before you try to read or convert a program, confirm the CPU model and the software version it was written in.
Japanese Ladder Conventions You Will Meet
a-Contacts, b-Contacts, and the Self-Holding Circuit
Japanese drawings and programs call a normally open contact an a-contact (a接点, a-setten) and a normally closed contact a b-contact (b接点, b-setten). For how these terms appear on signal lists, see Reading a Japanese I/O List.
One of the first circuits taught in ladder logic is the self-holding circuit (自己保持回路, jiko-hoji kairo), which English speakers call a seal-in or latching circuit. A push button returns to OFF when you release it, so on its own it would run the motor only while you hold it down. The fix is to put a contact of the motor output in parallel with the start button. One press turns the output on, and the output's own contact keeps it on. A stop contact in series breaks the hold. The circuit dates from the relay era and appears in almost the same form in PLC ladder, so you will find it at the heart of many machine programs.
Fictional example. Device numbers above each element; the Japanese comment and its meaning below.
X0 start button (a-contact) in parallel with the Y20 seal-in contact; X1 stop button (b-contact) and M10 "ready" in series; Y20 drives the conveyor motor contactor. "(0)" is the step number at the start of the rung. PB = push button. Whether the stop button appears as an a- or b-contact in the program depends on how it is wired, so check the electrical drawing.
That last point catches people out. A contact in the program tests the state of the input bit, not the physical switch. If the stop button is wired normally closed, the program may show X1 as an a-contact, because the input is ON while the button is not pressed. Read the program and the electrical drawing together.
Safety functions such as emergency stops are generally built with safety relays or a safety PLC separate from the standard PLC. If an emergency stop circuit is involved, do not rely on the ladder alone to judge whether it is working; follow your plant's safety procedures and involve whoever is responsible for the machine's safety design.
Japanese Terms in Comments and Statements
GX Works lets programmers attach three kinds of text: device comments on individual devices, statements that describe a rung or block, and notes. Japanese builders often write all three in Japanese, sometimes in half-width katakana (for example コンベヤ for "conveyor"). The terms below come up again and again in machine programs. Copying an unfamiliar comment into a translation tool usually works, but knowing these lets you scan a program quickly.
| Japanese | Romaji | Meaning in a program |
|---|---|---|
| 起動 / 停止 | kido / teishi | Start / stop |
| 運転 / 運転中 | unten / untenchu | Run / running |
| 自動 / 手動 | jido / shudo | Auto / manual mode |
| 原点 / 原点復帰 | genten / genten fukki | Home position / return to home |
| 非常停止 | hijo teishi | Emergency stop |
| 異常 / 異常リセット | ijo / ijo risetto | Fault / fault reset |
| 完了 / 準備完了 | kanryo / junbi kanryo | Complete / ready |
| 検出 / 有無 | kenshutsu / umu | Detected / presence (part present or not) |
| 前進 / 後退 | zenshin / kotai | Advance / retract (cylinders) |
| 上昇 / 下降 | josho / kako | Up / down |
| 端 (前進端 / 後退端) | tan (zenshin-tan / kotai-tan) | End position (advanced end / retracted end), usually a sensor or limit switch |
| インターロック | intarokku | Interlock |
| 自己保持 | jiko-hoji | Seal-in (self-holding) |
| タイムアップ | taimu appu | Timer done (time elapsed) |
Comment wording is not standardized. Each builder, and often each programmer, has its own habits, and abbreviations are common. Use the table as a starting point, and ask the builder when a comment on a key rung is unclear.
When the Comments Are Garbled or Missing
If the comments appear as question marks or random symbols, the software cannot display the Japanese characters. Mitsubishi's technical bulletin FA-A-0082 states that the English version of GX Works2 does not support double-byte characters or half-width Japanese kana. Project data created in the Japanese version with those characters can show garbled statements and labels, may fail to open if the project name is in Japanese, and can produce compile errors if labels are in Japanese. The bulletin's own advice is to replace those characters with single-byte alphanumerics.
Better options exist, depending on the software:
- GX Works2: Mitsubishi's FAQ says you can create device comments in English and in Japanese and switch between them in the tool options. The language for project data such as device comments, statements, and notes can also be selected.
- GX Works3: the device comment editor supports multiple comment sets, one per language, and you can choose which set is displayed. Mitsubishi presents this as a way for Japanese and overseas staff to work on one project.
- The source of the problem: the most reliable fix is upstream. Ask the builder to deliver the project with an English comment set, in the software version your team uses.
Comments can also be missing altogether. Programs that depend on one person's style, with few comments and no design documents, take much longer to troubleshoot or modify after that person moves on. Ask whether the comments exist only in the builder's project file or were also written to the CPU, and get the full project file either way.
Tracing a Stopped Machine Through the Ladder
Reading the program online is where these conventions pay off. During commissioning, the builder's controls engineer loads the program, checks each I/O point one by one, and adjusts timing while running the machine. After handover, when a machine stops, maintenance staff connect the programming software to the PLC and monitor the program while it runs. The ladder shows whether a sensor is not responding or a condition is not being met, so being able to read it can cut recovery time sharply.
Here is a fictional example using the rung in Figure 6. The conveyor will not start. Online, you press the start button and see X0 turn on, but Y20 stays off. The X1 contact is passing, so the stop button input is not what is blocking the rung. M10 "運転準備完了 (ready)" is off. You search for the rung that turns M10 on and find several conditions in series. One of them is X1F, commented "原点" (home), and it is off. The problem is now a physical one: the home sensor on the transfer unit, or the unit is not at home. You check the sensor before touching the program.
Work from the output back to the first condition that is not met.
Fictional, general approach. Your plant's rules on online monitoring, forcing, and program changes apply.
Monitoring only reads the program. Forcing bits, writing changes online, or downloading a modified program can move machinery, so those actions belong under your plant's change-control and safety rules, not under a troubleshooting habit. If the program is from the builder and still under warranty, agree on who may change it before startup.
Checklist: What to Get from the Japanese Builder
Most of the pain described above can be avoided at the purchase and acceptance stage. Add these items to the specification or the factory acceptance test (FAT) checklist.
- PLC maker, CPU model, and series (FX vs. Q/L/iQ-R matters for X/Y numbering)
- Full project file, with the programming software name and version used
- Device comments, statements, and notes in English (a separate English comment set is fine), with no Japanese in project or label names
- I/O list that maps every X and Y address to terminals, field devices, and drawing numbers
- Device map explaining what the main M, L, and D ranges are used for (for example, which D registers hold setpoints and recipes)
- Fault list linking each alarm message on the HMI to the device that triggers it
- Electrical drawings showing how each input is wired (a-contact or b-contact)
- Timer time bases and the meaning of key setpoints
- Any password or protection on the program, and who holds the password
- Rules for changes: who may modify the program, and how changes are recorded and sent back
Sample Request to the Builder
You can adapt this text for an inquiry or the specification. Keep the sentences short so they translate cleanly.
Subject: PLC program documentation for [machine name / order number]
Please include the following in the delivery documents for the PLC:
1. The full PLC project file and the software name and version used.
2. Device comments in English for all X, Y, M, L, D, T, and C devices used. Please do not use Japanese characters in project names or label names.
3. The I/O list, the electrical drawings, and a list of HMI alarm messages with their trigger devices.
4. A short explanation of the main M and D ranges (for example, setpoints and recipe data).
Please tell us if any item is difficult, and when you can send it. Thank you.
Limits of This Guide
- Device names, ranges, numbering, and timer time bases vary by CPU series, model, and parameter settings. The tables here are reading aids. Always check the programming manual for the CPU on your machine.
- Most major makers state that their software complies with IEC 61131-3, but real programs depend on maker-specific instructions and settings. Converting a program to another brand takes real engineering effort, not a file conversion.
- Comment wording and program structure differ by builder and by programmer. The Japanese terms listed are common but not standard.
- PLCs are not suited to storing and analyzing large amounts of data or to image processing; those tasks go to host PCs, servers, or vision systems. Connecting PLCs to plant networks also brings security risks, which is one reason newer models add security features.
- This article does not cover safety circuits, safety PLCs, or procedures for changing a running program. Those follow your plant's rules and the machine's safety design.
- Software menus and features change between versions. Confirm comment language settings in the version you have installed.
FAQ
What Is a Sequencer in Japanese PLC Terms?
It is a PLC. Japanese engineers often say sequencer (シーケンサ) for a programmable logic controller, after the sequence control it performs. You will see the word on drawings, specifications, and in Mitsubishi's Japanese product names.
What Do X, Y, M, and D Mean in a Mitsubishi PLC?
X is an input, Y is an output, M is an internal relay (an internal bit), and D is a data register (a 16-bit word for numbers). L is a latch relay that keeps its state through power loss, and T and C are timers and counters.
Why Is There No X8 or X9 on My Mitsubishi PLC?
Your CPU is probably an FX series, where X and Y are numbered in octal: X0–X7, then X10–X17. Q, L, and iQ-R CPUs number X and Y in hexadecimal instead, so they do have X8, X9, and XA–XF.
How Do I Read Japanese Comments in GX Works?
Open the project in software that can display Japanese, or switch the comment language if the project has more than one comment set. The English version of GX Works2 does not support double-byte or half-width kana characters, so comments written with them appear garbled. The lasting fix is to have the builder deliver an English comment set.
Can I Convert a Mitsubishi Ladder Program to Siemens or Allen-Bradley?
Not directly. Even with IEC 61131-3, instructions, address names, and settings are maker-specific. Plan a conversion as a re-engineering project with testing, and get the original project file and full documentation from the builder first.
Sources
- PLC definition, structure, scan cycle: Keyence, "What Is a PLC (Programmable Logic Controller)?" (Japanese)
- PLC role and applications: Japan Electrical Manufacturers' Association (JEMA), "Programmable Controllers" (Japanese)
- Language usage, number of PLC makers per builder: JEMA, 2024 PLC User Survey Report, March 2025 (Japanese)
- IEC 61131-3 languages: Omron, "What Is IEC 61131-3? Part 2: Features of IEC 61131-3" (Japanese); IEC, IEC 61131-3:2025
- FX octal I/O numbering: Mitsubishi Electric FA FAQ No. 24946
- MELSEC iQ-R device types and numbering: Industrial Monitor Direct, "Mitsubishi iQ-R Memory Device Ranges and Configuration" (secondary source; confirm in the CPU programming manual)
- Japanese characters in the English GX Works2: Mitsubishi Electric technical bulletin FA-A-0082, "Precautions when using the English version of GX Works2" (April 2010)
- Comment language switching: Mitsubishi Electric FA FAQ No. 22620 (GX Works2); Mitsubishi Electric FA FAQ No. 22460 (GX Works3)
- Keyence KV-8000 devices: Keyence, KV-8000 Series specifications
- Omron word.bit addressing and memory areas: Industrial Monitor Direct, "Omron CX-Programmer Memory Map: CIO, W, D, H Areas Explained" (secondary source; confirm in the CPU operation manual)
- Siemens I/Q and E/A mnemonics: Siemens Industry Online Support forum; DMC, "The Basics of Siemens S7 PLC I/O Addressing"
- SET/RST, PLS/PLF, MOV: Control.com, "How To: Using Set/Reset Instructions in Mitsubishi's MELSEC PLCs"; Industrial Monitor Direct, PLS/PLF instructions guide; Industrial Monitor Direct, PLS and MOV tutorial
Original article in JapaneseThis guide is adapted from a MONOSCOPE article written for readers in Japan: PLCとは?シーケンス制御の仕組みと基本原理を図解でわかりやすく解説


