You are on page 1of 35

Disciplina: CLP

Apostila n. 5
Sumário
Controle em Malha-Fechada................................................................................................ 1

Definições ............................................................................................................................ 1

Introdução ............................................................................................................................ 4

Partida de motores Trifásicos: Acionamento por Botão.................................................... 5

Partida Υ/∆ (Estrela/triângulo) de motores Trifásicos ....................................................... 6

Características básicas do Controlador Programável PS4-201 MM1®................................. 7

Fluxograma ........................................................................................................................ 11

Passo: Project Manager — Criar um novo projeto ............................................................. 12

Editar o Programa do usuário. POU-Editor — Program Organisation Unit-Editor.............. 12

Começando a Programar em Ladder ................................................................................. 13

Declarando as Variáveis................................................................................................. 17

Syntax Check ................................................................................................................. 18

Descobrindo o Erro......................................................................................................... 19

Explicação Detalhada do Bloco de Função MS_TimeRising.............................................. 24

Lógica................................................................................................................................. 27

Algoritmo ............................................................................................................................ 27

Sumário das Funções IEC 1131-3 e Moeller...................................................................... 28

Referências Bibliográficas ..................................................................................................... 32

Exercícios de Fixação............................................................................................................ 33
1

Centro Federal de Educação Tecnológica de São Paulo

1. Automação industrial

O objetivo da Automação industrial é o de tornar os processos automáticos, isto é, desenvolver


tecnologias para que os trabalhos realizados por homens sejam realizados por máquinas que se
movam, regulem e operem por si mesmas.

Controle em Malha-Fechada

Um sistema de controle pode ser representado pelos blocos da figura 1.1.

Processo

Atuação Medição

Controle

Figura 1.1 - Sistema de Controle

Podemos dizer que a Automação Industrial é um conjunto de técnicas destinadas a tornar


automáticos vários processos numa indústria.

Definições

Medição ⇒ Responsável pela transformação da grandeza que se deseja controlar num sinal que
possa ser manipulado pelo sistema de controle.

Prof. Eng.M.Sc. d'Avila


2

Centro Federal de Educação Tecnológica de São Paulo

Atuação ⇒ Responsável pela transformação do sinal de saída do controlador no sinal que possa
comandar a variável de entrada do sistema que está sob controle.

Processo ⇒ Operação que evolui progressivamente e que se constitui por uma série de ações
controladas objetivando um particular resultado.

Controle Realimentado ⇒ É uma operação que na presença de distúrbios , tende a reduzir a


diferença entre a saída de um sistema e a entrada de referência.
Controle Automático

Para realizar o controle dos processos existe o Controlador Lógico Programável que pode
ocupará o bloco de controle da figura x.x.

Processo

Atuação Medição

Figura x.x - Controle Automático com


CLP na malha de Realimentação

Prof. Eng.M.Sc. d'Avila


3

Centro Federal de Educação Tecnológica de São Paulo

O Sr. Armando confusão, no exemplo da figura x.x, está controlando a temperatura da água
para uso em um hotel. Pode-se ver no exemplo os blocos: Processo, Medição, Controlador, Atuação.

Medição
Sensor

Atuador Controlador
Vávula

Trocador de
Calor

Misturador
Serpentina

Processo
Aquecer água
utilizando a energia
térmica do vapor

Prof. Eng.M.Sc. d'Avila


4

Centro Federal de Educação Tecnológica de São Paulo

Partida Υ/∆ (Estrela/triângulo)

Introdução

A Norma Técnica Unificada — NTU.01, para fornecimento de energia elétrica em tensão


secundária a edificações individuais tem por objetivo orientar os consumidores individuais das áreas
de concessão da CESP, CPFL e Eletropaulo.

A NTU.01 orienta que: motores trifásicos de gaiola ou de indução com potência acima 5
(C.V.), devem partir de forma indireta. Um possível sistema de partida indireta é a manobra Υ/∆
(estrela/triângulo).

O sistema de manobra Υ/∆ (estrela/triângulo) tem por objetivo reduzir a corrente de partida de
motores.. As companhias fornecedoras de energia elétrica fixam valores máximos para a corrente de
partida. Se o motor a ser instalado possuí uma corrente de partida maior que a fixada é necessário
implementar um circuito que minimize a corrente de partida.

A partida Υ/∆ é normalmente implementada por contatores e um temporizador. Pode-se, no


