9.5. Diagnosis

9.5.1. emonGetDiagnosisImagePtr

EC_T_BYTE *emonGetDiagnosisImagePtr(EC_T_DWORD dwInstanceID)

Gets the diagnosis image pointer.

Parameters

dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

Returns

Diagnosis image pointer

9.5.2. emonGetDiagnosisImageSize

EC_T_DWORD emonGetDiagnosisImageSize(EC_T_DWORD dwInstanceID)

Gets the diagnosis image size.

Parameters

dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

Returns

Diagnosis image size

9.5.3. emonGetMasterSyncUnitInfoNumOf

EC_T_DWORD emonGetMasterSyncUnitInfoNumOf(EC_T_DWORD dwInstanceID)

Get number of Master Sync Units info entries.

Parameters

dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

Returns

Number of Master Sync Units info entries

9.5.4. emonGetMasterSyncUnitInfo

EC_T_DWORD emonGetMasterSyncUnitInfo(EC_T_DWORD dwInstanceID, EC_T_WORD wMsuId, EC_T_MSU_INFO *pMsuInfo)

Get information about a specific Master Sync Unit.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • wMsuId – [in] Master Sync Unit to get the information from

  • pMsuInfo – [out] Pointer to an EC_T_MSU_INFO structure receiving the Master Sync Unit information

Returns

EC_E_NOERROR or error code

MSU_ID_ALL_INFO_ENTRIES retrieves the information from all MainDevice sync units at once. The application must ensure that pMsuInfo is capable for all entries.

struct EC_T_MSU_INFO

Public Members

EC_T_WORD wMsuId

[out] Master Sync Unit ID (ENI: Slave/ProcessData/RxPdo[1..4]@Su, Slave/ProcessData/TxPdo[1..4]@Su, comment at Cyclic/Frame/Cmd)

EC_T_DWORD dwBitOffsIn

[out] Process Data Image INPUTs bit offset

EC_T_DWORD dwBitSizeIn

[out] Process Data Image INPUTs bit length

EC_T_DWORD dwBitOffsOut

[out] Process Data Image OUTPUTs bit offset

EC_T_DWORD dwBitSizeOut

[out] Process Data Image OUTPUTs bit length

EC_T_WORD wWkcStateDiagOffsIn

[out] INPUTs WkcState bit offset in Diagnosis Image. (Bit values: 0 = Process Data valid, 1 = Process Data invalid)

EC_T_WORD wWkcStateDiagOffsOut

[out] OUTPUTs WkcState bit offset in Diagnosis Image. (Bit values: 0 = Process Data valid, 1 = Process Data invalid)

EC_T_DWORD adwReserved[16]

reserved

9.5.5. emonGetSlaveStatistics

EC_T_DWORD emonGetSlaveStatistics(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId, EC_T_SLVSTATISTICS_DESC *pSlaveStatisticsDesc)

Get Slave’s statistics counter.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave id

  • pSlaveStatisticsDesc – [out] Pointer to structure EC_T_SLVSTATISTICS_DESC

Returns

EC_E_NOERROR or error code

9.5.6. emonBadConnectionsDetect

EC_T_DWORD emonBadConnectionsDetect(EC_T_DWORD dwInstanceID, EC_T_BOOL bRefreshSlaveStatistics, EC_T_DWORD dwTimeout)

Detects bad connections.

Analyzes the slave ESC error counters:

  • Invalid Frame Counter (0x0300),

  • RX Error Counter (0x0301),

  • Lost Link Counter (0x0310),

whether there is a problem in the area PHY - connector - cable - connector - PHY. If one of the above error counters shows a value not equal to zero, an EC_NOTIFY_BAD_CONNECTION is generated, which contains the exact position of the faulty connection.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • bRefreshSlaveStatistics – [in] Not supported by EC-Monitor, set to EC_FALSE

  • dwTimeout – [in] Timeout [ms]. Not currently used by EC-Monitor, but may not be EC_NOWAIT!

Returns

EC_E_NOERROR or error code

9.5.7. emonIoCtl - EC_IOCTL_GET_SLVSTATISTICS

EC_IOCTL_GET_SLVSTATISTICS

Get Slave’s statistics counter. Counters are collected on a regular basis (default: off) and show errors on Ethernet layer.

Parameters
  • pbyInBuf – [in] Pointer to an EC_T_DWORD type variable containing the slave id

  • dwInBufSize – [in] Size of the input buffer provided at pbyInBuf in bytes

  • pbyOutBuf – [out] Pointer to struct EC_T_SLVSTATISTICS_DESC

  • dwOutBufSize – [in] Size of the output buffer provided at pbyOutBuf in bytes

  • pdwNumOutData – [out] Pointer to EC_T_DWORD. Amount of bytes written to the output buffer.

Returns

EC_E_NOERROR or error code

struct EC_T_SLVSTATISTICS_DESC

Public Members

EC_T_BYTE abyInvalidFrameCnt[ESC_PORT_COUNT]

[out] Invalid Frame Counters per Slave Port

EC_T_BYTE abyRxErrorCnt[ESC_PORT_COUNT]

[out] RX Error Counters per Slave Port

EC_T_BYTE abyFwdRxErrorCnt[ESC_PORT_COUNT]

[out] Forwarded RX Error Counters per Slave Port

EC_T_BYTE byProcessingUnitErrorCnt

[out] Processing Unit Error Counter

EC_T_BYTE byPdiErrorCnt

[out] PDI Error Counter

EC_T_WORD wAlStatusCode

[out] AL Status Code

EC_T_BYTE abyLostLinkCnt[ESC_PORT_COUNT]

[out] Lost Link Counters per Slave Port

EC_T_UINT64 qwReadTime

[out] Timestamp of the last read [ns]

EC_T_UINT64 qwChangeTime

[out] Timestamp of the last counter change [ns]

See also

emonIoCtl()

9.5.8. emonClearSlaveStatistics

EC_T_DWORD emonClearSlaveStatistics(EC_T_DWORD dwInstanceID, EC_T_DWORD dwSlaveId)

Clears all error registers of a slave.

Parameters
  • dwInstanceID – [in] Instance ID (Multiple EtherCAT Network Support)

  • dwSlaveId – [in] Slave Id, INVALID_SLAVE_ID clears all slaves

Returns

EC_E_NOERROR or error code

Note

Only the buffered error register values are deleted. The actual counters on the SubDevices remain unchanged.

See also

emonGetSlaveId()

9.5.9. emonIoCtl - EC_IOCTL_CLR_SLVSTATISTICS

EC_IOCTL_CLR_SLVSTATISTICS

Clear all error registers in all slaves.

Parameters
  • pbyInBuf – [in] Should be set to EC_NULL

  • dwInBufSize – [in] Should be set to 0

  • pbyOutBuf – [out] Should be set to EC_NULL

  • dwOutBufSize – [in] Should be set to 0

  • pdwNumOutData – [out] Should be set to EC_NULL

Returns

EC_E_NOERROR or error code

See also

emonIoCtl()

9.5.10. emonIoCtl - EC_IOCTL_SB_STATUS_GET

EC_IOCTL_SB_STATUS_GET

This call will get the status of the last bus scan.

Parameters
  • pbyInBuf – [in] Should be set to EC_NULL

  • dwInBufSize – [in] Should be set to 0

  • pbyOutBuf – [out] Pointer to EC_T_SB_STATUS_NTFY_DESC

  • dwOutBufSize – [in] Size of the output buffer in bytes

  • pdwNumOutData – [out] Pointer to EC_T_DWORD. Amount of bytes written to the output buffer.

Returns

EC_E_NOERROR or error code