Overview
FATEK programmable logic controllers are not based on the CODESYS control platform and cannot be programmed using the CODESYS Integrated Development Environment (IDE). FATEK controllers ship with a proprietary firmware stack that is programmed exclusively through FATEK's own tool, WinProLadder. This article explains the architectural reason for that limitation, how the CODESYS Runtime (RT) layer works on platforms that do support it, and what tooling and IEC 61131-3 features are available inside the FATEK ecosystem.
CODESYS Runtime Architecture
CODESYS is not a self-contained PLC programming suite. It is a two-component system:
- CODESYS IDE – the engineering tool that runs on a Windows-based programming PC and is used to author IEC 61131-3 programs.
- CODESYS Runtime (RT) – an embedded execution environment that must be installed on the target controller. The RT acts as a small operating system; it loads and executes the compiled program, manages task scheduling, and provides the library, I/O driver, and communication services that the application relies on.
When a CODESYS program calls a standard function block such as TON (on-delay timer), the call is resolved against a library that the CODESYS Runtime ships and exposes to the application. Without the RT, the program has no interpreter, scheduler, or driver layer to execute against.
RT Deployment Models
CODESYS Runtime targets two broad deployment classes:
- Bare-metal embedded targets – the RT executes directly on the controller's microprocessor without a host operating system (typical for PLCs, ECUs, and building controllers).
- OS-hosted targets – the RT executes as a user-space process on top of Linux, Windows, or a real-time operating system such as VxWorks or RTX (typical for industrial PCs, edge gateways, and the CODESYS Raspberry Pi demo image).
Both deployment classes still require a paid CODESYS Runtime license that is bound to the target device. For commercial PLCs, this license is purchased in volume by the controller manufacturer and embedded at the factory; for hobby or evaluation hardware such as a Raspberry Pi, the developer acquires a single-seat RT license directly.
IEC 61131-3 Language Support
The CODESYS IDE and Runtime together implement all six programming languages defined in IEC 61131-3:
| Language | Acronym | Description |
|---|---|---|
| Ladder Diagram | LD | Graphical relay-logic representation |
| Function Block Diagram | FBD | Graphical block-oriented language |
| Structured Text | ST | Pascal-like textual high-level language |
| Instruction List | IL | Low-level textual accumulator language (deprecated in 3rd edition) |
| Sequential Function Chart | SFC | Graphical step/transition language |
| Continuous Function Chart | CFC | Free-form FBD variant |
All six languages are available on any controller running a CODESYS V3.5 Runtime, subject to the libraries and visualization options licensed on that device. Refer to the CODESYS Group product page for the current V3.5 feature matrix and supported language editions.
CODESYS Licensing Model
CODESYS is commercial, not open-source. Each controller that executes CODESYS code requires at least one Runtime license. The catalog is broken into modular SKUs that vendors and end users mix and match:
| License Module | Function | Typical Buyer |
|---|---|---|
| CODESYS Runtime | Core IEC 61131-3 execution engine, task scheduler, library manager | Controller manufacturer |
| CODESYS Visualization | On-device HMI runtime (target visualization) | OEM system integrator |
| CODESYS WebVisu | HTML5-based browser visualization served by the controller | OEM system integrator |
| CODESYS SoftMotion | Motion control extension (single-axis, multi-axis, CNC) | Machine builder |
| CODESYS EtherCAT Master | EtherCAT master stack on the controller | OEM system integrator |
| CODESYS OPC UA Server | Embedded OPC UA server for IIoT data exchange | OEM system integrator |
Volume pricing typically scales to thousands of seats per order; for example, a vendor ordering 1,000 controllers would purchase 1,000 RT licenses and embed them at production time. End users who repurpose third-party hardware (industrial PCs, single-board computers) buy individual licenses through the CODESYS Store.
Why FATEK PLCs Do Not Run CODESYS
FATEK Automation Corporation designs its own firmware and does not license the CODESYS Runtime. The FATEK FBs/FBs-B/FBs-PLC/FP2C/HB1/HB2 families and the newer FATEK F-Series (F1/F2/F3) controllers all run a proprietary instruction set that is interpreted by firmware written and maintained in-house. The execution environment on these controllers is not a CODESYS RT; it is a FATEK-engineered logic solver.
Two practical consequences follow:
- No CODESYS IDE can compile a project for a FATEK target. The CODESYS build chain emits code targeted at the CODESYS RT ABI; the FATEK firmware does not implement that ABI, so the resulting binaries cannot be loaded or executed.
- FATEK programs cannot be authored in languages FATEK firmware does not support. The WinProLadder toolchain only emits instructions the FATEK firmware can interpret.
There is no field-installable upgrade that adds CODESYS Runtime to a FATEK controller, and there is no CODESYS device description (EDS-equivalent .devdesc.xml) shipped for FATEK hardware in the CODESYS device repository.
WinProLadder: The FATEK Programming Environment
WinProLadder is FATEK's official Windows-based programming tool. It is distributed by FATEK Automation and is the only sanctioned path to author, compile, and download programs to a FATEK PLC. WinProLadder communicates with the controller over RS-232, RS-485, USB, or Ethernet (model-dependent) using FATEK's proprietary protocol.
Project Workflow
- Create a new project and select the controller type (e.g., FBs-40MA, FBs-60MC, F2-28MA).
- Configure communication parameters (COM port, baud rate, station number, IP address).
- Write the program in the supported language (see next section).
- Compile the project; WinProLadder resolves contacts, coils, function blocks, and operands against the controller's firmware.
- Download the compiled code to the controller's program memory.
- Switch the controller from STOP to RUN to begin execution.
Languages Supported Inside the FATEK Ecosystem
FATEK firmware and WinProLadder provide a subset of the IEC 61131-3 language set. Per FATEK documentation and toolchain behavior:
| Language | Supported in WinProLadder | Notes |
|---|---|---|
| Ladder Diagram (LD) | Yes – primary language | Native editing environment in WinProLadder |
| Function Block Diagram (FBD) | Limited – available as block insertion within LD networks | Not a stand-alone editor |
| Structured Text (ST) | No – not supported by FATEK firmware | Programs cannot be authored or compiled in ST |
| Instruction List (IL) | No – not supported | No mnemonic editor |
| Sequential Function Chart (SFC) | No – not supported | Step/transition logic must be implemented manually with LD |
| Continuous Function Chart (CFC) | No – not supported | — |
FATEK controllers expose a wide library of application function blocks (timers, counters, drum sequencers, communications, PID, high-speed counters, positioning) that are accessible directly from Ladder networks. These are FATEK-specific implementations and are not interchangeable with the equivalent CODESYS library functions.
Code Migration Considerations
There is no commercially supported tool that converts Ladder Diagram code authored in WinProLadder into CODESYS Structured Text, and no tool that converts CODESYS projects into WinProLadder programs. Migration between the two environments is therefore a manual engineering effort. The following checklist documents the minimum scope of any Ladder-to-CODESYS migration if a controller swap is in scope:
- Inventory every FATEK function block used (timers
T, countersC, drumDRUM, PIDPID, commsRS/MB, high-speed I/OHS). - Map each FATEK function block to its IEC 61131-3 standard equivalent (
TON,TOF,TP,CTU,CTD,CTUD,PIDfromUtillibrary, etc.). - Translate Boolean network topology into ST statements or re-author in CODESYS LD if the target controller supports it.
- Verify all timer preset units; FATEK timers operate in 0.01 s or 0.1 s base increments depending on operand, while CODESYS timers use
TIMEdata type literals. - Re-validate PID loop tuning; FATEK's PID block exposes tuning parameters in a different format than the CODESYS
Util.PIDblock. - Recompile and full-load test on the new controller; do not rely on offline simulation equivalence.
CODESYS-Compatible Alternatives for Greenfield Projects
If a project requires CODESYS support but the FATEK platform is not required, several controller families are explicitly marketed as CODESYS-compatible and ship with a licensed CODESYS Runtime in firmware. The list is illustrative and changes with each vendor's product release; verify against the vendor's current datasheet before specifying.
| Manufacturer | Product Family | Runtime Version | Reference |
|---|---|---|---|
| WAGO | PFC100 / PFC200 / Edge Controller | CODESYS V3.5 | WAGO CODESYS V3 page |
| Bosch Rexroth | ctrlX CORE / ctrlX PLC | CODESYS V3.5 | Vendor datasheet |
| Schneider Electric | Modicon M340 / M580 with CODESYS option | CODESYS V3.5 | Vendor datasheet |
| Beckhoff | CX / CX-series Embedded PCs | TwinCAT 3 (CODESYS-compatible API) | Vendor datasheet |
| Festo | CECC controller family | CODESYS V3.5 | Vendor datasheet |
Each entry should be confirmed against the vendor's current catalog; product lines and CODESYS versions are revised independently of CODESYS Group's release schedule.
Verification Checklist
Before commissioning any controller, validate that the engineering environment matches the runtime environment on the target:
- Confirm the controller model number and firmware version against the vendor's official product page.
- Verify that the IDE is the vendor-approved tool for that firmware (WinProLadder for FATEK, CODESYS for CODESYS-based PLCs, etc.).
- Confirm the programming cable, COM port, baud rate, station number, and (for Ethernet) IP address and subnet match the controller's configuration.
- Compile the project to a known-good empty program and download to confirm the toolchain communicates with the controller.
- Read back the project from the controller and compare to the offline copy to verify transfer integrity.
- Run the controller in STOP for I/O checkout, then transition to RUN and verify scan time and I/O behavior against design values.
Troubleshooting Matrix
| Symptom | Likely Root Cause | Remediation |
|---|---|---|
| CODESYS IDE cannot find the FATEK controller during "Scan Network" | Controller is not CODESYS-based | Switch to WinProLadder; do not attempt to add a device description |
WinProLadder rejects an IF...THEN block |
FATEK firmware does not parse Structured Text | Re-author in Ladder Diagram using contacts, coils, and FATEK function blocks |
| Download fails with "Communication timeout" | Wrong COM port, baud rate, station number, or IP address | Verify against controller DIP switches and WinProLadder "Online" settings |
| Program compiles but controller stays in STOP after "RUN" | Fatal syntax or memory error detected on load | Clear program memory, re-download; review WinProLadder compile log for errors |
| Timer counts too fast or too slow versus ST equivalent | FATEK timer base is 0.01 s or 0.1 s, not milliseconds | Rescale presets; verify against FATEK function block reference |
| PID loop oscillates after migration from FATEK to CODESYS | FATEK PID parameters are not 1:1 with CODESYS Util.PID
|
Re-tune loop with step-response or autotuning procedure on the new target |
Can I install CODESYS Runtime on a FATEK PLC?
No. CODESYS Runtime must be licensed and embedded by the controller manufacturer at production time. FATEK has not licensed CODESYS for any of its PLC families, and there is no field-installable RT package for FATEK hardware. Use WinProLadder for all FATEK programming.
Does WinProLadder support Structured Text?
No. WinProLadder is a Ladder Diagram-centric editor. FATEK firmware does not interpret Structured Text, so ST programs cannot be compiled or executed on any FATEK controller. All logic must be authored in Ladder Diagram, with FATEK function blocks for timers, counters, communications, PID, and high-speed I/O.
Is there a tool to convert a WinProLadder Ladder program into CODESYS Structured Text?
No commercially supported converter exists. Ladder-to-CODESYS migration must be performed manually by re-implementing the logic and mapping FATEK function blocks to their IEC 61131-3 equivalents (for example, FATEK timers T0..T255 to CODESYS TON/TOF/TP instances).
Which IEC 61131-3 languages does CODESYS V3.5 support on a CODESYS-based PLC?
CODESYS V3.5 supports all six IEC 61131-3 languages: Ladder Diagram (LD), Function Block Diagram (FBD), Structured Text (ST), Instruction List (IL), Sequential Function Chart (SFC), and Continuous Function Chart (CFC). IL is deprecated in the third edition of the standard but remains available in many V3.5 implementations.
How do I confirm a PLC is CODESYS-compatible before purchase?
Check the vendor datasheet for explicit "CODESYS V3" or "CODESYS V3.5" branding, a listed CODESYS Runtime version, and a vendor-published device description (.devdesc.xml). If none of those are present, treat the controller as proprietary and contact the vendor to confirm which IDE and runtime version are supported.