PLC Simulation Works But Machine Won’t Run? 4 Hidden Causes Every Engineer Must Check

Introduction

Have you ever encountered this situation?

Your PLC program runs perfectly in simulation. Logic checks out. No alarms. Everything seems correct.
But once you download the program to the real machine… nothing happens.

The motor doesn’t start. The cylinder doesn’t move. Only the PLC indicators are blinking.

This is one of the most common — and most frustrating — problems in industrial automation.

In this article, we will break down four critical causes behind this issue and provide practical troubleshooting strategies used by experienced engineers.


1. Physical I/O Mismatch – The Most Common Mistake

In simulation, your I/O addresses are always correct.
But in the real world, wiring mistakes happen all the time.

Typical problem:

  • Program: I0.0 = Start Button
  • Reality: Button is wired to I0.1

Result:
PLC never receives the start signal.


Other hidden I/O issues:

• Address offset (very common)
Expansion modules may auto-assign addresses differently than expected.

• Symbol mapping errors
If you modify variables but forget to recompile or download hardware configuration, logical addresses won’t match physical ones.


Practical Tip:

  • Never trust wiring diagrams alone
  • Use a multimeter or test program
  • Force outputs ON/OFF to verify actual behavior

👉 You can also check compatible PLC modules here:


2. Missing External “Enable / Ready” Signals

Simulation assumes everything is ready.
Real machines don’t.

Many devices require external enable signals before they can operate:

  • Servo drives
  • Variable frequency drives (VFD)
  • Pneumatic systems

Real-world example:

A production line wouldn’t start.
The PLC program was correct.

The problem?

👉 The inverter required a 24V enable signal to enter “Ready” state.
This signal was never sent.


Common missing signals:

  • Servo Enable (SON / Servo ON)
  • Air pressure switch (for cylinders)
  • Safety door / light curtain
  • Emergency stop chain

Practical Tip:

Create a startup checklist:

  • All external devices READY
  • All enable signals confirmed
  • Safety chain closed

👉 For servo-related systems, see:


3. Data Type & Value Issues (Advanced but Critical)

Simulation often uses ideal values.
Real-world data is messy.


Case 1: Data overflow

You define a 16-bit integer:

  • Simulation: 100 → OK
  • HMI input: 1000 → Overflow

Result:
Wrong output or system stops.


Case 2: Floating-point comparison error

In simulation:

0.1 + 0.2 = 0.3

In real PLC:

0.1 + 0.2 = 0.30000004

So this condition may fail:

IF value == 0.3 THEN

Practical Tips:

  • Always limit HMI input ranges
  • Never use direct equality for float comparison

Use instead:

ABS(actual – setpoint) < 0.01

4. Hardware Configuration Mismatch

Sometimes everything looks correct — but still doesn’t work.

The issue may be hidden in hardware configuration details.


Real case:

A servo motor receives pulse signals but does not rotate.

Why?

👉 Incorrect electronic gear ratio configuration

PLC sends pulses, but the motor movement is too small to notice.


Other common hardware issues:

• Firmware mismatch
Module version in software ≠ actual hardware

• Communication settings error
Example: MODBUS baud rate mismatch

• DIP switch / terminal configuration
Physical settings don’t match software setup


Practical Tip:

Always verify:

  • Firmware version
  • Communication parameters
  • Hardware configuration files

👉 For communication modules:


Conclusion

There is a famous saying in automation:

👉 “Simulation verifies logic. Reality verifies everything.”

If your PLC program works perfectly in simulation but fails on site, don’t over-focus on logic.

Instead, check:

  • Wiring
  • External signals
  • Data handling
  • Hardware configuration

Most of the time, the issue is not in your code —
but in the real-world environment.


FAQ

1. Why does PLC simulation work but the machine does not run?

Because simulation ignores real-world factors like wiring errors, safety signals, and hardware mismatches.


2. What is the most common cause?

Incorrect I/O wiring or address mismatch.


3. Why is my motor not starting even though PLC output is ON?

Possible reasons:

  • Missing enable signal
  • Safety circuit open
  • Drive not ready

4. How to troubleshoot quickly?

  • Force outputs
  • Check input signals physically
  • Verify hardware configuration