Eu prometi desenvolver através de exemplos a programação paramétrica (Fanuc): eis-me aqui com vocês para compartilhar meus pensamentos.
Ler e escrever um programa paramétrico torna-se, com alguma prática, quase normal .... o verdadeiro problema é entender quando e como implementar
esses programas; este é o que eu percebo das comunicações que tive com vários do fórum pedindo informações ou soluções de problemas
particulares. É claro, um manual de programação paramétrica fornece uma base para escrever programas, mas certamente o que está faltando é:
por que fazer isso? Quais as razões do uso desse tipo de programa? Como começar? por que...
Normalmente, os livros não ensinam ou não explicam adequadamente as razões por que devemos agir de uma determinada maneira (no nosso caso
por que usar programação paramétrica), são simplesmente uma explicação de conceitos, sintaxe, e regras ....
Vou tentar, mesmo que já expliquei anteriormente, mostrar as razões que podem levar à implementação de um programa paramétrico ou macro,
considerando, principalmente, a implementação do programa, em vez que a solução para todos os problemas. Minha intenção é
portanto, deixar que as pessoas compreendam as razões que levam à escolha do paramétrico ao invés de escrever programas convencionais.
Estas reflexões são naturalmente direcionadas para os programadores de máquinas cnc que têm alguns conhecimentos de gcode, que conhecem os princípios e as
noções básicas de como escrever um programa e tenham um mínimo de conhecimento real das máquinas CNC.
Como de costume, escrevo explicitamente para cnc Fanuc; o conceito lógico é igualmente aplicável a qualquer controle, considerando as diferenças relacionadas.
Reflita, por um momento, sobre os números de programas que temos escrito...
Agora vamos parar e contamos as diferentes operações básicas que fizemos ... não são muitas, não é verdade?
Embora temos escrito milhares de programas, talvez centenas de milhares de vezes pressionado a mesma tecla, é verdade que
basicamente, temos constantemente repetido as mesmas ações. As operações básicas não são muitas; depois de um tempo você
percebe que o nosso trabalho é dirigido mais para o tipo de material (à velocidade de corte) do que as operações de trabalho.
Isto porque há pouco para inventar ... já fizemos tudo!
Diariamente nos perguntamos: mais um perfil? Mais um furo? Aqui, eu tenho que escrever novamente o procedimento acima ...
Você tem necessidade de algo que possa ajudar na solução desses problemas práticos.
Vamos esclarecer o conceito de que se você esperar milagres da programação paramétrica, a solução para todos os problemas de programação
você está fora do caminho! Paramétrica resulta de uma resposta a um problema prático, como solução, mas sem inventar ou introduzir algo de novo que não seja
uma sintaxe diferente ou regras que porem permanecem no programa tradicional (iso convencional). O paramétrico não introduz nada de novo que você não sabe.
Certamente tem suas próprias regras e sua própria sintaxe, você tem que estudar, mas não pode sair dos conceitos que você conhece.
Em conclusão, o paramétrico expande a forma de escrever e gerenciar seus programas (e não só), mas não "reinventa a roda".
Vamos ver alguns aspectos práticos!
Pegue uma peça e suponha que nós temos que construir uma série de figuras circulares de diferentes diâmetros e profundidade. Bem, realizar cada figura é simples,
o chato é repetir o procedimento para cada figura. Basicamente, escreveremos o mesmo código para cada circulo: então varias vezes!.
Além disso, e não menos importante aspecto, com o aumento do número de operações aumenta a possibilidade de cometer erros.
Implementar um programa paramétrico (macro) capaz de criar a figura, quer dizer "automático", certamente simplifica e reduze
consideravelmente o número de erros. Nossa tarefa não será escrever o código todo, mas sim uma lista de pontos onde realizar as figuras.
(A macro vai trabalhar para nós). Muitas cnc têm programas internos (macro) capazes de realizar este conceito.
Este exemplo mostra o primeiro aspecto de um programa macro: se houver repetição isto é útil para fazer uma macro!
Todos aqueles gestos diários repetitivos (programação) podem ser pré-requisito para a realização de programas paramétricos!
Uma série de furos posicionados de uma forma sistemática, uma série de figuras, perfis repetitivos ... cada operação pode ser colocada sob forma de macros.
O segundo aspecto dos programas macro é baseado no fato que você pode criar funções personalizadas! Para ser concreto, considere a função G83.
Nem sempre esta função age como gostaríamos, às vezes desejamos ter, por exemplo, descargas variáveis.... mas você não possui esta possibilidade...
o que nos leva a obter uma sucessão de furos para a obtenção deste resultado. Ao criar uma macro personalizada você pode implementar o método que acredita
mais apropriado para o trabalho: profundidades, passos, velocidade de corte... tudo o que quiser pode ser implementado!
Este aspecto mostra o poder da macro: a criação de funções personalizadas!
Um terceiro aspecto, muitas vezes esquecido, é que o nosso CNC é um computador, e, portanto, capaz de realizar cálculos. Isto pode vir a calhar quando
nós temos que executar ações que requerem cálculos e não estamos em condições de fazê-los, devido à falta de conhecimento, ou por falta de uma
calculadora. Veremos nos exemplos como aplicar isso!
As razões para a utilização da programação paramétrica podem ser muitas e variadas, com a experiência o campo de ação se expande e isso pode
levar, por vezes, para a escrita de programas que têm pouco a ver com a programação de uma peça, mas que servem ao contrário como apoio ao nosso
trabalho. E' este outro aspecto dos programas com variáveis: a capacidade de interagir com a cnc, completamente.
Como então, entender esses novos jogos disponíveis? Como começar a escrever seus próprios programas?
É claro, com exemplos; fáceis de entender e de preferencia simples! Vou tentar fazer alguns exemplos genéricos pegos de minha própria experiência pessoal,
programas simples capazes de explicar por que e como escrever determinados programas.
Como este post é destinado a ser apenas uma introdução (iremos aprofundar mais tarde), vamos dar uma olhada no que a programação paramétrica pode oferecer,
lembrando que a teoria já foi discutida anteriormente. Se você estiver em jejum desses conceitos pode ler os postes sobre a programação paramétrica!
(Este é apenas um exemplo simples para entender o que é a programação paramétrica)
Problema: quero contar o número de peças usinadas!
Solução: criar um contator!
O mais simples uso de variável é o contator!
Sim, mas por que contar? e como?
Uma variável contator é uma variável cuja mudança cíclica está de acordo com nossas definições.
Montamos uma variável, por exemplo, #100=0, e usamo-a como contator em incrementos de 1.
Isto significa que em cada ciclo (aqui o termo ciclo indica qualquer ação cíclica) a variável irá aumentar de 1: #100=#100+1.
A escrita #100=#100+1 significa que à #100 é atribuído o valor de si mesma mais 1: então aumenta de 1.
Qual é a utilização de um contator?
Há muitos usos para um contator:
Por exemplo podemos contar o número de peças usinadas
#100=1(contator peças)
"Programa"
#100=#100+1(incremento contator)
M30
Este exemplo mostra como a cada execução do programa a #100 é aumentada de 1, e em seguida, oferece a possibilidade de saber quantas peças temos usinado.
Ou você poderia usar um contator para fazer escolhas
(vamos supor de ter posto a #100=1)
"programa"
IF[[#100-100]EQ0]THEN GOTO100
#100=#100+1
M30
N100#3006=1(100 peças usinadas, controlar a ferramenta)
#100=1
M30
A #100 é definida como o valor inicial de 1.
o programa é executado, verifica se alcançamos o número 100 (IF[[#100-100]EQ0] quer dizer:
exemplo: #100=43, (43-100), é diferente do 0, então o programa procede de forma linear com o aumento da variável (#100=#100+1) e acaba.
exemplo: #100=100, (100-100), é igual ao numero 0, então o programa pula para a linha 100, a #3006 irá emitir uma mensagem que
o operador poderá ler. A #100 vai ser posta novamente ao valor 1.
O operador neste exemplo usa uma variável para controlar a ferramenta... mas você pode fazer ainda melhor!
Uma variável pode oferecer outras opções!
Controlar uma ferramenta significa parar a cnc: será que podemos realizar um programa que permite o controle sem parar a cnc?
E' só pegar duas ferramentas iguais (por exemplo T3 e T18, ferramentas de perfuração D = 5) e associá-las a uma variável (#101)
Agora é só chamar a ferramenta em relação a #101,
(#101=3, valor inicial, associação com a ferramenta 3)
(#100=1, valor inicial contator relativo, contator porr 100 peças)
(#102=1, valor inicial contator peças)
T#101M6
"programa"
IF[[#100-100]EQ0] THEN GOTO100
#100=#100+1
#102=#102+1
M30
N100#3006=1(Verifique a ferramenta)
IF[#101EQ3] THEN #101=18 (2° ferramenta de perfuração D = 5)
IF[#101EQ18] THEN #101=3 (1° ferramenta de perfuração D = 5)
#100=1
#102=#102+1
M30
Este exemplo é um conjunto dos precedentes!
A #102 representa o contator peças, a #100 é o contator relativo ao valor 100, quer dizer é o alarme para o operador.
A #101 é o valor associado à ferramenta (3 ou 18).
Este o programa principal
T#101M6 (chamada ferramenta, T3)
"programa" (programa a ser executado)
IF[[#100-100]EQ0] THEN GOTO100 (controle do contator relativo, chegamos a 100? Não, então vamos acrescentando as variáveis)
#100=#100+1 (acrescenta o contator relativo)
#102=#102+1 (acrescenta o contator absoluto)
M30
A #100 alcançou o valor 100? Sim!, então o programa vai pular para a línea 100
N100#3006=1(Verifique a ferramenta)
IF[#101EQ3] THEN #101=18 (2° ferramenta de perfuração D = 5)
IF[#101EQ18] THEN #101=3 (1° ferramenta de perfuração D = 5)
#100=1
#102=#102+1
M30
A mensagem vai ser lida pelo operador, que pode tirar a ferramenta para troca ou para controle.
A cnc pode continuar trabalhando pois vai ser associada uma nova ferramenta (T18) à usinagem a ser realizada.
IF[#101EQ3] THEN #101=18 (2° ferramenta de perfuração D = 5). IF[#101EQ3] significa que está sendo usada a ferramenta 3, então devemos mudá-la com 18.
IF[#101EQ18] THEN #101=3 (1° ferramenta de perfuração D = 5). IF[#101EQ18] significa que está sendo usada a ferramenta 18, então devemos mudá-la com 3.
o operador terá o tempo necessário para a troca de ferramenta sem parar a cnc.
(Lembro que o Fanuc possui a gestão da vida útil da ferramenta).
Vamos parar agora!
Estes exemplos simples (mas você pode fazer muitos outros) destacam alguns aspectos relacionados com o uso de variáveis.
O paramétrico expande o conceito de programação! Ao operador é dada a oportunidade de expandir e alterar processos.
Veremos como as variáveis podem gerenciar melhor não só as situações especiais, tais como o controle ou escolha, mas pertencer às programas ISO,
tornando-os mais flexíveis. O paramétrico é usado quando realizamos ações do que não sabemos o valor absoluto! Sempre que nos deparamos com situações gerais
que não são especificadas (valor desconhecido), o paramétrico oferece uma oportunidade certamente não acessível pela programação clássica.
Nos exemplos acima, não seria possível com a programação clássica realizar um contator .. mas deve ser assim!
Esta foi fundada por necessidades de negócio e não por outro, os códigos G implementam a finalidade para a qual eles foram criados: funções de usinagem.
A paramétrica é essencial? Sim e não! Você pode trabalhar a vida toda sem nunca usá-la, os nossos programas ISO não precisam.
Pelo contrário, existem programas de aplicação que requerem necessariamente a utilização de paramétrico (é o caso por exemplo da sondagem electrónica).
Então, por que usá-la? Tudo depende de suas necessidades!
Surge um problema, você tem que avaliar e ver como resolvê-lo: paramétrico sim ou não?
Pessoalmente, depois de ter descoberto as variáveis não abandonei mais, mesmo em programas simples.
Oferecem um poder considerável, a melhor maneira de trabalhar, a possibilidade de mudanças em curto tempo, a autonomia necessária para um operador
.... e muitos outros aspectos.
Eu só queria introduzir o tema, vamos ver mais tarde todos os aspectos, para mostrar como usam-se as variáveis.
Se você acha que uma única variável pode fazer isso, imagine o que uma macro pode fazer de mais complexo .. iremos vê-lo e explicá-lo!
Repetições, cálculo, criação de funções personalizadas, controle de profundidade, rotação, erros, adaptar um ciclo
criar menus, simplificação de processos, furos cônicos, loops infinitos ....
São alguns dos aspectos que vamos enfrentar e que nos permitirá entender melhor a programação paramétrica e seu uso de propósito!
Espero ajudar a todos aqueles que vêm a esta forma de programação ou aqueles que já conhecem e gostariam de ampliar seus conhecimentos.
(sem nenhuma pretensão de saber tudo... seja claro!)
Eu gostaria de ter uma troca de pontos de vista com vocês! Se alguém tiver problemas particulares pode dizer, talvez poderemos enfrentá-los!