Você está na página 1de 43

Melhore a Produtividade do CNC

com Programação Paramétrica em


geometrias regulares.

Objetivo: mostrar como você pode melhorar a utilização de máquinas-ferramenta CNC através do
uso de programação paramétrica.

Esboço

 Introdução à programação paramétrica (Macro Customizada da FANUC)


 Cinco categorias de aplicação
 Recursos relacionados a computadores e CNC
 Exemplos de ciclos fixos criados pela família e pelo usuário
 Sugestões para melhorar a produtividade

 Verificação e otimização do programa


 Dimensionamento na primeira peça de trabalho em torno suíço (cabeçote deslizante) o Use
um visor de borda como uma sonda de eixo
 Agilize a medição do comprimento da ferramenta em um centro de usinagem o Retire os
cálculos dos ajustes de dimensionamento
 Eliminar a atribuição zero do programa
 Centralização do eixo Y nos tornos de ferramentas ao vivo o Uso de um programa universal
para mandrilamento o Facilitar os cálculos para os valores necessários
 Melhore a Produtividade do CNC com Programação Paramétrica

Introdução à programação paramétrica

A programação paramétrica passa por muitos nomes.


A FANUC (ou qualquer fabricante de controlo que afirme ser compatível com a FANUC) chama-
lhe Macro Personalizada.
Fadal chama isso de Macro.
Okuma chama de Tarefa do Usuário.
Sodick chama Q Rotina.
Alguns fabricantes de controle possuem recursos de programação paramétrica, mas não o
nomearam com nenhum nome especial.
O foco deste texto estará na versão da FANUC, chamada Macro Customizada.

Embora as variações de uma versão da programação paramétrica para outra levem a diferenças nas
técnicas de uso específicas, as aplicações mais amplas e a utilização de programação paramétrica
permanecem notavelmente semelhantes. Isso é evidenciado pelo fato de que a maioria das
aplicações descritas neste texto pode ser adaptada a todas as versões de programação paramétrica
mencionadas anteriormente. Assim como um dado aplicativo de software pode ser manipulado por
uma variedade de linguagens de programação, também uma determinada aplicação CNC pode ser
manipulada com diferentes versões de programação paramétrica.
Comparação com a subprogramação

A melhor maneira de se sentir confortável com qualquer assunto complexo é compará-lo a


tópicos mais simples com os quais você já está familiarizado. Macro Customizada não é
exceção. Se, por exemplo, você trabalhou com as funções de subprogramação do seu controle,
você riscou a superfície do que pode ser feito com a macro personalizada.

Todos os controles CNC possuem funções de subprogramação para permitir que os comandos
dentro do programa CNC sejam repetidos. Isso minimiza o número de comandos que devem ser
dados no programa CNC. Se, por exemplo, cinco bolsões idênticos devem ser fresados em peças
durante o mesmo ciclo de corte, seria complicado programar cada bolsão independentemente.
Em vez disso, você pode programar apenas um dos bolsos e colocar os comandos em um (sub)
programa separado. Esses comandos redundantes podem ser executados cinco vezes para usinar
os cinco compartimentos, eliminando muitos comandos pesados, demorados e propensos a
erros.

O FANUC utiliza um M98 para chamar um subprograma. Uma palavra P dentro do M98
especifica o número do subprograma. Uma palavra L especifica o número de execuções do
subprograma. Considere este comando:

N050 M98 P1000 L5

Diz à máquina para executar o subprograma O1000 cinco vezes. Contanto que o programa
O1000 contenha os comandos necessários para usinar corretamente um dos bolsos, o
comprimento do programa pode ser reduzido e o potencial de erros será reduzido.

Técnicas de subprogramação podem ser muito úteis. No entanto, se alguma coisa mudar sobre o
bolso de um bolso para o outro (largura, altura, profundidade, etc.), você não poderá usar
técnicas de subprogramação. Sem Macro Personalizada, cada bolso deve ser programado de
forma independente. Além de dar ao programador a capacidade de repetir comandos
redundantes, a Macro Personalizada permite que qualquer coisa mude de uma execução do
programa Macro Customizada para a próxima. No exemplo de bolso, se qualquer atributo de
bolso mudar de uma bolsa para outra (largura, altura, profundidade, etc.), essas variações podem
ser facilmente manipuladas no programa Macro Personalizado.

Neste sentido, a programação Macro Customizada permite ao programador escrever um


subprograma de uso geral. Se você já se viu desejando ter a capacidade de escrever
subprogramas de propósito geral, você tem um aplicativo para Macro Personalizada.

As coisas que mudam de um bolso para o outro são chamadas de argumentos. Macro personalizada
permite nomear os argumentos de maneira lógica. Você usa um comando G65 para chamar a macro
personalizada programa. Letras do alfabeto podem ser incluídas neste comando para especificar
valores de argumentos.
Considere este comando G65:
N050 G65 P1000 X2,0 Y1,5 W4,0 H2,0 D.25

G65 é uma declaração de chamada de macro personalizada. A palavra P especifica o número do


programa do programa Macro de usinagem de bolso. Os endereços de letras X e Y especificam a
posição do canto inferior esquerdo desta bolsa ao longo do eixo X em qualquer eixo Y. Endereço-
letra W especifica a largura do bolso, H especifica a altura do bolsão e D especifica a profundidade
do bolsão.

Observe o quão lógico você pode fazer a entrada dos dados de entrada (você os nomeia). Qualquer
um pode reconhecer facilmente os significados dos endereços de letras X, Y, W, H e D. Se outro
bolso de tamanho diferente tiver que ser usinado, outro comando G65 pode ser facilmente
especificado, contendo diferentes valores de argumento.

Comparação com ciclos fixos

Todos os fabricantes de controle CNC fornecem uma série de recursos de programação para
minimizar o trabalho de um programador. Centros de usinagem controlados pela FANUC, por
exemplo, vêm com um conjunto de ciclos fixos de usinagem de furos (especificado por G73-
G89). Alguns controles do centro de usinagem também possuem certos ciclos fixos de
fresamento, como fresamento de bolsões circulares, fresamento de ranhura, fresamento de
roscas e fresamento de faceamento. Os centros de torneamento controlados pela FANUC vêm
com um conjunto de múltiplos ciclos repetitivos para & acabamento de torneamento e
mandrilamento, usinagem de canais, usinagem de furos e rosqueamento. É provável que você
esteja familiarizado com pelo menos alguns desses ciclos. Vamos comparar o que você sabe
para a macro personalizada.
Aqui estão os comandos para fazer uma série de furos em um centro de usinagem controlado
pela FANUC.

N065 G54 G90 S400 M03 (Selecione o sistema de coordenadas, o modo absoluto e o fuso de
partida)
N075 G00 X1.0 Y2.0 (local do primeiro furo)
N080 G43 H01 Z0.1 (Instale a compensação do comprimento da ferramenta, mova para a
posição de aproximação Z)
N085 G81 R0.1 Z-0.75 F4.5 (Primeiro furo)
N090 X3.0 (segundo furo)
N095 X5.0 (Terceiro furo)
N100 X7.0 (perfurar o quarto buraco)
N105 G80 (ciclo de cancelamento)
N110 G91 G28 Z0 M19 (retornar à posição de referência do eixo Z)

Na linha N085, o primeiro furo é totalmente usinado com base na função G81 da FANUC e nas
palavras incluídas no comando (R, Z, F, etc.). A máquina executará uma série de movimentos
previamente planejados com base no design do ciclo fixo. Com o G81, a máquina irá, primeiro,
efetuar uma furação rápida na posição XY. Em seguida, a broca será rápida para o avião R,
mergulhando a broca no fundo do furo e retraindo a broca do furo. Assim, com G81, quatro
movimentos são gerados com um comando. Com outros ciclos fixos (como o peck drilling),
ainda mais movimentos são causados por um comando.

Observe como o formato do comando G81 é semelhante ao do exemplo de fresamento de bolso


que chama o comando G65 mostrado anteriormente. As palavras R, Z e F no G81 (ou qualquer
ciclo fixo) são como os argumentos sendo passados para o programa Macro Personalizado.
Você pode pensar em todos os ciclos fixos como sendo programas de Macro personalizados
escritos e mantidos pelo fabricante do controle CNC.
Se o seu controle não tiver um ciclo fixo necessário ou se você não concordar com o
funcionamento de um determinado ciclo fixo, poderá desenvolver um programa Macro
Personalizado para manipular o aplicativo. Em essência, você pode criar seus próprios ciclos
fixos.

Se você já quis ter a capacidade de criar seus próprios ciclos fixos, você tem um aplicativo para
Macro personalizada.

Comparação com programação de computadores

Se você já teve experiência com qualquer linguagem de programação de computador, já sabe


muito do que está disponível com a macro personalizada. Há muitos recursos relacionados ao
computador da Macro Personalizada que se assemelham aos encontrados nas linguagens de
programação de computadores. Esses recursos incluem variáveis, aritmética, lógica e loop. Por
enquanto, basta dizer que a maior parte do que pode ser feito em linguagens de programação de
computadores pode ser feito em programas Macro personalizados. Se você não teve experiência
prévia em programação de computadores, recomendamos novamente que você escolha um livro
para iniciantes sobre programação de computadores. Isso reforçará as apresentações que
fazemos sobre os recursos relacionados ao computador do Macro Personalizado.

Se você já se viu desejando poder incluir comandos do tipo programação de computadores em


seu programa CNC, você tem um aplicativo para Macro Personalizada.

Todos os programas podem usar funções de macro personalizadas

Você pode estar se perguntando se algo especial deve ser feito na ordem para utilizar comandos
de macro personalizados em um programa. Quando a opção Macro Customizada estiver
equipada em uma máquina, você terá acesso ao seu conjunto de funções que estende o que você
pode fazer com a programação normal em nível de código G. Estas funções adicionais (Macro
Personalizado) estarão disponíveis para uso dentro dos programas CNC.

A funcionalidade de macro personalizada pode ser utilizada dentro de qualquer programa CNC,
incluindo os principais programas e subprogramas. Você não precisa fazer nada de especial para
usar funções de macro personalizadas em um programa. Os programas podem residir na
memória do CNC ou em um dispositivo externo, como um cartão de memória ou unidade flash.

Os controles FANUC interpretarão os comandos do CNC de maneira um pouco diferente dos


comandos Macro Custom (aritmética e lógica). Se o interruptor SINGLE BLOCK estiver
ligado, por exemplo, a máquina irá parar após cada comando do CNC. Dependendo de uma
configuração de parâmetro, a máquina pode não parar após cada comando de macro
personalizada.

Categorias de aplicação

Como indicado no prefácio, existem inúmeras aplicações para Macro Customizada, e quase
todo usuário de CNC tem pelo menos algumas boas aplicações. Nesta discussão, organizamos
todos os aplicativos para a macro personalizada em cinco categorias básicas.
Famílias parciais

Muitos usuários do CNC fazem uma série de peças muito semelhantes. Grupos de peças
similares são chamados de famílias de partes. De um modo geral, todas as peças de uma
família parecida se assemelham umas às outras e exigem um processo de usinagem
semelhante (se não idêntico). Em famílias de peças clássicas, somente o tamanho da peça é
alterado.

Parafusos, porcas, arruelas e pinos, por exemplo, são feitos em uma variedade de tamanhos
para atender às necessidades da indústria. Os soquetes hexagonais fabricados por um
fabricante de ferramentas manuais são feitos em vários tamanhos para aceitar a troca de
tamanhos de porcas e parafusos. Os anéis fabricados por um fabricante de anéis de pistão são
fabricados em vários tamanhos e usados com uma variedade de tamanhos de pistão. A lista de
famílias de partes comuns é virtualmente infinita.

Como seus desenhos são dimensionados?

Algumas empresas utilizam técnicas de dimensionamento variável para dimensionar uma


família de peças. Um engenheiro de design dimensionará valores que mudam com uma letra
do alfabeto. Qualquer pessoa que visualize o desenho determinará o valor de uma determinada
dimensão referenciando um gráfico incluído no desenho. Ao conhecer o número de peça da
peça, qualquer um pode encontrar os valores de cada dimensão variável. A ilustração a seguir
mostra um exemplo desse tipo de dimensionamento de família parcial.

Se sua empresa usa técnicas de dimensionamento variável, você tem um aplicativo de família
de peças para Macro Customizada.

Um aplicativo de família de peças para macro personalizada


