PROGRAMA DO MANUAL FANUC – CÍRCULO DE FUROS PARA PARAFUSOS

Alguns controladores numéricos têm ciclos especiais, muitas vezes opcionais, exactamente para a maquinação deste tipo de trabalho.O presente exemplo, para além de mostrar os mais importantes htmectos da chamada simples de um programa de macro, deve ser também apresentado – e exaustivamente detalhado em sala – na perspectiva mais vasta da criação de programas especiais, de utilização frequente, quando não disponíveis, por defeito, no CNC.

O formato de chamada apenas difere do tradicional ciclo fixo, na especificação do código G65 e respectivo número de programa de macro a chamar (P).
Embora seja possível, como foi dito, fazer a chamada da macro com um código G, o que tornaria o processo indistinguível dum ciclo fixo, para o operador comum, parece-nos razoável a preferência desta forma, no âmbito das acções de formação normalmente realizadas. Não só se torna mais universal a sua utilização, como dispensa a necessidade de alterações nos parâmetros-máquina, geralmente não permitidas aos operadores das máquinas-ferramenta, ainda que experientes.

Formato de chamada

G65 P9100 Xx Yy Zz Rr Ff Ii Aa Bb Hh
Endereço
Função
Variável
X
Coordenada X do centro do círculo (especificação absoluta ou incremental)
#24
Y
Coordenada Y do centro do círculo (especificação absoluta ou incremental)
#25
Z
Profundidade dos furos
#26
R
Coordenada de um ponto de aproximação – plano de segurança
#18
F
Velocidade de avanço de trabalho
#9
I
Raio do círculo sobre o qual se maquinam os furos
#4
A
Ângulo inicial de furação
#1
B
Valor incremental do ângulo (sentido horário quando se especifica um valor negativo)
#2
H
Número de furos a executar
#11

Programa Principal

Programa que chama um programa de macro, onde se efectuam todos os cálculos e instruções de maquinação.

O002
G90 G92 X0 Y0 Z100.
G65 P9100 X100. Y50. R30. Z-50. F500 I100. A0 B45. H5
M30

Macro (Programa Chamado)

O9100
#3=#4003 Guarda um código G do grupo 3 (G90,G91) (a)
G81 Z#26 R#18 F#9 K0 Ciclo de furação.Pode também programar-se L0 em vez de K0 (b)
IF[#3 EQ 90] GOTO 1 Transfere a execução (salta) a N1, se está no modo de coordenadas absolutas, G90 (a)
#24=#5001+#24 Calcula a abcissa – coordenada X – do centro (a)
#24=#5001+#24 Calcula a ordenada – coordenada Y – do centro
N1 WHILE[#11 GT 0] DO 1 Até que o número de furos restantes atinja o valor 0
#5=#24+#4*COS[#1] Calcula a posição do novo furo no eixo X
#6=#25+#4*SIN[#1] Calcula a posição do novo furo no eixo Y
G90 X#5 Y#6 Desloca-se à posição de destino calculada, e executa o novo furo
#1=#1+#2 Actualiza o ângulo
#11=#11-1 Diminui o número de furos
END 1 Fim do “ciclo” WHILE – repetição
G#3 G80 Repõe o valor original do código G
M99 Volta ao programa principal

Significado das variáveis

#3
Memoriza o código G do grupo 3
#5
Coordenada X do furo seguinte a executar
#6
Coordenada Y do furo seguinte a executar

Notas

(a)

Uma explicação mais detalhada da técnica de guardar os valores modais, é feita nas notas ao programa, exemplo de chamada modal de uma macro (G66).

Importa aqui salientar a necessidade de verificação do tipo de coordenadas activas, absolutas ou incrementais, quando é executada a chamada à macro. Como é referido na explicação do formato de chamada, neste exemplo, as coordenadas X e Y do centro do círculo podem ser especificadas, na linha de chamada, em ambos os formatos.

Notar que os códigos G90 e G91 são modais, pelo que as ditas coordenadas dependem do último código deste grupo, programado.

O objectivo desta macro é executar furos posicionados sobre um círculo de raio I. O cálculo da posição desses furos faz-se então, por consequência, com base na posição do seu centro.

O programa verifica antes do cálculo do centro de cada furo, se as coordenadas do centro do círculo são absolutas ou incrementais, por comparação com o valor da variável de sistema #4003, guardado na variável local #3.Se a comparação for verdadeira (#3 = 90), as coordenadas são absolutas, e usam-se os valores dos argumentos transferidos (#24 e #25) para o respectivo cálculo trigonométrico.Se a comparação for falsa (#3 = 91), então os valores transferidos às variáveis #24 e #25, representam a distância do centro do círculo à posição da ferramenta, quando a macro é chamada.

(Uma explicação mais detalhada da técnica de decisão, é feita nas notas ao programa, exemplo de chamada modal de uma macro (G66)).

(b)
O ciclo fixo de furação G81, foi programado dentro da macro, ficando assim activo até à especificação de um código G80, sendo executado após cada novo posicionamento calculado no programa de macro.Um outro caso, muito comum, é a criação de um programa principal, onde é definido o ciclo fixo, e a posterior chamada de um sub-programa, que contenha apenas as coordenadas dos furos a executar.

Notar que as letras (endereços) utilizados na linha de G66, embora possam ser usadas aleatoriamente, correspondem exactamente às utilizadas na definição do ciclo fixo G81; as letras X,Y e Z correspondem às coordenadas, mas apenas pela correspondência destes endereços com as respectivas variáveis locais da macro.Ter em atenção a rigorosa programação das variáveis correspondentes na linha de ciclo.

Código NC não comentado

%
O002
G90 G92 X0 Y0 Z100.
G65 P9100 X100. Y50. R30. Z-50. F500 I100. A0 B45. H5
M30
%

%
O9100
#3=#4003
G81 Z#26 R#18 F#9 K0
IF[#3 EQ 90] GOTO 1
#24=#5001+#24
#24=#5001+#24
N1 WHILE[#11 GT 0] DO 1
#5=#24+#4*COS[#1]
#6=#25+#4*SIN[#1]
G90 X#5 Y#6
#1=#1+#2
#11=#11-1
END 1
G#3 G80
M99
%