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

    Show / Hide Table of Contents

    PPFUN STARTSUB(50) - Команда начала подпрограммы УП

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

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

    Доступ из sppx

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

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

    program PPFun
      case cld[1] of
          50: begin ! StartSub
            OutBlock;
            Output ""
            Output "%"
            ProgNum = MainProgramID + CLD[2]; ProgNum@ = MaxReal
            if CLData$<>"" then
              Output OutStr$ + " (" + UPCASE(CLData$) + ")"
            OutBlock
            Interp_ = MaxReal; Interp_@ = Interp_
            Feed_ = MaxReal; Feed_@ = Feed_
          end
      end
    end
    

    Доступ из .NET

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

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

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

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

    public override void OnStartNCSub(ICLDSub cldSub, ICLDPPFunCommand cmd, CLDArray cld)
    {
        //433 LBL101
        cldSub.Tag = 100 + cldSub.SubCode;
        nc.WriteLine();
        nc.OutText($"LBL{cldSub.Tag}");
    }
    

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

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