Funções com Acumuladores

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date:
File:

09/03/14
PRO2_02P.1

Conhecimento em Automação
Training Center
Visão Geral das Funções com Acumuladores


Instruções que modificam vários Acumuladores
 TAK: Troca de conteúdo entre ACCU1 e ACCU2
 PUSH: Deslocando o conteúdo dos ACCU’s para cima
 POP: Deslocando o conteúdo dos ACCU’s para baixo
 ENT: Deslocando o conteúdo dos ACCU’s para cima, sem ACCU1
 LEAVE: Deslocando o conteúdo dos ACCU’s para baixo, sem ACCU2
 Instruções aritméticas e instruções lógicas com palavras



Instruções que modificam somente o ACCU1
 INC: Incrementa o conteúdo do ACCU 1-L-L
 DEC: Decrementa o conteúdo 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 (Negação)
 RLDA, RRDA: Rotacionando o conteúdo do ACCU1 para direita ou
esquerda via código de condição CC1

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date:
File:

09/03/14
PRO2_02P.2

Conhecimento em Automação
Training Center
A Instrução TAK (Troca ACCU1 com ACCU2)
S7-300:
ACCU2
ACCU1

V1
V2

V2
V1
antes

depois

TAK

S7-400:
ACCU4
ACCU3
ACCU2
ACCU1

antes

SIMATIC S7
Siemens AG 1998. All rights reserved.

V4
V3
V1
V2

V4
V3
V2
V1
TAK

Date:
File:

09/03/14
PRO2_02P.3

depois

Conhecimento em Automação
Training Center
As Instruções PUSH e POP
S7-300:

ACCU2
ACCU1

V1
V1

V2
V1
antes

PUSH

V2
V2

V2
V1

depois

antes

POP

depois

S7-400:
ACCU4
ACCU3
ACCU2
ACCU1

antes

SIMATIC S7
Siemens AG 1998. All rights reserved.

PUSH

antes

depois

Date:
File:

V4
V4
V3
V2

V4
V3
V2
V1

V3
V2
V1
V1

V4
V3
V2
V1

09/03/14
PRO2_02P.4

POP

depois

Conhecimento em Automação
Training Center
As Instruções ENT e LEAVE (só S7-400)
ENT:
ACCU4
ACCU3
ACCU2
ACCU1

V3
V2
V2
V1

V4
V3
V2
V1
antes

depois

LEAVE:
ACCU4
ACCU3
ACCU2
ACCU1

V4
V4
V3
V1

V4
V3
V2
V1
antes

SIMATIC S7
Siemens AG 1998. All rights reserved.

depois

Date:
File:

09/03/14
PRO2_02P.5

Conhecimento em Automação
Training Center
Instruções Aritméticas
S7-300:
ACCU2
ACCU1

V2
V2 op V1

V2
V1
op: +., -., *., /.

antes

depois

S7-400:
ACCU4
ACCU3
ACCU2
ACCU1

V4
V4
V3
V2 op V1

V4
V3
V2
V1
antes

SIMATIC S7
Siemens AG 1998. All rights reserved.

op: +., -., *., /.

Date:
File:

09/03/14
PRO2_02P.6

depois

Conhecimento em Automação
Training Center
Instruções Lógicas de Palavras
S7-300:
ACCU2
ACCU1

V2
V2 op V1

V2
V1
antes

op: A.., O.., X..,

depois

S7-400:
ACCU4
ACCU3
ACCU2
ACCU1

antes

SIMATIC S7
Siemens AG 1998. All rights reserved.

V4
V3
V2
V2 op V1

V4
V3
V2
V1
op: A.., O.., X..,

Date:
File:

09/03/14
PRO2_02P.7

depois

Conhecimento em Automação
Training Center
Instruções de Troca no ACCU1
CAW:

ACCU1-HH

ACCU1-HL

ACCU1-LH

V4

V3

V2

V1

V4

V3

V1

V2

V4

V3

V2

V1

V1

V2

V3

V4

