Controlador de Posicionamento de Eixos em Máquinas CNC Objetivo
O objetivo da modelagem é de simular o
funcionamento do controlador de posicionamento de uma máquina CNC de três eixos, levando em consideração a instrução inicial (simulação da programação G a partir de posições que representem tais variáveis), os sensores e encoders responsáveis pelo sinal de realimentação do controle em malha fechada e o acionamento dos servomotores, que realizam o movimento dos eixos da máquina. Objetivo
Não serão modelados demais controles, como
velocidade de rotação, velocidade dos motores e avanço incremental de usinagem. Segue-se como padrão na simulação a interpolação linear, não abordando assim as interpolações circulares e coordenadas polares. Funcionamento MODELAMENTO EM REDE DE PETRI COLORIDA (CPN TOOLS) As redes de Petri coloridas possibilitam utilizar variáveis de diversos tipos (cores). Essas variáveis funcionam como fichas e podem influenciar funções, determinando limites e sequências lógicas que melhor representem o funcionamento da rede modelada. Para modelar uma máquina CNC de três eixos foram utilizadas as variáveis, cores e funções da tabela 01. O funcionamento de cada eixo é modelado individualmente, mas de forma análoga entre si. Portanto, as variáveis e funções para cada eixo são similares, diferenciando-se apenas para determinar o eixo que as englobam. Tabela de funcionamento (Variáveis, cores e funções utilizadas na modelagem.) Variáveis Eixo X Eixo Y Eixo Z Cor Posição posicao_x posicao_y posicao_z INT Pulsos do pulso_x pulso_y pulso_z INT encoder
Quantidade de cont_puls_x cont_pulso_y cont_pulso_z INT
Pulsos Distância do dist_x dist_y Dist_z INT Percurso Sentido Horário hor_x hor_y hor_z STRING dos Servos Sentido Anti- a_hor_x a_hor_y a_hor_z STRING Horário dos Servos Desligar Servos des_x des_y des_z STRING Atividade na maquinax maquinay maquinaz STRING Máquina Tabela de Configuração dos Eixos
Configuração dos Eixos
Atualizar Posição fun atu_x(dist_x,posicao_x)=if(dist_x>0) then(posicao_x+1) else if(dist_x<0) then(posicao_x-1) else (posicao_x); Comparação fun comp_x(entrada,posicao_x)= entrada-posicao_x;
Definir Ação fun acao_x(hor_x,a_hor_x,des_x,dist_x)= if(dist_x>0)
then(hor_x) else if(dist_x<0) then(a_hor_x) else (des_x); Definir Estado da fun estado_x(dist_x,final,ligado)= if(dist_x=0) then (final) Máquina else (ligado);
Contar Pulsos do Fun incr_x(dist_x,pulso_x,cont_pulso_x)=if(dist_x>0)
encoder then(cont_pulso_x+pulso_x) else if(dist_x<0) then(cont_pulso_x+pulso_x) else (cont_pulso_x+0); Processo de Set da Posição O processo de set da posição é feito utilizando as variáveis de posição (posicao_x, posicao_y e posicao_z) e a atualização da posição pela função de atualização (atu_x, atu_y e atu_z). A representação dessa etapa pode ser observada nesta figura:
Figura 1: Set de posição inicial e atualização de posição
Seleção dos Eixos e das Posições Desejadas. A etapa seguinte se dá pela seleção dos eixos e das posições desejadas. Para tal utiliza-se um lugar com a cor “INICIO” do tipo inteiro para as entradas (variável entrada) e um segundo estado com cor “EIXO” do tipo string para definir os eixo de operação (variável eixo). O valor da variável “entrada” se dá pelas fichas presentes no lugar “Entrada de Dados” e a definição dos eixos pela limitação das transições às strings que representam os três eixos(“x”, ”y” e ”z”). Tal seleção está representada a seguir. Transição “Definir Açao”
Após a definição das entradas e da posição atual de cada eixo o
próximo passo é a comparação e consequentemente a definição da ação a ser executada. Tal cálculo é feito pela função de comparação (comp_x, comp_y e comp_z), que define se a distância a ser percorrida (dist_x, dist_y e dist_z) é da esquerda para direita (positiva), da direita para esquerda (negativa), ou se o eixo já se encontra na posição desejada (nulo). Para cada situação tem-se ações específicas relacionadas. Tais ações são definidas pela função de ação (acao_x, acao_y e acao_z). A parte da rede que modela esses processos pode ser visto na figura a seguir. Figura:Transição “Definir Açao” Contagem de Pulsos do Encoder.
O último estado a ser modelado e que está interligado
diretamente com o controle de movimento é a contagem dos pulsos do encoder de cada eixo. A distância percorrida e a quantidade de pulsos gerados pelo encoder estão ligados pela relação 1/p. Ou seja, em um encoder de 2400 pulsos por revolução, este número faz referência a 1mm de movimento do eixo. Contagem de Pulsos do Encoder.
Na modelagem apresentada neste trabalho considera-se os
encoders com 2400 pulsos por revolução (1mm de percurso). As funções responsáveis (incr_x, incr_y e incr_z) tem como variáveis as distâncias restantes para as posições desejadas, a quantidade de pulsos de cada encoder (pulso_x, pulso_y e pulso_z) e o valor do contador (em relação à função de incremento), dado pela variável “cont_pulso”. Para cada atualiazação de posição são adicionados 2400 pulsos à contagem no lugar “Quantidade de pulsos”, como representado na figura 5. Figura: Contagem de Pulsos do Encoder. Conclusão
Com esse trabalho pode-se analisar
individualmente cada eixo, levando em consideração o princípio de funcionamento da máquina CNC em uma interpolação linear. Observando o modelamento entende-se assim, de forma mais clara, a sistemática e os princiais fatores que influenciam o controle dessas máquinas, tais como sinal de entrada, set de posição, sinal dos encoders, entre outros. Conclusão
Além do sistema de controle de movimento,
poderia ainda ser explanado o sistema de controle de velocidade de rotação e a interpolação circular dos eixos, ficando tais fatores como possíveis melhorias para uma modelagem mais completa de um CNC. FIM