top of page

13. Extended axis

13.1. Set 485 extended axis parameters

New in version C#SDK-v1.0.6.

/**
* @brief Set 485 extended axis parameters
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @param [in] servoCompany Servo driver manufacturer, 1-Dynatech
* @param [in] servoModel Servo driver model, 1-FD100-750C
* @param [in] servoSoftVersion Servo driver software version, 1-V1.0
* @param [in] servoResolution Encoder resolution
* @param [in] axisMechTransRatio Mechanical transmission ratio
* @return Error code
*/
int AuxServoSetParam(int servoId, int servoCompany, int servoModel, int servoSoftVersion, int servoResolution, double axisMechTransRatio);

13.2. Get 485 extended axis configuration parameters

New in version C#SDK-v1.0.6.

/**
* @brief Get 485 extended axis configuration parameters
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @param [out] servoCompany Servo driver manufacturer, 1-Dynatec
* @param [out] servoModel Servo drive model, 1-FD100-750C
* @param [out] servoSoftVersion Servo drive software version, 1-V1.0
* @param [out] servoResolution Encoder resolution
* @param [out] axisMechTransRatio Mechanical transmission ratio
* @return Error code
*/
int AuxServoGetParam(int servoId, ref int servoCompany, ref int servoModel, ref int servoSoftVersion, ref int servoResolution, ref double axisMechTransRatio);

13.3. Set 485 extended axis enable/disable

New in version C#SDK-v1.0.6.

* @brief Set 485 extension axis enable/disable
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @param [in] status Enable status, 0-disable, 1-enable
* @return Error code
*/
int AuxServoEnable(int servoId, int status);

13.4. Set 485 extension axis control mode

New in version C#SDK-v1.0.6.

/**
* @brief Set 485 extension axis control mode
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @param [in] mode Control mode, 0-position mode, 1-speed mode
* @return Error code
*/
int AuxServoSetControlMode(int servoId, int mode);

13.5. Set the target position of the 485 extended axis (position mode)

New in version C#SDK-v1.0.6.

/**
* @brief Set the target position of the 485 extended axis (position mode)
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @param [in] pos Target position, mm or °
* @param [in] speed Target speed, mm/s or °/s
* @return Error code
*/
int AuxServoSetTargetPos(int servoId, double pos, double speed);

13.6. Set the target speed of the 485 extended axis (speed mode)

New in version C#SDK-v1.0.6.

/**
* @brief Set the target speed of the 485 extended axis (speed mode)
* @param [in] servoId Servo driver ID, range [1-15], corresponding to the slave ID
* @param [in] speed Target speed, mm/s or °/s
* @return Error code
*/
int AuxServoSetTargetSpeed(int servoId, double speed);

13.7. Set the target torque of the 485 extended axis (torque mode) – Not available yet

New in version C#SDK-v1.0.6.

/**
* @brief Set the target torque of the 485 extended axis (torque mode) -- not yet available
* @param [in] servoId Servo driver ID, range [1-15], corresponding to the slave ID
* @param [in] torque Target torque, Nm
* @return Error code
*/
int AuxServoSetTargetTorque(int servoId, double torque);

13.8. Set 485 extended axis zero

New in version C#SDK-v1.0.6.

/**
* @brief Set 485 extended axis zero
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @param [in] mode Home mode, 1-current position home; 2-negative limit home; 3-positive limit home
* @param [in] searchVel Home speed, mm/s or °/s
* @param [in] latchVel Latching speed, mm/s or °/s
* @return Error code
*/
int AuxServoHoming(int servoId, int mode, double searchVel, double latchVel);

13.9. Clear 485 extended axis error information

New in version C#SDK-v1.0.6.

/**
* @brief Clear 485 extended axis error information
* @param [in] servoId Servo driver ID, range [1-15], corresponding to slave ID
* @return Error code
*/
int AuxServoClearError(int servoId);

13.10. Get 485 extended axis servo status

New in version C#SDK-v1.0.6.

/**
* @brief Get the status of the 485 extended axis servo
* @param [in] servoId Servo driver ID, range [1-15], corresponding to the slave ID
* @param [out] servoErrCode Servo driver error code
* @param [out] servoState Servo driver status  bit0: 0-Disabled; 1-Enabled;  bit1: 0-Not moving; 1-Moving;  bit2 0-Positive limit not triggered; 1-Positive limit triggered; bit3 0-Negative limit not triggered; 1-Negative limit triggered; bit4 0-Positioning not completed;1 - Positioning complete;  bit5: 0 - Not zeroed; 1 - Zeroing complete
* @param [out] servoPos Servo current position mm or °
* @param [out] servoSpeed Servo current speed mm/s or °/s
* @param [out] servoTorque Servo current torque Nm
* @return Error code
*/
int AuxServoGetStatus(int servoId, ref int servoErrCode, ref int servoState, ref double servoPos, ref double servoSpeed, ref double servoTorque);

13.11. Set the 485 extended axis data axis number in the status feedback

New in version C#SDK-v1.0.6.

/**
* @brief Set the data axis number of the 485 extended axis in the status feedback
* @param [in] servoId Servo driver ID, range [1-15], corresponding to the slave ID
* @return Error code
*/
int AuxServosetStatusID(int servoId);

13.12. Set the acceleration and deceleration of the 485 extended axis

/**
* @brief Set the acceleration and deceleration of the 485 extended axis
* @param [in] acc 485 extended axis acceleration
* @param [in] dec 485 extended axis deceleration
* @return  Error code
*/
int AuxServoSetAcc(double acc, double dec);

13.13. Set 485 extended axis emergency stop acceleration and deceleration

