SMC_SmoothAddAxes (FB) ¶ FUNCTION_BLOCK SMC_SmoothAddAxes This function is able to smooth motions of additional axes, which are distributed among several objects. This leads to a constant slope of the additional axes P, Q, U, V, W and to the usage of an optimized polynomial motion profile by the axes A, B and C. Activation of smoothing The marking which part is to smooth must be done with G-code and the word G71 and G70. G71 starts the smoothing, G70 ends the smoothing. But for that, the additional axes which are going to be smoothed must be defined by the parameter L<Additional axis number>. Definition of the additional axis number: Parameter Additional Axis L4 A L5 B L6 C L7 P L8 Q L9 U L10 V L11 W Example G-Code N0 G1 X100 A0 Q100 F100 N10 G71 L8 (Turn on smoothing for Q) N20 G1 X200 N30 G71 L4 (Turn on smoothing for A) N40 G1 X250 N50 G1 X300 N60 G1 X350 N70 G1 X400 A100 N80 G70 L4 (Turn off smoothing for A) N90 G1 X500 Q0 N100 G70 L8 (Turn off smoothing for Q) Note The data buffer, which is available by the function block, must be large enough containing a complete smoothing range. So, if the function block contains n objects, not more than n-3 objects can be smoothed. Otherwise, smoothing is exited with error. InOut: Scope Name Type Initial Comment Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL If TRUE , the current processing of this function block is aborted bAppend BOOL As long as this input is set to FALSE , the DataOut-queue will be cleared at each reset. As long as it is set to TRUE , newly incoming data will be written to the end of the DataOut-queue. poqDataIn POINTER TO SMC_OUTQUEUE This input path queue dSmoothingPart LREAL 0.5 In case of the additional axes A, B and C the user can determine, which part of the path is provided to the additional axes for acceleration/deceleration and which part is to operate with a constant velocity. 0 : No acceleration/deceleration phase is set. 1 : No constant motion is to be created. 0.5 : The acceleration phase plus the deceleration phase requires the same time than the constant motion. dAngleTol LREAL 0.001 For a correct parametrization of the additional axes A, B and C it is important to know, whether a object crossing leads to a stop. The input dAngleTol , which is also used in the function block SMC_CheckVelocities and in other preprocessing function blocks, is also required here. It should be occupied with always the same value. nSizeOutQueue UDINT The size of pbyBufferOutQueue in bytes. pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO This input must point to the first byte of the memory area being allocated for the SMC_OUTQUEUE structure. This area must be at least as big as defined in nSizeOutQueue . Typically the allocation of the memory buffer is done within the declaration part of the IEC-program by defining a byte-array (ExampleBuf: ARRAY[1..50] OF SMC_GEOINFO; ). The value may be predefined, but may then be modified during a reset only. Output bDone BOOL This output will be set to TRUE as soon as the input path has been processed completely.The function block will not perform any further actions until it gets reset. bBusy BOOL TRUE , while execution of function block is not finished bError BOOL Signals, that an error has occurred within the function block wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE The output path queue Structure: DoBeforeLeave (Action) InitAction (Action)
SMC_SmoothBSpline (FB) ¶ FUNCTION_BLOCK FINAL SMC_SmoothBSpline Smoothes segments of consecutive G1 elements with a B-Spline of fifth degree. Each segment of at least 5 consecutive G1 elements of non-zero length is replaced by splines. The start and end positions of the G1 elements serve as control points of the B-spline that is created. Only the start position of the segment and the end position are interpolated exactly. Each segment of n >= 5 G1 elements is replaced by n-5 polynomials. Note Does not support H-functions Does not support changes of flags like G51, G52, G40 and so on, these changes are ignored Requires 3D-Mode Can be turned on and off from G-Code using G38/G39 A spline always contains the same tool correction information (i.e. lengths and diameter) as the first of the segments that it replaces. Elements other than G1 (e.g. G0, G2, G3, …) interrupt the smoothing until the next G1 element. Additional axis: First the values of the additional axis are also converted to a B-spline. For the linear axis (P,Q,U,V,W) only the positions at the end of each polynomial are stored in SMC_GeoInfo. For the smoothed axis (A, B, C) the slope is also stored. InOut: Scope Name Type Comment Input bExecute BOOL Execution starts on the rising edge. poqDataIn POINTER TO SMC_OUTQUEUE Input path queue nSizeOutQueue UDINT Size of the data buffer pbyBufferOutQueue in bytes. pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO Points to the first byte of the memory area being allocated for the SMC_OUTQUEUE -structure. This area must be at least as big as defined in nSizeOutQueue . Typically the allocation of the memory buffer is done within the declaration part of the IEC-program by defining an array of SMC_GeoInfo (ExampleBuf: ARRAY[1..50] OF SMC_GEOINFO for a buffer which can hold 50 path` elements). After predefining the value it may be modified during a reset only. eMode SMC_SMOOTHBSPLINE_MODE The element type applied for the smoothing of the axes. wFeatureFlag WORD The feature bit (0..31) used for smoothing (controlled by G38/G39) Output bDone BOOL Will be set to TRUE as soon as the input data from poqDataIn has been processed completely. Afterwards, the function block will not perform any further actions until it gets reset. If the bExecute input is FALSE , bDone will be reset to FALSE . bBusy BOOL TRUE , while execution of function block is not finished. bError BOOL Signals, that an error has occurred within the function block. wErrorID SMC_ERROR Error identification. poqDataOut POINTER TO SMC_OUTQUEUE The queue for the output path Structure: DoBeforeLeave (Action)
SMC_SmoothMerge (FB) ¶ FUNCTION_BLOCK SMC_SmoothMerge The function block serves the preprocessing of line segments supplied by a CAD/CAM system. It is executed after decoding. It tries to approximate a maximum number of points by a polynom. The deviation from the original path must be within a given threshold. The created elements can be smoothed by use of the SMC_SmoothPath function block. In each cycle this function block appends a maximum of one element to the out-queue. Exactly one element is appended if the in-queue is full or bEndOfList is active and the out-queue is not full. The look-ahead is therefore limited by the size of the in-queue. Only movements in X, Y, Z, A, B and C are considered. The function block uses the mean-square-best-approximation, but always pass exactly through one first point (for avoiding jumps). This first point is given by the piDestPos of the last generated element. If it is the first element that we deal with, this is its piStartPos . Only the following movement types can be merged: All G01 movements G00 movements without movement in X/Y/Z direction Every other movement type or without the required feature flag will just be forwarded to the out-queue, except for one case: The first non-administrative element (i.e. no M-function, G4 etc.) after a merging block is going to be converted into a line. Note The function block does only merge the additional axes A/B/C (P/Q/U/V/W are not considered) does not support h-functions does not support changes of flags like G51, G52, G40 and so on. These changes are ignored. takes at most 128 line segments into account (as this quantity influences both performance and storage size). A spline always contains the same tool correction information (i.e. lengths and diameter) as the first of the segments that it replaces. InOut: Scope Name Type Initial Comment Input bExecute BOOL Starts on rising edge; while TRUE , the function block is active. poqDataIn POINTER TO SMC_OUTQUEUE Points to the SMC_OUTQUEUE -structure object, which contains the SMC_GEOINFO objects of the unsmoothed path; typically it points to the output poqDataOut of the preceding module (e.g. the SMC_NCDecoder ). nSizeOutQueue UDINT Size of the data buffer pbyBufferOutQueue`` in bytes pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO Points to the first byte of the memory area being allocated for the SMC_OUTQUEUE -structure. This area must be at least as big as defined in nSizeOutQueue . Typically the allocation of the memory buffer is done within the declaration part of the IEC-program by defining an array of SMC_GeoInfo (ExampleBuf: ARRAY[1..50] OF SMC_GEOINFO for a buffer which can hold 50 path elements). After predefining the value it may be modified during a reset only. piMaxDifference SMC_POSINFO The maximum allowed deviation from the original path, in X, Y, Z, A, B and C usiMaxDegree USINT 5 The maximal degree for the resulting polynomials, at most 5 wFeatureFlag WORD The feature bit (0..31) used for smoothing (controlled by G38/G39) wAdditionalParamNumber WORD The number of the additional parameter (set by G38 I/J/K) that is used as a factor multiplied to the precision dMinimumCurvatureRadius LREAL If a possibly generated spline contains a position where its curvature radius is less than this value, it won’t be generated. Output bDone BOOL Will be set to TRUE as soon as the input data from poqDataIn has been processed completely. Thereafter, the module will not perform any further actions until it gets reset. If the bExecute input is FALSE , bDone will be reset to FALSE . bBusy BOOL TRUE , while execution of function block is not finished bError BOOL Signals, that an error has occurred within the function block wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE The queue for the output path uiNrElems UINT The number of elements that have been merged in this cycle
SMC_LimitCircularVelocity (FB) ¶ FUNCTION_BLOCK SMC_LimitCircularVelocity This function block limits the path velocities of circular elements depending on the radius. For a more general function block that limits the path velocity for all kinds of path elements, please see SMC_LimitDynamics . In order to limit the acceleration to a prescribed value, the velocity of the arc at the transition sqrt(a*r) must not be exceeded. The function block controls the transition between two elements (line on circular arc, circular arc on line or circular arc on circular arc) and adapts the end velocity of the first element so that the acceleration jump will not exceed the value dMaxAccJump . Furthermore, the function block limits the acceleration in X and Y to the value dMaxAcc . InOut: Scope Name Type Initial Comment Input bExecute BOOL FALSE Execution starts on the rising edge. bAbort BOOL FALSE If TRUE , the current processing of this function block is aborted bAppend BOOL FALSE As long as this input remains FALSE , poqDataOutQueue will be cleared at each reset. As long as it remains TRUE , newly incoming data will be written to the end of the DataOutQueue. poqDataIn POINTER TO SMC_OUTQUEUE SMC_NULL This variable points to the SMC_OUTQUEUE structure object, which contains the SMC_GEOINFO objects of the path; typically it points on the output poqDataOut of the preceding module (e.g. the SMC_NCDecoder ). dMaxAcc LREAL 0 This input variable gives the maximum acceleration value permissible for circular arcs. A value equal to 0 will cause no check to be done. dMaxAccJump LREAL 0 This input variable gives the maximum acceleration jump for a transition of two objects. A value equal to 0 will cause no check to be done. nSizeOutQueue UDINT 0 This variable contains the size of the data buffer, the list of SMC_GEOINFO structure objects will be written to. This buffer must be able to hold at least five SMC_GEOINFO objects. Otherwise, SMC_LimitCircularVelocity will not execute any actions at all. Its size may be predefined, but may be modified later only during a reset. It is recommended to create the buffer as described by the example below: ExampleBuf: ARRAY[1..50] of SMC_GeoInfo . The correct buffer size will then be retrieved by use of the operator sizeof(ExampleBuf) . pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO SMC_NULL This input must point to the first byte of the memory area that is allocated for the SMC_OUTQUEUE structure. This area must be at least as big as defined in nSizeOutQueue . Typically the allocation of the memory buffer is done in the declaration part of the IEC-program by defining an array of SMC_GEOINFO (e.g. BUF: ARRAY[1..50] OF SMC_GEOINFO ; for a buffer that can store 50 path elements). The value may be predefined, but may be modified later on only during a reset. Output bDone BOOL FALSE This variable will be set to TRUE as soon as the input data from poqDataIn has been processed completely. Thereafter, the module will not perform any further actions until it gets reset. If input bExecute is FALSE , bDone will be reset to FALSE . bBusy BOOL FALSE TRUE while execution of function block is not finished bError BOOL FALSE Signals that an error has occurred within the function block wErrorID SMC_ERROR SMC_NO_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE SMC_NULL This output points on the SMC_OUTQUEUE structure managing the new SMC_GEOINFO objects. Structure: SMC_DoBeforeLeave (Action) SMC_LimitCircularVelocityInit (Action)
SMC_LimitDynamics (FB) ¶ FUNCTION_BLOCK SMC_LimitDynamics The function block reduces the velocity and acceleration/deceleration of the path so that the resulting velocities, accelerations and decelerations of the cartesian and additional axes do not exceed the input values dMaxVel , dMaxAcc and dMaxDec . Note SMC_LimitDynamics was renamed and was previously named SMC_LimitAddAxisDynamics . Using SMC_LimitDynamics Assignment of input poqDataIn Typically, poqDataOut of the previous function block is fed to the input poqDataIn . That can be an instance of the function block SMC_NCDecoder or SMC_SmoothPath . Allocating memory for the preprocessing of the path elements If the function block is executed, memory is needed, in which the processing elements are copied. The memory area must be able to hold at least five SMC_GEOINFO objects. If the memory is too small, the function block performs no actions. The memory is declared in the IEC program as an array of objects of type SMC_GEOINFO . PROGRAM Path VAR buf2 : ARRAY [1..50] OF SMC_GeoInfo ; END_VAR Feeding the allocated memory area The size of the memory is determined by the operator SIZEOF in the implementation of the IEC program and is fed to the input nSizeOutQueue . The address of the memory is defined with the operator ADR and is fed to the input pbyBufferOutQueue . InOut: Scope Name Type Comment Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL TRUE : Aborts the processing of the function block bAppend BOOL FALSE : Starts emptying poqDataOut on a rising edge at bExecute poqDataIn POINTER TO SMC_OUTQUEUE Pointer to data of structure SMC_OUTQUEUE containing the path objects of typ SMC_GEOINFO . wAxis WORD Bit field of the axes on that the operation is executed: X: Bit 0 Y: Bit 1 Z: Bit 2 A: Bit 3 B: Bit 4 C: Bit 5 P: Bit 6 Q: Bit 7 U: Bit 8 V: Bit 9 W: Bit 10 Example: 16#0104 causes limitation of Z and U dMaxVel LREAL Maximum speed value for the defined axes dMaxAccDec LREAL Maximum acceleration or deceleration value for the defined axes bIncludePathSettings BOOL TRUE : Limits the velocity, acceleration or deceleration (F, E +, E-) on the values defined in dMaxVel and dMaxAccDec nSizeOutQueue UDINT Size in bytes of the data buffer pbyBufferOutQueue , in which the path elements are copied. If the value is set, it may not be changed except after a reset. pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO Pointer to the first byte of the storage area created for the path elements. If the value is set, it may not be changed except after a reset. bStrictlyHoldAccDecABC BOOL If TRUE , the maximal accelerations and decelerations of A, B, C are strictly held. Otherwise, we use a heuristic that may lead to quicker profiles, but occasionally violate the A/B/C-acceleration-limit, if A/B/C move quickly while there is an ac- / deceleration on the path. Output bDone BOOL TRUE : input date from poqDataIn have been precessed fully. After that, the function block performs no action until a reset is detected. When bExecute is set to FALSE , bDone is reset to FALSE . bBusy BOOL TRUE : Function block in execution bError BOOL TRUE : Error has occurred wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE Pointer to data of structure SMC_OUTQUEUE containing the path elements of typ SMC_GEOINFO . Structure: SMC_AdaptAddAxes (Action) SMC_AdaptOrientationAddAxes (Action) SMC_AdaptToMaxAcceleration (Action) SMC_AdaptToMaxVelocity (Action) SMC_DoBeforeLeave (Action) SMC_LimitDynamicsInit (Action)
SMC_NCDecoder (FB) ¶ FUNCTION_BLOCK FINAL SMC_NCDecoder This function block is used to convert a CNC program (Din 66025, G-code), into a list of SMC_GEOINFO objects. In each cycle, one line of the program is decoded. Note The maximum number of M-functions in a row is 64. If the G-Code contains more than 64 M-functions in a row, the error SMC_DEC_OUTQUEUE_RAN_EMPTY occurs. This restriction can be circumvented by inserting a G75 previous to the first M-function of the sequence. G4-elements count as M-functions, too. Note As from V3.5 SP2 of the programming system, iLineNumberDecoded stores the just coded 0-based line number of the CNC file. In earlier versions, in particular CODESYS V2.3, the sentence number (= value of the N-word) had been stored there. Note This function block has been superseeded by SMC_NCInterpreter and is kept only for compatibility. It is recommended to use SMC_NCInterpreter (along with SMC_ReadNCFile2 ), which has additional features like mathematical expressions or sub programs in g-code InOut: Scope Name Type Initial Comment Inout ncprog SMC_CNC_REF This variable holds the CNC program. The program may have been created by the IEC-program or within the CNC-Editor. Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL If TRUE , the current processing of this function block is aborted bAppend BOOL If TRUE , a rising edge of bExecute won’t lead to a reset of the out-queue. Instead, newly incoming data will be written to the end of the out-queue. bStepSuppress BOOL When this input is TRUE , lines of the CNC program starting with ‚/’ will be ignored. Otherwise they will be processed. piStartPosition SMC_POSINFO Start position of the path. Only the position of the axes (piStartPosition.dX/dY/dZ/dA/dB/dC/dA1/…/dA6) is used, the other members of piStartPosition are ignored. vStartToolLength SMC_Vector3d Start tool length. nSizeOutQueue UDINT This variable contains the size of the data buffer, the list of SMC_GEOINFO structure objects will be written to. This buffer must be able to hold at least five SMC_GEOINFO objects. Otherwise, the function block will not execute any actions at all. Its size may be predefined, but may be modified later only during a reset. It is recommended to create the buffer as described by the example below: ExampleBuf: Array[1..50] of SMC_GeoInfo; The appropriate buffer size will then be retrieved by use of the operator sizeof(ExampleBuf) . pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO This input must point to the first byte of the memory area that is allocated for the SMC_OUTQUEUE structure. This area must be at least as big as defined in nSizeOutQueue . Typically the allocation of the memory buffer is done in the declaration part of the IEC-program by defining an array of SMC_GEOINFO (e.g. BUF: ARRAY[1..50] OF SMC_GEOINFO ; for a buffer that can store 50 path elements). The value may be predefined, but may be modified later on only during a reset. bEnableSyntaxChecks BOOL Turns on syntax checks that will detect invalid G-code and stop with an error in this case. It is recommended to use the syntax checks. eOriConv SMC_ORI_CONVENTION SMC_ORI_CONVENTION.ADDAXES Defines the way the orientation in the A/B/C words is interpreted. For movement commands (such as G01, G02, …), the value determines how A/B/C are treated. For values other than SMC_ORI_CONVENTION .``ADDAXES``, the angles A/B/C may be normalized, even if no coordinate rotation has been programmed. For example with orientation convention ZYZ, a programmed orientation of A=90° B=0° C=0° may result in the (equivalent) rotation A=0° B=0° C=90° in the path element. For commands that set the decoder coordinate system (G54/G55/G56), the value determines how the coordinates A/B/C are treated. If the value is SMC_ORI_CONVENTION .``ADDAXES``, then A/B/C are treated as independent additional axes, for which offsets are set. For all other values, A/B/C are treated as an orientation, and the decoder coordinate system is rotated accordingly. Note If used with tool correction functions such as SMC_ToolLengthCorr , the same orientation convention has to be used there. dCircleTolerance LREAL Tolerance to decide whether the definition of a circle makes sense. case definition via target-position and radius: If the distance between start- and end-position (both projected onto the circle plane) is greater than 2 * the radius + MAX(fCircleTolerance, 1e-06) , the circle will be converted into a line. case definition via target- and center-position: Let x be the maximum of the distance between start- and center-position and the distance between target- and center-position (projecting everything onto the circle plane). If those distances differ by more than MAX(fCircleTolerance, 0.1 * x) , the circle will be converted into a line. dPrecision LREAL The precision of the path in technical units. This value indicates the precision of the positions read from the G-Code. For example, if the G-Code is given with 3 places after the decimal point, the precision should be set to 1e-3 units. The precision must be non-negative. The precision value is used for example by path preprocessors like SMC_ToolRadiusCorr and SMC_AvoidLoop . Output bDone BOOL This variable will be set to TRUE as soon as the input data has been processed completely. The function block will not perform any further actions until it gets reset. bBusy BOOL TRUE , while execution of function block is not finished. bError BOOL Signals that an error has occurred within the function block. wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE Pointer to the SMC_OUTQUEUE structure that manages the decoded SMC_GEOINFO objects. iStatus SMC_DEC_STATUS The current status. iLineNumberDecoded DINT The variable contains the 0-based line number of the CNC file. GCodeText SMC_GCODE_TEXT The G-Code text. Methods: GetDCS Structure: GetDCS (Method)
SMC_ObjectSplitter (FB) ¶ FUNCTION_BLOCK SMC_ObjectSplitter This function can be used if a velocity optimizer (like SMC_LimitDynamics ) is applied to the queue. The limitation of SMC_LimitDynamics always affects a complete object. This means that, the smaller the objects, the better the result of the limitiation. Objects without geometrical expansion (like M-functions) or geometrical curvature (like straight lines) remain unchanged. With eMode, it is defined, how the division is done: if FIX is set, every curved object is divided in so many objects as defined in dSplittingParameter . if LENGTH is set, every object is divided so, that it has the length dSplittingParameter at most. InOut: Scope Name Type Initial Comment Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL bAppend BOOL poqDataIn POINTER TO SMC_OUTQUEUE Input path queue eMode SMC_OBJECTSPLITTERMODE Splitting mode dSplittingParameter LREAL 1 Parameters for eMode nSizeOutQueue UDINT The size of pbyBufferOutQueue in bytes pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO Output bDone BOOL This output will be set to TRUE as soon as the input path has been processed completely. bBusy BOOL TRUE , while execution of function block is not finished bError BOOL It signals that an error has occurred within the function block wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE Structure: SMC_CalcAddAxes (Action) SMC_CalcOrientationAxes (Action) SMC_DoBeforeLeave (Action) SMC_InitAction (Action)
SMC_RecomputeABCSlopes (FB) ¶ FUNCTION_BLOCK SMC_RecomputeABCSlopes Recomputes the slopes of the additional axes A,B,C so that a smooth movement results. The slope at the end of elemnt i is set as (AddAxisValue(i+1) - AddAxisValue(i-1)) / (ElementLength(i) + ElementLength(i+1)). At a stop, the slope is either set to zero, or set so that the interpolation of the additional axis is linear, depending on the input modeAtStop . InOut: Scope Name Type Initial Comment Input bExecute BOOL Starts on the rising edge poqDataIn POINTER TO SMC_OUTQUEUE Input path queue nSizeOutQueue UDINT The size of pbyBufferOutQueue in bytes pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO The buffer for the output queue dAngleTol LREAL 0.001 The angle tolerence (in angular degrees) to detect stops between elements modeNoStop SMC_ABC_SLOPES_NO_STOP Determines how the slope is set at element transitions without a stop. The default is SET_SMOOTH_CARDINAL. modeAtStop SMC_ABC_SLOPES_AT_STOP Determines how the slope is set at element transitions with a stop. The default, due to compatibility with older versions, is SET_ZERO. Output bDone BOOL Indicates the entire input path has been processed bBusy BOOL Indicates the function block is still busy processing bError BOOL An error has occurred wErrorID SMC_ERROR Error-ID poqDataOut POINTER TO SMC_OUTQUEUE The queue for the output path Structure: DoBeforeLeave (Action)
BlockSearch ¶ SMC_BlockSearch (FunctionBlock) SMC_DoBeforeLeave (Action) SMC_InitAction (Action) SMC_BlockSearchPos (Struct) SMC_BlockSearchSavePos (FunctionBlock)
DecoderBuffer ¶ SMC_GCodeJumpBuffer (FunctionBlock) DoBeforeLeave (Action) SMC_ISentenceHistory (Interface) ContainsElement (Method) RegisterElement (Method) Reset (Method) SMC_MonotoneSentenceHistory (FunctionBlock) ContainsElement (Method) RegisterElement (Method) Reset (Method)