SoftMotion runs a full motion stack inside the standard CODESYS runtime β the PLCopen MC_ blocks, on a normal controller, driving servo drives over the same fieldbus (EtherCAT, usually). No dedicated motion CPU. Create a SoftMotion axis, enable it with MC_Power, and command it with MC_MoveAbsolute. Same first rule everywhere: enable before you move.
A SoftMotion axis on a 400 mm rail. The MC_ blocks are greyed until you fire MC_Power β an axis in Standstill ignores moves. Power it, set a target, and fire MC_MoveAbsolute: the velocity plot draws the trapezoid SoftMotion generates from your velocity & acceleration limits. MC_MoveAbsolute needs a homed axis (MC_Home).
Because it's software, SoftMotion scales from a single axis to coordinated multi-axis, CAM profiles and even CNC (G-code) β all on a standard CODESYS target with an EtherCAT drive. The MC_ block names are the PLCopen standard, identical in spirit to the Siemens and Rockwell motion you've seen.
You call MC_MoveAbsolute but the axis stays put and the block sets an error. The drive is healthy. What did you skip?