Sunteți pe pagina 1din 7

Instrues com nmeros REAIS

?
?

y=LN(x)

sin?
cos?
tan?
...?

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_3P.1

Contedo

Conhecimento em Automao
Training Center

Pg.

Representao de nmeros REAIS no SIMATIC S7 ...............................................................


Instrues Bsicas com nmeros REAIS ...........................................................................................
Funes Matemticas Adicionais ................................................................................................
Funes Trigonomtricas e suas Funes Inversas ..........................................................................
Outras Instrues com nmeros REAIS .............................................................................................
Exerccio 3.1: Calculando Distncia ................................................................................................

Siemens Ltda.
Training Center

Pgina 1

ST-7PRO2
Instrues com nmeros REAIS

2
3
4
5
6
7

Representao de nmeros REAIS no SIMATIC S7




Formato da representao de um nmero REAL (IEEE FP formato binrio 32 bits):


31

30

29

28

27 26

25

24

23

22

21

20 19

18

17

16 15

14

13

12

11 10

0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2-23

2-1
S

Expoente: e (8 Bits)

Representao de um nmero REAL normalizado:


S x (1.f) x 2 (e-127)

Mantissa: f (23 Bits)

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 binrio inteiro (0 < e < 255)

Exemplo:
S =0
e = 1000 0101 = 133
f = 1010 0000... = 0.5 + 0.125

R = +1.625 x 2(133-127) = 1.625 x 64 = 104.0

Faixa de valores dos nmeros REAIS normalizados:


- 3.402 823 x 10+38 ... -1.175 494 x 10-38, 0, 1.175 494 x 10-38 ... 3.402 823 x 10+38

SIMATIC S7

Date:
File:

Siemens AG 1999. All rights reserved.

Conhecimento em Automao
Training Center

04.10.2007
PRO2_3P.2

Nmero REAL

Os nmeros REAIS (ponto flutuante) habilitam a implementao de


complexos clculos matemticos para controle de processos e controle de
processos em malha fechada.
Uma varivel tipo dado REAL consiste internamente de trs componentes: o
sinal, o expoente 8 bits em base 2 e a mantissa 23 bits.
O sinal pode assumir os valores "0" (positivo) ou "1" (negativo). O expoente
incrementado por uma constante (Bias,+127) e armazenado, ento este ter
uma faixa de valores de 0 a 255.
A mantissa representta a parte fracionria. A parte inteira da mantissa no
armazenada, uma vez que esta ser sempre 1 (para ponto flutuante
normalizado) ou 0 (para ponto flutuante no normalizado).

Limites de faixa

Designao

Valor e

Mantissa f

Valor

No.no pt.flut.

255

<>0

[qNaN]

Estouro

255

>(2-2-23) 2127
<(-2+ 2-23) 2127

1
0

0
1

1
1

1
1

No. normalizado

1.. 254

qualquer

(1.f) 2e-127
(-1.f) 2e-127

1
0

0
1

0
0

No.no normaliz. 0

<>0

(0.f) 2-126
(- 0.f) 2-126

0
0

0
0

1
1

1
1

Zero

+0

Nota

Siemens Ltda.
Training Center

CC1 CC0 OV OS

As CPUs calculam com inteira exatido os nmeros em ponto flutuante. O


display na PG pode deviar-se da exata representao, devido ao erro de
arredondamento para cima na converso. Nmeros REAIS so arredondados
para cima a partir da sexta casa decimal.
Pgina 2

ST-7PRO2
Instrues com nmeros REAIS

Instrues Bsicas com nmeros REAIS




Adio em REAL:
L
L
+R
T

MD10
MD20
MD30

// Carrega o primeiro nmero REAL


// Carrega o segundo nmero REAL
// Subtrai os nmeros REAIS (MD10 - MD20)
// Transfere o resultado para o MD30

Multiplicao em REAL:
L
L
*R
T

MD30

// Carrega o primeiro nmero REAL


// Carrega o segundo nmero REAL
// Soma os nmeros REAIS (MD10 + MD20)
// Transfere o resultado para o MD30

Subtrao em REAL:
L
L
-R
T

MD10
MD20

MD10
MD20
MD30

// Carrega o primeiro nmero REAL


// Carrega o segundo nmero REAL
// Multiplica os nmeros REAIS (MD10 * MD20)
// Transfere o resultado para o MD30

Diviso em REAL:
L
L
/R
T

SIMATIC S7
Siemens AG 1999. All rights reserved.

MD10
MD20
MD30

// Carrega o primeiro nmero REAL


// Carrega o segundo nmero REAL
// Divide os nmeros REAIS (MD10 / MD20)
// Transfere o resultado para o MD30

