SM3_CamBuilder ¶ DataTypes Boundary (Struct) CAM_SEGMENT (Struct) Globals LibParams (ParamList) POUs CamBuilder (FunctionBlock) Append (Method) CheckContinuity (Method) Init (Method) IsErrorPending (Method) Write (Method) Constructors Bound (Function) BoundImplicit (Function) Line (Function) Poly5 (Function) Poly5_Coeffs (Function) Poly7 (Function) Poly7_Coeffs (Function) Converter InitCamRef (Function)
DataTypes ¶ Boundary (Struct) CAM_SEGMENT (Struct)
Boundary (STRUCT) ¶ TYPE Boundary : STRUCT Represents the values of the left or right boundary of a cam segment. Please use the functions Bound or BoundImplicit to initialize this data type. InOut: Name Type Comment x LREAL Master position y LREAL Slave position v LREAL Slave velocity: First derivative of the slave position as a function of the master position. a LREAL Slave acceleration: Second derivative of the slave position as a function of the master position. j LREAL Slave jerk: Third derivative of the slave position as a function of the master position. implicit BOOL Whether the boundary values should be retrieved implicitly from the previous or next boundary.
CAM_SEGMENT (STRUCT) ¶ TYPE CAM_SEGMENT : STRUCT A generic description of a cam segment. Please use the corresponding constructor functions to initialize this data type, e.g. Line , Poly5 or Poly5_Coeffs .
Globals ¶ LibParams (ParamList)
LibParams (PARAMS) ¶ Attributes: qualified_only InOut: Scope Name Type Initial Comment Constant MAX_CAM_SEGMENT_COUNT UDINT 100 The maximum count of cam segments that the |SMC_CamBuilder| can process.
POUs ¶ CamBuilder (FunctionBlock) Append (Method) CheckContinuity (Method) Init (Method) IsErrorPending (Method) Write (Method) Constructors Bound (Function) BoundImplicit (Function) Line (Function) Poly5 (Function) Poly5_Coeffs (Function) Poly7 (Function) Poly7_Coeffs (Function) Converter InitCamRef (Function)
CamBuilder (FB) ¶ FUNCTION_BLOCK FINAL CamBuilder Function block to construct cams. To change the maximum allowed number of cam segments, please change the library parameter MAX_CAM_SEGMENT_COUNT. Methods: Append CheckContinuity Init IsErrorPending Write Structure: Append (Method) CheckContinuity (Method) Init (Method) IsErrorPending (Method) Write (Method)
CamBuilder.Append (METH) ¶ METHOD FINAL Append : BOOL Appends the cam segment segment to the cam. The return value signals whether the segment has been appended successfully. The method IsErrorPending can be used to retrieve a more specific error code. Please use the return value of the constructor function for the desired segment type (e.g. Line , Poly5 or Poly5_Coeffs ) for the segment input. InOut: Scope Name Type Return Append BOOL Input segment CAM_SEGMENT
CamBuilder.CheckContinuity (METH) ¶ METHOD FINAL CheckContinuity : SMC_ERROR Checks the continuity of the cam segments of the cam builder with respect to the given continuity requirements. In case of a continuity violation the error SMC_CAM_BUILDER_CONTINUITY_REQUIREMENT_VIOLATED is returned. InOut: Scope Name Type Comment Return CheckContinuity SMC_ERROR Input checkPosition BOOL Indicates whether the continuity of the position should be checked at segment boundaries checkVelocity BOOL Indicates whether the continuity of the velocity should be checked at segment boundaries checkAcceleration BOOL Indicates whether the continuity of the acceleration should be checked at segment boundaries checkJerk BOOL Indicates whether the continuity of the jerk should be checked at segment boundaries isPeriodic BOOL Indicates whether the cam table is periodic, i.e. whether the continuity between the end of the last segment and the start of the first segment should be checked. Output violatedSegmentIndex UDINT The segment where the violation was detected. The segment index is 0-based and states that the continuity violation occurred at the end of the respective segment. positionViolated BOOL Indicates whether the continuity requirement for the position has been violated velocityViolated BOOL Indicates whether the continuity requirement for the velocity has been violated accelerationViolated BOOL Indicates whether the continuity requirement for the acceleration has been violated jerkViolated BOOL Indicates whether the continuity requirement for the jerk has been violated