Você está na página 1de 178

Escola SENAI “Prof. Dr.

Euryclides de Jesus Zerbini”


Campinas - SP

Controladores Lógicos Programáveis – Módulo avançado


Programação Avançada CLP Siemens S7-300

Sumário

Item Página

Controladores programáveis Siemens 04


Módulos do CLP S7-300 05
Instalação e configuração 06
Características funcionais 07

O Gerenciador Simatic 09

Configurando e parametrizando 12

Conjunto de instruções avançadas do Step7


Instruções de lógica de bit
1) Set / Reset de flip-flop 21

2) Reset / Set de flip-flop 23

Instruções de temporização 30

1) Extended pulse S5 timer (S_PEXT) 31

2) Retentive on-delay timer (S_ODT) 33

Instruções matemáticas com números inteiros 37

Formato de dados do tipo inteiro 41

1) Add integer (ADD_I) 42

2) Subtract integer (SUB_I) 44

3) Multiply integer (MUL_I) 45

4) Divide integer (DIV_I) 46

Instruções matemáticas com números em ponto flutuante (reais) 48

1) Add floating-point numbers (ADD_R) 52

2) Subtract floating-point numbers (SUB_R) 54

3) Multiply floating-point numbers (MUL_R) 56

4) Divide floating-point numbers (DIV_R) 58

5) Valor absoluto de um número real (ABS_R) 61

6) Raiz quadrada de um número real (SQRT_R) 63

7) Logaritmo natural de um número real (LN_R) 64

Instruções de comparação com números inteiros 70

Instruções de conversão de dados 74

1) Conversão I_BDC 75

2) Conversão BCD_I 75

3) Conversão DI_BCD 77

4) Conversão BCD_DI 77

5) Conversão I_DI 78

6) Complemento de 1 de um número inteiro (INV_I) 80

7) Complemento de 1 de um número duplo inteiro (INV_DI) 80

SENAI 2
Programação Avançada CLP Siemens S7-300

8) Complemento de 2 de um número inteiro (NEG_I) 81

9) Complemento de 2 de um número duplo inteiro (NEG_DI) 81

Instruções de deslocamento e rotação de dados


1) Deslocamento de um número inteiro à direita (SHR_I) 81

2) Deslocamento de número duplo inteiro à direita (SHR_DI) 85

3) Rotação de palavra dupla à direita (ROR_DW) 86

4) Rotação de palavra dupla à esquerda (ROL_DW) 87

Instruções de salto
1) Jump incondicional 89

Instruções para controle de programas


1) Função Master Control Relay (MCR) 91

A) Master Control Relay Activate (MCRA)


B) Master Control Relay ON (MCR<)
C) Master Control Relay OFF (MCR>)
D) Master Control Relay Deactivate (MCRD)
2) Chamada de funções (FC) 98

Criando blocos de dados (DB) 109

Criando um programa com blocos de funções (FBs) e blocos de dados (DBS) 113

Instruções para conversão A/D e D/A 123

O módulo analógico SM334 128

Instruções de conversão 130

Controle PID no CLP Siemens Simatic S7-315 2DP 144

Proporcional 144

Derivada 145

Integral 146

O Controle PID no CLP 148

Procedimento para criação de um projeto com controle PID 150

Controles PID com blocos de função 158

Parâmetros de configuração de entrada do PID “CONT_C” FB41 161

Parâmetros de configuração de saída do PID “CONT_C” 164

Conjunto de instruções em STL 166

Exercícios complementares 171

SENAI 3
Programação Avançada CLP Siemens S7-300

Controlador Programável SIEMENS Simatic S7-300

CONTROLADORES PROGRAMÁVEIS SIEMENS

A linha SIMATIC S7 consiste de três tipos de controladores programáveis classificados de acordo


com o desempenho de cada um deles.
SIMATIC S7-200
É um micro PLC desenhado para aplicações de baixo desempenho. É controlado por seu pacote
de software específico, os quais não estão inclusos na série S5 e S7.
SIMATIC S7-300
É um mini controlador modular desenhado para aplicações de baixo desempenho.
SIMATIC S7-400
O S7-400 é projetado para aplicações de desempenho intermediário a alto. Para referências mais
fáceis, os nomes dos módulos S7-300 sempre iniciam com um “3” e os módulos S7-400 iniciam com um
“4”.

ESTRUTURA DE HARDWARE DO S7-300

Com exceção de sistemas de pequeno porte, onde podemos utilizar apenas uma fonte e uma
CPU Compacta, um sistema de controle baseado no CLP SIMATIC S7-300 geralmente é composto por:

SENAI 4
Programação Avançada CLP Siemens S7-300

• Fonte (PS)
• CPU
• Módulos de Expansão
• Módulos de I/O (SM)
• Módulos de Comunicação (CP)
• Módulos de Função (FM)

RACKS DE EXPANSÃO

Chamamos de Rack Central (CR) o trilho que acomoda a CPU, no qual podemos acoplar até 8
módulos de expansão. Caso haja a necessidade de mais módulos de expansão, dependendo do modelo
de CPU, a configuração pode ser ampliada através de Módulos de Interface (IM) num total de até 3
Racks de Expansão (ER) cada qual com mais 8 Módulos de Expansão, totalizando 32 módulos para uma
configuração centralizada.

Caso a aplicação exija um número maior de módulos ou mesmo uma distância maior entre o Rack
Central (CR) e os Racks de Expansão (ER) a configuração pode ser expandida através de uma rede
Profibus-DP e estações de I/O remoto ET 200. Tal expansão pode ser implementada através da
interface Profibus-DP já integrada a algumas CPUs ou através de um Módulo de Comunicação.

MÓDULOS DO CLP S7-300


RACK 1 - UNIDADE CENTRAL DE PROCESSAMENTO
A CPU utilizada no S7-300 é de modelo 312IFM, a qual já inclui os módulos de entradas e saídas
digitais incorporados (10 entradas e 6 saídas digitais).
O part number deste módulo é 312-5AC02-0AB0

SENAI 5
Programação Avançada CLP Siemens S7-300

RACK 2 - FONTE DE ALIMENTAÇÃO


A fonte utilizada neste CLP é a de modelo PS 307 2A, com alimentação direta de 120 / 230V de
entrada e 24VDC 2A de saída.
O part number deste módulo é 1BA00-0AA0

RACK 4 - MÓDULO DE SINAL ANALÓGICO


Os módulos de sinal do SIMATIC S7-300 são comparáveis nas funções aos módulos de entrada e
saída do S5. Contudo, em adição aos módulos simples de sinal, o S7 também provê módulos que
podem receber parâmetros e que têm capacidade de diagnóstico.
O módulo analógico do CLP é composto pelo modelo SM334, com 4 entradas e 2 saídas
analógicas de 8 bits de resolução cada uma.

O part number deste módulo é 334-0CE01-0AA0

Instalação e Configuração

Com uma arquitetura modular o SIMATIC S7-300 provê economia de espaço, flexibilidade de
configuração e rápida expansã. O CLP S7-300 não necessita de racks com números predefinidos de
slots para ser montado, o conjunto de módulos é encaixado e aparafusado sobre um trilho DIN padrão,
os módulos são interligados uns aos outros através de um bus modular que fica embutido no trilho.

SENAI 6
Programação Avançada CLP Siemens S7-300

CARACTERÍSTICAS FUNCIONAIS

Um amplo espectro de CPU’s está disponível para aplicações simples ou aplicações de grande
performance. As CPU’s possibilitam curtos tempos de ciclo, até 1µs. por instrução binária, através de
seus eficientes processadores. Para algumas tarefas especiais, existem CPU’s Compactas com I/O’s,
funções tecnológicas e interfaces de comunicação já integradas.

A grande diversidade de módulos de expansão permite a adaptação da configuração para


qualquer tipo de aplicação, estão disponíveis:

Módulos de I/O (SM)

• Digitais (24Vdc, 48-130Vuc, 120/230VAC, Relé etc)


• Analógicos (±5V, 0-10V, 0/4 até 20mA, Hert etc)

Módulos de Comunicação (CP)

• Profibus DP / FMS
• Ethernet
• AS-interface
• Serial Ponto-a-Ponto
• Modbus

Módulos de Função (FM)

• Contadores rápidos
• Saídas de pulso rápida
• Controle de posição
• Controle de motor de passo
• Controle em malha fechada (PID)

Um total de até 32 módulos de expansão pode ser utilizado em uma configuração centralizada.

Os módulos de expansão para S7-300 também são utilizados na estação de I/O distribuído ET
200M, possibilitando economia com peças de reposição em uma configuração distribuída com CLP S7-
300 e ET 200M.

Comunicação

Alem dos diversos módulos de comunicação que podem ser agregados a configuração, toda CPU
da série S7-300 traz integrada a si uma porta de comunicação MPI (interface multi-ponto). Através desta
porta a CPU é programada e parametrizada. Com a porta MPI é possível ainda implementar uma rede
de pequeno porte com equipamentos SIEMENS, tais como:

• CLPs SIMATIC S7-200/300/400


• Controladores SIMATIC C7
• Interfaces Homem Máquina SIMATIC HMI
• Computadores Industriais SIMATIC PC

Além da interface MPI, alguns modelos de CPU possuem uma segunda interface de comunicação
integrada Profibus ou Serial Ponto-a-Ponto.

SENAI 7
Programação Avançada CLP Siemens S7-300

Programação e Parametrização

A programação do CLP SIMATIC S7-300 é suplementada através do software STEP7 disponível


em três versões STEP7 Lite, STEP7 e STEP7 Professional, desenvolvidas para melhor atender as suas
necessidades.

Aplicações

O SIMATIC S7-300 oferece soluções para as mais diversas tarefas de automação, nas seguintes
áreas:

• Engenharia de produção
• Indústria automobilística
• Construção de máquinas especializadas
• Construção de máquinas em série (todos os tipos de máquinas de produção), OEM
• Processamento de plástico
• Indústria de embalagens
• Indústria alimentícia e de cigarros
• Engenharia de processos (p. e. saneamento, automação predial)

Para aplicações especiais, estão disponíveis produtos adicionais dedicados que complementam a
linha SIMATIC S7-300:

• Aplicações à prova de falhas, com a nova CPU 315F desenvolvida de acordo com as
diretrizes TUV, assim como com os respectivos I/Os, agora é possível programar o conceito de
falha segura em aplicações centralizadas ou distribuídas.
• Componentes especiais para instalação em locais agressivos suportam condições
ambientais rigorosas, p.e. níveis de temperatura maiores.
• SIMATIC C7, CPU’s da série SIMATIC S7-300 com interface homem-máquina (IHM)
integrada, ideal para aplicações em que o espaço para instalação é extremamente restrito.

COMBINANDO HARDWARE E SOFTWARE


Usando o software SET7, você pode criar seu programa S7 dentro de um projeto. O controlador
programável S7 monitora e controla o processo com este programa.

SENAI 8
Programação Avançada CLP Siemens S7-300

Esquema básico de controle via CLP

O GERENCIADOR SIMATIC
Iniciando o SIMATIC Manager e criando um projeto
O ponto inicial de acesso do gerenciador Simatic é o ícone dele, chamado de STEP7. Este ícone
abre a janela deste gerenciador na qual podemos configurar todo o hardware do CLP, bem como abrir
um novo projeto de programação.
Todo programa criado deve ser feito sobre um projeto que possui diversos objetos, sendo este
objeto chamado de OB1.
Deste gerenciador podem-se acessar todas as funções instaladas no sistema (sistema padrão e
todos os softwares).
Desta janela podemos fazer o seguinte:
• Montar os projetos
• Configurar e fornecer parâmetros de hardware
• Configurar as configurações de comunicação
• Criar os programas
• Testar os programas e iniciar sua execução

SENAI 9
Programação Avançada CLP Siemens S7-300

ESTRUTURA DE UM PROJETO S7
Definição de um projeto
Os projetos contêm todos os dados e programas para uma solução de automação. O propósito
deles é prover um armazenamento organizado de dados e programas criados para cada aplicação.
Projetos no SETP7
No S7 um projeto contém todos os arquivos criados para um programa usuário no arquivo de
projeto. Este arquivo de projeto contém informação necessária para edição e manutenção do programa
do usuário, tais como ajustes de parâmetros, bem como os catálogos e nomes de arquivos.

SENAI 10
Programação Avançada CLP Siemens S7-300

PROCEDIMENTO BÁSICO DE USO DO STEP7


Antes de você criar um projeto, você deve saber que os projetos no STEP7 podem ser criados em
diferentes ordens.

Se você criar programas com muitas entradas e saídas, recomendamos que você configure o
hardware do CLP em primeiro lugar. A vantagem disto é que o S7 mostra os endereços possíveis no
editor de configuração de hardware (Hardware Configuration Editor).
Se você escolher a segunda opção, você terá que determinar cada endereço e, dependendo dos
componentes selecionados você não poderá chamar esses endereços via STEP7.
Na configuração de hardware, você pode não somente definir endereços, mas também alterar os
parâmetros e propriedades dos módulos.

Estrutura de projeto no Simatic Manager

Projeto

A estrutura de um projeto de automação se inicia pelo ícone de projeto, localizado no primeiro nível,
o qual é identificado pelo nome do projeto.
Simatic 300 Station (Estação de Hardware)
Para definir e parametrizar o hardware deve-se criar a estação de HW (S7-300). A estação criada
(S7-312IFM) pode ter seu nome alterado pelo usuário e seus módulos são definidos pela ferramenta
Station Configuration. Ao se definir os módulos, o sistema automaticamente cria os subdiretórios
respectivos (CPU, Programa, Blocks, etc.).

SENAI 11
Programação Avançada CLP Siemens S7-300

S7 PROGRAM (PROGRAMAS S7)


O programa do usuário referente a um CLP propriamente dito é localizado sob o diretório S7
Programs. Este diretório pode estar associado ou não a uma estação específica criada. Associada a um
HW, o diretório se encontra subordinado à CPU. Caso contrário, fica subordinado diretamente ao projeto.
Nos subdiretórios Source e Blocks estão localizados os programas do usuário, em arquivos fonte
ou em blocos S7, respectivamente.

CONFIGURANDO E PARAMETRIZANDO O S7

Pré-requisito: Para configurar o hardware um projeto já deverá ter sido criado.


Inserindo uma estação
Para criar uma nova estação no projeto, siga estes passos:
1. Selecione um projeto
2. Crie o objeto para o hardware solicitado selecionando o comando do menu (Insert –
Station)
No sub-menu você pode selecionar as seguintes opções:
• Estação Simatic S300
• Estação Simatic S400
• Dispositivos de programação
• Outras estações

SENAI 12
Programação Avançada CLP Siemens S7-300

CONFIGURAÇÃO DE HARDWARE

Configuração de hardware
O termo configuração se refere ao arranjo de racks, módulos, racks de I/O distribuídos e
submódulos de interface na janela da estação. Os racks são representados por uma tabela de
configuração que permite um número específico de módulos serem inseridos, assim como em um rack
real.
Na tabela de configuração, o Step7 automaticamente aloca um endereço para cada módulo. Você
pode alterar esses endereços na estação se a CPU puder ser acessada livremente (um endereço pode
ser alocado livremente para cada canal do módulo, independente do seu slot).
Você pode copiar sua configuração tão frequentemente quanto você desejar para outros projetos
Step7, modifica-los se necessário e fazer o download para uma ou mais plantas existentes. Quando o
CLP iniciar, a CPU compara a configuração criada com a atual configuração da planta. Quaisquer erros
serão então reconhecidos imediatamente e reportados.
Com esta ferramenta é possível:
• Definir os módulos utilizados (CPU, I/O, FM) e a sua parametrização. Por exemplo: tipo
de medição do módulo analógico de entrada.
• Ler a configuração da CPU. Por exemplo: designação dos módulos no rack.
• Ler diagnóstico de dados referentes aos módulos (system diagnostics)
Na janela online (diagnóstico de HW) é exibida a configuração da estação que está acessível
online. Informações de status ou estado de operação de cada módulo é mostrado no relatório simbólico
do módulo (system diagnostics).
A tecla F5 atualiza a exibição. Para obter mais informações, basta dar um duplo clique no símbolo.
A ferramenta é iniciada, por exemplo, pela seleção de uma estação de hardware no Simatic
Manager ou via comando do menu Edit Î Open Object.
A pasta Simatic 300 Station, sub-pasta Hardware, contém toda a configuração de hardware do
CLP usado no projeto iniciado.

SENAI 13
Programação Avançada CLP Siemens S7-300

Configurando
O usuário especifica a posição dos módulos no rack e os endereços são definidos
automaticamente (nas CPUs 315-2 e do S7-400 o usuário pode alterar os endereços). A esta
configuração denominaremos configuração parametrizada.
Durante o início a CPU checa a distribuição dos módulos existentes, que é denominada de
configuração real.

CPU carregada no slot 2 do barramento

SENAI 14
Programação Avançada CLP Siemens S7-300

Fonte de alimentação carregada no slot 1 do barramento

Módulo de E/S carregado no slot 4 do barramento

SENAI 15
Programação Avançada CLP Siemens S7-300

Layout da janela da estação


A parte inferior da janela da estação mostra uma visão detalhada do rack inserido / selecionado.
Os números de pedido (order numbers) e endereços (addresses) dos módulos são mostrados no
formulário da tabela.
A tabela tem sua estrutura exibida abaixo para um rack central equipado com alguns módulos.

Tabela de configuração como uma imagem de um rack


Para uma estrutura central você arranja os módulos ao lado da CPU em um rack e continua
através das expansões adicionais dos racks. O número de racks que podem ser configurados depende
da CPU que você usa.
Como você faz em uma planta real, você arranja seus módulos em racks com o Step7. A diferença
é que os racks do Step7 são representados por “tabelas de configuração” que tem tantas linhas quantos
slots para módulos.
A figura a seguir mostra um exemplo de como uma estrutura real é convertida em uma tabela de
configuração. Essa tabela corresponde ao rack utilizado. O Step7 automaticamente coloca o número dos
racks em janelas em frente aos nomes.
Exemplo: UR (universal rack) corresponde ao rack central número 0.

