Introduction: When Industrial PC Meets Soft PLC
In the field of automation, traditional hardware PLCs such as Siemens S7-1500 and Rockwell ControlLogix have long dominated. However, with the soaring performance of PCs and the maturity of the industrial software ecosystem, PC based soft PLCs (SoftPLCs) are gradually penetrating into scenarios such as process control, discrete manufacturing, and building automation. CODESYS Control Win SL is a representative product of this trend - it transforms an industrial PC running Windows into a high-performance controller that complies with the IEC 61131-3 standard, with performance almost linearly expanding with PC hardware.
But soft PLC is not omnipotent. Its "soft real-time" feature determines that it cannot replace hard real-time systems (such as VxWorks with RTX extensions or Windows with INtime). This article aims to provide engineers with a comprehensive guide from deployment to troubleshooting, covering installation, fieldbus configuration, license management, redundancy options, and in-depth analysis of common faults.
System architecture and real-time performance: understanding the boundaries of 'soft real-time'
2.1 Working principle
CODESYS Control Win SL runs as a Windows user mode process, using CODESYS Development System (V3.5.17.20 or higher) to write, compile, and download applications. The runtime system is responsible for:
Load and execute application code in binary format
Manage I/O systems and fieldbus stacks
Support retention data (battery backup SRAM, flash memory, CF card)
Provide debugging interfaces (breakpoints, single steps, variable monitoring)
2.2 Soft Real Time vs Hard Real Time
Unlike controllers based on dedicated RTOS, Windows itself is a non real time operating system (thread scheduling latency can reach several milliseconds). CODESYS Control Win SL does not provide a "hard real-time" guarantee, but has soft real-time features:
In most cases, the IEC task cycle can be maintained within the expected range
But occasionally there may be significant delays, and the frequency of delay exceeding the limit may be high
Suitable for control circuits that are insensitive to time jitter (such as HVAC, material handling, non safety level process control)
Typical latency data: On a regular industrial computer (Intel Core i5, 8GB RAM, Windows 10 LTSC), the typical jitter of a 1ms cycle task is ± 200 μ s, but a long delay of 10ms may occur every 10 minutes (caused by Windows backend services). For applications that require sub millisecond level certainty, such as servo interpolation and high-speed injection molding machines, please choose CODESYS Control RTE (with real-time extension) or hardware PLC.
2.3 System Requirements and Limitations
Project requirements
Operating system Windows 10/11/Embedded (32 or 64 bit), requires official Microsoft support version
CODESYS Development System V3.5.17.20 and above
Hardware arbitrary industrial PC, it is recommended to disable CPU power-saving mode
Explicitly prohibit running in containers (Docker) or virtual machines (VMware/Hyper-V)
Real time level soft real-time, does not meet the requirements of hard real-time
Why ban virtual machines? The hypervisor can introduce unpredictable scheduling delays and timer drift, causing IEC task cycles to deviate significantly from set values and even trigger watchdog resets.
Installation and Basic Configuration: Step by Step Towards Stable Operation
3.1 Installation steps
Download the installation package (zip file containing 32/64 bits of Setup. exe) from the CODESYS Store.
Run Setup. exe as an administrator and select the target folder (it is recommended to default to C: Program Files CODESYS).
During the installation process, check the required additional components (such as OPC UA Server, Npcap driver - the latter is required for EtherCAT/PROFINET, etc.).
Restart the PC (some network drivers require a restart to take effect).
3.2 First Startup and Demonstration Mode
After installation, launch "CODESYS Control Win SL" from the start menu. The system defaults to demonstration mode:
Can run continuously for 2 hours without a license
After 2 hours of operation, the system will stop and the service or PC needs to be manually restarted
Demo mode supports all functions, limited to continuous running time only
Verify the running status: In the CODESYS development system, click "Online" ->"Login", and select the "CODESYS Control Win SL" target. If the connection is successful and the task cycle is normal, it indicates that the installation is correct.
The Importance of Npcap Driver 3.3
Many fieldbuses (see table below) rely on Npcap (a network packet capture library based on WinCcap) to transmit and receive raw Ethernet frames. If it is not installed or the version is incompatible, it will cause the bus to fail to initialize. Suggestion:
Download the latest official version (≥ 1.10) from the Npcap official website
Check 'Install in WinCcap API compatible mode' during installation
If using Wireshark at the same time, ensure that the Npcap driver is not overwritten
Fieldbus Integration: From Configuration to Troubleshooting
CODESYS Control Win SL supports multiple mainstream fieldbuses from the factory at no additional cost (some protocols require installation of Npcap). The following is the complete support list and configuration points:
The protocol role requires Npcap. Typical application common faults
CANopen manager/device is not distributed I/O, drive control baud rate is inconsistent, terminal resistance is missing
EtherCAT main station is motion control, high-speed IO network card is not compatible (requires Intel PRO/1000 series)
EtherNet/IP scanner/adapter communication with Rockwell PLC package timeout set improperly
J1939 device has no vehicle/engine data address conflict
Modbus TCP master/slave is a universal SCADA connection port 502 intercepted by a firewall
Modbus serial master/slave, old instrument level conversion error (RS232/485)
PROFIBUS DP master station, Siemens system integration, GSD file missing, terminal resistance error
PROFINET controller/device does not match Siemens I/O exchange data device name
Sercos III main station is a high-end motion control ring network disconnection
4.1 EtherCAT Configuration Troubleshooting Example
Phenomenon: After the EtherCAT master station scans, some slave stations display abnormal "Op" status or experience periodic communication interruptions.
Steps:
Confirm that the Npcap driver has been installed correctly and that the network adapter is not occupied by other applications (such as Wireshark).
In the CODESYS device tree, right-click on the EtherCAT master → "Append Device" → select the correct slave XML description file (provided by the slave vendor).
Check physical wiring: Use a cross test wire to connect the PC to the first slave station and observe the slave station indicator light. If the LED "L/A" does not flash, try replacing the network card.
Network card compatibility: CODESYS Control Win SL has poor support for Realtek network cards (prone to frame loss), and it is recommended to use Intel PRO/1000 or PCIe network cards based on Intel chips.
Set task cycle: EtherCAT data refresh should run in a separate high priority task, typically with a cycle of 1-4ms. If the task cycle jitter exceeds ± 20%, the Windows timer resolution needs to be increased (using timeBeginPeriod call or automatically optimized through CODESYS).
4.2 PROFINET device name malfunction
PROFINET IO devices are identified by device names rather than IP addresses. If CI871 or third-party slave cannot connect:
Use PST (Primary Setup Tool) or CODESYS's built-in "PROFINET Device Scan" function to read the current device name.
In the CODESYS configuration, set the "Device Name" to be exactly the same as the slave entity (case sensitive).
If the factory settings are restored from the site, the name needs to be reassigned.
4.3 Modbus TCP connection rejected
In most cases, it is due to the Windows Firewall blocking port 502. Solution:
Add an inbound rule in the control panel for 'CODESYS Control Win SL.exe' to allow TCP port 502.
Or temporarily shut down the firewall for testing (non production environments only).

