Отложенные шаблоны


Иногда возникает ситуация при которой необходимо использовать текущие параметры текущей команды 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> будет выполнен отложенный шаблон.

 

 

 

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

Шаблоны