Autor Tópico: Programação paramétrica (1): variáveis  (Lida 5249 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline badade

  • Novato
  • *
  • Posts: 65
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Varese
  • Nome:: Pietro
  • Profissão: Programador cnc
Programação paramétrica (1): variáveis
« Online: 24 de Agosto de 2011, 03:55 »
Para entender os programas paramétricos e, em seguida os programas macro, você precisa saber as variáveis:
o que são, como nós as definimos, regras que estão sujeitas.
O assunto é um pouco chato, mas é extremamente importante.
Estas notas são os tijolos de nosso conhecimento.

Então começamos.

Em um programa normal de "G" códigos as coordenadas, as funcoes, são especificadas através de um valor numérico;
por exemplo, G01, G02, G74, G83, X300, Z-90, C30.
Em situações especiais, os valores numéricos podem ser especificados utilizando o número de uma variável, cujo valor pode ser alterado pelo programa ou manualmente em MDI.

G#5;   G01 X#1 F300;    G#6 F#8,    G83 Z-#10 F#11 R2 Q2

significado: (# ler variável)

- Se a #5 é atribuído o valor 0, a expressão G#5 valerá G0
- Se a #1 é atribuído o valor 12, a expressão G01 X#1 F300 vai valer  G01 X12 F300
- Se a #6 é atribuído o valor 2 e a #8 é atribuído o valor 100 a expressão G#6 F#8 valerá G2 F100
- Se a #10 é atribuído o valor 40 e # 11 é atribuído o valor 100 a expressão G83 Z-#10 F#11 R2 Q2 vai valer G83 Z-40 F100 Q2 R2

As variáveis são especificadas com o símbolo # seguido por um número    #1, #10, #100, #5678, #14001
Para especificar o número de uma variável você também pode usar uma expressão quer dizer uma relação entre números e/ou variáveis

#4,   #[#1+#2+#3],    #[100+[#2*#5]]

Neste caso, você deve usar colchetes para mudar a ordem das operações, como na matemática.
Tecnicamente, uma variável representa uma célula de memória. Esta é disponibilizada para o operador que pode inserir ou modificar qualquer expressão.
Se escrevemos #100=1000 indicamos ao cnc de colocar o valor 1000 na célula de memória que corresponde a #100.
Mudando a #100 com #100=2000 indicamos ao cnc de colocar o valor 2000 na célula correspondente a #100, portanto alterando o seu valor.
Pensem as variáveis como caixas a onde colocar qualquer expressão que pode ser usado e modificado à vontade.

As variáveis são classificadas em quatro tipos com base no número de variáveis:

[1] Variável Nula #0   
Esta variável é sempre nula, não tem valor, não se pode atribuir valor, não está definida, mas pode ser lida.

[2] Variáveis locais de #1 até #33
As variáveis locais só podem ser utilizadas em macro.
Quando você liga o controle as variáveis locais não estão definidas.
Quando uma macro é chamada, os argumentos são atribuídos as variáveis locais (apprenderemos).

[3] Variáveis comuns
a partir de #100 a #149 (de #150 a #199 opcional)
a partir de #500 a #531 (de #532 a #999 opcional)

As variáveis comuns podem ser usadas em qualquer programa ou compartilhadas entre várias macros.
Quando você liga o controle as variáveis de #100 a #149 (de #150 a # 199) são indefinidas.
As variáveis de #500 a #531 (de #532 a #999) contêm o valore antes do encerramento.

[4] Variáveis de sistema: a partir de # 1000 em diante.
As variáveis de sistema são usadas para ler e gravar dados diversos do CNC, como a posição atual,
valores de compensação de ferramenta, os valores de F, S, M, etc ...
O significado das variáveis ??do sistema é único e não pode ser alterado

As Variáveis podem ser definidas (um valor ou expressão) ou indefinidas, (vagas). As variáveis indefinidas não têm valor.
Em uma expressão contendo uma variável vagas, a mesma, e o endereço associado serão ignoradas

G00 X#1 Y#2 Z#2, se #2 é indefinida a expressão valerá G00 X#1

Em uma operação  "indefinido" é igual a 0, exceto na alocação. Vamos supor que #1 seja indefinida

#2=#1       -->>   #2 indefinida
#2=#1*10    -->>   #2=0
#2=#1+#1    -->>   #2=0

Nas expressões condicionais, indefinido é diferente de 0 apenas para EQ(igual) e NE(diferente).

#1= indefinida               #1=0

#1 EQ #0 estabelecido         #1 EQ #0 não estabelecido
#1 NE 0  estabelecido                      #1 NE 0  não estabelecido
#1 GE #0 estabelecido                      #1 GE #0 estabilidade
#1 GT 0  não estabelecido                      #1 GT 0  não estabelecido
 
Por esta razão, é importante não fazer suposições errôneas sobre o valor ou o estado de uma variável, mas sempre definir o estado.

O valor de uma variável é sempre automaticamente arredondado de acordo com o mínimo incremento do endereço.     G00 X#1  com #1=15,3656
se o incremento mínimo é de 1/1000 (0.001) o comando é interpretado como  G00 X15.366

É importante lembrar este mecanismo de arredondamento pois em determinadas situações pode levar a erros de cálculo, ou suposições erradas sobre certos valores.
Lembre-se que os cálculos entre variáveis são realizados com um duplo números de ponto flutuante,  mas o CNC irá aceitar apenas um determinado número de dígitos 1.345678 e 1.345679 portanto devem ser tratados em tempo hábil. As variáveis locais e comuns podem ter valor = 0 ou um valor na seguinte faixa
-10EXP47 a -10EXP-29   10EXP29 a 10EXP47   (EXP exponencial)

Para reverter o sinal do valor de uma variável, preceder o sinal - a #           G00 X-# 1

Quando um valor de variável for definido em um programa, o ponto decimal pode ser omitido.
Exemplo: Quando #1=35 for definido, o valor real da variável #1 é 35.0

O número de programa, o número de seqüência e o número de barra de bloqueio opcional não podem ser especificados usando as variáveis

maus exemplos

O#1
/#2 G00 X100
N#5 Y344

Com as variáveis podem ser realizadas as seguintes operações aritiméticas

- Definição       #i=#j

A expressão #1=#2 é como segue: o valor da segunda variável é colocado na primeira.
É um erro pensar que as duas variáveis são as mesmas: o seu valor é
mesmo, as variáveis são duas coisas diferentes.
É uma sutileza que pode enganar e levar a resultados errados.

- Soma             #i=#j+#k
- Diferença          #i=#j-#k
- Produto                          #i= #j*#k
- Quociente           #i=#j/#k
- Seno            #i=SIN[#j]
- Cosseno          #i=COS[#j]
- Arco seno          #i=ASIN[#j]
- Arco cosseno          #i=ACOS[#j]
- Tangente          #i=TAN[#j]/[#k]
- Arco tangente                       #i=ATAN[#j]
- Raiz quadrada         #i=SQRT[#j]
- Valor absoluto                       #i=ABS[j#]
- Arredondamento                       #i=ROUND[#j]

Quando está incluído  em uma operação aritmética ou lógica, ou uma frase IF ou WHILE, ROUND arredonda à primeira casa decimal

se #2=1,3452    então o valor #1=ROUND [# 2] 1

Quando usado em um comando NC, ROUND arredonda ao incremento mínimo de entrada.
Se o valor mínimo aceitável é de 1/1000 e #1=1,3452        então    #1=1,345

- Arredondamento por defeito                   #i=FIX[#j]
- Arredondando por excesso                   #i=FUP[#j]

Quando o valor absoluto do produto de uma função é maior que o valor absoluto do número original, ha arredondamento para cima (excesso).
Pelo contrário, se o valor do produto de uma função é menor que o valor absoluto do número original temos arredondado para baixo (defeito).
Você deve prestar atenção aos números negativos.

#1=1,2             #2=-1.2
#3=FUP[#1]          #3 vale  2,0
#3=FIX[#1]          #3 vale  1,0
#3=FUP[#2]          #3 vale  -2,0
#3=FIX[#2]          #3 vale  -1,0

- Logaritmo natural                       #i=LN[#j]
- Função exponencial       #i=exp[j#]
- Operação lógica OR       #i=#j OR #k
- Operaçãológica XOR        #i=#j XOR #k
- Operação lógica AND       #i=#j and #K
- Conversão de BCD para binário            #i=BIN[#j]
- Conversão de binário para BCD            #i=BCD[#j]
             
onde #j e #k podem ser consideradas como expressões simples ou composta.    exemplo   #J=[SIN[#k]*[#5+TAN[#H]]]

- Em uma expressão a prioridade de execução é a seguinte

  [1] Funções
  [2] operações como *, /, AND, MOD
  [3] operações como +, -, OR, XOR

É sempre possível alterar a prioridade utilizando os colchetes, o que pode aninhar até 5 níveis.

Quando é possivel usar variáveis?
Usam-se uma variável definida por um número ou uma expressão, quando você não sabe a priori o número de uma função ou uma coordenada.
Isto significa que o programa, embora logicamente definido apenas em tempo de execução assume verdadeiro significado dependendo dos valores das variáveis.
As variáveis também podem ser usadas à vontade para definir ciclos, contatores,  em todos os sentidos que o programador acha útil.
Finalmente as variáveis são essenciais para escrever programas paramétricos e  macro.

Ainda não podemos praticar porque você precisa saber outros conceitos. Mas imediatamente fica claro o significado de variável e seu uso.
Se houver uma situação de mudança, precisamos de variáveis.
Se nós devemos escolher, temos que usar uma variável.
Onde há uma situação que não é constante, é necessário o uso de variáveis.
Podemos escrever programas para rotinas de usinagem, rotina de testes qualquer, ou uma rotina de ajuda para o operador.....o que queremos.

 

/** * */