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

    Show / Hide Table of Contents

    SPINDL - Шпиндель

    Отображение команды

    Как команда отображается в списке команд CLData:

    SPINDL ON(71)|OFF(72)|ORIENT(246), NO n, K k, MODE RPM(0)|RANGE(1)|CSS(2) {, SPEED c}
    

    Команда SPINDL передаёт параметры управления шпинделем. Команда SPINDL используется для задания частоты вращения шпинделя или диапазона частот, скорости резания и т. д.

    Доступ из sppx

    Обработчик: program Spindl

    Массив cld читается по индексу или по имени - в sppx по типизированному короткому имени (например, cld.X), в .NET по тому же имени как строковому ключу (например, cld["X"]).

    Параметр Массив CLD Имя CLD Описание
    ON(71)
    OFF(72)
    ORIENT(246)
    CLD[1] CLD.OnOff Тип команды: ON(71) - включение вращения шпинделя, OFF(72) - выключение вращения шпинделя, ORIENT(246) - ориентированный останов шпинделя.
    n CLD[2] CLD.NO Частота вращения, угол поворота шпинделя или максимальная частота вращения шпинделя в режиме CSS.
    k CLD[3] CLD.K Диапазон частот вращения.
    RPM(0)
    RANGE(1)
    CSS(2)
    CLD[4] CLD.Mode Режим задания частоты вращения: RPM(0) - обороты в минуту, RANGE(1) - диапазон частот вращения шпинделя, CSS(2) - режим постоянной скорости резания.
    c CLD[5] CLD.CSS Значение постоянной скорости резания для режима CSS.

    Для создания ISO-постпроцессора с помощью шаблонов используйте значения ISO.M, которые соответствуют параметрам SPINDL.

    Параметр CLD Значение ISO
    CLD[1] = 71 ISO.M = 3
    CLD[1] = 72 ISO.M = 5

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

    program Spindl
      OutBlock
      case cld[1] of
        71: begin ! Включение
          if cld[4]=2 then begin ! CSS
            GSpindl = 96
            S = abs(cld[5])
            OutBlock
            if cld[5] > 0 then SpDir = 3
                          else SpDir = 4    ! M3/M4  по/против часовой стрелки
            SpRPM = abs(cld[2])
          end else begin ! RPM
            if cld[2] > 0 then Msp = 3
                          else Msp = 4    ! M3/M4  по/против часовой стрелки
            if ((SpDir=3) or (SpDir=4)) and (SpDir<>Msp) then ! Реверс шпинделя
              Output "M5"
            GSpindl = 97
            S = abs(cld[2]); S@=SpRPM
            Msp@ = SpDir
            SpDir = Msp
            SpRPM = abs(cld[2])
            OutBlock
          end
        end
        72: begin ! Выключение
          Msp = 5
          S=0; S@=S
          SpRPM = 0
          SpDir = 5    ! M3/M4/M5
          OutBlock  ! Msp = 5;; OutBlock; Msp=1; OutBlock
        end
        246: begin  ! M19 ORIENT
          OutBlock
          M = 19; M@ = MaxReal
          OutBlock
        end
      end
    end
    

    Доступ по имени параметра (помощники)

    Параметры, доступные через оператор cmd (одинаково в sppx и .NET):

    Имя Помощник Описание
    Action cmd.Int["Action"] Тип команды (0 - включение, 1 - выключение, 2 - ориентация).
    RotationDirection cmd.Int["RotationDirection"] Направление вращения.
    SpeedMode cmd.Int["SpeedMode"] 0 - RPM, 1 - RANGE, 2 - CSS.
    Value cmd.Flt["Value"] Частота вращения / угол ориентации / максимальные обороты в минуту.
    CSSValue cmd.Flt["CSSValue"] Значение постоянной скорости резания.
    RangeValue cmd.Int["RangeValue"] Диапазон коробки передач.
    SpindleID cmd.Str["SpindleID"] Идентификатор шпинделя.

    Доступ из .NET

    Обработчик:

    public override void OnSpindle(ICLDSpindleCommand cmd, CLDArray cld)
    

    Наследование: ICLDSpindleCommand : ICLDCommand.

    Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd[...]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.

    Свойство Тип Описание
    cmd.SpindleID string Текстовый идентификатор шпинделя, для которого эта команда задаёт параметры.
    cmd.Action CLDSpindleAction Действие для шпинделя (On, Off или Orient).
    cmd.IsOn
    cmd.IsOff
    cmd.IsOrient
    bool True, если это команда включения / выключения / углового ориентирования.
    cmd.SpeedMode CLDSpindleSpeedMode Режим вращения шпинделя (RPM или CSS).
    cmd.IsRPM
    cmd.IsCSS
    bool True, если режим - RPM (об/мин, G97) / CSS (постоянная скорость резания, G96).
    cmd.RotationDir CLDRotationDir Направление вращения шпинделя (по часовой стрелке или против).
    cmd.IsClockwiseDir bool True, если направление вращения - по часовой стрелке (CW).
    cmd.RPMValue double Обороты в минуту (максимальные, если активен режим CSS).
    cmd.CSSValue double Значение линейной (поверхностной) скорости для шпинделя.
    cmd.GearRange int Диапазон коробки передач шпинделя.

    Пример (из постпроцессора Sinumerik 840D mill):

    public override void OnSpindle(ICLDSpindleCommand cmd, CLDArray cld)
    {
        if (cmd.IsOn)
        {
            switch (cmd.SpeedMode)
            {
                case CLDSpindleSpeedMode.RPM:
                    nc.S.Show(cld[2]);
                    nc.Msp.Show(cmd.IsClockwiseDir ? 3 : 4);
                    break;
                case CLDSpindleSpeedMode.CSS:
                    throw new Exception("CSS mode not realized");
            }
        }
        else if (cmd.IsOff)
            nc.Msp.Show(5);
    }
    

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

    • Модель доступа к CLData
    In this article