IO-Link Master  1.03.03
IO-Link Master Types

Overview

IO-Link Master Types.

Types used for the Master implementation.

Data Structures

struct  IOLM_SMsgHandlerConfig
 This structure stores the message handler configuration. More...
 
struct  IOLM_SDSObject
 This structure defines Data Storage objects. More...
 
struct  IOLM_SDSContent
 This structure defines the Data Storage content. More...
 
struct  IOLM_SPortConfig
 This structure is used for the desired port mode. More...
 
struct  IOLM_SRealPortConfig
 This structure is used for the actual used communication parameters. More...
 
struct  IOLM_SPDBufferCtrl
 
struct  IOLM_SPDBuffer
 This structure is used for Process Data buffer handling. More...
 
struct  IOLM_SPageRequest
 This structure stores the data of a page request. More...
 

Macros

#define IOLM_SOFTTIMER_COUNT   ((IOLM_PORT_COUNT * 2) + 2)
 Number of soft timer resources. Used for wake-up retry or ISDU timeout.
 
#define IOLM_MAX_PD_SIZE   32
 Maximum number of Process Data bytes.
 
#define IOLM_MAX_RETRIES   2
 Number of Master message retries.
 
#define IOLM_MAX_OD_SIZE   32
 Maximum number of OD bytes per message.
 
#define IOLM_MAX_WAKE_RETRY   3
 Maximum number of wake-up retries.
 
#define IOLM_MAX_EVENT_ENTRIES   6
 Maximum number of event entries.
 
#define IOLM_DS_MAX_SIZE   2048
 Maximum size of DS content.
 
#define IOLM_DS_EMPTY   IOLM_SDSHeaderSize
 Size of DS header.
 
#define IOLM_MAX_ISDU_LENGTH   (238)
 Maximum length of ISDU frame (data + header + checksum).
 
#define IOLM_WAKETIMEOUT   (IOL_T_REN_US+IOL_BIT_USEC(IOL_T_TDMT_BIT,IOL_BAUD_COM3)-IOLM_WAKEUP_PULSE_TIMER_US)
 Timeout for wake-up retry.
 
#define IOLM_MIN_STARTUPCYCLE(baudrate)   (IOL_BIT_USEC(IOL_MSEQ_BITS(2,2), baudrate) + IOLM_MASTER_PROCESSING_TIME)
 Minimum time for IOL startup cycle.
 
#define IOLM_NUM_OF_JOBS   (IOLM_PORT_COUNT * 5)
 Maximum number of jobs.
 
#define IOLM_MIN_TIMER_INTERVAL_US   100
 Minimum time interval for IO-Link timers.
 
#define IOLM_PORT_READY_PULSE_MIN_DURATION_US   400U
 
#define IOLM_PORT_READY_PULSE_MAX_DURATION_US   1100U
 
#define IOLM_PORT_READY_PULSE_TIMEOUT_MS   5000U
 
#define IOLM_PORT_READY_PULSE_POWER_OFF_ON_GAP_MS   1000U
 
#define IOLM_SDSHeaderSize   (sizeof(IOLM_SDSContent)-IOLM_DS_MAX_SIZE)
 

Enumerations

enum  IOLM_EModeHState {
  IOLM_eModeHState_IDLE = 0, IOLM_eModeHState_WURQ, IOLM_eModeHState_ComRequestCOM3, IOLM_eModeHState_ComRequestCOM2,
  IOLM_eModeHState_ComRequestCOM1, IOLM_eModeHState_Retry, IOLM_eModeHState_EstablishCom, IOLM_eModeHState_STARTUP,
  IOLM_eModeHState_PREOPERATE, IOLM_eModeHState_OPERATE
}
 DL-mode handler states. More...
 
enum  IOLM_EODHState { IOLM_eODHState_Inactive = 0, IOLM_eODHState_ISDU, IOLM_eODHState_COMMAND, IOLM_eODHState_EVENT }
 OD handler states.
 
enum  IOLM_EISDUState {
  IOLM_eISDUState_Idle = 0, IOLM_eISDUState_Page, IOLM_eISDUState_ISDURequest, IOLM_eISDUState_ISDUWait,
  IOLM_eISDUState_ISDUError, IOLM_eISDUState_ISDUResponse
}
 ISDU handler states.
 
enum  IOLM_EMHMode {
  IOLM_eMHMode_IDLE = 0, IOLM_eMHMode_COMx, IOLM_eMHMode_STARTUP, IOLM_eMHMode_PREOPERATE,
  IOLM_eMHMode_OPERATE
}
 This enumeration indicates the change mode of the message handler.
 
