Simatic IPC227D Auto Power-On Setup: BIOS & Workarounds

David Krause16 min read
Other TopicSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Definition: Auto Power-On Behavior on Simatic IPC227D

The Siemens Simatic IPC227D is a compact, fanless industrial PC used for control cabinet mounting in machine and process automation. It ships with an AMI UEFI/legacy BIOS that is documented to include a Power Failure Handling option, but on every firmware build deployed in the field (V14.x through V20.x), that option is hidden or removed. Engineers therefore cannot enable the equivalent of a desktop PC's "Restore on AC Power Loss" feature from the BIOS screens.

When AC mains returns, an IPC227D will not boot unless a human presses the power button, an external relay closes the power-button contacts, a Wake-on-LAN magic packet reaches the network interface, or a BIOS RTC alarm fires. This is unacceptable for unattended machines that must restart automatically after a short blackout.

The IPC277D panel variant shares the same BIOS binary family. Field testing on the IPC277D with firmware V16.01.04 confirms that only Remote Wake Up and CMOS Battery Present appear under the Power menu — the Power Failure Handling entry referenced in the manual is not actually drawn on screen.

2. Hardware Identification and Firmware Map

Before applying any workaround, identify the exact IPC227D variant. Siemens ships the platform under several MLFB order numbers; the most common are:

MLFB (6ES7 order number) Description CPU BIOS baseline
6ES7647-8B...-.... IPC227D base box, Celeron N2930, 4 GB RAM Intel Bay Trail AMI V16.01.04
6ES7647-8C...-.... IPC227D with extended temperature range Intel Bay Trail AMI V17.02.xx
6ES7647-8D...-.... IPC227D (later Atom x5-E3930) Intel Apollo Lake AMI V20.04.xx
6ES7647-8J...-.... IPC277D panel, 7" to 15" multi-touch Intel Bay Trail AMI V16.01.04

The Power Failure Handling entry shown in section 9.6.3.5 of the Simatic IPC227D Operating Instructions (Siemens support entry ID 51924060) is part of the AMI template used by Siemens, but the developer binary does not compile the string table for this platform. The behaviour is intentional in the firmware, not a bug in the BIOS. The manual and the deployed firmware are deliberately out of sync on this product family.

3. BIOS Menu Map for IPC227D

The visible BIOS menu tree on a stock IPC227D AMI build is:

Main
├── System Information
├── System Language
├── System Date / System Time
└── USB Configuration

Advanced
├── Boot Configuration
├── Peripheral Configuration
│   ├── Serial Port 1 / 2
│   └── USB
├── ACPI Configuration
└── CPU Configuration

Security
├── Password Configuration
└── Secure Boot

Power
├── Power Failure Handling     <-- DOCUMENTED, NOT VISIBLE
├── Remote Wake Up             <-- WOL ENABLE
├── CMOS Battery Present       <-- ALWAYS ON
└── Wake on LAN from S5        <-- APPEARS ON LATER FW

Boot
├── Boot Option #1 .. #n
└── Fast Boot

Exit
├── Save & Exit
└── Discard Changes
Selecting Restore on AC Power Loss = Power On via setup utilities, setupvar, or AMIBCP editing the binary is the only direct way to set the value, and the SMBIOS flag it controls is in the Type 17 / 0x07 (Port Connector Type) data record. The flag must be flashed into NVRAM or set by a UEFI-runtime setupvar call. Attempting to set the flag with a Windows utility that does not flash NVRAM will not survive a full AC cycle.

4. Why the BIOS Flag Is Not Exposed

Simatic IPCs are certified for industrial environments and are listed in the Siemens Industry Online Support portal as such. Siemens documents only the configuration options that the firmware actually wires up. The "Power Failure Handling" entry exists in the AMI source template used by the BIOS vendor and is rendered in the manual that describes the IPC227D, but the configuration string is stripped from the IPC227D firmware image during the Simatic build process. Engineers must not assume the manual and the firmware are 100 % in sync on this product line.

