# Virtual PLCs and IEC 61499: What Software-Defined Automation Changes

> Virtual PLCs run control logic on standard computing hardware, and IEC 61499 replaces the scan cycle with events, so both need an explicit timing, redundancy…

- Canonical URL: https://wiki.aspotomasyon.com/article/virtual-plc-iec-61499-software-defined-automation
- Publisher: ASP OTOMASYON A.Ş. (ASP OTOMASYON Wiki)
- Category: Automation Systems
- Published: 2026-10-11 · Updated: 2026-10-11
- Reading time: 9 min · Language: English

Virtual PLCs run control logic on standard computing hardware, and IEC 61499 replaces the scan cycle with events, so both need an explicit timing, redundancy, and lifecycle plan.

![Virtual PLCs and IEC 61499: What Software-Defined Automation Changes — Set timing limits → Choose the platform → Test under load → Own the lifecycle.](https://wiki.aspotomasyon.com/assets/diagrams/virtual-plc-iec-61499-software-defined-automation.svg)

*Virtual PLCs and IEC 61499: What Software-Defined Automation Changes — Set timing limits → Choose the platform → Test under load → Own the lifecycle.*

Control logic has run on dedicated PLC hardware for decades, and the vendor largely set its timing, redundancy, and lifecycle. Software-defined automation separates the control function from that device. A virtual PLC runs the logic as software on general-purpose computing hardware, and IEC 61499 provides a function-block model driven by events rather than a fixed scan cycle. Both change what engineers must specify, test, and maintain.

This article compares the options, sets out the timing, redundancy, security, and lifecycle questions that decide whether virtualization fits, and lists the cases where a hardware controller remains the better choice. Confirm details of IEC 61499 against the edition in your engineering tool and against the standard itself.

## What a virtual PLC is and is not

A virtual PLC, sometimes called a soft PLC, is a control runtime that executes on a server, an industrial PC, or a virtual machine. It reaches physical I/O through a network or a fieldbus adapter. Implementations differ. Some run in a container on a real-time operating system, some run beside other workloads on a hypervisor with a protected partition, and some run on a general-purpose operating system with weaker timing assurance. A vendor's timing and availability claims depend on which of these it uses.

- **Hardware PLC** : controller, I/O bus, and runtime come from one vendor as one product.
- **Virtual PLC** : the runtime is software on a server, and the I/O may be local, remote, or on a fieldbus.
- **Hybrid** : a hardware controller keeps the fast or safety-relevant functions, while a server runs supervisory logic and data services.

## Timing, determinism, and jitter

Deterministic control needs each task to start at a bounded and repeatable time. The variation in that start time is jitter. A general-purpose operating system can delay a task when other processes compete for the processor, so virtual PLC designs add controls such as a real-time kernel, dedicated CPU cores for the control workload, and isolation from other containers or virtual machines. Measure jitter under the worst realistic load, including network and I/O traffic and the operating system updates that will run in service, not on an idle machine. The scan-cycle behaviour that the logic assumes is described in [PLC scan cycle and task execution](https://wiki.aspotomasyon.com/article/plc-scan-cycle-task-execution).

- The maximum task period and the allowed jitter for each task, written as acceptance limits before a platform is chosen.
- The network path for I/O, including every switch and gateway between the server and each device.
- The clock source and the time accuracy the logic needs, planned as in [industrial time synchronization](https://wiki.aspotomasyon.com/article/industrial-time-synchronization-plan) .

## Redundancy, failover, and hardware decoupling

Hardware PLC redundancy usually pairs two identical controllers that keep their state synchronized. A virtual PLC can use software or hypervisor failover, or a pair of servers that share the I/O network. The failover time, the state each backup holds, and the I/O behaviour during switchover must be demonstrated on the real I/O, not inferred from a platform description. Decoupling the logic from the I/O also makes the I/O network and the I/O modules a failure point that the controller vendor may not own. Architecture options are compared in [redundant control system architectures](https://wiki.aspotomasyon.com/article/redundant-control-system-architectures).

| Concern | Hardware PLC | Virtual PLC | IEC 61499 runtime |
| --- | --- | --- | --- |
| Runtime platform | Vendor controller | Server, industrial PC, or virtual machine | Controller, PC, or device, depending on the runtime |
| Execution model | Cyclic tasks, usually IEC 61131-3 | Typically the same cyclic IEC 61131-3 model | Event-driven function block networks |
| Timing assurance | Designed and documented by the vendor | Depends on operating system, isolation, and load | Depends on the runtime and target platform |
| Redundancy | Vendor-specific controller pair | Software, hypervisor, or server-pair design | Application-defined; must be tested on the target |
| Patching | Vendor firmware and updates | OS, runtime, container, and security patches | Engineering tool and runtime versions must match |
| I/O path | Backplane or local bus | Fieldbus or Ethernet through an adapter | Per device, over Ethernet or fieldbus |

## IEC 61499: events and function blocks instead of a scan

IEC 61499 describes distributed control with function blocks. A basic function block has event inputs and outputs, data inputs and outputs, and an internal execution control chart that defines its state behaviour. An input event triggers the block, the block computes, and it emits output events to the blocks it is connected to. Execution follows events rather than a fixed scan of all logic, which suits applications split across several devices. A review of this approach, from the IEEE literature, is listed in the references.

Eclipse 4diac is an open-source implementation of the model. The project provides an engineering tool, a real-time capable execution environment named FORTE, a build environment, a function block library, and example systems. Using it is a practical way to evaluate the model, but it does not remove the need to test timing on the target hardware.

IEC 61499 is not a drop-in replacement for IEC 61131-3. Most PLC teams keep IEC 61131-3 for machine logic and consider IEC 61499 when the application is naturally distributed. Choose it only when the team can maintain the function block networks, their mapping to devices, and the runtime version over the plant life.

## Security and lifecycle

Software-defined control inherits the security and maintenance concerns of IT platforms: operating system patches, container images, runtime updates, and remote management tools. The NIST guide to operational technology security treats performance, reliability, and safety as OT requirements that security measures must respect. Before the first deployment, define who patches the server and the runtime, how images are stored and verified, and how a restore is tested. A patch that changes the runtime can also change timing, so test it on a copy of the target first. For patch governance, see [ICS patch management strategies](https://wiki.aspotomasyon.com/article/ics-patch-management), and for logic protection, see [secure PLC application programming](https://wiki.aspotomasyon.com/article/secure-plc-application-programming).

## When not to virtualize

Work through these checks in order for each function. A failed check is a reason to keep the function on a hardware controller, or to run a test before deciding.

1. **Safety.** Keep safety functions on certified safety controllers unless the certification scope explicitly covers the virtual platform. The functional-safety engineer and the applicable standard make that decision.
2. **Timing.** Motion and high-speed interlocks may need timing that a virtual platform cannot guarantee under load. Such a function stays on a dedicated controller or drive unless the platform is shown to meet the limit.
3. **Ownership.** If no team can patch, back up, and restore the server, the hardware controller is the lower-risk option.
4. **Vendor support.** Check warranty and support statements before moving a supported application onto a virtual platform.
5. **Cutover.** Without a test copy of the line, the rollback risk rises. See [brownfield automation cutover planning](https://wiki.aspotomasyon.com/article/brownfield-cutover-rollback-plan) .

**Illustrative example**

Assume a line where a virtual PLC on a redundant server pair runs the line logic, and remote I/O stations connect over a dedicated Ethernet ring. Assume the process team sets a 10 millisecond task period with 1 millisecond of allowed jitter. A load test that adds network traffic and runs an operating system update shows 0.4 ms of jitter in one run and 2.6 ms in another. The second run fails the limit, so the team moves the task to a protected real-time partition and repeats the test under the same load. All figures are assumptions for illustration, not measured results.

## Apply this to your project

- Write the task period, allowed jitter, and I/O update rate as acceptance limits before choosing a platform.
- Measure jitter and task overruns under realistic network and CPU load, and keep the results.
- Test failover on the real I/O, and record the transfer time and the state held by the backup.
- Document the operating system, runtime, container image, and patch owner, with a tested restore procedure.
- Confirm that safety functions remain on certified hardware or within the certified scope.
- Verify that the engineering tool, runtime, and library versions match the deployed system.

[Follow an ASP project guide](https://wiki.aspotomasyon.com/guides) to connect the fundamentals with implementation and acceptance.

## Frequently asked questions

### What is a virtual PLC?

A virtual PLC is control logic that runs as software on a standard server, industrial PC, or virtual machine instead of a dedicated controller. It reads and writes I/O through a network or fieldbus adapter. Its timing depends on the operating system, the isolation of the control workload, and the load on the host, so the platform's timing claims must be tested under the actual conditions.

### Is IEC 61499 a replacement for IEC 61131-3?

No. IEC 61131-3 defines the PLC programming languages and the cyclic task model that most controllers use. IEC 61499 defines a distributed function block model driven by events, which suits applications split across several devices. Some projects use both: IEC 61131-3 programs on controllers and IEC 61499 applications on devices, depending on the architecture.

### Does a virtual PLC need redundancy?

Redundancy is a requirement decision, not a platform default. Set the availability target and the failover behaviour from the process consequence of a stop, then test the design. A virtual PLC can use software, hypervisor, or server-pair failover, but the failover time, the backup state, and the I/O behaviour during switchover must be demonstrated on the real I/O.

### What is jitter in a PLC?

Jitter is the variation in the start time of a control task relative to its nominal period. Deterministic control needs small, bounded jitter. It comes from the operating system scheduler, interrupts, network traffic, and competing workloads. Measure it under worst-case load and set an acceptance limit before deployment, because an average value hides the worst cases that matter.

### Can safety logic run on a virtual PLC?

Only where the platform and its runtime fall within the certification scope for the safety function. Safety functions are designed, validated, and approved under the applicable functional-safety standard, and that decision belongs to qualified functional-safety engineers. In most plants, safety stays on certified safety controllers, and a virtual platform handles supervisory or non-safety control.

## Continue the engineering work

- [IEC 61131-3: PLC Programming Languages](https://wiki.aspotomasyon.com/article/iec-61131-3-plc-programming-languages)
- [PLC Scan Cycle and Task Execution](https://wiki.aspotomasyon.com/article/plc-scan-cycle-task-execution)
- [Redundant Control System Architectures](https://wiki.aspotomasyon.com/article/redundant-control-system-architectures)
- [Time-Sensitive Networking (TSN) for Industrial Ethernet](https://wiki.aspotomasyon.com/article/time-sensitive-networking-industrial)
- [PAC vs PLC: Selecting the Right Controller Platform](https://wiki.aspotomasyon.com/article/pac-vs-plc-selection)

Browse the [related technical library](https://wiki.aspotomasyon.com/category/automation-systems) or follow an [ASP project guide](https://wiki.aspotomasyon.com/guides) to plan the implementation sequence.

![Conceptual control-system layers. Safety functions, communication paths, and redundancy must be designed for the application; the diagram is not a wiring or safety design.](https://wiki.aspotomasyon.com/assets/diagrams/automation-systems-context.svg)

*Conceptual control-system layers. Safety functions, communication paths, and redundancy must be designed for the application; the diagram is not a wiring or safety design.*

## Primary references and further reading

Use the original specifications and product documentation for implementation details. Examples in this guide are illustrative engineering scenarios, not published project results.

- [IEC — IEC 61499-1:2012 Function blocks, Part 1: Architecture](https://webstore.iec.ch/en/publication/5506)
- [Eclipse Foundation — Eclipse 4diac, open-source IEC 61499 project](https://eclipse.dev/4diac/)
- [IEEE — Vyatkin, IEC 61499 as Enabler of Distributed and Intelligent Automation: State-of-the-Art Review (IEEE Transactions on Industrial Informatics, 2011)](https://doi.org/10.1109/TII.2011.2166785)
- [NIST — SP 800-82 Rev. 3, Guide to Operational Technology (OT) Security (2023)](https://csrc.nist.gov/pubs/sp/800/82/r3/final)

---

Cite the canonical article: https://wiki.aspotomasyon.com/article/virtual-plc-iec-61499-software-defined-automation (Virtual PLCs and IEC 61499: What Software-Defined Automation Changes, ASP OTOMASYON, updated 2026-10-11).
