SMC_NCNavigator (FB)¶
FUNCTION_BLOCK SMC_NCNavigator
This function block selects one of a given number of G-sentence queues. The selection is done based on the called subprogram and controlled by SMC_NCInterpreter.
Additionally to subprogram calls and returns, this function block also handles jumps to sentence numbers, jumps to jump targets, and step suppression.
Note
This function block is included in SMC_ReadNCFile2 and is needed in CNC applications only in special cases.
- InOut:
- Scope - Name - Type - Comment - Inout - sentences- The output sentence queue that can be fed into SMC_NCInterpreter. Note: this queue must have capacity 1. - Input - bExecute- BOOL- A rising edge starts the execution. - bAbort- BOOL- If - TRUE, the current processing of this function block is aborted- bStepSuppress- BOOL- When this input is - TRUE, lines of the CNC program starting with ‚/’ will be ignored. Otherwise they will be processed.- pSentenceQueues- POINTER TO SMC_GSentenceQueue - Pointer to the first element of an array of sentence queues, one for each subprogram call depth. The first is used for the main program. Note that the last queue is reserved for parsing subprogram declarations, so the effective maximum call depth is nNumSentenceQueues - 1. Read each cycle, not only at the rising edge of bExecute. - nNumSentenceQueues- UDINT- The number of sentence queues. Must be at least 1. - stSubprogramDeclRequest- STRING- If this input is set to an non-empty string, the last sentence queue will be used to read the subprogram with the given name in order to store the declaration in the symbol table. Read each cycle, not only at the rising edge of bExecute. - Output - bBusy- BOOL- TRUEwhile execution of function block is not finished- bError- BOOL- TRUEsignals that an error has occurred within the function block.- ErrorID- SMC_ERROR- Error identification - errorPos- The source-position where an error has been detected. - RequestedSentenceQueueIdx- UDINT- The zero-based index of the active sentence queue. - RequestedProgramName- STRING- The program name of the requested sentence queue. Only relevant if RequestedSentenceQueueIdx is increased.