Sysmac Studio · NJ/NX · PLCopen motion

Motion control

This is where your logic finally moves something. Omron's NJ/NX controllers drive servos with the PLCopen motion function blocks, such as MC_Power, MC_MoveAbsolute and the rest of the MC_ family. Power an axis up and send it somewhere.

⚙️ MC_Power🎯 MC_MoveAbsolute
01 · Drive an axis

Power, then move

You can't move a dead axis. Call MC_Power first to enable it (watch Status go true), then MC_MoveAbsolute to send it to a target position. Try moving before powering and the command is rejected.

🟦
Enabled
75
02 · The pattern

Every MC_ block, same shape

pwr(Axis := Axis1, Enable := TRUE);

IF pwr.Status THEN
  mv(Axis     := Axis1,
     Execute  := go,
     Position := 75.0,
     Velocity := 200.0);
END_IF;
// mv.Done flags arrival

🔁 Rising-edge Execute. Every motion FB that has an Execute input fires on a rising edge of Execute, so set it false, then true, to launch a new move. The block raises Busy, then Done (or Error).

📐 Absolute vs relative. MC_MoveAbsolute goes to a coordinate; MC_MoveRelative moves a set distance from wherever the axis is now. The axis is the same; only the way you give the target changes.

03 · Check yourself

One quick question

You call MC_MoveAbsolute but the axis hasn't been powered. What happens?