Observe que as dimensões são especificadas com letras (A, B, C, etc.). A macro personalizada
geralmente permite que você designe o valor de cada argumento com as mesmas letras usadas no
desenho. Por exemplo, aqui está uma maneira de especificar que o número de peça SC-0875 deve
ser feito a partir da ilustração anterior:

N060 G65 P1000 A1.375 B0.875 C0.437 D0.1875

Neste exemplo, observe como os argumentos A, B, C e D correspondem diretamente às dimensões


de impressão (D especifica o diâmetro do furo contra-perfurado, que por sua vez determina como o
restante do furo deve ser usinado). Embora possa haver outros atributos variáveis a serem
manipulados para esta aplicação (variações de velocidade e velocidade, números de estações de
ferramentas, etc.), este exemplo de comando deve enfatizar quão fácil pode ser especificar qual
peça de trabalho em uma família está sendo usinada.

Quanto mais peças de trabalho em uma família de peças, mais fácil é justificar as técnicas de
programação de macros personalizadas. No entanto, lembre-se de que os programas Macro
personalizados demoram mais para serem gravados do que os programas CNC convencionais. Do
ponto de vista da justificação estritamente baseada em tempo de programação (não considerando
problemas de manutenção do programa), pode ser difícil justificar a gravação de um programa
Macro Personalizado para famílias de peças com apenas algumas peças de trabalho. Mesmo para
famílias de peças simples, pode levar de 3 a 10 vezes mais tempo para escrever o programa Macro
Personalizado do que para escrever um programa CNC rígido e fixo para uma peça de trabalho na
família de peças.

Ciclos fixos criados pelo usuário

Mesmo que os produtos da sua empresa não contenham famílias de peças, é provável que você
tenha pelo menos algumas operações de usinagem semelhantes exigidas em várias peças de
trabalho. O Custom Macro pode simplificar drasticamente a programação de operações repetidas de
usinagem. Muitas operações de usinagem são similares em natureza e podem ser facilmente
manipuladas usando técnicas de programação de macros personalizadas. Aqui estão alguns
exemplos que você deve reconhecer facilmente.

Centros de usinagem:

Fresagem de roscas
Moagem de bolso redondo
Fresa de bolsos retangular
Moagem de círculo
Fresamento de face
Fresagem de chaveta
Moagem de Slot
Usinagem de furos (furação, rosqueamento, alargamento, furação, etc.)
Usinagem de padrão de furos (círculo de furo, padrão de grade, padrão de janela, etc.)
Centros de torneamento:
Inserção de ranhuras
Tocar (alguns centros de torneamento não possuem este ciclo)
Furação profunda com furação profunda (alguns centros de torneamento não possuem este ciclo)
Knurling

Se você já se viu desejando que os ciclos fixos de seu controle funcionassem de maneira diferente,
você tem um aplicativo de ciclo fixo criado pelo usuário para Macro personalizada.

Além de modificar o método pelo qual seus ciclos fixos atuais funcionam, você pode criar seus
próprios ciclos fixos com a macro personalizada. A maioria dos centros de usinagem, por exemplo,
não possui um ciclo fixo para fresamento de roscas. Se você executa fresamento de rosca
regularmente e se sua máquina não possui um ciclo de fresamento de rosca, você provavelmente
está escrevendo muitos comandos tediosos, redundantes e propensos a erros. Com a macro
personalizada, você pode criar seu próprio ciclo fixo de fresamento de rosca.
De maneira similar, a maioria dos controles do centro de torneamento não inclui um ciclo fixo
adequado para usinar ranhuras. Se você tiver ranhuras para o gargalo em muitas peças de trabalho e
se a sua máquina não tiver um ciclo fixo para usinar ranhuras, novamente, você deve escrever
muitos comandos entediantes, redundantes e sujeitos a erros. Com a macro personalizada, você
pode criar seu próprio ciclo de grooving.

Muitas empresas executam operações de usinagem incomuns que são específicas apenas para seus
próprios produtos e processos de fabricação, e nenhum fabricante de controle considerará a criação
de ciclos fixos para operações de usinagem que não são úteis para a maioria de seus usuários.
Relativamente poucos usuários do centro de usinagem, por exemplo, máquinas de rabo de
andorinha. Esta operação de usinagem normalmente requer um número de passos de fresagem
sucessivos com um cortador de encaixe.

Serviços de utilidade pública

Esta categoria de aplicação tende a ser a mais negligenciada. Até mesmo pessoas que se consideram
bem versadas podem não estar cientes dos inúmeros aplicativos utilitários da Macro Personalizada.
Há uma boa razão pela qual os aplicativos de utilitários não são tão conhecidos. A maioria
incorpora recursos relacionados ao CNC menos conhecidos do Custom Macro. E antes que você
possa incorporar qualquer nova técnica, é claro, você deve saber que é possível fazê-lo. Enquanto
discutimos os recursos relacionados ao CNC do Custom Macro durante as lições seis e sete,
queremos pelo menos apresentá-lo a algumas das possibilidades notáveis agora.

As aplicações podem reduzir o tempo de configuração e verificação do programa, podem reduzir o


tempo de produção, podem errar, podem tornar a máquina CNC mais fácil e segura de rodar, podem
emular opções dispendiosas e, em geral, podem de alguma forma facilitar o uso de máquinas-
ferramenta CNC. De fato, qualquer problema específico que você esteja tendo com a utilização de
máquinas-ferramenta CNC pode, provavelmente, ser facilitado de alguma forma através do uso de
um programa utilitário Macro Personalizado. Você diz que isso soa como uma afirmação muito
ousada? Vejamos alguns exemplos específicos de

Movimentos complexos e formas geométricas

Programas de macro personalizados podem executar funções aritméticas básicas como igualdade
(substituição), adição, subtração, multiplicação e divisão, bem como certas funções de nível mais
alto, como seno, cosseno, tangente, raiz quadrada e arredondamento (entre muitas outras). A
aritmética, combinada com a capacidade de executar lógica e looping, dá ao programador Macro
Customizado o poder de criar programas Macro Personalizados capazes de usinar formas
geométricas altamente complexas. De fato, qualquer forma que possa ser definida com um cálculo
aritmético pode ser usinada com um programa Macro Personalizado.

Enquanto programas Macro personalizados para formas padrão como esferas, pirâmides, elipses e
splines podem ser criados com relativa facilidade, a dificuldade de escrever programas Macro
personalizados para aplicações nesta categoria está diretamente relacionada à complexidade da peça
a ser usinada. Quando se trata disso, geralmente é mais fácil utilizar um sistema de fabricação
assistida por computador (CAM) para trabalhos complexos. No entanto, você deve saber que a
programação Custom Macro para formas complexas (quando viável) tem duas vantagens sobre os
sistemas CAM mais sofisticados.

Primeiro, os programas de código G para formas complexas que são geradas por sistemas CAM
tendem a ser muito longos. Não é incomum que um programa que simplesmente maquine uma
forma esférica inclua centenas (se não milhares) de comandos. O programa Macro de usinagem de
esferas comparável (mostrado na lição oito) consistirá em cerca de cinquenta comandos.

Em segundo lugar, a programação personalizada de macros permite criar movimentos específicos


para seus próprios aplicativos. O programa Macro Personalizado para o came circular mostrado na
próxima ilustração, por exemplo, é muito fácil de usar. Embora existam sistemas CAM capazes de
criar programas CNC para usinar uma câmera circular, há também muitos que não podem, e, de
fato, nenhum torna tão simples quanto um programa Macro Personalizado desenvolvido
especificamente para essa finalidade.
Um came circular usinado por um programa Macro Personalizado.

Nenhum sistema de manufatura assistido por computador que conheçamos torna simples para o
usuário inserir os valores necessários para usinar a came circular como este exemplo de comando
usando a atribuição de argumento número dois da Macro Personalizada. (O programa Macro
Personalizado para este aplicativo é mostrado na lição sete.)

N010 G65 P1002 A1,75 B-0,5 C0,1 I12,0 J1,75 I35,0 J1,625 I175,0 J1,1 I25,0 J1,75 I114,0 J1,75

Condução de dispositivos acessórios

Como afirmado anteriormente, existem certos dispositivos associados a máquinas-ferramentas CNC


que requerem um nível de programação maior do que o encontrado com a programação manual de
nível de código G padrão. A maioria dos sistemas de apalpação por toque, como sondas de fuso, por
exemplo, são programados no nível de código G, mas exigem funções de programação sofisticadas.
Quando uma ponta de prova de toque toca em uma superfície, o programa deve ter uma maneira de
localizar a superfície que acabou de ser contatada. Uma vez localizada, é provável que alguns
cálculos sejam necessários para determinar se a superfície está onde deveria estar. Se não for,
possivelmente um alarme deve ser soado. Possivelmente, um deslocamento deve ser ajustado.
Possivelmente a máquina deve ser feita para parar.
Tipos de recursos

Existem recursos relacionados ao computador e relacionados ao CNC na macro personalizada.


Eles fornecem uma tremenda capacidade de programação para ajudar a melhorar a produtividade
do CNC.

Recursos relacionados ao computador

Esses são recursos semelhantes aos encontrados nas linguagens de programação de computadores.

Variáveis

Uma das características mais importantes de qualquer linguagem de programação, incluindo


qualquer versão de programação paramétrica, é a capacidade de incorporar variáveis. Embora a
sintaxe e a estrutura para uso de variáveis mude de uma versão de programação paramétrica ou
programação de computadores para outra, as aplicações gerais permanecem notavelmente
semelhantes.

Se você tem experiência com programação de computadores, você sabe quais são as variáveis. O
uso e a aplicação de variáveis na macro personalizada são praticamente os mesmos de qualquer
linguagem de programação. No entanto, pessoas que não têm experiência em programação de
computadores podem achar difícil entender o conceito de variáveis. Por essa razão, começamos
com duas analogias simples para ajudá-lo a entender as variáveis.

Argumentos

Os argumentos especificam dados de entrada (valores que podem ser alterados a partir de uma vez
que o programa Macro Customizado é usado no próximo). Eles dizem ao programa Macro
Personalizado como se comportar agora - ou desta vez. Eles são especialmente úteis em
aplicativos de ciclo fixo de família parcial e criados pelo usuário. Na verdade, existem duas
maneiras de usar argumentos na macro personalizada com base em qual dessas duas categorias de
aplicativo está sendo desenvolvida.

Variáveis locais

Variáveis locais têm dois propósitos. O objetivo principal das variáveis locais é representar
argumentos de endereço de carta especificados em um comando G65. O propósito secundário é
para uso em cálculos de propósito geral (assim como variáveis comuns que são descritas um
pouco mais tarde).

Variáveis locais com atribuição de argumentos número um

Como você sabe agora, quando um programa Macro Personalizado é chamado com um comando
G65, os argumentos assumem a forma de endereços de letras. E novamente, os argumentos de
endereço de letra permitidos com a atribuição de argumentos número um incluem:

A, B, C, D, E, F, H, I, J, K, M, Q, R, S, T, U, V, W, X, Y e Z

Embora possa ser um pouco confuso, você não tem permissão para referenciar diretamente um
argumento dentro do programa Macro Personalizado com seu endereço de carta. Se você tentar
fazer isso, a máquina confundirá o nome do argumento (A, B, C, X, Y, Z, etc.) com o significado
real do CNC para o endereço da carta.
Por esse motivo, você deve referenciar argumentos no programa Macro Customizado por suas
variáveis locais correspondentes. Como todos os tipos de variáveis na macro personalizada
(exceto argumentos de endereço de carta), as variáveis locais começam com um sinal de libra e
são especificadas com um número. A tabela a seguir mostra a lista contendo todos os argumentos
de endereço de carta permitidos e seus números de variáveis locais correspondentes. Esta é a
forma mais popular de atribuição de argumentos, chamada atribuição de argumento número um.

Local
Letter Variable I #4 U #21

A #1 J #5 V #22

B #2 K #6 W #23

C #3 M #13 X #24

D #7 Q #17 Y #25

E #8 R #18 Z #26

F #9 S #19

H #11 T #20

Argumentos de endereço de letras e suas variáveis locais de representação ao usar a


atribuição de argumentos número um.

