OCM standard · Cellwright software

Automation Built by AI.Maintainable by You.

Everything needed to build an automation cell already exists — it just isn't anywhere a program can read it. OCM is the open standard that writes it down as component, module and cell manifests. Cellwright is the software that reads them and generates the robot program, the PLC sequence and the cycle-time estimate.

STATUS: PRE-ALPHA. The software chain is real and runs on a laptop. The PLC-sequence emitter is not written, the runtime I/O is still simulated, and no hardware has been built. We will say so plainly until it isn't true.

Engineering diagram of a modular assembly cell: open frame on an enclosed base cabinet at operator height, six-axis robot, screwdriver and dispense-head modules on a bolt-grid datum plate

FIG. 1 — frame on a base cabinet at operator height, datum plate, two interchangeable process modules

WHY AUTOMATION CELLS COST WHAT THEY COST

None of it is unknown. It just isn't written anywhere an AI Agent can read.

01

The facts exist, in the wrong places

The screwdriver's torque curve is in a PDF. Its approach vector is in the engineer's head. Its I/O map is in the PLC project. Its tool centre point is in the robot pendant.

02

So somebody retypes them

Four places, four transcriptions, four chances to be wrong — and no way to check any of them until the cell is standing on your floor and the schedule has already moved.

03

And every cell starts over

Change a fastener, swap a feeder, add a variant, and the engineering bill arrives again, because nothing about the last cell was written where a program could read it.

How it works

Component, module, cell, line — and everything downstream generated from them.

Each tier is authored as a manifest and composed only of validated instances of the tier below it. A tier may reference what the tier below declares, and never restates it. A fact has exactly one home, and a missing reference stops the user, making no assumptions.

Open Cell Model composition hierarchy drawing: a component transcribed from its datasheet, components composed into a module with declared ports and nets, modules placed into a cell frame with kinematics, and cells sequenced into a line with conveyance and handoff. Each tier is authored as a manifest and validated before it can be used by the tier above.
Fig. 2 — each tier is composed only of validated instances of the tier below it

component

Component

One purchased part, transcribed from its datasheet or manual: torque range, stroke, voltage, mass, mounting, and the ports it exposes. Facts only, in the units the datasheet prints.

module

Module

An assembly of components that performs a function — a screwdriver, a feeder, a fixture. It declares which components it contains, how they are wired, and which ports it exposes upward.

cell

Cell

One machine: which modules are fitted, where they sit on the frame, and how they connect. Reach and collision are checked here, and the robot program and PLC sequence are generated from it.

line

Line

Many cells in sequence: conveyance, handoff points, and the order of operations. Each cell keeps its own owner and manifests; the line only declares how they meet.

What it changes on your floor

Quoted cycle time before steel is cut

The estimate comes from the same manifests that generate the program, so the number you approve is the number the machine is built to.

Changeovers stop being projects

Swap a module, regenerate. The re-engineering that used to be weeks becomes a rebuild of generated output.

A refusal, not a plausible guess

Ask for 6.0 N·m from a tool rated to 5.0 N·m and nothing is emitted. Where the manifests are incomplete, you get a completion list — including when the reader is an AI agent.

No vendor holding your line hostage

OCM is an open standard, independently implementable. Anyone can write their own generator against the same manifests — which is the test of whether the standard is real.

Cells into a line

A cell stays a machine you can sell, move or replace on its own.

Put two cells side by side and the tempting move is to wire them into one machine. We refuse it on purpose: the seam between cells is deliberately thin, so no cell becomes hostage to its neighbour's vendor.

Cell 01Cell 02Cell 03PressScrewdriveTestManifestManifestManifestGenerated codeGenerated codeGenerated codedeclared heredeclared heredeclared hereruns on own PLCruns on own PLCruns on own PLCSafetySafetySafetyno endpoint leavesno endpoint leavesno endpoint leavesTagTagTagCarrier flow — the only material crossing a boundarySent to your databasewhat was built, on which carrier,by which cell, with the resultupstream: part availabledownstream: readysafety, cell-local
Fig. 3 — three cells, three owners, two signals between each, safety never leaves a cell

boundary

Cells join by two wires, not by a shared network

Safety, handoff interlock and data cross a cell boundary on three separate channels. The interlock is two opto-isolated discrete signals — part available, ready to accept — so any machine that can shake hands drops into the line, including one that isn't ours.

identity

Identity rides on the carrier, and is read at every cell

Most target parts can't be marked, so a single RFID tag on the pallet carries an unwritable carrier ID and the bound unit ID. No cell infers which part it is holding by counting handshakes. A failed or disagreeing read is a refusal, never a guess.

records

Your data goes to your system of record

Each cell commits to a local append-only journal before the cycle completes — a plain text file a technician can tail at 02:00. Forwarding to Postgres, MQTT, an OPC UA historian or an MES file drop is declared in the manifest, and the line keeps running when it's unreachable.

The AI agent, and what it is allowed to touch

It can read the cell always. It can write only when you turn a key.

In AUTO and in MANUAL the agent has no write path — not a blocked one, an absent one. The link carrying it is powered through a relay that closes only when the cell's key selector is in PROGRAM. Reading never stops: the controller publishes its state out an RS-422 port whose receive conductors are left out of the cable, so the agent can diagnose and explain a running cell without any means of talking back.

Three layers hold independently — the API refuses the verb, the controller rejects the write, and the conductor is open — and the last one is the one you can be shown at the panel.

How agent authority is enforced
AUTO
Read only. Engineering link de-energized at layer 1.
MANUAL
Read only. Same relay, same open contact.
PROGRAM
Key-selected. Writes possible, and logged.
Read path
RS-422 publish-only, 10 Hz state frame, RX absent.

Three ways to get one

Build it yourself, buy the kit, or have us build it complete.

Open files

Build it yourself

The OCM standard, the registries, the mechanical files and Cellwright itself. Free, licensed openly, yours to modify.

  • Full mechanical and electrical files
  • Manifest schemas and registries
  • Every decision record, with reasoning

Verified parts

Buy a kit

The tested bill of materials, verified drive list and measured frame data, shipped as a kit so you skip the sourcing.

  • Tested BOM, no substitution guesswork
  • Measured frame and sync data
  • Assembly documentation

Complete

We build the cell

You describe the assembly. Accel Solutions delivers a running cell, with the OCM manifests handed over in the open format.

  • Specification to commissioning
  • Manifests handed to you
  • Support on your terms, not a lock-in

Where we actually are

Pre-alpha, and saying so.

The mechanical design comes fourth on purpose. We already know how to build a frame; it carries no information. The question that decides whether this project is real is whether the generator can go from a cell description to a collision-checked robot program and a PLC sequence with no human writing waypoints — and that is testable on a laptop.

Follow the build journal
Interface spec
Connector pinout, fieldbus and PackML profile frozen
Manifests
Component, module and cell manifests load and validate against the schema
Generator
Runs on a laptop: collision-checked plan, robot program, cycle-time estimate, refusal engine live
Not built yet
The PLC-sequence emitter; the runtime handshake is still simulated I/O
Registries
2 components, 8 modules, 1 cell — plus a web composer under active development
Hardware
Nothing built. Deliberately last: the frame carries no new information

Next step

Tell us about the assembly you keep paying to re-engineer.

Early conversations shape what gets built first. If you have a cell in mind — or a changeover that costs you every quarter — we want to hear the details.

Start a conversation