Você está na página 1de 20

Instruções de Salto e de Acumuladores

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Objetivos

Ao final deste capítulo você irá ...

… estar familiarizado à estrutura da status word

... conhecer as instruções de salto

… conhecer as instruções para acumuladores e sua


aplicação

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Estrutura da Palavra de Status

Significado dos bits na palavra de status


Bit Tarefa Valor Significado

0 /FC 20 Bit de First Check

1 RLO 21 RLO

2 STA 22 Status

3 OR 23 Or (ou)

4 OS 24 Stored overflow

5 OV 25 Overflow

6 CC0 26 Condition code

7 CC1 27 Condition code

8 BR 28 Binary result

9 to 15 Sem Função 29 to 210

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Verificação dos Status Bits
Verificação em STL
 A OV Verifica o estouro de capacidade
 A OS Verifica o estouro de capacidade memorizado
 A BR Verifica o bit de memória BR

Verificação do Condition Code (CC0, CC1)


 A == 0 Resultado igual a 0
 A > 0 Resultado maior que 0
 A <> 0 Resultado diferente de 0
 A =< 0 Resultado menor ou igual a 0
etc.
 A UO Resultado inválido (por ex. divisão por zero)

Verificação em LAD

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Significado de EN, ENO e Bit BR

Chamada de
Bloco

Operação Aritmética

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Funções de salto (Jump) dependentes dos Bits de Status

• JU Label1) Salto Incondicional

• JC Label1) salta se o bit "RLO" =1

• JCN Label1) salto se o bit "RLO" = 0

• JCB Label1) salto se o bit "RLO" = 1 e salva RLO

• JNB Label1) salto se o bit "RLO" = 0 e salva RLO

• JBI Label1) salto se o bit "BR" = 1

• JBNI Label1) salto se o bit "BR" = 0

• JO Label1) salto se o bit "OV" na palavra de status =1

• JOS Label1) salto se o bit "OS" na palavra de status =1


1) Rótulo (Label) pode ser constituído de até 4 dígitos
alfanuméricos

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Funções de Salto dependentes dos Códigos de Condição

• JZ Label1) Salta se na palavra de status o bit "CC1"=0 e "CC0"=0


(Resultado = 0)

• JN Label1) Salta se na palavra de status o bit "CC1" não for igual a "CC0"
(Resultado <> 0)

• JP Label1) Salta se na palavra de status o bit "CC1"=1 e "CC0"=0


(Resultado > 0)

• JM Label1) Salta se na palavra de status o bit "CC1"=0 e "CC0"=1


(Resultado < 0)

• JPZ Label1) Combina os saltos JZ e JP


(Resultado >= 0)

• JMZ Label1) Combina os saltos JM e JZ


(Resultado <= 0)

• JUO Label1) Salta se: número real inválido “desordenado” ou divisão por zero

1) Rótulo (Label) pode ser constituído de até 4 dígitos


alfanuméricos

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Programação do Distribuidor de Saltos

Alternativa
#Recipe_Number

=0 =1 =2 outros
L …Bay[1] L …Bay[2] L …Bay[3] L W#16#EEEE

T "QW_DigDisp"

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Programação de Instruções de Loop (voltas)

Modo de Operação Exemplo: Instruções de Loop (voltas)


com 4 varreduras
Inicializa o
contador de voltas L +4 // Carrega o contador de voltas

Transfere para o
NEXT: contador de voltas
NEXT: T MW10 // Início do loop

Sessão de códigos
a serem executados . // Código
diversas vezes
. // Código
Carrega o contador de
voltas no ACCU1. . // Código

L MW10 // Carrega o contador de voltas


LOOP NEXT
Sim
(Decrementa ACCU1
// novamente
ACCU1<>0?)

Não LOOP NEXT // Contador de voltas -1 e


