Você está na página 1de 25

Chamada de Blocos e Modelo Multi-instance

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.1
Blocos para Programação Estruturada
Modularização da OB 1 FB1 FB10
Tarefa Inserida:
 Tarefas parciais são resolvidas em seus próprios blocos
Motor 1 Controller
 Atribuição de parâmetros atribui flexibilidade de uso Motor 1 Controller
• Exemplo: Ciclo de perfuração com tamanho de . . .
parâmetro atribuível

Re-usabilidade dos Blocos: FB2 FC 5 SFC


 Blocos podem ser chamados tão freqüentemente quanto
seja resquerido Limit
Valves Copying
 Restrições: Valves value
• sem acesso a endereços globais
• comunicação somente via lista de parâmetros

DB 2
OB 1 FB 1
Address Decl. nome tipo
0.0 in Start BOOL
. 0.1 in Stop BOOL
2.0 out Motor_on BOOL
. 4.0 out Speed INT
6.0 stat Speed_old INT
chamada FB1, DB2 0.0 temp Calc_1 INT
Start :=I 0.0
Stop :=I 0.1 .
.
Motor_on :=Q12.0 .
Speed :=QW14 A #Start
. AN #Stop
= #Motor_on
. .

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.2
Vista Geral dos Blocos em STEP 7

Tipos de Blocos Propriedades


- interface do usuário
Bloco de
- graduação de prioridades (0..27)
Organização (OB)
- informações específicas de partida na pilha de dados local

Bloco de - parâmetros atribuíveis


Função (FB) - com memória (=localização de memória)

- parâmetros atribuíveis (parâm. devem ser atribuídos na chamada)


Função (FC) - retorno de valor pode ser retornado
- basicamente sem memória

Bloco de - armazenagem de dados locais estruturados (DB Instance)


Dados (DB) - armazenagem dados globais estruturados (validados no programa)

Bloco de Função - FB (com memória) armazenado no sistema operacional da CPU


do Sistema (SFB) e chamável pelo usuário

Função do - FC (com memória) armazenado no sistema operacional da CPU


Sistema (SFC) e chamável pelo usuário

Bloco de Dados do
- bloco de dados para configuração de dados e parâmetros
Sistema (SDB)

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.3
Propriedades das Funções

Parâmetros atribuíveis de blocos:


 muitos parâmetros input, saída e
in/out conforme necessidade
 sem memória, isto é somente Função FC10
variáveis temporárias in On_1 BOOL
Conforme IEC 1131-3: Execução do in On_2 BOOL
Programa out Off BOOL
 muitos parâmetros input ...
conforme necessidade
 somente um parâmetro saída chamada FC
RET_VAL 10 ...
On_1 := I 0.1 A #On_1
 sem acesso a variáveis globais On_2 := I 0.2 A #On_2
e endeços absolutos Off := Q8.0 = #Off
...
 com os mesmos parâmetros
input eles entregam resultados
idênticos
Expande o conjunto de
instruções do processador

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.4
Mecanismo de Passagem para Tipos de Dados Elementares

Parâmetros Elementares
atuais na:
 área de endereço de memória M
IB0 1 0 0 1 0 0 1 0
 imagem de processo
...
 pilha L p/o chamador

OB1 OB1 Função FC10


in On_1 BOOL
Execução do in On_2 BOOL
programa out Off BOOL
...
BLD 1
chamada FC10 = L 20.0
On_1 := I 0.1 UC FC 10 ...
On_2 := I 0.2 P#I 0.1 A #On_1
Off := Q8.0 P#I 0.2 A #On_2
P#Q 8.0 = #Off
BLD 2 ...

Parâmetro Parâmetro Parâmetro


do bloco atual Formal

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.5
Chamada de Funções com Tipos de Dados Complexos
Exemplo: Passagem de um ARRAY para uma Função
FC21

DB5 "Temperature"

Atribuição dos parâmetros somente é possível simbolicamente

Network 1: Mes_Val é declarado como um array no FC21

chamada FC 21
Mes_Val:="Temperature".seqüência

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.6
Características para chamada de Funções
Instrução chamada
 Instrução é Macro
 Sobrescrever conteúdo dos registradores são possíveis, mesmo
registradores DB
 Atenção com o conteúdo da Pilha B (B Stack)
 Após a chamada outro DB é aberto
 Tempo de processamento para chamada depende no número e
localização de memória dos parâmetros atuais
 Instrução chamada assegura que os parâmetros de bloco são
corretamente alimentadas com os dados correntes
 Exemplo:
 chamada FC10
