EN
2026Oct 22

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

Drawings & SpecsUpdated October 22, 202619 min read

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
  1. What a PLC Does: Inputs, Logic, Outputs
  2. Why Japanese Machines Are Mostly Programmed in Ladder
  3. Mitsubishi Device Names: X, Y, M, D, and the Rest
  4. How Omron, Keyence, and Siemens Name the Same Things
  5. Japanese Ladder Conventions You Will Meet
  6. When the Comments Are Garbled or Missing
  7. Tracing a Stopped Machine Through the Ladder
  8. Checklist: What to Get from the Japanese Builder
  9. Limits of This Guide
  10. FAQ
  11. 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."

Figure 1: The PLC at the Center of Machine Control

The PLC reads signals from input devices and controls output devices according to its program.

Input devices (X)Push buttons, photoelectric sensors, limit switches
ON/OFF signals, analog values
PLC (CPU module)Evaluates conditions and sets outputs according to the program
Commands
MotorsDrive conveyors and transfer units
Solenoid valvesMove air cylinders
Lamps and buzzersShow status and faults

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.

Figure 2: The PLC Scan Cycle

The PLC repeats these three steps as one cycle, with a scan time measured in milliseconds.

One scan
01Read inputsCaptures the state of every input at once and stores it in memory
02Execute programRuns the instructions from top to bottom and decides each output state
03Write outputsSends the results to the output modules together

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.

Figure 3: Programming Languages in IEC 61131-3

Graphical and text-based languages, each suited to different tasks.

LD (ladder diagram)Graphical language that replaces relay circuits. The most common language in Japan
FBD (function block diagram)Connects blocks like components. Makes data flow easy to follow
SFC (sequential function chart)Shows process steps and the conditions for moving between them
ST (structured text)Text language close to Pascal. Suited to calculations and data processing
IL (instruction list)Text language close to assembly. Deprecated in the third edition, removed in the fourth (2025)

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.

Figure 4: Languages Used by Japanese Machine Builders

Ladder is the core language; some builders also use FBD or ST alongside it.

LD (ladder diagram)88.9%
FBD (function block diagram)37.8%
ST (structured text)28.9%

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.

DeviceNameWhat it isNumbering
XInputA physical input signal (button, sensor, limit switch)Hexadecimal (octal on FX)
YOutputA physical output (contactor, solenoid valve, lamp)Hexadecimal (octal on FX)
MInternal relayAn internal bit for logic, such as "ready" or "step complete"Decimal
LLatch relayAn internal bit that keeps its state through a power cycleDecimal
BLink relayA bit shared with other stations over the networkHexadecimal
FAnnunciatorA bit used to flag faultsDecimal
T / CTimer / counterTimers and counters, each with a contact, a coil, and a current valueDecimal
DData registerA 16-bit word for numbers: setpoints, counts, recipe valuesDecimal
WLink registerA word shared with other stations over the networkHexadecimal
SM / SDSpecial relay / special registerSystem bits and words provided by the CPU for status and diagnosticsDecimal

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.

Figure 5: The Same Input Count, Two Numbering Systems

Sixteen inputs on an FX CPU and on a Q/iQ-R CPU are addressed differently.

FX series (octal)X0 X1 X2 X3 X4 X5 X6 X7
X10 X11 X12 X13 X14 X15 X16 X17
Q / L / iQ-R series (hexadecimal)X0 X1 X2 X3 X4 X5 X6 X7
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 MELSECOmron CS/CJ/CPKeyence KVSiemens S7 (for comparison)
Inputs and outputsX (input), Y (output)CIO area, e.g. 0.00R (input, output, and internal relays)I (input), Q (output)
Internal bitsMW (work area)MR (internal auxiliary relay)M
Retained bitsL (latch relay)H (holding area)LR (latch relay)—
Data wordsDD (data memory, "DM")DM (data memory), EM (expansion)DB (data blocks), MW
Address styleLetter + numberWord.bit (bits 00–15)Letter + numberByte.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.

Figure 6: A Self-Holding Circuit as It Might Appear in a Japanese Program

Fictional example. Device numbers above each element; the Japanese comment and its meaning below.

X0X1M10Y20Y20起動PB停止PB運転準備完了コンベヤモータ(seal-in contact)Start PBStop PBReadyConveyor motor(0)

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.

JapaneseRomajiMeaning in a program
起動 / 停止kido / teishiStart / stop
運転 / 運転中unten / untenchuRun / running
自動 / 手動jido / shudoAuto / manual mode
原点 / 原点復帰genten / genten fukkiHome position / return to home
非常停止hijo teishiEmergency stop
異常 / 異常リセットijo / ijo risettoFault / fault reset
完了 / 準備完了kanryo / junbi kanryoComplete / ready
検出 / 有無kenshutsu / umuDetected / presence (part present or not)
前進 / 後退zenshin / kotaiAdvance / retract (cylinders)
上昇 / 下降josho / kakoUp / down
端 (前進端 / 後退端)tan (zenshin-tan / kotai-tan)End position (advanced end / retracted end), usually a sensor or limit switch
インターロックintarokkuInterlock
自己保持jiko-hojiSeal-in (self-holding)
タイムアップtaimu appuTimer 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.

Figure 7: Tracing Backward from an Output That Will Not Turn On

Work from the output back to the first condition that is not met.

01Find the outputLocate the Y device that should be on (from the I/O list or comments)
02Find the open contactOn its rung, see which contact is not passing power
03Follow internal bitsIf it is an M, L, or T device, search for the rung that drives it and repeat
04Reach an X inputWhen the blocking contact is an X device, check the field device and wiring
05Check the dataIf a comparison condition is false, check the D register values and trace the instructions (such as MOV) that write to them
06Record and reportNote the devices and the cause so the builder and your team can confirm

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

Filed underDrawings & Specs

Found this useful? Share it

About the editor

MONOSCOPE EditorFOUNDER & EDITOR

Spent about ten years at a plant equipment maker and a plant engineering company, proposing, designing, and commissioning equipment, then moved into web marketing. Now a web consultant for B2B manufacturers, helping them explain their products and technology. Licensed in Japan as an Energy Manager and a Third-Class Chief Electrical Engineer.

Has run an engineering blog since 2017 (500+ articles) and a Japanese YouTube channel with about 20,000 subscribers. Each English guide is written from the Japanese shop-floor point of view and checked against the cited standards.

MoreRelated

More guides

All guides