IO-Link Master1.09.04
SMI Arg Blocks

Overview

SMI Arg Blocks.

Data Structures

struct  IOLM_SMI_SVoidArgBlock
 This structure is used as general and void ArgBlock. More...
 
struct  IOLM_SMI_SJobError
 This structure is used as JobError ArgBlock. More...
 
struct  IOLM_SMI_SMasterident
 This structure is used to get Master identification. More...
 
struct  IOLM_SMI_SFSMasterAccess
 This structure is used to get FS Master access. More...
 
struct  IOLM_SMI_SFSCPAuthenticity
 This structure is used to retrieve FSCPAuthenticity. More...
 
struct  IOLM_SMI_SWMasterConfigListOld
 This structure is obsolete. It used for the wireless Master configuration before V1.1.3 release. More...
 
struct  IOLM_SMI_SWPortConfigList
 This structure is used for the wireless port configuration. More...
 
struct  IOLM_SMI_SWPortConfigListOld
 This structure is obsolete. It used for the wireless port configuration before V1.1.3 release. More...
 
struct  IOLM_SMI_SFSPortConfigList
 This structure is used to store FS port configuration. More...
 
struct  IOLM_SMI_SPortConfigList
 This structure is used to store port configuration. More...
 
struct  IOLM_SMI_SWPortStatusList
 This structure is used to store wireless port status. More...
 
struct  IOLM_SMI_V113_SWPortStatusList
 This structure is used to store wireless port status in V1.1.3. More...
 
struct  IOLM_SMI_SWTrackStatusList
 This structure is used to store track status. More...
 
struct  IOLM_SMI_SWScanConfigList
 This structure is used to trigger a scan request. More...
 
struct  IOLM_SMI_SWPairingList
 This structure is used to trigger a pairing request. More...
 
struct  IOLM_SMI_SWTrackConfigList
 This structure is used for the track configuration. More...
 
struct  IOLM_SMI_SFSPortStatusList
 This structure is used to store FS port status. More...
 
struct  IOLM_SMI_SPortStatusList
 This structure is used to store port status. More...
 
struct  IOLM_SMI_SPDIn
 This structure is used for Process Data input. More...
 
struct  IOLM_SMI_SPDOut
 This structure is used for Process Data output. More...
 
struct  IOLM_SMI_SPDInIQ
 This structure is used for IQ input. More...
 
struct  IOLM_SMI_SPDOutIQ
 This structure is used for IQ output. More...
 
struct  IOLM_SMI_SSPDUIn
 This structure is used for SPDU input. More...
 
struct  IOLM_SMI_SSPDUOut
 This structure is used for SPDU output. More...
 
struct  IOLM_SMI_SPDInOut
 This structure is used for Process Data input and output read back. More...
 
struct  IOLM_SMI_SPortEvent
 This generic structure is used for events. More...
 
struct  IOLM_SMI_SScanResult
 This structure is used for scan results. More...
 
struct  IOLM_SMI_SScanStatusResult
 This structure is used for a single scan result. More...
 
struct  IOLM_SMI_SWScanStatusList
 This structure is used for the Scan Status List. More...
 
struct  IOLM_SMI_SWSingleScanStatusList
 This structure is used for the Scan Status List of a single scan result. More...
 
struct  IOLM_SMI_SOnRequestData
 This structure is used for On-request Data. More...
 
struct  IOLM_SMI_SPortPowerOffOn
 This structure is used for PortPowerOffOn requests. More...
 
struct  IOLM_SMI_SDSData
 This structure is used for DataStorage Data. More...
 
struct  IOLM_SMI_SHeader
 SGI dependent types. More...
 
struct  IOLM_SMI_SArgBlockParam
 This structure follows the IOLM_SMI_SHeader struct. More...
 
struct  IOLM_SMI_SDeviceEvent
 This structure is used for Device Events (remote). More...
 
struct  IOLM_SMI_SPortEvent
 This structure is used for port events (local). More...
 

Macros

#define IOLM_SMI_CLIENTID_INTERN   (0xFE)
 Used for internal communication.
 
#define IOLM_SMI_CLIENTID_BROADCAST   (0x00)
 Used for broadcasting (events).
 
#define IOLM_SMI_PQI_PQ   (1<<7)
 
#define IOLM_SMI_PQI_DEVERR   (1<<6)
 
#define IOLM_SMI_PQI_DEVCOM   (1<<5)
 