SENAI 16
Programação Avançada CLP Siemens S7-300

Ajustando parâmetros
Ao invés de setar chaves nos módulos, todos os parâmetros são definidos via software. Podem-se
definir parâmetros para a CPU e para determinados módulos de I/O, tais como módulos analógicos.
Nos parâmetros da CPU estão incluídos, entre outros, o tempo de supervisão de duração de um
ciclo ou o intervalo de tempo para execução de partes do programa.

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 está
disponível, armazenada na CPU.

Configurando o Hardware
Dá-se o nome de configuração parametrizada à configuração de hardware criada pelo usuário,
determinando os módulos existentes e sua localização, bem como a parametrização destes módulos.
A configuração é executada pela ferramenta Configurador de Hardware. A partir do catálogo,
selecionam-se os módulos utilizados, posicionando-os no slot respectivo do trilho ou bastidor.
Naturalmente inicia-se a configuração pelo trilho / bastidor para então se posicionar os outros módulos.
Ao se posicionar um módulo, o sistema automaticamente designa um endereço para ele.
A parametrização dos módulos é realizada dando-se um duplo clique sobre o módulo desejado.
Uma tela de configuração referente ao módulo aparecerá, permitindo a alteração dos parâmetros.

Catálogo eletrônico
O catálogo eletrônico contém toda a lista de módulos existentes no S7. Quando se clica na tecla +,
teremos disponíveis todos os módulos do grupo selecionado.

PARÂMETROS E PROPRIEDADES DA CPU

Setando parâmetros da CPU


As propriedades das CPUs tem uma significância especial para o comportamento do sistema. Nas
caixas de diálogo de uma CPU, você pode ajustar o seguinte, por exemplo: características de
inicialização, áreas de dados locais e prioridades para interrupção, áreas de memória, comportamento
retentivo, memória de clock, nível de proteção e senha.
Na guia “GENERAL” da CPU ou via propriedades da interface da CPU você pode ajustar
parâmetros para as interfaces (por exemplo, interfaces MPI (multipoint interfaces) ou interfaces
integradas PROFIBUS-DP). Via estas caixas de diálogo você também pode acessar as caixas de diálogo
de propriedades para a subrede a qual a CPU está conectada.
Para os controladores programáveis S7-300 você também pode ajustar os parâmetros para alguns
módulos no programa do usuário (por exemplo, para módulos analógicos). Você necessita chamar as
funções de sistema (SFCs) WR_PARM, WR_DPARM e PARM_MOD no programa do usuário para
realizar esta operação. Estes ajustes são perdidos em um reinício a frio.
Entre outros, os seguintes parâmetros podem ser setados na CPU:
• Endereço da interface MPI;
• Características de start-up / ciclo: tempo máximo de ciclo, ciclo de carga para
comunicação, auto teste cíclico e auto teste depois da energização;
• Interrupção cíclica (watchdog – OB35);
• Memória retentiva (flags de memória – marcadores de posição do programa),
temporizadores, contadores e blocos de dados;
• Clock de memória: reduzir a freqüência de byte da memória;

SENAI 17
Programação Avançada CLP Siemens S7-300

• 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 pela CPU.
Depois de setar os parâmetros, deve-se transferi-los ao CLP, através do comando PLC Î
Download. A CPU deverá estar no modo STOP.

Endereço MPI
Se for necessário conectar vários CLPs entre si via interface MPI, deverão ser adotados endereços
diferentes para cada equipamento (CPU)

SENAI 18
Programação Avançada CLP Siemens S7-300

SENAI 19
Programação Avançada CLP Siemens S7-300

SETANDO PARÂMETROS EM MÓDULOS DE SINAIS


Parâmetros nos módulos de sinais são variáveis que contem os ajustes da resposta dos níveis de
sinais dos módulos (um ou mais por módulo). Todos os módulos têm ajustes default. Os ajustes para a
maioria dos módulos S7 podem ser modificados usando o HW Configuration ou pro meio de SFCs no
programa do usuário.
Existem dois tipos de parâmetros para estes módulos:
• Parâmetros estáticos Î ajustes dos módulos podem ser modificados com o S7 HW
Configuration, mas não com SFCs 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 Step7.
Abaixo é apresentada a tela de entrada para configuração do módulo analógico.

SENAI 20
Programação Avançada CLP Siemens S7-300

Conjunto de instruções avançadas do STEP7

INSTRUÇÕES DE LÓGICA DE BIT


As instruções de lógica de bit trabalham com dois dígitos (1 e 0). Estes dois dígitos formam a base
do sistema numérico chamado binário. Os dois dígitos são chamados de dígitos binários ou bits. No
universo dos contatos e bobinas, um dígito 1 indica energizado ou ativado e o 0 indica não ativado /
energizado.
As instruções de lógica de bit interpretam os estados de sinal 1 e 0 e os combina de acordo com
as regras de uma lógica Booleana. As combinações produzem um resultado 1 ou 0, conhecidos como
resultado da operação lógica (RLO).

Funções
As instruções de lógica de bit estão disponíveis para as seguintes funções:
• AND, OR e XORÎ estas instruções checam o estado do sinal e produzem um resultado
que pode tanto ser copiado para o bit RLO (resultado da operação lógica) ou combinado
com ele. Com operações de lógica AND, o resultado do sinal de estado é combinado de
acordo com a tabela verdade desta função lógica. Com operações lógicas OR, o resultado
é combinado de acordo com a TV da função OR.
• As seguintes instruções reagem em função de um RLO = 1Î Set Output e Reset Output;
Set_Reset flip-flop e Reset_Set flip-flop.
• Algumas instruções reagem durante a subida ou descida do pulso. Assim, você pode
executar as seguintes instruçõesÎ incrementar ou decrementar o valor de um contador;
inicializar um temporizador; produzir uma saída 1.

1) Instrução Set Reset Flip-flop


Descrição
Esta instrução executa operações de Set (S - liga) e de Reset (R – desliga) somente quando
RLO=1. Um RLO=0 não tem efeito sobre esta operação. O endereço especificado na operação
permanece inalterado.
Um flip=flop Set_Reset é ligado se o estado do sinal é 1 na entrada S e 0 na entrada R. Caso
contrário, se o estado do sinal é 0 na entrada S e 1 na entrada R, o flip=flop é resetado. Se RLO é igual a
1 em ambas as entradas, o flip-flop também é resetado.
Esta instrução é afetada pela instrução Relé Mestre de Controle (MCR), que veremos adiante.

Parâmetros da instrução Set Reset de flip-flop

SENAI 21
Programação Avançada CLP Siemens S7-300

Exemplo de programa com a instrução

Exemplo de utilização da instrução em bloco de funções (FBD)

Exemplo de utilização da instrução em lista de instruções (STL)

SENAI 22
Programação Avançada CLP Siemens S7-300

2) Instrução Reset Set Flip-flop


Descrição
Esta instrução executa operações de Set e Reset somente quando RLO é igual a 1. O flip flop é
resetado se o estado do sinal é 0 na entrada R e 1 na entrada S. Nas condições opostas (R=1 e S=0), o
flip flop é setado. Se RLO é igual a 1 em ambas as entradas, ele será setado. Esta instrução também é
influenciada pela instrução Relé Mestre.

Parâmetros da instrução Reset Set de flip-flop

Exemplo de programa com a instrução

Exemplo de utilização da instrução em bloco de funções (FBD)

SENAI 23
Programação Avançada CLP Siemens S7-300

Exemplo de utilização da instrução em lista de instruções (STL)

EXERCÍCIO
Utilizando-se deste conjunto de instruções, montar um programa em linguagem FBD para
realizar o controle de inversão de rotação de um motor trifásico.
Convenções
Botão desliga S0Î I124.0
Relé térmico F7Î I124.1
Botão liga S1(sentido horário)Î I124.2
Botão liga S2 (sentido anti-horário)Î I124.3
Contator K1Î Q124.0
Contator K2Î Q124.1
Contato de intertravamento K1(31-32)Î I124.4
Contato de intertravamento K2 (31-32)Î I124.5

SENAI 24
Programação Avançada CLP Siemens S7-300

RESOLUÇÃO DO EXERCÍCIO
EM LINGUAGEM LADDER

EM LINGUAGEM DE BLOCOS DE FUNÇÃO (FBD)

SENAI 25
Programação Avançada CLP Siemens S7-300

SENAI 26
Programação Avançada CLP Siemens S7-300

Descrição das linhas de instrução do programa

SENAI 27
Programação Avançada CLP Siemens S7-300

SENAI 28
Programação Avançada CLP Siemens S7-300

INTERFACE ELÉTRICA DAS ENTRADAS E SAÍDAS

SENAI 29
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES DE TEMPORIZAÇÃO
Os temporizadores têm uma área reservada para eles na memória da CPU. Esta área de memória
reserva uma palavra de 16 bits para cada endereço de temporizador utilizado no programa. O set de
instruções em Ladder suporta até 256 instruções no mesmo programa.
As seguintes instruções têm acesso direto à área de memória de temporização:
• Instruções de temporização;
• Atualização das palavras de temporização durante o clock. Esta função da CPU, em modo
RUN, decrementa um dado valor de tempo de uma unidade no intervalo designado por uma
base de tempo até que o valor de tempo seja igual a zero.

Valor de tempo
Os bits de 0 a 9 de uma palavra de temporização contêm o valor de tempo em modo binário. Este
valor especifica o número de unidades a serem decrementadas. A atualização de tempo decrementa o
valor de uma unidade no intervalo designado pela base de tempo e este continua até chegar a zero.
Você pode carregar o valor de tempo em uma palavra baixa do acumulador 1 em binário, hexadecimal
ou BCD (binary coded decimal). A escala de tempo vai de 0 a 9.990 segundos.
Você pode pré-carregar o valor de tempo usando ambos os formatos a seguir:
• W#16#wxyz, onde:Î W é a base de tempo e wxyz é o valor de temporização
• S5T#aH_bbM_ccS_ddMS, onde:Î a = horas, bb = minutos, cc = segundos e dd =
milisegundos. A base de tempo é selecionada automaticamente.
O máximo valor que você pode carregar é 9.990 segundos, ou 2H_46M_30S.

Base de tempo
Os bits 12 e 13 de uma palavra de temporização contêm a base de tempo em código binário. Ela
define o intervalo no qual o valor de tempo é decrementado de uma unidade. A menor base de tempo é
10ms e a maior de 10s.

Pelo fato dos valores de tempo estar armazenados somente com um intervalo de tempo, valores
que não são exatamente múltiplos deste intervalo serão truncados. Valores com resolução muito alta
para a faixa requerida são arredondados para encontrar a faixa desejada, mas não a resolução
requerida. A tabela abaixo mostra as possíveis resoluções e suas faixas correspondentes.

SENAI 30
Programação Avançada CLP Siemens S7-300

Configuração de bits na célula de temporização


Quando um temporizador é inicializado, os conteúdos da célula de temporização são usados como
valor de tempo. Os bits 0 até 11 da célula armazenam o valor de tempo em BCD. Os bits 12 e 13
armazenam a base de tempo também em BCD. A figura a seguir exibe estas informações com uma
carga de valor de tempo em 127 e base de tempo em 1 segundo.

1) Extended Pulse S5 Timer (temporizador de pulso estendido)


Descrição
Esta instrução inicializa o temporizador se houver uma borda de pulso positiva (borda de subida –
de 0 para 1) na entrada Start (S). Uma mudança de sinal é sempre necessária para este procedimento.
O temporizador continua a rodar com o tempo especificado na entrada Time Value (TV – valor de
tempo), mesmo se o estado do sinal na entrada S mudar para 0 antes do tempo ter terminado.
Um sinal de checagem de estado em 1 na saída Q produz um resultado de 1 enquanto o
temporizador estiver rodando. O temporizador é reinicializado com o tempo especificado se o estado do
sinal na entrada S for de 0 para 1 enquanto ele estiver rodando.
Uma alteração de 0 para 1 na entrada Reset (R) enquanto o temporizador está rodando faz o
mesmo resetar. Essa alteração também reseta o tempo e a base de tempo dele.
O valor atual de tempo pode ser monitorado nas saídas BI e BCD. O valor de tempo em BI está em
formato BCD.

SENAI 31
Programação Avançada CLP Siemens S7-300

Exemplo de aplicação
A figura abaixo mostra a instrução S_PEXT e as características do temporizador de pulso.

SENAI 32
Programação Avançada CLP Siemens S7-300

Configuração da instrução para FBD

Configuração da instrução para STL

2) Retentive On-Delay S5 Timer (temporizador retentivo em atraso)


Descrição
Esta instrução inicia o temporizador se houver um pulso positivo (de 0 para 1) na entrada Start (S).
A mudança de sinal é necessária para essa inicialização. O temporizador continua a rodar dentro do
valor de tempo especificado na entrada Time Value (TV), mesmo se o estado do sinal na entrada S
mudar para 0 antes do tempo ter expirado.
Um sinal de checagem de estado em 1 na saída Q produz um resultado de 1 quando o tempo tiver
terminado. O temporizador é reinicializado com o tempo especificado se o sinal na entrada S mudar de 0
para 1 enquanto o mesmo estiver rodando.
Uma mudança de 0 para 1 na entrada R provoca o reset do temporizador sem levar em
consideração o valor de RLO na entrada S.

SENAI 33
Programação Avançada CLP Siemens S7-300

Exemplo de aplicação

SENAI 34
Programação Avançada CLP Siemens S7-300

Configuração da instrução para FBD

Configuração da instrução para STL

SENAI 35
Programação Avançada CLP Siemens S7-300

EXERCÍCIO
PARTIDA CONSECUTIVA DE MOTORES TRIFÁSICOS

Montar um programa em para controle de uma esteira transportadora de cereais que possui 4
motores trifásicos. A partida desses motores é seqüencial e temporizada (10s de intervalo entre a partida
de um motor e do outro). O sistema também possui dois sensores de nível no tanque de armazenamento
(silo) e que controlam a condição dessas partidas. Se o silo estiver cheio (sensor 2 atuado), os motores
não podem ligar. Se o nível estiver intermediário ou baixo, a partida é liberada.

Seqüência operacional
Observe a seguir o circuito composto por quatro motores que devem partir em seqüência.

O circuito de comando para o circuito acima é mostrado a seguir (esteiras transportadoras).

SENAI 36
Programação Avançada CLP Siemens S7-300

Quando o botão Ch1 é acionado, o contador C1 e o relé d1 são energizados (se o sensor de nível
mínimo S1 der condições – silo vazio). O motor M1 parte.
Decorrido o tempo ajustado para d1, este energiza C2 e d2. O motor M2 parte.
Decorrido o tempo ajustado para d2, este energiza C3 e d3. O motor M3 parte.
Após o tempo ajustado para d3, este energiza C4, dando partida a M4, o último motor da seqüência.
Quando o silo estiver cheio (sensor de nível S2 atuado), os motores devem ser desligados
instantaneamente.

Aplicação
O sistema de partida consecutiva é aplicado no acionamento de correias transportadoras.

Os quatro motores devem acionar as esteiras e seu sentido de condução é M4, M3, M2, M1. Assim,
as ligações dos motores devem obedecer a seguinte ordem: M1, M2, M3 e M4, ou seja, no sentido inverso.
Se um dos motores é desligado em razão de sobrecarga, por exemplo, todos os motores à frente
dele no sentido da condução serão desligados.
O fornecimento de carga às esteiras é interrompido e os motores montados anteriormente
continuam a funcionar até o descarregamento das respectivas esteiras.

Veja o resumo seqüencial na tabela a seguir.

Defeito no circuito Conseqüência


comandado por: Desliga Continua ligado
Desliga
C4 M4 M1, M2 e M3
C3 M3 M4 M1 e M2
C2 M2 M3 e M4 M1
C1 M1 M2, M3 e M4

SENAI 37
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES MATEMÁTICAS COM NÚMEROS INTEIROS

Antes de iniciarmos a abordagem deste grupo de instruções, veremos uma explanação sobre o
que denominamos de palavra de estado (ou STATUS WORD).
Status Word
Esta palavra binária contém bits que você pode usar como referência no endereçamento de
instruções de lógica de bit ou então em operações matemáticas, como é o nosso caso neste momento.
Veremos a seguir o significado do conjunto de 8 bits menos significativos desta palavra.

Estrutura do Status Word

Convenções utilizadas no Status Word

Descrições dos bits do Status Word

FC – First CheckÎ Bit 0 do status word. No início de uma rede lógica Ladder, o sinal de estado
do bit FC é sempre 0, ao menos que uma rede prévia tenha terminado com a instrução ---(SAVE). A
barra sobre a função indica que ela é negada, ou seja, sempre em 0 no início de uma lógica Ladder.
Cada instrução lógica checa o estado de sinal do bit FC assim como o estado de sinal do endereço
da instrução de contato. O estado do sinal de FC determina a seqüência da lógica. Se FC é 0 (no início
da lógica Ladder), a instrução armazena o resultado e ajusta o bit FC para 1. O processo de checagem é
chamado first check (primeira checagem). O 1 ou 0 que é armazenado em RLO depois da primeira
checagem é então referenciado como o resultado de FC.
Se o estado do bit de FC é 1, uma operação então liga o resultado deste sinal com RLO formado
pelo contato endereçado desde a primeira checagem e armazena o resultado em RLO.

Result of Logic Operation (RLO)Î Este é o bit 1 da palavra de setado. Este bit armazena o
resultado de uma instrução lógica ou comparações matemáticas.
Por exemplo, a primeira instrução lógica em Ladder checa o estado do sinal de um contato e
produz 1 ou 0 como resultado. Ela armazena este resultado no bit RLO. Uma segunda instrução também
checa o estado de um contato e produz um resultado. Então, a instrução combina este resultado com o
valor armazenado em RLO usando álgebra booleana. O resultado desta operação lógica é armazenado
em RLO, alterando o valor anterior armazenado lá.
Cada instrução subseqüente na execução realiza uma operação lógica em dois valores: o
resultado produzido quando a instrução checa o contato e o valor corrente de RLO.

