PLC Simulator
interview
career
ladder logic
fundamentals
certification

20 PLC Programming Interview Questions (and How to Answer Them)

By PLC Simulation Software11 min read

20 PLC Programming Interview Questions (and How to Answer Them)

A PLC programming interview typically follows a predictable pattern: 5–10 minutes of background questions, then a deeper dive into technical knowledge, then (if it is a good interview) a whiteboard or simulator exercise. This guide covers the most common questions across all three parts.

These are real questions from real interviews. The answers below give you the structure — adapt the specific details to your own experience.

20 PLC programming interview questions covering scan cycle, ladder logic, timers, faults and vendor dialects

Here are the twenty questions grouped by the theme they tend to fall under, so you can see the shape of a typical interview before you dive in.

Checklist of the 20 PLC interview questions grouped by foundation, intermediate, scenario, dialect and soft-skill themes


Part 1: Foundation Questions (Most Interviewers Start Here)

Q1: Can you explain how the PLC scan cycle works?

Good answer: "A PLC runs a continuous loop called the scan cycle. First, it reads all input states from the physical terminals into an input image table in RAM — this is a snapshot taken at the start of the scan. Then it executes the control program from the first rung to the last, evaluating each rung against the snapshot. Any coil values written in this phase go into an output image table. At the end of the program, the output image table is written to the physical output terminals. Then there is a housekeeping phase for communications and diagnostics. A typical scan takes 1–20ms. The key thing to understand is that your program sees a frozen snapshot of inputs — if an input changes mid-scan, the change is not visible until the next scan."

Why it matters: This comes up in almost every PLC interview. An inability to answer it clearly suggests the candidate has used PLCs without really understanding them.

The point interviewers listen for is the frozen snapshot — an input that changes mid-scan is not visible until the input image table is refreshed on the next scan.

Timing diagram showing a PLC input changing mid-scan and only being seen by the program on the next scan

Q2: What is the difference between XIC and XIO (or LD and LDI)?

Good answer: "XIC stands for Examine If Closed — it is a normally-open contact. The rung passes through XIC if the referenced tag or bit is TRUE (device energised). XIO is Examine If Open — it is a normally-closed contact. The rung passes through XIO if the tag is FALSE. In Mitsubishi dialect, these are LD (load) and LDI (load inverse). The practical importance is in how you wire field devices. A stop button wired normally-closed sends 24V while not pressed — so the XIO instruction sees logic TRUE and the rung passes. When the stop button is pressed, 24V drops, the XIO sees FALSE, and the rung breaks. If you used XIC by mistake, the rung would never pass."

Q3: What is a seal-in rung and why is it used?

Good answer: "A seal-in rung keeps an output energised after the momentary input that started it returns to its rest state. Classic example: a motor start circuit. The start button is momentary — it only closes while you press it. The seal-in rung adds a parallel contact on the output coil: the rung can pass either via the start button OR via the motor coil's own contact. Once the motor starts, its own contact holds the rung true even after the start button releases. The stop button is in series — it overrides the seal-in when pressed. Without the seal-in, the motor would only run while you hold the start button."

If an interviewer puts a rung like this in front of you, be ready to read it aloud: a normally-open Start, a normally-closed Stop in series, and the coil that the seal-in branch latches.

Ladder rung interview example with a Start contact, a normally-closed Stop contact and a motor coil

See also: What Is a Seal-in Rung?

Q4: What is the difference between OTE, OTL, and OTU?

Good answer: "OTE is Output Energise — a standard output coil. It is ON when its input rung is TRUE, OFF when the rung is FALSE. OTL is Output Latch — once energised, it stays energised regardless of the rung state. OTU is Output Unlatch — it de-energises the latched output. OTL and OTU must always be used in pairs; an OTL without an OTU creates a latched output with no way to turn it off, which is a bug. I use OTE for most applications and only use OTL/OTU when the logic specifically requires a latched state that persists through a power cycle."


Part 2: Intermediate Technical Questions

Q5: What causes a PLC watchdog fault?

Good answer: "The watchdog timer is a hardware timer that the PLC resets at the end of every successful scan. If the scan takes longer than the configured timeout (often 500ms–2s), the watchdog trips and the PLC stops. Common causes: a very large program or heavily nested function blocks slowing the scan; an infinite loop in Structured Text code; an unhandled exception in a function block. To fix it, profile the scan time, identify the bottleneck, and optimise. You can also increase the watchdog timeout, but that is treating the symptom not the cause."

Q6: How do you detect a rising edge (one-shot)?

