National Instruments NI-Motion User Manual

Page 231

Advertising
background image

Chapter 14

Onboard Programs

© National Instruments Corporation

14-23

NI-Motion User Manual

err = flex_load_target_pos(boardID, axis, 5000,

0xFF);

CheckError;

// Wait for line 1 on port 1 to go active to finish

executing

err = flex_wait_on_event(boardID, NIMC_IO_PORT1,

NIMC_WAIT, NIMC_CONDITION_IO_PORT_MATCH,

(u8)(1<<1)/*Indicates line 1*/, 0, NIMC_MATCH_ALL,

10000 /*time out*/, 0);

CheckError;

// Start the move

err = flex_start(boardID, axis, 0);

CheckError;

// Wait for move to complete

err = flex_wait_on_event(boardID, 0, NIMC_WAIT,

NIMC_CONDITION_MOVE_COMPLETE, (u8)(1<<axis), 0,

NIMC_MATCH_ALL, 1000 /*time out*/, 0);

CheckError;

// Jump unconditionally to label 1 and check IO line

again

err = flex_jump_on_event (boardID, 0,

NIMC_CONDITION_TRUE, 0, 0, NIMC_MATCH_ALL, 1/*label

number*/);

CheckError;

// End Program Storage

err = flex_end_store(boardID, 1);

CheckError;

return

;// Exit the Application

//////////////////////

// Error Handling

nimcHandleError; //NIMCCATCHTHIS:

// Check to see if there were any Modal Errors

if

(csr & NIMC_MODAL_ERROR_MSG){

do

{

//Get the command ID, resource ID, and the

error code of the //modal error from the

error stack on the device

flex_read_error_msg_rtn

(boardID,&commandI

D,&resourceID, &errorCode);

nimcDisplayError(errorCode,commandID,res

ourceID);

Advertising