IoDrvEtherCAT (FB) ¶ FUNCTION_BLOCK IoDrvEtherCAT EXTENDS IoDrvBase IMPLEMENTS ICmpIoDrvParameter Implicit Master Instance ¶ The function block instance for the EtherCAT master. An instance type IoDrvEtherCAT is generated for each EtherCAT master that is inserted into the device tree. The name of the instance corresponds to the name of the master in the device tree. The availability of the instance is shown in the IEC Objects area of the EtherCAT I/O Mapping dialog box of the master Examples how to use the master instance ¶ Restarting the master with the xRestart variable: EtherCAT_Master.xRestart := xRestart; EtherCAT_Master(); Stopping communication on the bus with the xStop variable: EtherCAT_Master.xStopBus := xStop; EtherCAT_Master(); Calling the master for retrieving information about the download success of the configuration parameters: EtherCAT_Master(); xFinish := EtherCAT_Master.xConfigFinished; Chained List for Checking of All Slaves ¶ For the monitoring of individual slaves in the program the instance is called and the state is determined via wState. For simplification all masters and slaves can be determined by chained lists and all slaves can be checked by a simple WHILE loop. The properties NextInstance and LastInstance exist for both the master and the slave. These properties point to the next or previous slave. For the master there is an additional property, FirstSlave, which provides a pointer to the first slave. In accordance with the following example you can check all slaves: Example Following example code checks all slaves for operational mode PROGRAM PLC_PRG VAR pSlave : POINTER TO ETCSlave ; END_VAR pSlave := EtherCAT_Master.FirstSlave ; WHILE pSlave <> 0 DO pSlave ^(); IF pSlave ^. wState = ETC_SLAVE_STATE.ETC_SLAVE_OPERATIONAL THEN ; END_IF pSlave := pSlave ^. NextInstance ; END_WHILE Initially, the first slave is fetched to the master via EtherCAT_Master.FirstSlave. In the WHILE loop the respective instance is called and wState is thus determined. The status can then be checked. The pointer to the next slave is fetched with pSlave^.NextInstance. If the list is finished, the pointer is ZERO and the loop ends. InOut: Scope Name Type Initial Comment Input xRestart BOOL FALSE Rising edge: The master is restarted and all configuration parameters are reloaded. xStopBus BOOL FALSE Stop the bus when signal is true Output xConfigFinished BOOL TRUE: Transfer of all configuration parameters was completed with no errors. Communication is running on the bus. xDistributedClockInSync BOOL If distributed clocks are used, then the PLC is synchronized with the first EtherCAT slave with the DC option activated. The output is TRUE as soon as the synchronization is ended successfully. This signal can be used, for example, for activating SoftMotion function blocks when the PLC is in synchronous mode. Otherwise position jumps can occur. When starting the PLC, the output is FALSE and switches to TRUE after a few seconds. If the synchrony is lost due to an error, then the output is reset to FALSE. xError BOOL The output is TRUE when an error occurs when starting the EtherCAT stack, or communication with the slaves is interrupted because no more messages can be received (for example, due to a damaged cable). xSyncInWindow BOOL The output is TRUE when the Sync Window Monitoring option is activated and the synchronization of all slaves is within the Sync Window. Properties: AutoSetOperational BusLoad CheckLastPort ConfigRead DCClockReferenceTime DCInSyncWindow DCIntegralDivider DCPropFactor DCSyncToMaster DCSyncToMasterWithSysTime DCSyncToMasterWithSysTimeFrom2000 EnableTaskOutputMessage EnableTimeMeasurements FirstPortActive FirstSlave FrameAtTaskStart InstanceNumber LastError LastInstance LastMessage MasterState NbrSlavesFirstPort NbrSlavesSecondPort NextInstance NumberActiveSlaves OpenTimeout PdoOnlyInOperational SecondPortActive SplitFrame StartConfigWithLessDevice TaskSync WaitForPackets Methods: ClearStatistics EtherCAT_Task GetCurrentTimeInCycle GetStatistics DeviceIsInvisible Structure: AutoSetOperational (Property) BusLoad (Property) CheckLastPort (Property) ClearStatistics (Method) Config DeviceIsInvisible (Method) ConfigRead (Property) DCClockReferenceTime (Property) DCInSyncWindow (Property) DCIntegralDivider (Property) DCPropFactor (Property) DCSyncToMaster (Property) DCSyncToMasterWithSysTime (Property) DCSyncToMasterWithSysTimeFrom2000 (Property) EnableTaskOutputMessage (Property) EnableTimeMeasurements (Property) EtherCAT_Task (Method) FirstPortActive (Property) FirstSlave (Property) FrameAtTaskStart (Property) GetCurrentTimeInCycle (Method) GetStatistics (Method) InstanceNumber (Property) LastError (Property) LastInstance (Property) LastMessage (Property) MasterState (Property) NbrSlavesFirstPort (Property) NbrSlavesSecondPort (Property) NextInstance (Property) NumberActiveSlaves (Property) OpenTimeout (Property) PdoOnlyInOperational (Property) SecondPortActive (Property) SplitFrame (Property) StartConfigWithLessDevice (Property) TaskSync (Property) WaitForPackets (Property)
IoDrvEtherCAT.AutoSetOperational (PROP) ¶ PROPERTY AutoSetOperational : BOOL Sets the auto restart of slave behavior. If true then the master automatically retries to set all slaves in operational mode. If one or more slaves are added as optional devices and connected to the network then the master will start the new slaves, download all required parameters and then set the slaves to operational. If the network cable is disconnected from the PLC to first slave and reconnected then the master will work like xRestart. All data is reset and the master restarts completely.
IoDrvEtherCAT.BusLoad (PROP) ¶ PROPERTY BusLoad : USINT Returns the busload in percentage
IoDrvEtherCAT.CheckLastPort (PROP) ¶ PROPERTY CheckLastPort : BOOL Sets and returns the status of the port status check of the last slave If enabled and redundancy is not active then the port status register 16#110 of the last slave must show only port 0 active. Otherwise the in and out port of one device is wrong and it could happen that a wrong slave is used
IoDrvEtherCAT.ClearStatistics (METH) ¶ METHOD ClearStatistics Clears the statistics data as the acknowledge button in the status page of the EtherCAT master. All counters are set to zero and the measurement starts from the beginning.
Config ¶ DeviceIsInvisible (Method)
IOL_Constants (GVL) ¶ Attributes: qualified_only InOut: Scope Name Type Initial Constant MaxNumProfileID DINT 32 MaxNumDetailedDeviceStatus DINT 64
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 iolInfo : IOL_IdentificationAndDiagnosis ; END_VAR iolInfo.xExecute := true ; iolInfo ( usiCom := 1 , uiDevice := 1002 , Port := 2 ); //start request for IO-Link device data InOut: Scope Name Type Initial Comment Input xExecute BOOL A trigger causes the function selected with variable Function to be executed usiCom USINT Index of master 1: first ETC master uiDevice UINT The physical slave address to access the EtherCAT slave Port BYTE Port number 0 for the first port 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_MeasurementDataChannel (FB) ¶ FUNCTION_BLOCK IOL_MeasurementDataChannel Function Block for Measurement Data Channel (MDC). InOut: Scope Name Type Initial Comment Input xEnable BOOL TRUE Enables the function of the FB ProfileID WORD Selected ProfileID, respectively process datalayout 1 = SSP 3.1 2 = SSP 3.2 3 = SSP 3.3 4 = SSP 3.4 SubstituteValue DINT This value is applied at the outputs ValueReal and ValueDINT if ValueStatus is not equal 0 Qualifier BOOL This signal corresponds to the ProcessDataInvalid information from the sensor. FALSE = ProcessData are invalid TRUE = ProcessData are valid ProcessData POINTER TO BYTE The Process Data Input from the sensor is applied to this input (ARRAY[0..n] OF BYTE). The Process Data Input length depends on the profile for the DMS (either INT16 or INT32) Output xValid BOOL If TRUE the provided values are valid and may be used for further calculations xError BOOL If TRUE an internal error is occurred and futher information is provided provided by the Function Block via the Status variable STATUS DWORD Provides internal error codes ValueStatus INT Status of process data input: 0 = OK; 1 = PC invalid; 2 = No Data; 3 = Out of range (+); 4 = Out of range (-); 5 = Not defined ValueReal REAL Process data in real format for evaluation within the PLC ValueDINT DINT Process data in double integer format Scale INT Process data scale factor
Internal ¶ DataTypes IOL_AdditionalCode (Enum) IOL_Error (Struct) IOL_ErrorCode (Enum) IOL_IdentificationAndDiagnosis_Function (Enum) IOL_IdentificationObjects (Struct) IOL_PortError (Enum) IOL IOL_Index (Enum) IOL_ProfileIdentifier (Enum)