SENAI 38
Programação Avançada CLP Siemens S7-300

Status Bit (STA) Î Bit 2 da palavra de estado, chamada de status bit. O bit de estado armazena o
valor de um bit que é referenciado. O estado de uma instrução de bit que tenha lido uma memória
(contato normalmente aberto ou fechado) é sempre o mesmo que o valor do bit que esta instrução
verifica.
O estado de uma instrução de bit que tenha escrito em uma memória (set coil, reset coil, output
coil) é o mesmo que o valor do bit que a instrução escreve ou, se não houver escrita, o mesmo valor do
bit ao qual a instrução está referenciada.
OR Bit (OR) Î Bit 3 da palavra de estado chamado de bit OR. Este bit necessite que você use
instruções de Contato para realizar operações lógicas OR com uma função AND. Este bit mostra
instruções que foram previamente executadas e que forneceram valor 1.
Overflow Bit (OV) Î Bit 5 da palavra de estado e indica a ocorrência de um erro. Ele é setado por
uma instrução matemática ou uma instrução de compação em ponto flutuante depois da ocorrência de
um destes erros: sobrecarga, operação ilegal, número ilegal.
Stored Overflow Bit (OS) Î Bit 4 que é setado juntamente com o bit OV se um erro ocorrer. Pelo
fato do bit OS permanecer ligado depois do erro ter sido eliminado (diferentemente do bit OV), ele indica
se um erro ocorreu em uma das instruções executadas previamente.
Condition Code 1 and Condition Code 0 Î São os bits 6 e 7 da palavra de estado (CC1 e CC0)
e fornecem informação nos seguintes resultados ou bits:
• Resultado de uma operação matemática;
• Resultado de uma comparação;
• Resultado de uma operação digital;
• Bits que tenham sido deslocados ou rotacionados por um comando.

A tabela abaixo lista o significado de CC1 e CC0 após o programa do usuário executar certas
instruções.

CC1 e CC0 depois da execução de Instruções Matemáticas com números inteiros, sem
Overflow

CC1 CC0 Explanação

0 0 Overflow de faixa negativa em uma adição com números inteiros ou adição de


duplo número inteiro

0 1 Overflow de faixa negativa na multiplicação inteira e multiplicação de duplo


inteiro.
Overflow de faixa positiva em adição inteira, subtração inteira, adição de duplo
inteiro, subtração de duplo inteiro, complemento de dois inteiro e complemento
de dois de duplo inteiro.

1 0 Overflow positivo em multiplicação inteira e de duplo inteiro, divisão inteira e


de duplo inteiro.

SENAI 39
Programação Avançada CLP Siemens S7-300

Overflow negativo em soma inteira, subtração inteira, soma de duplo inteiro e


subtração de duplo inteiro.

1 1 Divisão por zero em divisão inteira, divisão de duplo inteiro e retorno de fração
de duplo inteiro.

CC1 e CC0 depois da execução de Instruções Matemáticas em ponto flutuante, com


Overflow

CC1 CC0 Explanação

0 0 Overflow gradual

0 1 Overflow de faixa negativa

1 0 Overflow de faixa positiva

1 1 Operação ilegal

CC1 e CC0 depois da execução de Instruções de comparação

CC1 CC0 Explanação

0 0 IN2=IN1

0 1 IN2<IN1

1 0 IN2>IN1

1 1 IN1 ou IN2 são números ilegais de ponto flutuante

CC1 e CC0 depois da execução de Instruções de deslocamento e rotação

CC1 CC0 Explanação

0 0 Último bit deslocado igual a 0

1 0 Último bit deslocado igual a 1

CC1 e CC0 depois da execução de Instruções de palavras lógicas

CC1 CC0 Explanação

0 0 Resultado = 0

1 0 Resultado <>0

SENAI 40
Programação Avançada CLP Siemens S7-300

Binary Result Bit (BR) Î Este bit forma uma conexão entre o processamento de bits e palavras.
Ele habilita o programa do usuário a interpretar o resultado de uma operação com palavra como um
resultado binário e a interpretar este resultado em uma lógica binária.
Visto deste ângulo, o bit BR representa um marcador de memória interno no qual o bit RLO é salvo
em função de uma operação de alteração de palavra RLO.
Por exemplo: o bit BR torna possível ao usuário escrever um bloco de função (FB) ou uma função
(FC) em uma lista de instrução (STL) e então chamar o FB ou FC de uma lógica Ladder.

FORMATO DE DADOS DO TIPO INTEIRO


Um número inteiro tem um sinal que indica se ele é positivo ou negativo. O espaço que este tipo
de dado ocupa (de 16 bits) em uma memória é chamado de UMA PALAVRA. A tabela a seguir mostra a
faixa de um inteiro de 16 bits.

SENAI 41
Programação Avançada CLP Siemens S7-300

1) Add Integer (soma de números inteiros)

Descrição
Aplicando-se nível 1 na entrada Enable (EN) a instrução é ativada. Ela realiza a soma entre os
valores presentes nas entradas IN1 (input 1) e IN2 (input 2) e o resultado pode ser visualizado na saída
OUT. Se o resultado estiver fora da faixa permitida para um número inteiro, os bits OV e OS da palavra
de estado estarão em 1 e a saída ENO é 0.
Exemplo de aplicação

SENAI 42
Programação Avançada CLP Siemens S7-300

Conversão do programa para STL

SENAI 43
Programação Avançada CLP Siemens S7-300

2) Subtract Integer (subtração de números inteiros)

Descrição
Aplicando-se nível 1 na entrada Enable (EN), a instrução de subtração é ativada, realizando esta
operação entre os valores das entradas IN1 e IN2 (IN1 – IN2). O resultado pode ser visualizado na saída
OUT. Se o resultado de saída estiver fora da faixa permitida para um número inteiro, os bits OV e OS da
palavra de estado estão em 1 e a saída ENO (Enable Output) é 0.
Exemplo de aplicação

Conversão do programa para STL


A lógica 1 convertida para STL é idêntica ao programa anterior (ADD_I)

SENAI 44
Programação Avançada CLP Siemens S7-300

3) Multiply Integer (multiplicação de números inteiros)

Descrição
Aplicando-se nível 1 na entrada Enable (EN), a instrução de multiplicação é ativada, realizando
esta operação entre os valores das entradas IN1 e IN2 (IN1 X IN2). O resultado pode ser visualizado na
saída OUT. Se o resultado de saída estiver fora da faixa permitida para um número inteiro de 16 bits, os
bits OV e OS da palavra de estado estão em 1 e a saída ENO (Enable Output) é 0.
Exemplo de aplicação

Conversão do programa para STL


A lógica 1 convertida para STL é idêntica ao programa anterior (ADD_I)

SENAI 45
Programação Avançada CLP Siemens S7-300

4) Divide Integer (divisão de números inteiros)


Descrição
Aplicando-se nível 1 na entrada Enable (EN), a instrução de divisão é ativada, realizando esta
operação entre os valores das entradas IN1 e IN2 (IN1 / IN2). O quociente inteiro (resultado truncado)
pode ser monitorado na saída OUT. A sobra não pode ser escaneada. Se o quociente estiver fora da
faixa permitida para um número inteiro, os bits OV e OS da palavra de estado estão em nível 1 e a saída
ENO é desligada.
Exemplo de aplicação

Conversão do programa para STL


A lógica 1 convertida para STL é idêntica ao programa anterior (ADD_I)

SENAI 46
Programação Avançada CLP Siemens S7-300

Avaliando os bits da Palavra de Estado após a execução de instruções matemáticas


As instruções matemáticas vistas até agora afetam os seguintes bits da palavra de estado após
sua execução:
• CC1 e CC0
• OV
• OS

O sinal (-) nas tabelas a seguir significa que o bit não é afetado pelo resultado da operação
matemática.
Tabela para valores dentro da escala válida

Escala válida para o resultado com números inteiros (16 e 32 bits) Bits da palavra de estado

CC1 CC0 OV OS

0 (zero) 0 0 0 -

16 bits Î resultado entre 0 e o valor -32.768 (número negativo)


0 1 0 -
32 bits Î resultado entre 0 e -2.147.483.648 (número negativo)

16 bits Î resultado entre 0 e o valor 32.767 (número positivo)


1 0 0 -
32 bits Î resultado entre 0 e 2.147.483.647 (número positivo)

Tabela para valores fora da escala válida

Escala válida para o resultado com números inteiros (16 e 32 bits) Bits da palavra de estado

CC1 CC0 OV OS

0 (zero) 0 0 0 -

16 bits Î resultado maior do que o valor 32.767 (número positivo)


32 bits Î resultado maior do que o valor 2.147.483.647 (número 0 1 0 -
positivo)

16 bits Î resultado menor do que o valor -32.767 (número negativo)


32 bits Î resultado menor do que o valor -2.147.483.648 (número 1 0 0 -
negativo)

SENAI 47
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES MATEMÁTICAS COM NÚMEROS EM PONTO FLUTUANTE


Introdução
As funções em ponto flutuante do Simatic podem ser usadas para a realização das seguintes
instruções usando dois números de 32 bits cada:
• Adição
• Subtração
• Multiplicação
• Divisão
Estes números de ponto flutuante em 32 bits são chamados de números reais. Utilizando a
matemática em ponto flutuante com um número de 32 bits é possível realizarmos operações dos tipos:
• Extração de raiz (SQR) e raiz quadrada (SQRT) de um número;
• Estabelecer o logaritmo natural (LN);
• Estabelecer o valor exponencial (EXP) na base e (2,71828);
• Estabelecer as seguintes funções trigonométricas de um ângulo:
• Seno (SIN) e Arcoseno (ASIN) de um número;
• Cosseno (COS) e Arcocosseno (ACOS);
• Tangente (TAN) e Arcotangente (ATAN).

Formato de dados do tipo REAL (números de ponto flutuante)


Em computação, o ponto flutuante descreve um sistema de representação numérica na qual uma
string de dígitos (ou bits) representa um número real.
O termo ponto flutuante refere-se ao fato de que o ponto decimal (ou ponto binário em
computação) pode flutuar, isto é, pode ser colocado relativo ao número de dígitos significativos. Esta
posição é indicada separadamente na representação interna e a representação do ponto flutuante pode
então ser pensada como a representação de um número em notação científica.
Através dos anos várias formas de representação foram adotadas, mas nos últimos anos a que foi
aceita pelos fabricantes de CLPs foi a normalização definida pela IEEE754-1985 (ou pela IEC
60559:1989). IEEE Î Institute of Eletrical and Electronics Engineers

O formato de um número em ponto flutuante no STEP7


O formato segue a norma ANSI/IEEE 754-1985 e que consiste dos seguintes elementos:
• O sinal S
• O expoente e = E + bias, acrescido de uma constante (bias = 127)
• A parte fracionária da mantissa “m”. Toda a parte da mantissa de um número não é
armazenado com o resto, porque ele é sempre igual a 1 se o número está dentro a faixa
válida.
Os três componentes juntos ocupam uma palavra dupla de 32 bits.

SENAI 48
Programação Avançada CLP Siemens S7-300

Usando os três componentes “S”, “e” e “m”, o valor de um número representado neste formato é
definido por uma fórmula:

NÚMERO = (s) 1,m X 2e-127

Onde:
• e: expoente (=-127). Em outras palavras, o expoente é armazenado com o -127
adicionado a ele
• m (mantissa (23 bits)), ou seja, a parte inteira (que pode ser 1 ou 0) seguida pela parte
fracionária
• s: para um número positivo, S = 0 e para um número negativo, S = 1

Exemplo:

Converter o número binário acima para um número real em ponto flutuante

1) s = 0 Î o valor inteiro é +1
2) 0 expoente é = 124. Então e = 124 – 127 = -3
01111100 (2) = 0X27 + 1X26 + 1X25 + 1X24 + 1X23 + 1X22 + 0X21 + 0X20 = 0 + 64 + 32 + 16 + 8 + 4
= 124
3) m = 1.01 (em binário). Em decimal, um número binário fracionário é convertido assim para
decimal:

SENAI 49
Programação Avançada CLP Siemens S7-300

Valor da faixa para números em ponto flutuante


Usando o formato em ponto flutuante mostrado abaixo, os resultados são os seguintes:
• O menor número é 1,175495E-38 e
• O maior número é 3,402823E+38
• O número zero é representado com e=m=0; e=255 e m=0 são usados para infinito.

A tabela a seguir mostra os bits de sinal de estado da palavra de estado para os resultados das
instruções com números em ponto flutuante que não estão dentro da faixa permitida.

Exemplos de formatos de números em ponto flutuante


As informações abaixo mostram o formato em ponto flutuante para os valores decimais a seguir:
• 10.0
• Pi = 3.141593
• Raiz quadrada de 2 = 1.414214

Outro exemplo mais complexo:

SENAI 50
Programação Avançada CLP Siemens S7-300

Exemplos de números reais de 32 bits

SENAI 51
Programação Avançada CLP Siemens S7-300

1) Add Floating-point Numbers (soma de números em ponto flutuante – números REAIS)


Descrição
Um sinal de nível 1 na entrada Enable (EN) ativa a instrução e realiza a soma dos valores
presentes nas entradas IN1 e IN2 (IN1 + IN2). O resultado pode ser monitorado na saída OUT. Se o
resultado está fora da faixa permitida (acima ou abaixo dos valores limites), os bits OV e OS da palavra
de estado estão em 1 e a saída ENO é desativada.

SENAI 52
Programação Avançada CLP Siemens S7-300

Monitoração da instrução ADD_R

SENAI 53
Programação Avançada CLP Siemens S7-300

2) Subtract Floating-point Numbers (subtração de números em ponto flutuante – números


REAIS)
Descrição
Um sinal de nível lógico 1 na entrada Enable (EN) ativa esta instrução e realiza a subtração entre
dois números reais em ponto flutuante (subtrai o valor da entrada IN1 da entrada IN2). O resultado pode
ser monitorado na saída OUT. Resultados fora da faixa permissível (acima ou abaixo dos limites)
resultam em nível lógico 1 nos bits OV e OS, além de desabilitar a saída ENO.

SENAI 54
Programação Avançada CLP Siemens S7-300

Na monitoração:

SENAI 55
Programação Avançada CLP Siemens S7-300

3) Multiply Floating-point Numbers (multiplicação de números em ponto flutuante –


números REAIS)
Descrição
Um sinal de nível lógico 1 na entrada Enable (EN) ativa esta instrução e realiza a multiplicação
entre dois números reais em ponto flutuante (multiplica o valor da entrada IN1 com o da entrada IN2). O
resultado pode ser monitorado na saída OUT. Resultados fora da faixa permissível (acima ou abaixo dos
limites) resultam em nível lógico 1 nos bits OV e OS, além de desabilitar a saída ENO.

SENAI 56
Programação Avançada CLP Siemens S7-300

Monitoração da instrução

SENAI 57
Programação Avançada CLP Siemens S7-300

4) Divide Floating-point Numbers (divisão de números em ponto flutuante – números


REAIS)
Descrição
Um sinal de nível lógico 1 na entrada Enable (EN) ativa esta instrução e realiza a divisão entre dois
números reais em ponto flutuante (divide o valor da entrada IN1 pelo da entrada IN2). O resultado pode
ser monitorado na saída OUT. Resultados fora da faixa permissível (acima ou abaixo dos limites)
resultam em nível lógico 1 nos bits OV e OS, além de desabilitar a saída ENO.

SENAI 58
Programação Avançada CLP Siemens S7-300

Monitoração da instrução

SENAI 59
Programação Avançada CLP Siemens S7-300

SENAI 60
Programação Avançada CLP Siemens S7-300

5) Estabelecendo o valor absoluto (ABS) de um número em ponto flutuante


Descrição
Na matemática, o valor absoluto (ou módulo) de um número Real é o seu valor numérico sem o
seu sinal. Por exemplo, 3 é o valor absoluto de -3. Em programação de computadores, a função
matemática usada para realizar este cálculo é chamada de ABS.
Com esta instrução podemos estabelecer o valor absoluto deste tipo de número (em ponto
flutuante.

SENAI 61
Programação Avançada CLP Siemens S7-300

Monitoração da instrução

SENAI 62
Programação Avançada CLP Siemens S7-300

6) Estabelecendo a raiz quadrada de um número em ponto flutuante


Descrição
Esta instrução extrai a raiz quadrada de um número e produz um resultado positivo quando o
endereço é maior do que zero (única exceção: raiz quadrada de -0 é -0).
A instrução é ativada quando a entrada Enable (EN) é igual a 1. O resultado SQRT (saída OUT) é
armazenado em uma memória de palavra dupla (MD30). Se MD30 for menor do que 0 ou se o resultado
está fora da faixa permissível para números em ponto flutuante, a saída ENO é ligada e o valor de MD é
igual a zero.

SENAI 63
Programação Avançada CLP Siemens S7-300

Monitoração da instrução

7) Estabelecendo o logaritmo natural (LN) de um número em ponto flutuante


Descrição
Esta instrução extrai o logaritmo natural de um número através da ativação da instrução, pela
aplicação de um sinal em nível 1 na entrada Enable (EN). O número a ser calculado é inserido na
entrada IN e o resultado armazenado na memória de palavra dupla indicada na saída OUT.
Se o valor da entrada IN for menor que zero ou estiver fora da faixa permissível, a saída ENO é
desabilitada.
O logaritmo natural é o logaritmo de base e, onde e é um número irracional aproximadamente
igual a 2,71828... (chamado Número de Euler). É, portanto, a função inversa da função exponencial.
Em termos simples, o logaritmo natural é uma função que é o expoente de uma potência de e, e
aparece freqüentemente nos processos naturais (o que explica o nome "logaritmo natural"). Esta função
torna possível o estudo de fenômenos que evoluem de maneira exponencial.
Ele também é chamado de logaritmo neperiano, do nome de seu « inventor », o matemático
escocês John Napier (ou John Naper).

