IOL ¶ IOL_Constants (GVL) IOL_DiagEntry (Struct) IOL_Event (Struct) IOL_EventCode (Union) IOL_EventCode_Device (Enum) IOL_EventCode_Port (Enum) IOL_EventQualifier (Struct) IOL_EventQualifier_Instance (Enum) IOL_EventQualifier_Mode (Enum) IOL_EventQualifier_Source (Enum) IOL_EventQualifier_Type (Enum) IOL_FieldbusStatus (Struct) IOL_GetEvent_ChannelDiagnosis (Function) IOL_GetEvent_UDINT (Function) IOL_IOLM_InfoRecord (Struct) IOL_IQ_Behavior (Enum) IOL_Index (Enum) IOL_MasterIdent (Struct) IOL_MasterIdent_Features_1 (Struct) IOL_MasterType (Enum) IOL_PN_PortControl (Struct) IOL_PQI (Struct) IOL_PortConfigList (Struct) IOL_PortConfigurationRecord (Struct) IOL_PortMode (Enum) IOL_PortQualityInfo (Struct) IOL_PortStatusInfo (Enum) IOL_PortStatusList (Struct) IOL_PortStatusRecord (Struct) IOL_PortType (Enum) IOL_ProfileIdentifier (Enum) IOL_TransmissionRate (Enum) IOL_ValidationBackup (Enum) PN_PortConfigurationRecord (Struct)
IOL_Constants (GVL) ¶ Attributes: qualified_only InOut: Scope Name Type Initial Constant IOL_ProfileID UDINT 16#4E01 MAX_PortStatus_DiagEntry DINT 16 MAX_MasterIdent_PortTypes DINT 16 MaxNumProfileID DINT 32 MaxNumDetailedDeviceStatus DINT 64
IOL_DiagEntry (STRUCT) ¶ TYPE IOL_DiagEntry : STRUCT InOut: Name Type EventQualifier BYTE EventCode UINT
IOL_Event (STRUCT) ¶ TYPE IOL_Event : STRUCT InOut: Name Type EventQualifier IOL_EventQualifier EventCode IOL_EventCode
IOL_CALL (FB) ¶ FUNCTION_BLOCK IOL_CALL This Function Block enables access to access IO-Link data or initiate port functions using PN-IO mechanisms. Client applications could use it to parameterize a Device with (IO-Link-) AL_Write or read out data like the SerialNumber with the help of an (IO-Link-) AL_Read. In order to address the required IO-Link data, IOL_CALL uses PROFINET access points (“record index”) and the Master port number in addition to the IO-Link Indices and Subindices as well as the transfer direction. For details see: PI Specification, IO-Link Integration, Part 1, Version 1.0, December 2007, Order No. 2.812 PI Specification, IO-Link Integration - Edition 2, Version 1.0, June 2017, Order No. 2.812 Example PROGRAM PLC_PRG VAR al_read : ProfinetCommon.IOL_CALL ; err : ProfinetCommon.IOL_Error ; productText : STRING ( 64 ); END_VAR //start the execution by setting REQ = TRUE ! al_read.ID := al1100.GetID ( 0 , 1 , 3 ); // ID of IO-Link Device (in Port 2) al_read.CAP := 16#B400 ; // Fix for Ed. 2 devices. For legacy devices get value from vendor's documentation or use CommFB.RDREC for reading out IOL-M directory data (RDREC.Index = 0xB063) al_read.Port := 1 ; // IO-Link device is plugged in Port 1 al_read.RD_WR := FALSE ; // Read data al_read.IOL_Index := 20 ; // IOL-Index = 20 means 'Product Text', this will result in something like 'Laser Sensor' al_read.IOL_Subindex := 0 ; // 0 = read complete data-item al_read.LEN := TO_INT ( SIZEOF ( productText ) - 1 ); al_read.IOL_Data := ADR ( productText ); // an ARRAY[] OF BYTE will be returned al_read (); IF ( al_read.ERROR ) THEN IF ( al_read.STATUS <> 0 ) THEN // Profinet Communication-Error // e.g. DF80A100 (= PNIORW, application: write error) will be returned if a wrong 'ID' / submodule identifier is used as target ELSE // get IO-Link related error: err := ProfinetCommon.DECODE_IOL_STATUS ( al_read.IOL_STATUS ); END_IF ELSIF ( al_read.DONE_VALID ) THEN ; // --> the variable 'productText' will contain some text END_IF al_read.REQ := al_read.BUSY ; //reset REQ, we need just one execution InOut: Scope Name Type Initial Comment Input REQ BOOL Request function ID DWORD Addresses the IO-Link proxy Submodule i.e. IO-Link Master or IO-Link Device CAP INT ANY_TO_INT(16#B400) fix 0xB400 for Ed. 2 devices, vendor specific for legacy devices PORT INT Port address the function shall be performed at. Supported range: 0 to 255 RD_WR BOOL Indicates whether the On-request Data (OD) shall be read (RD = FALSE) or written (WR = TRUE) IOL_INDEX INT Index of the On-request Data or Port Function Indicator respectively IOL_SUBINDEX INT Subindex of the On-request Data or Port Function Command Code LEN INT Actual data length of an IOL data record (read or write) specified in input IOL_DATA IOL_DATA POINTER TO BYTE On-request Data to be written to, or to be read from the Device Output DONE_VALID BOOL Flag indicating the successful completion of the function (and in case of a read function the validity of received data); BUSY BOOL Flag indicating the function is still performing its task. The function block is not ready to perform a new task. ERROR BOOL Flag indicating the abortion of the function with an error STATUS DWORD Completion or bus error code. Busy =0xFFFFFFFF IOL_STATUS DWORD Completion or IOL-M and IOL-D error code. See function TO_IOL_Error RD_LEN INT Actual Length of data that has been read.
IOL_DataStorage (FB) ¶ FUNCTION_BLOCK IOL_DataStorage This function block reads or updates the the Data Storage object in the Master (IOLD Backup data object) Backup and restore has to be enabled for the IO-Link device. InOut: Scope Name Type Comment Input xExecute BOOL Rising edge: Execute ID DWORD IO-Link Device ID RD_WR BOOL Read / Write data LEN INT Actual data length of DS_DATA (read or write) specified in input IOL_DATA. The maximum size is 2 048 octets. DS_DATA POINTER TO BYTE On-request Data to be written to, or to be read from the Device Output xDone BOOL Action successfully completed xBusy BOOL Function block active xError BOOL error occurred, function block aborts action STATUS DWORD Bus error code RD_LEN INT Actual Length of data that has been read.
IOL_IOLM_Info (FB) ¶ FUNCTION_BLOCK IOL_IOLM_Info This function block reads the IOLM Info Record of an IO-Link Master Submodule. InOut: Scope Name Type Comment Input xExecute BOOL Rising edge: Execute IOLM_ID DWORD IO-Link Master ID Output xDone BOOL Action successfully completed xBusy BOOL Function block active xError BOOL Error occurred, function block aborts action STATUS DWORD Bus error code IOLM_Info IOL_IOLM_InfoRecord IOLM Info Record
IOL_IdentificationAndDiagnosis (FB) ¶ FUNCTION_BLOCK IOL_IdentificationAndDiagnosis The Function Block reads or writes identification or diagnosis data from the Device. For being able to use the full feature set, all Device parameters specified by CommonApplicationProfile Identification and Diagnosis (0x4000) (which supports the FunctionClasses DeviceIdentification (0x8000), Device Diagnosis (0x8003), and ExtendedIdentification (0x8100)) are required. Example PROGRAM GetIOLinkInfo VAR cnct : CommFB.CNCT ; iolInfo : ProfinetCommon.IOL_IdentificationAndDiagnosis ; END_VAR // here we first open a supervisor AR. // (Only necessary if PROFINET Device is not in data exchange with controller). cnct.D_ADDR.SYSTEM := CommFB.IO_SYSTEM_TYPE.PROFINET_IO ; cnct.D_ADDR.PN.MASTER := PN_Controller.MasterID ; // there could be more than one Controller in the project ! cnct.D_ADDR.PN.D.STATIONNAME := 'iolink-master' ; // stationname of the online device cnct.D_ADDR.PN.D.VENDOR := 16#0136 ; // usually you get get this data from GSDML or DCP_Identify / Scan (see ProfinetCommon.DCP_Identify FB) cnct.D_ADDR.PN.D.DEVICE := 16#AC6F ; cnct.D_ADDR.PN.D.INSTANCE := 1 ; // typically 0 or 1 cnct.D_ADDR.PN.API := 16#4E01 ; // IO-Link API cnct.D_ADDR.PN.SLOT := 1 ; cnct.D_ADDR.PN.SUBSLOT := 1 ; // IOLM is in subslot 1 cnct (); // start with cnct.REQ := TRUE IF ( cnct.VALID ) THEN iolInfo ( xExecute := TRUE , ID := cnct.ID , Port := 6 ); //start request for IO-Link device data END_IF iolInfo (); InOut: Scope Name Type Initial Comment Input xExecute BOOL A trigger causes the function selected with variable Function to be executed ID DWORD Addresses the IO-Link proxy Submodule i.e. IO-Link Master or IO-Link Device Port BYTE Port number Func IOL_IdentificationAndDiagnosis_Function IOL_IdentificationAndDiagnosis_Function.rd_all This variable selects the functionality to be triggered by a Request BackupEnable BOOL This variable configures the behavior of the FB in case of the requested function wr_ident. ApplicationSpecificTagIn STRING(32) serves as a free user specific tag LocationTagIn STRING(32) extended identification parameter which can be used for overall localisation and identification of any Device (requires FunctionClass ExtendedIdentification). FunctionTagIn STRING(32) extended identification parameter which can be used for overall localisation and identification of any Device (requires FunctionClass ExtendedIdentification). Output xDone BOOL The signal is set, if the FB has completed a requested operation. xBusy BOOL The signal is set, if the FB is executing a requested operation. xError BOOL The signal is set, if an error occurred during execution of a re-quested operation. STATUS UDINT The value represents the current status of the FB operation and ex-ecuted functions. The content is system specific and contains the status information ProfileIDList ARRAY [0..(IOL_Constants.MaxNumProfileID - 1)] OF IOL_ProfileIdentifier List of ProfileIDs supported by the Device FunctionClassIDList ARRAY [0..(IOL_Constants.MaxNumProfileID - 1)] OF IOL_ProfileIdentifier List of FunctionClassIDs supported by the Device IdentificationObjects IOL_IdentificationObjects Structured list of identification objects DeviceOK BOOL The signal is set when no further diagnosis info is available, it is false when further information is available at DeviceStatus and DetailedDeviceStatus DeviceStatus BYTE See Device parameter in clause B.2.18 in [1] DetailedDeviceStatus ARRAY [0..(IOL_Constants.MaxNumDetailedDeviceStatus - 1)] OF DWORD This parameter contains the type casted values from the Device parameter defined in clause B.2.19 in [1]
IOL_PortConfiguration (FB) ¶ FUNCTION_BLOCK IOL_PortConfiguration This function block reads or updates the IOL-Tool based Port configuration (IOL-PC) of a single Port (Profinet Data-Record 0xB1xx). InOut: Scope Name Type Comment Input xExecute BOOL Rising edge: Execute IOLM_ID DWORD IO-Link Master ID Port BYTE Port number RD_WR BOOL Indicates whether the Port-Config Data shall be read (RD = FALSE) or written (WR = TRUE) Inout PortConfig IOL_PortConfigurationRecord IOL-Tool based Port configuration (IOL-PC) Output xDone BOOL Action successfully completed xBusy BOOL Function block active xError BOOL error occurred, function block aborts action STATUS DWORD Bus error code
IOL_PortStatus (FB) ¶ FUNCTION_BLOCK IOL_PortStatus This function block reads the PortStatus record of an IO-Link Port Submodule. InOut: Scope Name Type Comment Input xExecute BOOL Rising edge: Execute IOLM_ID DWORD IO-Link Master ID Port BYTE Port number Output xDone BOOL Action successfully completed xBusy BOOL Function block active xError BOOL error occurred, function block aborts action STATUS DWORD Bus error code PortStatus IOL_PortStatusRecord Port-Status record