Quando se especifica G65, chama-se o programa de macro especificado no endereço P. Podem transferir-se dados (argumentos) ao programa chamado.Formato
Número do programa a chamar | |
Número de repetições (1 por defeito) | |
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:
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.
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. |