Quando um comando G65 é executado, duas coisas acontecerão. Primeiro, todas as variáveis
locais que possuem argumentos de endereço de letra correspondentes no comando G65 serão
configuradas. Em segundo lugar, a macro personalizada especificada pela palavra P será
executada. Durante a execução da Macro Personalizada, as variáveis locais conterão os valores
dos argumentos especificados no comando G65. Dentro da Macro Personalizada, as variáveis
locais devem ser usadas sempre que você precisar referenciar valores de argumentos
especificados no comando de chamada G65.

Por exemplo, considere este comando:

N025 G65 P1000 X0. Y0 Z0 W5.0 H3.0 T0.5 D1.0 F5.0 (lado direito do moinho)

Primeiro, ele define as variáveis locais correspondentes aos endereços de letras X, Y, Z, W, H,


T, D e F. Nesse caso, as variáveis locais serão definidas da seguinte maneira:
# 24 (para X) definido como 0
# 25 (para Y) definido como 0
# 26 (para Z) definido como 0
# 23 (para W) definido como 5.0
# 11 (para H) definido como 3.0
# 20 (para T) definido para 0,5
# 7 (para D) definido como 1,0
# 9 (para F) definido como 5.0.

Em segundo lugar, a máquina executará o programa O1000. Quando o programador precisa


referenciar o valor do argumento X dentro do programa Macro Customizado, # 24 deve ser
usado.

Variáveis comuns

Variáveis comuns são introduzidas durante a discussão de argumentos usados em aplicações de


família parcial. Novamente, as variáveis comuns variam na série # 100 e pelo menos cinquenta
estão disponíveis, de # 100 a pelo menos # 149. É provável que sua máquina tenha mais. Se a
sua máquina tiver duzentas variáveis comuns, por exemplo, elas vão do nº 100 ao nº 199.

Como o nome indica, variáveis comuns permanecem ativas mesmo após a execução do
programa Macro Customizado. A maioria dos CNCs da FANUC está configurada para reter os
valores das variáveis comuns (novamente, na série # 100) até que a energia para a máquina seja
desligada, momento em que eles são reduzidos para a posição vaga.

Variáveis comuns permanentes

Essas variáveis variam na série # 500. Os CNCs da FANUC terão pelo menos dez variáveis
comuns permanentes (de # 500 a # 509). A maioria tem muito mais, possivelmente variando de
# 500 a # 999. Como o nome indica, essas variáveis são mantidas mesmo depois que a energia
é desligada. Nesse sentido, eles são muito parecidos com compensações de ferramentas. E,
como os deslocamentos de ferramentas, a maioria dos CNCs permite modificar os valores das
variáveis comuns permanentes através do teclado do painel MDI e da tela de exibição.

Como alguns CNCs têm tão poucas variáveis comuns permanentes (novamente, apenas dez),
não se esqueça de reservar seu uso para esses aplicativos quando for necessário reter dados do
dia a dia. Um exemplo é um utilitário com programa Macro Customizado para contagem de
peças. Digamos que você queira configurar um contador de peças. A máquina irá executar 750
peças e depois parar a máquina (esta aplicação é mostrada na lição seis). À medida que você
começa a executar a produção, o contador de peças com base na macro personalizada começa a
contar as peças de trabalho.

Não é muito provável que você termine todas as 750 peças antes do final do dia / turno. É mais
provável que demore vários dias para concluir a execução da produção. Neste caso, você
precisará de seu programa Macro de contagem de peças para lembrar de onde parou de dia para
dia (depois que a energia é ligada novamente). Se você armazenar a contagem de peças atual
em uma variável comum permanente da série # 500, o valor da contagem de peças não será
perdido quando a energia for desligada.

Variáveis do sistema

Muitos dos recursos relacionados ao CNC da Custom Macro são acessados com as variáveis do
sistema. Essas variáveis variam de # 1000 a cerca de # 12000. Muitos também podem ser
referenciados por nomes mais fáceis de lembrar do que os números de variáveis do sistema
(como [#_DATE] em vez de # 3011).

As variáveis do sistema permitem acessar muitas funções do CNC, incluindo a posição atual do
eixo, valores atuais de compensações, geração de alarmes e muito mais.

Aritmética

Tudo o que pode ser feito em uma calculadora científica pode ser feito em um programa Macro
Personalizado.

Funções básicas

Conforme indicado, a macro personalizada permite a igualdade (substituição), adição,


subtração, multiplicação e divisão. Os caracteres usados para representar cada função
aritmética básica são universalmente aceitos, eles são usados por todas as linguagens de
programação de computador. O sinal de igual (=) é usado para igualdade, o sinal de mais (+)
para adição, o sinal de menos (-) para subtração, o asterisco (*) para multiplicação e o código
de barra (/) para divisão. O uso dessas funções aritméticas básicas deve ser familiar, já que os
aplicativos para seu uso são mostrados na lição dois.

Funções avançadas

Como dito, a maioria das versões de programação paramétrica permite muito mais que simples
igualdade, adição, subtração, multiplicação e divisão. Aqui apresentamos as funções
suportadas pela macro personalizada.

Funções trigonometria

A Macro Personalizada fornece funções de trigonometria suficientes para lidar até mesmo com
os problemas mais complexos de trigonometria de ângulo direito. A tabela a seguir mostra as
funções de trigonometria da macro personalizada, incluindo seus nomes, sintaxe, um exemplo
simples e a resposta:
Function Syntax Example Value of #100

Sine #i=SIN[#j] #100 = SIN[30.0] 0.5

Cosine #i=COS[#j] #100 = COS[30.0] 0.866025

Tangent #i=TAN[#j] #100 = TAN[30.0] 0.577350269

Arc Sine #i=ASIN[#j] #100 = ASIN[0.5] 30.0

Arc Cosine #i=ACOS[#j] #100 = ACOS[0.866025] 30.0

Arc Tangent (method #i=ATAN[#j] #100 = 30.0


1) ATAN[0.577350269]

Arc Tangent (method #i=ATAN[#j]/[#k] #100 = 30.0


2) ATAN[0.5]/[0.866025]

Arc Tangent (method #i=ATAN[#j,#k] #100 = 30.0


3) ATAN[0.5,0.866025]
Funções de arredondamento
Macro personalizada permite o arredondamento de números reais (valores que incluem uma
parte decimal). ROUND irá arredondar um número para o próximo inteiro mais próximo (para
cima ou para baixo). FIX arredondará um número para baixo até o próximo inteiro inferior. O
FUP arredondará um número para o próximo inteiro mais alto.
A tabela a seguir mostra a função de arredondamento, sua sintaxe, um exemplo e a resposta.

Function Syntax Example Value of #100

Round #i=ROUND[#j] #100 = ROUND[3.2] 3.0

Round down #i=FIX[#j] #100 = FIX[3.8] 3.0

Round up #i=FUP[#j] #100 =FUP[3.2] 4.0

Rounding functions in Custom Macro.

Outras funções aritméticas


Existem outras funções aritméticas disponíveis na macro personalizada. Alguns podem ser muito
importantes para você, enquanto outros podem raramente ser utilizados. Uma compreensão da
matemática é necessária para compreendê-los todos, e sua própria ingenuidade pode inspirar
momentos em que eles podem ser úteis. Vamos introduzir cada um, mostrar sua sintaxe e, se
possível, fornecer um exemplo de seu uso.

Raiz quadrada
Como o nome indica, essa função (especificada com a palavra de macro personalizada SQRT)
retorna a raiz quadrada do valor ou da expressão especificada. Considere este exemplo:
# 100 = 5.0 (lado curto do triângulo)
# 101 = 8.0 (lado comprido do triângulo)
# 102 = SQRT [[# 100 * # 100] + [# 101 * # 101]] (Hipotenusa do triângulo)

Todas as funções de nível superior (incluindo raiz quadrada) permitem que expressões
aritméticas sejam executadas internamente aos parênteses da função. Nesse caso, tudo entre
colchetes será calculado antes da função de raiz quadrada. Você pode reconhecer este exemplo
como o Teorema de Pitágoras (calculando o comprimento da hipotenusa de um triângulo
aplicando a raiz quadrada ao lado adjacente ao quadrado mais o lado oposto ao quadrado).
Valor absoluto
Essa função, especificada com ABS, retorna o valor de magnitude (sem polaridade) de qualquer
valor ou expressão especificado entre seus colchetes. Embora possa não ser o uso mais
apropriado, a função absoluta tem o efeito de garantir que um valor não seja negativo.
Potência
Essa função fornece a capacidade de multiplicar um número vezes ele mesmo um número
especificado de vezes.
Aqui está a sintaxe.
# 100 = POW [4.0,2.0]
Logaritmo natural e expoente usando base e (2.718…)
Apesar de não fornecermos nenhum aplicativo (francamente porque não consigo pensar em
nenhum) para logaritmos e expoentes usando a base e na macro personalizada), é possível usá-
los em programas de macro personalizados. Mais uma vez, com a sua situação e criatividade,
você pode encontrar aplicações adequadas. Portanto, você deve pelo menos saber que é possível
incorporar logaritmos e expoentes naturais em seus programas Macro personalizados.
A sintaxe do logaritmo natural é a seguinte:
# 100 = LN [3.0]
Conversões decimais codificadas binárias e binárias
Nós não fornecemos nenhuma aplicação para estas funções, mas elas estão disponíveis caso você
encontre uma necessidade. A função BIN converte um valor decimal codificado binário em
formato binário. A função BCD converte um valor binário (composto de oito dígitos de zeros e
uns) em formato decimal codificado em binário.
Lendo valores de parâmetros
Esse é um recurso relativamente novo na macro personalizada e não está disponível em todas as
versões anteriores (como a macro B personalizada). Consideramos a capacidade de ler valores de
parâmetros dentro de programas Macro personalizados para ser um recurso relacionado ao CNC
da macro personalizada. No entanto, o FANUC inclui esta função na lista de funções aritméticas,
pelo que incluímos aqui uma breve introdução. Tenha certeza de que mais informações serão
fornecidas quando abordarmos os recursos relacionados ao CNC da Macro Personalizada na
lição seis.
Prioridade das operações aritméticas
Como dito anteriormente, você deve entender a ordem pela qual as operações aritméticas são
realizadas para desenvolver expressões que combinem operações aritméticas. A macro
personalizada segue a mesma prioridade que qualquer linguagem de programação de
computador. Agora que mostramos todas as funções aritméticas, podemos mostrar a prioridade
completa das operações aritméticas da mais alta prioridade para a mais baixa.

1) Operações entre parênteses


2) Funções de nível superior (SIN, COS, TAN, SQRT, etc.)
3) Multiplicação e divisão
4) Adição e subtração

Embora não tenha qualquer relação com o resultado da expressão, o controle sempre
funcionará através da expressão em um determinado nível (1-4) da esquerda para a direita. Se
estiver executando no nível três (multiplicação e divisão), por exemplo, ele executará a
multiplicação da esquerda para a direita na expressão. Em seguida, ele executará a divisão da
esquerda para a direita.

Como dito anteriormente, se você estiver em dúvida sobre a ordem de execução da operação,
poderá sempre usar colchetes para forçar a ordem de execução necessária. Lembre-se que
quando você fizer isso, no entanto, você estará desperdiçando níveis de ninho se "forçar" a
máquina a realizar o cálculo na mesma ordem que teria feito.
Controle de fluxo de lógica e programa

O fluxo geral (ordem de execução) para um programa normal de nível de código G do CNC é
do início ao fim. Quando um programa é ativado, o controle irá ler, interpretar e executar o
primeiro comando do seu programa. Em seguida, ele prosseguirá para o segundo comando.
Leia, interprete e execute. Então, ele passará para o terceiro comando, depois para o próximo
e depois para o seguinte. É por essa ordem seqüencial que os programas CNC são
normalmente executados.

Com a programação de macro personalizada, você pode alterar a ordem de execução do


programa. Você pode fazer com que os programas de macros personalizados façam testes
para determinar quais dos dois ou mais resultados possíveis seguirão. Você pode até mesmo
fazer a máquina repetir uma série de comandos até que alguns critérios sejam satisfeitos.
Chamaremos essa capacidade poderosa de alterar a ordem do controle de fluxo do programa
de execução do programa.

Existem vários comandos na macro personalizada relacionados ao controle de fluxo do


programa. Nesta lição, apresentaremos os tipos de comando de fluxo de programa e, em
seguida, mostraremos exemplos de quando eles são usados.

Rótulos de declaração

Alguns comandos de fluxo de programa requerem um marcador exclusivo para designar


