MPIUserLimitConfig

Declaration

 typedef struct MPIUserLimitConfig {
    MPIUserLimitTrigger trigger;
    MPIUserLimitOutput  output;

    MPIAction           action;
    int32_t             actionAxis;
    MPI_BOOL            generateEvent;

    MPI_BOOL            enabled;
    MPI_BOOL            foreground;
} MPIUserLimitConfig;

 

Required Header: stdmpi.h
Change History: Added in 04.00.

Description

MPIUserLimitConfig sets a user limit's configuration using data from the structure pointed to by config.

trigger Structure to configure the trigger conditions for the user limit.
output Structure to configure the output stage of the user limit.
action The action to be associated with the user limit.
actionAxis The axis number of the axis which will be affected by the action.
generateEvent Determines whether the user limit will generate an event that will be handled by the controller’s event mechanism
enabled Determines if the user limit is enabled after configuration.
foreground Determines if the user limit will be processed in the foreground (requires special firmware).

Sample Code

MPI_RESULT         returnValue; 
MPIUserLimit       userLimit;
MPIUserLimitConfig userEventConfig;

    /* ... */

returnValue = mpiUserLimitConfigDefault(&userEventConfig);

msgCHECK(returnValue);

/* Generate an event */

userEventConfig.generateEvent = TRUE;     

/* Use a single condition */

userEventConfig.trigger.type = MPIUserLimitTriggerTypeSINGLE_CONDITION;

/* Trigger when axis 5's actual position exceeds 300000 */

userEventConfig.trigger.condition[0].type = MPIUserLimitConditionTypeAXIS_ACTUAL_POSITION;
userEventConfig.trigger.condition[0].data.axisActualPosition.axisNumber = 5;
userEventConfig.trigger.condition[0].data.axisActualPosition.position   = 300000;
userEventConfig.trigger.condition[0].data.axisActualPosition.logic      = MPIUserLimitLogicGT;

/* Setup output block:  Set a SynqNet I/O Node's analog output. */

/* Set node 3's analog channel 7 to a value of 1234             */

userEventConfig.output.type = MPIUserLimitOutputTypeSQNODE_ANALOG_OUT;
userEventConfig.output.data.sqNodeAnalogOut.nodeNumber   = 3;
userEventConfig.output.data.sqNodeAnalogOut.channel      = 7;
userEventConfig.output.data.sqNodeAnalogOut.newValue.i16 = 1234;

returnValue = mpiUserLimitConfigSet(userLimit, &userEventConfig); 

msgCHECK(returnValue);

See Also

mpiUserLimitConfigGet | mpiUserLimitConfigSet | mpiUserLimitConfigDefault