IEC 61131-3 · Preview version 0.2

Your control system. No per-device licence, no vendor lock-in.

ForgeIEC is control software for machine and plant builders: program to IEC 61131-3, run on Linux industrial computers, connect field devices and operator panels. Open source – a commercial licence is available on request.

In pilot operation at a solidarity farm Linux, Windows build available Your control program stays yours

Irrigation.st — ForgeIEC Studio
PROGRAM Irrigation
VAR
  moisture : REAL;  (* soil sensor, % *)
  rain     : BOOL;
  valve    : BOOL;
  runTime  : TON;
END_VAR

runTime(IN := moisture < 30.0 AND NOT rain,
        PT := T#20m);
valve := runTime.IN AND NOT runTime.Q;
END_PROGRAM
Runtime connected ·Modbus TCP ·LoRaWAN
The problem

Control software ties you down – to licences, vendors and services.

  1. With many suppliers the runtime licence costs money – per controller, again with every machine you ship.
  2. Choosing a system ties your programs, hardware and know-how to one vendor’s tools.
  3. And remote maintenance often runs through open ports or through a third party’s cloud.
The solution

One platform to program, run and connect.

ForgeIEC covers the path from the program to the field device – with open licences and on hardware you choose yourself.

Program

Structured Text to IEC 61131-3

A dedicated editor with its own compiler core that also understands object-oriented blocks.

  • ST in use today; LD, FBD and SFC follow in the next versions
  • Manufacturers’ device descriptions right in the project
Learn more

Run

Runtime on industrial hardware

The runtime runs as a service on Linux computers with x86 or ARM. Programs reach the controller over the network.

  • Watch variables live and record trends
  • Updates as signed packages from the apt repository
Learn more

Connect

Field buses, radio and operator panels

Every protocol has its own bridge. If one fails, the rest keeps running.

  • Modbus TCP and RTU available, LoRaWAN in progress
  • Hearth operator interface as a preview
Learn more

Document

Documentation lives inside the project

Every POU, variable and data type carries its own description in Markdown, stored in the same PLCopen XML file as the program – versioned, copied and shipped together with the code.

  • Importing Structured Text turns your existing (* … *) comments into documentation
  • Readable through the MCP interface, also for a locally hosted AI model
Learn more
The ST editor in the Studio’s main window.
Rivet · remote access

Remote access to your machines – without an open port and without someone else's cloud.

Rivet connects a phone to the controller. A small gateway next to the controller builds the connection outwards by itself – no port is opened in the plant’s network.

  • No port forwardingNo public IP address, no DynDNS. Works behind CGNAT and on an LTE connection, too.
  • No third party in the data pathGateway and server are our own infrastructure, no cloud or VPN provider in between. The server only passes the connection on encrypted and sees no content.
  • Only the released controller is reachableThe phone reaches only the released controller on the released ports. Other devices in the network stay unreachable.

Rivet in detail in development · pilot with solidarity farms

Rivet: connection pathThe phone connects to the Rivet server. The gateway in the local network builds an outgoing connection to the server itself. The server passes the encrypted connection through this tunnel to the gateway, which reaches only the released controller.INTERNETPhoneRivet-Serverfixed IP addresssees no contentWireGuard / HTTPSLOCAL NETWORK OF THE PLANTRivet-Gatewayoutgoing onlybuilds the tunnelfrom insideControllerreleased portother devices: unreachable
The gateway builds the tunnel from inside; the server only brokers it.
Honest status

What works today – and what does not yet.

ForgeIEC is a preview version (0.2). The ST editor is in productive use at the pilot customer; much else is in progress.

AreaWhat it meansStatus
Programming in STEditor, own compiler core, transfer to the controllerin use
LD, FBD, SFCGraphical languages: planned for versions 0.3, 0.4 and 0.5, not compiled yet. IL is deprecated.planned
Runtime on LinuxAnvil server (anvild) for Debian and Ubuntu, signed packagesin use
Modbus TCP and RTUConnecting field devices via Modbusavailable
LoRaWANRadio sensors for wide-area sites – our focus for the solidarity farmsin progress
EtherCAT, PROFIBUS, EtherNet/IPSkeleton in place, protocols in progress; further buses followin progress
Hearth operator interfaceRuns over the internal Anvil buspreview
Rivet remote accessSecure access from a phone without port forwardingin development · pilot
WindowsA Windows build exists and its CI runs; installer on requeston request
bellowsd OPC UA gatewayPackage stays in the apt repository, not being developed at presentresting

in use running at the pilot customer or available in progress being developed, not finished planned intended resting not in development at present

See the roadmap: what comes next

Trust

Clear rules before you decide.

  • LicenceThe Studio, the runtime daemon and the bus bridges are AGPL-3.0-or-later. What is linked into your project – generated code, runtime interfaces, libanvil – is Apache-2.0. A commercial licence is possible.
  • Not a replacement for a safety PLCForgeIEC is not a safety PLC and has no SIL or PL rating. Emergency stop and protective functions belong on safety equipment approved for that purpose.
  • Linux and WindowsLinux packages come signed from an automated CI via the apt repository. A Windows build exists and its CI runs; the installer is available on request.
  • Support and commercial licenceOn request. The source code is under AGPL; access to the repositories on request.

Licence questions

Do I have to disclose my PLC program?
No. The generated control code and the runtime interfaces linked into your project (runtime API, libanvil) are Apache-2.0. You may also build your own closed libraries on top of them. The Studio, the runtime daemon and the bus bridges are AGPL-3.0-or-later. A commercial licence is possible.
What applies if I modify ForgeIEC itself?
Changes to the Studio, the runtime daemon or the bus bridges fall under the AGPL: if you distribute the modified software or offer it over a network, you must make the source code of those changes available. If you do not want that, ask for a commercial licence.
Is there a licence fee per controller?
Not under the open licences. Support and a commercial licence are available on request.
Can I get the source code?
Yes. The source code is under AGPL; access to the repositories is available on request at blacksmith@forgeiec.io.

Information, not legal advice. The licence texts are authoritative.

In use

Pilot operation at SoLaWi Ackervielfalt

SoLaWi Ackervielfalt, a solidarity farm, is ForgeIEC’s pilot customer: its control programs are written in the ST editor, which is in productive use there. More solidarity farms will follow.

Let's talk about your machine.

You build machines or plants and want to try ForgeIEC in a pilot project? Write what you want to control – Jörg Bernau replies personally.