License management: Avoid two-hour interruptions
5.1 License Types
CODESYS Control Win SL adopts a single device license and can be bound to:
Software container: Bind with the hardware fingerprint (network card MAC, hard disk serial number, motherboard UUID) of the target PC, permanently valid. After replacing the hard drive or network card, reactivation is required.
CODESYS Key (USB hardware dongle): Simply plug it into any PC for easy mobility and temporary replacement.
Order information: Product number 2302000003, purchased through CODESYS Store.
5.2 Activation Process
Install the runtime system on the target PC and obtain the 'Container ID' (displayed in the CODESYS Control Win SL control panel).
Log in to the CODESYS Store, enter the activation code obtained at the time of purchase, and submit the container ID.
Download the license file (. crypto) and import it into the runtime system (via web interface or local file).
Restart the runtime service and confirm that the 'License Info' display is valid.
5.3 Common License Malfunctions
Possible causes and solutions for the fault phenomenon
Still showing that the demo mode license file has not been loaded. Check if the file path contains Chinese or spaces; Re import using the 'Manage License' tool
After activation, it prompts "mismatched" hardware fingerprint change (such as replacing network card). Contact CODESYS support to regenerate container ID
USB dongle not recognized, missing driver installation CODESYS Key driver (located in installation directory Drivers)
The license validity period is shorter than expected. If you purchase a subscription version (annual fee), renew it annually, or purchase a permanent version
Tip: When deploying redundant systems, it is necessary to purchase independent licenses for each PC (redundancy options require additional fees, see the next section).
Product option: Expand the boundaries of soft PLC
CODESYS Control Win SL offers multiple charging options, significantly expanding its application scope. Here are the four most commonly used:
6.1 CODESYS Redundancy SL
Supports redundant switching between primary and backup soft PLCs, suitable for critical processes such as wastewater treatment and energy management. Working Principle:
The main controller monitors the status of the backup machine through heartbeat monitoring
Maintain data synchronization through Ethernet (supports up to 4 redundant devices)
The fault switching time can be configured (typical 100~500ms)
Attention: Redundant functions are sensitive to network latency and must use independent redundant networks (not shared with the control network).
6.2 CODESYS SoftMotion SL
Upgrade the soft PLC to a motion controller that supports:
Single axis position/speed/torque control
Electronic cam (electronic gear)
Multi axis interpolation (lines, arcs, spirals)
Supports EtherCAT or Sercos III drivers
Hard real-time warning: SoftMotion's high-precision interpolation (e.g. cycle 1ms, requiring jitter<50 μ s) may not be met on Win SL. For CNC or robot applications, please upgrade to CODESYS Control RTE.
6.3 CODESYS WebVisu / TargetVisu
Built in web server or target visualization, allowing monitoring of controller status through a browser or local touchscreen. No additional purchase of SCADA is required.
6.4 CODESYS BACnet SL / KNX SL
A protocol stack specifically designed for building automation, capable of connecting HVAC, lighting, and security systems. These two options do not rely on Npcap and have extremely low real-time requirements, making them very suitable for Win SL.
Typical application scenarios and limitations (mandatory for engineers)
✅ Suitable for scenarios using CODESYS Control Win SL
Factory data collection and edge computing (running SQL database or Node RED at the same time)
Building automation (HVAC, lighting, elevator group control)
Material sorting conveyor line (cycle 10-50ms)
Water treatment process control (PID regulation, second level response)
Education, laboratory prototype verification
❌ Scenarios that are not suitable or require careful use
Safety related systems (not SIL certified)
Stamping machines, injection molding machines, and other equipment that require microsecond level response
Multi axis CNC interpolation (jitter can cause machining errors)
Containerized deployment (officially prohibited virtual machines/containers)
Embedded headless device (without Windows environment)
Alternative Proposal
If hard real-time is necessary, you can choose:
CODESYS Control RTE: Based on Windows+INtime real-time extension, supports deterministic cycles (≤ 50 μ s jitter).
CODESYS Control for Linux: runs on the Linux+PREEMPT_RT kernel and performs better in hard real-time than Windows.
Hardware PLC: such as ABB AC 800M (refer to previous text), suitable for extreme reliability and safety situations.
Performance optimization: making Windows more like a real-time system
Although it cannot completely eradicate the non real time nature of Windows, the following measures can significantly reduce latency spikes:
8.1 Close unrelated services
Windows Update (Automatic updates consume a lot of CPU and I/O)
Disk Defragmentation (Planned Task)
Print backend processing program (if not used)
Windows Defender (Reduce real-time scanning frequency or exclude CODESYS process)
8.2 Setting processor affinity
In the task manager, bind the CODESYS Control Win SL process to a specific CPU core (such as Core 3) and exclude other user processes from using that core.
8.3 High precision timer
When CODESYS is running, the system defaults to calling the Windows multimedia timer (timeBeginPeriod (1)), setting the system clock resolution to 1ms. UseHighResTimer=1 can be forcibly enabled by adding it to the registry in the fields of iPadOS SOFT CODESYS ControlWin.
8.4 Network Isolation
Assign a dedicated network card to EtherCAT/PROFINET and disable the following features of the network card:
Large scale Send Offload (LSO)
Receiver Scaling (RSS)
IPv4 checksum offloading
These uninstallation functions will introduce unstable packet latency.
8.5 Monitoring jitter
Use the built-in 'Task Monitor' in CODESYS to record cycle deviations. If it frequently exceeds 30% of the set value, it is necessary to reduce the CPU load or extend the task cycle.
Common fault codes and solutions (quick reference table)
Troubleshooting steps for error logs or indicator lights
Unable to start event log at runtime: 0x80070005 Running with administrator privileges; Check User Account Control (UAC)
Fieldbus initialization failed with "Adapter not found" installation of Npcap; Disable firewall; Replace the network card
Watchdog reset C016: Task timeout extends the task cycle; Optimize code (avoid long loops)
License expiration demonstration mode countdown, re import license; Check if the system time is correct
There are a large number of CRC errors in the communication intermittent bus statistics to check the grounding of the cable shielding layer; Reduce bus speed
Unable to download program device not ready to restart runtime service (command line: net stop CODESYSControlWin/net start)
High CPU usage (>90%): Windows Task Manager checks if soft PLC is enabled to execute multiple tasks simultaneously; Reduce the number of loop tasks
Selection Comparison: CODESYS Control Win SL vs Competitors
Features CODESYS Win SL TwinCAT 3 (Beckhoff) Raspberry PLC (open source)
Operating System Windows 10/11+Real time Kernel Linux RT
Real time level: Soft real-time, Hard real-time (via TcRtAcc), Soft real-time (PREEMPT_RT)
Supports a wide range of buses (>15 types) native to EtherCAT, with limited support for others through gateways
License fee payment (~€ 300) based on performance level (~€ 800 starting) free of charge
Visualization WebVisu/Target Visu TwinCAT HMI requires third-party support
Redundancy support with built-in paid options (requires additional authorization) None
Applicable to virtual machine prohibition (requires dedicated network card direct access) permission
For projects with limited budget and low real-time requirements, CODESYS Control Win SL is a highly competitive choice.
