Разработка постпроцессоров
  • Разработка постпроцессоров
v20.0.1
Search Results for

    Show / Hide Table of Contents

    PPFUN ENDSUB(51) - Команда конца подпрограммы УП

    Команда конца подпрограммы УП PPFUN ENDSUB(51) вместе с командой начала подпрограммы УП PPFUN STARTSUB(50) используется для выделения технологических команд подпрограммы. Все технологические команды между PPFUN STARTSUB(50) и PPFUN ENDSUB(51) считаются командами подпрограммы УП. Команды основной программы обрабатываются последовательно, тогда как команды подпрограммы УП пропускаются. Команды подпрограммы УП транслируются только при вызове операторов вывода подпрограммы УП из одной из команд основной программы.

    Параметр CLD[2] содержит уникальный идентификатор подпрограммы УП.

    Доступ из sppx

    В sppx у PPFUN нет отдельного обработчика для каждого подкода. Все подкоды PPFUN обрабатываются в едином обработчике program PPFun с диспетчеризацией по cld[1] (CLD.SubCode); обработайте ENDSUB, добавив в него соответствующую ветку. Полный обработчик см. в разделе Постпроцессорная функция (PPFUN).

    Пример (из постпроцессора Fanuc (30i)_Mill):

    program PPFun
      case cld[1] of
          51: begin ! EndSub
            OutBlock
            MSub = 99; MSub@ = MaxReal
            OutBlock
            Output "%"
          end
      end
    end
    

    Доступ из .NET

    Помимо базового OnPPFun, этот подкод вызывает специальный обработчик OnFinishNCSub:

    public override void OnFinishNCSub(ICLDSub sub, ICLDPPFunCommand cmd, CLDArray cld)
    

    Общая модель .NET (члены, индексация 1-based и 0-based) описана в разделе Постпроцессорная функция (PPFUN).

    Пример — OnFinishNCSub (из постпроцессора Heidenhain_Mill_iTNC530_DN):

    public override void OnFinishNCSub(ICLDSub cldSub, ICLDPPFunCommand cmd, CLDArray cld)
    {
        // 454 LBL0
        nc.Block.Out();
        nc.OutText("LBL0");
    }
    

    Сопутствующие ссылки

    • Постпроцессорная функция (PPFUN)
    • Модель доступа к CLData
    • PPFUN STARTSUB(50)
    In this article