Escolar Documentos
Profissional Documentos
Cultura Documentos
SIEMENS - STEP 7
Controlador Lógico Programável
Programação Básica
SIMATIC S7
Nome: __________________________________________________________
Instrutor: _________________________________________________________
ÍNDICE:
A Família Simatic S7
1.1 Apresentação
SIMATIC SIMATIC
S7-400 M7-400
SIMATIC
S7-200
Software
Terminal de Programação Redes de I/O distribuída Interface HomemMáquina
Comunicação
SENAI 5
Controlador Lógico Programável
Opções de Aplicação
6 SENAI
Controlador Lógico Programável
SENAI 7
Controlador Lógico Programável
S7-300 S7-300
CPU 1 CP FM CPU2 CP FM
A interface MPI pode ser utilizada para displays, painéis de operação e terminais de
programação Siemens. A MPI possui as seguintes características:
8 SENAI
Controlador Lógico Programável
Conhecendo o Step 7
2.1 Softwares para S7 / C7 / M7
CFC
I I
S7-SCL M7-DDE-SERVER
I I
S7-GRAPH M7-Pro-C/C
I I
S5-Hi Graph Borland C/C
STEP 7 MINI STEP 7 BASIC
SIMATIC Manager SIMATIC Manager
Para cada segmento da família SIMATIC, existe uma ferramenta específica de programação.
Para o S7-200 há o STEP 7 Micro, este software é exclusivo para elaboração de programas
com o S7-200. Possui duas versões: MICRO/DOS e MICRO/Win que rodas nos sistemas
DOS e a partir do Windows 3.x respectivamente.
SENAI 9
Controlador Lógico Programável
O STEP 7 Mini é um sub-set do pacote STEP 7, ideal para se iniciar na automação com
aplicações exclusivas do S7-300, este pacote não permite a configuração do S7-400, de
global-data (troca de dados) e nem o uso de pacotes opcionais.
10 SENAI
Controlador Lógico Programável
SENAI 11
Controlador Lógico Programável
12 SENAI
Controlador Lógico Programável
Introdução ao Hardware
3.1 Visão dos Módulos
SENAI 13
Controlador Lógico Programável
14 SENAI
Controlador Lógico Programável
Slot 1 2 3 4 5 6 7 8 9 10 11
0
1
2
3 Endereço 0.0
4
5 Endereço 0.7
6
7
0
1
2
3
4
5
6
Importante: A CPU 315-2DP permite que os endereços
7 sejam livremente definidos.
SENAI 15
Controlador Lógico Programável
Slot # 3 4 5 6 7 8 9 10 11
Fonte IM
Rack de (Receive) 96.0 100.0 104.0 108.0 112.0 116.0 120.0 124.0
3 Tensão to to to to to to to to
99.7 103.7 107.7 111.7 115.7 119.7 123.7 127.7
Fonte IM
Rack de (Receive) 64.0 68.0 72.0 76.0 80.0 84.0 88.0 92.0
2 Tensão to to to to to to to to
67.7 70.7 75.7 79.7 83.7 87.7 91.7 95.7
Fonte IM
Rack de (Receive) 32.0 36.0 40.0 44.0 48.0 52.0 56.0 60.0
1 Tensão to to to to to to to to
35.7 39.7 43.7 47.7 51.7 55.7 59.7 63.7
CPU e IM
Rack Fonte (Send) 0.0 4.0 8.0 12.0 16.0 20.0 24.0 28.0
0 de to to to to to to to To
Tensão 3.7 7.7 11.7 15.7 19.7 23.7 27.7 31.7
O endereçamento das entradas (I) e saísas (Q) digitais tem início com o endereço Digital “0”
para o módulo de sinal localizado no slot 4 (1 slot para SM). A relação entre o slot físico e o
endereço do módulo é exibido na figura acima. Cada módulo digital ocupa 4 bytes de
endereços independente do número de pontos.
Os sinais digitais do CLP correspondem a uma área de memória na CPU que contém o
estado atual das entradas e saídas. Esta área, denominada Tabela Imagem da Periferia de
Entrada (PII) e de Saída (PIQ), são atualizadas automaticamente pela CPU a cada início e
fim de ciclo respectivamente. Pode-se acessar estas áreas (I e Q) em bits, bytes, words ou
double words, como mostrado nos exemplos abaixo:
Q 7.1 é um dado que é arquivado nosegundo bit (bit 1) do byte 7 na
tabela imagem da periferia de saída (usando a numeração padrão
das I/O do diagrama acima, isto corresponde ao segundo ponto no
módulo2)
IB100 refere-se ao dado no byte 100 da tabela imagem da periferia
de entrada.
IW100 refere-se ao dado que é arquivado nos bytes 100 e 101 da
tabela imagem da periferia de entrada.
QD24 refere-se ao dado que é arquivado nos bytes 24, 25, 26, 27 da
tabela imagem da periferia de saída.
O S7-400 permite a definição pelo usuário do endereçamento dos módulos. Caso não seja
definido pelo usuário, o CLP assume um endereçamento default para os módulos, cada
módulo ocupando 4 bytes (32 bits). O endereçamento digital segue o seguinte padrão:
Início Endereçamento Digital = (número do slot físico – 1) x 4
Exemplo: Endereço inicial do módulo digital no slot 4 é 0.0
16 SENAI
Controlador Lógico Programável
O endereçamento das entradas e saídas analógicas tem início no endereço 304 para o
módulo de sinal localizado no slot 4 (1 slot para SM). A figura acima mostra o esquema de
endereçamento dos módulos analógicos. Cada módulo analógico ocupa 16 bytes de
endereços, independente do tipo de módulo, sendo que cada canal analógico ocupa dois
bytes de dados.
As entradas e saídas analógicas acessam uma área de memória denominada Periferia (PI e
PQ) da CPU. Os sinais analógicos, ao contrário dos sinais digitais, não possuem uma tabela
imagem (PII ou PIQ), atualizados a cada ciclo. Ao invés disto, você define quando os dados
serão atualizados (lidos/escritos) usando simplesmente o endereço analógico na seu
programa. O endereço identificador para uma entrada analógica é PIW e para saída
analógica é PQW.
No S7-300 o endereçamento para sinais analógicos começa com 304, sendo portanto que o
primeiro canal no primeiro módulo no primeiro rack irá então ser PIW304. O último endereço
analógico é 912 (para o S7-300).
Exemplo: Para acessar os dados do segundo canal no primeiro módulo no rack 2, o
endereço da entrada analógica é PIW 306.
O S7-400 também suporta opcionalmente endereçamento padrão para os módulos
analógicos. O endereçamento analógicos default segue o seguinte padrão:
SENAI 17
Controlador Lógico Programável
I/O’s Intergradas – –
ED/SD 10/6 - / 20/16
EA/AS - /4/1
Memory Markers 1024 2048 2048/2048 2048
Contadores 32 64 64/64 64
Temporizadores 64 128 128/128 128
Número máx. de blocos:
FB 32 128 128/128 128
FC 32 128 128/128 128
DB 63 127 127/127 127
Tempo de Execução 0.6 ms 0.6 ms 0.3 ms/0.3 ms 0.3 ms
(por 1 k/intruções)
Número de Trilhos / 1/8 1/8 4/32 – 4/32 4/32
Módulos
Máximo de conexões 4 4 4/4 4
ativas por Interface MPI
Interface Integrada MPI MPI MPI/MPI MPI/MPI,DP
Funções Intergradas sim não não/sim não
Contadores/
Freqüência de medição
• FB Blocos de Funções
• FC Funções
• DB Blocos de Dados
18 SENAI
Controlador Lógico Programável
Led’s de Status
da CPU
ST
BATF Slot para o Cartão de
SIEMENS DC5V Memória
PRGM
RUN
STOP
RUN P
Seleção do Modo RUN
STOP
de Operação M RT
SIMATIC
S7-300 Interface MPI
Battery MPI
Pode-se fazer a seleção manual do modo de operação da CPU através da chave “Modo de
Operação”, que possui as seguintes posições:
SENAI 19
Controlador Lógico Programável
I Entrada
Q Saída
B Byte (8 bits)
W Word (16 bits)
D Double word (32 bits)
M Memória (flag)
P Periferia (acesso direto – PIW / PQW)
T Temporizadores
C Contadores
DB Data block
DI Data block (usado em Bloco de Dados Instance)
20 SENAI
Controlador Lógico Programável
SENAI 21
Controlador Lógico Programável
22 SENAI
Controlador Lógico Programável
O Software Step 7
4.1 Iniciando o STEP 7
Para iniciar o programa,
...sobre o ícone do
clique duas vezes com o
Step 7.
mouse ...
Para iniciar o STEP 7, clique duas vezes no ícone SIMATIC Manager que aparece no
Windows 95 ou no menu Start (iniciar), acima do grupo “Programs” ou ainda via menu Start
SIMATIC STEP 7 SIMATIC Manager.
SENAI 23
Controlador Lógico Programável
Sistema de menu
(abrir/fechar, etc.)
Título da Janela Ativa
Barra de
Títulos
Barra de Menu
Barra de
Ferramentas
Área de
Trabalho
Barra de
Status
24 SENAI
Controlador Lógico Programável
O STEP 7 possui um sistema de help (ajuda) completo, divididos em sub-menus para cada
tópico de utilização do STEP 7. O sistema consiste de:
• Help – Menu: O menu é uma tabela de conteúdos e dicionário de palavras que
conduz a vários tópicos de ajuda. O glossário fornece definições para os termos
usados.
• Help – Botões de Comando: Os botões de comando são localizados em vários
campos de diálogo. O conteúdo relacionado ao help é exibido em vários campos
de diálogo.
SENAI 25
Controlador Lógico Programável
Estação de Hardware
Programação da CPU do S7-300
Programa S7/M7 (associado a um Hardware)
Programa do usuário em arquivos fontes (STL)
Programa do usuário com blocos S7:
OBs, FBs, FCs, DBs, etc.
Programa S7/M7 (não associado a um Hardware)
Programa do usuário em arquivos fontes
Programa do usuário em blocos S7
Obs, FBs, FCs, DBs, etc.
Depois de criar o projeto e definir o hardware a ser utilizado, o usuário poderá editar o
programa referente à um CLP propriamente dito, o mesmo é localizado sob o diretório S7-
Programs. Este diretório pode estar ou não associado à uma estação específica criada.
Associada à um HW, o diretório se encontra subordinado à CPU. Caso contrário fica
subordinado diretamente ao Projeto.
26 SENAI
Controlador Lógico Programável
O STEP 7 utiliza objetos para tornar o uso do software intuitivo e user-friendly. Assim uma
série de objetos representam as diferentes ferramentas, arquivos e funções disponíveis.
Todo o projeto é hierarquizado, tendo-se acesso aos diferentes objetos conforme se avança
na estrutura (subordinado a .....).
As pastas de programa de usuário (S7-Programs) diferem entre si nos modos online e
offline. No modo online, o usuário acessa diretamente o programa na CPU, portanto
somente são encontrados em modo online os blocos realmente relevantes para o
funcionamente do CLP. Assim, objetos como Tabela de Simbólicos e Arquivos Fontes só
são encontrados no modo offline.
Outros Objetos Existem ainda outras funções representadas por objetos. Alguns destes
objetos são encontrados somente se os pacotes opcionais forem
instalados.
SENAI 27
Controlador Lógico Programável
Tipos de dados
definido pelo usuário: UDTs
28 SENAI
Controlador Lógico Programável
Na Janela Direta A janela exibe um projeto no modo offline, com toda a estrutura já vista
anteriormente.
Na Janela Esquerda Esta janela exibe o conteúdo da CPU, acessada pela função
Acessible Nodes. Na janela estão listados todos os blocos contidos na
CPU (FC, OB, SFC, etc.).
SENAI 29
Controlador Lógico Programável
4.8 Wizard
30 SENAI
Controlador Lógico Programável
SENAI 31
Controlador Lógico Programável
32 SENAI
Controlador Lógico Programável
Configurando e
Parametrizando o S7
5.1 Introdução
SENAI 33
Controlador Lógico Programável
Trocando Módulos Durante um restart completo, a CPU distribui os parâmetros para todos
os módulos existentes. Assim, quando se substitui um módulo
defeituoso, a parametrização para o novo módulo ainda estará
disponível, armazenada na CPU.
34 SENAI
Controlador Lógico Programável
SENAI 35
Controlador Lógico Programável
Configuração
Real A CPU gera uma configuração interna real durante a energização. Isto
é, a CPU verifica a disposição dos módulos existentes, e caso não exista
o bloco de parametrização, distribui os endereços de acordo com um
algoritmo fixo.
Se não existir parametrização, os parâmetros default são utilizados.
A CPU arquiva esta configuração real no bloco de dados do sistema.
Na PG/PC, você pode Ter esta configuração real para servir como base
(template) para adicionar e/ou re-parametrizar os módulos usando o HW
Configuration.
Procedimento
A configuração real é gerada usando o ícone Upload.
36 SENAI
Controlador Lógico Programável
SENAI 37
Controlador Lógico Programável
Setando Parâmetros Entre outros, os seguintes parâmetros podem ser setados na CPU:
da CPU
• Endereço da interface MPI
• Características de Star-up/ciclo: tempo máximo de ciclo, ciclo de
carga para comunicação, auto teste ciclico e auto teste depois da
energização.
• Interrupção ciclica (watchdog): OB 35
• Memória retentiva: markers de memória (flags), temporizadores,
contadores e blocos de dados.
• Clock de memória: reduzir a freqüência de byte de memória
• Diagnóstico de sistema: enviar mensagens de diagnóstico, detalhar
registros no buffer de diagnóstico.
• Se o usuário não definir nenhum parâmetro, os parâmetros default
serão utilizados na CPU.
• Depois de setar os parâmetros, deve-se transferir os novos
parâmetros com o comando de menu PLC Download. A CPU
deverá estar no modo STOP.
Endereços MPI Se você desejar conectar vários controladores lógicos programáveis via
interface MPI, você deverá setar diferentes endereços MPI para cada
CPU.
38 SENAI
Controlador Lógico Programável
Setpoint and Para o S7-300 com a CPU 315-2 e o S7-400, quando você desativa
Actual este campo, você pode fazer com que a CPU vá para STOP se a
Configuration configuração real (existente) não for igual a configuração parametrizada.
Hardware Test Quando esta função é ativada, a RAM interna da CPU é testada durante
o Start-Up.
SENAI 39
Controlador Lógico Programável
As áreas que você especifica nesta tela são retidas no caso de falha de
energia mesmo não existindo bateria de backup. Para ser utilizado sem
bateria, o programa deverá ser arquivado no módulo de memória
(memory card).
DB’s Retentivos Este parâmetro só tem sentido no caso da não existência de bateria.
Quando a bateria é usada, todos os blocos de dados são retentivos.
Outros blocos de dados que devem permanecer retidos devem também
ser salvos no módulo de memória.
Depois da falta de energia sem bateria, os blocos de dados
parametrizados como retentivos são retidos, e os outros blocos recebem
os valores arquivados no módulo de memória.
40 SENAI
Controlador Lógico Programável
Cycle Opções:
• Tempo de monitoração do tempo de ciclo, quando este tempo é
ultrapassado, a CPU vai para STOP, se o 0B80 de erro não foi
programado.
• Tempo mínimo de ciclo para o S7-400 para implementar tempo de
ciclo constante.
• Porcentagem do tempo de ciclo de programa que será reservado (no
máx.) para tarefas de comunicação ou para auto teste ciclico.
Clock Memory Caso seja utilizado no programa algum tipo de pisca-pisca, pode-se
deixar o sistema gerá-lo automaticamente. Ative o campo e especifique
qual o byte de memória a ser usado para este fim.
O byte de memória especificado piscará nas seguintes freqüências, cada
uma associada à um bit deste byte:
Bit 7 6 5 4 3 2 1 0
Período / 2 1,6 1 0,8 0,5 0,4 0,2 0,1
Freqüência 0,5 0,625 1 1,25 2 2,5 5 10
(Hz)
SENAI 41
Controlador Lógico Programável
Protection Levels O programa na CPU pode ser protegido contra um acesso não
autorizado por meio de designação de uma senha. As correções de
programas ou modificaçõesde dados só podem ser executados se a
senha correta for digitada.
Os níveis de proteção têm os seguintes significados:
• 1: Sem proteção
• 2: Proteção contra a escrita (somente leitura ou status de blocos)
• 3: Proteção contra leitura / escrita
42 SENAI
Controlador Lógico Programável
5.10 Interrupções
SENAI 43
Controlador Lógico Programável
Time-of-day int. São blocos que serão executados exatamente na data e hora em que
foram parametrizados. Pode-se selecionar inclusive a freqüência com
que serão executados após esta data: uma única vez, a cada minuto, a
cada hora, mês, dia, ano.
44 SENAI
Controlador Lógico Programável
Cyclic interrupt Caso se deseje que parte do programa da CPU seja executada a
intervalos regulares de tempo, pode-se utilizar o OB de interrupção
clínica. Este OB será então executado toda a vez que o intervalo de
tempo paramentrizado tenha sido decorrido. Isto habilita a
implementação de tarefas de controle de malha fechada, por exemplo,
que devem ser processados em intervalos de tempo programados.
O S7-300 possui para esta função somente o 0B35, o qual é processado
a cada 100ms como default. A base de tempo pode ser setada na faixa
de 1 a 60000ms.
O S7-400 possui vários OB’s de interrupções cíclicas com diferentes
intervalos de tempo. Para garantir que estes OB’s não sejam executados
ao mesmo tempo, no caso dos intervalos de tempo coincidirem, pode-se
usar um offset, que as interrupções ocorrem defasadas entre si.
SENAI 45
Controlador Lógico Programável
Clock Se estão sendo utilizados vários módulos com clocks em um CLP, pode-
se definir quais módulos vão ser escravos e mestres. O mestre
sincroniza outros clocks de acordo com o intervalo de tempo setado.
O fator de correções corrige variações do relógio do mestre diariamente,
sendo expresso em ms.
46 SENAI
Controlador Lógico Programável
Parâmetros nos módulos de sinais são variáveis que contém ajustes da resposta dos níveis
de sinais dos módulos (um ou mais por módulos). Todos os módulos tem ajustes default. Os
ajustes para a maioria dos módulos S7 podem ser modificados usando o S7 Hardware
Configuration ou por meio de SFC’s no programa do usuário.
Existem dois tipos de parâmetros para estes módulos:
• Parâmetros estáticos – Ajuste dos módulos podem ser modificados com o S7 Hardware
Configuration, mas não com os SFC’s no seu programa.
• Parâmetros Dinâmicos – Ajuste dos módulos podem ser modificados no programa do
usuário, mesmo se elas forem feitas com o STEP 7.
SENAI 47
Controlador Lógico Programável
48 SENAI
Controlador Lógico Programável
SENAI 49
Controlador Lógico Programável
50 SENAI
Controlador Lógico Programável
Princípios Básicos de
Programação
6.1 Norma IEC 1131
A norma IEC 1131 é um documento escrito por um consórcio de fabricantes de PLC’s, casas
de sistemas e instituições direcionadas a desenvolver plataformas para níveis de
padronizações na automação idustrial.
Diretrizes para Contém as diretrizes para os usuários de PLC. Informações para todos
Usuários os estágios do projeto estão disponíveis, tais como: iniciando análise de
sistema, fase de especificação, seleção de manutenção de dispositivos.
SENAI 51
Controlador Lógico Programável
52 SENAI
Controlador Lógico Programável
Manual: STOP RUN para S7-400 CRTS ativado Pré-requisitos: Seta parâmetros para restart
Automático: Power ON Manual: STOP RUN e ativa WRST
Executando o OB 100
Deletando PIQ (parametrizável)
Habilita saídas
Sim
PARA Falha tensão tempo
Lê em PII excedido?
Não
Executa OB 1 Habilita Saídas/L em PII
Restart Completo A CPU executa um completo restar quando vai do modo STOP para
RUN, processo este denominado START-UP (inicialização).
Durante o Start-Up são executadas as seguintes tarefas:
Zera as tarefas retentivas de memória: markers, temporizadores e
contadores.
Zera as pilhas de interrupção e bloco; deleta todas as interrupções e
diagnósticos de interrupção, zera a imagem do processo de I/O’s.
Transfere os parâmetros para os módulos.
Lê as configurações de I/O e compara o estado atual das I/O’s com o
estado esperado.
OB executa o completo restart (OB100).
Habilita saídas.
SENAI 53
Controlador Lógico Programável
Q 6.0
SM
0
0
0 Entrada
0 Digital
0
0
0
0
PII PIQ
Byte 0 1 Byte 0
Byte 1 Byte 1
Byte 2 Byte 2
Programa
do Usuário
1
PII A tebela imgem das entradas do processo é o local onde o estado das
entradas digitais são arquivadas na CPU. Antes do início de cada ciclo
de programa, a CPU lê a periferia (módulos de entrada digital) e
transfere os estados dos sinais digitais para esta área.
PIQ A tabela imagem das saídas contém o valor das saídas resultantes do
processamento do programa. Somente no final do ciclo de programa,
estes valores de saídas são transferidos para os módulos de saídas (Q).
54 SENAI
Controlador Lógico Programável
Ciclo OB
FB FC FB
Tempo Bloco de
Processo Organização
FB FB SFC
Erro
OB = Bloco de Organização
FB = Bloco de Função Legenda:
FC = Função
SFB = Bloco de Função do Sistema
SFC = Função do Sistema Bloco de Dados
SDB = Bloco de Dados do Sistema Instance
DB = Bloco de Dados
Blocos do Usuário Os blocos de usuário são áreas providas para administrar o código e
os dados para seu programa. Baseado nas necessidades do seu
processo, você pode estruturar seu programa com várias opções de
blocos de usuário. Alguns desses blocos podem ser executados
ciclicamente, enquanto outros blocos podem ser executados somente
quando necessitado. Blocos de usuário são também chamados de
blocos de programa.
SENAI 55
Controlador Lógico Programável
Funções (FC) A função é um bloco de operação lógica similar ao bloco de função para
o qual não é designado área de memória. Um FC não necessita de um
bloco de dados Instance. As variáveis locais são arquivadas na pilha
local (L stack) até que a função esteja concluída, sendo perdidos quando
o FC termina a execução.
Bloco de Dados Um bloco de dados é uma área de dados permanente no qual dados
(DB) ou informações que outras funções coletaram são armazenados. Bloco
de dados são área de leitura / escrita que podem ser carregadas na CPU
como parte de seu programa.
56 SENAI
Controlador Lógico Programável
SENAI 57
Controlador Lógico Programável
Recipiente A
Exaustor
Recipiente B
OB 1 OB 1 OB 1
Bomba
Misturador
Exaustor
Programa Estruturado:
Programa Linear: Todas Programa Particionado: Códigos reutilizáveis estão
As instruções estão Instruções para cada dispositivo em blocos individuais. O
Contidas em um bloco estão contidos em blocos OB1 (ou outro bloco)
(novamente no OB1) idividuais. OB1 chama cada chama esses blocos e
bloco em seqüência. passa os dados relevantes.
58 SENAI
Controlador Lógico Programável
OB1 FC1
Motor 1
FC1
Motor 2
FC1
Motor 3
Como é O programa dentro do OB1 (ou outro bloco) chama estes blocos
executado? Genéricos para a execução. Assim dados e códigos considerados
comuns podem ser compartilhados.
SENAI 59
Controlador Lógico Programável
O Editor de Programas
7.1 Selecionando um Bloco para Editar
Editando um bloco
Existente:
- selecione a pasta
que contém o bloco;
- clique duas vezes
sobre o bloco.
Editando um novo
bloco:
- selecione a pasta
que deverá conter o
bloco;
- Pressione o botão
direito do mouse;
- Selecione “Insert
New Object” e o tipo
de bloco desejado;
- Clique duas vezes
sobre o bloco criado
60 SENAI
Controlador Lógico Programável
• Selecione a pasta que contém o bloco existente ou a pasta na qual o novo bloco será
armazenado.
• Os blocos existentes são listados na janela à direita.
• Selecione o bloco a ser editado, clicando duas vezes sobre ele. Alternativamente pode-
se editá-lo selecionando-o então com o botão direito do mouse ativando-se a função
“Open Object”.
• Para se criar um bloco, seleciona-se a pasta na qual o bloco será armazenado, e com o
auxílio do botão direito do mouse selecionando-se a função “Insert New Object” e o tipo
de bloco desejado.
• Clica-se duas vezes sobre o ícone do novo bloco criado que o editor de programa será
aberto.
SENAI 61
Controlador Lógico Programável
STL, LAD ou FBD Blocos criados originalmente em lista de instruções nem sempre são
convertidos totalmente em diagrama de contatos ou blocos funcionais.
Ao se fazer esta opção de conversão, através da opção “view”, o Editor
de Programa converterá todos os segmentos de programas que podem
ser convertidos. Segmentos de programa não “conversíveis” se mantém
na linguagem lista de instruções. Esta “não conversão” não significa que
haverão problemas de execução do programa, sendo somente
conseqüência da sintaxe de visualização de cada linguagem. Para
garantir que a conversão seja sempre realizada, o usuário deverá tomar
certos cuidados durante a edição (ex.: escrever uma única lógica por
segmento).
62 SENAI
Controlador Lógico Programável
Tabela de Declarações
Título do Bloco
Segmento
Seção de Instruções
O Editor de Programas possui duas áreas com funções bem definidas: tabela de
declarações e a seção de instruções.
Tabela de Esta tabela serve para declarar variáveis e parâmetros para o bloco.
Declarações As variáveis locais (temporárias) são definidas para uso no bloco nesta
tabela. A parametrização torna possível passar variáveis entre blocos
para que sejam usados universalmente.
SENAI 63
Controlador Lógico Programável
F2 F3 F7 F8 F9
64 SENAI
Controlador Lógico Programável
SENAI 65
Controlador Lógico Programável
66 SENAI
Controlador Lógico Programável
Modo Offline
Clique duas
vezes sobre o
ícone do bloco
Selecione a pasta
Blocks
Resultado
SENAI 67
Controlador Lógico Programável
Depois de você Ter aberto o bloco, selecione o método de representação que você quer
utilizar...
Procedimento 1. Abrir um bloco para edição (por ex.: o 0B1 do exercício anterior)
2. Selecionar o modo de edição / visualização:
• LAD, selecionar no menu de comando View LAD.
• STL, selecionar no menu de comando View STL.
• FBD, selecionar no menu de comando View FBD.
Diagrama Ladder
Lista de Instruções
Bloco de Funções
68 SENAI
Controlador Lógico Programável
Para salvar, sem mudar o nome do bloco do arquivo, usar: File Save ou clique no ícone...
Para salvar um bloco com um nome diferente ou uma localização diferente: File Save as
Como qualquer editor de programas/textos, é necessário salvar seu trabalho após a edição.
Isto é como um “Save” normal do Windows, o qual pode ser usado com os dois
procedimentos exibidos acima.
Quando usado o comando de menu File Save As, deve-se especificar o projeto,
programa e nome do bloco para este arquivo. Depois de salvo, este bloco se encontra com
um ícone na pasta Blocks do projeto/programa em que foi salvo. Pode-se utilizar o SIMATIC
Manager como o “Explorer” para copiar ou mover o bloco para outros projetos, CPU’s, etc.
SENAI 69
Controlador Lógico Programável
Depois de editado o programa, o próximo passo é transferir o bloco para a CPU. Usando o
editor LAD/STL/FBD pode-se transferir um bloco individualmente enquanto ele estiver
aberto, ou pode-se usar alternativamente o SIMATIC Manager para transferir o bloco. O
procedimento para usar o SIMATIC Manager é descrito nos próximos exercícios
(transferindo o programa).
70 SENAI
Controlador Lógico Programável
On-line significa que os objetos exibidos são os blocos residentes na CPU. Esta conexão
não depende da CPU estar em modo RUN ou modo STOP. Com o STEP 7 você pode
estabelecer conexão de dois métodos:
Procedimento O SIMATIC Manager pode também ser usado para abrir ou editar
blocos na CPU (o Editor LAD/STL/FBD é iniciado automaticamente).
1. Inicie o SIMATIC Manager.
2. Selecione no menu de comando View On-line.
SENAI 71
Controlador Lógico Programável
O bloco deve ser aberto on-line para que o processo seja monitorado. A seção de instrução
dos blocos exibe o estado de operação quando os valores mudam. Em LAD, um código de
cores exibe o fluxo de corrente, e contatos abertos ou elementos são representados por
linha pontilhada. Entre outras coisas, as cores e os tipos de linhas podem ser mudados via a
função do menu Options Customize LAD/STL/FBD.
Objetivo Depurar o bloco enquanto ele está sendo processado pela CPU.
72 SENAI
Controlador Lógico Programável
M 10.0 M 10.0
Seta/Reseta Flip Flop I 0.1 A I 0.1
SR_FF SR_FF
S Q
I 0.1
S Q
S M 10.0
I 0.2 I 0.2
R R A I 0.2
R M 10.0
SENAI 73
Controlador Lógico Programável
OR
OR
OR
XOR XOR
XOR
74 SENAI
Controlador Lógico Programável
First Check O tempo first check (primeira verificação) indica que está sendo
executada a primeira instrução de uma lógica. Isto significa que uma
nova operação lógica se iniciou, e que o resultado (RLO) da operação
lógica anterior não será considerado. Isto torna sem importância, qual
instrução (por ex.: AND ou OR) está sendo utilizada como primeira
instrução de uma lógica escrita em STL.
O “frst check” é gerado automaticamente pelo PLC sempre que uma
lógica foi encerrada (por ex. uma saída foi setada) ou um novo bloco foi
iniciado.
SENAI 75
Controlador Lógico Programável
Set
Reset
Reset/Set
O
Flip flop
Set/Reset
O
Flip flop
76 SENAI
Controlador Lógico Programável
SENAI 77
Controlador Lógico Programável
Di ag ra m a d e St at u s d o Sin a l
Flanco Positivo Flanco Negativo
RLO
1
Flanco de Impulso Quando a entrada I 1.0 muda seu estado de 0 para 1, como mostrado na
Positivo figura acima, a instrução FP identifica esta mudança de estado,
denominada de flanco de impulso positivo, e resulta em um RLO = ”1”
por somente um ciclo, ocorrendo um pulso de largura de um ciclo na
saída Q 8.0.
Para uma instrução FP, uma memória auxiliar (flag) deve ser
especificada (pode também ser bit de dados) no qual o estado do RLO é
arquivado. Esta é a maneira pela qual uma mudança de sinal pode ser
identificada no próximo ciclo.
Flanco de Impulso Para um flanco de impulso negativo, o pulso de scan ocorre quando
Negativo o RLO muda de “1” para “0”.
O símbolo para isto em STL é o “FN”, e em LAD, existe a letra “N” no
símbolo de saída.
78 SENAI
Controlador Lógico Programável
Network 1 Network 6
I0.0 I0.1 AND Q8.0 I0.6 Reset Q8.4
R
Network 2 Network 7
I0.0 I0.1 AND negada Q8.1 I0.2 I0.4 Latch Solar Q8.5
Q8.5
Network 3
I0.2 OR Q8.2
Network 10
Network 5 I 1.0 I1.1 XOR Q9.0
I0.5 Set Q8.4
S I1.0 I1.1
SENAI 79
Controlador Lógico Programável
Temporizadores, Contadores e
Comparadores
9.1 Temporizadores com Retardo
Exemplo:
Entrada com
atraso
S_OFFDT
On-Delay Timer
RLO em S
S-ODT
RLO em R
Retardo na Energização Tempo
Diparado
Estado
Temporiz.
80 SENAI
Controlador Lógico Programável
S_PULSE
Pulse
RLO em S
S_PULSE
RLO em R
Pulse
Tempo
Diparado
Estado
Temporiz.
Extended RLO em S
Pulse RLO em R
S_PEXT Tempo
Pulso Extendido Diparado
Estado
Temporiz.
SENAI 81
Controlador Lógico Programável
9.3 Contadores
EXEMPLO:
CONTADORES
As três opções de contadores existentes são descritos a seguir. Uma área de memória é
reservada para os contadores. Esta área de memória reserva uma palavra de 16 bits para
cada endereço de contador até 256 (dependendo da capacidade da CPU). O valor máximo
presetado é 999 (BCD).
82 SENAI
Controlador Lógico Programável
SENAI 83
Controlador Lógico Programável
Instrução de Transferência
31 24 23 16 15 8 7 0
MB 0 MB 1 MB 2 MB 3 L MD 0
T QD 4 T QW 4 T QB 4
Acumuladores são memórias auxiliares na CPU para troca de dados entre vários endereços,
para comparação e operações matemáticas. O S7-300 tem dois ACCU’s (acumuladores)
com 32 bits cada, e o S7-400 tem quatro acumuladores com 32 bits cada.
84 SENAI
Controlador Lógico Programável
9.6 Acumuladores
IN O Exemplos:
5 MB5 L+5 // Carrega uma constante 16-bit
L L#523123 // Carrega uma constante 32-bit
L B#16#EF // Carrega byte em hexadecimal
EN - Habilita Entrada L 2#0001_0110_1110_0011
ENO - Habilita Saída // Carrega velor binário 16-bit
IN - Valor de Entrada L TOD#1:10:3.3 // Carrega tempo com 32-bit
(Tamanho de todos os tipos T MBO // Transfere valor para byte de
de dados 8,16,32 bit) memória 0
O - Target Adress T QD256 // Transfere valor para double
(Tamanho de todos os tipos word 256
de dados 8,16,32 bit)
SENAI 85
Controlador Lógico Programável
86 SENAI
Controlador Lógico Programável
Network X
Network X
Network X
NEW1 NEW1. AN M5.5
NEW1 AN I4.7
I0.2 &
= M69.0
M5.5 I4.7 M69.0 Q8.1
I0.3 =
LAD “label”
--( JMP)
Rótulos (labels) O label marca o ponto onde o programa irá continuar a execução, após o
salto. Instruções ou segmentos localizadas entre o jump e o label não
serão executadas.
O label obrigatoriamente deve estar localizado no mesmo bloco (OB, FB,
FC) que a instrução jump a que está associada.
SENAI 87
Controlador Lógico Programável
JCB / JNB Além das instruções acima, existem duas outras opções em STL que
são a combinação do RLO e o bit BR.
• Jump se RLO = 1 com RLO armazenado em BR (JCB)
• Jump se RLO = 0 com RLO armazenado em BR (JNB)
88 SENAI
Controlador Lógico Programável
M69.0
M5.5 I4.7 M69.0 M5.5 AN M5.5 // Contato emer.
& =
AN 14.7 // Contato emer.
I4.7
= M69.0 //Saída
MCRD
MCRD
>
* Influenciado pelo MCR MCRD // Desativar
O Master Control Relay é uma chave lógica mestre para energizar ou desenergizar o fluxo
de tensão. Quando desenergizado “ toda a seqüência lógica seguinte será zerada (RLO=0)
ao invés de ser executada. Se a lógica Master Control Relay estiver ativa (RLO=1)
considera-se que o sistema está energizado. Por sua vez, se a lógica estiver inativa (RLO=0)
considera-se que o sistema está desenergizado. OBS.: As instruções SET e RESET dentro
de uma MCR inativo (desenergizado) não alteram o valor da saída/flag. A instrução de
transferência (=) zera a saída/flag quando o MCR está inativo.
MCR> A instrução Master Control Relay Off marca o fim da área de controle
lógico. O MCR< é combinado com o mais próximo MCR<.
MCRD A instrução MCR Desactivate desativa a função MCR. Você não pode
programar nenhuma área MCR depois do MCRD. Esta instrução é uma
exigência para a associação lógica com MCRA.
SENAI 89
Controlador Lógico Programável
Código BCD O digito de número decimal pode ser codificado com quatro números
binários. Esta representação deriva do fato que o maior número decimal
de 1 digito, que é o número 9, necessita de pelo menos quatro posições
para a representação em binário.
Para representar os dez digitos decimais 0 até 9 em código BCD você
usa a mesma representação como você usaria para números binários de
0 até 9. De 16 combinações possíveis de quatro digitos binários, seis
não são utilizadas. Estas combinações “proibidas” são chamadas de
pseudo tetrad.
INTEGER O tipo de dados INT é um inteiro (16 bits). O bit de sinal (bit nº 15) indica
(INTEIRO) se você está tratando com números positivos ou negativos (“0” =
positivo, “1” = negativo). A faixa de um inteiro (16 bits) está entre –32768
e + 32767.
Um inteiro ocupa uma palavrade memória. Em formato binário, um
inteiro negativo é representado com o complemento de dois de um
número inteiro positivo. Você chega ao complemento de dois de um
inteiro positivo quando inverte o estado do sinal de todos os bits e
adiciona “1” ao resultado.
90 SENAI
Controlador Lógico Programável
BCD_1 BCD_1
EN ENO L IW4
BTI
IW4 IN OUT MW20 T MW20
DI_REAL
BCD_1
EN ENO L MD10
DTR
MD10 IN OUT MD30 T MD30
ROUND
BCD_1
L MD33
EN ENO
RND
MD33 MD69 T MD69
IN OUT
ENO = Enable A saída enable output tem o mesmo estado de sinal que EN (EN=
Output ENO) a menos que tenha havido um erro durante a conversão.
Por exemplo, a instrução Round fornece o ENO=0 para uma
violação de faixa válida.
IN = Valor de entrada Valor a ser convertido
SENAI 91
Controlador Lógico Programável
WAND_W WAND_W
EN ENO L IW4
IN1
L W#16#OFFF
IW4
AW
W#16#OFFF IN2 OUT MW30 T MW30
WAND_W WOR_W
EN ENO L MW32
IN1 L W#16#0001
MW32
IN2 OUT OW
W#16#0001 MW32 T MW32
WAND_W WXOR_W
EN ENO L IW0
IN1 L MW28
IW0
IN2 OUT XOW
MW28 MW24 T MW24
WOR-W A instrução “Word OR” combina dosi valores digitais baseados na tabela
verdade OR bit a bit, para valores de entrada IN1 e IN2. O resultado da
operação OR é salvo no endereço OUT. A instrução é executada, se o
estado da entrada EN=1. ENO tem o mesmo estado de sinal de EN.
92 SENAI
Controlador Lógico Programável
VVXOR-W A instrução “Word Exclusive OR” combina dois valores binários das
entradas EN1 e EN2 bit a bit e de acordo com a tabela verdade OR
Exclusive. O resultado da operação WXOR é salvo no endereço OUT. A
instrução é ativada, se a entrada EN=1 tem o mesmo estado do sinal de
EN.
SENAI 93
Controlador Lógico Programável
LAD/FDB STL
ADD_I
SUB_I
MUL_DI
DIV_R
Existem várias funções aritméticas, como exibidas abaixo. As instruções tem o seguinte
formato:
94 SENAI
Controlador Lógico Programável
LAD/FDB STL
SQRT
SIN
SQR
TAN
ENO = Habilita saída A saída Enable output tem o mesmo estado de sinal que EN
(EN=ENO), a menos que tenha havido um erro durante a conversão.
Por exemplo, quando há um overflow.
SENAI 95
Controlador Lógico Programável
LAD/FDB STL
SHL_W
ROR_DW
Com as instruções Shift e Rotate, você pode deslocar o conteúdo da mais baixa word do
Acumulador 1 ou o conteúdo do acumulador para a direita ou para a esquerda, bit a bit. A
instrução (por ex., SLW=desloca palavra para a esquerda) determina a direção da operação
de deslocamento. O parâmetro N especifica o número de bits a serem deslocados. Na
operação de deslocamento de palavra, os bits vazios são preenchidos com o bit (MSB) de
sinal (0=positivo e 1=negativo). Na operação de rotação, os bits vazios são preenchidos com
o conteúdo que foi rotacionado.
Instruções de Deslocamento:
96 SENAI
Controlador Lógico Programável
Instruções de Rotação:
SENAI 97
Controlador Lógico Programável
NETWORK 2
NETWORK 3
Network 1: Um contador crescente que dispara quando a entrada I 0.0 mudar de 0 para 1.
O valor corrente é salvo na MW4 em BCD.
Network 2: O valor é convertido para duplo inteiro e então para REAL. (Um valor BCD não
pode ser diretamente convertido para número REAL). O resultado da Segunda conversão é
dividido pelo valor 6.0. O número em ponto flutuante, que é, o resultado da divisão, é salvo
na MD20.
Resultado Quando acionado (contador crescente) I 0.0, pode-se ver como o display
é incrementado de um para cada múltiplo de seis (por exemplo, para o
status iguala 7 contador, deve ser exibido 1).
98 SENAI
Controlador Lógico Programável
Testes e Depuração
11.1 Usando o Status do Editor LAD/STL/FBD
Status de Programa Com o Editor LAD/STL/FBD, você pode exibir o programa e o fluxo do
sinal na linguagem de programação desejada.
NOTA Para mudar a forma de visualização (ex.: entre LAD e STL), o status
deve estar desligado. Selecionando novamente Debug Monitor, a
marca antes de “Monitor” desaparece. Para mudar a linguagem de
programação selecione View LAD, FBD ou STL no menu do Editor de
Programas. Então o status do programa pode ser selecionado
novamente, depois que a forma de visualização foi mudada.
SENAI 99
Controlador Lógico Programável
Há dois modos de operação para a função de Status do Bloco. Isto torna possível
selecionar o modo processo ou laboratório para o bloco aberto on-line.
Modo Laboratory O status dos operandos é avaliado todo scan. O tempo de ciclo pode ser
aumentado significamente neste modo.
100 SENAI
Controlador Lógico Programável
SENAI 101
Controlador Lógico Programável
View Com o ítem “View”, pode-se selecionar opções de formato para a tabela
de variáveis. As opções de exibição podem ser selecionadas com o
comando menu Variable Monitor/modify (View) ou no ícone mencionado
acima na barra de ferramentas.
102 SENAI
Controlador Lógico Programável
Funções, Parâmetros e
Dados Locais
12.1 Chamando Blocos
Execução
do Programa
A instrução “Call” é usada para disparar a execução de um outro bloco lógico. Na figura
acima quando o 1º bloco encontra a instrução Call, o programa interrompe a execução deste
bloco e passa a executar a 1ª instrução do bloco chamado. Após ser executada a última
instrução do bloco chamado, o programa retorna ao bloco chamado e continua a sua
execução logo após a instrução Call.
SENAI 103
Controlador Lógico Programável
12.2 Parâmetros
EN ENO
EN/ENO em STL Em STL, o EN e ENO tem que ser emulado com instruções de jump
salvando o RLO no resultado binário BR. Isto é necessário se desejamos
programar a condição ENO em um bloco de usuário (caso de erro de
execução).
A I 11.0
JNB SALT
CALL FC1
SALT: A BR
= Q 9.0
104 SENAI
Controlador Lógico Programável
Variáveis Internas Na tabela de Declarações são definidas as variáveis que serão utilizadas
de um Bloco internamente em um bloco. Cada tipo de variável tem uma finalidade
específica.
Variáveis
Temporárias As variáveis temporárias, também denominadas locais, são variáveis
de rascunho válidas exclusivamente no bloco em que foram definidas.
Ao contrário das variáveis estáticas, estas variáveis não possuem
endereço fixo (são armazenadas temporariamente na “L stack”), estando
disponíveis somente enquanto o bloco estiver sendo executado. Assim
estas variáveis obrigatoriamente tem que ser iniciadas a cada ciclo do
bloco, não servindo para armazenar dados de um ciclo para o outro.
SENAI 105
Controlador Lógico Programável
Parâmetros de um Bloco
LAD DB45
FB7 Chama FB7 (usando o bloco de
EN ENO dados Instance DB45) e
Endereço “Atual” passagem de parâmetros.
onde os dados I 1.0 Liga Motor M 2.1
residem ou irão ser I 1.1 Desl.
arquivados.
Parâmetros “Formais”
do FB.
106 SENAI
Controlador Lógico Programável
Pilha Local (L stack) Todo o bloco quando está sendo executado possui uma
área de memória reservada na chamda pilha local (L stack). Esta
memória temporária é uma eficiente forma de usar o sistema para
arquivar valores intermediários que não são necessários depois que o
bloco é fechado. Estas variáveis (temp) são acessadas internamente no
bloco pelo nome simbólico. O tipo de dado declarado da variável deve
ser respeitado (BOOL, INT, etc.)
Inicialização Esta variável não existe fisicamente, sendo utilizado a pilha local para
alocá-la durante a execução do bloco. Sendo assim a cada chamada do
bloco esta variável tem que ser inicializada, isto é, o valor que esta
variável continha do ciclo anterior não podeser re-aproveitada.
Limites Sendo uma área de memória da CPU, existem limites para a criação e
uso destas variáveis. Estes limites dependem do tipo de CPU e da
organização do programa. Detalhes podem ser vistos no capítulo sobre
Documentação.
SENAI 107
Controlador Lógico Programável
OB1 FC1
sem parâmetros
Chama FC1
incondicionalmente e
não passa valores.
108 SENAI
Controlador Lógico Programável
Programação Simbólica
13.1 Endereço Simbólico e Absoluto
SENAI 109
Controlador Lógico Programável
110 SENAI
Controlador Lógico Programável
Symbol List A lista de simbólicos é uma base de dados comuns na qual as realções
entre nomes simbólicos e nomes absolutos são definidas.
Todas as ferramentas S7 podem acessar a lista de simbólicos (Editor
LAD/STL/FBD, Tabela de Variáveis, etc.).
Simbólicos Globais A declaração de simbólicos globais pode ser acessada por todos os
componentes do programa. Os simbólicos têm que ser criados na lista
de simbólicos antes de serem acessados por sua aplicação. É possível
porém durante a edição do programa, no editor de programas, criar
nomes simbólicos diretamente.
SENAI 111
Controlador Lógico Programável
Quando você criar um novo programa S7, o ícone da lista de simbólicos é automaticamente
criado.
Digitando uma Lista Comece com o campo Symbol e com a tecla TAB salte para o próximo
de Simbólicos campo. Você pode deixar o campo Data Type em branco, o tipo de
dados é automaticamente preenchido.
112 SENAI
Controlador Lógico Programável
Na figura acima a ferramenta Symbol Editor com uma lista de simbólicos de transportador.
Atributos Os atributos são designados, na ordem reversa dos dados, por exemplo,
para uma interface do sistema operação. Os atributos têm os seguintes
significados:
SENAI 113
Controlador Lógico Programável
114 SENAI
Controlador Lógico Programável
SENAI 115
Controlador Lógico Programável
As listas de símbolos podem ser transferidas para outro projeto com o Export e Import do
Editor de Símbolos. Também podem ser exportadas para outro aplicativo, como por exemplo
um sistema CAD.
Passos Procedimento
1 Abrir a lista de símbolos que você deseja exportar. Ativar o comando de
menu Symbol Table Export.
2 Setar o formato para o qual você deseja exportar os dados (DIF, ASCII,
SDF, SEQ).
3 Na janela de seleção de arquivo, selecionar o diretório de destino e
digitar o nome, tal como EXPORTZO.SEQ.
Importando Lista de simbólicos geradas com outra ferramenta, tais como editor de
texto, EXCEL ou STEP 5 podem ser lidas e processadas com a finção
de importação.
• Formato DIF
• Formato ASCII
• Formato SDF
• Formado SEQ (lista de designação do STEP 5).
116 SENAI