Chapter 14 Onboard Programs
© National Instruments Corporation 14-13 NI-Motion User Manual
// Set the board ID
boardID = 1;
// Set the axis number
axis = NIMC_AXIS1;
////////////////////////////////
// Begin onboard program storage - program number 1
err = flex_begin_store(boardID, 1);
CheckError;
// Load Velocity in RPM
err = flex_load_rpm(boardID, axis, 100.00, 0xFF);
CheckError;
// Load Acceleration and Deceleration in RPS/sec
err = flex_load_rpsps(boardID, axis, NIMC_BOTH,
50.00, 0xFF);
CheckError;
// Set the operation mode to relative
err = flex_set_op_mode(boardID, axis,
NIMC_RELATIVE_POSITION);
CheckError;
// Load Target Position to move relative 5,000
counts(steps)
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;
// End Program Storage
err = flex_end_store(boardID, 1);