Error Codes Overview
Error codes are returned by type HRESULT. A test for non-zero value is insufficient for values of type HRESULT.
declaration | error | ok | ok but with info | check functions |
---|---|---|---|---|
hrErrorCode :HRESULT; | < 0 | >= 0 | > 0 | SUCCEEDED(), FAILED() |
The following error codes may occur.
16#9811_0000 - 16#9811_FFFF | listed in TwinCAT (ADS) Error Codes (there without high-order WORD). Further notes below on this page. |
16#9851_0000 - 16#9851_FFFF | Condition Monitoring Error Codes are listed under E_CM_ErrorCode |
16#9852_0000 - 16#9852_0FFF | Condition Monitoring Analysis Error Codes are listed in E_CMA_ErrorCodes |
16#9871_0000 - 16#9871_FFFF | MultiArray Error Codes can be found in E_MA_ErrorCode |
If an error occurs during initialization, the function block cannot be used. |
Further information on standard TwinCAT Error Codes:
error value | symbol | Error description | Remedy option |
---|---|---|---|
16#9811_070A | NOMEMORY | No memory | Incorrect memory settings |
16#9811_0719 | TIMEOUT | Device has a timeout | A timeout may occur during buffer memory transfers. Usually this is non-critical for the CM analysis chain. The response to the error depends on the type of algorithm and the precise location where the error occurred. The timeout input should only be increased if it matches the task cycle time. |
In some cases error handling with error codes is not the best choice, particularly if the actions result in an undefined value with regard to non-standard, but possible input data. Or if values were excluded from the process. In this case missing values and partially undefined results can be described by the special constant NaN (see chapter NaN values). This is used in case of errors whose appearance does not depend on the program logic, but on certain input data.