National Instruments NI-Motion User Manual

Page 120

Advertising
background image

Chapter 9

Blending Moves

NI-Motion User Manual

9-8

ni.com

err = flex_set_op_mode(boardID, vectorSpace,

NIMC_ABSOLUTE_POSITION);

CheckError;

// Load the first straight-line segments to position

5000, 5000

err = flex_load_vs_pos(boardID, vectorSpace, 5000,

5000, 0, 0xFF);

CheckError;

// Start the move

err = flex_start(boardID, vectorSpace, 0);

CheckError;

// Load Circular Arc - making a counter-clockwise

semi-circle

err = flex_load_circular_arc (boardID, vectorSpace,

5000/*radius*/, 0.0/*startAngle*/,

180.0/*travelAngle*/, 0xFF);

CheckError;

// Blend the move

err = flex_blend(boardID, vectorSpace, 0);

CheckError;

// Wait for blend to complete before loading the next

segment

do

{

axisStatus = 0;

// Check the blend complete status

err = flex_check_blend_complete_status(boardID,

vectorSpace, 0, &complete);

CheckError;

// Check the following error/axis off status for axis

1

err = flex_read_axis_status_rtn(boardID,

NIMC_AXIS1, &status);

CheckError;

axisStatus |= status;

// Check the following error/axis off status for axis

2

err = flex_read_axis_status_rtn(boardID,

NIMC_AXIS2, &status);

CheckError;

axisStatus |= status;

//Read the communication status register and check

the modal //errors

err = flex_read_csr_rtn(boardID, &csr);

CheckError;

//Check the modal errors

if

(csr & NIMC_MODAL_ERROR_MSG)

Advertising