Sunteți pe pagina 1din 15

Siemens Ltda.

Training Center
ST-7PRO2
Funes com Acumuladores Pgina 1
Contedo Pg.
Viso geral das funes com acumuladores .................................................................................... 2
A instruo TAK (Troca ACCU1 com ACCU2) ............................................................................... 3
As instrues PUSH e POP .............................................................................................................. 4
As instrues ENT e LEAVE (s S7-400) ......................................................................................... 5
Instrues aritmticas ..................................................................................................................... 6
Instrues lgicas com palavras ..................................................................................................... 7
Instrues de troca para ACCU1 ................................................................................................. 8
Instrues incrementais para ACCU1 .............................................................................................. 9
Formando complemento de um ........................................................................................................ 10
Negando nmeros (Complemento de dois) ................................................................................... 11
Instruo de rotao 32 Bits via Bit CC1 ......................................................................................... 12
Exerccio 2.1: Clculo de potenciao ............................................................................................ 13
Exerccio 2.2: Troca de dados no ACCU1 ...................................................................................... 14
Exerccio 2.3: Formando complementos .......................................................................................... 15
Date: 4/10/2007
File: PRO2_02P.1
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Funes com Acumuladores
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 2
Viso Geral As funes de acumulador transmitem valores entre os acumuladores ou
troca de bytes no acumulador 1. A execuo de funes puras de acumulador
independente do resultado lgico da operao ou dos bits de status.
Igualmente, nem o resultado de operao de lgica nem os bits de status so
afetados pela execuo.
As funes de acumulador permitem otimizar o tempo de execuo de
programas de automao.
Date: 4/10/2007
File: PRO2_02P.2
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Viso Geral das Funes com Acumuladores
Instrues que modificam vrios Acumuladores
TAK: Troca de contedo entre ACCU1 e ACCU2
PUSH: Deslocando o contedo dos ACCUs para cima
POP: Deslocando o contedo dos ACCUs para baixo
ENT: Deslocando o contedo dos ACCUs para cima, sem ACCU1
LEAVE: Deslocando o contedo dos ACCUs para baixo, sem ACCU2
Instrues aritmticas e instrues lgicas com palavras
Instrues que modificam somente o ACCU1
INC: Incrementa o contedo do ACCU 1-L-L
DEC: Decrementa o contedo do ACCU 1-L-L
CAW: Inverte a ordem dos Bytes no ACCU1-L (16 Bit)
CAD: Inverte a ordem dos Bytes no ACCU1 (32 Bit)
INVI, INVD: Formando complemento de um
NEGI, NEGD, NEGR: Formando complemento de dois (Negao)
RLDA, RRDA: Rotacionando o contedo do ACCU1 para direita ou
esquerda via cdigo de condio CC1
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 3
TAK TAK (troca ACCU1 com ACCU2) troca o contedo do ACCU1 com o
contedo do ACCU2. A instruo executada sem levar em conta, e sem
afetar, os bits de status. O contedo de ACCU3 e ACCU4 permanecem
inalterados para CPUs com quatro acumuladores (para S7-400).
Exemplo Subtrair o valor menor do valor maior:
L MW10 // Carrega o contedo do MW10 no ACCU1-L.
L MW12 // Carrega o contedo do ACCU1-L no ACCU2-L.
// Carrega o contedo do MW12 no ACCU1-L.
>I // Cheque se ACCU2-L (MW10) maior que ACCU1-L
// (MW12).
JC NEXT // Salta para o rtulo NEXT se ACCU2 (MW10) for
// maior que ACCU1 (MW12).
TAK // Troca o contedo do ACCU1 com ACCU2.
NEXT:-I // Subtrai o contedo do ACCU1-L do contedo
// do ACCU2-L.
T MW14 // Transfira o resultado (= valor maior menos
// valor menor) para MW14
Date: 4/10/2007
File: PRO2_02P.3
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
A Instruo TAK (Troca ACCU1 com ACCU2)
S7-300:
S7-400:
ACCU1
ACCU2
V1
V2
V2
V1
antes depois
ACCU1
ACCU2
V1
V2
V3
V4
ACCU3
ACCU4
V2
V1
V3
V4
antes depois
TAK
TAK
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 4
PUSH A instruo o PUSH troca os contedos dos acumuladores, em cada caso, no
prximo acumulador mais alto. PUSH normalmente usado para duplicar o
valor de ACCU1, sem perder os contedos originais de ACCU2 ou ACCU3
(s para S7-400).
PUSH (S7-300): A instruo PUSH copia o contedo inteiro de ACCU1
para ACCU2. ACCU1 permanece inalterado.
PUSH (S7-400): A instruo PUSH copia o contedo de ACCU3 para
ACCU4, o contedo de ACCU2 para ACCU3 e o contedo de ACCU1
para ACCU2. ACCU1 permanece inalterado.
POP A instruo o POP traz os valores encontrados nos acumuladores 2 a 4 para
os acumuladores subjacentes. Esta instruo normalmente executada
depois de instrues de transferncia, quando o contedo do ACCU1 j no
ser mais necessrio e o processamento continuar com os valores salvos
nos acumuladores superiores.
POP (S7-300): A instruo POP copia o contedo inteiro de ACCU2 para
ACCU1. ACCU2 permanece inalterado.
POP (S7-400): A instruo POP copia o contedo de ACCU2 para
ACCU1, o contedo de ACCU3 para ACCU2 e o contedo de ACCU4
para ACCU3. ACCU4 permanece inalterado.
Date: 4/10/2007
File: PRO2_02P.4
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
As Instrues PUSH e POP
S7-300:
ACCU1
ACCU2
V1
V2
V1
V1
antes depois PUSH
S7-400:
ACCU1
ACCU2
ACCU3
ACCU4
V1
V2
V1
V2
V3
V4
V1
V1
V2
V3
antes depois PUSH
V2
V2
antes depois POP
V1
V2
V3
V4
V2
V3
V4
V4
antes depois
POP
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 5
ENT A instruo ENT (ENTER ACCU Stack) desloca os contedos dos
acumuladores 2 e 3 respectivamente para os acumuladores 3 e 4. Os
contedos de acumuladores 1 e 2 permanecem inalterados.
ENT junto com uma funo LOAD imediatamente seguinte:
ENT
L ...
Tem como resultado, que durante o carregamento os contedos dos
acumuladores 1 a 3 sero deslocados para cima (semelhante a PUSH) e o
valor do ACCU1 permanece inalterado .
A instruo ENT executada sem levar em conta e sem afetar os bits de
status.
LEAVE A instruo LEAVE desloca os contedos dos acumuladores 4 e 3
respectivamente para os acumuladores 3 e 2. Os contedos de acumuladores
4 e 1 permanecem inalterados.
As funes aritmticas utilizam do recurso LEAVE. Com LEAVE voc pode
tambm emular a mesma funcionalidade em outras operaes de lgica
digitais (por exemplo uma instruo de lgica de palavra).
LEAVE programada depois de uma operao de lgica digital, vai transferir os
contedos de acumuladores 3 e 4 para os acumuladores 2 e 3. O resultado da
operao de lgica digital se mantm inalterado no acumulador 1.
Date: 4/10/2007
File: PRO2_02P.5
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
As Instrues ENT e LEAVE (s S7-400)
ENT:
LEAVE:
V1
V2
V3
V4
ACCU1
ACCU2
ACCU3
ACCU4
V1
V2
V2
V3
antes depois
V1
V2
V3
V4
ACCU1
ACCU2
ACCU3
ACCU4
V1
V3
V4
V4
antes depois
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 6
Instrues As instrues aritmticas combinam dois valores digitais encontrados nos
Aritmticas acumuladores 1 e 2, conforme os fundamentos das operaes aritmticas. O
resultado do clculo fica no acumulador 1.
Os bits de status CC0, CC1, OV e OS fornecem informaes sobre o
resultado final ou intermedirio do clculo.
S7-300 Nas CPUs do S7-300, o contedo do ACCU2 permanece inalterado com a
execuo de uma funo aritmtica.
S7-400 Com a CPUs S7-400, o contedo de ACCU2 sobrescrito pelo contedo do
ACCU3. O contedo de ACCU4 transferido para ACCU3.
Exemplo O segmento de programa seguinte produz diferentes resultados, dependendo
de qual tipo de CPU executado, em uma S7-300 ou em uma S7-400 :
L 0 // carrega o inteiro 0 no ACCU1
L 5 // carrega o inteiro 5 no ACCU1, 0 no ACCU2
PUSH // desloca 5 (ACCU1) para ACCU2;(S7-400: ACCU2->ACCU3)
*I // multiplica ACCU1 por ACCU2; (S7-400: ACCU3->ACCU2)
*I // multiplica ACCU1 por ACCU2; (S7-400: ACCU3->ACCU2)
Resultado:
S7-300: ACCU1 = 125
S7-400: ACCU1 = 0
Date: 4/10/2007
File: PRO2_02P.6
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Aritmticas
S7-300:
S7-400:
ACCU1
ACCU2
V1
V2
V2 op V1
V2
antes depois
ACCU1
ACCU2
V1
V2
V3
V4
ACCU3
ACCU4
V3
V4
V4
antes depois
op: +., -., *., /.
V2 op V1
op: +., -., *., /.
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 7
Instrues Lgicas As instrues lgicas de palavras combinam bit a bit os valores do ACCU1
de Palavras com uma constante ou com o contedo do ACCU2 e guarda o resultado no
ACCU1.
O contedo dos acumuladores restantes (ACCU2 para S7-300, ou ACCU2,
ACCU3 e ACCU4 para S7-400) permanecem inalterados. As operaes
lgicas podem ser executadas para formatos de palavras (Word) ou palavras
duplas (Double Word).
As instrues AND, OR ou Exclusive OR so disponveis como instrues
lgicas de palavras.
Date: 4/10/2007
File: PRO2_02P.7
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Lgicas de Palavras
S7-300:
S7-400:
ACCU1
ACCU2
V1
V2
V2 op V1
V2
antes depois
ACCU1
ACCU2
V1
V2
V3
V4
ACCU3
ACCU4
V2
V3
V4
antes depois
op: A.., O.., X..,
V2 op V1
op: A.., O.., X..,
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 8
CAW Com a instruo CAW, os bytes na palavra de dados direita do ACCU1 so
trocados entre si, ou seja, o contedo do ACCU1-LH transferido para o
ACCU1-LL e vice versa.
Com esta instruo possvel converter um nmero de 16-bit (INT ou WORD)
em representao SIMATIC para o formato de representao numrica INTEL
(transferncia de dados para PCs).
CAD Com a instruo CAD, os bytes no ACCU1 so trocados entre si, ou seja, o
contedo do ACCU1-HH transferido para ACCU1-LL e vice versa e o
contedo do ACCU1-HL para ACCU1-LH e vice versa.
Com esta instruo possvel converter um nmero de formato 32-bit (DINT,
DWORD ou DINT) em representao SIMATIC para o formato de
representao numrica INTEL (transferncia de dados para PCs).
Date: 4/10/2007
File: PRO2_02P.8
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues de Troca no ACCU1
CAW:
CAD:
V4 V3 V2 V1
ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL
V4 V3 V1 V2
V4 V3 V2 V1
V1 V2 V3 V4
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 9
INC A instruo INC <inteiro de 8 bits> adiciona um inteiro de 8 bits ao contedo
do ACCU1-LL e salva o resultado no ACCU1-LL.
ACCU1-LH, ACCU1-H e ACCU2, ou ACCU3 e ACCU4 permanecem
inalterados.
DEC A instruo DEC <inteiro de 8 bits> subtrai um inteiro de 8 bits do contedo do
ACCU1-LL e salva o resultado no ACCU1-LL.
ACCU1-LH, ACCU1-H e ACCU2, ou ACCU3 e ACCU4 permanecem
inalterados.
Notas As instrues INC e DEC so tambm conhecidas como Instrues de Baixo
Nvel", isto , no caso de um estouro (overflow), o processador no gera
qualquer bit de estouro na palavra de status.
Em vez da instruo INC, voc pode tambm, por exemplo, usar as seguintes
instrues para soma de INT- ou DINT-:
+ <const> (soma uma <const> 16-bit ao ACCU1)
+ L#<const> (soma uma <const> 32-bit ao ACCU1)
Em vez da instruo INC, voc pode tambm, por exemplo, usar as seguintes
instrues para subtrao de INT- ou DINT-:
+ - <const> (subtrai uma <const> 16-bit do contedo do ACCU1)
+ L# - <const> (subtrai uma <const> 32-bit do contedo do ACCU1)
Date: 4/10/2007
File: PRO2_02P.9
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Incrementais no ACCU1
ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL
INC <const>:
V4 V3 V2 V1
V4 V3 V2 V1+<const>
+ <const>
DEC <const>:
V4 V3 V2 V1
V4 V3 V2 V1-<const>
- <const>
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 10
INVI A instruo INVI nega bit a bit o contedo (bits 0 a 15) da palavra direita do
acumulador 1. Ela troca zeros por ums e ums por zeros. O contedo da
palavra esquerda (bits 16 to 31) permanece inalterado.
A instruo INVI no modifica qualquer bit de status.
INVD A instruo INVD nega bit a bit o contedo (bits 0 to 31) do acumulador 1. Ela
troca zeros por ums e ums por zeros.
A instruo INVD no modifica qualquer bit de status.
Date: 4/10/2007
File: PRO2_02P.10
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Formando o Complemento de Um
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
0 31
INVI (Complemento de um do ACCU1-L):
15
ACCU1-L ACCU1-H
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0
0 31 15
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
0 31
INVD (Complemento de um do ACCU1):
15
ACCU1-L ACCU1-H
1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0
0 31 15
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 11
NEGI A instruo NEGI interpreta o valor (bits 0 a 15) encontrado na palavra direita
do ACCU1 como um nmero INTEIRO e atravs da formao do
complemento de dois reverte o sinal.
Esta instruo equivale a multiplicao por -1. A palavra esquerda do
ACCU1 (bits 16 to 31) permanece inalterada.
Os bits de status CC1, CC0, OS e OV so setados como uma funo do
resultado da operao.
NEGD A instruo NEGD interpreta o valor encontrado no ACCU1 como um nmero
duplo inteiro e o multiplica por -1.
A formao do complemento de dois tambm pode ser feita atravs do
complemento de um somado de +1.
Os bits de status CC1, CC0, OS e OV so setados como uma funo do
resultado da operao.
NEGR A instruo NEGR interpreta o valor encontrado no ACCU1 como um nmero
REAL (32 bit, IEEE-FP) e multiplica este nmero por -1. A instruo inverte o
estado do bit 31 no ACCU1 (sinal da mantissa).
A instruo NEGR no modifica os bits de status.
Date: 4/10/2007
File: PRO2_02P.11
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Negao de Nmeros (Complemento de Dois)
OUT
NEGI (Negao de nmeros INT)
NEGD (Negao de nmeros DINT):
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
0 31
1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0
0 31 Complemento de um
1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1
31
Adio de + 1
NEGR (Negao de nmero REAL):
= 1.3125
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0
Expoente = 8 Bit S
Mantissa (23 Bits)
0 22 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0
= 1 112 116 295
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 12
RLDA A funo RLDA desloca o contedo do ACCU1 em 1 casa para esquerda. A
posio do bit 0 ser preenchida com o valor do status bit CC1. O status bit
CC1 ficar com o contedo do bit 31.
Os bits de status CC0 e OV so zerados ("0).
Exemplo:
ACCU1: Y100 0100 1100 0100
CC1: X
RLDA
ACCU1: 1000 1001 1000 100X
CC1: Y
RRDA A funo RRDA desloca o contedo do ACCU1 em 1 casa para direita. A
posio do bit 31 ser preenchida com o valor do status bit CC1. O bit de
status CC1 ficar com o contedo do bit 0.
Os bits de status CC0 e OV so zerados ("0).
Exemplo:
ACCU1: 0100 0100 1100 010Y
CC1: X
RRDA
ACCU1: X010 0010 0110 0010
CC1: Y
Date: 4/10/2007
File: PRO2_02P.12
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues de Rotao em 32 Bits via Bit CC1
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 31
Bit CC1
RLDA (Rotao esquerda via status bit CC1):
RRDA (Rotao direita via status bit CC1):
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 31
Bit CC1
ACCU1
ACCU1
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 13
Objetivo Familiarizar-se com instrues de troca de acumuladores atravs do clculo
de potenciao de nmeros inteiros.
Enunciado Gerar a FC21 com a seguinte funcionalidade:.
Ler o byte esquerdo da chave rotativa e converter o valor BCD em valor
Inteiro (BTI).
Calcular a 6 potncia do valor lido.
Procedimento 1. Copiar o contedo do ACCU1 no ACCU2 com a ajuda do comando PUSH.
2. Multiplicar o ACCU1 por ACCU2 (clculo do quadrado).
3. Copiar o contedo do ACCU1 no ACCU2 com a ajuda do comando PUSH.
4. etc., etc., etc.
Cuidado: Como o quarto passo deve ser tratado para que a FC21 retorne
o resultado correto tanto para um S7-300 como para um S7-400?
5. Apresente o resultado no display digital.
6. Chame a FC21 no OB1 e faa o download do programa para a CPU.
7. Teste o programa.
Nota Para que o valor lido no seja muito grande, somente a dcada da direita
deve ser lida.
Date: 4/10/2007
File: PRO2_02P.13
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 2.1: Clculo com Expoentes
Exemplo : Formao da 6 potncia de um nmero inteiro atravs de sucessivas
instrues PUSH e *I
ACCU1
ACCU2
Cpia com
PUSH
multiplicar
com *D
ACCU1
Chave Rotativa
x y 0 0
converte
para INT
BTI
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 14
Objetivo Familiarizar-se com troca de bytes no ACCU1.
Aplicao: Converter um nmero em representao SIMATIC para uma
representao de PC usando INTEL-CPU (80486, Pentium,...).
Esta converso muito til quando se faz troca de dados entre um
controlador SIMATIC e um PC.
Enunciado Gerar a FC22 com a seguinte funcionalidade:
Carregue o valor da chave rotativa no ACCU1.
Troque os 2 bytes do ACCU1-L com auxlio do comando CAW.
Apresente o contedo do ACCU1 no display.
Procedimento 1. Gerar a FC22.
2. Chamar a FC22 no OB1.
3. Fazer o download do programa para a CPU S7.
4. Testar o programa.
Date: 4/10/2007
File: PRO2_02P.14
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
2 3
Exerccio 2.2 : Troca de Dados no ACCU1
ACCU1 - L (antes)
1 0
CAW
ACCU1 - L (depois)
0 1 3 2
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 15
Objetivo Familiarizar-se com a instruo de formao de complemento no SIMATIC
S7.
Aplicao: Converter um "negativo" em um "positivo "
Tais converses so sempre empregadas quando se l sinais ativos em 0,
porm o programa de usurio trabalha com lgica positiva ou quando sinais
invertidos (0-ativo) so enviados para os equipamentos de campo.
Enunciado Gerar a FC 23 com a seguinte funcionalidade:
Carregue o valor da palavra das chaves de teste de entrada no ACCU1.
Forme o complemento de um.
Apresente o resultado nos LEDs do simulador.
Procedimento 1. Gerar a FC 23
2. Chamar a FC 23 no OB 1
3. Fazer download do programa para a CPU S7.
4. Testar o programa com auxilio das variveis de status e opes de preset
binrio.
Date: 4/10/2007
File: PRO2_02P.15
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 2.3 : Formando Complementos
Bit 15 Bit 0
Formando o Complemento de Um: INVI
1 . . . . . . . . . . . . 1 0 1
ACCU1-L (antes)
Bit 15 Bit 0
0 . . . . . . . . . . . . 0 1 0
ACCU1-L (depois)

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