uma posição no programa que deve ser usado para controlar o fluxo do programa.
Chamamos esses marcadores de instruções de marcadores. Os rótulos de instrução
especificam pontos no programa onde o CNC é instruído a continuar executando o
programa.

O FANUC utiliza números de sequência (N palavras) como rótulos de instruções. Este texto
mostra um número de seqüência em quase todos os comandos da maioria dos programas
para fins de documentação. No entanto, recomendamos em seus próprios programas de
macros personalizados, que você inclua somente números de sequência quando eles forem
necessários como rótulos de instrução. Isso fará com que eles se destaquem. Será mais fácil
encontrar um rótulo de declaração sendo referenciado. Também reduzirá o comprimento dos
seus programas Macro Customizados, conservando alguma memória do CNC.

Para simplificar ainda mais o uso do rótulo de declaração quando forem necessários, use um
pequeno número de sequência (como N1, N2, N3, etc.) próximo ao início do programa de
macro Personalizado. Use números de sequência em torno de cinquenta no meio do
programa. Use números de sequência perto de 99 perto do final do programa. E, se possível,
mantenha os números de sequência em ordem crescente. Dessa forma, quando você precisar
encontrar um determinado rótulo de instrução em um programa de macros personalizado,
você saberá onde procurar.
Ramificação Incondicional

Como o nome indica, o comando Macro de ramificação incondicional fará com que a
máquina se ramifique (salte) de um local no programa para outro local no mesmo programa.
O local para o qual a ramificação é feita deve ser marcado com um rótulo de instrução
(número de sequência). Você especifica uma instrução de ramificação incondicional em
Macro personalizada com uma instrução GOTO. Aqui está a sintaxe da declaração GOTO:

GOTO 50 (Branch to statement label N50. Nota sem N palavra)


N50 G00 X . . (Rótulo de declaração N50)

Ramificação condicional

Assim como a ramificação condicional em qualquer linguagem de programação de


computador, a ramificação condicional na Macro Personalizada fornece uma capacidade de
tomada de decisão. O programador de macro personalizada pode fazer o programa executar
testes. O programa pode ser executado de forma diferente com base nos resultados do teste.

Os propósitos dos testes são extremamente variados e não podemos enfatizar demais a
importância da ramificação condicional para fins de teste. Você pode testar praticamente
qualquer coisa dentro do seu programa Macro Personalizado. E com base nos resultados do
seu teste, você pode fazer o programa executar de forma diferente. Esse recurso tem
implicações fantásticas, quase ilimitadas.

Sintaxe para instruções de ramificação condicional

Antes de mostrarmos aplicativos específicos para ramificação condicional, você deve


entender sua sintaxe. A macro personalizada usa uma instrução IF para ramificação
condicional. E a Macro Personalizada, tal como está equipada nos controlos FANUC
actuais, permite uma grande flexibilidade no que diz respeito à forma como as instruções IF
podem ser escritas.

Por outro lado, versões mais antigas da Macro Personalizada (como a Macro Personalizada
B) não suportam todas as variações que mostramos. Você pode estar limitado ao formato
mais básico (universal) para instruções IF. Tenha certeza de que, embora seja mais difícil
criar as instruções necessárias de ramificação condicional (IF) com apenas a instrução IF
mais universal, todos os aplicativos de ramificação condicional podem ser manipulados.

A expressão condicional

Todas as instruções IF requerem pelo menos uma expressão condicional. O resultado da


expressão condicional será verdadeiro ou falso. Se o resultado for verdadeiro, o comando
Macro Customizado à direita da instrução IF será executado. Se o resultado for falso, o
comando após a instrução IF será executado. É assim que os programas Macro
Customizados podem tomar decisões. Com cada instrução de ramificação condicional, o
resultado fará com que o programa faça uma das duas coisas, novamente: execute o que está
à direita da instrução IF ou execute o próximo comando.
Expressões condicionais refrigeratoras condicionais. Todas as seis portas condicionais em
Macro Customizada:

1) Menor que (LT)


2) menor ou igual a (LE)
3) Igual a (EQ)
4) Maior que (GT)
5) Maior que ou igual a (GE)
6) Não é igual a (NE)

condicionais permitem grande flexibilidade no método pelo qual você desenvolve comandos
de ramificação condicional. Na maioria dos casos, o mesmo teste pode ser escrito de várias
maneiras (até seis maneiras, correspondendo ao número de operadores lógicos disponíveis).
Embora essa flexibilidade seja boa, às vezes pode ser confuso, especialmente quando você
está testando com o operador condicional diferente de (NE). Lembre-se sempre de que o
teste dentro da instrução de ramificação condicional é determinar se a expressão condicional
é verdadeira ou falsa. Ao testar contra uma condição negativa, é fácil cometer erros de
avaliação.

O formato de comando de ramificação condicional universal

Modelos de controle FANUC mais recentes permitem muito mais flexibilidade com
ramificações condicionais do que modelos mais antigos. Você deve consultar seu manual da
FANUC para determinar se recursos mais novos estão disponíveis. Você pode ter certeza de
que todos os controles FANUC permitem este formato de comando de ramificação
condicional universal.

Como afirmado, se a declaração de ramificação condicional for verdadeira, o comando à


direita da instrução será executado. Com o formato de comando de ramificação condicional
universal, você está limitado a colocar uma instrução GOTO à direita da instrução IF.

Considere este exemplo: Você deseja escrever um programa de macro personalizado


grooving para o centro de torneamento que pode usar ferramentas manuais à esquerda ou à
direita. Você deseja incluir um argumento especial na declaração de chamada, por exemplo,
H para especificar a mão do estilo de ferramentas. Seus critérios de documentação afirmam
que, se H estiver definido como um, o ferramental direito está sendo usado. Se H for
definido como zero (ou qualquer outro valor que não um), a ferramenta esquerda está sendo
usada.