SENAI 64
Programação Avançada CLP Siemens S7-300

Monitoração da instrução

SENAI 65
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES DE COMPARAÇÃO
Introdução
As instruções de comparação do Simatic são realizadas entre dois números que podem ser dos
tipos Inteiro, Duplo Inteiro e Real (ponto flutuante).
Instruções com números inteiros:
1. EQ_IÎ igual a (equal to);
2. NE_IÎ diferente de (not equal to);
3. GT_IÎ maior que (greater than);
4. LT_IÎ menor que (less than);
5. LE_IÎ maior ou igual a (less equal to);
Instruções com números duplos inteiros:
6. EQ_DÎ igual a (equal to);
7. NE_DÎ diferente de (not equal to);
8. GT_DÎ maior que (greater than);
9. LT_DÎ menor que (less than);
10. LE_DÎ maior ou igual a (less equal to);

SENAI 66
Programação Avançada CLP Siemens S7-300

Instruções de comparação com números inteiros

SENAI 67
Programação Avançada CLP Siemens S7-300

Monitoração das instruções de comparação com números inteiros

SENAI 68
Programação Avançada CLP Siemens S7-300

EXERCÍCIO DE APLICAÇÃO

CENTRIFUGADORA DE AÇUCAR

Desejamos desenvolver um programa para automatizar uma centrifugadora de açúcar. Este


equipamento é utilizado nas usinas de açúcar para converter o melaço (caldo de cana concentrado) em
açúcar cristal.
Processo

Dispositivos de controle
LSH (level sensor high): sensor de nível alto
SV (solenoid valve): válvula solenóide
VS (vibration sensor): sensor de vibração
TT (temperature transmitter): transmissor de temperatura
SS (speed sensor): sensor de movimento (rotação)

Condições iniciais para o carregamento


• SV-1 e SV-2 fechadas
• Esteira transportadora em movimento
• Temperatura em 60ªC (TT)
• Motor parado

SENAI 69
Programação Avançada CLP Siemens S7-300

Operação
1. Abrir SV-1 para a entrada do melaço
2. Quando o melaço atingir o nível desejado, o sensor de nível LSH enviará um sinal
para o fechamento de SV-1
3. O motor da centrífuga deverá ser acionado por um tempo pré-ajustado (três
minutos)
4. Decorrido o tempo de centrifugação, o motor deverá ser desligado
5. Após 15 segundos (tempo necessário para a parada do conjunto após o
desligamento do motor), a Sv-2 será acionada para o início da descarga, que
deve durar 30 segundos
6. Reinício de um novo carregamento

Condições de segurança
O processo deverá ser interrompido (parada do motor que aciona a centrífuga) caso ocorra pelo
menos uma das situações abaixo:
• Alta temperatura (TT atuado)
• Excesso de vibração (VS atuado)
• Motor da esteira parado (SS sem sinal)
O equipamento somente entrará em funcionamento novamente se um botão de rearme for
acionado.

Convenções
Válvulas solenóides acionadas = nível 1
Motor em funcionamento = nível 1
Temperatura normal = nível 1

SENAI 70
Programação Avançada CLP Siemens S7-300

Instruções de comparação com números duplos inteiros


Descrição
As instruções de comparação de números duplos inteiros realizam comparações entre dois
números de ponto flutuante de 32 bits cada.
Se a comparação é verdadeira, o resultado lógico da operação (RLO) é igual a 1. Caso contrário, é
igual a 0.

Formato de dados do tipo duplo inteiro (DINT)

Exemplos de formato:
Mínimo – L# -2147483648
Máximo – L# +2147483647
Nota: no formato binário, um número inteiro negativo é representado pelo complemento de 2 deste
mesmo número positivo.
O programa exemplo a seguir realiza comparações entre o valor 10 (inteiro simples) e o valor
indicado pela memória de palavra MW0, que, quando convertida para palavra duplo inteiro, exibe os 16
bits mais significativos desta palavra.

SENAI 71
Programação Avançada CLP Siemens S7-300

SENAI 72
Programação Avançada CLP Siemens S7-300

EXERCÍCIO
Converter os números decimais abaixo para duplo inteiro (DINT) e realizar as comparações com a
instrução EQ_D.

15 = 23 =

44 = 95 =

127 = 256 =

410 = 525 =

2 16 = 65536 2 17 = 131072

2 18 = 262144 2 19 = 524288

2 20 = 1048576 2 21 = 2097152

2 22 = 4194304 2 23 = 8388608

2 24 = 16777216 2 25 = 33544432

SENAI 73
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES DE CONVERSÃO DE DADOS


Formato de números
Código BCD
O dígito de um número decimal pode ser codificado com quatro dígitos binários. Esta
representação deriva do fato que o maior número decimal de um dígito, que é o número 9, necessita de
pelo menos quatro posições para a representação binária.
Para representar os dez dígitos decimais (de 0 a 9) em código BCD, será usada a mesma
representação que seria utilizada para números binários de 0 até 9.
De 16 combinações possíveis de quatro dígitos binários, seis não são utilizadas.
Exemplo de um número em formato BCD:

Números inteiros (integer)


O tipo de dados “INT” é um número inteiro (de 16 bits). O bit de sinal (bit 15) indica se este é um
número positivo ou negativo (“0” é positivo e “1” é negativo). A faixa de um inteiro, como já foi visto, está
entre -32768 e +32767.
Um inteiro ocupa uma palavra de memória. Em formato binário, um inteiro negativo é representado
como o complemento de dois de um número positivo quando inverte o estado do sinal de todos os bits e
adiciona “1” ao resultado.
Exemplo de complemento de dois de um número inteiro:

Números reais
Um número Real (também chamado de número de ponto flutuante) é um número positivo ou
negativo que abrange valores tais como 0,339 ou -11,32. Também pode ser expresso em forma de
número em potência de 10. Por exemplo, o número 1024 pode ser escrito desta forma Î 1,024E3
Este número ocupa duas palavras de memória e o sinal é definido pelo bit mais significativo (MSB).
Os bits restantes representam o expoente e a mantissa.
A faixa deste tipo de número está entre -3,402823E38 a 3,402823E38.

SENAI 74
Programação Avançada CLP Siemens S7-300

1) Conversão de um número inteiro para BCD (I_BCD)


Descrição
Esta instrução lê o conteúdo da entrada IN como um número inteiro e o converte para um número
de 3 dígitos codificado em BCD (compreendido entre -999 e +999). O resultado pode ser visto na saída
OUT. Se uma sobrecarga (valor acima da faixa) ocorrer, a saída ENO será igual a zero.
2) Conversão de um número BCD para inteiro (BCD_I)
Descrição
Esta instrução lê o conteúdo da entrada IN como um número de 3 dígitos codificado em BCD (+/-
999) e o converte para um valor inteiro (16 bits). O resultado inteiro é exibido na saída OUT. ENO
sempre tem o mesmo estado de sinal de EN (enable).

SENAI 75
Programação Avançada CLP Siemens S7-300

SENAI 76
Programação Avançada CLP Siemens S7-300

3) Conversão de um número duplo inteiro para BCD (DI_BCD)


Descrição
Esta instrução lê o conteúdo da entrada IN como um número duplo inteiro de 32 bits e o converte
para BCD de sete dígitos (+/- 9999999). O resultado é exibido na saída OUT e se ocorrer uma
sobrecarga, a saída ENO é desligada.
4) Conversão de um número BCD para duplo inteiro (BCD_DI)
Descrição
Esta instrução realiza a operação inversa da instrução anterior. A saída ENO tem sempre o mesmo
estado da entrada EN.

SENAI 77
Programação Avançada CLP Siemens S7-300

5) Conversão de um número inteiro para duplo inteiro (I_DI)


Descrição
A instrução lê o conteúdo do parâmetro IN como um número inteiro (16 bits) e o converte para
duplo inteiro (32 bits). O resultado pode ser visto na saída OUT. A saída ENO é sempre cópia da entrada
EN.

SENAI 78
Programação Avançada CLP Siemens S7-300

SENAI 79
Programação Avançada CLP Siemens S7-300

6) Complemento de um de um número inteiro (INV_I)


Descrição
Esta instrução realiza a função Booleana XOR de um número inteiro, ou seja, o complemento de
um deste número (inverte bit a bit toda a palavra binária – 16 bits).
7) Complemento de um de um número inteiro duplo (INV_DI)
Descrição
Esta instrução realiza a função Booleana XOR de um número inteiro duplo, ou seja, o
complemento de um deste número (inverte bit a bit toda a palavra binária – 32 bits).

SENAI 80
Programação Avançada CLP Siemens S7-300

8) Complemento de dois de um número inteiro (NEG_I)


Descrição
A instrução que realiza o complemento de dois de um número realiza a operação equivalente a
multiplicar este mesmo número por (-1), trocando o seu sinal. Por exemplo, de um número positivo para
um número negativo (em 16 bits). É o mesmo que escrever este número com seu sinal trocado – ser for
um número positivo, o complemento de dois torna-o negativo e vice-versa.
9) Complemento de dois de um número inteiro duplo (NEG_DI)
Descrição
A instrução que realiza o complemento de dois de um número realiza a operação equivalente a
multiplicar este mesmo número por (-1), trocando o seu sinal. Por exemplo, de um número positivo para
um número negativo (em 32 bits).

SENAI 81
Programação Avançada CLP Siemens S7-300

SENAI 82
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES DE DESLOCAMENTO E ROTAÇÃO DE DADOS


1) Deslocamento de número inteiro à direita (SHR_I)
Descrição
Esta instrução é usada para deslocar um número inteiro para a direita bit a bit (os bits 16 a 31 não
são afetados por ela). A entrada N especifica quantos bits serão deslocados. Se N for maior do que 16, o
comando age como se N fosse igual a 16. As posições dos bits deslocados da esquerda e que ficariam
vagos, são preenchidos com o estado lógico do bit 15 (sinal do número - + ou negativo – 0 ou 1). O
resultado do deslocamento pode ser monitorado na saída OUT.
A instrução é ativada pela entrada EN, através da aplicação de um nível lógico 1. A saída ENO tem
o mesmo nível de sinal desta entrada.

SENAI 83
Programação Avançada CLP Siemens S7-300

Alterando o valor da entrada N.

SENAI 84
Programação Avançada CLP Siemens S7-300

2) Deslocamento de número duplo inteiro à direita (SHR_DI)


Descrição
Esta instrução é usada para deslocar um número duplo inteiro para a direita bit a bit. A entrada N
especifica quantos bits serão deslocados. Se N for maior do que 32, o comando age como se N fosse
igual a 32. As posições dos bits deslocados da esquerda e que ficariam vagos, são preenchidos com o
estado lógico do bit 31 (sinal do número - + ou negativo – 0 ou 1). O resultado do deslocamento pode ser
monitorado na saída OUT.
A instrução é ativada pela entrada EN, através da aplicação de um nível lógico 1. A saída ENO tem
o mesmo nível de sinal desta entrada.

SENAI 85
Programação Avançada CLP Siemens S7-300

3) Rotação de palavra dupla à direita (ROR_DW)


Descrição
Esta instrução é usada para rotacionar o conteúdo inteiro da entrada IN bit a bit para a direita. A
entrada N especifica a quantidade de bits que devem se rotacionados. Se N é maior do que 32, a palavra
dupla em N é rotacionada por N-1 posições. As posições de bits rotacionados a partir da esquerda são
preenchidas pelos estados lógicos dos bits que foram rotacionados para fora do lado direito. O resultado
desta rotação pode ser monitorado na saída OUT.
Exemplo: rotação de uma palavra dupla binária em 3 bits para a direita.

SENAI 86
Programação Avançada CLP Siemens S7-300

4) Rotação de palavra dupla à esquerda (ROL_DW)


Descrição
Esta instrução é usada para rotacionar o conteúdo inteiro da entrada IN bit a bit para a esquerda. A
entrada N especifica a quantidade de bits que devem se rotacionados. Se N é maior do que 32, a palavra
dupla em N é rotacionada por N-1 posições. As posições de bits rotacionados a partir da direita são
preenchidas pelos estados lógicos dos bits que foram rotacionados para fora do lado esquerdo. O
resultado desta rotação pode ser monitorado na saída OUT.
Exemplo: rotação de uma palavra dupla binária em 3 bits para a esquerda.

SENAI 87
Programação Avançada CLP Siemens S7-300

SENAI 88
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES DE SALTO
Introdução
Label (rótulo) como endereçamento
O endereçamento de uma instrução de Jump é chamado de Label. Um label consiste de um
máximo de 4 caracteres, sendo que o primeiro sempre deve ser uma letra do alfabeto. Os outros
caracteres podem ser letras ou números. Por exemplo, SEG3. Um Label de salto indica o destino para o
qual você deseja que a execução do programa salte. Este label pode ser informado acima de uma
instrução bobina.
Label como destino
O label de destino deve estar no início de uma lógica. Selecionando a instrução LABEL, uma caixa
vazia aparece e digitamos o nome deste. Ele marca o ponto onde o programa irá continuar a execução
após o salto. Instruções ou segmentos localizados entre o jump e o label não são executados.
O label obrigatoriamente deve estar localizado no mesmo bloco (OB, FB, FC) que a instrução jump
a que está associada.

1) Jump incondicional (salto incondicional)


Esta instrução interrompe o fluxo normal da lógica de controle e provoca o salto do programa para
a posição marcada pelo rótulo (label). Ela é representada de maneira parecida ao elemento de saída,
porém com as letras JMP e o nome do rótulo destino associado.

Quando a instrução JMP é ativada através de I124.4, toda a seqüência até o LABEL NET5 é
desabilitada, retomando o funcionamento normal após este label, presente na lógica Network5. A
instrução contida nesta mesma lógica não sofre influência do salto realizado e é executada
independentemente da situação da instrução JMP.

SENAI 89
Programação Avançada CLP Siemens S7-300

SENAI 90
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES PARA CONTROLE DE PROGRAMAS


1) Função Master Control Relay (relé de controle mestre)

Relé de controle mestre


O Máster Control Relay é uma chave lógica mestre para energizar ou desenergizar o fluxo de
tensão no barramento esquerdo da Network. Quando desenergizado toda a seqüência lógica seguinte é
zerada (RLO=0) ao invés de ser executada.
Se a instrução Máster Control Relay estiver ativa (RLO=1), considera-se que o sistema a partir
dela 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 (Máster Control Relay) inativo
(desenergizado) não alteram o valor de saída / flag. A instrução de transferência (=) zera a saída / flag
quando MCR está inativo.

A) Master Control Relay Activate (MCRA)


A instrução MCRA ativa a função MCR, sendo que todas as outras abaixo devem seguir após esta.

B) Master Control Relay On (MCR<)


Esta instrução marca o início da zona de controle lógico. MCR< abre a área MCR e marca a pilha
deste tipo de instrução, ou seja, conta quantas instruções do tipo MCR são executadas no programa. A
pilha pode ter até 8 entradas, o que significa que até oito níveis de controles individuais podem ser
incluídos entre os comandos MCRA e MCRD.

C) Master Control Relay Off (MCR>)


Esta instrução marca o fim da área de controle lógico. O MCR> é combinado com a instrução
MCR< mais próxima.

D) Master Control Relay Deactivate (MCRD)


Esta instrução desativa a função MCR. Você não pode programar nenhuma área MCR depois de
MCRD. Esta instrução é uma exigência para a associação lógica com MCRA.

SENAI 91
Programação Avançada CLP Siemens S7-300

Sem alimentação, a instrução


desabilita a seqüência após ela.
O contador continua
funcionando, mas sem a
transferência do conteúdo de
MW5

SENAI 92
Programação Avançada CLP Siemens S7-300

Como MW5 está sem conteúdo


(zerado), as instruções ADD-I e
MUL_I são executadas, mas
com resultado diferente do que
deveria ocorrer.

Exercícios: converta o programa anterior para FBD e STL e analise seu comportamento.

SENAI 93
Programação Avançada CLP Siemens S7-300

Conversão do programa para STL

SENAI 94
Programação Avançada CLP Siemens S7-300

SENAI 95
Programação Avançada CLP Siemens S7-300

EXERCÍCIO DE APLICAÇÃO

CALDEIRA A VAPOR

Deseja-se desenvolver um programa para CLP para supervisionar o funcionamento de uma


caldeira a vapor do tipo fogotubular, conforme ilustrações abaixo.
Caldeira é um recipiente metálico cuja função é, entre muitas, a produção de vapor através do
aquecimento da água. As caldeiras em geral são empregadas para alimentar máquinas térmicas,
autoclaves para esterilização de materiais diversos, cozimento de alimentos através do vapor, ou
calefação ambiental.
Ilustrações

SENAI 96
Programação Avançada CLP Siemens S7-300

Dispositivos de controle
PSL: sensor de baixa pressão
SV: válvula solenóide
BS: fotocélula (detector de chama)
I: ignitor
B: ventilador (blower)
CH: contato NA
FCV: válvula controladora de vazão

SENAI 97
Programação Avançada CLP Siemens S7-300

Descrição
Uma caldeira de vapor tem por função gerar vapor superaquecido que será utilizado para
movimentar bombas e turbinas a vapor.
O sistema de segurança atuará somente na partida e na parada do equipamento. Durante a
operação normal, este apenas supervisionará as variáveis envolvidas, as quais serão controladas pelas
FCVs.

Seqüência operacional de partida


Descrição
Pré-requisitos para a partida
• Pressão de água de alimentação (PSL-1)
• Pressão de combustível (PSL-2)
• FCV-2 aberta (CH-2 atuado). Para tanto SV-3 deverá aplicar 20PSI no atuador
• SV-1 e SV-2 fechadas
Processo
1. Satisfeitos os pré-requisitos, ao acionarmos o botão de partida, o ventilador
(blower) entrará em operação. O sensor CH-1 confirmará esta condição
2. A SV-3 deverá fazer com que a FCV-2 abra totalmente (20PSI no atuador),
iniciando-se a purga da câmara de combustão
3. O sensor CH-2 confirmará que FCV-2 abriu-se totalmente
4. Decorrido o tempo de purga (10s), o ignitor será energizado ao mesmo tempo em
que SV-2 permitirá a entrada de gás piloto. Com isto, teremos a presença da
chama piloto
5. Uma vez detectada a presença da chama piloto através do sensor BS, teremos a
abertura de SV-1 dando início ao processo de combustão
6. Decorridos 5s após o início da combustão, teremos:
• SV-2 fechada e o ignitor desenergizado
• SV-3 permitindo a passagem do sinal de controle