enum  IOLM_ESMState {
  IOLM_eSMState_PortInactive = 0, IOLM_eSMState_WaitonDLStartup, IOLM_eSMState_Pairing, IOLM_eSMState_Unpairing,
  IOLM_eSMState_Disconnect, IOLM_eSMState_ReadWirelessParam, IOLM_eSMState_WriteWirelessParam, IOLM_eSMState_ReadComParameter,
  IOLM_eSMState_ReadComParameter2, IOLM_eSMState_CheckCompV10, IOLM_eSMState_CheckVxy, IOLM_eSMState_CheckCompVxy,
  IOLM_eSMState_RestartDevice, IOLM_eSMState_WaitonDLPreoperate, IOLM_eSMState_CheckSerNum, IOLM_eSMState_DataStorage,
  IOLM_eSMState_Wait, IOLM_eSMState_MasterCycle, IOLM_eSMState_SM_Operate, IOLM_eSMState_InspectionFault,
  IOLM_eSMState_WaitonDLOperate, IOLM_eSMState_DIDO, IOLM_eSMState_WaitOnReadyPulse, IOLM_eSMState_WaitOnAuthentication,
  IOLM_eSMState_PortPowerOff
}
 This enumeration indicates the SM states.
 
enum  IOLM_EPDState { IOLM_ePDState_Inactive = 0, IOLM_ePDState_PDSingle, IOLM_ePDState_PDInInterleave, IOLM_ePDState_PDOutInterleave }
 This enumeration indicates the PD states.
 
enum  IOLM_EALODState {
  IOLM_eALODState_Idle = 0, IOLM_eALODState_ParamRead, IOLM_eALODState_ParamWrite, IOLM_eALODState_ISDURead,
  IOLM_eALODState_ISDUWrite, IOLM_eALODState_ReadAbort, IOLM_eALODState_WriteAbort
}
 This enumeration indicates the AL OD states.
 
enum  IOLM_EDLEventState {
  IOLM_eDLEventState_Inactive = 0, IOLM_eDLEventState_Idle, IOLM_eDLEventState_ReadEvent, IOLM_eDLEventState_SendConf,
  IOLM_eDLEventState_EventConfirmation
}
 This enumeration indicates the DL event states.
 
enum  IOLM_EALEventState { IOLM_eALEventState_Idle = 0, IOLM_eALEventState_ReadEvent, IOLM_eALEventState_EventHandling }
 This enumeration indicates the AL event states.
 
enum  IOLM_EInspectionLevel { IOL_eInspectionLevel_NO_CHECK = 0, IOL_eInspectionLevel_TYPE_COMP, IOL_eInspectionLevel_IDENTICAL }
 This enumeration indicates the requested inspection Level. More...
 
enum  IOLM_ETimerState {
  IOLM_eTimerState_None = 0, IOLM_eTimerState_Mseq, IOLM_eTimerState_Cycle, IOLM_eTimerState_TDMT,
  IOLM_eTimerState_Wakeup, IOLM_eTimerState_Pulse
}
 This enum indicates the current hardware timer state.
 
enum  IOLM_EEvent {
  IOLM_eEvent_StackHigh = 0, IOLM_eEvent_StackLow, IOLM_eEvent_UserHigh, IOLM_eEvent_UserLow,
  IOLM_eEvent_MAX
}
 This enumeration defines acyclic events. More...
 
enum  IOLM_EDSState {
  IOLM_eDSState_CheckActivationState_0 = 0, IOLM_eDSState_WaitingOnDSActivity_1, IOLM_eDSState_UpDownload_2, IOLM_eDSState_Off_3,
  IOLM_eDSState_CheckIdentity_4, IOLM_eDSState_CheckMemSize_5, IOLM_eDSState_CheckUpload_6, IOLM_eDSState_Upload_7,
  IOLM_eDSState_CheckDsValidity_8, IOLM_eDSState_CheckChecksum_9, IOLM_eDSState_Download_10, IOLM_eDSState_DS_Ready_11,
  IOLM_eDSState_DS_Fault_12, IOLM_eDSState_Decompose_IL_13, IOLM_eDSState_ReadParameter_14, IOLM_eDSState_StoreDataSet_15,
  IOLM_eDSState_Upload_Fault_16, IOLM_eDSState_Decompose_Set_17, IOLM_eDSState_Write_Parameter_18, IOLM_eDSState_Download_Done_19,
  IOLM_eDSState_Download_Fault_20
}
 This IOL_ENUM_DECL defines the Data Storage states.
 
enum  IOLM_EDSActivationState { IOLM_eDSActivationState_Disabled = 0, IOLM_eDSActivationState_Enabled, IOLM_eDSActivationState_Cleared }
 this IOL_ENUM_DECL defines the Data Storage activation states. More...
 
