Basics for getting up and running with Axis motion in RapidCode for Python.
Learn how to command basic Axis motion in Python.
""" Sample application that demonstrates basic Axis motion.
"""
import sys
from _imports import RapidCode, helpers, time, config, constants
print("⬤ Axis Basic Motion")
exit_code = 0
DISTANCE = 2
VELOCITY = 10
ACCELERATION = 5
DECELERATION = 3
JERK_PERCENTAGE = 50
AXIS_INDEX = 0
def print_status(axis: RapidCode.Axis):
print(f"State: {helpers.enum_to_name(axis.StateGet(), 'RSIState')}, Position: {axis.CommandPositionGet():.5f}, Velocity: {axis.CommandVelocityGet():.5f}, Acceleration: {axis.CommandAccelGet():.5f}")
creation_params: RapidCode.CreationParameters = helpers.get_creation_parameters()
controller: RapidCode.MotionController = RapidCode.MotionController.Create(creation_params)
try:
helpers.check_errors(controller)
print(f"This object is a {type(controller)}")
config.setup_controller(controller, numAxes=AXIS_INDEX + 1)
axis: RapidCode.Axis = controller.AxisGet(AXIS_INDEX)
helpers.check_errors(axis)
axis.ClearFaults()
enable_ms = axis.AmpEnableSet(True, 750)
print(f'Amplifier took {enable_ms}ms to enable')
helpers.verify_idle_state(axis)
print_status(axis)
axis.MoveRelative(DISTANCE, VELOCITY, ACCELERATION, DECELERATION, JERK_PERCENTAGE)
while not axis.MotionDoneGet():
print_status(axis)
time.sleep(0.1)
print_status(axis)
helpers.verify_idle_state(axis)
exit_code = constants.EXIT_SUCCESS
except Exception as e:
print(f"❌ Error: {e}")
exit_code = constants.EXIT_FAILURE
finally:
controller.Delete()
sys.exit(exit_code)