VersionConstants (GVL) ¶ InOut: Scope Name Type Initial Constant gc_byVersion BYTE 1 gc_Version_1 BYTE 0
File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 15.12.2017, 11:36:22 companyName string 3S-Smart Software Solutions GmbH libraryFile CAA_Mathematics.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP12 contentFile CAA_Mathematics.clean.json version version 2.0.0.0 ProjectInformation OnlineHelp bool True Released True LastModificationDateTime date 15.12.2017, 11:36:15 LibraryCategories library-category-list Intern|CAA|Utilities Author string 3S - Smart Software Solutions GmbH Company CAA Technical Workgroup DefaultNamespace MATH Description See: Description DocFormat reStructuredText LanguageModelAttribute qualified-access-only Placeholder CAA Mathematics Project CAA_Mathematics Title CAA Mathematics Version version 3.5.12.0
Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces.
ProjectPointOnLine (FUN) ¶ FUNCTION ProjectPointOnLine : BOOL This function will project the point \(x \in \mathbb{R^{3}}\) onto a straight line: thereby, the direction vector of the straight line is taken as normal vector of a plane that is moved along the line as long as it touches the point \(x\) . The intersection point of the plane with the line corresponding to this location is the projected point. InOut: Scope Name Type Comment Return ProjectPointOnLine BOOL Input pline POINTER TO LINE_3D Pointer on straight line pvOrig POINTER TO Vector3D Pointer on point \(x\) to be projected pvProj POINTER TO Vector3D Pointer to projected result
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\)
PolarToCartesian (FB) ¶ FUNCTION_BLOCK PolarToCartesian This function block will change the polar coordinates of the two dimensional space \((r, \varphi) \in \mathbb{R_{0}^{+}} \times \left( -\pi, \pi\right]\) to Cartesian coordinates \((x,y) \in \mathbb{R^{2}}\) , which are connected via: \[ \begin{align}\begin{aligned}x = \cos(\varphi) \cdot r\\y = \sin(\varphi) \cdot r\end{aligned}\end{align} \] InOut: Scope Name Type Comment Input lrAngle LREAL Angular coordinate \(\varphi\) (azimuth) lrDistance LREAL Radius \(r\) Output lrX LREAL X coordinate \(x\) lrY LREAL Y coordinate \(y\)
AddMultiplicatedVector (FUN) ¶ FUNCTION AddMultiplicatedVector : BOOL This function will multiply the input vector \(v_{2} \in \mathbb{R}\) by a scalar \(a \in \mathbb{R}\) and will add this product to the input vector \(v_{1} \in \mathbb{R}\) : \[b = v_{1} + a \cdot v_{2}\] InOut: Scope Name Type Comment Return AddMultiplicatedVector BOOL The return value is not used. Input pv1 POINTER TO Vector3d Pointer to input vector \(v_{1} \in \mathbb{R}\) pv2 POINTER TO Vector3d Pointer to input vector \(v_{2} \in \mathbb{R}\) lrFactor LREAL Scalar multiplier \(a \in \mathbb{R}\) pv POINTER TO Vector3D Pointer to result \(b\)
CrossProduct (FB) ¶ FUNCTION_BLOCK CrossProduct This function will calculate the Cartesian product (outer product) of two vectors \(v_{1}, v_{2} \in \mathbb{R^{3}}\) . The result will be returned in vector \(v = v_{1} \times v_{2} \in \mathbb{R^{3}}\) . Note Keep in mind that, due to rounding errors, the input of two collinear vectors will not necessarily result in the null vector. InOut: Scope Name Type Comment Input v1 Vector3d Input vector \(v_{1} \in \mathbb{R}\) v2 Vector3d Input vector \(v_{2} \in \mathbb{R}\) Output v Vector3D Cartesian product \(v_{1} \times v_{2} \in \mathbb{R^{3}}\)