Good answer: "A rising edge — detecting the moment a bit transitions from FALSE to TRUE — requires an edge detection function because the PLC evaluates each scan independently and does not inherently 'remember' a previous state. In Allen-Bradley you use ONS (one-shot) or OSR (one-shot rising). In IEC 61131-3 you use the R_TRIG function block. In Mitsubishi you use PLS. These instructions produce a TRUE output for exactly one scan when the input transitions from low to high. Without edge detection, any code triggered by a pushbutton will run for 20–50 scans per press — often causing unintended multiple increments or rapid on-off cycling."

Q7: What happens when you have the same output coil on two different rungs?

Good answer: "This is called a duplicate output, and it is almost always a bug. If the same output appears on rung 5 and rung 15, the value written by rung 15 overwrites the value written by rung 5 in the same scan. The last rung to execute wins. This can cause unpredictable behaviour: the output turns on, then rung 15 turns it off in the same scan — or vice versa. Most good PLC programming tools issue a warning for duplicate outputs. The fix is to reorganise the logic so the output appears only once, or to use intermediate bits to combine the logic."

Q8: What is the difference between a TON and a TOF timer?

Good answer: "TON (timer on-delay) starts counting when its input rung goes TRUE. After the preset time has elapsed, the timer's Q (done) bit goes TRUE. The timer resets when the input rung goes FALSE. TOF (timer off-delay) works in reverse: the output Q bit is TRUE immediately when the input goes TRUE, and starts counting when the input goes FALSE. The done bit stays TRUE until the preset time has elapsed after the input drops. TOF is used for things like 'keep running for 30 seconds after the stop button is pressed' — a spindown timer, or a conveyor purge after a batch ends."

Q9: How do you handle an overload relay in ladder logic?

Good answer: "An overload relay contact should always be wired normally-closed in series with the motor control rung. When the OL trips, the contact opens, breaking the rung and de-energising the motor contactor coil. This is the fail-safe state: the circuit fails to a safe (stopped) condition. The latch may also need to be broken — if you are using a seal-in circuit, the OL contact should be placed before both the start button and the seal-in contact so it can override either. I always label the OL contact explicitly in the program: it makes the logic much easier to read during maintenance."

Q10: What is force mode, and when is it safe to use it?

Good answer: "Force mode allows an operator or maintenance tech to override a physical input or output in the software — effectively lying to the scan about what the field device is showing, or forcing an output on or off regardless of the program logic. It is a very powerful diagnostic tool and a significant safety risk. Safe use: only use force mode during commissioning or fault-finding, with the machine in a safe state and proper LOTO (lock-out/tag-out) in place. Never leave forces enabled when you leave the site — a forced output left enabled can cause unexpected machine movement when someone else powers the PLC. Always use the force list in the IDE to verify all forces are cleared before signing off."

If you only have time to memorise one cheat-sheet before the interview, make it this — the concept paired with the single sentence an interviewer wants to hear back.

Quick-reference table of key PLC interview concepts and their one-line answers


Part 3: Scenario-Based Questions

Q11: The motor does not start when I press the start button. Walk me through how you would diagnose it.

Good answer: "I would work from the output backwards to the input. First, is the motor contactor physically closing? If yes, the PLC logic is working and the problem is downstream (motor circuit, overload, wiring). If the contactor is not closing, I would go online with the programming tool and look at the status of the output coil rung. Is the rung TRUE? If yes, problem is in the wiring from the output card to the contactor. If the rung is FALSE, I step through the input conditions on that rung: start button, stop button, OL contacts, interlocks — identify which condition is holding the rung false. Then verify the field device for that condition."

Q12: Your scan time has been climbing over the last month. What are the possible causes?

Good answer: "Several possibilities: someone added a computationally heavy function block or a long FOR loop in Structured Text that was not there before. A communication module is taking longer to respond — I/O scan time can dominate if remote I/O is over a field bus. An increasing data table size from a historian or trending block. A program branch that is now executing more often. I would start by profiling the scan time in the diagnostic display, then look at what changed in the recent program revisions. If the change is in communications, check the field bus for cable noise or dropped packets."

Q13: You have a conveyor that will not stop. How do you respond?

Good answer: "First: physical e-stop. The machine safety system should be independent of the PLC program. Hit the e-stop. Once it is safe, investigate. If the e-stop stopped it, the PLC program may have a logic error (missing stop condition, stuck latch coil) or the stop button input is not registered. If the e-stop did not stop the conveyor, that is a major safety incident — the safety circuit needs to be inspected before the machine runs again. For the program side: go online, check the output coil for the conveyor drive — is it forced on? Is there an interlocked bypass? Is the stop input registering at the PLC? Trace the scan one step at a time."


Part 4: Dialect and Vendor Questions

Q14: What is the difference between tag-based and register-based addressing?