entanto, utilizar um Controlador Lógico Programável — CLP para esta finalidade. A partida Υ/∆ com
contatores e temporizador é mais econômica que a partida Υ/∆ utilizando um CLP. Evidentemente a
utilização do CLP numa única partida de motor está limitada aos casos onde o CLP realiza também
outras funções e existam entradas e saídas disponíveis.

Prof. Eng.M.Sc. d'Avila


5

Centro Federal de Educação Tecnológica de São Paulo

Partida de Motores Acionamento por Botão

Fusível Geral
Partida de motores Trifásicos: Acionamento por Botão e

Circuito de comando didático simplificado. Acionamento por botão.


b0 = Botão de Comando Desliga (normalmente fechado)
Relé Térmico
e
b1 = Botão de Comando Liga (normalmente aberto)
c1 = Contator de Rede 1
Contato Abridor
c2 = Contator Estrela
(normalmente fechado)
c 2
c3 = Contator Triângulo 3
Contato Fechador
d1 = Relé Temporizador
(normalmente aberto)
c 4

b1 c1
c

b0 d1 d1
c c

c2

d1 c1 c2 c3
N

Prof. Eng.M.Sc. d'Avila


6

Centro Federal de Educação Tecnológica de São Paulo

Partida Υ/∆ (Estrela/triângulo) de motores Trifásicos

Forma de Operação: Acionamento por botão.

Ligação:
1. Botão de comando b1 aciona o contator estrela c2e o dispositivo de retardamento d1.
2. O contato fechador c2 atua sobre o contator de rede c1, cujo contato fechador opera.
3. O motor entra em funcionamento em estrela.

Comutação:
1. Decorrido o retardamento, o contato abridor d1 opera e o contator estrela c2 é desligado.
2. Quando o contato abridor de c2 fecha, entra o contator triângulo c3, pois o contato fechador de
c1 já estava fechado quando c1 ligou.
3. O motor funciona, agora, em triângulo.

Interrupção:
1. Acionado o botão b0, interrompe o contator c1.
Contato fechador de c1 abre-se em seguida; o contator triângulo e o motor são desligados.

Prof. Eng.M.Sc. d'Avila


7

Centro Federal de Educação Tecnológica de São Paulo

PLC — Programmable Logic Controller

Segundo a ABNT — Associação Brasileira de Normas Técnicas o PLC — Programmable


Logic Controller (Controlador Lógico Programável), é um equipamento eletrônico digital com
hardware e software compatíveis com aplicações industriais. No Brasil o termo CLP — Controlador
Lógico Programável, foi registrado pela Allen Bradley.

O PLC é um dispositivo que permite construir lógicas de automação flexíveis de instalação rápida
ocupando pequeno espaço físico. É um equipamento para tarefas de automação como:
Controle
Regulação
Operação
Cálculos
Posicionamento
Medições
Comunicação

Imagem extraída do livro: Controle de Processos. Ogata

Características básicas do Controlador Programável PS4-201 MM1®

08 entradas Digitais e 02 Analógicas de 10 bits (de 0 a 10 V)


06 Saídas Digitais 24V/0,5A protegidas contra curto-circuito e sobrecarga, e 01 Analógica de 12
bits ( de 0 a 10 V)
Expansível localmente ou remotamente
o Localmente ⇒ Módulos LE4
o Remotamente ⇒ Módulos EM4
Programável em Lista de Instrução, Ladder ou blocos.
Programas desenvolvidos no SUCOSOFT instalado no PC (Personal Computer) e transferido
através da porta serial (RS232C) para o PS4.

Prof. Eng.M.Sc. d'Avila


8

Centro Federal de Educação Tecnológica de São Paulo

Controlador Programável
PS4-201-MM1 da Moeller

Foto extraída do catálogo da Moeller

Prof. Eng.M.Sc. d'Avila


9

Centro Federal de Educação Tecnológica de São Paulo

Controlador Programável PS4-201-MM1 da Moeller


Vista Frontal
Imagem extraída do catálogo da Moeller

1 Entrada para fonte de alimentação 10 6 saídas digitais, 02 entradas analógicas

2 Entrada do contador rápido 11 Interface SUCOnet K

3 Entrada de interrupção 12 Potenciômetros

4 Presilha de fixação 13 Resistência de final de bus

5 Entradas digitais e alimentação 14 Interface de Programação


