SMC_GCodeJumpBuffer (FB) ¶ FUNCTION_BLOCK SMC_GCodeJumpBuffer InOut: Scope Name Type Initial Comment Inout ncprogIn SMC_CNC_REF CNC program input Input bExecute BOOL Rising edge starts operation. pBuffer POINTER TO SMC_GCODE_WORD Memory for internal buffer dwBufferSize UDINT Size of pBuffer pBufferOut POINTER TO SMC_GCODE_WORD Memory for ncprogOut dwBufferOutSize UDINT Size of pBufferOut in byte historyBuffer SMC_ISentenceHistory A function block keeping track of all G-Code sentence numbers that have been processed and removed from the jump buffer. If no buffer is provided, the default implementation SMC_MonotoneSentenceHistory will be used. udiRefillWindowSizePercentage UDINT 10 The amount of elements that is read and removed in one cycle and added in the next cycle, when no jump has been requested (if ncprogOut.bRestart=FALSE ). Provided in percent of the current buffer level and defaults to a minimum value of 10. A larger center window will slightly improve reading performance for long cycle times, while reducing the buffer’s chances to have a requested jump target actually buffered. Output bBusy BOOL bDone BOOL bError BOOL ErrorID SMC_ERROR ncprogOut SMC_CNC_REF CNC program output to SMC_NCDecoder bExecuteDecoder BOOL Set to TRUE as soon as ncprogOut is filled sufficiently to be interpreted by SMC_NCDecoder ; Structure: DoBeforeLeave (Action)
SMC_GCodeJumpBuffer.DoBeforeLeave (ACT) ¶
SMC_ScaleQueue3D.SMC_DoBeforeLeave (ACT) ¶
SMC_ScaleQueue3D.SMC_ScaleQueueInit (ACT) ¶
SMC_TranslateQueue3D.SMC_DoBeforeLeave (ACT) ¶
SMC_TranslateQueue3D.SMC_TranslateQueueInit (ACT) ¶
SMC_BlockSearch (FB) ¶ FUNCTION_BLOCK SMC_BlockSearch This function block shortens the path from start up to the position that is stored in SMC_BlockSearchPos . From this position, the original path is put on. SMC_BlockSearch runs in the context of path preprocessing and is typically inserted right before SMC_CheckVelocities . Note SMC_BlockSearch requires the position values from SMC_BlockSearchSavePos , which must have been executed before. Note The element to restart with is identified by its sourceline number. So, there will be ambiguities when dealing with subprograms (we will restart with the first element holding the correct sourceline number, which, in general, is part of the main program). InOut: Scope Name Type Comment Inout ePos SMC_BlockSearchPos Position information. Requires connection to output ePos of SMC_BlockSearchSavePos Input bExecute BOOL Risign edge: Enables the function block 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 , that are interpolated. bStartFromSavedPos BOOL TRUE : Enables the function block to shorten the path from start up to the position, that is stored in SMC_BlockSearchPos . FALSE : Disables the function block 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. 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 Possible values SMC_BS_SAVEDPOS_NOT_REACHED : Stored position has not been found. Probably wrong path. SMC_BS_NO_POS_STORED : ePos contains no stored position. Possible cause is that SMC_BlockSearchSavePos was not executed or in a wrong way. poqDataOut POINTER TO SMC_OUTQUEUE Pointer to data of structure SMC_OUTQUEUE containing the path elements of type SMC_GEOINFO that have been processed Structure: SMC_DoBeforeLeave (Action) SMC_InitAction (Action)
SMC_INCSymbolTable (ITF) ¶ INTERFACE SMC_INCSymbolTable Interface for a symbol table that can be used to look up global variables and CNC sub program signatures. Methods: GetSubprogramSignature LookupGlobalVar StoreSubprogramSignature Structure: GetSubprogramSignature (Method) LookupGlobalVar (Method) StoreSubprogramSignature (Method)
SMC_INCSymbolTable.GetSubprogramSignature (METH) ¶ METHOD GetSubprogramSignature : SMC_NCSymbolResult Queries for the signature of a subprogram. There are three possible results: the signature is known and is returned immediately (FOUND), the signature is not known and is being looked up in the background (LOOKING), and there was an error looking up the signature (ERROR). If the return value is LOOKING, the signature should be queried again in the next cycle. InOut: Scope Name Type Comment Return GetSubprogramSignature SMC_NCSymbolResult Inout Const stSubprogramName STRING The name of the sub program (case insensitive). Inout subSig SMC_NC_SubSignature Out: the sub program parameters, only written if return value is FOUND.
SMC_INCSymbolTable.LookupGlobalVar (METH) ¶ METHOD LookupGlobalVar : BOOL Looks up the pointer and type of a global variable given the variable name. InOut: Scope Name Type Comment Return LookupGlobalVar BOOL Input stName STRING The name of the variable Output pAddr POINTER TO BYTE Pointer to the variable tc TypeClass Type of the variable