ACCU1-LL

CAD:

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date:
File:

09/03/14
PRO2_02P.8

Conhecimento em Automação
Training Center
Instruções Incrementais no ACCU1
INC <const>:

ACCU1-HH
V4

ACCU1-HL
V3

ACCU1-LH
V2

ACCU1-LL
V1
+ <const>

V4

V3

V2

V1+<const>

V4

V3

V2

V1

DEC <const>:

- <const>

V4

SIMATIC S7
Siemens AG 1998. All rights reserved.

V3

Date:
File:

V2

09/03/14
PRO2_02P.9

V1-<const>

Conhecimento em Automação
Training Center
Formando o Complemento de Um
INVI (Complemento de um do ACCU1-L):
31

ACCU1-H

15

ACCU1-L

0

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
15

31

0

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

INVD (Complemento de um do ACCU1):
31

ACCU1-H

15

ACCU1-L

0

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
15

31

0

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

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date:
File:

09/03/14
PRO2_02P.10

Conhecimento em Automação
Training Center
Negação de Números (Complemento de Dois)
NEGI (Negação de números INT)
NEGD (Negação de números DINT):
= 1 112 116 295

31

0

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
Complemento de um

31

0

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
Adição de + 1

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 1

NEGR (Negação de número REAL):
S

Expoente = 8 Bit

Mantissa (23 Bits)

23 22

= 1.3125

0

0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

SIMATIC S7
Siemens AG 1998. All rights reserved.

OUT

Date:
File:

09/03/14
PRO2_02P.11

Conhecimento em Automação
Training Center
Instruções de Rotação em 32 Bits via Bit CC1

RLDA (Rotação esquerda via status bit CC1):
31

0

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
ACCU1
Bit CC1

RRDA (Rotação direita via status bit CC1):
31

0

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
ACCU1
Bit CC1

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date:
File:

09/03/14
PRO2_02P.12

Conhecimento em Automação
Training Center
Exercício 2.1: Cálculo com Expoentes
Exemplo : Formação da 6ª potência de um número inteiro através de sucessivas
instruções PUSH e *I

Chave Rotativa
x
converte
para INT

y

0

0

BTI

ACCU1
multiplicar
com *D

Cópia com
PUSH

ACCU1

ACCU2

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date:
File:

09/03/14
PRO2_02P.13

Conhecimento em Automação
Training Center
Exercício 2.2 : Troca de Dados no ACCU1

0

1

2

3

ACCU1 - L (antes)

CAW

2

SIMATIC S7
Siemens AG 1998. All rights reserved.

3

0

Date:
File:

1

09/03/14
PRO2_02P.14

ACCU1 - L (depois)

Conhecimento em Automação
Training Center
Exercício 2.3 : Formando Complementos
ACCU1-L (antes)

Bit 15
1

.

.

.

.

.

.

.

.

Bit 0
.

.

.

.

1

0

1

Formando o “Complemento de Um”: INVI

ACCU1-L (depois)

Bit 15
0

.

SIMATIC S7
Siemens AG 1998. All rights reserved.

.

.

.

.

.

.

.

Date:
File:

09/03/14
PRO2_02P.15

.

Bit 0
.

.

.

0

1

0

Conhecimento em Automação
Training Center

