IO-Link Masterv2.01.01
 
Loading...
Searching...
No Matches
SMI Process Data

Overview

SMI Process Data.

Functions

IOL_FUNC_DECL void IOLM_SMI_vPDInReq (INT8U u8ClientID_p, INT8U u8Port_p)
 Get input data.
 
IOL_FUNC_DECL INT16U IOLM_SMI_u16PDInReqCnf (INT8U u8Port_p, INT16U *pu16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Get input data request and confirmation.
 
IOL_FUNC_DECL void IOLM_SMI_vPDOutReq (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Set output data.
 
IOL_FUNC_DECL INT16U IOLM_SMI_u16PDOutReqCnf (INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Set output data request and confirmation.
 
IOL_FUNC_DECL void IOLM_SMI_vPDInOutReq (INT8U u8ClientID_p, INT8U u8Port_p)
 Get input and set output data.
 
IOL_FUNC_DECL INT16U IOLM_SMI_u16PDInOutReqCnf (INT8U u8Port_p, INT16U *pu16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Get input and output data request and confirmation.
 
IOL_FUNC_DECL void IOLM_SMI_vPDInIQReq (INT8U u8ClientID_p, INT8U u8Port_p)
 Get input data.
 
IOL_FUNC_DECL void IOLM_SMI_vPDOutIQReq (INT8U u8ClientID_p, INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
 Set Output Data.
 

Function Documentation

◆ IOLM_SMI_u16PDInOutReqCnf()

IOL_FUNC_DECL INT16U IOLM_SMI_u16PDInOutReqCnf ( INT8U  u8Port_p,
INT16U pu16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Get input and output data request and confirmation.

This service allows for cyclically reading input and output Process Data to an input buffer and combines request (IOLM_SMI_vPDInOutReq) and confirmation (IOLM_SMI_CBPDInOutCnf).

Parameters
[in]u8Port_pPort ID.
[in,out]pu16ArgBlockLength_pPointer which points to the length of ArgBlock.
[in,out]pu8ArgBlock_pData pointer which points to the PDInOut data (IOLM_SMI_SPDInOut).
Returns
Error as IOL_EErrorType
Example
INT16U u16Length = sizeof(IOLM_SMI_SPDInOut);
INT16U u16Error;
// Get PDIn
u16Error = IOLM_SMI_u16PDInReqCnf(u8Port, &u16Length, (INT8U *)&suPDInOut);
if (u16Error == IOL_eErrorType_NONE)
{
// ToDo: Insert application specific code here
}
uint16_t INT16U
16 bit unsigned integer
Definition IOL_Port_Types.h:70
uint8_t INT8U
8 bit unsigned integer
Definition IOL_Port_Types.h:68
@ IOL_eErrorType_NONE
No error.
Definition IOL_Types.h:560
INT16U IOLM_SMI_u16PDInReqCnf(INT8U u8Port_p, INT16U *pu16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
Get input data request and confirmation.
Definition IOLM_SMI.c:2680
This structure is used for Process Data input and output read back.
Definition IOLM_SMI_Types.h:1033

◆ IOLM_SMI_u16PDInReqCnf()

IOL_FUNC_DECL INT16U IOLM_SMI_u16PDInReqCnf ( INT8U  u8Port_p,
INT16U pu16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Get input data request and confirmation.

This service allows for cyclically reading input Process Data to an input buffer and combines request (IOLM_SMI_vPDInReq) and confirmation (IOLM_SMI_CBPDInCnf).

Parameters
[in]u8Port_pPort ID.
[in,out]pu16ArgBlockLength_pPointer which points to the length of ArgBlock.
[in,out]pu8ArgBlock_pData pointer which points to the PDIn data (IOLM_SMI_SPDIn).
Returns
Error as IOL_EErrorType
Example
INT16U u16Length = sizeof(IOLM_SMI_SPDIn);
INT16U u16Error;
// Get PDIn
u16Error = IOLM_SMI_u16PDInReqCnf(u8Port, &u16Length, (INT8U *)&suPDIn);
if (u16Error == IOL_eErrorType_NONE)
{
// ToDo: Insert application specific code here
}
This structure is used for Process Data input.
Definition IOLM_SMI_Types.h:957

◆ IOLM_SMI_u16PDOutReqCnf()

IOL_FUNC_DECL INT16U IOLM_SMI_u16PDOutReqCnf ( INT8U  u8Port_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Set output data request and confirmation.

This service allows for cyclically writing output Process Data to an output buffer and combines request and confirmation.

Parameters
[in]u8Port_pPort ID.
[in,out]u16ArgBlockLength_pPointer which points to the Length of ArgBlock.
[in,out]pu8ArgBlock_pData pointer which points to the PDOut data (IOLM_SMI_SPDOut).
Returns
Error as IOL_EErrorType
Example
INT16U u16Length = sizeof(IOLM_SMI_SPDOut);
INT16U u16Error;
// Set PDOut
u16Error = IOLM_SMI_u16PDOutReqCnf(u8Port, &u16Length, (INT8U *)&suPDOut);
if (u16Error == IOL_eErrorType_NONE)
{
// ToDo: Insert application specific code here
}
INT16U IOLM_SMI_u16PDOutReqCnf(INT8U u8Port_p, INT16U u16ArgBlockLength_p, INT8U *pu8ArgBlock_p)
Set output data request and confirmation.
Definition IOLM_SMI.c:2802
This structure is used for Process Data output.
Definition IOLM_SMI_Types.h:971

◆ IOLM_SMI_vPDInIQReq()

IOL_FUNC_DECL void IOLM_SMI_vPDInIQReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p 
)

Get input data.

This service allows for cyclically reading input Process Data from an InBuffer containing the value of the input "I" signal (Pin 2 at M12). The answer to the request is the function IOLM_SMI_CBPDInIQCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.

◆ IOLM_SMI_vPDInOutReq()

IOL_FUNC_DECL void IOLM_SMI_vPDInOutReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p 
)

Get input and set output data.

This service allows for periodically reading input from an InBuffer and periodically reading output Process Data from an OutBuffer. The answer to the request is the function IOLM_SMI_CBPDInOutCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.

◆ IOLM_SMI_vPDInReq()

IOL_FUNC_DECL void IOLM_SMI_vPDInReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p 
)

Get input data.

This service allows for cyclically reading input Process Data from an input buffer. The answer to the request is one of these functions: IOLM_SMI_CBPDInCnf

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.

◆ IOLM_SMI_vPDOutIQReq()

IOL_FUNC_DECL void IOLM_SMI_vPDOutIQReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Set Output Data.

This service allows for cyclically writing output Process Data to an OutBuffer containing the value of the output "Q" signal (Pin 2 at M12). The answer to the request is the function IOLM_SMI_CBPDOutIQCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16ArgBlockLength_pLength of ArgBlock.
[in]pu8ArgBlock_pData Pointer which points to the PDOutIQ Data.
Example
IOLM_SMI_SPDOutIQ *psuReq = malloc(sizeof(IOLM_SMI_SPDOutIQ));
// Fill request
psuReq->u16ArgBlockID = IOLM_SMI_ENDIAN_16(IOLM_SMI_eArgBlockID_PDOutIQ);
...
// Send request
IOLM_SMI_vPDOutIQReq(
0, // Client ID
0, // Port
sizeof(IOLM_SMI_SPDOutIQ), // Length
(INT8U *)psuReq
);
// Wait for IOLM_SMI_vPDOutIQCnf
This structure is used for IQ output.
Definition IOLM_SMI_Types.h:997
INT16U u16ArgBlockID
Big endian.
Definition IOLM_SMI_Types.h:998

◆ IOLM_SMI_vPDOutReq()

IOL_FUNC_DECL void IOLM_SMI_vPDOutReq ( INT8U  u8ClientID_p,
INT8U  u8Port_p,
INT16U  u16ArgBlockLength_p,
INT8U pu8ArgBlock_p 
)

Set output data.

This service allows for cyclically writing output Process Data to an output buffer. The answer to the request is the function IOLM_SMI_CBPDOutCnf.

Parameters
[in]u8ClientID_pClient ID.
[in]u8Port_pPort ID.
[in]u16ArgBlockLength_pLength of ArgBlock.
[in]pu8ArgBlock_pData pointer which points to the PDOut data (IOLM_SMI_SPDOut).
Example
IOLM_SMI_SPDOut *psuReq = malloc(sizeof(IOLM_SMI_SPDOut));
// Fill request
psuReq->u16ArgBlockID = IOLM_SMI_ENDIAN_16(IOLM_SMI_eArgBlockID_PDOut);
...
// Send request
IOLM_SMI_vPDOutReq(
0, // Client ID
0, // Port
sizeof(IOLM_SMI_SPDOut), // Length
(INT8U *)psuReq
);
// Wait for IOLM_SMI_CBPDOutCnf
INT16U u16ArgBlockID
Big endian.
Definition IOLM_SMI_Types.h:972