Sei sulla pagina 1di 372

SIMATIC S7

Programao
Avanado






















Nome: ___________________________

Curso: de ____________ at ____________

Instrutor:

Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 1
Contedo Pg.
Registradores e reas de Memria em uma CPU S7...................................................................... 2
Estrutura da Status Word ................................................................................................................. 3
Checando os Bits de Status ............................................................................................................. 4
Instrues com os Status Bits .......................................................................................................... 5
Bit BR e ENO em uma Chamada de Bloco ou Funes Complexas .............................................. 6
Funes de Salto Dependentes do Status Bits ................................................................................ 7
Funes de Salto Dependentes dos Cdigos de Condio ............................................................. 8
Programao do Distribuidor de Saltos ........................................................................................... 9
Programao de Instrues de Loop ............................................................................................... 10
Instrues para Fim de Bloco .......................................................................................................... 11
Exerccio 1.1: Salto depois de uma Subtrao ................................................................................ 12
Exerccio 1.2: Salto depois de uma Multiplicao ........................................................................... 13
Exerccio 1.3: Programando um Distribuidor de Saltos ................................................................... 14
Data: 4/10/2007
Arquivo: PRO2_01P.1
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Dependentes do Estado Lgico Binrio
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 2
Viso Geral Uma CPU-S7 contm vrios registradores e reas de memria para
assegurar uma execuo eficiente do programa.
Registradores da CPUOs registradores da CPU so usados para enderear ou processar dados. Os
dados podem, com ajuda de comandos associados (L, T,...), ser trocados
entre reas de memrias e registradores da CPU:
Acumuladores: Dois (com S7-300) ou quatro (S7-400) acumuladores so
usados para instrues byte, word e double word em operaes aritmticas,
comparaes e outras.
Registrador de Endereos: Dois registradores de endereo so usados
como ponteiros para o registro de endereamento indireto.
Registrador de Bloco de Dados: Os registradores de bloco de dados contm
os nmeros dos blocos de dados que esto abertos(ativos). Assim possvel
que dois DBs estejam simultaneamente abertos; um DB com ajuda do
registrador de DB e o outro como DB instance com o registrador DI.
Palavra de Status: Contm vrios bits, que refletem o resultado ou o estado
lgico de instrues individuais dentro da execuo de programa.
reas de Memria A memria das CPUs S7 podem ser divididas em quatro reas:
A memria de carga usada para armazenar o programa de usurio sem a
funo de endereamento simblico ou comentrio. A memria de carga pode
ser RAM ou memria FEPROM.
A memria de trabalho (RAM integrada) usada para armazenar a parte
pertinente do programa de S7 necessrio para sua execuo. A execuo do
programa utiliza exclusivamente partes da memria de trabalho.
A rea de I/O permite o acesso direto das entradas e sadas dos sinais
conectados aos mdulos ou dispositivos de campo.
A memria do sistema (RAM) contm reas, como a tabela de imagem de
processo de entradas e sadas, memria de bits, temporizadores e
contadores. Adicionalmente, pilha de dados locais, pilha de blocos e a pilha
de interrupo.
Data: 4/10/2007
Arquivo: PRO2_01P.2
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Registradores e reas de Memria em uma CPU S7
Acumuladores
ACCU1
ACCU4
ACCU3
ACCU2
Somente
S7-400
AR2
AR1
Registradores de Endereos
DB aberto
Registrador de Bloco de Dados
DI aberto
Status Bits
Palavra de Status
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
16 Bit 16 Bit
16 Bit
Memria de Carga
- Blocos Lgicos
- Blocos de Dados
Memria de Trabalho
- Blocos Lgicos
- Blocos de Dados
rea de I/O
Memria de Sistema
- Imagem de processo de entrada
- Imagem de processo de sada
- Bit de memria
- Temporizadores
- Contadores
- Pilha de Dados Locais
- Pilha de Interrupo
- Pilha de Blocos
Registradores na CPU S7 reas de Memrias na CPU S7
T, S, =,...
L, A, O,...
Tamanho DB
Tamanho DI
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 3
Palavra de Status Os bits individuais da palavra de status, fornecem a informao sobre o
resultado ou o estado lgico da instrues executadas como tambm erros
que possam ter surgido.
Voc pode integrar o estado do sinal dos status bits diretamente em seu
programa usando lgicas binrias e assim controlar o fluxo do programa.
Primeiro Cheque O bit 0 da palavra de status chamado de bit de primeiro cheque (/FC= First
Check). A condio 0 no bit /FC indica, que uma nova seqncia lgica est
comeando em seu programa. O barra diagonal na frente da abreviao FC
indica que o bit de /FC negado.
Resultado Lgico O bit 1 da palavra de status o bit RLO (RLO= Result of Logic Operation).
usado como memria temporria em operaes de lgica binrias.
Uma instruo gerada pelo texto de uma instruo lgica checa, por exemplo,
o estado do sinal de um contato e o combina logicamente com o resultado do
cheque (bit de estado) de acordo com as regras da lgica booleana com o bit
de RLO. O resultado da operao lgica armazenado de volta no bit de
RLO.
Bit de Status O bit de status (bit 2) salva o valor de um bit endereado. O bit de status
sempre mostra, por varredura (A, AN, O,...) ou instrues de escrita (=, S, R,)
o estado do bit endereado.
Bit OR O bit OR utilizado quando voc executa uma operao lgica AND antes de
uma OR com a instruo O. O bit OR indica que uma operao lgica AND foi
executada anteriormente e recebeu o valor 1, pelo qual o resultado da
operao lgica OR est sempre determinado como sendo 1.
Bit OV O bit OV (estouro de capacidade) mostra um erro em uma instruo
matemtica ou em uma instruo de comparao com nmeros em ponto
flutuante. O bit 1 ou 0 de acordo com o resultado da operao da
instruo matemtica ou da instruo de comparao realizada.
Data: 4/10/2007
Arquivo: PRO2_01P.3
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura da Palavra de Status
Bit Tarefa Grandeza Significado
0 /FC 2
0
Primeiro Cheque
1 RLO 2
1
Resultado Lgico da Operao
2 STA 2
2
Status
3 OR 2
3
Or (ou)
4 OS 2
4
Estouro Armazenado
5 OV 2
5
Estouro
6 CC0 2
6
Bit de Resultado
7 CC1 2
7
Bit de Resultado
8 BR 2
8
Resultado Binrio
9...15 sem 2
9
..2
10
funo
Significado dos bits na palavra de status
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 4
Bit OS O bit OS (estouro de capacidade memorizada) estabelecido juntamente com
o bit OV. O bit OS permanece memorizado depois de uma nova instruo
matemtica, quer dizer, no mudado pelo resultado da prxima instruo
matemtica.
Assim voc tem a oportunidade, at mesmo em um local posterior em seu
programa, avaliar um estouro de capacidade de um nmero ou uma instruo
com nmeros Reais invlidos.
O bit OS somente zerado com os comandos: JOS (salta, se OS = 1),
chamadas de bloco e fim de bloco.
CC1 e CC0 Os bits CC1 e CC0 (cdigos de condies) informam sobre os seguintes
resultados:
resultado de uma instruo matemtica.
ou instruo de comparao.
uma instruo lgica de palavra, ou
sobre os bits jogados fora por uma instruo de deslocamento.
Os cdigos de condio CC1 e CC0 podem ser testados indiretamente por
meios das seguintes instrues.
CC1 CC0 Checa,se
0 0 A ==0 Resultado = 0 (ACCU2 = ACCU1)
1 0 A >0 Resultado > 0 (ACCU2 > ACCU1)
0 1 A <0 Resultado < 0 (ACCU2 < ACCU1)
1 1 A AO Operao invlida (por ex. diviso por 0).
Adicionalmente, existem funes de salto(Jump), que verificam os cdigos de
condio e assim permitem que o programa seja estruturvel.
LAD/FBD Voc pode encontrar estas funes representadas em LAD ou FBD, no
catlogo de instrues na pasta bits de status.
Data: 4/10/2007
Arquivo: PRO2_01P.4
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Checando os Bits de Status
OV
S >0
M 4.0
M 4.0
S
Cheque em STL
A OV Verifica o estouro de capacidade
A OS Verifica o estouro de capacidade memorizado
A BR Verifica o bit de memria BR
Cheque do Resultado Binrio (CC0, CC1)
A ==0 Resultado igual a 0
A > 0 Resultado maior que 0
A <>0 Resultado no igual a 0
A =<0 Resultado menor que ou igual a 0
etc.
A UO Operao no permitida
Cheque em LAD e em FBD
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 5
L STW/T STW Tambm possvel carregar a palavra de estado (status word) inteira e salva-
la para uma verificao posterior (scan).
L STW Carrega a palavra de status
T MW 114 Salva na palavra de memria 114
Com a instruo de T STW, a palavra de estado pode, por exemplo, ser
carregada com uma palavra de estado previamente salva. Os bits 0, 2, 3, 9
..15 no so influenciados por esta instruo.
Mudana de RLO Com STEP 7 existe um nmero de instrues para influenciar o RLO.
Com SET voc fixa o resultado lgico da operao em 1", com CLR para "0".
Paralelo a isto, o bit da status STA tambm pode ser fixado em "1 ou em "0".
Ambas as instrues so independente das condies.
SET e CLR tambm zeram os bits de estado OR e /FC, isto , uma nova linha
de condies comea em seguida.
A instruo NOT nega ou inverte o resultado lgico da operao.
Bit BR O bit BR representa um bit de memria interna, na qual o RLO pode ser
salvo antes de uma nova variao do RLO. Isto est desta forma, para que o
RLO, novamente esteja disponvel para o reinicio de uma linha de condies
que tenha sido suspensa.
Se voc edita um bloco de funo ou uma funo e quer chamar isto em LAD,
voc tem que administrar o bit BR. O bit BR corresponde a sada (ENO) para
os blocos em LAD.
Fixar e Zerar Com a instruo SAVE voc salva o RLO no registrador de resultado binrio
o Bit BR (BR). A instruo SAVE transmite o estado do RLO para o bit BR.
SAVE executada independente de qualquer condio e no afeta nenhum
dos demais bits de status.
Data: 4/10/2007
Arquivo: PRO2_01P.5
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues com Bits de Status
Instruo Significado Exemplo
SET Fixa o RLO em "1" SET //RLO-1-bit de memria
= M 0.1
CLR Fixa RLO em "0" CLR //RLO-0-bit de memria
NOT Inverte o RLO O Manual
O Automtico
NOT;
= modo de operao
= M0.0
SAVE Salva o RLO no resultado binrio
A BR Verifica o resultado binrio
I 1.0 I 1.1 I 1.2
BR Q 4.2 Q 5.0
SAVE
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 6
EN = habilita entrada O usurio pode modificar a chamada com ajuda da entrada EN(enable input)
que existe em toda caixa de chamada de bloco ou uma funo complexa em
Diagrama de Contatos (corresponde chamada condicional em STEP 5).
Se EN no estiver ativada (p.e. o sinal estiver em estado "0"), ento a
caixa no executar sua funo. A sada de habilitao ENO (enable
output), conseqentemente, tambm no ser ativada.
Se EN estiver ativada (p.e. o sinal estiver em estado lgico "1"), ento a
funo da caixa ser executada.
ENO = O bloco chamado ou a funo complexa pode ser sinalizado, com ajuda da
habilita sada habilitao de sada ENO, se no for executado ou executado sem erro.
O bit-BR da palavra de status est disponvel ao usurio para se salvar erros.
O bit-BR automaticamente fixado em 1na partida de uma classe de
prioridade. Subseqentemente o bit-BR s modificado pelos blocos, no
pelo sistema.
Se um erro surgir durante o processamento, o usurio pode "salvar" este
estado de erro atravs do reset do bit-BR. Depois do processamento de uma
caixa em LAD/FBD, o estado do bit-BR copiado para o parmetro de sada
ENO.
Ento, um mecanismo de anlise de estado de erro est disponvel no STEP
7. Desta forma, por exemplo, um bloco chamado pode informar a chamada de
blocos se o processamento foi executado livre de erro ou no.
Nota O parmetro de EN no um parmetro de entrada verdadeiro. Se este for
criado, ento duas instrues uma com um salto condicional para um rtulo
(Label) e o rtulo recuado so gerados automaticamente.
Da mesma maneira, ENO no um parmetro de sada verdadeiro. Se ENO
determinado, ento so geradas duas instrues para copiar o bit BR no
parmetro de sada atual, automaticamente.
Data: 4/10/2007
Arquivo: PRO2_01P.6
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Bit BR e ENO em uma Chamada de Bloco ou Funo Complexa
LAD STL
Network 1: Programa Cclico
FC23
I0.0
EN
MW12
Step_bit
_memory
Step_
display
ENO ( )
M10.0
QW12
Network 2: ???
ADD_I
EN
345 IN1
OUT
ENO ( )
M10.1
MW100
987 IN2
Network 1: Programa Cclico
A I 0.0
JNB _001
CALL FC 23
Step_bit_memory :=MW12
Step_display :=QW12
_001:A BR
= M 10.0
Network 2: ???
L 345
L 987
+I
T MW 100
AN OV
SAVE
CLR
A BR
= M 10.1
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 7
Funes de Salto Com esta funo de controle lgico voc pode interromper o processamento
(Jump) linear de um programa e continuar em um outro local dentro do bloco. Uma
ramificao de programa pode ser executa independentemente de uma
condio ou ento somente quando uma determinada condio for satisfeita.
Salto Incondicional A funo de salto JU sempre executada, isto , executa o salto
independentemente de qualquer condio. JU interrompe o processamento
linear de um programa e reinicia no rtulo (Label) da instruo de salto
(Jump). JU no afeta os bits de status.
Funes de Salto Uma ramificao de programa pode ocorrer dependente do estado do bit
com RLO e BR RLO e bit BR. Adicionalmente, existe a possibilidade de durante a verificao
do bit RLO salva-lo ao mesmo tempo no bit BR.
As funes de salto dependentes do RLO (JC, JCN) so acionadas, no
somente para condies atendidas mas tambm para condies no
atendidas, os bits de status STA e RLO vo para "1" e os bits OR e /FC vo
para "0".
As funes de salto com "RLO memorizado" (JCB, JNB) salva em todos os
casos o estado do bit de RLO no bit BR. Os bits restantes STA, RLO, OR e
/FC so de outra maneira tratados do mesmo modo que aquelas funes de
salto (jump) que no salva o RLO.
As funes de salto (jump) (JBI, JNBI) dependentes do bit BR determinam os
bits da STA, no somente para condies atendidas mas tambm para
condies no atendidas, o bit de estado STA vai para 1 e os bits OR and
/FC vo para "0". Os bits RLO e BR permanecem inalterados.
Data: 4/10/2007
Arquivo: PRO2_01P.7
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Funes de salto (Jump) dependentes dos Bits de Status
JU Label
1)
Salto Incondicional
JC Label
1)
salta se o bit "RLO" =1
JCN Label
1)
salto se o bit "RLO" = 0
JCB Label
1)
salto se o bit "RLO" = 1 e salva RLO
JNB Label
1)
salto se o bit "RLO" = 0 e salva RLO
JBI Label
1)
salto se o bit "BR" = 1
JBNI Label
1)
salto se o bit "BR" = 0
JO Label
1)
salto se o bit "OV" na palavra de status =1
JOS Label
1)
salto se o bit "OS" na palavra de status =1
1)
Rtulo (Label) pode ser constitudo de at 4 dgitos
alfanumricos
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 8
Funes de salto Os saltos JO e JOS so executados se um estouro tiver ocorrido. Em uma
com OV e OS rotina de clculo com diversas instrues executadas sucessivamente, a
avaliao do bit OV deve ser realizada aps cada funo matemtica. Uma
instruo matemtica que gera um estouro, cujo resultado mascara a faixa de
nmeros permitidos, zera o bit OV.
Para permitir avaliar um estouro de faixa de nmeros permissveis no fim de
uma rotina de clculo, checa-se o bit OS. O bit OS somente zerado com
chamada de blocos e fim de bloco bem como com salto JOS.
Os bits restantes na palavra de status no so alterados com as funes de
salto JO e JOS.
Funes de salto Uma funo de programa pode ser dependente dos bits de status CC0 e
com CC0 e CC1 CC1.
Deste modo, voc pode, por exemplo, checar se o resultado de um clculo
positivo, negativo ou zero.
As funes de salto dependem dos bits de status CC0 e CC1 e no alteram
qualquer bit de status. O resultado da operao lgica monitorvel por
saltos e pode ser utilizado por conseqentes operaes lgicas no programa
do usurio (no alterado pelo /FC).
Exemplo Subtrao de dois inteiros com subseqente avaliao:
L MW2
L MW8
-I
JZ ZERO // ocorre o salto se o resultado for igual a "0"
// Instrues, se o resultado for diferente de "0"
ZERO: NOP 0 // Instrues p/reao quando resultado for igual "0"
Data: 4/10/2007
Arquivo: PRO2_01P.8
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Funes de Salto dependentes dos Cdigos de Condio
JZ Label
1)
Salta se na palavra de status o bit "CC1"=0 e "CC0"=0
(Resultado = 0)
JN Label
1)
Salta se na palavra de status o bit "CC1" no for igual a "CC0"
(Resultado <> 0)
JP Label
1)
Salta se na palavra de status o bit "CC1"=1 e "CC0"=0
(Resultado > 0)
JM Label
1)
Salta se na palavra de status o bit "CC1"=0 e "CC0"=1
(Resultado < 0)
JPZ Label
1)
Combina os saltos JZ e JP
(Resultado >= 0)
JMZ Label
1)
Combina os saltos JM e JZ
(Resultado <= 0)
JUO Label
1)
Salta se: nmero real invlido desordenado ou diviso por zero
1)
Rtulo (Label) pode ser constitudo de at 4 dgitos
alfanumricos
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 9
Distribuidor de saltos O distribuidor de saltos JL permite o salto meta para uma seo do programa
dependendo de um nmero de salto. A instruo JL trabalha junto com uma
lista de funes de salto JU.
Esta lista segue imediatamente aps JL e pode incluir no mximo de 255
entradas. Com JL existe um rtulo de salto que aponta para o fim da lista, isto
, a primeira instruo aps o fim da lista.
Somente instrues JU podem ser utilizadas entre a JL <Label> e o <Label>:
<instruo>. Se 0 estiver guardado no ACCU1-L-L, a primeira instruo de
salto executada, com 1 a segunda, etc. Se o nmero for maior do que o
tamanho da lista, JL salta para o fim da lista.
A instruo JL executada apesar de quaisquer condies e desta forma no
altera os bits de status.
Nota Os saltos podem tomar lugar dentro do comprimento total do bloco (mesmo
alm dos limites do network). Por esta razo, os nomes dos rtulos dos saltos
dentro de um bloco devem ser nicos.
Somente possvel saltar dentro do bloco de programa, desde que a
distncia de salto possa somente ser determinada para os saltos por meio
dos rtulos dos saltos. O comprimento do rtulo de salto limitado a quatro
caracteres alfanumricos, pelo qual o primeiro caracter deve ser uma letra.
feita distino entre letras maisculas e minsculas no rtulo dos saltos.
Uma instruo deve sempre ser colocada depois do rtulo do salto separada
por :. A mxima distncia de salto 32768 ou + 32767 palavras de cdigo
de programa. O mximo nmero atual de instrues que voc pode sobre
saltar depende do misto de instrues utilizadas em seu programa (instrues
de uma, duas ou trs palavras).
Data: 4/10/2007
Arquivo: PRO2_01P.9
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Programao do Distribuidor de Saltos
Carrega o
nmero do salto
JL Over
.
.
.
Instrues para
ACCU1 > n
Exemplo: Distribuidor de saltos com 3 entradas
L Recipe no // Carrega o nmero da receita
JL OVER // Distribuidor de saltos com 3 entradas
JU Rec0 // Salta para receita No. 0 (ACCU1 = 0)
JU Rec1 // Salta para receita No. 1 (ACCU1 = 1)
JU Rec2 // Salta para receita No. 2 (ACCU1 = 2)
OVER: JU ERROR // Salta se ACCU1 > 2
...
Rec0: L DBW4
...
Rec1: L DBW6
...
Rec2: L DBW8
...
ERROR: CLR
...
Modo de Operao
Label_n:
JU Label_1
JU Label_n
Instrues para
ACCU1 = 0
.
.
.
Instrues para
ACCU1 = n
Over:
Label_1:
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 10
Instruo de Loop A instruo de volta LOOP permite uma programao simplificada de loop.
Para a programao da instruo de loop o nmero desejado de execues a
serem realizadas carregado no ACCU1-L. LOOP interpreta a palavra da
direita do ACCU 1 como um nmero inteiro no sinalizado de 16 bits na faixa
de valores entre 0 a 65535.
Com cada execuo da instruo LOOP, o valor em ACCU1-L
decrementado de um. Subseqentemente, o valor comparado com zero. Se
o valor diferente de zero, um salto toma lugar para o rtulo de salto
designado na instruo LOOP. Se o valor igual a zero, no h salto e a
prxima instruo, aps a instruo LOOP, ser executada.
Nota O contador de voltas no deve ser inicializado com 0, porque isto ir causar
um loop a ser executado 65535 vezes.
Data: 4/10/2007
Arquivo: PRO2_01P.10
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Programao de Instrues de Loop (voltas)
Inicializa o
contador de voltas
LOOP NEXT
(Decrementa ACCU1
ACCU1<>0?)
Sim
No
Continuar
NEXT:
Sesso de cdigos
a serem executados
diversas vezes
Carrega o contador de
voltas no ACCU1.
Exemplo: Instrues de Loop (voltas)
com 4 varreduras
L +4 // Carrega o contador de voltas
NEXT: T MW10 // Incio do loop
. // Cdigo
. // Cdigo
. // Cdigo
L MW10 // Carrega o contador de voltas
// novamente
LOOP NEXT // Contador de voltas -1 e
// salta para o rtulo NEXT
// se Accu 1> 0
Modo de Operao
Transfere para o
contador de voltas
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 11
Funes de Voc pode terminar o processamento de blocos com BEC dependendo do
Fim de Bloco resultado lgico operacional ou com BEU ou BE independentemente das
condies.
BE A instruo BE termina o processamento do programa no bloco de programa
corrente. BE sempre a ltima instruo do bloco. Esta automaticamente
criada pelo STEP 7 quando um bloco salvo. Desta forma, esta no tem que
ser introduzida separadamente.
O sistema operacional diversifica suas atividades de chamada de blocos e
recomea o processamento de programas pela primeira instruo aps a
chamada do programa. A rea de dados locais reservada pelo bloco
habilitada uma vez de novo.
BEU A instruo BEU termina o processamento do programa do bloco de
programa corrente da mesma forma que BE.
Diferentemente da instruo BE, voc pode programar BEU repetidas vezes
dentro de um bloco. A seco de programa aps a instruo BEU somente
ser processada se houver um salto para esta parte do programa.
BEC O bloco finalizado dependendo do valor do bit RLO. Se RLO = 1, o
processamento do programa finalizado no bloco corrente e recomea no
prximo bloco chamado com a primeira instruo aps a chamada de
programa.
A rea de dados locais reservada pelo bloco habilitada uma vez de novo.
Se RLO = 0, a instruo BEC no executada. A CPU fixa o RLO em 1 e
processa a instruo seguinte a BEC.
Data: 4/10/2007
Arquivo: PRO2_01P.11
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
BE Fim de Bloco
BEU Fim de Bloco Incondicional (dentro de um bloco)
BEC Fim de Bloco Condicional (dependente do RLO)
(RET) mostrado em LAD
mostrado em FBD
Instrues de Fim de Bloco
RET
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 12
Data: 4/10/2007
Arquivo: PRO2_01P.12
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 1.1: Salto aps uma Subtrao
Chave rotativa
1 2 3 4
- D
Resultado positivo (>=0)
Escreve o valor de IW 4
no display
Deleta o display
Resultado negativo
[JM Label]
converte p/
DINT
converte p/
DINT
BTD
BTD
Chave rotativa: IW4 (IW2, mod. 32 bit)
Chaves de teste: IW0 (IW0, mod. 32 bit)
Display: QW12 (QW6, mod. 32 bit)
2
0
2
15
2
7
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Vista Geral Com funes de salto, o processamento linear de um programa pode ser
interrompido e continuar em outro local. Um salto pode ser realizado,
particularmente, em funo de condies ou resultados.
Objetivo do Exerccio Programao de uma funo de salto, esta executada dependendo do
resultado da subtrao.
Enunciado Gerar um projeto PRO2 e subseqentemente uma pasta de programa S7 com
o nome EXERCCIO e criar um FC 11 com a seguinte funcionalidade:
1. Carregar a palavra de entrada da chave rotativa e das chaves de teste
como valor codificado em BCD nos acumuladores.
2. Subseqentemente executar uma converso dos valores para DINT.
Para a converso usar o comando BTD (BCD_TO_DINT). Este comando
assegura que os valores lidos sejam interpretados como um nmero
decimal positivo de quatro dgitos.
3. Ento subtrair o valor gerado pelas chaves de teste do valor gerado pela
chave rotativa.
4. Executar, dependendo do resultado, as seguintes aes:
Resultado < 0: apaga o display do simulador, isto , transfere 0 para o
display.
Resultado >= 0: escreve o valor codificado BCD da chave rotativa no
display.
Notas: usar o comando de salto "JM [Label] para o caso distinto. Para
mascarar erros de converso durante o ajuste dos nmeros, programar o
OB 121com uma instruo: NOP 0.
5. Chamar o FC 11 no OB 1 e transferir os blocos (OB 1, OB 121 e FC 11)
na CPU S7.
6. Teste seu programa.
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 13
Objetivo do Exerccio Programao de uma funo de salto, esta executada dependendo do
resultado da multiplicao.
Enunciado Criar um FC 12 com a seguinte funcionalidade: :
1. Carregar a palavra de entrada da chave rotativa e das chaves de teste
como valor codificado em BCD (sem sinal) nos acumuladores.
2. Subseqentemente executar uma converso dos valores para DINT.
Para a converso usar o comando BTD (BCD_TO_DINT). Este comando
assegura que os valores lidos sejam interpretados como um nmero
decimal positivo de quatro dgitos.
3. Ento execute uma multiplicao em 16 bits.
4. Cheque seu resultados dos clculos para Estouro e execute as
seguintes aes:
Estouro: apague o display
Sem Estouro: execute a converso do resultado em um nmero BCD
positivo correspondente e mostre o resultado (pelo menos com os ltimos
quatro menos significativos) no display.
Notas: use o comando de salto "JO [Label] para testar o Estouro. Para
mascarar erros de converso durante o ajuste dos nmeros, programar o
OB 121 com uma instruo: NOP 0.
5. Chamar o FC 11 no OB 1 e transferir os blocos (OB 1, OB 121 e FC 11)
na CPU S7.
6. Teste seu programa.
Data: 4/10/2007
Arquivo: PRO2_01P.13
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 1.2: Salto aps uma Multiplicao
*I
Sem estouro
Escreve o resultado
no display
Apaga o display
Estouro
[JO Label]
DTB
Converte o resultado
para BCD
Chave rotativa: IW4 (IW2, mod. 32 bit)
Chaves de teste: IW0 (IW0, mod. 32 bit)
Display: QW12 (QW6, mod. 32 bit)
Chave rotativa
1 2 3 4
converte p/
DINT
converte p/
DINT
BTD
BTD
2
0
2
15
2
7
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lg. Binrio Pgina 14
Objetivo do Exerccio Familiarizar voc com o uso de Salto para Lista.
Enunciado Criar um FC 13 com a seguinte funcionalidade:
Um nmero de 1a 5 pode ser passado via o parmetro de entrada
"Seleo com o tipo de dado INT.
Dependendo do nmero passado, as seguintes aes so executadas:
1: O motor gira para direita
2: O motor gira para esquerda.
3: O motor para.
4: A buzina ligada.
5: A buzina desligada.
Todos os outros nmeros so interpretados como erros, isto , o
parmetro de sada ENO fixado para FALSO.
Procedimento 1. Criar um FC 13 com a funcionalidade descrita acima.
Na implementao do salto para lista note que somente saltos absolutos
podem ser utilizados.
2. Chamar FC 13 no OB 1 em dependncia do I 0.0.
O valor do parmetro de entrada "Seleo" ser passado ou ajustado
com ajuda da chave rotativa no simulador e ser aceito com um valor de
nvel positive no I 0.0.
4. No caso de um erro, isto , o valor da "Seleo ser maior que 5 ou menor
que 1, a sada Q 8.0 ser zerada no OB 1 via o parmetro ENO.
5. Transferir o OB 1 e o FC 13 e testar o programa.
Data: 4/10/2007
Arquivo: PRO2_01P.14
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 1.3: Programando um Distribuidor de Saltos
Chave rotativa
1
1
2
3
4
5
Motor_girar para direita
Motor_girar para esquerda
Desligar motor
Ligar buzina
Desligar buzina
Saltar via salto para lista
Funo:
[JL Label]
Label:
Endereos: S7-300 (16-Bit) S7-300 (32-Bit)
I0.0 I0.0
Q8.0 Q4.0
Motor_direita: Q20.5 Q8.5
Motor_esquerda: Q20.6 Q8.6
Buzina: Q20.7 Q8.7
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 1
Contedo Pg.
Viso geral das funes com acumuladores .................................................................................... 2
A instruo TAK (Troca ACCU1 com ACCU2) ............................................................................... 3
As instrues PUSH e POP .............................................................................................................. 4
As instrues ENT e LEAVE (s S7-400) ......................................................................................... 5
Instrues aritmticas ..................................................................................................................... 6
Instrues lgicas com palavras ..................................................................................................... 7
Instrues de troca para ACCU1 ................................................................................................. 8
Instrues incrementais para ACCU1 .............................................................................................. 9
Formando complemento de um ........................................................................................................ 10
Negando nmeros (Complemento de dois) ................................................................................... 11
Instruo de rotao 32 Bits via Bit CC1 ......................................................................................... 12
Exerccio 2.1: Clculo de potenciao ............................................................................................ 13
Exerccio 2.2: Troca de dados no ACCU1 ...................................................................................... 14
Exerccio 2.3: Formando complementos .......................................................................................... 15
Date: 4/10/2007
File: PRO2_02P.1
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Funes com Acumuladores
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 2
Viso Geral As funes de acumulador transmitem valores entre os acumuladores ou
troca de bytes no acumulador 1. A execuo de funes puras de acumulador
independente do resultado lgico da operao ou dos bits de status.
Igualmente, nem o resultado de operao de lgica nem os bits de status so
afetados pela execuo.
As funes de acumulador permitem otimizar o tempo de execuo de
programas de automao.
Date: 4/10/2007
File: PRO2_02P.2
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Viso Geral das Funes com Acumuladores
Instrues que modificam vrios Acumuladores
TAK: Troca de contedo entre ACCU1 e ACCU2
PUSH: Deslocando o contedo dos ACCUs para cima
POP: Deslocando o contedo dos ACCUs para baixo
ENT: Deslocando o contedo dos ACCUs para cima, sem ACCU1
LEAVE: Deslocando o contedo dos ACCUs para baixo, sem ACCU2
Instrues aritmticas e instrues lgicas com palavras
Instrues que modificam somente o ACCU1
INC: Incrementa o contedo do ACCU 1-L-L
DEC: Decrementa o contedo do ACCU 1-L-L
CAW: Inverte a ordem dos Bytes no ACCU1-L (16 Bit)
CAD: Inverte a ordem dos Bytes no ACCU1 (32 Bit)
INVI, INVD: Formando complemento de um
NEGI, NEGD, NEGR: Formando complemento de dois (Negao)
RLDA, RRDA: Rotacionando o contedo do ACCU1 para direita ou
esquerda via cdigo de condio CC1
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 3
TAK TAK (troca ACCU1 com ACCU2) troca o contedo do ACCU1 com o
contedo do ACCU2. A instruo executada sem levar em conta, e sem
afetar, os bits de status. O contedo de ACCU3 e ACCU4 permanecem
inalterados para CPUs com quatro acumuladores (para S7-400).
Exemplo Subtrair o valor menor do valor maior:
L MW10 // Carrega o contedo do MW10 no ACCU1-L.
L MW12 // Carrega o contedo do ACCU1-L no ACCU2-L.
// Carrega o contedo do MW12 no ACCU1-L.
>I // Cheque se ACCU2-L (MW10) maior que ACCU1-L
// (MW12).
JC NEXT // Salta para o rtulo NEXT se ACCU2 (MW10) for
// maior que ACCU1 (MW12).
TAK // Troca o contedo do ACCU1 com ACCU2.
NEXT:-I // Subtrai o contedo do ACCU1-L do contedo
// do ACCU2-L.
T MW14 // Transfira o resultado (= valor maior menos
// valor menor) para MW14
Date: 4/10/2007
File: PRO2_02P.3
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
A Instruo TAK (Troca ACCU1 com ACCU2)
S7-300:
S7-400:
ACCU1
ACCU2
V1
V2
V2
V1
antes depois
ACCU1
ACCU2
V1
V2
V3
V4
ACCU3
ACCU4
V2
V1
V3
V4
antes depois
TAK
TAK
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 4
PUSH A instruo o PUSH troca os contedos dos acumuladores, em cada caso, no
prximo acumulador mais alto. PUSH normalmente usado para duplicar o
valor de ACCU1, sem perder os contedos originais de ACCU2 ou ACCU3
(s para S7-400).
PUSH (S7-300): A instruo PUSH copia o contedo inteiro de ACCU1
para ACCU2. ACCU1 permanece inalterado.
PUSH (S7-400): A instruo PUSH copia o contedo de ACCU3 para
ACCU4, o contedo de ACCU2 para ACCU3 e o contedo de ACCU1
para ACCU2. ACCU1 permanece inalterado.
POP A instruo o POP traz os valores encontrados nos acumuladores 2 a 4 para
os acumuladores subjacentes. Esta instruo normalmente executada
depois de instrues de transferncia, quando o contedo do ACCU1 j no
ser mais necessrio e o processamento continuar com os valores salvos
nos acumuladores superiores.
POP (S7-300): A instruo POP copia o contedo inteiro de ACCU2 para
ACCU1. ACCU2 permanece inalterado.
POP (S7-400): A instruo POP copia o contedo de ACCU2 para
ACCU1, o contedo de ACCU3 para ACCU2 e o contedo de ACCU4
para ACCU3. ACCU4 permanece inalterado.
Date: 4/10/2007
File: PRO2_02P.4
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
As Instrues PUSH e POP
S7-300:
ACCU1
ACCU2
V1
V2
V1
V1
antes depois PUSH
S7-400:
ACCU1
ACCU2
ACCU3
ACCU4
V1
V2
V1
V2
V3
V4
V1
V1
V2
V3
antes depois PUSH
V2
V2
antes depois POP
V1
V2
V3
V4
V2
V3
V4
V4
antes depois
POP
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 5
ENT A instruo ENT (ENTER ACCU Stack) desloca os contedos dos
acumuladores 2 e 3 respectivamente para os acumuladores 3 e 4. Os
contedos de acumuladores 1 e 2 permanecem inalterados.
ENT junto com uma funo LOAD imediatamente seguinte:
ENT
L ...
Tem como resultado, que durante o carregamento os contedos dos
acumuladores 1 a 3 sero deslocados para cima (semelhante a PUSH) e o
valor do ACCU1 permanece inalterado .
A instruo ENT executada sem levar em conta e sem afetar os bits de
status.
LEAVE A instruo LEAVE desloca os contedos dos acumuladores 4 e 3
respectivamente para os acumuladores 3 e 2. Os contedos de acumuladores
4 e 1 permanecem inalterados.
As funes aritmticas utilizam do recurso LEAVE. Com LEAVE voc pode
tambm emular a mesma funcionalidade em outras operaes de lgica
digitais (por exemplo uma instruo de lgica de palavra).
LEAVE programada depois de uma operao de lgica digital, vai transferir os
contedos de acumuladores 3 e 4 para os acumuladores 2 e 3. O resultado da
operao de lgica digital se mantm inalterado no acumulador 1.
Date: 4/10/2007
File: PRO2_02P.5
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
As Instrues ENT e LEAVE (s S7-400)
ENT:
LEAVE:
V1
V2
V3
V4
ACCU1
ACCU2
ACCU3
ACCU4
V1
V2
V2
V3
antes depois
V1
V2
V3
V4
ACCU1
ACCU2
ACCU3
ACCU4
V1
V3
V4
V4
antes depois
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 6
Instrues As instrues aritmticas combinam dois valores digitais encontrados nos
Aritmticas acumuladores 1 e 2, conforme os fundamentos das operaes aritmticas. O
resultado do clculo fica no acumulador 1.
Os bits de status CC0, CC1, OV e OS fornecem informaes sobre o
resultado final ou intermedirio do clculo.
S7-300 Nas CPUs do S7-300, o contedo do ACCU2 permanece inalterado com a
execuo de uma funo aritmtica.
S7-400 Com a CPUs S7-400, o contedo de ACCU2 sobrescrito pelo contedo do
ACCU3. O contedo de ACCU4 transferido para ACCU3.
Exemplo O segmento de programa seguinte produz diferentes resultados, dependendo
de qual tipo de CPU executado, em uma S7-300 ou em uma S7-400 :
L 0 // carrega o inteiro 0 no ACCU1
L 5 // carrega o inteiro 5 no ACCU1, 0 no ACCU2
PUSH // desloca 5 (ACCU1) para ACCU2;(S7-400: ACCU2->ACCU3)
*I // multiplica ACCU1 por ACCU2; (S7-400: ACCU3->ACCU2)
*I // multiplica ACCU1 por ACCU2; (S7-400: ACCU3->ACCU2)
Resultado:
S7-300: ACCU1 = 125
S7-400: ACCU1 = 0
Date: 4/10/2007
File: PRO2_02P.6
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Aritmticas
S7-300:
S7-400:
ACCU1
ACCU2
V1
V2
V2 op V1
V2
antes depois
ACCU1
ACCU2
V1
V2
V3
V4
ACCU3
ACCU4
V3
V4
V4
antes depois
op: +., -., *., /.
V2 op V1
op: +., -., *., /.
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 7
Instrues Lgicas As instrues lgicas de palavras combinam bit a bit os valores do ACCU1
de Palavras com uma constante ou com o contedo do ACCU2 e guarda o resultado no
ACCU1.
O contedo dos acumuladores restantes (ACCU2 para S7-300, ou ACCU2,
ACCU3 e ACCU4 para S7-400) permanecem inalterados. As operaes
lgicas podem ser executadas para formatos de palavras (Word) ou palavras
duplas (Double Word).
As instrues AND, OR ou Exclusive OR so disponveis como instrues
lgicas de palavras.
Date: 4/10/2007
File: PRO2_02P.7
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Lgicas de Palavras
S7-300:
S7-400:
ACCU1
ACCU2
V1
V2
V2 op V1
V2
antes depois
ACCU1
ACCU2
V1
V2
V3
V4
ACCU3
ACCU4
V2
V3
V4
antes depois
op: A.., O.., X..,
V2 op V1
op: A.., O.., X..,
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 8
CAW Com a instruo CAW, os bytes na palavra de dados direita do ACCU1 so
trocados entre si, ou seja, o contedo do ACCU1-LH transferido para o
ACCU1-LL e vice versa.
Com esta instruo possvel converter um nmero de 16-bit (INT ou WORD)
em representao SIMATIC para o formato de representao numrica INTEL
(transferncia de dados para PCs).
CAD Com a instruo CAD, os bytes no ACCU1 so trocados entre si, ou seja, o
contedo do ACCU1-HH transferido para ACCU1-LL e vice versa e o
contedo do ACCU1-HL para ACCU1-LH e vice versa.
Com esta instruo possvel converter um nmero de formato 32-bit (DINT,
DWORD ou DINT) em representao SIMATIC para o formato de
representao numrica INTEL (transferncia de dados para PCs).
Date: 4/10/2007
File: PRO2_02P.8
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues de Troca no ACCU1
CAW:
CAD:
V4 V3 V2 V1
ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL
V4 V3 V1 V2
V4 V3 V2 V1
V1 V2 V3 V4
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 9
INC A instruo INC <inteiro de 8 bits> adiciona um inteiro de 8 bits ao contedo
do ACCU1-LL e salva o resultado no ACCU1-LL.
ACCU1-LH, ACCU1-H e ACCU2, ou ACCU3 e ACCU4 permanecem
inalterados.
DEC A instruo DEC <inteiro de 8 bits> subtrai um inteiro de 8 bits do contedo do
ACCU1-LL e salva o resultado no ACCU1-LL.
ACCU1-LH, ACCU1-H e ACCU2, ou ACCU3 e ACCU4 permanecem
inalterados.
Notas As instrues INC e DEC so tambm conhecidas como Instrues de Baixo
Nvel", isto , no caso de um estouro (overflow), o processador no gera
qualquer bit de estouro na palavra de status.
Em vez da instruo INC, voc pode tambm, por exemplo, usar as seguintes
instrues para soma de INT- ou DINT-:
+ <const> (soma uma <const> 16-bit ao ACCU1)
+ L#<const> (soma uma <const> 32-bit ao ACCU1)
Em vez da instruo INC, voc pode tambm, por exemplo, usar as seguintes
instrues para subtrao de INT- ou DINT-:
+ - <const> (subtrai uma <const> 16-bit do contedo do ACCU1)
+ L# - <const> (subtrai uma <const> 32-bit do contedo do ACCU1)
Date: 4/10/2007
File: PRO2_02P.9
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Incrementais no ACCU1
ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL
INC <const>:
V4 V3 V2 V1
V4 V3 V2 V1+<const>
+ <const>
DEC <const>:
V4 V3 V2 V1
V4 V3 V2 V1-<const>
- <const>
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 10
INVI A instruo INVI nega bit a bit o contedo (bits 0 a 15) da palavra direita do
acumulador 1. Ela troca zeros por ums e ums por zeros. O contedo da
palavra esquerda (bits 16 to 31) permanece inalterado.
A instruo INVI no modifica qualquer bit de status.
INVD A instruo INVD nega bit a bit o contedo (bits 0 to 31) do acumulador 1. Ela
troca zeros por ums e ums por zeros.
A instruo INVD no modifica qualquer bit de status.
Date: 4/10/2007
File: PRO2_02P.10
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Formando o Complemento de Um
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
0 31
INVI (Complemento de um do ACCU1-L):
15
ACCU1-L ACCU1-H
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0
0 31 15
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
0 31
INVD (Complemento de um do ACCU1):
15
ACCU1-L ACCU1-H
1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0
0 31 15
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 11
NEGI A instruo NEGI interpreta o valor (bits 0 a 15) encontrado na palavra direita
do ACCU1 como um nmero INTEIRO e atravs da formao do
complemento de dois reverte o sinal.
Esta instruo equivale a multiplicao por -1. A palavra esquerda do
ACCU1 (bits 16 to 31) permanece inalterada.
Os bits de status CC1, CC0, OS e OV so setados como uma funo do
resultado da operao.
NEGD A instruo NEGD interpreta o valor encontrado no ACCU1 como um nmero
duplo inteiro e o multiplica por -1.
A formao do complemento de dois tambm pode ser feita atravs do
complemento de um somado de +1.
Os bits de status CC1, CC0, OS e OV so setados como uma funo do
resultado da operao.
NEGR A instruo NEGR interpreta o valor encontrado no ACCU1 como um nmero
REAL (32 bit, IEEE-FP) e multiplica este nmero por -1. A instruo inverte o
estado do bit 31 no ACCU1 (sinal da mantissa).
A instruo NEGR no modifica os bits de status.
Date: 4/10/2007
File: PRO2_02P.11
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Negao de Nmeros (Complemento de Dois)
OUT
NEGI (Negao de nmeros INT)
NEGD (Negao de nmeros DINT):
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
0 31
1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0
0 31 Complemento de um
1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1
31
Adio de + 1
NEGR (Negao de nmero REAL):
= 1.3125
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0
Expoente = 8 Bit S
Mantissa (23 Bits)
0 22 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0
= 1 112 116 295
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 12
RLDA A funo RLDA desloca o contedo do ACCU1 em 1 casa para esquerda. A
posio do bit 0 ser preenchida com o valor do status bit CC1. O status bit
CC1 ficar com o contedo do bit 31.
Os bits de status CC0 e OV so zerados ("0).
Exemplo:
ACCU1: Y100 0100 1100 0100
CC1: X
RLDA
ACCU1: 1000 1001 1000 100X
CC1: Y
RRDA A funo RRDA desloca o contedo do ACCU1 em 1 casa para direita. A
posio do bit 31 ser preenchida com o valor do status bit CC1. O bit de
status CC1 ficar com o contedo do bit 0.
Os bits de status CC0 e OV so zerados ("0).
Exemplo:
ACCU1: 0100 0100 1100 010Y
CC1: X
RRDA
ACCU1: X010 0010 0110 0010
CC1: Y
Date: 4/10/2007
File: PRO2_02P.12
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues de Rotao em 32 Bits via Bit CC1
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 31
Bit CC1
RLDA (Rotao esquerda via status bit CC1):
RRDA (Rotao direita via status bit CC1):
0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 31
Bit CC1
ACCU1
ACCU1
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 13
Objetivo Familiarizar-se com instrues de troca de acumuladores atravs do clculo
de potenciao de nmeros inteiros.
Enunciado Gerar a FC21 com a seguinte funcionalidade:.
Ler o byte esquerdo da chave rotativa e converter o valor BCD em valor
Inteiro (BTI).
Calcular a 6 potncia do valor lido.
Procedimento 1. Copiar o contedo do ACCU1 no ACCU2 com a ajuda do comando PUSH.
2. Multiplicar o ACCU1 por ACCU2 (clculo do quadrado).
3. Copiar o contedo do ACCU1 no ACCU2 com a ajuda do comando PUSH.
4. etc., etc., etc.
Cuidado: Como o quarto passo deve ser tratado para que a FC21 retorne
o resultado correto tanto para um S7-300 como para um S7-400?
5. Apresente o resultado no display digital.
6. Chame a FC21 no OB1 e faa o download do programa para a CPU.
7. Teste o programa.
Nota Para que o valor lido no seja muito grande, somente a dcada da direita
deve ser lida.
Date: 4/10/2007
File: PRO2_02P.13
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 2.1: Clculo com Expoentes
Exemplo : Formao da 6 potncia de um nmero inteiro atravs de sucessivas
instrues PUSH e *I
ACCU1
ACCU2
Cpia com
PUSH
multiplicar
com *D
ACCU1
Chave Rotativa
x y 0 0
converte
para INT
BTI
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 14
Objetivo Familiarizar-se com troca de bytes no ACCU1.
Aplicao: Converter um nmero em representao SIMATIC para uma
representao de PC usando INTEL-CPU (80486, Pentium,...).
Esta converso muito til quando se faz troca de dados entre um
controlador SIMATIC e um PC.
Enunciado Gerar a FC22 com a seguinte funcionalidade:
Carregue o valor da chave rotativa no ACCU1.
Troque os 2 bytes do ACCU1-L com auxlio do comando CAW.
Apresente o contedo do ACCU1 no display.
Procedimento 1. Gerar a FC22.
2. Chamar a FC22 no OB1.
3. Fazer o download do programa para a CPU S7.
4. Testar o programa.
Date: 4/10/2007
File: PRO2_02P.14
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
2 3
Exerccio 2.2 : Troca de Dados no ACCU1
ACCU1 - L (antes)
1 0
CAW
ACCU1 - L (depois)
0 1 3 2
Siemens Ltda.
Training Center
ST-7PRO2
Funes com Acumuladores Pgina 15
Objetivo Familiarizar-se com a instruo de formao de complemento no SIMATIC
S7.
Aplicao: Converter um "negativo" em um "positivo "
Tais converses so sempre empregadas quando se l sinais ativos em 0,
porm o programa de usurio trabalha com lgica positiva ou quando sinais
invertidos (0-ativo) so enviados para os equipamentos de campo.
Enunciado Gerar a FC 23 com a seguinte funcionalidade:
Carregue o valor da palavra das chaves de teste de entrada no ACCU1.
Forme o complemento de um.
Apresente o resultado nos LEDs do simulador.
Procedimento 1. Gerar a FC 23
2. Chamar a FC 23 no OB 1
3. Fazer download do programa para a CPU S7.
4. Testar o programa com auxilio das variveis de status e opes de preset
binrio.
Date: 4/10/2007
File: PRO2_02P.15
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 2.3 : Formando Complementos
Bit 15 Bit 0
Formando o Complemento de Um: INVI
1 . . . . . . . . . . . . 1 0 1
ACCU1-L (antes)
Bit 15 Bit 0
0 . . . . . . . . . . . . 0 1 0
ACCU1-L (depois)
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 1
Contedo Pg.
Representao de nmeros REAIS no SIMATIC S7 ............................................................... 2
Instrues Bsicas com nmeros REAIS ........................................................................................... 3
Funes Matemticas Adicionais ................................................................................................ 4
Funes Trigonomtricas e suas Funes Inversas .......................................................................... 5
Outras Instrues com nmeros REAIS ............................................................................................. 6
Exerccio 3.1: Calculando Distncia ................................................................................................ 7
Date: 04.10.2007
File: PRO2_3P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Instrues com nmeros REAIS
y=LN(x)
sin?
cos?
tan?
...?
?
?
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 2
Date: 04.10.2007
File: PRO2_3P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Representao de nmeros REAIS no SIMATIC S7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Expoente: e (8 Bits)
S
Mantissa: f (23 Bits)
Formato da representao de um nmero REAL (IEEE FP formato binrio 32 bits):
Representao de um nmero REAL normalizado:
S x (1.f) x 2
(e-127)
S = Bit de sinal (0 corresponde a +, 1 corresponde a -)
f = 23 bits da Mantissa com MSB = 2
-1
e LSB =2
-23
e = expoente binrio inteiro (0 < e < 255)
Faixa de valores dos nmeros REAIS normalizados:
- 3.402 823 x 10
+38
... -1.175 494 x 10
-38
, 0, 1.175 494 x 10
-38
... 3.402 823 x 10
+38
2
-1
2
-23
Exemplo:
S = 0
e = 1000 0101 = 133
f = 1010 0000... = 0.5 + 0.125
R = +1.625 x 2(133-127) = 1.625 x 64 = 104.0
Nmero REAL Os nmeros REAIS (ponto flutuante) habilitam a implementao de
complexos clculos matemticos para controle de processos e controle de
processos em malha fechada.
Uma varivel tipo dado REAL consiste internamente de trs componentes: o
sinal, o expoente 8 bits em base 2 e a mantissa 23 bits.
O sinal pode assumir os valores "0" (positivo) ou "1" (negativo). O expoente
incrementado por uma constante (Bias,+127) e armazenado, ento este ter
uma faixa de valores de 0 a 255.
A mantissa representta a parte fracionria. A parte inteira da mantissa no
armazenada, uma vez que esta ser sempre 1 (para ponto flutuante
normalizado) ou 0 (para ponto flutuante no normalizado).
Limites de faixa Designao Valor e Mantissa f Valor CC1 CC0 OV OS
No.no pt.flut. 255 <>0 [qNaN] 1 1 1 1
Estouro 255 0 >(2-2
-23
) 2
127
1 0 1 1
<(-2+ 2
-23
) 2
127
0 1 1 1
No. normalizado 1.. 254 qualquer (1.f) 2
e-127
1 0 0 -
(-1.f) 2
e-127
0 1 0 -
No.no normaliz. 0 <>0 (0.f) 2
-126
0 0 1 1
(- 0.f) 2
-126
0 0 1 1
Zero 0 0 +0 0 0 0 -
Nota As CPUs calculam com inteira exatido os nmeros em ponto flutuante. O
display na PG pode deviar-se da exata representao, devido ao erro de
arredondamento para cima na converso. Nmeros REAIS so arredondados
para cima a partir da sexta casa decimal.
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 3
Vista Geral As funes +R, -R, *R, /R interpretam os valores encontrados no ACCU1 e
ACCU2 como nmeros tipo dados REAIS. Eles executam a operao lgica
programada (+R, -R, *R and /R) e salvam o resultado no ACCU1.
Aps os clculos serem executados, os bits de status CC0 e CC1 indicam, se
o resultado negativo (CC1=0, CC0=1), zero (CC1=0; CC0=0) ou positivo
(CC1=1, CC0=0).
Os bits de status OV e OS sinalizam se as operaes no excederam a faixa
de nmeros permitidos.
Nmeros REAIS Com um clculo no autorizado, isto , quando um dos dois valores inseridos
no autorizados um nmero REAL invlido, ento o resultado no ACCU1 tambm um
nmero REAL invlido.
Nmeros REAIS invlidos so tambm armazenados como um resultado no
ACCU1, se voc tentar processar valores no autorizados com as seguintes
instrues:
Adio: Soma de + infinito e - infinito.
Subtrao: Subtrao de + infinito e + infinito
ou - infinito e - infinito.
Multiplicao: Multiplicao de 0 por infinito.
Diviso: Diviso de infinito por infinito ou 0 por 0.
O resultado da diviso de nmeros REAIS vlidos por 0 , dependendo do
sinal do nmero, + infinito ou - infinito.
Nota O nmero hexadecimal D#16#FFFF FFFF representa, por exemplo, um
nmero REAL invlido.
Date: 04.10.2007
File: PRO2_3P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Bsicas com nmeros REAIS
Adio em REAL:
L MD10 // Carrega o primeiro nmero REAL
L MD20 // Carrega o segundo nmero REAL
+R // Soma os nmeros REAIS (MD10 + MD20)
T MD30 // Transfere o resultado para o MD30
Subtrao em REAL:
L MD10 // Carrega o primeiro nmero REAL
L MD20 // Carrega o segundo nmero REAL
-R // Subtrai os nmeros REAIS (MD10 - MD20)
T MD30 // Transfere o resultado para o MD30
Multiplicao em REAL:
L MD10 // Carrega o primeiro nmero REAL
L MD20 // Carrega o segundo nmero REAL
*R // Multiplica os nmeros REAIS (MD10 * MD20)
T MD30 // Transfere o resultado para o MD30
Diviso em REAL:
L MD10 // Carrega o primeiro nmero REAL
L MD20 // Carrega o segundo nmero REAL
/R // Divide os nmeros REAIS (MD10 / MD20)
T MD30 // Transfere o resultado para o MD30
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 4
Vista Geral As funes matemticas pegam o nmero no ACCU1 como o valor de
entrada da funo a ser executada e armazena o resultado no ACCU1.
Funes matemticas somente mudam o contedo do ACCU1. O contedo
do ACCU2, ou ACCU3 e ACCU4 para S7-400, permanecem inalterados.
Dependendo do resultado da funo, a funo matemtica seta os bits de
status CC0, CC1, OV e OS.
Se existe um nmero REAL invlido no ACCU1 antes da funo ser
executada, ento a funo matemtica retorna um nmero REAL invlido e
seta os bits de status correspondentemente.
SQR A funo SQR eleva ao quadrado o contedo do ACCU1.
SQRT A funo SQRT calcula a raiz quadrada do valor no ACCU1. Se existe um
valor menor do que zero no ACCU1, SQRT seta os bits de status CC0, CC1,
OV e OS para "1" e retorna um nmero REAL invlido.
Se -0 (menos zero) est no ACCU1, -0 tambm retornado.
EXP A funo EXP calcula a potncia na base e (e=2.71828) e o valor (e
ACCU1
)
encontrado no ACCU1.
LN A funo LN calcula o logartmo natural para base e do nmero encontrado
no ACCU1. Se existe um valor menor que ou igual a zero no ACCU1, LN seta
os bits de status CC0, CC1, OV e OS para "1" e retorna um nmero REAL
invlido.
O logartmo natural a funo inversa da funo exponencial:
Se: y= e
x
ento: x = ln y
Date: 04.10.2007
File: PRO2_3P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Funes Matemticas Adicionais
Funes Matemticas:
SQR Forma o quadrado de um nmero
SQRT Calcula a raiz quadrada
EXP Funo exponencial na base e
LN Logartmo natural
(e=2.718282)
Exemplo:
L MD10 // Carrega um nmero REAL
SQR // Calcula o quadrado
T MD30 // Transfere o resultado para MD30
SQR
EN ENO
IN OUT MD10 MD30
(STL)
(LAD)
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 5
Funes As funes trigonomtricas esperam por um ngulo em radianos medido
como
Trigonomtricas nmero REAL no ACCU1. Para o ngulo inserido ( 0
0
... 360
0
), voc deve, se
necessrio, realizar uma converso para graus medidos (0 ... 2 pi, com
pi=3.141593).
Durante a execuo da funo, para valores menores que 0 ou maiores que
2pi, um mltiplo de 2pi automaticamente somado ou subtrado at que o
valor se encontre entre 0 e 2pi (mdulo automtico de clculo 2pi).
Funes Arco As funes arco so o inverso de suas respectivas funes trigonomtricas.
Elas esperam um nmero REAL em uma faixa especfica de valores no
ACCU1 e retornam um ngulo medido em radianos:
Funo Faixa permitida definida Faixa de valores
ASIN -1 a +1 - pi/2 a + pi/2
ACOS -1 a +1 0 a pi
ATAN faixa inserida - pi/2 a + pi/2
Com uma sobrefaixa da faixa permitida definida, as funes arco retornam um
nmero REAL invlido e setam os bits de status CC0, CC1, OV e OS para "1".
Date: 04.10.2007
File: PRO2_3P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Funes Trigonomtricas e suas Funes Inversas
ngulo
Funes Trigonomtricas:
SIN Seno
COS Coseno
TAN Tangente
Funes Arco:
ASIN Arco seno
ACOS Arco coseno
ATAN Arco tangente
Exemplo:
L MD10 // Carrega um nmero REAL
SIN // Calcula o seno
T MD30 // Transfere o resultado para MD30
SIN
EN ENO
IN OUT MD22 MD30
(STL)
(LAD)
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 6
Vista Geral As funes de converso convertem os tipos de dados dos valores
encontrados no ACCU1 em outro tipo de dado e armazena o resultado no
ACCU1. O contedo dos outros acumuladores permanecem inalterados.
Se, em uma das instrues (RND+, RND-, RND ou TRUNC), o valor
encontrado no ACCU1 maior ou menor do que a faixa de formatos
permissveis de DINT ou este no corresponde ao nmero em formato REAL,
a instruo seta os bits de status OV e OS para "1". Uma converso ento
no tem lugar.
RND+ A instruo RND+ converte o contedo do ACCU1 como nmero REAL em
um inteiro (DINT), o qual maior ou igual ao nmero a ser convertido.
RND- A instruo RND- converte o contedo do ACCU1 como nmero REAL em
um inteiro (DINT), o qual menor ou igual ao nmero a ser convertido.
RND A instruo RND converte o contedo do ACCU1 como nmero REAL no
prximo inteiro possvel (DINT). Se o resultado estiver exatamente entre um
nmero par e um nmero mpar, o nmero par retornado.
TRUNC A instruo TRUNC retorna o componente inteiro do nmero a ser convertido;
a parte fracionria jogada fora.
DTR A instruo DTR converte um nmero de formato DINT para o formato de
nmero REAL. Uma vez que um nmero em formato DINT mais exato do
que um nmero em formato REAL, possvel que durante a converso um
arredondamento tenha lugar para o prximo nmero representvel.
ABS A instruo ABS forma o valor absoluto do nmero REAL encontrado no
ACCU1, isto , o sinal (bit 31) fixado em 0 (par para um nmero REAL
invlido).
NEGR A instruo NEGR nega o nmero REAL no ACCU1, isto , o sinal (bit 31)
invertido (par para um nmero REAL invlido). As instrues DTR, ABS e
NEGR no afetam os bits de status.
Date: 04.10.2007
File: PRO2_3P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Outras Instrues com nmeros REAIS
Instrues de converso de REAL para DINT:
RND+ arredonda para o prximo nmero DINT acima
RND- arredonda para o prximo nmero DINT abaixo
RND arredonda para o inteiro mais prximo
TRUNC trunca o nmero, mantendo somente a parte inteira
Instrues de converso de DINT para REAL:
DTR converte com arredondamento
Outras instrues de REAL para REAL:
ABS retorna o valor absoluto ou mdulo
NEGR nega um nmero REAL
Exemplo:
L MD10 // Carrega um nmero REAL
RND+ // Converte para o prximo nmero DINT acima
T MD30 // Transfere o resultado para MD30
RND+
EN ENO
IN OUT MD22 MD30
(STL)
(LAD)
Siemens Ltda.
Training Center
ST-7PRO2
Instrues com nmeros REAIS Pgina 7
Objetivo A aplicao de funes matemticas para clculo de distncia entre dois
pontos.
Tarefa Criar um FC31 com a seguinte fucionalidade:
FC31 espera as coordenadas (X1, Y1) ou (X2, Y2) de dois pontos P1 e
P2 nos parmetros de entrada.
FC31 retorna a distncia entre os dois pontos no parmetro de sada
RET_VAL.
FC31 dever ser instalvel no sistema S7-300 bem como no sistema S7-
400 Este no dever utilizar endereos globais de CPU para qualquer
possvel salvamento dos resultados imediatos.
O que fazer 1. Criar um FC31 com a seguinte fucionalidade.
2. Chamar FC31 no OB1 e conectar os parmetros de entradas e sadas
como a seguir:
X1 = MD0, Y1 = MD4
X2 = MD8, Y2 = MD12
RET_VAL = MD16
3. Transferir o programa para a CPU S7.
4. Testar FC31 com ajuda da "Monitor/Modify Variable".
Additional Task Criar uma verso run-time otimizada do FC31 para S7-400, que possa operar
sem o uso de variveis temporrias.
Date: 04.10.2007
File: PRO2_3P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 3.1: Calculando Distncia
Exemplo: Calculando a distncia D entre dois pontos em
um sistema de coordenadas retangulares
P1
P2
X1 X2
X
Y
Y2
Y1
Funo: FC 31 com D = (X2 - X1)
2
+ (Y2 - Y1)
2
D
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 1
Contedo Pg.
Opes de endereamento com STEP7........................................................................................... 2
Endereamento Direto de variveis ................................................................................................. 3
Endereamento Direto de variveis em DBs .................................................................................. 4
Avaliao de informao de DB no programa ................................................................................. 5
Memria de Endereamento Indireto .............................................................................................. 6
Estrutura de ponteiros com Endereamento Indireto de Memria .................................................... 7
Caractersticas do Endereamento Indireto de Memria .................... ............................................ 8
Exemplo de Endereamento Indireto ............................................................................................... 9
Exerccio 4.1: Programao de Loop com Endereamento Indireto ................................................. 10
Endereamento Indireto de Registrador de rea Interna ............................................................... 11
Endereamento Indireto de Registrador de rea Cruzada ............................................................. 12
Instrues para carregamento dos Registradores de Endereo ...................................................... 13
Outras instrues com Registradores de Endereo ......................................................................... 14
Caractersticas do Registrador de Endereamento Indireto ............................................................ 15
Exerccio 4.2: Loopcom Registrador de Endereamento Indireto .................................................... 16
Tipos de ponteiros do STEP7 ......................................................................................................... 17
Estrutura e atributos de um dado tipo "POINTER........................................................................... 18
Configurao de um dado tipo "ANY.............................................................................................. 19
Atributos dos parmetros de dados tipo "ANY ............................................................................... 20
Atributos indiretos de parmetros do tipo ANY ............................................................................ 21
Avaliando um ponteiro tipo "ANY..................................................................................................... 22
Exerccio 4.3: Funo para calcular valor da soma e mdia ...................................................... 23
Date: 4/10/2007
File: PRO2_04P.1
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Endereamento Indireto e Instrues com Registrador de Endereos
L W [AR1, P#200.0]
-
-
-
-
1
2
9
10
#Ini_Value
#
P
o
i
n
t
e
r
#Counter
?
?
?
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 2
Endereamento Com endereamento direto, o local da memria codificado na instruo, ou
Direto seja, o endereo especifica o valor do endereo com a qual a instruo deve
processar.
Endereamento Num programa, endereos podem ser endereados absolutamente (p.ex.
Simblico I1.0) ou simbolicamente (p.ex."start signal"). Os endereos simblicos usam nomes
ao invs de endereos absolutos.
Um programa facilmente interpretado quando so usados nomes com significado.
Com endereamento simblico feita uma diferenciao entre smbolos locais
(tabela de declaraes de um bloco) e globais (tabela de smbolos).
Endereamento Com endereamento indireto pode-se enderear endereos que somente
Indireto so definidos durante a execuo do programa. Com endereamento indireto,
partes do programa podem ser executadas repetidas vezes (Loop) e cada
varredura com um endereo diferente.
Com endereamento indireto feita diferenciao entre:
endereamento indireto de memria: Um ponteiro do endereo endereado
ser encontrado em uma clula de memria da memria do usurio (p.ex. MD30).
Com endereamento indireto de memria, as variveis, na memria na qual
o ponteiro de endereamento de endereo est guardada, tambm pode ser
atribudo um nome simblico.
endereamento indireto de registro: O ponteiro do endereo endereado
carregado em um dos dois registradores de endereos do S7 (AR1 e AR2) antes
de serem acessados.
Precauo Como no endereamento indireto os endereos somente so definidos
durante a execuo do programa, deve-se tomar o cuidado de no
sobrescrever reas de memria que possam causar reaes inesperadas do
PLC.
Date: 4/10/2007
File: PRO2_04P.2
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Opes de Endereamento com STEP 7
Procedimento de endereamento
Endereamento Direto Endereamento Indireto
absoluto simblico memria indireta registrador indireto
Exemplos:
A I4.0 A "Mot_on" OPN DB[MW10] A I[MD30] A I[AR1,P#0.0] A [AR1,P#0.0]
L IW10 L #num SP T["runtime"] L IW["Number"] L ID[AR1,P#5.0] T W[AR1,P#0.0]
16-bit pointer
(DB, T, C)
32-bit pointer
rea interna
32-bit pointer
rea interna
32-bit pointer
rea cruzada
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 3
Endereamento O endereamento direto permite enderear variveis simples (elementares),
Direto de Variveis variveis com comprimento mximo de 4 bytes. Variveis simples consistem de:
um operando (p.ex.: "IB" para input byte)
um endereo exato (localizao de memria)(byte ou bit) da rea de memria
que determinada pelo identificador de endereo.
Endereos ou variveis simples tambm podem ser endereadas de modo global
por nomes simblicos (tabela de smbolos).
Perifricos Para endereamento perifrico, diferente do S5, agora necessrio fazer uma
distino entre inputs (L PIW) e outputs (T PQW).
Dados locais Com STEP 7 possvel tambm ter acesso aos dados da pilha de endereos
locais de cada bloco, por exemplo:
A L 12.6 (lgica Edo bit local 12.6 )
L LW 12 (Carrega a palavra de dados local 12 no ACCU1)
DBX/DIX Voc pode tambm acessar variveis simples contidas em DBs:
A DBX 12.6 (lgica Edo bit 12.6 do DB que estiver aberto).
L DB5.DBW10 (Carrega o DBW10 do DB5 no ACCU1)
Variveis Voc pode acessar variveis locais, que possua um tipo de dado complexo,
Complexas como estruturas (struct) ou vetores (array), simbolicamente.
Acesso absoluto s possvel com componentes de variveis complexas, das
quais suas partes so dados tipo elementares.
Date: 4/10/2007
File: PRO2_04P.3
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Endereamento Direto de Variveis
Endereo do
Operando (p. ex.)
I 37.4
Operando
Dimenses de
Accesso Adicionais
Byte, word,
double word
Designao
Entradas (Inputs)
Q 27.7
Byte, word,
double word
Sadas (Outputs)
PIB 655
Byte, word,
double word
Periferia de Entrada
(Peripheral inputs)
PQB 653
Byte, word,
double word
Periferia de Sada
(Peripheral outputs)
M 55.0
Byte, word,
double word
Bits de Memria
(Bit memories)
T 114 -- Temporizadores (Timers)
C 13 -- Contadores (Counters)
DBX 2001.6
Byte (DBB), word (DBW),
double word (DBD)
Dado endereado via
Registrador de DB
DIX 406.1
Byte (DIB), word (DIW),
double word (DID)
L 88.5
Byte (LB), word (LW),
double word (LD)
Pilha de Dados Local
(Local data stack)
Dado endereado via
Registrador de DI
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 4
Viso Geral A CPU dispe de dois registradores de DB para processamento de dados. O
endereo dos DBs correntemente em uso esto guardados nestes registradores.
Antes de voc acessar dados de um DB, voc deve primeiro abri-lo via um destes
dois registradores.
Abrir um DB pode ser feito explicitamente pelas seguintes instrues:
Opn DBx ou OPN DIx
ou implicitamente com auxilio de endereamento combinado com operando:
L DBx.DBWy (L DIx.DIWy no possvel!)
Neste caso o nmero do DB tambm carregado no registrador de DB.
Endereamento DBs so organizados byte a byte no STEP7. O acesso direto aos endereos pode
ser em BIT, BYTE, WORD ou DWORD (como I/Q/M).
Acesso Simblico Para acesso simblico deve-se entrar com o nome do smbolo do DB na lista de
smbolos. Depois cria-se pelo editor de DB os elementos e seus respectivos
smbolos.
Agora um completo acesso simblico aos elementos de dados possvel com a
instruo L "Values".Number_1. Com isto, DB19 aberto ("Values" o nome
simblico do DB 19) e DBW 2 carregado (Number_1 o nome simblico do
DBW2).
Date: 4/10/2007
File: PRO2_04P.4
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Endereamento Direto de Variveis em DBs
Abrir o DB
Carregar e
Transferir no DB
OPN DB 19
OPN " Values"
OPN DI 20
Instruo combinada
(contm OPN DB..)
L DBB 1 Carrega o byte de dado 1 do DB
L DBW 2 Carrega palavra de dado 2 (byte 2/3)
L 5 Carrega o nmero 5
T DBW 4 Transfere para a palavra 4 do DB
L 'A' Carrega o caracter A em ASCII
L DIB28 Carrega o byte de dado 28 do DI
==I Compara
A DBX 0.0 L contedo do bit 0, byte 0
L DB19.DBW4 Carrega palavra 4 do DB 19
L " Values" .Number_1 Acesso simblico da
varivel Number_1.
DB19 tem o nome
simblico " Values"
A DB10.DBX4.7 L contedo do bit 7, byte 4
do DB 10
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 5
Registradores DB, DI Estes registradores contm o nmero dos DBs atualmente abertos. Dois Blocos de
Dados podem ser abertos simultaneamente.
STL usa o primeiro registrador de DB preferencialmente para acessar o DB global e
o segundo registrador de DB preferivelmente para acessar o DB instance. Estes
registradores so tambm chamados de DB register ou DI register por esta razo.
A CPU trata os dois registradores igualmente. Todo DB pode ser aberto por um
destes dois registradores (at mesmo via ambos simultaneamente).
CDB CDB (troca dos DB registers) troca o contedo dos registradores DB e DI. O
contedo do registrador de DB transferido para o registrador de DI e vice versa.
Esta instruo no influencia o contedo do ACCU1 e nem os bits de status.
L DBLG, L DILG: Estas instrues lem o comprimento em byte dos DBs abertos. Com a ajuda
destas instrues o programa de usurio pode saber antes do DB ser acessado se
ele possui o comprimento necessrio.
L DBNO, L DINO: Estas instrues retornam o nmero dos DBs atualmente abertos.
Date: 4/10/2007
File: PRO2_04P.5
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Avaliao de Informao de DB no Programa
antes: depois:
CDB
123 24
24 123
DB-Register
DI-Register
Instrues com DB Registers:
CDB: Troca de DB Registers
Carregar o DB Register no ACCU1
L DBNO (Carregue o numero do DB aberto no ACCU1)
L DINO (Carregue o numero do DI aberto no ACCU1)
Carregar o comprimento dos DBs
L DBLG (carregue o comprimento/bytes do DB aberto no ACCU1)
L DILG (carregue o comprimento/bytes do DI aberto no ACCU1)
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 6
Viso Geral Com endereamento indireto de memria, o endereo da varivel a qual ser
acessada encontra-se em um endereo (localizao de memria).
Programas que usam endereamento indireto de memria contm:
uma instruo (p.ex.: OPN, A, L, etc.)
um identificador de endereo (DB, C, T, I, QW, MD, etc.)
e uma [varivel], a qual tem que estar entre colchetes.
Esta varivel contm o endereo (ponteiro) do operando a qual a instruo
ir acessar.
Dependendo do identificador de endereo usado, a instruo interpretar o dado
armazenado [varivel] especificada, ou como um ponteiro de dimenso word ou
double word.
Instrues com Para enderear temporizadores, contadores ou blocos (DB, FC, FB) use
Ponteiros 16-bit um ponteiro de 16 bits.
Todas as instrues de temporizadores ou contadores podem ser endereadas
usando endereamento indireto. Para enderear temporizadores, contadores ou
blocos use identificadores de rea dos formatos T, C, DB, DI, FB, FC. O endereo
(localizao de memria) do operando endereado armazenado em uma
palavra.
Um DB pode ser aberto via registrador de DB bem como um DI. Se um zero
encontrado no ponteiro quando voc abre um bloco de dados (DB, DI)
indiretamente, ento o registrador DB/DI carregado com o valor 0. Um erro
no gatilhado quando voc carrega com 0.
A chamada dos blocos lgicos podem ser endereados indiretamente com a
ajuda das instrues UC ou CC (no CALL). Os blocos, contudo, no podem
conter quaisquer parmetros ou variveis estticas.
Este ponteiro em formato palavra (word) interpretado como nmero inteiro (0 ...
65 535). Isto se refere ao nmero de um temporizador (T), um contador (C), um
bloco de dados (DB, DI) ou um bloco lgico (FC, FB).
Date: 4/10/2007
File: PRO2_04P.6
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Ponteiro de 16-bit em formato Word
(Endereamento de DBs, T, C)
L 11
T MW 60
OPN DB[MW 60] OPN DB 11
Ponteiro de 32-bit em formato Double Word
(Endereamento de I, Q, M, ...)
L P#24.0
T MD 50
L I W [MD50] L IW 24
rea Dimenso Endereo
do Acesso
Memria de Endereamento Indireto
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 7
Instruo com Os seguintes endereos podem ser acessados com auxlio de
Ponteiros 32-bit endereamento indireto de memria via ponteiros 32-bit:
Bits que so endereados por operaes de lgica binria. I, Q, M, L, DIX
ou DBX podem ser usados como identificadores de endereo.
Bytes, words e double words que podem ser endereados por instrues
Load ou Transfer IB, IW, ID, DBB, DBW, DBD, DIB, DIW, DID, PIB, PIW,
PID, etc., podem ser usados como identificadores de endereo.
O endereo do operando endereado interpretado como ponteiro 32-bit. Nesta
double word, os bits menos significativos (bit 0 a 2) so interpretados como
endereo do bit, os prximos 16 bits (bit 3 a 18) so interpretados como endereo
do byte. Bits 19 a 31 no so avaliados pela memria de endereamento indireto.
Nota Se voc quiser acessar um endereo por meio do endereamento indireto de
memria com instrues Loadou Transfer, voc precisa se certificar de que o
endereo de bit do ponteiro usado 0.
Se no for este o caso, a CPU identificar um erro durante a execuo.
Carregando Uma constante ponteiro 32-bit pode ser carregada no ACCU1 com auxlio
Constantes da seguinte sintaxe:
Ponteiro 32-bit L P#<Endereo do Byte>.<Endereo do Bit>
Localizao dos Ponteiros de 16-bit e 32-bit para endereamento indireto de memria
Ponteiros devemser armazenadas em uma das seguintes opes:
M - Memria M
L - Dado local
D - Bloco de Dados (DB ou DI)
Date: 4/10/2007
File: PRO2_04P.7
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura de Ponteiros com Endereamento Indireto de Memria
Estrutura com um Ponteiro 16-bit:
Interpretao como inteiro sem sinal entre 0 ... 65 535
146
Estrutura com um Ponteiro 32-bit (rea-interna):
Endereo
do Bit
Endereo do Byte ( inteiro sem sinal) No avaliado
Carregamento de Constantes Ponteiro 32-bit (rea-interna):
L P#25.3 (P ="Pointer", Endereo do Byte=25, Endereo do Bit=3)
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2
0
2
15
2
7
B B B B B B B B B B B B B X X X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 B B B
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
2
0
2
2
2
0
2
15
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 8
reas de endereos Com endereamento indireto de memria, o endereo (local da memria)
para Ponteiros encontrado em um endereo de 16-bit ou 32-bit. Este endereo pode ser
guardado em uma das seguintes reas:
Memria M: como operando endereado absolutamente ou como varivel
endereada simbolicamente via tabela de smbolos.
Pilha de Dados Local: como operando endereado absolutamente ou como
varivel temporria declarada na lista de declaraes dos blocos.
DBs Globais: como operando endereado absolutamente. Quando DBs
compartilhados (Globais) so usados para guardar ponteiros, deve-se tomar
o cuidado de abrir o DB correto (p.ex.OPN DBn) antes de ser acessado.
DBs Instance: como operando endereado absolutamente . Quando dados
instance so usados, os seguintes pontos devem ser observados:
OBs e funes: Dentro de funes ou OBs, um ponteiro que est armazenado num DB
instance, pode ser usado exatamente como se estivesse armazenado num DB global.
Somente deve-se lembrar que ao invs do registrador DB, agora o registrador DI que
est sendo usado.
FBs: Dentro de FBs, dados instance, que so parmetros ou variveis estticas,
geralmente no podem ser usados simbolicamente para endereamento indireto de
memria.
Acesso absoluto a dados locais dentro de um FB , em princpio, possvel atravs do
endereoapresentado na tabela de declaraes, contudo, deve ser observado que,
quando a FB usada como multi instance, o endereo no o endereo absoluto
especificado no instance DB. O endereo de fato estar no AR2.
Nota Quando voc passa ponteiros por memria de endereamento indireto para
blocos ou quer manter o valor permanentemente em variveis estticas, ento
voc tem que copiar o valor de ponteiro do parmetro ou varivel de esttica em
uma varivel temporria e ento tem que completar o acesso por esta varivel
temporria.
Date: 4/10/2007
File: PRO2_04P.8
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Caractersticas do Endereamento Indireto de Memria
reas de endereo para guardar Ponteiros de 16-bit e 32-bit:
Memrias M (endereamento absoluto ou simblico,
p.ex.:OPN DB[MW30], OPN DI["Motor_1"], etc.
A I[MD30], T QD["Speed_1], etc.)
Pilha de Dado Local (endereamento absoluto ou simblico,
p.ex.. OPN DB[LW10], OPN DI[#DB_NO], etc.
A I[LD10], T QD[#Pointer], etc.)
DBs globais (s endereamento absoluto, DB deve ser aberto antes do uso,
p.ex.: OPN DB[DBW0] (sobrescreve registrador DB !!!), OPN DI[DBW22], etc.
A I[DBD10], T QD[DBD22], etc.)
DBs Instance (s endereamento absoluto, DI deve ser aberto antes do uso,
p.ex.: OPN DB[DIW20], OPN DI[DIW0] (sobrescreve registrador DI !!!), etc.
A I[DID10], T QD[DID22, etc.)
Caractersticas na Passagem de Ponteiros para FBs e FCs
Ponteiros passados por parmetros no podem ser usados diretamente para
endereamento indireto de memria
Ponteiros passados para endereamento indireto de memria devem ser
copiados em variveis temporrias antes do acesso
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 9
Descrio Este exemplo mostra uma funo que inicializa os dados de um DB com o valor
"0". O n do DB passado para a funo por um parmetro de entrada.
O DB endereado antes de tudo aberto no segmento 1. Por isso, o n do DB
passado (parmetro: #dbnumber) copiado numa memory word (MW100) e ento
o DB aberto atravs desta memory word.
No segmento 2, as primeiras 10 words do DB so setadas em 0pelo loop. O loop
usa a instruo LOOP, de maneira que o contador de loop memorizado no MB
50.
A transferncia do valor "0" para cada DBW do DB aconteceu com o auxilio do
endereamento indireto via MD40.
Antes de entrar no loop, o ponteiro com o endereo do ltimo DBW (DBW 18)
carregado no MD 40. A cada loop o endereo de acesso no MD40 decrementado
de P#2.0, pois os endereos so zerados de word em word e no de byte em byte
no DB.
Notas Na prtica, tambm faria sentido programar o endereo inicial e o comprimento da
rea com 0como parametrizveis e checar antes de abrir o DB, se o DB
realmente existe e com o comprimento necessrio.
Ao invs de se utilizar o endereamento indireto via ponteiro com memria M, qual
seria uma alternativa melhor? Porqu?
Date: 4/10/2007
File: PRO2_04P.9
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exemplo de Endereamento Indireto
FC30: Exempl o de ender eament o i ndi r et o
Net wor k 1: abr i r DB comender eament o i ndi r et o
L #dbnumber / / Copi a o nmer o do DB no MW100
T MW 100 / /
OPN DB[ MW 100] / / Abr e o DB
Net wor k 2: Loop de apagament o
L P#18. 0 / / Ender eo f i nal ( DBW18) como Pont ei r o
T MD 40 / / no MD 40;
L 10 / / Pr eset a cont ador do l oop em10
anf : T MB 50 / / e t r ansf er e par a MB 50;
L 0 / / Car r ega val or i ni cal 0
T DBW[ MD 40] / / e t r ansf er e par a o DB;
L MD 40 / / Car r ega o pont ei r o e
L P#2. 0 / / decr ement a de 2 Byt es
- D / / e ent o t r ansf er e de vol t a
T MD 40 / / par a MD 40;
L MB 50 / / Car r ega o cont ador do l oop
LOOP anf / / decr ement a e se necessr i o sal t a;
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 10
Objetivo Familiarizar-se com endereamento indireto em loop com um exemplo prtico.
Definio Endereamento indireto de memria usado para programao de um loop. Com
isto, 100 sucessivas clulas de memria so preenchidas em ordem ascendente
com os valores de 1.0 a 100.0.
1. Criar um FC41 e um DB41.
2. Nas declaraes do DB41, defina a varivel #Meas_Value como sendo do
tipo:
ARRAY[1..100] como componente tipo REAL.
3. Na tabela de declaraes do FC41, defina um parmetro de entrada
#DB_Num do tipo INT e quatro variveis temporrias:
#L_Counter do tipo INT,
#Ini_Value do tipo REAL,
#I_DB_Num do tipo WORD,
#Par_Pointer do tipo DWORD.
4. Dentro do FC41, abra o DB, cuja numerao ser passada usando #DB_Num.
Use a varivel temporria #I_DB_NUM para isto.
5. Ento presete os campos #Meas_Value[1] a #Meas_Value[100]
no DB41 em ordem ascendente com os nmeros 1.0 to 100.0.
Use a programao do loop programming para isto (Instruo: LOOP):
- Salve o contador de varreduras do loop na varivel #L_Counter e o
valor de inicializao para os componentes individuais do
Meas_Value[..] na varivel #Ini_Value.
- Use o endereamento indireto de memria para o endereamento
individual dos componentes #Meas_Value[..] . Salve o endereo do
acesso na varivel #Par_Pointer.
6. Chame o FC41 no OB1 e atribua o parmetro de entrada #DB_Num
adequadamente. Transfira os blocos para a CPU e teste o programa.
Date: 4/10/2007
File: PRO2_04P.10
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 4.1: Programando Loop com Endereamento Indireto
-
-
-
-
Meas_Value[1]
Meas_Value[2]
Meas_Value[9]
Meas_Value[10]
Meas_Value[11]
#Ini_Value
1.0
2.0
9.0
10.0
11.0
.
.
.
etc.
DB41
0
4
32
36
40
P
o
n
t
e
i
r
o

d
o

e
n
d
e
r
e

o
n
a

P
i
l
h
a

L
o
c
a
l
#
P
a
r
_
P
o
i
n
t
e
r
#Counter
Endereo do Byte
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 11
Viso Geral Com Endereamento Indireto de Registrador com rea Interna, o endereo
(localizao da memria) do operando que se est acessando estar em um dos
dois registradores de memria (AR1, AR2).
O contedo dos registradores de memria sero neste caso um ponteiro de 32-bit
com configurao e significado idntico a memria de endereamento indireto.
Sintaxe Com Endereamento Indireto de Registrador, as instrues consistem em:
uma instruo p.ex.: A, L, T, etc.
um identificador de endereo (I, MB, QD, etc.), que a combinao do
identificador de rea (I, Q, M, DB, DI, etc.) e um identificador de dimenso
(B=Byte, W=WORD, D=DWORD).
e a declarao de um AR, que junto com uma constante de offset deve ser
colocado dentro de colchetes. Este offset adicionado ao contedo do
endereo especificado no AR antes da instruo ser executada.
O contedo do registrador de endereos (AR) e o offset formaro o ponteiro de
rea interna que consiste do endereo de byte +endereo de bit.
A declarao do offset na sintaxe do comando imperativa.
Notas Para endereamento indireto de byte, word ou double o word, o offset tem que
ter no endereo do bit o valor "0", caso contrrio um erro de runtime ativado na
CPU durante a execuo da instruo.
Se o AR1 ou AR2 especificado no registro indireto, contm um ponteiro de
rea cruzada (veja prxima pgina), ento o identificador de rea do ponteiro
no ser avaliado durante a execuo da instruo.
O identificador de rea no identificador de endereo vlido.
Date: 4/10/2007
File: PRO2_04P.11
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Endereamento Indireto de Registrador de rea Interna
LAR1 P#10.0 // Presetando em AR1: 00000000 0000 0000 0000 0000 0101 0000
+ 200
L M W [AR1, P#200.0]
rea Dimenso Registr. Constante Instruo : L MW 210
do acesso de end. de offset Executada
Ponteiro de rea interna em AR 1 ou AR2:
Endereo
do Bit
Endereo do Byte (inteiro sem sinal) No avaliado
Sintaxe de Comando :
B B B B B B B B B B B B B X X X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 B B B
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
2
0
2
2
2
0
2
15
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 12
Viso Geral No endereamento indireto de registrador com rea cruzada, o identificador de
rea (I, Q, M, etc.) e endereo (localizao de memria) (byte.bit) do operando que
se deseja acessar, est no ponteiro de rea cruzada em um dos dois registradores
de endereos (AR1, AR2).
Sintaxe No endereamento indireto de registrador com rea cruzada, a instruo inteira
consiste em:
uma instruo (p.ex.: A, L, T, etc.)
um identificador de dimenso (B=BYTE, W=WORD, D=DWORD).
e a declarao de um AR, que junto com uma constante de offset deve ser
colocado dentro de colchetes.
O contedo do AR neste caso deve ser ponteiro de rea cruzada com
identificador de rea e endereo de byte.bit.
O offset (byte.bit) adicionado ao contedo do endereo especificado no AR
antes da instruo ser executada.
A declarao do offset na sintaxe do comando imperativa.
Notas Para endereamento indireto de byte, wordou double o word, o offset tem que
ter no endereo do bit o valor "0", caso contrrio um erro de runtime ativado na
CPU durante a execuo da instruo.
Acesso a dado local prprio (identificador: 110) no possvel com
endereamento indireto de rea cruzada. A mensagem de erro "unknown area
identifer" apresentada.
Acesso a dado local prprio s possvel com endereamento de rea
interna.
Date: 4/10/2007
File: PRO2_04P.12
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Endereamento Indireto de Registrador de rea Cruzada
LAR1 P#I10.0 // Presetado em AR1: 10000001 0000 0000 0000 0000 0101 0000
L W [AR1, P#200.0] + 200
Dimen- Regist. Offset Instruo L IW 210
so endereo Constante executada:
Ponteiro de rea cruzada no AR 1 our AR2:
Endereo
do Bit
Endereo do Byte (inteiro sem sinal) Identificador de rea
Sintaxe do Comando :
Bit 31=0: rea interna
Bit 31=1: rea cruzada
Identificador de rea :
000 I/O 001 Entradas (inputs) (PII)
010 Sadas (outputs) (PIQ) 011 Memrias M
100 Dados no DB Register 101 Dados no DB Register 2 (DI)
110 Dados locais prprios 111 LD do bloco chamado
B B B B B B B B B B B B B X X X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 R R R 0 0 0 0 0 B B B
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 13
Carregando Com ajuda de funes de carga, possvel iniciar o registrador de
Operandos endereos com valores definidos.
A funo de carga LARn (n=1, 2) carrega o ponteiro no ARn. ACCU1 ou ARn ou
uma double word da rea de endereos de memria M, dado local temporrio,
dado de DB global e dado de DB instance podem ser usados como fonte. O acesso
pode ser absoluto ou simblico.
Se voc no especificar o endereo, o contedo do ACCU1 automaticamente
carregado no ARn. O contedo do registrador carregado ou a double word tem que
corresponder ao formato do ponteiro da rea.
Carregando Ponteiros diretos (endereos) podem naturalmente tambm ser carregados
Ponteiros em endereos nos registradores de endereos.
Com auxlio da instruo:
L P#<identificador de rea>n.m
voc pode carregar um ponteiro de rea cruzada diretamente no AR especificado.
Somente um acesso absoluto possvel.
Um ponteiro de rea cruzada para uma varivel local de nome #Address pode por
exemplo com ajuda da seguinte instruo:
LARn P##Address (n=1, 2)
ser carregado em um dos dois AR. O ponteiro de rea cruzada formado contm o
endereo do primeiro byte da varivel local.
Este acesso possvel com todas variveis TEMP dos OBs, FBs e FCs, assim
como em variveis IN, OUT, INOUT e variveis STAT dos FBs.
Nota Se voc quer carregar ponteiros em parmetros IN, OUT e INOUT (#Param) de
uma FC nos ARs, isto no possvel fazer de maneira direta. Um passo
intermedirio deve ser feito:
L P##Param (Carrega o parmetro ponteiro #Param no ACCU1)
LARn (Carrega o contedo do ACCU1 no ARn)
Date: 4/10/2007
File: PRO2_04P.13
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Instrues para Carregamento dos Registradores de Endereo
Carregando o Registrador de Endereos
LARn (n =1 ou 2): Carregar contedo do ACCU1 no ARn
LARn <Endereo> Carregar contedo do<Endereo>no ARn
LARn P#<Endereo> Carregar endereo do<Endereo>no ARn
<Endereo>:
Registro de processador: AR1, AR2 (p.ex. LAR1 AR2 e LAR2 AR1)
Variveis de 32-bit como: MDn, LDn, DBDn, DIDn (p.ex. L DBD5, etc.)
variveis simbl. 32-bit : varivel compartilhada 32-bit (p.ex. LAR1 "Index",
(compartilhada e local) etc.) e variveis TEMP de OBs, FBs e FCs
(p.ex. LAR1 #Address, etc.)
P#<Endereo>
Ponteiro para endereos In.m, Qn.m, Mn.m, Ln.m, DBDn.m, DIDn.m
booleanos absolutos: (p.ex. LAR1 P#M5.3, LAR2 P#I3.6, etc.)
Ponteiro para local, OB: variveis TEMP (p.ex.: LAR1 P##Pointer, etc.)
endereos simblicos FB: variveis IN, OUT, INOUT, STAT e TEMP
FC: variveis TEMP (LAR1 P##Loop, etc.)
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 14
Transferindo do A instruo TARn transfere a completa rea do ponteiro do registro de
AR endereo ARn. O outro registro de endereo ou uma double wordda rea de
memria M, dado local temporrio, dados de DB ou DI podem ser especificados
como destino.
Se nenhum endereo for especificado, TARn transfere o contedo do AR para o
ACCU1. O valor anterior do ACCU1 deslocado para o ACCU2; o contedo do
ACCU2 perdido.
O contedo do ACCU3 e ACCU4 (S7-400) se mantm inalterados.
Troca entre ARs A instruo CAR troca os contedos de AR1 e AR2.
Somando aos ARs Um valor pode ser somado aos registros de endereos, por exemplo,
incrementar o valor do endereo em todo ciclo de loop de um programa . O valor
pode ser especificado como uma constante (ponteiro de rea-interna) com a
instruo ou como o contedo da palavra direita do ACCU1-L .
As instrues +AR1 e +AR2 interpretam o valor encontrado no ACCU1 como um
numero em formato INT, expande-o para 24 bits com o sinal correto e soma-o ao
endereo contido no registrador. Desta forma o ponteiro pode ser menor. Se o valor
ficar abaixo ou acima da rea permitida para endereos de byte (0 ... 65 535),
nenhum impacto ser causado; os bits acima simplesmente so desprezados.
A instruo +ARn P#n.m adiciona um pointer de rea interna ao registro de
endereo especificado. O ponteiro da rea especificada desta forma pode ter um
tamanho mximo de P#4095.7.
Nenhuma das instrues especificadas acima ou na pgina anterior modificam os
bits da status word.
Date: 4/10/2007
File: PRO2_04P.14
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Outras Instrues com Registradores de Endereo
Transferindo de um Registro de Endereo
TARn (n =1 or 2): Transferindo o contedo do ARn para ACCU1
TARn <Endereo> Transferindo o contedo do ARn para o <Endereo>
<Endereo>:
Registro de processador: AR2 (p.ex. TAR1 AR2 )
Variveis abs. de 32-bit: MDn, LDn, DBDn, DIDn (p.ex. TAR2 MD5, etc.)
variveis simbl. 32-bit : varivel compartilhada 32-bit (p.ex. TAR1 "Index",
(compartilhada e local) etc.) e variveis TEMP de OBs, FBs e FCs
(p.ex. TAR1 #Address, etc.)
Troca dos Registros de Endereo
CAR Troca dos contedos entre AR1 e AR2
Adicionando ao Registro de Endereo
+ARn Soma ACCU1-L ao ARn
+ARn P#n.m Ad. ponteiro de rea interna P#n.m no AR1 ou AR2
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 15
Registrador de O Editor STEP 7 usa o registrador de endereo AR1 para acessar os
Endereos AR1 parmetros de bloco complexos. Dentro de funes, com todos acessos simblicos
de parmetros do tipo "ARRAY" ou "STRUCT", os registros AR1 e DB so
sobrescritos.
Bem como, com acessos de parmetros in/out do tipo "ARRAY" ou "STRUCT"
dentro de um FB, os registros AR1 e DB so sobrescritos.
Acesso simblico de variveis temporrias em FBs ou FCs no sobrescrevem nem
o AR1 e nem o registrador DB.
Registrador de O Editor STEP 7 usa a rea interna de registro de endereamento indireto
Endereos AR2 para acesso simblico de dados instance, quer dizer, de todos os parmetros e das
variveis estticas de um FB. O registrador DI especifica o respectivo DB instance
e o AR2 o respectivo multi instance dentro do instance DB.
Nenhum acesso a dados instance pode acontecer depois destes registradores DI e
AR2 serem sobrescritos, pois o contedo destes dois registradores no so
restabelecidos. Se voc quer usar o AR2 ou registrador DI em um FB para seus
prprios propsitos, ento o seguinte procedimento recomendado:
1. Salve o contedo do DI e AR2 em variveis do tipo DWORD:
TAR2 #AR2_REG // Salva AR2 numa varivel temporria #AR2_REG
L DINO // Carrega o contedo do DI no ACCU1
T #DI_REG // Salva numa varivel temporria #DI_REG
2. Use o registrador DI e AR2 para seus prprios propsitos. Nenhum acesso a
parmetros de FBs ou variveis estticas podem ocorrer durante este
segmento.
3. Restabelea o registrador DI e o AR2:
LAR2 #AR2_REG // Carrega AR2 com contedo do #AR2_REG
OPN DI[#DI_REG] // Restabelece o registrador DI
Os parmetros do FB e variveis estticas podem novamente serem
acessados simblicamente.
Date: 4/10/2007
File: PRO2_04P.15
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Caractersticas do Registrador de Endereamento Indireto
Uso interno do AR1 pelo editor STL/LAD/FBD
Acessando os parmetros de FCs, o AR1 register e o DB register so
sobrescritos, se os parmetros forem do tipo complexo
("ARRAY", "STRUCT", DATE_AND_TIME") .
Acessando parmetros INOUT de FBs, AR1 register e o DB register so
sobrescritos, se o parmetro INOUT do tipo complexo
("ARRAY", "STRUCT", DATE_AND_TIME")
Nenhum acesso a parmetro local deve acontecer entre o
carregamento do registro de endereo e o registro de acesso
indireto da varivel desejada.
Uso interno do AR2 pelo editor STL/LAD/FBD
O AR2 register e o DI register so usados como registrador bsico de
endereos para endereamento de todos parmetros e variveis STAT de FBs.
Se AR2 ou DI forem sobrescritos pelo usurio em um FB,
nenhum acesso aos parmetros do FB ou variveis STAT pode
acontecer depois disso, quer dizer, sem uma restaurao de
ambos os registros.
Nenhuma restrio com relao ao AR2 e DI register dentro de FCs
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 16
Objetivo Familiarizar-se com o uso de endereamento indireto de registrador emLoopcom
um exemplo prtico.
Definio Endereamento indireto do registrador usado para programao de um loop. Os
valores de 1 a 100 so escritos sucessivamente em 100 memrias.
Programar uma soluo tima (sem variveis temporrias adicionais) do exerccio
4.1.
Salve os valores do contador de Loop e inicializao nos acumuladores.
Para enderear os componentes Tank[..] use o AR1 (endereamento indireto do
registrador com rea interna).
Procedimento 1. Gerar uma FC42 e um DB42.
2. Nas declaraes do DB42, defina uma varivel #Number do tipo
ARRAY[1..100] com os componentes tipo DINT.
3. Na tabela de declaraes do FC42, defina um parmetro de entrada
#DB_Num do tipo WORD e uma varivel temporria #I_DB_Num do tipo
WORD.
4. Dentro do FC42, primeiro abra o DB, cujo nmero ser passado usando
#DB_Num. Use a varivel temporria #I_DB_Num para isto.
5. Ento presete os campos #Number[1] a #Number[100] no DB42 em ordem
ascendentein com os nmeros 1.0 to 100.0.
- Use programao de loop para isto (Instruo: LOOP):
- Use endereamento indireto de registro com AR1 para
endereamento individual dos componentes dos #Number[..] .
6. Chamar FC42 no OB1 e atribua parmetro para o parmetro de entrada
#DB_Num adequadamente. Transfira os blocos para CPU e teste o seu
programa.
Date: 4/10/2007
File: PRO2_04P.16
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 4.2: Loop com Registrador de Endereamento Indireto
#ACCU1 P
o
n
t
e
i
r
o

d
o

e
n
d
e
r
e

o

n
o

D
B
#
A
R
1
#ACCU2
-
-
-
-
Number[1]
Number[2]
Number[9]
Number[10]
Number[11]
1
2
9
10
11
.
.
.
etc.
DB42
0
4
32
36
40
Endereo do Byte
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 17
Tipos de Ponteiros Alm dos tipos de ponteiros descritos na seo anterior (16-bit, 32-bit rea-
do STEP 7 interna e 32-bit rea-cruzada), o STEP 7 reconhece dois tipos de ponteiros
adicionais:
Ponteiro 48-bit (tipo de dado "POINTER")
Ponteiro 80-bit (tipo de dado "ANY")
Os pointers de 16 e 32-bit podem ser carregados diretamente no acumulador ou
registrador de endereo e assim podem ser usados para endereamento indireto
dentro dos blocos.
Os pointers tipo POINTER e ANY (maior que 32 bit) no podem ser carregados
diretamente nos registradores e usados para endereamento indireto nos blocos.
Eles so usados exclusivamente para um endereamento completo dos
parmetros atuais na passagem para parmetros formais dos blocos chamados.
Por exemplo, voc pode declarar umparmetro tipo POINTER ou ANY num bloco
e durante a chamada do bloco atribuir a este parmetro o endereo atual.
POINTER O dado tipo POINTER usado principalmente pelo STL/LAD/FBD Editor para
passar um parmetro atual do tipo complexo, como "ARRAY", "STRUCT", e DT,
para chamada de FB ou FC.
O editor STL/LAD/FBD checa imediatamente a consistncia do tipo de dado e o
comprimento atribudo ao parmetro atual, basta somente passar o endereo inicial
completo para o parmetro atual interior.
Dentro de um bloco chamado, voc pode ento acessar os parmetros atuais do
registrador indireto usando este PONTEIRO.
ANY O pointer tipo ANY principalmente usado pelo STEP7 para atribuir parmetros as
funes de sistema (SFCs) e blocos de funes de sistema (SFBs). Parmetros
dos tipos de dados ANY podemtambmseremutilizados pelo usurio para gerar
blocos mais poderosos.
Date: 4/10/2007
File: PRO2_04P.17
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de Ponteiros do STEP 7
Ponteiro 16-bit para Endereamento Indireto de Memria
Para acesso indireto de memria de temporizadores, contadores e DBs
abertos
Ponteiro 32-bit p/ Endereamento Indireto de Memria e Registrador
Ponteiro 32 bit de rea interna para acesso indireto de memria e registrador
de endereos em PI, PQ, I, Q, M, DB, DI e L (pilha local)
Ponteiro 32 bit de rea cruzada para acesso indireto do registrador de
endereos PI, PQ, I, Q, M, DB, DI, L e V (Pilha de dados locais do bloco
chamado)
Ponteiro 48-bit (Tipo de Dado POINTER)
Tipo de dado prprio para passagem de parmetros para blocos (FBs e FCs)
Contm, em adio ao ponteiro 32-bit de rea-cruzada, a declarao do
nmero do DB
Ponteiro 80-bit (Tipo de Dado ANY)
Tipo de dado prprio para passagem de parmetros para blocos (FBs e FCs)
Contm, em adio ao ponteiro 32-bit de rea-cruzada, a declarao do
nmero do DB, tipo de dado e fator de repetio
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 18
Dado tipo POINTER Um parmetro do tipo POINTER contm adicionalmente ao pointer de rea
cruzada, um n de DB (inteiro sem sinal - faixa: 0 ... 65,535). Em todos os demais
casos, quando o endereo endereado se encontra em outras reas (P, I, Q, M, L),
"0" colocado nos primeiros dois bytes do "POINTER".
Atributo de Se durante a chamada de um bloco (FC ou FB), um parmetro tipo
Parmetro POINTER tem que ser definido, isto pode ser feito via apresentao do pointer ou
por declarao do endereo.
Apresentao Neste caso, um pointer (P#...) tem que ser declarado desde o primeiro bit do
do Pointer endereo, como a seguir:
P#DB10.DBX2.0 // Data bit 2.0 in DB10, identificador de rea "DB"
P#I5.3 // I5.3, DB nmero =0, identificador de rea "PII")
Declarao do Neste caso, a declarao do endereo suficiente (sem P#...). O endereo
Endereo pode ser declarado absolutamente, ou seja, via n de DB , identificador de
endereo e endereo de byte ou bit associado, como a seguir:
DB5.DBW10 // Bit 10.0, DB nmero =5, identificador de rea
// "DBou simblico.
#Motor_on, "Motor_1".speed
Em ambos casos, o editor STL/LAD/FBD estabelece o nmero de DB associado, o
identificador de rea e o endereo de byte.bit e coloca isto no "POINTER".
Date: 4/10/2007
File: PRO2_04P.18
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura e Atributos de um Dado Tipo " POINTER
Byte n
Byte n+2
Byte n+4
Byte n+1
Byte n+3
Byte n+5
DB Nmero (INT)
1 O O O _ O R R R _ O O O O _ O B B B
(ponteiro 32-bit de
B B B B _ B B B B _ B B B B _ B X X X
rea cruzada)
Atributos de um parmetro tipo " POINTER"
Ponteiro mostrado
P#DBn.DBX x.y com: n=DB nmero, x=byte-nmero, y=bit-nmero
P#DIn .DIX x.y (p.ex.: P#DB5.DBX3.4, P#DI2.DIX10.0, etc.)
P#Zx.y com:Z=rea, p.ex.: P, I, Q, M e L
(p.ex.: P#I5.3, P#M10.0, etc.)
Declarao de Endereo:
MD30 (Neste caso, identificador do nmero do DB e
#Motor_on endereo do bit so automaticamente fornecidos
"Motor_1".speed ao "POINTER")
Estrutura do tipo de dado: " POINTER (PONTEIRO)
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 19
Tipo de Dado ANY O pointer tipo ANY contm adicionalmente ao pointer de cruzamento de rea e o n
de DB, um identificador de tipo de dado um fator de repetio. Com isto, possvel
identificar no somente um endereo individual mas tambm uma rea completa de
dados.
H duas verses do ponteiro ANY:
para variveis com tipos de dados: O ponteiro ANY ento contmum
identificador de sintaxe (syntax-ID) 16#10 para STL, um identificador para o tipo
de dado, um fator de repetio, o nmero do DB e um ponteiro de rea cruzada.
para variveis com tipo de parmetros: neste caso, o pointer ANY consiste
meramente do identificador de sintaxe (syntax-ID) 16#10 para STL, um
identificador de tipo de parmetro e um nmero sem sinal de 16-bit no byte n+8
e byte n+9, que reflete o nmero do bloco. Os bytes n+4, ..., n+7 so preenchidos
com 0.
Declarao dos Variveis do tipo ANY geralmente podem ser declaradas como parmetros
Ponteiros ANY IN, OUT e INOUT em FCs e FBs.
A declarao oferece uma possibilidade adicional como varivel temporal dentro de
FBs. Com ajuda desta varivel temporria possvel criar um ponteiro ANY que
mutvel durante a execuo do programa e pass-lo para uma chamada de bloco
(ver: Atribuio de Parmetros Indiretos do Tipo ANY).
Identificador de 000 I/O 001 Entradas (inputs) (PII)
rea (RRR): 010 Sadas (outputs) (PIQ) 011 Memrias M (Bit memory)
100 Dados no DB register 101 Dados no DI register
110 Dados locais prprios 111 LD do bloco chamado
Date: 4/10/2007
File: PRO2_04P.19
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Configurao de um dado tipo " ANY
Ponteiro " ANY" para Tipos de Dados
Byte n
Byte n+2
Byte n+4
DB Nmero
1 O O O _ O R R R _ O O O O _ O B B B
B B B B _ B B B B _ B B B B _ B X X X
16#10 Tipo de Dado
Fator de repetio
Byte n+6
Byte n+8
Ponteiro " ANY" para Tipos de Parmetros
Byte n
Byte n+2
Byte n+4
16#0000
Nmero do Temporizador, Contador ou Bloco
16#10 Tipo de Parmetro
16#0001
Byte n+6
Byte n+8
Tipo de Dado Identificador
VOID 00
BOOL 01
BYTE 02
CHAR 03
WORD 04
INT 05
DWORD 06
DINT 07
REAL 08
DATE 09
TOD 0A
TIME 0B
S5TIME 0C
DT 0E
STRING 13
Tipo Parmetro Identificador
BLOCK_FB 17
BLOCK_FC 18
BLOCK_DB 19
BLOCK_SDB 1A
COUNTER 1C
TIMER 1D
16#0000
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 20
Atributos Um parmetro tipo "ANYpode ser declarado como uma declarao direta de
endereos (variveis).
Apresentao do Declarando-se o pointer display (p.ex.: P#DB5.DBX10.0 INT 8) o Editor
Ponteiro STL/LAD/FBD monta um ponteiro ANY que corresponde em tipo e em nmero com
as declaraes.
Atribuies na apresentao do ponteiro sempre fazem sentido, quando uma rea
de dados est sendo endereada, para a qual nenhuma varivel tenha sido definida
ou por exemplo, nenhuma varivel adequada (p.ex.: ARRAY ou STRUCT) pode ser
definida (p.ex.: P, PII, PIQ, M).
Adicionalmente a exibio de ponteiro absoluto deve ser usada quando dentro do
bloco chamado a informao correta sobre o fator de repetio e o tipo de dados
requerido (p.ex.: ARRAY[1 ..8] de REAL).
Apresentao Um parmetro do tipo "ANY" pode tambm ser diretamente definido com o
de endereo endereo para o qual o ponteiro ANY ser apontado. Esta declarao pode ser
absoluta ou pelo nome de varivel simblica.
Com a declarao do endereo absoluto o editor STL/LAD/FBD estabelece
automaticamente o tipo de dado associado (BOOL, BYTE, WORD, DWORD), um
fator de repetio "1", o nmero do DB assim como ponteiro de rea cruzada no
primeiro bit do endereo e entra com estes valores na estrutura do ponteiro.
Igualmente, o Editor STL/LAD/FBD estabelece a informao correta pelo endereo
quando a declarao acontecer pelo nome simblico e a varivel fornecida do
tipo de dados elementar.
Nota Se a varivel do tipo complexo (p.ex. ARRAY[1..8] de REAL), ento o Editor
STL/LAD/FBD meramente coloca as informaes em bytes sobre a rea ocupada
pela varivel (p.ex.: fator de repetio: 32, dado tipo: BYTE)
Date: 4/10/2007
File: PRO2_04P.20
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Atributos dos Parmetros de Dados Tipo " ANY"
Apresentao do Pointer:
P#[Data block.]Bit address Type Number
P#DB10.DBX12.0 REAL 20 Pointer na rea do DB10, iniciando com Byte
12, constitudo de 20 endereos do dado tipo
REAL (ARRAY[1..20] OF REAL)
P#I 10.0 BOOL 8 Pointer de um campo de 8 bits no IB10
Declarao de Endereos:
absoluto:
DB5.DBD10 Data type: DWORD, Repetition factor: 1
DB number: 5, Pointer: P#DB5.DBX10.0
IW32 Type: WORD, RF: 1, DB-No: 0, Pointer: P#I32.0
T35 Type: TIMER, No.: 35
simblico:
#Motor_1.speed com dado tipo elementar, o compilador
"Pump:Start" estabelece o correto tipo de dado, fator de
repetio 1 e pointer
Nota
com atributo simblico (ARRAY, STRUCT, STRING, UDT), o identificador de
tipo de dado 02 (BYTE) e a dimenso da rea em bytes somente
estabelecida pelo compilador e introduzida no ponteiro ANY.
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 21
Definio O bloco chamado tambm pode designar um parmetro de FC ou FB de
Indireta dados tipo ANY com uma varivel temporria de dados tipo ANY. Esta varivel
temporria armazenada na pilha de dados locais do bloco de chamada.
Neste caso, o Editor de STL no passa nenhum ponteiro varivel temporria (na
pilha de dados local), mas assume que esta varivel temporria ANY j contm o
ponteiro da varivel de fato desejada.
O Editor passa neste caso o ponteiro ANY contido na varivel temporria da FC ou
da FB chamado.
Vantagem Voc tem a possibilidade de setar um ponteiro ANY em um parmetro ANY que
voc pode mudar durante execuo do programa. O ponteiro varivel ANY ser
muito til, especialmente nos casos das funes do sistema, como SFC 20
(BLKMOV) ou SFC 21 (FILL) por exemplo.
Date: 4/10/2007
File: PRO2_04P.21
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Atributos Indiretos de Parmetros do Tipo ANY
Atributos atravs dos parmetros atuais temporrios dos tipos de dados
ANY
declare varivel temporria do tipo de dado ANY na chamada do bloco
p.ex.: t emp aux_poi nt er ANY
carregue a varivel temporria ANY com a informao do ponteiro
p.ex.:
LAR1 P##aux_poi nt er / / Car r ega ender eo pont ei r o aux.
L B#16#01 / / Car r ega i dent i f i cador B#16#01
T LB [ AR1, P#0. 0] / / e t r ansf er e par a Of f set 0
L . . .
. . .
Defina o parmetro de bloco tipo ANY (Tar get f i el d) com a varivel
pont ei r o auxi l i ar ( aux_poi nt er )
p.ex.:
CALL FC 111
Tar get f i el d: =#aux_poi nt er
Vantagem
redefinio do parmetro do pointer ANY durante execuo do programa.
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 22
Viso Geral Dentro do bloco chamado (FB ou FC) as informaes que esto no ponteiro
passado do tipo "POINTER " ou "ANY " podem ser lidas e avaliadas
adequadamente com ajuda de registrador de endereamento indireto.
Procedimento A avaliao da informao passada para um pointer ANY " est listada nos passos
seguintes. Os passos esto relacionados ao exemplo anterior onde um parmetro
de entrada (tipo "ANY ") com o nome #Par_Pointer e vrias variveis temporrias
para o armazenamento temporrio de informao foram declaradas.
1. Em primeiro lugar, um ponteiro de rea cruzada estabelecido na passagem
do ponteiro ANY" e carregado no registro de endereo AR1. Isto acontece com
a instruo:
LAR1 P##Par_Pointer // em FBs ou
L P##Par_Pointer // em FCs, o endereo deve antes de tudo ser
LAR1 // carregado no ACCU1 e dele para o
// registrador AR1
O ponteiro "ANY" passado , no caso de um FB, armazenado no DB instance
(este automaticamente aberto) ou com uma FC, na pilha de dados locais do
bloco que originou a chamada.
2. Usando o Registrador de endereamento indireto, as informaes passadas
no ponteiro "ANY" podem ser lidas agora e, por exemplo, pode ser armazenado
temporariamente em variveis temporais do bloco para outros processamentos.
L B[AR1,P#1.0] // l o identificador do tipo de dados do parmetro
// atual no ACCU1
L W[AR1,P#2.0] // l o fator de repetio no ACCU1
L W[AR1,P#4.0] // l o n do DB no ACCU1, ou "0" quando o
//parmetro atual est armazenado em P, PII, PIQ, // M, L.
L D[AR1,P#6.0] // l ponteiro de rea cruzada do parmetro atual
// no ACCU1
Date: 4/10/2007
File: PRO2_04P.22
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Avaliando um ponteiro tipo " ANY
Address Declaration Name Type Initial Value Comment
0.0 in Par_Pointer ANY
out
in_out
0.0 temp Data_type BYTE
2.0 temp WF WORD
4.0 temp DB_Nr WORD
6.0 temp Area_Pointer DWORD
Network 1: Estabelecimento do tipo de dado, fator de repetio, nmero
do DB e ponteiro de rea
L P##Par_Pointer // Carrega endereo do #Pointer no ACCU1
LAR1 // e daqui carrega no AR1;
L B [AR1,P#1.0] // Cria o tipo de dado do ponteiro
T #Data_type // e carrega em varivel temporria
L W [AR1,P#2.0] // Cria o fator de repetio
T WF // e carrega em varivel temporria
L W [AR1,P#4.0] // Cria o nmero do DB
T #DB_Nr // e carrega em varivel temporria
L D [AR1,P#6.0] // Cria o ponteiro de rea
T #Area_Pointer // e carrega em varivel temporria
Siemens Ltda.
Training Center
ST-7PRO2
Endereamento Indireto Pgina 23
Viso Geral FCs ou FBs genricas podem ser geradas com ajuda do dado tipo"ANY". No so
comprometidos FCs ou FBs genricas de tipo de dados especficos. Elas podem
adaptar-sedinamicamente para os tipos de dados ou comprimentos de campo
passados a eles, ou comprimentos de campo passados a eles.
Objetivo Gerar a FC43 com a seguinte funcionalidade:
A funo espera um campo REAL valores com parmetro de entrada
Measured_values (tipo "ANY").
A funo fornece os valores somados dos elementos de campo passados no
parmetro #Sum (tipo: REAL) e o valor mdio de todos os elementos de campo
no parmetro de sada #Mean_value (tipo: REAL).
Se outro tipo de dado for passado, ocorrer um erro (parmetro ENO, ou seja,
BR bit=0, n REAL invlido para #Sum e #Mean_value
Procedimento 1. Crie a FC43 e declare os parmetros entrada e de sada listados
anteriormente. Tambm declare as correspondentes variveis temporrias
para armazenamento temporrio de informao sobre fator de repetio, DB n. e
o ponteiro de rea do parmetro atual.
2. Comear com a leitura do ponteiro "ANY" passado dos dados tipo
identificador e sair do FC43 adequadamente, se o tipo de dados do
parmetro atual no REAL.
3. Em umloop (instruo de LOOP), programe a soma de todos os elementos
de campo. Calcule a soma e valor mdio e atribua os resultados aos parmetros
de sada correspondentes.
4. Gerar o DB43. Declare uma varivel Measurement do tipo ARRAY[1..8]
OF REAL em DB43 e entre valores apropriados.
5. Programe a chamada de FC43 em OB1. Nomeie o parmetro de entrada no
pointer display. Nomeie endereos na rea de memria para os parmetros de
sada
6. Descarregue os blocos participantes na CPU e teste o resultado.
Date: 4/10/2007
File: PRO2_04P.23
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 4.3: Funo para calcular valor da soma e mdia
FC 43
EN ENO
Measured_values Sum
Mean_value
Decl. Name Typ
in Measured_values ANY
out Sum REAL
out Mean_value REAL
DB43
103.45
2086.5
1.7895
....
....
P#DB43.DBX0.0 REAL 8
Name Type
STRUCT
Measurement ARRAY[1..8]
REAL
END_STRUCT
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 1
Contedo Pg.
Significado das Variveis e Tipos de Dados ..................................................................................... 2
Propriedades e Declarao de Variveis .............................................................................. 3
Vista Geral dos Tipos de Dados no STEP 7 ...................................................................................... 4
Tipos de Dados Elementares no STEP 7 ............................................................................................ 5
Importncia dos Tipos de Dados Complexos ...................................................................... 6
Tipos de Dados Complexos no STEP 7 ..................................................................................... 7
Tipos de Parmetros no STEP 7 ........................................................................................................ 8
reas para gravao de Variveis ............................................................................................... 9
Funcionamento da metodologia da Pilha de Dados Local ................................................................. 10
Exemplo: Utilizao como memria para rascunho ........................................................................... 11
Blocos de Dados (DB) ..................................................................................................................... 12
Tipo de Dado: ARRAY ........................................................................................................................ 13
Declarao e Inicializao dos ARRAYs ............................................................................................ 14
Armazenagem das Variveis ARRAY na Memria ............................................................................ 15
Tipo de Dado: STRUCT ...................................................................................................................... 16
Declarao dos STRUCTs .................................................................................................................. 17
Armazenagem das Variveis STRUCT na Memria .......................................................................... 18
Tipos de Dados Definido pelo Usurio: UDTs ..................................................................................... 19
Uso dos UDTs .................................................................................................................... 20
Tipo de Dado: DATE_AND_TIME .................................................................................................. 21
Funes para processamento de Variveis DT ................................................................................. 22
Tipo de Dado: STRING ..................................................................................................................... 23
Armazenagem das Variveis STRING na Memria ........................................................................... 24
Funes para processamento de Variveis STRING ........................................................................ 25
Exerccio 5.1: Uso dos Tipos de Dados Complexos ................................................................... 26
Exerccio 5.2: Acessando Tipos de Dados Complexos .................................................................. 27
Exerccio Adicional 5.3: Lendo Time-of-Day com SFC 1 (READ_CLK) ......................................... 28
Date: 04.10.2007
File: PRO2_05P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de Dados e Variveis STEP 7
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 2
Vista Geral Nos modernos sistemas computadorizados que foram desenvolvidos para
simplificar e aumentar a velocidade do processamento de clculos
complicados. A capacitao para processar grandes quantidades de
informao, armazenar e tornar novamente acessvel uma extensa relao de
aplicaes.
A informao disponvel ao controlador consiste de uma selecionada
quantidade de dados sobre o mundo real. Os dados representam uma
abstrao da realidade porque propriedades casuais e sem importncia dos
objetos envolvidos no so levados em conta para este problema especfico.
Tipos de Dados freqente a dificuldade para decidir como os dados sero representados. A
escolha freqentemente restrita as possibilidades disponveis. De outra
forma, as propriedades dos objetos os quais so descritos por dados devem
ser corretamente refletidos, ou de outra forma, as instrues que so
necessrias para o gerenciamento do processo devem tambm serem
capazes de utilizar os dados corretamente.
O tipo de dado determina quais valores so aceitos pelo dado e quais
instrues podem ser executadas com estes valores.
Os tipos de dados definem unicamente:
a faixa de valores permissveis
as instrues possveis
Os tipos de dados abstratos igualmente sob representao subordinada
(formato) de bits individuais, como eles, so finalmente guardados na
memria do computador.
Significado das Junto aos comandos, as variveis so os mais importantes elementos do
Variveis sistema de programao. Sua tarefa salvar valores em um programa o qual
poder ser processado posteriormente. O valor da varivel pode ser salvo em
qualquer lugar da memria do PLC.
Date: 04.10.2007
File: PRO2_05P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de dados caracterizam as propriedades
bsicas do dado
rea contnua: p.ex. Velocidade atual
Propriedade "sim/no": p.ex. distrbio
Os tipos de dados definem:
A faixa de valores permitidos
(INT: -32 368 ... +32 367, etc.)
As instrues possveis
(instrues aritimticas: +, -, etc.)
Tipos de dados abstratos da representao
subordinada aos bits na memria
As Variveis permitem que voc salve e
mais tarde continue a processar valores
Actual_speed: REAL
Disturbance: BOOL
Set_speed: REAL
Enable: BOOL
Significado das Variveis e Tipos de Dados
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 3
Variveis Na convencional de PLC, os endereos da memria do PLC so acessados
"Convencionais" diretamente pela especificao da rea de memria (p.ex.: M= Memrias M,
I=Entradas, etc.), a dimenso do acesso (p.ex.: B=byte, W=palavra (word),
etc.) e pela especificao do endereo do byte/(bit). Estas reas endereveis
de memria utilizam endereos que podem ser usadas dentro de um
programa com diferentes propsitos, por exemplo, como inteiro (p.ex.: DINT),
como um nmero em ponto flutuante (isto , REAL) ou simplismente como
uma coleo de sinais individuais (p.ex.: WORD).
At agora era necessrio que o programador se lembrasse do formato e a
localizao das memrias individuais para propsitos de aplicao. Falhas de
programa poderiam ocorrer facilmente, porque endereos errados de
memria ou formatos incorretos eram no intencionalmente usadas nas
instrues.
Declarao de Posteriormente sistemas PLC (p.ex.: STEP 5) permitiram o uso de smbolos
Variveis para facilitar a leitura de programas. STEP 7 foi um passo adiante e utiliza
variveis em vez de endereos e smbolos no PLC.
Para explicitar a declarao de uma varivel, as seguintes propriedades so
fixadas:
Nome simblico de variveis
Tipo de dados de variveis
Faixa de validade
Se variveis so declaradas, o editor de programa pode ento, por exemplo,
usar informaes de tipos de dados para checar a permissibilidade das
instrues como os parmetros atribudos na chamada de blocos.
Faixa de Validade Variveis que so declaradas na tabela de smbolos globais ou em DBs
globais podem ser endereados por todos os blocos na pasta de programa.
Estas variveis so chamadas variveis globais por esta razo.
Variveis e parmetros que so declaradas na seo de declarao de um
bloco lgico so chamados locais; eles podem somente usados dentro da
seo de declarao do mesmo bloco.
Date: 04.10.2007
File: PRO2_05P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
As seguintes propriedades so
determinadas pela declarao da varivel:
Nome simblico
Tipo de dado
Faixa de validade
Variveis podem ser declaradas:
Na tabela de smbolos global
(tipos de dados elementares)
Na tabela de declaraes de blocos
de dados globais (todos os tipos de dados)
Na tabela de declaraes de um bloco
lgico (OB, FB e FC)
Propriedades e Declarao de Variveis
Meas_point[1]: Real
Meas_point[2]: Real
Meas_point[3]: Real
Meas_point[10]: Real
Meas_point: ARRAY[1..10]
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 4
Vista Geral A soluo de tarefas de automao usados em sistemas computadorizados
baseado em algortmos, em cujo processo os dados so coletados por
sensores, de forma a colocar na sada novos valores para os atuadores.
Programas so basicamente formas de algortmos que dependem de
representao de dados especficos ou estrutura de dados.
Tipos de Dados Os tipos de dados elementares reunem os tomos" de cada sistema de
Elementares programao.
A escolha dos tipos de dados elementares de um sistema de programao
diz muito a respeito da rea de aplicao pretendida.
Em STEP 7, os tipos de dados elementares so predefinidas em acordo com
IEC 1131-3. Os tipos de dados so escolhidos em funo do tipo de tarefa a
ser executada como processamento binrio e processamento de sinais
analgicos, um simples sistema de sinalizao bem como gerenciamento
tarefas de tempo podem ser operadas desta forma.
Com tipos de dados elementares, o tipo de dado determina a quantidade de
espao de memria que uma varivel requer. Tipos de dados elementares
nunca maiores que 32 bits de comprimento no STEP 7 e pode ser carregada
nos acumuladores por inteiro e processadas com instrues STEP 7.
Tipos de Dados A idia bsica de estruturao de dados diferenciado entre estruturas
Complexos elementares e superiores. O former so os tomos dos quais os tipos de
dados so configurados.
No STEP 7, tipos de dados complexos podem somente se usados em
conjunto com variveis declaradas em DBs globais ou em pilha de dados
locais. Tipos de dados complexos no podem se completamente carregados
em um acumulador e processados.
Tipos de Dados Tipos de dados complexos no tem seu prprio identificador para o tipo de
Definido pelo Usurio dado e como um resultado no pode ser repetidamente usado para
declarao de parmetro ou varivel. Com a ajuda de tipo de dados definidos
pelo usurio (UDT), nico, tipos de dados estruturados podem ser criados as
quais podem ento ser usadas to freqente como requerido para outras
declaraes de variveis ou parmetros.
Date: 04.10.2007
File: PRO2_05P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista Geral dos Tipos de Dados mo STEP 7
Tipos de Dados
Elementares
(at 32 bit)
Tipos de Dados
Complexos
(maiores que 32 bits)
Tipo de Dados definido pelo Usurio
(maiores que 32 bits)
Tipos de dados Bit (BOOL, BYTE, WORD, DWORD, CHAR)
Tipos de dados Matemticos (INT, DINT, REAL)
Tipos Tempo (S5TIME, TIME, DATE, TIME_OF_DAY)
Tempo (DATE_AND_TIME)
Matriz (ARRAY)
Estrutura (STRUCT)
Cadeia de Caracteres (STRING)
Tipo de Dado UDT (User Defined Type)
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 5
BOOL, BYTE, WORD Variveis do tipo de dado BOOL consiste de um bit, variveis de tipos de
DWORD, CHAR dados BYTE, WORD, DWORD so seqncias de 8, 16 e 32 bits
respectivamente. Os bits individuais no so avaliados neste tipo de dado.
Formas especiais destes tipos de dados so nmeros BCD e o valor de
contagem usado em conjunto com a funo de contagem, bem como o tipo de
dado CHAR, os quais representam um caractere em cdigo ASCII.
S5TIME Variveis do tipo de dado S5TIME so requeridas para valores especficos de
temporizao em funes de temporizao (S5 funes de temporizao).
Voc especifica o tempo em horas, minutos, segundos ou milisegundos. Voc
pode entrar com valores de tempo com um underline (1h_4m) ou sem um
underline (1h4m).
As funes FC33 e FC40 da biblioteca convertem S5TIME para formato TIME
e o formato TIME para S5TIME.
INT, DINT, REAL Variveis deste tipo de dados representam nmeros os quais podem ser
usados em operaes matemticas.
TIME Uma varivel do tipo de dado TIME formada por uma palavra dupla. Esta
varivel usada, por exemplo, por valores de tempo especfico em funes
de temporizao IEC.
Os contedos das variveis so interpretadas como um nmero DINT em
milisegundos e pode ser positivo ou negativo (p.ex.: T#-1s=L#-1 000,
T#24d20h31m23s647msw = L#214748647).
DATE Uma varivel do tipo de dado DATE armazenada em uma palavra no
formato de um inteiro no sinalizado. Os contedos da varivel representa o
nmero de dias desde 01.01.1990 (p.ex.: D#2168-12-31 = W#16#FF62).
TIME_OF_DAY Uma varivel do tipo de dado TIME_OF_DAY formada por uma palavra
dupla. Ela contem o nmero de millisegundos desde o incio do dia (0:00
horas) na forma de um nmero inteiro no sinalizado (p.ex.:
TOD#23:59:59.999 = DW#16#0526_5B77).
Date: 04.10.2007
File: PRO2_05P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de Dados Elementares no STEP 7
Dimenso
(em bits)
BOOL
BYTE
WORD
DWORD
CHAR
S5TIME
INT
DINT
REAL
TIME
DATE
TIME-OF-DAY
1
8
16
32
8
16
16
32
32
32
16
32
Palavra-chave Exemplo de uma constante deste tipo
1 or 0
B#16#A9
W#16#12AF
DW#16#ADAC1EF5
'w'
S5T#5s_200ms
123
65539 or L#-1
1.2 or 34.5E-12
T#2D_1H_3M_45S_12MS
D#1999-06-14
TOD#12:23:45.12
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 6
Date: 04.10.2007
File: PRO2_05P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Importncia dos Tipos de Dados Complexos
Set_speed: REAL
Actual_speed: REAL
Enable: BOOL
Disturbance: BOOL
Motor: STRUCT
END_STRUCT
" Melhor" estruturao
de Dado:
Adaptado para a tarefa
com "correto" tipo de dado
Forma Compacta de Dado passado
na chamada em um Bloco:
"muitos" itens de dados podem
ser passados em um parmetro
Possibilidade de fazer
programao estruturada
blocos "comunicam"
somente via barramento de
parmetros
software reutilizvel
5
.
.
CALL #Controller
Motor:="Hall_1".M5
. . .
.
.
.
.
A #Motor.Enable
.
.
in Drive UDT1
out ... ...
stat Control. FB1 in Motor UDT1
out ... ...
Tipos de dados Tipos de dados complexos (arrays e estruturas) resultam de agrupamento de
Complex dados elementares ou tipos de dados complexos.
Tipos de dados complexos so usados para organizao de dados
complexos. Neste caminho, o programador pode gerar tipos de dados para
atender a tarefa particular. Ele pode combinar unidades de informaes
elementares logicamente relacionadas com uma nova unidade que possua
seu prprio nome.
Um tpico exemplo para uma estrutura o arquivo de dados para um drive. O
drive descrito como um arquivo de atributos (propriedades, estados), como
#Set_speed, #Actual_speed, #Enable and #Disturbance. Muitos destes
atributos podem ser na forma de estruturas.
Um #Disturbance pode, por exemplo, ser construdo por componentes
individuais (bits) os quais constituam mais informaes exatas para o usurio
a respeito da causa do distrbio.
Programao Dados complexos, em particular, podem ser passados em uma chamada de
Estruturada um bloco como uma unidade, isto , em um parmetro do bloco chamado.
Desta forma, uma multiplicidade de unidades de informaes elementares
podem ser transferidas entre a chamada e o bloco chamado de modo
elegante e compacto.
Software Este tipo de transferncia de dados possibilita a criao de programao
Reutilizvel estruturada e garante um alto grau de reutilizao de software criado uma
nica vez.
A tarefa a ser automatizada dividida em blocos individuais. Na listagem do
bloco chamado, nenhum acesso a endereos globais, como Memrias M ou
variveis em DBs globais so executadas. O processamento da informao
executada exclusivamente com parmetros, nos quais dados relevantes do
processo so passados.
Os resultados do processamento so retornados nos parmetros do bloco
chamado.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 7
Arrays e Com auxlio de ARRAYs (Field - campos), diversos objetos do mesmo tipo
Estruturas podem ser combinados dentro de um tipo de dado. Um ARRAY um tipo de
dado que consiste de um nmero fixo de elementos de um tipo de dado. Um
ndice designado para cada elemento de um ARRAY. O ndice usado para
acessar o elemento.
Um exemplo de um ARRAY uma srie de medies, a qual constituda de
um nmero fixo de valores de medio individual.
Da mesma forma que um ARRAY permite a combinao de elementos de
mesmo tipo em um conjunto, os tipos de dados STRUCT (estrutura) habilitam
a unio de elementos de diferentes tipos de dados.
Tipos de dados complexos so pr definidos. Os tipos de dados
DATE_AND_TIME tem uma dimenso de 64 bits. A dimenso dos tipos de
dados ARRAY, STRUCT e STRING so definidas pelo usurio.
Tipo de dado Com a ajuda dos tipos de dados definidos pelo usurio (UDT), voc pode
definido pelo usurio definir tipos de dados especiais (estruturas) que podem ser ento usadas to
freqntemente quanto voc queira na declarao de parmetros e variveis.
A estrutura de dados armazenada em um bloco UDT (UDT1 ... UDT65535)
e pode ser usado como um "template" na declarao do tipo de dado de
uma varivel ou um parmetro em OBs, FCs, FBs e DBs.
Com a ajuda de UDTs, voc pode salvar tempo de digitao uma vez que a
mesma estrutura solicitada diversas vezes.
Exemplo: Voc requer a mesma estrutura 10 vezes em um bloco de dados.
Primeiro voc define a estrutura e a salva como UDT1, por exemplo.
No DB, voc define a varivel "Drive como um array com 10 elementos do
tipo UDT1:
Drive: array[1..10]
UDT 1
Ento, voc criou faixas de 10 dados com a estrutura definida em UDT 1 sem
digitao adicional.
Date: 04.10.2007
File: PRO2_05P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de Dados Complexos no STEP 7
Dimenso
(em bits)
DATE_AND_TIME
(Data e Horrio)
STRING
(Caracter string com
mx. 254 caracteres)
ARRAY
(Grupo de elementos
do mesmo tipo de dado)
STRUCT
(Estrutura, Grupo de
elementos de diferentes
tipos de dados)
UDT
(User Defined Data Type =
"Template" constitudo de
tipos de dados elementares
e/ou complexos)
64
8 * (nmero de
caracteres +2)
definido pelo
usurio
definido pelo
usurio
definido pelo
usurio
Palavra chave Exemplo
DT#99-06-14-12:14:55.0
Isto uma string
SIEMENS
Meas_vals: ARRAY[1..20]
INT
Motor: STRUCT
Speed : INT
Current : REAL
END_STRUCT
UDT como bloco UDT como elemento array
STRUCT Drive: ARRAY[1..4]
Speed : INT UDT1
Current : REAL
END_STRUCT
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 8
Tipos de Adicionalmente aos tipos de dados elementares e complexos, voc pode
Parmetros definir tipos de parmetros para os parmetros dos FCs e FBs. Com este
parmetro formal, voc pode ento executar as mesmas instrues como
com os endereos atuais.
Estes parmetros formais devem ento serem alimentados com parmetros
atuais associados durante a chamada de um bloco.
TIMER e Estes tipos de parmetros definem um parmetro formal do tipo TIMER ou
COUNTER COUNTER.
BLOCK_xx Com a ajuda dos tipos de parmetros BLOCK_FB ou Block_FC, blocos de
programa podem ser passados como parmetros para chamada de blocos.
De qualquer maneira, somente estes blocos (FBs, FCs) osquais no tem
controle sobre parmetros ou variveis estticas (BLOCK_FB) podem ser
passados.
Os blocos lgicos formais podem somente ser chamados usando as
instrues UC e CC (no CALL) dentro da chamada de bloco.
No existem restries para a passagem dos blocos de dados (DB, Sdb) e
para as instrues associadas (p.ex.: OPN ).
POINTER POINTER usado quando tipo de dado any pode ser o tipo de dado do
parmetro atual. O POINTER contem o endereo inicial completo (nmero do
DB, rea de dado, endereo do byte e endereo do bit) do parmetro atual.
Voc pode determinar um parmetro formal do tipo POINTER pela atribuio
do endereo do parmetro atual, p.ex.: P#M50.0.
ANY ANY usado quando o tipo de dado any pode ser o tipo de dado do
parmetro atual. Em adio ao endereo inicial completo, informaes sobre
o tipo de dado e a dimenso tambm passado em um ponteiro tipo ANY.
P#M10.0 Byte 10 (Campo de 10 componentes do tipo de dado BYTE
comeando com MB 10).
Date: 04.10.2007
File: PRO2_05P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de Parmetros no STEP 7
Dimenso
(em bits)
TIMER
COUNTER
BLOCK_FB
BLOCK_FC
BLOCK_DB
BLOCK_SDB
Pointer
ANY
16
16
16
48
80
Palavra chave Exemplo
Contact time: TIMER
.
SI #Contact_time
NoCompParts: COUNTER
.
LC #No_Comp_Parts
Recall: BLOCK_FB
.
UC #Recall
Measure: POINTER
.
L P##Measure
.
Measured Values: ANY
.
L P##Meas_Values
.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 9
Vista Geral A parte dos blocos de programa, um programa do usurio tambm consiste de
dados contendo informaes sobre estados do processo, sinais, etc., os quais
so ento processados de acordo com as instrues no programa do usurio.
Variveis podem ter uma localizao de memria permanente na imagem de
processo, rea de endereo de memria M ou em DBs ou eles podem ser
parametrizados dinamicamente durante a execuo do programa na Pilha L.
PII, PIQ, Memria M Variveis elementares podem ser declaradas na tabela de smbolos globais da
I/O pasta de programa. Adicionalmente ao nome simblico da varivel, voc deve
tambm dar uma rea de memria consistindo do identificador de rea e
dimenso, bem como um tipo de dado (p.ex.: FullCrate MW 10 INT).
Diferentemente da tabela de smbolos no STEP 5 (Assignment List), o editor de
programas permite no somente o uso do nome simblico como tambm o
endereo absoluto. Ele tambm monitora o uso correto da varivel quando
parmetros so atribudos na chamada de blocos (teste do valor digitado).
As variveis que so declaradas na tabela de smbolos globais so globais.
Todos os blocos na pasta de programa podem acess-la.
Pilha de Dados Local A Pilha de Dados Local (L stack) uma rea para armazenamento:
variveis temporrias de um bloco lgico, incluindo informaes de partida
de OB
parmetros atuais podem ser passados quando chamando funes
resultados lgicos intermedirios em programas LAD
reas na pilha L para variveis so atribudas dinamicamente quando o
programa executado no bloco e so habilitadas uma vez novamente depois
da execuo do bloco.
Blocos de Dados DBs so blocos usados pelos blocos lgicos para armazenamento de dados
pelo programa do usurio. Diferentemente das variveis temporrias, o
contedo das variveis nos DBs no so sobrescritas quando a execuo do
bloco completada.
Date: 04.10.2007
File: PRO2_05P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
reas para gravao de Variveis
blocos de dados
DBx
DBy
DBz
.
.
.
memria M
PIQ
PII
rea (P) I/O
Pilha de
dado local
reas "clssicas"
de PLCs
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 10
Pilha de Dados Local Para cada classe de prioridade, isto , para cada OB alocada sua prpria
Pilha L para variveis temporrias dos OBs ou dos blocos chamados
adicionalmente.
Antes de um bloco (OB, FB ou FC) ser processado, o sistema reserva
memria dinmica na Pilha L para variveis temporrias declaradas na parte
da declarao dos blocos. A memria habilitada aps BE (fim de bloco).
Seqncia O slide acima mostra uma seqncia tpica de execuo cclica do OB1.
Antes do OB1 ser processado, o sistema operacional reserva (aloca) espao
de memria para as variveis temporrias do OB1. Junto as variveis
temporrias declaradas pelo usurio, uma rea de 20 byte tambm
reservada e inicializada para informaes de partida.
1 Antes da execuo do FB1, o sistema operacional reserva memria para as
variveis temporrias do FB1. A respectiva rea de memria alocada logo
em seguida da memria para as variveis temporrias do OB1.
2 Antes da execuo do FC5, o sistema operacional reserva memria para as
variveis temporrias do FC5. A respectiva rea de memria alocada logo
em seguida da memria para as variveis temporrias do FC1.
3 Aps a concluso do FC5, a memria associada habilitada novamente.
4 Aps a concluso do FB1, a memria associada habilitada novamente.
5 Agora o sistema operacional reserva memria para o FC10. Esta rea Now
the operating system reserves memory for the FC10. Esta rea de memria
alocada logo em seguida da memria para as variveis temporrias do OB1.
Deste modo o espao exato de memria, que j havia sido usado
previamente pelo FB1 e FC5, sobrescrito pelas variveis temporrias
originais do FB1 e FC5.
Vantagem O gerenciamento da memria temporria realizada pelo sistema
operacional e no pelo programa do usurio (erros de programao).
Se a respectiva classe de prioridade interrompida por um OB com outra
classe de prioridade, os dados locais no necessitam serem salvos. Os vrios
OBs so alocados, neste caso, em sua prpria pilha de dados local.
Date: 04.10.2007
File: PRO2_05P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Funcionamento da metodologia da Pilha de Dados Local
Alocao
da Pilha L
para OB1
p.ex. 256 Bytes
5
OB1
FB1
FC5
FC10
.
.
CALL FB1
.
.
1
2
3
4
5 .
.
CALL FC10
.
.
.
.
CALL FC5
.
.
6
LD for OB1 LD for OB1
1
LD for FB1
LD for OB1
2
LD for FB1
LD for FC5
Incio do ciclo
LD for OB1
3
LD for FB1
LD for OB1
4
LD for OB1
5
LD for FC10
livre
livre
livre
livre
livre
livre
LD for OB1
6
livre
LD= Dado Local
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 11
Ramificao no O exemplo acima mostra exemplo da representao de ramificao, como
Editor LAD ela pode agora ser programada pelo usurio com ajuda do Editor LAD do
STEP 7 pela insero de bobinas de sada adicionais (p.ex. Q 0.7).
Memria Rascunho Com STEP 5, a programao de uma ramificao no era diretamente
e Conectores possvel. O usurio deve inserir uma varivel auxiliar, como regra um bit de
memria (conector), para a localizao do ponto de ramificao do network.
No prximo segmento um para cada ramificao adicional esta varivel
auxiliar ento usada em cada caso como uma entrada e escaneada.
Editor LAD Com a ajuda do Editor LAD, possvel programar as ramificaes diretamene
com STEP 7. Internamente, uma varivel auxiliar um bit da pilha de dados
local tambm usado para localizao da ramificao pelo Editor LAD.
O uso de memria na pilha de dados local garante neste caso, que as duas
variveis auxiliares (L 20.0 e L 20.1) no sejam sobrescritas por blocos
chamados ao mesmo tempo.
Variveis O usurio pode tambm declarar variveis temporrias na parte de
Temporrias declaraes e acessar as variveis absolutamente ou simbolicamente, isto ,
atravs do nome identificador especificado.
Date: 04.10.2007
File: PRO2_05P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exemplo: Utilizao como memria para rascunho
Ramificao em LAD
Variveis auxiliares da
Pilha de Dados Local
Representao STL
Locais de ramificao
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 12
Vista Geral DBs so usados para armazenar dados do usurio. Como os blocos lgicos,
os DBs ocupam espao na memria do usurio. Dados variveis (por
exemplo, valores numricos), com os quais o programa do usurio trabalha,
so encontrados no DBs.
O programa do usurio pode acessar dados de um DB via instrues de bit,
byte, word (palavra) ou double word (palavra dupla). Os acessos podem ser
absolutos ou simblicos.
rea de DBs podem, dependendo de seus contedos, ser instalados pelo usurio em
Aplicao diferentes modos. Distino feita entre:
Blocos de Dados Globais (compartilhados): Eles contem informaes que
podem ser acessadas por todos os blocos lgicos do programa do
usurio.
Blocos de Dados Instance: Eles so sempre reservados por um FB. Os
dados deste DB somente processado pelo FB associado.
Criao de DBs DBs Globais so cada um criados usando o Editor DB ou de acordo com um
prdeterminado tipo de dado definido pelo usurio.
Blocos de Dados Instance so gerados ento quando um bloco FB
chamado.
Registrador A CPU tem dois registradores de DBs, o registrador DB e o registrador DI.
Deste modo dois blocos de dados podem ser abertos ao mesmo tempo.
Date: 04.10.2007
File: PRO2_05P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Blocos de Dados (DB)
Funo
FC10
Funo
FC20
Bloco de
Funo
FB1
OB1
Acessado por todos os blocos
Dados Globais
DB20
Dados Instance
DB5
DB Instance DB p/ FB1
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 13
Date: 04.10.2007
File: PRO2_05P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipo de Dado: ARRAY
ARRAY (campo):
Grupo de
componentes do
mesmo tipo de dados
Declarao:
Uni dimensional:
Fieldname: ARRAY[minIndex..maxindex] OF data type;
Multi-dimensional:
Fieldname: ARRAY[mindex1..maxindex1,mindex2..maxindex2,...] OF data type;
Index: Data type INT (-32768...32767)
Exemplos:
Declarao da varivel:
Uni dimensional: Meas_value: ARRAY[1..10] OF REAL;
Multi-dimensional: Position: ARRAY[1..5,2..8,...] OF INT;
Acesso uma varivel:
L #Meas_value[5] // Carrega o quinto elemento do ARRAY
// Meas_value no ACCU1
T #Result[10,5]
Meas_value[1]: Real
Meas_value[2]: Real
Meas_value[3]: Real
Meas_value[10]: Real
Meas_value: ARRAY[1..10]
.
.
.
.
Vista Geral O tipo de dado ARRAY representa um campo com um nmero fixo de
componentes (elementos) do mesmo tipo de dado.
Um campo (=ARRAY) pode ter at 6 dimenses (nmero de ndices). As
seguintes restries se aplicam para os tipos de dados componentes de um
array:
elementares (sem restrio)
complexos (DATE_AND_TIME, STRUCT, UDT)
tipos sem parmetros
sem FBs (modelo multi-instance)
Os ARRAYs no podem ser aninhados. O limite da faixa de ndices mnimos e
mximos determinado pela faixa de valores dos INT, isto , de -32768 a
+32767.
Acesso Instrues STL podem ser usadas para acessar componentes array dos tipos
de dados elementares. Um componente array endereado com o nome
array e um ndice entre colchetes.
O ndice deve ser um valor fixado, isto , um termo constante. Indexao
varivel durante a execuo do programa no possvel em STL..
Nota Indexao varivel para elementos array individuais somente possvel na
linguagem S7-SCL. Acesso varivel pode somente ser implementada em STL
com a ajuda da memria ou registrador de endereamento indireto.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 14
Vista Geral No exemplo acima, duas variveis do tipo de dado ARRAY so declaradas no
DB5 com ajuda do Editor de DBs. A criao de uma nova varivel somente
possvel na "Declaration view" do DB (View -> Declaration View):
sequence: ARRAY[1..10] OF REAL
result: ARRAY[1..5,3..7] OF INT
Inicializao Os componentes array individuais podem ser valores pr atribudos na
dos ARRAYs declarao (no com parmetros FC, parmetros in/out dos FBs ou variveis
temporrias). A inicializao dos tipos de dados valores devem ser
compatveis com o tipo de dado componente.
A inicializao dos valores so introduzidos na coluna "Initial Value", separado
por uma vrgula. Se diversos componentes sucessivos com o mesmo valor
esto sendo inicializados, um fator de repetio pode ser usado para fazer
isto. O fator de repetio colocado em frente ao valor inicializao que
para ser entrado entre parnteses.
Exemplo 5 (1.23467E+002) // os prximos 5 componentes so inicializados com o
// valor 123.467
15 (7,2,3) // os prximos 15 elementos so atribudos
// alternativamente com os valores 7, 2 e 3
O resultado da inicializao pode ser checada ou alterada no "Data View"
(View -> Data View). Se o nmero da inicializao menor que o nmero de
componentes, somente o primeiro pr atribudo e o resto so inicializados
com 0.
Aceitao da Se uma nova inicializao de valores so introduzidos na declaration view,
Inicializao estas mudanas somente sero efetivadas (validao como actual
dos Valores values) depois de ser executada a funo do menu Edit -> Initialize Data
Block.
A inicializao de valores do ARRAYs na declarao dos parmetros de
entrada ou sada nos FBs so aceitos como valores atuais em um DB
instance quando estes so gerados.
Date: 04.10.2007
File: PRO2_05P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Inicializao e Declarao dos ARRAYs
DB5 "Declaration View"
DB5 "Data View"
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 15
Vista Geral Conhecimento exato do armazenamento das variveis ARRAY na memria
ento necessria quando, durante a execuo do programa, componentes
individuais so acessados usando memria ou registrador de endereamento
indireto.
Armazenamento Uma varivel ARRAY sempre comea no limite de uma palavra, ou seja, em
de Variveis um byte com um endereo par. Uma varivel ARRAY ocupa a memria at o
prximo limite de palavra.
Componentes com tipo de dado BOOL comea no ltimo endereo bit
significante, componentes com tipo de dado BYTE e CHAR no endereo byte
significante. Os componentes individuais so listados em seqncia.
Em arrays multidimensionais, os componentes so armazenados linha por
linha comeando com a primeira dimeso. Uma nova dimenso sempre
comea no prximo byte com componentes bit e byte, com componentes de
outros tipos de dados sempre na prxima palavra.
Nota Os endereos dos componentes individuais ARRAY em um DB so
mostradas no "Data View" na coluna "Address".
.
Date: 04.10.2007
File: PRO2_05P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Armazenagem das Variveis ARRAY na Memria
Byte n
1)
Tipo de Dados BYTE, CHAR
Arrays unidimensionais Arrays multidimensionais
Tipo de Dado BOOL
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1 0
12 11 10 9 Byte n+1
Byte n
1)
Byte n+1
Byte n+2
Byte 1
Byte 2
Byte 3
Tipo de Dado WORD, DWORD,...
Byte n
1)
Byte n+1
Byte n+2
Byte 3
.
.
.
Word 2
Byte n+2
.
.
.
Exemplo.
ARRAY[1..2,1..3,1..2] OF BYTE
Byte n
1)
Byte n+1
Byte n+2
Byte 1.1.1
Byte 1.1.2
Byte 1.2.1
.
.
.
Byte 1.2.2
Byte 1.3.1
Byte 1.3.2
Byte 2.1.1
Byte 2.1.2
Byte 2.2.1
Byte 2.2.2
Byte 2.3.1
Byte 2.3.2
1)
n = par
Word 1
etc.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 16
Date: 04.10.2007
File: PRO2_05P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
STRUCT (Estrutura):
Grupo de componentes
de diferentes tipos
de dados
Declarao:
StructName: STRUCT
Comp1Name: data type;
Comp2Name: data type;
...
END_STRUCT
Exemplo:
Declarao de uma varivel: Acesso varivel
MotorControl : STRUCT S #MotorControl.ON
ON : BOOL; L #MotorControl.ActualSpeed
OFF : BOOL; T #MotorControl.SetSpeed
SetSpeed : INT; ...
ActualSpeed : INT;
END_STRUCT;
Tipo de Dado: STRUCT
Set_Speed: REAL
Actual_Speed: REAL
Enable: BOOL
Disturbance: BOOL
Motor: STRUCT
END_STRUCT
Vista Geral O tipo de dado STRUCT (estrutura) representa um nmero fixo de
componentes, estes podem ter diferentes tipos de dados em cada caso. Uma
estrutura pode ter at 8 nveis de aninhamento.
Uma estrutura pode ser declarada na parte de declarao de um bloco lgico,
em um DB global ou em um tipo de dado definido pelo usurio (UDT).
As seguintes restries so aplicveis em tipos de dados de uma estrutura:
elementares (sem restries)
complexos (DATE_AND_TIME, ARRAY, STRUCT, UDT)
sem tipo de parmetros
sem FBs (modelo multi-instance)
Acesso aos Instrues STL podem ser usados para acessar componentes (tipos de
Componentes dados elementares) de uma estrutura. Um componente de estrutura
endereado usando:
StructureName.ComponentName
Um ponto deve ser inserido entre StructureName e ComponentName como
um separador.
Se o tamanho do aninhamento da estrutura maior, isto , componentes da
estrutura so por vezes estruturas, ento o acesso aos menores
componentes da estrutura possvel usando o name path, como:
StructureName.ComponentName.SubcomponentName. ...
Um ponto deve ser inserido entre os nomes dos componentes e
subcomponentes em cada caso.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 17
Vista Geral No exemplo acima, um ARRAY [1..4] com dimenso nica com componentes
do tipo STRUCT declarada dentro do DB6 ("Hall_1") com o Editor de DBs.
A estrutura por vezes consiste de trs componentes dos quais os dois
primeiros, isto , STARTe STOP tem o tipo de dado BOOL. O terceiro
componente tem o tipo de dado ARRAY[1..10].
Os componentes deste tipo de dado ARRAY[1..10] so por vezes do tipo
STRUCT com os componentes REAL "Cutoffpoint_front", "Cutoffpoint_ back"
e "Stoppingpoint" .
Acesso Os componentes individuais podem ser endereados como abaixo, por
exemplo:
L "Hall_1".Axis[3].Position[7].Cutoffpoint_back
S "Hall".Axis[2].START, etc.
Inicializao Os componentes individuais da estrutura podem ser pr atribudos valores
de STRUCTs na declarao (coluna Initial Value). Os seguintes parmetros ou variveis
no podem ser inicializados:
parmetros input, output e in/out dos FCs
parmetros in/out nos FBs
dados locais nos OBs, FBs e FCs
A inicializao dos valores dos tipos de dados devem ser compatveis com os
tipos de dados.
Aceitao da Se novos valores de inicializao so introduzidos na declaration view de
Inicializao DBs, estas mudanas somente sero efetivadas (validao como actual
de Valores values) depois de ser executada a funo do menu Edit -> Initialize Data
Block.
A inicializao de valores do STRUCTs na declarao dos parmetros de
entrada ou sada nos FBs so aceitos como valores atuais em um DB
instance quando estes so gerados.
Date: 04.10.2007
File: PRO2_05P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Declarao dos STRUCTs
Exemplo: Declarao de um Array - Structure - Array
DB6 "Declaration View"
DB6 "Data View"
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 18
Vista Geral Conhecimento exato do armazenamento das variveis STRUCT na memria
ento necessria quando, durante a execuo do programa, componentes
individuais so acessados usando memria ou registrador de endereamento
indireto.
Armazenamento Uma varivel STRUCT sempre comea no limite de uma palavra, ou seja,
de Variveis em um byte com um endereo par. Subsequentemente, componentes
individuais so ento locados em seqncia de sua declarao na memria.
Uma varivel STRUCT ocupa a memria at o prximo limite de palavra.
Componentes com tipo de dado BOOL comea no ltimo endereo bit
significante, componentes com tipo de dado BYTE e CHAR em um endereo
byte par. Componentes com outros tipos de dados sempre comeam em um
limite de palavra.
Date: 04.10.2007
File: PRO2_05P.18
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Armazenagem das Variveis STRUCT na Memria
Byte n
1)
Estrutura com tipo de Estrutura com tipo de
dados elementares dados complexos
6 5 4 3 2 1
7 6 5 4 3 2 1 0
Byte n+1
Byte n+2 Byte 1
Byte 2
Byte 3
Byte n+8
Byte n+9
Byte 3
Word 1
Word 2
.
.
.
1)
n = par
Byte de enchimento
Byte n+3
Byte n+4
Byte n+5
6 5 4 3 2 1 Byte n+6
Byte n+7
.
.
.
Componentes
com tipos de
dados elementares
Limite de palavra
Componentes
com tipos de
dados ARRAY
Componentes
com tipos de
dados STRUCT
.
.
.
Limite de palavra
Limite de palavra
Byte de enchimento
Byte de enchimento
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 19
Vista Geral Quando uma estrutura de dados se repete freqentemente em um programa
do usurio ou quando uma estrutura de dados est sendo dado seu prprio
nome, ento STEP 7 permite ao usurio definir tipos de dados (UDT = User
Defined Data Type tipo de dados definidos pelo usurio) prprios (como
typedef em linguagem de alto nvel "C").
Atravs de tipos de dados relacionados aplicao, uma tarefa a ser
resolvida pode ser programada mais eficientemente. Usurios como
fabricantes de mquinas podem ento criar tipos de dados especficos para
seus projetos.
Criao de UDTs UDTs so criadas com o Editor de DB ou com o Editor de Textos e ento
armazenar na pasta de blocos como um bloco (UDT1 ... UDT65535).
Um nome simblico pode ento ser atribudo para este UDT ou estrutura de
dados relacionados na tabela de smbolos globais. Um "template" validado
globalmente criado atravs de um UDT, o qual pode ento ser usado to
freqentemente como desejado na declarao de novas variveis ou para
criao de DBs globais.
Date: 04.10.2007
File: PRO2_05P.19
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipos de Dados Definido pelo Usurio: UDTs
UDT tipos de dados definidos pelo usurio:
cria um template
para posterior uso
em declaraes
globalmente vlido para todos os
blocos da pasta de programa
Exemplo:
Definio de um novo tipo de dado (Estrutura):
UDT1 STRUCT
SetSpeed : REAL; ...
ActualSpeed : REAL;
Enable : BOOL;
Disturbance : BOOL;
END_STRUCT;
Declarao das variveis:
Motor_1: UDT1;
Motor_2: UDT1;
Acesso a variveis:
L #Motor_1.ActualSpeed
Set_Speed: REAL
Actual_Speed: REAL
Enable: BOOL
Disturbance: BOOL
UDT1: STRUCT
END_STRUCT
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 20
Vista Geral No exemplo acima, o UDT5 criado de 4 componentes (SetSpeed,
ActualSpeed, Enable, Disturbance) para uma estrutura de acionamentos
(drives) e ento inserido em um FC23 na declarao de parmetros in/out.
Um ARRAY unidimensional com 10 componentes do tipo de dado UDT5
declarado no FC23.
Valores Iniciais Tipos de dados definidos pelo usurio so pr atribudos e ento usados no
para UDTs programa do usurio exatamente como estruturas. A estrutura de um UDT a
mesma que a de um STRUCT. A declarao das variveis, que podem ser
processadas pelo programa do usurio, no tem ainda tomado lugar com a
criao de um UDT. O UDT um "template", que voc pode usar to
freqentemente quanto queira para declarao de novas variveis.
Do mesmo modo que com uma estrutura, voc tambm tem a possibilidade
de estabelecimento de valores iniciais nos UDTs. Se o UDT ento usado
para a declarao de uma varivel, o contedo destas variveis so
inicializados com valores iniciais do UDT (no para parmetros em FCs, para
parmetros in/out dos FBs e variveis temporrias).
Criao de DBs Um UDT pode tambm ser usado como um modelo para criao ( Dilogo:
New Data Block ) de um DB global. Neste caso, um DB criado com a
mesma estrutura e com os valores iniciais do respectivo UDT.
.
Date: 04.10.2007
File: PRO2_05P.20
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Uso dos UDTs
UDT5
FC23
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 21
Vista Geral O tipo de dado DATE_AND_TIME representa um instante, consistindo de data
e horrio do dia (time-of-day). A abreviao DT pode tambm ser usada em
vez de DATE_AND_TIME.
DATE_AND_TIME ou DT so palavras chaves e podem portanto tambm
serem escritas em baixo nvel.
Pr ajuste Uma varivel pode ser presetada com um valor inicial na declarao (no
como parmetro de bloco em um FC, como parmetro in/out em um FB ou
como varivel temporria).
O formato deve ser do tipo:
DT#Ano-Ms-Dia-Horas:Minutos:Segundos.Milisegundos
Especificao de milisegundos pode ser suprimida.
Processamento Variveis do tipo de dado DATE_AND_TIME podem ser processadas cada
uma com a ajuda de acesso absoluto aos componentes individuais ou as
funes da biblioteca IEC.
Nota O corrente horrio do dia (time-of-day) do relgio de tempo real da CPU
pode ser lido com o SFC1 (READ_CLK). O horrio retornado pelo SFC1
como um parmetro de sada do tipo DATE_AND_TIME.
Date: 04.10.2007
File: PRO2_05P.21
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipo de Dado: DATE_AND_TIME
Byte n
1)
Byte n+2
Byte n+4
Byte n+1
Byte n+3
Byte n+5
Ano
(90 ... 89)
Estrutura:
Ms
(01 ... 12)
Dia
(01 ... 31)
Hora
(00 ... 23)
Minuto
(00 ... 59)
Segundo
(00 ... 59)
Byte n+6
Byte n+7
Milisegundos
(000 ... 999)
Dia da
semana
(1..7)
Todos os valores so salvos no formato BCD
Formao da varivel:
DT#Ano-Ms-Dia-Hora:Minutos:Segundos.[Milisegundos]
Exemplo: DT#1998-03-21-17:23:00:00
Processamento atravs de funes na biblioteca IEC
1=Domingo
2=Segunda-feira
3=Tera-feira
4=Quarta-feira
5=Quinta-feira
6=Sexta-feira
7=Sbado
1)
n = par
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 22
Vista Geral Com a instalao do STEP7, a biblioteca Standard Library V3.x com a sub
biblioteca de Converso de Blocos IEC tambm instalada, a qual contem
funes para processamento de tipos de dados IEC.
Funes para processamento de variveis do tipo DATE_AND_TIME tambm
esto nesta biblioteca.
Notas Quando usando FC1, FC3 e FC34 os seguintes pontos devem ser
FC1, FC35 observados:
O instante (Parmetro T) deve estar dentro da faixa DT#1990-01-01-
00:00:00.000 e DT#2089-12-31-23:59:59.999. A funo no verifica o
parmetro de entrada.
Se o resultado da adio ou subtrao no estiver dentro da faixa
especificada acima, o resultado limitado ao respectivo valor e o resultado
binrio BR fixado em 0.
FC34 Os instantes devem estar dentro da faixa DT#1990-01-01-00:00:00.000 e
DT#2089-12-31-23:59:59.999. A funo no verifica o valor inserido. Se o
primeiro instante (Parmetro T1) maior (mais novo ou recente) do que o
segundo (Parmetro T2), o resultado positivo. Se o primeiro instante
menor (mais velho) do que o segundo, o resultado negativo.
Se o resultado da subtrao estiver fora da faixa de nmeros TIME, o
resultado limitado ao respectivo valor e o resultado binrio fixado em 0.
FC3, FC6, FC7, FC8 Estes valores de funes no reportam qualquer tipo de erro. O usurio se
responsabiliza pela correta insero de valores vlidos na entrada.
Funes de As funes de comparao tambm no realizam qualquer avaliao de
Comparao Os respectivos sinais de comparao da funo na sada RET_VAL indica se
a comparao foi satisfeita (RET_VAL=TRUE) ou no (RET_VAL=FALSE).
Date: 04.10.2007
File: PRO2_05P.22
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Funes para Processamento de Variveis DT
Biblioteca IEC-Library nas Bibliotecas Standard V3.x
FC1 (AD_DT_TM): A funo FC 1 soma um perodo de tempo (formato TIME) a um
instante (formato DT) e retorna um novo instant (formato DT) como um resultado.
FC34 (SB_DT_DT): A funo FC 34 subtrai dois instantes (formato DT) e retorna
uma durao de tempo (formato TIME) como um resultado.
FC35 (SB_DT_TM): A funo FC 35 subtrai um perodo de tempo (formato TIME)
de um instante (formato DT) e retorna um novo instante (formato DT) como
resultado.
FC3 (D_TOD_DT): A funo FC 3 combina os formatos de dados DATE e
TIME_OF_DAY (TOD) e converte estes formats em um formato DATE_AND_TIME
(DT).
FC6 (DT_DATE): A funo FC 6 extrai o formato de dados DATE do formato
DATE_AND_TIME.
FC7 (DT_DAY): A funo FC 7 extrai o dia da semana do formato
DATE_AND_TIME.
FC8 (DT_TOD): A funo FC 8 extrai o formato de dado TIME_OF_DAY do formato
DATE_AND_TIME.
Funes de comparao para variveis DT#Variables: FC9 (EQ_DT), FC12
(GE_DT),
FC14 (GT_DT), FC18 (LE_DT), FC23 (LT_DT), FC28 (NE_DT)
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 23
Vista Geral O tipo de dado String usado para armazenamento de caracteres strings
(p.ex.: mensagens de texto). Neste caminho, uma simples (mensagem)
sistema de processamento de palavras pode ser implementado em uma CPU
S7. O tipo de dado STRING representa um caracter string com at 254
caracteres.
O nmero especificado entre colchetes na declarao(1..254) dando o
nmero mximo de caracteres que podem ser salvos na varivel STRING. Se
esta informao violada, o Editor STL/LAD/FBD assume um comprimento
de 254 caracteres.
Acesso as Os caracteres individuais de uma varivel STRING pode ser acessada com
Variveis STRING a ajuda de instrues elementares STL, como:
L StringName[5] // carrega o quinto caracter que est armazenado na
// varivel
O processamento das variveis STRING atuais (mensagem de texto)
possvel usando FCs da biblioteca IEC.
Inicializao Na declarao, as variveis do tipo de dado STRING podem ser pr
atribudas com texto de partida (no como parmetros de FCs, como
parmetros de um FB ou como variveis temporrias). A inicializao feita
com caracteres ASCII. Se caracteres especiais para controle so includos,
ento o caracter dolar ($) deve ser colocado em frente.
Caracteres especiais utilizveis so:
$$ caracter dolar simples
$L, $l line feed (LF) (pula linha)
$P, $p page feed (pula pgina)
$R, $r carriage return (trmino de linha)
$T, $t tabulator (tabulador)
Date: 04.10.2007
File: PRO2_05P.23
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Tipo de Dado: STRING
Variveis do tipo STRING (caracter string):
Tipo de dado STRING representa um caracter string com at 254 caracteres
Aplicao: Manipulao de mensagens de texto
Declarao:
StringName: STRING[maxNo]: 'Initializationtext'
(varivel String para at maxNo caracteres, maxNo: 0... 254)
StringName: STRING: 'Initializationtext'
(varivel String para at 254 caracteres)
Exemplos:
Declarao de variveis:
Fault signal : STRING 'Motor failure_4'
(varivel Fault signal inicializada com o texto acima)
Warning : STRING[50] ' '
("empty" varivel Warning, pode aceitar at 50 caracteres)
Processamento:
Acessos elementares:
L #Fault signal[5] (carrega o quinto caracter do Fault signal)
Processamento por meio dos FCs da biblioteca IEC
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 24
Vista Geral Uma varivel do tipo de dado STRING tem no mximo 256 bytes de
comprimento, pelo qual at 254 so "net data", isto , caracteres que podem
ser aceitos.
Armazenamento Variveis STRING sempre comeam em uma palavra limite, isto , em um
de Variveis byte com endereo par.
Na determinao de variveis, seu mximo comprimento inserido no
primeiro byte da varivel de acordo com a declarao de variveis. Da
mesma forma, na pr atribuio ou no processamento, o comprimento
correntemente utilizado, que o comprimento dos caracteres string salvos
inserido no segundo byte com a ajuda das funes da biblioteca IEC.
Ambas informaes so necessrias para as funes da biblioteca IEC no
processamento de variveis STRING.
Subseqentemente, os caracteres que se seguem esto no formato ASCII.
Os caracteres no preenchidos na varivel STRING so preenchidos com
W#16#00 na inicializao.
Passagem de Variveis do tipo de dado STRING podem ser passadas da mesma forma
Parmetros que variveis ARRAY ou STRUCT para os parmetros dos blocos com o
mesmo tipo de dado, isto , o mesmo comprimento STRING.
Uma passagem de parmetros para FC ou FB com tipo POINTER ou ANY
tambm possvel.
.
Date: 04.10.2007
File: PRO2_05P.24
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Armazenagem das Variveis STRING na Memria
Byte n
1)
Exemplo:
Declaration with initialization
Nome dado: STRING[8]: 'OTTO'
Varivel STRING armazenada "Nome dado"
Byte n+1
Byte n+2
mx. comprimento= 8
comprim. corrente= 4
1
o
caracter = 'O'
Byte n+8
.
.
.
1)
n = par
Byte n+3
Byte n+4
Byte n+5
Byte n+6
Byte n+7
epecifica o nmero mx. De caracteres salvos, ou seja,
a dimenso especificada na declarao
especifica o caracter corrente salvo na varivel STRING
B#16#00
B#16#00
B#16#00
Byte n+9
B#16#00
A informao sobre o mximo nmero de caracteres
salvos ou sobre o tamanho corrente avaliado por
funes na biblioteca IEC.
2
o
caracter = 'T'
3
o
caracter = 'T'
4
o
caracter = 'O'
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 25
Vista Geral Com a instalao do STEP7, a biblioteca Standard Library com a sub
biblioteca IEC Blocos de Converso tambm instalada, a qual contem
funes para o processamento de tipos de dados IEC.
Notas As funes, em geral, realizam avaliao de erro com a ajuda de detalhes
sobre o mximo comprimento ou comprimento atual utilizado. Se as funes
reconhecem um erro, ento, geralmente, o bit BR fixado em 0. Uma
descrio detalhada das funes individuais podem ser encontradas na ajuda
Online da biblioteca IEC.
Comparao As funes de comparao realizam comparaes lxico grficas do
Functions caractere string. Os caracteres so, comeando da esquerda, comparados
com seus cdigos ASCII (p.ex.: a maior que A e A menor que B).
O primeiro caractere diferente determina o resultado da operao. Se a
poro esquerda de um caractere string longo idntico ao caractere string
mais curto, ento o caractere string considerado maior.
As funes no sinalizam qualquer erro. O respectivo sinal da funo de
comparao no retorno de valor RET_VAL informa (RET_VAL=TRUE) se a
comparao acusa igualdade ou diferena (RET_VAL=FALSE).
Date: 04.10.2007
File: PRO2_05P.25
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Funes para Processamento de Variveis STRING
Biblioteca IEC na biblioteca Standard Library V3.x
FC2 (CONCAT): A funo FC2 combina duas variveis STRING no caracter string.
FC4 (DELETE): A funo FC 4 delete caracteres L como o ensimo caracter no
caracter string.
FC11 (FINF): A funo FC 11 entrega a posio do segundo caracter string dentro
do primeiro caracter string.
FC17 (INSERT): A funo FC 17 insere o caracter string do parmetro IN2 dentro
do caracter string do parmetro IN1 aps o ensimo caracter.
FC20 (LEFT): A funo FC 20 entrega o primeiro caracter L de um caracter string.
FC21 (LEN): A funo FC 21 calcula o comprimento do caracter string (nmero de
caracteres vlidos).
FC26 (MID): A funo FC 26 entrega a seo mdia do caracter string
FC31 (REPLACE): A funo FC 31 troca caracteres L do primeiro caracter string
(IN1) como o ensimo caracter (incluso) com o segundo caracter string (IN2).
FC32 (RIGHT): A funo FC 32 entrega o ltimo caracter L de um caracter string.
Funes de comparao de variveis STRING: FC10 (EQ_STRING), FC13
(GE_STRING), FC15 (GT_STRING), FC19 (LE_STRING), FC24 (LT_STRING),
FC29 (NE_STRING)
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 26
Date: 04.10.2007
File: PRO2_05P.26
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 5.1: Uso dos Tipos de Dados Complexos
. . .
UDT99 "Motor"
DB51 "Conv_area_Motors"
Hall_1
Objetivo: Tornar-se familiarizado com os tipos de dados complexos STRUCT, bem
como com manipulao de UDTs.
Tarefa Em transportadores de rea em unidade de moagem, 20 motores do mesmo
tipo so ativados. O gerenciamento dos dados do motor mostrado toma lugar
para cada caso em um ARRAY por rea de transportadores.
De outro modo, a estrutura de dados de cada motor individualmente so
idnticos, ento eles sero armazenados em um UDT.
O arquivo de dados do motor consiste das seguintes informaes:
SetSpeed (REAL): Velocidade especificada pela sala de controle
ActualSpeed (REAL): Velocidade atual medida
SetActDiffMax (REAL): A mxima porcentagem de desvio entre o valor
desejado e o valor real especificado para garantir
qualidade
Enable (BOOL): Sinal de habilitao especificado pela sala de
controle
Disturbance (BOOL): Sinal OK retornado para sala de controle
O que fazer 1. Antes de mais nada, criar um UDT99 "Motor" com a estrutura desejada.
2. Inicializar os valore inseridos no UDT99 como abaixo:
- SetSpeed: 0.0
- ActualSpeed: 0.0
- SetActDiffMax: 0.05 (significa mx. 5% de desvio)
- Enable: FALSE
- Disturbance: TRUE
3. Ento criar um "Conv_Area_Motors". Dentro do DB51 declarar duas
variveis ConvArea_1_Motor e ConvArea_2_Motor do tipo
ARRAY[1..20] e tipos de componentes UDT99.
4. Checar o contedo do DB51 no data view.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 27
Date: 04.10.2007
File: PRO2_05P.27
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 5.2: Acessando Tipos de Dados Complexos
Objetivo: Tornar-se familiarizado com acesso a parmetros e variveis de tipos de
dados complexos, bem como com sua declarao usando UDT.
Tarefa O modo de operao dos motores individuais nas reas operacionais esto
sendo monitorados com a funo FC52.
O FC52 tem as seguintes propriedades:
FC52 conta com arquivo de dados de qualquer motor no parmetro de
entrada #Motor (UDT99).
FC52 entrega, no parmetro de sada #Motor_OK (BOOL), o valor TRUE,
se o bit Disturbance no for setado e a porcentagem do desvio entre
SetSpeed e ActualSpeed for menor que SetActDiffMax do arquivo de
dados que est sendo passado.
Adicionalmente, FC52 faz avaliao da diferena entre SetSpeed e
ActualSpeed como um nmero DINT ou como um nmero codificado
BCD no parmetro de sada #SetActDiff (DINT) e SetActDiffDisp
(DWORD).
No caso de ser ultrapassada faixa para cima ou para baixo na converso
de DINT ou DWORD para nmero REAL passado, FC52 seta o bit BR
para "0".
O que fazer 1. Criar um FC52 com as propriedades desejadas.
2. Chamar FC52 no OB1. Alimentar o parmetro de entrada #Motor com o
arquivo de dados do stimo motor da ConvArea_2.
Ler o sinal de sada #Motor_OK na sada Q8.0.
Tambm alimentar o parmetro de sada #SetActDiff e #SetActDiffDisp
com o parmetro atual MD0 e QD10 (display digital).
3. Transferir os blocos para a CPU.
4. Testar FC52 com a ajuda da funo "Monitor/Modify Variable",
especificando diferentes valores para os respectivos arquivos de dados.
Siemens Ltda.
Training Center
ST-7PRO2
Tipos de Dados e Variveis STEP 7 Pgina 28
Objetivo: Tornar-se familiarizado com tipos de dados complexos DATE_AND_TIME.
Tarefa Criar um FC53 com a seguinte funcionalidade:
O FC53 l o horrio do dia (time-of-day) da CPU com a ajuda da funo
do sistema SFC51.
As horas e minutos so mostradas no display digital.
O que fazer 1. Criar um bloco FC53 com a funcionalidade acima.
2. Chamar o FC53 no OB1.
3. No SIMATIC Manager, checar, com ajuda da opo do menu
PLC -> Set Time and Date, se o relgio da CPU est corretamente
ajustado.
4. Transferir o FC53 e o OB1 para a CPU.
5. Testar o programa.
Date: 04.10.2007
File: PRO2_05P.28
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio Adicional 5.3: Lendo Time-of-Day com SFC 1 (READ_CLK)
Parameter
Parameter Declaration Data Type Memory Area Description
CDT OUTPUT DATE_AND_TIME (DT) D, L Output of the current time-of-day and
the current date
RET_VAL OUTPUT INT I, Q, M, D, L Return value of SFC
SFC1
EN
RET_VAL
ENO
??.?
CDT ??.?
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 1
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 3Estaes ........................................................................................ 24
Interconexo de Parmetros de Blocos ............................................................................................. 25
Date: 04.10.2007
File: PRO2_06P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Chamada de Blocos e Modelo Multi-instance
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 2
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
externovia 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).
Date: 04.10.2007
File: PRO2_06P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Blocos para Programao Estruturada
OB 1
Motor 1
Motor 1
FB1
Val ves
Val ves
FB2
Controller
Controller
FB10
FC 5
Limit
value
Copying
SFC
. . .
Modularizao da
Tarefa Inserida:
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:
Blocos podem ser chamados
to freqentemente quanto seja
resquerido
Restries:
sem acesso a endereos
globais
comunicao somente via
lista de parmetros
.
.
chamada FB1, DB2
Start :=I 0.0
Stop :=I 0.1
Motor_on :=Q12.0
Speed :=QW14
.
.
FB 1
Address Decl. nome tipo
0.0 in Start BOOL
0.1 in Stop BOOL
2.0 out Motor_on BOOL
4.0 out Speed INT
6.0 stat Speed_old INT
0.0 temp Calc_1 INT
.
.
.
A #Start
AN #Stop
= #Motor_on
.
DB 2
OB 1
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 3
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 Blocos so, por suas funes, sua estrutura ou sua limitada aplicao partes
no STEP 7 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.
Date: 04.10.2007
File: PRO2_06P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista Geral dos Blocos em STEP 7
Propriedades
Bloco de
Organizao (OB)
- interface do usurio
- graduao de prioridades (0..27)
- informaes especficas de partida na pilha de dados local
Tipos de Blocos
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
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 4
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 Se funes esto sendo criadas em conformidade com IEC 1131-3, ento as
Funes seguintes regras devem ser observadas:
Conformes 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.
Date: 04.10.2007
File: PRO2_06P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Propriedades das Funes
Parmetros atribuveis de blocos:
muitos parmetros input, sada e
in/out conforme necessidade
sem memria, isto somente
variveis temporrias
Conforme IEC 1131-3:
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
Expande o conjunto de
instrues do processador
Execuo do
Programa
chamada FC
10
On_1 := I 0.1
On_2 := I 0.2
Off := Q8.0
Funo FC10
in On_1 BOOL
in On_2 BOOL
out Off BOOL
...
...
A #On_1
A #On_2
= #Off
...
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 5
Parmetros de FC 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.
Mecanismo de Com um chamada, o Editor STL/LAD/FBD antes de tudo calcula os ponteiros de
Passagem 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.
Notas 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).
Date: 04.10.2007
File: PRO2_06P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Mecanismo de Passagem para Tipos de Dados Elementares
OB1
Funo FC10
Execuo do
programa
chamada FC10
On_1 := I 0.1
On_2 := I 0.2
Off := Q8.0
in On_1 BOOL
in On_2 BOOL
out Off BOOL
...
...
A #On_1
A #On_2
= #Off
...
OB1
BLD 1
= L 20.0
UC FC 10
P#I 0.1
P#I 0.2
P#Q 8.0
BLD 2
1 0 0 1 0 0 1 0
...
IB0
Parmetros Elementares
atuais na:
rea de endereo de memria M
imagem de processo
pilha L p/o chamador
Parmetro
do bloco
Parmetro
atual
Parmetro
Formal
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 6
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 Para o passe, um parmetro do mesmo tipo de dado como o parmetro atual
Parmetros 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 ouem 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.
Date: 04.10.2007
File: PRO2_06P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Chamada de Funes com Tipos de Dados Complexos
Exemplo: Passagem de um ARRAY para uma Funo
FC21
Atribuio dos parmetros somente possvel simbolicamente
Net wor k 1: Mes_Val decl ar ado como umar r ay no FC21
chamada FC 21
Mes_Val : =" Temper at ur e" . seqnci a
DB5 " Temperature"
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 7
Instruo chamada 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.
Instruo UC e CC 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.
Importante UC e CC somente podem ser usados quando nenhum parmetro declarado na
chamada do FC.
Date: 04.10.2007
File: PRO2_06P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Caractersticas para chamada de Funes
Instruo chamada
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
Instruo chamada assegura que os parmetros de bloco so
corretamente alimentadas com os dados correntes
Exemplo:
chamada FC10
On_1 :=I 0.1
On_2 :=I 0.2
Off :=Q8.0
Instruo chamada UC e CC
Chamada de bloco independente do RLO (UC) ou dependente (CC)
Exemplos: UC FC20 ou CC FC20
utilizvel somente, quando o FC no tem parmetros
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 8
Date: 04.10.2007
File: PRO2_06P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
FB 5
in Start BOOL
in Stop BOOL
out Motor_on BOOL
out Speed INT
stat ...
Temp...
...
A #Start
AN #Stop
= #Motor_on
...
Propriedades dos Blocos de Funes
Parmetros atribuveis dos
blocos:
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
rea de dados (instantiating)
" Encapsulamento de Dados"
Aplicao:
Funes de temporizao e
contagem
Unidades de Controle de
processo com estados
internos
aquecedores
acionamentos, vlvulas, etc.
chamada FB5, DB16
Start :=I 0.0
Stop :=I 0.1
Motor_on :=Q8.0
Speed :=QW12
0.0 Start BOOL
0.1 Stop BOOL
2.0 Motor_on BOOL
4.0 Speed INT
DB 16
Acionamento
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 lembrarestados 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
Chamada Blocos e Modelo Multi-instance Pgina 9
O que um O conceito de FB com instance tem grande importncia e estabelece o
Instance? critrio essencial de distino com os FCs. A definio das variveis dentro de
linguagens de alto nvel como Csob 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.
Date: 04.10.2007
File: PRO2_06P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Formao Instance dos Blocos de Funes
Dri ve_1
FBx
+
DBy
Dados de
estados p/
Drive_1
Algortmos
p/ controle
OB, FB or FC
chamada FBx, DBy
...
...
Chamada de FB
com DB Instance
chamada
#Motor_1
.
chamada
#Motor_2
DBx
...
stat Motor_1 FBx
stat Motor_2 FBx
Dados de
estados p/
Drive_2
Dados de
estados p/
Drive_3
FBx
FB Instance
Algortmos
p/ controle
FB
Dri ve_2
Dri ve_3
Declaraes
dentro de FBs
(Multi-instances)
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 10
Parmetros na Dados para processamento podem ser manipulados atravs da chamada de
chamada do FB 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 Se um DB instance criado de um FB, o editor de blocos reserva
Passagem 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.
Date: 04.10.2007
File: PRO2_06P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Passagem de Parmetros na chamada de um FB
OB1
FB10
Execuo do
Programa
chamada FB5, DB16
Start :=I 0.0
Stop :=I 0.4
Motor_on :=Q8.0
Speed :=QW12
0.0 in Start BOOL
0.1 in Stop BOOL
2.0 out Motor_on BOOL
4.0 out Speed INT
...
...
A #Start
AN #Stop
= #Motor_on
...
BLD 3
= L 24.0
TDB
OPN DI 16
TAR2 LD 20
A I 0.0
= DIX 0.0
A I 0.4
= DIX 0.1
LAR2 P#DBX 0.0
AC FB 10
LAR2 LD 20
A DIX 2.0
= Q 8.0
L DIW 4
T QW 12
TDB
BLD 4
1 0 0 1 0 0 1 0
...
IB0 1 0 0 0 0 0 1 1
QB8
DB16
.. .. .. .. .. .. 0 1
.. .. .. .. .. .. .. ..
.. .. .. .. .. .. ..
1
1
2
3
. . .
Parmetros
do Bloco
Parmetros
Atuais
Parmetros
Formal
. . .
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 11
Tipo de Dado Do mesmo modo que com FCs, endereos de tipos de dados complexos
Complexo (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 Para parmetros input e sada dos tipos de dados complexos,
Input e sada 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 ("Passingby 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.
Date: 04.10.2007
File: PRO2_06P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Chamada de FB com Tipos de Dados Complexos
Exemplo: Passagem de um ARRAY para um FB
FB17
Atribuio de parmetros complexos
somente possvel simbolicamente
Net wor k 1:
chamada FB 17, DB 30
Meas_1 : =" Temper at ur e" . Cyl i nder
Sum_1 : =MD20
Sum_2 : =MD30
Meas_2 : =" Temper at ur e" . Shaf t
DB2 " Temperature"
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 12
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 desatribudodo 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 desatribudosdo 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 podemsomente 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.
Date: 04.10.2007
File: PRO2_06P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Caractersticas para chamada de Blocos de Funes
Passagem de Parmetros " por valor" (Cpia do Valor):
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)
Inicializao:
Parmetros FB podem ser inicializados na declarao
Exceo: parmetros in/out dos tipos de dados complexos (STRUCT,
ARRAY, STRING e DATE_AND_TIME)
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)
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 13
Tarefa 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 comfuno NA). A planta desligadanovamente usando a
entrada I 0.1 (boto comcontato 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 comI 0.4 =0 e Modo Automtico presetado com I
0.4 =1. O O modo selecionado adotado comum 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 comI 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 3segundos 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 displaydigital QW6.
Date: 04.10.2007
File: PRO2_06P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Recipiente principal
sensor de
garrafa
I 8.6
sensor de
garrafa
I 8.5
sensor de
garrafa
I 8.7
Q 5.0 Bico enchedor
Exerccio 6: O Modelo Transportador para Planta de
Engarrafamento
Q 8.5 transportador para frente
Q 8.6 transportador para trs
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 14
Nota 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.
Controlando o Voc ir encontrar uma tabela de smbolos na pasta de programa
modo: FB15 Chap_06_1 do projeto "Pro2_ex51" para o exerccio 6.1.
Antes de mais nada, criar umFB15 "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
Date: 04.10.2007
File: PRO2_06P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 6.1a: Planta de Engarrafamento Modo de Seleo
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
FB15: " Modo de seleo"
EN
Start Plant_on
Stop OM_Man
Auto_Man OM_Auto
OM_acti vate ENO
DB15
. . .
I 0.0
I 0.1
I 0.4
I 0.5
Q8.1
Q8.2
Q8.3
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 15
Controle Criar umFB16 "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 DB15e 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.
Date: 04.10.2007
File: PRO2_06P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 6.1b: Planta de Engarrafamento - Transportador
Modo Manual
I 0.5: J og p/frente
I 0.6: J og 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
OM_Man
OM_Auto Conv_para
Jog_para
Conv_back
Jog_back Filling_acti ve
Sensor_fill Full_bottles
Sensor_cheia ENO
Q 8.5
Q 8.6
Q 5.0
QW 6
DB16
. . .
Q8.2
Q8.3
I 0.2
I 0.3
I 8.6
I 8.7
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 16
Modelo Adicionalmente a atribuio de valores de blocos de funes pela
Multi-instance 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.
Vantagens 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" umbloco 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.
Date: 04.10.2007
File: PRO2_06P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura do Modelo Multi-instance
FB10
Dados p/
furadeira
DB instance do FB10
Call Drill
.
Call Motor_1
.
Call Motor_2
DB10
...
stat Drill FB1
stat Motor_1 FB2
stat Motor_2 FB2
Dados p/
Motor_1
Dados p/
Motor_2
FB1
FB2
Algortmo
da
furadeira
Controle
de motor
p.ex. OB1
.
Call FB10,DB10
.
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 17
21
Unidades do Unidades do processo so objetos fsicos do processo, como as unidades de
processo 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).
Estilo de Voc pode implementar um estilo de programao orientada a objeto com
programao a ajuda de blocos de funes.
orientada a A descrio tcnica de uma unidade de processo ou programa de processo
objeto 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).
Reutilizao de Este conceito hierrquico oferece uma alta disponibilidade para reutilizao
Software 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 umFB 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 pr-
fabricados, que devem simplismente ser interconectados.
Date: 04.10.2007
File: PRO2_06P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programao Orientada a Objeto usando Multi-instances
Prensa_2 Prensa_1
Transportador
Exemplo: Linha de Prensas
Diviso Tecnolgica
Diviso Tecnolgica do
programa com a ajuda de
FB instance
FB: " Linha de Prensas"
FB: #Transportador
FB: #Prensa_1
Puncionador
Guarda
FB: # Puncionador
FB: #Guarda
FB: #Prensa_2
FB: # Puncionador
FB: #Guarda
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 18
Modelo Quando um modelo multi-instance usado, o DB instance contem os
Multi-instance 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).
Date: 04.10.2007
File: PRO2_06P.18
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Implementando uma " Linha de Prensa " no STEP 7
FB10:" Linha de Prensa "
DB Instance do FB10
Call #Prensa_1
.
Call #Prensa_2
.
Call #Transporte
DB10
...
stat Prensa_1 FB1
stat Prensa_2 FB1
stat Transporte FB2
...
FB1:" Prensa"
...
stat Punc. FB4
stat Guarda FB5
...
Call #Punc.
.
Call #Guarda
...
stat Punc. FB4
stat Guarda FB5
...
Call #Punc.
.
Call #Guarda
...
...
FB2: " Transporte"
FB4:" Punc."
FB5:" Guarda"
Call FB10, DB10
OB1
FB1: " Prensa"
FB4:" Punc."
FB5:" Guarda"
Dado para Prensa_1
Dado para Transporte
Prensa_1. Guarda
Prensa_2. Punc.
Prensa_2. Guarda
Dado para Prensa_2
Dado do FB10
Prensa_1. Punc.
NOTA: Punc. = Puncionador
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 19
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 multi-
instance.
Pr-requisitos para De forma a utilizar um FB como multi-instance sem problemas, os seguintes
Multi-instances 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 atribuiodo FB atravs da lista de parmetros executa com a chamada do
FB.
Estados ou outras informaes sobre a unidade a ser controlada devem ser
lembradaspelo FB em suas prprias variveis estticas.
Date: 04.10.2007
File: PRO2_06P.19
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Propriedades do Modelo Multi-instance
Vantagens do modelo Multi-instance :
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:
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:
Dado instance tambm pode ser acessado do lado de fora"
p.ex. no OB1: L " Linha de Prensa" .Prensa_2.Puncionador.<VarName>
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 20
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.
Date: 04.10.2007
File: PRO2_06P.20
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 6.2: O Modelo Transportador como Linha de Montagem
LED " H4"
Chaves de proximidade
" INI1" , " INI2" , " INI3"
Barreira de luz
" LB1"
Chave de
reconhecimento
" S4"
Seqncia do processo para a estao
de trabalho
Processamento da pea
Processamento terminado
Lugar da pea na correia
Espera pela pea bruta
Pega pea bruta da correia
Seqncia de processo para a
correia transportadora
Espera para trmino da pea
Transporte para montagem final
Montagem final, insere pea bruta
Transporte para estao
Chaves de
reconhecimento
" S1" , " S2" , " S3"
LEDs
" H1" , " H2" , " H3"
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 21
21
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).
Transporte: controle da correia transportadora, implementado pelo FB2 com
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 MB10e 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 comM10.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.
Date: 04.10.2007
File: PRO2_06P.21
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 6.2a: Estrutura de Programa para uma Estao de
Trabalho
Diviso tecnolgica do programa
Transporte
Estao_1 Estao_2 Estao_3
OB1
Call FB1, DB1
...
...
Call FB2, DB2
FB1: " Estao"
Initial LED
Proxy_switch Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy
DB1
M10.1
" S1"
" INI1"
I 0.0 " H1"
DB2
FB2: " Transporte"
Initial LED
L_barrier Conv_right
Acknowledge Conv_left
Transp_req
Clock_bit
" H4"
" K1_CONVR"
" K2_CONVL"
I 0.0
" LB1"
" S4"
M10.1
M10.3
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 22
Inicializao Com um impulso no parmetro de entrada #Initial , FB1 pode ser inicializados com
o estado #Process_piece. Atribuir #Initial comI 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_ Neste estado - o LED pisca com a freqncia do #Clock_bit_q
on_conv (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_ Neste estado - o LED pisca com #Clock_bit_q (freqncia pisca rpido) - a
from_conv pea pode ser pega do transportador.
Uma transio para o estado #Process_piece toma lugar quando a pea est
acessvel (#Proxy_ switch =0).
Date: 04.10.2007
File: PRO2_06P.22
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
FB1 " Estao" Mtodo de Funcionamento
FB1: " Estao"
pega_pea
da_correia
O LED pisca
rpido
pea
terminada
O LED pisca
lento
pea
processando
O LED fica
aceso
IN-Parameter: Tipo de dado:
Initial BOOL
Proxy_switch BOOL
Acknowledge BOOL
Clock_bit_q BOOL
Clock_bit_s BOOL
OUT-Parameter:
LED BOOL
Transp_req BOOL
I/O-Parameter:
Conv_busy BOOL
Stat. Var.:
estado STRUCT
Process_piece BOOL
Piece_finished BOOL
Place_part_on_conv BOOL
Wait_for_piece BOOL
Take_piece_from_conv BOOL
END_STRUCT
Modelo de estado:
A Acknowledge
AN Proxy_switch
A Transp_req
Declaraes no FB1:
espera
pela_pea
O LED est
desligado
pea no lugar
na_correia
O LED pisca
rpido
AN Conv_busy
AN Proxy_switch
A Proxy_ switch
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 23
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.
Date: 04.10.2007
File: PRO2_06P.23
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
FB2 " Transporte" Mtodo de Funcionamento
Transportador
p/esquerda
O LED pisca
Transportador
p/direita
O LEDpisca
A #Transp_req
Espera
O LED est
desligado
AN #Tansp_req
AN #L_Barrier
Montagem
O LED est
aceso
A #Acknowledge
Modelo de estado: Interface do FB2:
IN-Parameter: Tipo de dado:
Initial BOOL
L_Barrier BOOL
Acknowledge BOOL
Transp_req BOOL
Clock_bit BOOL
OUT-Parameter:
LED BOOL
Conv_right BOOL
Conv_left BOOL
Stat. Var.:
estado STRUCT
Waiting BOOL
Conv_right BOOL
Assembly BOOL
Conv_left BOOL
END_STRUCT
FB2: " Transporte"
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 24
Estrutura do Na segunda parte deste exerccio, a funcionalidade total do modelo
programa 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.
Date: 04.10.2007
File: PRO2_06P.24
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 6.2b: Expanso para 3 Estaes
FB10
Dado para
Estao_1
DB Instance do FB10
Call Estao_1
Call Estao_2
Call Estao_3
Call Transporte
DB10
...
stat Estao_1 FB1
stat Estao_2 FB1
stat Estao_3 FB1
stat TransporteFB2
Dado para
Transporte
FB1
FB2
OB1
.
Call FB10,DB10
.
Dado para
Estao_2
Dado para
Estao_3
Siemens Ltda.
Training Center
ST-7PRO2
Chamada Blocos e Modelo Multi-instance Pgina 25
O que fazer 1. Primeiro de tudo criar umFB10. 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 DB10e verifique
sua estrutura na declarao e data viewdo Editor de DB.
4. Chamar o FB10 com o DB instance DB10no 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".
Date: 04.10.2007
File: PRO2_06P.25
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Interconexo de Parmetros de Blocos
#Estao_1
Initial LED
Proxy_switch Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy
" LB1"
#Transporte
Initial LED
L_Barrier Conv_right
Acknowledge Conv_left
Transp_req
Clock_bit
" H4"
" K1_CONVR"
" K2_CONVL"
I 0.0
" S4"
M10.1
M10.1
" S1"
" INI1"
I 0.0 " H1"
#estao_2
" H2"
#estao_3
" H3"
FB10: " linha_montagem"
DB10: " DB_linha_montagem"
M10.3
#Estao_2
Initial LED
Proxy_ switch Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy
M10.1
" S2"
" INI2"
I 0.0
M10.3
#Estao_3
Initial LED
Proxy_ switch Transp_req
Acknowledge
Clock_bit_q
Clock_bit_s
Conv_busy
M10.1
" S3"
" INI3"
I 0.0
M10.3
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 1
Contedo Pg.
Fatos interessantes sobre Bibliotecas ................................................................................................. 2
Configurao e Contedo da Biblioteca Padro .................................................................................. 3
Fatos interessantes sobre Funes do Sistema (SFC) ....................................................................... 4
Vista geral das Funes do Sistema (SFC) (Parte 1) .......................................................................... 5
Vista geral das Funes do Sistema (SFC) (Parte 2) .......................................................................... 6
Vista geral das Funes do Sistema (SFC) (Parte 3) .......................................................................... 7
Vista geral das Funes do Sistema (SFC) (Parte 4) .......................................................................... 8
Vista geral das Funes do Sistema (SFC) (Parte 5) .......................................................................... 9
Chamada das Funes do Sistema (SFC) e Blocos de Funes do Sistema (SFB) .......................... 10
Avaliao de uma Mensagem de Erro ................................................................................................ 11
Exerccio 7.1: Gerao de um DB com um atributo "UNLINKED" ....................................................... 12
Exerccio 7.2: Testando um Bloco de Dados (SFC 24: somente para S7-400) .................................. 13
Exerccio 7.3: Gerao de um DB (SFC 22) ...................................................................................... 14
Exerccio 7.4: Copiando um DB da Memria de Carga para a Memria de Trabalho (SFC 20) ......... 15
Exerccio adicional 7.5: Inicializando um DB (SFC 21) ....................................................................... 16
Exerccio adicional 7.6: Escrevendo uma mensagem no Buffer de Diagnstico (SFC 52) ................ 17
Exerccio adicional 7.7: Bloco Contador com funo "Debouncing de Contato" ................................. 18
A Biblioteca: Converso de Blocos S5-S7 ........................................................................................... 19
A Biblioteca: Converso de Blocos TI-S7 (Parte 1) ............................................................................. 20
A Biblioteca: Converso de Blocos TI-S7 (Parte 2) ............................................................................. 21
A Biblioteca: Blocos de Comunicao ................................................................................................. 22
A Biblioteca: Blocos de Controle PID ................................................................................................... 23
dado: 04.10.2007
File: PRO2_07P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Utilizando Bibliotecas
FC 101 FC 102 FC 103 FC 100
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 2
Vista Geral Bibliotecas so usadas para guardar componentes de programa reutilizveis
para o SIMATIC S7/M7. Os componentes de programa podem ser copiados
dos projetos existentes para dentro de uma biblioteca ou eles podem ser
gerados diretamente na biblioteca independentemente dos projetos.
A mesma funcionalidade dos projetos disponvel para a gerao de
programas S7 em uma biblioteca com a exceo dos testes.
Configurao Exatamente como os projetos, as bibliotecas so configuradas de uma
maneira hierrquica:
Bibliotecas podem conter programas S7.
Um programa S7 pode conter exatamente uma pasta Blocks, uma pasta
fonte Files, uma pasta Charts bem como tambm um objeto Symbols
(tabela de smbolos).
A pasta Blocks contem os blocos, que podem ser carreagados para
dentro da CPU S7. A tabela de variveis (VATs) e o tipo de dado definido
pelo usurio (UDTs) contidos nela no so carregveis para dentro da
CPU.
A pasta fonte Files contem as fontes para os programas gerados nas
diversas linguagens de programao.
A pasta Charts contem os CFC-Charts (somente para a opo de
software S7-CFC).
Quando voc insere um novo programa S7, uma pasta Blocks e uma pasta
fonte Files bem como tambm um objeto Symbols so automaticamente
criados nela.
Uso das Bibliotecas Blocos que so usados repetidas vezes podem ser guardados em bibliotecas.
De l eles podem ser copiados para dentro do programa do usurio e serem
chamados por outros blocos.
dado: 04.10.2007
File: PRO2_07P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Fatos interessantes sobre Bibliotecas
Propsito:
Arquivamento de componentes de programa reutilizveis
Transferncia direta para a CPU e teste no possvel
Configurao da Biblioteca :
A biblioteca pode conter diversas pastas de programa
A biblioteca no pode conter qualquer "Hardware"
Cada pasta de programa contem:
As pastas "Blocks", fonte Files", "Symbols"
A pasta "Charts" (somente para a opo de software: S7-CFC)
Uso das Bibliotecas:
Com o SIMATIC Manager:
Bibliotecas podem ser nomeadas (mas no com os mesmos nomes
dos Projetos)
Blocos podem ser copiados entre bibliotecas e projetos
Bibliotecas podem ser arquivadas
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 3
Introduo Duas bibliotecas padro so automaticamente instaladas no disco rgido com
a instalao do software STEP7:
A biblioteca padro stdlibs(V2) para Verso 2 e
A biblioteca standard V3.x para Verso 3.
Destas bibliotecas voc pode copiar os blocos desejados para o seu projeto.
Abrindo uma Para abrir uma biblioteca, utilize os seguintes comandos: File -> Open ou os
Biblioteca icones associados na barra de ferramentas.
Um dilogo subseqente aberto no qual voc pode selecionar o projeto
desejado ou a biblioteca desejada.
Biblioteca Padro A biblioteca padro Standard Library V3.x contem os seguintes programas S7:
comunicao Blocks: contem as funes para conexo com I/O distribudo
quando se utiliza uma CP Profibus S7-300.
IEC Converting Blocks: contem blocos para funes IEC p.ex. para
manipulao de tipos de dados dado_e_TIME e STRING (ver Cap. 5).
Organization Blocks: contem todas as SFCs do S7-300/400.
PID Control Blocks: contem blocos de funo para controle PID.
S5-S7 Converting Blocks: contem os blocos padro que so necessrios
na converso dos programas S5 para S7.
sistema Function Blocks: contem todas as SFCs do S7-300/400.
TI-S7 Converting Blocks: contem as funes padro geralmente
utilizadas p.ex. escalonamento de valores analgicos, etc.
Notas Atentar para o fato que, bibliotecas adicionais so criadas durante a
instalao dos pacotes de opo.
Uma descrio das bibliotecas S7 PID e Blocos de Converso TI - S7 esto
localizadas sobre:Taskbar ->SIMATIC ->S7 manuals ->PID Control, padro
Functions 2.
dado: 04.10.2007
File: PRO2_07P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurao e Contedo da Biblioteca Padro
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 4
Introduo A funcionalidade, que no pode ser implementada com instrues STEP 7
(p.ex. criao de DB, comunicao com outros PLCs, etc.) pode ser
implementada no STEP7 com a ajuda das funes do sistema (SFCs) ou
blocos de funes do sistema (SFBs).
SFCs e SFBs so blocos que esto guardados no sistema operacional das
CPUs em vez da memria do usurio. Por esta razo, a parte das instrues
atuais no so transmitidas mas somente a parte das declaraes dos SFCs
ou SFBs durante a execuo da leitura de um SFC ou SFB da CPU.
Com a ajuda do Editor STL/LAD/FBD, a execuo da leitura "block" pode ser
aberta e a parte declarao mostrada. Uma transmisso no sentido inverso
dos SFCs e SFBs para dentro da CPU, deste modo, no possvel.
No programa do usurio, os SFBs e SFCs podem deste modo serem
chamados como se fossem FBs ou FCs atravs da instruo CALL. Com
SFBs, um DB de usurio deve ser especificado como DB instance do SFB por
esta razo.
Quais SFBs e SFCs esto disponveis ir depender individualmente do
sistema de PLC usado (S7-300 ou S7-400) e da CPU instalada. Os blocos
tm, deste modo, indiferentemente de onde esto sendo chamados em um
S7-300 ou S7-400, os mesmos nmeros, a mesma funcionalidade e a mesma
interface de chamada.
Manual Uma descrio adicional das funes do sistema podem ser encontradas no
manual:
The sistema Software Reference Manual for S7-300/400, sistema
Functions and Standard Functions.
Ajuda Online Exite tambm uma descrio adicional das funes do sistema no software
STEP 7. Chamar o menu help no editor de programa e selecionar a opo:
Help topics -> Block help -> Help with SFBs/SFCs .
dado: 04.10.2007
File: PRO2_07P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Fatos interessantes sobre Funes do Sistema (SFC)
As funes do sistema (SFCs e SFBs) so
guardadas no sistema operacional das CPUs
sistema Software Reference Manual para S7-300/400
com funes do sistema e funes padro
Ajuda Online extensiva disponvel no software STEP 7
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 5
Funes de Cpia e SFC 20 copia o contedo da uma rea memria (fonte) em outra rea de
Funes de Blocos memria (destino).
SFC 21 preenche uma rea de memria (campo destino) com o contedo de
uma rea de memria especificada (campo fonte).
SFC 22 cria um DB sem valores presetados na memria de trabalho.
SFC 23 apaga um DB na memria de trabalho e possivelmente na memria de
carga.
SFC 24 determina se um DB est presente na memria de trabalho (e o seu
tamanho).
SFC 25 comprime a memria. Quando os blocos so corrigidos, ficam espaos
desocupados na memria que so removidos durante a compresso.
SFC 44 (chamado no OB 122) salva um valor substituto no Acumulador para um
mdulo de entrada faltante.
Controle de programa SFC 35 gatilha, em multiprocessamento, a sincronizao de partida do OB 60
em todas as CPUs.
SFC 43 reinicializa a monitorao do ciclo de varredura da CPU.
SFC 46 leva a CPU para o estado Stop.
SFC 47 implementa tempos de espera no programa do usurio at 32767 s.
Manipulando o Relgio SFC 0 ajusta um dado e o horrio do dia para o relgio de tempo real da CPU.
SFC 1 l um dado e horrio do dia correntes na CPU.
SFC 48 sincroniza todos os relgios escravos presentes em um segmento de
barramento de comunicao. Na chamada da CPU devem ser atribudos seus
parmetros como relgio mestre.
Contador de horas de A CPU possui um contador especfico do nmero de horas de operao com o qual
operao voc pode gravar a durao do tempo de operao do equipmento.
SFC 2 ajusta o contador de horas de operao para um valor especificado.
SFC 3 parte e para o contador de horas de operao.
SFC 4 l o valor corrente de horas de operao e seu estado.
SFC 64 l o tempo do sistema da CPU. O tempo do sistema um contador que
corre livremente fazendo contagens a cada 10 ms (S7-300) ou 1 ms (S7-400)..
dado: 04.10.2007
File: PRO2_07P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista geral das Funes do Sistema (SFC) (Parte 1)
1) no para a CPU 312IFM 2) somente para as novas CPUs
Funo
Funes de Bloco
e Cpia
Controle de
Programa
Manipulando o
Relgio
Contador de Horas
de Operao
Mover bloco
Ajustar campo
Gerar DB
Apagar DB
Testar DB
Comprimir memria
Substituir valor no Accu 1
Grupo de Funes
Interrupo multiproces.
Tempo do ciclo de gatilho
Estado Stop
Atraso (Espera)
Ajusta tempo no relgio
L tempo do relgio
Sincroniza o relgio
Ajusta o contador
Parte e para
Leitura
Ler tempo do sistema
Bloco
SFC 20
SFC 21
SFC 22
SFC 23
SFC 24
SFC 25
SFC 44
SFC 35
SFC 43
SFC 46
SFC 47
SFC 0
SFC 1
SFC 48
SFC 2
SFC 3
SFC 4
SFC 64
S7-300
X
X
X
-
-
-
X
1)
-
X
X
X
1)
X
X
-
X
1)
X
1)
X
1)
X
S7-400
X
X
X
X
X
X
X
X
2)
X
X
X
X
X
X
X
X
X
X
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 6
Transferncia de Existe uma rea de dados do sistema com dados de parmetros e diagnsticos para
Dados Arquivados os parmetros atribudos aos mdulos. Esta rea contem arquivos de dados de 0 a
255 que podem ser lidos ou escritos.
SFC 55 transfere os parmetros dinmicos para o mdulo endereado.
Os parmetros no SDB no so sobreescritos na CPU.
SFC 56 transfere os parmetros (dado arquivado RECNUM) para o mdulo.
SFC 57 transfere todos os dados arquivados no SDB para o mdulo.
SFC 58 transfere o arquivo de dados arquivados para o mdulo.
SFC 59 l o arquivo de dados arquivados do mdulo.
Interrupes de Tempo Os blocos so utilizados para processamento controlado do horrio do dia (OB 10 a
17). Voc pode determinar cada ponto de partida com o software STEP 7 ou com as
seguintes funes do sistema.
SFC 28 ajusta os dados horrio do dia de partida de um OB de horrio do dia.
SFC 29 apaga os dados de partida e horrio do dia de um OB (OB 10 a OB 17).
SFC 30 ativa o horrio especificado do OB de interrupo.
SFC 31 verifica o estado de um OB de interrupo de tempo.
Interrupo de Atraso SFC 32 parte em um modo atraso uma interrupo de atraso (OB 20 to 27).
SFC 33 cancela uma interrupo de atraso.
SFC 34 verifica o estado de uma interrupo de atraso.
Erros Sncronos SFC 36 mascara um erro sncrono, ou seja uma instruo de falha no conduz
a chamada de um OB de erro sncrono.
SFC 37 demascara o erro sncrono
SFC 38 l o registrador de erros.
Interrupo e Erros SFC 39 desabilita o processamento da interrupo e eventos de erros
Assncronos assncronos.
SFC 40 habilita novamente o processamento da interrupo e erros assncronos.
SFC 41 atrasa o processamento da interrupo e erros assncronos.
SFC 42 habilita novamente o processamento da interrupo com atraso e erros
assncronos.
dado: 04.10.2007
File: PRO2_07P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista geral das Funes do Sistema (SFC) (Parte 2)
1) no para CPU 312IFM
Funes
Transferncia de
arquivos de dados
Interrupo por
tempo
Atraso na
interrupo
Erros de interrupo
e erros assncronos
Escrita de parm. dinmicos
Escrita de parm. definidos
Determinao parm. mdulos
Escrita de arquivos de dados
Leitura de arquivos de dados
Grupo de Funes
Ajuste
Cancelamento
Ativao
Varredura
Partida
Cancelamento
Varredura
Cancela nova interrupo
Habilita nova interrupo
Atrasa nova interrupo
Habilita interrup. alta prioridade
Bloco
SFC 55
SFC 56
SFC 57
SFC 58
SFC 59
SFC 28
SFC 29
SFC 30
SFC 31
SFC 32
SFC 33
SFC 34
SFC 39
SFC 40
SFC 41
SFC 42
S7-300
X
X
X
X
X
X
1)
X
1)
X
1)
X
1)
X
1)
X
1)
X
1)
X
X
X
X
S7-400
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Erros Sncronos
Mascaramento de erros
Desmascaramento de erros
Leitura registrador de estado
SFC 36
SFC 37
SFC 38
X
X
X
X
X
X
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 7
Sistema de SFC 6 l as informaes de partida do ltimo OB chamado e o OB de
Diagnsticos partida.
SFC 51 l uma parte da lista de estados do sistema. A lista contem:
dados do sistema, dados de estado de diagnstico, dados de
diagnsticos e o buffer de diagnsticos.
SFC 52 escreve uma entrada de usurio no buffer de diagnsticos
Imagem de Processo SFC 26 atualiza total ou parcialmente a tabela de imagem de processo
e rea de I/O de entrada.
SFC 27 transfere total ou parcialmente a imagem de processo para os
mdulos de sada.
SFC 79/ 80 so usados para setar e resetar campos binrios na rea de
I/O em conjunto com a funo Rele de Controle Mestre.
Endereamento dos SFC 5 fornece o endereo lgico para um endereo geogrfico.
Mdulos SFC 49 determina o endereo geogrfico de um endereo lgico.
SFC 50 fornece todos os endereos lgicos para um mdulo.
I/O Distribudo SFC 7 gatilha uma interrupo de hardware para o DP mestre. O SFC 7
chamado no programa do usurio de um escravo inteligente
(CPU 315-2DP).
SFC 11 sincroniza um ou diversos grupos de DP escravos.
SFC 13 l os dados de diagnsticos de um DP escravo.
SFC 14 l a consistncia dos dados de um DP escravo.
SFC 15 escreve a consistncia dos dados de um DP escravo.
Comunicao com Os dados globais so transferridos ciclicamente (como a cada oitavo ciclo)
Dados Globais utilizando o SFC.Com a ajuda dos SFC 60 e 61, envio e recepo de pacotes
de dados globais podem ser gatilhados no programa do usurio.
SFC 60 envia um pacote de dados globais.
SFC 61 recebe um pacote de dados globais.
dado: 04.10.2007
File: PRO2_07P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista geral das Funes do Sistema (SFC) (Parte 3)
1) Somente para CPUs com canal DP, por exemplo CPU 315-2 DP
Funes
I/O Distribudo
Imagem de Processo
e rea de I/O
Diagnsticos do
Sistema
Gatilhar interrupo hardware
Sincronizar DP escravos
Ler diagnstico de interrupo
Ler dados do usurio
Escrever dados do usurio
Grupos de Funes
Atualizar entradas - PII
Atualizar sadas - PIQ
Setar um campo bit nas I/Os
Resetar um campo bit nas I/Os
Ler informaes de partida.
Ler lista parcial estados sistema
Escrever buffer de diagnsticos
Bloco
SFC 7
SFC 11
SFC 13
SFC 14
SFC 15
SFC 26
SFC 27
SFC 79
SFC 80
SFC 6
SFC 51
SFC 52
S7-300
1)
1)
1)
1)
1)
-
-
-
-
-
X
X
S7-400
1)
1)
1)
1)
X
X
X
X
X
X
X
Endereamento dos
mdulos
Determinar endereo lgico
Determinar um slot
Determinar todos end. lgicos
SFC 5
SFC 49
SFC 50
-
X
X
X
X
X
Comunicao com
Dados Globais
Enviar pacote de dados globais
Receber pacote dados globais
SFC 60
SFC 61
-
-
X
X
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 8
Troca de dados Os SFBs so utilizados para trocar dados e gerenciar programas utilizando
utilizando SFBs conexes configuradas. Dependendo de quais chamadas de SFB so
necessrias para somente um parceiro de comunicao ou para ambos,
referncia feita para comunicao de mo nica ou de mo dupla. Estes
SFBs existem somente no sistema operacional do S7-400.
SFC 62 determina o estado de um SFB instance local e o estado da
conexo associada.
SFB 8 envia dados para um parceiro remote sem coordenao.
SFB 9 o contador do SFB 8.
SFB 12 envia dados (at 64 KByte) para o parceiro remote com um
reconhecimento.
SFB 13 recebe dados para o parceiro remote com um reconhecimento.
SFB 14 l dados de uma CPU remota (comunicao de mo nica).
SFB 15 escreve dados para uma CPU remota (comunicao mo nica)
SFB 16 envia dados com formatao para uma impressora remota.
SFB 19 gatilha um restart completo para um parceiro remoto.
SFB 20 transfere o parceiro remote para o estado STOP.
SFB 21 executa um restart para um parceiro remoto.
SFB 22 fornece o estado do equipamento (estado de operao,
informaes de erros) do parceiro remoto.
SFB 23 recebe o estado do equipamento de um parceiro remoto.
Troca de dados Esta comunicao tambm conhecida como comunicao bsica -
utilizando SFCs implementada com S7- 300 bem como com S7-400. Em comparao com
SFB de comunicao as seguintes diferenas aparecem:
no necessria configurao de conexo.
nenhum bloco de dados instance necessrio.
comprimento mximo de dados de usurio de 76 bytes
configurao de conexo dinmica.
comunicao via MPI ou K bus.
dado: 04.10.2007
File: PRO2_07P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista geral das Funes do Sistema (SFC) (Parte 4)
1) somente for innovated CPUs
Funes
Troca de dados
utilizando SFC,
conexo no
configurada
Troca de dados
utilizando SFB,
conexo
configurada
Grupo de Funes
Envia dados externamente
Recebe dados externamente
L dados externamente
Escreve dados externamente
Cancela conexo externamente
L dados internamente
Escreve dados internamente
Cancela conexo internamente
Bloco
SFC 65
SFC 66
SFC 67
SFC 68
SFC 69
SFC 72
SFC 73
SFC 74
SFC 62
SFB 8
SFB 9
SFB 12
SFB 13
SFB 14
SFB 15
SFB 16
SFB 19
SFB 20
SFB 21
SFB 22
SFB 23
S7-300
1)
1)
1)
1)
1)
1)
1)
1)
-
-
-
-
-
-
-
-
-
-
-
-
S7-400
1)
1)
1)
1)
1)
1)
1)
1)
X
X
X
X
X
X
X
X
X
X
X
X
X
Verifica estado
Envio no coordenado
Recepo no coordenada
Bloco de Envio
Bloco de Recepo
L dados de CPU remota
Escreve dados de CPU remota
Envia para impressora
Executa Restart completo
Estado Stop
Executa Restart
Verifica estado de equipamento
Recebe estado de equipamento
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 9
Controle Integrado Estes blocos encontram-se integrados nas verses mais recentes de CPUs.
em Malha Fechada
Tecnologia Plstica Para a CPU 614 (S7-300), blocos individuais podem ser criados em
linguagem C. A funo de sistema SFC 63 utilizada para chamar blocos.
Funes Integradas Estes blocos existem somente para as CPUs 312 IFM (S7-300).
Voc ir encontrar uma descrio no manual Integrated Functions.
SFB 29 conta pulsos nas entradas integradas da CPU.
SFB 30 usada para medir freqncias utilizando as entradas integradas.
Temporizador e Esta torna disponvel temporizadores e contadores que correspondem ao
Contador IEC padro IEC 1131-3. Os temporizadores e contadores remanescentes so
implementadas como para SIMATIC S5, por questes de compatibilidade.
Os temporizadores e contadores IEC diferem em uma larga faixa de valores
para os valores temporizadores e contadores.
Mensagens Estes blocos so usados para implementas sistemas de mensagem para
Referenciadas a sistemas IHM, como para sistemas de controle de processos.
Blocos As mensagens so geradas na CPU S7, com este procedimento e as
respectivas mensagens inclundo variveis de processo so enviadas para o
equipamento que as mostra identificadamente.
Um conceito de reconhecimento central usado. Isto , quando voc
reconhece uma mensagem no equipamento que a mostra, uma resposta
enviada para a CPU que originou. A informao distribuda para todos os
usurios identificados da CPU.
As mensagens so gatilhadas por uma transio do sinal de entrada.
dado: 04.10.2007
File: PRO2_07P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Vista geral das Funes do Sistema (SFC) (Parte 5)
1) somente para CPU 614 2) somente para CPU 312 IFM 3) somente para CPU 314IFM
Funes
Temporizador IEC e
Contador IEC
Funes Integradas
Controle Integrado em
Malha Fechada
Pulso
Atraso na ligao
Atraso no desligamento
Contador crescente
Contador decrescente
Contador crescente / decrescente
Grupo de Funes
Contador de alta velocidade
Medidor de Freqncia
Contador A/B
Posicionamento
Controle Contnuo
Controle passo
Configurao de Pulso
Bloco
SFB 3
SFB 4
SFB 5
SFB 0
SFB 1
SFB 2
SFB 29
SFB 30
SFB 38
SFB 39
SFB 41
SFB 42
SFB 43
S7-300
X
X
X
X
X
X
2)
2)
3)
3)
3)
3)
3)
S7-400
X
X
X
X
X
X
-
-
-
-
-
-
-
Mensagens
Referenciadas a Bloco
Mensagem sem reconhecimento
Mensagem com reconhecimento
Mensagem com 8 valores acompanhados
Mensagem sem valores acompanhados
Envia arquivo de dados
Desabilita arquivo de dados
Habilita mensagens
SFB 36
SFB 33
SFB 35
SFB 34
SFB 37
SFC 10
SFC 9
-
-
-
-
-
-
-
X
X
X
X
X
X
X
Tecnologia Plstica Chama bloco assembler SFC 63 1) -
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 10
Blocos de Funes Um bloco de funes do sistema SFB um bloco de funes que esto
do Sistema integrados no sistema operacional de uma CPU S7. Como um resultado,
SFBs no so transferidos para dentro de uma CPU como parte do programa
do usurio.
Do mesmo modo que os FBs, os SFBs so blocos com memria. Eles
devem ser atribudos como instance no programa do usurio.
Systemfunktionen
Funes do Sistema Uma funo do sistema uma funo que est integrada no sistema
operacional da CPU S7. SFCs podem ser chamados do programa do usurio
como FCs.
Do mesmo modo que os FCs, os SFCs so blocos sem uma memria.
Chamada Quando uma funo do sistema chamada, a funo do sistema
automaticamente copiada dentro do programa do usurio vigente.
Adicionalmente, todas as funes do sistema so arquivadas na biblioteca
padro Standard Library V3.x, S7-program - SFB. Voc pode tambm copiar
os SFCs e SFBs dentro do programa do usurio desta biblioteca.
Uma tabela completa de smbolos (com designaes em Ingls) existe na
biblioteca. Os smbolos dos blocos utilizados so automaticamente copiados
dentro da tabela de smbolos do programa do usurio.
dado: 04.10.2007
File: PRO2_07P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Chamada das Funes do Sistema (SFC) e Blocos de Funes do
Sistema (SFB)
Chamada em STL Chamada em LAD
CALL SFC 20
SRCBLK :=
RET_VAL:=
DSTBLK :=
SFC20
EN ENO
SRCBLK ??.?
RET_VAL ??.?
DSTBLK ??.?
Funes do Sistema:
Blocos de Funes do Sistema :
CALL SFB 3,DB5
IN:=
PT:=
Q :=
ET:=
SFB3
EN ENO
IN ...
Q ...
ET ...
DB5
PT ...
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 11
Informao de Erro Uma SFC processada mostra a voc, no programa do usurio, se a CPU
pode executar com sucesso a funo SFC ou no. Voc recebe a informao
do erro correspondente de duas formas:
no bit BR da palavra de estado e;
no parmetro de sada RET_VAL (retorno de valor);
Nota Voc deve sempre proceder da seguinte maneira antes de avaliar o
parmetro de sada especfica da SFC :
antes de tudo avaliar o bit BR da palavra de estado (status word);
subseqentemente verificar o parmetro de sada RET_VAL;
Se uma falha no processamento da SFC sinalizada atravs do bit BR ou um
cdigo de erro geral encontrado no RET_VAL, voc no deve avaliar o
parmetro de sada especfico da SFC.
Erros Gerais O cdigo de erro geral indica erros que podem ocorrem com qualquer funo
do sistema. Um cdigo de erro geral consiste do dois seguintes nmeros:
um nmero de parmetro entre 1 e 127, dos quais o 1 indica o primeiro
parmetro, 2 o segundo parmetro etc., da SFC chamada.
um nmero de evento entre 0 e 127. O nmero do evento indica um
erro sncrono.
Uma descrio completa dos cdigos de erros gerais pode ser encontrada no
manual: System Functions and Standard Functions" ou na ajuda Online.
Erros Especficos Diversas funes do sistema (SFCs) disponibilizam um valor de retorno que
fornece um cdigo de erro especfico. Este cdigo de erro indica que um erro
que pertence a uma funo de sistema especfica ocorreu durante o
processamento da funo.
Uma descrio dos cdigos de erros especficos pode ser encontrada na
ajuda Online para as funes do sistema.
dado: 04.10.2007
File: PRO2_07P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Avaliao de uma Mensagem de Erro
A verificao do bit BR (resultado binrio) returna RLO=0 quando ocorrer
falha no processamento e RLO=1 quando no ocorrerem falhas.
Verificao do BR em STL com A BR
Verificao em LAD utilizando parmetro de sada ENO
Muitas Funes de Sistema (SFCs) returna um cdigo de erro com a
seguinte configurao no parmetro de sada RET_VAL (INT):
RET_VAL=W#16#8 X Y Z
Exemplo:
W#16#8081 um cdigo de erro especfico do SFC.
W#16#823A um cdigo de erro geral; o erro foi causado pelo parmetro No. 2.
sinal "8": erro ocorrido
X>0: erro geral, X= No. do parmetro de falha
X=0: erro especfico ocorrido com o SFC
Classe de erro, nmero individual de erro (especfico SFC)
ou nmero do evento (geral)
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 12
Objetivo do exerccio Voc gerar um bloco de dados com o atributo "UNLINKED".
Tarefa Devido ao fato da memria de trabalho possuir somente um tamanho limitado
(usualmente muito pequena), diversos blocos de dado blocks com vrios
valores de receitas so armazenados somente na memria de carga para
gerenciamento de receita.
Somente um DB de trabalho, no qual a receita vigente est armazenada, est
presente na memria de trabalho. Para uma mudana de receita, os valores
requeridos so copiados da memria de carga para a memria de trabalho.
Com a ajuda do atributo "UNLINKED" voc se assegura que o bloco de dados
esto somente salvos na memria de carga durante a transferncia da PG
para a CPU e que eles no so automaticamente copiados para dentro da
memria de trabalho.
O que fazer 1. Inserir um DB20.
2. Declarar uma varivel "receita" do tipo ARRAY[1..20] como um tipo de
componente "INT no DB20.
3. Com a ajuda do menu de comando View -> Date View, altere a
visualizao para view e inicialize os campos individuais com valores em
seqncia ascendente.
4. Selecione as propriedades do bloco e parametrize o atributo "UNLINKED".
5. Transfira o bloco de dados DB 20 para a CPU.
6. O que acontece quando voc, por exemplo, acessa o DB 20 no programa
do usurio com a instruo L DB20.DBW0?
dado: 04.10.2007
File: PRO2_07P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 7.1: Gerao de um DB com um atributo "UNLINKED"
Memria de Carga
DB 20
transfere
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 13
Objetivo do Exerccio Com a ajuda da SFC 24 voc pode determinar se um bloco de dados
especfico existe na memria de trabalho ou no.
Tarefa Com a ajuda da SFC 24 criar uma FC 72 que determine se existe um DB na
memria de trabalho, na memria de carga ou se ele no existe na CPU:
A FC 72 espera o nmero do bloco a ser testado no parmetro de
entrada #DB_NUM (WORD).
A FC 72 retorna a informao desejada e retorna valor #RET_VAL
(INT) para o bloco chamado:
- 1: DB existe na memria de carga
- 0: DB existe na memria de trabalho
- -1: DB no existe
Nota O parmetro de sada #RET_VAL do SFC 24 retorna os seguintes
identificadores de erros especficos do sistema :
w#16# 0000 nenhum erro ocorrido
w#16# 80A1 nmero incorreto no parmetro DB_NUMBER (0 ou >
nmero mx. DB)
w#16# 80B1 o DB no existe na CPU
w#16# 80B2 o DB foi gerado com a palavra-chave UNLINKED (
encontrada somente na memria de carga)
O que fazer 1. Criar um bloco FC 72
2. Criar um OB1, que com a ajuda do FC 72 verifique se o DB 20 existe ou
no. Mostrar a informao retornada no display do Simulador.
3. Transfira os blocos para a CPU e teste seu programa.
Nota A funo de sistema SFC 24 somente existe para o S7-400!
dado: 04.10.2007
File: PRO2_07P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 7.2: Testando um Bloco de Dados (SFC 24: somente para
S7-400)
SFC24
EN ENO
DB_NUMBER RET_VAL ??.?
DB_LENGTH ??.?
WRITE_PROT ??.?
??.?
Parmetro Declarao Tipo dado rea de Memria Descrio
DB_nmero INPUT WORD I, Q, M, D, L, Const. Nmero do DB a ser verificado
RET_VAL OUTPUT INT I, Q, M, D, L Informao de erro
DB_LENGTH OUTPUT WORD I, Q, M, D, L Nmero de bytes de dados, que
tem no DB selecionado
WRITE_PROT OUTPUT BOOL I, Q, M, D, L Informao sobre proteo de escrita
ID do DB selecionado
(1 significa protegido contra escrita)
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 14
Objetivo do exerccio Voc se familiarizar com a criao de um novo DB no programa.
Tarefa No OB100 de start-up, um DB 10 ser gerado na memria de trabalho.
Depois a valores da receita sero copiados para a memria de carga dentro
deste DB.
O que fazer 1. Criar o OB 100.
2. Criar o DB 10 com um comprimento de 20 palavras de dados no OB100.
Use o SFC 22 para isto (ver acima). Armazene o parmetro
#RET_VAL na MW 0 e o parmetro #DB_NUMBER no display do
Simulator.
3. Transfira o OB 100 para a CPU e teste seu programa.
Nota Na cpia entre a memria de carga e a memria de trabalho, voc deve notar
que acessa a memria de carga "lenta" requer consideravelmente mais tempo
do que o acesso para a memria de trabalho "rpida".
Se grandes quantidades so copiadas com OB1, o ciclo de tempo, entre
outras coisas, deve ser regatilhado.
Identificadores A funo de sistema SFC 22 fornece as seguintes mensagens de erro
de erros utilizando o parmetro #RET_VAL:
W#16# 0000 nenhum erro
W#16# 8091 limite de tamanho de aninhamento ultrapassado
W#16# 8092 compresso de memria est ativa
W#16# 80A1 nmero incorreto de DB
W#16# 80A2 tamanho incorreto
W#16# 80B1 nenhum nmero de DB disponvel (DB j existe)
W#16# 80B2 memria no suficiente
W#16# 80B3 memria contnua no suficiente (compresso requerida)
dado: 04.10.2007
File: PRO2_07P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 7.3: Gerao de um DB (SFC 22)
SFC22
EN ENO
LOW_LIMIT RET_VAL ??.?
DB_NUMBER ??.?
??.?
Parmetro Declarao Tipo dado rea de memria Descrio
LOW_LIMIT INPUT WORD I, Q, M, D, L, Const. Menor nmero DB
UP_LIMIT INPUT WORD I, Q, M, D, L, Const. Maior nmero DB
COUNT INPUT WORD I, Q, M, D, L, Const. No. de bytes dados; um nmero par
deve ser especificado aqui
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC
DB_NUMBER OUTPUT WORD I, Q, M, D, L Nmero do DB criado, situa-se
entre LOW_LIMIT e UP_LIMIT
UP_LIMIT ??.?
COUNT ??.?
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 15
Objetivo do exerccio Voc tornar-se familiar com a funo do sistema SFC 20 (BLKMOV).
Tarefa Os valores da receita (DW0-DW19) esto sendo copiados do bloco de dados
DB 20 para o DB10 (DW0-DW19) na memria de trabalho. A cpia ocorre
uma vez aps e um impulso na entrada I 0.0 .
O que fazer 1. Criar um OB1, que copie os valores da receita do DB 20 para DB 10 com
a ajuda do SFC20 (BLKMOV) com um impulso na entrada I 0.0.
2. Transfere o valor retornado #RET_VAL para o display digital do simulator.
3. Transfira seu programa de usurio para a CPU e teste o programa.
dado: 04.10.2007
File: PRO2_07P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 7.4: Copiando um DB da Memria de Carga para a
Memria de Trabalho (SFC 20)
SFC20
EN ENO
SRC_BLK RET_VAL ??.?
DST_BLK ??.?
??.?
Parmetro Declarao Tipo dado rea memria Descrio
SRC_BLK INPUT ANY I, Q, M, D, L rea de memria a ser copiada
(= campo fonte). O campo fonte tambm
pode estar presente em um DB
pertinente no seqencial na memria
de carga (DB, que foi compilado com a
palavra-chave UNLINKED)
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC
DST_BLK OUTPUT ANY I, Q, M, D, L rea de memria na qual a cpia
ocorreu (campo de destino)
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 16
Objetivo do exerccio: Tornar-se familiar com o uso de funes do sistema.
Tarefa Criar um FC 75 com o qual o bloco de dados pode ser inicializado. O FC 75
tem a seguinte funcionalidade:
O FC 75 espera os seguintes parmetros de entrada :
- #DB_NUM (WORD): nmero do DB a ser inicializado
- #INI (BYTE): Byte amostra com os quais todas as clulas de memria
do DB sero preenchidas.
O FC 75 antes de tudo determina se o DB desejado existe na memria
de trabalho. Se ele existe, ento seu comprimento tambm
determinado.
Subseqentemente o FC 75 inicializa o bloco com o byte passado.
O FC 75 sinaliza no seu #RET_VAL (BOOL):
- TRUE: DB foi inicializado com sucesso.
- FALSE: DB no foi inicializado, isto , DB no existe na memria de
trabalho.
O que fazer 1. Criar o FC 75.
2. Integrar o FC 75 no OB1 no qual o DB 10 inicializado com 0
com um impulso na entrada I 1.1.
3. Transfira seu programa para a CPU e teste seu programa.
dado: 04.10.2007
File: PRO2_07P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio adicional 7.5: Inicializando um DB (SFC 21)
SFC21
EN ENO
BVAL RET_VAL ??.?
BLK ??.?
??.?
Parmetro Declarao Tipo dado rea memria Descrio
BVAL INPUT ANY I, Q, M, D, L Preseta o valor
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC
BLK OUTPUT ANY I, Q, M, D, L rea de destino, que inicializada
com o contedo do BVAL
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 17
Objetivo do exerccio Para estar apto a registrar mensagem de programa no buffer de diagnsticos.
Tarefa Criar uma FC 76 com as seguintes funcionalidades:
Em um erro de sistema (simulado atravs de um impulso na I1.2), uma
mensagem inserida no buffer de diagnsticos. As mensagens de
diagnsticos so adicionalmente postas na PG.
O que fazer 1. Criar uma FC 76 que insira uma mensagem no buffer de diagnstico
quando existe um "distrbio no sistema" (impulso em I1.2).
2. Ativar a funo CPU Messages no SIMATIC Manager.
3. Chamar a FC 76 no OB1 e testar seu programa.
Nota Usar os seguintes parmetros para a SFC 52:
EVENTN W#16# 9B0A (estado contraditrio, evento de chegada,
erro externo, registro de buffer de
diagnstico)
INFO1 W#16# 8 (p.ex. nmero da chave de posio)
INFO2 DW#16# 1 (p.ex. tipo da chave de posio)
O evento ID nmero 9 est disponvel para o usurio (ver System Functions
and Standard Functions Manual).
Cdigo de erro As seguintes mensagens de erro so sinalizadas atravs do #RET_VAL da
SFC 52 :
8083 Tipo de dado INFO1 no permitido
8084 Tipo de dado INFO2 no permitido
8085 EVENTN no permitido
8086 Comprimento do INFO1 no permitido
8087 Comprimento do INFO2 no permitido
8091 Nenhum n logado
8092 Envio corrente no possvel (buffer de envio cheio)
dado: 04.10.2007
File: PRO2_07P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio adicional 7.6: Escrevendo uma mensagem no Buffer de
Diagnstico (SFC 52)
SFC52
EN ENO
SEND RET_VAL ??.?
Parmetro Declarao Tipo dado rea memria Descrio
SEND INPUT BOOL I, Q, M, D, L, Const. Envio de mensagem para todos
os ns logados
EVENTN INPUT WORD I, Q, M, D, L, Const. Nmero ou tipo de evento
(ID Evento)
INFO1 INPUT ANY I, Q, M, D, L Informao adicional compr. 1 palavra
INFO2 INPUT ANY I, Q, M, D, L Informao adicional compr. 2 palavras
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor
EVENTN ??.?
INFO1 ??.?
INFO2 ??.?
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 18
Tarefa Criar um bloco contador de 16 bits (contador crescente) FB71 "CU" com as
seguintes propriedades:
O contador incrementado de 1 com uma transio positiva, quando o
nvel de sinal na entrada CU est em 1 pela durao de tempo PT.
Por outro lado, o bloco contador tem as mesmas caractersticas que o
contador conforme IEC SFB 0 "CTU".
A sada Q indica se o valor de contagem corrente maior do que ou
igual ao valor presetado PV.
Parmetros Parmetro Declarao Tipo dado Descrio
CU INPUT BOOL Entrada de contagem (Count up)
R INPUT BOOL Entrada Reset dominante.
PV INPUT INT Preset Value (valor presetado).
PT INPUT TIME Periodo de tempo, o nvel de sinal
tem estar no estado 1 depois de
uma transio positiva, s ento o
contador incrementado de 1.
Q OUTPUT BOOL Status do contador: Q tem o valor:
1, se CU >PV
0, se contrrio
CV OUTPUT INT Valor Corrente
O que fazer 1. Criar uma FB71 com as propriedades desejadas. Usar o bloco de funo
do sistema SFB0 e SFB4 para implementao.
2. Chamar o bloco de contagem FB71 com o instance DB71 no OB1.
Atribua os parmetros de bloco com os seguintes parmetros atuais:
- CU = I 0.0 - R = I 0.1
- PV = I W4 - PT = T#1000MS
- Q = Q8.0 - CV = QW12 (display digital no simulator)
3. Transfira os blocos para a CPU e teste o programa.
dado: 04.10.2007
File: PRO2_07P.18
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio adicional 7.7: Bloco Contador com funo "Debouncing
de Contato"
FB71
DB71
EN ENO
CU
R
I0.0
I0.1
PV
Q Q8.0
CV QW12
10
PT T#2S
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 19
Introduo Esta biblioteca contem blocos padres S7 necessrios para a converso dos
programas S5. Esto significa, se um bloco padro FB 240, por exemplo,
esteve presente no programa S5, o bloco FC 81 na biblioteca substitui o bloco
padro FB 240.
Pelo fato do conversor somente transmitir o bloco FC 81 chamado, voc deve
copiar o bloco chamado da biblioteca para o seu programa S7.
Contedo da Os blocos da biblioteca so divididos nas seguintes funes:
biblioteca
Aritmtica de ponto flutuante, como adio e subtrao
Funes de sinal, como sinal de dupla freqncia de pisca rpido
Funes integradas, como os conversores de cdigo BCD --> Dual
Funes lgicas bsicas, como LIFO
Manual Os blocos so descritos em amplos detalhes no manual Converting from
STEP 5 Programs.
Ajuda Online No Editor de Programas, voc chama Help --> Help topics --> References -->
additional reference aids --> Help with S5/S7 functions.
Nota Os flags (memria) chamados de rascunho so tambm usados para estes
blocos, como foi tpico para o SIMATIC S5.
dado: 04.10.2007
File: PRO2_07P.19
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Biblioteca: Converso de Blocos S5-S7
JU FB 240
COD:B4
BCD: MW 114
SBCD: M 0.0
DUAL: MW 116
Programa S5
CALL FC81
BCD: MW114
SBCD: M0.0
DUAL: MW 116
Programa S7
Conversor S5/S7
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 20
FC 80 A funo FC80 parte o temporizador como atraso na ligao com memria
(TONR). A FC80 acumula o valor de tempo at que o valor de tempo corrente
do tempo executado (#ET) seja o mesmo que o valor presetado (#PV) ou
ultrapasse-o.
FC 81 Funo indireta de transferncia de faixas de dados, (IBLKMOV), voc pode
transferir uma faixa de dados consistindo de bytes, palavras, inteiros (16 bits),
palavras duplas, ou duplo inteiros (32 bit) de uma fonte para um destino.
Os ponteiros #S_DATA e o #D_DATA, tem por tarefa, estruturar o tipo de
dado "POINTER" que determina o incio da rea fonte e a rea destino. O
comprimento da rea a ser copiado est determinado atravs de parmetros
separados.
FC 82/83 Ajusta o estado dos bits em uma rea especificada para 1 (FC 83) ou para
"0 (FC 82), se o bit MCR 1. Se o bit MCR 0, o estado do sinal dos bits
na rea no alterado.
FC 84-FC92 Estes tratam com funes de tabela para implementar funes FIFO, por
exemplo. Os valores so para serem inseridos no formato de palavras e o
comprimento ajustvel.
FC 93-FC 99 Este grupo torna disponveis diversas funes de converso.
dado: 04.10.2007
File: PRO2_07P.20
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Bloco Smbolo Descrio
FC 80 TONR Temporizador com atraso na ligao retentivo
FC 81 IBLKMOV Transfere indiretamente reas de dados
FC 82 RSET Reseta uma rea de memria bit ou rea de I/O
FC 83 SET Seta uma rea de memria bit ou rea de I/O
FC 84 ATT Insere um valor na tabela
FC 85 FIFO Retira o primeiro valor da tabela
FC 86 TBL_FIND Procura por um valor na tabela
FC 87 LIFO Retira o ltimo valor da tabela
FC 88 TBL Executa a operao tabela
FC 89 TBL_WRD Copia valor da tabela
FC 90 WSR Salva o dado no registrador de deslocamento
FC 91 WRD_TBL Combina logicamente valor com elemento tabela e o salva
FC 92 SHRB Desloca o bit para o registrador de deslocamento
FC 93 SEG Gera um modelo de bit para o display digital
FC 94 ATH Converte caracteres ASCII em um nmero hexadecimal
FC 95 HTA Converte um nmero hexadecimal em caracteres ASCII
FC 96 ENCO Seta um bir especificado na palavra
FC 97 DECO L o nmero do bit do bit mais significativo
FC 98 BCDCPL Gera o complemento de dez
FC 99 BITSUM Conta o nmero de bits setados
A Biblioteca: Converso de Blocos TI-S7 (Parte 1)
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 21
FC 100-FC 101 A funo (RSETI) reseta o estado do sinal de bits em uma faixa especificada
de bytes para 0 ou para "1" pelo FC 101, se o bit MCR for 1. Se o bit MCR
for 0, o estado do sinal dos bytes na faixa no for alterada.
FC 102 A funo desvio padro (DEV) calcula o desvio padro de um grupo de
valores armazenados na tabela (TBL). O resultado armazenado em OUT. O
desvio padro calculado de acordo com a seguinte frmula :
Desvio padro = (N x SqSum ) - Sum
2
N x (N - 1)
Com:
#Sum = Soma dos valores na TBL N = nmero de valores na TBL
#SqSum = Soma de todos os valores na TBL ao quadrado
FC 103 A funo tabela de dados correlatos (CDT) compara um valor de entrada
(#IN) com uma tabela j existente de valores de entrada (#IN_TBL) e procure
pelo primeiro valor que seja maior ou igula ou igual ao valor de entrada com
a ajuda do ndice do valor locado, o valor ento copiado para o respectivo
valor de sada (#OUT) na tabela de valores de sada (#OUT_TBL).
FC 104-FC 105 usado para escalonar valores analgicos de uma entrada analgica ou para
uma sada analgica.
FB 80- FB 86 Referem-se ao manual eletrnico.
dado: 04.10.2007
File: PRO2_07P.21
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Biblioteca: Converso de Blocos TI-S7 (Parte 2)
Bloco Smbolo Descrio
FC 100 RSETI Reseta uma rea de sada imediatamente
FC 101 SETI Seta uma rea de sada imediatamente
FC 102 DEV Desvio padro
FC 103 CDT Tabela de dados correlacionados
FC 104 TBL_TBL Tabela de operaes lgicas
FC 105 SCALE Escalonamento de valor
FC 106 UNSCALE Desescalonamento de valor
FB 80 LEAD_LAG Algortmo Lead/Lag
FB 81 DCAT Interrupo de controle discreto
FB 82 MCAT Interrupo de controle Motor
FB 83 IMC Comarao de matriz ndice
FB 84 SMC Varredura de matriz
FB 85 DRUM DRUM (processador de seqncia)
FB 86 PACK Tabela de dados coletados/distribuidos
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 22
Vista Geral As funes da biblioteca FC1, FC2, FC3 e FC4 so usadas exclusivamente
na seguinte configurao:
CPU S7-300 com CP 342-5 PROFIBUS externa
Em todos os outros casos, isto , com S7-300 com interface PROFIBUS-DP
integrada e com o sistema S7-400 total, a respectiva funcionalidade
implementada utilizando a carga padro e transfere commandos (L ... , T...)
ou utilizando SFC14 (DPRD_DAT), SFC15 (DPWR_DAT), SFC11
(DPSYC_FR) e SFC13 (DPNRM_DG).
FC1 O bloco DP_SEND passa o dado de uma especificada rea de sada DP para
o PROFIBUS-CP pela passagem ao I/O distribudo.
FC2 O bloco DP_RECV adota o dado de processo do I/O distribudo bem como
uma informao de estado em uma especificada faixa DP de entrada.
FC3 O bloco FC DP_DIAG usado para requisio de informao de diagnstico.
Diferenciao feita entre os seguintes tipos de tarefas:
requisio de lista de estaes DP;
requisio de lista DP_DIAGNOSTIC;
requisio de diagnsticos DP simples;
leitura de dados de entrada / sada de um escravo DP acclico;
leitura do modo de operao DP.
FC4 O bloco FC DP_CTR passa tarefas de controle para o PROFIBUS-CP.
Diferenciao feita entre os seguintes tipos de tarefas:
Controle Global acclico / cclico;
Apaga diagnsticos velhos;
Seta corrente modo de operao DP;
Seta modo de operao DP para stop PLC/CP;
Leitura de dados de entrada / sada ciclicamente;
Seta o modo de processamento do escravo DP.
dado: 04.10.2007
File: PRO2_07P.22
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Biblioteca: Blocos de Comunicao
Bloco Smbolo Descrio
FC 1 DP_SEND Envia dado para PROFIBUS-CP
FC 2 DP_RECV Recebe dados do PROFIBUS-CP
FC 3 DP_DIAG Dado de diagnstico de carga de estao
FC 4 DP_CTRL Tarefa de controle de envio para CP
Exclusivamente na configurao:
CPU S7-300 com CP 342-5
CP 342-5
Siemens Ltda.
Training Center
ST-7PRO2
Utilizando Bibliotecas Pgina 23
FB 41 O SFB "CONT_C" (controlador contnuo) usado nos controladores lgicos
programveis SIMATIC S7 para controle de processos tcnicos com variveis
de entrada e sada contnuas. Durante a atribuo dos parmetros, voc
pode ativar ou desativar subfunes do controlador PID para adaptar o
controlador ao processo.
Voc pode utilizar o controlador como um PID como controlador com setpoint
fixo ou controle multi-loop como uma cascata, misturador ou controlador
proporcional. As funes do controlador so baseados no algortmo de
controle PID com um sinal de sada analgica, se necessrio extendido pela
incluso de um estgio gerador de pulso para gerar sinais de sada com
largura modulada para dois ou trs estgios controladores para atuadores
proporcionais.
FB42 O SFB "CONT_S" (controlador de passo) utilizado nos controladores lgicos
programveis SIMATIC S7 para controle de processos tcnicos com valor de
sinal de sada digital manipulada para atuadores integrais. Durante a
atribuo dos parmetros, voc pode ativar ou desativar subfunes do
controlador PI de passos para adaptar o controlador ao processo.
Voc pode utilizar o controlador como um controlador PI de setpoint fixo ou
em malha de controle em cascata, misturador ou controlador proporcional. As
funes do controlador so baseadas no algortmo suplementadas pelas
funes para gerao de sinais de sada binria de sinal de atuao
analgico.
FB43 O SFB43 "PULSEGEN" (gerador de pulsos) usado para estruturar um
controlador PID com sada de pulsos para atuadores proporcionais.
Utilizando o SFB "PULSEGEN", controladores PID com dois ou trs passos
com modulao de largura de pulso pode be configurado. A funo
normalmente usada em conjunto com o controlador contnuo "CONT_C".
dado: 04.10.2007
File: PRO2_07P.23
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Biblioteca: Blocos de Controle PID
Bloco Smbolo Descrio
FB 41 CONT_C Bloco de controle PID contnuo
FB 42 CONT_S Bloco de controle PI em passos
FB 43 PULSEGEN Bloco gerador de pulso
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 1
Contedo Pg.
Manipulando Erros Assncronos ........................................................................................... 2
Manipulando os Blocos de Organizao de Erros ............................................................................. 3
Exemplo de um OB de Erro Assncrono ............................................................................................. 4
Manipulando Erros Sncronos ..................................................................................................... 5
Informaes de partida do OB121 para Erros de Programao ........................................................ 6
Informaes de partida do OB122 para Erros de Acesso .................................................................. 7
Mscara de Erros Sncronos .............................................................................................................. 8
SFC 36 para Mscara de Falhas Sncronas ................................................................. 9
Estrutura de programao de Filtro de Falhas ................................................................................... 10
Estrutura de acesso ao Filtro de Falhas ............................................................................................. 11
SFC 37 para desmascaramento de Falhas Sncronas ............................................................ 12
SFC 38 para leitura do registrador de Erros ............................................................................ 13
Exemplo: Testando Bloco de Dados ................................................................................................... 14
Exerccio 8.1: Manipulao de Erro no FC81 .............................................................................. 15
Date: 04.10.2007
File: PRO2_08P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Lidando com Erros Sncronos e Assncronos
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 2
Introduo O slide acima relaciona os eventos de erros assncronos. Estes erros no so
atribudos para determinadas posies do programa.
Erro de Tempo A monitorao do tempo de ciclo de varredura tem um ajuste padro de
150ms. O sistema reconhece um erro de tempo se a durao do ciclo maior
do que 150 ms. Se o erro ocorre duas vezes no mesmo ciclo, a CPU vai para
o estado de Stop.
Erro na Fonte Ocorre com a falha ou a perda da bateria de backup e adicionalmente para o
de Alimentao S7-400 com o defeito da alimentao de 24 V no bastidor central ou bastidor
de expanso.
Diferentemente de outros tipos de erros, sem um OB de erro existente, a CPU
mantm-se em estado de Run e um led vermelho de erro acende na CPU.
Diagnstico de Diagnstico capacita mdulos, como por exemplo mdulos analgicos, a
Interrupo poderem gatilhar um diagnstico de interrupo no caso de um erro. Aos
mdulos devem ser atribudos parmetros para tanto. Neste caso o
diagnstico de interrupo habilitado.
Interrupo de gatilhado pela insero ou remoo de mdulos no sistema de PLC S7-400.
Remoo/Insero Na insero de mdulos, o sistema operacional verifica se o tipo de mdulo
correto foi inserido. Esta funo permite a remoo e insero de mdulos
durante o ciclo de programa.
Erro de CPU-H/W No S7-400, erros so reconhecidos na interface MPI atravs do K-Bus ou no
mdulo de interface para I/O distribudo.
Erro de seqncia Resulta de erros de acesso periferia (I/O) na atualizao da imagem de
de programa processo ou por exemplo, da perda de OB para interrupo parametrizada
horrio do dia (time-of-day).
Defeito em Bastidor reconhecido quando um bastidor, uma subrede em sistemas de PLC em
rede ou uma estao de periferia (I/O) distribuda falhar.
Erro de Comunicao Um identificador de mensagem incorreto no recebimento de dados globais
est
presente no S7-300 ou o bloco de dados muito curto para armazenamento
do estado (status) da informao. No S7-400 existem diversas causas, por
exemplo, o envio de sincronizao de mensagens no possvel.
Date: 04.10.2007
File: PRO2_08P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Manipulando Erros Assncronos
Erros Assncronos no so atribudos a posio particular do programa,
isto , eles aparecem assncronos para o processamento do programa.
1)
somente com
S7-400
2)
no vai p/Stop
sem OB de erro
Exemplo Tipo de Erro
Erro de Tempo Mx. tempo de varredura excedido
Erro da Fonte de
Alimentao
Falha da bateria de backup
Diagnstico de
Interrupo
Quebra-de-fio na entrada de um mdulo com
capacidade de interrupo
Removendo/Inserindo
mdulo de Interrupo
Removendo um mdulo de sinal no S7-400
durante o modo de operao (RUN)
Erro de Hardware CPU Nvel de sinal de falha na interface MPI
Erro de seqncia no
programa
Erro na atualizao da imagem de processo
(mdulo com defeito)
Defeito no bastidor
ou bastidor
Defeito em fonte de alimentao de bastidor
de expanso
Erro de comunicao Identificador de mensagem incorreta
OB de erro
OB 80
OB 81
2)
OB 82
OB 83
1)
OB 84
1)
OB 85
OB 86
1)
OB 87
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 3
Informao Favor prestar ateno s regras de uso dos OBs de erro.
de partida Para cada bloco de organizao, variveis temporrias so definidas na parte
de declarao. O sistema operacional armazena as informaes de partida
nestas variveis. O sistema operacional armazena informaes adicionais nas
informaes de partida quando o bloco chamado.
Como um exemplo voc pode ver as informaes de partida no OB 81.
A varivel OB81_FLT_ID tem o seguinte significado:
B#16#21: Pelo menos uma bateria de backup do bastidor central est
esgotada (BATTF)
B#16#22: Tenso de backup no bastidor central est perdida (BAF).
B#16#23: Defeito da alimentao 24V no bastidor central / eliminado.
B#16#31: Pelo menos uma bateria de backup de um bastidor de
expanso est esgotada.
B#16#32: Tenso de backup em um dos bastidores de expanso est
esgotada.
B#16#33: defeito da alimentao 24V em um bastidor de expanso.
Date: 04.10.2007
File: PRO2_08P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Manipulando os Blocos de Organizao de Erros
De forma a impedir que a CPU v para Stop no caso de um erro,
transferir um OB de erro vazio.
Voc pode programar a resposta desejada no OB de erro e, se
necessrio, requisitar o estado Stop com a funo do sistema SFC
46 depois da execuo do OB de erro.
Um identificador de erro adicional armazenado nas informaes de
partida do OB de erro, o qual pode se avaliado no programa.
Uma descrio dos OBs de erro podem ser encontrados no ajuda
Online ou do sistema e Manual de Funes Padro.
A transmisso dos OBs de erro que no so suportados por
determinadas CPU so rejeitados com uma mensagem de erro.
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 4
Tarefa O defeito na bateria deve resultar na amostragem de um erro na console
operacional. Depois de trocada a bateria a mensagem deve automaticamente
desaparecer.
Descrio Em erros de fonte de alimentao p.ex. falha de bateria, o OB de erro
chamado uma vez pelo sistema operacional. Depois do erro ser eliminado o
OB 81 chamado mais uma vez.
No programa exemplo, a varivel #OB81_FLT_ID avaliada, de forma a
determinar se existiu um defeito na bateria. Neste caso a varivel contm o
valor 22H. A comparao desta forma preenchida e o bit de memria M 81.1
gatilhado.
O erro mostrado ser inicializado quando a bateria tiver falhado (entrando
evento) e limpada depois que o erro tenha sido eliminado (saindo evento).
Os seguintes identificadores esto na varivel #OB81_EV_classe:
B#16#39 entrando evento
B#16#38 saindo evento.
O set e o reset do flag de memria auxiliar M 81.0 arquivado atravs da
avaliao destas variveis.
No programa cclico, o flag de memria auxiliar M81.0 pode ser lincado uma
memria geradora de pulso e ser atribuda a uma sada. A sada ento
piscar enquanto a bateria estiver esgotada ou removida.
Date: 04.10.2007
File: PRO2_08P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exemplo de um OB de Erro Assncrono
OB81: OB de erro: defeito na fonte de alimentao
Network 1: defeito na bateria, chegada do evento
L #OB81_FLT_ID // Carrega identificador de erro
L B#16#22 // Identificador: defeito bateria no
==I // bastidor central (CR)
= M 81.1 // Seta flag de memria auxiliar
L #OB81_EV_classe // Identificador: entrando, saindo
L B#16#39 // Identificador: entrando evento
==I
= M 81.2 // Flag mem. aux. entrando evento
A M 81.1 // Defeito na bateria e
A M 81.2 // entrando evento
S M 81.0 // Seta flag mem. aux. para mostrar
// erro
Network 2: Reseta flag de memria auxiliar, quando bateria O.K.
L #OB81_EV_classe // Identificador: entrando, saindo
L B#16#38 // Identificador: saindo
==I
R M 81.0 // Reset flag de memria auxiliar
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 5
Erros sncronos O sistema operacional da CPU gera uma falha sncrona, quando um erro
ocorre em conexo imediata com o programa em processamento.
OB121 chamado com a programao de um erro. OB122 chamado com
um erro de acesso. Se o OB de erro sncrono no carregado na CPU, a
CPU chaveada para o modo STOP quando a falha sncrona ocorre.
O OB de erro sncrono tem a mesma prioridade que o bloco no qual o erro
ocorreu. Por esta razo, os registradores do bloco interrompido pode ser
acessado no OB de erro sncrono e este o porque o programa no OB de
erro sncrono pode tambm retornar os registradores (se necessrio com
mudana de contedo) para o bloco interrompido.
Mascaramento de S7 tem os seguintes SFCs, com as quais voc pode mascarar e demascarar
erros sncronos os eventos de partida do OB121 enquanto o seu programa est sendo
processado:
SFC36 (MSK_FLT): mascara o cdigo de erro especfico
SFC37 (DMSK_FLT): demascara o cdigo de erro que foi mascarado
pelo SFC36
SFC38 (READ_ERR): l o registrador de erro
Date: 04.10.2007
File: PRO2_08P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Manipulando Erros Sncronos
Erros sncronos so atribudos diretamente a uma posio no
programa do usurio
Erros em instrues aritmticas (overflow, REAL nmero invlido)
Ajuste de Bits de Status
Erros no processamento de instrues STL (erro sncrono)
Chamada do OB de erro sncrono
Exemplo Tipo de erro
Erro de programao Bloco chamado no existe na CPU
Erro de acesso
Acesso direto a um mdulo com defeito
ou no existente
OB de erro
OB 121
OB 122
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 6
Cdigo de erro B#16#21: erro de converso BCD. A varivel #OB121_FLT_REG contm um
(#OB121_SW_FLT) identificador para o registrador respectivo (W#16#0000: ACCU 1).
B#16#22: Dimenso da faixa de erro durante leitura.
B#16#23: Dimenso da faixa de erro durante escrita.
B#16#28: Acesso indireto leitura de BYTE, WORD ou DWORD com
endereo de bit diferente de 0 (combinado durante leitura).
B#16#29: Acesso indireto escrita de BYTE, WORD ou DWORD com
endereo de bit diferente de 0 (combinado durante escrita).
Neste caso, #OB121_FLT_REG contm o endereo do byte de falha e
#OB121_RESERVED_1 contm o tipo do acesso e rea de memria :
Bit 7 a 4 (tipo de acesso): Bit 3 a 0 (rea de memria)
0: acesso Bit 0: rea I/O 4: DB Global
1: acesso Byte 1: PII 5: DB Instance
2: acesso Word 2: PIQ 6: dado local prprio
3: acesso Double word 3: Memria Bit 7: dado local do chamado
B#16#24: Faixa de erro durante leitura
B#16#25: Faixa de erro durante escrita
#OB121_FLT_REG contm o identificador B#16#86: rea dado local prprio.
B#16#26: Erro com N
o
. de temporizador (N
o
. invlido no #OB121_FLT_REG)
B#16#27: Erro com N
o
. de contador (N
o
. invlido no #OB121_FLT_REG)
B#16#30: Acesso escr.DB global proteg.contra escr.(No.no#OB121_FLT_REG)
B#16#31: Acesso escr.DB inst.proteg.contra escr.(No.no#OB121_FLT_REG)
B#16#32: No. erro em acesso to global DB (No. no #OB121_FLT_REG)
B#16#33: No. erro em acesso to instance DB (No. no #OB121_FLT_REG)
B#16# 34: Nmero do erro em chamada de FC (No. no #OB121_FLT_REG)
B#16#35: Nmero do erro em chamada de FB (No. no #OB121_FLT_REG)
B#16#3A: Acesso a DB no carregado (No. no #OB121_FLT_REG)
B#16#3C: Acesso a FC no carregado (No. no #OB121_FLT_REG)
B#16#3D: Acesso a SFC no carregado (No. no #OB121_FLT_REG)
B#16#3E: Acesso a FB no carregado (No. no #OB121_FLT_REG)
B#16#3F: Acesso a SFB no carregado (No. no #OB121_FLT_REG)
Date: 04.10.2007
File: PRO2_08P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Informaes de partida do OB121 para Erros de Programao
Tipo de dado Nome da varivel
OB121_EV_classe BYTE
OB121_SW_FLT BYTE
Descrio, parametrizao
B#16#25= Chamada erro de programao OB121
Cdigo de erro (ver texto)
OB121_PRIORITY BYTE
OB121_OB_NUMBER BYTE
Classe de prioridade na qual o erro ocorreu
Nmero do OB (B#16#79)
OB121_BLK_TYPE BYTE
OB121_RESERVED_1 BYTE
Tipo de bloco interrompido (somente S7-400)
OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C
Adio ao cdigo de erro (ver texto)
OB121_FLT_REG WORD
OB121_BLK_NUM WORD
OB121: fonte do erro
Nmero de blocos no qual o erro ocorreu
OB121_PRG_ADDR WORD
OB121_DATE_TIME DT
Endereo do erro no bloco causador do erro
(somente S7-400)
Momento da gravao do erro de programao
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 7
Cdigo de erro A varivel #OB122_SW_FLT tem o seguinte significado:
B#16#42 S7-300: Erro acesso I/O, leitura
S7-400: Primeiro acesso leitura depois de que ocorre erro
B#16#43: S7-300: Erro acesso I/O, escrita
S7-400: Primeiro acesso escrita depois de que ocorre erro
B#16#44: Somente para S7-400: erro no n-ssimo (n>1) acesso leitura depois que
ocorre erro.
B#16#45: Somente para S7-400: erro no n-ssimo (n>1) acesso escrita depois que
ocorre erro.
OB122_MEM_AREA A varivel #OB122_MEM_AREA contm informao sobre o tipo de acesso e
a rea de memria:
Bit 7 a 4 tipo de acesso:
0: Acesso Bit
1: Acesso Byte
2: Acesso Word
3: Acesso Double word
Bit 3 a 0 rea de memria:
0: rea I/O
1: Tabela da Imagem de Processo de Entrada
2: Tabela da Imagem de Processo de Sada
Date: 04.10.2007
File: PRO2_08P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Informaes de partida do OB122 para Erros de Acesso
Tipo de dado Nome da varivel
OB122_EV_CLASS BYTE
OB122_SW_FLT BYTE
Descrio, parametrizao
B#16#29= Chamada erro acesso
Cdigo de erro (valores possveis : B#16#42, B#16#43,
B#16#44, B#16#45)
OB122_PRIORITY BYTE
OB122_OB_NUMBR BYTE
Classe de prioridade na qual o erro ocorreu
Nmero do OB (B#16#80)
OB122_BLK_TYPE BYTE
OB122_MEM_AREA BYTE
Tipo de bloco interrompido(somente S7-400)
OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C
Adio ao cdigo de erro (ver texto)
OB122_FLT_REG WORD
OB122_BLK_NUM WORD
OB122: identificador do endereo onde ocorreu o erro.
Nmero do bloco no qual o erro ocorreu
OB122_PRG_ADDR WORD
OB122_DATE_TIME DT
Endereo do erro no bloco causador do erro
(somente S7-400)
Momento da gravao do erro de programao.
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 8
Desvantagens dos A manipulao dos eventos de erros sncronos pelo significado dos OBs de
OBs de erro erros sncronos tem algumas desvantagens:
sncrono
Com uma manipulao de erro qualificado, uma correspondente
avaliao de erro no OB de erro sncrono deve ser executado para cada
bloco com instrues que podem gatilhar um erro sncrono.
Dentro do OB de erro sncrono um considervel tabalho deve desta forma
ser executado de forma a localizar o erro no programa do usurio e ento
poder reagir de acordo.
Cada mudana em um bloco existente conduz a mudanas
correspondentes no OB de erro sncrono.
Blocos no podem ser integrados em um programa do usurio sem a
correspondente considerao no OB de erro sncrono.
Alternativas aos S7 oferece, com the ajuda da funo Mscara de Erros Sncronos", um
OBs de erro mecanismo que atribui o cdigo para o gerenciamento de processo e para a
sncrono manipulao de erro associado a ser instalado no mesmo bloco.
Isto toma lugar, por exemplo, nos seguintes passos:
1. Antes da execuo de instrues "crticas" (p.ex. abertura de um DB,
ou acesso a um DB de comprimento desconhecido), o correspondente
erro sncrono pode ser mascarado pela ao do SFC 36 (MSK_FLT).
se an instruction ento fails, no sncrono erro OB chamado.
2. Depois da execuo de instrues "crticas", voc pode verificar pela
ao do SFC 38 (READ_ERR), enquanto ainda no ocorreram erros
crticos e reagir de acordo.
3. Uma vez concludas as atividades, a falha sncrona previamente
mascarada pode ento ser desmascarada e ento a chamada do OB de
erro sncrono habilitado novamente.
Date: 04.10.2007
File: PRO2_08P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Mscara de Erros Sncronos
Desvantagens do OB de erro sncrono :
Cdigo para o gerenciamento de processo e para a manipulao de
erro distribudo entre pelo menos dois blocos
Problemas com subseqentes mudanas ou com manuteno
Melhor:
Cdigo para gerenciamento de processo e para a manipulao de
erro no mesmo bloco
Mascaramento da falha sncrona:
Antes de instrues "crticas":
SFC 36 MSK_FLT: mascara falhas sncronas
(OB12x inibe a chamada)
Executa instrues "crticas"
Avalia se um erro ocorreu
SFC 38 READ_ERR: l registrador de erro
OB12x - habilita a chamada uma vez novamente:
SFC 37 DMSK_FLT: demascara falhas sncronas
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 9
Mascarando Com o SFC 36 (MSK_FLT), voc inibe a chamada do OB de erro sncrono
erros sncronos usando filtros de falhas. Com o nvel lgico "1" voc identifica nos filtros de
falhas para quais erros sncronos o OB no ser chamado (as falhas
sncronas sero mascaradas).
O mascaramento especificado ajustado sobre a mscara armazenada no
sistema operacional (operao lgica OU dos bits filtrados). SFC36 sinaliza
no valor retornado se, para a mscara especificada nos parmetros de
entrada, a mscara j existe (W#16#0001) para pelo menos um bit.
O SFC36 entrega em sua sada todos os parmetros atualmente mascarados
e indicados com nvel lgico "1".
Reao da CPU Quando um erro de programao ou acesso mascarado, ento a CPU
reage de acordo com o seu tipo de erro:
1. O OB de erro no chamado para erros de programao ou acesso.
2. O evento de erro inserido no registrador de erro. O registrador de erro
pode ser lido com a ajuda do SFC38 (READ_ERR).
3. O sistema operacional insere a falha sncrona no buffer de diagnstico
independentemente da mscara.
Validade do A mscara somente valida para a classe de prioridade na qual o SFC 36
mascaramento foi chamado. Se voc, por exemplo, inibir a chamada do OB de erro sncrono
em um programa principal, o OB de erro sncrono ir continuar a ser chamado
se o erro ocorrer em uma interrupo de programa.
Date: 04.10.2007
File: PRO2_08P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFC 36 para Mscara de Falhas Sncronas
"MSK_FLT"
EN ENO
PRGFLT_SET_MASK
ACCFLT_SET_MASK
RET_VAL ??.?
PRGFLT_MASKED ??.?
ACCFLT_MASKED ??.?
??.?
??.?
Parmetro Declarao Tipo dado rea de memria Descrio
PRGFLT_SET_MASK INPUT DWORD I, Q, M, D, L, Const. Nova (adicional) programao
filtro de falhas
ACCFLT_SET_MASK INPUT BYTE I, Q, M, D, L, Const. Novo (adicional) acesso filtro de falha
RET_VAL OUTPUT INT I, Q, M, D, L Retorna o valor do SFC,
W#16#0001: o novo filtro fica com
rea em comum com o filtro existente
PRGFLT_MASKED OUTPUT DWORD I, Q, M, D, L Programao completa filtro de falhas
ACCFLT_MASKED OUTPUT DWORD I, Q, M, D, L Acesso completo filtro de falhas
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 10
Programao de Voc controla a funo do sistema para a manipulao de erro sncrono com
filtro de falha os filtros de falha. Na programao do filtro de falhas existe um bit para cada
possvel falha de programao. Na especificao do filtro de falhas, voc
ajusta os bits de erro sncrono os quais voc deseja mascarar, desmascarar
ou checar.
O filtro de falhas envia pela funo do sistema indicando com o nvel lgico
1 os erros sncronos que ainda esto mascarados ou que ocorreram.
Date: 04.10.2007
File: PRO2_08P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura de programao de Filtro de Falhas
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Erro de converso BCD
Erro tamanho faixa, leitura
Erro tamanho faixa, escrita
Erro de faixa, leitura
Erro de faixa, escrita
Erro do nmero do temporizador
Erro do nmero do contador
Erro de alinhamento, leitura
Erro de alinhamento, escrita sem significado
Erro escrita no DB
Erro escrita no DB instance
Erro de nmero de bloco DB
Erro de nmero de bloco DI
Erro de nmero de bloco FC
Erro de nmero de bloco FB
DB no carregado
FC no carregado
FB no carregado
Nota: Os bits correspondentes do parmetro de sada PRGFLT_MASKED
so setados como a seguir:
Valor = 1: erro est mascarado.
Valor = 0: erro no est mascarado.
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 11
Filtro de falhas As CPUs S7-400 distingem entre dois tipos de erro de acesso a periferia.
de acesso Acesso a mdulo no existente e falha de acesso a mdulo inserido como
existente.
Se um mdulo falha durante operao, um estouro de tempo (time-out) (QVZ)
ocorre quando o mdulo acessado pelo programa. Ao mesmo tempo, este
mdulo interpretado como no existente, por tanto a cada acesso adicional
um erro de acesso a periferia (I/O) (PZF) sinalizado.
A CPU tambm sinaliza um erro de acesso a periferia (I/O) quando um
mdulo no existente acessado, seja este diretamente atravs da rea de
I/O ou indiretamente atravs da imagem de processo.
Date: 04.10.2007
File: PRO2_08P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura de acesso ao Filtro de Falhas
31 30 29 . . . 7 6 5 4 3 2 1 0
Erro de acesso a I/O em leitura
Somente S7-400:
Erro de acesso a I/O em leitura de mdulo
no existente ou com acesso repetido
sem significado
Erro de acesso a I/O em escrita
Somente S7-400:
Erro de acesso a I/O em escrita de mdulo
no existente ou com acesso repetido
. . .
Nota: Os bits correspondentes do
parmetro de sada ACCFLT_MASKED
so setados como a seguir:
Valor = "1": Erro est mascarado.
Valor = "0": Erro no est mascarado.
Os bits no relevantes tm o valor "1".
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 12
Desmascaramento A funo do sistema SFC37 (DMSK_FLT) utiliza o filtro de falhas para
de falhas sncronas habilitar a chamada dos OBs de erros sncronos de novo. Com o nvel lgico
"1" voc identifica no filtro de falhas para quais erros sncronos os OBs esto
de novo sendo chamados (as falhas sncronas so desmascaradas).
As entradas correspondentes do desmascaramento especificado, que esto
no registrador de erros, so apagadas.
No retorno do valor, a SFC37 sinaliza com W#16#0001 se para o
desmascaramento especificado nos parmetros de entrada, no existe
mscara (armazenada) para pelo menos um bit.
A SFC37 entrega em seus parmetros de sada todos os eventos mascarado
atualmente com nvel lgico "1".
Se uma falha sncrona desmascarada ocorre, o OB correspondente
chamado de novo e o evento inserido no registrador de erro. Habilitao
vlida para a classe de prioridade corrente.
Date: 04.10.2007
File: PRO2_08P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFC 37 para desmascaramento de Falhas Sncronas
"DMSK_FLT"
EN ENO
PRGFLT_RESET_MASK
ACCFLT_RESET_MASK
RET_VAL ??.?
PRGFLT_MASKED ??.?
ACCFLT_MASKED ??.?
??.?
??.?
Parmetro Declarao Tipo dado rea de memria Descrio
PRGFLT_RESET_MASK INPUT DWORD I, Q, M, D, L, Const. Programao filtro de falhas para resetar
ACCFLT_RESET_MASK INPUT BYTE I, Q, M, D, L, Const. Acesso ao filtro de falhas para resetar
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC,
W#16#0001: o novo filtro contm bits que
no so setados no filtro armazenado
PRGFLT_MASKED OUTPUT DWORD I, Q, M, D, L Mantm mascarados erros programao
ACCFLT_MASKED OUTPUT DWORD I, Q, M, D, L Mantm mascarados erros de acesso
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 13
Leitura do A funo do sistema SFC38 (READ_ERR) faz a leitura do registrador de
registrador de erro erro. Com nvel lgico "1" voc identifica no filtro de falhas para quais erros
sncronos voc deseja que sejam lidas as entradas.
No retorno do valor, a SFC38 sinaliza com W#16#0001 se para a seleo
especificada nos parmetros de entrada, no existe mscara (armazenada)
para pelo menos um bit.
A SFC38 retorna os eventos selecionados com nvel lgico "1" nos
parmetros de sada, quando eles ocorrem e apaga estes eventos do
registrador de erro com a varredura. Um bit setado significa que o erro
sncrono associado mascarado ocorreu pelo menos uma vez.
As falhas sncronas que ocorreram na classe de prioridade corrente so
sinalizadas.
Date: 04.10.2007
File: PRO2_08P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFC 38 para leitura do Registrador de Erros
"READ_ERR"
EN ENO
PRGFLT_QUERRY
ACCFLT_QUERRY
RET_VAL ??.?
PRGFLT_CLR ??.?
ACCFLT_CLR ??.?
??.?
??.?
Parmetro Declarao Tipo dado rea de memria Descrio
PRGFLT_QUERRY INPUT DWORD I, Q, M, D, L, Const. Programao filtro de falhas para checagem
ACCFLT_QUERRY INPUT BYTE I, Q, M, D, L, Const. Acesso filtro de falhas para checagem
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC,
W#16#0001: o filtro de verificao contm
bits que no so setados (no filtro armazenado)
PRGFLT_CLR OUTPUT DWORD I, Q, M, D, L Programao filtro de falhas com mensagens
de erro
ACCFLT_CLR OUTPUT DWORD I, Q, M, D, L Acesso filtro de falhas com mensagens de erro
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 14
Exemplo Este exemplo mostra o procedimento para mascarar a possvel falha sncrona
na abertura de um DB.
1. No primeiro passo, a instruo "crtica" OPN DB... mascarada com a
ajuda da SFC 36 (MSK_FLT).
2. Depois dela, a instruo OPN DB[DB_NO] executada. Se o DB no
est na memria de trabalho da CPU, ento OB121 no chamado neste
caso.
3. Com a ajuda da SFC38 (READ_ERR), o registrador de erro lido e
checado de forma que a instruo para abertura do DB tenha falhado ou
no.
No caso de um erro, a varivel local #DB_NOT_THERE setada para "1"
e s ento uma avaliao pode ser feita posteriormente.
4. No fim, a falha sncrona mascarada desmascarada de novo com a
ajuda da SFC37 (DMSK_FLT), atravs do reestabelecimento do estado
original.
Date: 04.10.2007
File: PRO2_08P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exemplo: Testando Bloco de Dados
Network 1: Mascaramento, Teste, Desmascaramento
// Mascara "DB no existe"
Call SFC 36(
PRGFLT_SET_MASK := DW#16#4000000, // Identificador: DB no existe
ACCFLT_SET_MASK := DW#16#0, // na mscara para erros de acesso
RET_VAL := #SFC36Error,
PRGFLT_MASKED := #Prog36Mask,
ACCFLT_MASKED := #Acc36Mask);
// Testa chamada
OPN DB[DB_NO];
// Checa programao de erro
Call SFC 38(
PRGFLT_QUERRY := DW#16#4000000, // Identificador: DB no existe
ACCFLT_QUERRY := DW#16#0, // na mscara para erros de acesso
RET_VAL := #SFC38Error,
PRGFLT_MASKED := #Prog38Mask,
ACCFLT_MASKED := #Acc38Mask);
// Avalia resultado
L #Prog38Mask
L DW#16#4000000
==D
= #DB_NOT_THERE // Seta varivel auxiliar DB no existe
// Desmascara "DB no existe"
Call SFC 37(
PRGFLT_RESET_MASK := DW#16#4000000, // Identificador: DB no existe
ACCFLT_RESET_MASK := DW#16#0, // na mscara para erros de acesso
RET_VAL := #SFC37Error,
PRGFLT_MASKED := #Prog37Mask,
ACCFLT_MASKED := #Acc37Mask);
Siemens Ltda
Training Center
ST-7PRO2
Erros Sncronos e Asscronos Pgina 15
Vista geral No exerccio 4.3 voc criou uma FC43 que determinava a soma e a mdia de
valores de um ARRAY de nmeros REAL. At agora, somente um erro
elementar manipulado (checando o tipo de dado) tem sido realizado dentro
desta FC.
O erro manipulado est agora sendo expandido de modo que com a nova
FC81 est seguro contra coliso, isto , com atribuio de parmetro
incorreto, nenhuma falha sncrona gatilhada.
Mais adiante, a FC81 permite, no parmetro de sada adicional #RET_VAL,
informao sobre o tipo de erro.
Objetivo Antes de tudo copia a FC43 dentro da FC81 e integra a seguinte manipulao
de erro :
Se um tipo de dado diferente de REAL passado, ento a FC81
excitada com um cdigo de erro -1.
Se um nmero invlido de DB passado (p.ex. nmero fora da faixa
permitida DB no existente), ento FC81 excitada com um cdigo de
erro -2.
Se dentro de um loop existe um acesso a um endereo no existente
(erro de faixa ou comprimento de faixa), ento FC81 excitada com um
cdigo de erro -4.
Em todos os casos de erro, FC81 ajusta o bit BR em zero e retorna um
nmero REAL invlido no parmetro de sada #Sum e #Mean_value.
O que fazer 1. Complementar FC81 com o parmetro de sada #RET_VAL (cdigo erro).
2. Na FC81 implementar o correspondente erro manipulado.
3. Programar a chamada da FC81 no OB1.
4. Transferir os blocos participantes para a CPU e testar o resultado.
Questo? Como voc pode fazer a "coliso" na FC81?
Date: 04.10.2007
File: PRO2_08P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 8.1: Manipulao de Erro no FC81
FC 81
EN ENO
Meas_values
Sum
Mean_value
Decl. Nome Tipo
in Meas_values ANY
out RET_VAL INT
out Sum REAL
out Mean_value REAL
RET_VAL
Cdigo de erro
Causa Cdigo erro
Tudo O. K. 0
Tipo dado <>REAL -1
DB no existe -2
Erro compr. faixa -4
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 1
Contedo Pg.
Programas S7 na Estrutura de Projeto .................................................................................................. 2
Conceito de Entrada e Compilao ....................................................................................................... 3
Iniciando o Editor de Textos .................................................................................................................. 4
Gerao de Programas com o Editor de Textos ................................................................................... 5
Inserindo Blocos Templates, Blocos e Programas ........................................................................ 6
Regras de Entrada Geral e Estrutura .................................................................................................... 7
Sintaxe para Blocos Lgicos .............................................................................................................. 8
Sintaxe para Blocos de Dados .............................................................................................................. 9
Regras para Declarao de Variveis .................................................................................................. 10
Alocao de Atributos de Blocos ....................................................................................................... 11
Exerccio 9.1: Criando um Arquivo Fonte ............................................................................................. 12
Exerccio 9.2: Contagem de peas acabadas ...................................................................................... 13
Date: 04.10.2007
File: PRO2_09P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Gerao de Programas com o Editor de Textos
Atributos de Proteo
A
S
C
I
I










S
T
L
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 2
Vista Geral De forma a possibilitar a criao de um novo programa S7, antes de mais nada um
projeto deve primeiro ser gerado no SIMATIC Manager. Subseqentemente,
existem duas possibilidades para criao de uma pasta de programa S7:
Mdulos independentes: Neste caso voc deve inserir a pasta de programa
para programas S7 diretamente ligada ao cone do Projeto. Os programas criados
nela podem depois serem atribudos a um mdulo programvel..
Mdule dependente: Neste caso o projeto deve conter pelo menos uma
estao SIMATIC 300/400 com um mdulo programvel (CPU). Uma pasta de
programa S7 ento automaticamente inserida ligada ao cone do mdulo
programvel.
Se voc deseja usar smbolos globais em seu programa do usurio, voc deve
fazer a atribuio correspondente dos identificadores e endereos absolutos na
tabela de smbolos antes de utiliz-los.
Blocos, Fontes e Voc pode guardar o programa S7 como programa de usurio (bloco),
Grficos arquivos fonte ou grficos. Programas e grficos so somente utilizados contudo,
como base para gerao de programas emS7. Somente blocos podemser
transferidos para uma CPU S7.
Se voc gerar um bloco, um arquivo fonte ou um grfico, dependendo da
linguagem de programao selecionada ou da linguagem do editor.
Programa do Usurio Somente os blocos do programa do usurio pode ser transferido para uma CPU
S7. Dependendo do escopo, isto inclui blocos de organizao (OBs), funes
(FCs), blocos de funes (FBs) e blocos de dados (DBs).
O tipo de dado definido pelo usurio (UDTs) criado simplifica simplismente a
programao, ele no pode portanto ser transferido para uma CPU S7.
O mesmo vlido para a tabela de variveis (VATs), na qual endereos para
funes Monitor/Modify Variables so salvas.
Date: 04.10.2007
File: PRO2_09P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programas S7 na Estrutura de Projeto
Projeto
S7
S7
Blocos
Programas
Pasta de Grficos
Tabela de Smbolos
Blocos S7 : Editores:
- OBs LAD, STL, FBD
- FBs LAD, STL, FBD, S7-Graph
- FCs LAD, STL, FBD
- DBs Editor DB
- Grficos CFC
Programa S7
Programas S7 :
- Fonte STL
- Fonte S7-SCL
- Fonte S7-HiGraph
- Fonte S7-Graph
Tabela de Conexes
Mdule (S7-CPU)
Estao (S7-300)
Programa S7
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 3
Possibilidades Dependendo da linguagem de programao que voc tem escolhido para
de Entrada gerao de programa, voc pode entrar seu programa incrementalmente e/ou
orientado a fonte.
Entrada incremental (STL, LAD, FBD, S7-Graph, S7-HiGraph, CFC)
Cada linha oucada elemento imediatamente examinado pelos erros de
sintaxe aps a entrada. Caso ocorram erros de entrada, estes sero
indicados (marcados em vermelho) e devem ser corrigidos antes de s salvar.
A sintaxe correta das entradas so automaticamente compiladas e mostradas
em preto. Ementradas incrementais, os smbolos utilizados j devemser
definidas na tabela de smbolos, de outra forma a entrada ser marcada em
vermelho e uma mensagemde erro correspondente ser mostrada na barra de
estado (status bar).
Entrada orientada a fonte (STL, S7-SCL)
Na entrada orientada a fonte, o programa ouum bloco editado emum
arquivo texto e o arquivo texto ento compilado, onde os erros so primeiro
indicados na compilao pelo Compilador associado.
Na entrada orientada a fonte, os smbolos somente devemser definidos na
tabela de smbolos no momento da compilao. Programas tem a vantagem que
eles podemser exportados - ento processados com as ferramentas da escolha -
e podem ento ser reimportados.
Vantagens da Diversos blocos podemser armazenados em um arquivo fonte (os blocos
entrada orientada devem, deste modo, ser armazenados de forma a que os blocos
a fonte chamados estejam sempre localizados antes dos blocos chamados).
Um arquivo fonte pode ser salvo com erros de sintaxe.
Voc pode gerar seu arquivo fonte com outros editores, importa-los para o
SIMATIC Manager e ento compila-los transformando-os em blocos.
Um bloco protegido somente pode ser entrado no modo ASCII.
Mudanas na chamada de blocos aninhados (p.ex. adio de parmetros de
blocos) podemser melhor manipulados com o Editor ASCII (p.ex. com Find e
Replace), do que com o Editor Incremental.
Date: 04.10.2007
File: PRO2_09P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Conceito de Entrada e Compilao
Blocos
Programa do Usurio Arquivo Fonte ASCII
FUNCTION_BLOCK FB21
AUTHOR: Andy
FAMILY: plant1
NAME: fb_mot21
VERSION: 01.01
VAR_INPUT
IN1: INT:=123;
END_VAR
VAR_OUTPUT
OUT1: INT:=123;
END_VAR
VAR_IN_OUT
IN_OUT1: INT:=123;
END_VAR
VAR
VAR1: INT:=123;
END_VAR
.
.
Compilao
Gerao
Tabela de Smbolos
Acesso de leitura
na compilao
e gerao
Edio
Incremental
Abrir
Salvar
Acesso de leitura
na edio
Edio
Orientada a
Fonte
Editor de
Smbolos
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 4
Iniciando do Voc parte o Editor de Textos do SIMATIC Manager. Pr-requisito que
SIMATIC Manager voc tenha criado um projeto com um programa S7. Voc pode gerar o programa
dependente ou independente do hardware.
Com o Editor de Textos voc processa exclusamente programas, os quais voc
subseqentemente compila para blocos, estes so armazenados na pasta de
Blocos.
Criando uma Fonte Quando voc deseja gerar um novo arquivo fonte, em primeiro lugar voc deve
antes de mais nada criar um arquivo vazio no SIMATIC Manager atravs do qual
voc abre com o Editor de Textos. Quando voc tiver aberto o Editor voc pode
criar os programas neste.
No SIMATIC Manager selecione a pasta de programas e insira um arquivo com
a opo menu Insert New Object -> STL Source File. O novo arquivo fonte
aparece no lado direito da janela projeto com umnome presetado.
No Editor de Textos, voc pode simplismente criar um novo arquivo fonte
usando a opo menu File ->New. No dilogo seguinte voc entra com o nome
do novo arquivo fonte.
Abrindo um Voc abre um arquivo fonte no SIMATIC Manager atravs de um duplo
Arquivo Fonte clique no seu smbolo. Alternativamente, voc pode chegar a este utilizando a
opo menu Edit -> Open Object ouo cone correspondente na barra de
ferramentas.
Gerando um Tambm possvel reverter a compilao de blocos j existentes emum
Arquivo Fonte arquivo fonte, de forma a permitir posterior processamento. No Editor de Textos
selecione a opo de menu File -> Generate Source para tanto. No dilogo
seguinte voc pode selecionar todos os blocos os quais voc deseja gerar um
arquivo fonte.
Date: 04.10.2007
File: PRO2_09P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Iniciando o Editor de Textos
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 5
Editor de Textos Em vez de programar emSTL, voc pode gerar seu programa com o Editor de
Texto integrado e deste modo criar um arquivo fonte. Voc entra comseus seus
blocos um aps o outro (possibilidade de diversos blocos emum arquivo fonte).
Uma verificao da sintaxe no ocorre.
Ajustes Antes de voc comear a programar no Editor de Textos, voc deve comear a se
familiarizar com as possibilidades de customizao, de forma a permitir trabalhar
comfortavelmente e de acordo com suas preferncias pessoais.
Voc abre um dilogo de registro utilizando a opo de menu Options Settings. No
registro Editorvoc pode ajusta o padro de script (tipo e tamanho) para o
arquivo fonte. A cor na qual linhas de instrues so marcadas mudada no
registro LAD/FBDr.
Date: 04.10.2007
File: PRO2_09P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Gerao de Programas com o Editor de Textos
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 6
Inserindo Blocos templates para OBs, FBs, FCs, DBs, DBs Instance, DBs de UDTs
Blocos Templates e UDTs so integradas no Editor para programao simplificada. Um bloco
template contem todas as palavras chave requeridas na seqncia necessria.
Voc simplismente deleta os templates de declaraes opcionais as quais voc
no deseja fazer. Os templates de blocos facilitama entrada e aderncia para
sintaxe e estrutura ao mesmo tempo.
De forma a inserir um template de bloco em seu arquivo fonte, selecione a opo
de menu Insert -> Block Template -> OB/FB/FC/DB/IDB/ DB from UDT/UDT.
Inserindo Blocos Voc pode inserir em seu arquivo fonte os cdigos fonte correspondentes dos
blocos que j havia sido gerado. Para isto, selecione a opo de menu Insert ->
Object -> Block. No dilogo seguinte selecione os blocos cujos cdigos voc deseja
inserir como texto.
Um arquivo fonte gerado de blocos selecionados. Seus contedos so inseridos
depois da posio do cursor no arquivo fonte onde est sendo editado.
Inserindo Arquivos Voc pode inserir o contedo de qualquer outros programas emseuarquivo
Fontes fonte. Para isto, selecione a opo de menu Insert -> Object -> File e no dilogo
seguinte selecione o arquivo a ser inserido.
Desta forma, o contedo de qualquer arquivo texto pode ser inserido em seu
arquivo fonte.
Nota Qualquer contedo de texto pode tambmser inserido emseuarquivo fonte
usando o clipboard Windows.
Date: 04.10.2007
File: PRO2_09P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Inserindo Templates de Blocos, Blocos e Programas
Arquivos Fonte
sendo editados
Bloco
tem-
plate
Bloco
Arquivo
Arquivo
Inserir bloco
template
Inserir bloco
Inserir arquivo
Inserir arquivo
Gerar
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 7
Regras de Entrada As seguintes regras gerais so vlidas para a gerao dos programas do usurio
como arquivo fonte:
A sintaxe das instrues STL o mesmo que no Editor STL incremental.
Existe uma exceo com a chamada dos blocos e a declarao dos Arrays e
Structs.
Em geral, o Editor de Textos no levar em conta letras maisculas e
minsculas. A exceo so os rtulos de saltos.
Identifica o fim de cada instruo STL e cada declarao de varivel com ponto
e vrgula (;). Voc pode entrar mais do que uma instruo por linha.
Comear cada comentrio com duas barra (//) e terminar cada entrada de
comentrio com a tecla ENTER.
Seqncia de Bloco Comrelao a seqncia dos blocos, voc deve prestar ateno ao seguinte na
gerao do arquivo fonte:
Chamadas de blocos so locadas antes dos blocos chamados. Isto significa:
OB1, o qual utilizado mais freqentemente e o qual chama os outros blocos,
fica por ltimo. Os blocos, os quais so chamados pelos blocos que so chamados
no OB1, devem estar antes deste, etc.
Tipos de dados definidos pelo usurio (UDTs) ficam antes dos blocos nos quais
eles so utilizados.
Blocos de dados que atribuemtipos de dados definidos pelo usurio (UDT)
ficam aps o UDT.
Blocos de dados Globais ficam antes de todos os blocos dos quais eles so
chamados.
Blocos de dados que atribuemblocos de funes (DB instance) ficam depois
do bloco de funes.
Date: 04.10.2007
File: PRO2_09P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Regras de Entrada Geral e Estrutura
UDT
DB Global
DB de UDT
FB3
DB Instance para FB3
FC5
OB1
atribudo
chamada
chamada
chamada
chamada
atribudo
S
e
q

n
c
i
a

n
o

a
r
q
u
i
v
o

f
o
n
t
e
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 8
Regras Com a entrada de um bloco lgico, voc deve prestar ateno nas seguintes
regras:
No incio do bloco, existe um espao entre a palavra chave para o tipo de bloco
e a especificao do bloco. Na especificao do nome simblico do bloco, voc
pode identifica-lo entre aspas, isto para garantir a diferenciao entre nomes de
variveis locais e nomes da tabela de smbolos.
Com funes (FCs), o tipo de funo igualmente fornecido. Isto pode ser tipos
de dados elementares ou complexos e determinar o tipo de dado do valor de
retorno (#RET_VAL). Se nenhum valor est sendo retornado, VOID est sendo
indserido.
A especificao do nmero de network no permitido.
Chamada de Blocos A sintaxe para a chamada dos FBs e FCs com o comando CALL desvia-se
com " CALL" levemente deste no Editor STL incremental. Emumarquivo fonte voc entra com
os parmetros entre parntesis. Os parmetros individuais so ento separados
um do outro por vrgulas.
Exemplo: CALL FC1 (param1 :=I 0.0, param2 :=I 0.1);
Comentrios na De forma a garantir uma representao umpr um dos comentrios na
Parte das Instrues ltima edio no Editor incremental, voc deve prestar ateno no seguinte:
Chamada de Bloco: Em programas, voc deve guardar a seqncia dos
parmetros formais como ele so na declarao de variveis do bloco quando
voc atribui parmetros atuais para os parmetros formais. Embora a seqncia
dos parmetros seja escolhida, comentrios para os parmetros podemdeste
modo ser alterados durante a compilao da fonte emblocos.
Com instrues para acessar blocos de dados que diretamente seguem a
instruo OPN, isto possvel que uma perda dos comentrios da
instruo possa ocorrer durante a compilao para bloco. De forma a evitar
isto, programe de forma compacta (p.ex. L DB5.DBW20; //Comentrio) ou escreva
emuma instruo NOP(p.ex. OPN DB5; //Comentrio 1 NOP 0; L DBW20;
//Comentrio 2).
Date: 04.10.2007
File: PRO2_09P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Sintaxe para Blocos Lgicos
Configurao
Incio do bloco com especificao do bloco
(absoluto ou simblico)
Ttulo de bloco (opcional)
Palavra chave com Exemplo
ORGANIZATION_BLOCK OB1
FUNCTION_BLOCK FB1
FUNCTION FC 1 : int
TITLE =Block title
Comentrio de bloco (opcional)
Propriedades de bloco (opcional)
// Block comment
KNOW_HOW_PROTECT
AUTHOR: PT41
FAMILY: Motors
NAME: Motorone
VERSION: 0815
Declarao das partes variveis
(tipo de declarao, dependendo do tipo de
bloco)
Trmino de cada tipo de declarao com
Parte das instrues consistindo de
Networks com
Ttulo de Network
Comentrio de Network
VAR_IN
VAR_OUT
VAR_IN_OUT
VAR
VAR_TEMP
..
END_VAR
BEGIN
NETWORK
TITLE=first network
//
Fim de bloco END_ORGANIZATION_BLOCK
END_FUNCTION_BLOCK
END_FUNCTION
Atributos de Sistema para bloco (opcional)
{Attr1 :='block_val1'; // Block attribute1
Attr2 :='block_val2'; // Block attribute2
Attr3 :='block_val3' // Block attribute3}
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 9
Regras Na entrada de dados dos blocos de dados voc deve prestar ateno s seguintes
regras:
Voc no pode gerar um DB 0.
Voc pode opcionalmente especificar valores correntes para todas ou algumas
variveis. Para variveis, as quais voc no atribuiu valores correntes, o valor
inicial atribuudo, se disponvel, por outro lado valores padres dos tipos de
dados so atribudos.
Comentrios de instrues na seo de atribuio para valores correntes
(entre BEGIN e END_DATA_BLOCK) no so mostradas no Editor incremental
aps compilao para blocos. Por esta razo somente escreva comentrios para
blocos de dados na parte da declarao.
Date: 04.10.2007
File: PRO2_09P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Sintaxe para Blocos de Dados
Configurao
Incio do bloco com especificao do bloco
(absoluto ou simblico)
Ttulo do bloco (opcional)
Palavra chave com Exemplo
DATA_BLOCK DB 26
TITLE =Block title
Comentrio do bloco (opcional)
Propriedades dos blocos (opcional)
// Block comment
KNOW_HOW_PROTECT
AUTHOR: Mller
FAMILY: Motors
NAME: Motorone
VERSION: 0815
Parte da declarao dependendo do DB
Bloco de dados Global:
Declarao de Variveis
(opcional com valores iniciais)
STRUCT
..
..
END_STRUCT
DB de UDT:
Especificao da UDT (absoluta ou simblica)
UDT 16
DB Instance :
Especificao do FB (absoluto ou simblico)
FB 20
Parte de atribuio com valores correntes
BEGIN
..
Fim de Bloco END_DATA_BLOCK
Atributos do Sistema para blocos (opcional)
{Attr1 :='block_val1'; // Block attribute1
Attr2 :='block_val2'; // Block attribute2}
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 10
Tipos de Variveis Com blocos lgicos, o tipo de declarao das variveis identificado por uma
palavra chave, isto encontrado em sua prpria linha. Dependendo do tipo de
bloco, somente tipos de declaraes particulares so permitidas.
Regras de Entrada Na entrada de dados na declarao de variveis, voc deve prestar ateno no
seguinte:
As variveis devem ser declaradas na seqncia dos tipos de declaraes.
Todas as variveis de um tipo esto deste modo juntas.
As palavras chaves so encontradas em cada caso em sua prpria linha ou
so separadas por um espao em branco.
O nome das variveis encontrado no incio da linha e deve comear com
uma letra. Ele no pode corresponder a qualquer das palavras chaves.
Atributos de sistema opcional podem ser atribudos para parmetros
individuais aps o nome da varivel. Os atributos do sistema so encerrados
entre parnteses.
Exemplo: Var_1 {ident1 :='string1' ; ident2 :='string2' }: INT;
Var_2 {message :='TRUE' ; OPERABLE :='TRUE'}: INT;
O tipo de dado fornecido, separado por uma vrgula, depois do nome ou aps
o atributo do sistema. Tipos de dados elementares, complexos e definidos pelo
usurio so permitidos.
Cada declarao de varivel terminada por um ponto e vrgula.
Comentrios so separados de uma parte declarao por duas barras.
Date: 04.10.2007
File: PRO2_09P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Regras para Declarao de Variveis
Tipo de Declarao Palavra chave OB FB FC
Parmetro de entrada VAR_INPUT - sim sim
Parmetro de sada VAR_OUTPUT - sim sim
Parmetro entrada/sada VAR_IN_OUT - sim sim
Varivel Esttica VAR - sim -
Varivel Temporria VAR_TEMP sim sim sim
Cada trmino com END_VAR

Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 11
Atributos do Sistema Voc pode atribuir atributos do sistema para blocos, por exemplo, para
diagnsticos do processo ou configurao de controle do sistema. Eles controlam a
configurao de menssagem e configurao de conexo, funes de interface do
operador e a configurao de controle do sistema.
Propriedades dos Voc pode especificar o nome do bloco, famlia, verso e autor com a ajuda
Blocos das palavras chaves. Para isto vlido o seguinte:
Propriedades dos blocos so especificadas antes da parte de declarao das
variveis.
No existe nenhum ponto e vrgula no fim da linha.
Proteo de Bloco Voc pode setar proteo do bloco para blocos lgicos e blocos de dados, pela
especificao da palavra chave KNOW_HOW_PROTECT :
Quando voc procura o bloco compilado no Editor incremental STL, a
parte de instrues de bloco no pode ser visto por dentro.
Somente os parmetros in, out e in/out so mostrados na declarao das
variveis dos blocos. As variveis internas VAR e VAR_TEMP permanecem
ocultas.
O bloco compilado pode ser compilado emumarquivo fonte, mas somente
como um bloco sem a parte das instrues.
A palavra chave KNOW_HOW_PROTECT deve ser entrado antes de todos os
atributos do bloco.
Proteo de Escrita Voc pode setar uma proteo de escrita para blocos de dados em
READ_ONLY programas, desde que os valores dos dados armazenados dentro deles no podem
ser sobreescritos durante a execuo do programa. Para isto, entrar com a palavra
chave READ_ONLY . Este deve ser encontrado em sua prpria linha diretamente
antes das declaraes.
UNLINKED O atributo UNLINKED somente pode ocorrer com blocos de dados. Ele diz que o
DB no carregado da memria de carga para a memria de trabalho da CPU.
Date: 04.10.2007
File: PRO2_09P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Alocao de Atributos de Blocos
Atributo
KNOW_HOW_PROTECT
Blocos Lgicos
(OB, FB, FC)
Blocos de Dados UDT
sim sim no
AUTHOR sim sim no
FAMILY sim sim no
NAME sim sim no
VERSION sim sim no
UNLINKED no sim no
READ_ONLY no sim no
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 12
Vista Geral Primeiro de tudo, um arquivo fonte est sendo criado de um programa final do
exerccio 6.2 Linha de Montagem". Subseqentemente, a funcionalidade de
contagem adicional est sendo ento introduzido dentro de blocos para a parte de
transporte.
Objetivo do exerccio Na pasta programs do projeto PRO2 (pasta de programa Conv), gerar um arquivo
fonte, que inclui o programa do usurio total do exerccio 6.2 e que pode ser
compilado sem mensagens de erro.
Procedimento 1. Antes de tudo, abra na pasta Blocks a pasta de programa Conv um bloco
escolhido com a ajuda do Editor STL/LAD/FBD.
2. Ento selecione a opo do menu File -> Generate Source. O dilogo "New"
para entrada de dados o nome desejado do arquivo fonte aparece.
3. Entre com o nome do arquivo fonte (p.ex. Linha de montagem) e confirme o
dilogo com "OK". O dilogo seguinte "Select STEP7 Blocks" aparece.
4. Selecione o bloco desejado e reconhea com "OK".
Note: Voc pode selecionar a caixa de verificao Program structur (XREF)
sorted". Desta forma, os blocos so automaticamente arranjados na seqncia
correta no arquivo fonte.
Gerao do arquivo fonte iniciado.
5. Com o Editor de Textos, abra o arquivo fonte criado.
6. Com a ajuda da opo do menu File -> Check Consistency, teste se o arquivo
fonte pode ser compilado livre de erros.
Date: 04.10.2007
File: PRO2_09P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 9.1: Criando um Arquivo Fonte
Transporte
Estao 1 Estao 2 Estao 3
FB10
Dados para
Transport
DB Instance do FB10
CALL Station_1
CALL Station_2
CALL Station_3
.
.
CALL Transport
DB10
...
stat Station_1 FB1
stat Station_2 FB1
stat Station_3 FB1
stat Transport FB2
...
Dados para
Station_1
Dados para
Station_2
FB1
FB2
Dados para
Station_3
OB1
FUNCTION_BLOCK "Station"
TITLE =
VERSION : 0.1
VAR_INPUT
Initial : BOOL ;
Proximity_switch : BOOL ;
Acknowledge : BOOL ;
Clock_bit : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Transp_req : BOOL ;
END_VAR
VAR_IN_OUT
Conv_busy : BOOL ;
END_VAR
VAR
State : STRUCT
Busy : BOOL ;
Completed : BOOL ;
Waiting : BOOL ;
END_STRUCT ;
Aux_1 : BOOL ;
Aux_2 : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Inicializao
//"Busy" setado com a
//inicializao
A #Initial;
...
Arqui vo Fonte: " Linha de Montagem"
Siemens Ltda
Training Center
ST-7PRO2
Gerando Programas com Editor de Textos Pgina 13
Objetivo do exerccio No bloco de funes "Transport, integra um contador que conta as peas
completadas que chegam para montagem final. As propriedades do contador
devem incluir as seguintes funcionalidades:
O contador est sendo implementado com a ajuda do contador crescente (SFB
0 "CTU") conforme IEC 1131-3.
Com cada transio negativa da barreira de luz, o contador incrementa, no
estado #Transport_right, sua contagem.
O contador resetado com o sinal de entrada #Initial.
A contagem corrente passada para o bloco chamado atravs de um
parmetro adicional de sada #Count_Value (tipo de dado: INT).
O valor de contagem mostrado no display digital do simulador.
Programe todos os passos do programa exclusivamente no arquivo fonte.
Insira uma proteo de bloco em todos os FBs e DBs utilizando a palavra
chave KNOW_HOW_PROTECT .
O que fazer 1. Copie o SFB 0 da biblioteca Standard Library V3.x ouo FB6 dentro da sua
pasta de bloco.
2. Abra o arquivo fonte Assembly line (Linha de montagem).
3. No FB2 "Transport", declare a varivel esttica #Counter do tipo de dado
SFB 0 ou FB6 bem como parmetro de sada #Count_Value do tipo de dado
INT.
4. Insira as instrues necessrias da funo de contagem no FB2 "Transport".
5. No FB10 insira as instrues para mostrar o valor de contagem (codificado em
BCD) no display digital.
6. Compile o arquivo fonte modificado e transfira os novos blocos para a CPU.
Teste o programa.
7. Insira uma proteo de bloco em todos os FBs e DBs participantes.
Date: 04.10.2007
File: PRO2_09P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 9.2: Contagem de peas acabadas
Transporte
Estao 1 Estao 2 Estao 3
Montagem
Final
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 1
Contedo Pg.
Sub-redes em SIMATIC ........................................................................................................................ 3
Servios de Comunicao para SIMATIC ............................................................................................ 4
Servios de Comunicao S7 para S7-300/400 .................................................................................... 5
Conexes entre Participantes da Comunicao ................................................................................... 6
Atribuio de Recursos de Conexo para Comunicao S7 ................................................................ 7
Dados Caractersticos das CPUs S7 - Comunicao ........................................................................... 8
SFCs de Comunicao: Vista Geral ....................................................................................................... 9
SFCs de Comunicao: Vista Geral dos Blocos ................................................................................... 10
SFCs de Comunicao: Bloco X_GET (SFC 67) ........................................................................... 11
SFCs de Comunicao: Bloco X_PUT (SFC 68) .................................................................................. 12
SFCs de Comunicao: Bloco X_SEND (SFC 65) ............................................................................ 13
SFCs de Comunicao: Bloco X_RCV (SFC 66) .............................................................................. 14
SFBs de Comunicao: Vista Geral ...................................................................................................... 15
SFBs de Comunicao: Vista Geral dos Blocos ................................................................................... 16
Servios de Comunicao de mo nica utilizando Conexes S7 ..................................................... 17
Servios de Comunicao de mo dupla utilizando Conexes S7 .................................................... 18
Configurao de Redes de Comunicao com NETPRO .................................................................... 19
Configurao de Conexes S7 ......................................................................................................... 20
Estabelecendo Propriedades de Conexo ........................................................................................... 21
Compilando e Transferindo os Dados de Configurao ....................................................................... 22
SFBs de Comunicao: Bloco GET (SFB 14) ................................................................................... 23
SFBs de Comunicao: Bloco PUT (SFB 15) ................................................................................... 24
SFBs de Comunicao: Bloco USEND (SFB 8) ............................................................................... 25
Date: 04.10.2007
File: PRO2_10P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Comunicao Bsica e Expandida S7
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 2
Contedo Pg.
SFBs de Comunicao: Bloco URCV (SFB 9) .............................................................................. 26
SFBs de Comunicao: Bloco BSEND (SFB 12) .......................................................................... 27
SFBs de Comunicao : Bloco BRCV (SFB 13) ............................................................................ 28
SFBs de Comunicao : Bloco STOP (SFB20) ............................................................................ 29
SFBs de Comunicao : Bloco START (SFB19) .......................................................................... 30
SFBs de Comunicao : Bloco controle (SFC 62) .................................................................... 31
Exerccio 10.1: Configurando uma conexo S7 ....................................................................... 32
Exerccio 10.2: Comunicao com os SFBs GET/PUT ................................................................. 33
Exerccio 10.3: Comunicao com os SFBs START/STOP ......................................................... 34
Date: 04.10.2007
File: PRO2_10P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Comunicao Bsica e Expandida S7
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 3
Vista Geral SIEMENS oferece as seguintes sub-redes, dependendo dos vrios requisitos
para as tarefas de comunicao no rea de clula (tempo no crtico) ou no
nvel de campo (tempo crtico).
MPI A sub-rede MPI projetada para tarefas no nvel de clula. A MPI uma
interface com caracterstica multi-point em SIMATIC S7.
Ela projetada como interface PG, isto , para a conexo de PGs
(comissionamento e teste) e OPs (interface com operador). Entre estas
opes, a sub-rede MPI pode tambm ser usada como rede entre poucas
CPUs.
Ethernet Industrial Ethernet Industrial um sistema de comunicao SIMATIC em protocolo
aberto para o nvel de gerenciamento e o nvel de clula.
Ethernet Industrial is projetada para transmisso de grande quantidade de
dados com tempo no crtico e oferece a possibilidade de conexo com
outras redes de comunicao atravs de Gateways.
PROFIBUS PROFIBUS um sistema de comunicao SIMATIC em protocolo aberto para
o nvel de clula e o nvel de campo. Existem duas verses, cada uma com
suas caractersticas prprias:
no nvel de clula como PROFIBUS para comunicao em tempo no
crtico entre ns igualmente inteligentes.
como comunicao de campo PROFIBUS DP para tempo crtico, troca de
dados cclicos entre mestres inteligentes e equipamentos de campo.
Conexo PtP Conexes Ponto a Ponto so principalmente usadas para troca de dados com
tempo no crtico entre duas estaes ou para a conexo de equipamentos,
como OPs, impressoras, leitoras de cdigos de barra, leitoras de cartes
magnticos etc. para uma estao.
AS Interface A Interface Sensor Atuador uma sub-rede para o nvel mais baixo de
processo sistemas de PLC. Com sua ajuda, sensores binrios e atuadores
podem ser ligados em rede de comunicao.
Date: 04.10.2007
File: PRO2_10P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Sub-redes em SIMATIC
-SINUMERIK, RCM
-TI 505
-Outros PLC
S7-300 S7-400 M7-400
OPs
SIMATIC S5
PROFIBUS DP
ET 200B/L
ET 200C
DP/AS-I Link
ASI (Actuator Sensor Interface)
Sub mdule AS-I
Sensores e Atuadores Equipamentos de campo com
AS-I ASIC
Fonte de Alimentao AS-I
Ethernet Industrial
PROFIBUS
Rede MPI
Ponto a Ponto
PC, OS PG
PG 720
Nvel de Clula
Nvel de Campo
Nvel AS-I
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 4
Servios Um servio de comunicaes descreve funes de comunicaes com caractersticas
de performance definidas, como troca de dados, equipamentos de controle,
equipamentos de monitorao e transferncia de programas.
Dados Globais GD (Global Date Dados Globais) para troca de dados cclicos de pequenas
quantidades de dados (em S7-400 adicionalmente mais dados).
Comunicao S7 Esta ferramenta de comunicao otimizada para a comunicao de PLCs S7,
PGs/PCs e OP/TDs nas conexes SIMATIC S7.
Funes PG; uma PG pode ser conectada sem configurao de conexo.
Funes IHM; um OP pode ser conectado sem configurao de conexo.
Comunicao Bsica implementada com SFCs, estas esto inseridas no sistema
operacional das CPUs. (comunicao SFC so executadas sem configurao de
conexo).
Comunicao Expandida ocorre atravs de conexes configuradas com a ajuda
de SFBs (S7-400 Client/Server; S7-300 somente Server).
FDL (SDA) Para a transferncia segura de dados de uma quantidade mdia de dados entre
SIMATIC S7 e S5. Corresponde ao Layer 2 Fieldbus Date Link (FDL) para Profibus.
ISO Transport utilizado para a transferncia segura de dados entre SIMATIC S5 e S7. Usado para
transferir quantidade mdia de dados (at 240 bytes).
ISO-on-TCP utilizado para a transferncia segura de dados de uma quantidade mdia de dados
do SIMATIC S7 para PCs ou sistemas no Siemens atravs de rede TCP/IP.
As ferramentas FDL, ISO e ISO-on-TCP so disponibilizadas atravs da chamada
funo AG-SEND/AG-RECEIVE.
FMS Fieldbus Message Specification (FMS) faz comunicao orientada a objeto entre
parceiros inteligentes bem como tambm com equipamentos de campo. Utilitrios
suportados por FMS (variveis, servios de domnio, etc.) so especificados na
EN 50170 Vol. 2.
MAP Originalmente desenvolvido pela indstria automobilistica americana General Motors,
este protocolo para comunicao orientada a objeto entre sistemas PLC (MAP=
Manufacturer Automation protocolo).
DP O protocolo DP (I/O Distribudo) especialmente otimizado para comunicao
orientada a objeto com tempo crtico de unidades de controle inteligentes (DP
Mestres) para equipamentos de campo (EN 50170 Vol. 3).
Date: 04.10.2007
File: PRO2_10P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
C
o
m
u
n
.

C
o
n
f
.

P
a
d
r

e
s
Servios de Comunicao para SIMATIC
Profibus Ethernet
FMS
DP
MAP 3.0
C
o
m
u
n
i
c
.
a
b
e
r
t
a
MPI
Comun. S7 Bsica
Dados Globais
Comunicao S7 Expandida
C
o
m
u
n
i
c
a

o
S
I
M
A
T
I
C

S
7
ISO-Transport
ISO-on-TCP
FDL
Funes PG e IHM
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 5
Dados Globais Esta comunicao aplicvel para troca de dados cclicos entre CPUs
utilizando a interface MPI e sem um programa. A troca de dados acontece
em um ponto de controle do ciclo, junto com a atualizao da imagem de
processo.
Funo PG e IHM Servios do sistema como funes PG e IHM so baseadas, em anlise final,
na comunicao S7 Expandida. Pr requisito para a conexo de um PG ou
uma IHM a um sistema S7-300/400 a sua disponibilidade de uma conexo
livre conexo com o parceiro (S7-CPU, M7-CPU, M7-FM, etc.).
Comunicao Bsica Com este servio de comunicao, dados para todas as CPUs S7-300/400
podem ser transferidos por meio da sub-rede MPI ou com a estao atravs
do K bus. Funes do Sistema (SFCs), como a X_SEND pelo lado de envio e
X_RCV pelo lado de recepo, so chamados no programa do usurio.
A quantidade de dados do usurio que podem ser transferidas em uma
chamada de um mximo de 76 bytes.
A conexo da comunicao ao parceiro ativamente configurada quando os
SFCs so chamados e disconectada aps a transmisso. Uma configurao
de conexo no necessria para isto.
Comunicao Voc pode usar este servio de comunicao para todas as CPUs S7-400.
Expandida A quantidade mxima de 64KBytes de dados pode ser transferida por meio de
vrias sub-redes (MPI, K-Bus, Profibus e Ethernet Industrial).
Blocos de funo do sistema (SFBs) so utilizados como interface de
programao. Estes SFBs somente so integrados no sistema operacional
das CPUs S7-400, eles no existem no S7-300.
Ao lado da funo de transmisso dados, este servio de comunicao
tambm contem funes de controle como START e STOP do PLC parceiro.
A comunicao implementada atravs da configurao de conexes (tabela
de conexo). Estas conexes so configuradas durante a energizao da
estao e permanentemente continuar a existir.
Date: 04.10.2007
File: PRO2_10P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programa
controlado via
MPI, K-Bus,
Profibus ou
Ethernet Industrial
Programa
controlado via
MPI ou K-Bus
Servios de Comunicao S7 para S7-300/400
Dados Globais
Dados Globais
Comunicao Bsica sem
configurao de conexo
Comunicao Bsica sem
configurao de conexo
Comunicao Expandida atravs
de conexes configuradas
Comunicao Expandida atravs
de conexes configuradas
Sistemas
operac.
CPUs
Sistemas
operac.
CPUs
Sistemas
operac.
CPUs
Sistemas
operac.
CPUs
Programas controlados e/ou cclicos
atravs da MPI ou K-Bus
SFC
SFC
SFC
SFC
SFB
SFB
SFB
SFB
Funes PG e IHM
Funes PG e IHM
Sistemas
operac.
CPUs
Sistemas
operac.
CPUs
Controle atravs sistema operacional
pela MPI, K-Bus, Profibus e
Ethernet Industrial
PG720
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 6
Conexes Uma conexo uma atribuio lgica de dois parceiros de comunicao para
execuo de servios de comunicao. A conexo diretamente ligada com o
servio de comunicao.
Cada conexo tem duas posies (em cada CPU em questo para conexes
S7 ou nas CPs para conexes FDL), as quais contem a informao
necessria para endereamento do parceiro da comunicao bem como os
atributos adicionais para a configurao da conexo.
Conexes podem ocupar um ou mais recursos de conexo nos mdulos de
comunicao participantes (CPUs, CPs, FMs) para cada uma das posies.
De forma a garantir uma configurao de conexo ordenada, as conexes
devem ser ativa em uma das pontas e passiva na outra ponta. De outra
forma, a conexo no pode ser estabelecida.
Aplicao Dependendo da escolha das funes de comunicao, cada conexo
configurada (Comunicao Expandida) ou no configurada (Comunicao
Bsica) so utilizadas.
Conexo Este tipo de conexo configurada com STEP 7. A conexo da posio final
Configurada atribuda uma ID local que, entre outras coisas, identifica sua prpria
informao de endereo e a de comunicao do parceiro.
Funes de comunicao que so inicializadas por um SIMATIC OP ou PC
tambm necessitam configuraes de conexes. Estas, deste modo, so
configuradas com sua prpria ferramenta (p.ex. ProTool ou COML).
Configuraes de conexes so configuradas por ns ativos durante
energizao e se mantem configuradas durante o tempo de operao vigente.
Conexes no Estas conexes so configuradas quando a funo de comunicao
chamada
configuradas e so disconectadas aps a transmisso dos dados serem completadas, se
necessrio.
Date: 04.10.2007
File: PRO2_10P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Conexo S7 atravs de Ethernet
PG720
Conexo PG
atravs de MPI
S7-400
S7-300
Conexo OP atravs
de PROFIBUS
Conexes entre Participantes da Comunicao
CP CPU 1
CP
PROFIBUS
Ethernet
Industrial
Ethernet
Industrial
MPI
PROFIBUS
Ethernet Industrial
CP CPU 2
Conexo S7
atravs de MPI
Conexo S7
atravs de PROFIBUS
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 7
Vista Geral Para as estaes participantes, recursos de conexo para a posio final ou
para a transio de posio (p.ex. CP) so necessrias para cada conexo. O
nmero dos recursos de conexo depende da CPU/CP.
Se todos os recursos de conexo de um parceiro de comunicao est
ocupada, uma nova conexo no pode ser estabelecida.
Funes S7 para Para as funes S7, atravs da interface integrada MPI-/PROFIBUS-DP, um
CPUs recurso de conexo para a posio final est ocupada por conexo S7 na
CPU.
Para as funes S7 atravs de uma interface CP externa, cada um dos
recursos de conexo est ocupado na CPU (para a posio final) e na CP
(transio de posio) por conexo S7.
Funes S7 para Para as funes S7, para um Mdulo de Funo (FM), atravs da interface
FMs interna MPI / PROFIBUS DP, dois recursos de conexo (para duas transies
de posio) esto ocupadas por conexo S7 nas CPUs S7-400 e nos
recursos de conexo cada uma das FMs (para a posio final) est ocupada.
Isto tambm vlido para cada CPU adicional (operao multi
processamento) com a mesma estao, por isto as CPUs adicionais so
conectadas indiretamente atravs do K-Bus com uma sub-rede MPI.
PG/OPs Cada conexo PG ou OP/TD necessita de um recurso de conexo na CPU
SIMATIC S7/M7. Normalmente, um recurso de conexo para cada conexo
de uma PG e um OP/TS est reservada para isto em cada CPU S7/M7.
Um recurso de conexo disponvel necessrio para cada conexo PG/OP
adicional. Se diversos PG/OPs esto conectados, o nmero de recursos de
conexo disponveis para funes S7 fica reduzido.
Date: 04.10.2007
File: PRO2_10P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
recurso livre p/ conexo
recurso de conexo ocupada
CPU
FM CPU
S7-300/400:
MPI ou interface
PROFIBUS DP
interno
S7-300/400:
Ethernet Industrial
ou PROFIBUS-CP
Atribuio de Recursos de Conexo para Comunicao S7
S7-400:
MPI ou
PROFIBUS DP
interno
FM CPU
S7-300:
PROFIBUS DP
interno
FM CPU
S7-300:
interface MPI
CP CPU
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 8
Recursos de As CPs possuem os seguintes nmeros de recursos de conexo :
conexo CP
Para CPs S7-300 CP 343-1 CP 343-1 TCP CP 342-5 CP 343-5
16 funes S7 16 funes S7 16 funes S7 16 funes S7
16 ISO-Trans 16 TCP/IP 16 FDL 16 FDL
16 FMS
Para CPs S7-400 CP 443-1 CP 443-1 TCP CP 443-5 CP 443-5
Extended Basic
48 funes S7 48 funes S7 32 funes S7 32 funes S7
64 ISO-Trans. 64 TCPIP 32 FDL 32 FDL
32 FMS
Funes S7: para funes S7 atravs de PG/OPs ou SFBs
ISO-Trans.: conexo ISO transport
TCP/IP: conexo ISO-on-TCP
FDL: conexo FDL
FMS: conexo FMS
Date: 04.10.2007
File: PRO2_10P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Dados Caractersticos das CPUs S7 - Comunicao
CPU 312 IFM CPU 313 CPU 314 CPU 315/-2 DP CPU 316 CPU 318-2
1 PG 1 PG 1 PG 1 PG 1 PG 1 PG
1 OP 1 OP 1 OP 1 OP 1 OP 1 OP
2 p/fun. S7 2 p/fun. S7 2 p/fun. S7 2 p/fun. S7 2 p/fun. S7 30 p/fun. S7
4 para SFCs 8 para SFCs 8 para SFCs 8 para SFCs ou 30 para SFCs
CPU 412-1 CPU 413-1/2 DP CPU 414-1/2 DP CPU 416-1/2DP CPU 417-4
1 PG 1 PG 1 PG 1 PG 1 PG
1 OP 1 OP 1 OP 1 OP 1 OP
14 p/fun. S7 14 p/fun. S7 30 p/fun. S7 62 p/fun. S7 62 p/fun. S7
ou ou ou ou ou
14 para SFCs 14 para SFCs 30 para SFCs 62 para SFCs 62 para SFCs
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 9
Vista Geral Voc pode trocar pequenas quantidades de dados, entre uma CPU S7/M7-
300/400 e um mdulo de comunicao adicional, com os SFCs de
comunicao para conexes no configuradas.
Os parceiros de comunicao devem individualmente ser conectados na
mesma sub-rede MPI ou serem acessados com a mesma estao atravs do
K-Bus ou PROFIBUS DP.
Uma conexo configurada no necessria.
Conexo Quando um SFC de comunicao chamado, uma conexo est
dinamicamente configurada para o parceiro de comunicao endereado e
aps completar a transmisso, dependendo do parmetro atribudo
(parmetro: CONT) disconectada. Para a conexo configurada,
necessrio um recurso de conexo disponvel para cada parceiro de
comunicao.
Se em uma chamada de SFC, nenhum recurso de conexo est disponvel,
ento um nmero de erro correspondente retornado para o usurio em
RET_VAL.
J existindo conexes, as SFBs de comunicaes no podem ser utilizadas.
Se a CPU ativa vai para o estado de Stop durante uma transmisso de dados,
as conexes existentes so disconectadas.
As SFCs de comunicao no devem ser apagadas em modo RUN, uma vez
que os recursos de conexo estejam ocupados devam possivelmente no ser
habilitadas (mudanas de programa somente em estado STOP).
Tamanho dos A quantidade de dados transmissveis de usurio de um mximo de 76
bytes
Dados do usurio para todas as CPUs S7/M7/C7.
Date: 04.10.2007
File: PRO2_10P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFCs de Comunicao: Vista Geral
Troca de dados utilizando a sub-rede MPI ou com a estao
Nenhuma configurao de conexo necessria em comparao a comunicao com
uso dos SFBs
A conexo com o parceiro dinamicamente configurada e disconectada
Dados do usurio at 76 bytes
Pode ser utilizada em todas as CPUs S7-300/400
Variveis tambm podem ser lidas e escritas no S7-200 atravs do PROFIBUS DP
(X_GET, X_PUT)
Os parceiros de comunicao tambm podem ser encontrados em outro projeto S7
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 10
Vista Geral As SFCs de comunicao oferecem a possibilidade de uma transmisso de
dados reconhecidos utilizando conexes S7 no configuradas.
Com as SFCs de comunicao (X_...), voc pode enderear todos os
parceiros de comunicao na mesma sub-rede MPI, com as SFCs (I_...)
todos os parceiros de comunicao com um endereo de I/O (p.ex. FMs, etc.)
com a mesma estao.
Comunicao utilizando uma sub-rede MPI ento tambm possvel, se o
parceiro de comunicao encontrado em outro projeto S7.
O nmero de ns de comunicaes sucessivamente acessveis no
limitado.
Endereamento Em comunicao (X_...) utilizando uma sub-rede MPI, o endereamento do
parceiro toma lugar pela especificao do endereo MPI, em comunicao
(I_...) com a mesma estao, pela especificao do endereo lgico inicial do
mdulo (endereo I/O).
Se um mdulo tem um endereo base para entradas (endereos I) bem como
um para sadas (endereos Q), ento em uma chamada de SFC , o menor
dos dois deve ser pego.
Consistncia de O tamanho mximo da rea de dados que pode ser lida (X_PUT, I_PUT) e
dados escrita (X_GET, I_GET) como um bloco relacionado pelo sistema operacional
com CPUs S7-300/400, designado como consistncia de dados.
Com S7-300/400, a consistncia de dados :
CPUs S7-300: 8 Bytes
CPUs S7-400: 32 Bytes
Ento, por exemplo, um array de dados tipo byte, word ou double word pode
ser transmitido consistentemente at o tamanho mximo.
Date: 04.10.2007
File: PRO2_10P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFCs de Comunicao: Vista Geral dos Blocos
SFC
SFC 65
NAME Short Description
X_SEND Bloco Send para envio de dados para o bloco X_RCV (Client)
SFC 66 X_RCV Bloco Receive para recebimento de dados p/o bloco X_SEND
X_GET L dados do PLC parceiro SFC 67
X_PUT Escreve dados do PLC parceiro SFC 68
X_ABORT Aborta conexo existente SFC 69
I_GET L dados da CPU parceira SFC 72
I_PUT Escreve dados da CPU parceira SFC 73
I_ABORT Aborta conexo da CPU parceira SFC 74
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 11

Parmetros da SFC 67 X_GET
Parmetros Modo Tipo Significado
REQ INPUT BOOL
(I,Q,M,D,L,const.)
Ativa uma transferncia com sinal 1
CONT INPUT BOOL
(I,Q,M,D,L,const.)
CONT=0 disconecta conexo
CONT=1 conecta remanescente
DEST_ID INPUT WORD
(I,Q,M,D,L, const.)
Endereo MPI do parceiro
VAR_ADDR INPUT ANY
(I,Q,M,D)
Referncia para rea (CPU remota), de
onde os dados so lidos
RET_VAL OUTPUT INT
(I,Q,M,D,L)
Retorno do valor com o cdigo de erro
BUSY OUTPUT BOOL
(I,Q,M,D)
BUSY=1 Funo envio operando
BUSY=0 Funo envio completada
RD OUTPUT ANY
(I,Q,M,D,L)
Referncia para rea (CPU local), na qual os
dados lidos so escritos

Descrio Com a SFC 67 (X_GET), voc pode ler dados de um parceiro de
comunicao que no est na estao S7 local. No existe SFC
correspondente no parceiro de comunicao.
O job leitura ativado aps a chamada do SFC com REQ=1. Depois disto,
voc continua a chamar a SFC at que a recepo do dado esteja indicada
pelo BUSY=0. RET_VAL ento contem o comprimento do bloco de dados
recebido em bytes.
Assegure-se que a rea de recepo definida pelo parmetro RD (na CPU de
recepo), seja pelo menos to longa quanto a rea definida a ser lida pelo
parmetro VAR_ADDR (no parceiro de comunicao). O tipo de dado RD e
VAR_ADDR devem tambm combinar.
Date: 04.10.2007
File: PRO2_10P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFCs de Comunicao: Bloco X_GET (SFC 67)
Representao STL Representao LAD/FBD
Exemplo com parmetros atribudos
SFC65 (X_GET)
REQ RET_VAL
BUSY
CONT
DEST_ID
VAR_ADDR
CALL SFC 67
REQ:= I 0.4 //Gatilho
CONT:= FALSE //Disc. conexo
DEST_ID:= W#16#3 //Endereo MPI
VAR_ADDR:= P#M20.0 BYTE 10 //Var. Remota
RET_VAL:= MW100 //Cdigo de erro
BUSY:= M 4.1 //SFC ativa
SD:= P#M0.0 BYTE 10 //Varivel Local
RD
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 12

Parmetros da SFC 68 X_PUT
Parmetros Modo Tipo Significado
REQ INPUT BOOL (I,Q,M,D,L,
Const.)
Ativa uma transferncia com sinal 1
CONT INPUT BOOL
(I,Q,M,D,L,Const.)
CONT=0 disconecta conexo
CONT=1 conecta remanescente
DEST_ID INPUT WORD
(I,Q,M,D,L, Const.)
Endereo MPI do parceiro
VAR_ADDR INPUT ANY
(I,Q,M,D)
Referncia para rea (CPU remota) na qual
est escrevendo
SD INPUT ANY
(I,Q,M,D)
Referncia para rea (CPU local), que
contem os dados a serem transferidos
RET_VAL OUTPUT INT
(I,Q,M,D,L)
Retorno do valor com o cdigo de erro
BUSY OUTPUT BOOL
(I,Q,M,D)
BUSY=1 Funo envio operando
BUSY=0 Funo envio completada

Descrio Com a SFC 68 (X_PUT), voc pode ler dados de um parceiro de
comunicao que no est na estao S7 local. No existe SFC
correspondente no parceiro de comunicao.
O job leitura ativado aps a chamada do SFC com REQ=1. Depois disto,
voc continua a chamar a SFC at que o reconhecimento seja recebido com
BUSY=0.
Assegure-se que a rea de envio definida pelo parmetro RD (na CPU de
envio), seja do mesmo tamanho que a rea definida a ser lida pelo parmetro
VAR_ADDR (no parceiro de comunicao). O tipo de dado SD e VAR_ADDR
devem tambm combinar.
Date: 04.10.2007
File: PRO2_10P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFCs de Comunicao: Bloco X_PUT (SFC 68)
Representao STL Representao LAD/FBD
Exemplo com parmetros atribudos
SFC68 (X_PUT)
REQ RET_VAL
BUSY
CONT
DEST_ID
VAR_ADDR
CALL SFC 68
REQ:= I 0.5 //Gatilho
CONT:= FALSE //Disc. conexo
DEST_ID:= W#16#3 //Endereo MPI
VAR_ADDR:= P#M20.0 BYTE 10 //Var. Remota
SD:= P#M0.0 BYTE 10 //Varivel Local
RET_VAL:= MW100 //Cdigo de erro
BUSY:= M 4.1 //SFC ativo
SD
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 13
Descrio Com a SFC 65 (X_SEND), voc pode enviar dados de um parceiro de
comunicao que est do lado de fora da estao S7 atual. Dados recebidos
no parceiro de comunicao ocorre atravs da SFC 66 (X_RCV).
Voc pode identificar seu dado enviado com o parmetro de entrada REQ_ID.
Este identificador de job tambm transmitido. Voc pode disponibiliz-lo ao
parceiro de comunicao, de forma a determinar a origem do dado.
A funo de envio ocorre aps a chamada da SFC com REQ=1.
Voc deve se assegurar que o envio da rea (na CPU que envia) definida
atravs the parmetro SD is smaller ou the mesma as the receive rea (at the
comunicao parceiro) definida atravs the parmetro RD.
Date: 04.10.2007
File: PRO2_10P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFCs de Comunicao: Bloco X_SEND (SFC 65)
Representao STL Representao LAD/FBD
Exemplo com parmetros atribudos
SFC65 (X_SEND)
REQ RET_VAL
BUSY
CONT
DEST_ID
SD
REQ_ID
CALL SFC 65
REQ:= M4.0 //Gatilho
CONT:= FALSE //Disc. conexo
DEST_ID:= W#16#4 //Ender. MPI
REQ_ID:= DW#16#1 //Identificador
SD:= P#M20.0 BYTE 10 //Varivel
RET_VAL:= MW40 //Cdigo de erro
BUSY:= M 4.1 //SFC activa
Parmetros da SFC 65 X_SEND
Parmetros Modo Tipo Significado
REQ INPUT BOOL (I,Q,M,D,L,
Const.)
Ativa uma transferncia com sinal 1
CONT INPUT BOOL
(I,Q,M,D,L,Const.)
CONT=0 disconecta conexo
CONT=1 conecta remanescente
DEST_ID INPUT WORD
(I,Q,M,D,L, Const.)
Endereo MPI do parceiro
REQ_ID INPUT DWORD
(I,Q,M,D,L, const.)
Solicita um ID para identificar os dados
do parceiro
SD INPUT ANY
(I,Q,M,D)
Referncia para rea de envio
RET_VAL OUTPUT INT
(I,Q,M,D,L)
Retorno do valor com o cdigo de erro
BUSY OUTPUT BOOL
(I,Q,M,D)
BUSY=1 Funo envio operando
BUSY=0 Funo envio completada

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 14
Descrio Com a SFC 66 (X_RCV) voc recebe dados que um ou mais parceiro(s) de
comunicao enviam com a SFC 65 (X_SEND). Este (estes) parceiro(s) de
comunicao esto do lado de fora da estao S7 atual.
Com a SFC 66 (X_RCV) voc pode:
Determinar se neste momento (instante) os dados enviados esto
disponveis. Estes estavam, se necessrio, alocados em uma fonte interna
no sistema operacional.
Copiar o bloco de dados mais velho, que est disponvel na fonte, em uma
rea de recebimento especificada por voc.
A seleo ocorre atravs do parmetro de entrada EN_DT (habilita
transferncia de dados).
Date: 04.10.2007
File: PRO2_10P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFCs de Comunicao: Bloco X_RCV (SFC 66)
Representao STL Representao LAD/FBD
Exemplo com parmetros atribudos
SFC66 (X_RSV)
EN_DT RET_VAL
REQ_ID
CALL SFC 66
EN_DT:= TRUE //Gatilho trans. dados
RET_VAL:= MW 50 //Cdigo de erro
REQ_ID:= MD52 // ID do Job
NDA:= M40.0 //Dados disponveis
RD:= P#M20.0 BYTE 10 //Varivel
NDA
RD
Parmetros da SFC 66 X_RCV
Parmetros Modo Tipo Significado
EN_DT INPUT BOOL
(I,Q,M,D,L, const.)
EN_DT=0 verifica qual bloco de dado est
presente
EN_DT=1 copia bloco de dado para memria
RET_VAL OUTPUT INT
(I,Q,M,D,L)
Retorna valor com o cdigo de erro.
REQ_ID OUTPUT DWORD
(I,Q,M,D,L)
Solicita identificador para a SFC X_SEND 66,
cujos dados esto presentes na primeira
posio da fonte
NDA OUTPUT BOOL
(I,Q,M,D,L)
NDA=0 nenhum bloco de dados presente
NDA=1 pelo menos um bloco de dados
presente (para EN_DT=1) ou bloco de dados
foi copiado para memria (EN_DT=1)
RD OUTPUT ANY
(I,Q,M,D)
Referncia para rea de recebimento

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 15
Vista Geral Os blocos SFB esto disponveis em todas as CPUs S7-400 e so utilizados
para trocar dados com as CPUs S7/M7-300/400. Dados at 64 Kbytes podem
ser transferidos deste modo por vrias sub-redes (MPI, Profibus, Ethernet
Industrial) com estes blocos.
Conexes Os SFBs de comunicaes oferecem a possibilidade para uma transmisso
de dados protegidos utilizando as conexes S7 configuradas. A configurao
destas conexes ocorrem com a ajuda da ferramenta Netpro" (configurador
de conexes), o qual opera em conjunto com o SIMATIC Manager.
As configuraes de conexes so realizadas durante o RESTART
COMPLETO das estaes e ficam permanentemente, exceto quando a
estao vai para o modo STOP. Durante um restart, as conexes no so
configuradas novamente.
comunicao is exclusively possvel entre estaes of an S7-Project. The
comunicao parceiros must be conectada on a common MPI-, PROFIBUS-
ou Industrial Ethernet sub-rede.
SFBs As interfaces para comunicao S7 para o programa do usurio no SIMATIC
S7 formam blocos S7 especiais do tipo SFB. Os SFBs so orientados pelo
padro ISO/IEC 1131-5 e oferecem uma interface uniforme para o usurio.
As conexes devem ser configuradas para a comunicao. Os nmeros de
conexo referenciam a atribuio de ns e o meio de transmisso por meio
dos Nmeros de Identificao. Estes Nmeros de Identificao so tratados
como parmetro de bloco "ID" durante uma chamada de SFB.
Dados do Usurio O tamanho dos dados do usurio depende do bloco utilizado e do parceiro de
comunicao :
PUT/GET 160 bytes para o S7-300 e 400 bytes parao S7-400/M7
USEND/UREC at 440 bytes
BSEND/BRCV at 64KBytes
Date: 04.10.2007
File: PRO2_10P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Vista Geral
Troca de dados utilizando MPI, K-Bus, Profibus ou Ethernet Industrial
Configurao das conexes atravs da tabela de conexo
As conexes so configuradas durante o restart completo e existem
permanentemente (exceto no modo STOP)
Tamanho dos dados do usurio at 64 KBytes
Servios de comunicaes tambm para controle (Stop, Start) do parceiro
SFBs existem para todas CPUs S7-400
Dados tambm podem ser lidos e escritos por um S7-300 (GET/PUT)
Diferentes tarefas podem ser manipuladas atravs de uma conexo
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 16
SFBs: S7- 400 Os SFBs para comunicao S7 esto integradas como blocos de funo do
sistema (SFBs) no sistema operacional das CPUs S7-400.
Para integrao ao programa do usurio, o usurio pode localizar os
cabealhos de blocos na Standard Library V3.x na pasta de programa S7
System Function Blocks.
SFBs: S7 - 300 O S7-300 no dispe de SFBs para comunicao expandida. Deste modo, o
sistema operacional das CPUs S7-300 suportam a funcionalidade server dos
servios de comunicao S7 de mo nica. Ento, por exemplo, dados de
uma CPU 3xx podem ser lidos ou escritos por uma CPU 4xx com a ajuda dos
blocos GET e PUT.
Classes de Funo Os blocos podem ser subdivididos em um total de 4 funo classes:
Funes envio e recepo
Funes de controle
Funes de monitorao
Funo de verificao
SFBs para Os SFBs para troca de dados so utilizados para comunicao de dados
entre
troca de dados dois parceiros com capacidade de comunicao (S7/M7-CPUs, M7-FMs):
GET, PUT (leitura e escrita de variveis em mo nica)
USEND/URCV (mo dupla, envio/recepo sem coordenao)
BSEND/BRCV (mo dupla, envio/recepo de blocos)
SFBs para Os SFBs para gerenciamento de programas so utilizados para o controle e
gerenciamento de avaliao do estado operacional do equipamento parceiro ou das conexes.
programas START/STOP/RESUME (funes de controle )
STATUS/USTATUS (funes de monitorao)
CONTROL (funo de verificao)
Date: 04.10.2007
File: PRO2_10P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Vista Geral dos Blocos
SFB/SFC
SFB 8
NOME Descrio abreviada
USEND Bloco de Envio p/envio de dados ao bloco URCV (Client)
SFB 9 URCV
Bloco de Recebimento p/recebimento de dados do bloco
USEND
BSEND
Bloco de Envio p/envio de grandes blocos de dados p/
bloco BRCV (at 64 KByte)
SFB 12
BRCV
Bloco de Recebimento p/recebimento de grandes blocos de
dados (at 64 Kbyte)
SFB 13
GET Leitura de dados do PLC parceiro SFB 14
Tipo de Com.
mo dupla
mo dupla
mo dupla
mo dupla
mo nica
PUT Escrita de dados para o PLC parceiro SFB 15 mo nica
PRINT Envio de dados para impressora remota SFB 16 mo nica
START Realiza restart completo no parceiro SFB 19 mo nica
STOP Coloca o parceiro em modo Stop SFB 20 mo nica
RESUME Realiza restart no parceiro SFB 21 mo nica
STATUS
Verifica o estado do parceiro
(RUN, STOP, start-up, hold)
SFB 22 mo nica
USTATUS Recebe menssagens de estado do parceiro SFB 23 mo nica
CONTROL verifica o estado interno de uma conexo S7 + SFB SFC 62 ---
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 17
Vista Geral Ento os SFBs, nos respectivos parceiros de comunicao, podem comunicar
com cada outro, as conexes S7 devem antes de mais nada serem
configuradas.
As conexes S7 podem ser configuradas para redes de comunicao MPI,
Ethernet Industrial e PROFIBUS.
Conexes S7 de De uma S7-400 para uma S7-300, as conexes S7 de mo nica so
mo nica automaticamente ajustadas pela ferramenta de configurao. Para conexes
de mo nica, uma conexo ID local para identificao da conexo, isto , o
parceiro de comunicao e o meio de transmisso, esto atribudos somente
no lado da S7-400 (lado Client).
Nenhum ID de conexo atribudo no lado da S7-300, desde que os SFBs
para endereamento da conexo de comunicao no esto localizadas no
sistema operacional na CPU S7-300.
Somente os servios de comunicao de mo nica podem ser chamados
atravs de conexes de mo nica. Uma chamada do SFB correspondente
somente necessria no lado do Client (S7-400) para servios de
comunicao de mo nica. Nos outros parceiros de comunicaes (Server),
o servio completamente executado pelo sistema operacional. O trabalho de
programao pelo lado do usurio no necessrio no lado Server.
As conexes S7 de mo nica so sempre configuradas pelo Client durante o
start-up.
SFBs de "mo nica" Os SFBs que so considerados de servios de comunicao de mo nica
so:
GET, PUT
STOP, START, RESUME
STATUS, USTATUS
Com servios de comunicao de mo nica, o programa do usurio no lado
Server no informado quando um novo dado tiver sido transmitido.
Date: 04.10.2007
File: PRO2_10P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Servios de Comunicao de mo nica utilizando Conexes S7
SFB:
- GET
- PUT
- STOP
- START
- STATUS
Sistema
Operacional
das CPUs
S7-400
MPI=3
S7-300/400
Conexo S7 Lgica
(mo nica ou mo dupla)
MPI=2
CPU
MPI=2
CPU
MPI=2
1
ID Local
conexo fsica,
p.ex. MPI
1
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 18
Conexes S7 As conexes S7 de mo dupla so automaticamente ajustadas na
configurao
de mo dupla das conexes S7 entre duas CPUs S7-400. Uma ID de conexo atrubuda
em cada lado da conexo de mo dupla. Ambos os lados podem ento
referenciar a conexo utilizando este ID de conexo.
Ento, cada um dos dois parceiros pode aparecer como o Initiator (Client) de
um servio de comunicao.
Os servios de comunicao de mo nica (PUT, GET, etc.) bem como os de
mo dupla podem ser completados utilizando conexes de mo dupla.
Com conexes S7 de mo dupla voc pode decidir em qual n configurado
initia a conexo configurada.
SFBs de "mo dupla" Os blocos
BSEND= Envio (Client) ==> BRCV Recebimento (Server)
USEND= Envio (Client) ==> URCV Recebimento (Server)
so considerados como SFBs de mo dupla.
Estes blocos devem sempre ser instalados em pares de blocos. As funes
de comunicaes de mo dupla ento so sempre instaladas quando um
dado transferido utilizado para o seqente processamento especfico do
dado.
Se por um lado, o receptor (Server) pode determinar pela chamada do bloco
URCV ou BRCV, quando ele est pronto para receber um novo dado do
transmissor para processamento seguinte. Por outro lado, o receptor pode,
pela verificao dos parmetros SFB #NDR (Novo Dado Recebido), ser
informado se os novos dados foram recebidos.
Date: 04.10.2007
File: PRO2_10P.18
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Servios de Comunicao de mo dupla utilizando Conexes S7
SFB:
- USEND
- URCV
- BSEND
- BRCV
SFBs
- URCV
- USEND
- BRCV
- BSEND
S7-400
MPI=3
S7-400
Conexo S7 Lgica
(mo dupla)
MPI=2
CPU
MPI=2
CPU
MPI=2
2
ID Local
Conexo fsica,
p.ex. MPI
2
1
1
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 19
Introduo Uma configurao grfica de redes de comunicao (MPI, Profibus ou
Ethernet Industrial ) pode ser executada com a ajuda da ferramenta
"NETPRO". A vantagem demonstra na clareza, documentao e a fcil
chamada das ferramentas participantes como a de configurao de Hardware.
Chamada A chamada das ferramentas feita com um duplo click no smbolo da rede de
comunicao, por exemplo, MPI no SIMATIC Manager.
Inserir estao HW No catlogo voc encontrar os componentes necessrios como sub-redes e
estaes, que voc pode inserir com auxlio do mouse (marca e arrasta).
Configurando HW Aps voc ter inserido as estaes, voc pega a ferramenta "Configure
Hardware" atravs de duplo-clique no "smbolo de Hardware " da estao.
Aqui, voc pode inserir os mdulos nas estaes e atribuir parmetros para
eles. Para a CPU voc pode, entre outras coisas, tambm ajustar o endereo
MPI e a conexo para a sub-rede.
Antes voc pode configurar conexes, todas as estaes participantes devem
ser lincadas com a sub-rede correspondente.
Propriedades da CPU Atravs de duplo clique na CPU com uma estao mostrada, voc chega
diretamente ao dilogo "propriedades- CPU". Aqui voc pode ajustar as
propriedades da CPU, como a para rede de comunicao, memria para
osciladores, etc.
Notar: Quando voc transfere os dados de configurao para a CPU aps t-
la configurando com successo com o NETPRO, os parmetros da CPU, cuja
conexo rede de comunicao, memria para osciladores etc. no so
transmitidos para a CPU.
Dados de configurao da CPU, que foram modificados com NETPRO devem
ser transferidos utilizando a ferramenta HW Config!
Date: 04.10.2007
File: PRO2_10P.19
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurao de Redes de Comunicao com NETPRO
Duplo click
Inserir estaes de HW
Duplo click
Duplo click
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 20
Vista Geral O estabelecimento das conexes de comunicao necessrias um pr-
requisito para a troca de dados controlada pelo programa utilizando SFBs.
Todas as conexes que saem para fora de um mdulo so mostradas na
tabela de conexo pertencentes ao mdulo.
Gerao de Conexes para parceiros distantes somente podem ser ajustadas, quando as
conexes estaes local e distante so conectadas a mesma sub-rede.
Para inserir uma nova conexo, proceda como abaixo:
1. Nos campos Station" e Modul" seleciona-se os mdulos programveis,
com os quais voc abre uma conexo (estao local).
2. Duplo clique em uma linha vazia na tabela de conexo ou selecionando a
opo de menu Insert -> Conection... O dilogo "New Conection" aberto.
3. Nos campos Station" e Modul" seleciona-se os mdulos programveis,
com os quais uma conexo estabelecida (parceiro de conexo ou
tambm chamada "Remote Station").
4. No campo Type seleciona-se o tipo de conexo: S7 Conection.
5. Ativar a caixa de verificao "Show propriedades dilogo Box", se aps
"OK" ou "Add voc deseja procurar ou mudar as propiredades de conexo.
6. Confirme suas entradas clicando no boto "OK".
Resultado: O STEP 7 insere a conexo na tabela de conexes da estao local e acenta
o ID Local e, se necessrio, o ID do parceiro para esta conexo. Voc requer
estes IDs para programao dos SFBs de comunicao (valor para o
parmetro de bloco ID).
Date: 04.10.2007
File: PRO2_10P.20
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurao de Conexes S7
Selecionar
Inserir conexo
CPU Remota
Estao Remota
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 21
Vista Geral Ao lado do estabelecimento do parceiro de conexo e do tipo de conexo,
voc pode, dependendo do tipo de conexo estabelecer propriedades
adicionais.
Estabelecendo Objetivando estabelecer propriedades especiais dos objetos da conexo de
Propriedades Objeto comunicao, proceder como abaixo:
1. Marcar a conexo para qual voc deseja estabelecer propriedades do
objeto.
2. Selecionar a opo do menu Edit -> Object propriedades. O dilogo
"Object propriedades aberto.
Neste dilogo voc pode estabelecer as seguintes propriedades.
Ajustar uma Voc pode decidir qual dos dois ns ir prevalecer na configurao de
conexo ativa conexo com um restart completo.
Enviando Mensagens Quando ativado, o n local envia sua mensagem de modo operacional
do Modo Operacional (STOP,START, HOLD,.....) para o parceiro ou para SFB 23: USTATUS para
CPU parceira.
ID Local O ID local da conexo mostrada aqui. Voc pode mudar o ID local. Isto ir
fazer sentido, se voc j tiver programado SFBs de comunicao e voc
tambm deseja usar o ID programado na chamada para a identificao da
conexo.
Voc insere o novo ID local como um nmero hexadecimal. Ele deve ser
numa faixa de valores de 1 a FFF para uma conexo S7 e no pode j ter
sido atribuda.
Conexes da Rede Estes campos mostram atravs de qual caminh a troca de dados ocorre se
de Comunicao diversos caminhos de comunicao (sub-redes) existem entre os dois ns,
uma escolha pode ser feita atravs de qual caminho de comunicao a troca
de dados ser completada.
Date: 04.10.2007
File: PRO2_10P.21
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estabelecendo Propriedades de Conexo
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 22
Compilando e Antes de voc poder transferir os dados da conexo para cada estao
Salvando (transferir para o PLC), a tabela de conexo deve ser salva no NETPRO e
compilada com os dados de conexo. Isto ocorre com a ajuda da opo do
menu File -> Save e Compile.
No campo de dilogo que se abre, voc pode selecionar entre duas
alternativas:
Compile and Check All : Salva todas as conexes e verifica todas as
conexes para consistncia com um projeto. Todas as conexes so
compiladas e guardadas nos dados do sistema. No caso de inconsistncia,
um campo de dilogo aparece no qual os erros so mostrados.
Selecionandot "Compile and Check All ", se voc tiver feito mudanas na
configurao da rede de comunicao (p.ex. alterado endereos do ns,
apagado ns ou sub-rede). possvel que conexes antigas existam e
somente Compile All and Check d esta informao.
Compile Changes Only: Salva todas as conexes do projeto e compila estas
conexes que foram alteradas desde a ltima execuo do Save and
Compile.
Quando voc termina a configurao de conexo, um pergunta aparece na
tela, questionando se os dados alterados esto sendo salvos ou no. Aps o
reconhecimento da pergunta com "Yes", os dados da conexo alterada so
salvos e compilados para os dados do sistema.
Transferindo os Aps salvar a tabela de conexes, os dados de conexo resultantes devem
dados da ser transferidos para os mdulos participantes. A transferncia da tabela de
configurao conexo para os mdulos possvel atravs das interfaces MPI, PROFIBUS
ou Ethernet Industrial do mdulo.
Existem cinco caminhos para transferir os dados para os PLCs:
Download, estao Local (menu PLC)
Download, estaes Local e parceira (menu PLC)
Download, conexes Marcadas
(para mais informaes: ver ajuda On-line)
Date: 04.10.2007
File: PRO2_10P.22
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Compilando e Transferindo os Dados de Configurao
Salva e Compila
Transferncia
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 23
Vista Geral Com o SFB14 (GET) voc pode ler dados de uma CPU remota.
Com uma transio positiva na entrada de controle REQ, uma tarefa de leitura
enviada CPU parceira. O parceiro remoto retorna o dado.
Se nenhum erros ocorrer, os dados recebidos so copiados para a rea
configurada de recebimento (RD_i) em uma nova chamada do SFB. O
trmino da tarefa indicada por um 1 no estado do parmetro NDR.
Date: 04.10.2007
File: PRO2_10P.23
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Bloco GET (SFB 14)
Representao STL
CALL GET, I_GET //Com DB Instance
REQ:=I 0.2 //Partida
ID:=W#16#1 //Nmero da conexo
NDR:=#NDR_FLAG //Novo dado recebido
ERROR:= #ERROR_F //End. com erro
STATUS:= #STATUS_W //Inform. adicional
ADDR_1:=P#I 0.0 BYTE 1 //1. var. remota
ADDR_2:=P#I 4.0 WORD 1 //2. var. remota
ADDR_3:= //3. var. remota
ADDR_4:= //4. var. remota
RD_1:=P#Q 0.0 BYTE 1 //1. var. local
RD_2:=P#Q 4.0 WORD 1 //2. var. local
RD_3:= //3. var. local
RD_4:= //4. var. local
Representao LAD
DB14 (DB Instance)
SFB14 (GET)
EN ENO
REQ
NDR
ERROR
ID
STATUS
ADDR_1
ADDR_2
ADDR_3
ADDR_4
RD_1
RD_2
RD_3
RD_4
Exemplo com parmetros atribudos

Parmetor Modo Tipo Significado
REQ INPUT BOOL
(I,Q,M,D,L
constant)
Ativa uma transferncia com uma transio positiva
ID INPUT WORD
(I,Q,M,D,L
constant)
Referencia a tabela de conexo ao nmero da
conexo
ADDR_1
...
ADDR_4
IN_OUT ANY
(I,Q,M,D)

Ponteiro para as reas na CPU parceira a ser lida
RD_1
...
RD_4
IN_OUT ANY
(I,Q,M,D)
Ponteiro para as rea em sua prpria CPU na qual os
valores lidos esto sendo armazenadas.
(rea de dados da CPU parceira ADDR_1 ==>
RD_1- rea de dados em sua prpria CPU
NDR OUTPUT BOOL
(I,Q,M,D,L)
Pulso de transio positivo sinaliza ao programa do
usurio que existem novos dados recebidos
disponveis. Data transferred from the partner CPU
without errors.
ERROR OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva sinaliza erros (pulso).
STATUS OUTPUT WORD
(I,Q,M,D,L)
Contem uma isntruo detalhada de erro ou aviso
(decimal).

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 24
Vista Geral Com o SFB15 (PUT), voc pode escrever dados em uma CPU remota.
Com uma transio positiva na entrada de controle REQ, os ponteiros para as
reas a serem escritas (ADDR_i) e os dados (SD_i) so enviados para a CPU
parceira. O parceiro remoto salva os dados necessrios sobre os endereos
fornecidos com os dados e retorna uma execuo de reconhecimento.
Date: 04.10.2007
File: PRO2_10P.24
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Bloco PUT (SFB 15)
Representao STL
CALL PUT, I_PUT(DB Instance)
REQ:=I 0.3 //Partida
ID:=W#16#1 //Nmero conexo
DONE:= #DONE_F //Trmino c/Sucesso
ERROR:= #ERROR_F //Trmino com erro
STATUS:= #STATUS_W //Informao trmino
ADDR_1:=P#Q 12.0 WORD 1 //1. var. remota
ADDR_2:= //2. var. remota
ADDR_3:= //3. var. remota
ADDR_4:= //4. var. remota
SD_1:=P#I 2.0 WORD 1 //1. var. local
SD_2:= //2. var. local
SD_3:= //3. var. local
SD_4:= //4. var. local
Representao LAD
DB15 (DB Instance)
SFB15 (PUT)
EN ENO
REQ
DONE
ERROR
ID
STATUS
ADDR_1
ADDR_2
ADDR_3
ADDR_4
SD_1
SD_2
SD_3
SD_4
Exemplo com parmetros atribudos

Parmetro Modo Tipo Significado
REQ INPUT BOOL
(I,Q,M,D,L
constant)
Ativa uma transferncia com uma transio
positiva
ID INPUT WORD
(I,Q,M,D,L
constant)
Referencia a tabelade conexo ao nmero da
conexo
ADDR_1
...
ADDR_4
IN_OUT ANY
(I,Q,M,D)

Ponteiro das reas de dados da CPU
parceira nas quais os dados da CPU que
envia esto sendo escritos
SD_1
...
SD_4
IN_OUT ANY
(I,Q,M,D)
Ponteiro das reas de dados em sua prpria
CPU a serem enviados CPU parceira.
(rea de dados de sua prpria CPU - SD_1
==> ADDR_1 rea de dados da CPU
parceira)
DONE OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva (pulso) sinaliza o programa
do usurio: transferncia concluda sem erros.
ERROR OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva (pulso) sinaliza erros
STATUS OUTPUT WORD
(I,Q,M,D,L)
Contem instrues detalhadas de erros ou
avisos (decimal).

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 25
Vista Geral O SFB 8 (USEND) envia dados para um parceiro remoto com SFB do tipo
"URCV (o parmetro R_ID deve ser idntico para ambos os SFBs). Os dados
so enviados seguindo uma transio positiva na entrada de controle REQ. A
funo executada sem coordenao co o SFB parceiro.
O dado a ser enviado referenciado pelos parmetros SD_1 a SD_4 mas
nem todos os quatros parmetros de envio necessitam ser utilizados.
Date: 04.10.2007
File: PRO2_10P.25
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Bloco USEND (SFB 8)
Representao STL
CALL USEND, I_USEND(DB Instance)
REQ:= I 0.4 //Partida
ID:=W#16#3 //Nmero conexo
R_ID:=DW#16#B1 //Bloco par
DONE:= #DONE_F //Trmino c/sucesso
ERROR:= #ERROR_F //Trmino com erro
STATUS:= #STATUS_W //Informao de erro
SD_1 :=P#DB3.DBX0.0 BYTE 100 //1. var. local
SD_2 :=P#DB3.DBX100.0 BYTE 100 //2. var. local
SD_3 :=P#DB3.DBX200.0 BYTE 100 //3. var. local
SD_4 :=P#DB3.DBX300.0 BYTE 154 //4. var. local
Representao LAD
DB 8 (DB Instance)
SFB 8 (USEND)
EN ENO
REQ
DONE
ERROR
ID
STATUS
R_ID
SD_1
SD_2
SD_3
SD_4
Exemplo com parmetros atribudos

Parmetro Modo Tipo Significado
REQ INPUT BOOL
(I,Q,M,D,L
constant)
Ativa uma transferncia com uma transio
positiva
ID INPUT WORD
(I,Q,M,D,L
constant)
Nmero da conexo do sistema S7 individual
(ver tabela de conexo)
R_ID INPUT WORD
(I,Q,M,D,L
constant)
O parmetro deve ser idntico para ambos
CFBs (USEND e URCV).
Atribuio do bloco par.
DONE OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva (pulso) sinaliza o programa
do usurio: transferncia concluda sem erros.
ERROR OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva (pulso) sinaliza erros
STATUS OUTPUT WORD
(I,Q,M,D,L)
Mostra o estado se ERROR = 1
SD_1
...
SD_4
IN_OUT ANY
(I,Q,M,D)
Ponteiros para aquelas reas de dados na
sua prpria CPU a ser enviada para CPU
parceira.
(rea de dados de sua prpria CPU SD_1
RD_1 a rea de dados da CPU parceira deve
estar de acordo em nmero, comprimento e
tipo de dado)

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 26
Vista Geral O SFB9 (URCV) recebe dados assncronamente de um SFB parceiro remoto
do tipo "USEND". (O parmetro R_ID deve se idntico em ambos SFBs). Se o
valor 1 aplicado entrada de controle EN_R quando o bloco chamado, os
dados recebidos so copiados para as reas de recepo configuradas. Estas
reas de dados so referenciadas pelos parmetros RD_1 a RD_4.
Quando o bloco primeiro chamado, a caixa de correio de entrada" criada.
Com todas as chamadas a seguir, o dado a ser recebido deve ser acentado
na caixa de correio de entrada.
Date: 04.10.2007
File: PRO2_10P.26
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Bloco URCV (SFB 9)
Representao STL
CALL URCV, I_URCV //com DB Instance
EN_R:= I 0.5 //Partida
ID:= W#16#3 //Conexo S7
R_ID:= DW#16#B1 //Bloco par
NDR:= #NDR_F //Novo dado recebido
ERROR:= #ERROR_F //Trmino com erro
STATUS:= #STATUS_W //Informao de erro
RD_1:=P#DB3.DBX0.0 BYTE 100 //1. var.
RD_2:=P#DB3.DBX100.0 BYTE 100 //2. var.
RD_3:=P#DB3.DBX200.0 BYTE 100 //3. var.
RD_4:=P#DB3.DBX300.0 BYTE 154 //4. var.
Representao LAD
DB 9 (DB Instance)
SFB 9 (URCV)
EN ENO
EN_R
NDR
ERROR
ID
STATUS
R_ID
RD_1
RD_2
RD_3
RD_4
Exemplo com parmetros atribudos


Parmetro Modo Tipo Significado
EN_R INPUT BOOL
(I,Q,M,D,L
constant)
ParaRLO = 1 os dados recebidos so
copiados para a rea de dados configurada
ID INPUT WORD
(I,Q,M,D,L
constant)
Nmero da conexo para a conexo do
sistema S7 individual
(ver tabela de conexo)
R_ID INPUT DWORD
(I,Q,M,D,L
constant)
Os parmetros devem ser idnticos para
ambos CFBs (USEND e URCV).
Atribuies dos blocos pares
NDR OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva (pulso) sinaliza o programa
do usurio: novos dados transferidos.
ERROR

OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva = erro (pulso)
STATUS OUTPUT BOOL
(I,Q,M,D,L)
Mostra estado se ERROR = 1
RD_1
...
RD_4
IN_OUT ANY
(I,Q,M,D)
Ponteiro da rea de dados na CPU a qual os
dados recebidos so armazenados.
(SD_i e RD_i devem ser de acordo com os
respectivos nmero, comprimento e tipo de
dado.)

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 27
Vista Geral O SFB12 (BSEND) envia dados para um SFB parceiro remoto di tipo "BRCV".
(O parmetro R_ID deve ser idntico nos SFBs correspondentes.). Com este
bloco pode-se transferir at 64 KByte de dados (aplicveis a todas as CPUs).
A tarefa de envio ativada aps a chamada do bloco e quando existe
transio positiva na entrada de controle REQ. A transmisso dos dados da
memria do usurio assncrona ao processamento do programa do usurio.
Date: 04.10.2007
File: PRO2_10P.27
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao: Bloco BSEND (SFB 12)
Representao STL
CALL BSEND, I_BSEND //Com DB Instance
REQ:= I 0.4 //Partida
R:= I 0.5 //Reseta BSEND
ID:=W#16#3 //Conexo S7
R_ID:=DW#16#B2 //Bloco par
DONE:= #DONE_F //Trmino c/ sucesso
ERROR:= #ERROR_F //Trmino com erro
STATUS:= #STATUS_W //Informao adicional
SD_1:=P#DB1.DBX0.0 BYTE 40000 //Dado enviado
LEN:= #DB_LEN //Comprimento do dado
Representao LAD
DB 12 (DB Instance)
SFB 12 (BSEND)
EN ENO
REQ
DONE
ERROR
R
STATUS
ID
R_ID
SD_1
LEN
Exemplo com parmetros atribudos

Parmetro Modo Tipo Significado
REQ INPUT BOOL
(I,Q,M,D,L
constant)
Ativa uma transferncia com uma
transio positiva.
R INPUT BOOL
(I,Q,M,D,L
constant)
Ativa resetando BSEND para o
estado inicial com uma transio
positiva
ID INPUT WORD
(I,Q,M,D,L
constant)
Nmero da conexo para a conexo
do sistema S7 individual
(ver tabela de conexes)
R_ID INPUT DWORD
(I,Q,M,D,L)
O parmetro deve ser idntico para
ambos CFBs (BSEND e BRCV).
Atribuio do bloco par
SD_1 IN_OUT ANY
(I,Q,M,D,L)
Dado a ser enviado, o comprimento
no ponteiro any no avaliado
LEN IN_OUT WORD
(I,Q,M,D,L)
Comprimento do bloco de dados a
ser transferido.
DONE OUTPUT BOOL
(I,Q,M,D,L)
Sinaliza o erro trmino livre do
BSEND requisitado (pulso) com uma
transio positiva.
ERROR OUTPUT BOOL
(I,Q,M,D,L)
Transio positiva sinaliza um erro
(pulso)
STATUS OUTPUT WORD
(I,Q,M,D,L)
Contem instrues detalhadas de
erros ou avisos.

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 28
Vista Geral O SFB13 (BRCV) recebe dados de um SFB parceiro remoto do tipo "BSEND".
(O parmetro R_ID deve ser idntico em ambos SFBs.) Aps ele ter sido
chamado e o valor 1 aplicado na entrada de controle EN_R, o bloco est
pronto para receber dados. O endereo de partida da rea de recepo
especificado pelo RD_1.
Aps o recebimento de cada segmento de dados, um reconhecimento
enviado ao SFB parceiro e o parmetro LEN atualizado. Se o bloco
chamado durante a recepo assoncrona dos dados, este fornece um aviso
no parmetro de sada STATUS; Se a chamada feita quando o valor 0
aplicado a entrada de controle EN_R, a recepo est terminada e o SFB
retorna seu valor de estado inicial. A recepo de segmentos de dados livre
de erros indicada pelo estado do parmetro NDR tendo o valor 1.
Date: 04.10.2007
File: PRO2_10P.28
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao : Bloco BRCV (SFB 13)
Representao STL
CALL BRCV, I_BRCV //Com DB Instance
EN_R:= I 0.4 //Partida
ID:=W#16#3 //Conexo S7
R_ID:=DW#16#B2 //Bloco par
NDR:= #NDR_F //Novo dado recebido
ERROR:= #ERROR_F //Trmino com erro
STATUS:= #STATUS_W //Informao adicional
RD_1:=P#DB2.DBX0.0 BYTE 40000 //Caixa correio Rec.
LEN:= #DB_LEN //Comprim. cx.correio Rec.
Representao LAD
DB 13 (DB Instance)
SFB 13 (BRCV)
EN ENO
EN_R
NDR
ERROR
ID
STATUS
R_ID
RD_1
LEN
Exemplo com parmetros atribudos
Parmetro Modo Tipo Significado
EN_R INPUT BOOL
(I,Q,M,D,Lconst.)
RLO = 1 SFB est pronto para receber.
RLO = 0 procedimento est cancelado
ID INPUT WORD
(I,Q,M,D,Lconst.)
Nmero da conexo da conexo do sistema S7
individual (ver tabela de conex)
R_ID INPUT DWORD
(I,Q,M,D,L
const.)
Os parmetros devem ser idnticos para ambos CFBs
(BSEND e BRCV) . Atribuio do bloco par
RD_1 IN_OUT ANY Ponteiro para caixa de correio de entrada. O
comprimento especificado determina o mximo
comprimento dos blocos a serem recebidos. (para
2048 words)
LEN IN_OUT WORD Comprimento dos dados recebidos at agora em
bytes
NDR OUTPUT BOOL Uma transio positiva sinaliza o programa do
usurio: novos dados recebidos aceitos
ERROR OUTPUT BOOL Uma transio positiva sinaliza erros (pulso)
STATUS OUTPUT WORD Contem instrues detalhadas dos erro ou um aviso

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 29
Vista Geral Se existe uma transio positiva na entrada de controle REQ, o SFB20
(STOP) ativa a mudana do estado STOP no equipamento remoto
endereado pelo ID. A mudana do modo possvel quando o equipamento
est em RUN, HOLD ou modo startup.
A execuo com sucesso da tarefa indicada com estado 1 no parmetro
DONE. Se qualquer erro ocorrer eles so indicados nos parmetros ERROR
e STATUS.
A mudana para o novo modo somente pode ser iniciada novamente no
mesmo equipamento remoto quando a primeira chamada do SFB 20 tiver sido
completada.
Date: 04.10.2007
File: PRO2_10P.29
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao : Bloco STOP (SFB20)
Representao STL Representao LAD/FBD
CALL "STOP","I_STOP" //DB Instance
REQ:= I 0.0 //Degrau de partida
ID:= W#16#1 //Nmero da conexo
PI_NAME:= P#M100.0 Byte 9 //Ver nota de rodap
IO_STATE:= //No usado
DONE:= #DONE_F_20 //Trmino c/sucesso
ERROR:= #ERROR_F_20 //Trmino com erro
STATUS:= #STATUS_W_20 //Informaes de erro
DB20 (DB Instance)
SFB20(STOP)
EN ENO
REQ DONE
ERROR ID
STATUS PI_NAME
IO_STATE
Exemplo com parmetros atribudos
* Detalhe da posio na memria para o incio do: 'P_PROGRAM''

Parmetro Modo Tipo Significado
REQ INPUT BOOL Com uma transio positiva, ativa-se o
STOP no equipamento endereado
pelo ID.
ID INPUT WORD
(I,Q;M,D,L,
constant)
Referencia a tabela e conexo ao
nmero da conexo.
PI_NAME IN_OUT ANY Ponteiro para rea de memria na qual
o nome do programa iniciado (cdigo
ASCII) est locado. O nome deve ser
P_PROGRAM para S7.
IO_STATE IN_OUT BYTE Argumento de execuo (no relevante)
DONE OUTPUT BOOL Transio positiva = funo executada
ERROR OUTPUT BOOL Transio positiva = erro
STATUS OUTPUT WORD Contem instrues detalhadas dos
erros ou avisos (decimal)

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 30
Vista Geral Se existe uma transio positiva na entrada de controle REQ, o SFB19
(START) ativa um restart completo no equipamento endereado remoto pelo
ID. As seguintes condies devem ser encontradas se o equipamento remoto
uma CPU:
A CPU deve estar em estado STOP.
A chave seletora da CPU deve estar em "RUN" ou "RUN-P".
Uma vez que o restart completo est finalizado, o equipamento muda para o
modo RUN e envia a execuo de um reconhecimento positivo. quando o
reconheciemnto positivo est disponvel, o parmetro de estado #DONE est
setado em 1. Se qualquer erro ocorrer, eles so indicados pelo estado dos
parmetros #ERROR e #STATUS.
Date: 04.10.2007
File: PRO2_10P.30
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Representao STL Representao LAD/FBD
DB19 (DB Instance)
SFB19 (START)
EN ENO
REQ DONE
ERROR ID
STATUS PI_NAME
ARG
IO_STATE
SFBs de Comunicao : Bloco START (SFB19)
* Detalhe da posio na memria para o incio do: 'P_PROGRAM''
Exemplo com parmetros atribudos
CALL "START","I_START" //Com DB Instance
REQ:= I 0.1 //Degrau de partida
ID:= W#16#1 //Nmero da conexo
PI_NAME:= P#M100.0 Byte 9 //Ver nota de rodap
ARG:= //No usado
IO_STATE:= // No usado
DONE:= #DONE_F_20 //Trmino com sucesso
ERROR:= #ERROR_F_20 //Trmino com erro
STATUS:= #STATUS_W_20 //Informaes de erro


Parmetro Modo Tipo Significado
REQ INPUT BOOL Ativa um restart completo no
equipamento do ID endereado com
uma transio positiva.
ID INPUT WORD
(I,Q;M,D,L,
constant)
Referencia a tabela de conexo para o
nmero da conexo.
PI_NAME IN_OUT ANY Ponteiro para a rea de memria na
qual o nome do programa est iniciado
(ASCII code) est presente. O nome
P_PROGRAM deve estar presente
para S7.
ARG IN_OUT ANY Argumento de execuo (no relevante)
IO_STATE IN_OUT ANY Argumento de execuo (no relevante)
DONE OUTPUT BOOL Transio positiva = funo executada
ERROR OUTPUT BOOL Transio positiva = erro
STATUS OUTPUT WORD Contems instrues detalhadas dos
erros ou avisos (decimal)

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 31
Vista Geral Com o SFC62 CONTROL", voc pode tomar o estado da conexo
pertencente ao SFB instance a comunicao local.
Aps a chamada da funo do sistema com o valor 1 na entrada de controle
EN_R, o estado atual da conexo pertencente ao SFB instance de
comunicao selecionado com I_DB suprido.
Date: 04.10.2007
File: PRO2_10P.31
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
SFBs de Comunicao : Bloco controle (SFC 62)
Representao STL Representao LAD
CALL "controle"
EN_R:= I 0. 2 //Partida
I_DB:= W#16#F //Nmero DB Instance
OFFSET:= W#16#0 //Para multi-instances
RET_VAL:= MW4 //Informaes erro
ERROR:= Q 0.4 //Trmino com erro
STATUS:= MW 4 //Informao estado
I_TYP:= MB 52 //Tipo de SFB
I_STATE:= MB 53 //Estado SFB
I_CONN:= M 54.0 //Estado de conexo
I_STATUS:= MW102 //Estado do SFB
SFC 62 (CONTROL)
EN ENO
EN_R RET_VAL
ERROR I_DB
STATUS OFFSET
IO_STATE
I_CONN
I_TYP
I_STATE
I_STATUS
Exemplo com parmetros atribudos

Parmetro Modo Tipo significado
EN_R INPUT BOOL Parmetro de controle para habilitao
da funo
I_DB INPUT BLOCK_DB
(I,Q;M,D,L,
constant)
Nmero do DB instance
OFFSET INPUT WORD
(I,Q;M,D,L,
constant)
Offset para multi-instances,
nmero 1
st
byte do DB instance
(se nenhum multi-instance = 0)
RET_VAL OUTPUT INT
(I,Q;M,D,L)
Erro 8000H para o SFC62

ERROR OUTPUT BOOL
(I,Q;M,D,L)
RLO = 1 erro durante execuo do
SFC 62
STATUS OUTPUT WORD
(I,Q;M,D,L)
Mostra erro para SFC 62
I_TYP OUTPUT BYTE
(I,Q;M,D,L)
Identificador do tipo de CFB
I_STATE OUTPUT BYTE
(I,Q;M,D,L)
Identificador do estado graph corrente
do CFB
I_CONN OUTPUT BOOL
(I,Q;M,D,L)
Estado da conexo atual
0 = conexo cancelada
1 = conexo presente
I_STATUS OUTPUT WORD
(I,Q;M,D,L)
Erro ou estado do SFBs

Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 32
Tarefa Rede de comunicao entre estaes S7-400 e S7-300 e configuradas como
uma conexo S7.
O que fazer 1. Criar um novo projeto "SFB-Comm".
2. Gerar duas estaes de HW para S7-400 e S7-300 no seu projeto.
3. No HW Config configurar diferentes endereos MPI para as duas CPUs e
"Network" (colocar em rede) as duas CPUs com o objeto "MPI network"
em seu projeto.
3. Ento transfira os dados de configurao individualmente para cada CPU
utilizando a ferramenta HW Config.
4. Colocar em rede as duas estaes atravs do cabo MPI e verifique o
resultado utilizando a funo da PG: "Accessible Nodes".
5. Configurar uma conexo S7 entre as duas CPUs e transfira a tabela de
conexo compilada para a CPU S7-400.
6. Utilizando a opo de menu PLC -> Modul Information, verificar qual a
conexo que foi atualmente reservada na CPU S7-400 (Register:
Comunication -> Reserved Connection)
7. Executar um restart completo no S7-400.
8. Verificar qual a conexo reservada que foi estabelecida. Para isto, ler a
informao do estado Online da CPU S7-400 utilizando a opo de menu
PLC -> Modul Information.
Ento verificar no registrador de comunicao qual a conexo reservada
que foi estabelecida.
Nota O S7-300 no tem qualquer dado de configurao e dados online que iro
fornecer a informao sobre as conexes reservadas e atuais.
Date: 04.10.2007
File: PRO2_10P.32
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 10.1: Configurando uma conexo S7
S7-400
MPI=3
S7-300
Conexo S7
lgica
(mo nica)
MPI=2
CPU
MPI=2
CPU
MPI=2
1
ID Local
PG720
MPI=0
Cabo PROFIBUS
Cabo MPI
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 33
Tarefa Para o S7-400, criar um OB1 com a seguinte funcionalidade:
Atravs da entrada 28.0, IB0 e IW 4 do S7-300 pode ser lido e transferido
para as sadas QB40 ou QW42 do S7-400 local.
Atravs da entrada 28.1, a IW30 do S7-400 pode ser escrito no QW12 no
S7-300.
O que fazer 1. Gerar uma pasta S7 Program com o nome: SFB_GET_PUT.
2 Editar o OB1. Gerar uma rede de comunicao SFB_GET, na qual voc
chame o SFB GET (gatilho I28.0).
Na chamada do GET ler o contedo do IB0 do S7-300 e colocar o valor
na sada QB40 do S7-400.
Tambm ler o contedo da IW4 e colocar na QW42 do S7-400.
3. Gerar uma rede de comunicao SFB_PUT e chamar o SFB PUT
(gatilho I28.1).
Na chamada do PUT transferir a IW2 do S7-400 para QW12 do S7-300.
4. Transferir o parmetro de sada STATUS (pulso) dos SFBs para o display
digital (QW38) do S7-400.
5. Transferir o OB1 da CPU S7-400 e testar seu programa.
Date: 04.10.2007
File: PRO2_10P.33
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 10.2: Comunicao com os SFBs GET/PUT
CALL SFB14,DB14
REQ= I 0.0
ID:=W#16#1
.
.
.
CALL SFB 15,DB15
REQ=I 0.1
ID:=W#16#1
.
.
.
.
Programa no S7-400
OB 1
PUT
QB 40
IB 0
IW 4
QW 42
IW 30
QW 12
S7-400
S7-300
CPU
MPI=2
CPU
1
GET
Siemens Ltda
Training Center
ST-7PRO2
Comunicao Bsica e Expandida S7 Pgina 34
Tarefa Para o S7-400, criar um OB1 com as seguintes funcionalidades:
O parceiro meta (S7-300) pode ser "stopped" atravs da entrada 28.0
O parceiro meta pode ser "started" atravs da entrada 28.1.
O que fazer 1. Gerar uma pasta S7 Program com o nome: SFB_START_STOP
2. Editar o OB1. Gerar uma rede de comunicao "P_PROGRAM" , na qual
voc guarde os caracteres (individuais) "P_PROGRAM" da MB100 para
MB109.
3. Gerar uma rede de comunicao SFB_STOP, na qual voc chame o
SFB STOP (gatilho 28.2).
4. Gerar umaa rede de comunicao SFB_START, na qual voc chame o
SFB START (gatilho 28.3).
5. Transferir o parmetro de sada STATUS (pulso) dos SFBs para o display
digital (QW38) do S7-400
6. Transferir o OB1 para a CPU S7-400 e teste o seu programa.
Date: 04.10.2007
File: PRO2_10P.34
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exerccio 10.3: Comunicao com os SFBs START/STOP
S7-400
MPI=3
S7-300
Conexo S7
lgica
(mo nica)
CALL SFB20,DB20
REQ= I 28.0
ID:=W#16#1
PI_NAME:= P#M100.0 Byte 9
CALL SFB 19,DB19
REQ=I 28.1
ID:=W#16#1
PI_NAME:= P#M100.0 Byte 9
.
.
.
Programa no S7-400
MPI=2
OB 1
CPU
MPI=2
CPU
MPI=2
1
ID Local
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 1
Contedo Pg.
SIMATIC S7-400: Vista Geral ............................................................................................................... 2
Vista geral do Mdulo S7-400 ............................................................................................................. 3
Os bastidores do S7-400 ...................................................................................................................... 4
Multiprocessamento simtrico e assimtrico ........................................................................................ 5
Configurao Centralizada .................................................................................................................... 6
Parmetros dos Mdulos: endereos lgicos, tabelas de Imagens de Processo ................................ 7
Atribuio de Parmetros dos Mdulos: Mdulo Analgico ................................................................. 8
Configurando o Multiprocessamento .................................................................................................... 9
SFC 35 para sincronizao em Modo Multiprocessamento.................................................................... 10
Expanso Centralizada 1 ...................................................................................................................... 11
Expanso Centralizada 2 ...................................................................................................................... 12
Expanso Distribuda ............................................................................................................................ 13
Conexo Distribuda entre S7 e S5 ...................................................................................................... 14
Expanso de uma Configurao Centralizada ..................................................................................... 15
Mdulos CPU ........................................................................................................................................ 16
Dados Tcnicos das CPUs S7-400 (1) ................................................................................................. 17
Dados Tcnicos das CPUs S7-400(2) .................................................................................................. 18
Arquitetura do Sistema ......................................................................................................................... 19
Parmetros da CPU: Caractersticas de Startup .................................................................................. 20
Parmetros da CPU: Interrupes ........................................................................................................ 21
Parmetros da CPU: Dados Locais ...................................................................................................... 22
Parmetros da CPU: Conceitos de Proteo ....................................................................................... 23
Organizao de Programa : Restart Completo e Restart ..................................................................... 24
A Interrupo de Insero/Remoo de Mdulos no S7-400 ............................................................... 25
O Comando Force no S7-400 ............................................................................................................... 26
Ativando a Barra Breakpoint ................................................................................................................. 27
Execuo de Programas com Breakpoints (somente S7-400) ............................................................. 28
Habilitao de Sadas de Periferia (somente S7-400) .......................................................................... 29
CP 441 para Conexes Ponto-a-Ponto ................................................................................................ 30
CP 443-5: Conexo para PROFIBUS .................................................................................................. 31
IM 467: Interface Mestre PROFIBUS-DP ........................................................................................... 32
CP 443-1: Conexo para Ethernet Industrial ....................................................................................... 33
CP 443-1 IT: Conexo para Internet .................................................................................................... 34
Date: 04.10.2007
File: PRO2_11P.1
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7-400
SF
RUN
STOP
I0.0
I0.1
I0.2
I0.3
I0.4
I0.5
I0.6
I0.7
SIEMENS
S7-200
Micro PLC 212
SIMATIC
X 2
3 4
Q0.0
Q0.1
Q0.2
Q0.3
Q0.4
Q0.5
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 2
SIMATIC S7-400 O SIMATIC S7-400 o PLC para mdia at elevada faixa de performance. O
projeto modular e sem ventilao, a alta capacidade de expanso e robustez, as
extensas possibilidades de comunicaes e a alta performance o tornam disponvel
para qualquer necessidade de projeto.
Expansibilidade Os pontos especiais do S7-400 so:
Mdulo de montagemsimples em tcnica swing-out. Todos os mdulos so
para operao sem ventilio e oferecem uma alta densidade de
encapsulamento. Comparado com o S5, o espao de montagem reduzido em
54%, o espao por conexo de I/O reduzido em45%.
O S7-400 oferece uma performance escalonvel atravs de um espectro
graduado de mdulos de CPU disponveis, bem como atravs de capacidade
de multiprocessamento simtrica e assimtrica.
Uma extensa variedade de mdulos, isto , para cada aplicao uma CPU
disponvel, mdulos de sinal, mdulos de funo e mdulos de comunicaes.
Arquitetura aberta com at 21 bastidores de expanso e unidades adicionais
distribudas atravs de PROFIBUS DP.
Atravs das possibilidades de montagemde redes atravs de MPI, PROFIBUS
e Ethernet Industrial, o S7-400 tambm est disponvel para tarefas de controle de
processo.
Performance A alta velocidade de processamento com o mnimo tempo de 80 ns por
instruo e uma memria do usurio de at 1.6 MB torna possvel a
realizao de extensas tarefas de automao.
A alta performance do barramento de comunicao (10.5 Mbaud) guarante
comunicao rpida com alta troca de dados.
Versatilidade Versatilidade atravs de funes especiais, como por exemplo:
restart, remoo e insero de mdulos emRUN, etc.
Adicionalmente o S7-400 oferece possibilidades especiais de migrao do
S5 para S7, como:
- utilizao de IPs ou WFs do S5 nos bastidores centrais S7;
- conexo de unidades de expanso S5 para um bastidor central S7;
Date: 04.10.2007
File: PRO2_11P.2
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
SIMATIC S7-400: Vista Geral
Expansibilidade do Sistema
Alta Densidade de Encapsulamento
CPUs com Performance Graduada
Multiprocessamento
Podem ser conectados at 21 bastidores de expanso
Extensa gama de mdulos (SMs, FMs, CPs)
Flexibilidade e facilidade de construo de
redes de comunicao
Performance
Alto Poder de Processamento
(at 80 nseg por instruo binria)
At 20 Mbytes de memria do usurio
Facilidades de comunicao poderosas
Versatilidade
Funes especiais
Especial facilidade de migrao para S5
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 3
Bastidores Os seguintes bastidores esto disponveis para o S7-400.
UR1/UR2 so projetados como bastidores universais e podem ser utilizados
como um bastidor central ou como um bastidor de expanso. So
construdos com 18/9 slots largura simples com os barramentos P e K;
ER1/ER2 so bastidores de expanso sem barramento K;
CR2 um bastidor central segmentado para multiprocessamento simtrico;
CPUs S7 : As CPUs S7-400 so compatveis para cima com todos os programas do usurio
emSTEP 7. Elas esto disponveis em duas verses: largura simples e largura
dupla com interface DP Mestre integrada.
Um mximo de 64 estaes DP escravas podemser endereadas atravs da
interface DP integrada. A mxima velocidade de comunicao de 12 Mbaud.
FMs Os FMs para posicionamento, controle em malha fechada e contagem substituemo
espectro dos IPs do S5.
Adicionalmente, um FM M7 pode ser inserido como um mdulo de funo
programvel livremente emC para controle de processo.
IMs Os bastidores de expanso SIMATIC S7 e SIMATIC S5 podemser conectados a
um bastidor central S7-400 atravs dos mdulos de interface.
CPs Os mdulos CP fazema conexo de uma CPU s seguintes possveis redes de
comunicao:
Ethernet Industrial (CP 443-1);
PROFIBUS (CP 443-5);
Rde de Comunicao Ponto-a-Ponto (CP441-1 e CP441-2);
Mais ainda, cada CPU disponibiliza de uma interface MPI para conexo uma rede
MPI. Um mximo de 32 estaes podemser conectadas a uma rede MPI.
Date: 04.10.2007
File: PRO2_11P.3
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Vista geral do Mdulo S7-400
1
2
3
PS
PS
230V / 4A
230V / 10A
230V / 20A
24V / 4A
24V / 10A
24V / 20A
32 x DC 24V
16 x UC 24-60V (IR + Diagn.)
16 x UC 120-230V
16 x UC 120 V (IR + Diagn.)
32 x AC 120V
16 x AC 230V (IR + Diagn.)
DI
DI
32 x DC 24V, 0.5A
16 x DC 24V, 2A
16 x AC 120/230V, 2A
16 x UC 5..230V, 5A, rel
8 x AC 120/230V, 5A
DO
DO
8 x U/I, 13 bits
8 x U/I, 14 bits
AO
AO
8 x U/I ou 4 x R, 13 bits
25 ms tempo converso por canal
8 x U/I/TCor. ou 4 x R/RTD,
14 bits, 25 ms tempo converso por canal,
com linearizao e comp. junta fria
8 x U/I ou 4 x R, 14 bits
50 us tempo converso por canal
16 x U/I/TCor. ou 8 x R/RTD, 16 bits,
2.5/25ms tempo converso por canal,
com linearizao e comp. junta fria
AI
AI
3m com K barramento
3m sem K barramento
100m com K barramento
600m para IM314 em S5
IM
IM
Bastidores
Bastidores
UR 1,2
ER 1,2
CR 2
CPUs S7
CPUs S7
CPU 412-1
CPU 413-1
CPU 413-2 DP
CPU 414-1
CPU 414-2 DP
CPU 416-1
CPU 416-2 DP
CPU 417-4
FM
FM
2 canais de contagem
Controlador Cam
Posicionamento para servomotores
Posicionamento p/acionamentos rpidos
FM M7
CP
CP
1 canal ponto-a-ponto
2 canais ponto-a-ponto
Ethernet
Profibus
CPUs M7
CPUs M7
CPU 486-3
CPU 488-3
CPU 488-4
CPU 488-5
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 4
UR 1 / UR 2 Ambos os UR1/UR2 podemser utilizados como bastidor central e como expanso.
Eles tem um barramento paralelo de I/O (P barramento) para a alta velocidade de
troca de sinais de I/O (1.5 microseg./ byte) e tempo crtico de acesso aos dados de
processo pelos mdulos de sinal.
Adicionalmente, UR1 (18 slots) e UR2 (9 slots) possuemum poderoso barramento
serial de comunicao (K barramento) para troca de dados de alta velocidade (10.5
Mbaud) entre estaes K barramento (S7/M7 CPUs, FMs, CPs).
Pela separao dos P barramento e K barramento, cada tarefa atribuda a seu
prprio sistema de barramento. Controle e comunicao tem seu prprio
barramento de dados de alta velocidade individual, fornecendo ento filtrageme
controle livre de conflitos para operaes de comunicao.
CR2 O bastidor segmentado CR 2 fornece um barramento de I/O dividido em dois
segmentos com 10 e 8 slots. Uma CPU pode ser utilizada em cada segmento.
Cada CPU Mestre em seu respectivo segmento P barramento e pode somente
acessar seus prprios SMs.
A transio do modo de operao no sincronizada, isto , as CPUs podem estar
em diferentes modos de operao. Ambas CPUs podem comunicar atravs do
barramento contnuo K barramento.
ER 1 / ER 2 Os ER1 (18 slots) e ER2 (9 slots) no possuemK barramento, nenhuma linha de
interrupo, nenhuma alimentao 24 V para os mdulos e nenhuma
alimentaode bateria.
Sem regras p/Slots Exceo: PS no lado extremo esquerdo e IM de recepo no ER no lado extremo
direito.
Date: 04.10.2007
File: PRO2_11P.4
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Os bastidores do S7-400
Bastidor
UR 1/ UR 2
Bastidor Segmentado
CR 2
Bastidor de Expanso
ER 1/ ER 2
1 a 4 CPUs
(para multiprocessamento simtrico)
2 PLCs comdiferentes modos operacionais,
comunicao entre as CPUs
atravs do barramento comumK barramento
Tambm podemser utilizados como um
bastidor de expanso
Barramento P
Barramento K
Segmento 1 do
barramento P
Segmento 2 do
barramento P
Barramento K
Barramento P
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 5
Multiprocessamento Multiprocessamento torna um sistema PLC escalonvel, isto , ele habilita a performance e
os recursos do sistema, ou seja, memria, memrias de bits, temporizadores, contadores,
etc. para serem incrementados. Desta forma, por exemplo, uma tarefa complexa pode ser
dividida ao longo de diversas CPUs.
Simtrica No multiprocessamento simtrico, todas as CPUs (mx. 4 CPUs) dividemum barramento
comumP barramento e K barramento. Emparticular, existe somente um espao de
endereo de I/O comumno qual os endereos de todos os mdulos de sinal so mapeados.
Cada mdulo inserido deve deste modo ser atribudo a uma CPU durante a configurao. A
CPU ento assume como Funo Mestrepara este mdulo, como:
Recepo de interrupes do mdulo
Atribuio dos parmetros do mdulo
Acesso aos mdulos atravs de L PBxx, T Wxx, etc.
As transies do modo de operao so sincronizadas, isto , todas as CPUs tem o mesmo
modo de operao. Sendo vista pelo lado de fora, a estao aparece como sendo um
grande PLC.
Assimtrica Multiprocessamento assimtrico atingido com a ajuda do CR2. O bastidor segmentado
contem dois segmentos de barramento P barramento independentes.
Uma CPU instalada por segmento de barramento de I/O. Os mdulos de I/O so
localmente atribudos a esta CPU. As CPUs trabalham independentemente uma da outra
sem sincronizao das transies dos modos de operao. Cada CPU tem seu prprio
espao de endereos de I/O.
O barramento de comunicao comum faz comunicao entre as duas unidades possveis
semo uso de hardware adicional. Sendo vista pelo lado de fora, este corresponde a dois
controladores individuais, que comunicam atravs do K bus. Demais vantagens so:
Economia de espao no painel de controle;
Mais economia, uma vez que somente um bastidor e uma fonte de alimentao so
necessrias;
Date: 04.10.2007
File: PRO2_11P.5
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Multiprocessamento simtrico e assimtrico
Barramento comum de comunicao
(barramento K)
Barramento comum de I/O
(barramento P )
Multiprocessamento
Simtrico
Multiprocessamento
Assimtrico
Segmento 1 do
barramento de I/O
Segmento 2 do
barramento de I/O
Bastidor
Segmentado
Barramento comum de comunicao
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 6
Configurando uma Para uma configurao centralizada, disponha os mdulos prximos a
estao centralizada CPU(s) no bastidor central e continue a inser-los nos bastidores de expanso
seguintes.
Criando uma Para abrir a configurao de uma estao proceda como abaixo:
configurao
1. Antes de mais nada, selecione com um clique no mouse a estao de
hardware desejada.
2. Selecione a opo do menu Edit -> Object, abra ou d um duplo clique no
smbolo Hardware na janela do lado direito. A janela estao da estao
selecionada aberta.
3 Um clique no smbolo do Catlogo mostra o Catlogo de HW com os
components disponveis. Deste catlogo copie por marcar e arrastar" o
bastidor e os mdulos dentro da janela estao ou dentro da tabela de
configurao do respectivo bastidor.
Vista do Catlogo Um clique no sinal "+" abre a subestrutura associada ou com um clique no sinal "-"
este fechado. Aps a seleo de um mdulo, o dado tcnico mais importante do
mdulo aparece na barra de status da janela catlogo.
Selecionando o Quando voc est com a janela da estao aberta e o catlogo de hardware,
bastidor voc pode continuar como abaixo:
1. Dependendo do tipo de estao, selecione o S7-400 inserido.
2. Antes de mais nada, abra o bastidor inserido e arraste o bastidor para dentro
da estao na janela da esquerda. Uma tabela vazia mostrada para cada
bastidor.
Bastidores esto representados pelas tabelas de configurao no STEP 7.
Estas tabelas de configurao possuemum nmero de linhas de entradas igual
ao nmero mdulos que podemser instalados no bastidor.
3. Ento, usando marcar e arrastar" copie os mdulos desejados para a
esquerda dentro dos slots vazios da tabela.
Date: 04.10.2007
File: PRO2_11P.6
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Configurao Centralizada
Configurao do
bastidor
Ativao da ferramenta
HWConfig
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 7
Geral No sistema S7-400 existem endereos padro para os mdulos de I/O. Estes
padres esto ativos at que os dados parametrizados sejam transferidos para a
CPU.
Endereos padro Os endereos padro dos mdulos dependemdo:
Nmero do bastidor. O nmero ajustado na IM de recepo com uma
chave (1..21), o bastidor central sempre tem o nmero 0;
Os slots dos mdulo no bastidor. O endereo padro de um mdulo
calculado destes dois valores como segue:
Endereo Digital inicial = [(bastidor nmero) x 18 +nmero do slot -1] x 4
End. Analg. inicial =[(bastidor nmero) x 18 +nmero do slot -1] x 64 +512
Imagem de Ao lado da imagemde processo completa, voc pode atribuir parmetros
Processo Parcial para at 8 imagens processo parciais. As imagens de processo parciais podemser
atualizadas no programa do usurio atravs de funes do sistema (SFC 26/27).
Deste modo, o usurio tem a possibilidade de usar o conceito de imagemde
processo, que foi projetada originalmente somente para a classe de prioridade
OB1, para outras classes de prioridade, por exemplo OB35 para algortmos de
controle.
Para isto, os mdulos de entrada bem como os de sada os quais lidamcom o valor
atual ou com o valor do setpoint do algortmo corrente de controle so em cada
caso atribudos a uma tabela de imagemde processo parcial de entrada ou sada.
Com o OB35 voc pode ento proceder da seguinte maneira:
1. Lendo o valor corrente atual por meio do SFC26 na tabela associada da
imagemde processo de entrada parcial.
2. Chamando o algortmo de controle. O algortmo de controle escreve seu novo
valor de setpoint na correspondente tabela de imagemde processo parcial de
sada.
3. Por para fora tabela de imagemde processo parcial de sada por meio do
SFC27 para as I/Os.
Date: 04.10.2007
File: PRO2_11P.7
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Parmetros dos Mdulos: endereos lgicos, tabelas de Imagens
de Processo
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 8
Mdulos c/atribuio Todos os mdulos que possam ter atribuio de parmetros, por exemplo
de parmetros mdulos analgicos, podem ter parmetros atribudos com a ferramenta HW
Config.
Para mdulos analgicos, existem usualmente diversas pginas de tabelas para
atribuio de parmetros. Desta forma, os seguintes parmetros podemser
setados, por exemplo nas pginas da tabela individual de um mdulo analgico S7-
400.
Endereos Endereo de partida do mdulo
Nmero da parte da imagem de processo
OB de interrupo de hardware
Inputs - Parte 1 Habilitao para interrupo de hardware e diagnstico de interrupo
Habilitao de diagnstica da monitorao de canal especfico, como
- Verificao de quebra de fio
- Erro no canal referenciado
- Ultrapassagemde valor inferior (underflow)
- Ultrapassagemde valor superior (overflow)
- Curto circuito terra
Inputs - Parte 2 Tipo de medio
Faixa de medio
Supresso de freqncia de interferncia
Filtro passa baixas de entrada
Valor limite superior e inferior para interrupo de hardware
Date: 04.10.2007
File: PRO2_11P.8
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Atribuio de Parmetros dos Mdulos: Mdulo Analgico
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 9
Vista Geral Multiprocessamento a operao sncrona de diversas CPUs (2 a 4) no bastidor
central S7-400.
As CPUs inicializam em conjunto, se elas possuem o mesmo modo de startup
(restart completo ou restart) e elas tambmvo para o modo STOP juntas.
Ajustes para Multiprocessamento aparece implicitamente atravs da insero de diversas
Multiprocessamento CPUs com capacidade de multiprocessamento em um bastidor apropriado. Se uma
CPU capaz de multiprocessamento pode ser determinado no texto informativo no
"Hardware Catalog(catlogo de hardware).
Uma rea de endereo comumest dividida entre as CPUs participantes no
multiprocessamento, isto , a rea de endereo de um mdulo est sempre
exclusivamente associado com uma CPU.
Procedimento Multiprocessamento configurado como segue:
1. Posicionar todas as CPUs requeridas para multiprocessamento.
2. D um duplo clique nas CPUs e ajuste o nmero da CPU na pgina tabela
de multiprocessamento".
3. De forma a atribuir um mdulo para uma CPU particular, proceda como
abaixo:
- Arrange os mdulos no bastidor.
- D um duplo clique nos mdulos e selecione a tabela de "endereos".
- No campo CPU No.selecione o nmero da CPU desejada. Com os
mdulos gatilhveis por interrupo, a atribuio da CPU mostrada como
a CPU meta na pgina de "Inputs" ou"Outputs".
Atravs do comando View -> Filter -> CPUx moduls, voc pode fazer os mdulos
que esto atribudos para uma CPU particular aparecer emuma tabela.
A estao configurada somente pode ser transferida para todas as CPUs.
Transferncia para somente uma CPU no possvel. Deste modo, configuraes
inconsistentes so evitadas.
Date: 04.10.2007
File: PRO2_11P.9
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Configurando o Multiprocessamento
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 10
Date: 04.10.2007
File: PRO2_11P.10
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
SFC 35 para sincronizao em Modo Multiprocessamento
" MP_ALM"
EN ENO
J OB RET_VAL ??. ? ??. ?
Parmetro
JOB
Declarao
INPUT
SFB 9 URCV
Tipo dado tipo
BYTE
Mo dupla
rea memria
I, Q, M, D, L, Const.
Mo dupla
Descrio
Identificador de Job
(valores possveis : 1 a 15)
Mo dupla
Descrio A chamada do SFC 35 MP_ALMgatilha a interrupo de multiprocessamento no
modo multiprocessamento. Isto comando para partida sincronizada do OB60 em
todas as CPUs associadas.
Na operao de processador simples e operao embastidores segmentados,
OB60 somente disparado na CPU no qual o SFC 35 chamado.
Com o parmetro de entrada J OB, voc pode identificar a causa para a interrupo
multiprocessamento. Este job identificador transmitido para todas as CPUs
associadas e pode ser avaliado atravs da informao de partida no OB 60.
Voc pode chamar o SFC 35 MP_ALMde qualquer localizao em seu programa.
Desde que a chamada somente faz sentido no modo RUN, a interrupo de
multiprocessamento suprimida quando chamada no modo STARTUP. Isto
comunicado a voc atravs do valor retornado.
Cdigo de Erro Se um erro ocorre enquanto a funo est sendo processada, o valor retornado
contem um cdigo de erro:
W#16#0000: Nenhum erro.
W#16#8090: O parmetro de entrada J OB contem um valor no
permitido.
W#16#80A0: Processamento da interrupo prvia de
multiprocessamento com o OB 60 no tenha ainda sido
completada na CPU local ou em outra CPU.
W#16#80A1: Modo de operao incorreta (STARTUP em vez de RUN).
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 11
Config. centralizada 1 Os mdulos de interface IM 460-1/IM 461-1 so inseridos para a conexo
centralizada dos bastidores de expanso para um bastidor central S7.
Expanso centralizada tipo 1 tem as seguintes caractersticas:
Um mximo de bastidores de expanso 2 pode ser conectado (1 por
interface).
A mxima distncia entre bastidor central e de expanso de 1,5 m.
Um mximo de 2 Send IM 460-1 pode ser inserido por bastidor central.
O mdulo de interface de envio IM 460-1 conecta somente o barramento P
(no o barramento K) atravs do bastidor de expanso. Alm disso, os mdulos no
bastidor de expanso so alimentadas com uma tenso de 5V (mx. 5 A por slot)
atravs de cabo de conexo.
Por esta razo, nenhum mdulo de fonte de alimentao pode ser inserido no
bastidor de expanso.
Um conector de interface no ocupado no Send IM 460-1 no tem que ser
terminado; um conector de interface no ocupado no Receive IM 461- 1 deve ser
terminado com um terminador.
Uma chave de cdigo com a qual o nmero do bastidor de expanso deve ser
selecionado est localizado no Receive IM 461-1.
Nota Um mximo de 21 bastidores de expanso podemser conectados a um bastidor
central.
A IM Receive sempre deve ser inserido no slot mais a direita no bastidor de
expanso.
Date: 04.10.2007
File: PRO2_11P.11
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Expanso Centralizada 1
Barramento P e conectado atravs de
fonte de alimentao, mas no o barramento K
1 ER por canal
Distncia mxima entre
CR e ER: 1.5 m
CPU PS 40x IM
CR
SEND IM 460-1
IM
Terminador
RECEIVE IM 461-1
ER
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 12
Config. centralizada 2 Os mdulos de interface IM 460-0/IM 461-0 so inseridos para a conexo
centralizada dos bastidores de expanso para um bastidor central S7. Expanso
centralizada tipo 2 tem as seguintes caractersticas:
Um mximo de 8 bastidores de expanso podemser conectados (4 por
interface).
A mxima distncia entre o bastidor central e o ltimo bastidor de expanso
de 3 m.
Um mximo de 6 Send IM 460-0 podemser inseridos por bastidor central.
O mdulo de interface Send IM 460-0 conecta o barramento P e o barramento
K atravs do bastidor de expanso. Os mdulos no bastidor de expanso no so
alimentados com tenso atravs do cabo de conexo.
Por esta razo, cada bastidor de expanso deve ter seu prprio mdulo de
fonte de alimentao inserido.
Um conector de interface no ocupado no Send IM 460-0 no tem que ser
terminado; um conector de interface no ocupado no Receive IM 461- 0 deve ser
terminado com um terminador.
Uma chave codificada com a qual o nmero do bastidor de expanso deve ser
selecionado localizada no Receive IM 461-0.
Nota Um mximo de 21 bastidores de expanso podemser conectado a um bastidor
central.
O K barramento somente conectado atravs do cabo aos 6 primeiros bastidores
de expanso, isto , mdulos inteligentes como FMs e CPs podemdesta forma
somente ser operados nos 6 primeiros ERs.
O IM Receive deve sempre ser inserido no ltimo slot direito do bastidor de
expanso.
Date: 04.10.2007
File: PRO2_11P.12
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Expanso Centralizada 2
CPU PS 40x IM
CR
PS 40x IM
ER 1
PS 40x IM
ER 2
PS 40x IM
ER 3
SEND IM 460-0 Receive IM
Receive IM
PS 40x IM
ER 4
Receive IM
Receive IM 461-0
Terminador
Barramento P e barramento K
conectado atravs da expanso,
mas no a fonte de alimentao
4 ERs por canal
Distncia mxima entre
CR e ltimo ER: 3 m
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 13
Config. distribuda Os mdulos de interface IM 460-3/IM 461-3 so inseridos para a conexo
distribuda dos bastidores de expanso para um bastidor central S7. Expanso
distribuda tem as seguintes caractersticas:
Um mximo de 8 bastidores de expanso podemser conectados (4 por
interface).
A distncia mxima entre o bastidor central e o ltimo bastidor de expanso
de 100 m.
Um mximo de 6 Send IM 460-3 podemser inseridos por bastidor central.
O mdulo de interface Send IM 460-3 conecta o barramento P e o barramento
K atravs do bastidor de expanso. Os mdulos no bastidor de expanso no so
alimentados com a tenso atravs do cabo de conexo.
Por esta razo, cada bastidor de expanso deve ter seu prprio mdulo de
fonte de alimentao inserido.
Um conector de interface no ocupado no Send IM 460-3 no tem que ser
terminado; um conector de interface no ocupado no Receive IM 461- 3 deve ser
terminado com um terminador.
Uma chave codificada com a qual o nmero do bastidor de expanso deve ser
selecionado localizada no Receive IM 461-3.
Nota Um mximo de 21 bastidores de expanso podemser conectado a um bastidor
central.
O K barramento somente conectado atravs do cabo aos 6 primeiros bastidores
de expanso, isto , mdulos inteligentes como FMs e CPs podem desta forma
somente ser operados nos 6 primeiros ERs.
O IM Receive deve sempre ser inserido no ltimo slot direito do bastidor de
expanso.
Date: 04.10.2007
File: PRO2_11P.13
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Expanso Distribuda
Barramento P e barramento K
conectado atravs da expanso,
mas no a fonte de alimentao
4 ERs por canal
Distncia mxima entre
CR e ltimo ER: 100 m
CPU PS 40x IM
CR
PS 40x IM
ER 1
PS 40x IM
ER 2
PS 40x IM
ER 3
SEND IM 460-3 Receive IM
Receive IM
PS 40x IM
ER 4
Receive IM
Receive IM 461-3
Terminador
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 14
Config. distribuda O mdulo de interface IM463-2 habilita unidades de expanso S5 para ser
com EUs S5 conectado a umbastidor central S7-400.
As seguintes regras se aplicam a conexes com unidades de expanso S5 :
Mx. 4 mdulos de interface IM463-2 no bastidor central
Mx. 4 unidades de expanso por canal
Mx. distncia entre o CR e o ltimo EU: 600 m
Os sistemas S5 podem ser conectados a um bastidor central S7-400 se o
primeiro EU S5 um EU-183U/EU-185U para o S5-135U/-155U ou um ER-
701-2/ER-701-3 no caso de um S5-115U.
Os remanecentes EUs podem ser expandidos de acordo com as regras S5.
Date: 04.10.2007
File: PRO2_11P.14
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Conexo Distribuda entre S7 e S5
Mx. 4 unidades expanso S5 por
canal
Mx. 4 IMs SEND no bastidor central
Mx. distncia do CR para ltimo EU
no canal: 600m
Barramento S5 paralelo conectado
atravs da expanso
Possveis unidades de expanso S5:
EU 183 U, EU 185 U,
ER 701-2, ER 701-3
Outros EUs S5
Mx. 32 EUs S5 por CR S7-400
Terminadores
S5 EU S5 EU
S5 EU S5 EU
S5 EU S5 EU
S5 EU S5 EU
P
S
C
P
U
S7
CR
Send IM
IM314
IM314
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 15
Expanso the Se voc deseja conectaroutros bastidores a um bastidor central e equip-
configurao los, ento proceda como a seguir:
1. Do catlogo de hardware selecione o bastidor (expanso)desejado.
2. Arraste os bastidores um aps o outro para dentro da janela estao usando
Marcar&Arrastar.
3. Insira os mdulos desejados para dentro dos bastidores.
Importante: Os mdulos de interface Receive devemser inseridos em todos os
bastidores de expanso, antes possvel uma conexo ao mdulo de interface
Send no bastidor central.
4. Somente para S7-400: De forma a estabelecer a conexo entre o IM Send e
os IMs Receive dos bastidores de expanso, proceda como a seguir:
- Duplo clique no IM Send
- Selecione na tabela "conexo" todos os bastidores que no esto
conectados so mostrados em uma lista.
- Selecione cada bastidor deste caso e usando o boto de comando
Connectconecte-os s interfaces IM Send desejadas (C1 e C2).
Subseqentemente, linhas de conexo entre os bastidores sero mostradas
na janela estao.
Peculiaridades CR2 Com o bastidor central CR2, voc deve primeiro fazer a conexo entre os
bastidores vazios (exceto para o IM Receive) e os IMs Send da respectiva CPU,
antes voc pode inserir mdulos para dentro de um bastidor de expanso.
Date: 04.10.2007
File: PRO2_11P.15
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Expanso de uma Configurao Centralizada
Duplo clique
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 16
Conector p/Bateria Tenso de alimentao externa de 5V a 15V DC para manter os dados (backup) na
RAM, quando for trocado o mdulo fonte de alimentao. A RAM pode ser mantida
pela bateria interna do mdulo fonte de alimentao ou atravs da conexo "EXT-
BATT.".
O conector projetado para um plug jack de 2,5 mm.
Interface MPI A interface MPI utilizada para conectar equipamentos programveis e/ou
sistemas de interface com operador.
Interface integrada As CPUs 413-2/414-2/416-2 fornecemuma interface PROFIBUS-DP Mestre
PROFIBUS DP integrada para conexo de I/O distribudo, como ET200M, ET200U (B/C),
S7-300, etc.
Cartes de memria Cartes RAM ou FLASH-EPROM podemser inseridos nas CPUs S7-400 como
memria de carga externa de acordo com requisitos individuais.
Cartes RAM com 64KB, 256KB, 1MB, 2MB de memria so mantidos
seguros (backed up) atravs da bateria na unidade fonte de alimentao.
Cartes FLASH-EPROM com 64KB, 256KB, 1MB, 2MB, 4MB, 8MB, 16MB.
Modos de Operao MRES = Reset de memria.
STOP = Modo STOP, isto , nenhum processamento de programa.
RUN = O programa executado, acesso pela PG somente como read-
only (somente leitura).
RUN-P =O programa executado, acessos de leitura e escrita pela PG
possvel.
Seletora de Startup CRST= Um restart completo da CPU (Cold Restart) realizado quando a
CPU inicializada com a chave seletora est neste modo.
WRST= Um restart da CPU (Warm Restart) realizado quando a CPU
inicializada com a chave seletora est neste modo.
Date: 04.10.2007
File: PRO2_11P.16
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Mdulos CPU
EXT.-BATT.
5...15V DC
X3
X1
414 - 2XG00 - 0AB0
CPU 414-2
X 2
3 4
INTF
EXTF
STOP
RUN
CRST
FRCE
CRST
WRST
RUN-P
RUN
STOP
CMRES
INTF
EXTF
BUSF
DP
EXT.-BATT.
5...15V DC
X1
421 - 1BL00 - 0AA0
DI 32xDC24V
X 2
3 4
INTF
EXTF
STOP
RUN
CRST
FRCE
CRST
WRST
RUN-P
RUN
STOP
CMRES
CPU 412-1
CPU 413-1
CPU 414-1
CPU 416-1
CPU 413-2 DP
CPU 414-2 DP
CPU 416-2 DP
LEDs
Seletora de Startup
Seletora de modo
(chave de operao)
Slot de carto
de memria
MPI
Alimentao externa
de backup
LEDs
Interface DP
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 17
Tipos de CPUs Para cada faixa de performance existe uma CPU correspondente com o
correspondente tempo de execuo, tamanho da memria de trabalho e nmero de
blocos.
Programao Programas do usurio so escritos em concordncia com IEC 1131-3. As seguintes
novas caractersticas esto integradas no S7:
Instrues para processamento de valor analgico:
- Aritmtica de ponto fixo e ponto flutuante (32-bit)
- Raiz quadrada e elevado ao quadrado
- Funes logartmicas
- Funes trigonomtricas
Novos tipos de dados para programao orientada ao problema, por
exemplo:
- ARRAY
- STRUCT (estrutura)
- POINTER
Conceito de bloco orientada a objeto, por exemplo:
- FBs com bloco de dados instance
- Modelo multi-instance
Blocos do sistema integrados, por exemplo para comunicao, etc.
I/O de processo Os endereos lgicos dos mdulos de I/O so arranjados em um espao de
endereo linear de tamanho conveniente.
Os endereos de estaes escravas conectadas interface DP integrada so
tambmmapeadas neste espao de endereo linear. Deste modo, o I/O distribudo
pode ser endereada da mesmo maneira que o I/O central no programa do usurio.
O STEP 7 utilizado para atribuir parmetros de endereo para a central e o I/O
distribudo.
Date: 04.10.2007
File: PRO2_11P.17
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Dados Tcnicos das CPUs S7-400 (1)
*)
1 Byte = 8 entradas / sadas digitais
2 Bytes = 1 entrada / sada analgica
CPU
Tempo de execuo por
instruo binria
Carga/Transferncia
Ponto fixo 16-bit (+/-)
Pto. flut. IEEE (+/-)
Memria usurio
Memria Trabalho
Memria carga integ.
Memria carga ext.
Endereos
Memria Bit
Memria pulsos
Temporizadores
Contadores
Tipo/nmero Bloco
FBs
FCs
DB's
Tam. imagem processo
(tabelas entr./sada)
Mx. espao ender. I/O
Interfaces integradas
414-1
100 ns
100 ns
100 ns
0,6 s
128 KB
8 KB
15 MB
8192
8
256
256
512
1024
1023
256 bytes
cada
2 KB
*)
cada
MPI
416-1
80 ns
80 ns
80 ns
0,48 s
512 KB
16 KB
15 MB
16384
8
512
512
2048
2048
4095
512 bytes
cada
4 KB
*)
cada
MPI
414-2 DP
100 ns
100 ns
100 ns
0,6 s
128/384 KB
8 KB
15 MB
8192
8
256
256
512
1024
1023
256 bytes
cada
4 KB
*)
cada
MPI, DP
412-1
200 ns
200 ns
200 ns
1,2 s
48 KB
8 KB
15 MB
4096
8
256
256
256
256
511
128 bytes
cada
0.5 KB
*)
cada
MPI
413-2 DP
200 ns
200 nsc
200 ns
1,2 s
72 KB
8 KB
15 MB
4096
8
256
256
256
256
511
128 bytes
cada
1 KB
*)
cada
MPI, DP
413-1
200 ns
200 ns
200 ns
1,2 s
72 KB
8 KB
15 MB
4096
8
256
256
256
256
511
128 bytes
cada
1 KB
*)
cada
MPI
416-2 DP
80 ns
80 ns
80 ns
0,48 s
0.8/1.6 MB
16 KB
15 MB
16384
8
512
512
2048
2048
4095
512 bytes
cada
8 KB
*)
cada
MPI, DP
417-4
100 ns
100 ns
100 ns
0,48 s
4...20 MB
256 KB
64 MB
16384
8
512
512
6144
6144
8192
1024 bytes
cada
16 KB
*)
cada
MPI,
4 x DP
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 18
Comunicao O S7-400 fornece diversas facilidades diferentes de comunicao.
1. Interface integrada multiponto (interface MPI), na qual PGs/PCs, sistemas IHM,
sistemas M7-300/400 e demais sistemas S7-300/400 podemser
conectados como ns ativos.
2. Interfaces PROFIBUS DP integradas nas CPUs 413-2 / 414-2 / 416-2 /417-4.
para conexo a um sistema I/O distribudo (isto , ET200) para a CPU.
3. Processadores de comunicao como a CP443 para conexo aos sistemas
de barramento PROFIBUS e Ethernet Industrial.
4. Processadores de comunicao como a CP441 para poderosa comunicao
ponto a ponto (PtP) para outros S7, S5 ou controladores e sistemas externos.
Funes S7 As funes de comunicao S7 so divididas em dois tipos:
Comunicao S7 bsica: pequenos volumes de dados (at 76 bytes) podemser
trocados entre parceiros de comunicao (S7-300/400) atravs de MPI ou com
uma estao (e com escravos inteligentes atravs de PROFIBUS DP) com este
servio.
As SFCs de comunicao associadas esto integradas no sistema operacional.
Eles no requerem conexes configuradas, a alocao de recursos de
comunicao e o endereamento do parceiro de comunicao ocorre diretamente
na chamada da SFC.
Comunicao S7 extendida : grandes volumes de dados (at 64 Kbytes) podemser
trocados independentemente de uma rede de comunicao (MPI, Profibus ou
Ethernet Industrial) com este servio.
Os SFBs associados esto integrados no sistema operacional para S7-400 (no
para S7-300, S7-300 somente server) e requer uma conexo configurada na
chamada do SFB. Conexes configuradas so estabelecidas de acordo com a
tabela de conexo quando o sistema inicializado e os recursos relevantes so
atribudos estaticamente.
Date: 04.10.2007
File: PRO2_11P.18
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
CPU
Blocos de organizao
Ciclo livre
Interrup. horrio do dia
Interrup. atraso tempo
Interrupes cclicas
Interrup. de hardware
Inter. multiprocessam.
Background
Startup
Erros, sncronos
Erros, assncronos
Dados Locais
Mx. comprim. bloco
Tamanho aninhamento de
bloco por classe
prioridade
Comunicao controlada
por programa:
Mx. No. de conexes
Comunicao de Dados
Globais atravs de MPI:
Crculos GD por CPU
Envio de pacotes GD por
crculos GD
Recebimento de pacotes
GD por crculos GD
Mx. dados de usurio
por pacote
Dados Tcnicos das CPUs S7-400(2)
414-1
OB No.
1
10-13
20-23
32-35
40-43
60
90
100-102
80-87
121,122
8 KB
64 KB
16
32
8
1
2
54 bytes
416-1
OB No.
1
10-17
20-23
30-38
40-47
60
90
100-102
80-87
121,122
16 KB
64 KB
16
64
16
1
2
54 bytes
414-2 DP
OB No.
1
10-13
20-23
32-35
40-43
60
90
100-101
80-87
121,122
8 KB
64 KB
16
32
8
1
2
54 bytes
412-1
OB No.
1
10,11
20,21
32,35
40,41
60
90
100-102
80-87
121,122
4 KB
64 KB
16
8
8
1
2
54 bytes
413-2 DP
OB No.
1
10,11
20,21
32,35
40,41
60
90
100-102
80-87
121,122
4 KB
64 KB
16
16
8
1
2
54 bytes
413-1
OB No.
1
10,11
20,21
32,35
40,41
60
90
100-101
80-87
121,122
4 KB
64 KB
16
16
8
1
2
54 bytes
416-2 DP
OB No.
1
10-17
20-23
30-38
40-47
60
90
100-102
80-87
121,122
16 KB
64 KB
16
64
16
1
2
54 bytes
417-4
OB No.
1
10-17
20-23
30-38
40-47
60
90
100-102
80-87
121,122
24 KB
64 KB
24
64
16
1
2
54 bytes
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 19
Configurao da CPU Devido ao tipo de meio de comunicao, em funo da configurao dos sistemas
distribudos, as CPUs S7-400 so divididas em duas unidades funcionais:
Parcela processo
Parcela comunicao
Barramento P A parcela processo da CPU permite acesso aos mdulos de sinal atravs do
barramento P. Ele otimizado para a troca de at 4 bytes de dados.
O barramento P no sistema S7-400 tem as seguintes caractersticas:
8 bits de largura
paralelo
tempo de acesso de 1,5 s
Barramento K O barramento K (barramento de comunicao) realiza a troca de dados
assncronos com mdulos inteligentes, capazes de comunicao, isto , um FM ou
um CP. Ele otimizado para a troca de grandes quantidades de dados.
O barramento K projetado como um barramento multi-mestre; ele uma
extenso lgica da interface MPI. Ele tem as seguintes caractersticas:
serial
baud rate: 10,5 MB/seg
mx. 127 ns (teoricamente)
MPI Comunicao atravs da interface MPI tem as seguintes caractersticas :
serial
baud rate: 187,5 KB/seg
mx. 32 ns
Date: 04.10.2007
File: PRO2_11P.19
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Arquitetura do Sistema
CPU
Memria usurio
Parcela
Pro-
cesso
Parcela
Comu-
nicao
PROFIBUS-DP Mestre
MPI
Barramento K
Barramento P
PROFIBUS-DP
SM FM CP FM
PG OP PLC
ET200 PG
Barramento traseiro do bastidor
Escravo
Padro
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 20
Configurao Atravs da desativao deste campo voc pode, no S7, fazer com que a CPU
Setpoint / Atual v para Stop aps startupse a configurao atual no for igual a configurao
setpoint (no estiver de acordo com a configurao).
Teste de Hardware Atravs da ativao desta funo, a RAM interna da CPU testada durante o
startup. A durao do teste depende do tamanho da memria.
Deletar PIQ.. No restart de um S7-400, a imagem de processo deletada pelo padro aps o
ciclo de varredura remanescente ser processado. Se esta caracterstica no for
desejada, voc pode deseleciona-la.
Desabilitao Restart Restrio para um Restart completo para o startup manual do S7-400.
POWER ON Com o S7-400 voc pode escolher entre:
Restart completo (apaga as reas no retentivas e o processamento do
programa comea com a primeira instruo no bloco OB1).
Restart (todas as reas de memria so mantidas intactas e o programa
continua do ponto em que foi interrompido).
Restart a frio (Cold restart) (apaga as reas retentivas e no retentivas e o
processamento do programa comea com a primeira instruo no bloco OB1).
Tempos de Os seguintes tempos podem ser especificados:
Monitorao Mximo tempo de espera at que todos os mdulos tenhamse reportado
CPU.
Mximo tempo at que um mdulo deva ter reconhecido uma transferncia
de parmetro.
Para o S7-400, o mximo tempo aps uma falha de alimentao, aps a qual
um restart possa ser realizado.
Date: 04.10.2007
File: PRO2_11P.20
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Parmetros da CPU: Caractersticas de Startup
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 21
Prioridades No S7-400 voc pode alterar as prioridades dos blocos de manipulao de
interrupo e assim estabelecer a ordem na qual elas sero processadas quando
diversos eventos de interrupo ocorrerem simultaneamente. As prioridades so de
1 a 24 e a interrupo com a maior prioridade ser processada primeiro.
Hardware Neste parmetro de bloco voc seta as prioridades os blocos de organizao
interrupes para interrupes de hardware. Voc pode setar as prioridades 0 e de 2 a 24 (0
deseleciona).
Interrupo Voc pode usar estas interrupes para setar o tempo de partida para
Horrio do dia execuo do programa somente uma vez ou para uma ativao a ser repetida
(Time-of-day) Regularmene deste horrio para frente (a cada minuto, a cada hora, diariamente,
semanalmente, mensalmente, anualmente).
Interrupo Cclica A interrupo cclica pode ser utilizada para executar uma parte de um programa
em intervalos fixos. Voc pode selecionar intervalos de 1 a 60000 ms. Isto habilita
voc, por exemplo, a implementar tarefas de controle em malha fechada que
devam ser processadas em intervalos fixos de tempo (por amostragem de tempo).
No S7-400 existem oito diferentes ciclos de interrupes com diferentes intervalos.
Para evitar que todas as interrupes cclicas venham a ocorrer ao mesmo tempo,
voc pode ajustar o "Phase Offset" para que as chamadas das interrupes cclicas
no ocorram aos mesmo tempo.
Interrupes Uma interrupo atraso de tempo (time-delay) uma chamada de um bloco
Atraso de tempo de organizao que ocorre uma nica vez, o qual ativada com um atraso de
tempo, por exemplo aps a recepo de um sinal de processo.
Interrupes atraso de tempo so manipuladas no programa do usurio com a
ajuda das SFCs 32 a 34.
SFC32 "SRT_DINT" =Inicia uma interrupo atraso de tempo.
SFC33 "CAN_DINT" =Cancela interrupo atraso de tempo.
SFC34 "QRY_DINT" =Solicita o status da interrupo atraso de
tempo.
Date: 04.10.2007
File: PRO2_11P.21
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Parmetros da CPU: Interrupes
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 22
Dados Locais A tabela acima permite ao usurio definir as condies dos dados locais para cada
classe de prioridade (OB).
Se a rea de dados locais de uma classe de prioridade for excedida, o sistema
levado para o modo STOP.
Se voc deseja enderear os dados locais simbolicamente, o editor STL/LAD/FBD
assegura endereamento e administrao corretos.
Tamanho do L Stack A quantidade de dados locais depende da CPU.
CPU 412 - 4 KB de dados locais
CPU 413 - 4KB de dados locais
CPU 414 - 8 KB de dados locais
CPU 416 - 16 KB de dados locais
CPU 417 - 32 KB de dados locais
Date: 04.10.2007
File: PRO2_11P.22
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Parmetros da CPU: Dados Locais
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 23
Funo Neste dilogo voc pode selecionar um dos trs nveis de proteo, de forma a
proteger a CPU de acessos no autorizados.
Ajustes das O nvel de proteo 1 (nenhum password parametrizado): A posio da
Caractersticas chave seletora do modo de operao da CPU determina a proteo:
chave na posio RUN-P ou STOP: sem restries de acesso
chave na posio RUN: possvel somente o acesso a leitura!
Nveis de Proteo Se voc tiver parametrizado um nvel de proteo com password:
Parametrizados acessos de leitura e escrita so possveis quando o password
conhecido, independente da posio da chave seletora e independente do
nvel de proteo parametrizado.
as seguintes restries so aplicveis quando o password no conhecido:
- Nvel de Proteo 1: corresponde ao descrito no pargrafo acima
(Ajustes de Caractersticas).
- Nvel de Proteo 2: permitido somente o acesso a leitura,
independente da posio da chave seletora do modo de operao da CPU.
- Nvel de Proteo 3: nenhumacesso, seja de leitura seja de escrita
possvel, independente da posio da chave seletora.
Date: 04.10.2007
File: PRO2_11P.23
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Parmetros da CPU: Conceitos de Proteo
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 24
Restart Completo No restart completo, as reas de memria no retentivas das memrias bit,
contadores e temporizadores so resetas aps o OB100 ter sido processado. OB1
sempre inicia com a primeira instruo.
Cold Restart As aes que ocorrem durante um restart a frio so similares aquelas paraa
(restart a frio) um restart completo, com as seguintes diferenas:
O OB102 chamado em vez do OB100.
Os blocos de dados gerados pelos SFCs durante a execuo cclica so
apagados, os outros blocos de dados so inicializados com valor da memria
de carga.
A imagem de processo e todos os temporizadores, contadores e memrias
de bit are resetados, se eles tiverem sido parametrizados como retentivos ou
no.
Restart No restart, aps o OB101 de restart ter sido executado, a execuo do OB1
continua do ponto onde ele foi interrompido, isto o restante do ciclo completado
com as memrias bit retentivas, temporizadores e contadores.
OD Output disable (desabilitao da sada), cabo de barramento no S7 (corresponde
ao comando inibir sada no S5).
Aes O sistema operacional realiza as seguintes aes na partida (startup):
Limpa as pilhas (stacks) (C/CR)
Reseta as memrias bit no retentivas, temporizadores e contadores (CR)
Reseta todas as memrias bit, temporizadores e contadores (C)
Limpa imagem de processo de sada PIQ (C/CR), se parametrizada (R)
Reseta rea de memria de sada (C, CR), se parametrizada (R)
Limpa interrupes (C/CR/R) atravs da OD
Atualiza a lista de estados do sistema (C/CR/R)
Transfere configurao para os mdulos (C/CR/R)
(CR=Restart Completo, C=Cold Restart, R=Restart).
Date: 04.10.2007
File: PRO2_11P.24
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Organizao de Programa : Restart Completo e Restart
Programa do Usurio
Sistema operacional
Requisio de interrupo
atravs de:
Sinal de Tempo
Deteco de erro
Interrupo de hardware
OBs para:
Manipulao de erros
Interrupes cclicas
Interrupes de hardware
etc.
Restart Completo
Incio ciclo de programa
e monitorao de tempo
Atualizao da PII
Execuo cclica
atravs do OB1
Programa de Startup :
OB 100 p/restart completo
Cancela OD
Limpa a PIQ
Executa o resto do ltimo ciclo
Limpa a PIQ (parm.)
Cancela OD
Envia valores PIQ p/sadas
Restart
Programa de Startup:
OB 101 p/ restart
Requisio de interrupo
atravs de:
Sinal de Tempo
Deteco de erro
Interrupo de hardware
Incio ciclo de programa
e monitorao de tempo
Atualizao da PII
Execuo cclica
atravs do OB1
Envia valores PIQ p/sadas
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 25
OB83 interrupo No S7-400 voc pode retirar e recolocar mdulos, enquanto est alimentado,
Retirada e Recoloc. em modo RUN ou em STOP. As excees so CPUs, fontes de alimentao,
mdulos S5 em adaptadores de mdulos e IMs.
Aps retirada de um mdulo autorizado emmodo RUN, o sistema operacional da
CPU pode chamar um dos seguintes blocos de organizao, dependendo da
situao:
OB85 atualizao da imagem de processo
OB122 I/O erro de acesso
OB83 evento Retirada&Recolocao.
O usurio deve tomar em considerao que o OB83 somente chamado aps
aproximadamente 1segundo, enquanto outros OBs, como uma regra, so ativados
brevemente.
Aps recolocao de um mdulo, ele verificado pela CPU e se nenhumtipo de
erro existir so atribudos parmetros. Aps uma atribuio ordenada de
parmetros, o mdulo est disponvel para uso.
Se um erro reconhecido na atribuio de parmetros, o OB82 diagnostica a
interrupo automaticamente iniciado.
Informao de As seguintes informaes existemnos dados locais do OB83:
Partida no OB83
Retirada/Recolocao de um mdulo
Endereo lgico do mdulo
Tipo atual do mdulo
Replacement Voc pode usar as funes do sistema SFC 44 (RPL_VAL) para substituir
Value um valor recolocado para os sinais de processo perdido de um mdulo de entrada
em um OB de erro.
Date: 04.10.2007
File: PRO2_11P.25
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
A Interrupo de Insero/Remoo de Mdulos no S7 - 400
RETIRADA
RECOLOCAO DISPONVEIS
Mdulo
presente
Mdulo
disponvel
Bloco de Organizao OB83
Interrup. Retir./Recoloc.mdulo
Bloco de Organizao OB122
Erro de acesso de I/O
Atribuio de parmetro pelo
sistema operacional
Bloco de Organizao OB85
Atualizao da imagem de processo
mx.
1sec.
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 26
Forando Com a funo Forcing voc pode, no S7-400, estabelecer valores pr definidos
para variveis do programa do usurio.
Notas para Forcing Antes de voc iniciar a funo "Force", voc deve ter certeza que ningum
mais est realizando a mesma funo ao mesmo tempo na mesma CPU.
Uma tarefa force somente pode ser deletada ou terminada com o comando de
menu Variable -> Stop Forcing.
"Forcing" no pode ser desfeita com o comando de menu Edit -> Undo .
O fechamento da janela Force Values ou o trmino da aplicao
"Monitor/Modify Variables" no apaga a tarefa force.
Ler as informaes fornecidas pela ajuda On-line (Help) sobre as diferenas
entre forar variveis e modificar variveis.
Selecionando a 1. Dentro do gderenciador SIMATIC selecione a CPU a ser forada e ento
Funo Force use o comando de menu PLC -> Display Force Values para abrir a janela
Force Values na qual o estado lgico atual da CPU selecionada mostrado.
Somente quando a janela "Force Values" est ativa possvel selecionar o
comando de menu para forar. Se nenhuma tarefa de force est correntemente
ativa, a janela fica vazia. Se uma tarefa de force est j ativa, as variveis so
mostradas em negrito com o correspondentes valores forados.
2. Na coluna de "endereo", insira as variveis que voc deseja forar. Na
coluna "Force Value", insira os valores que voc deseja atribuir para as
variveis.
3. Iniciar a tarefa forar com comando de menu Variable -> Force. Se nenhuma
tarefa forar estiver correntemente ativa, as variveis so atribudos os valores
forados.
4. Voc pode terminar a tarefa forar com o comando de menu
Variable -> Stop Forcing.
Date: 04.10.2007
File: PRO2_11P.26
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
O Comando Force no S7-400
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 27
Breakpoints Com a ajuda desta funo de teste possvel testar os programas gerados
(pontos de parada) em representao STL no modo passo simples e desta forma estar habilitado a
seguir a seqncia das instrues a serem executadas bem como verificar o
comportamento dos registros associados.
Diversos breakpoints (pontos de parada) podemser setados em um bloco. A
quantidade de nmeros de pontos de parada (breakpoints) possveis depende do
tipo de CPU:
CPU 412, 413: 2 pontos de parada
CPU 414: 3 pontos de parada
CPU 416: 4 pontos de parada
Notas O bloco deve ser aberto on-linede forma a selecionar a funoBreakpoint.
A funo "Breakpoints" somente pode ser selecionadas, se no dilogo
Debug -> Operation -> Test Operation foi selecionado.
O comando de menu Execute Next Statement ou Execute Call requer um
breakpoint livre para a implementao interna.
Quando um breakpoint se encontra no programa em processamento, a
CPU muda do modo RUN para o modo HOLD. Neste modo o led STOP fica
aceso e ao mesmo tempo o led RUN fica piscando.
Funes Breakpoint As funes breakpoint podemser selecionadas no editor de programas atravs do
item de menu "Debug" ou da barra de ferramentas breakpoint.
Barra Breakpoint Voc ativa a barra de ferramentas breakpoint no editor de programas atravs da
opo de menu View -> Breakpoint Bar.
Date: 04.10.2007
File: PRO2_11P.27
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Ativando a Barra Breakpoint
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 28
Barra Breakpoint A barra breakpoint oferece os botes de comando para Modo de Teste em Passo
Simples".
Ativa Breakpoint Deleta Breakpoints Ativa/desativa Breakpoints
Mostra prximo Breakpoint Continua Prxima Instruo Executa chamada
Ativa Breakpoint Com "Set Breakpoint" voc determina emqual local do programa ir ocorrer a
parada de execuo do programa. A instruo no ponto de parada (breakpoint) no
executada.
Deleta Breakpoint Todos os breakpoints so deletados.
Ativa / desativa Com "Breakpoint Active" voc ativa todos os breakpoints, no somente
Breakpoint aqueles j setados mas tambmaqueles que esto para serem setados.
Mostra prximo Com "Show Next Breakpoint" o editor salta para o prximo breakpoint
Breakkpoint marcado, semo programa ser processado.
Continua Com "Continue" o programa executado at o prximo breakpoint ativo.
Prxima Instruo Com "Execute Next Statement" voc processa o programa emmodo passo
simples. Se um bloco chamado alcanado, voc salta com "Execute Next
Statement" para a primeira instruo aps o bloco chamado.
Executa Chamada Quando a chamada de um bloco alcanada, voc salta para dentro do bloco com
"Execute Call". No fimdo bloco ocorre um salto de volta para a prxima instruo
aps a chamada do bloco.
Date: 04.10.2007
File: PRO2_11P.28
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Execuo de Programas com Breakpoints (somente S7-400)
Breakpoint
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 29
Introduo A funo "enable peripheral outputs" (habilita sadas de periferia) desabilita ou
desliga as sadas do CLP (peripheral outputs -PQ). Isto habilita voc a modificar as
sadas de periferia quando a CPU est em modo STOP.
Convocao Para habilitar as sadas de periferia, proceda como a seguir:
1. Use o comando de menu Table -> Open para abrir a tabela de variveis
(VAT) que contem as sadas de periferia que voc deseja modificar ou ative a
janela para a tabela de variveis correspondente.
2. Selecione o comando de menu PLC -> Connect To para estabelecer uma
conexo com a CPU desejada, ento voc pode modificar as sadas de
periferia da tabela de variveis ativa.
3. Abra o dilogo Operation Mode" com o comando de menu PLC ->
Operation Mode e mude o modo de operao da CPU para STOP.
4. Insira os valores apropriados para sadas de periferia que voc deseja
modificar na coluna "Modify Value".
Exemplos: PQB 7 Modify value: 2#0001000011
PQW 2 W#16#0027
PQD 4 DW#16#0001
5. Use o comando de menu Variable -> Enable Peripheral Output para mudar
para o modo "Enable Peripheral Output".
6. Use o comando de menu Variable -> Activate Modify Values para modificar
as sadas de periferia. "Enable Peripheral Output" se mantm ativa at voc
selecionar o comando de menu Variable -> Enable Peripheral Output novamente
para desativar esta funo.
7. Para atribuir novos valores, reinicie no passo 4.
Notas Se a CPU muda seu modo de operao e vai de STOP para RUN ou
STARTUP, por exemplo, uma menssagem mostrada.
Se a CPU est emmodo RUN e a funo "enable peripheral outputs"
selecionada, uma menssagem tambm mostrada.
Date: 04.10.2007
File: PRO2_11P.29
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
Habilitao de Sadas de Periferia (somente S7-400)
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 30
Descrio Alternativa de conexo ponto a ponto com custo compatvel e alta performance
para barramentos de comunicao. possvel conectar simples equipamentos
como leitoras de cdigos de barra e impressoras, bem como PLCs.
Protocolos CP441-1 Com uma interface plug-in
3964 (R) parametrizvel
Protocolo ASCII parametrizvel
Impressora
Protocolos CP441-2 Com duas interfaces plug-in
3964 (R) parametrizvel
RK 512
Protocolo ASCII parametrizvel
Impressora
Protocolos externos carregveis como:
- Modbus Mestre / escravo (Modicon)
- Allen Bradley (protocolo DF1)
Mdulos de Interface TTY, conector 9 pinos, mdulo de interface ativo/passivo
V.24 (RS232 C), conector 9 pinos
RS 422/485, conector 15 pinos
Date: 04.10.2007
File: PRO2_11P.30
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
CP 441 para Conexes Ponto-a-Ponto
643-1QA11-0AX0
3
ATB 386SX
1 2
4 3
INTF
EXF
RUN
STOP
RUN_P
SD
HDD
S2
USR
CP 441-1 CP 441-2
643-1QA11-0AX0
3
ATB 386SX
1 2
4 3
INTF
EXF
RUN
STOP
RUN_P
SD
HDD
S2
USR
CP441-1: Baixo custo com funcionalidade padro
CP441-2: Alta performance para tarefas solicitadas
Interfaces:
CP 441-1: 1 mdulo
de interface plug-in
CP 441-2: 2 mdulos
de interface plug-in
LEDs:
Envio, Recebimento e Erro
Baud rate:
CP 441-1: mx. 38.4 kbaud
CP 441-2: mx. 76.8 kbaud
Protocolos:
Protocolos padres integrados
Protocolos no Siemens carregveis
(drivers especiais) - para CP 441-2
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 31
Descrio O processador de comunicao CP 443-5 permite conexo do S7-400 rede
PROFIBUS.
Protocols Os seguintes protocolos esto disponveis:
S7 Functions:
Para comunicaes baseadas na camada (layer) 7 do modelo ISO/OSI entre
SIMATIC S7/M7/C7 e PCs.
O protocolo S7 fornece um SFB interface para as CPUs S7 para comunicao
dentro da famlia SIMATIC S7. Adicionalmente, funes para programao, teste,
administrao de objetos e diagnstico so fornecidas.
SEND/RCV:
Para comunicaes baseadas na camada (layer) 2 (camadaFDL) entre SIMATIC
S7, SIMATIC S5, PC/PGs e equipamentos no Siemens. A interface SEND/RCV
fornece uma forma simples de realizao de comunicao com blocos de dados
no estruturados.
A interface SEND/RCV implementada com:
Blocos de manipulao no SIMATIC S5
Chamadas de funes no SIMATIC S7
Chamadas de funes Cnos PGs/PCs
PROFIBUS FMS (Fieldbus Message Specification)
Para comunicao aberta entre SIMATIC S5, S7, PCs/PGs, equipamentos de
campo e produtos no Siemens. (EN 50170, Vol. 2, PROFIBUS).
O protocolo FMS permite comunicao orientada a objeto na camada (layer) 7 do
modelo ISO/OSI. O tpico tamanho de pacote 240 bytes.
PROFIBUS DP (Periferia Distribuda)
Para comunicao aberta entre SIMATIC S5, S7, PCs/PGs ousistemas e
equipamentos de campo no Siemens. (EN 50170, Vol. 2, PROFIBUS).
O protocolo DP projetado para trocas rpidas de pequenas quantidades de dados
entre PLCs ou PCs e equipamentos de campo com tempos de resposta <10 ms.
Date: 04.10.2007
File: PRO2_11P.31
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
CP 443-5: Conexo para PROFIBUS
Formato: largura simples
Protocolos:
SEND/RCV
S7 Functions
FMS (somente CP 443-5 Basic)
DP Mestre (somente CP 443-5 Extended)
Baud rate:
9.6 Kbps 12 Mbps
Conexo:
Cabo eltrico: conector DB9
Cabo FO: terminal de barramento
Configurao:
NCM S7 para PROFIBUS inclundo
FCs e FBs
CP 443-5 Basic
CP 443-5 Extended
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 32
Descrio O mdulo de interface IM 467 planejado para operao em um sistema PLC S7-
400. Este possibilita a conexo do S7-400 ao PROFIBUS DP.
Protocolos O IM 467 oferece dois servios de comunicao:
PROFIBUS DP
O IM 467 um Mestre PROFIBUS DP de acordo com EN 50 170. A configurao
ocorre totalmente com STEP 7. A performance idntica, em princpio, as
interfaces integrada PROFIBUS DP nos mdulos CPU.
Nenhuma chamada de funo emSTEP 7 no programa do usurio necessria
para comunicao DP.
S7 Functions
As funes S7 garantemcomunicao tima e simples em uma soluo de
automao SIMATIC S7/M7/C7. As seguintes funes S7 so habilitadas para o IM
467:
Funes PG atravs de PROFIBUS DP
Funes HMI atravs de PROFIBUS DP
A comunicao ocorre sem configuraes adicionais no IM 467.
As funes S7 podemser utilizadas sozinhas ou emparalelo ao protocolo
PROFIBUS DP. Se elas utilizadas emparalelo a comunicao DP, ento esta
apresenta repercusso no ciclo de tempo do barramento PROFIBUS DP.
Date: 04.10.2007
File: PRO2_11P.32
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
IM 467: Interface Mestre PROFIBUS-DP
Formato: largura simples
Protocolos:
DP Mestre
S7 Functions
Baud rate:
9.6 Kbps 12 Mbps
Conexo:
Cabo eltrico: conector DB9
Configurao:
Configurao e programao possveis
atravs de PROFIBUS DP
IM 467
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 33
Descrio Os processadores de comunicao CP 443-1 e CP 443-1 TCP/IP permitem
conexo do S7-400 rede Ethernet Industrial.
Protocolos Os seguintes protocolos esto disponveis:
S7 Functions
Para comunicaes baseadas na camada (layer) 7 do modelo ISO/OSI entre
SIMATIC S7/M7/C7 e PCs.
SEND/RCV
Para comunicaes baseadas na camada (layer) 4 (Pilha de Transporte ISO no CP
443-1 e Pilha de Transporte TCP no CP 443-1 TCP/IP) entre SIMATIC S7,
SIMATIC S5 e PC/PGs.
MMS/MAP
Para comunicaes abertas baseadas na camada (layer) 7 entre SIMATIC S7,
SIMATIC S5, PCs/PGs e sistemas no Siemens.
Esta funcionalidade fornecida pelo CP 444.
Date: 04.10.2007
File: PRO2_11P.33
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
CP 443-1: Conexo para Ethernet Industrial
Formato: largura simples
Protocolos:
SEND/RCV e S7 Functions na Pilha de
Transporte ISO (CP 443-1) e Pilha
TCP/IP (CP 443-1 TCP/IP)
CP444: MMS/MAP
Conexes:
S7 Functions: mx. 48 conexes
SEND/RCV: mx. 64 conexes
Funes:
Capacidade de protocolos mltiplos
Programao remota atravs de LAN e
WAN (somente CP443-1 TCP/IP)
Conexo:
Chaveamento automtico entre AUI e
conexo par tranado
Configurao:
NCM-S7 para Ethernet Industrial
incluindo chamadas de funes para
SEND/RCV
CP 443-1
CP 443-1 TCP/IP
CP 444
Siemens Ltda
Training Center
ST-7PRO2
SIMATIC S7-400 Pgina 34
Descrio O processador de comunicao CP 443-1 IT permite voc conectar o S7-400
Internet.
Protocolos Os seguintes protocolos esto disponveis para o CP 443-1 IT:
S7 Functions
Para comunicao baseada na camada (layer) 7 do modelo ISO/OSI entre
SIMATIC S7/M7/C7 e PCs.
SEND/RCV
Para comunicao baseada na camada (layer) 4 (Pilha de Transporte TCP) entre
SIMATIC S7, SIMATIC S5 e PC/PGs.
Comunicao Da mesma forma que as facilidades de comunicao industrial, esta CP Internet
atravs da Internet fornece acesso a Internet. Isto significa:
O usurio pode se logar no sistema de qualquer lugar usando um password.
Voc pode ler dados de processo e operao de uma planta com
qualquer browser de Internet (Internet Explorer, Netscape, etc.). (pginas
Integrais HTML para informaes do sistema).
Interveno do operador tambm possvel, permitindo servios a serem
realizados de qualquer lugar do mundo.
O CP Internet tambm habilita voc a enviar todas as informaes importantes de
produo ou estados da planta de qualquer lugar do mundo, a saber:
por e-mail atravs da Internet
para telefones celulares ou mquinas de fax
to external PCs
para pagers ou palmtops comacesso a Internet.
Date: 04.10.2007
File: PRO2_11P.34
SIMATIC S7
Siemens AG 1999. todas rights reserved.
Conhecimento em Automao
Training Center
CP 443-1 IT: Conexo para Internet
Mesmo formato e funcionalidade do
CP 443-1 TCP:
S7 Functions
Send/Recei ve atravs de RFC 1006 e UDP
Funcionalidade adicional Internet:
CP 443-1 IT um WWW server
Pginas HTML e applets on board
para S7 Functions
WWW server utilizados para operao de
controle/monitorao de pequenos
controladores
Nenhum custo no cliente final
Plataforma independente
Filosofia de operao de Internet familiar
E-mail client:
Uso de e-mail para alertas de falhas
Acesso a telefones celulares, pagers, PC, Fax,
etc.
Uma chamada, diferentes sistemas de acessos
simultneos, isto , nenhum software a parte
para cada sistema
CP 443-1 IT
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 1
Contedo Pg.
Estrutura de um Sistema PROFIBUS DP ........................................................................................... 2
Mtodos de Comunicao PROFIBUS ............................................................................................... 3
Ciclo de Tempo de um Sistema Mono Mestre PROFIBUS DP .......................................................... 4
PROFIBUS Mestre no SIMATIC S7 .................................................................................................... 5
Escravos DP disponveis ..................................................................................................................... 6
Resistor de Terminao PROFIBUS DP ............................................................................................. 7
Configurando um Sistema DP Mestre ................................................................................................. 8
Configurando Escravos DP Compactos e Modulares ......................................................................... 9
Configurando Escravos DP Inteligentes em um Sistema DP Mestre (p.ex. CPU 315-2) ................... 10
Inserindo Escravos DP Inteligentes em um Sistema Mestre .............................................................. 11
Anlise de Erros/Falhas no OB 86 quando ocorre falhas em Escravos .............................................. 12
Diagnose de Escravos com SFC 13 (DPNRM_DG) ........................................................................... 13
Lendo Consistncia de Dados dos Escravos DP Padres com SFC 14 ............................................ 14
Escrevendo Consistncia de Dados dos Escravos DP Padres com SFC 15 ................................... 15
Sincronizando Escravos DP com SFC 11 (DPSYC_FR) .................................................................... 16
Instalao posterior de Escravos PROFIBUS DP ................................................................................ 17
Date: 04.10.2007
File: PRO2_12P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
I/O Distribudo e Atribuio de Parmetros
EXT.-BATT.
5...15V DC
X3
X1
414 - 2XG00 - 0AB0
CPU 414-2
X 2
3 4
INTF
EXTF
STOP
RUN
CRST
FRCE
CRST
WRST
RUN-P
RUN
STOP
CMRES
INTF
EXTF
BUSF
DP
Seletora de tipo Startup
Seletora de modo operao
Slot para carto de memria
Interface MPI
Alimentao externa de bateria
Interface integrada
PROFIBUS DP
Leds de Erros
para erros
gerais da CPU
Leds de Erros
da interface DP
integrada
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 2
Vista Geral Equipamentos instalados no campo para automao de processos, como
sensores, atuadores, transdutores e acionamentos esto sendo fabricados
cada vez mais utilizando sistemas de comunicao de campo para troca de
informaes com unidades de controle de alto nvel.
O PROFIBUS um sistema de comunicao de campo que pode ser usado
por todos os equipamentos de automao, tais como PLCs, PCs, interfaces
homem mquina, atuadores e sensores, para troca de dados.
PROFIBUS DP PROFIBUS DP um protocolo otimizado para velocidade, o qual foi
especialmente projetado para comunicao entre PLCs (Mestres DP) e I/Os
distribudos (Escravos DP).
PROFIBUS DP de baixo custo e flexvel para substituir a transmisso dos
incmodos sinais paralelos 24V e linhas 20mA.
PROFIBUS DP baseado na DIN 19245 Parte 1 e extenses especificados
por usurios da DIN 19245 Part 3. No curso do processo de padronizao de
comunicaes de campo europeu, o PROFIBUS DP foi integrada nos padres
de comunicaes de campo europeu EN 50170.
Mestres PROFIBUS faz distino entre mestres e escravos.
Os mestres PROFIBUS so mandatrios no trfico de dados na rede. Um
mestre pode enviar mensagens sem receber requisio para isto, fornecendo
a posse do basto para poder acessar o barramento de comunicao.
O mestres tambm so referenciados no protocolo PROFIBUS como ns
ativos.
Escravos Os escravos PROFIBUS so simples equipamentos de I/O, tais como
atuadores, sensores, transdutores, etc. Eles no recebem o basto, ou seja,
eles somente podem reconhecer o recebimento de mensagens (dados)
requisitados por um mestre. Escravos so ns passivos.
Date: 04.10.2007
File: PRO2_12P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura de um Sistema PROFIBUS DP
S7 S7 PS S7 S7
CP
342-
5 DP
S7-
300
CPU
315-
2 DP
Escravo
DP
Padro
SIMATIC S7-300
PROFIBUS -DP
Escravo
DP
Padro
PS
10A
S7 S7 S7
400
CPU
414-
2 DP
Mestres
S7-400
S7 S7
PS
S7 S7 IM
153
Escravos Modulares
Escravos Compactos
ET 200M
Escravo Inteligente
S7-300
S7-300
CPU
314
S7 PS S7-300
CP
342-
5 DP
Escravos
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 3
Controle de Acesso O mtodo de controle de acesso ao barramento determina quando um n
ao Barramento pode enviar dados. Isto essencial que somente um n tenha o direito de
envio de dados a cada intervalo de tempo.
O protocolo PROFIBUS fornece para duas requisies bsicas atreladas no
barramento um mtodo de controle de acesso:
Para comunicao entre estaes complexas de mesmo nvel (mestres),
elas devem se assegurar que cada uma destas estaes tenha
oportunidade suficiente de operar com suas tarefas de comunicao nos
intervalos definidos.
Para comunicao entre um mestre complexo e simples I/Os associados a
ele (escravos), uma cclica troca de dados em tempo real deve ser
implementada com uma pequena sobra sempre que possvel.
O mtodo de controle de acesso ao barramento PROFIBUS portanto emprega
passagem de basto para comunicao entre mestres complexos e princpio
mestre-escravo para comunicao entre mestres e simples equipamentos de
I/O (escravos).
Mtodo de O mtodo de passagem de basto assegura que o acesso direto ao
Passagem de Basto barramento (basto) se dar no exato instante definido.
O basto, uma moldura de mensagem especial que passa o direito de enviar
de um mestre para o prximo, deve ser dado uma vez para cada mestre por
volta dentro de um tempo mximo de circulao do basto.
Princpio O princpio mestre-escravo habilita o mestre (n ativo) que esteja de posse
Mestre-escravo do basto enderear os escravos parametrizados a ele (ns passivos).
O mestre pode enviar mensagens (dados do usurio) para outros escravos ou
buscar mensagens (dados do usurio) dos escravos.
Date: 04.10.2007
File: PRO2_12P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Mtodos de Comunicao PROFIBUS
Passagem lgica de basto
entre mestres
PG 720
PROFIBUS
FM
SV
Acesso cclico entre
mestres e escravos
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 4
PROFIBUS DP O protocolo PROFIBUS DP projetado para troca rpida de dados no nvel
sensor / atuador. Neste nvel as unidades de controle central, tais como PLCs,
se comunicam com equipamentos de entradas e sadas distribudas atravs
de uma conexo serial de alta velocidade. A troca de dados com estes
equipamentos distribudos preponderantemente cclica.
O controlador central (mestre) l os dados de entrada dos escravos e escreve
as informaes de sada nos escravos. O ciclo de tempo da comunicao
deve ser menor do que o ciclo da varreduta do PLC.
Nota O protocolo PROFIBUS DP no pode ser utilizado para troca de informaes
entre mestres.
Velocidade Para a transmisso de 512 bits de dados de entrada e 512 bits de dados de
sada divididos entre 32 ns PROFIBUS DP leva aproximadamente 6 ms com
uma velocidade de transmisso de 1.5 Mbit/s e menos do que 2 ms em 12
Mbit/s.
A velocidade superior deste protocolo supera a do protocolo PROFIBUS FMS
principalmente devido ao fato de que os dados de entrada e sada so
transferridos em um ciclo de mensagem usando a camada (layer) 2 de
servio de envio e recebimento de dados.
Date: 04.10.2007
File: PRO2_12P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Ciclo de Tempo de um Sistema Mono Mestre PROFIBUS DP
Condies: Cada escravo tem 2 bytes de dados de entrada e 2 bytes de dados de sada.
O mnimo intervalo de tempo do escravo de 200 microsegundos
Tsdi= 37 bit times, Tsdr= 11 bit times
Escravos DP
Ciclo de tempo da
comunicao [ms]
30 20 10
5
2
6
10
14
18
12 Mbit/s
1,5 Mbit/s
500 Kbit/s
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 5
Vista Geral O SIMATIC S7/M7 mantm a tendncia em direo automao distribuda
pela integrao de I/O distribudos nos sistemas de automao. A tecnologia
de automao inovadora do SIMATIC S7/M7 forma uma parceria ideal com a
comunicao de campo internacionalmente estabelecida PROFIBUS DP/PA e
estaes de I/O distribudos.
Mestre PROFIBUS Os PLCs S7-300 e S7-400 podem se conectados ao PROFIBUS como
mestres individualmente atravs de CPUs com interface integrada PROFIBUS
DP ou atravs de processadores de comuniao (CPs).
As CPUs com interface integrada PROFIBUS DP permitem a voc configurar
sistemas de automao distribuda com velocidades de comunicao de at
12 Mbaud.
Integrao A total integrao de sistemas de PLC e I/Os distribudos tem as seguintes
vantagens para o usurio:
Configurao uniforme: Voc configura o central e os I/Os distribudos
com STEP 7. Isto representa uma ferramenta de configurao uniforme
para o usurio, independentemente do tipo de soluo de automao.
Programao centralizada e distribuda: voc programa o PLC com STEP
7 independente do tipo de configurao. Isto significa que voc pode
escrever programas sem se preocupar com a configurao final do
hardware.
Performance de sistema total, se em uma configurao centralizada ou
distribuda: SIMATIC S7/M7 oferece poderoso suporte de sistema. Isto
inclui softwares de parametrizao de I/Os, uma extensa gama de
facilidades de diagnsticos e mdulos com funes fceis de conectar.
Programao, teste e startup via PROFIBUS-DP: Chamada de estruturas
de automao distribuda para facilitar o startup. Com STEP 7 voc pode
programar, testar e colocar em operao (start up) o PLC central de um
ponto do campo com a mesma facilidade que voc tem da porta de
comunicao na CPU com o equipamento de programao.
Date: 04.10.2007
File: PRO2_12P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
PROFIBUS Mestre no SIMATIC S7
S7 S7 PS S7 PS
MESTRE DP MESTRE DP
S7-300
CP
342-
5 DP
S7-300
CPU
315-
2 DP
S7
MESTRE DP
PS
10A
S7 S7
MESTRE DP
PS
10A
S7
400
CPU
414-
1
S7
CP
443-
5DP
S7
400
CPU
414-
2 DP
S7-300
CPU
314
PROFIBUS DP
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 6
Escravos Modulares O ET200M consiste de um mdulo de interface IM153-1 que conectado a
ET 200M um mestre S7/M7-PROFIBUS. Todos os mdulos S7-300 endereados
atravs do barramento P pode ser inserido no ET 200M.
Mximo espao de endereo por ET 200M: 128/128 bytes cada para
entradas/sadas com um mximo de 12 Mbaud.
Escravos Compactos Ambos ET 200L e ET 200B consistem de um bloco terminal e um bloco
ET 200L e ET 200B eletrnico. Existem blocos eletrnicos com canais digitais e analgicos. O
ET 200L usado onde poucas entradas e sadas sonecessrias com baud
rates de at 1.5 Mbaud.
O ET 200B usado onde existe um nmero limitado de espao de montagem.
O baud rate mximo de 12Mbaud.
Escravos Compactos O compacto ET 200C com o elevado grau de proteo IP66/IP77 projetado
ET 200C para aplicao em ambientes industriais agressivos. (Tambm pode ser
usado ao tempo). Com um baud rate mximo de at 12Mbaud para
entradas/sadas digital e at 1.5 Mbaud para entradas/sadas analgicas.
Escravos Modulares O ET 200X uma estao I/O compacta com o elevado grau de proteo
ET 200X IP 65/IP 67 e consiste de um mdulo bsico e mdulos de expanso (p.ex.
mdulos de entrada/sada, mestre AS-interface, mdulos chaves de partidas,
mdulos pneumticos, fontes de alimentao SITOP).
Escravos Modulares O ET 200S uma estao I/O distribuda com grau de proteo IP 20. Seu
ET 200S elevado projeto modular habilita-o a adaptar-se rpida e perfeitamente em
qualquer aplicao.
Os ET 200S consistem de mdulos de interface PROFIBUS DP, mdulos
eletrnicos digitais e analgicos, mdulos de funo tecnolgico (p.ex.
contador, controle de posicionamento) e chaves de partida.
Escravos Inteligentes P.ex. CPU 315-2, CP 342-5 ou S5-95-PROFIBUS com funcionalidade
escrava.
Date: 04.10.2007
File: PRO2_12P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Escravos DP disponveis
Escravos modulares consistem de um mdulo de
Interface e mdulos da famlia S7-300 (ET 200M)
ou famlia S5 (ET 200U).
Pequenos, estaes compactas de I/Os (grau de
Proteo IP 20) com canais de entrada e sada
Integrados.
ET 200B
ET 200U ET 200M
ET 200L
Mdulos de Interface com mdulos de entrada/sada,
chaves de partidas, etc.
Grau de proteo: ET 200X: IP 65/67, ET 200S: IP 20
ET 200X ET 200S
CPU 215 CPU 315-2 DP
Escravos DP inteligentes das famlias S7-200 e S7-300
para pr processamento de dados.
CPU 316-2 DP CPU 318-2 DP CP 342-5
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 7
Ajustes do Manter o resistor de terminao do primeiro e do ltimo conectores da rede
Resistor de na posio ON. Para fazer isto, voc abre a cobertura do conector de
Terminao barramento e ajuste a chave na posio ON (ver diagrama).
O PROFIBUS somente fica corretamente terminado se a fonte de alimentao
do n no qual o resistor de terminao inserido est atualmente chaveado
em ON. Se no for este o caso, o PROFIBUS tambm pode ser terminado
com um resistor de terminao RS485 ativo (6ES7972-0DA00-0AA0). O
resistor de terminao ento recebe uma tenso de alimentao permanente
separada daquela de outros componentes I/O ou alimentado por este antes
dos I/Os.
A terminao do sistema de barramento habilita os ns (p.ex. ET 200L) a se
conectados e desconectados quando necessrio, sem causar mau
funcionamento.
Comprimento dos O comprimento mximo de um segmento Profibus depende do baud rate:
Cabos Baud rate Comprimento do Segmento
9.6 to 187.5 Kbaud 10000 m
500 Kbaud 400 m
1.5 Mbaud 200 m
3 to 12 Mbaud 100 m
O mximo comprimento de um segmento para MPI 50 m. At 9 repetidores
(repeaters) podem ser conectados em uma fila.
Date: 04.10.2007
File: PRO2_12P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Resistor de Terminao PROFIBUS DP
CPU com interface
Profibus DP
N N N N N= N Profibus DP
Resistor de Terminao
necessrio
N N N N
N= N Profibus DP
Resistor de Terminao
necessrio
N
Resistor de Terminao
necessrio
CPU com interface
Profibus DP
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 8
I/O Distribudo Todos os sistemas mestres so constitudos de um mestre DP master e
escravos DP que so conectados atravs de um cabo barramento e que se
comunicam atravs de protocolo PROFIBUS DP so designados como I/Os
distribudos.
Mestre DP Como mestre DP voc pode instalar:
CPU S7 com interface mestre DP integrada (p.ex. CPU 414-2, etc.);
Submdulo de interface, que atribuda a uma CPU M7 / FM M7;
CP em conexo com uma CPU (p.ex. CP 443-5, etc.)
Ajustando um Para configurar um sistema mestre, proceder como a seguir:
Mestre DP 1. Selecionar um mestre DP da janela "Hardware Catalog".
2. Usando marcar e arrastar, insira o mdulo na linha permitida do bastidor.
A caixa de dilogo "Properties - PROFIBUS Nodes" aberta. Neste
dilogo voc pode estabelecer as seguintes propriedades:
- configurar uma nova subrede PROFIBUS ou selecionar uma
existente.
- ajustar as propriedades da subrede PROFIBUS (baud rate, etc.).
- estabelecer o endereo PROFIBUS do mestre DP.
3. Reconhecer a configurao com "O.K.". Os seguintes smbolos
aparecem:
para sistema mestre DP. Este smbolo usado como
"hanger " (pindurador) para os escravos DP.
Nota Voc pode ter operao mono-mestre bem como operao multi-mestre na
subrede PROFIBUS DP. Em operao mono-mestre somente um mestre DP
operado na subrede PROFIBUS, em operao multi-mestre diversos
mestres DP com seus respectivos sistemas mestres so operados em uma
subrede PROFIBUS.
Date: 04.10.2007
File: PRO2_12P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurao de um Sistema DP Mestre
Sistema Mestre DP
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 9
Escravos DP Mdulos com entradas e sadas digitais/analgicas integradas (escravo
DP compacto, p.ex. ET200B).
Mdulos de interface com mdulos S5 ou S7 (escravos modulares DP,
p.ex. ET200M).
Estaes S7-200/300 com mdulos que suportam funes Escravo
Inteligente" (p.ex. CPU 215-DP, CPU 315-2).
Selecionando De forma a configurar um escravo DP, proceder como a seguir:
Escravos DP 1. Selecione o escravo DP compacto desejado (p.ex. ET200B) ou o mdulo
de interface (p.ex. IM153 para ET200M) para um escravo modular do
"Hardware Catalog".
2. Arraste o smbolo para dentro do smbolo de sistema master.
A caixa de dilogo "Properties - PROFIBUS Nodes" aberta. Aqui voc
pode ajustar:
- propriedades da subrede PROFIBUS (baud rate, etc.).
- o endereo PROFIBUS do escravo DP.
3. Reconhea as configuraes com "O.K.". Uma tabela de configurao
anexada ao smbolo, que representa o complemento de I/O do escravo
compacto ou o bastidor do escravo modular.
4. Para um escravo DP modular, voc agora insere mdulos desejados do
"Hardware Catalog" na tabela de configurao.
O endereamento e atribuio de parmetros dos mdulos ento ocorre
do mesmo modo que na configurao central.
Date: 04.10.2007
File: PRO2_12P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurando Escravos DP Compactos e Modulares
Sistema mestre DP
Escravo DP
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 10
Escravos A caracterstica fundamental de um escravo DP inteligente que a
Inteligentes entrada/sada de dados no esto diretamente disponveis ao mestre DP de
uma entrada/sada real, mas pr processadas pela CPU.
Com um escravo DP inteligente, o mestre DP no acessa as entradas/sadas
do escravo DP inteligente, mas a rea de endereos da CPU pr
processadora. O programa do usurio da CPU pr processadora deve tomar
cuidado da troca de dados entre a rea de endereos e a rea de
entrada/sada.
Nota Um escravo DP inteligente (p.ex. CPU 315-2 DP) no pode ser configurada
simultaneamente como um mestre DP e um escravo DP. Uma CPU 315-2 DP
configurada como um escravo DP no pode simultaneamente ser mestre DP
para outras estaes escravas DP.
Configurando De forma a configurar uma CPU 315-2 DP como um escravo DP inteligente,
Escravos DP proceda como a seguir:
1. Insira uma estao S7-300 em seu projeto.
2. Abra o editor HW Config, pela seleo da estao ento com duplo clique
no smbolo "Hardware".
3. Insira uma CPU 315-2 DP do catlogo de Hardware para dentro da tabela
de configurao.
4. Duplo clique na linha 2.1 da tabela de configurao. O dilogo "Properties
- DP Master" aberto.
5. Ative a opo "Use Controller as Slave" na pgina da tabela "Slave
Configuration".
6. Especifique outros parmetros PROFIBUS da CPU 315-2-DP.
7. Confirme os ajustes com "O.K.".
Date: 04.10.2007
File: PRO2_12P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurando Escravos DP Inteligentes em um Sistema DP Mestre
(p.ex. CPU 315-2)
Escravo DP
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 11
Inserindo um EscravoDe forma a inserir uma CPU 315-2 DP como um escravo DP inteligente em
DP Inteligente um sistema mestre, proceda como a seguir:
1. No seu projeto insira uma estao com capacidade mestre DP (p.ex. S7-
400).
2. Abra o editor HW Config, pela seleo da estao e ento um duplo
clique no smbolo "Hardware".
3. Inserir um mestre DP (p.ex. CPU 414-2 DP) do "Hardware Catalog" na
tabela de configurao.
4. Duplo clique na linha "DP Master" da tabela de configurao. O dilogo
"Properties - DP Master" aberto.
5. Especifique todos os parmetros mestre DP PROFIBUS e salve a
configurao com o boto OK.
6. Usando marca e arrasta, arraste a CPU 315-2 DP do "Hardware Catalog"
(que j contem estaes configuradas) para o sistema mestre.
7. Duplo clique na segunda linha do escravo DP (o nome do escravo DP,
p.ex. CPU 315-2 DP encontrado l) e selecione a tabela "Connection.
Uma lista de todas configuradas, escravos DP inteligentes mostrado
nesta pgina da tabela.
8. Selecione o escravo DP inteligente desejado e clique o boto de
comando "Connect".
9. Selecione a tabela "Slave Configuration" e atribua os endereos mestre e
escravo de um com o outro.
reas de entrada do mestre DP so reas de sada do escravo DP e vice
versa.
10. Confirme a configurao com "O.K.". Os dados pr processados pela
CPU 315-2 DP so agora atribudos a CPU 414-2 DP que um sistema
mestre com um escravo inteligente.
Nota Para uma correta inicializao aps estabelecida a alimentao do sistema
mestre DP e escravo DP inteligente, os Obs de erro associados (OB 85, OB
86, etc.) devem ser transferidos para as respectivas CPUs.
Date: 04.10.2007
File: PRO2_12P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Inserindo Escravos DP Inteligentes em um Sistema Mestre
Duplo clique
Mestre DP
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 12
Falha da Estao O sistema operacional da CPU (CPU 315-2DP ou S7-400) ativa o OB86, se a
falha do bastidor, da subrede ou I?O distribudo detetado, se o evento
identificado como comeando ou terminando.
Se voc no programou o OB86 e um erro ocorre a CPU vai para o modo
STOP.
Variveis no OB86 OB86_FLT_ID: B#16#C4 //falha na estao DP
OB86_FLT_ID: B#16#C5 //estao DP faltante
OB86_MDL_ADDR: Endereo base lgico do mestre DP
(endereo de diagnstico)
OB86_ RACKS_FLTD: ==> Muda tipo de dado para DWORD
Contedos:
Bit 0 a 7: Nmero da estao DP (endereo PROFIBUS)
Bit 8 a 15: ID de subrede DP
Bit 16 a 30: Endereo base lgico do escravo DP
(endereo de diagnstico)
Bit 31: Identificador I/O
Date: 04.10.2007
File: PRO2_12P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Anlise Erros/Falhas no OB 86 quando ocorre falhas em Escravos
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 13
Diagnose do Escravo Com SFC 13 "DPNRM_DG" voc l os dados de diagnstico de um escravo
DP na forma estipulada na EN 50 170.
Se nenhum erro ocorrer durante a transmisso, os dados lidos so inseridos
na rea de destino especificada pelo RECORD (OUT 2).
Voc inicia a funo leitura pela atribuio de 1 no parmetro de entrada
REQ (IN0) quando voc chama SFC 13.
Estructura de A estrutura bsica de dados de diagnstico do escravo mostrada na
Diagnose Escravo seguinte tabela. Para mais informaes favor ver manuais dos escravos DP
(por exemplo, nmeros de erro no manual NCM-S7).
Estrutura bsica de diagnose do escravo
Byte Significado
0 Estado da estao 1
1 Estado da estao 2
2 Estado da estao 3
3 Nmero da estao mestre
5 Identificao do fabricante (byte baixo)
6... Demais diagnoses do escravo especfico
Nota No caso dos escravos padres para os quais o nmero do dado de diagnose
padro maior que 240 bytes e no mais do que 244 bytes, os primeiros 240
bytes so transferridos para a rea de destino e o correspondente bit de
estouro (overflow) setado nos dados.
Date: 04.10.2007
File: PRO2_12P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Diagnose de Escravos com SFC 13 (DPNRM_DG)
Parmetro Declarao Tipo dado rea de Memria Descrio
REQ INPUT BOOL I, Q, M, D, L, Const. REQ = 1: Requisio para leitura
LADDR INPUT WORD I, Q, M, D, L, Const. Endereo diagnstico configurado do escravo DP
RET_VAL OUTPUT INT I, Q, M, D, L Se um erro ocorrer durante processamento da
funo, o valor retornado contem um cdigo de erro.
Se nhenhum erro ocorrer, RET_VAL contem o com-
primento dos dados transmitidos atualmente.
RECORD OUTPUT ANY I, Q, M, D, L rea de destino p/leitura de dados de diagnstico.
Somente tipos de dados BYTE so permitidos.
O mnimo comprimento do arquivo de dados a
serem lidos da rea de destino 6.
BUSY OUTPUT BOOL I, Q, M, D, L BUSY = 1: A leitura ainda no foi completada.
"DPNRM_DG"
EN ENO
REQ
LADDR
RET_VAL ??.?
RECORD ??.?
BUSY ??.?
??.?
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 14
Funo Com a SFC 14 "DPRD_DAT" voc l dados consistentes de um escravo DP
padro.
O comprimento dos dados deve ser at 3 bytes ou muito mais do que 4 bytes.
O comprimento mximo depende da CPU. Voc encontra esta informao na
especificao tcnica da sua CPU. Se nenhum erro ocorrer durante a
transmisso, os dados lidos so inseridos na rea de destino especificada
pelo RECORD.
A rea de destino deve ser do mesmo tamanho que a rea que voc tiver
configurado para o mdulo selecionado com o STEP 7.
Se um escravo DP padro de projeto modular ou tem diversos
identificadores DP, voc somente pode acessar os dados de um
mdulo/identificador DP neste instante no endereo de partida configurado
com uma SFC 14 chamada.
Exemplo
Date: 04.10.2007
File: PRO2_12P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Lendo Consistncia Dados dos Escravos DP Padres com SFC 14
"DPRD_DAT"
EN ENO
LADDR RET_VAL ??.?
RECORD ??.?
??.?
Parmetro Declarao Tipo Dado rea Memria Descrio
LADDR INPUT WORD I, Q, M, D, L, Const. Configura endereo de partida na rea de entrada
do mdulo do qual o dado ser lido.
RET_VAL OUTPUT INT I, Q, M, D, L Se um erro ocorrer durante o processamento da
funo o valor retornado contem um cdigo de erro.
RECORD OUTPUT ANY I, Q, M, D, L rea de destino para o dado do usurio lido. Ele
deve ser exatamente do mesmo tamanho que a
rea que voc configurou para o mdulo
selecionado com o STEP 7. Somente dados do
tipo BYTE so permitidos.
Voc necessita da SFC 14 "DPRD_DAT" para ler mais de quatro
bytes consecutivos de dados (dados consistentes).
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 15
Funo Com a SFC 14 "DPWR_DAT" voc escreve dados no arquivo (RECORD)
consistentemente para o escravo DP padro endereado.
O tamanho dos dados devem ser quantificados para trs ou mais de quatro
bytes. O mximo comprimento depende da CPU. Voc ir encontrar isto nas
especificaes tcnicas da sua CPU. O dado transmitido sincronamente,
isto , a escrita completada quando a execuo da SFC terminada.
A rea fonte deve ser do mesmo tamanho que a rea que voc tinha
configurado para o mdulo selecionado com o STEP 7.
Se o escravo DP padro de projeto modular, voc somente pode acessar
um mdulo de escravo DP.
Exemplo
Date: 04.10.2007
File: PRO2_12P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Escrevendo Consistncia Dados dos Escravos DP Padres c/ SFC 15
"DPWR_DAT"
EN ENO
LADDR RET_VAL ??.?
RECORD
??.?
??.?
Parmetro Declarao Tipo Dado rea Memria Descrio
LADDR INPUT WORD I, Q, M, D, L, Const. Configura endereo de partida na rea de sada
do mdulo do qual o dado ser escrito.
RECORD INPUT ANY I, Q, M, D, L rea fonte dos dados do usurio para escrita. Ela
deve ser exatamente do mesmo tamanho que a
rea que voc havia configurado para o mdulo
selecionado com o STEP7.
Somente tipos de dados BYTE so permitidos.
RET_VAL OUTPUT INT I, Q, M, D, L Se um erro ocorrer durante o processamento da
funo, o valor retornado contem um cdigo de
erro.
Voc necessita da SFC 15 "DPWR_DAT" para escrever mais de
quatro bytes consecutivsos de dados (dados consistentes).
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 16
Descrio Com a SFC 11 DPSYC_FR, voc pode sincronizar um ou mais grupos de
escravos DP. Para fazer isto, voc envia um dos seguintes comandos de
controle ou uma combinao destes para os grupos desejados:
SYNC (sada simultnea e congelamento do estado de sada dos
escravos DP)
UNSYNC (cancela o comando de controle SYNC)
FREEZE (congelamento do estado da entradas do escravo DP leitura das
entradas congeladas)
UNFREEZE (cancela o comando de controle FREEZE)
Pr-requisitos Antes de voc enviar os comandos de controle mencionados acima, voc
deve ter dividido os escravos DP em grupos SYNC ou FREEZE com o
STEP 7.
Qual o efeito Com o comando de controle SYNC, os escravos DP dos grupos
do SYNC? denominados so chaveados para o modo Sync, isto , o mestre DP
transmite os dados de sada correntes e provoca nos escravos DP afetados o
congelamento das sadas. Quando eles recebem as prximas mensagens de
sada, os escravos DP simplismente salvam os dados de sada em um buffer
interno; o estado das sadas permanecem inalterados indefinidamente.
Aps cada comando SYNC, os escravos DP dos grupos selecionados
colocam seus dados de sada guardados no buffer simultaneamente nas
sadas de periferia para o processo (sada simultnea pelo sinal de controle).
Qual o efeito Com o comando de controle FREEZE, os escravos DP afetados so
do FREEZE? chaveados para o modo Freeze. Cada comando FREEZE do mestre DP
provoca nos escravos DP afetados a salvarem os estados correntes das
entradas simultaneamente. Aps isto, o mestre DP transmite os dados salvos
para dentro de uma rea de entrada da CPU.
As entradas ou sadas somente so atualizadas ciclicamente novamente
quando o comando de controle UNSYNC ou UNFREEZE for enviado.
Date: 04.10.2007
File: PRO2_12P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Sincronizando Escravos DP com SFC 11 (DPSYC_FR)
"DPSYC_FR"
EN ENO
REQ
LADDR
RET_VAL ??.?
BUSY ??.? ??.?
Parmetro Declarao Tipo Dado rea Memria Descrio
REQ INPUT BOOL I, Q, M, D, L, Const. Parmetro de controle gatilhado por nvel.
REQ=1: Gatilho para tarefa SYNC/FREEZE.
LADDR INPUT WORD I, Q, M, D, L, Const. Endereo lgico do mestre DP.
GROUP INPUT BYTE I, Q, M, D, L, Const. Seleo de grupo, Bit 0 = 1: Grupo 1 selecionado
Bit 1 = 1: Grupo 2 selecionado...
Bit 7 = 1: Grupo 8 selecionado
Voc pode selecionar diversos grupos p/uma tarefa.
MODE INPUT BYTE I, Q, M, D, L, Const. Identificador de tarefa (de acordo com EN 50 170 V 3)
Bit 0, 1, 6, 7:Reservado (valor 0)
Bit 2 = 1: UNFREEZE executado
Bit 3 = 1: FREEZE executado
Bit 4 = 1: UNSYNC executado
Bit 5 = 1: SYNC executado
RET_VAL OUTPUT INT I, Q, M, D, L Cdigo de erro. Voc deve avaliar RET_VAL aps
cada execuo do bloco.
BUSY OUTPUT BOOL I, Q, M, D, L BUSY=1: A tarefa ainda no foi completada.
GROUP ??.?
MODE ??.?
Siemens Ltda
Training Center
ST-7PRO2
I/O Distribudo e Atribuio Parmetros Pgina 17
Tipos de Arquivos O STEP 7 necessita de arquivos de bancos de dados de equipamentos (GSD)
ou arquivos tipo para cada escravo DP para que ento voc possa seleciona-
lo do catlogo de hardware (Hardware Catalog) na ferramenta de
configurao de hardware (HW Configuration).
Um arquivo GSD contem todas as propriedades do escravo DP de acordo
com os padres PROFIBUS. Os arquivos tipo so de acordo com as
especificaes Siemens.
Existe um arquivo tipo para cada tipo de escravo DP da SIEMENS AG.
Um GSD ou arquivo tipo fornecido com escravos DP de outros fabricantes.
Integrando Voc pode integrar um novo escravo DP no catlogo de hardware conforme
Escravos DP segue:
1. Selecione a opo de menu Options -> Install new GSD.
2. Na caixa de dilogo que se abre aparece o drive/diretrio contendo os
arquivos GSD existentes.
O escravo inserido na janela "Hardware Catalog" (somente no perfil do
catlogo "Standard"!) sobre "PROFIBUS-Additional Field Devices" e est
disponvel para configurao.
Quando os escravos DP so instalados ou importados deste modo, os
arquivos GSD existentes e smbolos no so apagados completamente, mas
so salvos em um diretrio de backup \\Step7\S7data\Gsd\Bkp[No.].
No. um nmero de srie o qual fornecido automaticamente pelo STEP 7.
Date: 04.10.2007
File: PRO2_12P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Instalao posterior de Escravos PROFIBUS DP
Exemplo de um tipo de arquivo
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 1
Contedo Pg.
O Pacote de Software S7- GRAPH ...................................................................................................... 3
Estrutura de Programa de um Sistema de Controle Seqencial .......................................................... 4
Criando um FB Seqenciador ............................................................................................................... 5
Visualizando Seqenciadores ............................................................................................................... 6
Elementos de um Seqenciador ........................................................................................................... 7
Programao de Aes ......................................................................................................................... 8
Aes Padro em um Passo ................................................................................................................. 9
Aes Dependentes de um Intertravamento ......................................................................................... 10
Aes Gatilhadas por um Evento .......................................................................................................... 11
Verificando Condies em Transies, Intertravamentos e Supervises .............................................12
Instrues Permanentes ....................................................................................................................... 13
Criando um Bloco Executvel ............................................................................................................... 14
Integrando uma chamada de FB no OB1 ............................................................................................. 15
Ativao das Funes de Depurao (Debugging) .............................................................................. 16
O Pacote de Software S7- HiGraph ...................................................................................................... 17
Princpio do Mtodo de Diagrama de Estados ..................................................................................... 18
Elementos de um Diagrama de Estados .............................................................................................. 19
Exemplo: Diagrama de Estados de um Controlador de Elevador ........................................................ 20
Criando um Diagrama de Estados ....................................................................................................... 21
A Interface do Usurio HiGraph ........................................................................................................... 22
Inserindo Estados e Transies ........................................................................................................... 23
Programando Aes ............................................................................................................................. 24
Programando Transies ..................................................................................................................... 25
Programando Instrues Permanentes ................................................................................................ 26
Programando Grupos Grficos (Graph) ................................................................................................ 27
Date: 04.10.2007
File: PRO2_13P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Ferramentas de Engenharia para S7/M7
SCL
CFC SFC
S7-GRAPH
HIGRAPH
1
2 3 4
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 2
Contedo Pg.
Atribundo Parmetros Atuais ............................................................................................................... 28
Troca de Mensagens entre Diagramas de Estado ............................................................................... 29
Atribundo Valores Atuais para Mensagens ......................................................................................... 30
Salvando e Compilando ....................................................................................................................... 31
Depurando Funes em S7-HiGraph ................................................................................................... 32
Programando na Linguagem de Alto Nvel S7- SCL ............................................................................ 33
Estrutura de um Arquivo Fonte SCL ..................................................................................................... 34
A Parte de Declaraes de um Bloco ................................................................................................... 35
A Parte de Instrues do Bloco ............................................................................................................ 36
Expresses, Operadores e Operandos em S7-SCL ............................................................................ 37
Instrues em S7-SCL ......................................................................................................................... 38
Atribuio de Valores em S7-SCL ....................................................................................................... 39
A Instruo IF em S7-SCL ................................................................................................................... 40
A Instruo WHILE em S7-SCL ........................................................................................................... 41
Chamando Blocos de Funes ............................................................................................................ 42
O Flag "OK" para Avaliao de Erro .................................................................................................... 43
Compilando um Arquivo Fonte SCL ..................................................................................................... 44
Monitorao Continua .......................................................................................................................... 45
Setando e Editando Pontos de Parada (Breakpoints) ......................................................................... 46
CFC para SIMATIC S7 e SIMATIC M7 .............................................................................................. 47
Grficos CFC ....................................................................................................................................... 48
Objetos CFC ........................................................................................................................................ 49
Configurando Aplicaes CFC em vez de Programao .................................................................... 50
Funes Integrais de Teste e Depurao ............................................................................................ 51
Configurando Sistemas de Controle Seqencial com S7-SFC ............................................................ 52
Cooperao entre CFC/SFC e SCL ..................................................................................................... 53
Date: 04.10.2007
File: PRO2_13P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Ferramentas de Engenharia para S7/M7
SCL
CFC SFC
S7-GRAPH
HIGRAPH
1
2 3 4
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 3
S7-GRAPH Com a linguagem de programao S7-GRAPH, voc pode configurar limpa e
rapidamente e programar seqncias que voc deseja controlar com um sistema
PLC S7.
O processo dividido em passos simples com seus prprios escopos de funes.
A seqnciqa representada graficamente e pode ser documentada com figuras e
textos.
As aes a serem realizadas so definidas em simples passos, as condies para
movimentao de um passo para o prximo so definidos por transies. As
definies destes, bem como os intertravamentos e supervises so escritas em
um subconjunto da linguagem de programao STEP 7 LAD (Diagrama Ladder).
S7-GRAPH para S7-300/400 compatvel com a funo seqencial da linguagem
grfica definida no padro IEC 1131-3.
Funcionalidade As seguintes funes so oferecidas:
Diversos seqenciadores (mx. 8) no mesmo bloco de funes S7- GRAPH
Nmero livre de atribuies (1a 999) para os passos (mx. 250 por
seqenciador complexo) e transies (mx. 250)
Ramificaes paralelas e ramificaes alternativas (com um mx. de 250)
Saltos (tambmpara outros seqenciadores)
Partida/parada de seqenciadores bemcomo ativao/suspenso de passos.
Funes de Teste Mostra o passo ativo ou passo com falha
Monitorao de estados e modificao de variveis
Chaveamento entre modos de operao: manual, automtico e avano
Interface do Usurio Vista Geral, representao Pgina Simples Passo Simples.
Distino grfica entre condies de intertravamento (intertravamento, mx. 32
condies), aes (mx. 100 por passo) e condies de superviso (superviso,
mx. 32 condies)
Date: 04.10.2007
File: PRO2_13P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
O Pacote de Software S7- GRAPH
S1
S2
T1
T2
S4
T3
S6
T4
T5
S5
S7-GRAPH: Ferramenta para
programao de seqenciadores
Compatvel com IEC 1131-3
Projetada para necessidades
da indstria de manufatura
Interface Grfica do processo
em passos e transies
Passos contendo aes
Transies verifica as condies
de habilitao do passo
Voc pode otimizar as seguintes
fases em um projeto de automao
com S7-GRAPH:
Planejamento, configurao
Programao
Depurao
Colocao em operao
Manuteno, diagnstico
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 4
Vista Geral Um sistema de controle seqencial um sistema de controle que executado
passo a passo. Este muda de um passo para o prximo passo quando as
condies de habilitao forem atendidas. Uma caracterstica do sistema de
controle seqencial a subdiviso das tarefas de controle em
Passos e
Transies (condies de habilitao de passos)
Seqenciador Passos e transies formam um seqenciador. O seqenciador guardado em um
FB. Um DB instance, que contem os dados do seqenciador, atribudo a este FB.
Pelo menos trs blocos so necessrios para um programa executvel:
o FB, que contem o seqenciador(es)
um DB instance com os dados do seqenciador
um bloco de organizao, funo oubloco de funes contendo a chamada
do FB. Os parmetros e o nmero do DB instance so passados na
chamada do FB.
OB1
Chama o
FB
seqenciador
FB
seqenciador
DB
DB
Instance
Date: 04.10.2007
File: PRO2_13P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura de Programa de um Sistema de Controle Seqencial
S1
Passo 1
S2
Passo 2
T1
Transio 1
Motor Chave limite
Condies de habilitao de Passo
T2
Transio 2
Entrada 1 Entrada 2
Condies de habilitao de Passo
Passo 1
Ao
Ao
Passo 2
Ao
Ao
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 5
Vista Geral Voc pode criar FBs S7-GRAPH com o gerenciador SIMATIC ou com o editor S7-
GRAPH. Em ambos os casos, voc deve primeiro criar um projeto e um
correspondente programa do usurio.
Criando um FB Para configurar um FB S7-GRAPH com o gerenciador SIMATIC, proceda como a
seguir:
1. Abra o programa do usurio no qual o FB ser inserido.
2. Selecione o comando de menu Insert -> S7 Block -> Function Block
3. Na caixa de dilogo "Properties" insira o nmero do FB (p.ex. FB1) e insira
GRAPH como sendo a linguagem de programao. Confirme com "OK"
4. Duplo clique para inserir o bloco. O editor S7-GRAPH chamado e o bloco
aberto.
Editor S7-GRAPH Na insero e edio de um seqenciador, voc ser amparado pelo Editor S7-
GRAPH com funes sensveis ao contexto. A barra de ferramentas contemcones
que do a voc rpido acesso a comandos freqentemente utilizados do menu.
As seguintes barras de ferramentas podem ser selecionadas atravs de comando
de menu View -> Toolbar:
Standard: Contemfunes para manipulao de arquivos (Abrir, Salvar, etc.) e
para edio (Copiar, Inserir, etc.).
Sequencer: Contem funes que inseremelementos seqenciadores no programa.
LAD: Contem funes que inseremelementos LAD no programa.
View: Contem funes para mudana do modo de visualizao
Nota Voc pode posicionar individualemente as barras de ferramentas em qualquer lugar
dentro do Editor S7-GRAPH.
Para isto, clique na rea cinza da barra de ferramentas e arraste a barra para a
posio desejada com o mouse.
Date: 04.10.2007
File: PRO2_13P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Criando um FB Seqenciador
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 6
Vista Geral O Editor S7-GRAPH permite voc editar um seqenciador com todos os seus
elementos, tais como passos, transies, ramificaes, saltos, fim do seqenciador
e comentrios, em diferentes vistas.
Voc pode selecionar a vista pela escolha do seguinte comando de menu:
View ->Overview/Single Page/Single Step/Permanent Instructions
ou da barra de ferramentas.
Vista Geral Esta vista d a voc uma impresso geral do sistema de controle seqencial como
um todo. Esta especialmente disponvel para configurao da estrutura
seqencial.
Diversos seqenciadores (mx. 8) em um FB aparece lado a lado. A Vista Geral
contem os comentrios do bloco, nomes e nmeros dos passos e transies.
Pgina Simples Pgina Simples mostra aes, os nmeros e os nomes dos passos, as condies
de habilitao dos passos para as transies, os nomes e nmeros das transies
e os comentrios do bloco.
Diversos seqenciadores em um FB aparecem um debaixo do outro. Esta vista
disponvel para configurao e para programao de um sistema de controle
seqencial.
Passo Simples Esta vista mostra um passo com suas transies e todo seu contedo. Esta vista
usada para programao no somente de aes e condies de habilitao de
passo mas tambm supervises e intertravamentos. Voc tambm pode editar
comentrios de passos nesta vista.
Instrues Voc usa esta janela para programao de "instrues permanentes".
Permanentes Instrues permanentes so condies e/ou chamadas de blocos as quais vem
antes ou depois do seqenciador. Elas so executadas uma vez em cada ciclo
independentemente do estado do seqenciador.
Date: 04.10.2007
File: PRO2_13P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Visualizando Seqenciadores
Vista Geral
Pgina Simples
Passo Simples
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 7
Vista Geral Quando escrevendo um seqenciador, voc est amparado por funes de
programao grfica. Voc pode gerar uma estrutura seqencial simplismente sem
necessitar de extensa experincia em programao, pelo arranjo de elementos na
estrutura S7-GRAPH produz uma representao grfica do seqenciador.
Estrutura de um Um seqenciador consiste de uma srie de passos e transies. O
Seqenciador seqenciador pode ser linear ou ramificado.
Dentro dos passos, voc formula as instrues para a planta.
As transies contem as condies para mudana de um passo para o
prximo.
Os seguintes cones representam os elementos que podem constituir um
seqenciador. Voc pode selecionar estes cones da barra de ferramentas.
Par Passo/Transio Fechar Ramo Alternativo
Salto Abrir Ramo Paralelo
Abrir Ramo Alternativo Fechar Ramo Paralelo
Fim do seqenciador Inserir novo seqenciador
Tambmexistemcones para insero de instrues permanentes e para mudana
do modo de insero.
Regras A estrutura do sistema de controle seqencial deve satisfazer as seguintes regras:
Passos e transies somente podem ser inseridos aos pares.
Saltos podem ser adicionados ao fimde um ramo e saltar para um passo no
mesmo seqenciador ouemum seqenciador diferente.
Um smbolo de fim de seqenciador pode ser adicionado seguindo uma
transio para o fim de um ramo e terminar a execuo do ramo.
Date: 04.10.2007
File: PRO2_13P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
S1
Elementos de um Seqenciador
S2
T1
T2
S4
T3
Passo Inicial
Transio
S5 S6
T4
T5
Fim do seqenciador
Ramo Alternativo, aberto
Ramo Paralelo, aberto
Ramo Alternativo, fechado
Ramo Paralelo, fechado
Seqenciador 1
S7
S8
T6
T7
S9
T9
Seqenciador 2
S8
T9
Salta para
passo 8
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 8
Vista Geral As partes ativas do passo so aes que so executadas pelo controlador no
passo ativo. Nos passos, instrues so programadas as quais configuram sadas
ou ativam/desativam passos no seqenciador. Uma ao consiste de instrues e
endereos e podem ser anexadas a condies e/ou combinadas com um evento.
Programao Voc programa aes em passos simples ou pginas simples. Para fazer isto,
proceder como abaixo:
1. Selecione a tabela da direita do passo e pressione a tecla Tab.
2. Agora programe as aes pela insero de instrues as quais esto sendo
executadas na tabela:
Cada instruo ocupa exatamente uma linha da tabela
Na coluna da esquerda esto as instrues, na coluna da direita esto os
endereos
Se voc usar uma instruo a qual requer informao de tempo (D ouL), S7-
GRAPH automaticamente configura duas linhas na coluna da direita. Insira a
informao de tempo na linha de baixo.
3. Press the Tab key once again to program a further action. The table is
expanded by one line.
Se voc tiver usado uma instruo que logicamente combinada com uma
condio (todas as instrues que contema letra C), ento voc deve programar a
condio na vista passo simples como um intertravamento.
Intertravamento A lgica de intertravamento usada para habilitao condicional da ao especfica
em um passo. Se a condio for satisfeita, ento todas as aes condicionadas
com "C" so executadas. O avano para o prximo passo ocorre independente da
condio de intertravamento.
Superviso A lgica de superviso usada para reconhecer erros de superviso e reviso de
reaes (parando o seqenciador e possivelmente reconhecendo obrigaes). O
avano para o prximo passo somente ocorre quando as condies de superviso
no foremsatisfeitas e nenhumerro tenha ocorrido.
Date: 04.10.2007
File: PRO2_13P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programao de Aes
S20
T20
N " Forward"
L1 S Q 4.3
D M3.0
T#4s
" Intertravamento" Intertravamento
( )
" Superviso" Superviso
( )
" Entrada 1" " Entrada 2"
Condies de habilitao do Passo
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 9
Vista Geral Estas aes so todas definidas no padro IEC 1131-3 sobre 2.6.4.
D, L, N As aes associadas so resetadas to logo o passo seja completado.
D, L Os tempos podem ser especificados como uma constante ou uma varivel.
S, R A ao correspondente mantem ativa mesmo aps a execuo do passo.
CALL Chama blocos FBi.DBi, FCi, SFBi.DBi, SFCi: chama os blocos especificados. Aps
o processamento do bloco, o programa GRAPH executado na seqncia.
Nota Os endereos no bloco de ao pode ser simblico ou absoluto.
Times Os tempos (times) devem ser inseridos no formato de tempo IEC. Este como
abaixo:
T#mDnHoMpSqMS
mD: m Dias
nH: n Horas
oM: o Minutos
pS: p Segundos
qMS q Milisegundos
O mximo tempo limitado a aproximadamente 24D20H.
Date: 04.10.2007
File: PRO2_13P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Bloco ao com instrues simples
N = Atribuio No armazenada
S = Seta (Stored)
D = Time Delayed, atributo no armazenado atrasado pelo tempo T
L = Time Limited, atributo no armazenado para um tempo limitado
CALL = chamada de Bloco
Action_block _1
N M1.1
S M1.2
R M1.3
D M1.4
T#1H2M3S
L M1.5
T#4MS
CALL FC1
Aes Padro em um Passo
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 10
Caso Especial Uma ao em um passo o qual tem o qualificador "C" mas para o qual nenhum
intertravamento est programado executado incondicionalmente. O qualificador
"C" ignorado.
Exemplos:
Date: 04.10.2007
File: PRO2_13P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Bloco ao com instrues condicionais
Condies
Uma ao identificada com um " C" (Condio) somente executada se a
condio de intertravamento do passo verdadeira (" C" = 1).
Um erro de intertravamento existe se a condio zero. A ao sujeita a
condio C ento no executada. O passo marcado e a mensagem de erro
" Error" fornecida.
Action_block _2
NC M1.1
SC M1.2
RC M1.3
DC M1.4
T#1H2M3S
LC M1.5
T#4MS
CALLC FB5.DB3
Aes Dependentes de um Intertravamento
Instruo Endereos Explanao
NC Q1.0 Enquanto o passo estiver ativo e a
condio estiver satisfeita, o sinal
em Q1.0 =1, caso contrrio 0.
SC Q1.0 Enquanto o passo estiver ativo e a
condio estiver satisfeita, Q1.0 =1,
e se mantem em 1.
RC Q1.0 Enquanto o passo estiver ativo e a
condio estiver satisfeita, Q1.0 =0
e se mantem em 0.
DC Q1.0

T#<const>
Aps o fim do tempo especificado na
<const>e enquanto o passo estiver
ativo e a condio estiver satisfeita o
sinal em Q1.0 =1. Se o passo no
estiver ativo o sinal =0.
LC Q1.0

T#<const>
Enquanto o passo estiver ativo e a
condio estiver satisfeita, o sinal
em Q1.0 =1 para o tempo
especificado <const>. Se o passo
no estiver ativo, o sinal =0.
CALLC FB5.DB3 Chama o bloco especificado, quando
a condio estiver satisfeita. Aps o
processamento do bloco, o
programa GRAPH executado.

Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 11
Vista Geral Um evento pode ser detectado e lincado com uma ao. Deste modo possvel
no somente monitorar passos individuais mas tambmmonitorar e influenciar o
sistema de controle seqencial inteiro.
Ativando e Outros passos de um seqenciador podem ser ativados ou desativados com
Desativando Passos as instrues ON e OFF.
Date: 04.10.2007
File: PRO2_13P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Bloco ao com instrues dirigidas a evento
A ao executada uma
vez no ciclo no qual
o evento ocorre
A1 = Reconhecimento
L1 = Erro de intertravamento chegando
L0 = Erro de intertravamento indo
S1 = Passo ativado
S0 = Passo desativado
V1 = Erro de superviso chegando
V0 = Erro de superviso indo
Action_block _3
A1 N M1.1
L1 N M1.2
L0 N M1.3
S1 N M1.4
S0 N M2.4
V1 N M2.5
V0 N M2.6
Aes Gatilhadas por um Evento
Evento Instruo Endereo Explanao

S1
S0
V1
V0


ON

OFF


Si

i=Nmero Passo

Dependendo do
evento, ativa ou
desativa o passo

L1
L0
A1


OFF


S_ALL

Dependendo do
evento, ativa ou
desativa todos os
passo; exceto para
o passo que
contem a ao.

Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 12
Vista Geral Voc programa uma condio como uma operao lgica booleana na forma de
elementos em Diagrama Ladder. Para cada transio, intertravamento e superviso
existe um segmento (network) LAD na qual voc pode inserir elementos LAD.
Condies O S7-GRAPH reconhece os seguintes tipos de condies:
Transition: (transio) descreve as condies de habilitao do passo pela qual um
controlador passa de um passo para o passo seguinte.
Permanent Condition: condies permanentes so arranjadas antes ou depois do
seqenciador e so avaliadas uma nica vez por ciclo.
Interlock: (intertravamento) descreve condies que devemser satisfeitas para
permitir que uma ao seja executada. Um erro de intertravamento sinalizada se
o intertravamento do passo for perdido.
Supervision: (superviso) descreve condies que levamum erro de superviso
sendo sinalizado e que bloqueia o seqenciador a mudar para o prximo passo.
Elementos LAD Os seguintes elementos esto disponveis para verificao de condies: contato
NA, contato NF, caixa de comparao, abrir e fechar ramificao LAD.
Edio mais fcil programar as condies na vista passo simples. Voc pode escolher
como voc deseja usar os cones na barra de ferramentas para edio de um
seqenciador pela seleo da opo de menu
Insert -> Drag&Drop/Append ou pelo clique no cone correspondente na barra de
ferramentas:
Drag&Drop or Insert Mode ON: primeiro selecione o cone na barra de ferramentas
e ento clique com o mouse no lugar onde voc deseja inserir o objeto.
Append or Insert Mode OFF: primeiro selecione o elemento no segmento (network)
aps o qual voc deseja inserir um novo elemento e ento clique no cone desejado
da barra de ferramentas.
Date: 04.10.2007
File: PRO2_13P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Verificando Condies em Transies, Intertravamentos e
Supervises
S3
Passo 3
T3
Val ves_on
" Valvula_1" " Valvula_2"
CMP
==I
Passo antes da
transio
Nmero da Transio
Nome da Transio
Contato NA
Contato NF
Caixa Comparao
Ramo LAD, abrir
Ramo LAD, fechar
MW0
MW2
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 13
Vista Geral Instrues permanentes so condies ou chamadas de bloco localizada antes ou
depois do seqenciador e executado uma vez por ciclo.
Voc pode usar instrues permanentes, por exemplo, para:
Programar somente uma vez condies que necessitem ser satisfeitas em
diversos pontos no seqenciador.
Chamada de blocos que contenham instrues STL, LAD, FBD ou SCL do
S7-GRAPH.
Voc pode ter quantas instrues permanentes em um FB GRAPH quantas voc
queira.
Instrues Voc programa condies permanentes ou chamadas de blocos na vista
Permanentes Permanent Instructions. Selecione o modo de insero marque&arraste com a
opo de menu Insert -> Drag&Drop e proceda como a seguir:
1. Selecione a opo de menu View -> Permanent Instructions, se a janela
necessria no estiver ainda sendo mostrada.
2. Escolha a opo de menu Insert -> Permanent Instruction- >
Condition/Call ou clique com o mouse no cone correspondente na barra de
ferramentas.
O ponteiro do mouse seu formato para representar um segmento (network)
em LAD ou uma instruo CALL.
3. Localize o ponteiro do mouse no espao fornecido.
4. Escolha a opo de menu ou clique o cone da barra de ferramenta novamente.
5. Insira os elementos LAD que voc deseja usar para programar as condies
ou insira o nome do bloco que voc deseja chamar aps a instruo CALL e
pressione a tecla Enter.
6. No caso de um bloco chamado, atribua parmetros atuais para os parmetros
formais mostrados.
Date: 04.10.2007
File: PRO2_13P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Instrues Permanentes
Instrues permanentes antes do seqenciador
Instrues permanentes aps o seqenciador
" Limit switch" " EMER_OFF"
( )
" Brake closed"
" Controller enable"
( )
1
2
" Valve_2open"
3
CALL FC1
INIT:= (BOOL) (IN)
" Safety door closed"
( )
1
" Feed enable"
" Pushbutton"
Condies permanentes
Chamada de bloco permanente
2
3
CALL FC1
INIT:= (BOOL) (IN)
Condies permanentes
Chamada de bloco permanente
CALL FC5
TEMP:= (INT) (IN)
PRESS:= (INT) (IN)
RESULT:= (INT) (OUT)
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 14
Vista Geral Quando se salva um bloco de funes S7-GRAPH, a funo de compilao
gatilhada. Isto , um bloco de funes que pode ser transferido para o PLC criado
de um seqenciador. Somente programas do usurio livre de erros podem ser
salvos. Se o programa no podem ser compilados devido a erros ento ele tambm
no pode ser salvo.
Se voc tiver de interromper o seu trabalho o qual ainda contenha erros de
configurao, voc pode a qualquer tempo salva-lo no estado presente em um
arquivo fonte S7-GRAPH pela utilizao do comando de menu File -> Generate
Source.
Opes Voc pode setar as seguintes opes para compilao pela escolha do item de
menu Options -> Customize e ento a tabela de compilao:
Quaisquer parmetros esto disponveis quando voc chama os FBs S7-GRAPH
(mnimo, padro ou conjunto mximo de parmetros)
Como os passos e transies esto sendo armazenados em um DB instance (como
estrutura de arrays ou como estruturas individuais) e se esta descrio de interface est
sendo transferida para o PLC ou no.
Se o FB gerado est sendo executado em si prprio ou se uma FC padro (FC 70 or
FC 71) contendo a maior parte do cdigo gerenciador est sendo usado. Se voc escolher
a opo FC padro, voc pode armazenar mais passos no FB ento se ele est sendo
executado em si prprio.
Se dados de anlise de condies esto sendo escritos no DB instance, se o modo
Skip estiver ativado e se erros de superviso ocorreram durante a operao tiverem de ser
reconhecidos.
Se programas e processos esto sendo sincronizados e se todos as condies de
intertravamento j esto sendo processadas em operao. Quando mostrando os
estados, um intertravamento perdido e o passo o qual esteja com falha como uma
conseqncia esto ento mostrados.
Se mensagens de alerta esto sendo mostradas na janela de mensagem durante a
compilao.
Se erros de intertravamento e superviso esto sendo manipulados pela SFC 52
(entrada do buffer de diagnstico) ou usando a SFC 17 e 18 (envio para
equipamentos IHM).
Date: 04.10.2007
File: PRO2_13P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Criando um Bloco Executvel
S1
Passo 1
S2
Passo 2
" Motor" " Chave Limite"
Condies de habilitao do Passo
" Entrada 1" " Entrada 2"
Condies de habilitao do Passo
Salve o seqenciador
como um bloco S7
executvel em Blocks
FB17
Salve o seqenciador como
uma fonte S7-GRAPH em SO
Fonte
S7-GRAPH
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 15
FB Seqenciador Pela seleo da opo de menu Options -> Cutomize e a pgina tabela de
Compilao voc tambm pode escolher se o FB est sendo atribudo o conjunto
de parmetros mnimo, padro ou mximo quando chamado.
O FB responde a bordas de subida em seus parmetros de entrada.
Parmetros Mnimos O FB com conjunto de parmetros mnimos de entrada tem somente um parmetro
de entrada, INIT_SQ, e ativa seu seqenciador to logo quanto tenha sido
processado no OB1. Isto significa que os seqenciadores so executados
imediatamente em modo automtico.
Voc usa o use conjunto de parmetros mnimos quando voc executa o
seqenciador somente em modo automtico e quando voc no necessita de
qualquer funo adicional de monitorao e modificao.
O passo(s) inicial(is) /so ativados por borda de subida no parmetro INIT_SQ.
Parmetros Padro O modo de operao tambm deve ser selecionado quando chamando este FB.
Voc sempre utiliza o conjunto de parmetros padres quando o seqenciador est
operando em modos de operao diferentes e quando voc requer informaes de
retorno sobre o processo e facilidades para reconhecimento de mensagens.
O FB seqenciador sempre mantem o ltimo modo de operao ativado. O modo
de operao anterior somente pode ser deselecionado pela seleo de um
diferente. Parmetros que no so requeridos mantem-se desatribudos.
Parmetros Mximos Voc sempre utiliza o conjunto mximo de parmetros quando voc necessita de
maior interveno do operador e facilidades de monitorao para servios e
colocao em operao estes ento fornecidos pelo conjunto de parmetros
padro.
Todos os parmetros do FB so mostrados e podem ser atribudos na chamada do
FB (requer maior capacidade de memria).
Date: 04.10.2007
File: PRO2_13P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Integrando uma chamada de FB no OB1
Duas formas de chamada de bloco
Parmetros mnimos de chamada (padro)
1 parmetro de entrada para controle do
seqenciador
Parmetros padres de chamada
12 parmetros de entrada para controle do
seqenciador
7 parmetros de sada para mostrar
estados de operao
Conjunto mximo de chamada
17 parmetros de entrada para controle do
seqenciador
12 parmetros de sada para mostrar
estados de operao
Conjunto mnimo de parmetros
Conjunto mximo de parmetros
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 16
Funes de Voc pode executar o seqenciador S7-GRAPH no modo teste com as
Depurao funes de depurao. O estado dos elementos seqenciadores e o estado do
sinal dos endereos so mostrados na tela.
Downloading to PLC De forma a transferir o FB S7-GRAPH com o DB instance associado para o PLC,
proceda como a seguir:
1. Com o FB aberto, selecione a opo PLC -> Download.
2. Na caixa de dilogo Downloadselecione o DB instance o qual voc deseja
transferir para a CPU junto com o DB aberto.
3. Se necessrio, confirme os blocos sero sobreescritos com o mesmo nome
dos j existentes na CPU.
Nota Se possvel, transfira os blocos em modo STOP, devido a condies de erro que
podem ocorrer se voc sobreescrever um programa velho no modo RUN.
Ativar Monitorao Esta funo realizada simultaneamente para todas as janelas abertas do mesmo
FB seqenciador. Se muito mais informaes de estados do S7 tem sido
atulalizadas, uma mensagemde alerta deve aparecer informando que agora nem
todos os estados podemser atualizados sincronizadamente.
Pelo reconhecimento da mensagem, vpc pode retornar o modo Monitor do
seqenciador.
Desativar Monitorao do seqenciador sempre deve ser interrompida antes de voc
Monitorao fazer alteraes no seqenciador ou nos operandos lgicos. Somente ento estas
aes so possveis no seqenciador.
recomendvel que suas alteraes sejam salvas primeiro no disco rgido e ento
transferidas para a CPU S7. Se voc isto emordemerrada, uma janela de
mensagemaparece, a qual aponta para a seqncia correta.
Date: 04.10.2007
File: PRO2_13P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Ativao das Funes de Depurao (Debugging)
Procedimento
Transferncia do FB seqenciador e DB instance
Utilize o comando de menu PLC -> Download para transferir o FB seqenciador
e o DB instance para o PLC
Selecione o DB instance:
Selecione o DB instance que voc deseja utilizar para testar pela escolha do
comando de menu
Debug -> Test Environment
Inicialize a funo " Monitor" :
Selecione a seo desejada do sistema de controle seqncial. A informao de
estado ir fornecer a parte visvel corrente na janela aberta.
Ative o comando de menu Debug -> Monitor (marcas de verificao)
Saia da funo " Monitor" :
Desative o comando de menu Debug -> Monitor
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 17
Motivao para A construo de maquinrio e plantas um campo extenso no qual o
Diagramas de Estado controle de movimentos mecnicos assncronos e tempos de respostas
representam os principais problemas.
A linguagem mais comumente utilizada neste campo at o momento STL e
algumas vezes LAD, FBD e linguagens de seqncia (GRAPH5, S7-GRAPH, etc.).
Contudo, estas linguagens no so particularmente aplicveis para engenheiros
mecnicos, por exemplo para formulao de aplicaes de construo mecnica.
O resultado que cada grupo, por exemplo os engenheiros mecnicos ou
engenheiros de automao, utilizam seus prprios mtodos (linguagens), as quais
se tornam difceis para troca de informaes.
O auxlio para um grupo de trabalho (aprox. 1980) com a tarefa de investigao de
caixas de ferramentas para PLCs foi especificar uma ferramenta que pudesse ser
utilizada em todas as fases de um projeto desde a fase de definio, programao
e manuteno. Esta ferramenta foi estar disponvel para uso em todas as reas e
permitir uma significativa vantagem para soluo de problemas de automao.
Tambm foi um requisito que a documentao e programas devam ser reutilizveis
para outros projetos de tipos similares.
O resultado foi o mtodo de diagramas de estado descrito aqui, o qual colocado
no mercado pela SIEMENS sobre o nome de produto S7-HiGraph. O S7-HiGraph
pode ser utilizado em PLCs da srie S7-300 (CPU 314 e superior) e S7-400.
Vantagens O formato orientado a objeto do S7-HiGraph idealmente disponvel para:
Engenheiros de mquinas e plantas (projeto mecnico)
Especialistas de automao (engenheiros eletricistas) como um significado
comum da descrio
Engenheiros de comissionamento e manuteno
O mtodo de diagramas de estado habilita processos inteiros de construo de
uma mquina ou planta se otimizada pela reduo do tempo de desenvolvimento e
revises de projeto, bem como tempo de comissionamento.
Date: 04.10.2007
File: PRO2_13P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
O Pacote de Software S7- HiGraph
1
2 4
Chave de cames
de posio
Index in
Index out
Tacogerador
de pulsos
Pea trab.
Vira p/esquerda
Vira p/direita
Motor
Index
Counter bearing
Motor
Coordinator
S7-HiGraph: Ferramenta
para programao com
diagramas de estado
A mquina dividida
em funes unitrias
Diagramas de estado so criados
para cada unidade de funo
Estados contem aes
Diagramas de estado comunicam
por meio de mensagens
Voc pode otimizar as seguintes
fases em um projeto de automao
com S7-HiGraph:
Planejamento, configurao
Programao e depurao
Colocao em operao
Manuteno, diagnsticos
Permite reutilizao
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 18
Vista Geral O mtodo de diagramas de estado orientam-se atravs de "objetos" do mundo real
quando utilizados para esboo e programao de projetos de automao. A
mquina ou planta a ser automatizada vista como uma combinao de elementos
individuais ou unidades funcionais (function units).
Unidades Funcionais A unidade funcional (function unit) (FU) a menor unidade mecnica de uma
mquina ou planta. Uma FU normalmente composta de elementos bsicos
mecnicos e eltricos.
Durante a programao, cada unidade funcional atribuda a um diagrama de
estado (ou graph) no qual as propriedades funcionais, que so mecnicas e
eltricas, da FU so representadas.
Para o mtodo de diagramas de estado o objeto a ser automatizado quebrado em
diversas partes menores ou unidades funcionais.
Diagrama de Estado O diagrama de estado descreve a dinmica pertencente a unidade funcional. Ele
descreve os estados que uma unidade funcional pode assumir e as transies
entre eles.
Os diagramas de estado so sees de programa que podem ser usadas de novo
e de novo. Os diagramas de estado criados para uma unidade funcional em
particular pode ser usada em outros lugares em um programa onde uma
funcionalidade similar necessria.
Grupo Graph A funcionalidade total de uma mquina ou planta pode ser descrita pela
e Instances combinao de diagramas de estados paralelos.
Todos os diagramas de estado so desenhados dentro de um programa S7 so
armazenados centralmente na pasta "Sources". A partir daqui voc pode inserir e
cham-los sempre que voc desejar em um ou mais grupos graph.
Um diagrama de estado chamado em um grupo graph referenciado como um
instance.
Date: 04.10.2007
File: PRO2_13P.18
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Princpio do Mtodo de Diagrama de Estados
Exemplo: Tabela Rotativa
para mquina de acabamento
Unidades Funcionais
(Function units) (FUs)
Motor
Index
Tacogerador de pulsos
Diadramas de Estado
Um diagrama p/cada FU
Um diagrama coordenador
1
2 4
Chave de cames
de posio
Index in
Index out
Tacogerador
de pulsos
Pea trab.
Vira p/esquerda
Vira p/direita
Motor
Index
Counter bearing
Motor
Coordinator
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 19
Estados Um diagrama de estado um grfico (graph) contnuo e direto, que representa
todos os estados de uma unidade funcional como crculos e todas as transies
como setas.
Os estados de uma unidade funcional podem ser do tipo esttico (Porta_aberta,
Motor_desligado, etc.) ou do tipo dinmico, isto , estados de movimento
(Porta_abrindo, Motor_girando_esquerda, etc).
A qualquer tempo, o subsistema descrito por um diagrama de estados ou graph,
est exatamente em um estado.
Aes Aes podem ser atribudas a estado em diagramas de estados. Estas aes
podem ser subdivididas em:
Aes que so executadas uma vez quando inicia um novo estado.
Aes que so executadas ciclicamente, to longa quanto a unidade funcional
esteja em seu respectivo estado.
Aes que so executadas uma vez quando deixando um estado.
As aes so formuladas em uma linguagem similar a STL.
Transies As transies identificam as mudanas de estado de uma unidade funcional. As
transies entre os estados so dependentes das condies que so verdadeiras
ouno verdadeiras emqualquer instante (tempo).
O subsistema descrito pelo diagrama de estado muda seu estado quando a
condio que define sua transio para outro estado for satisfeita. O mximo de
uma transio ocorre por ciclo para cada diagrama de estado.
As condies de transio tambm so formuladas em uma linguagem similar a
STL..
Para cada transio uma ao pode ser formulada, a qual ser realizada quando a
transio ocorrer.
Date: 04.10.2007
File: PRO2_13P.19
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Elementos de um Diagrama de Estados
Estados 0,1, ...
Representados por crculos
Estados estticos
Estados dinmicos
Sempre um estado ativo
Aes so atribudas
aos estados
Transies
Representadas por setas
Condies de transies e
aes so atribudas as
transies
0
4
1
2
3
1
1
2
1
1
1
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 20
Vista Geral O exemplo acima demonstra o mtodo do diagrama de estado por meio de um
elevador em um prdio de trs andares.
Separao em FUs O objeto a ser automatizado (elevador com portas) pode ser separado nas
seguintes unidades funcionais mecnicas com relao aos diagramas de estado:
Cabine do elevador incluindo controle
Uma porta em cada andar
Diagrama de estado Dentro de um diagrama de estado, ougraph, os crculos representam os
p/cabine do elevador possveis estados da unidade funcional e as setas representam as transies de
estados.
Para a unidade funcional cabine do elevador", os estados 0, 1 e 2 representamas
posies de parada da cabine do elevador nos respectivos andares.
Os estados 3, 4 e 5 e 6, 7 e 8 representam os movimentos dinmicos de subida e
descida da cabine do elevador entre os andares.
Diagrama de estado Na unidade funcional porta" os estados 0 e 1 representam os estados
p/ as portas estticos Porta est fechada" e Porta est aberta", os estados 2 e 3 representam
Porta est abrindo" e Porta est fechando".
Mensagens A coordenao do diagrama de estados para a cabine do elevador com os
diagramas de estado individuais das portas podemocorrer semum diagrama
coordenador adicional.
Na busca do andar desejado" o diagrama de estado Cabine do Elevadorenvia a
mensagemPorta_aberta" para o diagrama de estado associado Porta".
Este diagrama de estado recebe a mensagemabre" a porta, isto , no
recebimento da mensagem a correspondente transio executada. Quando a
porta fechada novamente, o diagrama de estado Portaenvia a mensagem
Porta_fechada" para o diagrama de estado Cabine do Elevador".
A cabine do elevador pode ento mover-se para a prxima porta desejada.
Date: 04.10.2007
File: PRO2_13P.20
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Exemplo: Diagrama de Estados de um Controlador de Elevador
Motor
Diagrama
p/ porta no
2o. andar
Diagrama
p/ porta no
1o. andar
Diagrama
p/ porta no
andar
trreo
Diagrama de estado
do elevador
Segundo
andar
Primeiro
andar
Andar
trreo
Elevador com portas
0
6 3
1
5 4
2
1
1
1
1
1
1
1
1
3
2 0
1
1
1
1
1
3
2 0
1
1
1
1
1
3
2 0
1
1
1
1
1
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 21
Vista Geral De forma a editar diagramas de estado, S7-HiGraph requer um projeto existente.
Voc deve ter criado primeiro este com o gerenciador SIMATIC antes de voc
convocar o editor HiGraph.
Inserindo um Para inserir um diagrama de estado com o gerenciador SIMATIC, proceda
Diagrama de estado como abaixo:
1. Abra a pasta de arquivos fonte (source).
2. Selecione a opo de menu Insert -> S7 Software -> State Graph.
Um diagrama de estados criado com um nome padro (default) na pasta
Sources. Antes de voc iniciar a edio, voc deve mudar o nome do diagrama de
estado (p.ex. Elevador).
3. Duplo clique no diagrama de estado. O editor HiGraph iniciado e o
diagrama de estado aberto.
Estado Inicial O diagrama de estado que voc j tinha aberto contem um estado com o nmero 0
e uma transio ANY. O estado com o nmero 0 o estado inicial do diagrama de
estados. Este automaticamente assumido quando o equipamento ligado
(fornecida alimentao).
Date: 04.10.2007
File: PRO2_13P.21
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Criando um Diagrama de Estados
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 22
Interface do Usurio A interface do usurio HiGraph consiste de vrias janelas, as quais voc pode
mostrar ou no, como desejado. Para fazer uso otimizado do espao disponvel da
tela, voc pode mudar o tamanho da janela e mov-la para onde quiser.
Adicionalmente a janela de edio (1) na qual voc edita os diagramas de estado
(graphs) e grupos de graph, voc tambm pode usar as seguintes janelas:
A janela de declarao de variveis (2) usada para declarao de variveis
do diagrama de estados (graph). Voc mostra esta janela pela seleo da opo
de menu View -> Variables.
Voc usa a janela de entrada de instrues (3) para programar o contedo
dos estados, transies e instrues permanentes. Voc mostra esta janela pela
seleo da opo de menu View -> Instructions.
Existe outra janela na qual erros e mensagens de alerta chegam durante a
compilao de um grupo graph so mostradas. Esta janela automaticamente
aberta aps cada compilao. Voc tambm pode mostra-la pela seleo da opo
de menu View -> Messages.
A janela de entradas para parmetros atuais somente est disponvel se um
grupo graph est aberto. voc usa esta janela para atribuio de parmetros
atuais de instances. Voc tambm pode abrir esta janela pela seleo da opo
de menu View -> Actual Values.
Declarao de Na declarao de variveis voc declara as variveis locais e parmetros
Variveis dos diagramas de estado. Voc tambm declara as variveis a serem usadas para
trocas de mensagens.
A declarao de variveis consiste das seguintes sees:
IN: contem os parmetros de entrada do diagrama de estado e as variveis pr-
definidas "Modo Automticoe "Modo Manual.
OUT: contem os parmetros de sada do diagrama de estado.
IN_OUT: contem os parmetros de entrada/sada do diagrama de estado e as
variveis usadas para troca de mensagens.
STAT: contem variveis estticas e variveis pr-definidas pelo HiGraph.
Date: 04.10.2007
File: PRO2_13P.22
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Interface do Usurio HiGraph
1
2
3
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 23
Inserindo Estados Para inserir novos estados dentro de um diagrama de estados (graph), proceda
como abaixo:
1. Com uma janela de edio selecionada, escolha a opo de menu Insert ->
State. O cursor assume a marcao de um crculo com o prximo nmero de
estado livre.
2. Posicione o cursor na posio desejada e clique com o boto do lado
esquerdo.
Na posio desejada, um crculo automaticamente inserido para um estado
com o nmero default 0, 1, 2, etc. Repita o este procedimento at que voc tenha
inserido todos os estados necessrios para a descrio do estado graph.
3. Saia do modo entrada clicando com o emum espao vazio da janela de
edio com o boto esquerdo do mouse.
Cada estado tem um nmero que nico dentro do diagrama de estado. Para
tornar claro o diagrama, voc pode dar um nome para cada estado pela seleo da
opoo de menu Edit -> Object Properties.
Inserindo Para inserir transies entre estados individuais, proceda como abaixo:
Transies
1. Selecione o item do menu Insert -> Transition. O cursor assume a marcao
do smbolo de transio.
2. Ento clique com o boto esquerdo do mouse no estado inicial e mantenha o
boto pressionado, arraste a seta para o estado objetivo.
Uma transio inserida entre o estado inicial e o estado objetivo.
3. Saia do modo entrada clicando com o boto esquerdo do mouse.
Do mesmo modo que com os estados, voc pode dar nomes para as transies
pela seleo da opo de menu Edit -> Object Properties.
Date: 04.10.2007
File: PRO2_13P.23
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Inserindo Estados e Transies
1
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 24
Tipos de Aes Voc pode programar aes para cada estado na janela de instrues. As aes
so subdivididas nos seguintes tipos:
Entry actions (E): Aes que so realizadas somente uma vez no incio do estado.
Preceding cyclic actions (C-): Aes que so executadas enquanto no estado antes
que as condies de transio tenham sido verificadas.
Cyclic actions (C): Aes que so executadas enquanto no estado aps as
condies de transio terem sido verificadas.
Exit actions (X): Aes que so executadas somente uma vez ao deixar o estado.
Para inserir instrues, selecione o tipo de ao no quadro a esquerda da janela de
instrues e ento insira as instrues em STL no quadro da direita. As aes so
mostradas na janela editor.
Notas O RLO sempre =1 no incio da execuo de uma tabela de instruo.
Para fazer diagramas de estado reutilizveis, somente variveis que tenham sido
declaradas na janela de declaraes devem ser utilizadas. Parmetros atuais
podem ento ser atribudos para estas variveis quando inserindo o diagrama de
estado em um grupo grfico.
Tempo de Espera Voc pode especificar se o PLC ser mantido em um estado por um intervalo
mnimo de tempo antes de verificar as condies de habilitao de transio de
passo. Voc pode especificar tanto valores constantes como variveis para o
tempo de espera. Voc deve ento configurar o atributo "Waiting" para as
transies que esto com tempo de espera.
Superviso de A superviso de tempo utilizada para monitorao tempo gasto em
Tempo determinado estado. Se o estado no sair dentro do tempo especificado, a varivel
pr-definida "ST_Expired setado e uma mensagem de erro inserida no buffer
de diagnstico.
Date: 04.10.2007
File: PRO2_13P.24
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programando Aes
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 25
Transies Uma transio contem as condies para mudana de um estado para outro.
Diversas transies de sada podem ser atribudas a um estado. O HiGraph opera
com as seguintes transies:
Transio normal: Uma A transio normal leva de um estado inicial a um estado
objetivo.
Ele representado pelo seguinte smbolo:
Transio qualquer: Uma transio qualquer leva de todos os estados para um
estado objetivo. Ele tem alta prioridade sobre todas as outras transies.
Ele representado pelo seguinte smbolo:
Transio retorno: Uma transio retorno leva do estado corrente de volta para o
estado que estava previamente ativo.
Ele representado pelo seguinte smbolo:
Prioridade Transies que levam para fora do mesmo estado podem ser arranjadas na ordem
certa pela atribuio de diferentes prioridades. Se as condies de transio so
satisfeitas ao mesmo tempo, a transio com o nvel mais alto de prioridade
ativada.
A mais alta prioridade possvel em S7-HiGraph tem o valor numrico 1.
Instrues Voc pode programar condies e aes para uma transio na janela de
instrues:
Condies (?): Estas instrues descrevem as condies que devem ser satisfeitas
antes de uma mudana de estado possa ocorrer.
Aes (!): Estas instrues so executadas uma vez quando a transio ativada.
Date: 04.10.2007
File: PRO2_13P.25
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programando Transies
0 1
1
1
1
1 1
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 26
Instrues Instrues permanente so executadas uma vez a cada ciclo
Permanentes independentemente do estado corrente. Por exemplo, voc pode programar as
seguintes atividades centralmente em instrues permanentes:
Clculo de variveis de processo que so verificadas em diversos locais.
Deteo e processamento de eventos os quais requerem uma resposta no
dependente do estado corrente (exemplo: monitorao de uma tela de segurana).
Os segunites tipos de instrues permanentes esto disponveis:
Preceding cyclic actions (C-): (aes cclicas predecessoras) estas so sempre
realizadas antes do diagrama de estado atual ser executado.
Subsequent cyclic actions (C): (aes cclicas subsegentes) estas so sempre
realizadas aps o diagrama de estado atual ter sido executado.
Programao Voc programa instrues permanentes como segue:
1. Duplo clique na tabela de instrues com o ttulo Permanent Instructions. A
janela de entrada de instrues aberta.
2. Selecione um tipo de instruo na parte esquerda da janela e insira a
instruo em STL na parte direita da janela.
Quando voc tiver inserido as instrues, elas sero mostradas na forma de uma
tabela na janela de edio para o diagrama de estado.
Date: 04.10.2007
File: PRO2_13P.26
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programando Instrues Permanentes
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 27
Vista Geral Os diagramas de estado representam unidades funcionais individuais de uma
mquina. De forma a descrever a mquina toda ou planta, os diagramas de estado
(graphs) para cada unidade funcional deve ser coletadas juntas em um grupo
grfico.
Criando um Para criar um grupo grfico com o gerenciador SIMATIC, proceda como a
Grupo Grfico seguir:
1. Abra a pasta source na qual voc deseja inserir um grupo grfico.
2. Selecione a opo de menu Insert -> S7 Software -> Graph Group.
Um grupo grfico criado sobre um nome default (padro) na pasta Sources.
Voc deve mudar o nome do grupo grfico antes de voc comear a edit-lo
(p.ex. Elevador).
3. Duplo clique no grupo grfico. O editor HiGraph ativado e um grupo grfico
aberto.
Instanceando um A insero (chamada) de um diagrama de estado (graph) em um grupo
Diagrama de Estado grfico conhecido como instanceando. Quando voc tiver inserido o diagrama
de estado em um grupo grfico, voc deve atribuir parmetros atuais para os
parmetros formais declarados nele.
Ele a atribuio destes parmetros atuais que habilitam um instance do diagrama
de estado a controlar uma unidade funcional real (p.ex. motor, porta de elevador,
vlvula, etc.). Se diversas unidades funcionais idnticas (p.ex. motores do mesmo
tipo, portas de elevadores, etc.) necessitam ser controladas, voc pode fazer isto
usando diversos instances do mesmo diagrama de estados.
Inserindo Para inserir instances de diagramas de estado (graphs) dentro de um grupo
Diagramas de Estado grfico, selecione a opo de menu Insert -> Instance.
Voc pode ento dar aos isntances inseridos um nome pela seleo da opo de
menu Edit -> Object Properties.
Date: 04.10.2007
File: PRO2_13P.27
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programando Grupos Grficos (Graph)
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 28
Vista Geral Para habilitar voc a utilizar diagramas de estado repetidas vezes por meio de
instanceamento, todos os sinais usados no diagrama de estados devem ser
declarados como parmetros formais na janela de declaraes.
Os parmetros formais salvam espaos para os parmetros atuais e so atribudos
"sinais atuais" quando um instance criado.
Parmetros Atuais Quando voc tiver inserido os instances de um diagrama de estados em um grupo
grfico, voc atribui parmetros atuais para os parmetros formais como abaixo:
1. Primeiro selecione o instance requerido do diagrama de estado na janela do
grupo grfico.
2. Selecione a opo de menu View -> Actual Parameters para abrir a janela
de parmetros atuais. Os nomes e tipos de dados de todos os parmetros
formais no diagrama de estado aparecem nesta janela.
3. Atribua endereos para os parmetros formais na coluna "Valores Atuais".
Como parmetros atuais para um programa HiGraph voc pode usar os
endereos dos sinais de I/O, memrias bit, contadores, temporizadores, bem
como dados e cdigos de blocos.
Em seu programa voc pode usar endereos absolutos (p.ex. I 1.1,
M 2.0, FB 21) ou nomes simblicos (p.ex. Motor_ON).
Voc usa a tabela de smbolos do seu programa S7 para atribuir nomes
simblicos para endereos absolutos. Voc pode trocar entre endereamento
absoluto e simblico pela seleo da opo de menu View -> Symbolic
Representation.
Mensagens? Voc ir encontrar como atribuir mensagens para "parmetros atuais" nas pginas
seguintes.
Date: 04.10.2007
File: PRO2_13P.28
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Atribundo Parmetros Atuais
Selected
instance
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 29
Vista Geral Diagramas de estado podem influenciar cada um dos outros pela troca de
mensagens. Mensagens so normalmente enviadas por um diagrama fonte (graph)
e ento avaliado pelo diagrama de destino.
Mensagens Uma mensagem uma varivel binria, que pode ser enviada por um graph dentro
de sua ao ou parte de transio.
Uma mensagem sempre enviada para um diagrama de estado (mensagem
interna) ou um endereo (mensagem externa).
Mensagens Internas Mensagens internas so usadas para sincronizao dentro do mesmo grupo
grfico. Elas so mapeadas pelo sistema nos bits do DB associado.
Mensagens Externas Mensagens externas so usadas para sincronizao de graphs em diferentes
grupos grficos (FCs). Uma varivel bit global declarada quando atribundo
parmetros atuais.
Declarao de Voc primeiro declara mensagens na seo IN_OUT da janela de
Mensagens declaraes do diagrama de estado (graph). Adicionalmente ao nome e ao tipo de
dado (sempre BOOL) da mensagem voc tambm deve especificar o tipo de
mensagem, que uma mensagem de entrada ou sada.
Nome Tipo de Dado Mensagem Comentrio
Door_0_opn bool out; //Mensagem de sada
Door_closed bool in //Mensagem de entrada
Voc atribui o formato atual da mensagem (mensagem interna) ou a varivel bit
com a qual a mensagem conectada (mensagem externa) na janela de parmetro
atual do vlido grupo grfico.
Date: 04.10.2007
File: PRO2_13P.29
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Troca de Mensagens entre Diagramas de Estado
Diagrama de estado
para o elevador
.
.
.
Interface de declarao para elevador
Ao inserida para o estado 2
A To_floor_2;
S Door_2_opn;
Name Data type Message
Door_2_opn bool out
A Door_opn
Condio de transio p/ t
01
Diagrama de estado
para a porta
Interface de declarao para porta
Name Data type Message
Door_opn bool in
Door_2_opn/Door_opn
0
6 3
1
5 4
2
1
1
1
1
1
1
1
1
3
2 0
1
1
1
1
1
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 30
Vista Geral Qundo voc tiver inserido os instances de um diagrama de estado emissor e
receptor em um grupo grfico, voc deve informar o instance emissor qual instance
est recebendo a mensagem (mensagem interna) ou qual varivel bit a mensagem
est conectada a (mensagem externa).
Atribuio de Para atribuir um formato para uma mensagem interna, proceda como abaixo:
Mensagens Internas
1. Selecione o instance do diagrama de estado emissor na janela do grupo
grfico.
2. Na janela de parmetro atual, selecione a mensagem a ser enviada e insira o
instance de recepona coluna "Valor Atual".
O nome completo do instance de recepo consiste do nome do instance
que est recebendo a mensagem e (separado por uma vrgula) o nome da
mensagem (type: in), declarada como uma mensagem de entrada no graph de
recepo.
Nome Tipo de Dado Valor Atual Mensagem
Door_0_opn BOOL Door_0.Door_opn out
Door_1_opn BOOL Door_1.Door_opn out
Para mensagens de entrada internas voc no necessita atribuir um valor atual na
janela de parmetros atuais do instance de recepo.
Atribuio de Para ligar uma mensagem externa a uma varivel bit proceda como abaixo:
Mensagens Externas
1. Selecione o instance do diagrama de estado emissor (graph).
2. Na janela de entrada de parmetros atuais, selecione a mensagem a ser
enviada e insira um endereo de um bit global na coluna "Valor atual".
3. Agora selecione o instance do diagrama de estado de recepo (graph) e
atribua o mesmo endereo de bit global a mensagem de entrada vlida.
Date: 04.10.2007
File: PRO2_13P.30
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Atribundo Valores Atuais para Mensagens
Instance
selecionado
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 31
Salvando Quando voc salvar objeto HiGraph, eles so guardados na pasta "Sources" do
programa S7 em seu estado corrente. A sintaxe no verificada. Isto significa que
possvel salvar e mais tarde utilizar objetos contendo erros.
Voc salva objetos HiGraph pela seleo da opo de menu File -> Save.
Por favor notar que qualquer mudana que voc fizer em um diagrama de estado
afeta todos os instances daqueles que voc j tinha inserido em grupos graph.
Seqncia de O sistema diagrama de estado executado ciclicamente. Voc pode
Execuo dos estabelecer a ordem na qual os instances individuais, dentro de um grupo
Cdigos graph, esto sendo executados pela seleo da opo de menu Edit -> Execute
Order.
Compilao Em HiGraph voc somente compila grupos grficos; voc no pode compilar
diagramas de estado individualmente. Quando compilando, o HiGraph verifica a
sintaxe do programa, gera uma funo (FC) e um bloco de dados (DB) e os guarda
na pasta "Blocks" do programa S7 vlido.
Qualquer erro de sintaxw detectado durante a compilao so suportados na janela
de mensagens. Neste caso, nenhum bloco gerado.
Para compilar um grupo graph, voc segue os seguintes passos:
1. Primeiro selecione a opo de menu Options > Customize e insere os nomes
da FC e do DB, fazendo quaisquer outros ajustes para compilao na pgina da
tabela "Compile".
2. Na janela do grupo graph selecione a opo de menu File -> Compile.
3. Procure por qualquer mensagem de erro na janela de mensagens. Para saltar
para a posio de erro, simplismente d um duplo clique na mensagem de erro.
4. Compile o grupo graph novamente.
Chamando a FC Para habilitar o programa HiGraph a ser executado na CPU, a FC deve ser
chamada em um bloco que seja executado ciclicamente (p.ex. OB1) e o parmetro
de inicializao INIT_SD deve ser atribudo.
Date: 04.10.2007
File: PRO2_13P.31
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Salvando e Compilando
Estabelecendo seqncia de execuo
Menu:
Edit -> Execute Order
Compilao
Menu:
File -> Compile
Integrao no OB1
Atribuio de parmetro
INIT_SD
FC
Grupo
grfico
(graph)
DB
Dados do
grupo
graph
Index
Counter bearing
Coordinator
Motor
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 32
Vista Geral As funes de monitorao habilitam voc a monitorar e verificar um programa
quando ele est sendo executado na CPU.
O HiGraph fornece as seguintes funes de depurao e monitorao:
Monitorao do estado lgico do programa
Monitorao e modificao de variveis (como em STL/LAD/FBD)
Avaliao dos dados de referncia (como em STL/LAD/FBD)
Status do Programa Voc pode usar a funo de monitorao dos estados lgicos do programa
para verificar a execuo de todos os instances em um grupo graph. A execuo
dos estados e transies individuais indicado por cores e informaes sobre a
tabela de instrues tambm mostrada.
As seguintes facilidades de monitorao dos estados lgicos do programa so
avaliadas em vrias janelas HiGraph:
J anela grupo graph: Aqui voc pode visualizar os estados lgicos de todos os
instances no grupo graph. O estado corrente mostrado em cada instance.
J anela diagrama de estado: Aqui voc pode obter informaes detalhadas dos
estados lgicos de um instance selecionado (estado corrente, transio, etc.).
Procedimento Para iniciar a monitorao dos estados lgicos dos programas, proceda como
abaixo:
1. Com o grupo graph aberto, selecione a opo de menu Debug ->Monitor.
A vista geral do status do grupo graph mostrada.
2. Selecione um ou mais instances e selecione a opo de menu
Edit -> Open Object ou d um duplo clique no instance. Cada instance que
voc tenha selecionado aberto on-line e informaes detalhadas dos estados
lgicos mostrada.
4. Para monitorar mais instances, mude para vista geral dos estados lgicos e
clique no instance que voc deseja.
5. Para parar a monitorao dos estados lgicos do programa, desative a opo
de menu Debug -> Monitor.
Date: 04.10.2007
File: PRO2_13P.32
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Depurando Funes em S7-HiGraph
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 33
S7-SCL SCL (Structured Control Language) (Linguagem Estruturada de Controle) uma
linguagem textual de alto nvel similar ao PASCAL. Isto simplifica a programao
de algortmos matemticos e complexas tarefas de processamento de dados para
PLCs.
SCL portanto tambm habilita PLCs S7 a serem utilizados em tarefas mais
complexas tais como controle em malha fechada ou avaliao estatstica.
Os programas SCL so criados e guardados em uma pasta SCL source (arquivo
fonte). Blocos executveis so ento gerados durante a compilao.
SCL compatvel com a linguagemST (Structured Text) definida na
IEC 1131-3 e tem certificao PLCOpen(Base Level).
Funcionalidade SCL oferece um escopo de funcionalidade de uma linguagemde alto nvel tal
como:
Loops (malhas)
Alternativas
Distribuidor de ramificaes, etc.
combinado com funes especficas de PLC tais como:
Acesso binrio aos I/Os, memrias bit, temporizadores, contadores etc.
Acesso a tabela de smbolos
Acesso a blocos STEP 7
Vantagens da SCL Linguagemde programao simples de aprender, especialmente para
iniciantes
Simples para escrever programas (inteligveis).
Programao simples de algortmos complexos e processamento de estruturas
de dados complexas.
Depurador integrated para depurao simblica de cdigos fonte (passo
simples, breakpoints, etc.).
Sistema integrado em linguagens S7, tais como STL, LAD e FBD.
Relativamente fcil para tcnicos de PLC para entender atravs de similaridade
com linguagens S7.
Date: 04.10.2007
File: PRO2_13P.33
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Programando na Linguagem de Alto Nvel S7- SCL
FUNCTION_BLOCK Integrator
VAR_INPUT
Init : BOOL; // Resete valor de sada
x : REAL; // Valor de entrada
Ta : TIME; // Amostra de tempo em ms
Ti : TIME; // Tempo de integrao emms
ulim : REAL; // Limite superior do valor de sada
llim : REAL; // Limite inferior do valor de sada
END_VAR
VAR_OUTPUT
y : REAL:=0.0; // Inicialize valor de sada com0
END_VAR
BEGIN
IF TIME_TO_DINT(Ti) =0 THEN // Diviso por ?
OK :=FALSE;
y :=0.0;
RETURN;
END_IF;
IF Init THEN
y:=0.0;
ELSE
y :=y+TIME_TO_DINT(Ta)*x/TIME_TO_DINT(Ti);
IF y >ulimTHEN y :=ulim; END_IF;
IF y <llimTHEN y :=llim; END_IF;
END_IF;
END_FUNCTION_BLOCK
S7-SCL: Linguagem de alto nvel
para escrita de programas de PLC
Compatvel com Texto IEC 1131-3
(ST=Structured Text)
Certificado para PLCopen
Base Level
Contem todos os elementos
tpicos de uma linguagem de alto
nvel, tais como operadores,
expresses, instrues de
controle
Funes PLC esto integradas
(p.ex. acesso I/O, temporizadores,
contadores...)
Vantagens:
Linguagem estruturada,
programas de fcil leitura
Para usurios de linguagens de
alto nvel
Para algortmos complexos,
grandes quantidades de dados
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 34
Estrutura de um Um arquivo fonte SCL pode incluir tantos blocos quanto voc deseje (OBs,
Arquivo Fonte SCL FBs, FCs, DBs e UDTs).
Estrutura de um Dentro de um arquivo fonte SCL, cada bloco individualmente, dependendo
Bloco do tipo de bloco, emoldurado por um identificador padro para o incio e para o
fim do bloco. O corpo do bloco constitudo de parte de declarao e parte de
instrues.
Como opo, uma parte de atributos pode ser inserida entre o identificador do incio
do bloco e a parte de declaraes.
Atributos Atributos identificampropriedades dos blocos, que tambmpodem ser mostradas
dentro do gerenciador SIMATIC (Manager) aps compilao atravs do comando
Edit -> Object Properties.
Parte de Declarao As variveis locais, parmetros de bloco, constantes e rtulos de saltos so
declaradas na parte de declarao de um bloco.
Parte de Instrues A parte de instrues contem as instrues individuais a serem executadas.
Seqncia de Bloco Ento para que o seu arquivo fonte SCL possa ser compilado, voc deve prestar
ateno ao seguinte requisito da seqncia dos blocos:
Blocos chamados devemsempre ser localizados antes da chamada deles.
Date: 04.10.2007
File: PRO2_13P.34
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Estrutura de um Arquivo Fonte SCL
.
.
FUNCTION_BLOCK FB10
END_FUNCTION_BLOCK
Parte de declaraes
Parte de Instrues
Atributos
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 35
Estrutura A parte de declaraes usada para definir as variveis locais e globais,
parmetros do bloco, constantes e rtulos de saltos. Est dividida em blocos de
declaraes individuais, que esto em cada caso identificadas por seu prprio
conjunto de palavras chaves.
Os blocos podem ser inseridos em um arquivo fonte SCL atravs de Insert ->
Block Template -> Constant, Parameter.
Blocos Dado Sintaxe FB FC OB DB UDT
Constantes CONST
Declaration list X X X
END_CONST
Rtulos de saltos LABEL
Declaration list X X X
END_LABEL
Variveis Temporrias VAR_TEMP
Declaration list X X X
END_VAR
Variveis Estticas VAR (STRUCT)
Declaration list X (X) (X)
END_VAR
Parmetros Entrada VAR_INPUT
Declaration list X X
END_VAR
Parmetros Sada VAR_OUTPUT
Declaration list X X
END_VAR
Parmetros In/Out VAR_IN_OUT
Declaration list X X
END_VAR
Date: 04.10.2007
File: PRO2_13P.35
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Parte de Declaraes de um Bloco
Parte de declaraes
Begin
(* parte de instrues *)
FUNCTION_BLOCK fb_name
END_FUNCTION_BLOCK
Atributos
CONST
CONSTANT:=5;
P_Part:=0.8;
END_CONST
VAR
Val1,Val2,Val3 :INT;
END_VAR
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 36
Parte de Instrues A parte de instrues contem instrues que so executadas aps a chamada do
bloco lgico (OB, FB, FC). Estas instrues so usadas para processar dados e
endereo ou, no caso de blocos de dados, apresentar valores individuais dentro do
DB.
Sub-diviso As instrues individuais podem ser essencialmente dividido em trs grupos:
Atribuio de valores: elas so usadas para atribuir uma expresso ou um valor
para uma varivel.
Instrues de controle: elas so usadas para criar ramificaes dentro do
programa ou repetio de grupos de instrues.
Chamada de sub-rotina: elas so usadas para chamar funes oublocos de
funes.
Nota Voc deve prestar ateno aos seguintes pontos quando programando instrues:
A parte das instrues comea com a palavra chave BEGIN e termina com a
palavra chave para fim de bloco (p.ex. END_FUNCTION).
Cada instruo deve ser fechado com ponto e vrgula.
Todos os identificadores (nomes) usados na parte de instrues deve ser
declarado.
Templates Templates para estruturas de controle poden ser inseridas em um arquivo fonte
SCL atravs de Insert -> Control Structure ->IF, CASE, FOR, WHILE, REPEAT.
Date: 04.10.2007
File: PRO2_13P.36
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Parte de Instrues do Bloco
Parte de declarao
Begin
(* parte de instrues *)
FUNCTION_BLOCK fb_name
END_FUNCTION_BLOCK
Atributos
Begin
// Exemplo de atribuio de valor
Measured value:=0 ;
// Exemplo de uma instruo
// de controle
IF I1.1 THEN
N:=0;
SUM:=0.0;
ELSIF START = TRUE THEN
N:=N+1;
SUM:=SUM + IN;
ELSE
OK:=FALSE;
END_IF;
// Exemplo de chamada subrotina
FB11.DB22(Pass:=10);
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 37
Expresses Expresses consistem de operandos, operadores e parntesis. Dentro de uma
expresso os operadores (p.ex. +, -, *, /, etc.), isto , os componentes ativos de
uma expresso, so lincadas aos componentes passivos, tais como constantes,
variveis e valores de funes, de modo a formar um novo valor.
Uma expresso portanto calcula o valor que representa.
SCL permite a formao de expresses padres, isto , matemticas, expresses
lgicas e comparativas. Variveis de blocos de dados, arrays, structures e reas de
memria da CPU (entradas, sadas, etc.) podemser atrados para a formao.
Operadores e Expresses consistemde operadores e operandos. Muitos operadores SCL
Operandos ligamdois operandos (p.ex. A +B) e so portanto chamados operadores binros.
Os outros trabalhamsomente com um operando e so ento chamados operadores
unrios.
O resultado de uma expresso pode
ser atribuda a uma varivel (p.ex. A :=B +C;)
ser usada como uma condio para instrues de controle (p.ex. IF
A<B DO ... )
ser usada como um parmetro atual para a chamada de uma funo ou um
bloco de funes (p.ex.: FB20 (Input :=A +B) )
Date: 04.10.2007
File: PRO2_13P.37
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Expresses, Operadores e Operandos em S7-SCL
Expresses
Expresses Matemticas ((3+CONST_INT) * (VAR_INT ** 37) / 3.14)
Expresses de Comparao A >=9
Expresses Lgicas (n >5) AND (n < 20)
Operadores
Operador de Atribuio :=
Operadores Matemticos *, /, MOD, DIV, +, -, **
Operadores de Comparao <, >, <=, >=, = <>
Operadores Lgicos NOT, AND or &, XOR, OR
OPERANDOS
Constantes 30. 0, FACTOR, 'SIEMENS'
Variveis Extendidas Status, IB5, DB10.DW5, Motor.Current,
FC12(A:=On)
Expresses em (...) ((3+CONST_INT) * (VAR_INT ** 37))
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 38
Instrues Na parte de declarao de um bloco, as aes so descritas que so para serem
executadas com variveis introduzidas na parte de declarao bem como com
dados globais. Normalmente, as instrues so executadas na seqncia na qual
elas so listadas em programa texto.
Atribuio de Valores Estes so usados para atribuio de novos valores para variveis. Os valores
velhos so ento perdidos.
Instrues de Estas so usadas para mudana na seqncia na qual as instrues so
Controle normalmente processadas.
Uma escolha de vrias alternativas na execuo em um programa podem ser feitas
cominstrues condicionais (instrues IF e CASE).
Instrues de Loop (instrues FOR, WHILE e REPEAT) so usados para
instrues executadas repetidamente.
Instrues de salto (instrues CONTINUE, EXIT e GOTO) permitem a seqncia
de processamento ser interrompida e saltar para um ponto pr-determinado.
Chamadas FB e FC De acordo com o princpio de programao estruturada, outras funes (FC e SFC)
e blocos de funes tambm podem ser chamados de um bloco SCL. Blocos que
podemser chamados so:
funes e blocos de funes adicionais, que foramgeradas emSCL ou em
outra linguagem STEP 7 (STL, LAD, etc.).
funes padres e blocos de funes padres fornecidas com SCL.
Funes do sistema (SFC) e blocos de funes do sistema (SFB) que esto
disponveis no sistema operacional da CPU.
Date: 04.10.2007
File: PRO2_13P.38
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Instrues em S7-SCL
Valor atribudo
Exemplo: A := B + C;
Instrues de Controle
Instruo IF IF E1.1 THEN ... ELSIF ... ELSE ... END_IF
Instruo CASE CASE SELECTOR OF 1: ...; 2: ... ELSE: ... END_CASE
Instruo FOR FOR INDEX := 1 TO 49 BY 2 DO ... END_FOR
Instruo WHILE WHILE INDEX <= 50 DO ... END_WHILE
Instruo REPEAT REPEAT ... UNTIL INDEX:= 51 ... END_REPEAT
Instruo CONTINUE WHILE BOOL_1 DO ... CONTINUE ... END_WHILE
Instruo EXIT WHILE BOOL_1 DO ... EXIT ... END_WHILE
Instruo GOTO IF INDEX <23 THEN GOTO MARK; ...
Instruo RETURN IF ENABLED THEN RETURN; ...
Chamada de Funo e Bloco de Funo
Chamada FB ou SFB FB11.DB20(IN:=VAL1, BY:=VAL2);
Chamada FC ou SFC RETURN := FC32(IN:=VAL1,OUT:=VAL2);
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 39
Princpio Atribuio de valores recoloca um valor presente de varivel com um novo valor, os
quais esto especificados em uma expresso. Esta expresso tambm pode
contem identificadores de funes (FC), os quais so deste modo chamadas e
retornam valores correspondentes.
O valor de uma expresso atribuda a uma varivel deve ser compatvel com os
tipos de variveis.
Atribuio de Valores Uma varivel complexa representa cada o tipo completo (a estrutura
com Variveis completa, o array completo, a string) ouum componente de varivel
Complexas complexa. Existem ento duas possibilidades para atribuio de uma varivel
complexa. Voc pode
Atribua o contedo de outras variveis complexas completas (struct, array,
ou string) para cada varivel complexa (structure, array, string).
Por favor notar que, por exemplo, uma estrutura completa somente pode ser
atribuda a outra estrutura se os componentes da estrutura coincidirem em seu
tipo de dados bem como em seu nome.
Um array completo somente pode ser atribuda a outro array se os tipos de
dados do componentes bem como os limites dos arrays coincidirem exatamente.
Atribua uma varivel tipo compatvel, uma expresso tipo compatvel ou outro
componente para cada componente de uma varivel complexa.
Date: 04.10.2007
File: PRO2_13P.39
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Atribuio de Valores em S7-SCL
Variveis Locais
Tipos de Dados Elementares COUNTER :=(5 +RUNVAR) * 2;
Estruturas
Estrutura Completa STRUCT_1 :=STRUCT_2;
Componentes STRUCT_1.COMP3 :=STRUCT_2.COMP1;
Array
Array Completo ARRAY_1 :=ARRAY_2;
Componentes ARRAY_1[I] :=ARRAY_2 [J ];
Variveis Globais
rea de memria de CPU
Acesso Absoluto VALUE :=IW10;
Simblico VALUE :=INPUT; // "Input" na tabela de smbolos
Indexado VALUE :=IW[INDEX];
Blocos de Dados
Acesso Absoluto VALUE :=DB11.DW5;
Simblico VALUE :=MOTOR.CURRENT; // MOTOR e CURRENT
Indexado VALUE :=MOTOR.DW[Index]; // deve estar na tabela de
// smbolos
Via parmetros entrada VALUE :=I_PAR.DW[Index]; // I_PAR decl. como VAR_IN
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 40
Princpio O problema freqentemente ocorre emprogramas, em que vrias instrues esto
sendo executados dependentes em condies especficas. Isto possvel, com
ramificaes de programas, ramificar o programa flui por seqncias de instrues
alternativas.
A instruo IF uma instruo condicional. Ela oferece uma ou mais opes e
seleciona uma destas instrues para execuo (ounenhuma, se aplicvel).
Execuo A instruo IF processada de acordo com as seguintes regras:
1. Se o valor da primeira expresso TRUE, ento a parte de instruo aps
THEN executada, de outra forma, a exoresso na ramificao ELSIF so
avaliadas.
2. Se nenhuma expresso booleana TRUE na ramificao ELSIF, a instruo de
seqncia para ELSE executada (ounenhuma seqncia de instruo, se o
ramo ELSE no existe).
Qualquer nmero de instrues ELSIF deve existir. Voc deve notar que
ramificaes ELSIF e/ou ramificaes ELSE devemser perdidas. Nestes casos so
manipuladas como se estas ramificaes existentes com instrues vazias.
Nota O uso de uma ou mais ramificaes ELSIF como oposio a uma seqncia de
instrues IF oferecema vantagemque as expresses lgicas que seguemuma
expresso vlida no so a muito avaliadas. O tempo de execuo de um
programa pode ser ento abreviado.
Date: 04.10.2007
File: PRO2_13P.40
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Instruo IF em S7-SCL
Sintaxe
IF <expresso> THEN <instrues>
[ELSIF<expresso> THEN <instrues>] //opcional
.
.
[ELSE <instrues>] //opcional
END_IF
Exemplo
IF INPUT_OK THEN
N := 0;
SUM := 0.0;
OK := FALSE; // Sete o flag OK para FALSE
ELSIF START_OK THEN
N := N + 1;
SUM := SUM + IN;
ELSE
OK := FALSE;
END_IF;
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 41
Princpio A instruo WHILE permite a execuo repetida de seqncia de instrues na
base de uma condio de execuo. A condio de execuo formada de acordo
com as regras de expresses lgicas.
A parte de instruo que segue o DO repetida enquanto as condies de
execuo tem o valor TRUE.
Execuo A instruo WHILE processada de acordo com as seguintes regras:
1. A condio de execuo avaliada antes da parte de instrues de cada
execuo.
2. Se o valor TRUE ocorrer, ento a parte de instruo executado.
3. Se o valor FALSE ocorrer, a execuo da instruo WHILE concluda. Este
j pode se o caso na primeira avaliao.
Date: 04.10.2007
File: PRO2_13P.41
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
A Instruo WHILE em S7-SCL
Sintaxe
WHILE<expresso> DO <instrues>
END_WHILE
Exemplo
FUNCTION_BLOCK SEARCH // SEARCH declarada na tabela de
// smbolos
VAR
INDEX : INT;
KEYWORD : ARRAY[1..50] OF STRING;
END_VAR
BEGIN
INDEX := 1;
WHILE INDEX <= 50 AND KEYWORD[INDEX] <> 'KEY'
DO
INDEX := INDEX + 2;
END_WHILE;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 42
Chamadas de FBs O conceito mltiplo instance oferecido pelo STEP 7 tambm est disponvel em
SCL. Voc pode portanto chamar FBs referenciando um bloco de dados instance
associado ouusando o modelo mltiplo instance.
A chamada de um FB como um mltiplo instance difere da chamada com DBs
separados na armazenagem de dados.
No casi de um mltiplo instance, a rea de dados necessrio no em um DB
separado, mas encaixado na rea de dados instance do chamado FB.
Chamada com A chamada feita em uma instruo especificando:
DB Instance o nome do bloco de funes ou bloco de funes do sistema.
o bloco de dados instance (identificador DB)
bem como atribuio de parmetros (parmetros FB)
Voc pode usar cada endereo absoluto ou simblico na chamada com um DB
separado. Voc pode chamar FBs com um DB instance separado em todos os
blocos lgicos (OB, FB, FC).
Chamada como A chamada feita em uma instruo especificando:
Mltiplo Instance o nome local do instance (identificador)
bem como atribuio de parmetros (parmetros FB).
A chamada de um FB como um mltiplo instance somente possvel emFBs. O
mltiplo instance tambmdeve ser declarado como uma varivel do tipo de dado
FBxna parte de declarao (VAR ...END_VAR) do FB que chama.
Date: 04.10.2007
File: PRO2_13P.42
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Chamando Blocos de Funes
Chamando com DB instance
Chamada Absoluta
FB10.DB20(X1 := 5, X2 := IW12, ...); (* Chamar FB10 com bloco de
dados instance DB20 *)
Chamada Simblica
DRIVE.ON(X1 =5, X2 := IW12,...); (* DRIVE e ON so declarados
na tabela de smbolos *)
Chamando como um mltiplo instance
Chamada usando identificador
VAR
MOTOR: FB10;
END_VAR
BEGIN
. (* Chamando como um mltiplo
MOTOR(X1 := 5, X2 := IW12,...); instance somente possvel
dentro de outros blocos de
funes *)
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 43
Descrio SCL fornece uma varivel global do tipo BOOL, conhecido como flag OK, para
identificao de erro dentro de blocos lgicos. Este flag usado para identificar
corretamente ouexecues falhas de instrues e para reagir de acordo.
Mtodo de Se um erro ocorre durante a execuo de uma instruo (p.ex. overflow), o
Funcionamento flag OK esta setado para FALSE pelo sistema. Emcima de um bloco existente, o
flag OK ento copiado para o bit BR da palavra de estado da CPU e pode ento
ser avaliado com o flag OK do bloco chamado.
O flag OK setado para o valor TRUE no comeo da execuo do programa. Esta
pode ser verificada emqualquer lugar no bloco ouser setada para TRUE ou
FALSE.
Date: 04.10.2007
File: PRO2_13P.43
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
O Flag " OK" para Avaliao de Erro
Bit Global para deteco de erro
(Copiado para o bit BR no fim do bloco)
Exemplo:
// Setar a varivel OK p/ TRUE habilitando
// que uma verificao seja feita a ver se
// as seguintes aes so realizadas
// corretamente
OK := TRUE;
SUM := SUM + IN;
IF OK THEN // Adio foi realizada corretamente
...
ELSE // Overflow na adio
...
END_IF;
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 44
Compilando Antes de voc poder executar ou testar o seu programa, voc deve compila-lo.
Voc ativa a funo de compilao atravs da opo Compile no menu File ou
atravs do cone na barra de ferramentas.
O compilador tem as seguintes propriedades:
O compilador opera em modo de lote, isto , ele processa uma fonte SCL
como uma unidade. A compilao de blocos individuais em um arquivo fonte
SCL no possvel.
O compilador verifica a sintaxe de um arquivo fonte SCL e sub- seqentemente
mostra todos os erros que ocorrem durante a compilao.
O compilador cria instrues STL ou informaes de teste, se uma fonte SCL
est livre de erros e opes correspondentes so setadas. Voc deve selecionar
a opo Create Debug Info para cada programa que voc sub-seqentemente
deseja testar em uma linguagemde alto nvel.
O compilador gera para cada bloco de funes chama umbloco de dados
instance associated.
Ajustes Voc adapta a funo de compilao atravs da entrada na opo de menu
Options -> Customize -> Compiler:
Create Object Code: Voc usa esta opo para especificar se ou no voc
deseja gerar cdigo executvel. Se voc ativar a funo de compilao sem
selecionar esta opo, somente uma verificao de sintaxe ser realizada.
Optimize Object Code: Cria cdigos curtos.
Monitor Array Limits: Array indexados so checados pela faixa permitida no
tempo da execuo (runtime). Se um array indexado est for a da faixa permitida,
o flag OK setado para FALSE.
Create Debug Info: Gera informaes de depurao para depurador de
linguagemde alto nvel.
Set OK Flag: Esta opo habilita o flag OK a ser checado no arquivo fonte
SCL.
Date: 04.10.2007
File: PRO2_13P.44
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Compilando um Arquivo Fonte SCL
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 45
Seleo A funo Debugger (depuradora) Monitor Continously (monitora continuamente)
pode ser selecionada como segue:
1. Tenha certeza que o programa tenha sido compilado com os opes "Create
Object Code" e "Debug Information" ativadas.
2. Selecione a janela contendo a fonte do program a ser testado.
3. Posicione o cursor na linha do texto fonte contendo a primeira instruo da
seo que voc deseja testar.
4. Selecione a opo de menu Debug -> Monitor Continously.
A rea mais larga que pode ser monitorada determinada e indicada por uma
barra cinza no lado esquerdo da janela. Os nomes e valores correntes das
variveis na rea sendo monitorada so mostradas no lado direito da janela.
5. Selecione a opo de menu View -> Symbolic Representation para ativar ou
desativar a monitorao dos nomes simblicos no programa.
6. Selecionar a opo de menu Debug -> Monitor Continously se voc deseja
interromper a monitorao.
7. Selecionar a opo de menu Debug -> Finish Testing a parar a monitorao.
Modo Debug Voc pode mudar a rea de monitorao com a entrada Debug -> Test
Environment:
Process: neste teste do meio ambiente de processo, o depurador SCL reduz a
rea mxima de monitorao que ento o ciclo de tempo no ou somente
insignificantemente prolongado.
Laboratory: no meio ambiente de Laboratrio, a rea de monitorao est
somente restrita a capacidade da CPU. A mxima rea de monitorao maior
do que o meio ambiente de teste de processo.
Date: 04.10.2007
File: PRO2_13P.45
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Monitorao Continua
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 46
Vista Geral Quando voc selecionar o modo de depurao "Breakpoints Active", voc pode
monitorar seu programa passo a passo. Voc pode executar o programa uma
instruo por vez e observar a mudana do contedo das variveis processadas.
Aps ajuste dos pontos de paradas (breakpoints), voc pode executar o programa
at um ponto de parada (breakpoint) e monitor-lo passo a passo de onde estiver.
Ajustando Voc ajusta breakpoints como abaixo:
Breakpoints 1. Abra o fonte SCL do programa que voc deseja testar.
2. Defina os pontos de paradas (breakpoints) pelo posicionamento do cursor no local
requerido e selecione a opo de menu Debug -> Set Breakpoint. Os breakpoints
aparecem como crculos vermelhos no canto da janela.
3. Selecione a opo de menu Debug -> Breakpoints Active. A janela est
verticalmente dividida em duas metades. Quando o prximo breakpoint for encontrado, a
CPU vai para o modo HALT, o breakpoint vermelho marcado com uma seta amarela.
4. Para continuar:
Selecione a opo de menu Debug -> Execute Next Statement. Quando a
CPU tiver processado a prxima instruo, ela ir para o modo HALT
novamente.
Selecione a opo de menu Debug -> Continue. Quando a CPU encontrar o
prximo breakpoint, ela ir para o modo HALT novamente.
Selecione a opo de menu Debug -> Execute To Cursor. Quando a CPU
encontrar o ponto selecionado no programa, ela ir para o modo HALT
novamente.
Quando o lugar requerido encontrado, o contedo das variveis correntemente sendo
processadas so mostradas no lado direito da janela.
Nmero de O nmero de breakpoints ativos depende da CPU:
Breakpoints CPU 416: at 4 breakpoints ativos
CPU 414: at 2 breakpoints ativos
CPU 314: um breakpoint ativo
Date: 04.10.2007
File: PRO2_13P.46
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Setando e Editando Pontos de Parada (Breakpoints)
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 47
Vista Geral A ferramenta de engenharia CFC (Continuous Function Chart) habilita voc a criar
aplicaes de automao para SIMATIC S7 ou SIMATIC M7 pelo desenho de uma
planta de fluxo de processo - similar ao diagrama de funes para programao de
um PLC.
Neste mtodo de programao grfico, voc posiciona os blocos em uma rea
como uma folha de desenho e interconecta-os graficamente. Com CFC voc pode
rapidamente e facilmente converter requisitos tecnolgicos em programas de
automao executveis.
Escopo de O escopo de fornecimento do CFC inclui:
fornecimento Editor CFC
Gerador de cdigo
Depurador
Bibliotecas de blocos padres
Benefcios p/ O produto CFC pode ser integrado totalmente dentro da arquitetura STEP 7
Cliente como um pacote opcional de modo unificado e com gerenciamento universal de
dados. Isto torna o CFC fcil de usar e fcil de aprender e fornece dados
consistentes.
CFC pode ser usado para simples tarefas bem como para definio de
tarefas muito complexas.
A tecnologia de simples interconexo torna a comunicao entre blocos
amigvel ao usurio de configurar.
Manipulao manual e gerenciamento de recursos de mquina no so muito
necessrias.
Testes amgveis ao usurio e depurao so oferecidos como suporte.
Date: 04.10.2007
File: PRO2_13P.47
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
CFC para SIMATIC S7 e SIMATIC M7
CFC (Continuous Function Chart):
Ferramenta grfica para escrita
de programas PLC
Voc posiciona os blocos
em um folha de desenho
e os interconecta
Interconexes so
possveis:
- entre campo I/O
- para blocos em
outro grfico (charts)
Barra margem para
gerenciamento de
fontes e destinos
Vantagens
Programao por
engenheiros de processos
Alta velocidade p/escrita, depurao
e colocao em operao
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 48
Grficos CFC O bloco instance que voc necessita para resolver a defunio de uma tarefa
tecnolgica pode ser dividida em qualquer nmero de grficos (charts).
Um grfico CFC consiste de seis pginas (mostra vista geral)
1 pgina consiste de uma rea de trabalho e duas barras margem.
Automtico, gerenciamento da barra marginal de interligao entre charts
Sinais de monitorao amigveis ao usurio
Auto roteadores
Os recursos so completamente gerenciveis pelo usurio.
Documentao 1 para 1 para o contedo das informaes totais
Date: 04.10.2007
File: PRO2_13P.48
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Grficos CFC
Roteamento Automtico
Barra Margem
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 49
Objetos CFC Os mais importantes termos CFC esto assinalados aqui.
Tipos de Blocos Um tipo de bloco representa um template (gabarito) para qualquer nmero de
instances e descreve como estes instances esto estruturados internamente.
Todos os instances de um tipo de bloco obedecem as mesmas definies bsicas
como consideradas suas caractersticas e sua estrutura de dados.
Blocos Instances Um bloco instance um objeto concreto gerado de acordo com seutipo de
(blocos) descrio. O tipo descrito de caractersticas e estrutura de informao para o
instance enquanto o estado corrente de cada instance depende de suas operaes
executadas atualmente e refletida no contedo das informaes. Cada instance
tem umnico identificador que habilita instances a serem distingidos uns dos
outros.
No CFC, o identificador para um bloco instance feito do nome chart, o qual
nico na CPU, o separador ., e o nome do bloco, o qual nico dentro do chart
(mximo de 24 caractere para o nome do bloco).
Blocos Na linguagem STEP 7 utilizada, blocos so partes separadas do programa do
usurio definido pela sua funo, sua estrutura ou seu propsito de aplicao.
Existem blocos lgicos (FB, FC,...), blocos de dados e tipos de dados definidos
pelo usurio.
Instrues bsicas: funes tais como AND, SUM, etc. contidos no modelo de
mquina S7
Endereos globais: sinais I/O, memrias bit, contadores, temporizadores e
blocos de dados globais.
Date: 04.10.2007
File: PRO2_13P.49
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Objetos CFC
Parcelas de Bloco -
definio dos
atributos de operao
Valores padres p/
entradas/sadas
Tipos de Blocos
Blocos instances
Instrues bsicas
Endereos globais DBs globais,
sinais de I/O,
M, C, T
Nome Instance
Nome Tipo
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 50
Configurando CFC Voc configura uma aplicao CFC como abaixo:
1. Criar um projeto com a pasta charts no programa do usurio S7/M7
2. Criar ou copiar os tipos de blocos
3. Criar um grfico (chart) CFC
4. Inserir blocos
5. Atribuir parmetros para os blocos e interconect-los
6. Adaptao dos atributos de operao dos blocos
7. Compila os grficos (charts) CFC que voc criou
8. Transferir os programas compilados para a CPU
9. Testar os programas transferidos
Date: 04.10.2007
File: PRO2_13P.50
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurando Aplicaes CFC em vez de Programao
1. Inserir blocos
2. Atribuio de
parmetros de blocos
e interconect-los
3. Adaptao de
atributos de operao
4. Compilar/Transferir 5. Depurar 6. Finalizar
Programm bersetzen
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 51
CFC teste e depurao As seguintes facilidades de teste e depurao esto disponveis emCFC:
Monitorao e ajuste de parmetros para valores de variveis no chart.
Controle de fluxo de programa com breakpoints (somente M7)
Arquivamento de valores variveis exatos do ciclo (somente M7)
Date: 04.10.2007
File: PRO2_13P.51
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Funes Integrais de Teste e Depurao
Variveis monitorveis
Osciloscpio M7
Variveis parametrizveis
M7: partir, parar e continuar a
aplicao, reset, set,
Breakpoints, modo passo
simples
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 52
SFC (Sequential SFC um sistema de controle seqencial que sempre opera passo a passo,
Function Chart) a qual foi especialmente projetada segundo requisitos de automao de processo
(engenharia de processos, controle de processos, etc.).
O tpico campo de aplicao dos sistemas de controle seqencial deste tipo so
plantas com operao descontnua. Sistemas de controle seqencial tambm pode
deste modo ser usado em plantas que operem continuamente, por exemplo, para
colocao em operao (startup) ou shutdown, mudanas do ponto de trabalho
bem como mudanas de estado tipo distrbios etc.
Com SFC, por exemplo, especificao de manufatura de produtos podemser
escritos como evento dirigido a processo.
Princpio de No editor SFC voc gera o fluxograma pelo significado grfico. Os elementos
Operao de estrutura grfica esto posicionados de acordo comregras fixas. Voc no deve
ser preocupar comdetalhes tais como algortmos ou alocao de recursos de
mquinas, mas ao contrrio podem concentrar em aspectos tecnolgicos da
configurao.
Aps gerao de topologia grfica, voc chaveia para vista de detalhes (zoom) e
aqueles parmetros atribudos a elementos individual, isto , voc configura as
aes (passos) e condies (transies).
Voc normalmente programa aes pela seletiva edio bsica de funes de
automao criadas com CFC utilizando mudanas de modo e estados.
Aps configurar, gerar cdigos de mquina executveis com SFC, transferir para o
PLC e test-la com funes de depurao SFC.
Volume de Dados Seqenciadores por chart 1
de Projeto Passos por chart 2 ... 255
Transies por chart 1 ... 255
Instrues por passo <=50
Condies por transio <=10
Date: 04.10.2007
File: PRO2_13P.52
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurando Sistemas de Controle Seqencial com S7-SFC
S7-SFC: Ferramenta para
programao de seqenciadores
Projetados para requisitos
de processos de automao
Compatvel com IEC 1131-3
Passos de valores atribudos
aos blocos no CFC
Checa transies das condies
de habilitao de passo
Syntax checked during writing
Linque direto com CFC
Transferncia de valores por
Marca&Arrasta
Referncia cruzada
Visualizao em WinCC
Siemens Ltda
Training Center
ST-7PRO2
Ferramentas de Engenharia para S7/M7 Pgina 53
Cooperao Programao de blocos em linguagem de alto nvel SCL
Gerenciamento de dados comuns e gerao de cdigo com CFC
Acesso cruzado direto de SFC para blocos instances CFC
Integrao com o gerenciador SIMATIC STEP 7
Date: 04.10.2007
File: PRO2_13P.53
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Cooperao entre CFC/SFC e SCL
CFC
Configurao de ao
com SCL
Cooperao
entre
CFC/SFC
SFC
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 1
Contedo Pg.
Suporte da rea de Treinamento com S7-300 ................................................................................... 3
Configurao da Unidade de Treinamento com S7-300 .................................................................... 4
Configurao da Unidade de Treinamento com S7-400 .................................................................... 5
O Simulador ........................................................................................................................................ 6
O Modelo Correia Transportadora ...................................................................................................... 7
Soluo do Exerccio 1.1: Salto aps uma Subtrao ........................................................................ 8
Soluo do Exerccio 1.2: Salto aps uma Multiplicao .................................................................... 9
Soluo do Exerccio 1.3: Programando um Distribuidor de Saltos .................................................... 10
Soluo do Exerccio 2.1: Clculo de Expoentes ................................................................................ 11
Soluo do Exerccio 2.2: Troca de Dados no ACCU1 ....................................................................... 12
Soluo do Exerccio 2.3: Formao de Complementos .................................................................... 13
Soluo do Exerccio 3.1: Calculando a Distncia ............................................................................. 14
Soluo do Exerccio 4.1: Programao de Loop com Endereamento Indireto de Memria ........... 15
Soluo do Exerccio 4.2: Programao de Loop com Endereamento Indireto de Registro ............ 17
Soluo do Exerccio 4.3: Clculo de Soma e Valor Mdio ................................................................ 18
Soluo do Exerccio 5.2: Acessando Tipos de Dados Complexos ................................................... 19
Soluo do Exerccio 5.3: Leitura do Relgio do Sistema .................................................................. 20
Soluo do Exerccio 6.1a: Planta de Engarrafamento Modo de Operao ................................... 21
Soluo do Exerccio 6.1b: Planta de Engarrafamento Controle do Transportador ........................ 22
Soluo do Exerccio 6.2a: FB1 para Estao de Trabalho ................................................................ 26
Soluo do Exerccio 6.2a: FB2 para o Transportador ....................................................................... 28
Soluo do Exerccio 6.2a: OB1............................................................................................................ 30
Soluo do Exerccio 6.2b: Extenso para 3 Estaes ....................................................................... 31
Date: 04.10.2007
File: PRO2_14P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Solues dos Exerccios
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 2
Contedo Pg.
Soluo do Exerccio 7.2: Testando o Bloco de Dados (SFC 24: somente S7 400) ......................... 35
Soluo do Exerccio 7.3: Criando um DB (SFC 22) ......................................................................... 36
Soluo do Exerccio 7.4: Copiando DB da Memria de Carga para de Trabalho (SFC 20) ............ 37
Soluo do Exerccio 7.5: Initializando um DB com "0" (SFC 21: FILL) ............................................. 38
Soluo do Exerccio 7.6: Escrevendo uma Menssagem no Buffer de Diagnstico (SFC 52) ........... 39
Soluo do Exerccio 7.7: Bloco Contador com "Debouncing de Contato" ........................................ 40
Soluo do Exerccio 8.1: Manipulao de Erro no FC43 .................................................................. 41
Soluo do Exerccio 9.2: Contagem de Peas Terminadas .............................................................. 43
Soluo do Exerccio 10.2: Comunicao com os SFBs GET/PUT .................................................... 49
Soluo do Exerccio 10.3: Comunicao com os SFBs START/STOP ............................................. 51
Date: 04.10.2007
File: PRO2_14P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Solues dos Exerccios
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 3
Date: 04.10.2007
File: PRO2_14P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Suporte da rea de Treinamento com S7-300
Contedo do Kit O kit de treinamento consiste dos seguintes componentes:
de Treinamento Um controlador lgico programvel S7-300 com CPU 314 ou CPU 315-
DP
Mdulos de entrada e sada digital, mdulo analgico
Simulador com equipamentos para testes digitais e analgicos
Modelo de Correia Transportadora
Nota:
bem possvel que o seu kit de treinamento de rea no seja equipado
com o modelo de correita transportadora mostrado acima, mas com o
modelo mostrado na foto abaixo.
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 4
Date: 04.10.2007
File: PRO2_14P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurao da Unidade de Treinamento com S7-300
PS
1
CPU
2
DI 16
4
0
DI 16
5
4
DO 16
6
8
DO 16
7
12
DI 16
8
16
DO 16
9
20
AI/AO4
10
352
Mdulo -->
No. do Slot -->
Endereo I/O -->
Verso A
(mdulos de 16
canais de I/O)
PS
1
CPU
2
DI 32
4
0
DO 32
5
4
DI8/DO8
6
8
AI 2
7
304
Mdulo -->
No. do Slot -->
Endereo I/O -->
Versso B
(mdulos de 32
canais de I/O)
Configurao O controlador programvel configurado com os seguintes mdulos:
da Verso A Slot 1: Fonte de alimentao 24V/5A
Slot 2: CPU 314 ouCPU 315-2 DP
Slot 4: Entrada digital 16x24V Entradas do simulador
Slot 5: Entrada digital 16x24V Botes Pushwheel
Slot 6: Sada digital 16x24V 0.5A Sadas do simulador
Slot 7: Sada digital 16x24V 0.5A Display digital
Slot 8: Entrada digital 16x24V Entradas do modelo C.
Transp.
Slot 9: Sada digital 16x24V 0.5A Sadas do modelo C. Transp.
Slot 10: Mdulo analgico 4 AI/4 AO Ajustvel do simulador
Configurao O controlador programvel configurado com os seguintes mdulos :
da Verso B Slot 1: Fonte de alimentao 24V/5A
Slot 2: CPU 314 ou CPU 315-2 DP
Slot 4: Entrada digital 32x24V Entradas do simulador e
Botes Pushwheel
Slot 5: Sada digital 32x24V/0.5A Sadas do simulador e
Display digital
Slot 6: Entrada e sada digital Modelo C. Transp.
mdulo 8X24V/ 8x24V 0.5A
Slot 7: Entrada analgica 2 AI Seo analgica do
simulador
Endereos O endereamento slot fixo usado no S7-300 (CPU 312-314). Os endereos
do mdulos so mostrados no slide.
Os endereos iniciais do mdulos podem ser ajustados pela atribuio de
parmetros na CPU 315-2DP e para o S7-400.
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 5
Date: 04.10.2007
File: PRO2_14P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
Configurao da Unidade de Treinamento com S7-400
PS
Endereos Padres:
CPU DI
32
28
18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 No. Slot
DI
32
32
DO
32
36
DO
32
40
AI
8
1216
Arquitetura Voc pode ver a arquitetura da unidade de treinamento do S7-400 no slide
acima.
O bastidor de montagem UR 1 configurado com os seguintes mdulos:
Slot 1: Fonte de alimentao 24V e 5V/20A
Slot 2: - " -
Slot 3: - " -
Slot 4: CPU 412 ou outra
Slot 5: vago (quando a CPU for de largura simples)
Slot 6: vago
Slot 7: vago
Slot 8: Entrada digital 32x24V (do Simulador)
Slot 9: Entrada digital 32x24V (do modelo C. Transp.)
Slot 10: Sada digital 32x24V 0.5A (para Simulador)
Slot 11: Sada digital 32x24V 0.5A (para modelo C. Transp.)
Slot 12: Entrada analgica 8X13 Bit (do potenc. no Simulador)
Slot 13: vago
Slot 14: vago
Slot 15: vago
Slot 16: vago
Slot 17: vago
Slot 18: vago
Endereamento Voc tem os endereos padres, conforme mostrado no slide acima, quando
no foi feita nenhuma configurao ou nenhuma parametrizao de novos
endereos tenham sido transferidas.
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 6
Date: 04.10.2007
File: PRO2_14P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
O Simulador
V
0 8 1 5
AI1 AI2 AO1 AO2
AI2
AI1
-15V...+15V -15V...+15V
AI1
AI2 AO1
AO2
V
DI DO
.0
.1
.2
.3
.4
.5
.6
.7
.0
.1
.2
.3
.4
.5
.6
.7
.0
.1
.2
.3
.4
.5
.6
.7
.0
.1
.2
.3
.4
.5
.6
.7
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
Projeto O Simulador conectado s unidades de treinamento S7-300 ou S7-400 por
dois cabos. Eles so divididos em trs sees:
Seo binria com 16 chaves (liga-desliga e liga com retorno por mola) e
16 LEDs.
Seo digital com 4 chaves pushwheel (ou thumbwheel) e um display
digital. Estas operam com valores BCD.
Seo analgica com um voltmetro para mostrar os valores dos canais
de sada analgicos 0 e 1. Voc utiliza a chave seletora para escolher o
valor de tenso que voc deseja monitorar. Existem dois potencimetros
separados para ajuste de valores para os canais de entrada analgicos.
Endereamento Voc utiliza os seguintes endereos para enderear as entradas e sadas em
seu programa do usurio:
Sensor / Atuador
Chaves de teste
LEDs
Chave Pushwheel
Display digital
Canais analgicos
Verso A
(DI16, DQ16)
IW 0
QW 8
IW 4
QW 12
PIW 352/354
Verso B
(DI32, DQ32)
IW 0
QW 4
IW 2
QW 6
PIW 304/306
S7-400
(endere.padres)
IW 28
QW 36
IW 30
QW 38
PIW 1216/1230
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 7
Date: 04.10.2007
File: PRO2_14P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Training Center
O Modelo Correia Transportadora
INI 1 a INI 3
(Sensores de proximidade)
M 1
(Motor)
H 1, H 2, H 3, H 4
(LEDs)
S 1, S 2, S 3, S 4
(Botes de reconhecimento)
LB1
Barreira de luz
Projeto O slide acima mostra um diagrama do modelo Correia Transportadora com
seus sensores e atuadores.
Addresses S7-300 S7-300 S7-400
Ver. A Ver. B (sem Sensor / Atuador Smbolo
(DI16, (DI32, Config.
DO16) DO32) HW )
I 16.0 I 8.0 I 32.0 Barreira de luz LB 1 LB1
I 16.1 I 8.1 I 32.1 Ch. reconhec., posto 1 S1
I 16.2 I 8.2 I 32.2 Ch. reconhec., posto 2 S2
I 16.3 I 8.3 I 32.3 Ch. reconhec., posto 3 S3
I 16.4 I 8.4 I 32.4 Ch. reconhec., mont.final S4
I 16.5 I 8.5 I 32.5 Sensor proximidade 1 INI1
I 16.6 I 8.6 I 32.6 Sensor proximidade 2 INI2
I 16.7 I 8.7 I 32.7 Sensor proximidade 3 INI3
Q 20.1 Q 8.1 Q 40.1 LED no posto 1 H1
Q 20.2 Q 8.2 Q 40.2 LED no posto 2 H2
Q 20.3 Q 8.3 Q 40.3 LED no posto 3 H3
Q 20.4 Q 8.4 Q 40.4 LED na montagem final H4
Q 20.5 Q 8.5 Q 40.5 C. Transp. oper. p/ dir. K1_CONVR
Q 20.6 Q 8.6 Q 40.6 C. Transp. oper. p/ esq. K2_CONVL
Q 20.7 Q 8.7 Q 40.7 Buzina HORN
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 8
Soluo do Exerccio 1.1: Salto aps uma Subtrao
FUNCTION FC 11 : VOID
TITLE =Exercise 1.1 : saloto aps uma Subtrao
//Version for 16Bit SM
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
L IW 4; // Chave Thumbwheel
BTD ; // Converte formato de BCD para DINT
L IW 0; // Palavra de entrada 0
BTD;
-D;
JM NEG; // Salta, se resultado negativo
L IW 4;
JU END;
NEG: L 0;
END: T QW 12; // Display digital
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 9
Soluo do Exerccio 1.2: Salto aps uma Multiplicao
FUNCTION FC 12 : VOID
TITLE =Exercise 1.2 : Salto aps uma Multiplicao
//Version for 16Bit SM
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
L IW 4; // Chave Thumbwheel
BTD; // Converso de BCD para DINT
L IW 0; // Chaves de teste no Simulador
BTD;
*I;
JO OVL; // Salta se houver overflow
DTB; // Converso de DINT para BCD
JU END;
OVL: L 0;
END: T QW 12; // Display digital
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 10
Soluo do Exerccio 1.3: Programando um Distribuidor de Saltos
OB1
FUNCTION FC 13: VOID
//Verso para SM 16Bit
// Programando um Distribuidor de Saltos
VAR_INPUT
Select: INT;
END_VAR
BEGIN
SET;
L #Select;
AW W#16#FF00; // Verifica se a seleo >255 ou
JN Err; // Salta se > 255
L #Select; // Recarreaga o valor
JL GT5; // Salta p/rtulo se ACCU1-L-L >5
JU Err; // Se a seleo for = 0 (no permitido)
JU Dr_1; // Correia p/direita (seleo=1)
JU Dr_2; // Correia p/esquerda (seleo=2)
JU Dr_3; // Parar correia (seleo=3)
JU Ho_1; // Liga buzina
JU Ho_2; // Desliga buzina
GT5: JU Err;
Dr_1: S Q 20.5; // Correia p/direita
R Q 20.6;
JU End;
Dr_2: S Q 20.6; // Correia p/esquerda
R Q 20.5;
JU End;
Dr_3: R Q 20.5; // Parar Correia
R Q 20.6;
JU End;
Ho_1: S Q 20.7; // Liga buzina
JU End;
Ho_2: R Q 20.7; // Desliga buzina
JU End;
Err: R Q 20.5; // Parar Correia
R Q 20.6;
R Q 20.7; // Desliga buzina
CLR; // Resetar ENO
SAVE;
End: BE;
END_FUNCTION
FC13
EN ENO
( )
I0.0
Q8.0
Select IW4
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 11
Soluo do Exerccio 2.1: Clculo de Expoentes
FUNCTION FC 21 : VOID
TITLE =Exercise 2.1: Clculo de Expoentes
//Version for 16Bit SM
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
L IB 5; // Carrega byte a direita da chave pushweel
BTI; // BCD para INT -> entrada de valor
PUSH; // Copia ACCU1 para ACCU2
*D; // Forma o quadrado de valor no ACCU1
PUSH; // Copia quadrado do ACCU1 para ACCU2
PUSH; // Necessrio p/S7-400: quadrado -> ACCU3
*D; // Forma potncia de 4 no ACCU1
*D; // Forma potncia de 6 no ACCU1
DTB; // Converte para BCD
T QW 12; // Transfere palavra baixa p/ display digital
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 12
Soluo do Exerccio 2.2: Troca de Dados no ACCU1
FUNCTION FC 22 : VOID
TITLE = Exerccio 2.2: Troca de Dados no ACCU1
//Verso para SM 16Bit
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE =
L IW 4; // Carrega nmero BCD
CAW; // Troca dois bytes no ACCU1-L
T QW 12; // Mostra o resultado
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 13
Soluo do Exerccio 2.3: Formao de Complementos
FUNCTION FC 23 : VOID
TITLE = 2.3: Formao de Complementos
//Verso para SM 16Bit
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
BEGIN
NETWORK
TITLE = Complemento de Um em STL
L IW 0; // Carrega palavra de entrada das chaves de testes
INVI; // Forma o complemento de um
T QW 8; // Transfere o resultado para os LEDs do simulador
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 14
Soluo do Exerccio 3.1: Calculando a Distncia
FUNCTION FC 31 : REAL
TITLE =Exercise 3.1: Calculando a distncia
AUTHOR : PT41
FAMILY : A4_0
NAME : ST7PRO2
VERSION : 0.0
VAR_INPUT
X1: REAL;
Y1: REAL;
X2: REAL;
Y2: REAL ;
END_VAR
VAR_TEMP
XSquare : REAL;
END_VAR
BEGIN
NETWORK
TITLE =
L #X1; // Carrega cooredenada X de P1
L #X2; // Carrega cooredenada X de P2
-R; // Calcula (X1-X2)
SQR; // Eleva (X1-X2) ao quadrado
T #XSquare; // Armazena o resultado na varivel TEMP
L #Y1; // Carrega cooredenada Y de P1
L #Y2; // Carrega cooredenada Y de P2
-R; // Calcula (Y1-Y2)
SQR; // Eleva (Y1-Y2) ao quadrado
L #XSquare; // Recarrega (X1-X2) elevado ao quadrado
+R; // Soma
SQRT; // Calcula raiz quadrada
T #RET_VAL; // Transfere para RET_VAL
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 15
Soluo do Exerccio 4.1: Programao de Loop com
Endereamento Indireto de Memria (parte 1)
FUNCTION FC 41 : VOID
TITLE = Exerccio 4.1: Programao de Loop com Endereamento Indireto de Memria
VAR_INPUT
DB_Num : WORD ;
END_VAR
VAR_TEMP
L_Counter : INT ;
Ini_Value : REAL ;
I_DB_Num : WORD;
Par_Pointer : DWORD ; END_VAR
BEGIN
NETWORK
TITLE = Abre o DB
L #DB_Num; // Carrega o nmero do DB
T #I_DB_Num; // e transfere p/ varivel temporria
OPN DB [#I_DB_Num]; // Abre DB
NETWORK
TITLE = LOOP
L P#0.0; // Carrega end. do primeiro componente Tanque
T #Par_Pointer; // e transfere para #T_Pointer
L 1.0; // Carrega constante 1,0 e
T #Ini_Value; // transfere para #Ini_Value
L 100; // Inicializa loop de contagem com 100
BEGN: T #L_Counter; // e transfere para #L_Counter
L #Ini_Value;
T DBD [#Par_Pointer]; // Transfere #Ini_Value Meas_Value[i]
L 1.0; // Incrementa ACCU1 (#Ini_Value)
+R ; // de 1,0
T #Ini_Value; // e transfere para #Ini_Value
L #Par_Pointer; // Carrega #Par_Pointer no ACCU1
L P#4.0; // Incrementa o byte de endereo
+D ; // do #Par_Pointer em 4 unidades
T #Par_Pointer; // e transfere resultado para #Par_Pointer
L #L_Counter; // Carrega contador de loop,
LOOP BEGN; // Decrementa contador loop e se necessrio saltar
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 16
Soluo do Exerccio 4.1: Programao de Loop com
Endereamento Indireto de Memria (parte 2)
ORGANIZATION_BLOCK OB 1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE =
CALL FC 41 (
DB_Num := W#16#29);
NOP 0;
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 17
Soluo do Exerccio 4.2: Programao de Loop com
Endereamento Indireto de Registro
FUNCTION FC 42: VOID
TITLE = Exerccio 4.2: Programao de Loop com Endereamento Indireto de Registro
// Verso para S7-300 e S7-400
VAR_INPUT
DB_Num : WORD ;
END_VAR
VAR_TEMP
I_DB_Num : WORD ;
END_VAR
BEGIN
NETWORK
TITLE = Abertura do DB
L #DB_Num; // Carrega nmero do DB
T #I_DB_Num; // e transfere para varivel temporria
OPN DB [#I_DB_Num]; // Abre DB
NETWORK
TITLE = LOOP
LAR1 P#DBX0.0; // Carrega endereo do primeiro componente do Tanque
L L#1; // Carrega 1 no ACCU1(Ini_Value.)
L 100; // 100 no ACCU1 (L_Counter); 1 no ACCU2 (Ini_Value)
BEGN: TAK ; // L_Counter no ACCU2, Ini_Value no ACCU1
T D [AR1,P#0.0]; // Transfere Ini_Value para Tank[i]
+ L#1; // Incrementa Ini_Value
+AR1 P#4.0; // Incrementa AR1 de 2 unidades
TAK ; // L_Counter no ACCU1, Ini_Value no ACCU2
LOOP BEGN; // Decrementa, verifica trmino e salta
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 18
Soluo do Exerccio 4.3: Clculo de Soma e Valor Mdio
FUNCTION FC 43 : VOID
TITLE = Exerccio 4.3: Clculo de Soma e Valor Mdio
VERSION : 0.0
VAR_INPUT
Measured_values : ANY ;
END_VAR
VAR_OUTPUT
Sum : REAL ;
Mean_value : REAL ;
END_VAR
VAR_TEMP
Num_Elements : WORD ;
L_Counter : WORD ;
DB_No : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L P##Measured_values; // Carrega endereo do ponteiro "ANY"
LAR1 ; // Transfere endereo no AR1
L B [AR1,P#1.0]; // Carrega identificador de tipo de dado
L 8; // Carrega identificador de REAL (16#08)
==I ;
JC REAL; // Salta se tipo de dado igual a REAL
NOP 0; // Instrues p/ tipo de dado diferente de REAL
CLR ; // RLO=0
SAVE ; // BR=0
L L#-1; // Carrega nmero REAL invlido
T #Sum;
T #Mean_value;
BEU ;
REAL: NOP 0; // Instrues para tipo de dado: REAL
L W [AR1,P#2.0]; // Carrega nmero de elementos array
T #Num_Elements; // Guarda nmero de elementos
L W [AR1,P#4.0]; // Carrega nmero do DB ou 0
T #DB_No; // Se: DB_No=0, ento: OP DB[DB_No]=NOP
OPN DB [#DB_No]; // Erro de Runtime!!, se DB no existe
L D [AR1,P#6.0]; // Carrega ponteiro para operando atual
LAR1 ; // no AR1, Erro !! Se identificador de rea igual a "DI"
L 0.000000e+000; // 0 no ACCU1 (Soma =0,0)
L #Num_Elements; // Num_Elements no ACCU1; Sum=0 no ACCU2
BEGN: T #L_Counter; // Seta L_Counter
TAK ; // Sum no ACCU1
L D [AR1,P#0.0]; // Elemento do Array no ACCU1, Sum no ACCU2
+R ; // Sum em ACCU1
+AR1 P#4.0; // Incrementa AR1 de 4 unidades
L #L_Counter; // L_Counter no ACCU1, Sum no ACCU2
LOOP BEGN; // Decrementa e salta
TAK ; // Sum no ACCU1
T #Sum; // Sum para #Sum
L #Num_Elements; // Sum no ACCU2, nmero de elementos no ACCU1
DTR ; // Converte inteiro no sinalizado (16 bit) para REAL
/R ; // Valor mdio no ACCU1
T #Mean_value; // Transfere valor mdio para #Mean_value
SET ; // Seta bit BR
SAVE ;
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 19
Soluo do Exerccio 5.2: Acessando Tipos de Dados Complexos
FUNCTION FC 52 : VOID
TITLE =Monitorao de Motores
//Verso para S7-300 e S7-400
VERSION : 0.1
VAR_INPUT
Motor : "Motor";
END_VAR
VAR_OUTPUT
Motor_OK : BOOL ;
SetActDiff : DINT ;
SetActDiffDisp : DWORD ;
END_VAR
VAR_TEMP
SetActDifference : REAL ;
END_VAR
BEGIN
NETWORK
TITLE =
//Computando a porcentagem de desvio
SET ; //Obriga o first check, seta RLO p/ "1"
SAVE ; //Seta o bit BR p/ "1"
L #Motor.SetSpeed; //Carrega velocidade no ACCU1
PUSH ; //somente p/ S7-400, seta velocidade no ACCU2
PUSH ; //Carrega velocidade no ACCU3
L #Motor.ActualSpeed; //Seta veloc. no ACCU2, veloc. atual no ACCU1
-R ; //Diferena no ACCU1, seta velocidade no ACCU2
T #SetActDifference; //Guarda diferena na varivel temporria
TAK ; //Diferena no ACCU2, seta velocidade no ACCU1
/R ; //Desvio percentual atual no ACCU1
ABS ; //Desvio percentual absoluto no ACCU1
L #Motor.SetActDiffMax; //Carrega mx. desvio percentual no ACCU1
<=R ; //Desvio atual igual ou menor que desvio desejado?
AN #Motor.Disturbance; //e nenhum distrbio
= #Motor_OK; //ento Motor est OK
NETWORK
TITLE = Mostrando a diferena entre a velocidade e a velocidade atual
L #SetActDifference; //Carrega SetActDifference
RND ; //Converte p/ DINT
PUSH ; //Guarda SetActDifference no ACCU2
DTB ; //Nmero DINT no ACCU2, nmero BCD no ACCU1
JO ERR; //Salta se houve erro de converso
T #SetActDiffDisp; //Transfere nmero BCD vlido p/ display digital
TAK ;
T #SetActDiff; //Transfere nmero DINT vlido p/ #SetActDiff
BEU ; //Se nenhum erro, termina
ERR: CLR ;
SAVE ; //Limpa bit BR
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 20
Soluo do Exerccio 5.3: Leitura do Relgio do Sistema
FUNCTION FC 53 : VOID
TITLE = Exerccio 5.3: Leitura do Relgio do Sistema
//Verso para SM 16Bit
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_TEMP
Date_Time : DATE_AND_TIME ; //Data e hora atuais
RET_VAL_SFC1 : INT ; //Returna valor do SFC 1
END_VAR
BEGIN
NETWORK
TITLE =Call SFC 1 (READ_CLK)
CALL SFC1 (
RET_VAL := #RET_VAL_SFC1,
CDT := #Date_Time);
NOP 0;
NETWORK
TITLE = Mostra horas e minutos
LAR1 P##Date_Time; // Captura endereo do #Date_Time
L LB [AR1, P#3.0]; // L a hora
T QB 12; // e transfere para display digital
L LB [AR1, P#4.0]; // L minutos
T QB 13; // e transfere para display
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 21
Soluo do Exerccio 6.1a: Planta de Engarrafamento Modo de
Operao
FUNCTION_BLOCK "Mode_Selection"
TITLE =Modo de Seleo
VERSION : 0.1
VAR_INPUT
Start : BOOL ;
Stop : BOOL ;
Auto_Man : BOOL ;
OM_activate : BOOL ;
END_VAR
VAR_OUTPUT
Plant_on : BOOL ;
OM_Man : BOOL ;
OM_Auto : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Planta liga / desliga
A #Start; // sinal liga planta,
S #Plant_on; // seta sada plant_on;
AN #Stop; // sinal desliga planta,
R #Plant_on; // reseta sada plant_on;
A #Plant_on; //
= #Plant_on; //
NETWORK
TITLE = Modo de Operao: Manual
A #Plant_on; // se a planta estiver ligada e
AN #Auto_Man; // se o modo manual estiver selecionado e
A #OM_activate; // se a entrada enter_mode estiver ativa,
S #OM_Man; // ento seta a sada manual_mode;
A( ;
ON #Plant_on; // se a planta estiver desligada
O ; // ou
A #Auto_Man; // se o modo automtico estiver selecionado e
A #OM_activate; // se o enter_mode estiver ativado,
) ;
R #OM_Man; // reseta a sada manual_mode;
A #OM_Man; //
= #OM_Man; //
NETWORK
TITLE = Modo de Operao: Automtico
A #Plant_on; // se a planta estiver ligada e
A #Auto_Man; // se o modo automtico estiver selecionado e
A #OM_activate; // se a entrada enter_mode estiver ativada,
S #OM_Auto; // ento seta a sada automatic_mode;
A( ;
ON #Plant_on; // se a planta estiver desligada
O ; // ou
AN #Auto_Man; // se o modo manual estiver selecionado e
A #OM_activate; // se o enter_mode estiver ativado,
) ;
R #OM_Auto; // reseta a sada automatic_mode;
A #OM_Auto; //
= #OM_Auto; //
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 22
Soluo do Exerccio 6.1b: Planta de Engarrafamento Controle
do Transportador (parte 1)
FUNCTION_BLOCK "Conveyor_Control"
TITLE =
VERSION : 0.1
VAR_INPUT
OM_Man : BOOL ;
OM_Auto : BOOL ;
Jog_for : BOOL ;
Jog_back : BOOL ;
Sensor_fill : BOOL ;
Sensor_full : BOOL ;
END_VAR
VAR_OUTPUT
Conv_for : BOOL ;
Conv_back : BOOL ;
Filling_active : BOOL ;
Full_bottles : WORD ;
END_VAR
VAR
Filling_time : "TP";
Bottle_counter : "CTU";
END_VAR
VAR_TEMP
bottles : INT ;
END_VAR
BEGIN
NETWORK
TITLE = Ramificao entre o modo Manual e Automtico
SET ; // obriga o first check,
SAVE ; // e seta o bit BR p/ "1";
A #OM_Man; // se manual_mode estiver ativo,
JC Man; // salta para modo manual;
A #OM_Auto; // se automatic_mode estiver ativo,
JC Auto; // salta para modo automtico;
R #Conv_for; // se nenhum modo de operao estiver ativo,
R #Conv_back; // reseta o acionamento da C. Transp.,
R #Filling_active; // reseta filling_active
CALL #Bottle_counter (
R := TRUE); // reseta contador
L 0; // reseta valor de full_bottles
T #Full_bottles;
BEU ;
NETWORK
TITLE = Modo de Operao: Manual
//Controla a Correia Transportadora atravs dos botes JOG
Man: A #Jog_for;
AN #Jog_back;
= #Conv_for;
A #Jog_back;
AN #Jog_for;
= #Conv_back;
BEU ;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 23
Soluo do Exerccio 6.1b: Planta de Engarrafamento Controle
do Transportador (parte 2)
NETWORK
TITLE = Modo de Operao: Automtico
//Partir Filling_time
Auto: A #Sensor_fill;
= L 2.0;
LD 103;
CALL #Filling_time (
IN := L 2.0,
PT := T#3S,
Q := #Filling_active);
NOP 0;
NETWORK
TITLE = Modo de Operao: Automtico
//Contagem de garrafas cheias
A #Sensor_full;
= L 2.0;
BLD 103;
CALL #Bottle_counter (
CU := L 2.0,
R := FALSE,
CV := #bottles);
NOP 0;
NETWORK
TITLE = Modo de Operao: Automtico
//Convertendo #bottles para BCD
//
L #bottles;
ITB ;
T #Full_bottles;
NOP 0;
NETWORK
TITLE = Modo de Operao: Automtico
//C. Transp. p/frente enquanto o enchimento no estiver em processo
AN #Filling_active;
= #Conv_for;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 24
Soluo do Exerccio 6.1b: Planta de Engarrafamento Controle
do Transportador (parte 3)
ORGANIZATION_BLOCK "Cycle"
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
Full_bottles : INT ;
END_VAR
BEGIN
NETWORK
TITLE = Modo de Operao
//Controle do Modo de Operao
A "Start";
= L 22.0;
BLD 103;
A "Stop";
= L 22.1;
BLD 103;
A "Man/Auto";
= L 22.2;
BLD 103;
A "Enter_Mode";
= L 22.3;
BLD 103;
CALL "Mode_selection" , "Mode_Selection_DB" (
Start := L 22.0,
Stop := L 22.1,
Auto_Man := L 22.2,
OM_activate := L 22.3,
Plant_on := "Plant_on",
OM_Man := "Manual_Mode",
OM_Auto := "Automatic_Mode");
NOP 0;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 25
Soluo do Exerccio 6.1b: Planta de Engarrafamento Controle
do Transportador (parte 4)
NETWORK
TITLE = Controlando a Correia Transportadora
A "Manual_Mode";
= L 22.0;
BLD 103;
A "Automatic_Mode";
= L 22.1;
BLD 103;
A "Jog_forward";
= L 22.2;
BLD 103;
A "Jog_backward";
= L 22.3;
BLD 103;
A "Filling_Position";
= L 22.4;
BLD 103;
A "Counting_Bottles";
= L 22.5;
BLD 103;
CALL "Conveyor_Control" , "Conveyor_Control_DB" (
OM_Man := L 22.0,
OM_Auto := L 22.1,
Jog_for := L 22.2,
Jog_back := L 22.3,
Sensor_fill := L 22.4,
Sensor_full := L 22.5,
Conv_for := "Conveyor_forward",
Conv_back := "Conveyor_backward",
Filling_active := "Filling_in_progress",
Full_bottles := "Display");
NOP 0;
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 26
Soluo do Exerccio 6.2a: FB1 para Estao de Trabalho (parte
1)
FUNCTION_BLOCK "Station"
TITLE = Controlando uma estao de trabalho
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_INPUT
Initial : BOOL ;
Proxy_switch : BOOL ;
Acknowledge : BOOL ;
Clock_bit_q : BOOL ;
Clock_bit_s : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Transp_req : BOOL ;
END_VAR
VAR_IN_OUT
Conv_busy : BOOL ;
END_VAR
VAR
State : STRUCT
Process_piece : BOOL ;
Piece_finished : BOOL ;
Place_piece_on_conv : BOOL ;
Wait_for_piece : BOOL ;
Take_piece_from_conv : BOOL ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE = Inicializao
//Por meio da entrada "Initial" o estado bsico #Process_piece setado
A #Initial;
S #State.Process_piece;
R #State.Piece_finished;
R #State.Place_piece_on_conv;
R #State.Wait_for_piece;
R #State.Take_piece_from_conv;
R #Conv_busy;
NETWORK
TITLE = Estado: Process_piece
//Neste estado a pea bruta processada. Processamento terminado
// quando o operador reconhece o trmino da pea bruta
//por meio do boto "S1"
AN #State.Process_piece;
JC Pfin;
S #LED; //o LED fica ligado constantemente;
R #Transp_req;
A #Acknowledge; //quando o operador reconhece,
R #State.Process_piece; //uma mudana de estado ocorre;
R #LED;
S #State.Piece_finished;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 27
Soluo do Exerccio 6.2a: FB1 para Estao de Trabalho (parte
2)
NETWORK
TITLE = Estado: Piece_finished
//No estado #Piece_finished o operador espera pela permisso
//para colocar a pea bruta na C. Transp.. O sinal #Conv_busy indica,
//se a C.Transp. est ocupada ou no. Quando a CT estiver livre, uma mudana de estado
//para o estado Place_piece_on_conv realizada.
Pfin: AN #State.Piece_finished;
JC PpCo;
A #Clock_bit_s; //pisca lento;
= #LED;
AN #Conv_busy; //quando a C. Transp. estiver livre,
S #Conv_busy; //isto sinalizado ocupado
R #LED; //ento uma mudana de estado realizada;
R #State.Piece_finished;
S #State.Place_piece_on_conv;
NETWORK
TITLE = Estado: Place_piece_on_conv
PpCo: AN #State.Place_piece_on_conv;
JC Wait;
A #Clock_bit_q; //pisca lento;
= #LED;
A #Proxy_switch; //quando a pea estiver colocada na Correia,
S #Transp_req; //o transportador parte,
R #LED; //e o LED apagado;
A #Transp_req; //Quando a Correia estiver movimentando,
AN #Proxy_switch; //ento a pea bruta deixa a chave de proximidade,
R #State.Place_piece_on_conv; // e uma mudana de estado realizada;
S #State.Wait_for_piece;
NETWORK
TITLE = Estado: Wait_for_piece
//Esperando por uma nova pea bruta. A chegada de uma nova pea iniciada pelo
//sensor de proximidade da Correia
Wait: AN #State.Wait_for_piece;
JC TpCo;
R #LED; //o LED desligado;
A #Proxy_switch; //uma nova pea bruta chega,
R #Transp_req; //a C. Transp. parada,
R #State.Wait_for_piece; //e uma mudana de estado realizada;
S #State.Take_piece_from_conv;
NETWORK
TITLE = Estado: Take_piece_from_conv
//Neste novo estado a nova pea bruta pega da C. Transp. paraa
//o posto de trabalho
TpCo: AN #State.Take_piece_from_conv;
JC END;
A #Clock_bit_q; //o LED pisca rapidamente
= #LED; //
AN #Proxy_switch; //quando a nova pea bruta pega da C. Transp.,
R #Conv_busy; //a C. Transp. fica livre,
R #LED; //o LED desligado
R #State.Take_piece_from_conv; //e uma mudana de estado realizada;
S #State.Process_piece;
END: BEU ;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 28
Soluo do Exerccio 6.2a: FB2 para o Transportador (parte 1)
FUNCTION_BLOCK "Transport"
TITLE = Controlando a Correia Transportadora
VERSION : 0.1
VAR_INPUT
Initial : BOOL ;
L_Barrier : BOOL ;
Acknowledge : BOOL ;
Transp_req : BOOL ;
Clock_Bit : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Conv_right : BOOL ;
Conv_left : BOOL ;
END_VAR
VAR
State : STRUCT
Waiting : BOOL ;
Conv_right : BOOL ;
Assembly : BOOL ;
Conv_left : BOOL ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE = Inicializao
A #Initial;
S #State.Waiting;
R #State.Conv_right;
R #State.Assembly;
R #State.Conv_left;
NETWORK
TITLE = Estado: Esperando
//A C. Transp. espera neste estado pela finalizao da pea.
AN #State.Waiting;
JC RECH;
R #Conv_right;
R #Conv_left;
R #LED;
A #Transp_req;
R #State.Waiting;
S #State.Conv_right;
NETWORK
TITLE = Estado: Conv_right
//Este estado descreve o transporte da pea acabada em direo a montagem final
RECH: AN #State.Conv_right;
JC ENDM;
S #Conv_right;
A #Clock_Bit;
= #LED;
AN #L_Barrier;
R #Conv_right;
R #State.Conv_right;
S #State.Assembly;
AN #L_Barrier;
= #L_Barrier;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 29
Soluo do Exerccio 6.2a: FB2 para o Transportador (parte 2)
NETWORK
TITLE = Estado: Montagem
//Neste estado, a pea finalizada removida e uma nova pea bruta deixada
//na correia. Depois disto, o transporte da pea bruta em direo da estao de
//processamento vazia iniciado com S4.
//
ENDM: AN #State.Assembly;
JC LINK;
S #LED;
A #Acknowledge;
R #LED;
R #State.Assembly;
S #State.Conv_left;
NETWORK
TITLE = Estado: Conv_left
//Neste estado, o transporte da nova pea bruta para a estao ocorre, que entrega
//a pea finalizada.
LINK: AN #State.Conv_left;
JC ENDE;
S #Conv_left;
A #Clock_Bit;
= #LED;
AN #Transp_req;
R #Conv_left;
R #State.Conv_left;
S #State.Waiting;
ENDE: BEU ;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 30
Soluo do Exerccio 6.2a: OB1
ORGANIZATION_BLOCK "Cycle"
TITLE = "Varredura do Programa Principal (Ciclo)"
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE = Convocao do bloco de controle da estao
CALL "Station" , "Station_DB" (
Initial := "INITIALIZATION",
Proxy_switch := "INI1",
Acknowledge := "S1",
Clock_bit_q := "CLOCK_BIT_FAST",
Clock_bit_s := "CLOCK_BIT_SLOW",
LED := "H1",
Transp_req := "Transport_DB".Transp_req);
NETWORK
TITLE = Convocao do bloco de transporte da estao
CALL "Transport" , "Transport_DB" (
Initial := "INITIALIZATION",
L_Barrier := "LB1",
Acknowledge := "S4",
Clock_bit := "CLOCK_BIT_FAST",
LED := "H4",
Conv_right := "K1_CONVR",
Conv_left := "K2_CONVL");
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 31
Soluo do Exerccio 6.2b: Extenso para 3 Estaes
(FB10, parte 1)
FUNCTION_BLOCK "ASSEMBLY_LINE"
TITLE =
VERSION : 0.1
VAR
Station_1 : "STATION";
Station_2 : "STATION";
Station_3 : "STATION";
Transport : "TRANSPORT";
Conv_busy : BOOL ;
END_VAR
VAR_TEMP
trans_1 : BOOL ;
trans_2 : BOOL ;
trans_3 : BOOL ;
trans : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE = Convocao Station_1(Estao 1)
A "INITIALIZATION";
= L 1.0;
BLD 103;
A "INI1";
= L 1.1;
BLD 103;
A "S1";
= L 1.2;
BLD 103;
A "CLOCK_BIT_FAST";
= L 1.3;
BLD 103;
A "CLOCK_BIT_SLOW";
= L 1.4;
BLD 103;
CALL #Station_1 (
Initial := L 1.0,
Proxy_switch := L 1.1,
Acknowledge := L 1.2,
Clock_bit_q := L 1.3,
Clock_bit_s := L 1.4,
LED := "H1",
Transp_req := #trans_1,
Conv_busy := #Conv_busy);
NOP 0;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 32
Soluo do Exerccio 6.2b: Extenso para 3 Estaes
(FB10, parte 2)
NETWORK
TITLE = Convocao Station_2 (Estao 2)
A "INITIALIZATION";
= L 1.0;
BLD 103;
A "INI2";
= L 1.1;
BLD 103;
A "S2";
= L 1.2;
BLD 103;
A "CLOCK_BIT_FAST";
= L 1.3;
BLD 103;
A "CLOCK_BIT_SLOW";
= L 1.4;
BLD 103;
CALL #Station_2 (
Initial := L 1.0,
Proxy_switch := L 1.1,
Acknowledge := L 1.2,
Clock_bit_q := L 1.3,
Clock_bit_s := L 1.4,
LED := "H2",
Transp_req := #trans_2,
Conv_busy := #Conv_busy);
NOP 0;
NETWORK
TITLE = Convocao Station_3 (Estao 3)
A "INITIALIZATION";
= L 1.0;
BLD 103;
A "INI3";
= L 1.1;
BLD 103;
A "S3";
= L 1.2;
BLD 103;
A "CLOCK_BIT_FAST";
= L 1.3;
BLD 103;
A "CLOCK_BIT_SLOW";
= L 1.4;
BLD 103;
CALL #Station_3 (
Initial := L 1.0,
Proxy_switch := L 1.1,
Acknowledge := L 1.2,
Clock_bit_q := L 1.3,
Clock_bit_s := L 1.4,
LED := "H3",
Transp_req := #trans_3,
Conv_busy := #Conv_busy);
NOP 0;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 33
Soluo do Exerccio 6.2b: Extenso para 3 Estaes
(FB10, parte 3)
NETWORK
TITLE = Lincando as sadas s entradas
O #trans_1;
O #trans_2;
O #trans_3;
= #trans;
NETWORK
TITLE = Convocao Transport (Transporte)
A "INITIALIZATION";
= L 1.0;
BLD 103;
A "LB1";
= L 1.1;
BLD 103;
A "S4";
= L 1.2;
BLD 103;
A #trans;
= L 1.3;
BLD 103;
A "CLOCK_BIT_FAST";
= L 1.4;
BLD 103;
CALL #Transport (
Initial := L 1.0,
L_Barrier := L 1.1,
Acknowledge := L 1.2,
Transp_req := L 1.3,
Clock_Bit := L 1.4,
LED := "H4",
Conv_right := "K1_CONVR",
Conv_left := "K2_CONVL");
NOP 0;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 34
Soluo do Exerccio 6.2b: Extenso para 3 Estaes (OB1)
ORGANIZATION_BLOCK "CYCLE"
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE = Convocao Assembly Line (Linha de Montagem)
CALL "ASSEMBLY_LINE" , "ASSEMBLY_LINE_DB" ;
NOP 0;
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 35
Soluo do Exerccio 7.2: Testando o Bloco de Dados
(SFC 24: somente S7 400)
FUNCTION FC 72 : INT
TITLE = Exerccio 7.2: Testando o Bloco de Dados (somente S7-400)
VERSION : 0.1
VAR_INPUT
DB_NUM : WORD ;
END_VAR
VAR_TEMP
I_DB_Length : WORD ;
I_RET_VAL : INT ;
I_Write_Protect : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE = Testando DB
//somente para S7-400
CALL SFC 24 (
DB_NUMBER := #DB_NUM,
RET_VAL := #I_RET_VAL,
DB_LENGTH := #I_DB_Length,
WRITE_PROT := #I_Write_Protect);
L #I_RET_VAL;
L W#16#0;
==I ;
JC DBOK; // DB disponvel na memria de trabalho
TAK ;
L W#16#80A1;
==I ;
JC NODB; // DB no disponvel na CPU
TAK ;
L W#16#80B1;
==I ;
JC NODB; // DB disponvel na memria de trabalho
TAK ;
L W#16#80B2;
==I ;
JC DBLM; // DB somente na memria de carga
NODB: L -1;
T #RET_VAL; // DB no disponvel na CPU
BEU ;
DBLM: L 1;
T #RET_VAL; // DB somente na memria de carga
BEU ;
DBOK: L 0;
T #RET_VAL; // DB disponvel memria de trabalho
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 36
Soluo do Exerccio 7.3: Criando um DB (SFC 22)
ORGANIZATION_BLOCK OB 100
TITLE = Exerccio 7.3: Criando um DB
//Verso para S7-400
VERSION : 0.1
VAR_TEMP
OB100_EV_CLASS : BYTE ; //16#13, Evento Classe 1, entrando estado evento, evento
// logado no buffer de diagnstico
OB100_STRTUP : BYTE ; //16#81/82/83/84 Mtodo de partida (startup)
OB100_PRIORITY : BYTE ; //27 (Prioridade de 1 mais baixa)
OB100_OB_NUMBR : BYTE ; //100 (Bloco de Organizao 100, OB100)
OB100_RESERVED_1 : BYTE ; //Reservado para sistema
OB100_RESERVED_2 : BYTE ; //Reservado para sistema
OB100_STOP : WORD ; //Evento que causou stop da CPU (16#4xxx)
OB100_STRT_INFO : DWORD ; //Informao de como partiu o sistema
OB100_DATE_TIME : DATE_AND_TIME ; //Data e hora que o OB100 partiu
END_VAR
BEGIN
NETWORK
TITLE = Criando o DB10
CALL SFC 22(
LOW_LIMIT := W#16#A, // identificao com decimal 10 (DB10)
UP_LIMIT := W#16#A, // "
COUNT := W#16#28, // identificao com decimal 40 ( 40 Bytes)
RET_VAL := MW 0,
DB_NUMBER := QW 38);
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 37
Soluo do Exerccio 7.4: Copiando DB da Memria de Carga
para de Trabalho (SFC 20)
ORGANIZATION_BLOCK OB 1
TITLE = Exerccio 7.4: Copiando DB da Memria de Carga para de Trabalho
//Verso para S7-400
VERSION : 2.10
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE =
A I 28.0;
FP M 0.0;
JNB _001;
CALL SFC 20 (
SRCBLK := P#DB20.DBX 0.0 BYTE 40,
RET_VAL := QW 38,
DSTBLK := P#DB10.DBX 0.0 BYTE 40);
_001: NOP 0;
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 38
Soluo do Exerccio 7.5: Initializando um DB com "0"
(SFC 21: FILL)
FUNCTION FC 75 : BOOL
TITLE = Exerccio 7.5: Initializando um DB com "0" (somente S7-400)
VERSION : 0.1
VAR_INPUT
DB_NUM : WORD ;
INI : BYTE ;
END_VAR
VAR_TEMP
I_RET_VAL : INT ;
I_DB_Length : WORD ;
I_WRITE_PROT : BOOL ;
I_ANY : ANY ;
DB_No : WORD ;
I_INI : BYTE ;
I_RET_VAL1 : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
//Verifica se o DB est na memria de trabalho
CALL "TEST_DB" (
DB_NUMBER := #DB_NUM,
RET_VAL := #I_RET_VAL,
DB_LENGTH := #I_DB_Length,
WRITE_PROT := #I_WRITE_PROT);
L #I_RET_VAL;
L W#16#0;
==I ; // DB na memria de trabalho
AN #I_WRITE_PROT;
JC OK;
CLR ; // No possvel inicializao
= #RET_VAL; // Returna FALSE
BEU ;
OK: LAR1 P##I_ANY; // Atribui varivel temp. ANY
L B#16#10; // Identificador para ANY
T LB [AR1,P#0.0]; // para Byte-Offset 0
L B#16#2; // Identificador para tipo de dado BYTE
T LB [AR1,P#1.0]; // para Byte-Offset 1
L #I_DB_Length; // carrega comprimento do DB em bytes
T LW [AR1,P#2.0]; // para Byte-Offset 2
L #DB_NUM; // carrega nmero do DB
T LW [AR1,P#4.0]; // para Byte-Offset 4
L P#DBX 0.0; // carrega ponteiro para DBX0.0
T LD [AR1,P#6.0]; // para Byte-Offset 6
L #INI; // Byte de inicializao
T #I_INI; // na varivel temp.
CALL SFC 21 (
BVAL := #I_INI, // somente possvel com varivel temp.
RET_VAL := #I_RET_VAL,
BLK := #I_ANY);
SET ;
= #RET_VAL;
BE ;
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 39
Soluo do Exerccio 7.6: Escrevendo uma Menssagem no Buffer
de Diagnstico (SFC 52)
FUNCTION FC 76 : VOID
TITLE =
//Exerccio 7.6: Escrevendo uma Menssagem no Buffer de Diagnstico (SFC 52)
//Verso para S7-300 SM 16 Bit
VERSION : 0.0
VAR_TEMP
I_RET_VAL : INT ;
info1 : WORD ;
info2 : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L W#16#8;
T #info1;
L W#16#1;
T #info2;
CALL "WR_USMSG" (
SEND := TRUE,
EVENTN := W#16#9B0A,
INFO1 := #info1,
INFO2 := #info2,
RET_VAL := #I_RET_VAL);
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 40
Soluo do Exerccio 7.7: Bloco Contador com "Debouncing de
Contato"
FUNCTION_BLOCK FB 71
TITLE = Exerccio 7.7: Bloco Contador com "Debouncing de Contato"
//Verso para S7-300 SM 16 bit
VERSION : 0.1
VAR_INPUT
CU : BOOL ;
R : BOOL ;
PV : INT ;
PT : TIME ;
END_VAR
VAR_OUTPUT
Q : BOOL ;
CV : INT ;
END_VAR
VAR
Pulse_Counter : "CTU";
Pulse_Time : "TON";
END_VAR
VAR_TEMP
Edge_memory : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =
A #Edge_memory;
= L 1.0;
BLD 103;
A #R;
= L 1.1;
BLD 103;
A( ;
A #CU;
= L 1.2;
BLD 103;
CALL #Pulse_Time (
IN := L 1.2,
PT := #PT,
Q := #Edge_memory);
A BR;
) ;
JNB _001;
CALL #Pulse_Counter (
CU := L 1.0,
R := L 1.1,
PV := #PV,
Q := #Q,
CV := #CV);
_001: NOP 0;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 41
Soluo do Exerccio 8.1: Manipulao de Erro no FC43 (parte 1)
FUNCTION FC 81 : INT
TITLE =Exercise 8.1: Calculation of sum, mean value with error handling
// Solution for S7-300/400
VERSION : 0.0
VAR_INPUT
Measured_values : ANY ;
END_VAR
VAR_OUTPUT
Sum : REAL ;
Mean_value : REAL ;
END_VAR
VAR_TEMP
Num_Elements : WORD ;
L_Counter : WORD;
DB_No : WORD ;
Sum_1 : REAL ;
sfc_ret_val : INT ;
sfc_prgflt : DWORD ;
sfc_accflt : DWORD ;
I_BR : BOOL ; //usurio bit BR
END_VAR
BEGIN
NETWORK
TITLE =
L P##Measured_values; // Carrega ponteiro de rea em pont. "ANY"
LAR1 ; // Ponteiro de rea em AR1
L B [AR1,P#1.0]; // L identificador de tipo de dado
L 8; // Carrega identificador REAL (16#08)
==I ;
L -1; // Identificador para tipo de dado difente de REAL
JCN ERRO; // Salta se tipo de dado diferente deREAL
// Os seguintes eventos so mascarados:
// Nmero de falha de um DB Global
// Nmero de falha de um DB Instance,
// Erro de rea na leitura,
// Erro de comprimento de rea na leitura
CALL SFC 36 (
PRGFLT_SET_MASK := DW#16#40C0014,
ACCFLT_SET_MASK := DW#16#0,
RET_VAL := #sfc_ret_val,
PRGFLT_MASKED := #sfc_prgflt,
ACCFLT_MASKED := #sfc_accflt);
L W [AR1,P#2.0]; // Carrega nmero de elementos do array
T #Num_Elements; // Inicializa contador de loop
L W [AR1,P#4.0]; // Carrega nmero do DB ou 0
T #DB_No; // Se: DB_No=0 ento: OPN DB[DB_No]=NOP
OPN DB [#DB_No]; // Erro Run-time est agora mascarado
L D [AR1,P#6.0]; // Carrega ponteiro de rea para endereo atual
LAR1 ; // no AR1, erro!! Se identificador de rea "DI"
L 0.000000e+000; // 0 para Accu1 (Sum =0.0)
L #Num_Elements; // Contador para ACCU1; Sum=0 para ACCU2
BEGN: T #L_Counter; // Seta L_Counter
TAK ; // Sum no ACCU1
L D [AR1,P#0.0]; // Elemento array no ACCU1, Sum no ACCU2
+R ; // Sum no ACCU1
+AR1 P#4.0; // Incrementa AR1 de 4 unidades
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 42
Soluo do Exerccio 8.1: Manipulao de Erro no FC43 (parte 2)
L #L_Counter; // L_Counter no ACCU1, Sum no ACCU2
LOOP BEGN; // Decrementa e salta
TAK ; // Sum no ACCU1
T #Sum_1; // Sum??? para #Sum_1
// Avaliao de erro
CALL SFC 38 (
PRGFLT_QUERY := DW#16#40C0014,
ACCFLT_QUERY := DW#16#0,
RET_VAL := #sfc_ret_val,
PRGFLT_CLR := #sfc_prgflt,
ACCFLT_CLR := #sfc_accflt);
L #sfc_prgflt; // Verifica falha no DB
L DW#16#40C0000;
AD ; // Bitwise "Roundup"
L -2; // Cdigo de erro para DB no existe
JN ERRO; // salta se erro
L #sfc_prgflt; // Verifica para erro de rea ou comprimento de rea
L DW#16#14;
AD ;
L -4; // Identificador para erro de rea ou comprimento de rea
JN ERRO; // Salta se erro
//
// nenhum erro ocurrido, procede com processamento "normal"
L #Sum_1;
T #Sum; // Atribui parmetro #Sum
L #Num_Elements; // Sum no ACCU2, nmero no ACCU1
DTR ; // Inteiro no sinalizado (16 Bit) para REAL
/R ; // Valor mdio no ACCU1
T #Mean_value; // Valor mdio para #Mean_value
SET ; // Seta bit BR em 1
= #I_BR ;
L 0 ; // Todos os identificadores O.K.
T RET_VAL;
JU DMSK; // Salta para desmascaramento de erro sncrono
//
// Avaliao de erro
//
ERRO: CLR ; // Instrues no caso do erro RLO=0
= #I_BR ; // BR =0
T #RET_VAL; // Transfere cdigo de erro para RET_VAL
L L#-1; // Carrega nmero Real invlido
T #Sum;
T #Mean_value;
DMSK: NOP 0; // Demascara falha sncrona
CALL SFC 37 (
PRGFLT_RESET_MASK := DW#16#40C0014,
ACCFLT_RESET_MASK := DW#16#0,
RET_VAL := #sfc_ret_val,
PRGFLT_MASKED := #sfc_prgflt,
ACCFLT_MASKED := #sfc_accflt);
CLR ; // Obriga o first check, RLO = 0
A #I_BR ; // Copia bit BR do usurio
SAVE ; // Coloca bit BR no sistema
BEU ;
END_FUNCTION
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 43
Soluo do Exerccio 9.2: Contagem de Peas Terminadas
(FB1, parte 1)
FUNCTION_BLOCK "Station"
TITLE = Controlando uma estao de trabalho
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_INPUT
Initial : BOOL ;
Proxy_switch : BOOL ;
Acknowledge : BOOL ;
Clock_bit_q : BOOL ;
Clock_bit_s : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Transp_req : BOOL ;
END_VAR
VAR_IN_OUT
Conv_busy : BOOL ;
END_VAR
VAR
State : STRUCT
Process_piece : BOOL ;
Piece_finished : BOOL ;
Place_piece_on_conv : BOOL ;
Wait_for_piece : BOOL ;
Take_piece_from_conv : BOOL ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE = Inicializao
//Por meio da entrada "Initial" o estado bsico #Process_piece setado
A #Initial;
S #State.Process_piece;
R #State.Piece_finished;
R #State.Place_piece_on_conv;
R #State.Wait_for_piece;
R #State.Take_piece_from_conv;
R #Conv_busy;
NETWORK
TITLE = Estado: Process_piece
//Neste estado a pea bruta processada. O processamento terminado
//quando o operador reconhece o trmino da pea bruta
//por meio do boto "S1"
AN #State.Process_piece;
JC Pfin;
S #LED; //O fica ligado LED permanentemente ;
R #Transp_req;
A #Acknowledge; //quando o operador reconheces,
R #State.Process_piece; //uma mudana de estado ocorre;
R #LED;
S #State.Piece_finished;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 44
Soluo do Exerccio 9.2: Contagem de Peas Terminadas
(FB1, parte 2)
NETWORK
TITLE = Estado: Piece_finished
//Neste estado #Piece_finished o operador espera pela permisso
//para colocar a pea bruta na C. Transp.. O sinal #Conv_busy indica,
//se a C. Transp. est ocupada ou no. Quando a C. Transp. est livre, mudana de estado
//para o estado Place_piece_on_conv realizada.
Pfin: AN #State.Piece_finished;
JC PpCo;
A #Clock_bit_s; //pisca lento;
= #LED;
AN #Conv_busy; //quando a C. Transp. est livre,
S #Conv_busy; //este marcado ocupado
R #LED; //uma mudana de estado realizada;
R #State.Piece_finished;
S #State.Place_piece_on_conv;
NETWORK
TITLE = Estado: Place_piece_on_conv
PpCo: AN #State.Place_piece_on_conv;
JC Wait;
A #Clock_bit_q; //pisca rpido;
= #LED;
A #Proxy_switch; //Quando a pea colocada na correia,
S #Transp_req; //o transportador parte,
R #LED; //e o LED apagado;
A #Transp_req; //Quando a correia movida,
AN #Proxy_switch; //a pea bruta sai da frente do sensor de proximidade,
R #State.Place_piece_on_conv; //uma mudana de estado ocorre;
S #State.Wait_for_piece;
NETWORK
TITLE = Estado: Wait_for_piece
//Espera por uma nova pea bruta. A chegada de uma nova pea indicada pelo
//sensor de proximidade da correia
Wait: AN #State.Wait_for_piece;
JC TpCo;
R #LED; //o LED desligado;
A #Proxy_switch; //uma nova pea bruta chega,
R #Transp_req; //a correia parada,
R #State.Wait_for_piece; //e uma mudana de estado ocorre;
S #State.Take_piece_from_conv;
NETWORK
TITLE = Estado: Take_piece_from_conv
//Neste estado a nova pea bruta pega da correia para
//a estao de trabalho
TpCo: AN #State.Take_piece_from_conv;
JC END;
A #Clock_bit_q; //o LED pisca rapidamente
= #LED; //
AN #Proxy_switch; //quando a pea bruta pega da correia,
R #Conv_busy; //a C. Transp. fica livre,
R #LED; //o LED desligado
R #State.Take_piece_from_conv; //e uma mudana de estado ocorre;
S #State.Process_piece;
END: BEU ;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 45
Soluo do Exerccio 9.2: Contagem de Peas Terminadas
(FB2, parte 3)
FUNCTION_BLOCK "Transport"
TITLE = Controlando a Correia Transportadora
VERSION : 0.1
VAR_INPUT
Initial : BOOL ;
L_Barrier : BOOL ;
Acknowledge : BOOL ;
Transp_req : BOOL ;
Clock_Bit : BOOL ;
END_VAR
VAR_OUTPUT
LED : BOOL ;
Conv_right : BOOL ;
Conv_left : BOOL ;
Count_Value :INT ;
END_VAR
VAR
State : STRUCT
Waiting : BOOL ;
Conv_right : BOOL ;
Assembly : BOOL ;
Conv_left : BOOL ;
END_STRUCT ;
Count: "CTU"; // SFB 0 deve ser incluso
END_VAR
BEGIN
NETWORK
TITLE = Inicializao
A #Initial;
S #State.Waiting;
R #State.Conv_right;
R #State.Assembly;
R #State.Conv_left;
CALL #Count (R:= #Initial,
CV := #Count_Value);
NETWORK
TITLE = Estado: "Waiting"
//A C. Transp. espera pela pea terminada neste estado.
AN #State.Waiting;
JC RIGH;
R #Conv_right;
R #Conv_left;
R #LED;
A #Transp_req;
R #State.Waiting;
S #State.Conv_right;
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 46
Soluo do Exerccio 9.2: Contagem de Peas Terminadas
(FB2, parte 4)
NETWORK
TITLE = Estado: Conv_right
//Este estado descreve o transporte de peas terminadas na direo
//da montagem final
RIGH: AN #State.Conv_right;
JC FINM;
S #Conv_right;
A #Clock_Bit;
= #LED;
AN #L_Barrier;
R #Conv_right;
R #State.Conv_right;
S #State.Assembly;
AN #L_Barrier;
= #L_Barrier;
CALL #Count (CU := #L_Barrier,
CV := #Count_Value);
NETWORK
TITLE = Estado: Assembly
//Neste estado, a pea terminada removida e uma nova pea bruta deixada
//na correia. Aps isto, o transporte da pea bruta na direo da estao
//de processamento desocupada parte com S4.
//
FINM: AN #State.Assembly;
JC LEFT;
S #LED;
A #Acknowledge;
R #LED;
R #State.Assembly;
S #State.Conv_left;
NETWORK
TITLE = Estado: Conv_left
//Neste estado, o transporte da pea bruta para estao ocorre, que entrega
//a pea terminada.
LEFT: AN #State.Conv_left;
JC ENDE;
S #Conv_left;
A #Clock_Bit;
= #LED;
AN #Transp_req;
R #Conv_left;
R #State.Conv_left;
S #State.Waiting;
ENDE: BEU ;
END_FUNCTION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 47
Soluo do Exerccio 9.2: Contagem de Peas Terminadas
(FB10, parte 5)
FUNCTION_BLOCK FB 10
TITLE =
VERSION : 0.1
VAR
Station_1 : "Station";
Station_2 : "Station";
Station_3 : "Station";
Transport : "Transport";
Conv_busy : BOOL ;
END_VAR
VAR_TEMP
Trans_1 : BOOL ;
Trans_2 : BOOL ;
Trans_3 : BOOL ;
Trans : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Station_1
CALL #Station_1 (
Initial := "INITIALIZATION",
Proxy_Switch := "INI1",
Acknowledge := "S1",
Clock_Bit_q := "CLOCK_BIT_FAST",
Clock_Bit_s := "CLOCK_BIT_SLOW",
LED := "H1",
Transp_req := #Trans_1,
Conv_busy := #Conv_busy);
NETWORK
TITLE =Station_2
CALL #Station_2 (
Initial :="INITIALIZATION",
Proxy_Switch := "INI2",
Acknowledge := "S2",
Clock_Bit_q := "CLOCK_BIT_FAST",
Clock_Bit_s := "CLOCK_BIT_SLOW",
LED := "H2",
Transp_req := #Trans_2,
Conv_busy := #Conv_busy);
NETWORK
TITLE =Station_3
CALL #Station_3 (
Initial := "INITIALIZATION",
Proxy_Switch := "INI3",
Acknowledge := "S3",
Clock_Bit_q := "CLOCK_BIT_FAST",
Clock_Bit_s := "CLOCK_BIT_SLOW",
LED := "H3",
Transp_req := #Trans_3,
Conv_busy := #Conv_busy);
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 48
Soluo do Exerccio 9.2: Contagem de Peas Terminadas
(FB10, parte 6)
NETWORK
TITLE = Lgica: Transp_req
//Formao lgica para #Transp_req
O #Trans_1;
O #Trans_2;
O #Trans_3;
= #Trans;
NETWORK
TITLE = Transport
CALL #Transport (
Initial := "INITIALIZATION",
L_Barrier := "LB1",
Acknowledge := "S4",
Transp_req := #Trans,
Clock_Bit := "CLOCK_BIT_FAST",
LED := "H4",
Conv_right := "K1_CONVR",
Conv_left := "K2_CONVL");
L #Transport.Count_Value ;
ITD ; // Expande para DINT
DTB ; // Converte para BCD
T QW12 ;
END_FUNCTION_BLOCK
DATA_BLOCK "ASSEMBLY_LINE_DB"
VERSION : 0.1
"ASSEMBLY_LINE"
BEGIN
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
END_VAR
BEGIN
NETWORK
TITLE =
CALL FB 10 , DB 10 ;
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 49
Soluo do Exerccio 10.2: Comunicao com os SFBs GET/PUT
(parte 1)
// Transfere os blocos compilados para a S7-400
DATA_BLOCK DB 14
VERSION : 0.1
"GET"
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB 15
VERSION : 0.1
"PUT"
BEGIN
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
TITLE = S7400 escreve no S7-300 e l do S7-300
AUTHOR : PT41
FAMILY : A2_0
NAME : ST7PRO2
VERSION : 0.0
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
NDR_FLAG_14 : BOOL ;
ERROR_FLAG_14 : BOOL ;
DONE_FLAG_15 : BOOL ;
ERROR_FLAG_15 : BOOL ;
STATUS_WORD_14 : WORD ;
STATUS_WORD_15 : WORD ;
END_VAR
BEGIN
NETWORK
TITLE ="SFB_GET"
CALL SFB 14 , DB 14 (
REQ := I 28.0,
ID := W#16#1,
NDR := #NDR_FLAG_14,
ERROR := #ERROR_FLAG_14,
STATUS := #STATUS_WORD_14,
ADDR_1 := P#I 0.0 BYTE 1,
ADDR_2 := P#I 4.0 WORD 1,
RD_1 := P#Q 40.0 BYTE 1,
RD_2 := P#Q 42.0 WORD 1);
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 50
Soluo do Exerccio 10.2: Comunicao com os SFBs GET/PUT
(parte 2)
NETWORK
TITLE ="SFB_PUT"
CALL SFB 15 , DB 15 (
REQ := I 28.1,
ID := W#16#1,
DONE := #DONE_FLAG_15,
ERROR := #ERROR_FLAG_15,
STATUS := #STATUS_WORD_15,
ADDR_1 := P#Q 12.0 WORD 1,
SD_1 := P#I 30.0 WORD 1);
NETWORK
TITLE =STATUS_WORD para QW38
A( ;
O #NDR_FLAG_14;
O #ERROR_FLAG_14;
) ;
JCN _002;
L #STATUS_WORD_14;
T QW 38;
_002: NOP 0;
NETWORK
TITLE =
A( ;
O #DONE_FLAG_15;
O #ERROR_FLAG_15;
) ;
JCN _001;
L #STATUS_WORD_15;
T QW 38;
_001: NOP 0;
NETWORK
TITLE =
// Caso contrrio FFFF para QW38
A I 28.0;
BEC ;
A I 28.1;
BEC ;
L W#16#FFFF;
T QW 38;
END_ORGANIZATION_BLOCK
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 51
Soluo do Exerccio 10.3: Comunicao com os SFBs
START/STOP(parte 1)
// Transfere os blocos compilados para o S7-400
DATA_BLOCK DB 19
VERSION : 0.1
"START"
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB 20
VERSION : 0.1
"STOP"
BEGIN
END_DATA_BLOCK
ORGANIZATION_BLOCK OB 1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (evento ocorrido), Bits 4-7 = 1 (evento Classe 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart 1o. ciclo do OB 1), 3 (ciclos 2 a n do OB 1)
OB1_PRIORITY : BYTE ; //1 (Prioridade do 1 baixa)
OB1_OB_NUMBR : BYTE ; //1 (Bloco de Organizao 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reservado para o sistema
OB1_RESERVED_2 : BYTE ; // Reservado para o sistema
OB1_PREV_CYCLE : INT ; //Ciclo de tempo da varredura anterior do OB1(milisegundos)
OB1_MIN_CYCLE : INT ; //Mnimo cicle de tempo do OB1 (milisegundos)
OB1_MAX_CYCLE : INT ; //Mximo cicle de tempo do OB1 (milisegundos)
OB1_DATE_TIME : DATE_AND_TIME ; //Data e horrio da partida do OB1
DONE_FLAG_20 : BOOL ;
ERROR_FLAG_20 : BOOL ;
DONE_FLAG_19 : BOOL ;
ERROR_FLAG_19 : BOOL ;
STATUS_WORD_20 : WORD ;
STATUS_WORD_19 : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
//Entre com os caracteres "P_PROGRAM" em PI_NAME
L 'P_PR';
T MD 100;
L 'OGRA';
T MD 104;
L 'M';
T MB 108;
NETWORK
TITLE ="SFB_STOP"
CALL SFB 20 , DB 20 (
REQ := I 28.0,
DONE := #DONE_FLAG_20,
ERROR := #ERROR_FLAG_20,
STATUS := #STATUS_WORD_20);
// (Continua na prxima pgina)
Siemens Ltda
Training Center
ST-7PRO2
Solues dos Exerccios Pgina 52
Soluo do Exerccio 10.3: Comunicao com os SFBs
START/STOP(parte 2)
NETWORK
TITLE ="SFB_START"
CALL SFB 19 , DB 19 (
REQ := I 28.1,
DONE := #DONE_FLAG_19,
ERROR := #ERROR_FLAG_19,
STATUS := #STATUS_WORD_19);
NETWORK
TITLE = STATUS_WORD para QW38
A( ;
O #DONE_FLAG_19;
O #ERROR_FLAG_19;
) ;
JCN _001;
L #STATUS_WORD_19;
T QW 38;
_001: NOP 0;
NETWORK
TITLE = STATUS_WORD para QW38
A( ;
O #DONE_FLAG_20;
O #ERROR_FLAG_20;
) ;
JCN _002;
L #STATUS_WORD_20;
T QW 38;
_002: NOP 0;
NETWORK
TITLE =
A I 28.2; // Caso contrrio FFFF para QW38
BEC ;
A I 28.3;
BEC ;
L W#16#FFFF;
T QW 38;
END_ORGANIZATION_BLOCK
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 1
Contedo Pg.
Chamada de Funes com Tipos de Dados Complexos .................................................................... 2
Passando Parmetros para Tipos de Dados Complexos ................................................................... 3
Acesso Indireto para Tipos de Dados Complexos .............................................................................. 4
Passando Parmetros para Ponteiros ................................................................................................ 5
Passando Parmetros para Tipos de Parmetros .............................................................................. 6
Construo Especial para Parmetros Atuais Elementares em DBs e Constantes ........................... 7
Exerccio A.1: Avaliao do Parmetro Data e Horrio em uma FC ................................................. 8
Chamada de FB Call com Tipos de Dados Complexos .................................................................... 9
Acesso Indireto a Parmetros de Entrada/Sada ................................................................................ 10
Acesso Indireto a Parmetros de Entrada/Sada ................................................................................ 11
"Passando" Parmetros ...................................................................................................................... 12
Exerccio A.2: Avaliao de Parmetro Data e Horrio em um FB .................................................... 13
Exerccio A.3: Avaliao de Parmetros de Entrada/Sada em um FB .............................................. 14
Soluo do Exerccio A.1: Acesso a Parmetros DT em uma FC ..................................................... 15
Soluo do Exerccio A.2: Acesso a Parmetros DT em uma FB ...................................................... 16
Soluo do Exerccio A.3: Acesso a Parmetros Entrada/Sada em um FB (Parte 1) ...................... 17
Soluo do Exerccio A.3: Acesso a Parmetros Entrada/Sada em um FB (Parte 2) ...................... 18
Datum: 04.10.2007
Datei: PRO2_15P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Apndice: Acesso Indireto a Parmetros dos FCs e FBs
Regler
Regler
OB 1
Motor 1
Motor 1
FB1
Motor 2
Motor 2
FB1
Ventilinsel
Ventilinsel
FB2
FB5
FC10
. . .
. . .
. . .
Meas_Value ARRAY[1..20]
REAL
Sum REAL
Mean_value REAL
L P##Meas_Value
LAR1
L W [AR1,P#0.0]
T #DB_Num
OPN DB[DB_Num]
L D [AR1,P#2.0]
LAR1
.
.
.
.
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 2
Vista Geral Parmetros do tipo de dados complexos (ARRAY e STRUCT) oferecem um claro e
eficiente caminho para transferncia de grandes quantidades de dados
relacionados entre o chamado e o bloco chamado e que pode se entender pelo
conceito de "Programao Estruturada".
Um array ouuma estrutura pode ser passada para uma chamada de funo como
uma varivel completa.
Atribundo Para a passagem, umparmetro do mesmo tipo de dado como o parmetro
Parmetros atual a ser passado deve ser declarado na funo chamada. Como umparmetro
(tipo de dado: ARRAY, STRUCT, DATE_AND_TIME e STRING) somente pode ser
atribudo simbolicamente.
Desde que variveis do tipo de dados complexos somente podem ser configuradas
em blocos de dados ou em pilhas de dados locais, o parmetro atual deve deste
modo ser locado em um bloco de dados (DB global ou DB instance) ou na pilha de
dados local do bloco chamado.
Aps o editor STL/LAD/FBD ter verificado a compatibilidade dos tipos de dados do
parmetro atual e parmetros de bloco na passagem de parmetros de uma FC,
somente um ponteiro com o nmero do DB ou um ponteiro de rea cruzada
passado para a FC chamada para o parmetro atual.
Este POINTER configurado no L Stack do bloco chamado (rea V) atravs da
macro CALL. Este POINTER ento da maior importncia para o programador em
particular, quando o parmetro passado tem que ser acessa do indiretamente (ver
apndice).
Notas O nmero do dado local ocupado pode ser determinado pela seleo da
opo de menu View -> Block Properties.
Componentes dos ARRAYs ou STRUCTs podem tambm serem passados
para um parmetro de bloco se o parmetro de bloco e os componentes ARRAY
ou STRUCT so do mesmo tipo de dados.
Datum: 04.10.2007
Datei: PRO2_15P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Chamada de Funes com Tipos de Dados Complexos
Exemplo: Passando um ARRAY para uma Funo
FC21
A atribuio de parmetros somente possvel simbolicamente
Net wor k 1: Meas_Val decl ar ado como umar r ay na FC21
CALL FC 21
Meas_Val : =" Temper at ur e" . sequence
DB5 " Temperatura"
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 3
Passagem de Com tipos de dados complexos (DT, STRING, ARRAY, STRUCT e UDT) os
Parmetros parmetros atuais dinamizam emum bloco de dados ou na pilha de dados Locais
(L-Stack) do bloco chamado (rea V).
Uma vez que um ponteiro de rea cruzada de 32 bits no pode achar um
parmetro atual emum DB, o Editor STL/LAD/FBD armazena na pilha local (L-
Stack) do bloco chamado um "POINTERde 48 bits, que aponta para o parmetro
atual.
Durante uma chamada, um ponteiro de rea cruzada de 32 bits passado para o
"POINTER". Com a FC um acesso de parmetros de parmetros atuais ento
ocorre por meio de duplas aspas.
A configurao do "POINTER" na pilha L-Stack do bloco chamado ocorre antes do
atual chavear para o FC chamado.
Conseqncias Os parmetros do tipo de dado complexo so mais poderosos de operar do que
tipos de parmetros elementares. Parmetros de entrada do tipo de dados
complexos podemser escritos no FC chamado sem passos adicionais.
Deste modo, parmetros de sada podemser processados sem passos adicionais.
Datum: 04.10.2007
Datei: PRO2_15P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Passando Parmetros para Tipos de Dados Complexos
OB1
Funo FC10
Execuo do
Programa
CALL FC10
On := Value .Field
Off := A8.0
in On ARRAY[1..10]
INT
out Off BOOL
...
...
L #On[8]
...
= #Off
...
OB1
BLD 1
= L 20.0
L 5
T LW 21
L P#DBX0.0
T LD23
UC FC 10
P#L 21
P#A 8.0
BLD 2
L-Stack (OB1)
Field ARRAY[1..10]
INT
LB 21
...
1
2
Parm. Atuais Complexos em:
L-Stack
Bloco de Dados
No. DB: 5
ponteiro de
rea cruzada
DB5: values
configura
" POINTER"
no L-Stack
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 4
Acesso Indireto Quando passando tipos de dados complexos tais como ARRAYs e STRUCTs, a
potencialidade total somente pode ser alcanada se o parmetro passado
combinado com o acesso indireto com o bloco chamado.
Um acesso indireto para os parmetros atuais passados do tipo de dados
complexos feito em dois passos:
1. Primeiro, um ponteiro de rea cruzada para o POINTER que tenha sido
passado na pilha de dados locais determinado por meio da operao:
L P##Meas_Val no bloco de chamada.
2. Para o acesso atual para os parmetros atuais, este ento necessrio
avaliar a informao no POINTER, o qual referencia o operando corrente atual,
tal como:
L P##Meas_Val // retorna ponteiro de rea cruzada para o POINTER
LAR1 // carrega ponteiro de rea cruzada no registrador de
// endereos
L W[AR1,P#0.0] // retorna o nmero do DB do parmetro atual,se
// estiver
// armazenado em um DB, caso contrrio 0
L D[AR1,P#2.0] // retorna ponteiro de rea cruzada para o parm.
// atual
O resultado ento calculado do modo usual.
Nota Para obter acesso no exemplo acima, o programador deve ajustar os contedos do
registrador de DB e o registrador AR1 de forma que o primeiro componente do
campo transferrido seja endereado.
A instruo L Meas_Val[0] tambm significa que o bloco de dados requisitado est
aberto por meio do registrador de DBs e o registrador AR1 est ajustado para o
incio do ARRAY transferrido.
Datum: 04.10.2007
Datei: PRO2_15P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Acesso Indireto para Tipos de Dados Complexos
Address Declaration Name Type Start value Comment
0. 0 i n Meas_Val ARRAY[ 1. . 8]
*4. 0 REAL
32. 0 out Sum REAL
36. 0 out Mean_Val REAL
i n_out
0. 0 t emp DB_Num WORD
Net wor k 1: Det er mi ni ng t he DB- No. and t he st ar t addr ess
L P## Meas_Val / / Car r ega ender eo do POI NTER no ACCU1
LAR1 / / e de l car r ega no AR1;
L W[ AR1, P#0. 0] / / Det er mi na o nmer o do DB
T #DB_Num / / e car r ega na var i vel t empor r i a;
OPN DB[ DB_Num] / / Abr e DB
L D [ AR1, P#2. 0] / / Det er mi na r ea poi nt er
LAR1 / / e car r ega no AR1;
Net wor k 2: Cl cul o da soma ( sum)
L 0. 000000e+000 / / 0 no ACCU1 ( sum=0. 0)
L 8 / / Cont ador par a ACCU1; Sum=0 p/ ACCU2
BEGN: TAK / / Sump/ ACCU1, cont ador p/ ACCU2
ENT / / Cont ador p/ ACCU3
L D[ AR1, P#0. 0] / / Component es do campo no ACCU1
+R / / Sumno ACCU1, cont ador p/ ACCU2
+AR1 P#4. 0; / / I ncr ement a AR1 de 4 byt es
TAK / / Loop de cont agemno ACCU1, sumno ACCU2
LOOP BEGN; / / Decr ement a l oop cont agem, sal t a se necessr i o
T #Sum / / Tr ansf er e sumpar a #Sum
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 5
Passagem de Se um parmetro do tipo de dado "POINTER" ou"ANY" passado para uma
Parmetros FC, ento o editor STL/LAD/FBD ajusta a estrutura de dados correspondente na
pilha Local (L-Stack) do bloco chamado.
Com a FC chamada, um ponteiro de rea cruzada 32 bits que aponta para esta
estrutura de dados ("POINTER" or "ANY") ento passada para a FC chamada.
Dentro da FC chamada no possvel acessar os parmetros diretamente devido a
perda do tipo de informao que so referenciadas atravs destes ponteiros
"POINTER" ou "ANY".
A avaliao do contedo do "POINTER" ou "ANY" deve ser executada pelo usurio
com comandos elementares STL dentro da FC chamada (ver Captulo 2).
O acentamento da estrutura "POINTER" ou "ANY" na pilha Local do bloco chamado
ocorre antes da mudana para a FC chamada.
Exceo Uma exceo na regra acima o editor STL/LAD/FBD, quando em um parmetro
de bloco do tipo de dado ANYum parmetro atual adicional do tipo de dado
"ANY" ajustado o qual salvo na pilha L do bloco chamado.
Neste caso o editor STL/LAD/FBD no seta um ponteiro adicional "ANY" na pilha
Local do bloco que est chamando, mas passa diretamente para a FC um ponteiro
de rea cruzada para o ponteiro "ANY" j existente (na pilha L do bloco que
chama).
Ento, durante a execuo, este ponteiro "ANY" pode ser manipulado pela
chamada do bloco e ento implementa uma atribuio "indireta" da FC com
parmetros atuais.
Datum: 04.10.2007
Datei: PRO2_15P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
BLD 1
= L 20.0
L W#16#1005
T LW 21
L 10
T LW 23
L 0
T LW25
L P#I0.0
T LD27
L P#DBX0.0
T LD23
AC FC 10
P#L 21
P#Q 8.0
BLD 2
Passando Parmetros para Ponteiros
OB1
Funo FC10
Execuo do
Programa
CALL FC10
On := P#I0.0 10 INT
Off := Q8.0
in On ANY
out Off BOOL
...
...
L P##On
...
= #Off
...
OB1
L Stack (OB1)
LB 21
...
1
2
Parmetros " POINTER"
e " ANY"
10H Tipo dado: 05
Fator repetio: 10
No. DB: 0
Ponteiro de
rea cruzada: P#I0.0
...
Ajuste do
ponteiro " ANY"
na L Stack
(pilha Local)
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 6
Passagem de A passagem de parmetros do tipo: TIMER, COUNTER e BLOCK_xso
Parmetros fceis. Neste caso, em vez de um ponteiro de rea cruzada de 32 bits, o nmero do
corrente TIMER ou COUNTER ou BLOCK_xs simplismente passado para a FC
chamada.
Datum: 04.10.2007
Datei: PRO2_15P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Passando Parmetros para Tipos de Parmetros
OB1
Funo FC10
Execuo do
Programa
CALL FC10
On := DB35
Off := A8.0
in On BLOCK_DB
out Off BOOL
...
...
OPN #ON
...
= #Off
...
BLD 1
= L 20.0
AC FC 10
P#4.3
P#A 8.0
BLD 2
Parmetros de Bloco:
TIMER, COUNTER
BLOCK_x
OB1
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 7
Passem de Se um parmetro de entrada, sada ou entrada/sada atribudo com uma
Parmetros constante ou com um parmetro, que est guardado em um DB, ento o editor
STL/LAD/FBD primeiro de tudo reserva a memria necessria na pilha L do bloco
que chama e ento copia (com o parmetro de entrada e entrada/sada) o valor do
parmetro atual na pilha local.
Para o parmetro de sada, uma reserva de rea de memria na pilha local ocorre
mas sem inicializao.
Somente depois disto, ocorre a troca do atual na FC chamada, deste modo o editor
STL/LAD/FBD passa em cada caso um ponteiro de rea cruzada para a rea de
memria na pilha local da FC chamada.
Aps um salto para trs no bloco chamado, o resultado (com parmetros de sada
e entrada/sada) ser copiado nos parmetros atuais.
Conseqncias Este mecanismo mostra que dentro de uma FC chamada, parmetros de entrada
somente podem ter verificao de estado e parmetros de sada somente podem
ser escritos.
Se um parmetro de entrada escrito, ento atravs do valor correspondente
armazenado na pilha local, aps o processamento da FC nenhum dado
transferido para os parmetros atuais.
Do mesmo modo, parmetros de sada somente podem ser escritos e no lidos.
Com a leitura de um parmetro de sada um valor indefinido lido da pilha local
devido a perda da inicializao.
Parmetros in/out causam estes problemas. Eles so atribudos com os valores de
parmetros atuais antes da chamada bem como aps a chamada.
Importante Parmetros de sada devemse escritos em uma FC chamada (atravs de
instrues como Se R), pelo contrrio um valor indefinido da pilha local ser
copiado no parmetro atual.
Se voc no pode se certificar que parmetros de sada sero escritos, voc ter
de usar parmetros in/out em seu lugar.
Datum: 04.10.2007
Datei: PRO2_15P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
in On_1 BOOL
in On_2 BOOL
out Off BOOl
...
CALL FC10
On_1 := I0.1
On_2 := DB5.DBX2.2
Off := DB6.DBX2.6
BLD 1
= L 20.0
OPN DB 5
A DBX 2.2
= L 20.1
AC FC 10
P#I 0.1
P#L 20.1
P#L 20.2
A L 20.2
OPN DB 5
= DBX 2.6
BLD 2
Construo Especial para Parmetros Atuais Elementares em DBs
e Constantes
OB1 Funo FC10
Execuo do
Programa
...
A #On_1
A #On_2
= #Off
...
OB1
L Stack (OB1)
DB5
LB 20
.. .. .. .. .. 0 1 ..
...
...
1
2
3
DBB2
Parm. elementares atuais em:
Constantes
Blocos de dados
0 0 0 1 0 1 0 0
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 8
Vista Geral O seguinte exerccio dever demonstrar como voc pode acessar indiretamente
parmetros de entrada, sada e transientes dos tipos de dados complexos dentro
de uma funo.
Voc deve usar a mesma tecnologia se voc tiver que acessar indiretamente outros
tipos de dados complexos, tais como ARRAYs, STRUCTs ou STRINGs.
Definio da Tarefa Criar uma FC51com as seguintes propriedades:
A FC51 tem um parmetro de entrada #IN_DT do tipo de dado:
DATE_AND_TIME
Nestes 3 parmetros de sada #Sec, #Min e #Hour, a FC51 retorna
componentes segundos, minutos e horas do parmetro DT passado a ele.
Execuo 1. Criar uma FC51 com as propriedades necessrias.
2. Chamar a FC51no OB1. Alimentar o parmetro de bloco #IN_DT com a
varivel OB1_DATE_TIME das informaes de partida do OB1.
3. Carregar os blocos para a CPU e testar o programa.
Datum: 04.10.2007
Datei: PRO2_15P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Exerccio A.1: Avaliao do Parmetro Data e Horrio em uma FC
FC51
EN ENO
IN_DT Sec QB13
Min QB12
OB1_DATE_TIME
Hour
QB8
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 9
Tipos de Dados Do mesmo modo que com as funes, endereamento de tipos de dados
Complexos complexos (ARRAY, STRUCT, DATE_AND_TIME e STRING) podem ser passados
completamente para um bloco de funes chamado.
Para a passagem, um parmetro do mesmo tipo de dado como um parmetro atual
a ser passado deve ser declarado no bloco de funes chamado.
A atribuio como um parmetro somente possvel simbolicamente.
Parmetros de Para parmetros de entrada e sada do tipo de dados complexos, reas
Entrada e Sada correspondentes para os valores dos parmetros atuais so acentadas no DB
instance. Quando chamando o FP, os parmetros atuais dos parmetros de
entrada so ento copiados no DB instance usando a SFC 20 (BLKMOV)
("passando pelo valor"), antes o atual chaveia para a seo de instrues do FP.
Do mesmo modo, os valores dos parmetros de sada so copiados do DB
instance de volta para os parmetros atuais aps o FP ter sido processado.
Como um resultado, uma quantidade no significante de cpias (tempo do
processamento) pode ocorrer na atribuio dos parmetros de entrada e sada.
Esta quantidade de cpias so baipassadas com parmetros in/out.
Parmetros In/out Nenhuma "passagem pelo valor" ocorre com parmetros in/out do tipo de dados
complexos. Seis bites so meramente reservados para cada parmetro in/out na
rea de dados instance. Um POINTER para os parmetros atuais inserido nestes
bites ("passagem por referncia").
Notas Parmetros de entrada e sada do tipo de dados complexos podemser inicializados
na seo de declaraes de um FP, mas no como parmetros in/out.
Parmetros de entrada e sada do tipo de dados complexos no tem que ser
atribudos na chamada de um FB, parmetros in/out tem que ser atribudos.
O acesso a memria ou registro indireto a parmetros entrada/sada ou parmetros
in/out do tipo de dados complexos diferente dos parmetros elementares.
Datum: 04.10.2007
Datei: PRO2_15P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Chamada de FB Call com Tipos de Dados Complexos
Exemplo: Passando ARRAYs para um Bloco de Funes
FB17
Atribundo parmetros complexos
somente possvel simbolicamente
Net wor k 1:
CALL FB 17, DB 30
Meas_1 : =" Temper at ur e" . Cyl i nder
Sum_1 : =MD20
Sum_2 : =MD30
Meas_2 : =" Temper at ur e" . Shaf t
DB2 " Temperature"
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 10
Acesso Indireto Quando passando tipos de dados complexos tais como ARRAYs e STRUCTs, a
potncia total somente pode ser explorada se o parmetro passado combinado
com o acesso indireto dentro do bloco chamado.
Um acesso indireto ao parmetro atual passado feito em dois passos:
1. Primeiro, por meio da operao:
LAR1 P##Meas_1 // retorna ponteiro de rea cruzada p/parmetro
// sem offset de endereo
um ponteiro de rea cruzada para os parmetros no DB instance carregado
no AR1.
O ponteiro determinado deste modo contem o identificador de rea ID e o
mesmo endereo byte.bit que tambm mostrado pelo editor durante a
declarao de parmetros na primeira coluna da parte de declaraes.
No caso de um multi-instance, este no corresponde ao endereo atual do
parmetro de entrada/sadano DB instance. Este tambm necessrio para
somar o offset de endereo do AR2, o qual identifica o incio da rea de dados
instance no caso multi-instance, para o ponteiro no AR1.
TAR2 // Carrega offset de endereo no ACCU1
+AR1 // Soma offset de endereo p/ AR1;
2. Aps isto, o acesso atual aos parmetros entrada/sada podem ocorrer.
O DB instance no deve ser aberto especialmente, como ele j tinha sido
aberto pela macro CALL na chamada do FB.
L D[AR1,P#0.0] // Carrega primeiro componente do Meas_1etc.
Nota Acesso indireto aos parmetros entrada/sada e in/out dos tipos de dados
elementares ou para as variveis estticas feito do mesmo modo, como neste
caso tambm valores dos operandos so guardados no DB instance.
Datum: 04.10.2007
Datei: PRO2_15P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Acesso Indireto a Parmetros de Entrada/Sada
Address Declaration Name Type Start value Comment
0. 0 i n Meas_1 ARRAY[ 1. . 10]
*4. 0 REAL
40. 0 out Sum_1 REAL 0. 000000e+000
44. 0 out Sum_2 REAL 0. 000000e+000
48. 0 i n_out Meas_2 ARRAY[ 1. . 15]
*4. 0 i n_out REAL
54. 0 st at DB_Num I NT 0
Net wor k 1: Det er mi nando o ender eo de i n ci o do Meas_1
LAR1 P##Meas_1 / / Car r ega pont ei r o de r ea cr uzada p/ par met r o sem
/ / of f set de ender eo ( mul t i - i nst ances) no AR1
TAR2 / / Car r ega of f set de ender eo no ACCU1
+AR1 / / Soma of f set de ender eo no AR1;
/ / AR1 agor a apont a p/ par met r os no DB i nst ance
/ / DB i nst ance j est aber t o
Net wor k 2: Acesso par a Meas_1
L 0. 000000e+000 / / 0 no ACCU1 ( Soma =0. 0)
L 10 / / Cont ador par a ACCU1; Sum=0 p/ ACCU2
BEGN: TAK / / Sumno ACCU1, cont ador no ACCU2
ENT / / Cont ador p/ ACCU3
L D[ AR1, P#0. 0] / / Campo de component e no ACCU1
+R / / Soma no ACCU1, cont ador p/ ACCU2
+AR1 P#4. 0; / / I ncr ement a AR1 em4 byt es
TAK / / Loop de cont agemno ACCU1, soma no ACCU2
LOOP BEGN; / / Decr ement a l oop de cont ageme sal t a se necessr i o
T #Sum_1 / / Tr ansf er e soma par a #Sum_1
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 11
Acesso Indireto O acesso indireto aos parmetros in/out do tipo de dados complexos diferem em
estrutura comparados ao acesso aos parmetros de entrada e sada.
Com parmetros in/out do tipo de dados complexos, o valor no copiado, mas
somente um POINTER para o parmetro in/out no DB instance.
O acesso atual ocorre em trs passos:
1. Primeiro, por meio da operao:
LAR1 P##Meas_2 // retorna o ponteiro de rea cruzada p/ POINTER
um ponteiro de rea cruzada para o POINTER transferido carregado no
registrador AR1. Como no caso anterior, o endereo byte.bit do ponteiro no
AR1no identifica o endereo atual do POINTER no DB instance.
No caso do multi-instance o offset do AR2 deve ainda ser somado ao ponteiro
do registrador AR1:
TAR2 // Carrega endereo no ACCU1, soma ao AR1;
+AR1 // AR1 agora aponta p/ POINTER no DB instance;
2. No prximo passo a informao no POINTER avaliada, se necessrio o DB,
no qual o parmetro atual est localizado, aberto e um ponteiro de rea
cruzada para os operandos atuais carregado no registrador AR1:
L W [AR1,P#0.0] // Carrega nmero do DB do POINTER no
// ACCU1
T #DB_Num // Transfere nmero do DB (ou 0) na varivel
OPN DB [#DB_Num] // Abre DB
L D [AR1,P#2.0] // Carrega ponteiro de rea cruzada p/ parmetro
LAR1 // Carrega ponteiro no AR1, AR1 aponta p/parm.
3. Aps isto, o acesso atual para o parmetro atual pode ocorrer:
L D[AR1,P#0.0] // Carrega primeiro componente do Meas_2 etc.
Datum: 04.10.2007
Datei: PRO2_15P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Acesso Indireto a Parmetros de Entrada/Sada
Address Declaration Name Type Start value Comment
0. 0 i n Meas_1 ARRAY[ 1. . 10]
*4. 0 REAL
40. 0 out Sum_1 REAL 0. 000000e+000
44. 0 out Sum_2 REAL 0. 000000e+000
48. 0 i n_out Meas_2 ARRAY[ 1. . 15]
*4. 0 i n_out REAL
54. 0 st at DB_Num I NT 0
Net wor k 3: Det er mi nando o ender eo i ni ci al do Meas_2
LAR1 P##Messung_2 / / Car r ega pont ei r o de r ea cr uzada p/ POI NTER sem
TAR2 / / Car r ega of f set de ender eo no ACCU1, soma ao AR1;
+AR1 / / AR1 agor a apont a p/ POI NTER no DB i nst ance
L W[ AR1, P#0. 0] / / Car r ega nmer o do DB do POI NTER no ACCU1
T #DB_Num / / Tr ansf er e nmer o do DB( ou 0) na var i vel est t i ca
OPN DB [ #DB_Num] / / Abr e DB
L D [ AR1, P#2. 0] / / Car r ega pont ei r o de r ea cr uzada p/ par met r o
LAR1 / / Car r ega pont ei r o no AR1, AR1 apont a p/ par met r o
Net wor k 4: Access t o Meas_2
L 0. 000000e+000 / / 0 p/ ACCU1 ( Soma =0. 0)
L 15 / / Cont ador p/ ACCU1; Soma=0 p/ ACCU2
BEGN: TAK / / Soma no ACCU1, cont ador no ACCU2
ENT / / Cont ador p/ ACCU3
L D[ AR1, P#0. 0] / / Campo de component es no ACCU1
+R / / Soma no ACCU1, cont ador p/ ACCU2
. . . / / . . .
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 12
Vista Geral A "passagem" de parmetros de bloco uma forma especial de acesso ou
atribuio de parmetros de bloco. "Passagem" significa que o parmetro formal do
bloco chamado recebe o parmetro atual do bloco chamado.
Restries com Como uma regra geral, o parmetro atual deve ser do mesmo tipo de dado
Relao aos Tipos que o parmetro formal. Mais adiante, parmetros de entrada do bloco
de Parmetros chamado somente podem ser ajustados em um parmetro de entrada do bloco
chamado e parmetros de sada somente em parmetros de sada.
Um parmetro in/out do bloco chamado pode em princpio ser ajustado como
parmetros de entrada, sada e in/out do bloco chamado.
Restries com Com relao aos tipos de dados, existem restries dependendo das
Relao aos Tipos diferentes armazenagens dos parmetros do bloco na chamada de FC ou
de Dados FB. Parmetros de blocos do tipo de dado elementar podem ser passados sem
restries. Tipos de dados complexos de parmetros de entrada e sada podem
ento ser passados se o bloco chamado um FB.
Parmetros de blocos com os tipos de par6ametros: formato TIMER, COUNTER e
BLOCK_x ento somente podemser passados de um parmetro de entrada para
um parmetro de entrada, se o bloco chamado um FB.
Nota A "passagem" dos tipos de parmetros: TIMER, COUNTER e BLOCK_x podemser
implementados emFCs com a ajuda de endereamento indireto. O nmero
desejado de TIMER, COUNTER ou BLOCK_x , por exemplo, passado como um
parmetro do tipo de dado WORD do bloco que chama para o bloco chamado.
Com a ltima chamada de bloco, este parmetro pode ento ser transferido para
uma varivel temporria e atravs desta varivel o respectivo TIMER, COUNTER
ou BLOCK_x pode ento ser processado.
Datum: 04.10.2007
Datei: PRO2_15P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
" Passando" Parmetros
Tamanho do aninhamento:
S7-300: mx. 8 S7-400: mx. 16
. . .
A passagem depende do tipo de bloco, dado e parmetro:
Chamada FC chama FC FB chama FC FC chama FB FB chama FB
Tipo de dado P E C P E C P E C P E C
Input ->Input x - - x x - x - x x x x
Output ->Output x - - x x - x - - x x -
in/out ->Input x - - x - - x - - x - -
in/out ->Output x - - x - - x - - x - -
in/out ->in/out x - - x - - x - - x - -
E: Tipo de dado elementar
C: Tipo de dado complexo
P: Tipo parmetro (Timer, Counter, Block_x)
FBs FBs FCs
OB
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 13
Vista Geral O exerccio seguinte deve demonstrar como voc pode acessar indiretamente um
parmetro de entrada ou sada do tipo de dado complexo dentro de um bloco de
funes com capacidade multi-instance.
Voc deve usar a mesma tecnologia se voc6e tem que acessar indiretamente
outros tipos de dados complexos, tais como ARRAYs, STRUCTs ou STRINGs.
Definio da Tarefa Criar umFB63com as seguintes propriedades:
O FB63tem um parmetro de entrada #IN_DT do tipo de dado:
DATE_AND_TIME
Em seus 3 parmetros de sada #Sec, #Min e #Hour, o FB63retorna os
componentes segundos, minutos e horas do parmetro DT passado a ele.
Execuo 1. Criar umFB63com as propriedades requeridas.
2. Para testar se o FB63gerado tambm est realmente com capacidade multi-
instances chamar um instance do FB63 em um FB de alto nvel.
Criar um FB83 de alto nvel. Primeiro, declare um parmetro de entrada
#IN_DT do tipo DT no FB83. Ento declare uma varivel esttica #DUMMY
do tipo ARRAY[1..100] OF INT e um instance do FB63com o nome #FB63_DT.
3. Chame o instance #FB63_DT dentro do FB83e alimente-o com o parmetro
de entrada #IN_DT deste instance com o parmetro de entrada #IN_DT do FB83.
Alimente o parmetro de entrada do instance FB63_DT com os bytes de sada
QB8, QB12 e QB13.
4. Chame o FB83 com o instance DB83 no OB1. Atribua o parmetro de entrada
#IN_DT com a varivel OB1_DATE_TIME das informaes iniciais do OB1.
5. Carregue os blocos para a CPU e teste seu programa.
Datum: 04.10.2007
Datei: PRO2_15P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Exerccio A.2: Avaliao de Parmetro Data e Horrio em um FB
FB63
EN ENO
IN_DT Sec QB13
Min QB12
OB1_DATE_TIME
Hour
QB8
FB83
IN_DT
0.0 in IN_DT DATE_AND_TIME DT#90-1-1-0:0:0.0
out
in_out
8.0 stat DUMMY ARRAY[1..100]
*2.0 stat INT
208.0 stat FB63_DT FB63
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 14
Vista Geral O exerccio seguinte deve demonstrar como voc pode acessar indiretamente um
parmetro in/out do tipo de dado complexo dentro de um bloco de funes com
capacidade multi-instance.
You must use the same technology if you have to indirectly access other complex
data types, such as ARRAYs, STRUCTs or STRINGs.
Definio de Tarefa Criar umFB64com as seguintes propriedades:
O FB64tem um parmetro de in/out #IO_DT do tipo de dado DT.
Nos 3 parmetros de sada #Sec, #Min e #Hour, o FB64 retorna os
componentes segundos, minutos e horas do parmetro DT passado a ele.
Execuo 1. Criar umFB64com as propriedades requisitadas.
2. Criar umFB84. Primeiro, declare um parmetro de entrada #IN_DT do tipo DT
no FB84. Ento declare uma varivel esttica #DUMMY do tipo ARRAY[1..100] OF
INT e um instance do FB64com o nome #FB64_DT.
3. Chame o instance #FB64_DT dentro do FB84e atribua o parmetro in/out
#IO_DT deste instance com o parmetro de entrada #IN_DT do FB84. Note que a
passagem direta do parmetro de entrada para um parmetro in/out no est
permitido. Qual soluo recomendada.
Alimente o parmetro de sada do instance FB64_DT com os bytes de sada
QB8, QB12e QB13, como na tarefa anterior.
4. Chame o FB84com instance DB84 no OB1. Atribua o parmetro de entrada
#IN_DT do FB84com a varivel OB1_DATE_TIME das informaes iniciais do
OB1.
5. Carregue os blocos para a CPU e teste o programa.
Datum: 04.10.2007
Datei: PRO2_15P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automao
Trainings Center
Exerccio A.3: Avaliao de Parmetros de Entrada/Sada em um
FB
FB64
EN ENO
IO_DT Sec QB13
Min QB12
OB1_DATE_TIME
Hour
QB8
FB84
IN_DT
0.0 in IN_DT DATE_AND_TIME DT#90-1-1-0:0:0.0
out
in_out
8.0 stat DUMMY ARRAY[1..100]
*2.0 stat INT
208.0 stat FB64_DT FB64
...
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 15
Soluo do Exerccio A.1: Acesso aos parmetros DT em uma FC
FUNCTION FC 51 : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
IN_DT : DATE_AND_TIME ;
END_VAR
VAR_OUTPUT
Sec : BYTE ;
Min : BYTE ;
Hour : BYTE ;
END_VAR
VAR_TEMP
DB_Num: WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
// No caso de um parmetro de entrada, sada ou in/out do tipo de dado complexo, um
// ponteiro de rea cruzada para uma varivel POINTER (6 bytes), que ajustado na pilha
// local do bloco que chama pela macro CALL, transferido p/ a funo chamada pela
// passagemde parmetro. O contedo da varivel POINTER aponta para o operando atual.
// Para acesso indireto, um ponteiro de rea cruzada para este POINTER criado primeiro.
// No prximo estgio, o contedo da varivel POINTER lida e o acesso feito para o
// operando atual atravs desta informao.
//
L P##IN_DT; // Carrega ponteiro de rea cruzada p/ POINTER no ACCU1
LAR1 ; // Carrega ponteiro no AR1, AR1 agora aponta p/ POINTER
L W [AR1,P#0.0]; // Carrega nmero do DB do POINTER no ACCU1
T #DB_Num; // Transfer nmero do DB (ou0) na varivel temporria
OPN DB [#DB_Num]; // Abre DB
L D [AR1,P#2.0]; // Carrega ponteiro de rea cruzada p/ varivel DT do
// POINTER
LAR1 ; // Carrega ponteiro no AR1, AR1 agora aponta p/varivel DT
L B [AR1,P#3.0]; // Carrega componente horas da varivel DT
T #Hour; // Transfere para parmetro de sada #Hour
L B [AR1,P#4.0]; // Carrega componente minutos da varivel DT
T #Min; // Transfere para parmetro de sada #Min
L B [AR1,P#5.0]; // Carrega componente segundos da varivel DT
T #Sec; // Transfere para parmetro de sada #Sec
SET ;
SAVE ; // Seta o bit BR em1
END_FUNCTION
ORGANIZATION_BLOCK OB1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_TEMP: ARRAY[1..20] OF BYTE; // Informaes iniciais do OB1
BEGIN
NETWORK
TITLE =
CALL FC 51 (
IN_DT :=#OB1_DATE_TIME,
Sec :=QB 13,
Min :=QB 12,
Hour :=QB 8);
END_ORGANIZATION_BLOCK
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 16
Soluo do Exerccio A.2: Acesso a Parmetros DT em um FB
FUNCTION_BLOCK FB 63
TITLE =
VERSION : 0.1
VAR_INPUT
IN_DT : DATE_AND_TIME ;
END_VAR
VAR_OUTPUT
Sec : BYTE ;
Min : BYTE ;
Hour : BYTE ;
END_VAR
BEGIN
NETWORK
TITLE =
// No caso de uma entrada, o parmetro de sada do tipo de dado complexo, o valor
// da varivel complexa copiada ou copiada de volta no DB instance.
// Para acesso indireto, um ponteiro de rea cruzada incluindo o offset de endereo AR2,
// o qual ocorre no caso de um multi-instance, criado primeiro.
//
LAR1 P##IN_DT; // Carrega ponteiro de rea cruzada p/ #IN_DT sem o
// offset de endereo adicional no AR2
TAR2 ; // Transfere offset de endereo no ACCU1-offset endereo no
// AR2
// feito pela macro CALL
+AR1 ; // Carrega contedo do ACCU1 (offset endereo AR2) p/AR1,
// AR1 agora aponta p/ #IN_DT
L B [AR1,P#3.0]; // Carrega componente horas da varivel DT
T #Hour; // Transfere p/ parmetro de sada #Hour
L B [AR1,P#4.0]; // Carrega componente minutos da varivel DT
T #Min; // Transfere p/ parmetro de sada #Min
L B [AR1,P#5.0]; // Carrega componente segundos da varivel DT
T #Sec; // Transfere p/ parmetro de sada #Sec
SET ;
SAVE ; // Seta o bit BR em1
END_FUNCTION_BLOCK
FUNCTION_BLOCK FB 83
TITLE =
VERSION : 0.1
VAR_INPUT
IN_DT : DATE_AND_TIME ;
END_VAR
VAR
DUMMY : ARRAY [1 .. 100 ] OF INT ;
FB63_DT : FB 63;
END_VAR
BEGIN
NETWORK
TITLE =
CALL #FB63_DT (
IN_DT :=#IN_DT,
Sec :=QB 13,
Min :=QB 12,
Hour :=QB 8);
END_FUNCTION_BLOCK
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 17
Soluo do Exerccio A.3: Acesso a Parmetros Entrada/Sada em um FB (Parte 1)
FUNCTION_BLOCK FB 64
TITLE =
VERSION : 0.1
VAR_OUTPUT
Sec : BYTE ;
Min : BYTE ;
Hour : BYTE ;
END_VAR
VAR_IN_OUT
IO_DT : DATE_AND_TIME ;
END_VAR
VAR_TEMP
DB_Num: WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
// No caso de um parmetro in/out do tipo de dado complexo, o valor da varivel complexa
// no copiada no DB instance, mas ao contrrio um POINTER para o operando atual
// armazenado no DB instance. Para acesso indireto, um ponteiro de rea cruzada
// para este POINTER, incluindo o offset de endereo AR2, o qual ocorre no caso de um
// multi-instance, criado primeiro.
// Aps isto, o acesso feito para os operandos atuais no modo usual.
LAR1 P##IO_DT; // Carrega ponteiro de rea cruzada para o POINTER
// sem offset de endereo
TAR2 ; // Transfere o offset de endereo do AR2 no ACCU1
+AR1 ; // Soma o offset de endereo para AR1, AR1 agora aponta para
// o POINTER
L W [AR1,P#0.0]; // Carrega nmero do DB do POINTER no ACCU1
T #DB_Num; // Transfere o nmero do DB (ou 0) em varivel temporria
OPN DB [#DB_Num]; // Abre o DB
L D [AR1,P#2.0]; // Carrega ponteiro de rea cruzada para a varivel DT //
doPOINTER
LAR1 ; // Carrega ponteiro no AR1, AR1 aponta para a varivel DT
T #Hour; // Transfere para o parmetro de sada #Hour
L B [AR1,P#4.0]; // Carrega componente minutos da varivel DT
T #Min; // Transfere para o parmetro de sada #Min
L B [AR1,P#5.0]; // Carrega componente segundos da varivel DT
T #Sec; // Transfere para o parmetro de sada #Sec
SET ;
SAVE ; // Seta o bit BR em 1
END_FUNCTION_BLOCK
Siemens Ltda.
Training Center
ST-7PRO2
Anexo: Acesso Indireto a Parmetros Pgina 18
Soluo do Exerccio A.3: Acesso a Parmetros Entrada/Sada em um FB (Parte 2)
FUNCTION_BLOCK FB 84
TITLE =
VERSION : 0.1
VAR_INPUT
IN_DT : DATE_AND_TIME ;
END_VAR
VAR
DUMMY : ARRAY [1 .. 100 ] OF INT ;
FB64_DT : FB 64;
END_VAR
VAR_TEMP
DT_TEMP : DATE_AND_TIME ;
I_Ret_VAL : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
CALL SFC 20 (
SRCBLK :=#IN_DT,
RET_VAL :=#I_Ret_VAL,
DSTBLK :=#DT_TEMP);
CALL #FB64_DT (
Sec :=AB 13,
Min :=AB 12,
Hour :=AB 8,
IO_DT :=#DT_TEMP);
END_FUNCTION_BLOCK
ORGANIZATION_BLOCK OB1
TITLE =
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 =1 (Coming event), Bits 4-7 =1 (Event class 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart scan1of OB 1), 3 (Scan 2-n of OB 1)
OB1_PRIORITY : BYTE ; //1 (Priority of 1is lowest)
OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
OB1_RESERVED_1 : BYTE ; //Reserved for system
OB1_RESERVED_2 : BYTE ; //Reserved for system
OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1scan (milliseconds)
OB1_MIN_CYCLE : INT ; //Minimumcycle time of OB1 (milliseconds)
OB1_MAX_CYCLE : INT ; //Maximumcycle time of OB1 (milliseconds)
OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1started
END_VAR
BEGIN
NETWORK
TITLE =
CALL FB 84 , DB 84 (
IN_DT :=#OB1_DATE_TIME);
END_ORGANIZATION_BLOCK

Potrebbero piacerti anche