#define IOLM_SMI_ARGBLOCK_PDIN_LEN(Datalen)   (sizeof(IOLM_SMI_SPDIn) - 32 + Datalen)
 
#define IOLM_SMI_ARGBLOCK_PDOUT_LEN(Datalen)   (sizeof(IOLM_SMI_SPDOut) - 32 + Datalen)
 
#define IOLM_SMI_ARGBLOCK_SSPDUIN_LEN(Datalen)   (sizeof(IOLM_SMI_SSPDUIn) - 32 + Datalen)
 
#define IOLM_SMI_ARGBLOCK_SSPDUOUT_LEN(Datalen)   (sizeof(IOLM_SMI_SSPDUOut) - 32 + Datalen)
 
#define IOLM_SMI_ARGBLOCK_PDINOUT_LEN(InputLen, OutputLen)   (4 + 2 + InputLen + OutputLen)
 
#define IOLM_SMI_ARGBLOCK_ONREQ_LEN(Datalen)   (sizeof(IOLM_SMI_SOnRequestData) - IOLM_MAX_ISDU_LENGTH + Datalen)
 
#define IOLM_SMI_ENDIAN_32(x)
 
#define IOLM_SMI_ENDIAN_16(x)   ( (((x) >> 8) & 0x00FF) | (((x) << 8) & 0xFF00) )
 

Typedefs

typedef IOLM_SMI_SVoidArgBlock IOLM_SMI_SGeneralArgBlock
 

Enumerations

enum  IOLM_SMI_EServiceID {
  IOLM_SMI_eServiceID_MasterIdentification = 0x00 , IOLM_SMI_eServiceID_PortConfiguration = 0x01 , IOLM_SMI_eServiceID_ReadbackPortConfiguration = 0x02 , IOLM_SMI_eServiceID_PortStatus = 0x03 ,
  IOLM_SMI_eServiceID_DSBackupToParServ = 0x04 , IOLM_SMI_eServiceID_DSRestoreFromParServ = 0x05 , IOLM_SMI_eServiceID_DeviceWrite = 0x06 , IOLM_SMI_eServiceID_DeviceRead = 0x07 ,
  IOLM_SMI_eServiceID_PortPairing = 0x08 , IOLM_SMI_eServiceID_DeviceEvent = 0x09 , IOLM_SMI_eServiceID_PortEvent = 0x0A , IOLM_SMI_eServiceID_PDIn = 0x0B ,
  IOLM_SMI_eServiceID_PDOut = 0x0C , IOLM_SMI_eServiceID_PDInOut = 0x0D , IOLM_SMI_eServiceID_PDInIQ = 0x0E , IOLM_SMI_eServiceID_PDOutIQ = 0x0F ,
  IOLM_SMI_eServiceID_MasterConfiguration = 0x10 , IOLM_SMI_eServiceID_ReadbackMasterConfiguration = 0x11 , IOLM_SMI_eServiceID_TrackConfiguration = 0x12 , IOLM_SMI_eServiceID_ReadbackTrackConfiguration = 0x13 ,
  IOLM_SMI_eServiceID_TrackScanResult = 0x14 , IOLM_SMI_eServiceID_TrackScanEnd = 0x15 , IOLM_SMI_eServiceID_TrackStatus = 0x16 , IOLM_SMI_eServiceID_Scan = 0x17 ,
  IOLM_SMI_eServiceID_FSMasterAccess = 0x18 , IOLM_SMI_eServiceID_SPDUIn = 0x19 , IOLM_SMI_eServiceID_SPDUOut = 0x1A , IOLM_SMI_eServiceID_PortPowerOffOn = 0x1B ,
  IOLM_SMI_V113_eServiceID_WMasterConfiguration = 0x20 , IOLM_SMI_V113_eServiceID_ReadbackWMasterConfiguration = 0x21 , IOLM_SMI_V113_eServiceID_WScanConfig = 0x22 , IOLM_SMI_V113_eServiceID_WScanStatus = 0x23 ,
  IOLM_SMI_V113_eServiceID_WPortPairing = 0x24 , IOLM_SMI_V113_eServiceID_WTrackStatus = 0x25 , IOLM_SMI_V113_eServiceID_WQualityStatus = 0x26 , IOLM_SMI_eServiceID_GetChipInfo = 0x80 ,
  IOLM_SMI_eServiceID_ResetDefaults = 0x81 , IOLM_SMI_eServiceID_Settings = 0x82 , IOLM_SMI_eServiceID_DataLog = 0x83 , IOLM_SMI_eServiceID_FWUpdate = 0x90 ,
  IOLM_SMI_eServiceID_FSPDIn = 0xA0 , IOLM_SMI_eServiceID_FSPDOut = 0xA1 , IOLM_SMI_eServiceID_SPDUExchangeStarted = 0xA2 , IOLM_SMI_eServiceID_VerifyRecordSent = 0xA3 ,
  IOLM_SMI_eServiceID_TestCommand = 0xA4 , IOLM_SMI_eServiceID_KeepAlive = 0xFF
}
 SGI dependent defines. More...
 
