Você está na página 1de 25

Chamada de Blocos e Modelo Multi-instance

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.1

Conhecimento em Automao
Training Center

Contedo
Pg.
Blocos para Programao Estruturada ..................................................................................
2
Vista Geral dos Blocos em STEP 7 ..................................................................................................
3
Propriedades das Funes ............................................................................................................
4
Mecanismo de Passagem para Tipos de Dados Elementares .....................................................
5
Chamada de Funes com Tipos de Dados Complexos ..........................................................
6
Caractersticas para chamada de Funes ..................................................................................
7
Propriedade dos Blocos de Funes .........................................................................................
8
Formao Instance dos Blocos de Funes .....................................................................................
9
Passagem de Parmetros na chamada de um FB ........................................................................... 10
Chamada de FB com Tipos de Dados Complexos .................................................................... 11
Caractersticas para chamada de Blocos de Funes ...................................................................... 12
Exerccio 6: O Modelo Transportador para Planta de Engarrafamento ............................................. 13
Exerccio 6.1a: Planta de Engarrafamento Modo de Seleo ......................................................... 14
Exerccio 6.1b: Planta de Engarrafamento Transportador ............................................................... 15
Estructure do Modelo Multi-instance .................................................................................................. 16
Programao Orientada a Objeto usando Multi-instances ................................................................. 17
Implementando uma "prensa linha" no STEP 7 .................................................................................... 18
Propriedades do Modelo Multi-instance ............................................................................................. 19
Exerccio 6.2: O Modelo Transportador como Linha de Montagem ................................................... 20
Exerccio 6.2a: Estrutura de Programa para uma Estao de Trabalho ........................................... 21
FB1 "estao" Mtodo de Funcionamento ....................................................................................... 22
FB2 "transporte" Mtodo de Funcionamento ................................................................................... 23
Exerccio 6.2b: Expanso para 3 Estaes ........................................................................................ 24
Interconexo de Parmetros de Blocos ............................................................................................. 25

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 1 Chamada Blocos e Modelo Multi-instance

Blocos para Programao Estruturada


Modularizao da
Tarefa Inserida:
z
z

Tarefas parciais so resolvidas


em seus prprios blocos
Atribuio de parmetros
atribui flexibilidade de uso
Exemplo: Ciclo de perfurao
com tamanho de parmetro
atribuvel

Re-usabilidade dos Blocos:


z

OB 1

Blocos podem ser chamados


to freqentemente quanto seja
resquerido
Restries:
sem acesso a endereos
globais
comunicao somente via
lista de parmetros

Siemens AG 1999. All rights reserved.

FB10

Motor 1
Motor 1

Controller
Controller

Valves
Valves

.
.
chamada
Start
Stop
Motor_on
Speed

FB1, DB2
:=I 0.0
:=I 0.1
:=Q12.0
:=QW14

Date:
File:

04.10.2007
PRO2_06P.2

Address
0.0
0.1
2.0
4.0
6.0
0.0
.
.
.
A
AN
=
.

Copying

DB 2

FB 1

OB 1

. . .
SFC

FC 5
Limit
value

FB2

.
.

SIMATIC S7

FB1

Decl.
in
in
out
out
stat
temp

nome
Start
Stop
Motor_on
Speed
Speed_old
Calc_1

tipo
BOOL
BOOL
BOOL
INT
INT
INT

#Start
#Stop
#Motor_on

Conhecimento em Automao
Training Center

O que um Programa Quando funes similares ou identicas se repetem em um processo o qual


