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.