FAS_StepAlarmReset(nPortNo, iSlaveNo);
// Check input status.
nRtn = FAS_GetIOInput(nPortNo, iSlaveNo, &dwInput);
_ASSERT(nRtn == FMM_OK);
if (dwInput & (STEP_IN_LOGIC_STOP | STEP_IN_LOGIC_PAUSE | STEP_IN_LOGIC_ESTOP))
FAS_SetIOInput(nPortNo, iSlaveNo, 0, STEP_IN_LOGIC_STOP |
STEP_IN_LOGIC_PAUSE | STEP_IN_LOGIC_ESTOP);
// Increase the motor to 15000 pulse.
lIncPos = 15000;
lVelocity = 30000;
nRtn = FAS_MoveSingleAxisIncPos(nPortNo, iSlaveNo, lIncPos, lVelocity);
_ASSERT(nRtn == FMM_OK);
// Stand by until motion command is completely finished.
do
{
Sleep(1);
nRtn = FAS_GetAxisStatus(nPortNo, iSlaveNo, &dwAxisStatus);
_ASSERT(nRtn == FMM_OK);
stAxisStatus.dwValue = dwAxisStatus;
}
while (stAxisStatus.FFLAG_MOTIONING);
// Move the motor to '0'.
lAbsPos = 0;
lVelocity = 20000;
nRtn = FAS_MoveSingleAxisAbsPos(nPortNo, iSlaveNo, lAbsPos, lVelocity);
_ASSERT(nRtn == FMM_OK);
// Stand by until motion command is completely finished
do
{
Sleep(1);
nRtn = FAS_GetAxisStatus(nPortNo, iSlaveNo, &dwAxisStatus);
_ASSERT(nRtn == FMM_OK);
stAxisStatus.dwValue = dwAxisStatus;
}
while (stAxisStatus.FFLAG_MOTIONING);
// Disconnect.
FAS_Close(nPortNo);
}