IO-Link Master  1.03.03
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_SWMasterConfigList
 This structure is used for the wireless Master configuration. More...
 
struct  IOLM_SMI_SWPortConfigList
 This structure is used to store wireless port configuration. 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_SWTrackStatusList
 This structure is used to store track status. More...
 
struct  IOLM_SMI_SWScan
 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_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
 This structure is used for the SMI_Header. 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_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
}
 SMI ServiceIDs (IDs >= 0x80 are used for non standard, proprietary services).
 
enum  IOLM_SMI_EArgBlockID {
  IOLM_SMI_eArgBlockID_Reserved = 0x0000, IOLM_SMI_eArgBlockID_MasterIdent = 0x0001, IOLM_SMI_eArgBlockID_FSMasterAccess = 0x0100, 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_WPairing = 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_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_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 = 52, IOLM_SMI_ePortMode_ROAMING = 53
}
 SMI port mode.
 
enum  IOLM_SMI_EPairCmd { IOLM_SMI_ePairCmd_Unpairing = 0, IOLM_SMI_ePairCmd_PairingUnique = 1, IOLM_SMI_ePairCmd_PairingButton = 2 }
 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_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_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.