O documento discute funções e blocos de funções no SIMATIC S7. Ele explica os tipos de variáveis que podem ser usadas em blocos de programação como OBs, FCs e FBs, e descreve como as variáveis temporárias são armazenadas no L-stack. Também apresenta exemplos de como declarar e usar parâmetros em blocos parametrizáveis como FCs e instanciar blocos de função como FBs com dados em blocos de dados.
1. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.1
Funções e Blocos de Funções
2. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.2
Introdução
Variáveis Temporárias
• são apagadas após o bloco
ter sido executado
• armazenamento temporário no
L-stack
• utilizadas em OBs / FCs / FBs
Variáveis Estáticas
• são retidas mesmo após
o bloco ter sido executado
• armazenamento nos DBs
• podem apenas ser
utilizadas nos FBs
Dados / Variáveis Locais
(válidos apenas em um bloco)
Variáveis / Dados Globais
(válidos em todo o programa)
• PII / PIQ
• I/ O
• M / T / C
• Áreas de DB
simbólicoabsoluto
Accesso
3. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.3
Variáveis Temporárias
4. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.4
256Bytes
Evento
Ocupação
no L-stack
1
OB1
OB 1
1
Sistema
operacional
Ocupação Total no L-Stack
FC 2
Variáveis
Temp
OB1
FC2
FC1
3
3
OB1
FC1
4
4
OB1
FC1
6
6
FC 3
Variáveis
Temp
OB1
FC3
FC1
5
5
FC 1
Variáveis
Temp
2
OB1
FC1
2
7
OB1
7
5. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.5
Execução
Tamanho do L-Stack
Para o S7-300:
Tamanho do
L-stack
Classe de
Prioridade
256 bytes
1
27
Tamanho total:
1.5 Kbyte
(CPU 313..316)
Startup (execução única)
Execução cíclica
256 bytes
256 bytes
256 bytes12
3
2Execução
controlada
por tempo
Time-of-Day Interrupt
Time-Delay Interrupt
Cyclic Interrupt
Tratamento de Erros
no ciclo de scan
256 bytes16
28
26
256 bytes
Execução
por evento
Hardware Interrupt
Tratamento de Erros no startup
6. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.6
Bytes Solicitados por um Bloco no L-Stack
direito
7. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.7
Exercício: Uso de Variáveis Temporárias
#Setpoint
#Setpoint
Substitua com a
variável temporária
Setpoint
8. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.8
Exemplo de uma Indicação de Falha no Processo
Falha
LED
Reconhecimento
Memória
Mem. Flanco
Entrada Falha
Reconh.
Pulsos
Entrada Falha
Display
RS
&
=
>=1&QS
R
P
Memória
Memória
Sugestão de Solução
Objetivo
9. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.9
Blocos Parametrizáveis
A I 1.2
R M 40.0
A I 1.3
FP M 40.1
S M 40.0
A M 40.0
A M 10.3
O
ANM 40.0
A I 1.3
= Q 8.3
Solução com
bloco não-
parametrizável Chamada do FC 20 (ex. in OB 1)
Entrada
Falha
Memoria
Reconhecim.
Mem_Flanco
Display
Pulsos
FC 20
Parâmetros Formais
A #Reconhecim
R #Memoria
A #Entrada_Falha
FP #Mem_Flanco
S #Memoria
A #Memoria
A #Pulsos
O
AN #Memoria
A #Entrada_Falha
= #Display
Solução com bloco parametrizável
Programa no FC 20
M 40.0
M 40.1
I 1.1
I 1.4
M 10.3
Parâmetros Atuais
Q 9.1
(Q 5.1)
10. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.10
Declarando os Parâmetros Formais no FC 20
Uso Graphic Display
Apenas leitura À esquerda do bloco
Apenas escrita À direita do bloco
Tipo de parâmetro
Parâmetro de entrada
Parâmetro de saída
Parâmetro In/out
Declaração
in
out
In_out Leitura / escrita À esquerda do bloco
Parâmetros Formais
11. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.11
Editando um Bloco Parametrizável
Para um FC não-parametrizável, aqui seria, por ex.:
• com endereçamento absoluto: I 1.3
• com endereçamento simbólico: "End_esq“
12. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.12
Chamando um Bloco Parametrizável
13. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.13
Tabela de declaração do bloco FC 20
Exercício: Editando um Bloco FC Parametrizável
Bloco não-
parametrizável
Bloco FC 20
parametrizável
A I 1.1
R M 40.0
A I 1.4
FP M 40.1
S M 40.0
A M 40.0
A M 10.3
O
AN M 40.0
A I 1.3
= Q 9.1(Q5.1)
A #Reconhecim.
R #Memoria
A #Entrada...
:
:
:
:
:
:
:
:
2.
1.
14. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.14
Exercício: Chamando um Bloco FC Parametrizável
1a. chamada do FC 20
Exibição da Falha 1
2a. chamada do FC 20
Exibição da Falha 2
(Q 9.1)
(Q 9.2)
15. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.15
Blocos de Funções (FBs)
FB 2
EN
Entrada_Falha
Reconhecim. Display
Pulsos ENO
DB 2
OB 1
Tabela de declaração do bloco de
função
16. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.16
Bloco de Função para Exibição de Mensagem
Tabela de
declarações do
bloco de função
Bloco de dados
Instance
17. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.17
Gerando Blocos de Dados Instance
1. Gerando o DB instance via chamada de FB 2. Criando um novo DB instance
18. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.18
Atualizando (Inserindo / Apagando) Parâmetros de um Bloco
19. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.19
Verificando a Consistência do Bloco
20. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.20
Correções nas Chamadas de Blocos Modificados
1x com o direito
21. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.21
Exercício: Editando um Bloco de Função
Tabela de declarações do bloco FB 201.
Seção de programa do FB 20
A #Acknowledge
R #Report memory
A #Disturb...
:
:
2.
22. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.22
Exercício: Chamando um Bloco de Função e Testando-o
(Q5.3)
(Q5.2)
23. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.23
O Modelo Múltiplo Instance
DB10
O Modelo Instance
FB20
OB 1
Call FB20, DB10
Entrada_Falha:=
Reconhecim:=
Pulsos:=
Display:=
DB11
FB20
Call FB20, DB11
Entrada_Falha:=
Reconhecim:=
Pulsos:=
Display:=
DB12
FB20
Call FB20, DB12
Entrada_Falha:=
Reconhecim:=
Pulsos:=
Display:=
O Modelo Múltiplo Instance
FB 100
DB100
Call FB100, DB100
OB 1
stat Falha_1 FB20
stat Falha_2 FB20
Parâmetros e
Variáveis estáticas
da 2a. chamada
do FB20
Call Falha_2
Entrada_Falha:=
Reconhecim:=
Pulsos:=
Display:=
Parâmetros e
variáveis estáticas
da 1a. chamada
do FB20
Call Falha_1
Entrada_Falha:=
Reconhecim:=
Pulsos:=
Display:=
24. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.24
Exercício: Reconhecendo Tipos de Variáveis
Absoluto Simbólico Tempor. Estática Parâmetro
L #Number_1
T #Max_value
T MW 40
Instrução
L #Number_2
L #Intermediate_result
L “Number_1"
T #Number_2
Global Local
25. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.25
LAD/FBD STL
Usando os Parâmetros EN/ENO em Chamadas de Blocos
CALL FC 1
NOP 0
Exemplo
?? . ?
FC 1
EN ENO
FC 2
EN ENO
FC 3
EN ENO =
FC 1
EN ENO?? . ?Incondicional
A I 0.1
JNB _001
CALL FC 1
_001: A BR
= Q 9.0
FC 1
EN ENOI 0.1 =
Q 9.0
Condicional
26. SIMATIC S7
Siemens Engenharia e Service 2002. Todos os direitos reservados.
Data: 15/4/2014
Arquivo: S7-Bas-09.26
Resumo: Chamadas de Blocos
• CALL FC1
• UC FC1
• CC FC1
STL
LAD
FBD
FC1
EN
ENO
FC1
EN ENO
FC1
( CALL )
FB
Sem param., sem inst. DB
• UC FB1
• CC FB1
FB1
EN
ENO
FB1
EN ENO
CALL
Com parâmetros
• CALL FC2
Par1: ...
Par2: ...
Par3: ...
FC2
EN ENO
Par3
Par1
Par2
FC2
EN
ENO
Par1
Par2
Par3
Com param., com inst.DB
• CALL FB2, DB3
Par1: ...
Par2: ...
Par3: ...
FB2
EN ENO
Par3
Par1
Par2
DB3
FB2
EN
ENO
Par3
Par1
Par2
DB3
Sem parâmetros
Lin-
guagem
FC
FC1