Velocity Profiling
This AeroScript program configures wait mode and velocity blending to show velocity-profiled motion.
// Velocity Profiling Example: // Demonstrates coordinated motion with acceleration limiting on two axes. program // Setup program flow to not continue until the axes are in position. // Setup the move distances to be in incremental (not absolute) coordinates. SetupTaskWaitMode(WaitMode.InPosition) SetupTaskTargetMode(TargetMode.Incremental) // Setup coordinated acceleration/deceleration ramping to use a linear ramp shape // at a ramp rate of 2000 units/s/s. SetupCoordinatedRampType(RampType.Linear) SetupCoordinatedRampValue(RampMode.Rate, 2000) // Limit the per-axis acceleration at non-tangent intersections and around // circular portions of the move profile to 2000 units/s/s. SetupCoordinatedAccelLimit(2000, 2000) // Create an array variable that specifies 2 axes by axis index. var $axes[] as axis = [@0, @1] // Enable and home the axes. Enable($axes) Home($axes) // Enable velocity blending so that the controller does not decelerate to zero // velocity between each individual move. VelocityBlendingOn() // Perform coordinated motion on the 1st axis to incremental distances // 20, 20, -20, 20 at different vector speeds. MoveLinear($axes[0], 20, 5) MoveLinear($axes[0], 20, 15) MoveLinear($axes[0], -20, 8.6) MoveLinear($axes[0], 20, 10) // Force the previous move to zero velocity and wait for 100ms. Dwell(0.1) // Perform coordinated motion on 2 axes to different incremental distances // and at different vector speeds. MoveLinear($axes, [10, 20], 5) MoveLinear($axes, [0, -25], 15) MoveLinear($axes, [15, 4], 10) MoveLinear($axes, [-10, -20], 15) // Disable velocity blending after the last move. VelocityBlendingOff() // Disable the axes. Disable($axes) end