GenericQueue_SingleTask.SetWritePos (METH) ¶ METHOD FINAL SetWritePos : BOOL InOut: Scope Name Type Input nPos UDINT Return SetWritePos BOOL
GenericQueue_SingleTask.SpaceLeft (METH) ¶ METHOD FINAL SpaceLeft : UDINT Returns how many elements may be appended to the queue. InOut: Scope Name Type Return SpaceLeft UDINT
RBase_Constants (GVL) ¶ InOut: Scope Name Type Initial Constant g_EPS LREAL 1E-15 MAX_VEC_DIM DINT SM3M.SMC_MAX_VEC_DIM MAX_VPOLY_DEG UDINT 9 g_EPS_X_ROOT LREAL 1E-15 g_EPS_F_ROOT LREAL 1E-20 PI LREAL 3.1415926535897931 MAX_COUNT_DYNAMIC_CS_STATES UDINT 16
RootFinder ¶ FindRoot_Newton (FunctionBlock) FindRoot_NewtonExt (FunctionBlock) FindRoot_RegulaFalsi (FunctionBlock) FindRoot_Ridder (FunctionBlock) RF_ComputeM (Function) RF_ComputeNextC (Function) RF_HandleAstronomicArguments (Function) RF_Intervall (Struct) RF_UpdateInterval (Function) RF_Variant (Enum)
FindRoot_Newton (FB) ¶ FUNCTION_BLOCK FINAL FindRoot_Newton Finds a root x* of an equation f(x) = 0, given an initial guess x_0. The function f must be differentiable. The derivative of f should not have zeros close to the root. Note: Convergence depends on f. If f has multiple roots, it is undefined which one is found. A root must satisfy one of the following conditions: Either |f(x)| <= dEpsX, or The distance between two consecutive guesses, |r_(i-1) - r_i| is less than or equal to dEpsF * Max( |r_(i-1)| ,|r_i|) To use this fb, first call it with suitable start values: newton(bEnable:= TRUE, dx0:= x0, dfx0:= f(x0), dfx0_x:= f’(x0)) ; Then, while newton.bBusy, call it while supplying function and derivative values at the requested points newton.ri: newton(dfxi:= f(newton.dxi), dfxi_s:= f’(newton.dxi)) ; Note: the values of all inputs except bEnable, fxi, and fxi_s are only evaluated at a rising edge of bEnable, which resets the function block. The root is approximated using the newton method: x_(i+1) = x_i - f(x_i) / f’(x_i). InOut: Scope Name Type Initial Comment Input bEnable BOOL Initializes the computation on the rising edge. dx0 LREAL The initial guess df0 LREAL The function value at x0 df0_s LREAL The derivative at x0 dEpsX LREAL g_EPS_X_ROOT Epsilon for the relative size of the narrowed down interval containing the root dEpsF LREAL g_EPS_F_ROOT Epsilon for the absolute magnitude of the function at the approximated root dfi LREAL The value of f at point xi. Only necessary after initialization. dfi_s LREAL The derivative of f at point xi. Only necessary after initialization. Output bBusy BOOL Whether the computation is active bDone BOOL Whether the computation is finished dxi LREAL The approximation xi of the root
GenericQueue_SingleTask.Full (METH) ¶ METHOD FINAL Full : BOOL Returns whether the queue is full. InOut: Scope Name Type Return Full BOOL
GenericQueue_SingleTask.GetFromEnd (METH) ¶ METHOD FINAL GetFromEnd : POINTER TO BYTE Returns a pointer to the n-last element, or 0 if the queue has less than n+1 elements. The pointer is valid until the next call to RemoveFirst. InOut: Scope Name Type Input n UDINT Return GetFromEnd POINTER TO BYTE
GenericQueue_SingleTask.GetFromStart (METH) ¶ METHOD FINAL GetFromStart : POINTER TO BYTE Returns a pointer to the n-th element, or 0 if the queue has less than n+1 elements. The pointer is valid until the next call to RemoveFirst. InOut: Scope Name Type Input n UDINT Return GetFromStart POINTER TO BYTE
GenericQueue_SingleTask.GetIdxFromPtr (METH) ¶ METHOD FINAL GetIdxFromPtr : BOOL Returns the index in the queue, given the pointer to an element. Returns FALSE if the element is not an element in the queue or does not point to an element start. Not task safe! InOut: Scope Name Type Input p POINTER TO BYTE Return GetIdxFromPtr BOOL Output idx UDINT
GenericQueue_SingleTask.GetReadPos (METH) ¶ METHOD FINAL GetReadPos : UDINT InOut: Scope Name Type Return GetReadPos UDINT