Buscar

Apostila CLP Avançado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 178 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 178 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 178 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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 
SENAI 2
 
 
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 
Programação Avançada CLP Siemens S7-300 
SENAI 3
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 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 4
 
 
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: 
Programação Avançada CLP Siemens S7-300 
SENAI 5
• 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 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 6
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. 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 7
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. 
Programação Avançada CLP Siemens S7-300 
SENAI 8
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 9
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 
Programação Avançada CLP Siemens S7-300 
SENAI 10
 
 
 
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. 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 11
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.). 
Programação Avançada CLP Siemens S7-300 
SENAI 12
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 
Programação Avançada CLP Siemens S7-300 
SENAI 13
 
 
 
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ívelonline. 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. 
Programação Avançada CLP Siemens S7-300 
SENAI 14
 
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 
 
Programação Avançada CLP Siemens S7-300 
SENAI 15
Fonte de alimentação carregada no slot 1 do barramento 
 
Módulo de E/S carregado no slot 4 do barramento 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 16
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. 
 
Programação Avançada CLP Siemens S7-300 
SENAI 17
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; 
Programação Avançada CLP Siemens S7-300 
SENAI 18
• 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) 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 19
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 20
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 21
 
 
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 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 22
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) 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 23
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) 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 24
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 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 25
RESOLUÇÃO DO EXERCÍCIO 
EM LINGUAGEM LADDER 
 
EM LINGUAGEM DE BLOCOS DE FUNÇÃO (FBD) 
 
Programação Avançada CLP Siemens S7-300 
SENAI 26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 27
Descrição das linhas de instrução do programa 
 
Programação Avançada CLP Siemens S7-300 
SENAI 28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 29
INTERFACE ELÉTRICA DAS ENTRADAS E SAÍDAS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 30
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. 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 31
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. 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 32
Exemplo de aplicação 
A figura abaixo mostra a instrução S_PEXT e as características do temporizador de pulso. 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 33
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. 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 34
Exemplo de aplicação 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 35
Configuração da instrução para FBD 
 
Configuração da instrução para STL 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 36
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). 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 37
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. 
 
 Conseqüência Defeito no circuito 
comandado por: 
Desliga 
Desliga Continua ligado 
C4 
C3 
C2 
C1 
M4 
M3 
M2 
M1 
 
M4 
M3 e M4 
M2, M3 e M4 
M1, M2 e M3 
M1 e M2 
M1 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 38
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. 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 39
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 umaadiçã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. 
Programação Avançada CLP Siemens S7-300 
SENAI 40
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 
 
Programação Avançada CLP Siemens S7-300 
SENAI 41
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 42
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 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 43
Conversão do programa para STL 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 44
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) 
 
Programação Avançada CLP Siemens S7-300 
SENAI 45
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) 
 
Programação Avançada CLP Siemens S7-300 
SENAI 46
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) 
 
Programação Avançada CLP Siemens S7-300 
SENAI 47
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 
Bits da palavra de estado Escala válida para o resultado com números inteiros (16 e 32 bits) 
CC1 CC0 OV OS 
0 (zero) 0 0 0 - 
16 bits Î resultado entre 0 e o valor -32.768 (número negativo) 
32 bits Î resultado entre 0 e -2.147.483.648 (número negativo) 0 1 0 - 
16 bits Î resultado entre 0 e o valor 32.767 (número positivo) 
32 bits Î resultado entre 0 e 2.147.483.647 (número positivo) 1 0 0 - 
 
Tabela para valores fora da escala válida 
Bits da palavra de estado Escala válida para o resultado com números inteiros (16 e 32 bits) 
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 
positivo) 
0 1 0 - 
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 
negativo) 
1 0 0 - 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 48
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. 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 49
Usando os três componentes “S”, “e” e “m”, o valor de um número representado neste formato é 
definido por uma fórmula: 
 
 
 
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: 
 
NÚMERO = (s) 1,m X 2e-127 
Programação Avançada CLP Siemens S7-300 
SENAI 50
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: 
 
Programação Avançada CLP Siemens S7-300 
SENAI 51
Exemplos de números reais de 32 bits 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 52
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. 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 53
Monitoração da instrução ADD_R 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 54
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. 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 55
Na monitoração: 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 56
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. 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 57
Monitoração da instrução 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 58
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. 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 59
Monitoração da instrução 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 60
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 61
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. 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 62
Monitoração da instrução 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 63
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. 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 64
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 
aparecefreqü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). 
Programação Avançada CLP Siemens S7-300 
SENAI 65
 
 
Monitoração da instrução 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 66
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); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 67
Instruções de comparação com números inteiros 
 
Programação Avançada CLP Siemens S7-300 
SENAI 68
Monitoração das instruções de comparação com números inteiros 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 69
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 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 70
 
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 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 71
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. 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 72
Programação Avançada CLP Siemens S7-300 
SENAI 73
 
 
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 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 74
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. 
 
Programação Avançada CLP Siemens S7-300 
SENAI 75
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). 
 
M 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 76
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 77
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 realizaa operação inversa da instrução anterior. A saída ENO tem sempre o mesmo 
estado da entrada EN. 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 78
 
 
 
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. 
Programação Avançada CLP Siemens S7-300 
SENAI 79
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 80
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). 
 
Programação Avançada CLP Siemens S7-300 
SENAI 81
 
 
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). 
Programação Avançada CLP Siemens S7-300 
SENAI 82
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 83
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. 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 84
 
 
 
Alterando o valor da entrada N. 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 85
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. 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 86
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. 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 87
 
 
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. 
 
Programação Avançada CLP Siemens S7-300 
SENAI 88
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 89
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. 
Programação Avançada CLP Siemens S7-300 
SENAI 90
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 91
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. 
Programação Avançada CLP Siemens S7-300 
SENAI 92
 
 
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 
Programação Avançada CLP Siemens S7-300 
SENAI 93
 
 
Exercícios: converta o programa anterior para FBD e STL e analise seu comportamento. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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. 
Programação Avançada CLP Siemens S7-300 
SENAI 94
Conversão do programa para STL 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 96
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 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 97
 
 
 
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 
 
Programação Avançada CLP Siemens S7-300 
SENAI 98
 
 
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 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 99
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 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Avançada CLP Siemens S7-300 
SENAI 100
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; 
Programação Avançada CLP Siemens S7-300 
SENAI 101
• 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

Outros materiais