On_1 := I 0.1
On_2 := I 0.2
Off := Q8.0
Instrução chamada UC e CC
 Chamada de bloco independente do RLO (UC) ou dependente (CC)
 Exemplos: UC FC20 ou CC FC20
 utilizável somente, quando o FC não tem parâmetros

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.7
Propriedades dos Blocos de Funções
Parâmetros atribuíveis dos Acionamento
blocos:
DB 16
 Conformidade com IEC 1131-3
0.0 Start BOOL
 Permite tantos parâmetros 0.1 Stop BOOL
input, saída e in/out quanto 2.0 Motor_on BOOL
necessário FB 5 4.0 Speed INT
 com memória, isto é não in Start BOOL
somente variáveis in Stop BOOL
temporárias mas também out Motor_on BOOL
out Speed INT
estáticas stat ...
 Chamada com sua própria chamada FB5, DB16 Temp...
área de dados (instantiating) Start :=I 0.0
 "Encapsulamento de Dados" Stop :=I 0.1
Motor_on :=Q8.0 ...
Speed :=QW12 A #Start
Aplicação: AN #Stop
= #Motor_on
 Funções de temporização e ...
contagem
 Unidades de Controle de
processo com estados
internos
 aquecedores
 acionamentos, válvulas, etc.

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.8
Formação Instance dos Blocos de Funções
OB, FB or FC
FBx DBy
 Chamada de FB DBx
Algorítmos Dados de
com DB Instance p/ controle estados p/
chamada FBx, DBy
... + Drive_1
...
Drive_1
FB Instance

FB

 Declarações ...
stat Motor_1 FBx Dados de
dentro de FBs
stat Motor_2 FBx FBx estados p/
(Multi-instances)
Drive_2
chamada Algorítmos
#Motor_1 p/ controle Drive_2
. Dados de
chamada estados p/
#Motor_2 Drive_3

Drive_3

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.9
Passagem de Parâmetros na chamada de um FB

1 DB16
IB0 1 0 0 0 0 0 1 1
.. .. .. .. .. .. 0 1
.. .. .. .. .. .. .. ..
QB8 1 0 0 1 0 0 1 0
3 .. .. .. .. .. .. .. 1
...
... ...
BLD 3
OB1 = L 24.0 FB10
TDB
0.0 in Start BOOL
Execução do OPN DI 16 0.1 in Stop BOOL
Programa TAR2 LD 20 2.0 out Motor_on BOOL
A I 0.0 4.0 out Speed INT
= DIX 0.0 ...
chamada FB5, DB16 A I 0.4
= DIX 0.1
Start :=I 0.0
Stop :=I 0.4 LAR2 P#DBX 0.0 ...
Motor_on :=Q8.0 AC FB 10 2 A #Start
Speed :=QW12 LAR2 LD 20 AN #Stop
A DIX 2.0 = #Motor_on
= Q 8.0 ...
L DIW 4
T QW 12
Parâmetros TDB Parâmetros
Parâmetros
do Bloco Atuais BLD 4 Formal

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.10
Chamada de FB com Tipos de Dados Complexos
Exemplo: Passagem de um ARRAY para um FB
FB17

DB2 "Temperature"

Atribuição de parâmetros complexos


somente é possível simbolicamente
Network 1:

chamada FB 17, DB 30
Meas_1 :="Temperature".Cylinder
Sum_1 :=MD20
Sum_2 :=MD30
Meas_2 :="Temperature".Shaft

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.11
Características para chamada de Blocos de Funções
Passagem de Parâmetros "por valor" (Cópia do Valor):
 Atribuição de parâmetros do FB em uma instrução chamada:
 Parâmetros de FB não tem que ser atribuídos
 Atribuição e desatribuição pode ser feita do "lado de fora"
p.ex.: direto do Painel de Operação
 Exceção: parâmetros in/out dos tipos de dados complexos (STRUCT,
ARRAY, STRING e DATE_AND_TIME)
 Inicialização:
 Parâmetros FB podem ser inicializados na declaração
 Exceção: parâmetros in/out dos tipos de dados complexos (STRUCT,
ARRAY, STRING e DATE_AND_TIME)
 Acesso aos parâmetros formais tomam lugar internamente usando
registradores DI e AR2
 Se o registrador DI ou AR2 é sobrescrito, acesso ao dado instance não é
mais possível
 Instrução de chamada adicional UC e CC
 Exemplos: UC FB20 ou CC FB20
 Somente utilizável se o FB não tenha dados instance (parâmetros +
variáveis estáticas)

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.12
Exercício 6: O Modelo Transportador para Planta de
Engarrafamento

Recipiente principal

Q 5.0 Bico enchedor


sensor de sensor de sensor de
garrafa garrafa garrafa
I 8.5 I 8.6 I 8.7

Q 8.5 transportador para frente