SENAI 98
Programação Avançada CLP Siemens S7-300

Seqüência operacional de parada


Descrição
A parada da caldeira deverá ocorrer quando for acionado o botão de parada ou quando houver
alguma anormalidade
Condições anormais
• Baixa pressão de combustível (PSL-2)
• Baixa pressão de água de alimentação (PSL-1)
• Alta pressão de vapor superaquecido (PSL-3)
• Falta de chama (BS)
• Parada do ventilador (CH-1)
• FCV-2 fechada (CH-2)

Processo
1. SV-1 fechada
2. FCV-2 totalmente aberta, via SV-3
3. Ventilador continuando a operar
4. SV-2 fechada
5. Ignitor desenergizado

Convenções
Baixa pressão de combustível (PSL-2): nível 0
Baixa pressão de água de alimentação (PSL-1): nível 0
Alta pressão de vapor superaquecido (PSL-3): nível 1
CH-1 e CH-2 atuados: nível 1
Presença de chama (BS): nível 1
SV-1 e SV-2 energizadas (abertas): nível 1
SV-3 energizada (20PSI): nível 1
SV-3 desenergizada (SC): nível 0

SENAI 99
Programação Avançada CLP Siemens S7-300

2) Chamada de funções (FCs) e funções de sistema (SFCs) – CALL (sem parâmetros)

Descrição
Tipos de blocos de programa
Blocos de sistema
Os blocos de sistema são funções pré-definidas ou blocos de função integrados ao sistema
operacional da CPU. Estes blocos não ocupam nenhum espaço adicional na memória do usuário. Os
blocos de sistema são chamados pelo programa do usuário e têm a mesma interface, mesma
designação e mesmo número em todo o sistema S7 (300 ou 400). Então, você pode facilmente utilizar o
programa do usuário em várias CPUs.
Blocos do usuário
São áreas providas para administrar o código e os dados de 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 necessitados. Blocos de usuário são também chamados de blocos de
programa.

BLOCOS DE USUÁRIO
Blocos de organização (OB)
Forma a interface entre a CPU e o programa do usuário. Pode-se escrever um programa inteiro no
OB1 e deixa-lo processando a cada ciclo. Pode-se, porém escrever um programa em diferentes blocos e
usar o OB1 para chamar estes blocos quando necessário. Além do OB1, o sistema operacional pode
chamar outros OBs que reagem a certos eventos, tais como:
• Interrupção data programada;
• Interrupção de diagnóstico;
• Interrupção de erros;

SENAI 100
Programação Avançada CLP Siemens S7-300

• Interrupção de tempo de ciclo;


• Interrupção de hardware;
• Start-up de hardware.

Bloco de função (FB)


Um bloco de função é uma função ou uma seqüência de comandos armazenados em um bloco
lógico, onde os parâmetros podem ser arquivados em uma memória. O FB utiliza esta memória adicional
na forma de um “Bloco de Dados Instance”. Parâmetros passados para o FB e alguns dos dados locais
são arquivados neste bloco de dados associado (Instance FB). Outros dados temporários são
arquivados na pilha local (L Stack). Dados arquivados em Instance DB são retidos quando o bloco de
função é fechado. Dados arquivados na pilha L Stack não são retidos.
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 (DB)
Os blocos de dados são blocos usados pelos blocos lógicos no programa do usuário para
armazenar valores. Em contraste com o local de dados temporários, os dados nestes blocos não são
apagados quando o processamento dos blocos lógicos é finalizado ou o bloco de dados é encerrado.
O tamanho máximo possível para um bloco de dados depende do tipo de CPU utilizada. Por
exemplo, para a CPU 314 pode ser de até 8KB.
Dependendo de sua relação com os blocos lógicos, existem dois tipos de blocos de dados:
Shared Data Blocks (Blocos de dados compartilhados)
São blocos que podem ser acessados por todos os blocos lógicos no programa do usuário.
Cada bloco de função (FB), função (FC) ou bloco de organização (OB) pode ler ou escrever nos
dados compartilhados contidos nestes blocos de dados. Você pode criar estes tipos de blocos
através da:
• Especificação da estrutura do próprio bloco de dados, ou seja, definir e
editar a ordem das variáveis, seus símbolos e os tipos de dados
individualmente;
• Criação de um bloco de dados com um dado de tipo user-defined (definido
pelo usuário – UDT). Neste caso, a estrutura do bloco UDT define a
estrutura do bloco de dados.
Instance Data Block (Bloco de dados Instance)
São blocos de dados relacionados a um bloco de função (FB) em particular. Eles contêm os
dados locais deste bloco relacionado. Se outros blocos de função são chamados sem que as
variáveis estáticas (instâncias múltiplas) tenham sido declaradas, o bloco de dados instance da
função chamada também contêm os dados locais do blocos de função chamados.
Dependendo do tipo de bloco que você deseja criar ou editar, você pode usar diferentes
métodos.

BLOCOS DE SISTEMA
Função de sistema (SFC)
Função de sistema é uma função pré-programada e testada que é integrada na CPU. Algumas das
tarefas suportadas por estas funções são a de setar parâmetros dos módulos, comunicação de dados,
funções de cópia, etc. Uma SFC pode ser chamada pelo programa, porém sem fazer parte dele (não
ocupa memória de trabalho).

SENAI 101
Programação Avançada CLP Siemens S7-300

Blocos de função de sistema (SFB)


Um bloco de função de sistema é parte integral da CPU. Você pode utilizar um SFB em seu
programa sem carregar como parte de seu programa, pois os SFBs são parte do sistema operacional.
SFBs devem ser associados a um DB, o qual deverá ser transferido para a CPU como parte de seu
programa.
Bloco de dados de sistema (SDB)
Um bloco de dados de sistema é uma área da memória que a ferramenta Step7 gera para arquivar
dados necessários para o controle de operações. Informações tais como dados de configuração,
conexões de comunicação e parâmetros são salvos em SDBs.

TIPOS DE BLOCOS CARACTERÍSTICAS

- Arquivados no sistema operacional das CPUs


Função de sistema (SFC)
- Usuário pode chamar esta função (sem memória)

- Arquivados no sistema operacional das CPUs


Bloco de função de sistema (SFB)
- Usuário pode chamar esta função (com memória)

- Blocos de dados para configuração de dados e


Bloco de dados de sistema (SDB)
parâmetros

ESTRUTURA DE PROGRAMA
Programa linear
O programa inteiro reside em um único bloco de instrução contínuo. Esta estrutura é semelhante a
um circuito de relés substituído por um CLP. O sistema processa instruções individuais sucessivamente.
Toda a programação e parametrização é feita no Organization Block 1 (OB1)
Programa particionado
O programa é dividido em blocos, onde cada bloco contém uma lógica específica para dispositivos
ou tarefas. As informações residentes no bloco de organização (OB1) determinam a ordem de execução
dos blocos a serem processados. Um programa particionado pode, por exemplo, conter blocos de
instruções com os quais os modos de operações individuais de um processo industrial são controlados.
Programa estruturado
Um programa estruturado contém blocos de instruções com parâmetros definidos pelo usuário
(blocos parametrizados). Estes blocos são projetados de forma que possam ser usados universalmente.
Os parâmetros atuais (os endereços de entradas e saídas) são especificados durante a chamada do
bloco.
Exemplo de blocos parametrizáveis:
- O bloco “BOMBA” contém instruções para uma bomba, com um set de entradas e saídas
exigidas para qualquer bomba usada no processo.
- O bloco lógico responsável pelo controle específico das bombas chama (abre) o bloco “BOMBA”
e fornece informações para identificar qual bomba irá ser controlada.
- Quando o bloco completa a execução das instruções, o programa retorna ao bloco de chamada
(por exemplo, o OB1), o qual conclui as instruções.

SENAI 102
Programação Avançada CLP Siemens S7-300

PROGRAMAÇÃO ESTRUTURADA

O que é programação estruturada?


A programação estruturada identifica tipos similares ou repetitivos de funções solicitadas pelo
processo e fornece soluções genéricas que podem ser usadas por várias outras tarefas. Fornecendo
informações específicas (em forma de parâmetros) para os blocos de instruções, o programa estruturado
é capaz de usar de novo estes blocos genéricos.
Podem considerar-se como exemplos destes blocos:
- Blocos que contenham lógicas comuns para todos os motores AC no sistema do transportador;
- Blocos que contenham lógicas comuns a todas as solenóides na máquina;
- Blocos que contenham lógicas comuns a todos os acionamentos da máquina.

Como é executado?
O programa dentro do OB1 (ou outro bloco) chama estes blocos genéricos para a execução.
Assim, dados e códigos considerados comuns podem ser compartilhados.

Quais as vantagens e desvantagens?


Ao invés de repetir estas instruções e então substituir os diferentes endereços para os específicos
equipamentos, você pode escrever as instruções no bloco e ter um programa para passar os parâmetros
(tais como endereços específicos de equipamentos ou dados) para o bloco. Isto permite a você escrever
blocos genéricos que mais que um dispositivo ou processo possa usar.
Quando usar uma programação estruturada, você tem que gerenciar os dados que são arquivados
e utilizados pelo programa.

SENAI 103
Programação Avançada CLP Siemens S7-300

EXEMPLO DE UTILIZAÇÃO DA INSTRUÇÃO CALL – CHAMADA DE FUNÇÕES (Programação


particionada)

SENAI 104
Programação Avançada CLP Siemens S7-300

PROGRAMA EXEMPLO – CHAMADA DE FUNÇÕES (CALL)

SENAI 105
Programação Avançada CLP Siemens S7-300

FUNÇÕES CHAMADAS
FUNÇÃO FC1

SENAI 106
Programação Avançada CLP Siemens S7-300

FUNÇÕES CHAMADAS
FUNÇÃO FC2

SENAI 107
Programação Avançada CLP Siemens S7-300

FUNÇÕES CHAMADAS
FUNÇÃO FC3

FUNÇÕES CHAMADAS
FUNÇÃO FC4

SENAI 108
Programação Avançada CLP Siemens S7-300

EXERCÍCIO DE APLICAÇÃO

PARQUE DE ESTACIONAMENTO

Desenvolver uma aplicação para CLP Siemens para automação de um parque de estacionamento
com capacidade para 20 veículos, conforme esquema a seguir. UTILIZAR A INSTRUÇÃO CALL PARA
CHAMADAS DE FUNÇÕES.

O parque possui uma via de entrada e outra de saída, ambas com barreiras automáticas,
funcionando o sistema de acordo com as seguintes condições:
• Depois de ligado o interruptor de comando (I1) geral deste sistema, pressionando-se o
botão S1 da máquina de entrada (Min), esta fornece um bilhete e a barreira de entrada
(barreira 1) abre;
• A abertura da barreira de saída (barreira 2) ocorre quando um bilhete, com pagamento
previamente feito, for aceito (S3=1) pela máquina de saída (Mout), colocada antes desta
barreira;
• O fechamento das barreiras só é possível após os carros ultrapassarem detectores (S2 e
S4) colocados no solo, logo a seguir às mesmas. Essa disposição garante que os carros
não sejam atingidos pelas barreiras no seu movimento de descida;
• Quando a lotação do parque for atingida, acende um placar com a indicação
“ESGOTADO” e é acionada uma lâmpada vermelha (SV), colocada junto à barreira de
entrada. A máquina de entrada não fornece mais bilhetes e a barreira não abre. Após sair
um veículo, essa lâmpada é desligada e apagada a indicação “ESGOTADO”. Se S1 for
pressionado, a máquina Min fornece o bilhete e a barreira abre;
• As barreiras possuem um fim de curso de fechamento e de abertura e são acionadas por
motores elétricos.

SENAI 109
Programação Avançada CLP Siemens S7-300

O FLUXOGRAMA DE PROCESSO
Representa uma seqüência de trabalho qualquer, de forma detalhada (pode ser também
sintética), onde as operações ou os responsáveis e os departamentos envolvidos são visualizados nos
processo.
É conhecido também com os nomes de Flow-chart, carta de fluxo do processo, gráfico de
seqüência, gráfico de processamento dentre outros.

Principais objetivos:

• Uma padronização na representação dos métodos e os procedimentos administrativos;


• Podem-se descrever com maior rapidez os métodos administrativos;
• Pode facilitar a leitura e o entendimento das rotinas administrativas;
• Podem-se identificar os pontos mais importantes das atividades visualizadas;
• Permite uma maior flexibilização e um melhor grau de análise.

O fluxograma visa o melhor entendimento de determinadas rotinas administrativas, através da


demonstração gráfica. (Existem estudos que comprovam que o ser humano consegue gravar melhor
uma mensagem, quando esta é acompanhada de imagens.)

“É importante ressaltar que os fluxogramas procuram mostrar o modo pelo qual as coisas são
feitas, e não o modo pelo qual o chefe diz aos funcionários que a façam; não a maneira segundo o qual o
chefe pensa que são feitas, mas a forma pela qual o Manual de normas e procedimentos manda que
sejam feitas.” Eles são, portanto, uma fotografia real de uma situação estudada.”

Etapas para criação de um fluxograma:


• Escolher a rotina a ser trabalhada
• Coletar os dados
• Desenhar a rotina
• Todo fluxo deve ter início e fim. Nenhuma simbologia pode ficar solta, sem indicação da
continuidade do processo ou com a simbologia de fim.
• Nunca esquecer das setas no fluxograma e do processo.
• Sempre que se for enviar um documento, utilizar a simbologia de "documento".
• Antes do "arquivo", obrigatoriamente tem que haver a simbologia de "documento", já que só se
arquivam documentos.

SENAI 110
Programação Avançada CLP Siemens S7-300

Exemplo

Exercício

Leia o texto abaixo e desenhe um fluxograma fazendo uso dos seguintes símbolos:

A empresa não tinha um estoque informatizado e o os pedidos ao estoque ocorriam da seguinte


forma: O estoquista ao receber uma solicitação de peça, verifica na listagem do estoque a
disponibilidade da mesma. Caso esteja disponível, a peça é entregue ao solicitante e em seguida, é
efetuada a baixa no estoque. Caso a peça não esteja disponível, verifica-se junto aos fornecedores de
peças*, o tempo de entrega. Informa-se o tempo necessário ao solicitante. Caso este (solicitante) ainda
deseje a peça, o pedido ao fornecedor é efetuado imediatamente. Aguarda-se a chegada da peça e a
sua entrada no estoque. Em seguida ela é entregue ao solicitante e é efetuada a baixa no estoque.

Considere que o fornecedor sempre tem a peça solicitada disponível para entrega.

SENAI 111
Programação Avançada CLP Siemens S7-300

Parque de estacionamento para 20 veículos


Passos para resolução
1. Liga interruptor geral;
2. Se S1 pressionado Î Min fornece bilhete Î barreira 1 abre Î se S2 acionado Î
barreira 1 fecha Î incrementa 1 carro na contagem;
3. Mout recebe bilhete Î se S3 acionado Î barreira 2 abre Î se S4 acionado Î barreira 2
fecha Î decrementa 1 carro na contagem
4. Se lotação atingida (=20) Î lâmpada SV acionada Î Min não fornece mais bilhetes Î
barreira 1 não abre mais.

Convenções
Entradas
I1 Î liga interruptor geral Î I124.0
S1 Î solicita ticket Î I124.1
S2 Î sensor de carro da barreira 1 Î I124.2
S3 Î recebe ticket Î I124.3
S4 Î sensor de carro da barreira 2 Î I124.4

Saídas
Barreira 1 Î Q124.0
Min (motor que traciona o ticket) Î Q124.1
Barreira 2 Î Q124.2
Mout (motor que traciona o ticket) Î Q124.3
Lâmpada SV Î Q124.4
Fluxograma de processo

SENAI 112
Programação Avançada CLP Siemens S7-300

Liga interruptor FC1 FC2


geral INÍCIO

S1 NÃO S2 NÃO
pressionado acionado

SIM SIM

Min fornece Mout recebe


bilhete bilhete

Barreira 1 Barreira 2
abre abre

S2 NÃO S4 NÃO
acionado acionado

SIM SIM

Barreira 1 Barreira 2
fecha fecha

Incrementa 1 Decrementa 1
carro carro

Novo NÃO Novo NÃO


carro carro

SIM SIM

SENAI 113
Programação Avançada CLP Siemens S7-300

Liga interruptor FC3


geral

Lotação NÃO
atingida
(=20)

SIM

Lâmpada SV
acionada

Min não fornece


bilhete

Barreira 1 não
abre

FIM

SENAI 114
Programação Avançada CLP Siemens S7-300

CRIANDO BLOCOS DE DADOS (DB)


Introdução
A criação de um bloco DB obedece as mesmas regras para a criação de um bloco de programa,
sendo que é utilizado o mesmo editor de programas (LAD/STL/FBD) para a edição.
Criando um novo DB
Utilize o mesmo método para criar o DB que foi utilizado para criar um bloco de programa (por
exemplo, botão direito do mouse Î Insert New Object Î DB Block)

SENAI 115
Programação Avançada CLP Siemens S7-300

Ao se iniciar a edição de um novo DB, o sistema, através de uma caixa de diálogo, solicitará a
escolha do tipo de DB a ser criado (veja figura anterior). O tipo indicado (shared DB) significa que este
bloco de dados é compartilhado, ou seja, pode ser acessado por todo e qualquer bloco do programa.
Abrindo um DB existente
Se o DB já foi editado anteriormente, utilize para acessa-lo o mesmo método que usou para
acessar qualquer bloco de programa (por exemplo, um clique duplo sobre seu ícone). Para DBs
existentes não aparece a caixa de seleção do tipo de DB, pois seu tipo já foi definido anteriormente.
Editando um bloco de dados (DB)
Utilizando o procedimento anterior, abra o DB criado à pouco.