enum  IOLM_SMI_EArgBlockID {
  IOLM_SMI_eArgBlockID_Reserved = 0x0000 , IOLM_SMI_eArgBlockID_MasterIdent = 0x0001 , IOLM_SMI_eArgBlockID_FSMasterAccess = 0x0100 , IOLM_SMI_eArgBlockID_FSCPAuthenticity = 0x0101 ,
  IOLM_SMI_eArgBlockID_WMasterConfig = 0x0200 , IOLM_SMI_eArgBlockID_PDIn = 0x1001 , IOLM_SMI_eArgBlockID_PDOut = 0x1002 , IOLM_SMI_eArgBlockID_PDInOut = 0x1003 ,
  IOLM_SMI_eArgBlockID_SPDUIn = 0x1101 , IOLM_SMI_eArgBlockID_SPDUOut = 0x1102 , IOLM_SMI_eArgBlockID_PDInIQ = 0x1FFE , IOLM_SMI_eArgBlockID_PDOutIQ = 0x1FFF ,
  IOLM_SMI_eArgBlockID_OnRequestDataWrite = 0x3000 , IOLM_SMI_eArgBlockID_OnRequestDataRead = 0x3001 , IOLM_SMI_eArgBlockID_DS_Data = 0x7000 , IOLM_SMI_eArgBlockID_DeviceParBatch = 0x7001 ,
  IOLM_SMI_eArgBlockID_IndexList = 0x7002 , IOLM_SMI_eArgBlockID_PortPowerOffOn = 0x7003 , IOLM_SMI_eArgBlockID_WPortPairing = 0x7200 , IOLM_SMI_eArgBlockID_PortConfigList = 0x8000 ,
  IOLM_SMI_eArgBlockID_FSPortConfigList = 0x8100 , IOLM_SMI_eArgBlockID_WTrackConfigList = 0x8200 , IOLM_SMI_eArgBlockID_WPortConfigList = 0x8201 , IOLM_SMI_eArgBlockID_WScan = 0x8202 ,
  IOLM_SMI_eArgBlockID_PortStatusList = 0x9000 , IOLM_SMI_eArgBlockID_FSPortStatusList = 0x9100 , IOLM_SMI_eArgBlockID_WTrackStatusList = 0x9200 , IOLM_SMI_eArgBlockID_ScanResult = 0x9201 ,
  IOLM_SMI_eArgBlockID_WPortStatusList = 0x9202 , IOLM_SMI_V113_eArgBlockID_WPortConfigList = 0x8200 , IOLM_SMI_V113_eArgBlockID_WScanConfigList = 0x8201 , IOLM_SMI_V113_eArgBlockID_WPortStatusList = 0x9200 ,
  IOLM_SMI_V113_eArgBlockID_WScanStatusList = 0x9201 , IOLM_SMI_V113_eArgBlockID_WTrackStatusList = 0x9202 , IOLM_SMI_V113_eArgBlockID_WQualityStatusList = 0x9203 , IOLM_SMI_eArgBlockID_DeviceEvent = 0xA000 ,
  IOLM_SMI_eArgBlockID_PortEvent = 0xA001 , IOLM_SMI_eArgBlockID_PDInAllConnectedPorts = 0xB001 , IOLM_SMI_eArgBlockID_PDInAllUpdatedPorts = 0xB002 , IOLM_SMI_eArgBlockID_PDOutMultiplePorts = 0xB003 ,
  IOLM_SMI_eArgBlockID_PDInOutMultiplePorts = 0xB004 , IOLM_SMI_eArgBlockID_FSPDIn = 0xB101 , IOLM_SMI_eArgBlockID_FSPDOut = 0xB102 , IOLM_SMI_eArgBlockID_StackInformation = 0xE000 ,
  IOLM_SMI_eArgBlockID_DataLog = 0xE001 , IOLM_SMI_eArgBlockID_TestCommand = 0xE002 , IOLM_SMI_eArgBlockID_VoidBlock = 0xFFF0 , IOLM_SMI_eArgBlockID_JobError = 0xFFFF
}
 SMI ArgBlock IDs. More...
 