Q 8.6 transportador para trás

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.13
Exercício 6.1a: Planta de Engarrafamento – Modo de Seleção
DB15
Liga / desliga planta FB15: "Modo de seleção"
I 0.0: Ligar (NA, botão de pulso)
I 0.1: Desligar (NF, botão de pulso) ... EN
Q8.1: Planta ligada
I 0.0 Start Plant_on Q8.1
Modo Manual / Automático
I 0.4: Automático / Manual I 0.1 Stop OM_Man Q8.2
I 0.5: Confirma o modo I 0.4 Auto_Man OM_Auto Q8.3
Q 8.2: Modo Manual selecionado
Q 8.3: Modo Automático selecionado I 0.5 OM_activate ENO

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.14
Exercício 6.1b: Planta de Engarrafamento - Transportador
DB16
Modo Manual
FB16: "Controle Transportador"
I 0.5: Jog p/frente
I 0.6: Jog p/trás
Q 8.5: Transportador p/frente ... EN
Q 8.6: Transportador p/trás Q8.2 OM_Man
Modo Automático Q8.3 OM_Auto Conv_para Q 8.5
I 8.6: Sensor: local enchimento
I 8.7: Sensor: contagem garrafas I 0.2 Jog_para Q 8.6
Q 5.0: Enchimento ativo Conv_back Q 5.0
I 0.3
QW 6:: Mostra garrafas cheias Jog_back Filling_active
I 8.6 QW 6
Sensor_fill Full_bottles
I 8.7
Sensor_cheia ENO

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.15
Estrutura do Modelo Multi-instance

DB10
FB10
FB1
...
p.ex. OB1 stat Drill FB1 Algorítmo
stat Motor_1 FB2 da Dados p/
stat Motor_2 FB2 furadeira furadeira
.
Call FB10,DB10
Call Drill
. Dados p/
. FB2
Motor_1
Call Motor_1 Controle
de motor
.
Call Motor_2 Dados p/
Motor_2

DB instance do FB10

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.16
Programação Orientada a Objeto usando Multi-instances

Exemplo: Linha de Prensas


FB: "Linha de Prensas"
FB: #Prensa_1
Prensa_1 Prensa_2
FB: # Puncionador

FB: #Guarda
Puncionador
Guarda
FB: #Prensa_2

FB: # Puncionador

FB: #Guarda

Transportador
FB: #Transportador

Divisão Tecnológica
Divisão Tecnológica do
programa com a ajuda de
FB instance

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.17
Implementando uma " Linha de Prensa " no STEP 7
FB4:"Punc." DB10
FB1:"Prensa"
... Dado do FB10
FB10:" Linha de Prensa " stat Punc. FB4
stat Guarda FB5 Dado para Prensa_1
... ...
OB1 stat Prensa_1 FB1 FB5:"Guarda" Prensa_1. Punc.
stat Prensa_2 FB1 Call #Punc.
stat Transporte FB2 .
... Call #Guarda Prensa_1. Guarda

FB1: "Prensa" Dado para Prensa_2


Call FB10, DB10 Call #Prensa_1 ...
FB4:"Punc."
stat Punc. FB4 Prensa_2. Punc.
. stat Guarda FB5
Call #Prensa_2 ...
. Prensa_2. Guarda
Call #Punc.
Call #Transporte .
Call #Guarda FB5:"Guarda"
Dado para Transporte
FB2: "Transporte"
...
... DB Instance do FB10

NOTA: Punc. =
Puncionador
SIMATIC S7 Date: 14.05.21 Conhecimento em Automação
Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.18
Propriedades do Modelo Multi-instance
Vantagens do modelo Multi-instance :
 Somente um DB é necessário para diversos instances.
 Nenhum gerenciamento adicional é necessário na montagem das
áreas de dados "privados" para os respectivos instances.
 O modelo multi-instance opera como "estilo de programação orientada
a objeto" (reutilização por meio de "Agregação").
 Maximum nesting depth of 8

Pré-requisitos para os FBs:


 Acesso direto aos sinais do processo (I, Q) dentro do FB é não
possível.
 Acesso aos sinais do processo ou comunicação com outras unidades
de processo podem somente tomar lugar usando parâmetros do FB.
 O FB pode somente "lembrar" estados do processo in suas variáveis
estáticas, não em DBs globais ou memórias bit (M).

Nota:
 Dado instance também pode ser acessado do „lado de fora"
p.ex. no OB1: L "Linha de Prensa".Prensa_2.Puncionador.<VarName>

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.19
Exercício 6.2: O Modelo Transportador como Linha de Montagem
Seqüência do processo para a estação Seqüência de processo para a
de trabalho correia transportadora
 Processamento da peça  Espera para término da peça
 Processamento terminado
 Transporte para montagem final
 Lugar da peça na correia
 Espera pela peça bruta  Montagem final, insere peça bruta
 Pega peça bruta da correia  Transporte para estação

