MPIUserLimitOutputData

Declaration

typedef struct MPIUserLimitOutputData {
    MPIUserLimitOutputMotorIo               motorGeneralOut;
    MPIUserLimitOutputControllerDigitalIo   controlDigitalOut;
    MPIUserLimitOutputSqNodeDigitalIo       sqNodeDigitalOut;
    MPIUserLimitOutputSqNodeAnalogIo        sqNodeAnalogOut;
    MPIUserLimitOutputUserBuffer            userBuffer;
    MPIUserLimitOutputCustom                custom;
} MPIUserLimitOutputData;

 

Required Header: stdmpi.h

Change History: Added in 04.00.

Description

MPIUserLimitOutputData represents the output block data for a given user limit output type.

Member
AssociatedType (MPIUserLimitConditionType...)
Condition Triggers Off Of...
generalOut
GENERAL_OUT
Motor general-purpose digital outputs.
controlDigitalOut
CONTROL_DIGITAL_OUT
The controller digital outputs.
sqNodeDigitalOut
SQNODE_DIGITAL_OUT
A SynqNet node’s digital outputs.
sqNodeAnalogOut
SQNODE_ANALOG_OUT
A SynqNet node’s analog outputs.
userBuffer
USER_BUFFER
A user buffer value.
custom
CUSTOM
A custom limit.

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

MPIUserLimitOutput | MPIUserLimitOutputType