enum  IOLM_SMI_EMasterTypes {
  IOLM_SMI_eMasterTypes_Unspecific = 0 , IOLM_SMI_eMasterTypes_Reserved = 1 , IOLM_SMI_eMasterTypes_Master_acc = 2 , IOLM_SMI_eMasterTypes_FS_Master = 3 ,
  IOLM_SMI_eMasterTypes_W_Master = 4
}
 SMI Master types.
 
enum  IOLM_SMI_EPortTypes {
  IOLM_SMI_ePortTypes_ClassA = 0 , IOLM_SMI_ePortTypes_ClassAWithPowerOffOn = 1 , IOLM_SMI_ePortTypes_ClassB = 2 , IOLM_SMI_ePortTypes_FSPortAWithoutOSSDe = 3 ,
  IOLM_SMI_ePortTypes_FSPortAwithOSSDe = 4 , IOLM_SMI_ePortTypes_FSPortB = 5 , IOLM_SMI_ePortTypes_WMaster = 6
}
 SMI port types.
 
enum  IOLM_SMI_EPortMode {
  IOLM_SMI_ePortMode_DEACTIVATED = 0 , IOLM_SMI_ePortMode_IOL_MANUAL = 1 , IOLM_SMI_ePortMode_IOL_AUTOSTART = 2 , IOLM_SMI_ePortMode_DI_CQ = 3 ,
  IOLM_SMI_ePortMode_DO_CQ = 4 , IOLM_SMI_ePortMode_SAFETYCOM = 49 , IOLM_SMI_ePortMode_MIXEDSAFETYCOM = 50 , IOLM_SMI_ePortMode_OSSDE = 51 ,
  IOLM_SMI_ePortMode_CYCLIC_AUTO = 52 , IOLM_SMI_ePortMode_CYCLIC = 53 , IOLM_SMI_ePortMode_ROAMING_AUTO = 54 , IOLM_SMI_ePortMode_ROAMING = 55
}
 SMI port mode.
 
enum  IOLM_SMI_EPortModeOld {
  IOLM_SMI_ePortModeOld_DEACTIVATED = 0 , IOLM_SMI_ePortModeOld_IOL_MANUAL = 1 , IOLM_SMI_ePortModeOld_IOL_AUTOSTART = 2 , IOLM_SMI_ePortModeOld_DI_CQ = 3 ,
  IOLM_SMI_ePortModeOld_DO_CQ = 4 , IOLM_SMI_ePortModeOld_SAFETYCOM = 49 , IOLM_SMI_ePortModeOld_MIXEDSAFETYCOM = 50 , IOLM_SMI_ePortModeOld_OSSDE = 51 ,
  IOLM_SMI_ePortModeOld_CYCLIC = 52 , IOLM_SMI_ePortModeOld_ROAMING = 53
}
 SMI port mode (only used for compatibility to old V1.1).
 
enum  IOLM_SMI_EPairCmd { IOLM_SMI_ePairCmd_Unpairing = 0 , IOLM_SMI_ePairCmd_PairingUnique = 1 , IOLM_SMI_ePairCmd_PairingButton = 2 , IOLM_SMI_ePairCmd_AbortPairing = 4 }
 SMI pairing commands.
 
enum  IOLM_SMI_EValidationBackup {
  IOLM_SMI_ePortValBack_NoDeviceCheck = 0 , IOLM_SMI_ePortValBack_V10 = 1 , IOLM_SMI_ePortValBack_V11 = 2 , IOLM_SMI_ePortValBack_V11_BackupRestore = 3 ,
  IOLM_SMI_ePortValBack_V11_Restore = 4
}
 SMI port validation and backup.
 
enum  IOLM_SMI_EIQBehavior {
  IOLM_SMI_ePortIQBehavior_NotSupported = 0 , IOLM_SMI_ePortIQBehavior_DigitalInput = 1 , IOLM_SMI_ePortIQBehavior_DigitalOutput = 2 , IOLM_SMI_ePortIQBehavior_AnalogInput = 3 ,
  IOLM_SMI_ePortIQBehavior_AnalogOutput = 4 , IOLM_SMI_ePortIQBehavior_Power2 = 5
}
 SMI port IQ behavior.
 