Chaves de proximidade
"INI1", "INI2", "INI3" Barreira de luz
"LB1"

LED "H4"

LEDs Chave de
Chaves de reconhecimento
"H1", "H2", "H3" reconhecimento "S4"
"S1", "S2", "S3"

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.20
Exercício 6.2a: Estrutura de Programa para uma Estação de
Trabalho
DB1
Transporte FB1: "Estação"
I 0.0 Initial LED "H1"
"INI1" Proxy_switch Transp_req
"S1" Acknowledge
M10.1 Clock_bit_q
M10.3 Clock_bit_s
Conv_busy

Estação_1 Estação_2 Estação_3


DB2
FB2: "Transporte"
I 0.0 Initial LED "H4"
OB1 "LB1" L_barrier Conv_right "K1_CONVR"
"S4" Acknowledge Conv_left "K2_CONVL"
Call FB1, DB1 Transp_req
... M10.1
... Clock_bit

Call FB2, DB2

Divisão tecnológica do programa

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.21
FB1 "Estação" – Método de Funcionamento

 Declarações no FB1:  Modelo de estado:


FB1: "Estação"
peça
IN-Parameter: Tipo de dado: processando
Initial BOOL
Proxy_switch BOOL O LED fica
Acknowledge BOOL
AN Proxy_switch
aceso A Acknowledge
Clock_bit_q BOOL
Clock_bit_s BOOL
OUT-Parameter: peça
pega_peça
LED BOOL da_correia terminada
Transp_req BOOL
O LED pisca O LED pisca
I/O-Parameter: lento
rápido
Conv_busy BOOL
Stat. Var.:
estado STRUCT A Proxy_ switch AN Conv_busy
Process_piece BOOL
Piece_finished BOOL espera
pela_peça peça no lugar
Place_part_on_conv BOOL
na_correia
Wait_for_piece BOOL O LED está
Take_piece_from_conv BOOL O LED pisca
desligado rápido
END_STRUCT
AN Proxy_switch
A Transp_req

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.22
FB2 "Transporte" – Método de Funcionamento

 Interface do FB2:  Modelo de estado:

FB2: "Transporte"
Espera
IN-Parameter: Tipo de dado: O LED está
Initial BOOL desligado
L_Barrier BOOL
Acknowledge BOOL
AN #Tansp_req A #Transp_req
Transp_req BOOL
Clock_bit BOOL
OUT-Parameter:
LED BOOL
Conv_right BOOL Transportador
Conv_left BOOL
Transportador
p/esquerda p/direita
Stat. Var.: O LED pisca O LED pisca
estado STRUCT
Waiting BOOL
Conv_right BOOL
Assembly BOOL AN #L_Barrier
Conv_left BOOL A #Acknowledge
END_STRUCT Montagem
O LED está
aceso

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.23
Exercício 6.2b: Expansão para 3 Estações

DB10
FB10
...
OB1 stat Estação_1 FB1 Dado para
stat Estação_2 FB1 Estação_1
stat Estação_3 FB1
stat Transporte FB2
.
FB1 Dado para
Call FB10,DB10
Call Estação_1 Estação_2
.
Call Estação_2
Call Estação_3 Dado para
Estação_3
FB2
Call Transporte
Dado para
Transporte

DB Instance do FB10

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.24
Interconexão de Parâmetros de Blocos
DB10: "DB_linha_montagem"

#Estação_1
I 0.0 Initial LED "H1"
Proxy_switch Transp_req
FB10: "linha_montagem"
"INI1"
"S1" Acknowledge
M10.1 Clock_bit_q
M10.3 Clock_bit_s
Conv_busy

#Estação_2
I 0.0 Initial #estação_2 LED "H2" #Transporte
"INI2" Proxy_ switch Transp_req
I 0.0 Initial LED "H4"
"S2" Acknowledge
M10.1 Clock_bit_q "LB1" L_Barrier Conv_right "K1_CONVR"
M10.3 Clock_bit_s "S4" Acknowledge Conv_left "K2_CONVL"
Conv_busy
Transp_req
M10.1 Clock_bit
#Estação_3
#estação_3
I 0.0 Initial LED "H3"
"INI3" Proxy_ switch Transp_req
"S3" Acknowledge
M10.1 Clock_bit_q
M10.3 Clock_bit_s
Conv_busy

SIMATIC S7 Date: 14.05.21 Conhecimento em Automação


Training Center
Siemens AG 1999. All rights reserved. File: PRO2_06P.25

Você também pode gostar