Escolar Documentos
Profissional Documentos
Cultura Documentos
12-10-3 Variáveis
De todos os tipos de variáveis disponíveis para a unidade NC, somente as variáveis locais,
variáveis comuns e parte das variáveis do sistema são retidas mesmo após a energia ser
desligada.
1. Multiplexação de variáveis
Sob especificações de macro do usuário, as variáveis podem ter seus identificadores (números
de identificação) transformados em variáveis, o que é referido como multiplexação, ou
substituído com <expressão>.
Para <expressão>, somente uma expressão aritmética (para multiplicação, divisão, adição ou
subtração) pode ser usada.
Exemplo 1: Variáveis de multiplexação
#1=10 #10=20 #20=30 A partir de #1 = 10, #[#[#1]] = #[#10] resultará.
#5=#[#[#1]] A partir de #10 = 20, #[#10] = #20 resultará. Portanto, #5 = #20,
isto é, #5 = 30 resultará.
#1=10 #10=20 #20=30 A partir de #1 = 10, #[#[#1]] = #[#10] resultará.
#5=1000 A partir de #10 = 20, #[#10] = #20 resultará. Então, #20 = #5, i.e.
#[#[#1]]=#5 #20 = 1000 resultará.
Exemplo 2: Substituindo identificadores de variáveis com <expressão>
#10=5
#[#10+1]=1000 #6 = 1000 resultará.
#[#10–1]=–1000 #4 = –1000 resultará.
#[#10∗3]=100 #15 = 100 resultará.
#[#10/2]=100 #2 = –100 resultará.
A. Expressão aritmética
#1=#0................. #1 = <vazio>
#2=#0+1 ............ #2 = 1
#3=1+#0 ............ #3 = 1
#4=#0∗10 .......... #4 = 0
#5=#0+#0 .......... #5 = 0
Nota: Cuidado para que <vazio> seja tratado de modo igual como 0 durante o
processamento de expressões.
<vazio> + <vazio> = 0
<vazio> + <constante> = constante
<constante> + <vazio> = constante
12-78
FUNÇÕES DE SUPORTE DE PROGRAMA 12
B. Aplicando variáveis
A aplicação de uma variável não definida sozinha resulta igualmente que o endereço seja
ignorado.
Se #1 = <vazio>
G0X#1Y1000 é equivalenta à G0Y1000, e
G0X[#1+10]Y1000 é equivalente à G0X10Y1000.
C. Expressão condicional
Somente para EQ e NE, <vazio> é diferente de 0 no significado.
Lado dir. EQ NE GT LT GE LE
Lado esq. Vazio Constante Vazio Constante Vazio Constante Vazio Constante Vazio Constante Vazio Constante
Vazio H H H H H
Constante H H H
12-79
12 FUNÇÕES DE SUPORTE DE PROGRAMA
G65Pp1L 1 <argumento>
Comandos de Comandos de
chamada Endereço do chamada Endereço do
Variável local Variável local
G65 argumento G65 argumento
G66.1 G66.1
G66 G66
A #1 R #18
B #2 S #19
C #3 T #20
D #7 U #21
E #8 V #22
F #9 W #23
× ×* G #10 X #24
H #11 Y #25
I #4 Z #26
J #5 – #27
K #6 – #28
× ×* L #12 – #29
M #13 – #30
× ×* N #14 – #31
× × O #15 – #32
× ×* P #16 – #33
Q #17
Os endereços de argumento marcados com × na tabela acima não podem ser usados.
Entretanto, somente durante o modo G66.1, os endereços de argumento marcados com um
asterisco (*) nesta tabela podem ser usados adicionalmente. Também, o sinal (–) indica que
nenhum endereço é ligado cruzado ao número da variável local.
12-80
FUNÇÕES DE SUPORTE DE PROGRAMA 12
1. Variáveis locais para um subprograma podem ser definidas ao especificar <argumento>
quando chamar uma macro.
P/ subprograma #5=#4010
G65P9900A60.S100.F800 G91G01 X[#19*COS[#1]]
Y[#19*SIN[#1]]F#9
M02 M99
Controle do movimento e
outros após referir às
variáveis locais.
Configuração da variável A (#1)=60.000
local por argumento
F (#9)=800
Tabela de dados
da variável local S (#19)=100.000
#30=FUP[#2/#5/2]
P/ subprograma
#5=#2/#30/2
M98H100L#30
G65P1A100.B50.J10.F500
X#1
M99
N100G1X#1F#9
Y#5
X–#1
Exemplo de fresamento de face X#5
M99
A (#1) 100.000
Tabela de B (#2) 50.000
J F (#9) 500
dados das
variáveis locais J (#5) 10.000 → 8.333
A (#30) → 3.
No programa de amostras para o fresamento de face que está mostrado acima, apesar do
argumento J ter sido inicialmente programado como um passo de usinagem de 10 mm, ele foi
mudado para 8.333 mm para assegurar usinagem de passo igual.
Também a variável local #30 contém os dados calculados sobre o número de vezes de
usinagem recíproca.
12-81
12 FUNÇÕES DE SUPORTE DE PROGRAMA
3. As variáveis locais podem ser usadas para cada um dos quatro níveis de chamada de
macro separadamente. Para o programa principal (nível de macro 0), variáveis locais
separadas também são estabelecidas. As variáveis locais de nível 0, contudo, não podem
ser designadas com argumentos.
Principal (Nível 0) O1 (Nível de Macro 1) O10 (Nível de Macro 2) O100 (Nível de Macro 3)
#1=0.1#2=0.2#3=0.3
Variável local (0) Variável local (1) Variável local (2) Variável local (3)
#1 0.100 A(#1) 1.000 A(#1) 10.000 A(#1) 100.000
#2 0.200 B(#2) 2.000 B(#2) 20.000 B(#2) 200.000
#3 0.300 C(#3) 3.000 C(#3) 30.000 C(#3)
D(#7) D(#7)
12-82
FUNÇÕES DE SUPORTE DE PROGRAMA 12
3. Variáveis do sistema de entrada da interface de macros (#1000 a #1035)
Você pode checar o status de um sinal de entrada de uma interface ao ler o valor do número
apropriado (#1000 a #1035) da variável.
O valor lido do número da variável é 1 (contato fechado) ou 0 (contato aberto). Você também
pode checar o status de todos os sinais de entrada das variáveis de #1000 a #1031 ao ler o
valor do número da variável 1032. As variáveis de #1000 a #1035 somente podem ser lidas;
elas não podem ser colocadas no lado esquerdo de uma expressão aritmética.
12-83
12 FUNÇÕES DE SUPORTE DE PROGRAMA
Você pode enviar um sinal de saída da interface designando um valor ao número apropriado
(#1100 a #1135) da variável.
Todos os sinais de saída podem assumir o valor 0 ou 1.
Você também pode enviar todos os sinais de saída das variáveis de #1100 a #1131 ao mesmo
tempo designando um valor ao número das variáveis 1132. Além de escrever os dados para
compensar os sinais de saída de #1100 a #1135, a leitura do status do sinal de saída pode ser
feita.
Nota 1: Os dados das variáveis do sistema de #1100 a #1135 são salvos de acordo com o
nível lógico (1 ou 0) do sinal que foi enviado por último. Os dados salvos são
apagados automaticamente ao ligar/desligar a energia.
Nota 2: O seguinte é aplicado se um dado diferente de 1 ou 0 é designado às variáveis de
#1100 a #1131:
<vazio> é considerado igual a 0.
Dado diferente de 0 e <vazio> é considerado igual a 1.
Dado menor que 0.00000001, entretando, é considerado como indefinido.
12-84
FUNÇÕES DE SUPORTE DE PROGRAMA 12
#1001 #1101
#1002 #1102
Ler Ler e
#1003 #1103
somente escrever
#1028 #1128
#1029 #1129
macro- #1130
#1030
instrução
#1031 #1131
5. Compensação da ferramenta
#160001 - #16001 -
Compens. da Compens. da
#160000+n #16000+n #2401 -
× geometria do geometria do R Raio R
*(#120001 - *(#12001 - #2400+n
diâmetro da ponta
#120000+n) #12000+n)
#170001 - #17001 -
170000+n #17000+n Compens. do Compens. do
#2601 -
× desgaste do. desgaste do
*(#130001 - *(#13001 - #2600+n
diâmetro R da ponta
#130000+n) #13000+n)
#120001 - #12001 - Compens. da
× × Comprim. X
#120000+n #12000+n geometria X
12-85
12 FUNÇÕES DE SUPORTE DE PROGRAMA
Nota: Configure o bit 0 do parâmetro F96 em “0” para usar os dados de COMPENSAÇÃO
DA FERRAMENTA do tipo C.
Usando os números das variáveis, você pode ler os dados da ferramenta ou designar dados.
Os números das variáveis usáveis sâo da ordem de #10000 ou #2000. Para a ordem de #2000,
entretanto, somente até 200 conjuntos de compensações de ferramenta podem ser usados.
Os últimos três dígitos de um número da variável indicam um número de compensação da
ferramenta.
Como com outras variáveis, os dados de compensação da ferramenta devem conter o ponto
decimal. Assim, o ponto decimal deve ser incluído ao configurar dados que têm dígitos
decimais.
Nota: O exemplo mostrado acima não permite nenhum atraso do sinal do sensor de pulo.
Também, #5003 indica a posição do ponto inicial do eixo Z, e #5063 indica as
coordenadas do pulo do eixo Z, isto é, a posição em que um sinal de pulo foi entrado
durante a execução de G31.
12-86
FUNÇÕES DE SUPORTE DE PROGRAMA 12
6. Offset do sistema de coordenadas da peça de trabalho
Usando os números das variáveis de 5201 a 5336, você pode ler os dados de offset do sistema
de coordendas da peça de trabalho ou designar dados.
Nota: O número de eixos controláveis depende das especificações da máquina.
No. do eixo
1º eixo 2º eixo 3º eixo 16º eixo Observações
Nome do dado
(Exemplo 1) N1
M
N1 G28X0Y0Z0 –90.
N2 #5221=–20.#5222=–20.
N3
N3 G90G00G54X0Y0 –10.
W1 N11 –20.
W1
N10 #5221=–90.#5222=–10. Sistema de coordenadas
da peça de trabalho de
N11 G90G00G54X0Y0
G54 especificado por
N10 Sistema de coordenadas da peça
de trabalho de G54 especificado
M02 por N2
(Exemplo 2)
Sistema de coords. fundamentais da máquina
Deslocamento das coordenadas M
Sistema de
coordenadas G55
antes da G54
mudança
W2 (G55)
N100 #5221=#5221+#5201 W1 (G54)
#5222=#5222+#5202
#5241=#5241+#5201
#5242=#5242+#5202
#5201=0 #5202=0 Sistema de coords. fundamentais da máquina
Sistema de M
coordenadas G55
G54
após a
mudança
W2 (G55)
W1 (G54)
MEP166
12-87
12 FUNÇÕES DE SUPORTE DE PROGRAMA
Alternativamente, as variáveis numeradas de 7001 a 7956 podem ser usadas para ler ou
designar as dimensões do offset de sistema adicional de coordenadas da peça de trabalho. O
número da variável para a origem do eixo de ordem k do sistema de coordenadas “Pn” pode
ser calculado como segue:
7000 + (n – 1) × 20 + k
Nota: O número total de eixos controláveis depende das especificações da máquina.
12-88
FUNÇÕES DE SUPORTE DE PROGRAMA 12
8. Posições dos pontos zero (#5701 a #5776)
Como mostrado abaixo, há números estabelecidos das variáveis para ler as posições do eixo
do 1º ao 4º ponto zero (como configurado pelos parâmetros de M4 a M7).
9. Alarme do NC (#3000)
A unidade NC pode ser compelida a um status de alarme usando o número da variável 3000.
#3000 = 70 (CHAMAR#PROGRAMA#530)
*1 Refere-se aos alarmes nrs. 980 ao 999 cujas mensagens são pré-configuradas como indicado na Lista de Alarmes.
*2 Exibição de uma mensagem como ela é configurada na instrução de macro.
12-89
12 FUNÇÕES DE SUPORTE DE PROGRAMA
11
O tempo integrado é alterado para 0 após ter alcançado aproximadamente 2.44 × 10 msec
(aproximadamente 7.7 anos).
O9010
P/ o subprograma #3001=0
WHILE[#3001LE#20]DO1
G65P9010T (Tempo permit. msec)
END1
M99
11. Valid. /invalid. de parada de bloco único ou espera de sinal de acabar função aux. (#3003)
Designando um dos valores listados na tabela abaixo para o número da variável 3003 permite
que a parada de bloco único seja tornada inválida nos blocos subseqüentes ou o programa seja
avançado para o próximo bloco sem nunca ter de esperar pela chegada de um sinal (FIN) de
terminar a execução do código de função auxiliar (M, S, T ou B).
12-90
FUNÇÕES DE SUPORTE DE PROGRAMA 12
O uso do número da variável 3006 permite que o programa seja parado após a execução do
bloco imediatamente precedente.
Formato:
#3006 = 1 (CHECK OPERAT)
O status de imagem espelho de cada eixo em um tempo particular pode ser checado ao ler a
variável de número 3007.
A variável #3007 tem cada bit ligado cruzado a um eixo, e estes bits indicam que:
Se 0, a imagem espelho é inválida.
Se 1, a imagem espelho é válida.
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Nr. do eixo 6 5 4 3 2 1
12-91
12 FUNÇÕES DE SUPORTE DE PROGRAMA
O status modal do comando G em um bloco pré-lido pode ser checado usando números das
variáveis de 4001 a 4026. Para números das variáveis de #4201 a #4226, o status modal do
bloco que está sendo executado pode ser checado de uma maneira similar àquela descrita
acima.
Nrs. da variável
Bloco Bloco Função
pré-lido executado
#4001 #4201 Modo da interpolação G0-G3 : 0-3, G2.1 : 2.1, G3.1 : 3.1
#4002 #4202 Seleção do plano G17 : 17, G18 : 18, G19 : 19
#4003 #4203
#4004 #4204 Checagem do curso do pré-movimento G22 : 22, G23 : 23
#4005 #4205 Especificação do avanço G98 : 98, G99 : 99
#4006 #4206 Seleção polegada/mm G20/21 : 20/21
#4007 #4207 Compensação do diâmetro da ferramenta G40 : 40, G41 : 41, G42 : 42
#4008 #4208 Compensação do compr. da ferramenta G43.4 : 43.4, G43.5 : 43.5
#4009 #4209 Ciclo fixo G80 : 80, G73/74 : 73/74, G76 : 76, G83-G89 : 83-89
#4010 #4210
#4011 #4211
#4012 #4212 Sistema de coordenadas da peça de trabalho G54-G59 : 54-59, G54.1 : 54.1
#4013 #4213 Modo de usinagem (avanço) G61-64 : 61-64, G61.1 : 61.1, G61.4 : 61.4
#4014 #4214 Chamada modal de macro G66 : 66, G66.1 : 66.1, G67 : 67
#4015 #4215
#4016 #4216 Ativar/Cancelar – Conversão de coords. programadas G68.5/69.5 : 68.5/69.5
#4017 #4217 Ativar/Cancelar – Velocidade de corte constante G96/97 : 96/97
#4018 #4218
#4019 #4219
#4020 #4220 Controle de usinagem transversal G110 : 110, G110.1 : 110.1, G111 : 111
#4021 #4221
#4022 #4222
#4023 #4223 Usinagem poligonal G50.2 : 50.2, G51.2 : 51.2
#4024 #4224 Saída de código M/S/T/B para o sistema oposto G112 : 112
#4025 #4225
#4026 #4226 Ativar/Cancelar – Interpolação de coordenadas polares G12.1/13.1 : 12.1/13.1
12-92
FUNÇÕES DE SUPORTE DE PROGRAMA 12
16. Outras informações modais
12-93
12 FUNÇÕES DE SUPORTE DE PROGRAMA
Usando os números das variáveis de #5001 a #5116, você pode checar as coordenadas do
ponto de fim do bloco prévio, coordenadas da máquina, coordenadas da peça de trabalho,
coordenadas do pulo, coordenadas da compensação da posição da ferramenta e servodesvios.
G00
G01
Comando
lido
Coordenadas
do ponto final
W Sistema de coords. da
peça de trabalho
Coordenadas da
peça de trabalho
Sistema de
coords .da máquina
Coordenadas M
da máquina
MEP167
12-94
FUNÇÕES DE SUPORTE DE PROGRAMA 12
3. As coordenadas do pulo indicam a posição em que o sinal do pulo é ativado no bloco de
G31. Se o sinal do pulo não for ativado, as coordenadas do pulo indicarão a posição do
ponto final correspondente.
Comando
lido
Medidor, etc.
MEP168
4. A posição de ponto final indica a posição da ponta da ferramenta que não permite
qualquer compensação da ferramenta, enquanto que as coordenadas da máquina, as
coordenadas da peça de trabalho e as coordenadas do pulo indicam a posição do ponto
de referência da ferramenta que permite as compensações da ferramenta.
Sinal de pulo
F (Velocidade)
W Sistema de
coordenadas da
peça de trabalho
Coordenadas da
Coordenadas de entrada peça de trabalho Sistema de
do sinal de pulo
coordenadas
M da máquina
Coordenadas da máquina
Marca : Lida após a confirmação de parada.
Marca : Pode ser lida durante o movimento MEP169
12-95
12 FUNÇÕES DE SUPORTE DE PROGRAMA
12-96
FUNÇÕES DE SUPORTE DE PROGRAMA 12
Exemplo 2: Leitura das coordenadas de entrada do pulo:
N1 G91G28X0Y0
N2 G90G00X0Y0 –50
N3 X0Y–100.
N4 G31X–150.Y–50.F80 –75
N5 #111=#5061 #112=#5062
N6 G00Y0 –100
N7 G31X0
N8 #121=#5061 #122=#5062
N9 M02 –Y
Sinal do pulo
MEP171
Os números das variáveis fornecidos para a leitura dos parâmetros de medição são como
segue:
12-97
12 FUNÇÕES DE SUPORTE DE PROGRAMA
Usando as variáveis tabuladas abaixo, os dados da ferramenta MAZATROL podem ser lidos ou
escritos, como requerido.
Variáveis a partir de #60001 .... Quantidade de ferramentas: 400 (máxima)
Variáveis a partir de #600001 .. Quantidade de ferramentas: 4000 (máxima)
A quantidade máxima de ferramentas aplicáveis depende das especificações da máquina.
(n = Número de indexação da ferramenta)
Variáveis do sistema Dados da ferramenta MAZATROL
#60001 a #60000+n #600001 a #600000+n Compr. da ferram. (fresamento)/Compr. A (torneamento)
#61001 a #61000+n #610001 a #610000+n Diâm. da ferram. (fresamento)
#62001 a #62000+n #620001 a #620000+n Marcação da vida da ferramenta
#63001 a #63000+n #630001 a #630000+n Marcação do dano da ferramenta
#64001 a #64000+n #640001 a #640000+n Compensação do desgaste em X
#65001 a #65000+n #650001 a #650000+n Compensação do desgaste em Y
#66001 a #66000+n #660001 a #660000+n Compensação do desgaste em Z
#67001 a #67000+n #670001 a #670000+n Número do grupo
#68001 a #68000+n #680001 a #680000+n Comprimento B (torneamento)
12-98
FUNÇÕES DE SUPORTE DE PROGRAMA 12
21. Dados da ferramenta EIA/ISO
Variáveis numeradas 3011 e 3012 podem ser usadas para ler dados de data e tempo.
As variáveis numeradas 3901 e 3902 podem ser usadas para ler ou designar o número total de
peças usinadas e o número de peças requeridas.
Nr. da variável Descrição
#3901 Número total de peças usinadas
#3902 Número de peças requeridas
12-99
12 FUNÇÕES DE SUPORTE DE PROGRAMA
Formato:
SETVNn [NAME1, NAME2, .....]
Nr. inicial da variável a ser nomeada
Cada nome das variáveis deve ser separado usando a vírgula (,).
Descrição detalhada
- Uma vez o nome da variável tenha sido configurado, ele permanece válido mesmo após a
energia ser desligada.
- As variáveis em um programa podem ser chamadas usando os nomes das variáveis. A
variável a ser chamada deve, entretanto, ser colocada entre colchetes ([ ]).
Exemplo: G01X[#POINT1]
[#TIMES]=25
- Os nomes das variáveis podem ser checados na tela de UTIL. PARAMETRO Nº1. Os nomes
designados para as variáveis #500 a #519 são exibidos de F47 a F66.
Exemplo: Programa SETVN500[ABC,EFG]
Na tela
F46 0
F47 ABC ← Nome da variável designado para #500
F48 EFG ← Nome da variável designado para #501
F49 ← Nome da variável designado para #502
F50
12-100
FUNÇÕES DE SUPORTE DE PROGRAMA 12
Exemplo:
TNo. Configuração #3022 Leitura em #3023
1 A 1.01 1
1 B 1.02 2
1 C 1.03 3
2 A 2.61 4
2 B 2.62 5
2 C 2.63 6
3 H 3.08 7
3 V 3.22 8
3 Z 3.26 9
: : : :
: : : :
Falha – 0
A variável numerada 51000 pode ser usada para garantir a informação quanto a se, ou não, a
entrada de dados em polegada é configurada (por F91 bit 4) como o modo inicial.
Valor de #51000 F91 bit 4 Modo inicial
1000 0 Entrada de dados em mm
10000 1 Entrada de dados em polegada
12-101
12 FUNÇÕES DE SUPORTE DE PROGRAMA
A variável numerada 3095 pode ser usada para garantir a informação se o número do código M
de fixação do eixo C é 210 ou 310.
A variável #3102 pode tomar um valor da soma de múltiplos valores enumerados acima quando
o gerenciamento da vida da ferr. é feito correntemente nos respectivos tipos de dados básicos.
As variáveis numeradas 3200, 3212 e 3223 podem ser usadas para ler as configurações de
parâmetros particulares S. Use #3200 previamente para especificar o eixo desejado.
Exemplo 1: #3200 = 0;
Designação da config. do 1º eixo significativo (normalmente: X) no sistema.
Exemplo 2: #3200 = 67;
Designação do eixo C (’C’ = 0x43 [Hexadecimal] = 67 [Decimal])
Nr. da variável Parâmetro S
#3212 S12
#3223 S23
12-102
FUNÇÕES DE SUPORTE DE PROGRAMA 12
32. Número da ferramenta corrente e posição corrente em coordenadas da máquina
Usando as variáveis tabuladas abaixo, é possível ler o número do sistema correntemente ativo,
o número da ferramenta correntemente usada, as coordenadas da máquina da posição
corrente e os valores correntes do offset de Z e C.
As variáveis numeradas 56154 e 56156 podem ser usadas para designar as posições
particulares como requerido para mover um cabeçote móvel motorizado.
Variáveis Descrição
#56154 Posição 1 do cabeçote móvel
#56156 Posição 2 do cabeçote móvel
A variável numerada 3024 pode ser usada para configurar o valor da operação de transferência
da peça de trabalho que é executada no programa EIA/ISO. O bloco de configurar a variável
#3024 não causa nenhum movimento do eixo na máquina, mas informa a unidade NC que a
peça de trabalho está sendo transferida de modo que um percurso da ferramenta que evita a
colisão com a peça de trabalho possa ser traçado em tempo para realizar com sucesso o
processo por um programa MAZATROL no lado do spindle nr. 2 de torneamento.
<Exemplo de programação>
Programa MAZATROL
Usinagem no
M99
spindle nr. 2 de torneamento
Unidade de FIM
12-103
12 FUNÇÕES DE SUPORTE DE PROGRAMA
A variável numerada 50506 pode ser usada p/ ler o número de série de configuração do eixo C.
Use as variáveis tabuladas abaixo para ler e escrever os dados na tela de MEDIÇÃO AUTO.
: Possível
Variáveis Descrição Leitura Escrita
#58066 F-SNS (Ferramenta do sensor)
#58067 COR-FER. (Ferramenta a ser compensada)
#58069 DADO A MEDIR X
#58071 DADO A MEDIR Y
#58073 DADO A MEDIR Z
#58075 DADOS MEDIDOS X
#58077 DADOS MEDIDOS Y
#58079 DADOS MEDIDOS Z
#58080 PONTO DE MEDIÇÃO #1 (Nome do eixo em
código ASCII)
#58081 PONTO DE MEDIÇÃO #2 (Nome do eixo em
código ASCII)
#58083 PONTO DE MEDIÇÃO #1 (Posição)
#58085 PONTO DE MEDIÇÃO #2 (Posição)
#58087 VALOR DO OFFSET X
#58089 VALOR DO OFFSET Y
#58091 VALOR DO OFFSET Z
#58093 VALOR DO OFFSET COMPR.
#58095 VALOR DO OFFSET ACT-φ
#58097 LIMITE DE TOLERÂNCIA +/X
#58099 LIMITE DE TOLERÂNCIA –/Z
Use as seguintes variáveis para ler e escrever dados de dois bytes de registro R:
#500000 + Nr. de registro R (#500000 a #516383)
Exemplo 1: Use a variável numerada 500100 para o registro de R100.
Use as seguintes variáveis para ler e escrever dados de quatro bytes de registro R:
#550000 + Nr. de registro R (#550000 a #566383)
Exemplo 2: Use a variável numerada 560100 para o registro de R10100/R10101.
12-104
FUNÇÕES DE SUPORTE DE PROGRAMA 12
12-10-5 Comandos de operação aritmética
Várias operações podem ser executadas entre as variáveis que usam o seguinte formato.
#i = <expressão>
onde <expressão> deve consistir em constante(s), variável(eis), função(ões) ou operador(es).
Na tabela abaixo, as constantes podem ser usadas em vez de #j e/ou #k.
[1] Definição/substituição de
#i=#j Definição/substituição
variáveis
[2] Operações do tipo #i=#j+#k Adição
adicional #i=#j–#k Subtração
#i=#jOR#k Adição lógica (Para cada um de 32 bits)
#i=#jXOR#k Exclusivo OU (Para cada um de 32 bits)
[3] Operações tipo #i=#j∗#k Multiplicação
multiplicativa #i=#j/#k Divisão
#i=#jMOD#k Excesso
#i=#jAND#k Produto lógico (Para cada um de 32 bits)
[4] Funções #i=SIN[#k] Seno
#i=COS[#k] Cosseno
#i=TAN[#k] Tangente (tanq é usado como senq/cosq.)
#i=ATAN[#j] Arco-tangente (ATAN ou ATN pode ser usado.)
#i=ACOS[#j] Arco-cosseno
#i=SQRT[#k] Raiz quadrada (SQRT ou SQR é disponível.)
#i=ABS[#k] Valor absoluto
#i=BIN[#k] Conversão BINÁRIA a partir de BCD
#i=BCD[#k] Conversão BCD a partir de BINÁRIA
#i=ROUND[#k] Arredondamento p/ o número inteiro mais próximo
(ROUND ou RND é disponível.)
#i=FIX[#k] Cortar todos os dígitos decimais
#i=FUP[#k] Contagem de todos os dígitos decimais como 1s
#i=LN[#k] Logaritmo natural
#i=EXP[#k] Expoente com a base e (= 2.718 ...)
Nota 1: Em princípio, dados sem um ponto decimal são tratado como dados que têm um
ponto decimal. (Exemplo: 1 = 1.000)
Nota 2: Os offsets a partir da variável #10001, os offsets do sistema de coordenadas da peça
de trabalho a partir da variável #5201, e outros dados tornam-se dados que têm um
ponto decimal. Se os dados sem um ponto decimal forem definidos usando estes
números de variáveis, um ponto decimal também será designado para estes dados.
Exemplo:
Variável comum
#101=1000
#101 1000
#10001=#101 Execução #102 1.000
#102=#10001
Nota 3: A <expressão> após uma função deve ser colacada entre colchetes ([ ]).
12-105
12 FUNÇÕES DE SUPORTE DE PROGRAMA
1. Prioridade da operação
A prioridade mais alta é dada para as funções, operações multiplicativas e operações aditivas,
nesta ordem.
#101=#111+#112∗SIN[#113]
[1] Função
[2] Multiplicativa
[3] Adicional
Uma vez
Duas vezes
Três vezes
12-106
FUNÇÕES DE SUPORTE DE PROGRAMA 12
[9] Seno #501=SIN[60] #501 0.866
SIN #502=SIN[60.] #502 0.866
#503=1000∗SIN[60] #503 866.025
#504=1000∗SIN[60.] #504 866.025
#505=1000.∗SIN[60] #505 866.025
#506=1000.∗SIN[60.] #506 866.025
Nota: SIN[60] é igual a SIN[60.].
[10] Cosseno #541=COS[45] #541 0.707
COS #542=COS[45.] #542 0.707
#543=1000∗COS[45] #543 707.107
#544=1000∗COS[45.] #544 707.107
#545=1000.∗COS[45] #545 707.107
#546=1000.∗COS[45.] #546 707.107
Nota: COS[45] é igual a COS[45.].
[11] Tangente #551=TAN[60] #551 1.732
TAN #552=TAN[60.] #552 1.732
#553=1000∗TAN[60] #553 1732.051
#554=1000∗TAN[60.] #554 1732.051
#555=1000.∗TAN[60] #555 1732.051
#556=1000.∗TAN[60.] #556 1732.051
Nota: TAN[60] é igual a TAN[60.].
[12] Arco-tangente #561=ATAN[173205/1000000] #561 60.000
ATAN #562=ATAN[173.205/100.] #562 60.000
#563=ATAN[1.732] #563 59.999
[13] Arco-cosseno #521=ACOS[100000/141421] #521 45.000
ACOS #522=ACOS[100./141.421] #522 45.000
#523=ACOS[1000/1414.213] #523 45.000
#524=ACOS[10./14.142] #524 44.999
#525=ACOS[0.707] #525 45.009
[14] Raiz quadrada #571=SQRT[1000] #571 31.623
SQRT #572=SQRT[1000.] #572 31.623
#573=SQRT[10.∗10.+20.∗20.] #573 22.361
#574=SQRT[#14∗#14+#15∗#15] #574 190.444
Nota: Para aumento da precisão, execute as
operações entre [ ] assim que possível.
[15] Valor absoluto #576=–1000 #576 –1000.000
ABS #577=ABS[#576] #577 1000.000
#3=70.
#4=–50.
#580= ABS[#4–#3] #580 120.000
[16] BIN, BCD #1=100
#11=BIN[#1] #11 64
#12=BCD[#1] #12 256
[17] Arredondamento #21=ROUND[14/3] #21 5
para o número #22=ROUND[14./3] #22 5
inteiro mais #23=ROUND[14/3.] #23 5
próximo #24=ROUND[14./3.] #24 5
ROUND #25=ROUND[–14/3] #25 –5
#26=ROUND[–14./3] #26 –5
#27=ROUND[–14/3.] #27 –5
#28=ROUND[–14./3.] #28 –5
[18] Corte de todos os #21=FIX[14/3] #21 4.000
dígitos decimais #22=FIX[14./3] #22 4.000
FIX #23=FIX[14/3.] #23 4.000
#24=FIX[14./3.] #24 4.000
#25=FIX[–14/3] #25 –4.000
#26=FIX[–14./3] #26 –4.000
#27=FIX[–14/3.] #27 –4.000
#28=FIX[–14./3.] #28 –4.000
12-107
12 FUNÇÕES DE SUPORTE DE PROGRAMA
4. Precisão da operação
Os erros listados na tabela abaixo são gerados por uma operação aritmética, e a taxa de erro
aumenta cada vez que uma operação é executada.
a=b+c ε ε
2.33 × 10–10 5.32 × 10–10 Mín. ,
a=b–c c b
a=b•c 1.55 × 10–10 4.66 × 10–10
ε
a = b/c 4.66 × 10–10 1.86 × 10–9 Erro relativo
a
a= b 1.24 × 10–9 3.73 × 10–9
a = sin b
5.0 × 10–9 1.0 × 10–8
a = cos b Erro absoluto ε grau
a = tan–1 b/c 1.8 × 10–6 3.6 × 10–6
A. Adição/subtração
Como para as operações do tipo adicional, se um valor absoluto é subtraído de outro, o erro
–8
relativo não pode ser reduzido abaixo de 10 .
Por exemplo, quando os valores verdadeiros (tais valores, a propósito, não podem ser
substituídos diretamente) de #10 e #20 são como segue:
#10 = 2345678988888.888
#20 = 2345678901234.567
então, #10 – #20 = 87654.321 não resultaria do cálculo de #10 – #20. Isto ocorre porque, como
o número efetivo de dígitos da variável é oito (decimal), os valores aproximados de #10 e #20
são:
#10 = 2345679000000.000
#20 = 2345678900000.000
Mais exatamente, os valores binários internos diferem levemente desses valores. Portanto, na
realidade, um erro significativo resulta como segue:
#10 – #20 = 100000.000.
12-108
FUNÇÕES DE SUPORTE DE PROGRAMA 12
B. Relação lógica
Como para EQ, NE, GT, LT, GE e LE, o processamento é executado em uma maneira similar à
adição e subtração, desta forma, cuidado com os erros. Por exemplo, para avaliar se #10 é
igual a #20 do exemplo acima, a expressão condicional
IF [#10EQ#20]
não é apropriada devido aos erros. Neste caso, portanto, comande uma macroinstrução como
mostrado abaixo para permitir uma tolerância aceitável na avaliação sobre a igualdade dos dois
valores.
IF [ABS[#10 – #20] LT200000]
C. Funções trigonométricas
Para as funções trigonométricas, embora o erro absoluto seja garantido, o erro relativo não é
–8
menor que 10 . Portanto, cuidado ao executar a multiplicação ou divisão após as operações
com funções trigonométricas.
1. Formatação de desvio
#i EQ #j = ( #i é igual a #j.)
#I NE #j ≠ (#i não é igual a #j.)
#i GT #j > (#i é maior que #j.)
#I LT #j < (#i é menor que #j.)
#I GE #j ≥ (#i é igual a #j, ou maior que #j.)
#I LE #j ≤ (#i é igual a #j, ou menor que #j.)
Para GOTO n, n deve ser um número de seqüência dentro do mesmo programa. Se o múmero
de seqüência não existe neste programa, um alarme 843 SEQUENCIA (Snº) NÃO
ENCONTRADA ocorrerá. Uma expressão ou variável pode ser usada em vez de #i, #j ou n.
A designação do número de seqüência Nn deve ser configurada no começo do bloco de
destino. Em caso contrário, um alarme 843 SEQUENCIA (Snº) NÃO ENCONTRADA resultará.
Se, entretanto, o bloco começar com “/” e Nn seguir, o programa pode ser desviado para dentro
deste número de seqüência.
12-109
12 FUNÇÕES DE SUPORTE DE PROGRAMA
2. Execução de loops
Formato:
WHILE [Expressão de condição] DOm (m = 1, 2, 3 127)
ENDm
A área a partir do próximo bloco para o bloco ENDm executa o loop enquanto a expressão
condicional permanece. Se a expressão condicional não permanece, o controle será transferido
para o bloco depois de ENDm. No formato mostrado acima, DOm pode preceder WHILE.
Você deve sempre usar WHILE [expressão condicional] DOm e ENDm em pares. Se você
omitir WHILE [expressão condicional], a área a partir de DOm para ENDm executará loops
infinitamente. Em DOm, m (1 a 127) identifica o número de loops a executar. (DO1, DO2, DO3,
e assim por diante, até DO127)
O número máximo disponível de graus de multiplicidade é 27.
12-110
FUNÇÕES DE SUPORTE DE PROGRAMA 12
[1] O mesmo nr. de identificação pode ser usado [2] O nr. de identificação de WHILE ∼ DOm é arbitrário.
repetidamente.
WHILE ∼ DO1
WHILE ∼ DO1
END1
Usável
WHILE ∼ DO3
END1
END3
Usável
WHILE ∼ DO2
WHILE ∼ DO1
END2
Usável
WHILE ∼ DO1
END1
END1
[3] Até 27 níveis de WHILE ∼ DOm podem ser usados. [4] O número total de níveis de WHILE ∼ DOm não deve
m pode ser de 1 a 127, independente da quantidade de exceder 27.
repetição. WHILE ∼ DO1
END2 END2
END1
END1
WHILE ∼ DO1
END1
Não-
usável WHILE ∼ DO1
Não-
usável
WHILE ∼ DO1
END1
[7] WHILE ∼ DOm não devem sobrepor. [8] Desvio para fora da faixa de WHILE ∼ DOm é possível.
END2 Nn
12-111
12 FUNÇÕES DE SUPORTE DE PROGRAMA
[9] Desvio em WHILE ∼ DOm não é permitido. [10] Subprograma pode ser chamado usando M98, G65, G66,
WHILE ∼ DO1 etc. a partir do meio de WHILE ∼ DOm.
IF ∼ GOTOn
Programa principal Subprograma
Não-usável
IF ∼ GOTOn
WHILE ∼ DO1 WHILE ∼ DO2
WHILE ∼ DO1 END1
Não-
usável G65 P100
Usável END2
WHILE ∼ DO1 able P/ sub-
Nn programa
END1
Nn M99
M02
END1
END1
[11] A execução do loop pode ser programada [12] Se WHILE e END não são incluídos em pares no
independentemente em um subprograma que é chamado subprograma (incluindo subprograma de macro), um erro
usando G65/G66 a partir do meio de WHILE ∼ DOm. Até de programa resultará em M99.
27 níveis de repetição p/ ambos os programas podem ser
feitos. Programa principal Subprograma
M02 M99
G65 P100
Usável END1
P/ sub-
END1 programa
Alarme 868 “DO-END” NÃO COINCIDENTE
M99
12-112