Pro2 02p

  • 1.
    Funções com Acumuladores SIMATICS7 Siemens AG 1998. All rights reserved. Date: File: 09/03/14 PRO2_02P.1 Conhecimento em Automação Training Center
  • 2.
    Visão Geral dasFunções com Acumuladores  Instruções que modificam vários Acumuladores  TAK: Troca de conteúdo entre ACCU1 e ACCU2  PUSH: Deslocando o conteúdo dos ACCU’s para cima  POP: Deslocando o conteúdo dos ACCU’s para baixo  ENT: Deslocando o conteúdo dos ACCU’s para cima, sem ACCU1  LEAVE: Deslocando o conteúdo dos ACCU’s para baixo, sem ACCU2  Instruções aritméticas e instruções lógicas com palavras  Instruções que modificam somente o ACCU1  INC: Incrementa o conteúdo do ACCU 1-L-L  DEC: Decrementa o conteúdo 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 (Negação)  RLDA, RRDA: Rotacionando o conteúdo do ACCU1 para direita ou esquerda via código de condição CC1 SIMATIC S7 Siemens AG 1998. All rights reserved. Date: File: 09/03/14 PRO2_02P.2 Conhecimento em Automação Training Center
  • 3.
    A Instrução TAK(Troca ACCU1 com ACCU2) S7-300: ACCU2 ACCU1 V1 V2 V2 V1 antes depois TAK S7-400: ACCU4 ACCU3 ACCU2 ACCU1 antes SIMATIC S7 Siemens AG 1998. All rights reserved. V4 V3 V1 V2 V4 V3 V2 V1 TAK Date: File: 09/03/14 PRO2_02P.3 depois Conhecimento em Automação Training Center
  • 4.
    As Instruções PUSHe POP S7-300: ACCU2 ACCU1 V1 V1 V2 V1 antes PUSH V2 V2 V2 V1 depois antes POP depois S7-400: ACCU4 ACCU3 ACCU2 ACCU1 antes SIMATIC S7 Siemens AG 1998. All rights reserved. PUSH antes depois Date: File: V4 V4 V3 V2 V4 V3 V2 V1 V3 V2 V1 V1 V4 V3 V2 V1 09/03/14 PRO2_02P.4 POP depois Conhecimento em Automação Training Center
  • 5.
    As Instruções ENTe LEAVE (só S7-400) ENT: ACCU4 ACCU3 ACCU2 ACCU1 V3 V2 V2 V1 V4 V3 V2 V1 antes depois LEAVE: ACCU4 ACCU3 ACCU2 ACCU1 V4 V4 V3 V1 V4 V3 V2 V1 antes SIMATIC S7 Siemens AG 1998. All rights reserved. depois Date: File: 09/03/14 PRO2_02P.5 Conhecimento em Automação Training Center
  • 6.
    Instruções Aritméticas S7-300: ACCU2 ACCU1 V2 V2 opV1 V2 V1 op: +., -., *., /. antes depois S7-400: ACCU4 ACCU3 ACCU2 ACCU1 V4 V4 V3 V2 op V1 V4 V3 V2 V1 antes SIMATIC S7 Siemens AG 1998. All rights reserved. op: +., -., *., /. Date: File: 09/03/14 PRO2_02P.6 depois Conhecimento em Automação Training Center
  • 7.
    Instruções Lógicas dePalavras S7-300: ACCU2 ACCU1 V2 V2 op V1 V2 V1 antes op: A.., O.., X.., depois S7-400: ACCU4 ACCU3 ACCU2 ACCU1 antes SIMATIC S7 Siemens AG 1998. All rights reserved. V4 V3 V2 V2 op V1 V4 V3 V2 V1 op: A.., O.., X.., Date: File: 09/03/14 PRO2_02P.7 depois Conhecimento em Automação Training Center
  • 8.
    Instruções de Trocano ACCU1 CAW: ACCU1-HH ACCU1-HL ACCU1-LH V4 V3 V2 V1 V4 V3 V1 V2 V4 V3 V2 V1 V1 V2 V3 V4 ACCU1-LL CAD: SIMATIC S7 Siemens AG 1998. All rights reserved. Date: File: 09/03/14 PRO2_02P.8 Conhecimento em Automação Training Center
  • 9.
    Instruções Incrementais noACCU1 INC <const>: ACCU1-HH V4 ACCU1-HL V3 ACCU1-LH V2 ACCU1-LL V1 + <const> V4 V3 V2 V1+<const> V4 V3 V2 V1 DEC <const>: - <const> V4 SIMATIC S7 Siemens AG 1998. All rights reserved. V3 Date: File: V2 09/03/14 PRO2_02P.9 V1-<const> Conhecimento em Automação Training Center
  • 10.
    Formando o Complementode Um INVI (Complemento de um do ACCU1-L): 31 ACCU1-H 15 ACCU1-L 0 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 15 31 0 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 INVD (Complemento de um do ACCU1): 31 ACCU1-H 15 ACCU1-L 0 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 15 31 0 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 SIMATIC S7 Siemens AG 1998. All rights reserved. Date: File: 09/03/14 PRO2_02P.10 Conhecimento em Automação Training Center
  • 11.
    Negação de Números(Complemento de Dois) NEGI (Negação de números INT) NEGD (Negação de números DINT): = 1 112 116 295 31 0 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 Complemento de um 31 0 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 Adição de + 1 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 1 NEGR (Negação de número REAL): S Expoente = 8 Bit Mantissa (23 Bits) 23 22 = 1.3125 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SIMATIC S7 Siemens AG 1998. All rights reserved. OUT Date: File: 09/03/14 PRO2_02P.11 Conhecimento em Automação Training Center
  • 12.
    Instruções de Rotaçãoem 32 Bits via Bit CC1 RLDA (Rotação esquerda via status bit CC1): 31 0 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 ACCU1 Bit CC1 RRDA (Rotação direita via status bit CC1): 31 0 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 ACCU1 Bit CC1 SIMATIC S7 Siemens AG 1998. All rights reserved. Date: File: 09/03/14 PRO2_02P.12 Conhecimento em Automação Training Center
  • 13.
    Exercício 2.1: Cálculocom Expoentes Exemplo : Formação da 6ª potência de um número inteiro através de sucessivas instruções PUSH e *I Chave Rotativa x converte para INT y 0 0 BTI ACCU1 multiplicar com *D Cópia com PUSH ACCU1 ACCU2 SIMATIC S7 Siemens AG 1998. All rights reserved. Date: File: 09/03/14 PRO2_02P.13 Conhecimento em Automação Training Center
  • 14.
    Exercício 2.2 :Troca de Dados no ACCU1 0 1 2 3 ACCU1 - L (antes) CAW 2 SIMATIC S7 Siemens AG 1998. All rights reserved. 3 0 Date: File: 1 09/03/14 PRO2_02P.14 ACCU1 - L (depois) Conhecimento em Automação Training Center
  • 15.
    Exercício 2.3 :Formando Complementos ACCU1-L (antes) Bit 15 1 . . . . . . . . Bit 0 . . . . 1 0 1 Formando o “Complemento de Um”: INVI ACCU1-L (depois) Bit 15 0 . SIMATIC S7 Siemens AG 1998. All rights reserved. . . . . . . . Date: File: 09/03/14 PRO2_02P.15 . Bit 0 . . . 0 1 0 Conhecimento em Automação Training Center

