Отложенные шаблоны
Иногда возникает ситуация при которой необходимо использовать текущие параметры текущей команды CLData при обработке другой команды. Вместо сохранения необходимых параметров во временные переменные в этом случае используются отложенные шаблоны. Текущие параметры таких шаблонов сохраняются, но их выполнение откладывается до обработки требуемой команды CLData. При выполнении отложенного шаблона все значения текущих параметров заменяются сохранёнными значениями.
Отложенный шаблон должен быть заключён в фигурные скобки: <{> и <}>, внутри фигурных скобок обязательно наличие имени одной из команд CLData, по приходу которой отложенный шаблон выполняется. Строки, расположенные до названия команды CLData, выполняются перед выполнением команды, строки, расположенные после названия команды CLData, выполняются после выполнения команды CLData. Например:
Шаблон команды <SafPos>:
{
G_INTERP[0] X[XT] Y[YT] Z[CLD.Z]
G_FUNC[28] X[CLD.X] Y[CLD.Y]
LoadTL
G_INTERP[1] G_FUNC[29] G_LENGTHCOMPENS[43] X[XT] Y[YT]
G_LENGTHCOMPENS[49] Z[ZT]
}
Шаблон команды <LoadTL>:
H[CLD.N] T[CLD.N]
Шаблон команды <AbsMov>:
X[CLD.X] Y[CLD.Y] Z[CLD.Z]
Команды CLData:
GOTO.abs X 20.0000,Y 20.0000,Z 20.0000
SAFPOS X 10.0000,Y 11.0000,Z 12.0000,N 0
LOADTL N 1,X 0.0000,Y 0.0000,Z 0.0000,D 1.0000,M 0,K 0,L 0.0000,
P 0.0000,A 0.0000, R 0.0000,PLANE XY(33),Dur 0.0000
Кадр УП:
X20.0000 Y20.0000 Z20.0000
G0 Z0.0000
G28 X0.0000 Y0.0000
H1 T1
G1 G29 G43 X20.0000 Y20.0000
G49 Z20.0000
В данном случае в момент выполнения команды <SafPos> создаётся отложенный шаблон. Значения параметров <CLD.X>, <CLD.Y>, <CLD.Z> команды <SafPos> сохраняются, и выполнение шаблона откладывается до обработки команды <LoadTL>. Значения переменных <XT>, <YT>, <ZT> не сохраняются, т.к. это не параметры команды CLData. Перед обработкой команды <LoadTL> выполняется шаблон:
G_INTERP[0] X[XT] Y[YT] Z[CLD.Z]
G_FUNC[28] X[CLD.X] Y[CLD.Y]
Затем выполняется команда
LoadTL: H[CLD.N] T[CLD.N]
Далее выполняется шаблон:
G_INTERP[1] G_FUNC[29] G_LENGTHCOMPENS[43] X[XT] Y[YT]
G_LENGTHCOMPENS[49] Z[ZT]
После чего действие отложенного шаблона завершается.
Если перед закрывающей фигурной скобкой отложенного шаблона указать идентификатор <Keep>, то отложенный шаблон будет вновь выполнен при обработке следующей требуемой команды CLData (в предыдущем примере это <LoadTL>). Например:
Шаблон команды <SafPos>:
{
G_INTERP[0] X[XT] Y[YT] Z[CLD.Z]
G_FUNC[28] X[CLD.X] Y[CLD.Y]
LoadTL
G_INTERP[1] G_FUNC[29] G_LENGTHCOMPENS[43] X[XT] Y[YT]
G_LENGTHCOMPENS[49] Z[ZT]
Keep
}
В данном примере после однократного выполнения действие отложенного шаблона не прекращается, и при обработке второй и последующих команд <LoadTL> будет выполнен отложенный шаблон.
Сопутствующие ссылки: