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");
}