CHAMADA DE MACROS – SIMPLES

Quando se especifica G65, chama-se o programa de macro especificado no endereço P. Podem transferir-se dados (argumentos) ao programa chamado.Formato

G65 Pp Ll<especificação de=”” argumentos=””>
p
Número do programa a chamar
l
Número de repetições (1 por defeito)
Argumento
Valores (dados) transferidos à macro

Observações

  Depois do código G65 especifica-se no endereço P o número do programa de macro que se pretende chamar.
  Quando for necessário chamar repetidamente a macro, especificar no endereço L o número de repetições, no intervalo 1 a 9999. Em caso de omissão de L, é assumido o valor 1.
  Se forem especificados argumentos aos respectivos endereços, os seus valores serão atribuídos às variáveis locais correspondentes.

Exemplo

O0001 O9010
: #3 = #1+#2
G65 P9010 L2 A1.0 B2.0 IF [#3 GT 360] GOTO 9
: G00 G91 X#3
M30 N9 M99

Especificação de argumentos

Existem 2 tipos de especificação de argumentos:

  Os argumentos tipo I, em que são empregues endereços (letras) diferentes de G, L, O, N e P (excluídas para evitar redundância), uma por cada especificação.
  Os argumentos tipo II ( talvez menos comuns) que utiliza as letras A, B e C, e também I, J e K até 10 vezes.

O tipo de argumento especificado é automaticamente determinado pelas letras empregues.

Especificação de argumentos tipo I

A tabela abaixo mostra a correspondência entre os endereços que podem receber valores como argumento, e os números das variáveis locais da macro para as quais são passados esses valores:

End.
Var.
End.
Var.
End.
Var.
End.
Var.
End.
Var.
End.
Var.
End.
Var.
A
#1
D
#7
H
#11
K
#6
R
#18
U
#21
X
#24
B
#2
E
#8
I
#4
M
#13
S
#19
V
#22
Y
#25
C
#3
F
#9
J
#5
Q
#17
T
#20
W
#23
Z
#26

Os endereços G, L, N O e P não podem utilizar-se em argumentos.

Os endereços que não seja necessário especificar, podem omitir-se. As variáveis locais, correspondentes aos endereços omitidos, são configuradas como nulas.

Especificação de argumentos tipo II

Trata-se na verdade de uma mistura de argumentos tipo I e II.
Como referido, são utilizadas as letras A, B e C apenas uma vez por cada chamada (especificação), e ainda I, J e K até dez vezes.

Os argumentos tipo II são úteis para, por exemplo, transferir valores como coordenadas tri-dimensionais.

End.
Var.
End.
Var.
End.
Var.
End.
Var.
End.
Var.
End.
Var.
A
#1
I2
#7
I4
#13
I6
#19
I8
#25
I10
#31
B
#2
J2
#8
J4
#14
J6
#20
J8
#26
J10
#32
C
#3
K2
#9
K4
#15
K6
#21
K8
#27
K10
#33
I1
#4
I3
#10
I5
#16
I7
#22
I9
#28
J1
#5
J3
#11
J5
#17
J7
#23
J9
#29
K1
#6
K3
#12
K5
#18
K7
#24
K9
#30

Os índices de I, J e K para indicar a ordem de especificação de argumentos, não se escrevem no programa real.

Observações

  O código G65 tem que ser especificado antes de qualquer argumento.
  É possível a utilização mista de argumentos I e II, pois o CNC identifica interna e automaticamente o tipo de argumento especificado.Se for utilizada uma mistura de argumentos dos dois tipos, tem prioridade o tipo de argumento especificado em último lugar.
  A utilização do ponto decimal depende da configuração do comando numérico, mediante a definição de um parâmetro. Recomenda-se como boa prática, para manter a compatibilidade de programas, a utilização do ponto decimal nos argumentos de chamada a macros. Caso não esteja configurada a utilização do ponto decimal, o valor de um argumento transferido sem o ponto, corresponde ao incremento mínimo de entrada de cada endereço. (Ver “Programação do ponto decimal”).
  Podem programar-se encadeamentos de chamadas até 4 níveis de “profundidade”, incluídas chamadas simples e chamadas modais (G66). Não se incluem aqui as chamadas a sub programas com o código M98.
  Em relação ao níveis das variáveis locais:
  Existem variáveis locais para programação de encadeamento (“nesting”) desde o nível 0 até ao nível 4.
  O nível do programa principal (onde se faz a primeira chamada) é o nível 0.
  Cada vez que se chama uma macro – com G65 ou com G66 – o nível das variáveis locais é incrementado uma unidade. Os valores das variáveis locais de um nível anterior são guardados no CNC.
  Quando se executa M99 num programa de macro, o controle é devolvido ao programa que efectuou a chamada. O nível das variáveis locais é então diminuído em uma unidade, e os valores das variáveis guardados, a esse nível, quando se efectuou a chamada, são restabelecidos.