Você está na página 1de 27

ST-7STOE

Funes e Blocos de Funes


Captulo 3
Pgina 1
Siemens Ltda.
Training Center
Sumrio Pgina
Introduo ......................................................................................................................................... 2
Variveis Temporrias ...................................................................................................................... 3
Tamanho da Pilha de Dados Locais ................................................................................................. 4
Bytes Necessrios de um Bloco na Pilha de Dados Locais ............................................................. 5
Ocupao Total na Pilha de Dados Local ........................................................................................ 6
Exerccio: Uso de Variveis Temporrias ............................................................................. 7
Exemplo de uma Mensagem Mostrada Indicando um Problema no Processo ............................... 8
Parmetros Atribuveis dos Blocos .................................................................................................. 9
Declarao dos Parmetros Formais ............................................................................................... 10
Editando um Parmetro Atribuvel de um Bloco .............................................................................. 11
Chamando um Parmetro Atribuvel de um Bloco ........................................................................... 12
Usando os Parmetros EN/ENO nas Chamadas de Bloco .............................................................. 13
Exerccio: Criando um Parmetro Atribuvel de um Bloco FC ......................................................... 14
Exerccio: Chamando um Parmetro Atribuvel de um Bloco FC .................................................... 15
Blocos de Funes (FBs) ................................................................................................................. 16
Blocos de Funes para Mostrar Mensagens ................................................................................. 17
Gerando Blocos de Dados Instance ................................................................................................. 18
O Modelo Mltiplo Instance .............................................................................................................. 19
Inserindo/Apagando Parmetros de Bloco Posteriormente ............................................................. 20
Correes Quando Chamando Blocos Modificados ........................................................................ 21
Exerccio: Editando um Bloco de Funes ...................................................................................... 22
Chamando e Testando um Bloco de Funes .................................................................................. 23
Convertendo um FC em um FB usando Programas Fonte (1) ......................................................... 24
Convertendo um FC em um FB usando Programas Fonte (2) ......................................................... 25
Exerccio: Reconhecendo Tipos de Variveis ................................................................................... 26
Resumo: Chamada de Blocos ........................................................................................................... 27
Data: 04.10.2007
Arquivo: STOE_03P.1
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Funes e Blocos de Funes
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 2
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.2
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Introduo
Variveis Temporrias
so apagadas aps o bloco
associado ter sido executado
armazenamento temporrio na
Pilha L
utilizvel em OBs / FCs / FBs
Variveis Estticas
so retidas mesmo aps a
execuo do bloco
armazenamento
permanente em DBs
s pode ser usado em FBs
Dados / Variveis Locais
(vlido somente em um bloco)
Dados / Variveis Globais
(vlidos no programa todo)
PII / PIQ
I/ O
M / T / C
reas DB
simblico absoluto
Acesso
Geral At agora, as entradas e sadas na planta de engarrafamento foram
endereadas com seus parmetros atuais. Voc no pode atribuir parmetros
aos blocos.
Voc deveria escolher este procedimento, por exemplo, para criao de um
programa que somente utilizado uma vez com uma mquina especial.
Para freqentes funes recorrentes em grandes sistemas, voc cria
universalmente utilizveis blocos com parmetros atribuveis (FC, FB). Estes
tm parmetros formais de entrada e sada, que so atribudos parmetros
atuais quando o bloco chamado.
O ajuste da funcionalidade do bloco ao hardware toma lugar com o parmetro
atribudo quando o bloco chamado; a vida interna do bloco no muda.
Variveis Locais At agora voc havia usado variveis globais (memrias bit e blocos de dados)
para armazenar dados de produo, por exemplo. Neste captulo voc ir
encontrar mais sobre armazenamento de dados em variveis locais.
Variveis Variveis Temporrias so variveis que somente so armazenadas enquanto
Temporrias o bloco est sendo executado. Eles podem ser usados em todos os blocos (OB,
FC, FB).
Variveis Estticas Se os dados esto sendo retidos mesmo aps o bloco ser executado, eles
devem ser armazenados em variveis estticas.
Variveis estticas somente podem ser usadas em blocos de funes.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 3
Siemens Ltda.
Training Center
Geral Variveis temporrias podem ser usadas em blocos (OB, FC, FB). Eles so
usados para armazenar temporariamente informaes enquanto o bloco est
sendo executado. Os dados so perdidos quando o bloco terminado.
Os dados so armazenados na pilha L (pilha de dados locais). Esta uma rea
de memria separada na CPU.
Declarao Voc define as variveis na tabela de declarao do bloco. Na linha "temp"
voc insere um nome de varivel e um tipo de dado associado.
Voc no pode pr-definir aqui um valor inicial ou de partida.
Aps voc ter salvo o bloco, a memria locada na pilha L mostrada na coluna
de Endereos".
Acesso No Network 1, voc v um exemplo de acesso simblico para uma varivel
temporria.
O resultado da subtrao armazenado na varivel temporria result.
Voc tambm pode fazer um acesso absoluto (T LW0). Voc deve,
You can also make an absolute access (T LW0). You should, de qualquer
modo, tentar escapar disto uma vez que o programa fica difcil para ler.
Nota # Nomes de variveis que comeam com o caractere especial # so variveis
locais as quais so somente vlidas dentro do bloco no qual eles esto
declarados na tabela de declaraes.
O Editor de Programas insere automaticamente o caractere especial.
Data: 04.10.2007
Arquivo: STOE_03P.3
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Variveis Temporrias
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 4
Siemens Ltda.
Training Center
Pilha de Dados Local A pilha de dados local (pilha L) uma rea de memria que contem as
variveis temporrias (substitudas por memrias de rascunho no SIMATIC
S5) dos blocos.
Tamanho da Pilha Quando o sistema operacional chama um OB, uma rea na pilha L de 256
de Dados Local bytes aberta enquanto o OB e os blocos chamados nele so executados.
Cada classe de prioridade so atribudos 256 bytes.
A pilha L das CPUs 313..316 possuem um total de 1536 bytes (1.5kByte).
Classes de Existem um total de oito classes de prioridade com o S7-300. De qualquer
Prioridade modo, no mais do que 6 classes de prioridade podem ser ativadas ao
mesmo tempo. Se, por exemplo, OB 100 est ativado (com classe de
prioridade 27), ento OB 1 (classe de prioridade 1) jamais pode ser ativada.
Alm disso, os OBs de erro 80 a 7 para erros assncronos somente podem ter
classe de prioridade 28, se uma falha ocorre no programa de startup. Em
outras palavras, quando eles interrompem OB 100. Mais informaes podem
ser encontradas no captulo Blocos de Organizao.
S7-400 Com as CPUs S7-400, voc pode decidir qual o tamanho da pilha de dados
locais para cada classe de prioridade (ferramenta: configurador de hardware).
Voc pode deselecionar a classe de prioridade a qual voc no necessita.
Deste modo, voc pode fazer mais dados locais disponveis para outras
classes de prioridade.
Data: 04.10.2007
Arquivo: STOE_03P.4
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Execuo
Tamanho da Pilha de Dados Locais
For S7-300:
Tamanho da
Pilha
Classe de
Prioridade
256 bytes
1
27
Tamanho total:
1.5 Kbyte
(CPU 313..316)
Tamanho total:
1.5 Kbyte
(CPU 313..316)
Startup (executa uma nica vez)
Execuo cclica
256 bytes
256 bytes
256 bytes 12
3
2
Execuo
controlada
por tempo
Interrupo Horrio-do-Dia
Interrupo Atraso-no-Tempo
Interrupo Cclica
Erro manipulao varredura
256 bytes 16
28
26
256 bytes
Execuo ativada
por evento
Interrupo de Hardware
Erro manipulao no startup
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 5
Siemens Ltda.
Training Center
Mostrando os Voc pode ver o nmero exato de bytes necessrios na pilha de dados local
Bytes Necessrios pela seleo das propriedades do bloco.
Ativar 1. No gerenciador SIMATIC, selecione o bloco com o boto direito do mouse e
ento -> Object Properties. ou
2. No gerenciador SIMATIC, selecionar o bloco com o boto esquerdo do
mouse e ento a opo de menu Edit -> Object Properties.
Notas A soma dos dados locais para um nvel de execuo (OB) de um mximo de
256 bytes com o S7-300. Cada OB individualmente sempre ocupa 20 ou 22
bytes.
Isto significa que um mximo de 234 bytes podem ser usados em um FC ou FB.
Se mais do que 256 bytes dos dados locais esto definidos em um bloco, o
bloco no pode ser transferido para dentro da CPU. A transmisso
interrompida com uma mensagem de erro The block could not be copied" (o
bloco no pode ser copiado). Dentro desta mensagem de erro existe o boto
"Details". Se voc clicar nele, uma caixa de mensagem aparece com a
explicao Incorrect local data length" (tamanho errado dos dados locais).
Data: 04.10.2007
Arquivo: STOE_03P.5
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Bytes Necessrios de um Bloco na Pilha de Dados Locais
rechts
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 6
Siemens Ltda.
Training Center
Total Ocupao na Voc pode mostrar o nmero de bytes que um programa inteiro necessita
Pilha de Dados Local na pilha de dados local com a ferramenta "Reference Data". Voc ir se
familiarizar com esta ferramenta no captulo Erros Lgicos".
A ocupao total da pilha de dados local e o nmero de bytes necessrios
por caminho de chamada mostrado na tela.
Ativar a Opo No gerenciador SIMATIC voc seleciona a pasta de bloco e ento a opo
Reference Data de menu Options -> Reference Data -> Display.
Nota Se o nmero mximo dos dados locais foi excedido durante a execuo do
programa na CPU, a CPU vai para o modo Stop. STOP caused by error
when allocating local data" (Stop causado por erro quando alocando os
dados locais) inserida como causa do erro no buffer de diagnstico.
Data: 04.10.2007
Arquivo: STOE_03P.6
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
2
5
6