Siemens' design intent is for the IPC227D to be paired with an external UPS, a power conditioner, or a controlled contactor that switches the unit back on once mains has stabilised. The trade-off is:

  • Simatic IPCs are always-on devices in cabinets. A soft power-on after every brief mains dip would cause an uncontrolled sequence of reboots in installations with unstable mains.
  • Many PLCs and HMI panels run on the same cabinet bus. Cascading restarts are a known source of stop categories 0 and 1 faults on Sinamics drives and Simotion controllers.
  • The IPC227D is rated for 24 V DC ± 20 % input, so a power dip normally does not require a full power-on cycle — the input capacitor hold-up of the IPC is typically > 20 ms.
  • Industrial 24 V supplies are protected against back-EMF and over-current, so the cabinet contactor is expected to handle the sequenced re-application, not the IPC.

5. Workaround A: Windows "Last State" and Auto-Restart After Crash

Windows can be configured to come back up automatically after a system failure, including the kind caused by an unstable 24 V supply. This is not the same as BIOS-level auto power-on after AC loss, but it is the closest equivalent for a Windows-based IPC.

Open sysdm.cpl, switch to the Advanced tab, click Settings under Startup and Recovery, and enable Automatically restart under System failure. The corresponding registry values are:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl]
"AutoReboot"=dword:00000001
"RebootAtPersistTimeout"=dword:00000001
"PersistTimeout"=dword:00000300

Combine this with the boot/resume configuration in powercfg:

powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
powercfg /change standby-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
powercfg /change disk-timeout-ac 0
powercfg /change monitor-timeout-ac 0
powercfg /setacvalueindex SCHEME_CURRENT 501a4d13-58af-4ff7-b3a9-ee43f6f0b8c1 0 0
powercfg /setacvalueindex SCHEME_CURRENT 238c9fa8-0aad-41ed-83f4-97be242c8f20 0 0
powercfg /setacvalueindex SCHEME_CURRENT 2a601041-8e04-4706-87d6-7e0a7c9d3448 0 0

With the High performance scheme and a 5-minute persist timeout, the IPC will attempt to bring itself back to the last known state after any unexpected shutdown. This works only when Windows crashes or is forced off while the OS is still functional. It does not bring the unit back from a hard 24 V drop on a passive IPC.

6. Workaround B: BIOS Wake-on-LAN (Remote Wake Up)

The IPC227D BIOS exposes Power > Remote Wake Up = Enabled. Combined with the Intel NIC's WOL feature, the IPC can be powered on by a magic packet sent from any device on the same Ethernet segment.

Configure the NIC in Windows Device Manager or via the registry:

Device Manager > Network Adapters > Intel I210 / I211 > Properties >
  Power Management tab:
    [x] Allow this device to wake the computer
    [x] Only allow a magic packet to wake the computer
  Advanced tab:
    "Wake on Magic Packet" = Enabled
    "Wake on Pattern Match" = Disabled
    "Shutdown Wake-On-Lan" = Enabled
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\\00xx]
"EnablePME"=dword:00000001
"EnableWakeOnMagicPacketOnly"=dword:00000001
"ShutdownWakeOnLan"=dword:00000001
"ULPMode"=dword:00000000

Trigger the wake from a service PC, a Siemens S7 CPU with PN interface, or a SCADA node:

# Windows / Linux
wol -p 9 -i 192.168.0.45 00:1B:1B:A1:B2:C3

# PowerShell
$mac = "00-1B-1B-A1-B2-C3"
$broadcast = [System.Net.IPAddress]::Broadcast
$udp = New-Object System.Net.Sockets.UdpClient
$udp.Client.SetSocketOption([System.Net.Sockets.SocketOptionLevel]::Socket,
                            [System.Net.Sockets.SocketOptionName]::Broadcast, 1)
$packet = [byte[]](0xFF,0xFF,0xFF,0xFF,0xFF,0xFF) * 16
$macBytes = $mac.Split('-') | %{ [byte]::Parse($_, 'HexNumber') }
$payload = $packet + ($macBytes * 16)
$udp.Send($payload, $payload.Length, $broadcast, 9) | Out-Null

Limitations:

  • The IPC must be on standby / soft-off (S5) for WOL to fire. After a hard 24 V drop, the NIC itself is unpowered, so WOL is inert until the 24 V rail returns and the Super I/O chip performs a soft power-on to the NIC. In practice this means WOL works only if mains returns and Windows performs a graceful shutdown. A pure 24 V brown-out does not allow WOL to start the unit.
  • Wake-on-LAN requires the switch port to remain live, which is only true if the switch is on a UPS.
  • Intel I210 and I211 NICs have different default WOL behaviour. On the I210, "Wake on Magic Packet" is enabled by default; on the I211, it must be enabled by registry key above.

