EXTCYCLE - Расширенный цикл
Отображение команды
Как команда отображается в списке команд CLData:
EXTCYCLE ON(71)|CALL(52)|OFF(72) DRILL(163)|FACE(81)|TAP(168)|DEEP(153)|W5DDrill(481)|
W5DBore5(485)|LATHEROUGH(401)|LATHETHREAD(403)|... {, a} {, b} {, c} ...
Команда расширенного цикла EXTCYCLE используется для обработки стандартных циклов. Ниже приведён список стандартных циклов, поддерживаемых командой EXTCYCLE:
- Токарный чистовой цикл G70, G73 -
LATHEFINISH(400) - Токарный черновой цикл G71, G72 -
LATHEROUGH(401) - Токарный цикл прорезки канавок G74, G75 -
LATHEGROOVE(402) - Токарный резьбонарезной цикл G76 -
LATHETHREAD(403) - Токарный однопроходный резьбонарезной цикл G92 -
LATHETHREADG92(404) - Токарный сверлильный цикл G81 -
DRILL(163) - Токарный сверлильный цикл G82 -
FACE(81) - Токарный резьбонарезной цикл метчиком G84 -
TAP(168) - Токарный сверлильный цикл с ломкой стружки -
BRKCHP(288) - Токарный сверлильный цикл с удалением стружки -
DEEP(153) - Сверлильный цикл G81 -
W5DDrill(481) - Сверлильный цикл G82 -
W5DFace(482) - Сверлильный цикл с удалением стружки G83 -
W5DChipRemoving(483) - Сверлильный цикл с ломкой стружки G73 -
W5DChipBreaking(473) - Цикл нарезания резьбы метчиком G84 -
W5DTap(484) - Сверлильный цикл G85 -
W5DBore5(485) - Сверлильный цикл G86 -
W5DBore6(486) - Сверлильный цикл G87 -
W5DBore7(487) - Сверлильный цикл G88 -
W5DBore8(488) - Сверлильный цикл G89 -
W5DBore9(489) - Цикл фрезерования резьбы -
W5DThreadMill(490) - Цикл выборки отверстия -
W5DHolePocketing(491) - Измерительный цикл -
WProbing(500)
Доступ из sppx
Обработчик: program ExtCycle
Массив cld читается по индексу или по имени: в sppx — по типизированному короткому имени (например, cld.X), в .NET — по тому же имени в виде строкового ключа (например, cld["X"]).
| Параметр | Массив CLD | Имя CLD | Описание |
|---|---|---|---|
| ON(71) CALL(52) OFF(72) |
CLD[1] | CLD.SubCmd | Модификатор команды: ON(71) – включить стандартный цикл, CALL(52) – вызвать стандартный цикл, OFF(72) – выключить стандартный цикл. |
| LATHEFINISH(400) LATHEROUGH(401) LATHEGROOVE(402) LATHETHREAD(403) DRILL(163) FACE(81) TAP(168) BRKCHP(288) DEEP(153) W5DDrill(481) W5DFace(482) W5DChipRemoving(483) W5DChipBreaking(473) W5DTap(484) W5DBore5(485) W5DBore6(486) W5DBore7(487) W5DBore8(488) W5DBore9(489) W5DThreadMill(490) W5DHolePocketing(491) WProbing(500) |
CLD[2] | CLD.SubType | Идентификатор типа цикла. |
| a, b, c, d … | CLD[3] – CLD[258] | CLD.CLParams(1) – CLD.CLParams(256) | Список параметров цикла. |
Первый параметр задаёт запуск, вызов и отмену стандартного цикла.
CAM-система обычно формирует последовательность технологических команд с командой EXTCYCLE, подобную следующей:
EXTCYCLE ON(71) ...
FEDRAT ...
GOTO ...
GOTO ...
EXTCYCLE CALL(52) ...
FEDRAT ...
GOTO ...
GOTO ...
EXTCYCLE CALL(52) ...
FEDRAT ...
GOTO ...
GOTO ...
EXTCYCLE CALL(52) ...
EXTCYCLE OFF(72) ...
Список параметров зависит от типа цикла.
Пример (из постпроцессора Fanuc (30i)_Mill):
program ExtCycle
if cld[1] = 71 then CycleOn = 1 ! цикл включён
else if cld[1] = 72 then begin ! цикл выключен
if (CLD.SubType >= 473) and (CLD.SubType <= 489) then Cycle = 80
OutBlock
end else if cld[1] = 52 then begin ! вызов цикла
if cld[10] > 0 then
if cld[9] = 0 then Fr = cld[10]*S else Fr = cld[10] ! единицы / значение подачи
end
Доступ из .NET
Помимо базового OnExtCycle, команда диспетчеризуется (по семейству циклов) в один из специализированных
обработчиков ниже:
public override void OnExtCycle(ICLDExtCycleCommand cmd, CLDArray cld) // базовый
public override void OnHoleExtCycle(ICLDExtCycleCommand cmd, CLDArray cld) // циклы отверстий
// а также, по семейству циклов: OnTurnExtCycle, OnProbeExtCycle, OnWeldingExtCycle, OnPickAndPlaceExtCycle
Наследование: ICLDExtCycleCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd[...]. В таблице перечислены члены команды, в том числе унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData. «Сырой» массив cld[i] доступен с теми же индексами, что и в sppx, а параметры
также достижимы по числовому коду через cmd.Prm.
| Член | Тип | Описание |
|---|---|---|
cmd.IsOncmd.IsOffcmd.IsCall |
bool | True, если это команда включения / выключения / вызова (CALL) цикла. |
cmd.CycleType |
int | Числовой код типа цикла (простое сверление, глубокое сверление, нарезание резьбы метчиком, наружное точение, ...). См. константы в классе CLDCycle. |
cmd.Prm |
ICodeParametersOfCLDCommand |
Список параметров; значение получается по его числовому коду. |
cmd.Prm предоставляет ParamCount, Code(i), ParamType(i), IndexOfCode(code) и индексаторы значений
Prm.Flt[code] / Prm.Int[code] / Prm.Bol[code] / Prm.Str[code].
Пример (из постпроцессора Sinumerik 840D mill — обратите внимание на доступ через cld[i]):
public override void OnHoleExtCycle(ICLDExtCycleCommand cmd, CLDArray cld)
{
if (cmd.IsOn)
{
nc.GFeed.v = cld[9] == 1 ? 94 : 95; // единицы рабочей подачи (тот же индекс cld, что и в sppx)
nc.Feed.v = cld[10]; // значение рабочей подачи
nc.Block.Out();
}
else if (cmd.IsOff)
nc.G.Show(80); // отмена цикла
// else if (cmd.IsCall) диспетчеризация по cmd.CycleType ...
}