O bloco de dados (DB) é uma área da memória da CPU, orientada a Byte, disponível para
armazenamento de dados. Apesar de orientada a bytes, esta área pode e deve ser definida pelo usuário
livremente, já que não existe formato de dados pré-definidos para ela.
A definição desta área visa facilitar a manipulação de dados no programa do usuário. Assim, se ele
precisa definir bits (variáveis booleanas) para utilizar na sua lógica, declara a variável com BOOL. Se por
outro lado, necessita de variáveis para cálculos, pode definir a variável como REAL.
Endereço
As variáveis contidas no DB são acessadas preferencialmente pelo seu nome simbólico.
Apesar disto, todas possuem um endereço de sua localização dentro do bloco e permitem, caso
necessário, que sejam acessadas por este endereço. Os endereços são do tipo BYTE.BIT, mesmo
para as variáveis definidas como byte, word, dword, etc.
Estes endereços são definidos automaticamente pelo sistema logo após a edição da variável
(nome e tipo da variável).
Nome
É o nome simbólico alfanumérico da variável. Na maioria dos caso ela será acessada no
programa por este nome simbólico.
Tipo de dado
É o tipo de dados da variável (individual). A definição do tipo deve levar em consideração a
sua utilização dentro do programa. Exemplo: BOOL (booleana ou bit).
Valor inicial
Campo opcional onde se especifica o valor inicial da variável. O valor padrão para todos os
tipos de variáveis é zero.
Comentário
Campo opcional para comentários / descrição das variáveis.

Tipos de dados elementares para o Simatic S7


Formato
Cada variável tem seu próprio formato, indicando o modo com o qual o programa irá acessá-lo. A
estrutura dos bits e seu comprimento são definidos pela designação dos tipos de dados. É importante
conhecer os vários tipos de dados, porque algumas instruções requerem tipos de dados específicos. Isto

SENAI 116
Programação Avançada CLP Siemens S7-300

é particularmente importante para instruções LAD/FBD, porque o editor confere os tipos de dados
quando você endereça individualmente os elementos.
Tipos de dados
Os tipos de dados pertencem a uma das seguintes categorias:
• Dados básicos ou elementares: estruturas de dados menores que 32 bits, que têm
definições de acordo com a norma IEC 61131-3;
• Dados complexos: estruturas ou campos que são maiores do que 32 bits;
• Parâmetros: blocos de parâmetros usados para FBs ou FCs

TIPO TAMANHO (EM BIT) EXEMPLO

BOOL 1 1 ou 0
BYTE 8 16#A9
WORD 16 16#12AF

DWORD 32 16#ADAC1EF5
CHAR 8 ‘W’
STRING* >=16, 8* (Nº de caracteres) ‘ISTO É UMA STRING’
S5TIME 16 S5T#5s_200ms

INT 16 123
DINT 32 65539
REAL 32 1.2 ou 34.5E-12

TIME 32 T#2D_1H_3M_45S_12_MS
DATE 16 D#2008-04-30
TIME_OF_DAY 32 TOD#12:23:45.12

DATE_AND_TIME* 64 DT#2008-04-30:12.29.13

Acesso aos elementos de blocos de dados


Abrir DB
Antes que os dados de um bloco possam ser acessados é necessário que o DB seja aberto. Isto é
feito através da instrução OPN DB (Open DB). Se outro bloco de dados global já estiver aberto, este será
automaticamente fechado.
O bloco de dados Instance, associado a um FB, é automaticamente aberto pelo sistema.
Acesso ao DB
A figura a seguir mostra como acessar os dados de um DB. As instruções utilizadas são as
mesmas utilizadas com qualquer outro operando. Por exemplo:
L DBB3 Ler o byte 3 do DB
T DBW12 Transferir o conteúdo do acumulador para a palavra 12 do DB
A DBX4.5 Fazer a lógica AND com o bit 5 do byte 4 do DB
Pode-se também acessar os dados dentro de um DB através do chamado “caminho completo”. O
caminho completo é:
nome-do-db.dado
Desse modo, na própria instrução é feita a abertura do DB e o acesso ao dado. Esta maneira de
acesso é própria para evitar erros de programação e facilita a documentação.

SENAI 117
Programação Avançada CLP Siemens S7-300

CRIANDO UM PROGRAMA COM BLOCOS DE FUNÇÃO (FB) E BLOCOS DE DADOS (DB)

1) Criando e abrindo um bloco de função (FB)


O bloco de função (FB) está abaixo do bloco de organização (OB) na hierarquia do programa. Ele
contém uma parte do programa que pode ser chamada muitas vezes pelo OB1.
Todos os parâmetros formais e dados estáticos do FB são salvos em um bloco de dados (DB)
separado, o qual é relacionado ao FB correspondente.
Para criar um bloco de função, siga os passos abaixo:

SENAI 118
Programação Avançada CLP Siemens S7-300

Um duplo clique em FB1 abre a tela de programação deste bloco, a qual se parece com a tela do
OB1, mas identificada no topo desta como sendo o FB1.
Esta programação será feita utilizando-se símbolos e, para tal, devemos declará-los na Tabela de
Declaração de Variáveis. Para abri-la basta seguir os passos:
1) Abrir a tabela de declaração de variáveis (logo acima da tela de lógicas)

2) Inserir os dados conforme descrito – dados de entrada, de saída, etc.


Parâmetros de entrada (IN): são usados somente com funções (FCs) ou blocos de funções (FBs)
para passar dados ao bloco chamado para processamento.

SENAI 119
Programação Avançada CLP Siemens S7-300

Parâmetros de saída (OUT): são usados no programa do usuário do Step7 para passar resultados
ao bloco chamado.

Parâmetros IN/OUT: são usados em FCs e FBs para passar dados para o bloco chamado,
processar dados lá e armazenar os resultados enviados de um bloco chamado.
Parâmetros de dados estáticos (STAT): dados estáticos são os dados locais de um bloco de
função (FB) armazenado em um bloco de dados instance (armazena os parâmetros formais e dados
estáticos dos blocos de função). Os dados permanecem armazenados até a próxima vez que o FB for
processado.

Parâmetros de dados temporários (TEMP): dados temporários são os dados locais para um bloco
e são armazenados na Pilha de Dados Locais (L Stack) enquanto o bloco está sendo processado. Dados
temporários não são mais acessíveis quando o bloco for fechado e o processamento finalizado.

2) Exemplo: programando três motores para desligar em seqüência temporizada

SENAI 120
Programação Avançada CLP Siemens S7-300

A) Configure a exibição da representação simbólica na tela de programação

B) Monte um programa na tela de FB1 conforme indicado abaixo.

SENAI 121
Programação Avançada CLP Siemens S7-300

Quando a tabela de declaração de variáveis está preenchida e o usuário digita os símbolos ao


invés dos endereços das instruções, o próprio software Simatic chama as variáveis na própria lógica de
programação.

C) Salve o bloco FB1


D) Crie o bloco de funções FB2, declarando previamente as variáveis de entrada e de saída dele.

SENAI 122
Programação Avançada CLP Siemens S7-300

Programa

Salve o bloco FB2

E) Crie o bloco de funções FB3, declarando previamente as variáveis de entrada e de saída dele.

SENAI 123
Programação Avançada CLP Siemens S7-300

Programa

Salve o bloco FB3

F) Abrir o Organization Block 1 (OB1) com um duplo clique. Obs: ele estará vazio (sem nenhuma
programação realizada). Passaremos ao modo de programação baseada em STL.

SENAI 124
Programação Avançada CLP Siemens S7-300

Inserir a Network1 para chamar o bloco FB1

Caso o bloco de dados de múltipla instância não tenha sido inserido inicialmente no Simatic
Manager, o software informa que este não existe e se você deseja que ele seja gerado.

Se o DB já foi criado anteriormente, pressionando-se a tecla ENTER, o Step7 carrega os


simbólicos já armazenados em FB1, aguardando que seja feito o endereçamento desses simbólicos pelo
usuário.

Você deve inserir os operandos desses simbólicos na janela de programação STL, conforme
indicado a seguir.

SENAI 125
Programação Avançada CLP Siemens S7-300

Insira uma nova Network e repita o procedimento para a chamada de FB2.

Insira a Network 3 e repita os mesmos passos para a chamada de FB3.

SALVE O OB1

Para que o programa funcione corretamente e você possa realizar a monitoração, deve abrir todos
os blocos gerados (OB1, FB1, FB2 e FB3) e envia-los ao CLP. Além disso, abra também os blocos de
dados (DB1, DB2 e DB3) e envie todos os parâmetros armazenados neles para o CLP.

SENAI 126
Programação Avançada CLP Siemens S7-300

Coloque todos os módulos em monitoração e ative a entrada digital I124.0, observando o


comportamento das instruções em cada um dos blocos (FB1, FB2 e FB3).
Os três blocos estão interligados entre si, através da utilização de instruções de um bloco dentro
de outro, sendo possível dessa maneira o interfaceamento entre eles.
Os três motores partem ao mesmo tempo, sendo um acionado pela dependência do outro. Cada
motor funciona durante seu tempo programado nos temporizadores e desligam após decorridos estes
tempos.

SENAI 127
Programação Avançada CLP Siemens S7-300

EXERCÍCIO DE APLICAÇÃO

MISTURADOR AUTOMÁTICO DE TINTAS

UTILIZANDO O RECURSO DE CHAMADA DE BLOCOS DE FUNÇÕES (FBs), MONTAR UM


PROGRAMA NO STEP7 PARA A AUTOMATIZAÇÃO DO SISTEMA A SEGUIR.

Um misturador automático para duas cores de tintas deve ser comandado por meio de um CLP. A
operação transcorre da seguinte forma: após pressionar o botão de partida C0 (botoeira que mantém
contato somente enquanto pressionada), a lâmpada H0 acende, indicando inicio de operação, a válvula
Y1 abre e a bomba M2 é ligada. Quando o nível da primeira tinta no recipiente de mistura atinge o
sensor B1, a válvula Y1 é fechada e a válvula Y2 é aberta, misturando a segunda tinta ao conteúdo do
recipiente.
Quando o nível total de tinta atinge o sensor B2, a válvula Y2 é fechada, a bomba M2 e a lâmpada
H0 são desligadas e o misturador M1 é ativado. Após 6 segundos o misturador M1 é desligado e a tinta
já homogeneizada pode ser removida, O misturador pode ser desligado em qualquer ponto da operação
por meio do botão de parada de emergência C6, pelos sensores térmicos F1 ou F2 ligados aos motores
do misturador e da bomba, respectivamente, ou pelo sensor B4, que indica enchimento total do
recipiente de mistura. A figura 26 apresenta o esquema do misturador. A tabela mostra os sinais de
entrada e saída utilizados e descreve seu uso nesta aplicação.

SENAI 128
Programação Avançada CLP Siemens S7-300

ENTRADAS / SAÍDAS COMPONENTE FÍSICO COMENTÁRIOS

I124.0 C0 Chave de partida

I124.1 B1 Sensor de nível

I124.2 B2 Sensor de nível

I124.3 B4 Sensor de nível

I124.4 C6 Chave de parada de emergência

I124.5 F1 Sensor térmico do misturador

I124.6 F2 Sensor térmico da bomba

Q124.0 H0 Lâmpada de operação

Q124.1 Y1 Válvula de tinta 1

Q124.2 Y2 Válvula de tinta 2

Q124.3 M1 Motor do misturador

Q124.4 M2 Motor da bomba

SENAI 129
Programação Avançada CLP Siemens S7-300

INSTRUÇÕES PARA CONVERSÃO DE SINAIS (A/D E D/A)


Sinal analógico
Quando um dispositivo de medição não usa sinal on / off (digital), mas de tensão ou corrente
(valores intermediários entre o zero e o um), um módulo de entrada analógico é necessário.
Este módulo é conectado aos sensores no campo e condiciona a medição para valores binários de
tal forma que a CPU possa compreendê-los.
Isto é chamado de conversão analógico para digital (A/D).
Os valores digitalizados são então usados para comparações, controle e outras tarefas no
programa do usuário.

Representação de valores analógicos


Resolução
Os módulos analógicos têm especificações de resolução (valor lido X representação). Esta
resolução corresponde a quantidade de bits de dados usados na palavra binária de 16 bits representada
no valor analógico.
Se a resolução tem menos que 15 bits, os dados analógicos são alinhados à esquerda. Os bits
menos significativos não usados são preenchidos com zeros.

SENAI 130
Programação Avançada CLP Siemens S7-300

A posição mais á esquerda (bit mais significativo – MSB) é a que representa o sinal Î 0 significa
valor positivo e 1 negativo.

O endereçamento analógico não compartilha o mesmo registro que o módulo de sinal digital, isto
é, os sinais analógicos no S7-300 / 400 não são atualizados a cada Scan.
Os dados de entrada são atualizados pela simples leitura dos endereços de entrada (PIW) com
seu programa, ou escritos nas saídas com PQW. Quando o programa executa uma instrução usando um
endereço analógico (por exemplo, PIW352), os dados são lidos diretamente do barramento de periferia,
ou o chamado barramento P BUS.
Cada valor analógico é composto por 2 Bytes (16 bits). Assim, os endereços analógicos usados
em seu programa devem consistir de todos os números para o possível problema de sobre escrita de
dados.

SENAI 131
Programação Avançada CLP Siemens S7-300

Faixa de conversão
A conversão A/D produz um número entre +27648 e -27648. Isto representa uma palavra binária
de 16 bits, com o bit mais significativo utilizado para determinar se o sinal lido é positivo ou
negativo.

Medição de tensão e corrente através da conversão A/D

SENAI 132
Programação Avançada CLP Siemens S7-300

Sensores que podem ser conectados nas entradas analógicas


É possível conectar diferentes tipos de sensores nas entradas analógicas, dependendo do tipo de
medição desejada:
• Transdutores de tensão;
• Transdutores de corrente a 2 e a 4 fios;
• Resistores;
• Termopares

Cabos utilizados para sinais analógicos


Deve-se sempre utilizar cabos de par trançado para sinais analógicos. Isto reduz as interferências.
Conectar ambas as extremidades deste cabo ao terra.
Qualquer diferença de potencial entre as extremidades do cabo pode causar correntes
equipotenciais na malha e assim provocar distúrbios nos sinais analógicos. Se isto ocorrer, você deve
assegurar uma compensação de baixo potencial ôhmico, além de aterrar as extremidades desse cabo.

Um pouco sobre os termopares


Os termopares são dispositivos eletronicos com larga aplicação para medição de temperatura.
São baratos, podem medir uma vasta gama de temperaturas e podem ser substituídos sem introduzir
erros relevantes. A sua maior limitação é a exatidão, uma vez que erros inferiores a 1 °C são difíceis de
obter. Uma termopilha é o nome que se dá a um conjunto de termopares ligados em série. Um exemplo
da aplicação de termopares e termopilhas pode ser a medição de temperaturas em linhas de gás.

Como funciona

Em 1822, o físico Thomas Seebeck descobriu (acidentalmente) que a junção de dois metais gera
uma tensão elétrica que é função da temperatura. O funcionamento dos termopares é baseado neste
fenômeno, que é conhecido como Efeito de Seebeck. Embora praticamente se possa construir um
termopar com qualquer combinação de dois metais, utilizam-se apenas algumas combinações
normalizadas, isto porque possuem tensões de saída previsíveis e suportam grandes gamas de
temperaturas.

SENAI 133
Programação Avançada CLP Siemens S7-300

Existem tabelas normalizadas que indicam a tensão produzida por cada tipo de termopar para
todos os valores de temperatura que suporta, por exemplo, o termopar tipo K com uma temperatura de
300 °C irá produzir 12,2 mV. Contudo, não basta ligar um voltímetro ao termopar e registar o valor da
tensão produzida, uma vez que ao ligarmos o voltímetro estamos a criar uma segunda (e indesejada)
junção no termopar. Para se fazerem medições exatas devemos compensar este efeito, o que é feito
recorrendo a uma técnica conhecida por compensação por junção fria.

Caso se esteja a interrogar porque é que ligando um voltímetro a um termopar não se geram
várias junções adicionais (ligações ao termopar, ligações ao aparelho de medida, ligações dentro do
próprio aparelho, etc...), a resposta advém da lei conhecida como lei dos metais intermédios, que afirma
que ao inserirmos um terceiro metal entre os dois metais de uma junção de um termopar, basta que as
duas novas junções criadas com a inserção do terceiro metal estejam à mesma temperatura para que
não se manifeste qualquer modificação na saída do termopar. Esta lei é também importante na própria
construção das junções do termopar, uma vez que assim se garante que ao soldar os dois metais a
solda não irá afetar a medição. Contudo, na prática as junções dos termopares podem ser construídas
soldando os materiais ou por aperto dos mesmos.

Todas as tabelas normalizadas dão os valores da tensão de saída do termopar considerando que
a segunda junção do termopar (a junção fria) é mantida a exatamente zero graus Celsius. Antigamente
isto conseguia-se conservando a junção em gelo fundente (daqui o termo compensação por junção fria).
Contudo a manutenção do gelo nas condições necessárias não era fácil, logo optou-se por medir a
temperatura da junção fria e compensar a diferença para os zero graus Celsius.

Tipicamente a temperatura da junção fria é medida por um termistor de precisão. A leitura desta
segunda temperatura, em conjunto com a leitura do valor da tensão do próprio termopar é utilizada para
o cálculo da temperatura verificada na extremidade do termopar. Em aplicações menos exigentes, a
compensaçao da junção fria é feita por um semicondutor sensor de temperatura, combinando o sinal do
semicondutor com o do termopar.

É importante a compreensão da compensação por junção fria; qualquer erro na medição da


temperatura da junção fria irá ocasionar igualmente erros na medição da temperatura da extremidade do
termopar.

Estrutura de um termopar

SENAI 134
Programação Avançada CLP Siemens S7-300