7. Workaround C: BIOS RTC Wake Timer

Some IPC227D firmware revisions (V17.02 and later on Apollo Lake boards) expose a real-time-clock wake alarm. This is the most reliable software-only workaround because it is built into the AMI RTC subsystem, not into the OS.

Use AMI Utility — RC_SETUP or set the value directly with setupvar on a UEFI shell:

Shell> setupvar 0x1F 0x2D
Variable: PowerLossRecovery (or PowerOnByRTC)
Value: 0x01
Shell> setupvar 0x1F 0x2E
Variable: RTCWakeTime (HHMM, BCD)
Value: 0x0630  ; 06:30 daily

The shell command persists in NVRAM and survives a hard AC loss. Schedule a wake time slightly after the expected mains recovery window — for example, a daily 06:30 wake-up — and let the cabinet contactor bring the 24 V back. As long as the BIOS clock is battery-backed, the RTC alarm will fire within a ± 5 minute window.

The IPC227D ships with a BR2032 lithium coin cell for the RTC and CMOS. The CMOS Battery Present = Yes BIOS flag tells the firmware the cell is healthy. Replace the cell every 5 years; a dead cell drops the RTC alarm flag on every AC cycle and the unit will not boot from an RTC wake.

8. Workaround D: External Watchdog Relay

The most robust solution is a hardware contactor or latching relay that closes the IPC's power-button contacts after mains has been stable for a programmable time. The schematic below is the standard Siemens-recommended pattern for a cabinet with a Phoenix Contact PLC-OSC relay:

24V Power-on Watchdog (Phoenix PLC-OSC-HVC-24DC/PT) +24V rail 0V (GND) Mains monitor PLC-OSC delay 30s IPC227D PWR_BTN

The mains monitor is a Weidmüller TMCK or Eaton M22-DL-G with a delay-on-make timer set to 30 seconds. The contact output is wired to the IPC227D's two-pin power-button header on the front panel. The 30-second delay is chosen to satisfy the 20-second discharge rule described in section 9 below.

9. The 20-Second Discharge Rule

Field reports confirm that even with WOL, RTC wake, or relay contact closure, the IPC227D will not POST if the 24 V rail returns within 20 seconds of dropping. The hold-up time of the bulk capacitor bank on the IPC's DC/DC stage is approximately 8–12 ms, so a brown-out that lasts 200 ms leaves the Super I/O chip in an indeterminate state.

The Super I/O chip (Nuvoton NCT5523D on Bay Trail boards, NCT6798D on Apollo Lake boards) requires a minimum of 20 seconds with PSIN# de-asserted to fully reset its internal state machines. If mains returns inside that window, the chip holds the platform in S5 indefinitely and only a hard power-button press (or a second full power drop > 20 s) clears the latch.

IPC227D Boot State Machine S5 (off) S3 (sleep) S0 (run) POST t > 20s PSIN# OK reset
Always configure the mains-recovery relay with a delay of at least 30 seconds between mains return and contact closure. Setting the delay to 5 or 10 seconds is a common commissioning error and results in the IPC not booting at all after a short outage.

10. Workaround E: UPS Pairing and Mains-Return Sequencing

A 24 V DIN-rail UPS is the cleanest solution for a Simatic IPC227D. Two common part numbers are:

Manufacturer Part number Capacity Hold-up at 50 W load Notes
Phoenix Contact QUINT4-UPS/24DC/24DC/20 20 A · 480 Wh ~ 9.6 h EtherNet/IP and PROFINET signalling for auto shutdown
Phoenix Contact QUINT4-UPS/24DC/24DC/40 40 A · 960 Wh ~ 19 h Dual-channel output
Siemens 6EP1933-2EC41 (SITOP UPS1600) 20 A · 480 Wh ~ 9.6 h Native PN slot in TIA Portal
Siemens 6EP1933-2EC51 (SITOP UPS1600) 40 A · 960 Wh ~ 19 h PN slot, OPC UA server

Pair the UPS with a SITOP UPS Manager (6EP1933-2AA00-0AN0) or Phoenix Contact UPS-IFS-CONF and configure:

