1) O documento apresenta informações sobre controle em malha fechada, definições de termos, partida de motores trifásicos por botão e partida Y/Δ.
2) É descrito o controlador programável PS4-201 MM1 da Moeller, incluindo suas características, fluxograma de programação no SucoSoft e edição do programa do usuário em ladder.
3) O documento fornece detalhes sobre a declaração de variáveis, verificação de sintaxe, descoberta de erros e explicação da função bloco MS_TimeR
2. 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
3. 1
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
Medição
Processo
Controle
Atuação
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.
4. 2
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
Medição
Processo
Atuação
Figura x.x - Controle Automático com
CLP na malha de Realimentação
5. 3
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
Misturador
Trocador de
Calor
Serpentina
Processo
Aquecer água
utilizando a energia
térmica do vapor
Atuador
Vávula
Medição
Sensor
Controlador
6. 4
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
7. 5
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
Partida de Motores Acionamento por Botão
Partida de motores Trifásicos: Acionamento por Botão
Fusível Geral
e
Circuito de comando didático simplificado. Acionamento por botão.
b0 = Botão de Comando Desliga (normalmente fechado)
e
Relé Térmico
b1 = Botão de Comando Liga (normalmente aberto)
c1 = Contator de Rede 1
Contato Abridor
(normalmente fechado)
c2 = Contator Estrela
c 2
c3 = Contator Triângulo 3
Contato Fechador
(normalmente aberto)
d1 = Relé Temporizador
4c
R
d1
d1 c1 c2 c3
N
cc
c
c2
c1
d1b0
b1
8. 6
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
9. 7
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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
®
24V/0,5A protegidas contra curto-circuito e sobrecarga, e 01 Analógica de 12
Expans
nstalado no PC (Personal Computer) e transferido
através da porta serial (RS232C) para o PS4.
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
bits ( de 0 a 10 V)
í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 i
10. 8
Prof. Eng.M.Sc. d'Avila
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
11. 9
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
Controlador Programável PS4-201-MM1 da Moeller
Vista Frontal
Imagem extraída do catálogo da Moeller
10
11
12
13
14
15
16
17
6 saídas digitais, 02 entradas analógicas
Interface SUCOnet K
Potenciômetros
Resistência de final de bus
Interface de Programação
Montagem em trilho DIN
Módulo de expansão de memória
Sinalização de Estado da CPU
Entrada para fonte de alimentação
Entrada do contador rápido
Entrada de interrupção
1
Presilha de fixação
Entradas digitais e alimentação
das saídas
Conector do tipo plug-in
Sinalização de estado das
entradas
Sinalização de estado das
saídas
2
3
4
5
6
7
8
9 Conector do tipo plug-in
12. 10
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
Com um duplo clique no Atalho S40 tem-se acesso à barra de ferramentas do Sucosoft Manager —
Tools.
Atalho para acessar
rapidamente o
SUCOSOFT na Área de
Trabalho
Iniciando o SUCOSOFT
O arquivo executável é o
WORKB.EXE
C:S40WORKB.EXE
Project
Manager
Topology
Configurator
POU-Editor
Code
Generation
Test and
Commissioning
Programando com o SUCOSOFT® da Moeller
Figura x.x - Seqüência de
Programação SUCOSOFT
S 40 da Moeller (jul. 98,
p.20).
13. 11
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
Fluxograma
Sintaxe
Correta?
Compilar
Code Generate
Transferir
Programa para o
CLP
Testes
Ok?
Executar
Programa
O Programa
Soluciona o
Problema de
Automação?
1
S
N
2
S
N
S
4
2
Problema de
Automação
Algoritmo
Editar o Programa
do Usuário.
POU-Editor
Declarar Variáveis
Configurar
Topologia
Criar um Projeto
no Sucosoft.
Project Manager
1
Verificar Sintaxe
Syntax Check
Início
Testes e
Comissionamento
N
4
3
Fim
14. 12
Prof. Eng.M.Sc. d'Avila
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.
15. 13
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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:
16. 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
LD/FDB-Editor.
Prof. Eng.M.Sc. d'Avila
Barra de
Títulos
Foco no Editor de
Variáveis
17. 15
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
Nome do
Temporizador
Barra de
Rolagem
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.
18. 16
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
19. 17
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
20. 18
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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
Não houve
Erro de
Sintaxe
Verifica Erros
de Sintaxe
21. 19
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
22. 20
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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, 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:pmotoretkompo.syspmotoret.dcf
O arquivo com o programa do usuário é salvo com a extensão .poe. É salvo na pasta
c:pmotortkompo.syspmotoret.poe
Topology Configurator ⇒ Configuration ⇒ New ⇒ File Name
digite PMOTORET ⇒ Em PLC Type selecione ⇒ PS4-201-
MM1 ⇒ OK ⇒ Configuration ⇒ Save ⇒ Configuration ⇒ Exit.
3. Gerando o Código de Máquina.
Program Code Generation Generate ⇒ Generate All
23. 21
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
24. 22
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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
.
25. 23
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
26. 24
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
Explicação Detalhada do Bloco de Função MS_TimeRising
Function block prototype MS_TimeRising
On_delay timer, milisenconds
Ms_TimeRising
ElapsedTime
OutputControl
PresetTime
Hold
Reset
Set
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)
THOLD
Hold
Reset
Set
T
OutputControl
T
T + THOLD
27. 25
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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.
Ms_TimeRising
Set
Símbolo de
Qualificação
de Entrada
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
Borda de Subida
O símbolo de qualificação de entrada
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).
T
Set
OutputControl
Entrada Dinâmica Ativada na
Borda de Descida
O símbolo de qualificação de entrada
28. 26
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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
29. 27
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
Esboço ⇒ Pseudocódigos, Fluxogramas
Método de solução (algoritmo)
Input e output dos dados
Codificação
Execução, Depuração
Elaboraçã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.
30. 28
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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
31. 29
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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_TimeRisingOn-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)
32. 30
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
35 IncEncoder Inkremental encoder (only PS4-300)
Register operations
36 SR_x 1-bit shift register
37 SRB_x8-bit shift register
38 SRW_x 16-bit shift register
39 LifoBx8-bit LIFO register
40 LifoWx 16-bit LIFO register
41 FifoBx8-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 BlockTransferCopy 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)
33. 31
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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 CounterAlarmCounter 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
34. 32
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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_GetDateAndTimeRead 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.
35. 33
Centro Federal de Educação Tecnológica de São Paulo
Prof. Eng.M.Sc. d'Avila
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 )