IBACnetServer.GetNumPersistentObjects (METH) ¶ METHOD GetNumPersistentObjects : UDINT Gets the number of BACnet-Objects with persistent properties InOut: Scope Name Type Return GetNumPersistentObjects UDINT
CalcHesseRepresentation (FB) ¶ FUNCTION_BLOCK CalcHesseRepresentation This function block will retrieve the normal form (due to Hesse) of a plane \(E\) in the three dimensional space: \(E\colon(x-p)\cdot n = 0\) , where \(n\) is the normed normal on the plane and \(p\) a point on the plane. The plane is originally specified by three of its points. InOut: Scope Name Type Comment Input vP1 POINTER TO Vector3D point on plane \(E\) vP2 POINTER TO Vector3D point on plane \(E\) vP3 POINTER TO Vector3D point on plane \(E\) Output plane PLANE_H normal form of plane \(E\) xError BOOL Error flag TRUE : If input points are collinear
ProjectPointOnPlane (FUN) ¶ FUNCTION ProjectPointOnPlane : LREAL This function will project a point \(x \in \mathbb{R^{3}}\) onto a plane in direction of the normal vector. The return is the distance of the point \(x\) to the plane. InOut: Scope Name Type Comment Return ProjectPointOnPlane LREAL Input pplane POINTER TO Plane_H Pointer on plane description pvOrig POINTER TO VECTOR3D Pointer on point \(x \in \mathbb{R^{3}}\) to be projected pvProj POINTER TO VECTOR3D Pointer on projection of \(x\) onto plane
CartesianToPolar (FB) ¶ FUNCTION_BLOCK CartesianToPolar This function block will change the Cartesian coordinates of the two dimensional space \((x,y) \in \mathbb{R^{2}}\) , to polar coordinates \((r, \varphi) \in \mathbb{R_{0}^{+}} \times \left( -\pi, \pi\right]\) , which are connected via: \[ \begin{align}\begin{aligned}r=\sqrt{x^{2} + y^{2}}\\\varphi = \arctan\left(y, x\right)\end{aligned}\end{align} \] InOut: Scope Name Type Comment Input lrX LREAL X coordinate \(x\) lrY LREAL Y coordinate \(y\) Output lrAngle LREAL Angular coordinate \(\varphi\) (azimuth) lrDistance LREAL Radius \(r\)
CAA Tick ¶ Functions GetProperty (Function) GetTick (Function) GlobalConstants PropertyConstants (GVL)
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
Functions ¶ GetProperty (Function) GetTick (Function)
GetProperty (FUN) ¶ FUNCTION GetProperty : __XWORD InOut: Scope Name Type Return GetProperty __XWORD Input wProperty WORD
GetTick (FUN) ¶ FUNCTION GetTick : CAA.TICK InOut: Scope Name Type Return GetTick CAA.TICK Input xDummy BOOL
GlobalConstants ¶ PropertyConstants (GVL)