BACnetDateTime (STRUCT) ¶ TYPE BACnetDateTime : STRUCT Helper Structure for CODESYS-typed date times to work with BACnet properties of BACnet standard type “BACnetDateTime” represented by CmpBACnet.IEC_BACNET_DATE_TIME. Please note: CmpBACnet.IEC_BACNET_DATE_TIME allows “unspecified” elements, but BACnetDateTime does not for historic reason. CmpBACnet.IEC_BACNET_DATE_TIME allows “unspecified” elements which are used for two different objectives. 1.) eventually “fully unspecified”: properties representing a time stamp or a time range start / end, for example BinaryInput.Change_Of_State_Time or TrendLog.Start_Time / .Stop_Time 2.) eventually “partially unspecified”: Schedule.Exception_Schedule The BACnet standard uses the terms “fully unspecified” or “fully specified”, but not the term “partially unspecified” (instead a bit more unspecific “unspecified”). “fully unspecified”: In most cases a time stamp indicates the time of a change of object state. Prior to first change of object state the time stamp is supposed to be “unspecified”. For an example see File.Modification_Date or PulseConverter.Update_Time Another use case of “fully unspecified” is a time range - see TrendLog.Start_Time and .Stop_Time or Schedule. “partially unspecified” is mainly used in Schedule.Exception_Schedule BACnetDateTime has been used in earlier versions of CODESYS BACnet as an API type instead of CmpBACnet.IEC_BACNET_DATE_TIME for convenience. So an interface breaking change would have been necessary to switch to CmpBACnet.IEC_BACNET_DATE_TIME to allow “unspecified” directly. We found this too hard of a measure, so we kept BACnetDateTime as an API type and added some assumptions and helper functions. Assumption: a BACnetDateTime dat = D#1970-1-1 AND tim = T#0S (begin of universe) or dat = D#2106-2-7 AND tim = T#23H59M59S999MS (end of universe) is assumed to be “fully unspecified”. Helper functions: IsBACnetBACnetDateTimeUnspecified to check if a BACnetDateTime is “fully unspecified”. IsBACnetDateTimeUnspecified to check if a CmpBACnet.IEC_BACNET_DATE_TIME is “fully unspecified”. InitializeBACnetDateTimeUnspecified to initialize a CmpBACnet.IEC_BACNET_DATE_TIME to “fully unspecified”. BACnetObjectBase.SetBACnetDateTimePropertyToUnspecified to initialize a property to “fully unspecified”. InOut: Name Type dat DATE tim TIME
BACnetDevObjPropReference (STRUCT) ¶ TYPE BACnetDevObjPropReference : STRUCT Helper Structure for CODESYS-Typed device object property references. InOut: Name Type objectID CmpBACnet.IEC_BACNET_OBJECT_ID propID CmpBACnet.IEC_BACNET_PROPERTY_ID index CmpBACnet.IEC_BACNET_SIGNED fDevicePresent BOOL deviceInstNumber CmpBACnet.IEC_BACNET_DWORD
IBACnetPersistence.RestoreClientCreatedObjects (PROP) ¶ PROPERTY RestoreClientCreatedObjects : BOOL Controls if objects which have been created with client request should be restored (or not).
IBACnetPersistence.UpdateProperties (METH) ¶ METHOD UpdateProperties : CmpBACnet.IEC_BACNET_STATUS Updates the object initialization data with the persistent data (if present). InOut: Scope Name Type Comment Return UpdateProperties CmpBACnet.IEC_BACNET_STATUS Input devInstance CmpBACnet.IEC_BACNET_DWORD The device instance for which objects the update should be done. objID CmpBACnet.IEC_BACNET_OBJECT_ID The object identifier for which the update should be done. Inout propList POINTER TO CmpBACnet.IEC_BACNET_PROPERTY_INSTANCE The pointer to the array with the property declarations for the object initialization. propCount CmpBACnet.IEC_BACNET_UNSIGNED The number of entries in the array with properties. Output pBuffer POINTER TO BYTE This pointer is used to store the allocated buffer pointer which contains the loaded data which are needed for object construction. The application has to free this buffer after object construction.
IBACnetPersistence.FreePersistenceInfos (METH) ¶ METHOD FreePersistenceInfos : CmpBACnet.IEC_BACNET_STATUS Deallocate buffer allocated from IBACnetPersistence.GetPersistenceInfos . InOut: Scope Name Type Comment Return FreePersistenceInfos CmpBACnet.IEC_BACNET_STATUS Input pInfo POINTER TO BACnetPersistenceInfo Array of information about stored objects.
IBACnetPersistence.FreeUpdatePropertiesBuffer (METH) ¶ METHOD FreeUpdatePropertiesBuffer : CmpBACnet.IEC_BACNET_STATUS Deallocate buffer allocated from IBACnetPersistence.UpdateProperties . InOut: Scope Name Type Return FreeUpdatePropertiesBuffer CmpBACnet.IEC_BACNET_STATUS Input pBuffer POINTER TO BYTE
IBACnetPropertyConfiguration.GetPropertyAttributes (METH) ¶ METHOD GetPropertyAttributes : BOOL Gets the property attributes of a given object property. Returns FALSE, if no propAttr for objID/propID is provided. InOut: Scope Name Type Return GetPropertyAttributes BOOL Input objID CmpBACnet.IEC_BACNET_OBJECT_ID propID CmpBACnet.IEC_BACNET_PROPERTY_ID Output propAttr BACnetPropertyAttributes
IBACnetPropertyConfiguration.Name (PROP) ¶ PROPERTY Name : STRING
BACnetPropertyAttributes (STRUCT) ¶ TYPE BACnetPropertyAttributes : STRUCT BACnetPropertyAttributes are used to configure existance, writability and persistence of BACnet object properties. InOut: Name Type Initial existent BACnetPropertyAttributeExistent BACnetPropertyAttributeExistent.DEFAULT writable BACnetPropertyAttributeWritable BACnetPropertyAttributeWritable.DEFAULT persist BACnetPropertyAttributePersistent BACnetPropertyAttributePersistent.DEFAULT
BACnetSetpointReference (STRUCT) ¶ TYPE BACnetSetpointReference : STRUCT Helper Structure for CODESYS-Typed set point references. InOut: Name Type propPresent BOOL prop CmpBACnet.IEC_BACNET_OBJ_PROP_REFERENCE