SMC_NCTokenizer.ResetOutputs (ACT) ¶
SMC_NCTokenizer.SetDelimiters (METH) ¶ METHOD FINAL SetDelimiters : BOOL Reconfigures delimiters for comment, string and variable tokens. Returns TRUE if configuration was accepted and the FB isn’t busy, FALSE otherwise. This method typically is called before SMC_NCTokenizer is called in the first place. Delimiter tokens may start with every character in aby*StartDelim , but must end with the character in aby*EndDelim with the same array index as the starting character. Only the following values/characters are allowed as delimiters: 33 ! , 34 " , 35 # , 36 $ , 37 % , 38 & , 39 ' , 40 ( , 41 ) , 42 * , 43 + , 44 , , 45 - , 47 / , 58 : , 59 ; , 60 < , 61 = , 62 > , 63 ? , 64 @ , 91 [ , 92 \ , 93 ] , 94 ^ , 96 ´ , 123 { , 124 | , 125 } , 126 ~ A maximum of 3 different pairs of delimiters can be configured for each token type. Delimiters will be checked for ambiguitiy against each other. Only operator characters not used as delimiter will be recognized as operators. InOut: Scope Name Type Comment Return SetDelimiters BOOL Inout Const delimCfg SMC_NCScanner_DelimConfig Output aValOps ARRAY [0..(SoftMotion_Token_Constants.c_numVarNameChars - 1)] OF BYTE List of characters effectively handled as operators after substracting all configured delimiters; 0 value must be ignored.
SMC_ReadNCTokens (FB) ¶ FUNCTION_BLOCK SMC_ReadNCTokens SMC_ReadNCTokens reads from a SMC_TokenQueue of SMC_Token and transforms it into a SMC_CNC_REF . InOut: Scope Name Type Comment Inout ncprog SMC_CNC_REF Output CNC program tokens SMC_TokenQueue Input token queue Input bExecute BOOL While TRUE , the function block is active. pBuffer POINTER TO BYTE Pointer on a sufficiently large, free data area (buffer) that is allocated in the IEC application. It is strongly recommended to allocate the buffer as ARRAY[0..x] OF |ioSMC_GCODE_WORD| in order to make sure to have a correct data alignment. A definition of ARRAY[0..x] OF BYTE may lead to a misaligned data access on some platforms. dwBufferSize DWORD Size of the buffer in byte pStringBuffer POINTER TO SMC_StringBuffer Pointer to an object of type SMC_StringBuffer This object is used to store strings that are defined in the G-code program in order to write them to variables using G36&37. If the pointer is not set (0) and string constants are used in the G-code program, an error will be generated.(´´SMC_RNCF_NO_STRINGBUFFER´´). pvl POINTER TO SMC_VARLIST If there aren’t variables in the CNC programm, this input isn’t set. SMC_VARLIST fDefaultVel LREAL fDefaultAccel LREAL fDefaultDecel LREAL fDefaultVelFF LREAL Default velocity for fast forward (G0), FF word fDefaultAccelFF LREAL Default acceleration for fast forward (G0), EF+ word fDefaultDecelFF LREAL Default deceleration for fast forward (G0), EF- word. A non- negative value is expected. b3DMode BOOL If TRUE, an implicit G17 is prepended to the G-code. bEnableSyntaxChecks BOOL Turns on syntax checks that will detect invalid g-code and stop with an error in this case Output bDone BOOL TRUE if parameter is available bBusy BOOL TRUE while execution of function block is not finished. bError BOOL TRUE signals that an error has occurred within the function block. ErrorID SMC_ERROR Error identification, SMC_ERROR Structure: Append3dMode (Action) AppendDynamics (Action) DoBeforeLeave (Action) IncreaseNumElems (Action) StepSuppress (Action)
SMC_ReadNCTokens.Append3dMode (ACT) ¶
SMC_ReadNCTokens.AppendDynamics (ACT) ¶ Append special source line word
SMC_NCScanner_DelimConfig (STRUCT) ¶ TYPE SMC_NCScanner_DelimConfig : STRUCT This structure allows to configure the delimiters used by the tokenizer. The delimiters determine how comments are detected, what is a valid operator and so on. InOut: Name Type Initial Comment byCmtMultiStartDelim BYTE 40 Start delimiter for single character multi line comments, preconfigured with ‘(’. Set to 0 to disable single char comments. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. byCmtMultiEndDelim BYTE 41 End delimiter for multi line comments, preconfigured with ‘)’. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. wCmtMultiStartDelim WORD 0 Two-character start delimiter for multi line comments. (Could be set to ‘( ’ or ‘/ ’.) See SMC_NCTokenizer.SetDelimiters on how to reconfigure. wCmtMultiEndDelim WORD 0 Two-character start delimiter for multi line comments tokens. (Could be set to ‘ )’ or ‘ /’.) See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aCmtSingleStartDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [37, 0, 0] Start delimiters for single line comments tokens, preconfigured with ‘%’. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aVarBracketStartDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [36, 0, 0] Start delimiters for variable tokens which are in “brackets”, preconfigured with ‘$’. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aVarBracketEndDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [36, 0, 0] End delimiters for variable tokens which are in “brackets”, preconfigured with ‘$’. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aVarPrefixDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [0, 0, 0] Delimiters for variable tokens which start with a prefix delimiter, preconfigured to 0 (disabled). See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aLocalVarPrefixDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [35, 0, 0] Delimiters for local variable tokens which start with a prefix delimiter, preconfigured to ‘#’. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aStrStartDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [34, 39, 0] Start delimiters for string tokens, preconfigured with ‘ and “. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aStrEndDelim ARRAY [0..(SoftMotion_Token_Constants.c_numDelims - 1)] OF BYTE [34, 39, 0] End delimiters for string tokens, preconfigured with ‘ and “. See SMC_NCTokenizer.SetDelimiters on how to reconfigure. aVarNameChrs ARRAY [0..(SoftMotion_Token_Constants.c_numVarNameChars - 1)] OF BYTE Additional characters for variable names. must be of the same size as abyPossibleOperators aTwoLetterOperators ARRAY [0..(SoftMotion_Token_Constants.c_num2LetterOps - 1)] OF WORD [16#3C3D, 16#3E3D, 16#3C3E, 16#3A3D] Two-letter operators.
SMC_GExpToken_Iterator.Advance (METH) ¶ METHOD Advance : BOOL InOut: Scope Name Type Return Advance BOOL
SMC_GExpToken_Iterator.GetAddData (METH) ¶ METHOD GetAddData : BOOL Returns the pointer to the additional data and the length of the additional data stored for the current g-expression token. InOut: Scope Name Type Return GetAddData BOOL Output pData POINTER TO BYTE nNumBytes UDINT
SMC_GExpToken_Iterator.GetCount (METH) ¶ METHOD GetCount : UDINT Returns the total number of expression tokens of the iterator, independent of how many times SMC_GExpToken_Iterator.Advance has been called. InOut: Scope Name Type Return GetCount UDINT
SMC_GExpToken_Iterator.GetValue (METH) ¶ METHOD GetValue : BOOL InOut: Scope Name Type Return GetValue BOOL Inout et SMC_GExpression_Token