BACnet Status Codes
Check out this article and learn more details about the i4scada BACnet Status codes.
BACnet status codes are decoded according to the following tables:
BACSTAC_STATUS | |
---|---|
BACSTAC_STATUS code | String |
BACSTAC_STATUS_OK | OK |
BACSTAC_STATUS_SERVICE_NOT_FOUND | Service not found |
BACSTAC_STATUS_NOT_INITIALIZED | Not initialized |
BACSTAC_STATUS_NOT_SUPPORTED | Not supported |
BACSTAC_STATUS_REJECT | Reject |
BACSTAC_STATUS_SERVICE_TIMEOUT | Service timeout |
BACSTAC_STATUS_INVALID_PARAM | Invalid parameter |
BACSTAC_STATUS_BUSY | Busy (BACstac Database is locked?) |
BACSTAC_STATUS_ALREADY_EXISTS | Already exists |
BACSTAC_STATUS_OUT_OF_MEMORY | Out of memory |
BACSTAC_STATUS_OUT_OF_RESOURCES | Out of resources |
BACSTAC_STATUS_DCC_DISABLED | Device Communication Control disabled |
BACSTAC_STATUS_XMT_OVERFLOW | Transmit buffer overflow |
BACSTAC_STATUS_RCV_OVERFLOW | Receive buffer overflow |
BACSTAC_STATUS_STACK_OVERFLOW | Stack overflow |
BACSTAC_STATUS_TIMEOUT | Timeout |
BACSTAC_STATUS_ILLEGAL_RESPONSE | Illegal response |
BACSTAC_STATUS_REQUEST_TOO_LONG | Request too long |
BACSTAC_STATUS_RESPONSE_TOO_LONG | Response too long |
BACSTAC_STATUS_INVALID_DATA_TYPE | Invalid data type |
BACSTAC_STATUS_VAL_OUT_OF_RANGE | Value out of range |
BACSTAC_STATUS_VAL_OUT_OF_SPACE | Value out of space |
BACSTAC_STATUS_SEG_NOT_SUPPORTED | Segmentation not supported |
BACSTAC_STATUS_SEG_ERROR | Segmentation error |
BACSTAC_STATUS_BACNET_ERROR | BACnet error |
BACSTAC_STATUS_BACNET_REJECT | BACnet reject |
BACSTAC_STATUS_BACNET_ABORT | BACnet abort |
BACSTAC_STATUS_INVALID_PACKET | Invalid packet |
BACSTAC_STATUS_INCONSISTENT_TAGS | Inconsistent tags |
BACSTAC_STATUS_DRV_NOT_FOUND | Driver didn't find Packet Driver |
BACSTAC_STATUS_DRV_NOT_SUPPORTED | Driver doesn't support Packet Driver |
BACSTAC_STATUS_DRV_CANT_INIT | Driver can't initialize |
BACSTAC_STATUS_DRV_CANT_SEND | Driver can't send |
BACSTAC_STATUS_DNET_UNREACHABLE | Destination network is unreachable |
BACSTAC_STATUS_CANNOT_BIND_TO_PORT | Cannot bind to port |
BACSTAC_STATUS_UNKNOWN_ERROR | Unknown error |
BACSTAC_STATUS_BAD_CONFIG | Bad configuration (APDU properties?) |
BACSTAC_STATUS_DATATYPE_MISALIGNMENT | Pointer is not sufficiently aligned for this data type |
BACSTAC_STATUS_TRANSACTION_ABORTED | Transaction aborted |
BACSTAC_STATUS_INCONSISTENT_VERSIONS | Inconsistent BACstac versions |
BACSTAC_STATUS_DEVICE_UNREACHABLE | Device unreachable |
BACSTAC_STATUS_DNET_IS_LOCAL | Use a local DNET as remote |
BACSTAC_STATUS_BACNET_ERROR
BACSTAC_STATUS_BACNET_ERROR appends the following Error Classes and Error Codes.
ERROR CLASSES | ||
---|---|---|
ERROR_CLASS/ERROR_CODE | String | Details |
ERR_CLASS_DEVICE = 0 | Device | This Error Class pertains to circumstances that affect the functioning of an entire BACnet device. The presence of one of these |
| Device busy | A service request has been temporarily declined because the addressed BACnet device expects to be involved in higher priority processing for a time in excess of the usual request/confirm timeout period. |
| Configuration in progress | A service request has been temporarily declined because the addressed BACnet device is in the process of being configured, either by means local to the device or by means of other protocol services. |
| Operational problem | A service request has been declined because the addressed BACnet device has detected an operational problem that prevents it from carrying out the requested service. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
ERR_CLASS_OBJECT = 1 | Object | This Error Class pertains to problems related to identifying, accessing, and manipulating BACnet objects, whether BACnet defined or not. Since these errors generally apply to individual object characteristics, they do not necessarily signal that an entire service request has failed. |
| Dynamic creation not supported | An attempt has been made to create an object using an object type that cannot be created dynamically. |
| No alarm configured | The BACnet object referenced by the service does not support, or is not configured for, event generation. |
| Object not found | A search of the addressed BACnet device's object database has failed to find any objects of the object type specified in the service request. |
| Object deletion denied | An attempt has been made to delete an object that cannot be deleted or is currently protected from deletion. |
| Object ID already exists | An attempt has been made to create a new object using an object identifier already in use. |
| Read access denied | An attempt has been made to read the properties of an object defined as inaccessible through the BACnet protocol read services. |
| Unknown object | An Object_Identifier has been specified for an object that does not exist in the object database of the addressed BACnet device. |
| Unsupported object type | An object type has been specified in a service parameter that is unknown or unsupported in the addressed BACnet device. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
ERR_CLASS_PROPERTY = 2 | Property | This Error Class pertains to problems related to identifying, accessing, and manipulating the properties of BACnet objects, whether BACnet-defined or not. Since these errors generally apply to individual property characteristics, they do not necessarily signal that an entire service request has failed. |
| Character set not supported | A character string value was encountered that is not a supported character set. |
| Datatype not supported | The data is of, or contains, a datatype not supported by this instance of this property. |
| Invalid selection criteria | A property has been referenced with a datatype inconsistent with the 'Comparison Value' specified in an 'Object Selection Criteria' service parameter. This error would arise, for example, if an analog property were compared against a Boolean constant, or vice-versa. |
| Invalid array index | An attempt was made to access an array property using an array index that is outside the range permitted for this array. |
| Invalid data type | The datatype of a property value specified in a service parameter does not match the datatype of the property referenced by the specified Property_Identifier. |
| Not COV property | The property is not conveyed by COV notification. |
| Optional functionality not supported | An attempt has been made to write a value to a property that would require the device to exhibit non-supported optional functionality. |
| Property is not an array | An attempt has been made to access a property as an array and that property does not have an array datatype. |
| Read access denied | An attempt has been made to read a property defined as inaccessible through the BACnet protocol read services. |
| Unknown property | A Property_Identifier has been specified in a service parameter that is unknown or unsupported in the addressed BACnet device for objects of the referenced object type. |
| Value out of range | An attempt has been made to write to a property with a value that is outside the range of values defined for the property. |
| Write access denied | An attempt has been made to write to a property defined as inaccessible through the BACnet protocol write services. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
ERR_CLASS_RESOURCES = 3 | Resources | This Error Class pertains to problems related to the resources of a BACnet device that affect its capacity to carry out protocol service requests. |
| No space for object | An attempt to create an object has failed because not enough dynamic memory space exists in the addressed BACnet device. |
| No space for element | An attempt to add an element to a list has failed because not enough dynamic memory space exists in the addressed BACnet device. |
| No space to write property | An attempt to write a property has failed because not enough dynamic memory space exists in the addressed BACnet device. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
ERR_CLASS_SECURITY = 4 | Security | This Error Class pertains to problems related to security. |
| Authentication failed | The message being authenticated was not generated by the service provider. |
| Character set not supported | A character string value was encountered that is not a supported character set. |
| Wrong security levels | The two clients do not have the same security authorization. |
| Invalid operator name | The 'Operator Name' is not associated with any known operators. |
| Key generation error | The key server was unable to generate a Session Key (SK). |
| Password failure | The password was incorrect. |
| Security not supported | The remote client does not support any BACnet security mechanisms. |
| Timeout | The APDU with the expected Invoke ID was not received before the waiting time expired. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
ERR_CLASS_SERVICES = 5 | Services | This Error Class pertains to problems related to the execution of protocol service requests, whether BACnet-defined or not. Without exception, these errors signal the inability of the responding BACnet-user to carry out the desired service in its entirety and are thus "fatal." |
| Character set not supported | A character string value was encountered that is not a supported character set. |
| COV subscription failed | COV Subscription failed for some reason. |
| Duplicate name | An attempt has been made to write to an Object_Name property with a value that is already in use in a different Object_Name property within the device. |
| Duplicate object ID | An attempt has been made to write to an Object_Identifier property with a value that is already in use in a different Object_Identifier within the same device. |
| File access denied | Generated in response to an AtomicReadFile or AtomicWriteFile service request for access to a file that is currently locked or otherwise not accessible. |
| Invalid parameters | A conflict exists because two or more of the parameters specified in the service |
| Invalid configuration data | The configuration data provided was invalid or corrupt. |
| Invalid event state | The 'Event State Acknowledged' parameter conveyed by an AcknowledgeAlarm service request does not match the ‘To State’ parameter of the most recent occurrence of the same transition type of the event being acknowledged. |
| Invalid file access | Generated in response to an AtomicReadFile or AtomicWriteFile request that specifies a 'File Access Method' that is not valid for the specified file. |
| Invalid file start position | Generated in response to an AtomicReadFile or AtomicWriteFile request that specifies an invalid 'File Start Position' or invalid 'File Start Record' parameter. |
| Invalid parameter type | The datatype of a value specified for a service parameter is not appropriate to the parameter. |
| Invalid time stamp | The 'Time Stamp' parameter conveyed by an AcknowledgeAlarm service request does not match the time of the most recent occurrence of the event being acknowledged. |
| Missing parameter | A parameter required for the execution of a service request has not been supplied. |
| Optional functionality not supported | An attempt has been made to write a value to a property that would require the device to exhibit non-supported optional functionality. |
| Property is not a list | An attempt has been made to access a property via either the AddListElement service or the RemoveListElement service and that property does not have a list datatype. |
| Property is not an array | An attempt has been made to access a property as an array and that property does not have an array datatype. |
| Service request denied | A request has been made to execute a service for which the requesting BACnet device does not have the appropriate authorization. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
ERR_CLASS_VT = 6 | VT | This Error Class pertains to problems related to the execution of Virtual Terminal services. |
| Unknown VT class | This error indicates that the 'VT-Class' specified in a VT-Open request was not recognized by the target device. |
| Unknown VT session | This error indicates that the 'VT-Session ID' specified in a VT-Data or VT-Close request was not recognized by the target device. |
| No VT sessions available | This error indicates that the target device could not fulfill a VT-Open request because of resource limitations. |
| VT session already closed | This error indicates that an attempt has been made to close a VT-session that has been previously terminated. |
| VT session termination failure | This error indicates that one of the 'VT-Sessions' specified in a VTClose request could not be released for some implementation-dependent reason. |
| Other | This error code is returned for a reason other than any of those previously enumerated for this Error Class. |
BACSTAC_STATUS_BACNET_REJECT
BACSTAC_STATUS_BACNET_REJECT appends the REJECT reason. Only confirmed request PDUs can be rejected. The possible reasons for rejecting the PDU are enumerated in this subclause.
REJECT REASON | ||
---|---|---|
REJECT code | String | Details |
REJECT_OTHER = 0 | Other | Generated in response to a confirmed request APDU that contains a syntax error for which an error code has not been explicitly defined. |
REJECT_BUFFER_OVERFLOW = 1 | Buffer overflow | A buffer capacity has been exceeded. |
REJECT_INCONSISTENT_PARAMS = 2 | Inconsistent parameters | Generated in response to a confirmed request APDU that omits a conditional service argument that should be present or contains a conditional service argument that should not be present. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG. |
REJECT_INVALID_DATA_TYPE = 3 | Invalid parameter data type | Generated in response to a confirmed request APDU in which the encoding of one or more of the service parameters does not follow the correct type specification. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG. |
REJECT_INVALID_TAG = 4 | Invalid tag | While parsing a message, an invalid tag was encountered. Since an invalid tag could confuse the parsing logic, any of the following Reject Reasons may also be generated in response to a confirmed request containing an invalid tag: INCONSISTENT_PARAMETERS, INVALID_PARAMETER_DATA_TYPE, MISSING_REQUIRED_PARAMETER, and TOO_MANY_ARGUMENTS. |
REJECT_MISSING_REQUIRED_PARAM = 5 | Missing required parameter | Generated in response to a confirmed request APDU that is missing at least one mandatory service argument. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG |
REJECT_PARAMETER_OUT_OF_RANGE = 6 | Parameter out of range | Generated in response to a confirmed request APDU that conveys a parameter whose value is outside the range defined for this service. |
REJECT_TOO_MANY_ARGUMENTS = 7 | Too many arguments | Generated in response to a confirmed request APDU in which the total number of service arguments is greater than specified for the service. This condition could also elicit a Reject PDU with a Reject Reason of INVALID_TAG. |
REJECT_UNDEFINED_ENUMERATION = 8 | Undefined enumeration | Generated in response to a confirmed request APDU in which one or more of the service parameters is decoded as an enumeration that is not defined by the type specification of this parameter. |
REJECT_UNRECOGNIZED_SERVICE = 9 | Unrecognized service | Generated in response to a confirmed request APDU in which the Service Choice field specifies an unknown or unsupported service. |
BACSTAC_STATUS_BACNET_ABORT
BACSTAC_STATUS_BACNET_ABORT appends the ABORT reason.
ABORT REASON | ||
---|---|---|
ABORT code | String | Details |
ABORT_OTHER = 0 | Other | This abort reason is returned for a reason other than any of those previously enumerated. |
ABORT_BUFFER_OVERFLOW = 1 | Buffer overflow | A buffer capacity has been exceeded. |
ABORT_INVALID_APDU = 2 | Invalid APDU in this state | Generated in response to an APDU that is not expected in the present state of the Transaction State Machine. |
ABORT_PREEMPTED = 3 | Preempted by higher priority task | The transaction shall be aborted to permit higher priority processing. |
ABORT_SEGMENTATION_NOT_SUPP = 4 | Segmentation not supported | Generated in response to an APDU that has its segmentation bit set to TRUE when the receiving device does not support segmentation. It is also generated when a BACnet-ComplexACK-PDU is large enough to require segmentation but it cannot be transmitted because either the transmitting device or the receiving device does not support segmentation. |