Date:
File:

04.10.2007
PRO2_3P.3

Conhecimento em Automao
Training Center

Vista Geral

As funes +R, -R, *R, /R interpretam os valores encontrados no ACCU1 e


ACCU2 como nmeros tipo dados REAIS. Eles executam a operao lgica
programada (+R, -R, *R and /R) e salvam o resultado no ACCU1.
Aps os clculos 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 operaes no excederam a faixa
de nmeros permitidos.

Nmeros REAIS
no autorizados

Com um clculo no autorizado, isto , quando um dos dois valores inseridos


um nmero REAL invlido, ento o resultado no ACCU1 tambm um
nmero REAL invlido.
Nmeros REAIS invlidos so tambm armazenados como um resultado no
ACCU1, se voc tentar processar valores no autorizados com as seguintes
instrues:
Adio:
Soma de + infinito e - infinito.
Subtrao:
Subtrao de + infinito e + infinito
ou - infinito e - infinito.
Multiplicao: Multiplicao de 0 por infinito.
Diviso:
Diviso de infinito por infinito ou 0 por 0.
O resultado da diviso de nmeros REAIS vlidos por 0 , dependendo do
sinal do nmero, + infinito ou - infinito.

Nota

O nmero hexadecimal D#16#FFFF FFFF representa, por exemplo, um


nmero REAL invlido.

Siemens Ltda.
Training Center

Pgina 3

ST-7PRO2
Instrues com nmeros REAIS

Funes Matemticas Adicionais




Funes Matemticas:
SQR
SQRT

Forma o quadrado de um nmero


Calcula a raiz quadrada

EXP
LN

Funo exponencial na base e


Logartmo natural
(e=2.718282)

Exemplo:
L
SQR
T

MD10
MD30

EN
MD10

SIMATIC S7
Siemens AG 1999. All rights reserved.

IN

SQR

// Carrega um nmero REAL


// Calcula o quadrado
// Transfere o resultado para MD30

ENO
OUT

(STL)

(LAD)
MD30

Date:
File:

Conhecimento em Automao
Training Center

04.10.2007
PRO2_3P.4

Vista Geral

As funes matemticas pegam o nmero no ACCU1 como o valor de


entrada da funo a ser executada e armazena o resultado no ACCU1.
Funes matemticas somente mudam o contedo do ACCU1. O contedo
do ACCU2, ou ACCU3 e ACCU4 para S7-400, permanecem inalterados.
Dependendo do resultado da funo, a funo matemtica seta os bits de
status CC0, CC1, OV e OS.
Se existe um nmero REAL invlido no ACCU1 antes da funo ser
executada, ento a funo matemtica retorna um nmero REAL invlido e
seta os bits de status correspondentemente.

SQR

A funo SQR eleva ao quadrado o contedo do ACCU1.

SQRT

A funo 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 nmero REAL invlido.
Se -0 (menos zero) est no ACCU1, -0 tambm retornado.

EXP

A funo EXP calcula a potncia na base e (e=2.71828) e o valor (eACCU1)


encontrado no ACCU1.

LN

A funo LN calcula o logartmo natural para base e do nmero 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 nmero REAL
invlido.
O logartmo natural a funo inversa da funo exponencial:
Se:
y= ex
ento:
x = ln y

Siemens Ltda.
Training Center

Pgina 4

ST-7PRO2
Instrues com nmeros REAIS

Funes Trigonomtricas e suas Funes Inversas




Funes Trigonomtricas:
SIN
COS
TAN

Seno
Coseno
Tangente
ngulo

Funes Arco:
ASIN
ACOS
ATAN

Arco seno
Arco coseno
Arco tangente

Exemplo:
L
SIN
T

MD10
MD30

EN
MD22

SIMATIC S7
Siemens AG 1999. All rights reserved.

Funes
Trigonomtricas

Funes Arco

Siemens Ltda.
Training Center

IN

SIN

// Carrega um nmero REAL


// Calcula o seno
// Transfere o resultado para MD30

(STL)

ENO
OUT

(LAD)
MD30

Date:
File:

04.10.2007
PRO2_3P.5

Conhecimento em Automao
Training Center

As funes trigonomtricas esperam por um ngulo em radianos medido


como
nmero REAL no ACCU1. Para o ngulo inserido ( 00 ... 3600), voc deve, se
necessrio, realizar uma converso para graus medidos (0 ... 2 pi, com
pi=3.141593).
Durante a execuo da funo, para valores menores que 0 ou maiores que
2pi, um mltiplo de 2pi automaticamente somado ou subtrado at que o
valor se encontre entre 0 e 2pi (mdulo automtico de clculo 2pi).
As funes arco so o inverso de suas respectivas funes trigonomtricas.
Elas esperam um nmero REAL em uma faixa especfica de valores no
ACCU1 e retornam um ngulo medido em radianos:
Funo
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 funes arco retornam um
nmero REAL invlido e setam os bits de status CC0, CC1, OV e OS para "1".

