> Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

---
$schema: https://holocron.so/frontmatter.json
title: RoboC++
description: IEC 61131-3 PLC compiler for controls and robotics. Check, simulate, and compile to portable C with the CLI or Studio.
icon: lucide:home
---

import { HeroSection } from './components/hero-section.tsx'

<Above>
  <HeroSection />
</Above>

<Aside full>
  <Info>
    RoboC++ is an open-source **IEC 61131-3 PLC compiler**, not a safety-certified controller. Validate timing, I/O, and hardware mapping before production use. See [Targets](/targets) and [Compliance](/compliance).
  </Info>
</Aside>

RoboC++ compiles **IEC 61131-3** programs for PLC and robot control. Write in **Structured Text, Ladder, FBD, SFC, Instruction List**, or **PLCopen XML**, then **check**, **simulate scan cycles**, and **generate portable C** you can embed on a target.

Use the **`rbcpp` CLI** from the terminal or **RoboC++ Studio** in the browser. Both cover the same languages and compiler pipeline.

## Explore

<CardGroup cols={2}>
  <Card title="Getting started" icon="lucide:rocket" href="/getting-started">
    Build the workspace, run counter.st, and verify the toolchain.
  </Card>

  <Card title="RoboC++ Studio" icon="lucide:layout-panel-left" href="/studio">
    Browser IDE: check, simulate, build C, and diagram previews.
  </Card>

  <Card title="CLI reference" icon="lucide:terminal" href="/cli">
    check, run, build-c, PLCopen, and compliance commands.
  </Card>

  <Card title="Execution model" icon="lucide:repeat" href="/execution-model">
    Programs, configurations, tasks, and scan-cycle traces.
  </Card>

  <Card title="Language support" icon="lucide:code-2" href="/language-support">
    ST, IL, SFC, native LD/FBD, types, and stdlib.
  </Card>

  <Card title="Native LD and FBD" icon="lucide:layout-grid" href="/native-ld-fbd">
    LADDER/RUNG and FBD/NETWORK textual syntax.
  </Card>

  <Card title="Examples" icon="lucide:folder-open" href="/examples">
    All repository examples (.st, .il, .sfc, .ld, .fbd, .xml).
  </Card>

  <Card title="Compliance" icon="lucide:shield-check" href="/compliance">
    Profile matrix and feature status meanings.
  </Card>

  <Card title="Targets" icon="lucide:cpu" href="/targets">
    Generated C ABI and rbcpp\_target HAL helpers.
  </Card>
</CardGroup>

## Project goals

* Open-source **IEC 61131-3:2003** compiler you can read, test, and extend without a vendor IDE.
* **Check, simulate, and build C** from the CLI or browser Studio.
* Shipped **examples** for every supported file type (`.st`, `.il`, `.sfc`, `.ld`, `.fbd`, `.xml`).
* **Portable C output** with target hooks for I/O, retained state, and fieldbus adapters.
* Live **compliance matrix** via `rbcpp compliance` so scope stays honest.

<Aside>
  <Tip>
    Run **`rbcpp compliance`** at any time to see the live feature matrix instead of relying on docs alone.
  </Tip>
</Aside>

## Where to go next

| Goal                                | Page                                  |
| ----------------------------------- | ------------------------------------- |
| First successful run                | [Getting started](/getting-started)   |
| Browser IDE                         | [RoboC++ Studio](/studio)             |
| Command flags and profiles          | [CLI reference](/cli)                 |
| What the language can express today | [Language support](/language-support) |
| Native ladder and FBD syntax        | [Native LD and FBD](/native-ld-fbd)   |
| How runs are scheduled              | [Execution model](/execution-model)   |
| Crate boundaries                    | [Architecture](/architecture)         |
| Deploying generated C               | [Targets and Generated C](/targets)   |
| License (MIT OR Apache-2.0)         | [License](/license)                   |


---

*Powered by [holocron.so](https://holocron.so)*