SITOP UPS1600:
  Buffer time          = 600 s
  Shutdown threshold   = 80 % SoC
  Restart on mains     = Enabled
  Restart delay        = 30 s   ; honours 20-second discharge rule
  Max restart attempts = 3
  Inter-attempt delay  = 60 s
  Send PN signal       = "Mains failed" / "Battery low" / "Mains restored"
  OPC UA server        = Enabled (port 4840)

Connect the UPS PROFINET port to the cabinet switch and the S7 / TIA Portal project polls the diagnostics. The UPS itself does the controlled shutdown of the IPC after battery buffer is exhausted, and re-arms the 24 V output as soon as mains is healthy and the 30-second timer has expired.

11. Integration with S7-1500 / TIA Portal

For cabinets that already have an S7-1500 CPU, the cleanest path is to let the PLC control the IPC power-on sequence. The PLC monitors its own 24 V rail and a separate 24 V rail feeding the IPC, and drives a solid-state relay (SSR) that closes the IPC power-button contacts.

// SCL (Structured Control Language) for S7-1500
// Tag declarations
VAR
  IPC_PowerBtn : BOOL;          // Output to SSR, 24V DC
  Mains_OK     : BOOL;          // Input from mains monitor
  Timer_Delay  : TON;           // 30 s delay
  PowerLostAt  : TIME;          // Time of last mains drop
END_VAR