Linearização

O instrumento de medida tem de ter a capacidade de lidar com a compensação da junção fria,
bem como com o fato de a saída do termopar não ser linear. A relação entre a temperatura e a tensão de
saída é uma equação polinomial de 5ª a 9ª ordem dependendo do tipo do termopar. Alguns instrumentos
de alta precisão guardam em memória os valores das tabelas dos termopares para eliminar esta fonte de
erro.

Tipos de termopares

Os termopares disponíveis no mercado têm os mais diversos formatos, desde os modelos com a
junção a descoberto que têm baixo custo e proporcionam tempos de resposta rápidos, até aos modelos
que estão incorporados em sondas. Está disponível uma grande variedade de sondas, adequadas para
diferentes aplicações (industriais, científicas, investigação médica, etc...).

Quando se procede à escolha de um termopar deve-se ponderar qual o mais adequado para a
aplicação desejada, segundo as características de cada tipo de termopar, tais como a gama de
temperaturas suportada, a exatidão e a confiabilidade das leituras, entre outras. Em seguida fornece-se
o nosso guia para os diferentes tipos de termopares.

Tipo K (Cromel / Alumel)

O termopar tipo K é um termopar de uso genérico. Tem um baixo custo e, devido à sua
popularidade estão disponíveis variadas sondas. Cobrem temperaturas entre os -200 e os 1370 °C,
tendo uma sensibilidade de aproximadamente 41µV/°C.

• Termoelemento positivo (KP): Ni90%Cr10% (Cromel)


• Termoelemento negativo (KN): Ni95%Mn2%Si1%Al2% (Alumel)
• Faixa de utilização: -270°C a 1200°C
• f.e.m. produzida: -6,458 mV a 48,838 mV

Tipo E (Cromel / Constantan)

Este termopar tem uma elevada sensibilidade (68 µV/°C) que o torna adequado para baixas
temperaturas.

• Termoelemento positivo (EP): Ni90%Cr10% (Cromel)


• Termoelemento negativo (EN): Cu55%Ni45% (Constantan)
• Faixa de utilização: -270°C a 1000°C
• f.e.m. produzida: -9,835 mV a 76,373 mV

Tipo J (Ferro / Constantan)

A sua gama limitada (-40 a 750 °C) é a responsável pela sua menor popularidade em relação ao
tipo K. Aplica-se sobretudo com equipamento já velho que não é compatível com termopares mais
‘modernos’. A utilização do tipo J acima dos 760 °C leva a uma transformação magnética abrupta que lhe
estraga a calibração.

• Termoelemento positivo (JP): Fe99,5%


• Termoelemento negativo (JN): Cu55%Ni45% (Constantan)
• Faixa de utilização: -210°C a 760°C
• f.e.m. produzida: -8,096 mV a 42,919 mV

SENAI 135
Programação Avançada CLP Siemens S7-300

Tipo N (Nicrosil / Nisil)

A sua elevada estabilidade e resistência à oxidação a altas temperaturas tornam o tipo N


adequado para medições a temperaturas elevadas, sem recorrer aos termopares que incorporam platina
na sua constituição (tipos B, R e S). Foi desenhado para ser uma “evolução” do tipo K.

Tipo B (Platina / Ródio-Platina)

Os termopares tipo B, R e S apresentam características semelhantes. São dos termopares mais


estáveis, contudo, devido à sua reduzida sensibilidade (da ordem dos 10 µV/°C), utilizam-se apenas para
medir temperaturas acima dos 300 °C. Note-se que devido à reduzida sensibilidade destes termopares, a
sua resolução de medida é também reduzida.

Adequado para medição de temperaturas até aos 1800 °C.

Contra aquilo que é habitual nos outros termopares, este origina a mesma tensão na saída a 0 e a
42 °C, o que impede a sua utilização abaixo dos 50 °C. Em compensação, utiliza cabos de extensão de
cobre comum desde que a sua conexão com o termopar esteja neste intervalo (0°C a 50°C). Os demais
termopares necessitam de cabos de ligação com o mesmo material do termopar, sob o risco de
formarem com o cobre um "outro termopar", se a conexão estiver a temperatura diferente do instrumento
de processamento do sinal (p.ex. transmissor)

• Termoelemento positivo (BP): Pt70,4%Rh29,6% (Ródio-Platina)


• Termoelemento negativo (BN): Pt93,9%Rh6,1% (Ródio-Platina)
• Faixa de utilização: 0°C a 1820°C
• f.e.m. produzida: 0,000 mV a 13,820 mV

Tipo R (Platina / Ródio-Platina)

Adequado para medição de temperaturas até aos 1600 °C. Reduzida sensibilidade (10 µV/°C) e
custo elevado.

• Termoelemento positivo (RP): Pt87%Rh13% (Ródio-Platina)


• Termoelemento negativo (RN): Pt100%
• Faixa de utilização: -50°C a 1768°C
• f.e.m. produzida: -0,226 mV a 21,101 mV

Tipo S (Platina / Ródio-Platina)

Adequado para medição de temperaturas até aos 1600 °C. Reduzida sensibilidade (10 µV/°C),
elevada estabilidade e custo elevado.

• Termoelemento positivo (SP): Pt90%Rh10% (Ródio-Platina)


• Termoelemento negativo (SN): Pt100%
• Faixa de utilização: -50°C a 1768°C
• f.e.m. produzida: -0,236 mV a 18,693 mV

Tipo T (Cobre / Constantan)

É dos termopares mais indicados para medições na gama dos -270 °C a 400 °C.

• Termoelemento positivo (TP): Cu100%


• Termoelemento negativo (TN): Cu55%Ni45% (Constantan)
• Faixa de utilização: -270°C a 400°C
• f.e.m. produzida: -6,258 mV a 20,872 mV

SENAI 136
Programação Avançada CLP Siemens S7-300

O módulo analógico SM334 (AI4/AO2 – 8 bits)


Características

• 4 entradas em um grupo e duas saídas em outro grupo;


• Resolução de 8 bits;
• Método de medição ajustável por canal;
• Não programaável, medição e tipo de saída definido por hardware;
• Não isolado na interrface de barramento;
• Eletricamente isolada para tensão.

Alguns tipos de conexões elétricas do módulo analógico

Medição de corrente e saída de corrente

1) Fonte interna
2) Conversor analógico-digital
3) Entradas (medição de corrente)
4) Saídas (corrente de saída)
5) Conversor digital-analógico
6) Interface de barramento
7) Compensação de potencial
8) Função terra

SENAI 137
Programação Avançada CLP Siemens S7-300

Medição de tensão e saída de tensão

1) Fonte interna
2) Conversor analógico-digital
3) Entradas (medição de tensão)
4) Saídas de tensão
5) Conversor digital-analógico
6) Interface de barramento
7) Compensação de potencial
8) Função terra

SENAI 138
Programação Avançada CLP Siemens S7-300

Instruções utilizadas para entrada e saída de sinais analógicos


Move

Programa exemplo na próxima página

SENAI 139
Programação Avançada CLP Siemens S7-300

SENAI 140
Programação Avançada CLP Siemens S7-300

EXERCÍCIO DE APLICAÇÃO

CONJUNTO DESUMIDIFICADOR

Deseja-se substituir um sistema de comando a relés utilizado para comandar o funcionamento de


um conjunto desumidificador de ar comprimido utilizado em um processo produtivo de fio de poliéster de
uma grande fábrica. Para tanto, será instalado um CLP Siemens no painel de controle deste sistema.
Abaixo é mostrado o sistema e todos os dispositivos de controle do mesmo.

Descrição
A desumidificação consiste em fazer com que o ar comprimido úmido da atmosfera entre em
contato com um elemento higroscópico (que absorve água), por exemplo, a sílica-gel, acondicionado nos
tanques DS-1 e DS-2.
Processo
DS-1 e DS-2 operam alternadamente, isto é, enquanto DS-1 está retirando a umidade do ar
comprimido, DS-2 estará sendo regenerado (recuperação da sílica-gel saturada através da circulação de
ar quente).

Procedimento
1. Partindo-se o compressor, SV-4 e SV-8 deverão permanecer fechadas até que a pressão
de descarga (PSL) atinja o valor desejado;
2. Após a normalização da pressão, DS-1 entrará em operação enquanto DS-2 entrará em
processo de regeneração;

SENAI 141
Programação Avançada CLP Siemens S7-300

3. Decorrido um determinado tempo (por exemplo, 5 minutos), a situação inicial será


alterada, isto é, DS-1 será regenerado enquanto DS-2 desumidificará o ar comprimido.

Comentários
Caso haja alguma anormalidade como: filtro de ar saturado (PSH) ou alta temperatura de
regeneração (TS), o processo deverá ser interrompido (SV-3 e SV-7 fechadas).
Quando um dos tanques passa pelo processo de regeneração (inserção de ar quente para
secagem da sílica-gel), as válvulas correspondentes de entrada e saída de ar são abertas. Por exemplo,
se DS-1 está neste processo, fecham-se as válvulas SV-3 e SV-4 e abrem-se as válvulas SV-1 e SV-2.

Convenções
Válvulas abertas = nível 1
Filtro de ar saturado = nível 1
Filtro de ar saturado (PSH) = 1

Os sensores de temperatura (TS) enviarão um sinal de tensão para as entradas analógicas do


CLP, de forma que o mesmo possa monitorar a temperatura dentro dos tanques e ao mesmo tempo
controlar o aquecimento máximo interno, visto que ela não pode ultrapassar determinado valor, pois a
sílica-gel pode ser queimada.
Os termopares utilizados como sensores de temperatura são do tipo K (cromel / alumel), com as
seguintes características:
• Faixa de operação: -270ºC a 1000ºC
• F.E.M produzida: -6,458mV a 48,838mV

A variação de temperatura dentro dos tanques está na faixa entre +25ºC e 150ºC, sendo esta
última a temperatura máxima permitida no sistema para que a sílica-gel não se danifique.

Resolução

Utilizando-se este tipo de termopar, quando o tanque atingir a temperatura máxima (150ºC),
teremos em seus terminais uma tensão de 7,3257mV, a qual será utilizada como referência máxima para
controle do CLP.

SENAI 142
Programação Avançada CLP Siemens S7-300

Faixa nominal de operação do conversor A/D do cartão SM334

SENAI 143
Programação Avançada CLP Siemens S7-300

Controle PID no CLP SIEMENS SIMATIC S7-300

CONCEITOS

Proporcional
Em matemática, duas quantidades são chamadas de proporcionais se elas variam da mesma
forma, desde que uma das quantidades é um múltiplo constante da outra, ou se elas têm a mesma razão
constante.
Por exemplo:
• Se um objeto viaja a uma velocidade constante, então a distância percorrida é
proporcional ao tempo gasto na viagem, com a velocidade sendo a constante de
proporcionalidade;
• A circunferência de um círculo é proporcional ao seu diâmetro, com a constante
de proporcionalidade sendo o PI (∏);
• Em um mapa desenhado sob uma escala, a distãncia entre dois pontos
quaisquer neste mapa é proporcional à distância das duas localidades que os pontos
representam, com a constante de proporcionalidade sendo a escala utilizada no desenho
dele.

SENAI 144
Programação Avançada CLP Siemens S7-300

Derivada
Em um cálculo a derivada é a medição de como uma função muda quando os valores de suas
entradas são alterados. Em outras palavras, pode ser imaginada em como uma quantidade está
mudando em determinados pontos dados.
Por exemplo, a derivada da posição ou distância de um carro em alguns pontos no tempo é a
velocidade instantânea na qual o carro está viajando.

O gráfico da função acima, desenhado em preto, e a linha da tangente desta função,


desenhada em vermelho. A inclinação da linha tangente é igual à derivada da função
no ponto marcado.

O processo de determinação de uma derivada é chamado de diferenciação, que é um método de


computar a taxa na qual uma quantidade (Y) muda com respeito à alteração de uma outra quantidade
(X), a qual é sempre dependente.

Em cada ponto acima, a derivada é a inclinação da linha tangente da curva.

SENAI 145
Programação Avançada CLP Siemens S7-300

Outro exemplo de derivada (tangente)


A função derivada é o inverso da função integral.

Integral
Dada uma função f(x) de uma variável real (X) e um intervalo (a, b) de uma linha real, a integral é
igual à área da região no plano XY coberta pelo gráfico de f, as linhas horizontais de x = a e x = b, com
as áreas abaixo do eixo X sendo subtraídas.

As funções integrais aparecem em muitas situações práticas. Por exemplo, considerando uma
piscina de natação retangular, temos seu comprimento (C), largura (L) e profundidade (P). Se quisermos
calcular o volume de água que ela suporta e só multiplicarmos as três variáveis.

V=CxLxP

SENAI 146
Programação Avançada CLP Siemens S7-300

Se necessitarmos comprar uma lona para cobri-la é só calcularmos sua área:

A=CxL
E se quisermos achar seu comprimento total (de suas bordas)? É só somarmos o comprimento de
todos os seus quatro lados.
Mas, e se essa piscina for oval? E com o fundo desnivelado? Nesse caso, todos os cálculos
exigirão uma integral em função das variações desiguais que ela possui.
Por exemplo, a integral da curva abaixo.

A função integral é o inverso da função derivada.


Neste estudo não vamos aprender como calcular todas essas funções, mas sim apenas
compreender o que elas significam, pois mais adiante usaremos esses conceitos no estudo do
controle PID (Proporcional, Integral, Derivativo) do CLP Siemens.

SENAI 147
Programação Avançada CLP Siemens S7-300

O CONTROLE PID NO CLP SIEMENS

O controle PID no Step7


O software de controle PID consiste essencialmente de dois blocos de função (FBs) que contêm os
algoritmos das funções para geração de controle e processamento dos sinais para controladores
contínuos ou de passo. É um controle puro de software o qual incorpora um bloco de função padrão com
a funcionalidade do controlador.
O comportamento do controlador em si e as propriedades das funções em medição e ajuste do
canal são realizadas e simuladas pelos algoritmos numéricos do bloco de função correspondente. Os
dados requeridos para estes cálculos cíclicos são armazenados em blocos de dados de controle de loop.
Um FB é necessário somente uma vez para criar vários controladores.
Todo controlador é representado por um bloco DB (data base – base de dados), o qual deve ser
criado especificamente para a aplicação. Isto significa que o projeto de um controlador específico é
limitado pela especificação dos parâmetros estruturais e de valores na janela de edição da interface do
usuário. Este bloco (DB) é criado pela ferramenta de configuração.
Os cálculos dos algoritmos para certo controlador é carregado no processador do S7 no conjunto
de intervalo de tempos chamado “sampling”. Os resultados de cálculos e os valores atualizados das
variáveis de entrada e saída (medição e manipulação de variáveis) e os sinais de estado (limites) são
armazenados no DB correspondente ou transferidos para o processo periférico.

Overview das funções básicas


Em muitas tarefas de controle, não somente um controlador PID clássico como um elemento de
influência do processo é de importância, mas também a função de processamento de sinais tem lugar de
destaque no processo.
Um controlador formado pelo software de controle PID padrão consiste de um número de sub-
funções, as quais você pode configurar separadamente. Além disso, o controlador com funções de
algoritmo PID para condicionamento dos setpoints e variáveis do processo e de revisão das variáveis
calculadas e manipuladas são integrados ao mesmo.
Funções de exibição e monitoramento também estão inclusos.

Overview das funções do bloco “Controle Contínuo”

Criando o controle
O software pode ser utilizado para configurar um controlador para uma tarefa de controle
específica. Seu conjunto de funções pode ser planejado para ser limitado. As chamadas chaves de
sintonia podem ser usadas para ativar ou desativar sub-funções ou para torná-las inativas. Somente as
partes de função remanescentes na estrutura reduzida tem de ser configuradas.

SENAI 148
Programação Avançada CLP Siemens S7-300

A criação de um controle de malha fechada a partir da estruturação da configuração de


parâmetros para sua chamada no tempo correto pelo programa de sistema é possível para uma grande
gama de controles.

Estrutura do controle PID padrão


Depois de instalado o pacote Step7, o programador possui um bloco de biblioteca chamado “PID
Control Blocks”, que contém cinco blocos de função específicos para a programação do controlador,
dependendo do tipo de controle a ser implementado.

Os blocos de função (FBs) no pacote de controle PID consistem de blocos controladores para
controle contínuo (FB41 - CONT_C) e controle por passos (FB42 - CONT_S) e o bloco FB para
modulação por duração de pulso (FB43 - PULSEGEN).
Também há dois blocos exclusivos para controle de temperatura: (FB58 – TCONT_CP) controle de
temperatura com sinal contínuo (C) ou por pulsos (P) e o bloco (FB59 – TCONT_S) para controle de
temperatura com sinais de saída binários para atuadores de integração.
Os blocos controladores implementam um controlador em software e os dados necessários para
os cálculos são armazenados em blocos de dados chamados FBs. Isto permite que esses blocos sejam
chamados a qualquer tempo.
O bloco FB PULSEGEN é usado em conjunto com FB CONT_C para implementar um controlador
com saída de pulso para atuadores proporcionais.

Funções básicas
Um controlador criado com blocos FB consiste de uma série de funções que você pode ativar ou
desativar. Além disso, esse tipo de controlador possui funções integradas disponíveis para
processamento de setpoints e de variáveis.

Aplicações
Um controlador PID implementado com estes dois blocos não tem restrição para uma aplicação
em particular. O desempenho dele e sua velocidade de processamento dependem somente do tipo de
CPU utilizada.
Pode ser utilizado em processos de baixa velocidade de processamento: controle de temperatura,
nível de tanques, etc. Ou então em processos de alta velocidade: vazão de um fluído, velocidade de um
motor, etc.

SENAI 149
Programação Avançada CLP Siemens S7-300

Análise do processo
Nota: o comportamento estático (ganho) e as características dinâmicas (defasagem, tempo morto,
tempo de reset, etc.) do processo a ser controlado tem uma influência significativa na estrutura e projeto
do controlador e sobre a seleção das dimensões dos parâmetros estáticos (componente P) e dinâmicos
(componentes I e D)
Conhecimento preciso do tipo e dos dados característicos do processo a ser controlado é
essencial.

