2. Panorâmica dos Blocos de Organização
Startup
OB 100
OB 101
OB 102
Execução
cíclica de
programa
OB 1
Execução
periódica
de programa
Execução do
programa dirigida
por eventos
OB 20...23
(interrupções por delay
de tempo)
OB 10...17
(interrupções de
Hora-do-dia)
OB 30...38
(interrupção cíclica)
OB 80...87
OB 40...47
(interrupções de Hardware)
OB 121, 122
OBs de Interrupção
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.2
(erros assíncronos)
(erros síncronos)
OBs de Erro
3. OBs de Startup
Restart (manual)
• apenas para o S7-400
(de acordo com a opção no HW Config):
STOP -> RUN + WRST
Restart Completo
automático
manual
S7-300 / 400
S7-300
S7-400
Execução do OB 101
Power ON
STOP->RUN
STOP->RUN
+ CRST
Processa o ciclo de scan residual
Apaga as imagens de processo,
áreas de M, T, C não retentivas
Apaga PIQ (parametrizável)
Execução do OB 100
Tempo de monitoração
de restart excedido?
não
Habilita saídas
Habilita saídas
C
I
C
L
O
Lê a PII
C
I
C
L
O
Executa OB1
Transfere PIQ
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.3
Lê a PII
Executa OB1
Transfere PIQ
sim
STOP
4. Interrompendo o Programa Cíclico
Por ex. OB82 (Prio.26) =
Tratamento de Erro.
Executado no caso de
Quebra de fio na entrada
analógica PIW 352
Por ex. OB20 (Prio.3) =
Interrupção por delay
de tempo.
A execução começa
3.25s após uma peça
ser detectada.
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Por ex. OB10 (Prio.2) =
Interrupção de Hora-dodia. Executada a cada
minuto desde as 9:30
OB1
é
executado
continuamente ...
... até ser interrompido por
outro OB
OB No.
OB 1
OB 10
OB 20
OB 35
OB 40
OB 82
Data:
Arquivo:
09/03/14
S7-Service.4
Tipo do OB
Programa Cíclico
Int. de Hora-do-dia
Int. por delay de tempo
Interrupção Cíclica
Interrupção de Hardware
Tratamento de Erros
Priorid.
1
2
3
12
16
26 / 28
5. Interrupção de Hora-do-dia (OB10)
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.5
7. Interrupção de Hardware (OB40)
HW Config:
Propriedades do
módulo de entrada analógica
Módulo de entrada analógica
+27648
0
Limite
superior
Limite
inferior
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.7
Propriedades
da CPU
8. Interrupção por Delay de Tempo (OB20)
I 0.0
M0.1
(P)
EN
20
OB_NR
T#500ms
DTIME
W#16#01
SFC 32
(SRT_DINT)
SIGN
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
M2.0
RET_VAL
Data:
Arquivo:
09/03/14
S7-Service.8
( )
ENO
MW10
9. Interrupção de Diagnóstico, Int. de Erro Assíncrono (OB81...87)
HW Config:
Propriedades do
módulo de entrada analógica
Módulo de entrada analógica
Quebra
de fio
+27648
0
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.9
Propriedades
da CPU
10. OBs de Erros Assíncronos
Tipo de erro
Exemplo
OB
Prioridade
Erro de Tempo
Excedido o máximo tempo de ciclo de scan
OB80
26
Falha de Alimentação
Falha de bateria de backup
OB81
Int. de Diagnóstico
Quebra de fio na entrada de um módulo
com funções de diagnóstico
OB82
Interrupção de
Inserção / remoção
Remoção de um módulo de sinal durante a
operação de um S7-400
OB83
Falha de hardware da
CPU
Nível de sinal incorreto na interface MPI
OB84
Erro na execução
do programa
Erro na atualização da imagem de processo
(módulo com defeito)
OB85
Falha de Rack
Falha em uma expansão ou em um escravo DP
OB86
Erro de Comunicação
Erro na leitura de um frame de mensagem
OB87
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.10
26 / 28
11. Erros Síncronos
Tipo de erro
Exemplo
OB
Erro de programação
Um bloco que não está presente na
CPU é chamado no programa
OB121
Erro de acesso
Um módulo defeituoso ou não
presente está endereçado no
programa (por ex. acesso direto a
um módulo de I/O não existente)
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.11
Prioridade
A mesma do
OB interrompido
devido ao erro
OB122
12. Funções de Sistema para Controlar os OBs de Interrupção
Bloco de Organização
Prioridade
no S7-300
SFCs para
controlar os OBs
Observações
Alternativo ao HW Config
Função
Número
Int. de Hora-do-dia
OB 10 ... 17
2
SFC 28 ... 31
Int. Cíclica
OB 30 ... 38
12
nenhum
Int. delay de tempo
OB 20 ... 23
3
SFC32 ... 34
Int. de Hardware
OB 40 ... 47
16
nenhum
Int. de diagnóstico
OB 81 ... 87
26
nenhum
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.12
Obrigatório
13. Informação Inicial dos OBs
L-Byte
0/1
Evento inicial
Codificação da Falha
2/3
Prioridade do OB
Número do OB
4/5
Formatos dos dados dos L-Bytes 8, 9, 10, 11
6/7
Informação Adicional 1 (por ex. end. inicial do módulo de interrupção)
8/9
Informação Adicional 2 (por ex. status da interrupção)
10 / 11
Ano
Mês
14 / 15
Dia
Horas
16 / 17
Minutos
Segundos
18 / 19
1/10 Segundo, 1/100 Segundo
1 /1000 Segundo, Dia da semana
Informação
inicial
Informação Adicional 3 (por ex. número do canal)
12 / 13
Informação
para
Gerenciam.
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.13
Tempo
de início
14. Exercício: Exibindo o Tipo de Startup (OB100)
Passo
O que fazer
Resultado
1
Insira o bloco OB100 no programa S7
da estação de HW "My Station" e
escreva um programa para o OB100
de acordo com a tarefa.
O tipo de startup é programado
no bloco de startup
2
Transfira o bloco OB100 para a CPU.
3
Teste seu programa
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Os LEDs do simulador acendem
dependendo do tipo de startup.
Data:
Arquivo:
09/03/14
S7-Service.14
15. Exercício: Ajustando o Horário do Sistema
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.15
16. Exercício: Criando um Pisca-pisca com Interrupção Cíclica
Passo
1
2
3
O que fazer
Resultado
Atribua o parâmetro intervalo de chamada
para o OB 35 atendendo a tarefa.
Crie e salve o OB 35 e o transfira p/CPU.
Memória bit pisca com 3 Hz.
Verifique a função.
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.16
17. Exercício: Escrevendo um Programa para uma Interrupção de
Hora-do-Dia
Passo
O que fazer
Resultado
1
Atribua parâmetro para a CPU de modo
que a interrupção de hora-do-dia seja
executada ao terminar o dia de curso.
2
Crie e salve o OB 10 de acordo com a
tarefa e transfira para a CPU.
3
4
O contador C10 da CPU deverá ser
incrementado uma vez a cada minuto,
a partir da hora / data iniciais ajustadas
para a interrupção (OB 10).
Verifique a função.
Desative a interrupção de hora-do-dia e
transfira a configuração alterada.
SIMATIC S7
Siemens Serviços Técnicos 2004. Todos os direitos reservados.
Data:
Arquivo:
09/03/14
S7-Service.17
Hinweis der Redaktion
Conteúdo Página
Panorâmica dos Blocos de Organização ...........................................................................................2
OBs de Startup ....................................................................................................................................3
Interrompendo o Programa Cíclico .....................................................................................................4
Interrupção de Hora-do-dia (OB10) ....................................................................................................5
Interrupção Cíclica (OB35) .................................................................................................................6
Interrupção de Hardware (OB40) .......................................................................................................7
Interrupção por Delay de Tempo (OB20) ...........................................................................................8
Interrupção de Diagnóstico, Int. de Erro Assíncrono (OB81...87) ......................................................9
OBs de Erro Assíncrono .....................................................................................................................10
Erros Síncronos ..................................................................................................................................11
Funções de Sistema para Controlar os OBs de Interrupção ..............................................................12
Informação Inicial dos OBs .................................................................................................................13
Exercício: Exibindo o Tipo de Startup (OB100) ..................................................................................14
Exercício: Resposta a um Erro Síncrono ............................................................................................15
StartupUm programa de startup é executado antes da execução do programa cíclico após o restabelecimento da alimentação, ou uma mudança de modo de operação (através da chave de seleção de modo de operação da CPU ou pelo PG). Os OB 100 ao OB 102 estão disponíveis para isso. Nestes blocos pode-se, por exemplo, presetar as conexões de comunicação.
Execução Cíclica O programa a ser continuamente executado está armazenado no Bloco de
de Programa Organização OB 1. Após o programa ter sido completamente executado no OB1, um novo ciclo se inicia com a atualização das imagens de processo e o processamento da primeira instrução no OB 1. O tempo de ciclo de scan e o tempo de resposta do sistema é resultado destas operações. O tempo de resposta é o total do tempo de execução do sistema operacional da CPU e do tempo de execução de todo o programa do usuário.O tempo de reposta, isto é, o quão rápida uma saída pode ser ativada dependendo de um sinal de entrada, é igual ao tempo de ciclo de scan x 2.
Execução Periódica Com a execução periódica de programa, pode-se interromper a execução
de Programa cíclica do programa em intervalos fixos. Com interrupções cíclicas, um bloco de organização do OB 30 ao OB 37 é executado após decorrido um tempo pré-programado, por exemplo a cada 100 ms. Blocos de malha de controle com intervalo de amostragem são chamados, por exemplo, nestes blocos. Com interrupções de hora-do-dia, um OB é executado num tempo específico, por exemplo todo dia às 17:00 horas (5:00 p.m.), para salvar dados.
Execução do A interrupção de hardware pode ser utilizada para rapidamente responder a um
Programa Dirigidaevento do processo. Após a ocorrência do evento, o ciclo é imediatamente
por Eventosinterrompido e um programa de interrupção é executado. A interrupção por delay de tempo reponde a um evento do processo após um período de atraso de tempo.Através dos OBs de erro pode-se determinar como o sistema deve se comportar, por exemplo, se a bateria de backup falhar.
Início da ExecuçãoA execução dos Blocos de Organização é iniciada exclusivamente pelo sistema operacional. Existem vários eventos que levam à execução de um bloco de organização, com classe de prioridade correspondente.Os blocos de organização podem conter um programa de controle normal, e também uma tabela de declaração.
PrioridadesCada execução de um OB pode ser interrompida por um evento de maior prioridade (OB) no limite de uma instrução. As prioridades são classificadas de 1-29, onde o 1 significa a menor prioridade e 29 a maior prioridade.
OBs da mesma prioridade não interrompem um ao outro, mas são iniciados um após o outro na seqüência em que forem reconhecidos.
StartupO S7-300 possui o restart completo. Com ele, as imagens de processo e os temporizadores, contadores e bits de memória não retentivos são apagados. A execução do programa no OB 1 inicia-se pela primeira instrução.O S7-400 também possui o restart. Todos os dados (bits de memória, temporizadores, contadores, imagens de processo) são retidos. A execução do programa continua a partir do ponto onde ocorreu a interrupção.Com o restart completo o OB 100 é executado, e com o restart o OB 101 é executado.
Cold RestartAs CPUs 318-2 e 417-4 também oferecem o cold restart. É possível especificar este startup adicional para uma falha na alimentação. Isso é feito através da Configuração de HW ao associar parâmetros para a CPU. Com um cold restart, todos os bits de memória, temporizadores, contadores e imagens de processo são apagados. Os blocos de dados armazenam seus valores de preset e o programa se inicia na primeira instrução do OB 1, após o bloco de startup OB 102 ser executado.
OBsOs blocos de organização (OBs) são a interface entre o sistema operacional da CPU e o programa do usuário.
O OB1 pode conter o programa cíclico ou organizá-lo (chamando outros blocos).
ChamandoOs blocos de organização não podem ser chamados por outros blocos. Eles são chamados pelo sistema operacional em resposta a certos eventos, por ex.:
•no startup da CPU
•em uma certa hora do dia
•em intervalos constantes
•após decorrido um certo período de tempo estipulado
•ao ocorrer um erro
•quando ocorre uma interrupção de hardware
PrioridadeOs blocos de organização são executados na ordem de prioridade associada(1 = menor e 29 = maior prioridade).
InterrompendoQuando outro OB é chamado pelo sistema operacional, a execução do
o Programa Cíclico programa cíclico é interrompida devido ao OB1 possuir a menor prioridade. Qualquer outro OB pode, portanto, interromper o programa principal e executar seu próprio programa. Após isso, a execução do OB1 é reiniciada a partir do ponto de interrupção.
Se um OB com prioridade maior que a do que estiver em execução for chamado, ele começará a ser executado após completada a linha de instrução do OB corrente. O sistema operacional então salva toda a pilha de registradores para o bloco interrompido. Essas informações são restauradas quando o sistema operacional reinicia a execução do bloco interrompido.
Interrupções de Interrupções de hora-do-dia são utilizadas para executar um certo programa
Hora-do-dia chamado a partir do OB10 apenas uma vez ou periodicamente (uma vez por minuto, de hora em hora, diariamente, semanalmente, mensalmente, anualmente), com data e hora de início específica.
A interrupção de hora-do-dia é configurada com a ferramenta "HW Config". Para selecionar quando e como o OB10 deve ser ativado seleciona-se as opções de menu CPU -> Object Properties -> “Time-of-Day Interrupts".
"Active"Ao marcar a caixa "Active", o OB de interrupção de hora-do-dia é habilitado a partir do restart completo da CPU.
NotaAs interrupções de hora-do-dia também podem ser comandadas por funções de sistema durante a execução do programa. As seguintes funções de sistema estão disponíveis:
•SFC 28 "SET_TINT"Configura data inicial, hora e período•SFC 29 "CAN_TINT"Cancela a interrupção de hora-do-dia•SFC 30 "ACT_TINT"Ativa a interrupção de hora-do-dia •SFC 31 "QRY_TINT"Status da interrupção de hora-do-dia.
S7-400Existem até oito diferentes OBs de interrupção de hora-do-dia (OB 10 ao 17) para o S7-400.
Interrupção CíclicaInterrupções cíclicas (watchdog) são utilizadas para a execução de blocos em intervalos determinados. O OB de interrupção cíclica para o S7-300 é o OB 35. O intervalo default para o OB 35 é 100ms. É possível modificá-lo a um valor dentro de uma faixa permitida de 1ms a 1 minuto.
Momento de inícioAo ativar uma interrupção controlada por tempo, especifica-se o intervalo em
da execuçãorelação ao “instante de início”, que corresponde ao instante em que o modo de operação da CPU muda de STOP para RUN.
IntervaloDeve-se ter certeza de que o intervalo de tempo especificado é maior do que o tempo requerido para a execução. O sistema operacional chama o OB35 no momento especificado. Se o OB35 ainda estiver ativo nesse instante, o sistema operacional chama o OB80 (OB de erro de interrupção cíclica).
NotaInterrupções cíclicas não podem ser controladas por funções de sistema durante a execução do programa.
S7-400Existem até nove diferentes OBs de interrupção cíclica (OB30 ao 38) para o S7-400.
InterrupçãoO programa contido dentro de um OB de interrupção de hardware (OB40) é
de Hardwareexecutado tão logo ocorra um certo evento.
Interrupções de hardware podem ser disparadas por vários sinais específicos a módulos:
•Para módulos de sinal parametrizáveis (DI, DO, AI, AO) utiliza-se a ferramenta "HW Config" para especificar o sinal a comandar a interrupção de hardware.
•No caso de CPs e FMs, especificam-se as características da interrupção utilizando o software de configuração relativo ao módulo.
ExemploNo exemplo acima, valores de limite apropriados foram configurados para um módulo de entrada analógica. Se os valores medidos excederem o limite o OB40 é chamado.
Esse efeito é semelhante ao de incluir uma operação de comparação no OB1 que provoque a chamada de um FB ou FC quando o limite superior for atingido. Contudo, se for utilizado o OB40 não é necessário escrever um programa em outro bloco.
Pode-se utilizar o programa no OB40 para gerar uma interrupção ou para o controle do processo.
S7-400Existem até oito diferentes OBs de interrupção de hardware (OB40 ao 47) para o S7-400.
Interrupção por O programa em um OB de delay de tempo (OB20) é executado com um atraso
Delay de Tempo especificado após a ocorrência de um certo evento.
O OB20 somente pode ser ativado pela chamada da função de sistema SFC32 (SRT_DINT). O SFC32 também é utilizado para definir o tempo de atraso.
SFC 32• OB_NR = Número do OB a ser executado com o atraso de tempo.
•DTIME = Tempo de atraso (1 a 60000ms)
•SIGN = Sinal definido para iniciar o OB por delay de tempo
•RET_VAL = Código de Erro, caso ocorra um erro durante a execução do OB de interrupção por delay de tempo (consulte a ajuda online para os significados dos códigos de erros).
NotaAlém do SFC32, estão disponíveis os seguintes SFCs para tratamento de interrupções por delay de tempo:
•SFC33 (CAN_DINT)= Cancela a interrupção por delay de tempo
•SFC34 (QRY_DINT)= Status da interrupção por delay de tempo.
S7-400Existem até quatro diferentes OBs de interrupção por delay de tempo (OB20 ao 23) para o S7-400.
ErrosOs erros assíncronos são falhas no funcionamento do PLC. Elas ocorrem
Assíncronosassincronamente à execução do programa e não podem ser referidas à um ponto particular do programa (por ex. uma interrupção de diagnóstico vinda de um módulo).
RespostaSe uma falha for detectada em modo RUN e o OB de erro correspondente tiver sido programado, ele será chamado e seu programa executado. Esse programa poderia conter, por exemplo:
•instruções para acionar um alarme
•instruções para backup de dados, seguido de uma instrução de STOP
•um programa para armazenar a freqüência com a qual a falha ocorre, sem levar a CPU para o modo STOP.
NotaSe o OB de erro para uma falha particular não está presente, a CPU automaticamente vai para o modo STOP.
ExemploO OB de interrupção de erro assíncrono OB82 é chamado nas seguintes situações, por exemplo:
•Quebra de fio em um módulo com capacidade de diagnóstico
•Falha na tensão de alimentação de um módulo de entrada analógica
•Faixa de medida excedida para um módulo de entrada analógica, etc.
PrioridadeOs OBs de erro chamados em resposta à erros assíncronos são executados imediatamente por possuir a maior prioridade em relação aos OBs de erro e interrupção:
• Prioridade 26 se o erro ocorrer enquanto um OB com menor prioridade (<26) estiver sendo executado
•Prioridade 28 se o erro ocorrer enquanto um OB de startup (prioridade 27) estiver sendo executado.
OB'sA lista completa e a descrição dos OBs de erro são encontradas na ajuda online:LAD/STL/FBD Editor -> Help -> Contents -> Help on Blocks -> Help on Organization Blocks.
SFC'sAs funções de sistema e sua utilização; sua chamada e parametrização são explorados em cursos mais avançados.
Informação InicialEstá disponível uma informação inicial na pilha de dados locais no momento em que o OB é chamado pelo sistema operacional. A informação inicial possui um comprimento de 20 bytes e está disponível após o início da execução do OB.
Acesso àO software STEP 7 cria uma tabela de declaração padrão disponível para o
Informação Inicial acesso simbólico à informação inicial (exemplo para o OB 81).
NotaPode-se modificar ou complementar a tabela de declaração padrão.Os significados das variáveis são explicados na ajuda online ou no manual “Standard and System Functions”.No exemplo, a variável OB8_FLT_ID contém um identificador; se e qual bateria de backup falhou.
Notas: No S7-300, existe apenas o bloco de startup OB 100, tanto para manual como para automatic warm restart. Se diferentes reações de programa forem necessárias dependendo do tipo de startup do controlador, pode-se encontrar a informação inicial correspondente no OB 100.
Exemplo de informação inicial:
Dependendo do tipo de startup, um dos seguintes identificadores é armazenado pelo sistema operacional na variável OB100_STRTUP (BYTE):
•B#16#81 = manual warm restart
•B#16#82 = automatic warm restart
Exemplo de detecção de um manual warm restart:
LOB100_STRTUP// Carrega a informação de tipo de startup
LB#16#81// Carrega o ID para manual warm restart
==I// Compara a igualdade
=Q 4.5// Exibe o manual warm restart
Maiores informações sobre a informação inicial específica do OB podem ser encontradas na ajuda online.
Objetivo:•Programar o OB 100 de modo que
o manual warm restart é exibido através do LED Q 4.5; eo automatic warm restart é exibido através do LED Q 4.6.
•Pode-se reconhecer (resetar) ambos LEDs através da chave “Rec_Restart" (I 0.7) do simulador.
TarefaAjustar o horário correto do sistema da CPU S7.
O que Fazer1. Selecione a opção de menu PLC -> Set Date and Time (gerenciador SIMATIC ou Editor de Programa).
2.Insira a data e o horário corretos na caixa de diálogo.
TarefaVocê precisa utilizar uma freqüência de pisca-pisca de 3 Hz, mas este valor de freqüência lamentavelmente não está disponível no sinal “clock memory“. Crie uma freqüência de pisca-pisca na memória bit M35.0, com a ajuda da interrupção cíclica.
TarefaPrograme a interrupção de hora-do-dia de sua CPU, de modo que ela incremente o contador C10 uma vez a cada minuto, a partir de um horário qualquer pré-estipulado. O valor atual de contagem deverá ser exibido no display digital do kit didático.