BEGIN
  IF NOT Mains_OK THEN
    PowerLostAt := TIME();      // record drop time
    IPC_PowerBtn := FALSE;
  ELSE
    IF (TIME() - PowerLostAt) > T#30s THEN
      IPC_PowerBtn := TRUE;     // pulse for 500 ms
      Timer_Delay(IN := TRUE, PT := T#500ms);
      IF Timer_Delay.Q THEN
        IPC_PowerBtn := FALSE;
        Timer_Delay(IN := FALSE);
      END_IF;
    END_IF;
  END_IF;
END_FUNCTION_BLOCK

Wire the S7 DO module to a Phoenix PLC-OSC-24DC/230AC/1 or an SSR with zero-cross switching. The PLC's PROFINET diagnostics block can also publish the IPC power-on event to a SCADA tag for visibility.

12. Verification Procedure

Once a workaround is wired in, perform the following bench test before deploying to the cabinet:

  1. Power the IPC227D with a programmable DC source set to 24.0 V, 5.0 A.
  2. Boot Windows, log in, and confirm the system is idle (no shutdown-pending updates).
  3. Set a stopwatch. Drop the DC source to 0 V for 30 seconds.
  4. Re-apply 24 V. The IPC should POST, run the AMI splash, and reach the Windows logon within 60 seconds.
  5. Repeat for a 60-second and a 5-minute drop.
  6. For each test, capture the time from mains return to first user-mode ping on the LAN.
  7. Verify eventvwr.msc > Windows Logs > System shows Event ID 6005 ("The Event log service was started") and Event ID 6009 ("Operating system version") on every cycle.
  8. If the IPC fails to boot on any single test, extend the relay/UPS restart delay by 15 seconds and re-run the full test matrix.
  9. Run a 200 ms brown-out test (shorter than the 20-second rule) and confirm the unit does NOT latch — this validates the protection scheme.
  10. Capture the test log and attach to the plant asset record.

13. Troubleshooting Matrix

Symptom Likely cause Diagnostic Fix
IPC never boots after a 5-second drop 20-second discharge rule violated Measure PSIN# with a scope Set delay to ≥ 30 s in the mains monitor relay
IPC boots once, then stays off on next cycle Super I/O latch after brown-out Check for RTC alarm; BIOS time may have lost track Replace BR2032 cell; enable RTC wake at fixed time
WOL does not bring unit up Switch not on UPS, NIC unpowered Power the switch from same UPS rail Move switch feed to UPS output
Windows recovers but services fail to start Service start type set to "Manual" Check sc query on critical services Set services to "Automatic (Delayed Start)"
UPS reports "Mains restored" but IPC not powered UPS restart delay < 30 s Read UPS diagnostic buffer Set SITOP "Restart delay = 30 s" minimum
BIOS date resets to 2010-01-01 on each cycle CMOS battery dead Measure > 2.8 V across BR2032 Replace cell, reset BIOS time
Power Failure Handling missing from BIOS Firmware build does not include the option Compare firmware rev to MLFB list above Apply one of workarounds A–E; do not reflash to "fix" the BIOS
Event ID 41 "Kernel-Power" after every cycle Hard 24 V drop without orderly shutdown Check System > Reliability monitor Pair IPC with UPS1600 to enable orderly shutdown

14. Comparison with Other Simatic IPC Platforms

Engineers who require a hard "Restore on AC Power Loss" option in the BIOS should consider the following platforms instead of the IPC227D:

Platform Restore on AC Power Loss in BIOS Form factor Notes
IPC227D (this article) Not exposed Compact box Use workarounds A–E
IPC227G Exposed (AMI V25.x) Compact box Successor to IPC227D; check BIOS rev per build
IPC627D Exposed 19" rack, 2U Native BIOS option for cabinet mains recovery
IPC847D Exposed 19" rack, 4U Full AC-loss recovery; server-class PSU
IPC PX-39A Exposed Panel PC Capacitive touch, Phoenix firmware

If auto power-on is a hard contractual requirement, the IPC627D or IPC847D is the lower-risk path. The IPC227D is acceptable when paired with a SITOP UPS1600 and a 30-second contactor delay.

15. Field Commissioning Checklist

  • Confirm MLFB and BIOS version on the unit label and the Main > System Information screen.
  • Document the firmware version in the plant asset record; Siemens releases V16.01.04, V17.02.xx and V20.04.xx for IPC227D as of 2024-Q4.
  • Verify the BR2032 cell voltage; replace if < 2.8 V.
  • Wire a mains-monitor relay with a 30-second delay on the output side.
  • Set Windows AutoReboot = 1 under CrashControl.
  • Set power scheme to High performance; disable sleep, hibernate, and disk timeouts.
  • Enable Wake-on-LAN on the Intel NIC; note the MAC in the asset record.
  • If using an UPS1600, set "Restart delay = 30 s" and "Restart on mains = Enabled".
  • Run the 30-second, 60-second, and 5-minute drop test in section 12.
  • Archive the test log in the plant historian with the asset tag.
The official Simatic IPC227D Operating Instructions (Siemens entry ID 51924060) document the BIOS layout shown in section 3. If you require an explicit Power Failure Handling option on a Simatic IPC, the IPC227G (successor platform) and IPC627D / IPC847D systems ship with a "Restore on AC Power Loss" BIOS entry — consider these platforms if auto power-on is a hard requirement.

16. Frequently Asked Questions

Does the Simatic IPC227D support "Restore on AC Power Loss" in BIOS?

No. Section 9.6.3.5 of the IPC227D operating instructions (Siemens entry ID 51924060) lists a "Power Failure Handling" option, but the option is not rendered by the AMI firmware on any IPC227D or IPC277D build, including V16.01.04. Use one of the workarounds in sections 5–10 instead of reflash-attempting the BIOS.

Why does my IPC227D not boot if mains returns within 20 seconds?

The Nuvoton Super I/O chip (NCT5523D on Bay Trail, NCT6798D on Apollo Lake) requires at least 20 seconds of PSIN# de-asserted time to reset. Configure any external contactor or UPS to wait at least 30 seconds before re-applying 24 V to the IPC.

Can I use Wake-on-LAN to start the IPC227D after a 24 V drop?

Only if the switch port supplying the IPC remains live. After a hard 24 V loss, the NIC is unpowered and cannot receive a magic packet. Place the switch on the same UPS rail as the IPC, or use a BIOS RTC wake alarm instead.

Which SITOP UPS models are recommended for IPC227D auto-recovery?

Use the SITOP UPS1600 (6EP1933-2EC41 for 20 A, 6EP1933-2EC51 for 40 A) with the SITOP UPS Manager (6EP1933-2AA00-0AN0). Configure "Restart on mains = Enabled" and "Restart delay = 30 s" to honour the Super I/O discharge rule.

What should I do if Windows fails to restart after an unexpected shutdown?

Enable the "Automatically restart" option in sysdm.cpl > Advanced > Startup and Recovery. The corresponding registry value is HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\AutoReboot = 1. Combined with the High performance power scheme, the IPC will return to its last known state after a hard shutdown.

Back to blog