Procedimento para a criação de um projeto com controle PID


Primeiro passo
• No Simatic Manager abrir um novo projeto sob o nome PID
• Iremos utilizar outro modelo de CLP para esta fase final de programação – o
SIMATIC S7-315-2DP, o qual possui diferenças de configuração de hardware em
relação ao S7-312 IFM utilizado até agora.
• Abrir o Step7 Wizard pelo Simatic Manager

• Selecionar a opção de CPU 315-2DP

SENAI 150
Programação Avançada CLP Siemens S7-300

• Selecionar o Organization Block 1 em modo Ladder

• Dar um nome ao projeto e finalizar essa etapa

Segundo passo
Configurar o hardware do novo CLP
• Definir o barramento e o hardware instalado nos Slots. Duplo clique na opção Hardware.

SENAI 151
Programação Avançada CLP Siemens S7-300

• Abrindo a tela do Simatic 300 Station (Configuration), configurar todos os módulos


instalados no barramento. No Slot 1 temos a fonte que é a mesma do modelo anterior. No
slot 2 encontra-se a CPU deste novo modelo.
• O Slot 3 não é utilizado nesta configuração

• No Slot 4 temos o cartão de comunicação AS-I, modelo CP 343-2

• No Slot 4 está conectado o cartão de entradas digitais SM321 (DI 16 entradas X 24Vdc)

SENAI 152
Programação Avançada CLP Siemens S7-300

• No Slot 5 temos o cartão SM322, saídas digitais (DO 16 saídas a 24Vdc / 0,5A)

• Finalmente no Slot 7 temos o cartão de interface analógica (AI/AO – SM334 – 4 entradas


e 2 saídas com resolução de 8 bits cada uma)

• SALVAR AS CONFIGURAÇÕES

Terceiro passo
Inserir os blocos de programação do PID (função FC1)
• Inserir um novo objeto: Insert New Object Î Function Block Î FC1

SENAI 153
Programação Avançada CLP Siemens S7-300

• Abrir o bloco FC1 criado

• Inserir o bloco de controle PID FB41 nele através da árvore da biblioteca de símbolos:
Libraries Î Standard Library Î PID Control Blocks

SENAI 154
Programação Avançada CLP Siemens S7-300

• Ainda na tela de programação de FC1, quando selecionado o bloco FB41, este é inserido
na área de programação.

SENAI 155
Programação Avançada CLP Siemens S7-300

Continuando nesta janela, abrindo a opção FB Blocks da árvore da biblioteca, vemos que o bloco
FB41 foi inserido na relação.

• Parâmetros de configuração das entradas e saídas

NOTA: OBSERVE QUE OS OPERANDOS SÃO TOTALMENTE DIFERENTES DA VERSÃO DE CPU


312 IFM.

SENAI 156
Programação Avançada CLP Siemens S7-300

Operandos de entrada e saída da CPU 315-2DP

• Quando damos um “nome” (operando) ao bloco PID chamado (como bloco de dados
Instance DB1), o software informa que o mesmo não existe e pergunta se desejamos cria-
lo automaticamente.

Confirmando a criação de DB1, o mesmo é gerado e indicado na tela do Simatic Manager.


Quarto passo
Configurar a chamada do bloco PID (FB41 – controle contínuo de processo) através de OB1
• Abrir o bloco OB1 e inserir as instruções em Ladder como mostrado. SALVAR OB1

SENAI 157
Programação Avançada CLP Siemens S7-300

• Na seqüência, quando abrimos a janela de visualização de parâmetros do bloco de dados


DB1, podemos interpretar os valores existentes nas entradas e saídas, bem como a
função dos mesmos.

SENAI 158
Programação Avançada CLP Siemens S7-300

CONTROLES PID COM BLOCOS DE FUNÇÃO


O CLP Siemens Simatic S7-300 possui cinco tipos de controle PID pré-programados em sua
biblioteca e cada um deles têm uma função específica dependendo do tipo de controle em malha
fechada a ser realizado.
A figura a seguir mostra a função simplificada de cada um deles, bem como a biblioteca onde se
encontram.

Controle contínuo com o bloco FB41 “CONT_C”


Introdução
O bloco FB41 é usado pelos controladores S7 para controlar processos técnicos com variáveis de
entrada e de saída com características contínuas, ou seja, sempre possuem variação de seus valores.
Durante o ajuste dos parâmetros, você pode ativar ou desativar subfunções do controlador PID
para adaptá-lo ao seu processo.
Aplicação
Você pode usar o controlador como um controlar PID de setpoint fixo ou em controles em
multiloop, tais como em uma cascata ou em lotes.
As funções de um controlador estão baseadas em um algoritmo de amostragem com um sinal
analógico, estendido se necessário pela inclusão de um estágio gerador de pulsos durante a modulação
dos sinais de saída para dois ou três controladores de passo com atuadores proporcionais.
Descrição
Além das funções de setpoint e valores de processo, o FB41 implementa um controlador PID
completo com variáveis de saída manipuladas e a opção de influenciar os valores manipulados
manualmente.
A seguir, você encontrará uma descrição detalhada das subfunções do bloco.
Ajuste de setpoint
O setpoint é inserido no formato de ponto flutuante na entrada SP_INT.

Qualquer número em pto flutuante = (-1s) . (1.f) . (2 e-127)

SENAI 159
Programação Avançada CLP Siemens S7-300

Onde:
S = BIT DE SINAL (O=Positivo) e (1 = negativo)
e = um expoente binário inteirp = expoente decimal inteiro + 127
f = mantissa em 23 bits com o bit mais significativo igual a 2 -1 e o menos significativo igual a 2 -23

Variável de processo
A variável de processo pode ser inserida nos formato (I/O) ou em ponto flutuante. A função CRP_IN
= PV_PER (setpoint periférico) para ponto flutuante em uma faixa entre -100 a + 100% de acordo com a
seguinte fórmula:

Saída de CRP_IN = PV_PER (100 / 27648)

A função PV_NORM normaliza a saída de CRP_IN de acorco com a fórmula:

Saída de PV_NORM = (saída de CRP_IN) . (PV_FAC /


PV_OFF)

Sinal de erro
A diferença entre o setpoint e a variável do processo é o sinal de erro. Para suprimir uma pequena
oscilação constante devido a quantização da variável manipulada (por exemplo, na duração da
manipulação de um pulso com PULSEGEN), uma banda morta é aplicada ao sinal de erro (deadband).
Se DEADB_W = 0, a banda morta está desligada.

Algoritmo PID
Este algoritmo opera como algoritmo de posição. As ações proporcional (P), integral (I) e
derivativa (DIF) estão conectadas em paralelo e podem ser ativadas ou desativadas individualmente. Isto
permite os controladores serem configurados.

Valor manual
É possível alternar entre o modo manual e o automático. No modo manual, a variável manipulada
é corrigida para um valor selecionado manualmente. O integrador (INT) é ajustado internamente para
LMN (LMN_P-DISV) e a unidade derivativa (DIF) para 0 e relacionada internamente.
Isso significa que um chaveamento para o modo automático não causa nenhuma alteração
repentina no valor manipulado.

Valor manipulado
O valor manipulado pode ser limitado para um valor selecionado usando a função LMNLIMIT. Os
bits de sinalização indicam quando um limite é excedido por uma variável de entrada.

A função LMN_NORM normaliza a saída do LMNLIMIT de acordo com a seguinte fórmula:

LMN = (saída de LMNLIMIT) . (LMN_FAC / LMN_OFF)

SENAI 160
Programação Avançada CLP Siemens S7-300

LMN_FAC tem o valor padrão igual a 1 e LMN_OFF igual a 0.

O valor manipulado está disponível também no formato periférico. A função CRP_OUT converte
um valor LMN em ponto flutuante para um valor periférico de acordo com a seguinte fórmula:

LMN_PER = LMN . (27648 / 100)

Inicialização
O FB41 “CONT_C” tem uma rotina completa de reinicialização que roda quando um parâmetro de
entrada COM_RST = TRUE é ajustado.
Durante a inicialização, o integrador é ajustado internamente para o valor de inicialização I_ITVAL.
Quando ele é chamado em uma interrupção cíclica, continua então a inicialização neste valor.
Todas as outras saídas são ajustadas para os seus valores padrão.
Diagrama de blocos do controlador PID FB41 “CONT_C”

SENAI 161
Programação Avançada CLP Siemens S7-300

Parâmetros de configuração de entrada de uma instrução PID “CONT_C”

SENAI 162
Programação Avançada CLP Siemens S7-300

SENAI 163
Programação Avançada CLP Siemens S7-300

Parâmetros de saída do controlador FB41 CONT_C

SENAI 164
Programação Avançada CLP Siemens S7-300

SENAI 165
Programação Avançada CLP Siemens S7-300

SENAI 166
Programação Avançada CLP Siemens S7-300

SENAI 167
Programação Avançada CLP Siemens S7-300

SENAI 168
Programação Avançada CLP Siemens S7-300

SENAI 169
Programação Avançada CLP Siemens S7-300

SENAI 170
Programação Avançada CLP Siemens S7-300

EXERCÍCIOS COMPLEMENTARES

1) CARRO DE TRANSPORTE

Elabore o programa PLC em diagrama de contatos, de um carro que se move sobre um trilho e
permite, parando acima de uma cuba, limpar peças contidas em um cesto, imergindo-as em um banho
de desengraxe durante 30 segundos. O carregamento e a descarga do cesto efetuam-se manualmente
em posição alta.
Uma ordem de partida de ciclo, bem como uma ordem de fim de descarga, é dada pelo operador
por meio das botoeiras pc e fd respectivamente. O carro só pode se movimentar em posição alta. A
figura abaixo mostra o esquema funcional.

SENAI 171
Programação Avançada CLP Siemens S7-300

2) DIGESTOR

Deseja-se desenvolver um programa para controlar as etapas de operação do digestor ilustrado


abaixo.

SV: válvula solenóide


FT: transmissor de vazão
LSL: sensor de nível baixo
CH: sensor (motor em funcionamento)
H1: homogeneizador
S1: silo para rocha fosfatada

Descrição
Uma das etapas na fabricação do ácido fosfórico é a reação química entre o ácido sulfúrico e a
rocha fosfatada. Esta operação é realizada por um equipamento denominado digestor.

SENAI 172
Programação Avançada CLP Siemens S7-300

Principais usos do ácido fosfórico:

• Indústria de fertilizantes
• Industria de produção de sal mineral para alimentação animal
• Indústria de bebidas
• Usina de açúcar
• Indústria farmacêutica
• Formulação de detergentes
• Abrilhantador de alúminio
• Decapante

Processo
Este equipamento necessita dos seguintes pré-requisitos para a sua partida:
• Nível de rocha fosfatada no silo (LSL-1)
• Motor do homogeneizador em movimento (CH)
• Pressão de ar comprimido adequada (PSL)

Uma vez satisfeitas essas condições, teremos:


1) Carregamento do digestor com ácido sulfúrico (acionamento de SV-1), cujo volume será
medido pelo totalizador de vazão (FT).
2) Carregamento do digestor com rocha fosfatada, cuja quantidade será definida em função
do tempo em que SV-2 ficará aberta (T1).
3) A mistura deverá permanecer um determinado tempo (T2) dentro do digestor, para logo
em seguida ser descarregada através de SV-3.
4) Após a detecção de nível baixo da mistura (LSL-2), a válvula SV-3 deverá ser fechada e
um novo ciclo de carregamento será iniciado automaticamente.
Comentários
Caso haja uma pane no equipamento, o sistema de borbulhamento com ar comprimido deverá
entrar em operação (SV-4).
O sistema de controle deverá contar com botões de partida e parada (S1 e S2)
Convenções
• Nível baixo de LSL-1 ou LSL-2 = 1
• Totalizador de vazão em FT = 10 pulsos / litro
• Baixa pressão de ar comprimido em PSL = 0
• Motor parado = 1
• Tempo de carregamento de rocha (T1) = 30s
• Tempo de permanência no digestor (T2) = 2 min
• Válvulas solenóides SV1, SV2 e SV3 abertas = 1
• Válvula solenóide SV-4 fechada = 1

SENAI 173
Programação Avançada CLP Siemens S7-300

3) GUILHOTINA

Desenvolver uma aplicação para CLP Siemens para automação de uma guilhotina, a qual possui
uma lâmina acionada por um cilindro de ação simples (retorno por mola), cuja operação de corte ocorre
nas seguintes condições:

• A lâmina da guilhotina desce e efetua o corte do material quando o operador carregar e


mantiver pressionados dois botões pulsadores (b1 e b2), cada um com uma mão, com um
tempo de ligação entre ambos não superior a 0,5s;

• Se um dos botões estiver travado (permanentemente ligado), a lâmina não é acionada.

Respeitadas estas condições, o cilindro que comanda a lâmina empurra esta e é executado o
corte. A descida da lâmina termina quando um fim de curso (fc) for atuado, regressando a lâmina à sua
posição de repouso por ação de uma mola.

Nova operação de corte só é possível após ambos os botões deixarem de estar pressionados.

Se durante a descida da lâmina um dos botões for solto, esta deve parar a descida e voltar
imediatamente à sua posição de repouso (recuada).

Além destas seguranças, há também uma barreira de luz infravermelha (IR) que, se cortada,
desliga o avanço do pistão e retorna a lâmina à sua posição de recuo.

Este funcionamento, que também é comum em outros tipos de máquinas, destina-se a respeitar
uma regra de segurança que tem por finalidade reduzir o risco de acidentes, no caso a mutilação das
mãos do operador, uma vez que o obriga a utilizar as duas mãos para que a guilhotina execute o corte.

SENAI 174
Programação Avançada CLP Siemens S7-300

4) MÁQUINA DE ENCHIMENTO DE LATAS

Elabore o programa PLC para implementar o controle em uma máquina de enchimento de latas
composta por três estações, as quais realizam, seqüencialmente, a dosagem com xarope (X), o
enchimento com água (A) e a colocação da tampa (T) em cada lata.
As latas são transportadas sobre pallets igualmente espaçados entre si, e o acionamento da
esteira transportadora é realizado por controle próprio, o qual efetua interrupções periódicas a fim de
permitir o correto posicionamento e operação nas latas em cada uma das estações. O sensor PP
identifica a presença de um novo pallet, enquanto o sensor PL identifica a presença de uma lata na
primeira estação (dosagem com xarope).
Como pode haver pallets sem lata, o controle prevê a não-operação das estações que não
tiverem lata, o que leva a um programa com uma estrutura de transição terminal denominada 'fundo-de-
poço'. A figura ilustra o esquema funcional da máquina.

SENAI 175
Programação Avançada CLP Siemens S7-300

5) MÁQUINA DE IMPRESSÃO DE CARTAZES

Elaborar um programa para uma máquina de imprimir cartazes, conforme ilustrado na figura. O
rolo 1, que contém tinta fornecida pelo dispositivo ligado ao pistão W, arrasta o papel quando o rolo 2
sobe acionado pelo pistão V (o ponto O é fixo).
Assim, quando o ressalto do rolo 1 aciona o sensor 'a', V é ativado, pressionando o papel contra o
rolo 1. Quando o sensor 'a' é liberado, inicia-se o processo de impressão, ativando-se o pistão W. O
fornecimento de tinta continua até o ressalto do rolo 1 acionar o sensor 'b '. Neste momento, o pistão V é
desativado, permitindo que o rolo 2 liberte o papel.
Simultaneamente, é ativado o pistão Z para cortar a folha de papel. Quando o sensor 'b' for
liberado, a guilhotina sobre a máquina fica pronta para um novo ciclo de trabalho.

SENAI 176
Programação Avançada CLP Siemens S7-300

6) PORTÃO AUTOMÁTICO

Desenvolver uma aplicação para CLP Siemens para automatizar a abertura e fechamento de um
portão de residência, conforme a ilustração a seguir.

As condições de funcionamento são as seguintes:


• A ordem para abertura do portão é fornecida por um emissor (Tx) de comando à distância.
Quando o sinal é recebido pelo receptor (Rx) existente junto ao portão, este abre e uma
lâmpada sinalizadora (L1) acende de forma intermitente (pisca-pisca);
• No final da abertura do portão são atuados interruptores fim de curso (FC1 e FC2),
colocados nas posições indicadas acima. Estes fins de curso dão a informação de parada
dos motores M1 e M2 e para desligar a lâmpada sinalizadora L1;
• O portão deverá ficar aberto por 60s, fechando automaticamente ao final deste tempo.
Durante o fechamento, a lâmpada sinalizadora volta a funcionar de forma intermitente;
• A operação de fechamento é efetuada durante 20s, não existindo interruptores fins de
curso para detectar o final deste fechamento;
• Ainda, durante o fechamento do portão, se o emissor de telecomando for novamente
pressionado ou a barreira de infravermelho (IR), existente na parte de dentro do portão,
for interrompida, o portão volta a abrir.

SENAI 177
Programação Avançada CLP Siemens S7-300

8) SELECIONADOR DE CAIXAS

Elaborar um programa para um dispositivo automático destinado a selecionar caixas de dois


tamanhos diferentes, que se compõe de uma esteira rolante de alimentação de caixas, de um dispositivo
de detecção que permite reconhecer sem ambigüidade o tipo de caixa presente, de três cilindros
pneumáticos comandados por eletroválvulas, de sensores de posição para cada cilindro, sendo Pl
(posição inicial) PM (posição média) PF (posição final) e de duas esteiras rolantes de saída.
O braço (1) empurra as caixas pequenas diante do braço (2) e este as translada sobre a esteira
de saída para caixas pequenas. O braço empurra as caixas grandes diante do braço (3) e este as
translada para a esteira de saída de caixas grandes. O detector (A) percebe a presença de uma caixa e
o detector (B) identifica o tamanho da caixa, pois atua quando ela for do tipo grande, conforme ilustra a
figura a seguir.

SENAI 178

Você também pode gostar