Pgina 5

ST-7PRO2
Instrues com nmeros REAIS

Outras Instrues com nmeros REAIS




Instrues de converso de REAL para DINT:


RND+
RNDRND
TRUNC

Instrues de converso de DINT para REAL:


DTR

converte com arredondamento

Outras instrues de REAL para REAL:


ABS
NEGR

arredonda para o prximo nmero DINT acima


arredonda para o prximo nmero DINT abaixo
arredonda para o inteiro mais prximo
trunca o nmero, mantendo somente a parte inteira

retorna o valor absoluto ou mdulo


nega um nmero REAL

Exemplo:
L
RND+
T

MD22

SIMATIC S7
Siemens AG 1999. All rights reserved.

MD10
MD30

// Carrega um nmero REAL


// Converte para o prximo nmero DINT acima
// Transfere o resultado para MD30

EN

RND+
ENO

IN

OUT

(STL)

(LAD)
MD30

Date:
File:

04.10.2007
PRO2_3P.6

Conhecimento em Automao
Training Center

Vista Geral

As funes de converso convertem os tipos de dados dos valores


encontrados no ACCU1 em outro tipo de dado e armazena o resultado no
ACCU1. O contedo dos outros acumuladores permanecem inalterados.
Se, em uma das instrues (RND+, RND-, RND ou TRUNC), o valor
encontrado no ACCU1 maior ou menor do que a faixa de formatos
permissveis de DINT ou este no corresponde ao nmero em formato REAL,
a instruo seta os bits de status OV e OS para "1". Uma converso ento
no tem lugar.

RND+

A instruo RND+ converte o contedo do ACCU1 como nmero REAL em


um inteiro (DINT), o qual maior ou igual ao nmero a ser convertido.

RND-

A instruo RND- converte o contedo do ACCU1 como nmero REAL em


um inteiro (DINT), o qual menor ou igual ao nmero a ser convertido.

RND

A instruo RND converte o contedo do ACCU1 como nmero REAL no


prximo inteiro possvel (DINT). Se o resultado estiver exatamente entre um
nmero par e um nmero mpar, o nmero par retornado.

TRUNC

A instruo TRUNC retorna o componente inteiro do nmero a ser convertido;


a parte fracionria jogada fora.

DTR

A instruo DTR converte um nmero de formato DINT para o formato de


nmero REAL. Uma vez que um nmero em formato DINT mais exato do
que um nmero em formato REAL, possvel que durante a converso um
arredondamento tenha lugar para o prximo nmero representvel.

ABS

A instruo ABS forma o valor absoluto do nmero REAL encontrado no


ACCU1, isto , o sinal (bit 31) fixado em 0 (par para um nmero REAL
invlido).

NEGR

A instruo NEGR nega o nmero REAL no ACCU1, isto , o sinal (bit 31)
invertido (par para um nmero REAL invlido). As instrues DTR, ABS e
NEGR no afetam os bits de status.

Siemens Ltda.
Training Center

Pgina 6

ST-7PRO2
Instrues com nmeros REAIS

Exerccio 3.1: Calculando Distncia


Exemplo: Calculando a distncia D entre dois pontos em
um sistema de coordenadas retangulares
Y
Y2

P2

Y1

P1

X1

Funo: FC 31 com D =

SIMATIC S7
Siemens AG 1999. All rights reserved.

X2
(X2 - X1)2 + (Y2 - Y1)2

Date:
File:

04.10.2007
PRO2_3P.7

Conhecimento em Automao
Training Center

Objetivo

A aplicao de funes matemticas para clculo de distncia 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 parmetros de entrada.
FC31 retorna a distncia entre os dois pontos no parmetro de sada
RET_VAL.
FC31 dever ser instalvel no sistema S7-300 bem como no sistema S7400 Este no dever utilizar endereos globais de CPU para qualquer
possvel salvamento dos resultados imediatos.

O que fazer

1. Criar um FC31 com a seguinte fucionalidade.


2. Chamar FC31 no OB1 e conectar os parmetros de entradas e sadas
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 verso run-time otimizada do FC31 para S7-400, que possa operar
sem o uso de variveis temporrias.

Siemens Ltda.
Training Center

Pgina 7

ST-7PRO2
Instrues com nmeros REAIS

S-ar putea să vă placă și