// salta para o rótulo NEXT
Continuar
// se Accu 1> 0

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
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: Forma o complemento de um
● NEGI, NEGD, NEGR: Forma o complemento de dois (Negação)
● SLW, SLD, SRW, SRD: Desloca o conteúdo do ACCU1 para direita ou esquerda
● RLD, RRD: Rotaciona o conteúdo do ACCU1 para direita ou esquerda
● RLDA, RRDA: Rotaciona o conteúdo do ACCU1 para direita ou esquerda via
código de condição CC1

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instruções de Troca para o ACCU1

CAW:
ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL

V4 V3 V2 V1

V4 V3 V1 V2

CAD:

V4 V3 V2 V1

V1 V2 V3 V4

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instruções de Deslocamento / Shift (ACCU 1)

SLW 2 (Deslocar palavra para a esquerda – “Shift Left Word” – em 2 posições):

0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0

(ACCU 1 – H, inalterado) A1 0 (ACCU 1 – L)

0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0

SLD 2 (Deslocar palavra dupla para a esquerda – “Shift Left Doubleword” – em 2 posições):

0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0

A1 0 (ACCU 1 – H) (ACCU 1 – L)

1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instrução TAK (Inverter ACCU1 e ACCU2)

S7-300:

ACCU2 V2 V1
ACCU1 V1 V2
antes TAK depois

S7-400:
ACCU4 V4 V4
ACCU3 V3 V3
ACCU2 V2 V1
ACCU1 V1 V2
antes TAK depois

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instruções PUSH e POP

S7-300:

ACCU2 V2 V1 V2 V2
ACCU1 V1 V1 V1 V2
antes PUSH depois antes POP depois

S7-400:

ACCU4 V4 V3 V4 V4
ACCU3 V3 V2 V3 V4
ACCU2 V2 V1 V2 V3
ACCU1 V1 V1 V1 V2
antes PUSH depois antes POP depois

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instruções ENT e LEAVE (somente S7 - 400)

ENT:
ACCU4 V4 V3
ACCU3 V3 V2
ACCU2 V2 V2
ACCU1 V1 V1
antes depois

LEAVE:

ACCU4 V4 V4
ACCU3 V3 V4
ACCU2 V2 V3
ACCU1 V1 V1
antes depois

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instruções Aritméticas

S7- 300:

ACCU2 V2 V2
ACCU1 V1 V2 op V1
antes op: +., -., *., /. depois

S7- 400:
ACCU4 V4 V4
ACCU3 V3 V4
ACCU2 V2 V3
ACCU1 V1 V2 op V1
antes op: +., -., *., /. depois

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Instruções Lógicas com Palavras

S7- 300:

ACCU2 V2 V2
ACCU1 V1 V2 op V1
antes op: A.., O.., X.., depois

S7- 400:
ACCU4 V4 V4
ACCU3 V3 V3
ACCU2 V2 V2
ACCU1 V1 V2 op V1
antes op: A.., O.., X.., depois

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Exercício: Exibindo Valores Estatísticos (FC 28)

Pré-seleção Valores Estatísticos / Peso

0 0 0 5 0 0 3 3

"IW_Thumbw" (IW 2) "QW_DigDisp" (QW 6)

0001 até 0003 Quantidades Baia 1 até 3

0004 Quantidade Total

0005 até 0007 Utilização Baia 1 até 3

0008 Peso Atual

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Exercício: Running Light após Warm Restart (FB11)

(IN_OUT)

OnOff = 0 ?
sim não
OnOff 0->1 ?
ou
Running light =0 ?
QB 8
sim não

Pulso 0 -> 1 ?
sim não
Running light Set Set Shift running light
após warm running running
light light em 1 posição /
restart =0 =1 para a esquerda

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.
Exercício 3.1: Calculando Distância

Exemplo: Calculando a distância D entre dois pontos em


um sistema de coordenadas retangulares
Y

Y2 P2

Y1 P1

X
X1 X2

Função: FC 31 com D = (X2 - X1)2 + (Y2 - Y1)2

SIMATIC S7 SITRAIN Training for


Automation and Industrial Solutions
Siemens Ltda.

Você também pode gostar