Run close to the process
Keep automation execution, device communication, and useful local state on the industrial controller rather than making every decision depend on a remote service.
The BFC project explores a practical industrial edge layer where connected devices, scriptable control logic, data persistence, and open software integrations work as one system.
Industrial projects often need the same foundations: controller commissioning, device access, local logic, persistent values, APIs, and dashboards. BFC packages those foundations into a reusable platform so application work can stay focused on the process.
It combines an ASP.NET Core Gateway, a scriptable Console runtime, IO-Link and IODD tooling, MariaDB, Node-RED, and a Windows Setup Tool. The result is a software-defined automation environment that can follow the application from an experiment to a repeatable edge deployment.
Keep automation execution, device communication, and useful local state on the industrial controller rather than making every decision depend on a remote service.
Give automations, APIs, persistence, and visual workflows clear runtime boundaries so they can be operated and understood independently.
Use a concise lifecycle model and generated device drivers to express application behavior without rebuilding the platform for every new machine task.
Expose edge data through HTTP APIs, standard database tools, and Node-RED flows so it can move into operator experiences and higher-level applications.
“Soft PLC” describes the role BFC plays: control and orchestration logic runs in software on a general industrial computer, integrates directly with devices, and can be deployed and managed like a modern application.
BFC is designed for
BFC does not claim to be
BFC is currently best treated as a technology preview for controlled industrial evaluation. Its core path is already tangible—from controller commissioning and lifecycle scripts to persisted values and Node-RED integration—but production hardening remains an explicit responsibility.
Validate device behavior, performance, recovery, and lifecycle management for your own process.
Replace defaults, protect secrets, restrict ports, use trusted TLS, and add network and application controls.