Mdvsegment move statement, Motion suspend suspend statement, Segment move statement – Lenze PMSS1000 Simple Servo User Manual
Page 66: Motion suspend, Suspend statement

Indexer-Programmer-Manual.pdf REV 1.3
MDV
Segment
Move
Statement
Purpose
MDV defines incremental motion segment by specifying distance and final velocity
(for this segment) in User Units. Acceleration (or deceleration) is calculated
automatically based on this two parameters. This technique allows to create
complicated moves consist of many segments. To execute any move you must
specify at least two segments because at the end of the move final velocity has to be
0. That's why any complicated move consisting of many MDV statements must end
with statement has final velocity argument set to 0. MDV statement doesn't suspend
main program execution. They placed in Motion Queue immediately. If SSi fetches
last segment from Motion Queue with its final velocity non 0 it will generate "Motion
Queue Empty" fault #24. If "S" modifier is used in statement than velocity
acceleration/deceleration will be S-curved as opposed to be linear.
Syntax
MDV <[-]segment distance>,
S[-curve]
optional modifier specifies S-curve acceleration.
See Also
MOVE, MOVEP, MOVEDR, MOVED, MOVEPR ,MOTION SUSPEND, MOTION
RESUME
Example:
{Statements…}
MDV 5, 10
;accelerate to velocity of 10
MDV 10,10
;move 10 user units with velocity of 10
MDV 10,5
;decelerate to velocity of 5
MDV 5,0
;decelerate to velocity 0. (last MDV has to
;have 0 final velocity)
{Statements…}
MOTION
SUSPEND
Suspend
Statement
Purpose
This statement is used to temporarily suspend motion without flashing Motion Queue
content. Motion will be suspended after completion of current move. If Motion
Suspend is executed while executing series of MDV statements motion will be
suspended only after MDV segment with zero final velocity. If command is executed
while Motion Queue empty any motion related statement will be placed in Motion
Queue but not executed until Motion Resume statement allows motion. Any motion
statements without "C" modifier (except MDV statements which never suspend
program) will dead-lock user program. Consider following program:
;Program dead-locks after MOVE statement executed
…{statements}
MOTION SUSPEND
;everything placed in Queue
;after
this
statement
MOVE 20
;placed in Queue and suspend
;program until completed
…{statements}
MOTION RESUME
;never gets here because
66