National Instruments NI-Motion User Manual

Page 240

Advertising
background image

Chapter 14

Onboard Programs

NI-Motion User Manual

14-32

ni.com

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;

//------------------------------------------------

// Host program. This programs monitors the 13th bit

in the move //complete status register and records

the position the axis is //going to move to.

//------------------------------------------------

do

{

// Check the move complete status/following

error/axis off //status

err = flex_read_axis_status_rtn(boardID, axis,

&axisStatus);

CheckError;

// 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)

{

err = csr & NIMC_MODAL_ERROR_MSG;

CheckError;

}

// Read the move complete status register and once

the 13th bit //is set; reset the bit and read the

target position.

err = flex_read_mcs_rtn(boardID,

&moveCompleteStatus);

CheckError;

if

(moveCompleteStatus & (1<<13)){

i32

currentTargetPosition;

// Reset the 13th bit in the move complete

status register

err = flex_set_status_momo(boardID, 0,

0x20);

CheckError;

Advertising