Você está na página 1de 3

Escopo braço de parafusamento para converter em

cartesiano
Foi criada duas matrizes uma para cada enconder na qual uma recebe a variável do encoder A
que deve chegar em ângulo radiano no qual as duas devem ser multiplicadas e sera tirada
dessa matriz resultante a coordenada de X que fica localizada na 1 fileira e na 4 coluna e a
medida de Y que fica localidada na 2 fileira e 4 coluna da matriz resultante. Na qual deve ser
colocada na IHM e integrado a nosso sistema de referenciamento de parfusamento que será
explicado abaixo:

Eixo B
Eixo A

Na ilustração acima mostra os dois eixos que já existe um sistema de Encoder Profibus e
mostra que a distancia entre eixo é de 800mm.

Conversão do encoder em radiano:

Supondo que o encoder tenha uma resolução de 1024 pulsos por volta, podemos utilizar a
seguinte fórmula:

ângulo (em radianos) = (pulsos / resolução) * 2 * pi

Por exemplo, se o encoder leu 512 pulsos, o ângulo correspondente em radianos seria:

ângulo = (512 / 1024) * 2 * pi

ângulo = 0.5 * pi

ângulo = 1.57 radianos

Então a Variavel A e B tem que entrar na matriz em ângulo radiano como o exemplo acima.

Vamos a primeira matriz: eixo A onde o 800mm corresponde 0.800 da linha 1 e 2 da coluna 4 a
matriz encontrasse em metros.
𝑐𝑜𝑠(𝐴) −𝑠𝑖𝑛(𝐴) 0 0.800 ∗ 𝑐𝑜𝑠(𝐴)
0 0.800 ∗ 𝑠𝑖𝑛(𝐴)
A = [ 𝑠𝑖𝑛(𝐴) 𝑐𝑜𝑠(𝐴) ]
0 0 1 0
0 0 0 1

restricted
Eixo 2

Plano de trabalho

A ilustração mostra o eixo 2 vetorial ao plano de trabalho que se encontra na altura de centro
da peça para que a variação das medidas X e Y sejam minimizadas. Onde a medida entre
centro eixo são 1028,46mm e 995,2mm que foram inseridas na matriz abaixo em metros .

𝑐𝑜𝑠(𝐵) −𝑠𝑖𝑛(𝐵) 0 1.02846 ∗ 𝑐𝑜𝑠(𝐵)


0 1.02846 ∗ 𝑠𝑖𝑛(𝐵)
B = [ 𝑠𝑖𝑛(𝐵) 𝑐𝑜𝑠(𝐵) ]
0 0 1 −0.9952
0 0 0 1
Então a multiplicação das duas matriz será a resultante vetorial entre o eixo 1 e o plano de
trabalho. Como o exemplo abaixo :

PROGRAM multiplica_matrizes

VAR

A, B : REAL;

matriz1, matriz2, resultado : ARRAY[1..4, 1..4] OF REAL;

BEGIN

matriz1 := ((cos(A), -sin(A), 0, 0.800*cos(A)), (sin(A), cos(A), 0, 0.800*sin(A)), (0, 0, 1, 0), (0, 0, 0, 1));

matriz2 := ((cos(B), -sin(B), 0, 1.02846*cos(B)), (sin(B), cos(B), 0, 0.1.02846*sin(B)), (0, 0, 1, -0.9952), (0, 0, 0, 1));

resultado := matriz1 * matriz2

X := resultado[1][4];

Y := resultado[2][4];

END_PROGRAM

restricted
Onde ele deve ser integrado no nosso sistema de referenciamento onde cada
parafusamento tem o seu zero de referencia e cada um a sua janela que pode variar
para + e para – como na foto abaixo :

Cada uma dessas janelas tem que mostrar a diferença de X e Y para a referencia do
parafuso que é o zero parafuso tolerância para + e – de X e tolerancia para + e – de Y e
o botão de referenciamento que vai referenciar o zero parafuso, hoje o ZR1 são os
pulsos do encorder 1 para o zero parafuso e MN1 minima para encorder 1 e a MX1 é a
máxima para o encoder 1 e segue o mesmo para o encorder 2 que vão ser mudado
para cordenadas X e Y.

restricted

Você também pode gostar