B
y
t
e
s
Evento
Ocupao
na pilha L
1
OB1
OB 1
1
Sistema
operac.
Ocupao Total na Pilha de Dados Local
FC 2
c/variveis
temporr.
OB1
FC2
FC1
3
3
OB1
FC1
4
4
OB1
FC1
6
6
FC 3
c/variveis
temporr.
OB1
FC3
FC1
5
5
FC 1
c/variveis
temporr.
2
OB1
FC1
2
7
OB1
7
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 7
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Exerccio: Uso de Variveis Temporrias
trocado pela
varivel temporria
"Packages"
Objetivo Voc no est usando qualquer memria bit como armazenamento temporrio
no bloco FC 19 do programa S7 "Fill". Estas esto sendo trocadas pela varivel
temporria Packages" (pacote de garrafas).
Se voc escreveu um programa para o bloco em LAD ou FBD, as memrias bit
foram necessrias para conectar a sada do divisor com a entrada do conversor
de cdigo.
Certamente se voc escreveu um program para o bloco em STL (onde nenhuma
memria bit necessria) insira a varivel temporria Packages" para
armazenamento.
O que fazer Abra o bloco FC 19 no programa S7 "FILL" .
Defina a varivel temporria com o nome Packages" e o tipo de dado
"Integer na tabela de declarao.
Armazene o nmero de pacotes na varivel temporria.
Transfira o programa alterado e teste.
Resultado Voc agora conhece o uso de variveis temporrias.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 8
Siemens Ltda.
Training Center
Descrio Problemas (disturbances) que ocorrem esto sendo mostrados por um LED na
console do operador. Quando o problema (I1.3) ocorre, o LED (Q8.3 ou Q4.3)
pisca com 2Hz. O problema detectado na entrada de reconhecimento
(acknowledge) I 1.2. Se o problema for corrigido, o LED para de piscar. Se o
problema continua, o LED muda para aceso at o problema ser corrigido.
Programa Ento para que se mantenham os problemas, que somente existem por um
curto intervalo de tempo, no sejam perdidos, um flip flop com set dominante
(M40.0) usado.
Um RLO de deteco de transio do sinal mensagem tambm executado,
desde que a memria por outro lado imediatamente resetada quando um
problema existente reconhecido.
Se o report memory setado (mensagem no tinha sido ainda reconhecida), a
lgica AND de cima leva o LED a piscar. Com isto, a memria bit M10.3, que foi
definida como uma memria clock quando o parmetro atribudo foi feito na
CPU, gatilhado.
A lgica AND de baixo usada para deixar o LED aceso para um problema que
foi reconhecido mas ainda existe.
Data: 04.10.2007
Arquivo: STOE_03P.8
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Exemplo de uma Mensagem Mostrada Indicando um Problema no
Processo
Disturbance
LED
Acknowledge
Report Memory
Edge Mem. Bit
Disturb. Input
Acknowl.
Flash Freq.
Disturb. Input
Display
RS
&
=
>=1
&
Q S
R
P
Report Memory
Report Memory
Sugesto de Soluo
Tarefa
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 9
Siemens Ltda.
Training Center
Introduo Voc pode usar blocos de parmetros atribuveis para sesses de programa
repetitivos. Isto tem as seguintes vantagens:
o programa somente precisa ser criado uma vez.
o bloco somente armazenado uma nica vez na memria do usurio e
pode ser chamado quantas vezes voc quiser.
o bloco pode ser programado com parmetros formais (parmetros input,
output ou in/out) e somente quando o bloco chamado ele d o endereo
real (parmetro atual).
Exemplo Quando o bloco executado, a instruo A Disturbance input" verificada
vendo qual parmetro atual foi atribudo ao parmetro formal Disturbance
input". Se, quando o bloco chamado, I 1.4 assumido como parmetro atual,
ento a instruo A I 1.4" executada.
FC / FB Blocos com parmetro atribuveis podem deste modo ser FCs ou FBs.
FC20 com No exemplo, a mensagem mostrada requerida dez vezes no sistema.
Parmetros Ele criado como bloco FC 20 com parmetros atribudos e ento chamado
Atribudos dez vezes com parmetros atuais diferentes.
Data: 04.10.2007
Arquivo: STOE_03P.9
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Disturb.
input
Report
memory
Acknowledge
Edge
mem.bit
Display
Flash freq.
FC 20
Chamada
Parmetros Atribuveis dos Blocos
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
Bloco com
parmetros no
atribudos
Parmetros formais
M 40.0
M 40.1 I 1.3
I 1.2 A 8.3
M 10.3
Parmetros atuais
A #Acknowledge
R #Report Memory
U #Disturb. input
FP #Edge mem. bit
S #Report memory
A #Report memory
A #Flashing freq.
O
AN #Reportmemory
A #Disturb. input
= #Display
Bloco com parmetros atribudos
Programa
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 10
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.10
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Parmetros Atribuveis dos Blocos
Uso Mostra graficamente
Read only To the left of the block
Write only To the right of the block
Tipo de parmetro
Input parameter
Output parameter
In/out parameter
Declarao
in
out
In_out Read / write To the left of the block
Parmetros formais
Tabela de declarao do bloco FC 20
Endereos Formais Antes de voc poder criar o programa do bloco de parmetros atribuveis, voc
tem que definir os parmetros formais na tabela de declaraes.
Tipo de Parmetro Na tabela do slide, voc pode ver trs possveis tipos de parmetros e seus
usos. Favor certificar-se que quando voc tiver um acesso de leitura ou escrita a
um endereo formal que voc usa como parmetro in/out.
Exemplo do FC20 Na parte de baixo do slide, voc pode ver a tabela de declarao para a
mensagem mostrada (message display) (ver pgina anterior).
Desde que a report memory acessada como leitura (set/reset) bem como
escrita (consulta), este tem que ser definido como um parmetro in/out.
Notas Existe somente uma linha para cado tipo de parmetro na tabela de declarao.
Quando voc necessitar de diversos parmetros input, voc tem que usar a
tecla Return quando voc terminar de inserir uma linha. Uma linha adicional
para este tipo de parmetro ento aberta. Aps voc ter selecionado uma linha
de declarao, voc pode usar as opes de menu Insert -> Declaration Row ->
Before Selection / After Selection para inserir uma linha adicional.
Ateno! Se voc deseja inserir ou apagar posteriormente uma linha depois do bloco j
ter sido chamado - , voc tem que atualizar esta chamada de bloco!
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 11
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.11
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Editando um Parmetro Atribuvel de um Bloco
Aqui foi, p.ex., de bloco FC s/ parmetro atribudo:
com endereamento absoluto: I1.3
com endereamento simblico: End_left"
Notas No faz diferena se os nomes dos parmetros formais so escritos com letras
maisculas ou minsculas. O caractere "#" em frente ao nome
automaticamente inserido pela PG. Isto para indicar a voc que esta uma
varivel local que foi definida na tabela de declarao deste bloco.
possvel que quando voc escreva o programa em LAD / FBD, que o nome
no seja completamente mostrado em uma linha. Isto depende de como voc
configurou os ajustes no Editor de Programas (Options -> Customize ->
"LAD/FBD" tab -> Width of address field largura dos campos de endereo).
Smbolos 1. Se voc usa um nome simblico quando voc edita o bloco, o Editor
procura a varivel na tabela de declaraes.
Se existir, o smbolo com o # em frente a ele aceita no programa como
uma varivel local.
2. Se ela no pode ser encontrada como uma varivel local, o Editor procura na
tabela de smbolos para smbolos globais.
Se esta encontrada l, o smbolo colocada entre aspas e aceita no
programa.
3. Se voc especificar o mesmo nome simblico como global (na tabela de
smbolos) e como local (na tabela de declaraes de variveis), o Editor ir
sempre inserir a varivel local.
Se, de qualquer modo, voc deseja trabalhar com smbolos globais, voc
deve inserir o nome entre aspas quando voc estiver inserndo-a.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 12
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.12
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Chamando um Parmetro Atribuvel de um Bloco
Network 3: Primeira chamada
Network 4: Segunda chamada
Disturb.input
Acknowledge
Flash freq.
Report memory
Edge mem. bit
Display
M40.1
Position
error"
ENO
EN
End left"
....
Acknow.button"
M10.3
M40.0
FC20
Disturb.input
Acknowledge
Flash freq.
Report memory
Edge mem. bit
Display
M40.3
Q9.4
ENO
EN
End right"
A8.1
Acknow.button"
M10.3
M40.2
FC20
simblico
absoluto
Endereamento
Smbolos Smbolos Locais --> Parmetros formais
Tabela de
smbolos
Smbolos Globais
Chamada Em LAD/FBD, voc pode selecionar a chamada do browser "Program
Elements". Pontos de interrogao (??.?) so mostrados nos parmetros input,
output e in/out do bloco. Aqui voc insere o parmetro atual que voc deseja.
Nota Quando voc chama um bloco FC com parmetros atribuveis, voc deve
atribuir todos os parmetros do bloco (exceto EN e ENO).
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 13
Siemens Ltda.
Training Center
FCs Padres As seguintes regras existem para execuo dos FCs padres:
Se EN=0, o bloco no executado e ENO tambm =0.
Se EN=1, o bloco executado e se ele executado sem erros ENO
tambm =1.
Se um erro ocorre enquanto o bloco est sendo executado, ENO fica =0.
FCs do Usurio No tem problema se um bloco do usurio foi escrito em LAD, FBD ou STL,
quando ele chamado em LAD/FBD, os parmetros EN e ENO so
adicionados. Isto torna possvel a passagem de RLO.
EN/ENO no existe em STL. Voc pode, deste modo, emul-los.
Voc deve programar, independentemente da linguagem de programao, uma
avaliao de erro.
Interconexo Em LAD/FBD, diversas caixas podem ser agrupadas juntas uma aps a outra e
conect-las logicamente com EN / ENO.
Data: 04.10.2007
Arquivo: STOE_03P.13
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
LAD/FBD STL
Usando os Parmetros EN/ENO nas Chamadas de Bloco
CALL FC 1
NOP 0
Exemplo
?? . ?
FC 1
EN ENO
FC 2
EN ENO
FC 3
EN ENO =
FC 1
EN ENO ?? . ?
Chamada incondicional
A I 0.1
JNB _001
CALL FC 1
_001: A BR
= Q 9.0
FC 1
EN ENO I 0.1
=
Q 9.0
Chamada condicional
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 14
Siemens Ltda.
Training Center
Tarefa Escreva o programa para mostrar uma mensagem como um bloco com
parmetro atribudo. No slide voc pode ver a tabela de declarao com os
parmetros input e output e o incio do programa.
O que fazer Inserir um bloco FC 20 no programa S7 "My Program" .
Escreva o programa no FC 20.
Salve o FC 20.
Data: 04.10.2007
Arquivo: STOE_03P.14
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Tabela de declarao do bloco FC 20
Exerccio: Criando um Parmetro Atribuvel de um Bloco FC
Bloco com
parmetros
no atribudos
Bloco FC 20 com
parmetros
atribudos
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 9.3(Q5.3)
A #Acknowledge
R #Report memory
A #Disturb. ...
:
:
:
:
:
:
:
:
2.
1.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 15
Siemens Ltda.
Training Center
Tarefa Chama o FC 20 no OB 1 duas vezes (com endereos absolutos diferentes).
Teste a funcionalidade do programa.
O que fazer Inserir dois networks no OB 1 do program S7 "My Program".
Criar duas chamadas do FC 20, conforme aparece no slide,
Transfira os blocos FC20 e OB 1,
Testar a funo.
Nota: Durante a configurao de HW, voc deve usar o MB10 para parmetro
atribudo do byte de memria clock. Entretanto se voc tiver realizado um reset
de memria, voc deve transferir a configurao de HW mais uma vez para que
a M10.3 pisque.
Data: 04.10.2007
Arquivo: STOE_03P.15
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Exerccio: Chamando um Parmetro Atribuvel de um Bloco FC
Disturb. input
Report memory
Acknowledge
Edge mem. bit
Display
Flash freq.
Parmetros atribudos
do FC20 na 1a. chamada
M 40.0
M 40.1 I 1.3
I 1.2 Q 9.3 (Q 5.3)
M 10.3
FC 20
Disturb. input
Report memory
Acknowledge
Edge mem. bit
Display
Flash freq.
M 40.2
M 40.3 I 1.4
I 1.2 Q 9.4 (Q 5.4)
M 10.3
FC 20
Parmetros atribudos
do FC20 na 2a. chamada
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 16
Siemens Ltda.
Training Center
Caractersticas Diferentemente das funes (FCs), os blocos de funes (FBs) possuem uma
Especiais dos FBs memria (rechamada). Isto significa que um bloco de dados local associado ao
bloco de funes, o denominado bloco de dados instance. Quando voc
chama um FB, voc tambm tem que especificar o nmero do DB instance, o
qual automaticamente aberto.
Um DB instance usado para salvar variveis estticas. Estas variveis locais
somente podem ser usadas em FB, nesta tabela de declaraes elas so
declaradas. Quando o bloco deixa de ser executado, elas so salvas ou retidas
pelo DB.
Parmetros Quando o bloco de funo chamado, os valores dos parmetros atuais esto
armazenados no DB instance.
Se nenhum parmetro atual foi atribudo ao parmetro formal em uma chamada
de bloco, ento o ltimo valor armazenado no DB instance para este parmetro
usado na execuo do programa.
Voc pode especificar diferentes parmetros atuais com cada chamada de FB.
Quando o bloco de funo terminado, os dados no DB so retidos.
Vantagens do FB Quando voc escreve um programa para um FC, voc deve procurar por
memrias bit vazias, reas de endereos ou reas de dados e voc deve
mant-los por si prprios. As variveis estticas de um FB, por outro lado,
so mantidas pelo software STEP 7.
Quando voc usa variveis estticas voc evita o risco de atribuio
duplicada de memrias bit, reas de endereos ou reas de dados.
Em vez dos parmetros formais Report memory" e Edge memory
marker" do FC20, voc usa as variveis estticas Report memory" e
Edge memory marker" no FB. Isto torna a chamada do bloco segura e sem
duplicidade.
Data: 04.10.2007
Arquivo: STOE_03P.16
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Blocos de Funes (FBs)
FB 2
EN
Disturb. input
Acknowledge Display
Flash freq. ENO
DB 2
OB 1
Tabela declarao do bloco de funes
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 17
Siemens Ltda.
Training Center
Mostra de Mensagem Em um exerccio anterior voc criou um bloco FC 20 com parmetros atribudos
para mostrar uma mensagem (indicando um problema).
Ao invs de memrias bit, que eram usadas no FC 20 para salvar o sinal da
mensagem e seu RLO de deteco de transio, voc pode usar as conhecidas
variveis estticas em um FB. Elas so armazenadas em um DB instance
referenciado ao FB.
Estrutura do Quando um DB gerado e referenciado a um FB, o STEP7 criar a estrutura de
DB Instance dados do bloco de dados usando a estrutura especificada na tabela de
declaraes do bloco de funes. Depois voc salva o DB, o bloco de dados
criado e pode ento se usado como um DB instance.
Data: 04.10.2007
Arquivo: STOE_03P.17
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Blocos de Funes para Mostrar Mensagens
Tabela de
declarao do
bloco de funo
Bloco de dados
instance
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 18
Siemens Ltda.
Training Center
Gerando um Existem dois caminhos para gerao de um novo DB instance:
DB Instance Quando voc chama um FB, voc especifica com qual DB instance o FB ir
trabalhar. As seguintes mensagens ento aparecem:
"Instance data block DB x does not exist. Do you want to generate it?".
("O bloco de dados instance DB x no existe. Voc deseja ger-lo?").
Quando voc cria um novo DB, voc seleciona a opo "Data block
referencing a function block".
Notas Um DB instance somente pode ser referenciado a um FB. Deste modo, um FB
pode ser referenciado por um DB instance diferente a cada vez que ele
chamado.
Se voc modificar o FB (pela adio de parmetros ou variveis estticas), voc
ento atmbm deve gerar o DB instance novamente.
Data: 04.10.2007
Arquivo: STOE_03P.18
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Gerando Blocos de Dados Instance
1. Gera o DB instance na chamada do FB 2. Criar um novo DB instance
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 19
Siemens Ltda.
Training Center
Modelo Mltiplo At agora, voc tinha que usar diferentes DBs instance para cada chamada de
Instance um FB. O nmero de DBs contudo limitado e por esta razo existe um mtodo
que permite a voc usar um DB instance comum para todas as chamadas do
FB.
O modelo mltiplo instance agora habilita voc a usar um nico DB para
diversas chamadas. Para fazer isto voc necessita de um FB adicional para
gerenciar estes instances.
Para cada chamada do FB (FB 20), voc define uma varivel esttica do FB alto
nvel (FB 100). Neste bloco chama-se Call Dist_1, voc no tem ento que
especificar um DB instance.
O FB alto nvel (FB 100) chamado, por exemplo, no OB1, o DB instance
comum (DB 100) gerado somente uma vez.
Nota Mltiplos instances so em um curso de programao avanado.
Data: 04.10.2007
Arquivo: STOE_03P.19
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
O Modelo Mltiplo Instance
DB10
O Modelo Instance
FB20
OB 1
Call FB20, DB10
Disturb._Input:=
Acknowledge:=
Flash_Freq:=
Display:=
DB11
FB20
Call FB20, DB11
Disturb._Input:=
Acknowledge:=
Flash_Freq:=
Display:=
DB12
FB20
Call FB20, DB12
Disturb._Input:=
Acknowledge:=
Flash_Freq:=
Display:=
O Modelo Mltiplo Instance
FB 100
DB100
Call FB100, DB100
OB 1
stat Dist_1 FB20
stat Dist_2 FB20
Parmetros e
variveis estticas
da 2a. chamada
do FB20
Call Dist_2
Disturb._Input:=
Acknowledge:=
Flash_Freq:=
Display:=
Parmetros e
variveis estticas
da 1a. chamada
do FB20
Call Dist_1
Disturb._Input:=
Acknowledge:=
Flash_Freq:=
Display:=
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 20
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.20
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Inserindo/Apagando Parmetros de Bloco Posteriormente
S
a
v
e
O Problema Quando voc acrescenta parmetros de bloco adicionais posteriormente a um
bloco j chamado no programa, voc deve tambm atualizar o bloco chamado.
Caso contrrio, a CPU acabar indo para Stop ou o bloco de funes no ser
garantido uma vez que os parmetros adicionais ainda tem que ser alimentados
com os parmetros atuais da chamada.
No exemplo, um parmetro de entrada adicional Check_lights" foi inserido.
Atualizando a Quando voc salva o bloco no qual a tabela de declaraes foi modificada, uma
Chamada mensagem aparece avisando voc sobre possveis problemas.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 21
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.21
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Correes Quando Chamando Blocos Modificados
Quando o bloco chamado aberto:
Com o boto direito
Atualizando a Quando o bloco chamado aberto, a seguinte mensagem aparece:
Chamada Time stamp conflict with at least one block call" e a chamada mostrada em
vermelho.
Com o boto direito do mouse, clique no bloco e selecione a opo de menu
Update Call" (atualizar a chamada). O bloc chamado ento mostrado
novamente e passa a conter, conforme nosso exemplo, o parmetro de entrada
adicional Check_light. Este parmetro pode ento ser atribudo. No caso dos
FBs, os DBs instance so ento gerados novamente.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 22
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.22
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Exerccio: Editando um Bloco de Funes
Tabela de declarao do bloco FB 20
1.
Sesso de programa do
FB 20
A #Acknowledge
R #Report memory
A #Disturb. ...
:
:
2.
Tarefa O programa para mostrar uma mensagem (indicando um problema) agora
implementado em um FB. Para salvar a memria bit de deteco de transio e
a report memory voc est utilizando variveis estticas que esto
armazenadas no DB instance do FB. Neste caminho, voc no requer qualquer
memria bit para salvar.
No slide voc pode ver a tabela de declarao com parmetros de entrada e
sada e o comeo do programa.
O que fazer Inserir um bloco FB 20 no programa S7 "My Program".
Escreva o programa no FB 20.
Salve o FB 20.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 23
Siemens Ltda.
Training Center
O que fazer No programa S7 "My Program":
delete ambos networks com a chamada do FC20.
escreva um programa de duas chamadas do FB 20, como mostrado no
slide.
transfira os blocos FB20, DB20, DB21 e OB 1.
teste a funcionalidade do programa.
FC -> FB Em nosso exemplo, o FB20 foi reescrito, apesar de que um FC20 com os
mesmos contedos j existisse. Isto no foi difcil fazer.
Se um FC com um extenso programa est sendo convertido em um FB, voc
tem alguns caminhos alternativos:
Primeira possvel soluo:
insira um novo FB
copie a tabela de declarao do bloco FC no FB e o ajuste.
copie os networks do FC no FB
salve o FB.
Segunda possvel soluo :
gerar um arquivo fonte do bloco FC
fazer os ajustes no arquivo fonte
gerar o novo FB do arquivo fonte (ver prxima pgina).
Data: 04.10.2007
Arquivo: STOE_03P.23
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Chamando e Testando um Bloco de Funes
(Q 5.3)
(Q 5.3)
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 24
Siemens Ltda.
Training Center
Introduo Do mesmo modo que nas linguagens de programao de alto nvel, voc
tambm pode criar blocos usando um arquivo fonte (arquivo texto). Quando
voc compila este programa fonte, blocos executveis so gerados. Da mesma
forma, um arquivo fonte pode ser gerado de blocos existentes.
Voc fazer uso disto para criar, com um mnimo de trabalho (digitao), um FB
20 de um bloco FC 20.
O que fazer 1. Abra um bloco.
2. No Editor LAD/STL/FBD, escolha a opo de menu Options -> Customize,
ento o "Editor tabula. Na caixa View" selecione a opo "Symbolic
representation".
3. No Editor LAD/STL/FBD selecione a opo de menu options File -> Generate
Source File...
4. Na janela "New, voc pode inserir um nome de sua escolha para o arquivo
fonte a ser gerado na caixa "Object name".
5. Na janela Generate Source File" que ento aparece, selecione os blocos de
programa que sero compilados um aps o outro na janela Unselected
Blocks.
6. Clique "OK" para iniciar a compilao dos blocos no cdigo fonte.
Os blocos compilados so ento encontrados no arquivo fonte com seus
nomes previamente definidos, na pasta Source Files" do programa S7.
Data: 04.10.2007
Arquivo: STOE_03P.24
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Convertendo um FC em um FB usando Programas Fonte (1)
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 25
Siemens Ltda.
Training Center
Fontes, Para Que? para refiao automtica usando smbolos
para atribuio de atributos de blocos, por exemplo, proteo de bloco
como proteo de dados do programa inteiro
mais liberdade na edio e processamento dos blocos:
- modificando o tipo do bloco
- inserindo / deletando separadores de network
- moldando elementos de programa e comentando em novos blocos
- criando programas fonte em outros editores de texto (WORD, WordPad),
sem ter que instalar o STEP7 no PC
- programao simblica completa sem verificao de sintaxe, etc.
Programa Fonte No lado esquerdo do slide voc pode ver o programa fonte para o bloco FC 20.
No lado direito do slide, o programa fonte mostrado para o programa como FB
20. Aqui, as palavras chaves associadas para um bloco de funo foi inserido.
Complementarmente, variveis estticas para a report memory e a memria de
deteco de transio esto definidas.
Aps uma compilao, um FB 20 executvel existe uma vez mais.
Nota Se voc no conhecer as palavras chaves, voc pode inserir um bloco template
usando a opo de menu Insert -> Block Template -> FB.
O tpico Arquivos Fontes" discutido amplamente em detalhes em um curso
avanado de programao.
Data: 04.10.2007
Arquivo: STOE_03P.25
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Convertendo um FC em um FB usando Programas Fonte (2)
:
:
:
:
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 26
Siemens Ltda.
Training Center
Data: 04.10.2007
Arquivo: STOE_03P.26
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Exerccio: Reconhecendo Tipos de Variveis
Absoluta Simblica Temporria Esttica Parmetro
L #Number_1
T #Max_value
T MW 40
Instruo
L #Number_2
L #Intermediate_result
L Number_1"
T #Number_2
Global Local
Objetivo Voc ir reconhecer diferenas entre os diversos tipos de variveis.
O que fazer Na tabela, marque o tipo de dado associado com um X.
Responda as seguintes questes:
O que no est correto na instruo T#Number_2 ?
.................................................................................
Resultado Voc pode reconhecer e usar os tipos de variveis.
ST-7STOE
Funes e Blocos de Funes
Captulo 3
Pgina 27
Siemens Ltda.
Training Center
CALL A instruo "CALL" usada para chamada de blocos de programa (FC, FB,
SFC, SFB), independentemente do RLO ou quaisquer outras condies.
Se voc chamar um FB ou SFB com "CALL, voc deve tambm especificar o
correspondente DB instance.
Voc pode usar indiferentemente nomes absolutos ou simblico para o bloco de
programa. Por exemplo: "CALL FB2, DB2 ou "CALL valve, level.
A operao "CALL salva o endereo retornado, desativa a dependncia no
MCR e cria a rea de dados locais para o bloco a ser chamado.
UC A instruo "UC" uma chamada incondicional de um bloco do tipo Fc ou FB
sem atribuio de parmetros.
"UC" de outro modo idntica ao "CALL".
CC A instruo "CC" chama um bloco do tipo FC ou FB sem parmetros se RLO=1.
"CC" de outro modo idntica ao "CALL".
Parmetros Parmetros declarados na tabela de declarao so conhecidos como
parmetros formais. Os endereos ou valores especificados na chamada so
referidos como parmetros atuais.
Variveis estticas e temporrias no so especificadas na chamada.
Data: 04.10.2007
Arquivo: STOE_03P.27
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7
Resumo: Chamada de Blocos
CALL FC1
UC FC1
CC FC1
STL
LAD
FBD
FC1
EN
ENO
FC1
EN ENO
FC1
( CALL )
FB
Sem parm., sem DB inst.
UC FB1
CC FB1
FB1
EN
ENO
FB1
EN ENO
CALL
Com parmetros
CALL FC2
Par1: ...
Par2: ...
Par3: ...
FC2
EN ENO
Par3
Par1
Par2
FC2
EN
ENO
Par1
Par2
Par3
Com parm., c/ DB inst.
CALL FB2, DB3
Par1: ...
Par2: ...
Par3: ...
FB2
EN ENO
Par3
Par1
Par2
DB3
FB2
EN
ENO
Par3
Par1
Par2
DB3
Sem parmetros
Lin-
guagem
FC
FC1

Você também pode gostar