Upload
internet
View
108
Download
5
Embed Size (px)
Citation preview
Instruções Dependentes do Estado Lógico Binário
Registradores e Áreas de Memória em uma CPU S7
Acumuladores
ACCU1
ACCU4
ACCU3
ACCU2
SomenteS7-400
AR2
AR1
Registradores de Endereços
DB aberto
Registrador de Bloco de Dados
DI aberto
Status Bits
Palavra de Status
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
16 Bit16 Bit
16 Bit
Memória de Carga- Blocos Lógicos- Blocos de Dados
Memória de Trabalho- Blocos Lógicos- Blocos de Dados
Área de I/O
Memória de Sistema- Imagem de processo de entrada- Imagem de processo de saída- Bit de memória- Temporizadores- Contadores
- Pilha de Dados Locais- Pilha de Interrupção- Pilha de Blocos
Registradores na CPU S7 Áreas de Memórias na CPU S7
T, S, =,...
L, A, O,...
Tamanho DB
Tamanho DI
Estrutura da Palavra de Status
Bit Tarefa Grandeza Significado
0 /FC 20 Primeiro Cheque
1 RLO 21 Resultado Lógico da Operação
2 STA 22 Status
3 OR 23 Or (ou)
4 OS 24 Estouro Armazenado
5 OV 25 Estouro
6 CC0 26 Bit de Resultado
7 CC1 27 Bit de Resultado
8 BR 28 Resultado Binário
9...15 sem 29 ..210
função
Significado dos bits na palavra de status
Checando os Bits de Status
OVS>0
M 4.0M 4.0 S
Cheque 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
Cheque do Resultado Binário (CC0, CC1)
A ==0 Resultado igual a 0
A > 0 Resultado maior que 0
A <>0 Resultado não igual a 0
A =<0 Resultado menor que ou igual a 0
etc.
A UO Operação não permitida
Cheque em LAD e em FBD
Instruções com Bits de Status
Instrução Significado Exemplo
SET Fixa o RLO em "1" SET //RLO-1-bit de memória = M 0.1
CLR Fixa RLO em "0" CLR //RLO-0-bit de memória
NOT Inverte o RLO O Manual O Automático NOT; = modo de operação = M0.0
SAVE Salva o RLO no resultado binário
A BR Verifica o resultado binário
I 1.0 I 1.1 I 1.2
BR Q 4.2 Q 5.0
SAVE
Bit BR e ENO em uma Chamada de Bloco ou Função Complexa
LAD STL
Network 1: Programa Cíclico
FC23I0.0EN
MW12Step_bit _memory
Step_display
ENO ( )M10.0
QW12
Network 2: ???
ADD_I
EN
345 IN1 OUT
ENO ( )M10.1
MW100
987 IN2
Network 1: Programa Cíclico
A I 0.0JNB _001CALL FC 23
Step_bit_memory :=MW12 Step_display :=QW12
_001:A BR= M 10.0
Network 2: ???
L 345L 987+IT MW 100AN OVSAVECLRA BR= M 10.1
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
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
Programação do Distribuidor de Saltos
Carrega o número do salto
JL Over
...
Instruções paraACCU1 > n
Exemplo: Distribuidor de saltos com 3 entradas
L Recipe no // Carrega o número da receita
JL OVER // Distribuidor de saltos com 3 entradas
JU Rec0 // Salta para receita No. 0 (ACCU1 = 0)
JU Rec1 // Salta para receita No. 1 (ACCU1 = 1)
JU Rec2 // Salta para receita No. 2 (ACCU1 = 2)
OVER:JU ERROR // Salta se ACCU1 > 2
...
Rec0: L DBW4
...
Rec1: L DBW6
...
Rec2: L DBW8
...
ERROR: CLR
...
Modo de Operação
Label_n:
JU Label_1
JU Label_n
Instruções para ACCU1 = 0
...
Instruções para ACCU1 = n
Over:
Label_1:
Programação de Instruções de Loop (voltas)
Inicializa ocontador de voltas
LOOP NEXT(Decrementa ACCU1
ACCU1<>0?)
Sim
NãoContinuar
NEXT:
Sessão de códigos a serem executados
diversas vezes
Carrega o contador devoltas no ACCU1.
Exemplo: Instruções de Loop (voltas) com 4 varreduras
L +4 // Carrega o contador de voltas
NEXT: T MW10 // Início do loop
. // Código
. // Código
. // Código
L MW10 // Carrega o contador de voltas
// novamente
LOOP NEXT // Contador de voltas -1 e // salta para o rótulo NEXT// se Accu 1> 0
Modo de Operação
Transfere para ocontador de voltas
BE Fim de Bloco
BEU Fim de Bloco Incondicional (dentro de um bloco)
BEC Fim de Bloco Condicional (dependente do RLO)
(RET) mostrado em LAD
mostrado em FBD
Instruções de Fim de Bloco
RET
Exercício 1.1: Salto após uma Subtração
Chave rotativa
1 2 3 4
- D
Resultado positivo (>=0)
Escreve o valor de IW 4no display
Deleta o display
Resultado negativo
[JM Label]
converte p/DINT
converte p/DINT
BTD BTD
Chave rotativa: IW4 (IW2, mod. 32 bit)Chaves de teste: IW0 (IW0, mod. 32 bit)Display: QW12 (QW6, mod. 32 bit)
20215 27
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Exercício 1.2: Salto após uma Multiplicação
*I
Sem estouro
Escreve o resultadono display
Apaga o display
Estouro
[JO Label]
DTB Converte o resultadopara BCD
Chave rotativa: IW4 (IW2, mod. 32 bit)Chaves de teste: IW0 (IW0, mod. 32 bit)Display: QW12 (QW6, mod. 32 bit)
Chave rotativa
1 2 3 4
converte p/DINT
converte p/DINT
BTD BTD20215 27
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Exercício 1.3: Programando um Distribuidor de Saltos
Chave rotativa
1
1
2
3
4
5
Motor_girar para direita
Motor_girar para esquerda
Desligar motor
Ligar buzina
Desligar buzina
Saltar via salto para lista
Função:
[JL Label]
Label:
Endereços: S7-300 (16-Bit) S7-300 (32-Bit)
I0.0 I0.0 Q8.0 Q4.0
Motor_direita: Q20.5 Q8.5Motor_esquerda: Q20.6 Q8.6Buzina: Q20.7 Q8.7
www.apostilastecnicas.com