Разработка интерпретаторов
  • Разработка интерпретаторов
v3.0.3
Search Results for

    Show / Hide Table of Contents

    Список объектов для интерпретации

    INCT_BlockExecArray - интерфейс CAM системы, который реализует список объектов текущего кадра для интерпретации.

    Описание методов интерфейса:

    МетодОписание методаОписание использования
    Add

    Функция добавляет объект для интерпретации в конец списка объектов, возвращает индекс добавленного объекта (целое число).

    Входной параметр: ExecType (TNCExecObj) - тип объекта, добавляемого для интерпретации, ExecParam (указатель) параметр интерпретируемого объекта (описание см. ниже).

    1. При анализе текста управляющей программы, выходящего за рамки типового анализа ядром CAM системы (реализация метода INCT_Interpreter.TransLine), распознанные лексемы и смысловые конструкции имеет смысл добавлять в список объектов (методом Add) для интерпретации с типом объект (поле ExecType = exObj), поле ExecParam заполнять индексом массива, либо указателем на соответствующую структуру хранящую данные об объекте для его последующей интерпретации.
    2. При интерпретации очередной команды текущего списка INCT_BlockExecArray, зная, что текущая команда должна быть сынтерпретирована в конце кадра, возможно добавить её в список при помощи функции Add.
    Insert

    Функция добавляет объект для интерпретации в список объектов с номером Index, возвращает индекс добавленного объекта (целое число).

    Входные параметры: Index (целое число) - номер объекта в списке, ExecType (TNCExecObj) - тип объекта, добавляемого для интерпретации, ExecParam (указатель) параметр интерпретируемого объекта (описание см. ниже).

    При трансляции текста управляющей программы можно добавлять оттранслированные объекты в начало списка интерпретации, либо добавить объект после другого, нужного нам объекта, при помощи функции Insert, если этого требует процесс исполнения интерпретируемых объектов.
    Get

    Функция возвращает объект с номером Index из списка интерпретации (интерфейс INCT_BlockExecObject).

    Важно! Возвращаемый функцией результат будет корректным только до следующего изменения списка объектов INCT_BlockExecArray.

    Входные параметры: Index (целое число) - номер объекта в списке.

    Функция Get востребована при интерпретации объектов списка. С помощью этой функции, по номеру объекта в списке можно получить интерфейс интерпретируемого объекта (INCT_BlockExecObject). Затем в зависимости от типа и назначения объекта выполнить действия по формированию траектории движения инструмента или по подготовке к таким действиям (сохранение значений, инициализация переменных и т.д.).
    Find

    Функция выполняет поиск объекта интерпретации в списке по параметрам ExecType, ExecParam, начиная с объекта под номером FromIdx, возвращает найденный объект (интерфейс INCT_BlockExecObject).

    Важно! Возвращаемый функцией результат будет корректным только до следующего изменения списка объектов INCT_BlockExecArray.

    Входные параметры: ExecType (TNCExecObj) - тип интерпретируемого объекта; ExecParam (указатель) для регистра - номер базового регистра, для объекта - указатель, заполняемый интерпретатором; FromIdx (целое число) - начальный номер объекта в списке.

    Выходные параметры: Index (целое число) - номер объекта в списке.

    Функция Find может быть использована для определения наличия в уже оттранслированной части кадра регистра или объекта.

    Например:

    1. С целью добавления после этого объекта нового объекта интерпретации (функция Insert).
    2. Для определения типа регистра (при реализации INCT_Interpreter.DefineRegister). Пример. Для стойки Sinumerik в кадре управляющей программы 'G4 F100', регистр 'F' - выстой, а в кадре управляющей программы 'G01 X10 F100', регистр 'F' - подача. На этапе определения регистра, зная, что в оттранслированном кадре уже есть регистр G4, можно однозначно определить регистр 'F' это выстой, а не подача.
    MoveTo

    Функция возвращает результат перемещения объекта интерпретации с индексом FromIdx на место в списке с индексом ToIdx (логическое). Истина — успешно, Ложь — перемещение не произведено.

    Входные параметры: FromIdx (целое число) - индекс перемещаемого объекта в списке, ToIdx (целое число) - индекс места в списке, на которое перемещается объект.

    Функция MoveTo может быть использована для сортировки списка объектов для интерпретации после трансляции кадра. Например, у стойки Heidenhain существуют регистры, которые обрабатываются всегда в начале или в конце кадра, независимо от их расположения в тексте управляющей программы.
    Get_Count

    Функция возвращает количество объектов интерпретации в списке (целое число).

    Входных параметров нет.

    Функция Get_Count может быть использована при сортировке списка для интерпретации, с целью определения количества элементов списка.

    INCT_BlockExecObject - интерфейс CAM системы (возвращают функции INCT_BlockExecArray.Get, INCT_BlockExecArray.Find), который реализует объект для интерпретации. Объект создаётся функциями INCT_BlockExecArray.Add, INCT_BlockExecArray.Insert по переданным в них типу (ExecType) и параметру (ExecParam) объекта.

    Описание методов интерфейса:

    МетодОписание методаОписание использования
    Get_ExecType

    Функция возвращает тип интерпретируемого объекта (TNCExecObj)

    exReg - базовый регистр
    exObj - объект интерпретатора
    exProc - зарезервировано, ядром CAM системы не используется

    Входных параметров нет.

    1. Функция Get_ExecType используется при интерпретации объектов списка. С помощью этой функции определяется тип объекта интерпретации. В зависимости от типа и параметра объекта интерпретации выполняются действия по формированию траектории движения инструмента или по подготовке к таким действиям (сохранение значений, инициализация переменных и т.д.).
    2. Функция возвращает значение, заданное при добавлении объекта интерпретации в список.
    Get_ExecParam

    Функция возвращает параметр интерпретируемого объекта (указатель). Если интерпретируемый объект это регистр (exReg), то параметром будет номер базового регистра. Если интерпретируемый объект это объект интерпретатора, будет возвращён параметр, который был передан интерпретатором при добавлении объекта (INCT_BlockExecArray.Add, INCT_BlockExecArray.Insert)

    Входных параметров нет.

    1. Функция Get_ExecParam используется при интерпретации объектов списка. С помощью этой функции определяется параметр объекта интерпретации, заполняемый интерпретатором. В зависимости от типа и параметра объекта интерпретации выполняются действия по формированию траектории движения инструмента или по подготовке к таким действиям (сохранение значений, инициализация переменных и т.д.).
    2. Функция возвращает значение, заданное при добавлении объекта интерпретации в список.
    Get_IsUsed

    Функция возвращает признак 'сынтерпретирован' (IsUsed) объекта для интерпретации (логический).

    Истина — объект сынтерпретирован в текущем кадре, Ложь — объект не сынтерпретирован.

    Входных параметров нет.

    Функция используется, чтобы проверить, интерпретирован ли объект в текущем кадре.
    Set_IsUsed

    Метод позволяет установить признак 'сынтерпретирован' (IsUsed) объекта для интерпретации.

    Входной параметр: Value (логический) - Истина - объект сынтерпретирован в текущем кадре, Ложь - объект не сынтерпретирован.

    Функция может быть использована для принудительного изменения признака интерпретации объекта, в этом случае объект не будет сынтерпретирован.
    Get_IsOwn

    Функция возвращает признак 'собственный' (IsOwn) объекта для интерпретации типа exObj. Для объектов типа exReg всегда возвращает значение Ложь.

    Истина - объект добавлен интерпретатором, Ложь - объект добавлен наследником или родителем интерпретатора

    Входных параметров нет.

    Функция может быть использована в интерпретаторе-наследнике, при принятии решения о самостоятельной интерпретации команды или передаче для интерпретации родителю.
    In this article