Prévia do material em texto
Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 1 Conteúdo Pág. Representação de números REAIS no SIMATIC S7 .……….............................................................. 2 Instruções Básicas com números REAIS ........................................................................................... 3 Funções Matemáticas Adicionais ….......…......................................................................................... 4 Funções Trigonométricas e suas Funções Inversas .......................................................................... 5 Outras Instruções com números REAIS ............................................................................................. 6 Exercício 3.1: Calculando Distância …................................................................................................ 7 Date: 05.11.2000 File: PRO2_3P.1 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Instruções com números REAIS y=LN(x) sin? cos? tan? ...? ? ? Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 2 Date: 05.11.2000 File: PRO2_3P.2 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Representação de números REAIS no SIMATIC S7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Expoente: e (8 Bits)S Mantissa: f (23 Bits) Formato da representação de um número REAL (IEEE FP formato binário 32 bits): Representação de um número REAL normalizado: S x (1.f) x 2 (e-127) S = Bit de sinal (0 corresponde a “+“, 1 corresponde a “-“) f = 23 bits da Mantissa com MSB = 2-1 e LSB =2-23 e = expoente binário inteiro (0 0 [qNaN] 1 1 1 1 Estouro 255 0 >(2-2-23) 2127 1 0 1 1 0 (0.f) 2-126 0 0 1 1 (- 0.f) 2-126 0 0 1 1 Zero 0 0 +0 0 0 0 - Nota As CPUs calculam com inteira exatidão os números em ponto flutuante. O display na PG pode deviar-se da exata representação, devido ao erro de arredondamento para cima na conversão. Números REAIS são arredondados para cima a partir da sexta casa decimal. Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 3 Vista Geral As funções +R, -R, *R, /R interpretam os valores encontrados no ACCU1 e ACCU2 como números tipo dados REAIS. Eles executam a operação lógica programada (+R, - R, *R and /R) e salvam o resultado no ACCU1. Após os cálculos serem executados, os bits de status CC0 e CC1 indicam, se o resultado é negativo (CC1=0, CC0=1), zero (CC1=0; CC0=0) ou positivo (CC1=1, CC0=0). Os bits de status OV e OS sinalizam se as operações não excederam a faixa de números permitidos. Números REAIS Com um cálculo não autorizado, isto é, quando um dos dois valores inseridos não autorizados é um número REAL inválido, então o resultado no ACCU1 é também um número REAL inválido. Números REAIS inválidos são também armazenados como um resultado no ACCU1, se você tentar processar valores não autorizados com as seguintes instruções: Adição: Soma de + infinito e - infinito. Subtração: Subtração de + infinito e + infinito ou - infinito e - infinito. Multiplicação: Multiplicação de 0 por infinito. Divisão: Divisão de infinito por infinito ou 0 por 0. O resultado da divisão de números REAIS válidos por 0 é, dependendo do sinal do número, + infinito ou - infinito. Nota O número hexadecimal D#16#FFFF FFFF representa, por exemplo, um número REAL inválido. Date: 05.11.2000 File: PRO2_3P.3 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Instruções Básicas com números REAIS Adição em REAL: L MD10 // Carrega o primeiro número REAL L MD20 // Carrega o segundo número REAL +R // Soma os números REAIS (MD10 + MD20) T MD30 // Transfere o resultado para o MD30 Subtração em REAL: L MD10 // Carrega o primeiro número REAL L MD20 // Carrega o segundo número REAL -R // Subtrai os números REAIS (MD10 - MD20) T MD30 // Transfere o resultado para o MD30 Multiplicação em REAL: L MD10 // Carrega o primeiro número REAL L MD20 // Carrega o segundo número REAL *R // Multiplica os números REAIS (MD10 * MD20) T MD30 // Transfere o resultado para o MD30 Divisão em REAL: L MD10 // Carrega o primeiro número REAL L MD20 // Carrega o segundo número REAL /R // Divide os números REAIS (MD10 / MD20) T MD30 // Transfere o resultado para o MD30 Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 4 Vista Geral As funções matemáticas pegam o número no ACCU1 como o valor de entrada da função a ser executada e armazena o resultado no ACCU1. Funções matemáticas somente mudam o conteúdo do ACCU1. O conteúdo do ACCU2, ou ACCU3 e ACCU4 para S7-400, permanecem inalterados. Dependendo do resultado da função, a função matemática seta os bits de status CC0, CC1, OV e OS. Se existe um número REAL inválido no ACCU1 antes da função ser executada, então a função matemática retorna um número REAL inválido e seta os bits de status correspondentemente. SQR A função SQR eleva ao quadrado o conteúdo do ACCU1. SQRT A função SQRT calcula a raiz quadrada do valor no ACCU1. Se existe um valor menor do que zero no ACCU1, SQRT seta os bits de status CC0, CC1, OV e OS para "1" e retorna um número REAL inválido. Se -0 (menos zero) está no ACCU1, -0 também é retornado. EXP A função EXP calcula a potência na base “e” (e=2.71828) e o valor (eACCU1) encontrado no ACCU1. LN A função LN calcula o logarítmo natural para base “e” do número encontrado no ACCU1. Se existe um valor menor que ou igual a zero no ACCU1, LN seta os bits de status CC0, CC1, OV e OS para "1" e retorna um número REAL inválido. O logarítmo natural é a função inversa da função exponencial: Se: y= ex então: x = ln y Date: 05.11.2000 File: PRO2_3P.4 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Funções Matemáticas Adicionais Funções Matemáticas: SQR Forma o quadrado de um número SQRT Calcula a raiz quadrada EXP Função exponencial na base “e“ LN Logarítmo natural (e=2.718282) Exemplo: L MD10 // Carrega um número REAL SQR // Calcula o quadrado T MD30 // Transfere o resultado para MD30 SQREN ENO IN OUTMD10 MD30 (STL) (LAD) Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 5 Funções As funções trigonométricas esperam por um ângulo em radianosmedido como Trigonométricas número REAL no ACCU1. Para o ângulo inserido ( 00 ... 3600), você deve, se necessário, realizar uma conversão para graus medidos (0 ... 2 pi, com pi=3.141593). Durante a execução da função, para valores menores que 0 ou maiores que 2pi, um múltiplo de 2pi é automaticamente somado ou subtraído até que o valor se encontre entre 0 e 2pi (módulo automático de cálculo 2pi). Funções Arco As funções arco são o inverso de suas respectivas funções trigonométricas. Elas esperam um número REAL em uma faixa específica de valores no ACCU1 e retornam um ângulo medido em radianos: Função Faixa permitida definida Faixa de valores ASIN -1 a +1 - pi/2 a + pi/2 ACOS -1 a +1 0 a pi ATAN faixa inserida - pi/2 a + pi/2 Com uma sobrefaixa da faixa permitida definida, as funções arco retornam um número REAL inválido e setam os bits de status CC0, CC1, OV e OS para "1". Date: 05.11.2000 File: PRO2_3P.5 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Funções Trigonométricas e suas Funções Inversas Ângulo Funções Trigonométricas: SIN Seno COS Coseno TAN Tangente Funções Arco: ASIN Arco seno ACOS Arco coseno ATAN Arco tangente Exemplo: L MD10 // Carrega um número REAL SIN // Calcula o seno T MD30 // Transfere o resultado para MD30 SIN EN ENO IN OUTMD22 MD30 (STL) (LAD) Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 6 Vista Geral As funções de conversão convertem os tipos de dados dos valores encontrados no ACCU1 em outro tipo de dado e armazena o resultado no ACCU1. O conteúdo dos outros acumuladores permanecem inalterados. Se, em uma das instruções (RND+, RND-, RND ou TRUNC), o valor encontrado no ACCU1 é maior ou menor do que a faixa de formatos permissíveis de DINT ou este não corresponde ao número em formato REAL, a instrução seta os bits de status OV e OS para "1". Uma conversão então não tem lugar. RND+ A instrução RND+ converte o conteúdo do ACCU1 como número REAL em um inteiro (DINT), o qual é maior ou igual ao número a ser convertido. RND- A instrução RND- converte o conteúdo do ACCU1 como número REAL em um inteiro (DINT), o qual é menor ou igual ao número a ser convertido. RND A instrução RND converte o conteúdo do ACCU1 como número REAL no próximo inteiro possível (DINT). Se o resultado estiver exatamente entre um número par e um número ímpar, o número par é retornado. TRUNC A instrução TRUNC retorna o componente inteiro do número a ser convertido; a parte fracionária é jogada fora. DTR A instrução DTR converte um número de formato DINT para o formato de número REAL. Uma vez que um número em formato DINT é mais exato do que um número em formato REAL, é possível que durante a conversão um arredondamento tenha lugar para o próximo número representável. ABS A instrução ABS forma o valor absoluto do número REAL encontrado no ACCU1, isto é, o sinal (bit 31) é fixado em “0” (par para um número REAL inválido). NEGR A instrução NEGR nega o número REAL no ACCU1, isto é, o sinal (bit 31) é invertido (par para um número REAL inválido). As instruções DTR, ABS e NEGR não afetam os bits de status. Date: 05.11.2000 File: PRO2_3P.6 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Outras Instruções com números REAIS Instruções de conversão de REAL para DINT: RND+ arredonda para o próximo número DINT acima RND- arredonda para o próximo número DINT abaixo RND arredonda para o inteiro mais próximo TRUNC trunca o número, mantendo somente a parte inteira Instruções de conversão de DINT para REAL: DTR converte com arredondamento Outras instruções de REAL para REAL: ABS retorna o valor absoluto ou módulo NEGR nega um número REAL Exemplo: L MD10 // Carrega um número REAL RND+ // Converte para o próximo número DINT acima T MD30 // Transfere o resultado para MD30 RND+ EN ENO IN OUTMD22 MD30 (STL) (LAD) Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com Siemens Ltda. Training Center ST-7PRO2 Instruções com números REAISPágina 7 Objetivo A aplicação de funções matemáticas para cálculo de distância entre dois pontos. Tarefa Criar um FC31 com a seguinte fucionalidade: • FC31 espera as coordenadas (X1, Y1) ou (X2, Y2) de dois pontos P1 e P2 nos parâmetros de entrada. • FC31 retorna a distância entre os dois pontos no parâmetro de saída RET_VAL. • FC31 deverá ser instalável no sistema S7-300 bem como no sistema S7-400 Este não deverá utilizar endereços globais de CPU para qualquer possível salvamento dos resultados imediatos. O que fazer 1. Criar um FC31 com a seguinte fucionalidade. 2. Chamar FC31 no OB1 e conectar os parâmetros de entradas e saídas como a seguir: X1 = MD0, Y1 = MD4 X2 = MD8, Y2 = MD12 RET_VAL = MD16 3. Transferir o programa para a CPU S7. 4. Testar FC31 com ajuda da "Monitor/Modify Variable". Additional Task Criar uma versão run-time otimizada do FC31 para S7-400, que possa operar sem o uso de variáveis temporárias. Date: 05.11.2000 File: PRO2_3P.7 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Exercício 3.1: Calculando Distância Exemplo: Calculando a distância D entre dois pontos em um sistema de coordenadas retangulares P1 P2 X1 X2 X Y Y2 Y1 Função: FC 31 com D = (X2 - X1)2 + (Y2 - Y1)2 D Created with novaPDF Printer (www.novaPDF.com) http://www.novapdf.com