Good answer: "Allen-Bradley Logix-family PLCs use tag-based addressing — every variable has a name ('MotorRun', 'ConveyorSpeed') defined in a tag database. The program only ever references names. In older systems (PLC-5, SLC-500) and in most Mitsubishi, Siemens S7-300, and Omron systems, addressing is device- or register-based: inputs are X0, X1; outputs are Y0, Y1; internal relays are M0, M1. Register-based is more compact but harder to read — you need a comment file or I/O map to understand what M247 does. Tag-based is more self-documenting. Most modern PLC platforms are moving toward tag-based or hybrid approaches."

Q15: What does the dialect selector in your IDE do?

Good answer (if they have used our simulator): "The dialect selector changes how the program is displayed — the same underlying logic is rendered in the syntax of a different PLC vendor. So a normally-open contact in IEC appears as [[ ]] in ladder, LD in IL, XIC in Allen-Bradley, LD in Mitsubishi, and A in Siemens STL. The simulator I use supports 8 dialects and lets you switch between them in real time so you can see the notation differences without rewriting any code."


Part 5: Soft Skills and Self-Awareness

Q16: Describe a time a PLC program you wrote caused a problem.

Good answer structure: "I made a mistake with rung order — I had a bit that was set on a lower rung and a contact on a higher rung reading that bit. In testing it worked intermittently, but only in situations where the bit had been set in a previous scan. I caught it before it reached the plant floor by stepping through the program in slow mode, where I could see the bit was not yet set when the upper rung evaluated it. After that I always draw out the data dependencies before writing a sequence."

Q17: How do you document a PLC program for someone else to maintain?

Good answer: "Every rung should have a rung comment stating what it does, not just repeating what the code says. I/O comments on every input and output (description, field device tag number, wiring terminal reference). Consistent naming conventions — I use PascalCase for equipment (ConveyorBelt_01) and UPPER_SNAKE for hardcoded constants (MAX_BATCH_COUNT). Version control is important — even if the plant does not have a formal system, a datestamped backup on a shared drive is better than nothing. A one-page program description at the top of the file: machine overview, control mode description, safety interlock summary."

Q18: What resources do you use to keep your PLC skills current?

Good answer: "I use online simulators like PLC Simulation Software to practise new scenarios without needing hardware. I follow the vendor release notes for any PLC platform I work with regularly. The ISA (International Society of Automation) publishes useful technical notes. For dialect practice, I use the dialect comparison tool to see how the same logic is represented across platforms — which is helpful when I move from an AB shop to a Siemens shop or vice versa."


Prepare With the Simulator

Before the day itself, walk through a simple plan so the technical answers and the live exercise both feel rehearsed rather than improvised.

Vertical flowchart of a PLC interview day plan from reviewing fundamentals to the live ladder logic exercise

It also helps to know what not to say. These are the answers that quietly cost candidates the offer.

Checklist of red-flag PLC interview answers to avoid

The best preparation for a practical PLC interview exercise is hands-on practice. The interview track system in the simulator provides structured, timed assessments at different seniority levels — Junior, Associate, Intermediate, Advanced — covering exactly the topics above.

Complete the 12-lesson curriculum first, then attempt the Junior interview track. The track includes both question-style rounds and live ladder logic exercises.


Practise for your next PLC interview. 6 structured interview tracks, graded and timed. Junior track is free to preview.

View interview tracks →

Share:X / TwitterLinkedIn

Practice this yourself in the simulator

3 scenarios free — no install, no credit card. Write real ladder logic against a live machine model.

Try the simulator free →

Related articles

communications
modbus

Modbus TCP vs Modbus RTU: Same Protocol, Different Cables

Modbus TCP vs Modbus RTU compared: both use the same register model and function codes, but RTU runs on serial RS-485 and TCP runs on Ethernet. This post explains the differences, the MBAP header, how to choose, and how to troubleshoot each variant.

June 13, 2026 · 9 min read
communications
modbus

Modbus vs CAN Bus (CANopen): Industrial Protocol vs Embedded Network

Modbus and CAN bus target different environments. Modbus RTU/TCP is the open industrial register protocol for PLCs and process instruments. CAN bus with CANopen profiles connects embedded motion and drive systems. This post explains the architecture, frame format, and when each protocol fits.

June 13, 2026 · 9 min read
communications
modbus

Modbus vs DNP3: Process Protocol vs Utility Outstation Protocol

Modbus and DNP3 are both fieldbus protocols used to read RTUs and outstations, but DNP3 was purpose-built for utility SCADA — substations, water treatment, and pipelines — with built-in event reporting, data integrity, and time stamping that Modbus lacks. This post explains the differences and when each protocol is the correct choice.

June 13, 2026 · 9 min read