National Instruments NI-Motion User Manual

Page 111

Advertising
background image

Chapter 8

Reference Moves

© National Instruments Corporation

8-5

NI-Motion User Manual

//Wait for Find Reference to complete on the axis AND

also check //for modal errors at the same time

do

{

//Read the current position of axis

err = flex_read_pos_rtn(boardID, axis,

&position);

CheckError;

//Display the current position of axis

printf("\rAxis %d position: %10d", axis,

position);

//Check if the axis has stopped because of axis

off or following //error

err = flex_read_axis_status_rtn(boardID, axis,

&axisStatus);

//Check if the reference has finished finding

err = flex_check_reference(boardID, axis, 0,

&found, &finding);

CheckError;

//Read the communication status register - check

the modal //error bit

err = flex_read_csr_rtn(boardID, &csr);

CheckError;

if

(csr & NIMC_MODAL_ERROR_MSG)

{

flex_stop_motion

(boardID,NIMC_AXIS1,

NIMC_DECEL_STOP, 0);//Stop the Motion

err = csr & NIMC_MODAL_ERROR_MSG;

CheckError;

}

//test for find reference complete, following

error, or axis //off status

}while (!(axisStatus & (NIMC_FOLLOWING_ERROR_BIT |

NIMC_AXIS_OFF_BIT)) && finding);

printf("\nAxis %d position: %10d", axis, position);

if

(found)

printf("\rAxis found reference");

else

printf("\rAxis did not find reference");

printf("\n\nFinished\n");

return

;// Exit the Application

Advertising