DiagnosisDataReader.Read (METH) ¶ METHOD Read : BOOL Read the the next diagnosis item. Returns TRUE as long as further valid data is found in the source. InOut: Scope Name Type Return Read BOOL
UpdateDiagnosisEntry (FB) ¶ FUNCTION_BLOCK UpdateDiagnosisEntry This function block is used by a Profinet-Device application to add and remove Profinet diagnosis-data. The description of ChannelDiagnosisData gives an example how to define device specific diagnosis messages within the GSDML. The device application adds or removes diagnosis information according to the status of its real periphery. The real periphery is specified through the diagnosis source (API, Slot, Subslot, Channel, Direction, Accumulative). A diagnosis information (ChannelErrorType, optionally ExtChannelErrorType) exist only once per diagnosis source. If severity or ExtChannelErrorAddValue changes, the diagnosis information is updated regarding these values. If the diagnosis of a particular submodule changes during operation (submodule is in data-exchange), a diagnosis alarm is issued to the IO controller owning this submodule. Update Diagnosis PROGRAM PLC_PRG VAR ID : UDINT ; exec : BOOL ; // trigger execution of function block by setting exec := TRUE appears : BOOL := TRUE ; updateDiag : ProfinetCommon.UpdateDiagnosisEntry ; END_VAR ID := CommFB.SUBSLOT_ID ( EN := TRUE , ID := PN_Device.DeviceID , SLOT := 2 , SUBSLOT := 1 ); updateDiag.ID := ID ; updateDiag.xAppears := appears ; updateDiag.ChannelNumber := 1 ; updateDiag.ChannelProperties.ChannelType := ProfinetCommon.ChannelProperties_Type.BitSize1 ; updateDiag.ChannelProperties.Direction := ProfinetCommon.DiagnosisDirection.In ; updateDiag.Diagnosis.Severity := ProfinetCommon.DiagnosisSeverity.Fault ; updateDiag.Diagnosis.ChannelErrorType := ProfinetCommon.ChannelErrorType.Line_break ; //0x0006 Line break updateDiag ( xExecute := exec ); IF ( updateDiag.xDone OR updateDiag.xError ) THEN exec := FALSE ; END_IF InOut: Scope Name Type Initial Comment Input xExecute BOOL Rising edge: Execute update of submodule’s diagnosis ID UDINT Submodule-ID xAppears BOOL TRUE: Diagnosis appears - add new diagnosis or update Severity and additional value FALSE: Diagnosis disappears - clear diagnosis specified by source(Submodule, Channel) and error/ext-error ChannelNumber UINT 16#8000 The channel number of the diagnosis source (0x8000 means the whole submodule) ChannelProperties ChannelProperties additional channel data, not used for diagnosis that affect the whole submodule. Diagnosis ChannelDiagnosisData The diagnosis-data entry Output xDone BOOL Action successfully completed xBusy BOOL Function block active xError BOOL error occurred, function block aborts action Status UpdateDiagnosis_Status Error related to local update of diagnosis data, e.g. duplicate entry, no ressource… PNIOStatus UDINT PNIOStatus of Alarm processing (only with established AR)
IO-Link ¶ DECODE_IOL_STATUS (Function) DataTypes IOL_AdditionalCode (Enum) IOL_Error (Struct) IOL_ErrorCode (Enum) IOL_IdentificationAndDiagnosis_Function (Enum) IOL_IdentificationObjects (Struct) IOL_PortError (Enum) 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_CALL (FunctionBlock) IOL_DataStorage (FunctionBlock) IOL_IOLM_Info (FunctionBlock) IOL_IdentificationAndDiagnosis (FunctionBlock) IOL_PortConfiguration (FunctionBlock) IOL_PortStatus (FunctionBlock) PN_PortConfiguration (FunctionBlock) SmartSensorProfile DataTypes IOL_AdSS_Function (Enum) IOL_AdSS_Status (Enum) IOL_AdSS_TeachFunction (Enum) IOL_AdSS_TeachMode (Enum) IOL_AdjustableSwitchingSensor (FunctionBlock) IOL_MeasurementDataChannel (FunctionBlock)
DECODE_IOL_STATUS (FUN) ¶ FUNCTION DECODE_IOL_STATUS : IOL_Error Decode IOL_CALL’s output IOL_STATUS to type IOL_Error, which shows detailed error information. InOut: Scope Name Type Comment Return DECODE_IOL_STATUS IOL_Error Input IOL_Status DWORD IOL_CALL-FBs error information, encoded in a DWORD
DataTypes ¶ IOL_AdditionalCode (Enum) IOL_Error (Struct) IOL_ErrorCode (Enum) IOL_IdentificationAndDiagnosis_Function (Enum) IOL_IdentificationObjects (Struct) IOL_PortError (Enum)
IOL_PortQualityInfo (STRUCT) ¶ TYPE IOL_PortQualityInfo : STRUCT Status information on Process Data InOut: Name Type Comment VALID BIT Input Process Data valid PDOUT_VALID BIT Output Process Data valid
IOL_PortStatusInfo (ENUM) ¶ TYPE IOL_PortStatusInfo : Status information of the Port Attributes: qualified_only InOut: Name Initial Comment NO_DEVICE 0 No communication (COMLOST). How-ever, Port configuration IOL_MANUAL or IOL_AUTOSTART was set (see Table E.3). DEACTIVATED 1 Port configuration DEACTIVATED was set (see Table E.3). PORT_DIAG 2 This value to be set If a DiagEntry indicates an upcoming diagnosis of the Port during startup, validation, and Data Storage (group error). Device is in PREOPERATE and DiagEntry contains the diagnosis cause. PREOPERATE 3 This is only an intermediate state leading to OPERATE or PORT_DIAG. OPERATE 4 This value to be set if the Device is in OPERATE, even in case of Device error. DI_CQ 5 Port configuration “DI” was set (see Table E.3). DO_CQ 6 Port configuration “DO” was set (see Table E.3). PORT_POWER_OFF 254 SMI_PortPowerOffOn (see 11.2.14) caused the communication system to stop. All indications become obsolete according to the state machine in Figure 101 and shall be reported according to state transition Table 126. NOT_AVAILABLE 255 PortStatusInfo currently not available
IOL_PortStatusList (STRUCT) ¶ TYPE IOL_PortStatusList : STRUCT IO-Link PortStatusList InOut: Name Type Comment PortStatusInfo IOL_PortStatusInfo Status information of the Port PortQualityInfo IOL_PortQualityInfo Status information on Process Data RevisionID BYTE SDCI protocol revision of the Device TransmissionRate IOL_TransmissionRate Effective port transmission rate MasterCycleTime BYTE Master cycle time InputDataLength BYTE Input data length as number of octets OutputDataLength BYTE Output data length as number of octets VendorID UINT VendorID DeviceID UDINT DeviceID NumberOfDiags BYTE The number of diagnosis entries stored in field DiagEntries DiagEntries ARRAY [0..(IOL_Constants.MAX_PortStatus_DiagEntry - 1)] OF UDINT Diagnosis entries. See IOL_GetEvent_UDINT
IOL_PortStatusRecord (STRUCT) ¶ TYPE IOL_PortStatusRecord : STRUCT Port Status and Port diagnosis online InOut: Name Type Comment BlockType BYTE 0x01 = Basic BlockVersion BYTE Versioning of record; second version: 0x01 FieldbusStatus IOL_FieldbusStatus PROFINET Fieldbus-Status PQI IOL_PQI PROFINET PQI (Port Qualifier Information) PortStatusList IOL_PortStatusList IO-Link PortStatusList
IOL_PortType (ENUM) ¶ TYPE IOL_PortType : Attributes: qualified_only InOut: Name Initial Class_A 0 Class_A_with_PortPowerOffOn 1 Class_B 2 FS_Port_A_without_OSSDe 3 FS_Port_A_with_OSSDe 4 FS_Port_B 5 W_Master 6