enum  IOLM_EDSMode { IOLM_eDSMode_Nothing = 0, IOLM_eDSMode_Download = 1, IOLM_eDSMode_Upload = 2, IOLM_eDSMode_UpDownload = 3 }
 This IOL_ENUM_DECL defines the Data Storage activities which have to be done if there are mismatches detected. The index/order of the values should not be changed, because they are used as a bitmask. More...
 
enum  IOLM_EDSFault {
  IOLM_eDSFault_None = 0, IOLM_eDSFault_Communication, IOLM_eDSFault_Identification, IOLM_eDSFault_SizeCheck,
  IOLM_eDSFault_Upload, IOLM_eDSFault_Download, IOLM_eDSFault_StorageLocked
}
 This IOL_ENUM_DECL defines the DS faults.
 
enum  IOLM_EWakeupMode { IOLM_eWakeupMode_Done = 0, IOLM_eWakeupMode_Stack, IOLM_eWakeupMode_Ack, IOLM_eWakeupMode_Phy }
 This IOL_ENUM_DECL defines the wake-up modes. More...
 

Macro Definition Documentation

◆ IOLM_PORT_READY_PULSE_MAX_DURATION_US

#define IOLM_PORT_READY_PULSE_MAX_DURATION_US   1100U

Upper limit of ready pulse length in us.

◆ IOLM_PORT_READY_PULSE_MIN_DURATION_US

#define IOLM_PORT_READY_PULSE_MIN_DURATION_US   400U

Ready pulse time expectations. Lower limit of ready pulse length in us.

◆ IOLM_PORT_READY_PULSE_POWER_OFF_ON_GAP_MS

#define IOLM_PORT_READY_PULSE_POWER_OFF_ON_GAP_MS   1000U

Wait time between power off an power on in ms.

◆ IOLM_PORT_READY_PULSE_TIMEOUT_MS

#define IOLM_PORT_READY_PULSE_TIMEOUT_MS   5000U

Timeout for ready pulse detection in ms.

Enumeration Type Documentation

◆ IOLM_EDSActivationState

this IOL_ENUM_DECL defines the Data Storage activation states.

Enumerator
IOLM_eDSActivationState_Disabled 

Data Storage not enabled.

IOLM_eDSActivationState_Enabled 

Data Storage enabled.

IOLM_eDSActivationState_Cleared 

Data Storage disabled and cleared.

◆ IOLM_EDSMode

This IOL_ENUM_DECL defines the Data Storage activities which have to be done if there are mismatches detected. The index/order of the values should not be changed, because they are used as a bitmask.

Enumerator
IOLM_eDSMode_Nothing 

No transfer enabled.

IOLM_eDSMode_Download 

Only download enabled.

IOLM_eDSMode_Upload 

Only upload enabled.

IOLM_eDSMode_UpDownload 

Upload and download enabled.

◆ IOLM_EEvent

This enumeration defines acyclic events.

The order of definition is also the order of execution.

Enumerator
IOLM_eEvent_StackHigh 

Receive processing and prepare next frame.

IOLM_eEvent_MAX 

Number of events.

◆ IOLM_EInspectionLevel

This enumeration indicates the requested inspection Level.

Enumerator
IOL_eInspectionLevel_NO_CHECK 

No check on startup.

IOL_eInspectionLevel_TYPE_COMP 

Check Vendor ID and Device ID.

IOL_eInspectionLevel_IDENTICAL 

Check Vendor ID, Device ID and Serial Number.

◆ IOLM_EModeHState

DL-mode handler states.

Enumerator
IOLM_eModeHState_IDLE 

Waiting on wake-up request from System Management (SM)

IOLM_eModeHState_WURQ 

Perform wake-up procedure.

IOLM_eModeHState_ComRequestCOM3 

Try communication with mode COM3.

IOLM_eModeHState_ComRequestCOM2 

Try communication with mode COM2.

IOLM_eModeHState_ComRequestCOM1 

Try communication with mode COM1.

IOLM_eModeHState_Retry 

Retry startup.

IOLM_eModeHState_EstablishCom 

Establish communication.

IOLM_eModeHState_STARTUP 

System Management uses the STARTUP state for Device identification, check, and communication configuration (see figure 69).

IOLM_eModeHState_PREOPERATE 

On-request Data Exchange (parameter, commands, events) without Process Data.

IOLM_eModeHState_OPERATE 

Process Data and On-request Data exchange (parameter, commands, events).

◆ IOLM_EWakeupMode

This IOL_ENUM_DECL defines the wake-up modes.

Enumerator
IOLM_eWakeupMode_Done 

Wake-up is generated by port.

IOLM_eWakeupMode_Stack 

Wake-up need to be generated by stack.

IOLM_eWakeupMode_Ack 

Wake-up is done by application and acknowledged by IOLM_API_PL_u8WakeAck.

IOLM_eWakeupMode_Phy 

Wake-up is generated by Phy with frame handler mode.