das saídas

6 Conector do tipo plug-in 15 Montagem em trilho DIN

7 Sinalização de estado das 16 Módulo de expansão de memória


entradas
8 Sinalização de estado das 17 Sinalização de Estado da CPU
saídas
9 Conector do tipo plug-in

Prof. Eng.M.Sc. d'Avila


10

Centro Federal de Educação Tecnológica de São Paulo

Programando com o SUCOSOFT® da Moeller

Iniciando o SUCOSOFT
Atalho para acessar
O arquivo executável é o
rapidamente o
WORKB.EXE
SUCOSOFT na Área de
C:\S40\WORKB.EXE
Trabalho

Com um duplo clique no Atalho S40 tem-se acesso à barra de ferramentas do Sucosoft Manager —
Tools.

Project Topology
Code Configurator
Manager
Generation

Test and POU-Editor


Commissioning

Figura x.x - Seqüência de


Programação SUCOSOFT
S 40 da Moeller (jul. 98,
p.20).

Prof. Eng.M.Sc. d'Avila


11

Centro Federal de Educação Tecnológica de São Paulo

Fluxograma

Início N
Sintaxe
2
Correta?
Problema de
Automação S

Compilar
Code Generate
4 Algoritmo

Criar um Projeto Testes e


no Sucosoft. Comissionamento
Project Manager

N
Testes
Configurar 3
Ok?
Topologia
S

Editar o Programa Transferir


2 do Usuário. Programa para o
POU-Editor CLP

Declarar Variáveis Executar


Programa

Verificar Sintaxe
Syntax Check

O Programa
N
1 Soluciona o
4
Problema de
Automação?

Fim

Prof. Eng.M.Sc. d'Avila


12

Centro Federal de Educação Tecnológica de São Paulo

Passo: Project Manager — Criar um novo projeto

Project Manager ⇒ Project ⇒ New ⇒ Project Patch ⇒


digite C:\PMOTORET ⇒ Project ⇒ Exit

No conceito de hierarquia do Windows® temos: Área de Trabalho ⇒ Computador do Usuário


⇒ Unidade de Discos ⇒ Pastas ⇒ Subpastas ⇒ Arquivos. A pasta de projeto pmotoret, com suas
subpastas e arquivos, será guardada na unidade de disco "C".

Para dar nome ao projeto é necessário lembrar as regras para nomear arquivos do DOS — Disk
Operating System. Embora o SUCOSOFT S40 versão 3.01 seja desenvolvida para o ambiente
Windows, ele ainda guarda esta restrição do sistema operacional DOS.

Regras para nomear pastas e arquivos:


Podem ter até oito caracteres.
Não são sensíveis a maiúsculas e minúsculas.
Podem conter apenas letras de A a Z, os números de 0 a 9, e os seguintes caracteres
especiais: _ ^ $ ~ ! # % & - { } @ ' ( ).
Não podem conter espaços, vírgulas, barras invertidas ou pontos (exceto o ponto que
separa o nome da extensão.
Não podem ser idênticos a outro nome de arquivo ou subpastas da mesma pasta.

Procure criar um nome mnemônico — que ajude a memória, que facilite a localização e a
lembrança do conteúdo. Por exemplo: pmotoret é o acrograma de Partida Motor Estrela/Triangulo.
Acrograma é a palavra formada pela redução de palavras ou expressões a letras ou sílabas iniciais.

A árvore de pastas é criada automaticamente. A árvore é a hierarquia entre pastas e subpastas


com seus respectivos arquivos.

Editar o Programa do usuário. POU-Editor — Program Organisation Unit-


Editor
POU-Editor ⇒ File ⇒ New ⇒ na caixa de diálogo selecione ⇒
Program ⇒ New ⇒ Option ⇒ Syntax-Controlled Mode ⇒ Option
⇒ Programming Language ⇒ LD ⇒ Window ⇒ Tile.
Prof. Eng.M.Sc. d'Avila
13

Centro Federal de Educação Tecnológica de São Paulo

Começando a Programar em Ladder


Iniciando a
Programação
Inserção da Lógica

Após a inserção da lógica é hora de nomear os contatos. Com um clique do botão direito em
cima do contato aparecerá o menu de atalho

Com um clique em Name Element..., aparecerá a caixa um caixa de diálogo, onde iremos
nomear o contato. As regras para nomerar um contato são:

Prof. Eng.M.Sc. d'Avila


14

Centro Federal de Educação Tecnológica de São Paulo

Clicando em Ok o nome aparecerá acima do contato nomeado. A seguir vamos inserir um


contato em série com o contato Liga. Clicando sobre a linha na frente do contato Liga a linha ficará
sombreada conforme figura x.

Clicando com o botão direito do mouse sobre a área sombreada aparecerá o menu de atalho,
escolha a opção insert AND. Apertando a barra de espaço o contato passará de normalmente aberto
para normalmente fechado, outra opção que gera o mesmo resultado é clicar com o botão direito do
mouse sobre o contato inserido e escolher a opção Negate Spacebar.

Inserindo nova linha do diagrama Ladder: Vamos inserir um bloco de função definido pelo
fabricante para gerar um atraso de tempo entre o instante que se liga o contator estrela e o instante em
que se desliga o contator estrela e se ligue o contator triangulo.
O SUCOSOFT® da Moeller possui blocos de função padrão IEC1131.3 e blocos padrão
Moeller, que estão disponíveis para o programador. O IEC — International Electrotechnical
Commission, é um orgão de padronização no âmbito internacional. Para acessar os blocos de função:

Symbols ou Data Types ⇒ Manufactuer-Defined Function Blocks... ⇒ Selecione


MS_TimeRising.

Quando o foco estiver na janela do editor de linguagens aparecerá Symbols ao invés de Data
Types. O procedimento é o mesmo. Para mudar o foco basta clicar na barra de títulos da janela
Foco no Editor de Barra de
LD/FDB-Editor.
Variáveis Títulos

Prof. Eng.M.Sc. d'Avila


15

Centro Federal de Educação Tecnológica de São Paulo

Escolha o bloco de função MS_TimeRising na tela de menu, dê um nome, para o bloco


escolhido, digite em Instance Name ⇒ Temp, que é a abreviação de temporizador. Para finalizar de
um clique no botão Accept.

Barra de
Rolagem

Nome do
Temporizador

Ao clicar no botão Accept o bloco é automaticamente inserido no modo LD/FDB ou no modo


IL são inseridas as linhas de programação. Para obter informações sobre os blocos de função clique em
Help ⇒ List of Manufacturer Function Blocks ⇒ no sumário das funções escolha o bloco.

Por exemplo: o temporizador que iremos utilizar na partida estrela/triângulo é o número 18 do


sumário de nome: MS_TimeRising e a descrição é: On-delay timer, milliseconds. Com um clique
sobre On-delay timer, milliseconds, temos a explicação detalhada do bloco, em inglês, não está
disponível a ajuda em espanhol.
A linha 2 um vez inserida contém o Ms_TimeRising, conforme figura X.

Prof. Eng.M.Sc. d'Avila


16

Centro Federal de Educação Tecnológica de São Paulo

Com um clique do botão esquerdo do mouse sobre a linha de Set esta ficará selecionada, em
seguida com um clique do botão direito pode-se determinar qual é o operando que irá setar o bloco. No
nosso caso será o contator de rede C_Rede.

Na entrada do Preset Time ao invés de entrar com um valor diretamente iremos faze-lo através
de uma variável que iremos chamar de uiTemp. Explicações sobre o porque deste nome.

Continuação:

Vamos inserir a terceira linha de programação através do botão de inserção de linha de


programação.

Prof. Eng.M.Sc. d'Avila


17

Centro Federal de Educação Tecnológica de São Paulo

Declarando as Variáveis

Após todas as linha inseridas é hora de declarar as variáveis. Com um clique na barra de títulos
Syntax-Controled Variable Editor o foco irá para esta janela, ou simplemente maximizamos a janela.

Após digitar Name, selecionar BOOL em Type, atribuir a entrada zero ao botão de liga e
acrescentar um comentário sobre a variável basta clicar no botão Add.Na continuação declaramos
todas as variáveis e os blocos utilizados na lógica. Para declarar o bloco de função clicamos em
DataType e selecionamos o bloco MS_TimeRising.
Data Types ⇒ Manufactuer-Defined Function Blocks... ⇒ Selecione MS_TimeRising.

Prof. Eng.M.Sc. d'Avila


18

Centro Federal de Educação Tecnológica de São Paulo

Em restaurar pode-se retornar para as duas janelas lado a lado. Para salvar a programação ⇒ na
barra de ferramentas clicar em File e em Save As. Aparecerá a caixa de diálogo.

Syntax Check
O programa está salvo é hora de verificar se ao digitar cometemos erros de sintaxe.
Na barra de ferramentas do POU-Editor encontra-se a Opção Syntax Check

Verifica Erros Não houve


de Sintaxe Erro de
Sintaxe

Prof. Eng.M.Sc. d'Avila


19

Centro Federal de Educação Tecnológica de São Paulo

No caso de ocorrer um erro a caixa de mensagens aparecerá indicando qual o tipo de erro
cometido. No caso existe um identificador que não foi declarado.

Descobrindo o Erro

Clicando duas vezes sobre a linha que identifica o erro o foco é deslocado para local onde
encontra-se o erro.

Prof. Eng.M.Sc. d'Avila


20

Centro Federal de Educação Tecnológica de São Paulo

No caso da figura x.x o mensagem de erro aponta que um identificador não foi declarado. O
foco está sobre o contato Deslig. A variável foi declarada como Desliga. Pode-se corrigir o Tag do
contato para Desliga ou a declaração da variável para Deslig.

2. Passo: Configurar o Hardware. O CLP PS4-201-MM1, permite a expansão de sua capacidade


de controle conectando-se em rede com módulos externo EM4, e módulos de expansão local
LE4.

Topology Configurator ⇒ Configuration ⇒ New ⇒ File Name


digite PMOTORET ⇒ Em PLC Type selecione ⇒ PS4-201-
MM1 ⇒ OK ⇒ Configuration ⇒ Save ⇒ Configuration ⇒ Exit.

Topology Configurator, os arquivos são criados com a extensão .dcf (device configuration) e
salvos em kompo.sys. Em salvar "save" o arquivo é criado com o nome do projeto no caso pmotoret
com a extensão dcf ⇒ c:pmotoret\kompo.sys\pmotoret.dcf

O arquivo com o programa do usuário é salvo com a extensão .poe. É salvo na pasta
c:\pmotort\kompo.sys\pmotoret.poe

3. Gerando o Código de Máquina.

Program Code Generation Generate ⇒ Generate All

Prof. Eng.M.Sc. d'Avila


21

Centro Federal de Educação Tecnológica de São Paulo

Outra opção para gerar o código fonte é no POU-Editor em File Generate Code. Clicando em
sim aparecerá a tela da figura x.x

Clicando em Ok ⇒ Generate ⇒ Generate All

Clicando no botão sim onde está o foco temos:


O Program Code Generation criou o arquivo pmotor.mak. O pmortor.mak é o código fonte que
após ser "link-editado" poderá ser executado pelo CLP.

Prof. Eng.M.Sc. d'Avila


22

Centro Federal de Educação Tecnológica de São Paulo

4. Transferência do Programa executável do Computador para o CLP. Test Commissinoning.

O status indica que o CLP e o Computador não estão logicamente conectados. Clicando no
Botão Connect, o computador tentará uma conexão com o CLP.

Transferindo o programa do Computador para o CLP.


Transfer... ⇒ aparecerá a Tela do Tranfer/File-Manager
.

Prof. Eng.M.Sc. d'Avila


23

Centro Federal de Educação Tecnológica de São Paulo

Clicar no arquivo pmotoret.pcd ⇒ Transfer → PLC. O programa informará que o CLP está
rodando um programa, e perguntará se deseja parar de rodar o programa, conforme tela da figura x.x

Clicando em sim o programa será transferido conforme tela da figura x.x


Após a transferência o programa perguntará se deseja rodar o novo programa carregado
conforme tela da figura x.x

O botão de compare o programa selecionado no computador com o que está na memória do


CLP permite saber qual é o programa está rodando no CLP.

Prof. Eng.M.Sc. d'Avila


24

Centro Federal de Educação Tecnológica de São Paulo

Explicação Detalhada do Bloco de Função MS_TimeRising

Function block prototype MS_TimeRising


On_delay timer, milisenconds

Ms_TimeRising
Set OutputControl
Reset ElapsedTime
Hold

PresetTime

Set Start condition, rising edge


ReSet Reset condition
Hold Time interruption
PresetTime Time setpoint in milliseconds
OutputControl Control output
ElapsedTime Time actual value in milliseconds

Description
Time diagram

(1) (2) (3) (4) (5)

Set

Reset

Hold
THOLD

T T
OutputControl
T + THOLD

Prof. Eng.M.Sc. d'Avila


25

Centro Federal de Educação Tecnológica de São Paulo

Simbologia

A simbologia dos blocos de função tem por objetivo representar as relações entre as entradas e
as saídas sem que para isto seja necessário apresentar explicitamente sua lógica interna.

Símbolo de
Qualificação
de Entrada

Ms_TimeRising
Set

Entradas Saídas

As linhas de entrada são colocadas à esquerda, exceto quando indicadas por meio de setas nas
linhas de acesso.

Entrada Dinâmica Ativada na


O símbolo de qualificação de entrada
Borda de Subida

A entrada Set aciona a contagem de tempo a partir da borda de subida do sinal aplicado. A
partir da borda de subida da entrada Set o temporizador conta o tempo T e a saída OutputControl vaí
para um (1), e permanece em um até que o sinal aplicado a entrada Set volte para zero (0).

Set

OutputControl

Entrada Dinâmica Ativada na


O símbolo de qualificação de entrada
Borda de Descida

Prof. Eng.M.Sc. d'Avila


26

Centro Federal de Educação Tecnológica de São Paulo

Metodologia de Programação
A metodologia de programação tem por objetivos: programas legíveis, claros, confiáveis,
eficazes, de rápida depuração com alta produtividade.

Procedurais ⇒ Estruturada
Orientadas a Objetos
Orientada a Eventos
O prof. Edsgar W. Dijkstra da Tecnological University of Eindhoven, Holanda, 1965,
introduziu os primeiros conceitos de programação estruturada.

O programa não é um fim em si mesmo. O desenvolvedor apresenta um programa como


resposta a uma necessidade do usuário (quem o solicita). Para desenvolver um programa não basta
escolher uma linguagem e aprender sua sintaxe. A linguagem de programação é a etapa final do
desenvolvimento de um programa.

O programa ao longo da vida, útil quase que seguramente, terá algumas manutenções que irão
gerar nova codificação e testes. Os custos com a manutenção em boa parte das vezes chega a
equiparar-se com os custos de elaboração.

É aconselhável que o desenvolvedor, ciente deste problema, dedique tempo à elaboração do


programa e a documentação. Sem responder algumas perguntas será difícil garantir a qualidade do
programa desenvolvido. Como tratar o problema?, quais os métodos de solução? Que tipos de dados
de entrada e saída estão envolvidos?.

A partir das respostas a estas perguntas é possível elaborar um algoritmo. Só então passa-se a
codificação. Após execução e depuração o programa está pronto. A documentação, é também um
histórico e, deve ser construída a cada passo desde a abordagem à depuração

Deve-se desenvolver um estilo modular de programação. Os módulos devem interligar-se por


uma lógica clara, sempre de olho na semântica (representação do sentido dos enunciados) da
linguagem

Prof. Eng.M.Sc. d'Avila


27

Centro Federal de Educação Tecnológica de São Paulo

Esboço ⇒ Pseudocódigos, Fluxogramas


Método de solução (algoritmo)
Elaboração ⇒ Input e output dos dados
Codificação
Execução, Depuração

Lógica
"A linguagem natural nem sempre é clara e precisa, sendo muito comum a ocorrência de
ambigüidades que geram dúvidas sobre o significado do que se está falando.

Por isso, um dos objetivos da lógica é estabelecer uma linguagem formal, onde se pode
expressar com clareza, precisão e emitir juízo de verdadeiro e falso para determinadas frases
(elemento de comunicação que relaciona palavras entre si de modo a estabelecer uma mensagem com
sentido completo".4

A lógica é a arte do pensar correto. Deve-se aprender a ordenar o pensamento e expressá-lo


claramente.

Algoritmo

"O algoritmo não é a solução do problema , mas o meio de obtê-la".

Definição: "Um algoritmo é uma seqûencia ordenada finita de operações bem definidas e eficazes que,
quando executadas por um computador, operando sobre dados caracterizando o estado atual do
contexto e o estado desejado, sempre termina num determinado período de tempo, produzindo uma
solução ou indicando que a solução não pôde ser obtida". 11

Algoritmos convencionais são compostos de duas partes:

• Um componente de lógica, que contém o conhecimento sobre um dados problema;

• Um componente de controle, que contém a metodologia de como aplicar o conhecimento para


resolver o problema.

Prof. Eng.M.Sc. d'Avila


28

Centro Federal de Educação Tecnológica de São Paulo

O algoritmo é a descrição de um conjunto de ações conhecidas e ordenadas que resultam no


objetivo. Existem algoritmos, no dia-a-dia, prontos na nossa mente, que quase sempre podem ser
repensados e redimensionados.

Quem tem como objetivo, por exemplo, jogar Duke Nukem® 3D em rede, precisa certificar-se de
algumas coisas e tomar algumas providências antes de jogar. Verificar se o a rede está acessível. Onde
está a vítima. opps! Quero dizer o parceiro e assim por diante.

Prever todos os obstáculos e situações possíveis nem sempre é fácil. Existem algoritmos mais
complexos e outros mais simples, depende do objetivo (onde se quer chegar) e da clareza de raciocínio
do programador.

A clareza de raciocínio do programador pode avaliada pela legibilidade (qualidade de legível) do


algoritmo.

O algoritmo representado numa linguagem adequada (natural, em português estruturado ou


gráfica), permite que o mesmo seja escrito em qualquer linguagem de computador.

Quase sempre existe mais de um algoritmo para resolver um determinado problema. Qual é o
melhor? O tamanho do programa e o tempo de execução devem ser levados em consideração para
escolha.

Sumário das Funções IEC 1131-3 e Moeller


No. Function block Description

Edge detection
1 F_TRIG Edge detection, falling edge
2 R_TRIG Edge detection, rising edge

Flip-flops
3 RS RS Flip-Flop
4 SR SR Flip-Flop

Date and time


Prof. Eng.M.Sc. d'Avila
29

Centro Federal de Educação Tecnológica de São Paulo

5 RealTimeClock Compare with real-time clock


6 RTC Set real-time clock
7 GetRealTimeClock Read real-time clock
8 SetRealTimeClock Set real-time clock (only PS4-200, PS4-300)
9 DATconcat Concatenate DATE_AND_TIME
10 DATsplit Split DATE_AND_TIME
11 DateConcat Concatenate DATE
12 DateSplit Split DATE
13 TimeConcat Concatenate TIME
14 TimeSplit Split TIME
15 TODconcat Concatenate TOD
16 TODsplit Split TOD

Timing FBs
17 MS_TimeFalling Off-delay timer, milliseconds
18 MS_TimeRising On-delay timer, milliseconds
19 S_TimeFalling Off-delay timer, seconds
20 S_TimeRising On-delay timer, seconds
21 TimeGenerator Clock generator
22 TimePulse Pulse generator
23 TOF Off delay
24 TON On delay
25 TP Pulse

Counter and comparison FBs


26 _16BitCounter 16-bit up/down counter
27 _32BitCounter 32-bit up/down counter (only PS416, PS4-300)
28 CounterLE Control of the Counter LE module (only PS4-200, PS4-300)
29 CTD Down counter
30 CTU Up counter
31 CTUD Up and down counter
32 _16Bit_Compare 16-bit comparator
33 _32Bit_Compare 32-bit comparator (only PS416, PS4-300)
34 SSI-Encoder Absolute value encoder (only PS4-300)

Prof. Eng.M.Sc. d'Avila


30

Centro Federal de Educação Tecnológica de São Paulo

35 IncEncoder Inkremental encoder (only PS4-300)

Register operations
36 SR_x 1-bit shift register
37 SRB_x 8-bit shift register
38 SRW_x 16-bit shift register
39 LifoBx 8-bit LIFO register
40 LifoWx 16-bit LIFO register
41 FifoBx 8-bit FIFO register
42 FifoWx 16-bit FIFO register

Code converters
43 _16BitBinaryToBCD 16-bit binary/decimal code converter
44 _32BitBinaryToBCD 32-bit binary/decimal code converter (only PS416, PS4-300)
45 BCDTo16BitBinary 16-bit decimal/binary code converter
46 BCDTo32BitBinary 32-bit decimal/binary code converter (only PS416, PS4-300)

Array operations
47 CompareArray Data block comparison or value search
48 TransferArray Copy or initialise array
49 Serialize Copy data structure to array
50 Deserialize Extract data from array
51 BlockCompare Data block comparison or value search (only PS4-200, PS4-300)
52 BlockTransfer Copy or initialise data block (only PS4-200, PS4-300)

Sequence control
53 SFC_x Sequence control function block (only PS4-200, PS4-300)

String processing
54 COMtoSTR Convert received characters to STRING
55 STRtoCOM Copy string to marker area
56 ADRtoSTR Convert received characters to STRING (only PS4-200, PS4-300)
57 STRtoADR Copy string to marker area (only PS4-200, PS4-300)

Prof. Eng.M.Sc. d'Avila


31

Centro Federal de Educação Tecnológica de São Paulo

Communication
58 ASi_PARAM Change slave parameters during operation: ASi_PARAM (only PS4-200, PS4-
300)
59 DE4netK Frequency inverters DF4
60 MI4K Communication function block MI4 (only PS4-200, PS4-300)
61 MI4netK Communication function block MI4
62 DialOrHangup Establish or clear a connection to a DTE via modem (only PS416, PS4-
300)
63 SendATCommand Send AT command to a modem (only PS416, PS4-300) {bmc
64 COM Serial communication function block (only PS416)
65 SCO Serial communication function block (only PS4)
66 PSCO Profibus-FMS communication (only PS4-200, PS4-300)
67 MOD200 Serial communication via MODBUS /IBUS (only PS416)
68 SUCOM_A Protocol emulation for direct memory access (only PS416)
69 SuconetP PROFIBUS-FMS communication (only PS416)
70 SuconetS_BGKS InterBus communication (only PS416)
71 PdpStationDiag Request diagnostics data from PROFIBUS-DP station (only PS416)

Reading and writing the memory card


72 ReadMC Read data from memory card
73 WriteMC Save data on memory card
74 SetMCFileLength Create and initialise data file (only PS416)
75 ReloadData Read data from memory card (only PS4-200, PS4-300)
76 SaveData Save data on memory card (only PS4-200, PS4-300)

Alarm FBs
77 CounterAlarm Counter alarm (only PS4-200, PS4-300)
78 CAlarm Counter alarm (only PS416)
79 EdgeAlarm Edge alarm (only PS4-200, PS4-300)
80 FAlarm Edge alarm (only PS416)
81 TimerAlarm Timer alarm (only PS4-200, PS4-300)
82 TAlarm Timer alarm (only PS416)

PS416-specific FBs

Prof. Eng.M.Sc. d'Avila


32

Centro Federal de Educação Tecnológica de São Paulo

83 PS_ApplicationHalt Stop the user program (only PS416, PS4-300)


84 PS_ClearKOMBit Clear "KOM" diagnostic bit (only PS416)
85 PS_Diagnostic Read diagnostic flags (only PS416, PS4-300)
86 PS_GetDateAndTime Read real-time clock (only PS416, PS4-300)
87 PS_Message Scan cycle status (only PS416)
88 PS_SwitchPosition Read switch position (only PS416, PS4-300)
89 CPUDataExchange Exchange data between PLCs (only PS416)
90 ColdstartRetention Definition of cold start retentive marker area (only PS416)
91 ReadDirect Direct reading from digital inputs (only PS416)
92 WriteDirect Direct writing to digital outputs (only PS416)
93 ReadAnalogDirect Direct reading from analog inputs (only PS416)
94 WriteAnalogDirect Direct writing to analog outputs (only PS416)
95 ReadCounterDirect Direct reading from counter inputs (only PS416)

OS system function block


96 PS_ReadOSInfo Scan operating system information

Referências Bibliográficas

MOELLER. Training Guide Sucosoft S 40 Programming Software. Alemanha: 2a ed. Jul. 1998, 140 p.

Prof. Eng.M.Sc. d'Avila


33

Centro Federal de Educação Tecnológica de São Paulo

Exercícios de Fixação

1. Uma comissão formada por Presidente, diretor Administrativo, diretor Financeiro e diretor de
Marketing se reúnem para analisar e aprovar questões relativas a empresa. Uma proposta é
aprovada se recebe a maioria dos votos ou se o presidente e qualquer outro membro votar a
favor.

presid adm finan mark saída


0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

A partir da tabela da verdade podemos construir o mapa de Veitch-Karnaugh

S = ( P . A ) + ( P . M ) + ( P . F ) + ( F . A . M ) aplicando a propriedade distributiva

S=P.(A+F+ M ) +(A.F.M)

Prof. Eng.M.Sc. d'Avila