PathElemRange_ContainsId (FUN) ¶ FUNCTION PathElemRange_ContainsId : BOOL Returns whether the specified pathElemId is contained in the PathElem range from kStart to kEnd . InOut: Scope Name Type Inout Const path PathQueue Input kStart UDINT kEnd UDINT pathElemId PathElem_Id Return PathElemRange_ContainsId BOOL
PathElem_AddData (STRUCT) ¶ TYPE PathElem_AddData : STRUCT InOut: Name Type Comment dynLimitsPathCommanded Path_DynLimits The commanded dynamic path limits of the element. (The maximum path velocity, path acceleration, and path jerk.) dynLimitsPathCommanded_est Path_DynLimits The estimated commanded path limits, taking into account the axis limits. These limits are never higher than dynLimitsPathCommanded, but may be lower. dynLimitsIpoParamCommanded_est Path_DynLimits The estimated limits of the interpolation parameter x of the path. Computed by projecting the axis limits on the path. These may differ from the path limits if the element is not parametrized by arc length. dynLimitsPathAncillary Path_DynLimits The ancillary dynamic path limits of the element dynLimitsAxesCommanded DynLimitsA The commanded dynamic axis limits of the element (may be lower than the global limits) dynLimitsAxesAncillary DynLimitsA The ancillary dynamic axis limits of the element ovrAxes DynFactorsA The override factors for the axis limits ovrPath SMRB.DynFactors The override factors for the path limits configOrig TRAFO.CONFIGDATA The kinematic configuration of the target position mvtIds MvtIdRange An range of the movement ids that resulted in the creation of this element. For simple buffered movements (e.g. MoveLinear, MoveDirect), the range has the movement id as the single element. For blending movements, the range is the union of the ranges of the first and second movement. cmdTargetPos PathElem_CmdPos The target position as commanded by the user. Not known for cut elements or for blending elements. bCacheMembersInitialized BOOL Internal member, used only by Trj_EvalCache, initialize with FALSE. bNoStopFromPrevElem BOOL Internal member, used only by Trj_EvalCache, initialize with FALSE. dynLimitsEffPathPrev Path_DynLimits Internal member, set and read only by Trj_EvalCache. The effective dynamic path limits valid before the element. Only valid if bNoStopFromPrevElem is TRUE. In this case, this member holds the limits of the previous movement. dynLimitsIpoParamCommandedPrev_est Path_DynLimits Internal member, set and read only by Trj_EvalCache. The estimated dynamic limits of the interpolation parameter valid before the element. Only valid if bNoStopFromPrevElem is TRUE. In this case, this member holds the limits of the previous movement. dynLimitsEffAxesPrev DynLimitsA Internal member, set and read only by Trj_EvalCache. The effective dynamic axis limits valid before the element. Only valid if bNoStopFromPrevElem is TRUE. In this case, this member holds the limits of the previous movement. dynLimitsEffPath Path_DynLimits Internal member, set and read only by Trj_EvalCache and PathElem_GetLimits. The effective dynamic path limits. dynLimitsEffAxes DynLimitsA Internal member, set and read only by Trj_EvalCache and PathElem_GetLimits. The effective dynamic axis limits. pathTolerance PathTolerance The path tolerance for the current path element. bTransition BOOL Only for debugging. Signals whether the path element is a transition, e.g. blending, element or a path element that represents the actual movement.
PathElem_CheckG2 (FB) ¶ FUNCTION_BLOCK FINAL PathElem_CheckG2 Checks whether the transition between two consecutive elements is G2 continuous, i.e. whether the position and the first and second derivative (w.r.t. the arc length) are equal where the two elements join. Also checks whether the orientation, angular velocity and angular acceleration are equal. Equality is checked up to a given accuracy. InOut: Scope Name Type Initial Comment Input dPositionTolerance LREAL SM3M.g_fSMC_CNC_EPS The allowed cartesian absolute position difference in technical units. dAngleTolerance LREAL 0.0001 The allowed angle deviation of adjacent tangents or acceleration vectors in degrees. dAccelerationMagnitudeTolerance LREAL SM3M.g_fSMC_CNC_EPS The allowed absolute difference of the acceleration magnitude dOrientationDifference LREAL SM3M.g_fSMC_CNC_EPS The allowed absolute difference between orientations, maximum angular difference of angular velocity vectors and angular velocity vectors in degrees. dAngularVelocityMagnitudeTolerance LREAL SM3M.g_fSMC_CNC_EPS The allowed absolute difference between the magnitude, of angular velocity vectors in degrees per technical unit. dAngularAccelerationMagnitudeTolerance LREAL SM3M.g_fSMC_CNC_EPS The allowed absolute difference between the magnitude, of angular acceleration vectors in degrees per technical units squared. Methods: Check Structure: Check (Method)
PathElem_CheckG2.Check (METH) ¶ METHOD FINAL Check : G2CheckResult InOut: Scope Name Type Return Check G2CheckResult Inout Const pe0 PathElem pe1 PathElem
PathElem_Eval.Eval (METH) ¶ METHOD FINAL Eval : BOOL InOut: Scope Name Type Comment Inout errCtx SMRE.ErrorContext Inout Const ef ElemFun Inout f SM3M.SMC_Frame Out: the position and orientation, given in the coordinate system of the element function. psArc ParamState Out: The value and derivatives of the parameter transformation from the interpolation parameter x to the arc length s. For axis space movements, the members are zero (except for AxisBlending: an estimate of the parameter transformation from x to arc length s is returned) Input x LREAL t LREAL bComputePsArc BOOL Return Eval BOOL
PathElem_Eval.EvalDerivs (METH) ¶ METHOD FINAL EvalDerivs : BOOL InOut: Scope Name Type Comment Inout errCtx SMRE.ErrorContext Inout Const ef ElemFun Inout w ElemDynState Out: The position/orientation and dervatives wrt. the interpolation parameter x Given in the coordinate system of the element function. Input x LREAL t LREAL Return EvalDerivs BOOL
PathElem_ProjectTriggersToBlending (FUN) ¶ FUNCTION PathElem_ProjectTriggersToBlending : BOOL InOut: Scope Name Type Comment Inout errCtx SMRE.ErrorContext peA PathElem The first element of the blending (not cut) peBld PathElem The blending element peB PathElem The second element of the blending (not cut) Input xA LREAL The position where peA will be cut for the blending xB LREAL The position where peB will be cut for the blending Return PathElem_ProjectTriggersToBlending BOOL
PathElem_TriggerPosition (STRUCT) ¶ TYPE PathElem_TriggerPosition : STRUCT InOut: Name Type triggerId ULINT x LREAL errorId SMC_ERROR
PathElem_TriggerPosition_Eq (FUN) ¶ FUNCTION PathElem_TriggerPosition_Eq : BOOL InOut: Scope Name Type Inout Const tpA PathElem_TriggerPosition tpB PathElem_TriggerPosition Return PathElem_TriggerPosition_Eq BOOL
PathElem_Triggers (STRUCT) ¶ TYPE PathElem_Triggers : STRUCT A sorted list of ascending trigger positions InOut: Name Type n UDINT a ARRAY [0..((2 * Defaults.LibParams.MAX_NUM_TRIGGERS_PER_MOVEMENT) - 1)] OF PathElem_TriggerPosition