/**
* @brief Set 485 extended axis emergency stop acceleration and deceleration
* @param [in] acc 485 extended axis emergency stop acceleration
* @param [in] dec 485 extended axis emergency stop deceleration
* @return  Error code
*/
int AuxServoSetEmergencyStopAcc(double acc, double dec);

13.14. Get 485 extended axis movement acceleration and deceleration

/**
* @brief Get 485 extended axis motion acceleration and deceleration
* @param [out] acc 485 extended axis motion acceleration
* @param [out] dec 485 extended axis motion deceleration
* @return  Error code
*/
int AuxServoGetAcc(ref double acc, ref double dec);

13.15. Get 485 extended axis emergency stop acceleration and deceleration

/**
* @brief Get 485 extended axis emergency stop acceleration and deceleration
* @param [out] acc 485 extended axis emergency stop acceleration
* @param [out] dec 485 extended axis emergency stop deceleration
* @return  Error code
*/
int AuxServoGetEmergencyStopAcc(ref double acc, ref double dec);

13.16. Extended axis control code example

New in version C#SDK-V1.1.3: Web-3.8.2

private void button64_Click(object sender, EventArgs e)
{
    int retval = robot.AuxServoSetParam(1, 1, 1, 1, 131072, 15.45);
    Console.WriteLine($"AuxServoSetParam is: {retval}");

    int servoCompany = 0;
    int servoModel = 0;
    int servoSoftVersion = 0;
    int servoResolution = 0;
    double axisMechTransRatio = 0;
    retval = robot.AuxServoGetParam(1, ref servoCompany, ref servoModel, ref servoSoftVersion, ref servoResolution, ref axisMechTransRatio);
    Console.WriteLine($"servoCompany {servoCompany}\n" +
        $"servoModel {servoModel}\n" +
        $"servoSoftVersion {servoSoftVersion}\n" +
        $"servoResolution {servoResolution}\n" +
        $"axisMechTransRatio {axisMechTransRatio}\n");

    retval = robot.AuxServoSetParam(1, 10, 11, 12, 13, 14);
    Console.WriteLine($"AuxServoSetParam is: {retval}");

    retval = robot.AuxServoGetParam(1, ref servoCompany, ref servoModel, ref servoSoftVersion, ref servoResolution, ref axisMechTransRatio);
    Console.WriteLine($"servoCompany {servoCompany}\n" +
        $"servoModel {servoModel}\n" +
        $"servoSoftVersion {servoSoftVersion}\n" +
        $"servoResolution {servoResolution}\n" +
        $"axisMechTransRatio {axisMechTransRatio}\n");

    retval = robot.AuxServoSetParam(1, 1, 1, 1, 131072, 36);
    Console.WriteLine($"AuxServoSetParam is: {retval}");
    Thread.Sleep(3000);

    robot.AuxServoSetAcc(3000, 3000);
    robot.AuxServoSetEmergencyStopAcc(5000, 5000);
    Thread.Sleep(1000);
    double emagacc = 0, acc = 0;
    double emagdec = 0, dec = 0;
    robot.AuxServoGetEmergencyStopAcc(ref emagacc, ref emagdec);
    Console.WriteLine($"emergency acc is {emagacc}  dec is {emagdec}");
    robot.AuxServoGetAcc(ref acc, ref dec);
    Console.WriteLine($"acc is {acc}  dec is {dec}");

    robot.AuxServoSetControlMode(1, 0);
    Thread.Sleep(2000);

    retval = robot.AuxServoEnable(1, 0);
    Console.WriteLine($"AuxServoEnable disenable {retval}");
    Thread.Sleep(1000);
    int servoerrcode = 0;
    int servoErrCode = 0;
    int servoState = 0;
    double servoPos = 0;
    double servoSpeed = 0;
    double servoTorque = 0;
    retval = robot.AuxServoGetStatus(1, ref servoErrCode, ref servoState, ref servoPos, ref servoSpeed, ref servoTorque);
    Console.WriteLine($"AuxServoGetStatus servoState {servoState}");
    Thread.Sleep(1000);

    retval = robot.AuxServoEnable(1, 1);
    Console.WriteLine($"AuxServoEnable enable {retval}");
    Thread.Sleep(1000);
    retval = robot.AuxServoGetStatus(1, ref servoErrCode, ref servoState, ref servoPos, ref servoSpeed, ref servoTorque);
    Console.WriteLine($"AuxServoGetStatus servoState {servoState}");
    Thread.Sleep(1000);

    retval = robot.AuxServoHoming(1, 1, 5, 1);
    Console.WriteLine($"AuxServoHoming {retval}");
    Thread.Sleep(3000);

    retval = robot.AuxServoSetTargetPos(1, 200, 30);
    Console.WriteLine($"AuxServoSetTargetPos {retval}");
    Thread.Sleep(1000);
    retval = robot.AuxServoGetStatus(1, ref servoErrCode, ref servoState, ref servoPos, ref servoSpeed, ref servoTorque);
    Console.WriteLine($"AuxServoGetStatus servoSpeed {servoSpeed}");
    Thread.Sleep(8000);

    robot.AuxServoSetControlMode(1, 1);
    Thread.Sleep(2000);

    robot.AuxServoEnable(1, 0);
    Thread.Sleep(1000);
    robot.AuxServoEnable(1, 1);
    Thread.Sleep(1000);
    robot.AuxServoSetTargetSpeed(1, 100, 80);

    Thread.Sleep(5000);
    robot.AuxServoSetTargetSpeed(1, 0, 80);
}

robotic arm
FAIRINO ROBOTIC ARMS

Contact

Location: 10637 Scripps Summit Court,

San Diego, CA. 92131
Phone: (619) 333-FAIR
Email: hello@fairino.us

© 2023 Fairino US official site Proudly created By G2T

bottom of page