Se, é claro, o ferramental direito estiver sendo usado, o fuso deve estar em uma direção para
frente (M03). Se o ferramental esquerdo estiver sendo usado, o fuso deve estar girando em
uma direção reversa (M04). Aqui está uma parte do programa Macro Personalizado que
realiza o teste apropriado e inicia o fuso na direção correta. O endereço de letra H é
representado pela variável local nº 11 no programa Macro Personalizado. Estude estes
comandos que serão incluídos no programa Macro Personalizado quando o fuso for
iniciado:.
IF [#11 EQ 1.0] GOTO 5
M04
GOTO 6
N5 M03
N6 . . .

Observe que os colchetes ([]) devem ser usados para delimitar a expressão condicional. Essa
instrução de ramificação condicional específica usa o operador lógico igual a (EQ), o que facilita
bastante a avaliação dos resultados do teste (verdadeiro ou falso). Se uma pessoa que usa essa
macro personalizada incluir H1.0 na instrução de chamada para a macro personalizada (o
comando G65), a máquina avaliará a declaração de ramificação condicional como verdadeira.
Nesse caso, a instrução GOTO à direita da instrução IF será executada. No N5, o M03 iniciará o
fuso na direção para frente (conforme necessário para ferramentas direitas).

Por outro lado, se a pessoa que usa esse programa Macro personalizado definir o valor de H
como zero (ou qualquer coisa diferente de um), a expressão condicional da instrução IF será
avaliada como falsa. Agora o comando seguindo a instrução IF será executado, iniciando o fuso
na direção reversa (como é requerido para ferramentas do lado esquerdo).

Observe a necessidade da declaração do GOTO 6. Se a expressão condicional for avaliada como


falsa e o fuso iniciar na direção inversa, precisaremos que o CNC pule o comando M03 (a outra
possibilidade da instrução IF). Esta instrução GOTO impede que o CNC inicie o fuso na direção
para frente.

Recursos relacionados ao CNC (variáveis do sistema)

A maioria dos recursos relacionados ao CNC da programação de macro personalizada é feita


com variáveis do sistema. Como qualquer outra variável na Macro Personalizada, uma forma de
referenciá-las é com um sinal de libra e um número (como # 2001). Mas, ao contrário de outras
variáveis que podem ser usadas para representar praticamente qualquer coisa, cada variável do
sistema tem uma função fixa e só pode ser usada para referenciar sua função relacionada.

As variáveis do sistema permitem que você acesse várias funções da máquina diretamente do
programa Macro Personalizado. Deslocamentos, posição do eixo, geração de alarme e estados
atuais da máquina estão entre as muitas funções acessíveis da máquina.

Acesso a compensações de ferramentas

Macro Customizado fornece acesso a todos os registros de correção de ferramenta dentro de um


controle FANUC. Embora o número / nome da variável do sistema específico possa variar entre
os modelos de controle, tenha certeza de que você tem acesso a todos os registros de correção de
ferramenta. Você tem a capacidade de ler e gravar valores de e para registradores de correção de
ferramenta, o que significa que você pode acessar seus valores para uso em um programa Macro
Personalizado, bem como inseri-los de dentro de um programa.

Você provavelmente já sabe que a maioria dos controles oferece a capacidade de gravar nos
registros de compensação da ferramenta usando o código G padrão. G10 é usado para este
propósito. No entanto, não existe uma função CNC padrão (sem macro personalizada) que
permita ler o valor armazenado em um registrador de correção de ferramenta e usá-lo dentro do
programa CNC. Essa capacidade de ler valores de registro de deslocamento tem algumas
implicações bastante importantes. Mas antes de mostrarmos os aplicativos, primeiro
mostraremos as variáveis do sistema relacionadas e sua sintaxe.
GEOM GEOM WEAR WEAR GEOM GEOM WEAR WEAR
(H) (H) (H) (H) (D) (D) (D) (D)
Numbe Numbe Numbe
No. r Name Number Name r Name r Name

[#_OFSHG[1] [#_OFSHW[1] [#_OFSDG[1] [#_OFSDW[1]


1 #2001 ] #2201 ] #2401 ] #2601 ]

[#_OFSHG[2] [#_OFSHW[2] [#_OFSDG[2] [#_OFSDW[2]


2 #2002 ] #2202 ] #2402 ] #2602 ]

[#_OFSHG[ [#_OFSHW[ [#_OFSDG[ [#_OFSDW[


199 #2199 199]] #2399 199]] #2599 199]] #2799 199]]

[#_OFSHG[ [#_OFSHW[ [#_OFSDG[ [#_OFSDW[


200 #2200 200]] #2400 200]] #2600 200]] #2800 200]]

System variable numbering/naming for a 0iD control when there are four registers per offset and
200 total offsets. (Tool Compensation Memory Type C - 200 offsets)

Acesso à posição atual


Este recurso relacionado ao CNC do Custom Macro permite determinar a posição de qualquer eixo a
qualquer momento (durante a execução de um programa). Você pode acessar a posição atual de
quatro maneiras:

1) Relativo ao ponto zero do programa (posição absoluta sem compensação)


2) Relativo ao ponto zero do programa (posição absoluta com compensação)

3) Em relação à posição de referência (retorno zero) da máquina (posição da máquina), com


compensação

4) Posição absoluta após o salto de sinal do G31 (usado com sensores de toque), com compensação
Mostramos as variáveis do sistema relacionadas e sua sintaxe antes de mostrar as implicações de
quando o acesso à posição pode ser útil.

Ao contrário das variáveis do sistema relacionadas ao acesso de deslocamento que fornecem acesso
de leitura e gravação, a variável de sistema relacionada à posição fornece apenas recursos de leitura.
Você não pode escrever para eles.

Para um centro de usinagem de três eixos


Aqui estão as variáveis do sistema para um centro de usinagem de três eixos:

Posição absoluta atual não modificada pela compensação inserida # 5001 ou [#_ABSIO [1]] -
posição do eixo X no sistema de coordenadas atual

# 5002 ou [#_ABSIO [2]] - posição do eixo Y no sistema de coordenadas atual # 5003 ou [#_ABSIO
[3]] - posição do eixo Z no sistema de coordenadas atual

Posição absoluta atual modificada pela compensação instalada # 5041 ou [#_ABSOT [1]] - posição
do eixo X no sistema de coordenadas atual

# 5042 ou [#_ABSOT [2]] - Posição do eixo Y no sistema de coordenadas de corrente # 5043 ou


[#_ABSOT [2]] - Posição do eixo Z no sistema de coordenadas atual

Posição atual da máquina:

# 5021 ou [#_ABSMT [1]] - posição X relativa à posição de referência (retorno zero) da máquina #
5022 ou [#_ABSMT [2]] - posição Y em relação à posição de referência (retorno zero) da máquina #
5023 ou [ #_ABSMT [3]] - posição Z relativa à posição de referência (retorno zero) da máquina
Pular a posição do sinal após o contato da sonda de toque (posição absoluta):
# 5061 ou [#_ABSKP [1]] - posição X no sistema de coordenadas atual no instante do contato da
ponta da sonda
# 5062 ou [#_ABSKP [2]] - posição Y no sistema de coordenadas atual no instante do contato da
ponta da sonda.
# 5063 ou [#_ABSKP [3]] - posição Z no sistema de coordenadas atual no momento do contato
da ponta de prova

Geração de alarmes

A captura de erros é o processo de encontrar condições que exigem a interrupção da execução de


um programa antes que algo ruim possa acontecer. Durante nossa discussão de ramificação
condicional na lição quatro, apresentamos a função de geração de alarme da Macro
Personalizada:

Existem duas maneiras de especificar a variável do sistema de geração de alarmes:

1) # 3000
2) [#_ALM]

Se o controle executar um comando # 3000 (ou [#_ALM]), um alarme será emitido. Como
qualquer alarme de armazenamento de programa (PS), o alarme gerado pela variável de
sistema de geração de alarme colocará a máquina em um verdadeiro estado de alarme. Você
deve pressionar o botão RESET para apagar o alarme. Aqui está a sintaxe da variável do
sistema gerador de alarmes mostrada com o número e o nome:
# 3000 = 100 (ARGUMENTO AUSENTE NA CHAMADA)

ou

[#_ALM] = 100 (ARGUMENTO AUSENTE NA CHAMADA)

Novamente, se o controle executar um desses comandos, ele gerará um alarme. O valor que

(100) é um número de alarme (de sua escolha) e pode variar de 0 a 200 (alguns modelos de
controle da FANUC permitem que outros números de alarme sejam especificados). A
mensagem entre parênteses (todas em maiúsculas) é a mensagem de documentação de
alarme. Deve ter 60 caracteres e números ou menos. Se este comando for executado, o
display mudará para a página de alarme e esta mensagem de alarme aparecerá na tela de
controle:

MC-100 ARGUMENTO AUSENTE NA CHAMADA

Com um entendimento da variável do sistema de geração de alarmes, vamos ver mais alguns
exemplos de geração de alarmes (não relacionados à interceptação de erros). Em seguida,
mostraremos como minimizar o tempo de execução do programa necessário para o trapping
de erros.

Pare com a mensagem

A parada com a variável do sistema de mensagens é semelhante à variável do sistema gerador de


alarmes. Mas, em vez de colocar a máquina em estado de alarme (exigindo o cancelamento
do ciclo), a parada com a variável do sistema de mensagens coloca a máquina no estado de
parada de programa (assim como uma palavra M00). Assim como com M00, é possível fazer
a máquina continuar executando o programa pressionando o botão CYCLE START.

Existem duas maneiras de especificar a variável de sistema stop with message:

1) # 3006
2) [#_MSGSTP]

Se o controle executar um comando # 3006 (ou [#_MSGSTP]), ele colocará a máquina no estado de
parada de programa. Você pode reativar o ciclo pressionando o botão CYCLE START, continuando
do ponto de parada com o comando message.

Aqui está a sintaxe da variável do sistema de geração de alarmes mostrada com o número e o nome.
Observe como é semelhante à variável do sistema de geração de alarmes:

# 3006 = 100 (A PARTE EM VOLTA NO CHUCK)

ou

[#_MSGSTP] = 100 (VIR PARTE AO REDOR DO CHUCK)


Novamente, se o controle executar um desses comandos, ele colocará a máquina no estado de
parada de programa. O valor (100) é um número de mensagem de sua escolha e pode variar de 0 a
200 (alguns modelos de controle da FANUC permitem que outros números de mensagem sejam
especificados). A mensagem entre parênteses (todas maiúsculas) é a mensagem de documentação.
Deve ter 60 caracteres e números ou menos. Se este comando for executado, o display mudará para
a página da mensagem e esta mensagem aparecerá na tela de controle:

MS-100 VOLTAR PARTE NO MANDRIL

Suprimindo bloco único e aguardando funções auxiliares

A variável de sistema # 3003 ou [# _CNTL1] permite que você assuma o controle de duas funções
importantes da máquina, bloco único e se os códigos M são esperados ou não. Se # 3003 ou [#
_CNTL1] estiver definido como 0 (o estado inicializado), o bloco único não será suprimido e a
máquina aguardará que as funções auxiliares (códigos M) sejam concluídas antes de passar para o
próximo comando.

Se # 3003 ou [# _CNTL1] estiver definido como 1, o bloco único será suprimido e o controle
aguardará a conclusão dos códigos M para continuar com o programa. Se # 3003 ou [# _CNTL1]
estiver definido como 2, o bloco único não será suprimido e o controle não aguardará a conclusão
das funções auxiliares. Se definido como 3, o bloco único será suprimido e os códigos M serão
aguardados.

Versões mais recentes da Macro Personalizada também permitem controlar essas funções
separadamente. [#_M_SBK] controla o bloco único. Bloco único pode ser suprimido, definindo esta
variável do sistema para um (zero para não suprimido).

[#_M_FIN] controla se os códigos M são ou não esperados (definido como zero para aguardado, um
para não aguardado).

Acesso ao temporizador e relógio (data / hora)

Outro conjunto de variáveis do sistema oferece a capacidade de registrar eventos de tempo e


determinar a data e a hora atuais a partir dos programas Macro personalizados. A tabela a seguir
mostra os números e nomes das variáveis de sistema relacionadas.

Type Number Name

Milliseconds #3001 [#_CLOCK1]

Hours #3002 [#_CLOCK2]

Date #3011 [#_DATE]

Time of day #3012 [#_TIME]

System variables related to times and date/time.


Eventos de tempo com os temporizadores

O relógio e os horários estão sempre funcionando. Se você for cronometrar um evento com um dos
timers, você deve primeiro resetar o timer (para zero). Aqui estão os comandos que redefinem o
timer de milissegundos:

# 3001 = 0 (Redefinir temporizador de milissegundos)

ou

[# _CLOCK1] = 0 (Redefinir temporizador de milissegundos)

Aqui estão os comandos que redefiniram o cronômetro de horas:

# 3002 = 0 (timer de redefinição de horas)

ou

[# _CLOCK2] = 0 (timer de redefinição de horas)

Acesso de código G modal para centros de usinagem

A tabela a seguir mostra as variáveis do sistema relacionadas à informação modal do código G em


comandos tamponados nos centros de usinagem (FANUC 0iD). Consulte a seção Macro
Personalizada do manual da FANUC para encontrar nomes e números de variáveis de sistema para
comandos ativos e interrompidos.
Modal information Number Name

G-code group 1 (G01-G03) #4001 [#_BUFG[1]]

G-code group 2 (G17-G19) #4002 [#_BUFG[2]]

G-code group 3 (G90-G91) #4003 [#_BUFG[3]]

G-code group 4 (G22-G23) #4004 [#_BUFG[4]]

G-code group 5 (G93-G95) #4005 [#_BUFG[5]]

G-code group 6 (G20-G21) #4006 [#_BUFG[6]]

G-code group 7 (G40-G42 #4007 [#_BUFG[7]]

G-code group 8 (G43-G44) #4008 [#_BUFG[8]]

G-code group 9 (G80, G81, and all #4009 [#_BUFG[9]]


canned cycles for drilling)

G-code group 10 (G98-G99) #4010 [#_BUFG[10]]

G-code group 11 (G50-G51) #4011 [#_BUFG[11]]

G-code group 12 (G66-G67) #4012 [#_BUFG[12]]

G-code group 13 (G96-G97) #4013 [#_BUFG[11]]

G-code group 14 (G54-G59) #4014 [#_BUFG[14]]

G-code group 15 (G61-G64) #4015 [#_BUFG[15]]

G-code group 16 (G68-G69) #4016 [#_BUFG[16]]

G-code group 17 (G15-G16) #4017 [#_BUFG[17]]

G-code group 19 (G40.1-G42.1) #4019 [#_BUFG[19]]

G-code group 20 (G160-G161) #4020 [#_BUFG[20]]

G-code group 22 (G50.1-G51.1) #4021 [#_BUFG[21]]

G-code group 34 (G80.1-G81.1) #4022 [#_BUFG[22]]


Variáveis do sistema relacionadas aos estados do código G modal em buffer.

O valor contido em cada variável de sistema relacionada ao código G é o número do código G para
o código G instalado. Para o grupo número um, por exemplo, se o modo de interpolação linear
(G01) estiver atualmente instalado, o valor de # 4001 ou [#_BUFG [1]] será 1 (o valor numérico de
G01)

Sugestões de melhoria de produtividade

Aqui estão algumas sugestões específicas para melhorar a produtividade do CNC com programação
paramétrica.

1: Reduzir a verificação do programa e otimizar os esforços

A simples incorporação de aplicativos de ciclo fixo criados por famílias e aplicativos criados pelo
usuário economizará a verificação do programa e otimizará o tempo. Como esses programas
funcionam como ciclos fixos (e quando foi a última vez que você questionou se um ciclo fixo interno
"funcionava" ou não [como G81 para perfuração]), uma vez verificado, você pode ter certeza de que
seus programas paramétricos funcionar corretamente.

2: Dimensionamento na primeira peça de trabalho em um torno tipo Swiss (cabeçote deslizante)

A usinagem de teste envolve a utilização de cada ferramenta no programa e a redução do tamanho


antes de passar para a próxima ferramenta. Para cada ferramenta que maquina uma superfície
crítica (com uma tolerância apertada), isso envolve 1) fazer um ajuste (geralmente em um
deslocamento) para forçar o excesso de material a ser deixado nas superfícies usinadas, 2)
usinagem sob a influência desse ajuste, 3) parar a máquina e medir após a ferramenta ter sido
usinada, 4) reajustar com base na medição e 5) re-executar a ferramenta. Se essas técnicas forem
usadas para cada ferramenta crítica, a primeira peça de trabalho usinada será boa.

Existe pelo menos um tipo de centro de torneamento que não é apropriado para a usinagem
experimental. Por sua própria natureza, os cabeçotes deslizantes - também chamados de centros de
torneamento do tipo suíço - quase nunca permitem que as ferramentas de corte refixem novamente a
peça de trabalho. Além disso, muitas dessas máquinas (pelo menos as que eu vi) exigem técnicas
relativamente cruas para atribuir o programa zero, o que significa que cada ferramenta de corte
quase certamente será desativada por alguns milésimos de polegada após a configuração inicial.

Tradicionalmente, o organizador deve executar toda a peça de trabalho (pelo menos a operação
inteira para um dos fusos) antes de poder começar a medir para determinar quais ajustes devem ser
feitos. Para trabalhos que têm mais do que algumas ferramentas, isso pode ser extremamente difícil
e muito confuso (por exemplo, quando um buraco entediado não está indo fundo o suficiente, você
vai mais fundo com a barra de mandrilar ou move a ferramenta de frente?) . O que uma pessoa de
setup faz com um ajuste certamente afetará outros atributos da peça de trabalho. Não é incomum
que até mesmo uma pessoa experiente em configuração execute várias peças de trabalho antes de
acertar. Os novatos podem levar horas fazendo isso.
Embora possa não ser possível a máquina de teste, é possível executar uma peça de teste. A peça de
teste pode ser muito simples, tornando óbvia a ferramenta que usinou uma determinada superfície.
As medições serão feitas com ferramentas de medição padrão. E, se técnicas de macro
personalizadas forem usadas, a preparação para executar a peça de teste não levará mais de um
minuto. Embora eu não mostre o aplicativo inteiro neste pequeno artigo, mostrarei o suficiente para
você entender a ideia. Se você já teve alguma experiência com a macro B personalizada, será
possível levá-la de lá.

O desenho mostra as peças de teste - pelo menos como será no nosso exemplo.
Embora tenhamos mostrado uma peça de trabalho dimensionada, todas as dimensões podem
mudar de trabalho para trabalho. Por isso, precisamos de uma maneira fácil de especificar os
tamanhos relacionados. Além disso, estamos configurando cinco ferramentas de corte
(ferramenta de frente, ferramenta de torneamento, furadeira, barra de mandrilar e ferramenta de
corte), mas pode haver ocasiões em que ferramentas internas não são necessárias no trabalho.
Por outro lado, pode haver momentos em que são necessárias ferramentas adicionais (como
ferramentas de canal, ferramentas de segmentação e todos os tipos de ferramentas ativas). Com
um programa principal relativamente simples, você pode definir facilmente a peça de teste e as
operações que deseja executar. Aqui está um exemplo:

O0001 (programa principal)


N1 G65 P6000 D0.5 Z1.0 (definir peça de trabalho)
N2 G65 P6001 T1.0 S1.0 (ferramenta de frente)
N3 G65 P6001 T2.0 S2.0 D0.48 Z0.25 (ferramenta de tornear)
N4 G65 P6001 T5.0 S7.0 Z.75 (broca de 0,25)
N5 G65 P6001 T6.0 S8.0 D0.27 Z0.25 (barra de mandrilar)
N6 G65 P6001 T7.0 S3.0 D-0.01 (ferramenta de corte)
N7 M30 (final do programa)

Observe que serão necessários dois programas de macro personalizados, O6000 (a macro
customizada de definição de peça) e O6001 (a macro customizada de operações de corte).
Aqui está o que as variáveis significam em cada uma delas:

O6000 variáveis:

D: Teste de diâmetro de estoque de peça


Z: Comprimento da peça de teste
O6001 variáveis:
T: tipo de ferramenta
1: ferramenta de frente
2: ferramenta de torneamento
3: ferramenta de segmentação externa
4: broca central (parada após esta ferramenta)
5: broca
6: barra chata
7: ferramenta de corte
8: ferramenta de segmentação
9: ferramenta de segmentação interna
10: fresa de topo (ferramenta cruzada)
11: broca cruzada (ferramenta cruzada)
S: número da estação
Z: Z profundidade de usinagem para certas ferramentas
D: diâmetro a usinar

O programa O0001 (o programa principal) será modificado para cada trabalho. Na linha N1, a
peça está sendo definida como 0,5 pol de diâmetro (diâmetro de estoque) e 0,75 de
comprimento.
Na linha N2, a operação de face está sendo feita. Observe o número do código para o tipo de
ferramenta. O tipo 1 (no nosso exemplo) é uma ferramenta de face. A palavra S especifica que
está na estação um. Não são necessárias variáveis adicionais, uma vez que o comando anterior
especifica o diâmetro do material e esta ferramenta estará sempre voltada para Z0 e para o
centro da peça de trabalho.

Na linha N3, o giro está sendo feito. Variáveis adicionais incluem D para o diâmetro para virar
(0,48 no nosso caso) e Z para o comprimento do diâmetro que virou (0,25 no nosso caso).

Na linha N4, a perfuração está sendo feita. O Z neste comando é a profundidade na qual perfurar
(não incluindo o ponto de perfuração).

A linha N5 faz o chato - com as mesmas variáveis usadas para virar (D e Z).

Finalmente, a linha N6 faz o corte. D especifica o diâmetro para o qual a ferramenta de corte irá.

Embora não mostremos os programas O6000 e O6001, você deve ser capaz de ver com que
rapidez e facilidade uma pessoa de configuração pode modificar o programa O0001 para torná-
lo pronto para usinar qualquer peça de teste de tamanho. Quando esta peça de trabalho estiver
concluída, eles medirão os vários atributos e ajustarão todos os deslocamentos de acordo. E se a
peça de teste for usinada perfeitamente, a peça de trabalho real que usa essas ferramentas
também será.

Um último ponto. Nós mostramos apenas a peça de trabalho como ela foi usinada no fuso
principal. Se a máquina tiver um sub-fuso (como faz a maioria dos centros de torneamento do
tipo suíço), técnicas similares podem ser usadas após a peça de trabalho real ter sido usinada no
fuso principal.

Mais sobre o programa de teste

Como é quase sempre necessário executar uma peça de trabalho inteira antes que a pessoa
responsável pela configuração possa começar a fazer medições e fazer ajustes de
dimensionamento, pode ser muito difícil descobrir o que deve ser feito com os deslocamentos
para obter os atributos da peça. Este problema é ainda agravado pelo grande número de
ferramentas de corte que podem ser usadas em máquinas do tipo suíço. Pode ser difícil
determinar, por exemplo, se uma ferramenta está usinando muito fundo ou outra está usinando
muito superficialmente.

Essa complexidade geralmente resulta na necessidade de executar várias peças de trabalho para
obter uma que passe na inspeção. Isso pode ser muito frustrante, demorado e desperdício. Os
custos de material podem não ser substanciais (a menos que você execute materiais exóticos),
mas o tempo imprevisível necessário para obter uma peça para passar na inspeção pode ser
devastador, especialmente quando você considera incluir o tempo necessário para inspecionar
cada peça antes que os ajustes sejam feitos. fez.

Minha sugestão foi desenvolver um programa universal de peças de teste que será usado durante
todas as configurações em todas as ferramentas de corte. A premissa é que, se uma ferramenta
de corte estiver usinando um atributo corretamente na peça de teste, ela também usinará os
atributos reais da peça corretamente. Isso, combinado com a ideia de que cada ferramenta de
corte irá usinar superfícies independentes na peça de teste que sejam fáceis de medir, faz com
que o programa de peças de teste seja fácil de usar.
Francamente falando, esta ideia foi recebida com críticas mistas. Muitos programadores não
querem dedicar tempo para desenvolver o programa de peças de teste. E muitas pessoas criam
que é tão difícil fazer um bom teste como é fazer uma boa peça de trabalho. Embora eu ainda
afirme que o programa de peças de teste irá simplificar e acelerar o processo de execução da
primeira boa peça de trabalho, não é de nenhum valor se ninguém quiser.

Você ainda tem que lidar com os problemas de frustração, perda de tempo, material
desperdiçado e tempos de configuração imprevisíveis. Se as pessoas da sua instalação estão
usinando inúmeras "peças de trabalho práticas" (ouvi um gerente dizer baldes delas) antes de
fazer uma passar pela inspeção, peço que repensem seus métodos atuais.

Minha segunda sugestão é semelhante à minha primeira. Mas, em vez de desenvolver um


programa inteiro de peças de teste para lidar com todas as ferramentas de corte que a máquina
pode usar, concentre-se nas ferramentas mais difíceis. Usando a macro B personalizada, você
pode desenvolver uma série de cortes de teste para as ferramentas de corte que causam mais
problemas às pessoas da sua instalação. Se você tiver dúvidas sobre se esse método funcionará,
comece com apenas uma ferramenta. Quando você tiver certeza de que essa técnica simplifica
os ajustes necessários tanto quanto eu disser, você pode adicionar mais.

Aqui está um exemplo. Para muitas pessoas de instalação, um tipo problemático de ferramenta é
uma fresa de topo montada paralelamente ao eixo X. Este tipo de ferramenta deve
frequentemente ser usinado no eixo Y. Com muitas máquinas, pode ser difícil centralizar
perfeitamente a fresadora de topo ao longo do eixo Y durante a configuração.
O programa de macro personalizado de corte de teste incluirá comandos para usinar dois
conjuntos de superfícies fresadas

- um plano e um arredondado. O programa de exemplo abaixo os torna 0,050 menores que o


diâmetro da barra. Um comparador (ou outros dispositivos de medição) pode ser usado para
determinar facilmente se o eixo Y está centrado (e se não, quanto está desligado), se a
ferramenta está usinando na profundidade correta em X (diâmetro da barra menos 0,05
polegadas) e se a ferramenta estiver usinando na posição Z correta (0,25 da extremidade da
peça ao centro do slot). Com esses valores, o responsável pela configuração pode alinhar
perfeitamente a ferramenta com os ajustes de deslocamento e a atribuição zero do programa
do eixo Y antes que uma peça real seja executada.

Aqui estão os programas relacionados. Observe que só mostro movimentos. Algumas funções
da máquina, como o modo de ferramentas ao vivo e as seleções do modo do fuso principal,
são omitidas.

O programa principal começa com algumas notas para apontar a pessoa de configuração para
o lugar certo no programa. A parte do moinho de extremidade cruzada do programa começa
na linha N005. Isso permitirá que você use apenas um programa para todas as operações de
corte de teste. Na linha N005, existem algumas variáveis para a pessoa de configuração
especificar. O programa é então executado a partir da linha N005 (no nosso exemplo). Um
M30 termina cada conjunto de cortes de teste.

O programa também usa sua ferramenta de frente e ferramentas de corte. Essas ferramentas
são normalmente mantidas na máquina de forma permanente, portanto, não há necessidade de
mais nada para configurá-las. Cada segmento do programa irá enfrentar a peça, realizar os
cortes de teste e, em seguida, cortar a peça (cerca de uma polegada de comprimento).
O0001 (CORTE DE TESTE)

(CORTES DE TESTE INCLUÍDOS NESTE PROGRAMA)


(N005: FRENTE DE FRESAMENTO)
(N010: BROCA TRANSVERSAL)
(N015: THREAD MILL)
N005 (CROSS END MILL)
(SET VARIABLES)
# 100 = 3 (NÚMERO DA ESTAÇÃO DE FERRAMENTA)
# 101 = 0.25 (END MILL DIA)
# 102 = 0.5 (DIÂMETRO DA BARRA)
# 103 = 0.25 (Z POSITION FOR SLOTS)
# 104 = 900 (RPM)
# 105 = 2.75 (IPM)
# 106 = 1 (FACING TOOL STATION)
# 107 = 4 (ESTAÇÃO DE FERRAMENTA DE CORTE)

(DISTÂNCIA EM TODOS OS APLICAÇÕES: BAR DIA MENOS 0.05)


(DISTÂNCIA ENTRE RODAS: BAR DIA MENOS 0.05)
(SLOTS CENTRADO NA POSIÇÃO Z)
(USINAGEM)
M98 P1000 (SUBPROGRAMA PARA ENFRENTAR)
(DEVE SELECIONAR O MODO DE FERRAMENTA AO VIVO - M CODE?)
T [# 100 * 100 + # 100]
C0 (INICIAR NO LADO C ZERO)
G98S # 104 (VELOCIDADE PARA A FERRAMENTA AO VIVO)
G0Y [# 102/2 + .5 + 0,1] Z- # 103 (MAIOR ENDMILL 0,5)
X-0,25
G1Y [# 102 / 2-0.025 + # 101/2] F # 105 (MILL ONE ROUND)
G0Y [# 102/2 + .5 + 0,1]
G0X [# 102-0,05]
G1Y - [# 102/2 + .5 + 0,1] F # 105 (MILL ONE FLAT)
G0X-0,25
G1Y - [# 102 / 2-0.025 + # 101/2] (MILL SECOND ROUND)
G0Y - [# 102/2 + .5 + 0,1]
X [# 102 + .2]
C180
X [# 102-0,05]
G1Y [# 102/2 + .5 + 0,1] (MILL SEGUNDO PLANO)
G0 X [# 102 + .2]
Y0
M98 P1001 (SUBPROGRAMA PARA CORTES)
M30
N010 (BROCA TRANSVERSAL)
M30

N015 (THREAD MILL)


M30

O1000 (ENFRENTANDO O SUBPROGRAMA)

T [# 105 + # 105 * 100]


(DEVE SELECIONAR O MODO DO FUSO PRINCIPAL - CÓDIGO M?)
G97S1000 M03
G0X [# 102 + .1] Z0
G1X-0.06F0.004
G0X [# 102 + 0,1]
X1,0 Z0,1
M99

O1001 (SUBPROGRAMA DE CORTES)


T [# 106 + # 106 * 100]
(DEVE SELECIONAR O MODO DO FUSO PRINCIPAL - CÓDIGO M?)
G97S1000 M03
G0X [# 102 + .2] Z-1.0
G1X-0.125F0.004
G0X [# 102 + 0,2]
X1,0 Z0,1
M99

3: Use um localizador de arestas como uma sonda de fuso

Assim como podemos acessar a posição da máquina com o objetivo de medir os comprimentos
da ferramenta, também podemos fazer isso com a finalidade de medir a localização do ponto
zero do programa. Para aplicações de centro de usinagem, nada é melhor do que uma ponta de
prova de toque do eixo para essa função. No entanto, se você não tiver uma sonda de fuso
equipada em sua máquina, essas funções da macro personalizada permitem que você use um
localizador de borda de tipo de condutividade padrão (que é mais fácil de usar do que um
localizador de borda tipo wiggler) para lidar com praticamente qualquer aplicação de sonda de
toque do eixo. Por localizador de borda tipo condutividade, queremos dizer um localizador de
borda que incorpora uma luz que ilumine o instante em que entra em contato com uma
superfície metálica.

A única limitação é que a tarefa de tocar o localizador de borda em cada superfície deve ser
executada manualmente. Isso permite que você desenvolva uma série de programas utilitários
de macro personalizados muito úteis para facilitar a medição do zero do programa com base em
suas próprias especificações específicas de ponto zero do programa. Mais uma vez, tudo o que
pode ser feito com um apalpador por contato com o fuso pode ser feito com um localizador de
borda. Entender como programar um localizador de aresta dessa maneira é uma ótima maneira
de começar a aprender como programar um apalpador de toque de fuso. Incorpora muitas das
mesmas funções.
Um programa Macro de captura de canto

Este exemplo localizará o canto inferior esquerdo de uma peça retangular nos eixos X e Y.
Também localizará a superfície superior da peça de trabalho no eixo Z. Em seguida, colocará os
valores medidos nos registros de deslocamento do sistema de coordenadas da peça de trabalho.

Esse programa de macro personalizado pressupõe o uso de um localizador de borda de tipo de


condutividade. Como este programa provavelmente será usado regularmente, utilizaremos duas
constantes de sistema. O raio do localizador de borda (0.100 para o nosso exemplo) é
armazenado na variável comum permanente # 500 e o comprimento desse localizador de borda
é armazenado em # 501. Uma vez determinada a localização de cada superfície, a distância do
ponto de referência da máquina até a superfície zero do programa será armazenada no
deslocamento número um do sistema de coordenadas da peça. Antes de executar este programa,
a pessoa de configuração posicionará manualmente o localizador de borda em torno de 0,5 pol
em cada direção a partir do canto a ser coletado (0,5 à esquerda do canto em X, 0,5 abaixo da
esquina em Y e 0,5 acima da canto em Z).

O0015 (Programa para pegar o canto inferior esquerdo)

G49 (cancela a compensação do comprimento da ferramenta)


G91 G01 Y0.75 Z-0.75 F30.0 (Mover para a primeira posição de toque)
# 3006 = 101 (TOQUE DO LADO ESQUERDO EM X)
[# _WZG54 [1]] = [#_ABSMT [1]] + # 500 (conjunto X do número de correção 1 do sistema de
coordenadas da peça)
G91 G01 X-0.2 (afastar-se em X)
Y-0,75 (descer em Y)
X0,55 (passar para a segunda posição de toque)
# 3006 = 102 (TOUCH BOTTOM SURFACE IN Y)
[# _WZG54 [2]] = [#_ABSMT [2]] + # 500 (conjunto Y do número de correção 1 do sistema de
coordenadas da peça)
G91 Y-0.2 (afastar-se em Y)
Z0.75 (mover acima da superfície superior em Z)
Y0.55 (Mover para a terceira posição de toque)
# 3006 = 103 (TOCAR SUPERFÍCIE SUPERIOR EM Z)
[# _WZG54 [3]] = [#_ABSMT [3]] - # 501 (Conjunto Z do offset do sistema de coordenadas da
peça número um)
G91 G01 Z0.5 (afastar-se em Z)
G54 X0 Y0 (Instale o sistema de coordenadas, mova para o canto)
M30 (fim do programa)

Usando técnicas semelhantes, você pode desenvolver qualquer rotina de coleta que um sistema
de apalpador verdadeiro seja projetado para fazer (qualquer outro canto, centro de um furo,
saliência ou pino, centro de um slot, etc.). E, novamente, se você entender esse programa, estará
no caminho certo para programar um verdadeiro sensor de toque do eixo.
4: Streamline tool length measurements on machining centers

Embora muitas empresas tenham transferido a tarefa relacionada à configuração de medir


comprimentos de ferramenta para usinagem de configurações de centro off-line (eles medem
comprimentos de ferramenta para trabalhos futuros durante a produção atual), há muitas
empresas que ainda medem comprimentos de ferramenta diretamente na máquina durante a
instalação . Talvez não haja ninguém disponível para medir comprimentos de ferramenta durante
as execuções de produção. Ou talvez os tamanhos de lote sejam tão pequenos e os tempos de
ciclo tão curtos que não haja tempo para configurar e medir os comprimentos de ferramenta off-
line.

Independentemente do motivo, se os comprimentos da ferramenta precisarem ser medidos na


máquina durante a configuração, você deve facilitar ao máximo que as pessoas da sua instalação
executem a função de medição do comprimento da ferramenta. As sondas de medição de
comprimento de ferramenta tornam esta tarefa tão fácil quanto possível. No entanto, muitas
empresas não têm apalpadores de medição de comprimento de ferramenta e devem depender
exclusivamente da pessoa encarregada da configuração para realizar medições tediosas e
propensas a erros em cada ferramenta, enquanto a máquina estiver inoperante entre as execuções
de produção. De certa forma, a máquina está sendo usada como um medidor de altura muito
caro.

Se as pessoas da sua instalação precisarem medir manualmente os comprimentos das ferramentas


de corte na máquina e inserir cada valor de comprimento de ferramenta no deslocamento de
compensação de comprimento de ferramenta correspondente, você poderá facilitar muito essa
tarefa com um programa Macro de Utilitários. Este programa aproveitará a capacidade da Macro
Personalizada para acessar a posição atual da máquina e a capacidade de inserir valores nos
registros de compensação da compensação do comprimento da ferramenta.

Para manter nosso exemplo simples de seguir, vamos fazer algumas suposições.

1) Assumimos que você esteja usando o comprimento de cada ferramenta (distância da ponta da
ferramenta ao nariz do fuso) como o valor de correção da compensação do comprimento da
ferramenta.

2) Assumimos que o número de correção para cada ferramenta corresponde ao número da


estação de ferramentas (deslocamento um para a estação número um, deslocamento dois para a
estação número dois e assim por diante).

3) Assumimos que todas as ferramentas que estão sendo medidas serão montadas e carregadas no
magazine de ferramentas da máquina antes de executar este programa Macro personalizado.

4) Assumimos que a pessoa de configuração usa um bloco de três polegadas para tocar cada
ferramenta (possivelmente o lado de três polegadas de um bloco 1-2-3). Este bloco é colocado
diretamente no tampo da mesa antes da medição da ferramenta.

5) Presumimos que as pessoas da sua configuração sempre terão uma série de ferramentas em
estações de ferramentas consecutivas para medir (como da estação de ferramentas um até a
estação de ferramentas dez).

Antes de usar este programa pela primeira vez, a distância do topo da mesa até a ponta do fuso
da máquina na posição de referência do eixo Z da máquina (retorno zero) deve ser medida. Este
valor será colocado na variável comum permanente # 500.
Aqui está o programa Macro Customizado:

O0014 (número do programa)


# 100 = 1 (primeira ferramenta a medir)
# 101 = 15 (última ferramenta a medir)
# 102 = # 100 (Inicializar contador para loop)
WHILE [# 102 LE # 101] DO 1 (Teste se finalizado)
G91 G28 Z0 M19 (Retornar à posição de troca de ferramenta, orientar fuso)
T # 102 M06 (Coloque a ferramenta atual no fuso)
# 3006 = 101 (TOOL TO TOOL TIP TO BLOCK) (Pare com o comando de mensagem)
# [2000 + # 102] = # 500 - 3 - ABS [# 5023] (Definir deslocamento)
G91 G01 Z.5 F30. (Afaste-se do bloco)
# 102 = # 102 + 1 (contador de passos)
END 1 (Volte para a instrução WHILE)
M30 (fim do loop e programa)

Embora você deva ser capaz de seguir a maior parte deste programa de macros personalizados,
ele introduz algumas novas funções. Primeiro de tudo, estamos usando # 500 como uma
constante do sistema (as constantes do sistema são introduzidas na lição dois). Este valor (a
distância do tampo da mesa até o nariz do fuso na posição de referência da máquina) será medida
e inserida apenas uma vez. O CNC reterá o valor de # 500 de dia para dia (é uma variável
comum permanente) e estará disponível sempre que este comprimento de ferramenta que mede o
programa Macro Customizado for usado.

A pessoa configurada começará editando os dois primeiros comandos, especificando o primeiro


número da estação da ferramenta e o último número da estação da ferramenta para as
ferramentas a serem medidas. Eles então colocarão o bloco de três polegadas na mesa sob o nariz
do fuso e ativarão o programa. Depois que o loop for inicializado e a primeira execução do
WHILE for considerada verdadeira, o comando G28 enviará a máquina para sua posição de troca
de ferramenta. A primeira ferramenta a ser medida será colocada no fuso e o programa será
interrompido devido ao comando stop with message.

Embora ainda não tenha sido introduzido, a variável de sistema # 3006 é muito semelhante à
variável de sistema de geração de alarme # 3000. No entanto, em vez de colocar a máquina em
um estado de alarme, ela simplesmente coloca a máquina em um estado de parada de programa,
exatamente como M00. Mas, ao contrário de M00, a tela mostrará automaticamente a mensagem
TOUCH TOOL TIP TO BLOCK na tela. Um comando M00 funcionaria tão bem quanto o #
3006, mas o responsável pela configuração deve monitorar a página do programa da tela para ver
a mensagem.

Neste ponto, a pessoa de configuração coloca a máquina em um modo manual (jog, manual,
volante, etc.) e manualmente traz a ponta da ferramenta para a primeira ferramenta para baixo

5: Retire os cálculos dos ajustes de dimensionamento

Quase todas as entradas de offset feitas por seus operadores requerem que algum tipo de cálculo
seja feito antes que o valor de offset possa ser inserido. Por exemplo, digamos que o diâmetro
alvo em uma peça de trabalho que está sendo usinada com uma ferramenta de torneamento é
3,2342 e sua tolerância é mais ou menos 0,002 (limite alto é 3,2352). Após a usinagem com a
ferramenta de torneamento de acabamento, o operador descobre que o diâmetro sendo girado é
3,2351. Embora a peça de trabalho ainda esteja dentro de sua faixa de tolerância, o operador
precisará ajustar o deslocamento para trazer a peça de volta ao seu valor alvo.
Para fazer isso, o operador deve subtrair a dimensão de destino da dimensão real

(3.2351 - 3.2342, neste caso) para chegar com a quantidade de mudança de deslocamento
(0,0009 no nosso caso). Embora nosso exemplo envolva subtração simples, até mesmo cálculos
simples levam tempo, mesmo para operadores experientes e abre a porta para cometer erros. Os
ajustes de compensação dessa natureza, obviamente, são feitos inúmeras vezes (especialmente
em ferramentas de acabamento) durante uma execução de produção.

IMPORTANT! Any time you see your operators using a calculator before they enter
an offset value should be taken as a signal that you can do something to help them
and minimize offset setting time.

Macro personalizado fornece todas as ferramentas necessárias para simplificar os ajustes de


deslocamento. Você tem acesso a compensações de dentro dos programas. Você pode fazer
cálculos para determinar o valor pelo qual um deslocamento deve ser ajustado. E você pode ter
um programa Macro Personalizado para alterar um valor de compensação pelo valor apropriado
com base no resultado de um cálculo. (A propósito, os sistemas de medição geralmente executam
essas funções quando são usados para aplicativos de medição em processo).

Dado o nosso exemplo anterior, o diâmetro alvo a ser girado em um centro de torneamento é de
3,2342 polegadas. Digamos que seja a ferramenta número cinco é a ferramenta de torneamento
que maquina esse diâmetro. Após a usinagem, o operador normalmente ajustará o número de
correção cinco (ferramenta) para introduzir qualquer discrepância (por 0,0009 no nosso exemplo
anterior). Em vez de forçar o operador a calcular a quantidade de desvio (e polaridade), não seria
mais fácil para o operador inserir o diâmetro usinado atual (3.2351 no nosso caso)?

Como funciona

Nossa técnica permitirá que o operador faça exatamente isso, o que elimina a necessidade de um
cálculo antes da entrada de compensação. Mas, em vez de fazer um ajuste no deslocamento de
desgaste número cinco, escolheremos um número de deslocamento secundário no qual inserir o
valor medido. Como a maioria das torres não pode conter mais de doze ferramentas, nós
simplesmente adicionamos vinte ao número da estação de ferramentas para obter o número de
correção secundário. Para a ferramenta número cinco, usaremos o número de offset de desgaste
vinte e cinco.

O programa Macro Customizado verificará se existe algum valor no registrador de deslocamento


secundário (diferente de zero). Se houver, o operador inseriu o tamanho real da peça de trabalho
que está se desviando do tamanho desejado. Nesse caso, o programa Macro personalizado fará o
cálculo para determinar o valor de ajuste de deslocamento (exatamente como o operador está
fazendo manualmente manualmente) e ajustará o deslocamento de desgaste primário de acordo
(número de correção cinco no nosso caso).

Minimizando Comandos Repetidos

Se você deseja usar essa técnica para todas as ferramentas que exigem ajustes freqüentes de
deslocamento (geralmente suas ferramentas de torneamento, ferramentas de rosqueamento e
ferramentas de ranhuramento), você terá alguns comandos redundantes no seu programa
principal para executar o teste de deslocamento secundário e cálculos . Para trabalhos de alto
volume, isso pode estar bem. Mas quanto mais programas você precisar executar, mais
inconveniente seria incorporar esses comandos redundantes diretamente no seu programa
principal. Para minimizar o número de comandos necessários, nossa técnica usa um programa
separado (o programa Macro Personalizado) para essa finalidade.
No programa principal, coloque este comando no início das ferramentas para as quais você
deseja simplificar os ajustes de dimensionamento (normalmente apenas as ferramentas de
acabamento). Este comando deve vir antes do comando de indexação da torre.

N050 G65 P8002 T5.0 D3.2342 S3.22 B3.245 (Verifique se o ajuste de compensação é
necessário)

N055 T0505 (Ferramenta de torneamento final)

Na linha N050, chamamos o programa Macro Personalizado e especificamos o número da


estação de ferramentas em uso (com T) e o valor alvo para a dimensão que está sendo medida
(com D). Observe que o programa Macro personalizado também testará os dados de entrada do
operador para confirmar se está dentro dos limites permitidos (talvez eles tenham medido o
diâmetro errado ou tenham inserido o valor incorretamente). Se a entrada não estiver dentro do
intervalo permitido, um alarme será emitido. S especifica o pequeno limite para o intervalo
permitido e B especifica o grande limite. No programa Macro Personalizado, T é representado
pelas variáveis locais # 20, D por # 7, B por # 2 e S por # 19.

Aqui está o programa de macro personalizado.

O8002 (macro personalizada para calcular e definir deslocamentos)


IF [# [2020 + # 20] EQ 0] GOTO 99 (Se o operador ainda não tiver inserido um valor, saia)

IF [# [2020 + # 20] GT # 19] GOTO 5 (Se o valor de deslocamento for maior que o limite
pequeno, vá para N5)
# 3000 = 100 (DIMENSION OFFSET TOO SMALL)
N5 IF [# [2020 + # 20] LT # 2] GOTO 10 (Se o valor do deslocamento for menor que o limite
grande, vá para N10)
# 3000 = 101 (DIMENSION OFFSET TOO BIG)
N10 # [2000 + # 20] = # [2000 + # 20] + [# 7 - # [2020 + # 20]] (Ajustar deslocamento primário)
# [2020 + # 20] = 0 (Defina o deslocamento secundário de volta para zero)
N99 M99

Uma nota sobre seus métodos atuais

Essa técnica simplesmente se baseia em seus métodos atuais. Se você deseja inserir offsets da
mesma maneira que você sempre esteve (talvez o pessoal de configuração ou pessoas mais
experientes desejem fazer isso), você pode fazer isso. Essa técnica não interferirá nos seus
métodos atuais. Mas os operadores de nível de entrada provavelmente acharão esse método de
entrada de deslocamento mais fácil, rápido e menos propenso a erros do que os métodos atuais.
6: Centralize rapidamente o eixo Y de um centro de torneamento de ferramentas ao vivo

Cada vez mais tornos CNC têm capacidades de ferramentas ao vivo - especialmente máquinas de
cabeçote móvel. Isso permite que eles executem os mesmos tipos de operações de usinagem
feitas em fresadoras, eliminando a necessidade de operações secundárias. Ferramentas de corte
rotativas, como brocas, machos, alargadores e fresas de topo, podem ser realizadas em pelo
menos duas atitudes: paralelas ao eixo X ou paralelas ao eixo Z. Essas ferramentas de corte
podem realizar operações de usinagem em faces (trabalho do eixo Z) ou em diâmetros (trabalho
do eixo X).

Com algumas máquinas de ferramentas ao vivo, cada ferramenta de corte é fixada nas linhas de
centro do eixo X e Z. Ou seja, a ferramenta não pode se mover na direção perpendicular ao plano
XZ. Estas máquinas só podem realizar usinagem no centro da peça em X.

Máquinas de ferramentas mais sofisticadas e vivas permitem a usinagem perpendicular ao plano


XZ. Eles têm um eixo Y (embora nem todos os construtores de máquinas-ferramenta chamem
esse eixo de eixo Y). Enquanto eles
o eixo geralmente tem uma quantidade bastante limitada de deslocamento (comparado ao eixo Y
de um centro de usinagem), isso aumenta drasticamente a capacidade da máquina. Agora a
máquina pode realizar operações de usinagem que não estão centralizadas na peça de trabalho.

Uma frustração comum com os tornos do eixo Y é que cada ferramenta de corte requer
calibração durante a configuração. Isso ocorre porque, com muitas máquinas, as estações de
ferramenta de ferramentas ativas não estão perfeitamente alinhadas entre si. Quando o centro de
um deles está no centro do eixo X, os outros não estarão. De fato, muitas máquinas de cabeçote
móvel de fato usam o eixo Y como o “mecanismo de troca de ferramentas”. O eixo Y
simplesmente se move para mudar de uma ferramenta de corte para a próxima.

Embora possa haver maneiras de qualificar e registrar permanentemente as posições centrais


relacionadas, muitas pessoas de configuração passam por um processo tedioso para calibrar todas
as ferramentas ativas ao longo do eixo Y para cada configuração. Este procedimento envolve o
manuseio de um pino de alinhamento (mantido na estação de ferramentas) em ambos os lados da
peça e usando os displays de posição para calcular o centro da localização da peça de trabalho
para a estação de ferramentas ao longo do eixo Y. Com este valor conhecido (o valor de
atribuição zero do programa do eixo Y para a estação de ferramentas), o responsável pela
configuração entrará no deslocamento de geometria apropriado.

Esta macro personalizada que fornecemos simplificará drasticamente o processo:

O0001 (ALINHAMENTO DE FERRAMENTA TRANSVERSAL Y EIXO)

N1 # 121 = 1 (NÚMERO DA FERRAMENTA PARA CALIBRAR)


(SELECIONE FERRAMENTA E JOG PIN PARA ACIMA DE 0.25 ACIMA DE X.)
N2 G98
N3 # 101 = # 5003
N4 G01 Y [# 101 + 0,4] F30.0
N5 U-1.0
N6 # 3006 = 100 (TOQUE X PLUS)
N7 # 110 = # 5003
N8 G01 Y [# 101 + 0,4]
N9 U1.0
N10 Y [# 101-0,4]
N11 U-1.0
N12 # 3006 = 100 (TOQUE X LADO MENOS)
N13 # 111 = # 5003
N14 Y [# 101-0.4]
N15 U1.0
N16 # 105 = [[# 110 + # 111] / 2]]
N17 Y # 105
N18 # 106 = # 5023
N19 # [2300 + # 121] = # 106
N20 G99
N21 M30

A pessoa de configuração começará colocando um pino no suporte da ferramenta de corte (como


provavelmente estão fazendo atualmente). O pino pode ter o mesmo diâmetro da ferramenta de
corte que eles usarão.

Eles então alteram a linha N1, inserindo o número da estação de ferramentas da ferramenta a ser
calibrada. Em seguida, eles movimentam a máquina manualmente de modo que o pino fique
aproximadamente centrado na peça de trabalho em Y e aproximadamente 0,2 polegada acima da
peça de trabalho em X.

Em seguida, eles ativarão esse programa. Na linha N3, a atual posição Y é armazenada. # 5003 é
a posição atual no terceiro eixo, que para a maioria dos centros de torneamento é o eixo Y. (Você
deve confirmar isso para a sua máquina antes de usar a macro personalizada.)

O eixo Y se moverá mais na linha N4 para uma posição que irá limpar o diâmetro da peça de
trabalho. Na linha N5, o pino se moverá abaixo do centro em X (U comanda um movimento X
incremental).

Na linha N6, a máquina irá parar e colocar a mensagem “TOUCH X PLUS SIDE” no visor. A
pessoa responsável pela configuração selecionará o modo de volante e, com cuidado, tocará para
fixar a peça de trabalho em X. Quando terminar, eles colocarão a chave de modo de volta ao
modo automático e pressionarão o botão de início de ciclo.

A linha N7 armazena a posição Y atual (enquanto o pino está em contato) e, em seguida, o pino
se moverá e voltará ao centro nas linhas N8 a N10.
O processo é repetido para o lado Y menos nas linhas N11 a N15. Na linha N16, a linha central
verdadeira Y é calculada e o eixo Y se move para essa posição. Na linha N18, a posição atual do
eixo Y em relação à posição de retorno zero do eixo Y é determinada. Finalmente, na linha N19,
este valor (valor de atribuição zero do programa do eixo Y) é colocado no deslocamento de
geometria apropriado.

Este programa pode ser melhorado. Você pode, por exemplo, ser capaz de criar uma maneira de
fazer com que a macro personalizada detecte automaticamente qual ferramenta ativa está em
posição (possivelmente testando a posição Y atual depois que o centro for encontrado). Além
disso, este programa é para peças relativamente pequenas (até cerca de 0,5 polegadas de
diâmetro se for usado um pino de 0,25 de diâmetro). Com algumas modificações, pode ser feito
para trabalhar para tamanhos de peças maiores.
7: Facilitate jaw boring on turning centers
Talvez você perceba que a configuração do centro de giro das pessoas está demorando muito,
sempre que as mandíbulas moles precisam ficar entediadas. Eles estão realizando essa operação
manualmente, usando o volante da máquina. Como você sabe, mandíbulas chatas
completamente manuais podem ser tediosas e demoradas. Com um programa Macro
Personalizado para mandrilamento de mandíbulas, o responsável pela configuração
simplesmente especificará o tamanho das mandíbulas a serem furadas e o mandrilamento do
programa Macro Customizará as mandíbulas. Isso pode até mesmo liberar a pessoa de
configuração para fazer outras coisas enquanto as mandíbulas estão ficando entediadas. A
próxima ilustração mostra o aplicativo, incluindo os argumentos variáveis comuns que
usaremos.

Argumentos para utilitário de mandrilamento de mandíbulas Programa Macro


personalizado.
Aqui está o programa de macro personalizado para o utilitário mandíbula chata. Assume-se
que a barra de mandrilar está na estação número doze e que o programa zero em Z é a face
das mandíbulas.

O0023 (programa utilitário chato mandíbula)

# 100 = 2.0 (pequeno diâmetro, chato começa a partir daqui)


# 101 = 3.0 (diâmetro grande)
# 102 = 0.5 (Profundidade da operação de perfuração)
# 103 = 300.0 (Velocidade para mandíbula)
# 104 = 0.010 (taxa de alimentação para mandíbula)
# 105 = 0.1 (Profundidade de corte para mandíbula)

T1212 (Índice da barra de mandíbula)

G96 S # 103 M03 (partida do fuso)


G98 G01 X # 100 Z0.1 F30.0 (alimentação rápida na posição para iniciar a mandíbula)
G99 (selecionar novamente o avanço por modo de revolução)
G71 P1 Q2 U-0.04 W0.005 D # 105 F # 104 (Ciclo fixo da mandrilagem bruta)
N1 G00 X # 101 (Rapid até grande diâmetro)
G01 Z- # 102 (Máquina para o fundo da mandíbula)
N2 X # 100 (abaixar a face até o diâmetro inicial)
G70 P1 Q2 F [# 104 * 0.5] (Furo finalizado)
M30 (fim do programa)

Quando a pessoa que está configurando precisa usar mandíbulas, eles modificam os
argumentos bem documentados que iniciam o programa. Para ser eficiente, deve ser o mais
rápido e fácil possível carregar a barra de mandrilar. Melhor ainda, talvez a barra chata
seja mantida na torre da máquina.

Com o programa modificado e a barra de mandrilar em posição, eles podem ativar o ciclo e
as mandíbulas ficarão entediadas.

Você também pode gostar