For AI agents: the Markdown edition of this page is system.md; the site index for agents is llms.txt.
The system
A Direct Motion control is a Windows PC and a set of DM boards. The PC runs your program, plans the motion and closes every servo loop. The boards switch the motor power, read the encoders and handle the inputs and outputs. There is no separate motion controller and no PLC.
The parts
| Part | Job | Page |
|---|---|---|
| Link card | Sits in a PCIe slot, or at the far end of an OCuLink cable. Gives up to 16 serial links, one per board. | power and IO |
| Power board | Takes the AC line, charges the shared DC bus through a precharge relay, closes the main relay, switches the brake resistor, drops everything on e-stop. One per machine. | power and IO |
| Amplifiers | One per motor. 30 A and 75 A for axes, 150 A and 300 A for spindles. Each reads its motor's encoder and returns position on the same link. | amplifiers |
| IO boards | 16-input boards, a 16-relay output board, and a multi-IO board with a handwheel input. | power and IO |
| Motors | AC servo and induction motors from other makers, set up by one-touch setup. | motors |
| DMSerialMotion | The .NET library your program calls, from C# or any other .NET language. | software |
What runs where
- On each board, an FPGA does the fast work: PWM, current sampling on all three phases, encoder reading, fault lines. The PC exchanges one packet with each board every cycle.
- In the kernel driver, the servo loop runs every 50 µs on a CPU core set aside for it. It is Microsoft-signed and ships with the library, as a matched pair.
- In your program, you call the library to home, jog, run programs, read IO and record traces. Your code is ordinary .NET code in the language you choose; the planner fills a buffer ahead of the driver, so your code never has to hit a deadline.
Built in
- Field-oriented control for servo and induction motors, with per-phase dead-time compensation and, for induction spindles, field weakening above base speed.
- One-touch setup. Pick the motor from a catalog of 1,180, or type the nameplate. Setup finds the poles and commutation, measures resistance and inductance where the catalog lacks them, sets current limits and tunes the servo loop.
- Tracing. A 20 kHz record per axis of commanded and actual position, following error, phase currents, bus voltage, temperatures and fault bits, kept on a fault or on demand.
- Protection. Module fault lines decoded into a cause, an over-temperature stop at 85 °C, timed bus precharge, encoder error counting, AC range and ground checks on the power board.
- Fleet support. A machine can report its software version, settings and traces to DM, and DM can schedule its updates.