Num programa normal de maquinação atribuem-se valores numéricos directamente aos endereços da linguagem, para criar uma instrução válida. Por exemplo: “G01 X10.”
Numa macro, alternativamente à atribuição directa, podemos utilizar um número de variável que guarde o valor desejado.
Quando se utiliza uma variável, o seu valor pode modificar-se durante a execução do programa, ou mediante operação no modo “MDI”.IMPORTANTE: Chamamos a atenção para o indispensável cuidado na alteração dos valores das variáveis em “MDI”, por forma a não as redefinir com valores indesejáveis na continuação da execução do programa.
Exemplo:
Representação das variáveis
Como fica desde já claro do exemplo acima, o número da variável deve ser sempre precedido de um caracter definido pela linguagem. Em Fanuc, linguagem em que basearemos esta apresentação teórica, é utilizado o caracter ‘#‘.
Em Heidenhain, a identificação da variável faz-se com a letra ‘Q‘ antes do seu número (Ex: Q1)
Notar que, ao contrário do que acontece nas linguagens usadas para programação em PC, as variáveis não podem ser identificadas por nomes.
O número da variável pode, em Fanuc, ser especificado por uma expressão, obrigatoriamente definida entre parêntesis rectos. Exemplo:
Tipos de variáveis
As variáveis classificam-se em quatro tipos, dependendo do número usado para a sua declaração:
Variável sempre nula. A ela não pode ser atribuído nenhum valor. | ||
Podem utilizar-se variáveis locais numa determinada macro, para memorizar dados como o resultado de operações realizadas apenas dentro dessa mesma macro. Estas variáveis são reiniciadas a zero, depois de desligada a tensão da máquina. Quando uma macro é chamada pelo respectivo código, podem transferir-se para estas variáveis os valores dos argumentos atribuídos, na linha de chamada, aos correspondentes endereços. (Ver tabela em “Chamada simples”) | ||
#500 – #531 (#999) |
As variáveis comuns podem partilhar-se entre diferentes macros. Quando a tensão é desligada, as variáveis de #100 a #149 (#199) são reiniciadas a zero, mantendo-se, no entanto, memorizados os valores das variáveis #500 – #531 (#999). NOTA: As variáveis comuns #132 a #199 e #532 a #999 são opcionais, recomendando-se a sua disponibilidade na tabela de variáveis, disponível no controlador. |
|
Estas variáveis são usadas para ler e escrever diversos dados NC, como por exemplo a posição actual dos eixos, da compensação, dos códigos G de determinado grupo, etc.Neste trabalho mostraremos a utilização de apenas algumas delas. |
Os valores das variáveis são automaticamente arredondados de acordo com o valor de incremento mínimo definido nos parâmetros máquina, para o endereço em questão.
Limitações
As variáveis não podem ser utilizadas para referenciar:
- Números de programa (Ex: O#1)
- Números de sequência (Ex: N#3 Y200.)
- Números de salto opcional de bloco (Ex: /#2G00 X100.)
VARIÁVEIS DE SISTEMA
As variáveis de sistema podem utilizar-se para ler e gravar dados NC internos, tais como: dados de posição actual, valores de compensação de ferramenta, códigos activos, etc.
Devido à utilização de algumas delas, nos programas apresentados, transcrevemos abaixo tabelas com os números das variáveis mais relevantes neste capítulo.
Valores de compensação de ferramenta
Os valores de compensação de ferramenta podem ler-se e escrever-se empregando variáveis de sistema. Os números das variáveis utilizadas dependem do número de pares de compensação disponíveis, independentemente de se fazer distinção entre compensação geométrica e de desgaste, e distinção entre compensação do comprimento e raio da ferramenta. Quando o número de pares não ultrapassa os 200, também podem utilizar-se as variáveis de #2001 a #2400.
: 200 : 999 |
: #10200 (#2200) : #10999 |
|||
geométrica |
de desgaste |
|||
: 200 : 999 |
: #11200 (#2400) : #11999 |
: #10200 (#2200) : #10999 |
||
da ferramenta (H) |
da ferramenta (D) |
|||
geométrica |
de desgaste |
geométrica |
de desgaste |
|
: 200 : 999 |
: #11201 (#2400) : #11999 |
: #10201 (#2200) : #10999 |
: : : #13999 |
: : : #12999 |
Alarmes de macro
Quando se atribui um valor de 0 a 200 à variável #3000, o comando numérico pára com um alarme. Depois da expressão pode aparecer uma mensagem com o máximo de 26 caracteres. No ecrã visualiza-se o número do alarme, somando 3000 ao valor da variável #3000, junto com a mensagem definida. Exemplo: #3000=1 (FERRAMENTA NÃO ENCONTRADA) A página de alarmes exibirá: “3001 FERRAMENTA NÃO ENCONTRADA” |
Informação modal
Pode ler-se a informação modal especificada num bloco de programa, até ao bloco imediatamente anterior.
Exemplo:
O valor resultante na variável #1 será 0, 1, 2, 3 ou 33 |
Se a variável de sistema especificada para leitura de informação modal corresponder a grupo de código não utilizável, será gerado um alarme.
Posição actual
A informação de posição é apenas de leitura, isto é, apenas podem ler-se os valores das variáveis de sistema correspondentes.
O primeiro dígito (de 1 a 8) representa um número de eixo.
Nas variáveis #5081 a #5088 guarda-se o valor da compensação da ferramenta actualmente utilizado para a sua execução, em lugar do valor do corrector de comprimento imediatamente anterior.
Nas variáveis #5061 a #5068 guarda-se a posição da ferramenta, onde se activa um sinal de salto num bloco com G31 (Função de salto; não confundir com os saltos da alteração de sequência de programa, explicados no capítulo de chamada de macros).
Quando está inibida a leitura durante o deslocamento, significa que não podem ser lidos os valores esperados, devido à função de leitura prévia (carga em buffer).