Notas do Editor

  • #2 ConteúdoPág. Visão geral das funções com acumuladores ....................................................................................2 A instrução TAK (Troca ACCU1 com ACCU2) ...............................................................................3 As instruções PUSH e POP ..............................................................................................................4 As instruções ENT e LEAVE (só S7-400) .........................................................................................5 Instruções aritméticas..................................................................................................................... 6 Instruções lógicas com palavras .....................................................................................................7 Instruções de troca para ACCU1.................................................................................................8 Instruções incrementais para ACCU1..............................................................................................9 Formando complemento de um ........................................................................................................10 Negando números (Complemento de dois)...................................................................................11 Instrução de rotação 32 Bits via Bit CC1 .........................................................................................12 Exercício 2.1: Cálculo de potenciação............................................................................................13 Exercício 2.2: Troca de dados no ACCU1......................................................................................14 Exercício 2.3: Formando complementos..........................................................................................15
  • #3 Visão GeralAs funções de acumulador transmitem valores entre os acumuladores ou troca de bytes no acumulador 1. A execução de funções puras de acumulador é independente do resultado lógico da operação ou dos bits de status. Igualmente, nem o resultado de operação de lógica nem os bits de status são afetados pela execução. As funções de acumulador permitem otimizar o tempo de execução de programas de automação.
  • #4 TAKTAK (troca ACCU1 com ACCU2) troca o conteúdo do ACCU1 com o conteúdo do ACCU2. A instrução é executada sem levar em conta, e sem afetar, os bits de status. O conteúdo de ACCU3 e ACCU4 permanecem inalterados para CPUs com quatro acumuladores (para S7-400). ExemploSubtrair o valor menor do valor maior: LMW10// Carrega o conteúdo do MW10 no ACCU1-L. LMW12// Carrega o conteúdo do ACCU1-L no ACCU2-L. // Carrega o conteúdo do MW12 no ACCU1-L. &amp;gt;I// Cheque se ACCU2-L (MW10) é maior que ACCU1-L // (MW12). JCNEXT // Salta para o rótulo NEXT se ACCU2 (MW10) for// maior que ACCU1 (MW12). TAK// Troca o conteúdo do ACCU1 com ACCU2. NEXT:-I// Subtrai o conteúdo do ACCU1-L do conteúdo // do ACCU2-L. T MW14// Transfira o resultado (= valor maior menos// valor menor) para MW14
  • #5 PUSHA instrução o PUSH troca os conteúdos dos acumuladores, em cada caso, no próximo acumulador mais alto. PUSH normalmente é usado para duplicar o valor de ACCU1, sem perder os conteúdos originais de ACCU2 ou ACCU3 (só para S7-400). • PUSH (S7-300): A instrução PUSH copia o conteúdo inteiro de ACCU1 para ACCU2. ACCU1 permanece inalterado. • PUSH (S7-400): A instrução PUSH copia o conteúdo de ACCU3 para ACCU4, o conteúdo de ACCU2 para ACCU3 e o conteúdo de ACCU1 para ACCU2. ACCU1 permanece inalterado. POPA instrução o POP traz os valores encontrados nos acumuladores 2 a 4 para os acumuladores subjacentes. Esta instrução normalmente é executada depois de instruções de transferência, quando o conteúdo do ACCU1 já não será mais necessário e o processamento continuará com os valores salvos nos acumuladores superiores. • POP (S7-300): A instrução POP copia o conteúdo inteiro de ACCU2 para ACCU1. ACCU2 permanece inalterado. • POP (S7-400): A instrução POP copia o conteúdo de ACCU2 para ACCU1, o conteúdo de ACCU3 para ACCU2 e o conteúdo de ACCU4 para ACCU3. ACCU4 permanece inalterado.
  • #6 ENTA instrução ENT (ENTER ACCU Stack) desloca os conteúdos dos acumuladores 2 e 3 respectivamente para os acumuladores 3 e 4. Os conteúdos de acumuladores 1 e 2 permanecem inalterados. ENT junto com uma função LOAD imediatamente seguinte: •ENTL ... Tem como resultado, que durante o carregamento os conteúdos dos acumuladores 1 a 3 serão deslocados para cima (semelhante a PUSH) e o valor do ACCU1 permanece inalterado . A instrução ENT é executada sem levar em conta e sem afetar os bits de status. LEAVEA instrução LEAVE desloca os conteúdos dos acumuladores 4 e 3 respectivamente para os acumuladores 3 e 2. Os conteúdos de acumuladores 4 e 1 permanecem inalterados. As funções aritméticas utilizam do recurso LEAVE. Com LEAVE você pode também emular a mesma funcionalidade em outras operações de lógica digitais (por exemplo uma instrução de lógica de palavra). LEAVE programada depois de uma operação de lógica digital, vai transferir os conteúdos de acumuladores 3 e 4 para os acumuladores 2 e 3. O resultado da operação de lógica digital se mantém inalterado no acumulador 1.
  • #7 Instruções As instruções aritméticas combinam dois valores digitais encontrados nos Aritméticas acumuladores 1 e 2, conforme os fundamentos das operações aritméticas. O resultado do cálculo fica no acumulador 1. Os bits de status CC0, CC1, OV e OS fornecem informações sobre o resultado final ou intermediário do cálculo. S7-300Nas CPUs do S7-300, o conteúdo do ACCU2 permanece inalterado com a execução de uma função aritmética. S7-400Com a CPUs S7-400, o conteúdo de ACCU2 é sobrescrito pelo conteúdo do ACCU3. O conteúdo 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 : L0// carrega o inteiro 0 no ACCU1L5// carrega o inteiro 5 no ACCU1, 0 no ACCU2PUSH// desloca 5 (ACCU1) para ACCU2;(S7-400: ACCU2-&amp;gt;ACCU3)*I// multiplica ACCU1 por ACCU2; (S7-400: ACCU3-&amp;gt;ACCU2) *I// multiplica ACCU1 por ACCU2; (S7-400: ACCU3-&amp;gt;ACCU2) Resultado: S7-300: ACCU1 = 125S7-400:ACCU1 = 0
  • #8 Instruções Lógicas As instruções lógicas de palavras combinam bit a bit os valores do ACCU1 de Palavras com uma constante ou com o conteúdo do ACCU2 e guarda o resultado no ACCU1. O conteúdo dos acumuladores restantes (ACCU2 para S7-300, ou ACCU2, ACCU3 e ACCU4 para S7-400) permanecem inalterados. As operações lógicas podem ser executadas para formatos de palavras (Word) ou palavras duplas (Double Word). As instruções AND, OR ou Exclusive OR são disponíveis como instruções lógicas de palavras.
  • #9 CAWCom a instrução CAW, os bytes na palavra de dados direita do ACCU1 são trocados entre si, ou seja, o conteúdo do ACCU1-LH é transferido para o ACCU1-LL e vice versa. Com esta instrução é possível converter um número de 16-bit (INT ou WORD) em representação SIMATIC para o formato de representação numérica INTEL (transferência de dados para PCs). CADCom a instrução CAD, os bytes no ACCU1 são trocados entre si, ou seja, o conteúdo do ACCU1-HH é transferido para ACCU1-LL e vice versa e o conteúdo do ACCU1-HL para ACCU1-LH e vice versa. Com esta instrução é possível converter um número de formato 32-bit (DINT, DWORD ou DINT) em representação SIMATIC para o formato de representação numérica INTEL (transferência de dados para PCs).
  • #10 INC A instrução INC &amp;lt;inteiro de 8 bits&amp;gt; adiciona um inteiro de 8 bits ao conteúdo do ACCU1-LL e salva o resultado no ACCU1-LL. ACCU1-LH, ACCU1-H e ACCU2, ou ACCU3 e ACCU4 permanecem inalterados. DECA instrução DEC &amp;lt;inteiro de 8 bits&amp;gt; subtrai um inteiro de 8 bits do conteúdo do ACCU1-LL e salva o resultado no ACCU1-LL. ACCU1-LH, ACCU1-H e ACCU2, ou ACCU3 e ACCU4 permanecem inalterados. NotasAs instruções INC e DEC são também conhecidas como “Instruções de Baixo Nível&amp;quot;, isto é, no caso de um estouro (overflow), o processador não gera qualquer bit de estouro na palavra de status. Em vez da instrução INC, você pode também, por exemplo, usar as seguintes instruções para soma de INT- ou DINT-: +&amp;lt;const&amp;gt;(soma uma &amp;lt;const&amp;gt; 16-bit ao ACCU1) +L#&amp;lt;const&amp;gt;(soma uma &amp;lt;const&amp;gt; 32-bit ao ACCU1) Em vez da instrução INC, você pode também, por exemplo, usar as seguintes instruções para subtração de INT- ou DINT-: +- &amp;lt;const&amp;gt;(subtrai uma &amp;lt;const&amp;gt; 16-bit do conteúdo do ACCU1) +L# - &amp;lt;const&amp;gt;(subtrai uma &amp;lt;const&amp;gt; 32-bit do conteúdo do ACCU1)
  • #11 INVIA instrução INVI nega bit a bit o conteúdo (bits 0 a 15) da palavra direita do acumulador 1. Ela troca zero’s por um’s e um’s por zero’s. O conteúdo da palavra esquerda (bits 16 to 31) permanece inalterado. A instrução INVI não modifica qualquer bit de status. INVDA instrução INVD nega bit a bit o conteúdo (bits 0 to 31) do acumulador 1. Ela troca zero’s por um’s e um’s por zero’s. A instrução INVD não modifica qualquer bit de status.
  • #12 NEGIA instrução NEGI interpreta o valor (bits 0 a 15) encontrado na palavra direita do ACCU1 como um número INTEIRO e através da formação do complemento de dois reverte o sinal. Esta instrução equivale a multiplicação por “-1”. A palavra esquerda do ACCU1 (bits 16 to 31) permanece inalterada. Os bits de status CC1, CC0, OS e OV são setados como uma função do resultado da operação. NEGDA instrução NEGD interpreta o valor encontrado no ACCU1 como um número duplo inteiro e o multiplica por “-1”. A formação do complemento de dois também pode ser feita através do “complemento de um” somado de “+1”. Os bits de status CC1, CC0, OS e OV são setados como uma função do resultado da operação. NEGRA instrução NEGR interpreta o valor encontrado no ACCU1 como um número REAL (32 bit, IEEE-FP) e multiplica este número por ‘-1’. A instrução inverte o estado do bit 31 no ACCU1 (sinal da mantissa). A instrução NEGR não modifica os bits de status.
  • #13 RLDAA função RLDA desloca o conteúdo do ACCU1 em 1 casa para esquerda. A posição do bit 0 será preenchida com o valor do status bit CC1. O status bit CC1 ficará com o conteúdo do bit 31. Os bits de status CC0 e OV são zerados (&amp;quot;0”). •Exemplo: ACCU1:Y100 0100 1100 0100CC1:X RLDA ACCU1:1000 1001 1000 100XCC1:Y RRDAA função RRDA desloca o conteúdo do ACCU1 em 1 casa para direita. A posição do bit 31 será preenchida com o valor do status bit CC1. O bit de status CC1 ficará com o conteúdo do bit 0. Os bits de status CC0 e OV são zerados (&amp;quot;0”). •Exemplo: ACCU1:0100 0100 1100 010YCC1:X RRDA ACCU1:X010 0010 0110 0010CC1:Y
  • #14 Objetivo Familiarizar-se com instruções de troca de acumuladores através do cálculo de potenciação de números inteiros. EnunciadoGerar 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ª potência do valor lido. Procedimento1.Copiar o conteúdo do ACCU1 no ACCU2 com a ajuda do comando PUSH. 2.Multiplicar o ACCU1 por ACCU2 (cálculo do quadrado). 3.Copiar o conteúdo 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 faça o download do programa para a CPU. 7.Teste o programa. NotaPara que o valor lido não seja muito grande, somente a década da direita deve ser lida.
  • #15 ObjetivoFamiliarizar-se com troca de bytes no ACCU1. Aplicação: Converter um número em representação SIMATIC para uma representação de PC usando INTEL-CPU (80486, Pentium,...). Esta conversão é 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 auxílio do comando CAW. •Apresente o conteúdo do ACCU1 no display. Procedimento1.Gerar a FC22. 2.Chamar a FC22 no OB1. 3.Fazer o download do programa para a CPU S7. 4.Testar o programa.
  • #16 ObjetivoFamiliarizar-se com a instrução de formação de complemento no SIMATIC S7. Aplicação: Converter um &amp;quot;negativo&amp;quot; em um &amp;quot;positivo &amp;quot; Tais conversões são sempre empregadas quando se lê sinais ativos em “0”, porém o programa de usuário trabalha com lógica positiva ou quando sinais invertidos (0-ativo) são 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 LED’s do simulador. Procedimento1.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 variáveis de status e opções de preset binário.