150 likes | 362 Vues
SPiiPlus Training Class. Multi-Axis Motion. Multi-Axis Motion. The controller commands multi axis motion by generating 3 rd order motion profiles Generates position, velocity, accel / decel , and jerk command every controller cycle Types of multi axis motion: Point to point Jog
E N D
SPiiPlus Training Class Multi-Axis Motion
Multi-Axis Motion • The controller commands multi axis motion by generating 3rd order motion profiles • Generates position, velocity, accel/decel, and jerk command every controller cycle • Types of multi axis motion: • Point to point • Jog • Segmented motion • Prerequisites: Axes must be enabled and commutated (if closed loop operation)
Multi-Axis Point to Point (PTP) Motion • Moves axes to a location which is specified as absolute or relative to current position • Multi-axis PTPcommand format:PTP[/switches] (axis1, axis2, …), position1, position2, …, • Multi-axis motion profile is based on motion params of the leading axis in the PTP command • Unless PTP/m switch is used, in which case motion will not exceed motion params of any axis in the group
Multi-Axis Point to Point (PTP) Motion • Example: PTP (0,1), 1000, 1000 moves axes 0 and 1 to (1000, 1000) • Vector velocity, accel, decel, and jerk based on axis 0 motion params • For example, if VEL(0) = 1, then RVEL0 = RVEL1 = 0.707 when axes are at constant velocity during the move • Make sure motion params for the leading axis are not beyond what is safe for other axes in the group • If they are, use /m switch
Multi-Axis JOG Motion • Accelerate axes to constant vector velocity based on leading axis motion params • Multi-axis JOG command format:JOG[/switches] (axis1, axis2, …), axis 1 dir, axis 2 dir, … [, group velocity] • Example: JOG (0,1), +- • Leading axis is zero • Axis 0 jogs in positive direction (velocity = 0.707*VEL0) • Axis 1 jogs in negative direction (velocity = -0.707*VEL0) • Example: JOG/v (0,1), 10 • Leading axis is zero • Axis 0 jogs in positive direction (velocity = 7.07) • Axis 1 jogs in positive direction (velocity = 7.07)
Change Motion Parameters On-the-fly • Review of IMM command: • IMM is used to change motion parameters VEL, ACC, and DEC during motion • Smoothly transition from current 3rd order motion profile to new 3rd order motion profile • During multi-axis motion, this parameter only has an effect on the leading axis (unless PTP/m is used)
Motion Termination Methods • Terminate motion with a deceleration profile: • HALT command – axes will decelerate to zero according to DECof the leading axis • KILL command – axes will decelerate to zero according to KDEC of the leading axis • Terminate motion without a deceleration profile: • DISABLE command
SegmentedMotion • Moves up to eight axes along a path defined by a sequence of linear and arc segments on plane • Segmented motion involves at least two axes • Segmented motion commands: • XSEG – start segmented motion • LINE – linear segment • ARC1 – arc segment based on center coordinates, final coordinates, and rotation direction • ARC2 – arc segment based on center coordinates and rotation angle • ENDS – terminate segmented motion
SegmentedMotion • The controller holds a motion queue for up to 50 segments (lines and arcs) • If the segmented motion exceeds the queue limit, the program execution will be stalled until the queue is ready to receive the next motion segment • Like multi-axis PTP and JOG, motion is dictated by leading axis motion params
SegmentedMotion • Corner detection • Detection of segments where required motion violates velocity/acceleration limits • Building a velocity profile using multi-segment look-ahead algorithm
SegmentedMotion Syntax XSEG(axis0, axis1), axis0 initial position,axis1 initial position LINE (axis0, axis1), axis0 final position, axis1 final position ENDS (axis0, axis1)
SegmentedMotion Syntax ARC1 (axis0, axis1), axis0 center coord, axis1 center coord, axis0 final coord, axis1 final coord, rotation direction ARC2 (axis0, axis1), axis1 center coord, axis2 center coord, rotation angle (radians)
Exercise 1 Application Description: • A precision laser mill has a two-axis XY laser positioning system • For a particular part, a diamond shapeneeds to be cut by moving axes to each of the points shown: • The laser is triggered by OUT(0).0 • Turn laser on at first point • Turn laser off at final point Method: • Load Programming 12 – Multi-axis motion.prg to the program manager, review code, and execute • Determine vector velocity during the move by querying GVEL from the Communication Terminal
Exercise 2 • Initial laser mill testing has been proven out, it is now desired to increase throughput • The system also needs to handle scaled parts Modify exercise 1 code such that: • Vector motion follows the more aggressive motion params of the leading axis • Diamond coords are scaled by an arbitrary factor, k • View diamond on the scope
Exercise 3 • A new type of part with the following profile needs to be supported Modify exercise 1 code such that: • Uncomment the segmented motion code • Review code, execute and view output on scope