Driving a servo in TIA isn't raw pulses β you create a Technology Object (a configured axis) and command it with tidy MC_ blocks: power it on, send it to a position, jog it, home it. The TO handles the messy ramp maths; you just say "go to 350 mm." First rule, though: no motion until the axis is enabled.
Below is a linear axis β a carriage on a 500 mm rail. The MC_ buttons are your motion program. Notice they're greyed out until you press MC_Power: an un-enabled axis ignores every move, exactly like the real PLCopen state machine. Enable it, set a target, and send MC_MoveAbsolute β the velocity graph draws the accel / cruise / decel ramp the TO generates for you.
That trapezoid on the graph β ramp up, cruise, ramp down β is the axis honouring its configured velocity and acceleration. You never wrote that maths; the Technology Object did, from the move command and the axis limits. (An S7-1500T adds cams and gearing on top of this.)
β‘ MC_Power β enable / disable the axis. The master switch. Nothing else runs until this says enabled.
π― MC_MoveAbsolute β go to a position in the axis's coordinate system (e.g. 350 mm). Needs a valid home first.
π MC_Home β establish the reference point. Until homed, "absolute" positions have no meaning.
βοΈ MC_MoveJog / MC_MoveRelative β nudge continuously while a button is held, or step a fixed distance from here.
You call MC_MoveAbsolute(Position := 350) but the axis sits still and the block reports an error. The drive is healthy. What did you skip?