enum  IOLM_SMI_EPortStatus {
  IOLM_SMI_ePortStatus_NO_DEVICE = 0 , IOLM_SMI_ePortStatus_DEACTIVATED = 1 , IOLM_SMI_ePortStatus_PORT_DIAG = 2 , IOLM_SMI_ePortStatus_PREOPERATE = 3 ,
  IOLM_SMI_ePortStatus_OPERATE = 4 , IOLM_SMI_ePortStatus_DI_CQ = 5 , IOLM_SMI_ePortStatus_DO_CQ = 6 , IOLM_SMI_ePortStatus_OSSDE = 7 ,
  IOLM_SMI_ePortStatus_SPDU_EXCHANGE = 8 , IOLM_SMI_ePortStatus_PAIRING_FAULT = 10 , IOLM_SMI_ePortStatus_PORT_POWER_OFF = 254 , IOLM_SMI_ePortStatus_NOT_AVAILABLE = 255
}
 SMI port status.
 
enum  IOLM_SMI_ServiceTrackMode { IOLM_SMI_ServiceTrackMode_CYCLIC = 0 , IOLM_SMI_ServiceTrackMode_ROAMING = 1 }
 SMI service track mode.
 
enum  IOLM_SMI_ETrackMode { IOLM_SMI_eTrackMode_STOP = 0 , IOLM_SMI_eTrackMode_CYCLIC = 1 , IOLM_SMI_eTrackMode_ROAMING = 2 , IOLM_SMI_eTrackMode_SERVICE = 3 }
 SMI track mode.
 
enum  IOLM_SMI_ETrackStatus {
  IOLM_SMI_eTrackStatus_STOP = 0 , IOLM_SMI_eTrackStatus_CYCLIC = 1 , IOLM_SMI_eTrackStatus_ROAMING = 2 , IOLM_SMI_eTrackStatus_SCAN = 3 ,
  IOLM_SMI_eTrackStatus_PAIRING = 4
}
 SMI track status.
 
enum  IOLM_SMI_EScanBehavior { IOLM_SMI_eScanBehavior_POLL_RESULT = 0 , IOLM_SMI_eScanBehavior_SINGLE_RESULT_BROADCAST = 1 , IOLM_SMI_eScanBehavior_FINAL_RESULT_BROADCAST = 2 }
 SMI scan behavior.
 
enum  IOLM_SMI_EScanStatus { IOLM_SMI_eScanStatus_NOT_PERFORMED_YET = 0 , IOLM_SMI_eScanStatus_IN_PROGRESS = 1 , IOLM_SMI_eScanStatus_ENDED = 2 }
 SMI scan status.
 
enum  IOLM_SMI_EPortPowerMode { IOLM_SMI_ePortPowerMode_ONE_TIME_SWITCH_OFF = 0 , IOLM_SMI_ePortPowerMode_OFF = 1 , IOLM_SMI_ePortPowerMode_ON = 2 }
 SMI port power mode.
 

Macro Definition Documentation

◆ IOLM_SMI_ENDIAN_32

#define IOLM_SMI_ENDIAN_32 (   x)
Value:
( (((x) >> 24) & 0x000000FF) | (((x) >> 8) & 0x0000FF00) | \
(((x) << 24) & 0xFF000000) | (((x) << 8) & 0x00FF0000))

Enumeration Type Documentation

◆ IOLM_SMI_EArgBlockID

SMI ArgBlock IDs.

Coding: 0x N4 N3 N2 N1

N4 - Service group:

  • 0: Identification (Master)
  • 1: Process Data (PD)
  • 2: Reserved
  • 3: On-request Data (OD)
  • 4-6: Reserved
  • 7: Mixed system features
  • 8: Configurations
  • 9: Status information (port, Device, etc.)
  • A: Events
  • B-E: Manufacturer specific
  • F: SMI management

N3 - Domain:

  • 0: General
  • 1: Safety extension
  • 2: Wireless extension
  • 3-E: Reserved
  • F: SMI management

N2/N1

  • Assigned by domain

For a list of all currently available ArgBlock IDs, see the overview above.

◆ IOLM_SMI_EServiceID

SGI dependent defines.

SGI dependent enums

SMI ServiceIDs (IDs >= 0x80 are used for non standard, proprietary services).