Path_DynLimits (ALIAS) ¶ TYPE Path_DynLimits : SMRB.DynLimits
Path_DynLimitsAsym (STRUCT) ¶ TYPE Path_DynLimitsAsym : STRUCT Asymmetric path limits, where the magnitude of the minimum and maximum value may differ. InOut: Name Type fVelMin LREAL fVelMax LREAL fAccMin LREAL fAccMax LREAL fJerkMin LREAL fJerkMax LREAL
Path_DynLimitsAsym_Infinity (FUN) ¶ FUNCTION Path_DynLimitsAsym_Infinity InOut: Scope Name Type Inout l Path_DynLimitsAsym
Path_DynLimitsAsym_Intersect (FUN) ¶ FUNCTION Path_DynLimitsAsym_Intersect InOut: Scope Name Type Inout l Path_DynLimitsAsym Inout Const l0 Path_DynLimitsAsym l1 Path_DynLimitsAsym
PathElemQueue (FB) ¶ FUNCTION_BLOCK FINAL PathElemQueue A fifo queue of path elements. In contrast to |Trj_PathQueue| , the elements also store their start position in the entire path. This queue is used for the interface between |TrajectoryPlanner| and FineInterpolator . If the path is changed dynamically, e.g. by an aborting movement, consecutive elements in this queue may not be continuous. In other words, a new element can have a start position less than the sum of start position and length of the previous element. The queue is written by one task and read by the other. The method Append is only called by the producer task, the methods GetFromStart and RemoveFirst are only called by the consumer task. The queue also holds the start position of the path in ACS. This is needed by the FineInterpolator to initialize aRef. The path elem queue together with the sample queue ( Trj_SampleQueue ) is the output of the planner for the FineInterpolator . Both queues are filled in lock-step: as soon as a sample in the sample queue references a path element, this element is added to the path queue. The following invariants hold between the queues and the planning position: The current path element (i.e. the element that contains the position of the planner on the path) is the last element of the path element queue. The end position of the last sample of the sample queue is not beyond the end of the last element of the path element queue. The trajectory is divided into so called segments. A segment is a section of the path between two planned stops. E.g., if a buffered movement is commanded, it will always start a new segment. Segments are stored in the sample queue and path element queue with segment counters (nSegment). The position on the path consists of the segment counter and w.dS (w : DynState). The segment counter is necessary, because w.dS is reset to zero at segment start. There is an additional invariant wrt. segments: The last sample before a new segment has velocity and acceleration zero. Methods: Append Capacity Full GetFromEnd GetFromStart GetReadPos GetWritePos HasSpaceFor Init IsEmpty NumElems RemoveAll RemoveFirst Reset SetPointer SetReadPos SetWritePos SpaceElemFunsLeft SpaceElemsLeft StartCycle Structure: Append (Method) Capacity (Method) Full (Method) GetFromEnd (Method) GetFromStart (Method) GetReadPos (Method) GetWritePos (Method) HasSpaceFor (Method) Init (Method) IsEmpty (Method) NumElems (Method) RemoveAll (Method) RemoveFirst (Method) Reset (Method) SetPointer (Method) SetReadPos (Method) SetWritePos (Method) SpaceElemFunsLeft (Method) SpaceElemsLeft (Method) StartCycle (Method)
PathElemQueue.GetFromStart (METH) ¶ METHOD FINAL GetFromStart : POINTER TO PathElemOff Returns a pointer to the n-th element if the queue is at least n elements, otherwise 0. The pointer is valid until the next call to RemoveFirst. Only to be called safely from the consumer task, or when it is made sure that no elements are removed concurrently. InOut: Scope Name Type Input n UDINT Return GetFromStart POINTER TO PathElemOff
PathElemQueue.GetReadPos (METH) ¶ METHOD PUBLIC FINAL GetReadPos InOut: Scope Name Type Inout readPos PathElemQueue_ReadWritePos
PathElemQueue.Full (METH) ¶ METHOD FINAL Full : BOOL Returns whether the queue is full. InOut: Scope Name Type Return Full BOOL
PathElemQueue.GetFromEnd (METH) ¶ METHOD FINAL GetFromEnd : POINTER TO PathElemOff Returns a pointer to the n-last element if the queue is at least n elements, otherwise 0. The pointer is valid until the next call to RemoveFirst. Only to be called safely from the producer task, or when it is made sure that no elements are added concurrently. InOut: Scope Name Type Input n UDINT Return GetFromEnd POINTER TO PathElemOff
IpoResult_AbsoluteStandstill (FUN) ¶ FUNCTION IpoResult_AbsoluteStandstill : BOOL InOut: Scope Name Type Inout Const ipoResult IpoResult uq SMRB.DynVState Return IpoResult_AbsoluteStandstill BOOL