Estruturado?
est sendo controlado, procura-se de um modo geral solues vlidas e escrev-las
em um bloco com parmetros atribuveis.
Este bloco freqentemente chamada no ciclo de programa. Ele pode ser
alimentado com diferentes parmetros nos arquivos de dados cada vez que este
para chamado.
Vantagens
A diviso do programa do usurio em blocos individuais tem as seguintes
vantagens:
Uma tarefa complexa inserida pode ser subdividida em pequenas e
claras
tarefas parciais. Os blocos para as tarefas parciais podem ser criados e testados
independentemente uns dos outros.
Com a ajuda dos parmetros, blocos podem ser projetados para serem
flexveis. Desta forma, por exem[lo, um ciclo de perfurao pode ser criado
atravs da passagem de coordenadas e profundidade do buraco a ser perfurado
como parmetros do bloco.
Blocos podem ser chamados to freqentemente quanto para necessrio com
diferentes parmetros em seus arquivos de dados, ou seja, podem ser reutilizados.
A chamada incondicional de um bloco somente ento possvel se no existir
acesso a endereos, como entradas, sadas, memrias bit ou variveis em DB de
dentro do bloco. Blocos devem comunicar exclusivamente com o mundo
externo via lista de parmetros.
Blocos em STEP 7 podem ser modificados e transferidos para CPU
durante
a execuo do programa independentemente uns dos outros. Deste modo, voc
pode, por exemplo, atualizar o software de um sistema quando ele est em
operao.
Para muitas tarefas, blocos para tarefas especiais podem ser entregues em
bibliotecas padres pr projetadas as quais podem ento se integradas ao
respectivo programa do usurio.
Blocos para uso freqente em tarefas padres podem ser integradas no
sistema operacional da CPU atravs do fabricante da CPU na forma de
blocos de funes do sistema (SFB) ou funes do sistema (SFC).

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 2 Chamada Blocos e Modelo Multi-instance

Vista Geral dos Blocos em STEP 7


Tipos de Blocos

Propriedades

Bloco de
Organizao (OB)

- interface do usurio
- graduao de prioridades (0..27)
- informaes especficas de partida na pilha de dados local

Bloco de
Funo (FB)

- parmetros atribuveis
- com memria (=localizao de memria)

Funo (FC)

- parmetros atribuveis (parm. devem ser atribudos na chamada)


- retorno de valor pode ser retornado
- basicamente sem memria

Bloco de
Dados (DB)

- armazenagem de dados locais estruturados (DB Instance)


- armazenagem dados globais estruturados (validados no programa)

Bloco de Funo
do Sistema (SFB)

- FB (com memria) armazenado no sistema operacional da CPU


e chamvel pelo usurio

Funo do
Sistema (SFC)

- FC (com memria) armazenado no sistema operacional da CPU


e chamvel pelo usurio

Bloco de Dados do
Sistema (SDB)

- bloco de dados para configurao de dados e parmetros

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.3

Conhecimento em Automao
Training Center

Vista Geral

STEP 7 oferece uma srie de diferentes blocos para subdividir uma tarefa de
automao complexa em pequenas tarefas parciais. Estas tarefas parciais refletem
a funo tecnolgica do sistema ou do processo.

Classes de Blocos
no STEP 7

Blocos so, por suas funes, sua estrutura ou sua limitada aplicao partes
do programa do usurio. Os blocos no STEP 7 podem dependendo do seu
contedo ser dividido em duas classes:
Blocos Lgicos:
Blocos Lgicos so blocos de organizao (OB), blocos de funes (FB),
funes (FC) bem como blocos de funes do sistema (SFB) e funes do
sistema (SFC).
As instrues do programa do usurio so armazenadas nestes blocos.
Blocos de Dados:
Blocos de Dados so blocos de dados do usurio (DB) e os blocos de dados
do sistema (SDB).
O usurio podem armazenar dados os quais ocorrem durante a execuo do
programa em blocos de dados e estes dados podem ser acessados
mais tarde.
O contedo dos blocos de dados do sistema (SDB) so disponveis
exclusivamente para a CPU (dados de parametrizao). SDBs no so
criados ou descritos pelo programa do usurio, mas por ferramentas como
HW-CONFIG ou NETPRO.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 3 Chamada Blocos e Modelo Multi-instance

Propriedades das Funes


Parmetros atribuveis de blocos:
z
z

muitos parmetros input, sada e


in/out conforme necessidade
sem memria, isto somente
variveis temporrias

Funo FC10
Execuo do
Programa

Conforme IEC 1131-3:


z
z
z
z

muitos parmetros input


conforme necessidade
somente um parmetro sada
RET_VAL
sem acesso a variveis globais
e endeos absolutos
com os mesmos parmetros
input eles entregam resultados
idnticos

chamada FC
10
On_1 :=
On_2 :=
Off
:=

I 0.1
I 0.2
Q8.0

in
in
out
...

...
A
A
=
...

On_1
On_2
Off

BOOL
BOOL
BOOL

#On_1
#On_2
#Off

Expande o conjunto de
instrues do processador

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.4

Conhecimento em Automao
Training Center

Vista Geral

Funes (FC) representam parmetros atribuveis de blocos sem memria. No


STEP 7 eles podem ter muitos parmetros de entrada (input), parmetros de sada
(sada) e parmetros de entrada/sada (in/out) conforme necessidade.
Funes no tem memria; no existe rea de dado separada, permanente, para
armazenamento de resultados. Resultados temporrios que ocorrem durante a
execuo da funo podem somente ser armazenadas em variveis temporrias
da respectiva pilha de dados local.
Funes expandem o conjunto das instrues do processador.

Aplicao

Funes so primariamente usadas quando valores de funes so retornadas da


chamada dos blocos (p.ex.: funes matemticas, controle simples com operaes
lgicas binrias).

IEC-1131
Funes
Conformes

Se funes esto sendo criadas em conformidade com IEC 1131-3, ento as


seguintes regras devem ser observadas:
Funes podem ter tantos parmetros de entrada (input) quanto
necessrio,
eles podem, desta forma, somente retornar um resultado do parmetro de sada
(sada) RET_VAL.
Variveis globais no podem nem serem lidas ou escritas dentro das funes.
Endereos absolutos no podem nem serem lidos ou escritos dentro de
funes.
Nem blocos de dados, nem blocos de dados instance podem ser chamados
dentro das funes.
Devido a perda de "memria", o resultado retornado da funo conforme a norma
apenas dependente dos valores nos parmetros de entrada. Para valores
idnticos do parmetro de entrada, uma funo tambm retorna o resultado
idntico.
Ele por esta razo adequado ao programador para criar funes em
conformidade com a norma ou fazer blocos de programao e estruturao no
STEP 7 como ele no STEP 5.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 4 Chamada Blocos e Modelo Multi-instance

Mecanismo de Passagem para Tipos de Dados Elementares


Parmetros Elementares
atuais na:
z
z
z

rea de endereo de memria M


IB0 1 0 0 1 0 0 1 0
imagem de processo
...
pilha L p/o chamador

Funo FC10

OB1

OB1

in
in
out
...

Execuo do
programa
chamada FC10
On_1 :=
On_2 :=
Off
:=

I 0.1
I 0.2
Q8.0

BLD
=
UC

BLD

Parmetro
do bloco

Siemens AG 1999. All rights reserved.

Mecanismo de
Passagem

Notas

Siemens Ltda.
Training Center

20.0
10
0.1
0.2
8.0

...
A
A
=
...

BOOL
BOOL
BOOL

#On_1
#On_2
#Off

Parmetro
Formal

Parmetro
atual

SIMATIC S7
Parmetros de FC

1
L
FC
P#I
P#I
P#Q
2

On_1
On_2
Off

Date:
File:

04.10.2007
PRO2_06P.5

Conhecimento em Automao
Training Center

Dados para processamento podem ser manipulador sobre a chamada da funo.


Estes dados passando tomam lugar exclusivamente atravs da lista de parmetros
que aparecem aps a chamada (chamada). Os nomes e os tipos de dados dos
parmetros de bloco que aparecem so estabelecidos na parte de declarao do
FC.
Parmetros de entrada (Input; somente leitura), de sada (sada; somente escrita) e
entrada/sada (in/out; leitura e escrita) podem ser declarados.
O nmero de parmetros no tem restries (espao de memria), os nomes
podem conter no mximo 24 caracteres. Em adio, os parmetros podem ser
fornecidos com comentrio detalhado. Se o bloco no tem qualquer parmetro,
ento a lista de parmetros listada na chamada do bloco FC.
Com um chamada, o Editor STL/LAD/FBD antes de tudo calcula os ponteiros de
rea cruzada dos parmetros atuais dados na lista de parmetros e armazena
estes imediatamente aps a instruo de chamada do FC.
Se o acesso a um parmetro formal (p.ex.: A On_1) agora toma lugar dentro do FC,
a CPU determina a instruo de chamada do FC do endereo de retorno
armazenado na Pilha B (B-Stack). Da lista de parmetro pertinentes, o FC ento
determina o ponteiro da rea cruzada para os parmetros atuais os quais pertences
aos parmetros formais. Acesso para os parmetros atuais ento tomam lugar
atravs deste ponteiro.
Este mecanismo de passagem corresponde a "chamada by Reference". Se acesso
a parmetro formal toma lugar dentro de um FC, ento acesso ao parmetro atual
correspondente resulta disto.
Este mecanismo de passagem via ponteiro ocasiona isto:
todos os parmetros de bloco devem ser atribudos na chamada de um
FC.
parmetros de bloco no podem se inicializados na declarao.
Se um parmetro de bloco determinado com o parmetro atual dentro de um DB
ou se tipos de dados complexos so passados, ento a passagem de parmetros
se tornam mais complexos. (ver apndice).

ST-7PRO2
Pgina 5 Chamada Blocos e Modelo Multi-instance

Chamada de Funes com Tipos de Dados Complexos


Exemplo: Passagem de um ARRAY para uma Funo
FC21

DB5 "Temperature"

Atribuio dos parmetros somente possvel simbolicamente


Network 1: Mes_Val declarado como um array no FC21
chamada FC
21
Mes_Val:="Temperature".seqncia

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.6

Conhecimento em Automao
Training Center

Vista Geral

Parmetros do tipo de dado complexo (ARRAY e STRUCT) oferece um claro e


eficiente meio de transferiri grandes quantidades de dados relacionados entre a
chamada e o bloco chamado e assim acomodando o conceito de Programao
Estruturada.
Um array ou uma estrutura pode ser passado para uma funo chamada como
uma varivel completa.

Atribuio de
Parmetros

Para o passe, um parmetro do mesmo tipo de dado como o parmetro atual


a ser passado deve ser declarado na funo chamada. A atribuio de um
parmetro (tipo de dado: ARRAY, STRUCT, DATE_AND_TIME e STRING) pode
somente tomar lugar simbolicamente.
Desde que variveis do tipo de dado complexo somente podem ser fixadas em
blocos de dados ou em pilha de dados local, o parmetro atual deve cada um ser
localizado em um DB (global ou instance) ou em pilha de dados local do bloco
chamado.
Aps o Editor STL/LAD/FBD tem checado a compatibilidade dos tipos de dados do
parmetro atual e parmetro de bloco na passagem de bloco para um FC, somente
um POINTER com um nmero de DB e um ponteiro de rea cruzada para o
parmetro atual passado para o FC chamado.
Este POINTER fixado na Pilha L do bloco chamado (V rea) atravs da macro
chamada. Este POINTER ento de grande importncia para o programador em
particular, quando o parmetro passado tem de ser acessado indiretamente (ver
apndice).

Notas

O nmero do dado local ocupado pode ser determinado pela seleo do menu
options View -> bloco Properties.
Componentes do ARRAYs ou STRUCTs tambm podem ser passados
para
um parmetro de bloco se o parmetro de bloco e os componentes ARRAY ou
STRUCT so do mesmo tipo de dado.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 6 Chamada Blocos e Modelo Multi-instance

Caractersticas para chamada de Funes


Instruo chamada
z

Instruo Macro
Sobrescrever contedo dos registradores so possveis, mesmo
registradores DB
Ateno com o contedo da Pilha B (B Stack)
Aps a chamada outro DB aberto
Tempo de processamento para chamada depende no nmero e
localizao de memria dos parmetros atuais
z Instruo chamada assegura que os parmetros de bloco so
corretamente alimentadas com os dados correntes
z Exemplo:
chamada FC10
On_1
:= I 0.1
On_2
:= I 0.2
Off
:= Q8.0

Instruo chamada UC e CC
z

Chamada de bloco independente do RLO (UC) ou dependente (CC)


Exemplos: UC FC20 ou CC FC20
z utilizvel somente, quando o FC no tem parmetros

SIMATIC S7
Siemens AG 1999. All rights reserved.

Instruo chamada

Instruo UC e CC

Importante

Siemens Ltda.
Training Center

Date:
File:

04.10.2007
PRO2_06P.7

Conhecimento em Automao
Training Center

A instruo (Macro) chamada deve ser usada para chamada de blocos (FCs,
SFCs, FBs e SFBs).
Em uma chamada de FC, uma informao direta de troca entre o bloco chamado e
a funo chamada somente possvel via chamada. A chamada assegura que os
parmetros formais do bloco so corretamente alimentados. Em qualquer caso,
diversas caractersticas tambm devem ser levados em considerao, o que
resulta do fato de que chamada implementado atravs de uma macro que por sua
vez se consiste de diversas instrues STL.
Se um parmetro formal atribudo com endereos que so encontrados em um
DB, ento parmetros passados tomam lugar com a ajuda do registrador DB (ver
apndice). Disto resulta:
dentro da chamada do FC, possvel que, o DB que aberto no o DB que
foi aberto antes do chamada.
se a CPU vai para STOP durante o processamento do FC chamado, ento o
valor mostrado na Pilha B (B-Stack -> DB-registrador) que o qual o Editor STL
usado para sobrescrever o registrador DB no parmetro atribudo.
se aps o processamento, um salto feito para trs dentro do bloco
chamado, possvel que o DB no esteja aberto que foi aberto antes do
chamada.
Blocos tambm podem ser chamados com a instruo UC ou CC. A instruo de
chamada uma instruo absoluta, isto , UC sempre chama o bloco independente
de condies (p.ex.: UC FC20).
A instruo de chamada CC uma instruo condicional, isto , CC somente
chama um bloco quando o RLO igual a 1. Se o RLO igual a 0, ento CC no
faz chamada do bloco e seta o RLO em 1. Subseqentemente, a instruo
seguinte a chamada CC processada.
UC e CC somente podem ser usados quando nenhum parmetro declarado na
chamada do FC.

ST-7PRO2
Pgina 7 Chamada Blocos e Modelo Multi-instance

Propriedades dos Blocos de Funes


Parmetros atribuveis dos
blocos:
z
z

z
z

Acionamento

Conformidade com IEC 1131-3


Permite tantos parmetros
input, sada e in/out quanto
necessrio
com memria, isto no
somente variveis
temporrias mas tambm
estticas
Chamada com sua prpria
chamada FB5, DB16
Start
:=I 0.0
rea de dados (instantiating)
Stop
:=I
0.1
"Encapsulamento de Dados"

Motor_on :=Q8.0
Speed
:=QW12

Aplicao:
z

Funes de temporizao e
contagem
z Unidades de Controle de
processo com estados
internos
aquecedores
acionamentos, vlvulas, etc.
SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.8

DB 16
0.0
0.1
2.0
4.0

FB 5

Start
Stop
Motor_on
Speed

in
Start
in
Stop
out Motor_on
out Speed
stat ...
Temp...

...
A
AN
=
...

BOOL
BOOL
BOOL
INT

BOOL
BOOL
BOOL
INT

#Start
#Stop
#Motor_on

Conhecimento em Automao
Training Center

Vista Geral

Blocos de Funes (FB) so blocos do programa do usurio e representam, de


acordo com a IEC Standard 1131-3, blocos lgicos com memria. Eles podem ser
chamados por OBs, FBs e FCs.
Blocos de Funes podem ter tantos parmetros input, sada e in/out quanto
necessrio bem como variveis temporrias e estticas.
Diferentemente dos FCs, os FBs so inicializados, isto , um FB determinado por
sua prpria rea de dados privada, por exemplo, pode lembrar estados do
processo de chamada para chamada. De forma simple, esta rea de dados
privados seu prprio DB, o chamado DB instance.

"Memria"

O programador tem a oportunidade para declarar variveis estticas na seo de


declarao do FB. O FB pode lembrar" informaes de chamada para chamada
nestas variveis.
A possibilidade para um FB "lembrar" informaes sobre diversas chamadas a
diferena essencial dos FCs.

Aplicaes

Com a ajuda desta memria, um FB pode, por exemplo, implementar funes de


contagem e temporizao ou unidades de controle de processos, tal como
estaes de processamento, acionamentos, aquecedores, etc.
Em particular, FBs so adequados para controle de todas unidades de processo
cuja performance depende no somente de influncias externas mas tambm em
estados internos, tal como processamento passo-a-passo, velocidade, temperatura,
etc.
Quando controles como unidades, os dados de estado interno das unidades de
processo so ento copiadas para variveis estticas dos FBs.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 8 Chamada Blocos e Modelo Multi-instance

Formao Instance dos Blocos de Funes


OB, FB or FC

DBy

FBx

z Chamada de FB
com DB Instance

Algortmos
p/ controle

chamada FBx, DBy


...
...

DBx

Dados de
estados p/
Drive_1

Drive_1
FB Instance

FB
...
stat Motor_1 FBx
stat Motor_2 FBx

z Declaraes
dentro de FBs
(Multi-instances)

FBx

Dados de
estados p/
Drive_2

Algortmos
p/ controle

chamada
#Motor_1
.

Drive_2
Dados de
estados p/
Drive_3

chamada
#Motor_2

Drive_3

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.9

Conhecimento em Automao
Training Center

O que um
Instance?

O conceito de FB com instance tem grande importncia e estabelece o


critrio essencial de distino com os FCs. A definio das variveis dentro de
linguagens de alto nvel como C sob declarao de nomes de variveis e tipos de
dados na declarao chamado de instance.
A mesma forma de variveis so tambm criadas nos FBs. Somente atravs desta
prpria rea de dados, na qual os valores dos parmetros do bloco bem como
variveis estticas so armazenadas, isto torna um FB a ser uma unidade
executvel (FB instance).
O controle de uma unidade de processo fsica, tal como um acionamento ou uma
caldeira ento toma lugar com a ajuda de um FB instance, isto , um FB com uma
rea de dados fixada.

Instance

A criao de um FB instance, isto , a atribuio de sua prpria rea de memria


na chamada de um FB, pode ser feita de dois modos no STEP 7:
atravs da declarao explcita de um FB instance quando um FB
chamado.
atravs da declarao explcita de instances de um FB dentro um bloco de
funes de alto nvel (modelo multi-instance).
STEP 7 ento assegura que a rea de dados requerida para o instance
definida dentro da rea de dados do FB de alto nvel.

Vantagens

O conceito instance do STEP 7 tem as seguintes vantagens:


Na chamada dos FBs, nenhuma medio para salvamento e
administrao
dos dados locais so necessrios exceto para a atribuio dos DBs instance.
Um FB pode ser usado diversas vezes pelo conceito instance. Se, por
exemplo, diversos acionamentos do mesmo tipo esto sendo
controlados,
ento estes tomam lugar usando diversos instances de um FB. O estado dos
dados dos acionamentos individuais so armazenados nas variveis estticas do
FB.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 9 Chamada Blocos e Modelo Multi-instance

Passagem de Parmetros na chamada de um FB


1

1 0 0 0 0 0 1 1

IB0

DB16
.. .. .. .. .. .. 0 1
.. .. .. .. .. .. .. ..

QB8 1 0 0 1 0 0 1 0

.. .. .. .. .. .. .. 1

...

...

...
OB1
Execuo do
Programa
chamada FB5, DB16
Start
Stop
Motor_on
Speed

Parmetros
do Bloco

:=I 0.0
:=I 0.4
:=Q8.0
:=QW12

Parmetros
Atuais

SIMATIC S7
Siemens AG 1999. All rights reserved.

BLD
=
TDB
OPN
TAR2
A
=
A
=
LAR2
AC
LAR2
A
=
L
T
TDB
BLD

Date:
File:

3
L

FB10

24.0

DI
16
LD 20
I
0.0
DIX 0.0
I
0.4
DIX 0.1
P#DBX 0.0
FB 10
LD 20
DIX 2.0
Q
8.0
DIW 4
QW 12

0.0
0.1
2.0
4.0
...

in
in
out
out

...
A
AN
=
...

Start
Stop
Motor_on
Speed

BOOL
BOOL
BOOL
INT

#Start
#Stop
#Motor_on

Parmetros
Formal

04.10.2007
PRO2_06P.10

Conhecimento em Automao
Training Center

Parmetros na
chamada do FB

Dados para processamento podem ser manipulados atravs da chamada de


um FB instance. Esta passagem de dados pode tomar lugar usando a lista de
parmetros que ser preenchida aps a chamada. O tipo (parmetro input, sada,
ou in/out), os nomes e os tipos de dados dos parmetros so estabelecidos na
parte da declarao do FC.
Diferentemente da chamada de um FC, os parmetros de entrada e de sada bem
como parmetros in/out de tipos de dados elementares no tem que ser atribudos
com parmetros atuais na chamada de um FB. A razo disto acusa o mecanismo
de como os parmetros atuais so passados para o FB chamado.

Mecanismo de
Passagem

Se um DB instance criado de um FB, o editor de blocos reserva


automaticamente memria para os parmetros do bloco (parmetros input, sada e
in/out) e para variveis estticas declaradas na parte da declarao do FB. Os
endereos dos parmetros e variveis estticas em um DB instance so
exatamente aqueles endereos byte ou bit gerados pelo Editor que so
encontrados na primeira coluna da seo de declarao do FB.
Em um FB instance chama usando a macro chamada, o DB instance aberto
usando o registrador DI e os valores dos parmetros correntes input e in/out so
copiados dentro do DB instance, antes do processamento do FB atual.
A chave para processamento do FB ento toma lugar. Se um acesso para o
parmetro formal agora toma lugar dentro do processamento do FB, ento este
resultado em um acesso aos endereos acessrios do DB instance. Estes acessos
tomam lugar internamente usando registrador de endereamento indireto com
ateno ao registrador DI e o registrador AR2.
Aps o processamento do FB, os valores dos parmetros formais sada e in/out
so copiados dentro dos parmetros atuais especificados na chamada. Somente
aps isto, o processo continua com a prxima instruo aps o chamada.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 10Chamada Blocos e Modelo Multi-instance

Chamada de FB com Tipos de Dados Complexos


Exemplo: Passagem de um ARRAY para um FB
FB17

DB2 "Temperature"

Atribuio de parmetros complexos


somente possvel simbolicamente
Network 1:
chamada
Meas_1
Sum_1
Sum_2
Meas_2

FB

17, DB 30
:="Temperature".Cylinder
:=MD20
:=MD30
:="Temperature".Shaft

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.11

Conhecimento em Automao
Training Center

Tipo de Dado
Complexo

Do mesmo modo que com FCs, endereos de tipos de dados complexos


(ARRAY, STRUCT, DATE_AND_TIME and STRING) podem ser passados
completamente para uma chamada de FB.
Para a passagem, um parmetro do mesmo tipo de dado como o parmetro atual
ser passado deve ser declarado na chamada do FB.
A atribuio como um parmetro somente possvel simbolicamente.

Parmetros
Input e sada

Para parmetros input e sada dos tipos de dados complexos,


correspondem a reas para os valores dos parmetros atuais so determinados no
DB instance. Na chamada do FB, os parmetros atuais dos parmetros de entrada
so ento copiados dentro do DB instance usando SFC 20 (BLKMOV) ("Passing by
Value"), antes da chave atual na seo de instruo do FB.
Da mesma maneira, os valores do parmetrode sada so copiados de volta do DB
instance no parmetro atual depois que o FB tenha sido processado.
Como um resultado, uma no insignificante quantidade de cpias (processamento
de tempo) pode ocorrer nos parmetros de entrada e sada. Esta quantidade de
cpias transferida com parmetros de in/out.

Parmetros In/Out

Nenhuma "Passing by Value" ocorre com parmetros in/out dos tipos de dados
complexos. 6 bytes so meramente reservadas para cada parmetro in/out na rea
de dados instance. Um POINTER para os parmetros atuais so inseridos nestes
bytes ("Passing by Reference").

Notas

Parmetros Input e sada de tipos de dados complexos podem ser inicializados


na seo de declarao de um FB, contudo no parmetros in/out.
Parmetros Input e sada de tipos de dados complexos no tem que ser
atribudos na chamada de um FB, parmetros in/out tem que ser atribudos.
A memria ou registrador indireto acessam parmetros input/sada ou
parmetros in/out de tipos de dados complexos diferente dos parmetros
elementares.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 11Chamada Blocos e Modelo Multi-instance

Caractersticas para chamada de Blocos de Funes


Passagem de Parmetros "por valor" (Cpia do Valor):
z

Atribuio de parmetros do FB em uma instruo chamada:


Parmetros de FB no tem que ser atribudos
Atribuio e desatribuio pode ser feita do "lado de fora"
p.ex.: direto do Painel de Operao
Exceo: parmetros in/out dos tipos de dados complexos (STRUCT,
ARRAY, STRING e DATE_AND_TIME)
z Inicializao:
Parmetros FB podem ser inicializados na declarao
Exceo: parmetros in/out dos tipos de dados complexos (STRUCT,
ARRAY, STRING e DATE_AND_TIME)
z

Acesso aos parmetros formais tomam lugar internamente usando


registradores DI e AR2
Se o registrador DI ou AR2 sobrescrito, acesso ao dado instance no
mais possvel

Instruo de chamada adicional UC e CC


Exemplos: UC FB20 ou CC FB20
Somente utilizvel se o FB no tenha dados instance (parmetros +
variveis estticas)

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.12

Conhecimento em Automao
Training Center

Atribuio de
Parmetros de blocos no tem que ser atribudos na chamada de um FB.
parmetros de bloco Neste caso, valores nenhuns so copiados dentro ou fora do DB instance. Os
parmetros no DB instance mantm os valores que tambm estavam salvos na
ltima chamada.
Exceo: Parmetros in/out dos tipos de dados complexos devem ser atribudo na
lista de parmetros.
Parmetro de acesso Acesso aos parmetros dentro de um DB instance pode ser feito do mesmo
do Lado de fora"
modo como com os endereos dos DBs globais. Parmetros de blocos podem
tambm deste modo ser atribudo ou desatribudo do lado de fora.
Isto ento especialmente utilizvel quando, por exemplo, somente componentes
individuais dos tipos de dados complexos tem que ser atribudo ou desatribudo
ou parmetros so diretamente lincados com campos input/sada nos OPs.
Exceo: Parmetros in/out dos tipos de dados complexos no podem ser
atribudos ou desatribudos do lado de fora.
Inicializao

Parmetros de blocos e variveis estticas podem ser inicializadas no FB


declarao. Se um DB instance ento criado, ento os valores iniciais
especificado na declarao so inseridos no DB instance.
Exceo: Parmetros in/out dos tipos de dados complexos no podem ser
inicializados.

Nota

Se o registrador DI ou o registrador AR2 estiver sobrescrito dentro do FB


processado, ento o acesso aos dados instance (parmetros input, sada, in/out e
variveis estticas) podem ser mais longas do que feito dentro do FB.

Instrues UC, CC

Blocos podem tambm ser chamados com instrues independentes do RLO (UC)
ou com instrues dependentes do RLO (CC).
UC e CC podem somente ser usados quando o chamado do FB no tem dados
instance, isto , nenhum dos parmetros de blocos ou nenhuma varivel esttica foi
declarada na seo de declarao.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 12Chamada Blocos e Modelo Multi-instance

Exerccio 6: O Modelo Transportador para Planta de


Engarrafamento
Recipiente principal

Q 5.0
sensor de
garrafa
I 8.5

Bico enchedor

sensor de
garrafa
I 8.6

sensor de
garrafa
I 8.7

Q 8.5 transportador para frente


Q 8.6 transportador para trs

SIMATIC S7
Siemens AG 1999. All rights reserved.

Tarefa

Siemens Ltda.
Training Center

Date:
File:

04.10.2007
PRO2_06P.13

Conhecimento em Automao
Training Center

Uma planta de engarrafamento est sendo automatizada conforme descrito:


A planta pode ser operada atravs de dois modos de operao "Manual" e
"Automtico". Adicionalmente, uma lgica correspondente para ligar e desligar o
sistema existente.
Ligando e desligando: A planta pode ser ligada usando a entrada I 0.0
(boto de pulso com funo NA). A planta desligada novamente usando a
entrada I 0.1 (boto com contato NF). Quando a planta ligada, o LED
da sada
Q 8.1 acesa.
Escolhendo o modo de operao: quando a planta ligada, um modo de
operao pode ser escolhido.
Modo Manual presetado com I 0.4 = 0 e Modo Automtico presetado com I
0.4 = 1. O O modo selecionado adotado com um pulso na entrada I 0.5. O
indicador do modo selecionado (Manual = Q 8.2,
Automtico = Q 8.3).
Quando o modo alterado ou a planta desligada, o modo previamente
selecionado deselecionado.
Controle do transportador em modo manual: Em modo manual, o
transportador pode ser movimentado para frente com o boto de pulso
I 0.2
(Q 8.5) e para trs com I 0.3 (Q 8.6).
Controle do transportador em modo automtico: no modo automtico, o
motor de acionamento (Q 8.5) liga e se mantm ligado enquando o boto
desliga no para pressionado (I 0.1) ou at que o sensor (I 8.6) detecte
uma
garrafa na posio de enchimento.
Enchendo uma garrafa: quando a garrafa estiver sobre a estao de
enchimento (I 8.6=1), o enchimento comea. O procedimento de
enchimento
realizado em um perodo de 3 segundos e indicado pela sada Q 5.0.
Contagem de garrafas: Outro sensor utilizado para arquivar o nmero de
garrafas vazias. O sensor I 8.7 arquiva as garrafas cheias. As garrafas cheias so
contadas com a planta em operao e so mostradas no display digital QW 6.

ST-7PRO2
Pgina 13Chamada Blocos e Modelo Multi-instance

Exerccio 6.1a: Planta de Engarrafamento Modo de Seleo


DB15
Liga / desliga planta
I 0.0:
Ligar (NA, boto de pulso)
I 0.1:
Desligar (NF, boto de pulso)
Q8.1:
Planta ligada
Modo Manual / Automtico
I 0.4:
Automtico / Manual
I 0.5:
Confirma o modo
Q 8.2:
Modo Manual selecionado
Q 8.3:
Modo Automtico selecionado

SIMATIC S7
Siemens AG 1999. All rights reserved.

Nota

Controlando o
modo: FB15

Siemens Ltda.
Training Center

FB15: "Modo de seleo"


...

EN
Plant_on

Q8.1

Stop

OM_Man

Q8.2

Auto_Man

OM_Auto

Q8.3

I 0.0

Start

I 0.1
I 0.4
I 0.5

OM_activate

Date:
File:

04.10.2007
PRO2_06P.14

ENO

Conhecimento em Automao
Training Center

O controle de equipamentos de automao (acionamentos, transportador de


correias, etc.) tomam lugar usando blocos de funes.
Para no infringir os princpios da programao estruturada, voc no deve
acessar diretamente endereos globais como entradas, sadas, memrias bit etc.
dentro de um bloco de funes. Cada informao transferida com sinais do
processo ou de outros blocos do programa do usurio deve tomar lugar usando os
parmetros do bloco.
Somente na chamada de um bloco no nvel mais alto, isto , no OB associado,
voc pode atribuir sinais de entrada do processo ou sinais de sada diretamente
aos parmetros do bloco.
Voc ir encontrar uma tabela de smbolos na pasta de programa
Chap_06_1 do projeto "Pro2_ex51" para o exerccio 6.1.
Antes de mais nada, criar um FB15 "Modo de Seleo", no qual a lgica completa
de Liga/Desliga e a seleo do modo da planta implementado.
FB15 " Modo de Seleo" tem os seguintes parmetros de entradas e sadas:
#Start (in, BOOL): A planta ligada usando #Start (1-ativo).
#Stop (in, BOOL): A planta desligada usando #Stop (0-ativo). O parmetro de
entrada #Stop tem prioridade sobre #Start.
#Plant_on (out, BOOL): Quando a planta ligada # Plant_on ajustada para "1".
Voc pode selecionar o modo quando a planta ligada.
#Auto_Man (in, BOOL): #Auto_Man=0 seleciona modo manual
#Auto_Man=1 seleciona modo automtico
#OM_activate (in, BOOL):O modo selecionado confirmado quando existe um
pulso em #OM_activate.
O modo ativo indicado pelo FB15 nos seguintes parmetros de sada :
#OM_Man (out, BOOL): modo manual est ativo
#OM_Auto (out, BOOL):
modo automtico est ativo

ST-7PRO2
Pgina 14Chamada Blocos e Modelo Multi-instance

Exerccio 6.1b: Planta de Engarrafamento - Transportador


DB16
Modo Manual
I 0.5:
Jog p/frente
I 0.6:
Jog p/trs
Q 8.5:
Transportador p/frente
Q 8.6:
Transportador p/trs
Modo Automtico
I 8.6:
Sensor: local enchimento
I 8.7:
Sensor: contagem garrafas
Q 5.0:
Enchimento ativo
QW 6::
Mostra garrafas cheias

FB16: "Controle Transportador"


...

EN

Q8.2

OM_Man

Q8.3

OM_Auto

I 0.2

Jog_para
Conv_back

I 0.3
I 8.6
I 8.7

Jog_back
Sensor_fill
Sensor_cheia

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.15

Conv_para

Q 8.5
Q 8.6
Q 5.0

Filling_active

QW 6

Full_bottles
ENO

Conhecimento em Automao
Training Center

Controle
Criar um FB16 "Controle Transportador", contendo a lgica complete para o
transportador: FB16 controle do transportador em modo manual e automtico.
FB16 tem os seguintes parmetros de entrada e sada :
#OM_Man (in, BOOL): Transportador operado no modo manual.
#OM_Auto (in, BOOL): Transportador operado no modo automtico.
#Jog_para (in, BOOL): O transportador pode ser movimentado para frente no modo
manual usando esta entrada. Esta entrada sem importncia no modo modo
automtico.
#Jog_back (in, BOOL): O transportador pode ser movimentado para trs no modo
manual usando esta entrada. Esta entrada sem importncia no modo modo
automtico.
#Sensor_fill (in, BOOL): Indica que uma garrafa vazia se encontra posio
enchimento.
#Sensor_cheia (in, BOOL): Indica que outra garrafa cheia passou pela barreira de
contagem garrafas cheias.
#Conv_para (out, BOOL): Entrega o sinal de controle para operao do
transportador p/frente.
#Conv_back (out, BOOL): Entrega o sinal de controle para operao do
transportador p/trs.
#Filling_active (out, BOOL): Indica que o enchimento est ativo.
#Full_bottles (out, WORD): D o nmero de garrafas cheias em formato BCD.
Chamada de ambos os blocos com o DB instance associado DB15 e DB16 no OB1
e atribuir os parmetros dos FBs com os sinais do painel de operao (simulador)
ou com os sinais do processo (transportador) conforme as figuras acima.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 15Chamada Blocos e Modelo Multi-instance

Estrutura do Modelo Multi-instance

DB10

FB10
p.ex. OB1

...
stat Drill
FB1
stat Motor_1 FB2
stat Motor_2 FB2

FB1
Algortmo
da
furadeira

Dados p/
furadeira

.
Call FB10,DB10
.

Call Drill
FB2

Controle
de motor

Call Motor_1
.
Call Motor_2

Dados p/
Motor_1

Dados p/
Motor_2

DB instance do FB10

SIMATIC S7
Siemens AG 1999. All rights reserved.

Modelo
Multi-instance

Vantagens

Siemens Ltda.
Training Center

Date:
File:

04.10.2007
PRO2_06P.16

Conhecimento em Automao
Training Center

Adicionalmente a atribuio de valores de blocos de funes pela


especificao de um DB instance na chamada de um FB, o STEP 7 tambm
suporta a declarao explcita de FBs instances dentro de um bloco de funes de
alto nvel.
Por isto, instances de chamadas de blocos de funes so declaradas com tipos de
dados FB1 ou FB2 usando identificadores simblicos (Drill, Motor_1 e Motor_2), na
seo de declarao da chamada do bloco de funes FB 10 na seo "variveis
estticas". Dentro de bloco de funes de alto nvel, os instances individuais so
ento chamados usando seu identificador simblico. O bloco de funes de alto
nvel FB10 deve portanto ser chamado com com seu prprio DB instance (DB10).
O STEP 7 assegura, na criao de DB instance de alto nvel, que as reas de
dados necessrias para os instances individuais sejam atribudas na rea de dados
do FB10 de alto nvel.
Na chamada dos instances individuais usando os nomes simblicos, a chamada
macro assegura que o registrador AR2 seja ajustado no incio da rea de dados
atribudos ao instance de forma que os parmetros e variveis locais do instance
sejam tambm acessados durante o processamento do chamado bloco de funes.
The utilizao do modelo multi-instance tem as seguintes vantagens:
Os instances individuais no requerem seu prprio bloco de dados a cada
vez. Dentro de uma chamada hierrquica dos blocos de funes, somente um
DB instance "vestido" na chamada do bloco de funes
"mais externo".
O modelo multi-instance "solda" um bloco de funes e uma rea de dados
instance dentro de um mesmo objeto (FB instance), que pode tambm ser
manipulado como uma unidade. O programador no precisa se preocupar com o
gerenciamento (criao, endereamento) das reas de dados instance
individuais. Ele deve simplismente forcecer um DB
instance para o FB "mais
externo".
O modelo multi-instance suporta o estilo de programao orientada a objeto.

ST-7PRO2
Pgina 16Chamada Blocos e Modelo Multi-instance

Programao Orientada a Objeto usando Multi-instances


Exemplo: Linha de Prensas

FB: "Linha de Prensas"

Prensa_1

Prensa_2

FB: #Prensa_1
FB: # Puncionador
FB: #Guarda

Puncionador
Guarda
FB: #Prensa_2
FB: # Puncionador
FB: #Guarda

Transportador
FB: #Transportador

Diviso Tecnolgica

SIMATIC S7
Siemens AG 1999. All rights reserved.

Unidades do
processo

Estilo de
programao
orientada a
objeto

Reutilizao de
Software

Siemens Ltda.
Training Center

Diviso Tecnolgica do
programa com a ajuda de
FB instance

Date:
File:

04.10.2007
PRO2_06P.17

Conhecimento em Automao
Training Center

Unidades do processo so objetos fsicos do processo, como as unidades de


uma linha de montagem (correia transportadora, estaes de processamento) ou
uma mquina completa ou partes de uma mquina (p.ex. uma prensa completa ou
o puncionador ou a guarda de uma prensa).
Unidades de processo so usadas para critrio de identificao lgica. Eles so,
como regra, de um projeto hierrquico. Deste modo, unidades de processo podem,
desta forma, conter sub-unidades (e.g. a unidade "prensa" contem as unidades
"puncionador" e "guarda"). Unidades de processo podem in deste modo serem
projetadas para mais detalhadas sub-unidades. (Agregao).
Voc pode implementar um estilo de programao orientada a objeto com
a ajuda de blocos de funes.
A descrio tcnica de uma unidade de processo ou programa de processo
de sub-unidade feito com um FB instance. A diviso do programa do usurio em
unidades arquivada pela declarao FB instances de baixo nvel dentro de um FB
de alto nvel.
Desta forma, a mesma diviso dentro de unidades de processo arquivada no
programa do usurio como no sistema existente ou mquina. (Conceito de
programao orientada a objeto agregao).
Este conceito hierrquico oferece uma alta disponibilidade para reutilizao
de software gerado uma nica vez e portanto oferece um grande potencial econmico na
criao, modificao e manuteno de programas do usurio:
Toda vez que um fabricante cria uma sub-unidade de processo (vlvula, motor,
etc.),
ele tambm entrega um FB para controle desta sub-unidade de processo.
Toda vez que uma unidade de processo fsico construida dentro de uma grande
unidade, um FB instance da unidade tambm declarada no FB da
unidade de alto
nvel.
FBs so os componentes bsicos de controle de programa. Em estgios de planejamento
de um programa, os FBs tem a mesma tarefa que os circuitos integrados (CIs) em placas de
circuito impresso de fabricantes. A estrutura do programa do usurio consiste de FBs prfabricados, que devem simplismente ser interconectados.

ST-7PRO2
Pgina 17Chamada Blocos e Modelo Multi-instance

21

Implementando uma " Linha de Prensa " no STEP 7


FB4:"Punc."

DB10

FB1:"Prensa"
Dado do FB10

...

OB1

FB4
FB10:" Linha de Prensa " stat Punc.
stat Guarda FB5
...
...
stat Prensa_1 FB1
stat Prensa_2 FB1
Call #Punc.
stat Transporte FB2
.
...
Call #Guarda

Dado para Prensa_1


FB5:"Guarda"

Prensa_1. Guarda

FB1: "Prensa"
Call FB10, DB10

Call #Prensa_1
.
Call #Prensa_2
.
Call #Transporte

...
stat Punc.
FB4
stat Guarda FB5
...
Call #Punc.
.
Call #Guarda

Prensa_1. Punc.

Dado para Prensa_2


FB4:"Punc."
Prensa_2. Punc.

Prensa_2. Guarda
FB5:"Guarda"
Dado para Transporte

FB2: "Transporte"

...

DB Instance do FB10

...

NOTA: Punc. = Puncionador

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.18

Conhecimento em Automao
Training Center

Modelo
Multi-instance

Quando um modelo multi-instance usado, o DB instance contem os


dados para diversos blocos de funes em uma chamada hierrquica. Para isto, os
instances dos FBs chamados so declarados usando identificadores simblicos
como varivel stat na seo de declaraes do FB chamado.
O FB instance "mais externo" para a unidade de processo (neste caso: FB10 "Linha
de Prensa") deve ser chamado absolutamente ou simbolicamente acompanhado
pela especificao de seu prprio DB instance (neste caso: DB10).

Declaraes

Como variveis stat da seo de declaraes do FB10 ("Linha de Prensa"), duas


variveis instances do tipo de dado FB1 ("Prensa") com os nomes #Prensa_1 e
#Prensa_2 foram declaradas, bem como tambm um instance do tipo de dado FB2
("Transporte") com o nome #Transporte.
Na seo de declaraes do FB1 ambos, um instance do FB4 ("Puncionador") com
the nome #Puncionador e um instance do FB5 ("Guarda") com the nome #Guarda,
foram declaradas.
Na seo de instruo do FB1 (Prensa"), os respectivos FBs instances so ento
chamados usando os nomes simblicos #Puncionador e #Guarda que estavam
declarados na seo de declarao.

Nota

A declarao de um instance na seo de declarao de um bloco de funes


trabalha somente se o FB, do qual um instance est sendo declarado, j existe.
Quando projetado como uma chamada hierrquica, estes FBs que esto sendo
chamados por ltimo devem ser criados primeiro.

Multi-instance DB

The multi-instance DB tem the same structure as the declarao parts of the
funes blocos concerned. se an instance chamado no instruo seo, ento it
automatically acessado the dado no corresponding seo of the instance DB
(DB10).

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 18Chamada Blocos e Modelo Multi-instance

Propriedades do Modelo Multi-instance


Vantagens do modelo Multi-instance :
z

Somente um DB necessrio para diversos instances.

Nenhum gerenciamento adicional necessrio na montagem das


reas de dados "privados" para os respectivos instances.

O modelo multi-instance opera como "estilo de programao


orientada a objeto" (reutilizao por meio de "Agregao").

Maximum nesting depth of 8

Pr-requisitos para os FBs:


z

Acesso direto aos sinais do processo (I, Q) dentro do FB no


possvel.

Acesso aos sinais do processo ou comunicao com outras unidades


de processo podem somente tomar lugar usando parmetros do FB.

O FB pode somente "lembrar" estados do processo in suas variveis


estticas, no em DBs globais ou memrias bit (M).

Nota:
z

Dado instance tambm pode ser acessado do lado de fora"


p.ex. no OB1: L "Linha de Prensa".Prensa_2.Puncionador.<VarName>

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.19

Conhecimento em Automao
Training Center

Benefcios do modelo Com o modelo multi-instance voc pode armazenar as respectivas sees
Multi-instance
de dados de diversos instances de um e a mesma chamada hierrquica em um
simples DB.
Desta forma somente um DB necessrio para diversos instances.
Com o modelo multi-instance nenhuma medida para a administrao de dados
locais no FB so necessrias, exceto para a atribuio de um DB instance comum.
O modelo multi-instance suporta o conceito de programao orientada a objeto.
Cdigos e dados, que so necessrios para o controle de unidades de processo
so agregados em FBs.
Se uma unidade de processo consiste de sub unidades hierrquicas ento
exatamente esta estrutura pode ser refletida no programa do usurio atravs do
modelo multi-instance.
O programa de controle pode ser projetado com FBs instances do mesmo modo
que as mquinas so constitudas de componentes.
O STEP7 suporta uma dimenso de aninhamento de 8 com o modelo multiinstance.
Pr-requisitos para
Multi-instances

Siemens Ltda.
Training Center

De forma a utilizar um FB como multi-instance sem problemas, os seguintes


pontos devem ser atendidos:
Para o propsito de controle de processo, nenhum acesso direto a
endereos globais da CPU (como as entradas e sadas) so permitidos.
O acesso a entradas e sadas globais impossibilitam a reutilizao.
Comunicao com o processo ou com outras sees de programa (FBs)
deve somente ser feito usando FB parametrizveis.
Somente aps a integrao do FB dentro de uma unidade de alto nvel,
a atribuio do FB atravs da lista de parmetros executa com a chamada do
FB.
Estados ou outras informaes sobre a unidade a ser controlada devem ser
lembradas pelo FB em suas prprias variveis estticas.

ST-7PRO2
Pgina 19Chamada Blocos e Modelo Multi-instance

Exerccio 6.2: O Modelo Transportador como Linha de Montagem


Seqncia de processo para a
correia transportadora

Seqncia do processo para a estao


de trabalho
z
z
z
z
z

Processamento da pea
Processamento terminado
Lugar da pea na correia
Espera pela pea bruta
Pega pea bruta da correia

Espera para trmino da pea


z Transporte para montagem final
z Montagem final, insere pea bruta
z Transporte para estao
Chaves de proximidade
Barreira de luz
"INI1", "INI2", "INI3"
"LB1"

LED "H4"
LEDs
"H1", "H2", "H3"

SIMATIC S7
Siemens AG 1999. All rights reserved.

Chave de
reconhecimento
"S4"

Chaves de
reconhecimento
"S1", "S2", "S3"
Date:
File:

04.10.2007
PRO2_06P.20

Conhecimento em Automao
Training Center

Objetivo

Por meio de uma linha de montagem, o princpio de soluo da tarefa est sendo
praticado usando programao de FBs. Um FB separado usado em cada caso
para o controle da estao de trabalho 1 e a correia transportadora. O FB para a
estao de trabalho estar funcionando como multi-instance.
No prximo exerccio, a funcionalidade da linha de montagem dever ser
expandida para as estaes de trabalho 2 e 3 por meio do modelo multi-instance.
Princpio das funes Para os exerccios de programao de FBs, o modelo transportador para
do modelo
operar como em uma linha de montagem com as seguintes funcionalidades
transportador
(por enquanto, somente uma estao de trabalho):
1. O sistema est no estado inicial, isto , a estao de trabalho 1 tem uma pea que est
sendo processada no momento. Isto indicado com um LED "H1" pisca lento na
localizao 1.
A correia transportadora no est ocupada, ou seja, no h pea em "INI1" nem na
montagem final "LB1". O motor da correia est desligado.
2. Aps a pea ter sido terminada, o operador d o reconhecimento disto com a chave de
reconhecimento "S1". O LED "H1" pisca rpido.
3. O operador coloca a pea terminada na correia "vazia" em frente a chave de
proximidade "INI1". O LED "H1" desliga.
4. A correia ento transporta a pea terminada para a montagem final.
O LED "H4" pisca rpido durante o transporte. Quando a posio final de montagem
alcanada, o LED "H4" fica aceso.
5. O operador na montagem final pega a pea terminada da correia e coloca a nova pea
bruta na correia. Ele ento d o reconhecimento disto com a chave "S4".
6. A correia transporta a nova pea bruta de volta para a estao de trabalho 1. O LED
"H4" pisca rpido durante o transporte. Quando a chave de proximidade "INI1"
alcanada, o LED "H1" da estao de trabalho comea a piscar rpido.
7. O operador pode pegar a pea bruta da correia e coloc-la na estao de trabalho 1 e
recomear o processo novamente. O LED "H4" pisca lento novamente. O processo de
trabalho recomea com Step 1.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 20Chamada Blocos e Modelo Multi-instance

Exerccio 6.2a: Estrutura de Programa para uma Estao de


Trabalho
DB1
FB1: "Estao"

Transporte
I 0.0
"INI1"

Initial

LED

Proxy_switch

"S1"

Acknowledge

M10.1

Clock_bit_q

M10.3

Clock_bit_s

"H1"

Transp_req

Conv_busy
Estao_1

Estao_2

Estao_3

DB2
FB2: "Transporte"
I 0.0
OB1

Initial

"LB1"

L_barrier

"S4"
Call FB1, DB1
...
...

Acknowledge

LED
Conv_right
Conv_left

"H4"
"K1_CONVR"
"K2_CONVL"

Transp_req
M10.1

Clock_bit

Call FB2, DB2

Diviso tecnolgica do programa


SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.21

Conhecimento em Automao
Training Center

Tarefa

Na primeira etapa, somente uma estao de trabalho da linha de montagem est


sendo implementada. O controle do sistema em questo desta forma dividido em
duas unidades de processo :
Estao: controle da primeira estao de trabalho, implementado pelo FB1 com
o nome simblico global "estao" (tabela de smbolos globais).
com
Transporte: controle da correia transportadora, implementado pelo FB2
o nome simblico global "transporte"
Para o controle total da linha de montagem, ambos FBs so ento chamados no
OB1 cada um com seu prprio DB instance.

O que fazer

Voc ir encontrar os correspondentes blocos de funes FB1 e FB2 bem como a


respectiva tabela de smbolos na pasta de programa Chap_06_2 do projeto
"Pro2_e_x51" para o exerccio 6.2.
1. Abra o projeto "Pro2_e_x51" e insira a configurao de hardware da sua
estao de treinamento.
2. Para a CPU, atribuir parmetros para um bit de clock no MB10 e ento
transfira a configurao de hardware para dentro da CPU da estao de
treinamento.
3. Chamar o FB1 com o DB instance DB1 no OB1 e atribuir os sinais de
processo para a interface de parmetros. Atribuir os parmetros de entrada
#Clock_bit_q com M10.1 e #Clock_bit_s com M10.3 .
4. Programar a chamada do FB2 (DB instance DB2) aps a chamada do FB1 no
OB1. Atribuir os parmetros de entrada e sada de acordo para a descrio do
FB1 e FB2.
5. Transferir os blocos para a CPU e testar a funcionalidade do seu programa.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 21Chamada Blocos e Modelo Multi-instance

21

FB1 "Estao" Mtodo de Funcionamento


z

Declaraes no FB1:

Modelo de estado:

FB1: "Estao"
IN-Parameter:
Initial
Proxy_switch
Acknowledge
Clock_bit_q
Clock_bit_s

pea
processando

Tipo de dado:
BOOL
BOOL
BOOL
BOOL
BOOL

OUT-Parameter:
LED
Transp_req

BOOL
BOOL

I/O-Parameter:
Conv_busy

BOOL

Stat. Var.:
estado STRUCT
Process_piece
Piece_finished
Place_part_on_conv
Wait_for_piece
Take_piece_from_conv
END_STRUCT

O LED fica
aceso

AN Proxy_switch

pea
terminada
O LED pisca
lento

pega_pea
da_correia
O LED pisca
rpido

AN Conv_busy

A Proxy_ switch
BOOL
BOOL
BOOL
BOOL
BOOL

A Acknowledge

espera
pela_pea
O LED est
desligado

pea no lugar
na_correia
O LED pisca
rpido

AN Proxy_switch
A Transp_req

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_06P.22

Conhecimento em Automao
Training Center

Inicializao

Com um impulso no parmetro de entrada #Initial , FB1 pode ser inicializados com
o estado #Process_piece. Atribuir #Initial com I 0.0.

#Process_piece

A pea processada neste estado. O LED "H1" est continuamente aceso para
indicar o processamento.
Uma transio para o estado #Piece_finished ocorre quando o operador reconhece
o trmino da pea com a chave "S1" .

#Piece_finished

Neste estado o LED pisca com a freqncia do #Clock_bit_s (freqncia pisca


lento). O operador aguarda pela correia transportadora para ser habilitada
(Importante para a expanso para 3 estaes!).
Se o transportador est vazio (#Conv_busy=0), ele imediatamente definido como
ocupado (Conv_busy=1) e vai para o estado #Place_piece_on_Conv.

#Place_piece_
on_conv

Neste estado - o LED pisca com a freqncia do #Clock_bit_q


(freqncia pisca rpido) - o operador pode colocar a pea no transportador. Com o
sinal #Proxy_switch=1, o sinal #Transp_req=1 tambm setado, ento inicia o
movimento do transportador para a posio final de montagem.
Uma transio para o estado #Wait_for_piece ocorre quando a pea deixa a chave
de proximidade (#Proxy_switch=0).

#Wait_for_piece

O operador espera para a chegada de uma nova pea bruta neste estado; o LED
em frente da estao est desligado.
Com the chegada de uma nova pea bruta (Proxy_switch =1), a transio para o
estado #Take_part_from_conv toma lugar.

#Take_piece_
from_conv

Neste estado - o LED pisca com #Clock_bit_q (freqncia pisca rpido) - a


pea pode ser pega do transportador.
Uma transio para o estado #Process_piece toma lugar quando a pea est
acessvel (#Proxy_ switch =0).

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 22Chamada Blocos e Modelo Multi-instance

FB2 "Transporte" Mtodo de Funcionamento


z

Interface do FB2:

Modelo de estado:

FB2: "Transporte"
IN-Parameter:
Initial
L_Barrier
Acknowledge
Transp_req
Clock_bit
OUT-Parameter:
LED
Conv_right
Conv_left

Siemens AG 1999. All rights reserved.

A #Transp_req

AN #Tansp_req

BOOL
BOOL
BOOL

Stat. Var.:
estado
STRUCT
Waiting
Conv_right
Assembly
Conv_left
END_STRUCT

SIMATIC S7

Espera
O LED est
desligado

Tipo de dado:
BOOL
BOOL
BOOL
BOOL
BOOL

Transportador
p/esquerda
O LED pisca

BOOL
BOOL
BOOL
BOOL

Transportador
p/direita
O LED pisca

AN #L_Barrier

A #Acknowledge

Montagem
O LED est
aceso

Date:
File:

04.10.2007
PRO2_06P.23

Conhecimento em Automao
Training Center

Inicializao

O FB2 pode ser inicializado com o estado #Waiting atravs do sinal de entrada
#Initial. Atribui o parmetro de entrada #Initial com I 0.0.

#Waiting

Neste estado, a correia transportadora espera pelo trmino da pea que colocada
no transportador por uma das estaes. Durante o tempo que a correia
transportadora est no estado #Waiting, ela fica parada e o LED "H4" est
desligado.
Com o estado 1 o sinal #Transport_req, uma transio para o estado #Conv_right
toma lugar.

#Conv_right

Neste estado, a pea transportada na direo da montagem final. Durante o


tempo que o transportador movimentado, o LED "H4" pisca com a freqncia
(M10.1) dado pelo parmetro de entrada.
A montagem final alcanada, isto , a chave para o estado #Assembly toma
lugar, quando a pea terminada passar pela barreira de luz "LB1".

#Assembly

Neste estado, o operator troca a pea terminada com uma nova pea bruta. O LED
"H4" fica aceso neste estado. O operador sinaliza o trmino desta tarefa com a
chave "S4".
Este sinal tambm comanda para a transio para o estado #Conv_left.

#Conv_left

Neste estado, a pea bruta transportada na direo da estao de trabalho.


Durante o tempo que o transportador movimentado, o LED "H4" pisca com a
freqncia dada pelo parmetro de entrada #Clock_bit.
O transportador parado quando o sinal de entrada #Transp_req resetado. Uma
transio para o estado #Waiting tambm toma lugar.

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 23Chamada Blocos e Modelo Multi-instance

Exerccio 6.2b: Expanso para 3 Estaes


DB10

FB10
...
stat
stat
stat
stat

OB1

Estao_1 FB1
Estao_2 FB1
Estao_3 FB1
Transporte FB2

Dado para
Estao_1

.
FB1

Call FB10,DB10
.

Call Estao_1

Dado para
Estao_2

Call Estao_2
Call Estao_3

Dado para
Estao_3
FB2

Call Transporte

Dado para
Transporte

DB Instance do FB10

SIMATIC S7
Siemens AG 1999. All rights reserved.

Estrutura do
programa

Siemens Ltda.
Training Center

Date:
File:

04.10.2007
PRO2_06P.24

Conhecimento em Automao
Training Center

Na segunda parte deste exerccio, a funcionalidade total do modelo


transportador para todas as trs estaes de trabalho est sendo finalizada. Para
isto, o controle total do modelo transportador (3 estaes e uma correia
transportadora) est sendo movida para dentro de um nico FB (FB10).
Dentro do FB10, o controle das trs estaes de trabalho implementado como
instances separados do FB1 e o controle da correia transportadora esto
implementados como instance do FB2.

ST-7PRO2
Pgina 24Chamada Blocos e Modelo Multi-instance

Interconexo de Parmetros de Blocos


DB10: "DB_linha_montagem"

I 0.0
"INI1"
"S1"
M10.1
M10.3

#Estao_1
Initial
LED
Proxy_switch
Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy

I 0.0
"INI2"
"S2"
M10.1
M10.3

#Estao_2
Initial #estao_2
LED
Proxy_ switch
Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy

"H1"

FB10: "linha_montagem"

#Transporte

"H2"
I 0.0

Initial

"LB1"

L_Barrier

"S4"

Acknowledge

LED

"H4"

Conv_right

"K1_CONVR"

Conv_left

"K2_CONVL"

Transp_req
I 0.0
"INI3"
"S3"
M10.1
M10.3

#Estao_3
#estao_3
Initial
LED
Proxy_ switch
Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy

SIMATIC S7
Siemens AG 1999. All rights reserved.

M10.1

Clock_bit

"H3"

Date:
File:

04.10.2007
PRO2_06P.25

Conhecimento em Automao
Training Center

O que fazer

1. Primeiro de tudo criar um FB10. Na seo stat. Var., declare os trs


instances of FB1 com os nomes: #Estao_1, #Estao_2 e
#Estao_3 e um instance do FB2 com o nome: #Transporte.
2. No FB10, primeiro de tudo, chamar na seqncia #Estao_1, #Estao_2,
#Estao_3 e #Transporte e interconectar os parmetros dos blocos
correspondentemente para o esquema acima.
Note a interconexo do parmetro in/out #Conv_busy. Como este pode
ser
implementado? Podem ser usadas aqui as variveis auxiliares temporarias ou
estticas?
Tambm preste ateno para a interconexo do parmetro de sada
#Transp_req (lgica OU) para o parmetro de entrada #Transp_req do
controle da correia. Como pode ser implementada como uma interconexo?
3. Criar um DB10 claramente vinculado com o FB10. Edite o DB10 e verifique
sua estrutura na declarao e data view do Editor de DB.
4. Chamar o FB10 com o DB instance DB10 no OB1.
5. Transfira os blocos participantes para a CPU e teste o resultado.

Perguntas

Quais so as vantagens e desvantagens deste tipo de soluo?


Como poder o controle ser expandido, de forma que uma linha de montagem
"vazia" pode tambm ser "enchida" ou uma linha "cheia" tambm pode ser
"esvaziada".

Siemens Ltda.
Training Center

ST-7PRO2
Pgina 25Chamada Blocos e Modelo Multi-instance