Hi,
i currently try to finalize the homing_comp for pokeys. it seem to basically work, but at the end where the sychronized axes should finish their homing. they are still shown as unhomed. (sometimes one of them got marked homed but never both of them)
Somehow it seems that i'm missing something, but i cannot figure out if i need to set a HAL flag or missed a step which is required to be done to finalize overall homing.
Can some one please point me in the direction where to look at?
[TRAJ]
COORDINATES = XXYZ
[JOINT_0]
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -3
[JOINT_1]
HOME_OFFSET = 4.100000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -3
[JOINT_2]
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = -3
HOME_LATCH_VEL = 1
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
[JOINT_3]
HOME_OFFSET = 0.5
HOME_SEARCH_VEL = 3
HOME_LATCH_VEL = 1
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
if it is required my home_comp can be found here
github.com/zarfld/LinuxCnc_PokeysLibComp...pokeys_homecomp.comp
it basically comminicates with pokeys.comp by a status and a command signal using following enumerations for each joint seperately
typedef enum
{
PK_PEAxisState_axSTOPPED = 0, // Axis is stopped
PK_PEAxisState_axREADY = 1, // Axis ready
PK_PEAxisState_axRUNNING = 2, // Axis is running
PK_PEAxisState_axHOMING_RESETTING = 8, // Stopping the axis to reset the position counters
PK_PEAxisState_axHOMING_BACKING_OFF = 9, // Backing off switch
PK_PEAxisState_axHOME = 10, // Axis is homed
PK_PEAxisState_axHOMINGSTART = 11, // Homing procedure is starting on axis
PK_PEAxisState_axHOMINGSEARCH = 12, // Homing procedure first step - going to home
PK_PEAxisState_axHOMINGBACK = 13, // Homing procedure second step - slow homing
PK_PEAxisState_axPROBED = 14, // Probing completed for this axis
PK_PEAxisState_axPROBESTART = 15, // Probing procedure is starting on axis
PK_PEAxisState_axPROBESEARCH = 16, // Probing procedure - probing
PK_PEAxisState_axERROR = 20, // Axis error
PK_PEAxisState_axLIMIT = 30 // Axis limit tripped
} pokeys_home_state_t;
typedef enum
{
PK_PEAxisCommand_axIDLE = 0, // Axis in IDLE
PK_PEAxisCommand_axHOMINGSTART = 1, // Start Homing procedure
PK_PEAxisCommand_axHOMINGCANCEL = 2, // Cancel Homing procedure
PK_PEAxisCommand_axHOMINGFINALIZE = 3, // Finish Homing procedure
} pokeys_home_command_t;