15466797-sebentaautomacaob

93
INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E GESTÃO Notas de Apoio à Disciplina de Automação Industrial Engenharia Electrotécnica Paulo Jorge Pinto Leitão

Upload: rogerio58

Post on 13-Aug-2015

56 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 15466797-sebentaautomacaob

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E GESTÃO

Notas de Apoio à Disciplina de Automação Industrial

Engenharia Electrotécnica

Paulo Jorge Pinto Leitão

Page 2: 15466797-sebentaautomacaob

Automação Industrial 2

Índice

1 AUTOMAÇÃO DE PROCESSOS 5

1.1 Introdução aos Autómatos Programáveis 6

1.2 Arquitectura dos Autómatos Programáveis 7 1.2.1 Unidade Central de Processamento 8 1.2.2 Memória 9 1.2.3 Unidade de programação 11 1.2.4 Módulos de Entrada e Saída 12 1.2.5 Fonte de Alimentação 13 1.2.6 Cartas Especiais 13

1.3 Funcionamento 14

1.4 Aplicações dos Autómatos Programáveis 15

2 PROGRAMAÇÃO BÁSICA DE AUTÓMATOS PROGRAMÁVEIS 17

2.1 Escrita de programas 17 2.1.1 Fluxogramas e Algoritmia 17 2.1.2 Linguagens de Programação para Autómatos 20 2.1.3 Procedimentos básicos para a escrita de um programa 20

2.2 Endereçamento da memória 21

2.3 Instruções Básicas 22 2.3.1 LOAD 22 2.3.2 OUTPUT 22 2.3.3 AND 23 2.3.4 OR 24 2.3.5 END 24 2.3.6 Instruções Lógicas de Bloco 26 2.3.7 Combinação de instruções AND LOAD e OR LOAD 27 2.3.8 Execução de Várias saídas 29 2.3.9 SET e RESET 29 2.3.10 DIFFERENTIATE UP, DIFFERENTIATE DOWN 30 2.3.11 Instruções de Bifurcação 30 2.3.12 KEEP 31

2.4 Temporizadores 34 2.4.1 Temporizador ao Impulso 36 2.4.2 Temporizador após a operação 37 2.4.3 Temporizador de alta velocidade 38

2.5 Contadores 38 2.5.1 CNT 38 2.5.2 Contador reversível CNTR 39 2.5.3 Exemplo de aplicação 40

2.6 Instruções de Manipulação de Dados 41

Page 3: 15466797-sebentaautomacaob

Automação Industrial 3

2.6.1 MOVE 41 2.6.2 MOVE NOT 42 2.6.3 Instruções Diferenciais 42 2.6.4 Endereçamento Indirecto 43

2.7 Interrupções 43

2.8 Subrotinas 45

3 MODELAÇÃO DE SISTEMAS COMPLEXOS CONDUZIDOS POR EVENTOS 47

3.1 Introdução ao Grafcet 47

3.2 Especificação Funcional e Tecnológica 48 3.2.1 Especificação Funcional 48 3.2.2 Especificação Tecnológica 48

3.3 Conceitos Básicos do Grafcet 48 3.3.1 Etapas 48 3.3.2 Transições 49

3.4 Princípio de Funcionamento 49 3.4.1 Inicialização 50 3.4.2 Validação 50 3.4.3 Disparo de uma transição 50

3.5 Representação de Sequências Simultâneas e Alternativas 53 3.5.1 Sequências Simultâneas - Paralelismo Estrutural (Nó AND) 53 3.5.2 Sequências Alternativas - Paralelismo Interpretado (Nó OR) 54

3.6 Conceitos Complementares 56 3.6.1 Acção Condicional 56 3.6.2 Temporização 56

3.7 Cooperação entre Processos 57 3.7.1 Sincronização 57 3.7.2 Partilha de Recursos 60 3.7.3 Subtarefas 62

3.8 Análise e Validação de Grafcet 65 3.8.1 Introdução à Análise de Grafcet 66 3.8.2 Grafcet Autónomo 66 3.8.3 Gráfico das situações acessíveis 66 3.8.4 Análise de Grafcet 67

4 SENSORES 72

4.1 SENSORES CAPACITIVOS 73

4.2 SENSORES INDUTIVOS 74 4.2.1 Relutância Variável 74 4.2.2 Correntes de Foucault 74

4.3 SENSORES FINS DE CURSO 75

Page 4: 15466797-sebentaautomacaob

Automação Industrial 4

4.4 SENSORES FOTOELÉCTRICOS 75 4.4.1 Barreira 75 4.4.2 Reflexão 76 4.4.3 Reflexão no objecto 76

4.5 SENSORES DE ULTRASONS 76 4.5.1 Distância de um Objecto 77 4.5.2 Detecção de Objectos 77

4.6 SENSORES ESPECIAIS 77 4.6.1 Leitores de Códigos de Barras 77 4.6.2 Dispositivos de Escrita/Leitura de Etiquetas 78

5 MONITORIZAÇÃO E CONTROLO DE PROCESSOS 79

5.1 DESENVOLVIMENTO DO PROGRAMA PARA O AUTÓMATO 79

5.2 DESENVOLVIMENTO DA APLICAÇÃO DE MONITORIZAÇÃO 80

6 REFERÊNCIAS BIBLIOGRÁFICAS 84

ANEXO - REPRESENTAÇÃO DA INFORMAÇÃO 85

Sistemas de Numeração 85 Sistema Decimal 86 Sistema Binário 86 Sistema Hexadecimal 87

Conversão entre Bases 88 Conversão de Decimal para Outra Base 88 Conversão de Outra Base para Decimal 89

Sistemas de Codificação Avançados 89 BCD (Binary Coded Decimal) 89 Código GRAY 90 Código ASCII 90

Álgebra de Boole 91 Operadores 91 Teoremas 92 Leis de Morgan 92

Page 5: 15466797-sebentaautomacaob

Automação Industrial 5

1 AUTOMAÇÃO DE PROCESSOS

Nos últimos anos, tem-se assistido a uma mudança drástica dos esquemas de produção. Isto deve-se, por um lado à crescente competição entre as empresas, por outro, ao enorme desenvolvimento das tecnologias que envolvem micro-controladores, robôs, máquinas de controlo numérico, redes de comunicação, inteligência artificial, etc.

Em abstracto, todas as estratégias de produção visam um conjunto de objectivos, que na realidade corresponde a um só mais lato: o aumento da competitividade. Não é correcto dizer-se que o objectivo é o aumento da produtividade, pois de que serve produzir mais se não houver clientes para os produtos?

Assim, automatização industrial poderá ser definida pelo conjunto de tecnologias relacionadas com a aplicação de equipamentos (mecânicos, electrónicos, baseados em computador, etc.) em sistemas industriais de produção, e que com ela é conseguido um aumento de competitividade (em termos de custos, qualidade, disponibilidade e inovação).

Um sistema automatizado pode contribuir para o aumento da competitividade da empresa através da:

− Redução de custos de pessoal: a redução de custos de pessoal obtém-se, por exemplo, com a automatização das máquinas (tem o seu custo...) ou com a automatização do controlo e planeamento da produção.

− Redução de custos de stock (intermédios e terminais): devido aoo controlo e planeamento da produção, que visa, entre outros aspectos, atingir stocks intermédios mantidos ao mínimo (stock zero), disponibilidade de produtos (atraso zero), optimização de compras graças ao controlo de produção em tempo real, etc.

− Aumento da qualidade dos produtos: utilização de máquinas mais precisas do que o homem, o que garantem melhores características de repetibilidade (qualidade constante, não dependente de turnos particulares).

− Maior disponibilidade dos produtos: redução do número de avarias. − Aumento da evolutibilidade: menos tempo necessário para o projecto,

planeamento e fabrico de novos produtos, associado à utilização de máquinas programáveis aptas a desempenhar diferentes operações.

− Aumento da flexibilidade da produção: resposta rápida às solicitações do mercado e capacidade de operar diferentes variantes de produtos.

Um dos dispositivos mais importantes num sistema automatizado é o autómato

programável (PLC - Programmable Logic Controller), que pode ser definido como um dispositivo electrónico e programável, destinado a comandar e controlar, em ambiente industrial e em tempo real, processos produtivos.

O PLC surgiu com o objectivo de substituir os sistemas de controlo, desenvolvidos em lógica cablada, vulgarmente utilizados na indústria. Esta lógica cablada recorre à utilização de relés electromecânicos e de blocos lógicos interligados entre si, que apresenta algumas desvantagens, como sejam a complexidade de expansão e de alteração nas funções a desempenhar, os custos envolvidos na concepção do sistema

Page 6: 15466797-sebentaautomacaob

Automação Industrial 6

de controlo e a complexidade de realizar manutenção (por exemplo, detectar o estado de um sistema que engloba 1000 sensores e actuadores, é bastante complexo em lógica cablada, pois é necessário verificar localmente cada um dos dispositivos).

1.1 INTRODUÇÃO AOS AUTÓMATOS PROGRAMÁVEIS

O PLC foi inicialmente concebido por um grupo de engenheiros da General Motors em 1968, tendo em mente algumas especificações básicas [Simpson, 94; Warnock, 88]:

• Facilidade de programação e reprogramação;

• Facilidade de manutenção e reparação, de preferência utilizando módulos plug-in;

• Redução de dimensões em relação a um sistema equivalente em lógica cablada;

• Redução de custos.

Estes controladores programáveis pretendiam, na altura em que foram concebidos, fornecer alguma flexibilidade de controlo, baseada na programação e modularidade de funções, além de reduzir o tempo de concepção e de instalação de sistemas de controlo.

Figura 3.1 – Exemplo de um Autómato Programável

O sucesso que se seguiu à introdução de PLCs no controlo de processos, provocou um incremento de grupo de engenheiros a estudar esta tecnologia emergente. Naturalmente e rapidamente, foi necessário criar funcionalidades adicionais aos PLCs. O conjunto de instruções disponíveis para a sua programação cresceu rapidamente desde as simples instruções lógicas (E, Ou, Negação, etc) para instruções avançadas, que incluíam contadores e temporizadores, e posteriormente, para instruções matemáticas avançadas. O desenvolvimento a nível do hardware também se verificou com o aumento das capacidades de memória e o aumento do número de entradas e saídas disponíveis.

As possibilidades de comunicação surgiram aproximadamente em 1973. O primeiro sistema foi o Modbus da Modicon. Esta funcionalidade, permite que um PLC possa comunicar com outro PLC para trocar e partilhar informações, além de poderem estar afastados do processo que controlam. A falta de estandardização associada à mudança

Page 7: 15466797-sebentaautomacaob

Automação Industrial 7

contínua da tecnologia e aos protocolos de comunicação incompatíveis, faz com que as comunicações entre PLC´s sejam um pesadelo.

Nos anos 80 houve um esforço para normalizar as comunicações entre PLCs, com a General Motors a desenvolver um protocolo standard para a indústria da manufactura, o MAP (Manufacturing Automation Protocol). Mais tarde, tentou-se desenvolver um novo protocolo não tão pesado do que o anterior, designado por Fieldbus, mas a falta de normalização deu origem a vários standards de facto, desenvolvidos por diferentes fabricantes de tecnologia de automação.

Nos anos 90 a grande novidade foi a tentativa de normalizar as várias linguagens de programação de PLC´s. Deste modo, existe a possibilidade de programar PLCs utilizando diagramas de blocos, lista de instruções, C e texto estruturado ao mesmo tempo.

Actualmente existem mais de 50 fabricantes diferentes de autómatos programáveis, cada um dos quais apresenta diferentes gamas de autómatos com diferentes funcionalidades, diferentes linguagens de programação e diferentes protocolos de comunicação. Dos diversos fabricantes de autómatos programáveis, destacam-se: Siemens, Omron, Schneider, Rockwell, Mitsubishi, Telemecanique, AEG, Allen-Bradley, Fagor, Saia e Fatrónica.

O rápido crescimento do mercado (principalmente a partir da década de 80), associado à grande variedade de PLCs disponíveis, fez com que os sistemas de controlo previamente utilizados na indústria, se tornassem rapidamente obsoletos, principalmente devido ao facto de apresentarem pouca flexibilidade. Actualmente, os autómatos programáveis são os componentes fulcrais no desenvolvimento de aplicações de automação industrial, dadas as suas características, das quais se destacam:

• Baixo custo e um vasto domínio de aplicações;

• Instalação e manutenção simples e barata;

• Substituição directa de automatismos baseados em tecnologias cabladas;

• Linguagens de programação adaptadas aos automatismos e de simples percepção;

• Elevada flexibilidade: reprogramável, modular, etc;

• Adaptação a ambiente industrial, sendo robusto contra a humidade, choque, poeiras e ruído electromagnético.

Uma última característica e vantagem é o facto das dimensões de um PLC serem cada vez mais reduzidas, necessitando de um menor espaço físico para a sua implementação.

1.2 ARQUITECTURA DOS AUTÓMATOS PROGRAMÁVEIS

Independentemente do fabricante, um PLC possui um conjunto de módulos comuns e um conjunto de características similares. Genericamente, a arquitectura de um autómato programável assenta nos seguintes blocos funcionais: unidade central de

Page 8: 15466797-sebentaautomacaob

Automação Industrial 8

processamento, memória, módulos de entrada e saída, fonte de alimentação e unidade de programação.

Basicamente, o módulo de entrada adquire o estado do mundo exterior e armazena esses valores na memória. A execução do programa, também ele armazenado na memória, permite de acordo com os valores das entradas tomar decisões de acções a realizar, através do módulo de saída. O programa de software que gere o funcionamento do sistema de controlo que se pretenda que o PLC realize, é criado utilizando uma linguagem de programação adequada e transferido para o PLC através de uma unidade de programação.

A potencialidade de cada autómato programável pode ser analisada atrás da capacidade de endereçamento, conjunto de instruções, número de entradas e saídas, número de cartas especiais, assim como o tempo de ciclo, as suas capacidades de comunicação e a facilidade de utilização.

Memória

Fonte deAlimentação

CPU

Entr

adas

Saíd

as

Unidade deProgramação

MundoExterior

MundoExterior

Figura 3.2 - Arquitectura de um PLC

Cada um destes blocos será abordado mais aprofundadamente nos pontos que se seguem, sendo para cada um deles referidas as suas principais funcionalidades.

1.2.1 Unidade Central de Processamento

A Unidade Central de Processamento, designada por CPU, é o cérebro do PLC, tendo por função o controlo e supervisão de todas as suas actividades, assim como a gestão do fluxo de informação no seu interior, a partir da execução de um programa que se encontra armazenado em memória (normalmente EEPROM).

O CPU é constituído genericamente por um microprocessador e por uma pequena memória interna. Este microprocessador é controlado por um programa especial, designado por sistema operativo, e que é armazenado de forma permanente na memória. As funções do sistema operativo são criar uma plataforma de trabalho que permita ao microprocessador, entre outras funções, o controlo, o processamento e a comunicação. Durante a execução do programa de controlo sobre o sistema operativo, o CPU realiza a gestão da memória, a monitorização das entradas e a actualização das saídas.

Um CPU tem tipicamente as seguintes funções:

Page 9: 15466797-sebentaautomacaob

Automação Industrial 9

• Operação de entrada e saída, que permitem ao PLC comunicar com o mundo exterior, através da transferência de dados para os módulos de entrada e saída;

• Operações aritméticas e lógicas, que são executadas na Unidade de Lógica Aritmética (ALU). A ALU é capaz de executar, entre outras, as operações de adição, subtracção e comparação. Para efectuar uma operação, a ALU necessita que lhe sejam fornecidos dois operandos e um operador, sendo os resultados armazenados na memória temporária ou utilizados de imediato para o processamento, conforme as instruções do programa;

• Leitura e actualização do conteúdo da memória, que podem ser dados sobre o estado do sistema ou instruções contidas no programa;

• Operação de salto, que permitem que na execução de um programa, seja possível saltar algumas porções desse programa sem que estas sejam executadas.

Adicionalmente, ao CPU existe um relógio que gera uma frequência a partir de um oscilador externo, que irá determinar a velocidade de operação do PLC e fornece a sincronização para todos os elementos do sistema.

Alguns PLCs, normalmente os de gama alta, destinados a tarefas de controlo complexas, possuem CPUs com mais de um microprocessador. A vantagem é a possibilidade de multi-processamento, o que permite uma maior velocidade de processamento, através da divisão das tarefas de controlo e de comunicação.

Uma condicionante a que os CPUs devem estar preparados é a imunidade ao ruído eléctrico proveniente por exemplo de motores trifásicos. Além de serem fisicamente robustos para suportarem ambientes hostis, os PLCs já possuem, actualmente, rotinas que verificam que a memória do PLC não foi corrompida por ruído ou outros problemas, permitindo assim o bom funcionamento do equipamento.

1.2.2 Memória

O PLC necessita de armazenar a informação que recebe do exterior através das unidades de aquisição de informação e guardá-la para posterior processamento, assim como toda a informação resultante do processamento. Como é implementada esta possibilidade de armazenamento de informação?

Num PLC é possível encontrar dois tipos de memórias quanto à tarefa a realizar: memória de sistema e memória do utilizador [Almeida, 93]. A primeira contém todo o programa que permite ao PLC realizar o conjunto de operações que caracterizam o seu funcionamento e assegurar a comunicação entre o utilizador e o processador e ainda traduzir a linguagem do utilizador para linguagem máquina. A memória do utilizador destina-se ao armazenamento do programa de controlo e da informação que circulará no PLC.

A capacidade de memória é expressa em termos do número de grupos de 8 bits (Binary Digits), designados por bytes, que possui. É vulgar dizer que um PLC possui 48 Kbytes de memória, o que significa que poderá armazenar 48 mil bytes de informação ou 384000 bits.

Page 10: 15466797-sebentaautomacaob

Automação Industrial 10

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14

15 16 17 18 19

Figura 3.3 -Representação da memória de um computador

A memória pode ser comparável a um conjunto de gavetas ou registos, cada uma das quais bem definida por um rótulo ou endereço, onde é possível colocar ou ir buscar informação binária (estrutura sequencial e ordenada de células onde é possível guardar e manipular toda a espécie de informação). Cada célula de memória tem um endereço que indica a sua posição relativa, permitindo referenciarmos a informação armazenada numa célula de memória como o conteúdo dessa posição. Assim, a indicação do endereço de uma posição de memória permite ler o seu conteúdo e/ou modifica-lo. O acesso a estas células de memória é do tipo aleatório, isto é, não é preciso ler o conteúdo de todas as gavetas anteriores a uma que contém a informação pretendida, o que permite uma velocidade de acesso bastante grande.

As memórias podem ser classificadas de acordo com diferentes parâmetros. Assim, existem dois tipos de memórias, quanto à possibilidade de armazenamento da informação após se desligar a alimentação: as memórias que retém o seu conteúdo mesmo que não exista alimentação são designadas por memórias não voláteis. Por outro lado, existem as memórias voláteis, que apenas armazenam a informação enquanto estiver alimentada, perdendo-a quando for desligada a alimentação.

Por outro lado, as memórias podem ser classificadas quanto à possibilidade de alteração do seu conteúdo, sendo de seguida descritos os principais tipos de memória [Simpson, 94].

Read Only Memory (ROM) A ROM (Read Only Memory) é uma memória apenas de leitura, isto é, a informação

nela armazenada durante o processo de fabrico é permanente, não se perdendo quando se desliga a alimentação. Este tipo de memória é utilizada pelos fabricantes para armazenar de forma permanente dados estáticos e programas que irão ser necessários ao funcionamento do PLC.

Geralmente, os PLCs raramente utilizam memória ROM nas suas aplicações, a não ser PLCs dedicados, que tem por objectivo o controlo de apenas um pequeno grupo de tarefas.

Random Acess Memory (RAM) Esta memória permite a leitura e escrita da informação, apresentando no entanto a

desvantagem de perder toda a informação quando se desliga. Esta memória é utilizada

Endereço

Informação

Page 11: 15466797-sebentaautomacaob

Automação Industrial 11

para armazenar temporariamente a informação que circula no PLC e os dados que reflectem o mundo exterior e a execução do programa.

Programmable Read Only Memory (PROM) É um tipo especial de ROM que pode ser programada. Normalmente é utilizada para

guardar de forma permanente os dados armazenados na RAM.

Erasable Programmable Read Only Memory (EPROM) Este tipo de memória armazena os dados de forma permanente, mas diferencia-se

das memórias anteriores pelo facto de ser possível reprogramar o seu conteúdo. As EPROM possuem uma pequena janela sobre o array de memória, que exposto a uma fonte de luz ultra-violeta apaga todo o conteúdo da memória. Esta operação tem uma duração média de 20 minutos. Após a EPROM ter sido apagada, é possível voltar a escrever dados para a memória, normalmente através da transferência de programas para o seu interior, utilizando um dispositivo electrónico adequado.

Electrically Erasable Programmable Read Only Memory (EEPROM) O conteúdo deste tipo de memória pode ser de novo programado, utilizando um

terminal de programação de PLC, e após todo o seu conteúdo ter sido eliminado, operação que demora 10 milisegundos. É utilizada para armazenar o programa de controlo que se pretende realizar.

1.2.3 Unidade de programação

As unidades de programação têm por objectivo a escrita off-line e online de programas, a monitorização e a modificação do estado do PLC.

A programação dos PLC pode ser realizada utilizando consolas de programação ou utilizando PCs com acesso à rede. As consolas de programação estão a ser progressivamente substituídas pela programação através de PC, e a sua aplicação resume-se fundamentalmente à programação on-line em ambiente industrial.

Computador

Figura 3.4 - Dispositivos de Programação

Ambos os dispositivos permitem a programação off-line dos PLCs, o que significa que o programa pode ser escrito sem que o dispositivo esteja conectado ao PLC, sendo o programa transferido para o PLC quando for necessário.

Page 12: 15466797-sebentaautomacaob

Automação Industrial 12

As consolas de programação estão a ser abandonadas, porque é necessário um dispositivo de programação para cada PLC, além de apenas programar uma gama restrita de autómatos programáveis. A sua utilização resume-se a tarefas de manutenção, programação dedicada e modificação de dados do sistema; por exemplo, se o protocolo de comunicação do PLC com o PC falhar é necessário o uso da consola para estabelecer de novo o protocolo.

1.2.4 Módulos de Entrada e Saída

Os módulos de entrada e saída têm como objectivo, a interface entre o PLC e o mundo exterior, devendo igualmente implementar o condicionamento e isolamento do sinal. Os módulos de entrada têm por objectivo a aquisição de informação do mundo real, para posterior tratamento. Por outro lado, o controlo de um processo requer a actualização de equipamentos, pelo que é necessário ligar os dispositivos a controlar ao módulo de saída.

Todos os módulos de entradas e saídas possuem isolamento eléctrico do processo a controlar, utilizando acoplamento óptico.

Dis

posi

tivo

de

Ent

rada

Saída para o CPU

Isolamento Óptico

Figura 3.5 - Isolamento das entradas

Este isolamento garante que não existe ligação eléctrica entre o mundo exterior e o CPU. Um isolamento óptico consiste num díodo emissor de luz e num fototransistor, formando um acoplador óptico, que permite a transmissão de sinais de pequena tensão e o isolamento de sinais de elevados valores de tensão. Por exemplo, a entrada fornece um sinal eléctrico que é transformado em luz. A luz emitida é recebida pelo receptor que é de novo transformada num sinal eléctrico. O isolamento óptico é usado para entradas e saídas.

Cada entrada/saída possui um endereço que o identifica univocamente, e que é utilizado ao longo do programa de controlo, sempre que se pretende manipular essa entrada/saída. Normalmente, os módulos de E/S possuem a indicação do estado de cada entrada/saída através de leds, o que torna simples a verificação do estado do processo. As entradas/saídas estão disponíveis através de cartas de expansão que comunicam com o CPU através de um barramento, designado de bus, de dados e de endereços.

Existem dois tipos de entradas/saídas: digitais e analógicas. As entradas e saídas digitais apresentam apenas dois valores: ON e OFF (1 e 0). Por exemplo, se um sensor de proximidade detectar a presença de um objecto, na entrada aparecerá o sinal lógico 1; caso contrário estará o valor 0.

Page 13: 15466797-sebentaautomacaob

Automação Industrial 13

Quando o sinal a adquirir pode tomar uma gama de valores determinada e de forma contínua, está-se na presença de sinais analógicos, que requerem o uso de módulos de entrada/saída analógicos. Por exemplo, um sensor de luminosidade pode ser considerado como sendo uma entrada analógica, porque produz uma tensão que é proporcional à luz que detecta.

Um módulo de entradas analógicas executa a conversão analógico-digital (A/D), ficando o sinal em formato digital e disponível para ser processado pelo CPU. O módulo de saída analógico efectua o processo inverso e converte o sinal digital para um valor analógico (D/A). A resolução da conversão é um factor importante para a precisão de controlo quando se utilizam PLCs. Os conversores que usam palavras de 8 bits terão uma resolução de 1:128. Desta forma, um sinal de valor máximo 5V pode ser convertido num valor digital com um intervalo entre valores de 0,02V. O aumento da resolução passa pelo aumento do numero de bits utilizados pelo conversor.

Módulo de Entrada Este módulo interliga o PLC ao mundo exterior, adquirindo sinais que reflectem o

estado do mundo exterior, através da utilização de sensores, interruptores, etc. O módulo de entrada converte o nível lógico do mundo real para o nível lógico requerido pelo CPU, ao mesmo tempo que executa o isolamento.

Existem no mercado uma vasta gama de sensores que poderão implementar as entradas de um PLC, das quais se destacam os sensores indutivos, capacitivos, fins de curso, células fotoeléctricas, etc.

Módulo de Saída O módulo de saída disponibiliza uma conexão ao mundo real, permitindo a

actualização do processo, de acordo com a informação obtida pelas entradas e com a execução do programa. As saídas podem ser disponibilizadas através de relé, transístor ou triac.

Os dispositivos de saída vulgarmente utilizados no controlo de processos são os motores passo a passo, lâmpadas, válvulas pneumáticas, etc.

1.2.5 Fonte de Alimentação

A fonte de alimentação tem por objectivo o fornecimento das várias tensões de alimentação requeridas para o funcionamento de todos os componentes do PLC.

Esta unidade converte a tensão de alimentação exterior (220 V) numa tensão continua requerida pelo CPU, memória e módulo de entradas e saídas (normalmente 5 ou 24 V).

1.2.6 Cartas Especiais

Existem dispositivos auxiliares ao PLC que não se enquadram na sua arquitectura genérica, pois são específicos para o tipo de aplicação. Neste grupo de cartas

Page 14: 15466797-sebentaautomacaob

Automação Industrial 14

especiais, encontramos entre outras, os leitores de códigos de barras, as cartas ASCII e as cartas fuzzy logic.

• Fuzzy Logic

A lógica fuzzy foi desenvolvida para criar uma lógica que melhorasse a tradicional lógica binária que apenas admite dois valores lógicos: 0 e 1. A lógica fuzzy pretende copiar o raciocínio humano e desenvolver processos lógicos a partir de expressões pouco precisas ou difusas que variam entre dois valores lógicos (0 e 1). Por exemplo, utilizando lógica fuzzy não se diz que uma pessoa é alta ou baixa, mas sim que essa pessoa tem uma determinada probabilidade de ser alta.

• Carta ASCII

Este módulo é utilizado para manipulação e transmissão de dados alfanuméricos entre o PLC e dispositivos periféricos, tais como impressoras, monitores, etc.

• PID

Utilizadas para solucionar problemas complexos, em que é necessário implementar controlo integral, derivativo e proporcional.

• Leitores de códigos de barras

Muito utilizadas na industria para identificação dos produtos que circulam num processo.

1.3 FUNCIONAMENTO

O funcionamento de um PLC resume-se à execução contínua do programa carregado na sua memória. Na figura que se segue, estão ilustradas as três fases mais importantes do ciclo de funcionamento de um autómato programável.

Verificação do estado das entradas

Execução do programa

Actualização do estado das saídas

Figura 3.6 - Ciclo de funcionamento de um PLC

Page 15: 15466797-sebentaautomacaob

Automação Industrial 15

Inicialmente, o PLC analisa o estado de todas as entradas e armazena-os na memória, para serem usadas durante a execução do programa. Na fase que se segue, o PLC executa o programa, executando uma linha de instrução de cada vez. Finalmente, as saídas são actualizadas de acordo com o estado das entradas e das instruções do programa.

Este ciclo repete-se continuamente enquanto o PLC estiver em funcionamento. Quando se analisa o funcionamento de um PLC, através da performance do seu tempo de resposta, é necessário considerar três tempos distintos:

• Tempo de resposta de entrada;

• Tempo de processamento;

• Tempo de resposta de saída.

Consideremos a situação de detectar quando o copo está cheio de água, para se fechar a torneira, e façamos a analogia com o funcionamento de um PLC. Os olhos da pessoa estão sempre a receber informação e a envia-la para o cérebro.

Figura 3.7 - Tempo de Resposta

Quando a água chegar ao nível pretendido, os olhos enviam essa informação para o cérebro que a deverá processar. O tempo que o cérebro demora a receber a informação proveniente dos olhos é designada por tempo de resposta de entrada. O cérebro tendo a informação de que a água está num determinado nível irá processar a informação e decidir qual a acção ou acções a tomar. Este tempo é designado por tempo de processamento.

Finalmente, o cérebro irá dar ordens às mãos para fechar a torneira. O tempo que decorre até que as mãos recebam a ordem é designado por tempo de resposta de saída.

1.4 APLICAÇÕES DOS AUTÓMATOS PROGRAMÁVEIS

Os PLCs apresentam um vasto domínio de aplicações, das quais se destacam:

• Aplicações de robótica

Page 16: 15466797-sebentaautomacaob

Automação Industrial 16

• Controlo de máquinas CNC

• Controlo de células de fabrico ou montagem

• Sistemas de transporte e manuseamento de materiais.

• Controlo e monitorização de processos industriais, etc.

Page 17: 15466797-sebentaautomacaob

Automação Industrial 17

2 PROGRAMAÇÃO BÁSICA DE AUTÓMATOS PROGRAMÁVEIS

A linguagem de programação, assim como a estrutura e definição de endereços e mapeamento da memória difere de fabricante para fabricante, o que associado com a vasta diversidade de fabricantes de autómatos existentes no mercado, torna limitativo o estudo genérico que se pretende efectuar. Apesar de ser intenção deste texto fornecer os princípios básicos da programação de autómatos programáveis, irá utilizar-se como referência o autómato programável CPM1 da Omron para testar e desenvolver todas as aplicações referidas neste texto.

2.1 ESCRITA DE PROGRAMAS

2.1.1 Fluxogramas e Algoritmia

Os computadores, infelizmente, só fazem aquilo que mandamos e não aquilo que desejamos que eles façam. O computador tomará sempre um dos caminhos possíveis nas suas acções e por isso é preciso assegurar que o computador siga pelo único caminho correcto possível que leve aos resultados desejados. Uma afirmação como calcule a média das notas neste teste é muito imprecisa, apesar de parecer especificar aquilo que desejamos. Muitos detalhes foram omitidos, como por exemplo, onde estão as notas, quantas são, etc.

A programação de computadores em alguns casos pode ser difícil, razão pela qual os bons programadores recebem altos salários. Tal dificuldade deve-se à complexidade inerente, combinando muitos processos mentais. Entretanto, podemos torná-la muito mais fácil se dividirmos o problema sistematicamente em partes menos complexos (a abordagem do dividir para conquistar).

Problema

Solução em formade algoritmo

Solução comoprograma decomputador

Passo difícil

Fase daimplementação

Fase da resoluçãodo problema

Figura 5.1 - Resolução de um problema

Page 18: 15466797-sebentaautomacaob

Automação Industrial 18

Primeiro, é importante separarmos a fase de resolução do problema da tarefa da fase da implementação. Na fase de resolução do problema, é necessário a elaboração de um algoritmo ou fluxograma para resolver o problema proposto. Apenas, quando a formulação de um algoritmo adequado e satisfatório, é que se passa para a implementação do algoritmo numa qualquer linguagem de programação. Dado um algoritmo suficientemente preciso, a codificação num programa de computador é quase directa.

Um algoritmo pode ser definido como uma sequência ordenada e sem ambiguidade, de passos elementares que levam à solução de um dado problema. Apesar de o termo ser novo em si, o conceito é bastante familiar. As indicações dadas para se chegar até uma determinada rua constituem um algoritmo para se encontrar essa rua. Uma receita de cozinha é uma forma muito familiar de fluxograma.

É necessário que os algoritmos cumpram algumas regras. Assim, os passos de um algoritmo devem ser simples e sem ambiguidade e devem estar numa ordem cuidadosamente definida.

Como exemplo, vamos elaborar um algoritmo para realizar uma tarefa bastante familiar, a substituição de uma lâmpada queimada. A operação básica pode ser expressa em dois passos simples:

• remova a lâmpada queimada

• coloque a nova lâmpada

Apesar de esta solução parecer resolver o problema, de facto estes passos não são suficientemente claros para um robot, pois cada um dos passos envolve alguns pressupostos que um robot não conhece. Assim, é necessário especificar cada um dos passos anteriores.

Em primeiro lugar, o que é necessário para remover a lâmpada queimada? Vamos admitir que ela esteja pendurada num tecto. Este facto envolve uma escada,

posicioná-la correctamente e subi-la. De seguida é necessário remover a lâmpada. Para a remoção, é necessário girar a lâmpada no sentido anti-horário até que se solte. Assim, o simples passo remova a lâmpada queimada foi expandido nos seguintes passos:

• Posicione a escada debaixo da lâmpada queimada

• suba na escada até que a lâmpada possa ser alcançada

• rode a lâmpada queimada no sentido anti-horário até que se solte

Para colocar uma lâmpada nova, é necessário seleccionar uma outra de mesma potência (o que deve ser feito antes de se subir na escada), posicionar a lâmpada, girá-la no sentido horário até que esteja completamente colocada e finalmente descer da escada. Deste modo, o passo coloque a nova lâmpada foi expandido para:

• escolha uma nova lâmpada de mesma potência da queimada

• posicione a nova lâmpada

• rode a lâmpada no sentido horário até estar colocada

Page 19: 15466797-sebentaautomacaob

Automação Industrial 19

• desça da escada

Apesar do algoritmo ter já sete passos, ainda não tem uma especificação suficientemente precisa. Por exemplo, o passo escolha uma nova lâmpada de mesma potência da queimada deve ser melhor especificado. Suponhamos que temos uma caixa com lâmpadas novas. Devemos examiná-las uma a uma até encontrarmos uma com a mesma potência da queimada. Isto exige as seguintes operações:

• seleccione uma lâmpada candidata à substituição

• se a potência não é a mesma, repita o processo até encontrar uma que sirva, − deite fora a lâmpada seleccionada − seleccione uma nova lâmpada

São introduzidos aqui dois conceitos importantes: o da decisão (se) e o da repetição (repita). A capacidade de decisão permite-nos adiar a selecção real de um caminho até à execução do programa. Neste caso, não podemos determinar o que fazer até que a potência de uma lâmpada real tenha sido examinada. É possível especificar que uma operação básica seja repetida muitas vezes; neste caso a selecção de uma lâmpada é efectuada até se encontrar uma lâmpada de potência adequada. Usando estes conceitos para os restantes passos, passamos a ter o seguinte algoritmo:

• posicione a escada debaixo da lâmpada queimada

• seleccione uma nova lâmpada para a substituição

• se a potência não for a mesma da queimada, repita o processo até encontrar uma que sirva

− deite fora a lâmpada seleccionada − seleccione uma lâmpada nova

• repita até que a lâmpada possa ser alcançada − suba num degrau da escada

• repita até que a lâmpada fique solta − rode a lâmpada no sentido anti-horário

• posicione a nova lâmpada

• repita até que a lâmpada esteja colocada − rode a lâmpada no sentido horário

• desça a escada

As operações indicadas simples sem ambiguidade, as decisões necessárias são imediatas e a ordem na qual os passos devem ser seguidos é claramente expressa. A escrita de programas para computadores ou autómatos, passa pelo assentar de ideias na forma de um fluxograma ou algoritmo e depois transpor esse algoritmo para a linguagem de programação adequada.

Page 20: 15466797-sebentaautomacaob

Automação Industrial 20

2.1.2 Linguagens de Programação para Autómatos

A programação de PLCs pode ser realizada utilizando várias linguagens genéricas, seguindo a norma IEC 61133, das quais se destacam os seguintes dois tipos:

• lista de instruções;

• diagrama de blocos (ladder).

A lista de instruções é caracterizada por existir uma sequência de instruções para realizar cada uma das tarefas. Essas instruções são escritas sob a forma de mnemónicas.

LD I 0.1 AND I 0.2 SET O 1.0

Cada fabricante utiliza mnemónicas diferentes para programar os seus autómatos

assim como designações diferentes para endereçar a memória. Este facto, faz com que cada fabricante possua uma linguagem de programação própria para os seus autómatos.

O diagrama de contactos (ladder) é caracterizado pela existência de sequências de contactos (normalmente abertos ou fechados) que irão provocar a actualização das saídas.

0.0 10.0

O diagrama de contactos é uma linguagem genérica de programação de autómatos, a menos de algumas funções específicas de alguns autómatos e do endereçamento de memória.

Dado que vai ser utilizado o PLC CPM1 da Omron nas experiências laboratoriais, iremos utilizar os diagramas de ladder como linguagem de programação, que é disponibilizada pela Omron através do seu software de programação SYSWIN.

2.1.3 Procedimentos básicos para a escrita de um programa

A elaboração de programas para autómatos tendo em vista a solucionar problemas, passa pela definição de um conjunto de passos básicos, dos quais se destacam os seguintes:

• Obter a lista de todos os dispositivos de Entradas e Saídas, criando uma tabela de memória que ilustre os bits E/S alocados a cada dispositivo.

• Determinar quais as palavras disponíveis para serem utilizadas dentro do programa.

Page 21: 15466797-sebentaautomacaob

Automação Industrial 21

• Criar tabelas de endereços de temporizadores e contadores, assim como endereços de salto a usar no programa (apenas se podem usar de 01 a 99).

• Desenhar o diagrama de contactos.

• Verificar o programa da existência de erros de sintaxe e tentar corrigi-los.

• Transferir o programa para o autómato.

• Executar o programa no autómato.

Se durante a execução do programa se verificarem erros ou anomalias, deve-se corrigir esses erros e verificar o programa de novo, sendo por vezes necessário redesenhar o diagrama de contactos.

2.2 ENDEREÇAMENTO DA MEMÓRIA

A memória de um PLC, tal como já foi referido, divide-se normalmente em dois grandes blocos: memória do sistema e memória do utilizador. A memória do sistema armazena todos os parâmetros de configuração do PLC, enquanto que a memória do utilizador armazena dados temporários de entrada e de saída, assim como dados auxiliares à execução do programa.

Cada fabricante de autómatos tem uma forma de endereçamento da memória muito própria, e que normalmente difere do endereçamento utilizado noutros autómatos. Por exemplo, para codificar as entradas e saídas, é vulgar utilizar-se a letra I para as entradas e a letra O para as saídas; no entanto, também existem autómatos que utilizam as letras X e Y, para codificar as entradas e saídas, respectivamente.

Na figura 5.3 está representado o endereçamento da memória utilizada pelo autómato CPM1 da Omron. Verifica-se que a codificação de entradas e saídas é realizada pelo prefixo IR.

Área de Dados Palavras Função

Área IR (Relés

internos)

Área de Entrada Área de Saída Área de Trabalho

IR 000 a IR 009

IR 010 a IR 019

IR 200 a IR 231

Estes bits podem ser alocados aos terminais E/S externos. Os bits de trabalho podem ser usados livremente dentro do programa.

Área SR (Relés especiais)

SR 232 a SR 255 Estes bits servem funções específicas, tais como flags e bits de controlo.

Área TR (Relés temporários)

TR 0 a TR 7 (só se trabalha com os 8

bits)

Estes bits são utilizados para guardar temporariamente o estado ON/OFF da secção do programa (mnemónicas).

Área HR (Relés retenção)

HR 00 a HR 19 Estes bits guardam informação e mantém o seu estado ON/OFF após a alimentação ser desligada.

Área AR (Relés auxiliares)

AR 00 a AR 15 Estes bits são semelhantes a SR mas mantém o seu valor após a alimentação ser desligada.

Page 22: 15466797-sebentaautomacaob

Automação Industrial 22

Área LR (Relés ligação)

LR 00 a LR 15 Utilizado para ligações 1:1 a outro PLC.

Área Contadores e Temporizadores

TC 000 a TC 127 Os mesmos endereços são utilizados para os temporizadores e contadores.

Leitura/Escrita DM00 a DM 099 DM 1022 a DM 1023

Podem ser usados livremente no programa.

Área DM Log de erros DM 1000 a DM 1021 Utilizados para guardar o tempo e o códigode erro da ocorrência.

(Módulo de Dados)

Apenas leitura DM 6144 a DM 6599 Não podem ser escritos a partir do programa.

Setup PC DM 6600 a DM 6655 Utilizados para guardar os vários parâmetros que controlam a comunicação com o PC.

Figura 5.2 - O endereçamento da memória no CPM1

2.3 INSTRUÇÕES BÁSICAS

Os operandos utilizados como entradas e saídas possuem dois valores de identificação: endereço físico e mnemónica. O endereço físico é a designação directa do bit ou byte de uma área específica de memória. A mnemónica é utilizada para simplificar a escrita e a leitura do programa.

Uma condição normalmente aberta é Verdadeira (ON) se a entrada é ON e Falsa (OFF) se o operando é OFF. Uma condição normalmente fechada é Verdadeira se o operando é OFF e Falsa de o operando é ON.

normalmente

fechado. . .

normalmenteaberto

No estudo que se segue, apenas se vai considerar entradas e saídas normalmente

abertas. No entanto, para trabalhar com lógica normalmente fechada, deve-se colocar o sufixo NOT a seguir à instrução para a lógica normalmente aberta.

2.3.1 LOAD

A primeira condição que inicia qualquer bloco lógico corresponde à instrução LOAD, cuja mnemónica é LD. Se esta instrução é a única na linha de instruções então a saída é ON se o operando for ON e OFF se o operando for OFF. O resultado desta instrução pode ser conjugada com outra entrada através de uma relação lógica ou imediatamente transferida para o exterior, actualizando uma saída.

2.3.2 OUTPUT

A forma mais simples de transferir para a saída os resultados da combinação da execução de instruções é utilizando a instrução OUT.

Page 23: 15466797-sebentaautomacaob

Automação Industrial 23

Esta instrução pode actualizar saídas do autómato, mas também flags internas, tais como as áreas SR, AR, HR, etc.

0.0 10.0

0.0 10.0

ON OFF

ON OFF

0.0 10.0

0.0 10.0

ON OFF

OFF ON

Figura 5.3 - Tabela de Verdade das Instruções OUT e OUT NOT

Vamos considerar o seguinte caso de aplicação: existe uma bomba de tirar água que funciona de acordo com o estado de um botão de accionamento, isto é premindo o botão a bomba funciona, e libertando o botão a bomba deixa de funcionar. Pretende-se elaborar um programa que execute o controlo da bomba.

Assim, supondo que o botão está associado à entrada 0.0 e que a bomba está associada à saída 10.1, é possível realizar o programa de controlo, utilizando listra de instruções.

LD 0.0 OUT 10.0

Este programa coloca a saída 10.0 (bomba) em funcionamento de acordo com o

estado da entrada 0.0 (botão). Se o botão estiver premido, isto é a entrada 0.0 está ON, então a bomba será colocada em funcionamento. Caso o botão não esteja premido então a bomba deixa de estar em funcionamento.

2.3.3 AND

A manipulação de operandos lógicos requer por vezes a utilização do operador

lógico AND. Este operador permite activar uma saída apenas quando todos os operandos de entradas forem Verdadeiros.

Num conjunto de instruções que implemente o AND de mais do que duas entradas, a primeira das instruções será a instrução LD; e as restantes condições as instruções AND.

0.0 10.10.11.0

Na figura anterior a linha de instrução representada por um diagrama de contactos,

implementa a seguinte expressão lógica:

Page 24: 15466797-sebentaautomacaob

Automação Industrial 24

10.0 = 0.0 AND 1.0 AND 0.1 A saída 10.0 será activada, apenas se as três condições forem verdadeiras, isto é,

quando 0.0 é ON, 1.0 é OFF e 0.1 é ON. A aplicação da instrução AND pode ser analisada no seguinte exemplo: A utilização de maquinaria pesada, como por exemplo, quinadoras ou máquinas de

corte, requer a instalação de sistemas de segurança, para precaver a integridade física dos operadores que trabalham com essas máquinas. O sistema de segurança mais vulgar nesses casos é a implementação de dois botões de início de funcionamento (um para cada mão do operador). Desta forma, a máquina só executa a tarefa, por exemplo o corte de chapa, se os dois botões estiverem premidos.

LD 0.0 AND 0.1 OUT 10.0

Neste caso, temos duas entradas, 0.0 e 0.1, e uma saída 10.0, que representa o

accionamento da máquina para executar a sua tarefa.

2.3.4 OR

No ponto anterior referiu-se a instrução lógica AND. No entanto, existe uma outra instrução lógica básica, designada por OR, que é fundamental na manipulação de operandos lógicos. Quando duas ou mais condições estão separadas em linhas de instruções diferentes e a correr em paralelo, a primeira condição corresponde à instrução LD; as restantes condições correspondem à instrução OR.

1.1 10.0

0.1

1.0

A saída 10.0, para o caso da figura anterior, será ON quando uma das três condições

for ON, isto é, quando 1.1 é OFF ou 1.0 é OFF ou 0.1 é ON.

2.3.5 END

No fim de um programa é necessário adicionar a instrução END. Durante a execução do programa, o CPU executa todas as instruções até à instrução END, antes de voltar ao início do programa e voltar a executá-lo. Aliás, o autómato funciona em ciclo executando ciclicamente o programa carregado no autómato.

Page 25: 15466797-sebentaautomacaob

Automação Industrial 25

END

0.0 10.00.1

Se não existir a instrução END no fim do programa, este não poderá ser executado.

Exemplo de aplicação

Pretende-se controlar o funcionamento de um dispositivo que efectua a mistura de dois líquidos, utilizando dois botões:

• Movimento - se premido, o dispositivo deve funcionar; se não, deve estar parado.

• Emergência - se caso seja premido, o dispositivo deve parar o seu funcionamento.

Líquido A Líquido B

Figura 5.4 - Misturador de líquidos

O primeiro passo na escrita do programa é a escolha das E/S do autómato para a aplicação em causa:

• botão de movimento - IR 0.0 movimento;

• botão de emergência - IR 0.1 emergência;

• motor do dispositivo - IR 10.0 motor.

Então a linha de instruções que implemente o funcionamento pretendido está ilustrado na figura que se segue.

0.0 10.00.1

Vamos supor agora, que o botão de movimento é substituído por dois outros botões distintos, que representam a presença de diferentes tipos de líquidos no dispositivo, e que se pretende que o misturador inicie o seu funcionamento sempre que exista pelo menos um dos líquidos no dispositivo (um dos botões premido).

Desta forma iremos ter entradas e uma saída:

• botão para o liquido A - IR 0.3 líquido_a;

• botão para o liquido B - IR 0.4 líquido_b;

Page 26: 15466797-sebentaautomacaob

Automação Industrial 26

• botão de emergência - IR 0.1 emergência;

• motor do dispositivo - IR 10.0 motor.

A implementação do programa para este caso é semelhante ao anterior, diferindo apenas no facto do funcionamento do misturador depender da existência de pelos menos um dos botões associados aos líquidos estar activado.

0.3 10.00.1

0.4

A instrução lógica que implementa esta funcionalidade é o OR, pelo que basta efectuar o OR entre as entradas líquido_A e líquido_B, seguido do AND com a entrada de emergência negada.

2.3.6 Instruções Lógicas de Bloco

A elaboração de diagramas mais complexos do que aqueles analisados até ao momento, requer a introdução dos conceitos de AND LOAD e OR LOAD.

Vamos supor que pretendemos implementar a seguinte expressão lógica:

10.0 = (0.0 OR 0.1) AND (0.2 OR 0.3) A implementação através de diagramas de contactos é directa, e está ilustrada na

figura que se segue. 0.0 10.00.2

0.1 0.3

No entanto, se pretendermos utilizar a programação em lista de instruções, é

impossível implementar a expressão lógica utilizando as instruções lógicas básicas, uma vez que o valor da execução da condição 0.0 OR 0.1 é perdido quando se inicia a execução da condição seguinte (0.2 OR NOT 0.3). Existem então as instruções AND LOAD e OR LOAD para armazenar as condições intermédias.

Assim, é possível escrever o diagrama anterior em lista de instruções utilizando AND LOAD.

LD 0.0 OR 0.1 LD 0.2 OR NOT 0.3 AND LD

Page 27: 15466797-sebentaautomacaob

Automação Industrial 27

A instrução AND LD permite armazenar o resultado da primeira condição e realizar o AND com a segunda condição.

Vamos considerar agora o caso de se pretender implementar a seguinte expressão lógica:

10.0 = (0.0 AND 0.1) OR (0.2 AND 0.3)

Tal como o exemplo anterior, a sua implementação em diagramas de contactos é

extremamente simples, mas complica-se se o pretendido for a utilização de lista de instruções.

0.0 10.00.1

0.2 0.3

Neste caso não se trata de realizar o AND de duas condições constituídas por mais do que uma condição, mas sim o OR, pelo que a instrução adequada é o OR LD.

LD 0.0 AND NOT 0.1 LD 0.2 AND 0.3 OR LD ← executa o OR dos dois blocos OUT 0.0

2.3.7 Combinação de instruções AND LOAD e OR LOAD

As instruções AND LOAD e OR LOAD podem ser combinadas, caso o número de blocos seja superior a 2 mas não exceda os 8 blocos.

0.0 10.00.1

0.50.4

0.30.2

Bloco 3

Bloco 2Bloco 1 Considerando o diagrama de contactos, representado atrás, é possível traduzi-lo

para lista de instruções.

LD NOT 0.0 AND 0.1 LD 0.2 AND NOT 0.3

Page 28: 15466797-sebentaautomacaob

Automação Industrial 28

LD NOT 0.4 AND 0.5 OR LD AND LD OUT 10.3

É de referir que neste caso, primeiro é executada a instrução OR LOAD e só depois a

instrução AND LD.

Exemplo de aplicação

Pretende-se escrever em lista de instruções o programa equivalente ao representado pelo seguinte diagrama de contactos.

0.0 10.00.1

0.50.40.3

0.2

Bloco 5

Bloco 2Bloco 1

0.70.6 Bloco 4

Bloco 3

O programa em lista de instruções é como se representa de seguida.

LD 0.0 LD 0.1 AND 0.2 LD 0.3 AND 0.4 LD 0.5 LD 0.6 AND 0.7 OR LD ← blocos 4 e 5 AND LD ← bloco 3 com resultado anterior OR LD ← bloco 2 com resultado anterior AND LD ← bloco 1 com resultado anterior OUT 10.0

É de salientar que apenas se põe o problema de utilização de instruções de bloco,

se não se programar em diagramas de contactos. Além disso, é sempre possível não utilizar as instruções de bloco, se utilizarmos flags internas para armazenar dados temporários e intermédios.

Page 29: 15466797-sebentaautomacaob

Automação Industrial 29

2.3.8 Execução de Várias saídas

Existem situações em que é necessário executar mais do que uma acção, para as mesmas condições de entrada. Neste caso, as saídas são codificadas sucessivamente a seguir à última instrução da linha.

0.1 HR0.10.3

0.2

0.4

10.0

10.7

Ou utilizando lista de instruções,

LD 0.1 OR 0.2 AND 0.3 OUT HR0.1 OUT 10.0 AND 0.4 OUT 10.7

2.3.9 SET e RESET

Estas instruções são similares às de OUTPUT e OUTPUT NOT, diferindo no facto do seu estado apenas ser alterado quando a condição for ON. Quando a condição de entrada for Verdadeira, o bit de saída é ON ou OFF, caso se trate de um SET ou RESET, respectivamente. A particularidade desta instrução, é que mantém o seu estado após a condição de entrada passa a Falsa.

SET(saída)

Condição Condição

RESET(saída)

Figura 5.5 - Evolução temporal para as instruções SET e RESET

Vamos considerar o caso de pretendermos controlar o funcionamento de um motor, através de dois botões: o botão verde para o colocar em funcionamento e o botão vermelho para o parar.

Neste caso, não se pode utilizar a instrução OUT, porque com esta instrução logo que libertássemos o botão verde, o motor parava, e o que se pretende é que o motor continue a funcionar mesmo que se liberte o botão e até que se prima o botão vermelho.

Page 30: 15466797-sebentaautomacaob

Automação Industrial 30

Para implementar esta funcionalidade é necessário utilizar as instruções SET para por o motor em funcionamento quando se prime o botão verde, e a instrução RSET para parar o motor quando se prime o botão vermelho.

RSET 10.0

Botão verde

Botão vermelho

SET 10.0

Assim quando se pressiona o botão verde, este vale o estado lógico ON, pelo que o motor inicia o seu funcionamento; quando se pressiona o botão vermelho, a instrução RSET é executada, parando de imediato o motor.

2.3.10 DIFFERENTIATE UP, DIFFERENTIATE DOWN

As instruções DIFU e DIFD são utilizadas para forçar um bit a ON durante apenas um ciclo de funcionamento. Sempre que é executado, DIFU compara a condição corrente com a condição anterior. Se a condição anterior era OFF e a condição corrente é ON, então DIFU tornará o bit a ON. Se a condição anterior é ON e a condição corrente é ON ou OFF, então DIFU tornará o bit a OFF ou manterá o bit a OFF (com esta instrução o bit apenas se manterá em ON durante um ciclo).

Quando executada, DIFD compara a execução corrente com a condição anterior. Se a condição anterior era ON e a condição corrente é OFF, a instrução DIFD tornará o bit a ON. Se a condição anterior é OFF e a corrente é ON ou OFF, DIFD tornará o bit a OFF ou manterá o bit a OFF.

DIFD 10.1

1.0

1.1

DIFU 10.0

2.3.11 Instruções de Bifurcação

Quando uma linha de instrução se divide em mais do que 2 linhas, é necessário usar bits temporais para armazenar o resultado da condição na bifurcação.

0.0 10.00.1

0.2 10.1

TR 0

Page 31: 15466797-sebentaautomacaob

Automação Industrial 31

É necessário no ponto de bifurcação colocar um bit TR, de modo a manter temporariamente o resultado da última condição, e assim ser utilizada posteriormente.

LD 0.0 OUT TR 0 AND 0.1 OUT 10.0 LD TR 0 AND 0.2 OUT 10.1

2.3.12 KEEP

A instrução KEEP é usada para manter o estado do bit, baseado em duas condições. Para tal, a instrução é conectada a duas linhas de instrução. Quando a condição da primeira linha é ON, o bit operando torna-se igual a ON. Quando a condição da segunda linha é ON, o bit operando da instrução KEEP torna-se OFF.

O bit operando para a instrução KEEP manterá o seu estado (ON ou OFF) mesmo quando colocado numa secção diferente do diagrama.

0.2 0.3

0.4KEEP (11HR 0000

0.5

Exemplo de aplicação (1)

Pretende-se elaborar um sistema de controlo para o comando de um motor e de uma bomba, que apresenta as seguintes características:

• Após ser premido o botão de arranque, a bomba é ligada;

• O funcionamento efectivo da bomba é detectado pelo medidor de caudal. O motor é ligado depois de detectada a entrada em funcionamento da bomba;

• A actuação do botão de paragem provoca o desligar da bomba e do motor.

Implementação do sistema de controlo pode recorrer à lógica digital.

arranque

paragem

caudal motor ON

bomba ON

R

S

R

S

Page 32: 15466797-sebentaautomacaob

Automação Industrial 32

No entanto, para a implementação em autómato programável, é necessário efectuar a atribuição de endereços:

IR 00.00 - arranque IR 00.01 - paragem IR 00.02 - caudal IR 10.00 - motor ON IR 10.01 - bomba ON A representação da evolução temporal das várias variáveis em jogo, ajuda a

apreender o problema e a conceber uma solução. Para este caso, a evolução temporal está ilustrada na figura que se segue.

Arranque

Paragem

Caudal

Bomba ON

Motor ON A implementação da solução, utilizando as instruções SET e RESET está

representada na figura que se segue.

Arranque

Caudal

Paragem

Bomba ON

SET Bomba ON

RSET Motor

RSET Bomba ON

SET Motor

Paragem

Paragem

No entanto, é possível implementar a mesma solução utilizando a instrução KEEP.

Arranque

Paragem

KEEP (11Bomba ON

Bomba ON

Paragem

Caudal

KEEP (11Motor ON

Page 33: 15466797-sebentaautomacaob

Automação Industrial 33

Nesta última solução, a entrada Arranque coloca a Bomba em funcionamento enquanto a activação do botão Paragem desliga a Bomba. Para que o Motor funcione é necessário que a Bomba esteja em funcionamento e que já exista Caudal a alimentar o Motor.

Exemplo de aplicação (2)

Pretende-se realizar o controlo de uma electroválvula, com as seguintes características:

• possibilidade de três acções de comando: abrir, fechar e parar;

• uma saída do autómato comanda a abertura da válvula e outra o seu fecho. Estas duas saídas não podem tomar em simultâneo o valor lógico 1;

• quando a válvula atinge uma das posições extremas (totalmente aberta ou fechada), a respectiva saída do PLC é desactivada;

• a válvula pode ser comandada em modo manual e automático;

• em modo manual as ordens são iniciadas a partir de 3 botões de pressão: abrir, fechar e parar;

• em modo automático, a válvula é comandada por três flags geradas por outro módulo do programa;

• está previsto um sinal exterior de inibição, que quando está activo, inibe as duas saídas de comando da válvula.

O primeiro passo na elaboração do programa é a atribuição de endereços às variáveis que irão ser utilizadas no programa:

IR 00.00 a IR 00.02 - abrir, fechar e parar IR 00.03 a IR 00.04 - aberto e fechado IR 00.05 - inibição IR 10.00 a IR 10.01 - act_abrir e act_fechar IR 200.00 a IR 200.01 - flag_abrir e flag_fechar IR 00.06 - manual (1- manual e 0 - automático) O programa que solucione este problema está ilustrado na figura que se segue.

Page 34: 15466797-sebentaautomacaob

Automação Industrial 34

ent_abrir

modo

modo

flag_abrir

SET abrir

RSET abrirRSET fecha

SET fechar

RSET abrirRSET fechar

ent_fechar modo

fechado

RSET abrir

RSET fechar

fechado

inibiçãoaberto

inibição

flag_parar

inibição

abriraberto

fechar

fechado

ent_parar modo

modo

modo

2.4 TEMPORIZADORES

Os temporizadores são utilizados sempre que se pretenda realizar uma determinada acção ao fim de um determinado período de tempo ou durante um período de tempo.

No autómato CPM1 da Omron, os temporizadores estão disponíveis através dos endereços TC 000 a TC 127.

TIM

NVT

Condição A

em que N é o numero do temporizador e VT contém o valor do tempo que se pretende contar.

O temporizador é activado quando a condição de execução vai a ON e é desactivado

quando a condição de execução vai a OFF. Se quando VT tiver sido esgotado e a condição A for ON, então o temporizador virá a ON.

Condição

A

TemporizadorTIM N

VT < VT VT

Figura 5.7 - Evolução temporal de um temporizador

As unidades de medida nesta instrução de temporização são as décimas de segundo (0,1 segundo).

Page 35: 15466797-sebentaautomacaob

Automação Industrial 35

Exemplo de aplicação

O elevador representado na figura desloca-se entre dois pisos. O seu movimento é comandado (subir, descer e parar) a partir dos comandos dados pelos operadores (botões de chamada bot_ch1 e bot_ch2) e das informações provenientes dos detectores de fim de curso (piso1 e piso2).

piso2bot_ch2

bot_ch1 piso1

Figura 5.8 - Elevador entre dois pisos

A atribuição de endereços é a seguinte:

IR 00.00 - bot_ch1 IR 00.01 - bot_ch2 IR 00.02 - piso1 IR 00.03 - piso2 IR 10.00 - motor_up IR 10.01 - motor_down

O programa que controle o movimento do elevador entre os dois pisos é o seguinte.

bot_ch2

RSET motor_u

RSETmotor_down

piso1

piso2bot_ch1

piso1

piso2

SET motor_up

SETmotor_down

Adicionalmente, pretende-se controlar a porta do elevador. Esta deverá abrir 5

segundos após ter chegado ao piso desejado. Sempre que o elevador seja requisitado, a porta deverá ser fechada.

A nova atribuição de endereços é como se representa:

IR 00.04 - porta_aberta IR 00.01 - porta_fechada

Page 36: 15466797-sebentaautomacaob

Automação Industrial 36

IR 10.02 - abre_porta IR 10.03 - fecha_porta

O novo programa em diagrama de contactos está ilustrado na figura que se segue.

bot_ch2 piso1

SET motor_u

SETfecha_porta

porta_aberta

RSET motor_

RSETmotor_down

piso1

piso2

porta_abertaTIM 000

bot_ch1

piso2 motor_up

motor_down

piso2SET

motor_down

SETfecha_porta

SET abre_por

RSETabre_porta

TIM000#50

piso1

NOTA: Pensar em melhorar o sistema incorporando a possibilidade de no interior do

elevador se poder fechar a porta e ir para um outro piso. Adicionalmente, pensar no caso de existirem mais do que dois andares?

2.4.1 Temporizador ao Impulso

Neste tipo de configuração, pretende-se que a saída esteja activa durante o período de tempo especificado no temporizador.

0.0

10.2

TIM16#20

10.2TIM 16 Para o caso da figura anterior, a saída 10.2 estará ON apenas durante o tempo

especificado, neste caso 2 segundos.

Page 37: 15466797-sebentaautomacaob

Automação Industrial 37

2.4.2 Temporizador após a operação

Pretende-se com esta configuração que a saída esteja activa apenas durante um determinado período de tempo, especificado no temporizador, após a entrada de controlo tenha deixado de estar activa. Um exemplo da necessidade deste tipo de configuração do temporizador é caso do controlo de uma luz de um parque automóvel subterrâneo. Neste caso, pretende-se que a luz que ilumina o parque, apenas esteja acesa 30 segundos após o carro ter entrado no parque.

10.0

0.0

TIM10#50

10.0

TIM 10

10.0

0.0

Neste caso, a saída 10.0 ficará no estado OFF após 5 segundos a condição de

execução ter ficado OFF. Na figura que se segue, é possível verificar a evolução temporal da entrada e da saída e concluir que a saída 10.0 apenas permanece em ON 5 segundos após a entrada ter passado a OFF.

5 seg.

10.0

0.0

Exemplo de aplicação

Uma lâmpada de sinalização deve permanecer a piscar, com período de 20 segundos, durante todo o tempo em que um carro se movimenta. O carro é comandado a partir de um botão premido continuadamente durante todo o movimento.

A atribuição de endereços é a seguinte: IR 00.00 - carro IR 10.08 - lâmpada TIM 000 e 001 - temporizadores para a onda quadrada A representação dos estados que os temporizadores para formar a onda quadrada

deverão tomar está ilustrada na figura que se segue.

Page 38: 15466797-sebentaautomacaob

Automação Industrial 38

TIM 000

TIM 001

Na figura que se segue, encontra-se representado o programa que implementa a

onda quadrada.

TIM 000

TIM000#100

carro

lampada

TIM 001

TIM001#100

TIM 000

2.4.3 Temporizador de alta velocidade

Este temporizador, designado por TIMH, é semelhante ao TIM, exceptuando o facto daquele ter como unidades de medida as centésimas de segundo (0,01 s).

TIM 000

TIM H000#150

10.0

0.0

Na figura anterior, a saída 10.0 estará a ON após 1,5 segundos a entrada 0.0 ter

passado a ON.

2.5 CONTADORES

Os contadores são utilizados para contar o número de eventos associados a uma determinada condição.

2.5.1 CNT

A instrução CNT é usada para contar de forma decrescente desde um valor pré-definido (VC), quando a condição de execução em CP passa de OFF para ON, isto é, o valor corrente (PV) será decrementado de 1 unidade sempre que CNT é executado, com CP=ON, e que a condição de execução tenha sido OFF na última execução.

Page 39: 15466797-sebentaautomacaob

Automação Industrial 39

CNT

NVC

CP

R

em que N é o numero do contador e VC é o valor inicial do contador.

O contador é desactivado com a entrada de reset R. Quando R passa de OFF para

ON, o valor actual passa a valer VC. O valor presente nunca é decrementado quando R é ON.

CNT 001

CNT001#700

10.0

0.0 255.02

0.1R

CP

O contador 001 conta o número de vezes que o clock (SR 25502) vai de OFF a ON. A

entrada 0.0 é utilizada para controlar o tempo quando o contador está em operação (1seg x 700 =11 minutos e 40 segundos).

2.5.2 Contador reversível CNTR

O contador reversível, designado por CNTR, permite contar de forma crescente ou decrescente, isto é, é utilizado para contar entre 0 e VC de acordo com duas condições de execução, na entrada incremental (EI) e na entrada decremental (ED).

O valor corrente será incrementado de uma unidade quando a condição de execução para EI é ON e a última condição de execução é OFF.

CNTR

NVC

EI

R

ED

Se simultaneamente as entradas EI e ED passarem a ON, o valor corrente não se

alterará. O contador é desactivado através da entrada R. Quando chegar a zero, o contador fica a ON.

Este tipo de contador é circular, pois se o valor actual do contador coincidir com o valor pré-definido do contador, e se a entrada EI passar a ON, então o próximo valor do contador passará a ser 0.

0 VC. . .

Page 40: 15466797-sebentaautomacaob

Automação Industrial 40

2.5.3 Exemplo de aplicação

Considere um posto de embalamento de produtos. Os produtos chegam ao posto através de um tapete rolante.

Con

tent

or

Figura 5.9 - Sistema de embalamento com peças semelhantes

Existe um sensor no referido posto, que permite a detecção dos produtos. Sempre que existam 100 produtos no contentor deve ser colocado um novo contentor utilizando um actuador pneumático.

Atribuição de endereços: IR 00.00 - detector IR 10.00 - actuador TC 120 - contador O diagrama de contactos para este problema é o representado de seguida.

CNT 120

CNT120#100

detector

CNT 120R

CP

DIFU actuad

Pretende-se efectuar algumas melhorias no sistema:

• se uma peça estiver mais de 5 segundos em frente ao posto, então gera alarme;

• quando chega a 100, o tapete deve parar, para dar tempo à mudança de contentor;

• após 10 segundos, o tapete deve voltar a funcionar;

• possibilidade de detectar dois tipos de peças A e B (contentor A - 100 peças e contentor B - 50 peças), tal como se mostra na próxima figura.

Page 41: 15466797-sebentaautomacaob

Automação Industrial 41

Actuadorpneumático

A

B

Figura 5.10 - Selecção de diferentes tipos de peças

2.6 INSTRUÇÕES DE MANIPULAÇÃO DE DADOS

A solução de determinados problemas requer a necessidade de manipular não apenas um bit mas sim um conjunto de bits agrupados numa palavra (word), constituída por dois bytes, ou seja 16 bits.

2.6.1 MOVE

Esta instrução permite copiar o conteúdo de uma palavra origem para uma palavra destino, sempre que a condição de execução for verdadeira.

MOV

SD

em que S é a palavra origem, que pode pertencer às áreas IR, SR, AR, DM, HR, TC, LR ou ser um valor numérico, e D é a palavra destino, que pode pertencer às áreas IR, SR, AR, DM, HR e LR.

É preciso ter em atenção que os DM 6144 a DM6655 não poderão ser utilizados para

a palavra destino, pois pertencem a uma área de memória reservada apenas a leitura.

Palavra Origem

. . .

Palavra Destino

. . .MOV

O estado dos bits da palavra origem é preservado durante a realização da instrução

MOV.

MOV001

HR 05

0.0

Neste caso, quando a entrada 0.0 estiver em ON, o conteúdo de IR 001 é copiado

para HR05. Por exemplo se IR 001 contiver o valor 01101011111, então HR05 passará a conter esse valor.

Page 42: 15466797-sebentaautomacaob

Automação Industrial 42

IR 000 : 0110 1011 111 ...

⇓ ⇓ ⇓ HR 05 : 0110 1011 111

...

2.6.2 MOVE NOT

Esta instrução é semelhante ao MOV, com a diferença de quando a condição de execução for verdadeira, é copiado para a palavra destino o conteúdo invertido da palavra origem. Se a palavra origem for um valor numérico, então deverá estar no formato hexadecimal.

MVN#F8C5

DM 0010

0.0

Uma vez que # F8C5 em hexadecimal é semelhante a 111 1000 1100 0101 em

binário, então o valor que será transferido para o DM 0010 será 0000 0111 0011 1010, que é o complementar de #F8C5.

2.6.3 Instruções Diferenciais

Algumas instruções permitem tanto a forma não diferencial como a diferencial. As instruções são distinguidas através da colocação do símbolo @ imediatamente antes da mnemónica da instrução. Uma instrução não diferencial é executada sempre que a condição de execução é ON.

Uma instrução diferencial é executada apenas após a condição de execução passar de OFF a ON. Se a condição de execução não se alterou ou se mudou de ON para OFF, a instrução não será executada.

@MOVHR 10

DM 0000

0.0

Diagrama A Diagrama B

MOVHR 10

DM 0000

0.0

No diagrama A, que apresenta a instrução MOV não diferencial, o conteúdo de HR10

é copiado para DM 0000 sempre que o programa execute a linha de instrução. Se o tempo de ciclo é 80 ms e 0.0 permanece em ON por 2,0 segundos então a operação MOV é executada 25 vezes, sendo apenas preservado o último valor que é copiado para DM 0000.

No diagrama B, a instrução diferencial @MOV move o conteúdo de HR 10 para DM 0000 apenas quando 00.00 passa a ON. Mesmo que 00.00 se mantenha em ON durante

Page 43: 15466797-sebentaautomacaob

Automação Industrial 43

2 segundos com o mesmo tempo de ciclo (80 ms), a instrução só será executada uma vez, aquando do primeiro ciclo, no qual 00.00 passa de OFF para ON.

2.6.4 Endereçamento Indirecto

Quando a área DM é especificada para um operando, um endereço indirecto poderá ser utilizado, vulgarmente designado por apontador. Um apontador diferencia-se de um endereço normal por ter um asterisco antes do prefixo DM: *DM XXXX.

Quando se utilizam apontadores, o DM especificado conterá o endereço da palavra DM que contém a informação que será usada como operando da instrução.

MOV

*DM 0001LR 00

4C59

1111

F35A

5555

2506

D541

. . .

DM 0000

o valor 5555 écopiado para LR00

indica DM 1111

DM 1113

DM 1112

DM 1111

DM 0002

DM 0001

Figura 5.11 - Utilização de apontadores no endereçamento de memória

No exemplo anterior, *DM 0001 é utilizado como 1º operando da instrução MOV, sendo o seu conteúdo o apontador para a posição de memória DM 1111, cujo conteúdo será copiado para o segundo operando, neste caso, o LR 00.

Importante: Quando se trabalha com endereços indirectos, o conteúdo do DM que

irá especificar a palavra que contém a informação, deverá estar em formato BCD e compreendido entre 0000 e 1999.

2.7 INTERRUPÇÕES

Uma interrupção é um tipo de entrada especial que permite o tratamento imediato do acontecimento, deixando por instantes de executar o programa principal. Após ter sido tratada a interrupção, o ciclo de execução volta ao programa principal. O autómato programável CPM1 possui três tipos de interrupções, descritas de seguida:

• Entradas de interrupção - o processamento da interrupção é executada quando uma das entradas de interrupção passa a ON a partir de uma fonte externa.

• Interrupções temporizadas - o processamento da interrupção é executado a partir de um temporizador com precisão de 0,1 ms.

• Interrupções de contadores - o processamento da interrupção é executado quando o contador atinge o valor especificado no contador.

Page 44: 15466797-sebentaautomacaob

Automação Industrial 44

As entradas de interrupção tem prioridade sobre os outros dois tipos de interrupção. Quando 2 entradas de igual prioridade são actuadas simultaneamente, é executada a entrada de interrupção 0, no que se segue a entrada de interrupção 1, etc.

O CPM1 possui as entradas 0003 a 0006 como entradas de interrupção, que podem ser definidas como entradas de interrupção utilizando o DM 6628.

Palavra Valores DM 6628

0 : entrada normal 1: entrada interrupção 2: entrada de resposta rápida

Figura 5.12 - Configuração das interrupções

As interrupções das entradas 00.03 a 00.06 são alocadas às interrupções 00 a 003 e às subrotinas 000 a 003. Se as entradas de interrupção não estiverem a ser utilizadas, as subrotinas de interrupção 000 a 0003 podem ser utilizadas como subrotinas normais.

Quando uma entrada de interrupção é recebida, o programa principal é interrompido e o programa de interrupção é executado imediatamente. O sinal de interrupção deverá estar a ON durante pelo menos 200 µs, de forma a ser detectado.

Programa de Interrupção

ProgramaPrincipal

ProgramaPrincipal

Entrada deinterrupção

Figura 5.12 - Funcionamento de uma interrupção

Para activar as entradas de interrupção é necessário utilizar a instrução INT.

INT

CC000D

em que CC é o código de controlo e D são os dados de controlo.

Se pretendermos configurar as entradas que se pretendem que sejam interrupções,

deveremos utilizar o valor 000 no parâmetro CC (permite colocar uma máscara nas entradas de interrupção). No parâmetro D deverá ser colocado o valor que corresponda à activação das entradas de interrupção; por exemplo, se pretendermos configurar a entrada 0.4 como entrada de interrupção, devemos colocar o valor #D (1 1 0 1).

DM 6628

0003000400050006

Bit 0Bit 15

Page 45: 15466797-sebentaautomacaob

Automação Industrial 45

Exemplo de aplicação

Vamos considerar o diagrama que se segue, em que se representa a activação de uma interrupção a partir da entrada 0.3.

.

.

.

INT

000000

#000E

SBN 000

RET

Programa deinterrupção

0.3

Quando a entrada 00.03 (interrupção numero 0) vai a ON, o controlo passa

imediatamente para o programa de interrupção com a subrotina 000. As entradas de interrupção foram configuradas no DM 6628 com o valor 0001.

0.

6 0.

5 0.

4 0.

3 1 1 1 0

O valor #E colocado na instrução INT, permite o enable da interrupção da entrada

0.3.

2.8 SUBROTINAS

As subrotinas permitem dividir as tarefas complexas de controlo em pequenos módulos. Quando o programa principal invoca a subrotina, o controlo é transferido para a subrotina, sendo as instruções da subrotina executadas. Quando todas as instruções da subrotina estiverem concluídas o controlo regressa ao programa principal.

em que N é o numero da subrotina.

Na figura que se segue é possível verificar que a instrução SBS 000 permite realizar

um salto no programa principal para a subrotina 0, representada pela instrução SBN 00.

SBS N

Page 46: 15466797-sebentaautomacaob

Automação Industrial 46

Programa Principal

SBS 00

Programa Principal

SBN 00

Subrotina

RET

END

Figura 5.13 - Principio de funcionamento das subrotinas

O final da subrotina é representado pela instrução RET, que retorna a execução do programa para a instrução seguinte a da chamada da subrotina.

Page 47: 15466797-sebentaautomacaob

Automação Industrial 47

3 MODELAÇÃO DE SISTEMAS COMPLEXOS CONDUZIDOS POR EVENTOS

3.1 INTRODUÇÃO AO GRAFCET

O GRAFCET (Graphe de Commande Etape-Transition) foi estabelecido em 1977 pela “Association Française pour la Cybernétique Economique et Technique”, e é uma linguagem gráfica utilizada para representar o algoritmo de controlo, com respeito às suas interacções com o mundo exterior. A linguagem GRAFCET fornece aos utilizadores a possibilidade de implementar projectos de automação simples ou complexos, com eficiência e baixo custo. De uma forma simples, o GRAFCET consiste em:

• Dois elementos gráficos: ETAPAS e TRANSIÇÕES.

• Dois elementos de controlo: ACÇÕES para as Etapas e Receptividades para as transições.

Uma etapa é ligada sempre a uma transição e uma transição é sempre ligada a uma etapa, através de ligações orientadas.

SOBE_BROCA SE /BROCA_UP1

LIGA_BROCA;BAIXA_BROCA SE T/X2/3s/2

LIGA_BROCA;SOBE_BROCA3

t1 INICIO.BROCA_UP

t2 BROCA_BAIXO

t3 BROCA_UP

Acção

Etapa InicialLigação

Etapa

Transição

Receptividade

Figura 6.1- Exemplo de um Grafcet

A utilização da ferramenta Grafcet oferece algumas vantagens, das quais se destacam as seguintes:

• Suportado por um Standard - suportado pelo standard IEC 848 da International Electrotechnical Commission, representativo de todas as empresas que suportam o Grafcet de modo a manter a sua integridade e universalidade.

• Gráfico Orientado ao Processo - desenvolvido para aplicações de processo, o Grafcet possui características que não são suportadas pelas outras ferramentas similares, tais como processamento paralelo.

Page 48: 15466797-sebentaautomacaob

Automação Industrial 48

• Desenvolvimento independente do autómato programável - o trabalho de especificação realizado com o Grafcet é completamente independente do tipo de autómato programável que será utilizado na aplicação de automação.

• Tarefa de concepção facilitada - o formato gráfico torna mais fácil a tarefa de identificação de erros de concepção. Mais importante, o Grafcet diminui o custo dos erros de interpretação, quer sejam originários de construtores, fornecedores ou equipas de concepção.

• Redução do tempo de desenvolvimento de aplicações - o Grafcet o desenvolvimento de um método para a implementação de código para autómatos programáveis. Actualmente, o GRAFCET é a linguagem mais produtiva e flexível desenvolvida para automação de processos.

3.2 ESPECIFICAÇÃO FUNCIONAL E TECNOLÓGICA

A especificação de automatismos industriais requer a consideração dos seguintes pontos: funcional e tecnológico [Novais, 94].

3.2.1 Especificação Funcional

A especificação funcional engloba as seguintes características:

• Descreve as interacções entre as partes de Comando e Operativa.

• Define as funções, informações e comandos implicados no automatismo.

• É independente das opções tecnológicas.

3.2.2 Especificação Tecnológica

A especificação tecnológica engloba as seguintes características:

• Descreve fisicamente as trocas de informação entre as partes operativas e de comando.

• Define os meios de comunicação entre o operador e o automatismo.

3.3 CONCEITOS BÁSICOS DO GRAFCET

3.3.1 Etapas

O princípio fundamental do Grafcet é a redução do processo de controlo a etapas simples.

Uma etapa corresponde a uma situação do sistema, ou de parte dele, em que o comportamento permanece invariante. A etapa é representada por um quadrado com

Page 49: 15466797-sebentaautomacaob

Automação Industrial 49

um número no interior. A entrada é efectuada na parte superior do quadrado e a saída na parte inferior.

LIGA_BROCA;BAIXA_BROCA SE T/X2/3s/2

Figura 6.2 - Etapa e Acção

Uma etapa está activa ou inactiva. Uma etapa activa é assinalada com um ponto (.) na parte inferior do seu símbolo.

LIGA_BROCA; SOBE_BROCA2•

Figura 6.3 - Etapa activa ou validada

O estado actual do sistema é caracterizado pelo conjunto das etapas activas. A cada etapa estão associadas acções. As acções são executadas enquanto a etapa

está activa, e controlam as saídas que tem por objectivo a execução de diversas funções.

Quando uma etapa está activa, são executadas as acções associadas à etapa. As várias acções estão separadas pelo símbolo “;” ou então por um traço horizontal.

3.3.2 Transições

As etapas do gráfico são separadas por transições. As transições representam a possibilidade de evolução entre etapas.

1 1 INICIO.BROCA_UP

Figura 6.4 - Transição e Receptividade

A cada transição está associada uma condição lógica denominada por receptividade.

A evolução no GRAFCET requer que a etapa esteja activa e a receptividade associada à transição seja 1.

A utilização de operadores lógicos AND e OR representa-se na receptividade pelo uso dos símbolos “•“ e “+”. Assim, a condição lógica é verdadeira se INICIO e BROCA_UP são condições verdadeiras.

3.4 PRINCÍPIO DE FUNCIONAMENTO

Na definição do Grafcet existem várias regras que governam o seu comportamento, e que serão descritas de seguida.

Page 50: 15466797-sebentaautomacaob

Automação Industrial 50

3.4.1 Inicialização

As etapas activas após a inicialização são assinaladas duplicando o contorno dos respectivos símbolos.

SOBE_BROCA SE /BROCA_UP1

Figura 6.5 - Etapa Inicial

Neste caso, a acção da etapa 1 contém apenas um elemento de controlo: furação.

3.4.2 Validação

Uma transição está validada ou não validada. Está validada se todas as etapas de entrada estiverem activas.

3.4.3 Disparo de uma transição

Uma transição é disparada se estiver validada (a etapa anterior está activada) e a receptividade tomar o valor “1”. O disparo de uma transição provoca a activação das etapas de saída e a desactivação das etapas de entrada.

LIGA_BROCA;BAIXA_BROCA SE T/X2/3s/2

LIGA_BROCA;SOBE_BROCA3

2 BROCA_BAIXO

LIGA_BROCA;BAIXA_BROCA SE T/X2/3s/2

LIGA_BROCA;SOBE_BROCA3

2 BROCA_BAIXO

LIGA_BROCA;BAIXA_BROCA SE T/X2/3s/2

LIGA_BROCA;SOBE_BROCA3

2 BROCA_BAIXO

Etapa 2 activa Etapa 2 activaTransição 2 disparada

Etapa 2 desactivadaEtapa 3 activada

Figura 6.6 - Disparo de uma Transição

Exemplo: Prensa de compressão

A prensa de compressão consiste num punção inferior (fixo) e num punção superior e matriz (móveis). Existem adicionalmente dispositivos de colocação de material e

Page 51: 15466797-sebentaautomacaob

Automação Industrial 51

evacuação da peça. O princípio de funcionamento pode-se resumir aos seguintes pontos:

• com o punção superior e a matriz nas suas posições altas é colocada a matéria prima na matriz;

• o punção superior desce comprimindo a matéria prima após o que regressa à posição inicial;

• a matriz desce permitindo retirar a peça;

• a matriz regressa à posição inicial, podendo ser iniciado um novo ciclo.

matriz em posição baixa

material colocado e arranque do ciclo

1

2

3

5

4

6

evacuação terminada

punção superior

fim da compressão

matriz emposição alta

Colocação do material

Descida da matriz

Subida do punção superior

Descida do punção superior

Subida da matriz

Evacuação da peça

Após a realização desta especificação funcional, colocam-se as seguintes questões:

1. Como é colocado o material?

O material deverá ser colocado manualmente pelo operador. O sinalizador luminoso V permanece aceso durante o tempo de colocação. O operador inicia o ciclo premindo o botão d.

2. Como são accionados o punção e a matriz?

Accionamento por êmbolos hidráulicos de duplo efeito.

3. Como são detectadas as posições extremas dos movimentos?

As posições alta e baixa são detectadas pelos interruptores de fim de curso a1, a0, b1 e b0.

Page 52: 15466797-sebentaautomacaob

Automação Industrial 52

4. Como é retirada a peça?

A peça é retirada através de um jacto de ar, comandado pela electroválvula E, com uma duração de 1 segundo.

As novas especificações provocam o aparecimento de novas entradas, saídas e temporizações, originando um novo grafcet.

Entradas:

d : autorização de arranque de ciclo a1 : posição baixa do punção a0 : posição alta do punção b0 : posição baixa da matriz b1 : posição alta da matriz

Saídas: V: sinalização luminosa a+ : descida do punção a- : subida do punção b+ : subida da matriz b- : descida da matriz E : evacuação

Temporizadores: LT1 : ligar a temporização de evacuação fT1 : fim da temporização de evacuação

b0

d

1

2

3

5

4

6

ft1

a0

a1

b1

V

b -

a -

a +

b +

E ; LT1

Exemplo: Transporte e descarga de peças

Consideremos o seguinte sistema, constituído por um carro, C, que tem por objectivo o transporte de peças entre os postos A e B, nos sentidos direito (direito) e esquerdo (esquerdo). Em repouso, o carro encontra-se no posto A. Nesta posição, após receber ordem do operador, o carro transporta uma peça até ao posto B, regressando de seguida ao posto A.

A presença do carro nos postos A e B é sinalizada. As peças depositadas no posto B são retiradas, duas de cada vez, através de um alçapão, que se abre durante 20 segundos.

Qualquer avaria no funcionamento do alçapão é sinalizada. Esta sinalização mantém-se até ao operador a reconhecer.

Page 53: 15466797-sebentaautomacaob

Automação Industrial 53

Posto BPosto A

a b

Após ter sido realizada a especificação funcional do sistema, é necessário elaborar

a sua especificação tecnológica:

• a presença do carro nas posições A e B é detectada, respectivamente, pelos interruptores fim de curso a e b;

• a presença do carro na posição de repouso é sinalizada através da lâmpada V;

• o inicio do movimento é comandado pelo operador através do botão m. Se após ter terminado o movimento, o botão continuar premido, não se iniciará novo movimento;

• a abertura do alçapão é accionada por um êmbolo com mola de chamada (AA);

• o contacto t0 assinala o alçapão aberto;

• o alarme correspondente à avaria no alçapão é transmitido pela sirene S;

• o arranque após avaria é comandado através do botão r;

• o accionamento do carro é realizado por um motor eléctrico com 2 sentidos de marcha (D e E). O motor é protegido por um dispositivo, que quando activo implica a paragem momentânea do motor. Esta situação é sinalizada pela lâmpada L.

3.5 REPRESENTAÇÃO DE SEQUÊNCIAS SIMULTÂNEAS E ALTERNATIVAS

3.5.1 Sequências Simultâneas - Paralelismo Estrutural (Nó AND)

O início e o termo de sequências simultâneas são representados no Grafcet tal como se ilustra de seguida.

1

4

32

5

t1

Figura 6.7 - Sequência Simultânea

Page 54: 15466797-sebentaautomacaob

Automação Industrial 54

O disparo da transição t1 só é realizado quando as etapas 1,2 e 3 estiverem activas e a condição t1 seja verdadeira. Nesse caso, as etapas de entrada são desactivadas e as de saídas são activadas.

Considere a seguinte unidade de furação e roscagem:

Posto 3:Roscagem

Posto 2:Furação

Posto 1:Evacuação e

carga das peças

Figura 6.8 - Unidade de Furação e Roscagem

O programa em Grafcet para esta aplicação será o que se mostra de seguida, existindo a três sequências simultâneas (roscagem, furação e evacuação) que requerem a existência de uma condição AND.

b0

peça colocada

1

11 21

12

31

13

posição baixa

posição de trabalhopeça evacuada

posição alta

rotação de 1/3

carregamentoda peça

evacuação dapeça descida rápida

35

34

33

32

23

24

22descida trabalho;

broca

subida rápida;broca

descida rápida

roscagem

recuo

subida rápida

posição alta

fim recuo

posição baixa

posição de trabalho

fim de rotação

1

3.5.2 Sequências Alternativas - Paralelismo Interpretado (Nó OR)

O início e o termo de sequências alternativas é representado por:

Page 55: 15466797-sebentaautomacaob

Automação Industrial 55

1

to2 tom

ti1 ti2 tin

to1

Figura 6.9 - Sequências Alternativas

Para uma dada estrutura do gráfico, o paralelismo (execução simultânea de operações) depende do resultado lógico das receptividades envolvidas:

• incompatíveis - num dado instante apenas uma receptividade pode tomar o valor verdadeiro: evolução exclusiva;

• idênticas - sempre verdadeiras em simultâneo: paralelismo estrutural;

• compatíveis - podem ser ou não, verdadeiras ou falsas em simultâneo: evolução qualquer.

2

1

3

a /a . b

Estabelecimentos deprioridades

1

32

aa

Evolução Exclusiva

Figura 6.10 - Evolução Exclusiva e Estabelecimento de Prioridades

Exemplo: Atendimento de vários postos

Considere o seguinte exemplo, onde existe três postos de atendimento para um dado veiculo.

Posto 3Posto 1 Posto 2

O grafcet que solucionará o problema é o seguinte:

Page 56: 15466797-sebentaautomacaob

Automação Industrial 56

chegada posto 1

0

11 21

12

31

chegada posto 2

carro em 3 ANDgarra fechada

garra fechada

transf. esquerda

fechar garras fechar garras

23 32

1

22 transf. esquerda

abrir garras

fechar garras

transf. direitatransf. direita

chegada posto 2 chegada posto 3

garra fechada

garraaberta

pedido do posto 1 ecarro em 2 ou 3

pedido do posto 2 ecarro em 1 ou 3

pedido do posto 3 ecarro em 1 ou 2

carro em 1 ANDgarra fechada

3.6 CONCEITOS COMPLEMENTARES

3.6.1 Acção Condicional

A execução de uma acção pode ser condicionada a uma condição lógica estabelecida a partir de variáveis de entrada e/ou actividade de outras etapas.

Sobe_broca SE /broca_up10

Figura 6.11 - Evolução Exclusiva

A acção Sobe_broca só será realizada (estando a etapa 10 activa) se a condição lógica broca_up for verdadeira, isto é, a broca não estiver em cima.

3.6.2 Temporização

O controlo de processos industriais requer a existência de temporizações para a execução de acções. Existem várias implementações possíveis para as temporizações.

5

T / X5 / 1min

Figura 6.12 - Transição Temporizada

Page 57: 15466797-sebentaautomacaob

Automação Industrial 57

No exemplo anterior a transição é disparada 1 minuto depois da etapa 5 estar activa. Nessa altura, a transição é disparada e a etapa 5 é desactivada.

Outra possível implementação está ilustrada na figura que se segue.

Sobe_broca SE T / X2 / 3seg2

Figura 6.13 - Evolução Exclusiva

Neste caso, a acção Sobe_broca é executada enquanto a etapa 2 estiver activa e o temporizador estiver a 1, o que acontece 3 segundos após a validação da etapa 2.

3.7 COOPERAÇÃO ENTRE PROCESSOS

3.7.1 Sincronização

Existem situações em que é necessária a sincronização entre vários processos. O conceito de sincronização entre vários processos significa ter um mecanismo que assegure que a evolução do grafcet só seja possível quando todas as condições necessárias para a sua evolução estiverem reunidas.

Sincronização pela estrutura do Grafcet Considere o seguinte sistema, constituído pelo carros C1 e C2.

Posto B1Posto A1

a1 b1

Posto B2Posto A2

a2 b2

C2C1

Os carros C1 e C2 deslocam-se nos sentidos direito (D) e esquerdo (E), entre os

postos a1 e b1 para C1, e a2 e b2 para C2. Os dois carros efectuam o movimento a-b-a, encontrando-se simultaneamente nas suas posições de repouso (postos a1 e a2) quando o operador der ordem de partida (botão p).

Page 58: 15466797-sebentaautomacaob

Automação Industrial 58

a1

4

2

1

6

5

3

Direita

p

Direita

Esquerda Esquerda

b1 b2

a2

Considere agora a seguinte alteração ao sistema: A chegada de C1 ao seu posto de

repouso a1, impõe o regresso imediato de C2 ao posto a2 (se C2 ainda se estiver a dirigir para b2). Esta condição adicional, requer a reformulação do grafcet anterior, obtendo-se o seguinte grafcet.

a1

4

2

1

6

5

3

Direita

p

Direita

Esquerda Esquerda

b1 b2

a2

1

É de notar que a evolução do grafcet é condicionada pela actividade da etapa 1. Vamos considerar uma nova alteração: C2 não pode iniciar o regresso ao seu posto

de repouso b2 antes de C1 atingir o posto b1.

Page 59: 15466797-sebentaautomacaob

Automação Industrial 59

a1

4

2

1

7

5

3

Direita

p

Direita

Esquerda

Esquerda

b1 b2

a2

1

8

6

A evolução do grafcet é condicionada pela não actividade da etapa 8.

Sincronização pela interpretação do Grafcet

É possível implementar os grafcets elaborados no ponto anterior, utilizando a interpretação do grafcet. A interpretação do grafcet consiste em utilizar o estado das etapas como condições de disparo de uma transição. No exemplo anterior, apenas nos dois últimos casos, é utilizado o estado de uma etapa para fazer dispara uma transição.

No segundo dos grafcets, é utilizado o estado da etapa 1 para fazer evoluir o gracet da etapa 5 para a etapa 6. Utilizando a interpretação, é possível redesenhar o gracfet e representá-lo da seguinte forma.

a1

4

2

1

6

5

3

Direita

p

Direita

Esquerda Esquerda

b1 b2 + X1

a2

Na terceira versão do grafcet do ponto anterior, é utilizado o estado da etapa 8

para fazer evoluir o grafcet da etapa 7 para a 6, e da 2 para a 3. O grafcet equivalente, utilizando interpretação será o seguinte.

Page 60: 15466797-sebentaautomacaob

Automação Industrial 60

a1

4

2

1

6

5

3

Direita

p

Direita

Esquerda Esquerda

b1 b2 . /X2

a2

3.7.2 Partilha de Recursos

Existem situações em que dois ou mais processos partilham o mesmo recurso. Nestas situações, é necessário criar uma etapa especial que represente a disponibilidade do recurso a ser partilhado.

Exemplo: Partilha de um troço comum

Considere-se um sistema constituído por dois carros C1 e C2, cujos postos de repouso são a1 e a2, e que alimentam uma estação situada no posto b;

Posto A1

Posto B

Posto A2 Carro 2

Carro 1

Posição deespera 1

Posição deespera 2

O ciclo correspondente a cada carro é o seguinte:

− após a ordem de partida, o carro dirige-se para o troço comum das vias;

− quando atinge a respectiva posição de espera, o carro pára se o troço comum estiver ocupado, ou prossegue em direcção ao posto b se estiver livre;

− após atingir o posto b, o carro imobiliza-se durante 2 minutos, iniciando de seguida o regresso ao posto de repouso.

O grafcet para o problema, utilizando a estrutura de grafcet é o que se segue.

Page 61: 15466797-sebentaautomacaob

Automação Industrial 61

1

posto A2

10

9

11

Avançar

espera 2

partida 2

13

12

14

Avançar

Recuar

t/X13/2 min

posto B

/espera 1

espera 2

15 Recuar

posto A1

3

2

4

Avançar

espera 1

partida 1

6

5

7

Avançar

Recuar

t/X6/2 min

posto B

1

espera 1

8 Recuar

É de realçar que a etapa 1 sinaliza a disponibilidade do recurso (etapa activa ⇒

troço livre; etapa inactiva ⇒ troço ocupado). Em caso de os carros chegarem simultaneamente aos pontos de espera, o primeiro a passar é o carro 1, devido a ter a transição associada à evolução do grafcet sempre validada (“1”).

Através do método da Interpretação do Grafcet é possível elaborar uma outra solução para o problema.

/(X13+X14+X15)

2

1

3

Avançar

espera 1

partida 1

5

6

Avançar

Recuar

t/X5/2 min

posto B

espera 1

7

4

Recuar

posto a1

Carro 1 Carro 2

11

12

Avançar

espera 2

partida 2

14

15

Avançar

Recuar

t/X14/2 min

posto B

/(X3+X4+X5+X6)

espera 2

16

13

Recuar

posto a2

10

A organização hierárquica de Grafcets permite a simplificação do grafcet através da

desacoplação das várias actividades associadas entre si.

Page 62: 15466797-sebentaautomacaob

Automação Industrial 62

X1

11

10

12

Avançar

espera 1

partida 1

14

15

Avançar

Recuar

t/X14/2 min

posto B

espera 1

16

13

Recuar

posto a1

21

22

Avançar

espera 2

partida 2

24

255

Avançar

Recuar

t/X24/2 min

posto B

X1 . /X12

espera 2

26

23

Recuar

posto a2

2

X15 . espera1+X25 . espera2

X13 + X23

201

3.7.3 Subtarefas

Uma subtarefa pode ser definida como uma sequência de operações que poderão ser repetidas várias vezes dentro de um grafcet. Sempre que se pretende executar o conjunto de operações constituintes da subtarefa, a evolução do grafcet salta para a subtarefa. No acesso a essa subtarefa poderá existir situações de conflito ou não, dependendo do número de processos que a invocam.

Acesso sem Conflito

No acesso sem conflito a uma subtarefa, nunca existe a possibilidade de a mesma subtarefa ser invocada simultaneamente por dois ou mais processos.

1

31

10

11

retorno 1

a

32

22

C 39

21

n

retorno 2

Chamada 1

Chamada 2

Sub-tarefaProcessoPrincipal

31

0

32

n

X11 + X22

39

X12 + X23

11

10

12

SP1

X39

a

21

22 SP1

C

X39

ProcessoPrincipal

Sub-tarefa

Estrutural Interpretado

Figura 6.14 - Acesso sem conflito a uma subtarefa

Page 63: 15466797-sebentaautomacaob

Automação Industrial 63

Acesso com Conflito

No caso de existir a possibilidade de uma subtarefa ser chamada por mais do que um processo simultaneamente, é necessário criar uma etapa auxiliar, cujo objectivo é gerir o acesso à subtarefa.

a

250

32

26

39

14

n

Sub-tarefaProcesso 1

13

31

2715

c

1 1

Processo 2

Figura 6.15 - Acesso com conflito a uma subtarefa

A etapa 0 regula o acesso de vários processos a uma mesma subtarefa. Se essa etapa estiver activa, então o acesso à subtarefa é autorizado; por outro lado, se estiver inactiva, o acesso à subtarefa é recusado.

Exemplo: Sistema de descarga comum

Consideremos o sistema que se representa de seguida.

Posto A2Posto A1

a1

Posto B

C1 C2

FP

RE

SPRD

DP

AP

Tapete deEvacuação

Os carros C1 e C2 transportam peças entre os postos a1 e a2 e o posto b, partilhando o mesmo sistema de descarga comum em b. O movimento dos carros é o seguinte:

Page 64: 15466797-sebentaautomacaob

Automação Industrial 64

com os dois carros nos postos de repouso (a1 e a2), após a ordem de partida (p), o carro C1 desloca-se até b onde é descarregado. Terminada a operação de descarga, C1 regressa ao posto a1. De seguida, o carro C2 desloca-se até ao posto b onde é por sua vez, descarregado após o quer regressa ao posto a2.

O sistema de descarga é constituído por uma pinça que pode subir (SP) e descer (DP) entre as posições superior (superior) e inferior (inferior); rodar à direita (RD) e rodar à esquerda (RE) entre as posições direita (direita) e esquerda (esquerda). O fecho da pinça (FP) é comandado por um êmbolo de efeito simples, sendo detectado pelo contacto pf. O ciclo de operações envolvido na descarga é o seguinte:

• inicialmente a pinça está na posição superior direita e aberta;

• após ser solicitada a descarga de um carro, a pinça desce, agarra o objecto, sobe, roda à esquerda e abre depositando o objecto no tapete de evacuação. De seguida, regressa à posição inicial.

É de reparar que a descarga é uma tarefa que é comum, pelo que pode ser considerada como uma subtarefa.

1

esquerda

10

11 FP

inferior

13

14

SP; FP

RD; FP

direita

superior

pf

/pf

15 RE

b2

3

4

b1

p

5

7

EsquerdaC1

EsquerdaC2

1

a1

a2

1

6

Direita C2

2

16

12

Direita C1DP

/FP

NOTA: A etapa 3 simboliza a descarga do carro C1 e a etapa 6 a descarga do carro

C2. Considere-se agora, que os carros C1 e C2 possuem sistemas de comando

autónomos, cada um com o seguinte ciclo de operações:

• após a ordem de partida o carro desloca-se até ao posto b, onde aguarda imobilizado até o sistema de descarga estar disponível;

Page 65: 15466797-sebentaautomacaob

Automação Industrial 65

• depois de terminada a descarga, o carro regressa ao seu posto de repouso.

O grafcet, considerando estas especificações adicionais é o que se representa de seguida.

10

11 FP

inferior

13

14

SP; FP

RE; FP

esquerda

superior

pf

/pf

15

b2a1

Direita C2

16

12

0

23

b1

P2

/X3

22 Esquerda C2

24

1

25

211

3

b1

p1

1

2 Direita C1

4

1

5

DP

EsquerdaC1

direita

RD

Neste caso, aplicou-se a etapa 0 para resolver o conflito de acesso à subtarefa.

3.8 ANÁLISE E VALIDAÇÃO DE GRAFCET

Os objectivos da análise e validação de Grafcet são:

• Determinar o comportamento da parte de comando quando ligada à parte operativa: Fase de análise das especificações.

• Estudar esse comportamento, tendo por objectivo detectar eventuais erros: Fase de Validação das especificações.

Pretende-se assegurar, ainda durante a fase de projecto, elevada probabilidade de o automatismo estar isento de erros de concepção.

Page 66: 15466797-sebentaautomacaob

Automação Industrial 66

3.8.1 Introdução à Análise de Grafcet

A análise de grafcet pode basear-se no gráfico das situações acessíveis. Este gráfico descreve as situações que podem ser alcançadas a partir da situação inicial.

A partir deste gráfico é possível determinar as propriedades do grafcet. A evolução da situação do grafcet é determinada pela sua estrutura e pela sua interpretação (conjunto de receptividades). A interpretação do grafcet pode ser decomposta nas interpretações interna e externa.

A interpretação interna está associada ao estado das etapas e a externa a condições exteriores.

3.8.2 Grafcet Autónomo

O grafcet autónomo é obtido, considerando no grafcet original, apenas a interpretação interna e atribuindo a todas as receptividades externas o valor φ (valor indiferente).

Grafcet Original Grafcet Autónomo

/X1

1

3

φ . /X3

φ

2

φ

/X1

1

3

/c . /X3

b . c

2

a

Figura 6.16 - Grafcet Autónomo

O grafcet autónomo constitui o núcleo do grafcet e é independente do exterior do circuito de comando. As propriedades próprias do circuito de comando podem ser estudadas a partir do gráfico das situações acessíveis do grafcet autónomo.

3.8.3 Gráfico das situações acessíveis

O gráfico das situações acessíveis é obtido a partir da situação inicial explicitando para cada transição todas as combinações possíveis de disparo das transições. Às variáveis φ que substituem as receptividades externas são atribuídos os valores 0 ou 1. Consideremos o seguinte grafcet.

Page 67: 15466797-sebentaautomacaob

Automação Industrial 67

2 D

5

V

G

t3

3

1

4

t4

t1

t2

O gráfico de situações acessíveis e que representa a evolução da grafcet perante o

disparo das transições é o que se segue.

1

2, 5

4, 5

3, 2

3 ,4

t1

t2

t3t2

t2, t3

t3

t4

Alternativamente ao gráfico, é possível utilizar uma tabela que represente a

evolução do grafcet.

Situação Actual

Transições Sensibilizadas

Transições Disparadas

Situação Seguinte

1 t1 t1 2,3 2,3 t2, t3 t2 4, 3

t3 2, 5 t2, t3 4, 5

4, 3 t3 t3 4, 5 2, 5 t2 t2 4, 5 4, 5 t4 t4 1

3.8.4 Análise de Grafcet

Através do gráfico das situações acessíveis é possível detectar situações de bloqueio no grafcet elaborado para o automatismo.

Exemplo: Fabrico de Iogurtes

O leite e o fermento são preparados, em separado, nos aparelhos A1 e A2, antes de serem misturados em A4. Em simultâneo são produzidos dois boiões em A3. De

Page 68: 15466797-sebentaautomacaob

Automação Industrial 68

seguida, os boiões são enchidos em paralelo nos aparelhos A5 e A6, e colocados em estufa.

O grafcet que soluciona este problema encontra-se representado na figura que se segue.

85

6

boiões prontos

Produz boiões

7

9

A4 pronto

arranque

mistura pronta

11

Mistura

10

1

A3 prontofermento pronto

Preparar fermento

2

3

4

leite pronto

Preparar leite

A1 pronto A2 pronto

12

14

15

boião cheio

A5 pronto

13

16

17

boião cheio

A6 pronto

18

iogurte pronto

estufa pronta

t16

t15

t6

t8

t10

t12

t14

t11

t9

t7

t1

t2

t4

t5

t3

Enche boiões

Estufa

Enche boiões

A análise da evolução do grafcet permite detectar o erro no grafcet.

11,12,13 15, 17

15, 16

14,16

14, 17t11

t14

t14

t12, t14

t10

t10, t11

t12

12, 14

12, 15

11, 17

11, 16

118

evoluçãobloqueada

evoluçãobloqueada

t12 t14

t16t15

t12

Page 69: 15466797-sebentaautomacaob

Automação Industrial 69

O erro consiste no facto da etapa 13 validar as transições t10 e t11. Estas transições

ocorrendo em momentos diferentes provocam o bloqueio do grafcet. A solução correcta consiste em validar t10 e t11 por duas etapas distintas (13 e 19).

boiões prontos

Produz boiões9

A4 pronto

mistura pronta

11

Mistura 10

A3 pronto

12

14

15

boião cheio

A5 pronto

16

17

boião cheio

A6 pronto

t6

t8

t10

t12

t14

t11

t9

t7

1319

Considere-se agora que a mistura de leite e fermento pode resultar imprópria para

consumo. Nesta situação a mistura é rejeitada e o processo re-inicializado.

Page 70: 15466797-sebentaautomacaob

Automação Industrial 70

85

6

boiões prontos

Produz boiões7

9

A4 pronto

arranque

mistura pronta.boa

11

Mistura

10

1

A3 pronto

fermento pronto

Preparar pronto

2

3

4

leite pronto

Preparar leite

A1 pronto A2 pronto

12

14

15

boião cheio

A5 pronto

13

16

17

boião cheio

A6 pronto

18

iogurte pronto

estufa pronta

t16

t15

t6

t8

t10

t12

t14

t11

t9

t7

t1

t2

t4

t5

t3

19

20t18

t17

/boa

misturarejeitada

A partir da análise da evolução do gráfico, verifica-se que o grafcet contém um

erro.

4, 7, 13, 19 2, 5, 10, 13, 19

2, 5, 8, 13, 19

20, 13, 19

t4

t9

t17

t69, 13, 19

1, 13, 19

2, 5, 13, 19Reactivação dasetapas 13 e 19

t7

t18

t1

t2

O erro consiste em as etapas 13 e 19 serem reactivadas após a rejeição da mistura.

Assim, são produzidos novos boiões antes dos anteriores terem sido consumidos. A solução correcta consiste em reinicializar apenas o processo de fabrico do leite e

do fermento (etapas 2 e 5).

Page 71: 15466797-sebentaautomacaob

Automação Industrial 71

85

6

7

9

A4 pronto

arranque

mistura pronta

Mistura

1

fermento pronto

Preparar pronto

2

3

4

leite pronto

Preparar leite

A1 pronto A2 pronto

t6

t8

t1

t2

t4

t5

t3

20

t18

t17

/boa

misturarejeitada

Page 72: 15466797-sebentaautomacaob

Automação Industrial 72

4 SENSORES

O controlo de processos industriais recorre cada vez mais à utilização de PC e PLCs. Os PLCs são muito mais rápidos e precisos de que um operador na execução de tarefas monótonas e repetitivas, razão pela qual se justifica a sua utilização. No entanto, O PLC não pode ver, ouvir, sentir e cheirar o que se passa durante o processo produtivo, pelo qual não se apercebe do estado em que se encontram as grandezas envolvidas no controlo do processo. Os sensores são utilizados para dar ao PLC as capacidades de sentir o que se passa no processo que está a controlar.

Assim, os sensores tem por função a aquisição do estado do mundo real, pelo que se pode definir o sensor como um dispositivo que converte grandezas físicas que se pretendem medir em grandezas eléctricas que poderão ser processadas e transmitidas [Hauptmann, 91]. As grandezas físicas capazes de serem adquiridos por sensores ultrapassam as centenas, existindo deste modo, uma vasta gama de diferentes tipos de sensores no mercado.

SensorCondicionamento

do sinal

AutómatoProgramável

Grandezafísica

Figura 8.1 - Cadeia de aquisição de uma grandeza

A aquisição de sinais pode ser decomposta em dois grandes blocos funcionais: o sensor e o

condicionamento de sinal. O sensor é o elemento fundamental, pois converte a grandeza física num grandeza eléctrica. No entanto, a saída do sensor necessita de algum tratamento antes de ser processada. Este tratamento do sinal é realizado pelo bloco condicionador, cujas funções se destacam, a amplificação, filtragem, linearização, conversão analógico-digital, etc.

A ligação dos sensores pode ser realizada de duas formas distintas: − a dois fios, utilizando o mesmo fio para a alimentação e para o sinal; − a três fios, utilizando um fio para a alimentação, outro para o sinal e o restante

para a massa.

Sensor PLCComum

Alim/Sinal

Sensor PLCComum

Alimentação

Sinal

Figura 4.2 - Ligação de um sensor Os sensores podem ser classificados de acordo com o tipo de sinal que fornecem à

saída, ou seja sensores digitais ou analógicos. Os sensores digitais são os de utilização mais fácil, pois apenas apresenta dois estados. Encontram neste grupo os sensores que detectam a proximidade de objectos, a contagem de peças, a intrusão de pessoas, o controlo do nível de líquidos, etc.

Page 73: 15466797-sebentaautomacaob

Automação Industrial 73

Os sensores analógicos fornecem na saída um sinal analógico, proporcional à grandeza física que estão a medir. São exemplos deste tipo de sensores, os sensores de temperatura e de luminosidade,

Neste estudo apenas se vão referir os diferentes sensores digitais, vulgarmente

utilizados em aplicações industriais, como sejam sensores para a medir a proximidade, existência de objectos, etc. De fora deste estudo ficam um vasto conjunto de diferentes tipos de sensores, tais como, temperatura, pressão, luminosidade, posição, velocidade, etc.

4.1 SENSORES CAPACITIVOS

O elemento sensor é constituído por um condutor cilíndrico e por uma bainha exterior metálica. A capacidade assim formada é alterada pela presença de um objecto.

~

R

RCe

C1

es

Cp(x)

C(x)

B

A

C1

C(x)

Cp(x)

Figura 4.3 - Modelo de um sensor capacitivo A detecção da presença do objecto é baseada na medida da capacidade, por

exemplo através de uma ponte. Os sensores capacitivos são sensíveis virtualmente a qualquer material, como por exemplo madeira, vidro, água, etc. As aplicações típicas deste tipo de sensores são a detecção de objectos, controlo de nível de líquidos, posicionamento de objectos, detecção de fluxo, etc.

Detecção/Contagem deObjectos

Controlo de nível Detecção de fluxo

Máximo

Minimo

Figura 4.4 - Aplicações de sensores capacitivos

Page 74: 15466797-sebentaautomacaob

Automação Industrial 74

4.2 SENSORES INDUTIVOS

Os sensores indutivos assemelham-se aos sensores capacitivos quanto ao tipo de aplicações, diferindo no facto de estes apenas detectarem objectos metálicos, enquanto os capacitivos detectam qualquer tipo de objecto.

Existem dois tipos de sensores indutivos, diferenciados quanto ao seu princípio de funcionamento: relutância variável e correntes de Foulcault.

4.2.1 Relutância Variável

Trata-se de um transformador cujo circuito magnético inclui o objecto a detectar que deve apresentar propriedades ferromagnéticas. O intervalo entre o detector e o objecto comporta-se como um entreferro variável.

SecundárioPrimário

Blindagemmagnética

Superficieferromagnética

Figura 4.5 - Modelo de um sensor indutivo A medida do fluxo no enrolamento secundário, que varia com o entreferro, permite

detectar a presença do objecto.

4.2.2 Correntes de Foucault

Uma bobina no interior do sensor é percorrida por uma corrente de frequência elevada que produz um campo magnético na sua proximidade. Um objecto metálico nesta zona será sede de correntes de Foucault que se opõem ao campo criado pela bobina e alteram o valor da sua auto-inductância.

A bobina está inserida num circuito oscilante LC, pelo que a presença do objecto faz cessar as oscilações.

Como já foi referido, o sensor indutivo apenas é sensível a objectos metálicos, dependendo a sua sensibilidade das formas e propriedades físicas do objecto.

Page 75: 15466797-sebentaautomacaob

Automação Industrial 75

4.3 SENSORES FINS DE CURSO

Os fins de cursos são os sensores mais vulgares nos processos produtivos, devido à sua facilidade de utilização, associada ao seu baixo custo. Os fins de curso são interruptores electromecânicos accionados pelo objecto a detectar.

Existem vários tipos de fins de curso: horizontais, verticais, de roldana, de botão, etc. Devido ao seu princípio de funcionamento, este tipo de interruptor está sujeito ao desgaste do contacto móvel.

Das suas aplicações típicas destacam-se a contagem de peças, a detecção de passagem de objectos, detecção de intrusão, sistemas de segurança, etc.

4.4 SENSORES FOTOELÉCTRICOS

Os sensores fotoeléctricos são constituídos por um elemento emissor de luz, vulgarmente um fotodíodo, e por um elemento sensível à luz incidente, como seja uma fotoresistência.

Incidência de luz

LSuperficie A

V

Luz (lumens)

Res

istê

ncia

( Ω

)

Figura 4.7 - Dependência da Resistência com a Luz

A incidência de luz está associada à libertação de cargas eléctricas e ao

correspondente aumento de condutividade. Este fenómeno provoca a variação da resistência do elemento em função da luz incidida.

As células fotoeléctricas podem ser apresentadas em diferentes tipos de detecção: Barreira, reflexão e reflexão no objecto.

4.4.1 Barreira

Neste tipo de configuração, o elemento emissor emite uma onda luminosa com uma frequência tal que é invisível ao olho humano e que não seja afectada por outras fontes de iluminação existentes na sua proximidade.

Em

isso

r

Rec

epto

r

Figura 4.8 - Células fotoeléctricas do tipo barreira

Page 76: 15466797-sebentaautomacaob

Automação Industrial 76

A recepção do feixe de luz é efectuada por outro elemento, posicionado na mesma direcção do emissor. A interrupção deste feixe de luz, por parte de um objecto, permite a sua detecção.

4.4.2 Reflexão

Neste tipo de configuração, o emissor e o receptor encontram-se concentrados num só dispositivo, sendo necessário a utilização de um painel reflector que permita a reflexão da onda incidente da luz.

E

mis

sor

Rec

epto

r

Figura 4.9 - Células fotoeléctricas do tipo reflexão

A interrupção do feixe de luz por um objecto, desvia o feixe do receptor, que ao

não receber o feixe de luz detecta a existência de um objecto.

4.4.3 Reflexão no objecto

Neste tipo de detecção, o objecto que interrompe o feixe de luz, é detectado sempre que o receptor receba uma incidência de luz.

Em

isso

rR

ecep

tor

Figura 4.10 - Células fotoeléctricas do tipo reflexão no objecto

Existem variadas aplicações para as células fotoeléctricas, das quais se destacam,

sistemas de segurança, contagem de peças, detecção de objectos, detecção de nível de liquido, etc.

4.5 SENSORES DE ULTRASONS

O sensor de ultrasons, baseia o seu funcionamento na emissão e recepção de ondas de frequência acima de 20 KHz. Este tipo de sensor apresenta duas aplicações distintas: determinação de distancias a que se encontram objectos e a detecção de objectos.

Page 77: 15466797-sebentaautomacaob

Automação Industrial 77

4.5.1 Distância de um Objecto

O sensor emite uma onda, que será reflectida pelo objecto a ser medido, e que será recebida pelo mesmo ou por outro sensor. O tempo decorrido entre a emissão e a recepção da onda, determina a distância a que se encontra o objecto.

Objecto

OndareflectidaOnda

transmitida

Figura 4.11 - Sensor de ultrasons

4.5.2 Detecção de Objectos

Os sensores de ultrasons podem igualmente ser utilizados na detecção de objectos. Neste caso, os sensores são previamente configurados para detectar a uma determinada distância a existência de objectos.

A aplicação de detectores capacitivos na monitorização do nível de produto em silos pode não ser possível se puder verificar a adesão de materiais, por exemplo poeiras à superfície sensora do detector.

Sensor deUltrasons

Figura 4.11 - Exemplo de uma aplicação de sensores de ultrasons

Nestes casos, a utilização de um sensor de ultrasons deve ser preferível, pois devido

ao seu principio de funcionamento, a superfície sensora está sempre em vibração, o que impede a adesão de quaisquer materiais.

4.6 SENSORES ESPECIAIS

4.6.1 Leitores de Códigos de Barras

Dispositivos que permitem a leitura de códigos de barras, e que permitem efectuar um controlo de processos e identificação de produtos.

Page 78: 15466797-sebentaautomacaob

Automação Industrial 78

4.6.2 Dispositivos de Escrita/Leitura de Etiquetas

Permitem ler a informação armazenada em etiquetas que acompanham os produtos ao longo do processo produtivo. Possuem de igual modo a funcionalidade de escrita de informação nas etiquetas ou pastilhas. O tipo de informação a armazenar é previamente configurada, diferindo de aplicação para aplicação. Por exemplo, uma etiqueta que armazene a informação relativa a uma ferramenta, deverá ter a seguinte estrutura de dados:

• identificação as integer • código as string[4] • dimensão X as float • dimensão Z as float • desgaste na dimensão X as float • desgaste na dimensão Z as float • tempo de vida as integer

Page 79: 15466797-sebentaautomacaob

Automação Industrial 79

5 MONITORIZAÇÃO E CONTROLO DE PROCESSOS

A monitorização e o controlo de processos produtivos são tarefas fundamentais na automação industrial. No mercado, existem variados produtos, denominados por SCADA (Supervison,control and Data Acquisition), que visam a implementação dessas tarefas. Desses produtos destacam-se os seguintes:

− InTouch da Wonderware; − Fix da Intelluction; − Lookout e BridgeView, da National Instruments; − Factory Link da U.S. Data; − PlantWorks da IBM; − OnSpec da Heuristics.

Estas ferramentas possuem funcionalidades para o desenvolvimento de aplicações

de monitorização e controlo remoto de processos complexos. No entanto, para aplicações simples, a sua aplicabilidade é questionável, principalmente devido ao seu custo e ao tempo necessário à aprendizagem do produto que normalmente é longo. Para este tipo de aplicações é possível a utilização de outras ferramentas, de mais fácil aprendizagem, como por exemplo o Visual Basic.

Neste capítulo, pretende-se descrever as várias etapas do desenvolvimento de aplicações de monitorização e controlo, utilizando o Visual Basic. De modo a acompanhar esta exposição, vamos considerar o seguinte problema.

Pretende-se monitorizar o estado de um semáforo que apresenta três luzes: vermelho, amarelo e verde. Consideremos também que o semáforo se encontra no vermelho por 10 segundos, seguido pelo amarelo durante 4 segundos e pelo verde durante 10 segundos.

5.1 DESENVOLVIMENTO DO PROGRAMA PARA O AUTÓMATO

Inicialmente é necessário desenvolver o programa que irá realizar o controlo do semáforo.

Na tabela que se segue, encontram-se representados as várias entradas, saídas e temporizadores que são utilizadas no programa.

Símbolo Endereço Descrição Parâmetros vermelho 10.0 Luz vermelha - verde 10.1 Luz verde - amarelo 10.2 Luz amarela - arranque 0.0 Arranque do sistema - paragem 0.1 Paragem do sistema - TIM 000 TIM 000 Temporização da luz vermelha #100 TIM 001 TIM 001 Temporização da luz amarela #40 TIM 002 TIM 002 Temporização da luz verde #100

O programa, representado em diagrama de ladder, é o seguinte:

Page 80: 15466797-sebentaautomacaob

Automação Industrial 80

Figura 5.1 - Diagrama de ladder

5.2 DESENVOLVIMENTO DA APLICAÇÃO DE MONITORIZAÇÃO

No desenvolvimento de aplicações de monitorização e de controlo, o primeiro ponto a realçar é a comunicação entre o autómato e o PC que irá realizar a referida monitorização e controlo.

A comunicação entre o autómato e o PC é realizada através da troca de comandos e respostas específicos, executadas entre os dois intervenientes. O bloco de dados transferidos numa transmissão simples é chamado frame, que pode possuir no máximo 131 caracteres. Para iniciar a comunicação, é necessário enviar um comando para o autómato, no seu formato específico. Terminada a transferência da frame, é activada uma flag e o autómato envia, também em formato específico, a frame de resposta, estabelecendo, deste modo, a comunicação entre o autómato e o PC.

As frames de comando e resposta utilizadas na comunicação entre o autómato e PC obedecem a formatos específicos. A frame de comando apresenta a seguinte estrutura.

@ x10^0x10^1 *

TerminadorFCSDadosCódigo doCabeçalho

Nº de NÓ

Figura 5.2 - Frame de comando

Page 81: 15466797-sebentaautomacaob

Automação Industrial 81

Esta estrutura é composta por campos de informação, em que: − @: caracter de inicio de frame; − Nº do Nó: identifica a comunicação entre o PC e o autómato, sendo

especificado no setup do PLC (DM 6653 no CPM1); − Código do Cabeçalho: estes dois caracteres indicam a função do comando e a

área de memória onde se pretende executar essa função; − Dados: indica os parâmetros do comando, tais como o endereço da área de

memória em causa e o número de palavras envolvidas; − FCS (Frame Check Sequence): estes dois caracteres controlam os erros de

transmissão; − Terminador: o caracter “*” e o CHR$(13), carriage return, indicam o fim do

comando; A frame de resposta apresenta o formato representado na figura que se segue.

@ x10^0x10^1 *

TerminadorFCSDadosCódigo doCabeçalho

Nº de NÓ

x16^0x16^1

Código de Fim

Figura 5.3 - Frame de resposta Esta frame apresenta os mesmos parâmetros da frame de comando, à excepção do

Código de Fim, que indica se ocorreu algum erro de transmissão, através de um código associado a cada tipo de erro [CPM1, 96].

Na transmissão de informação entre duas entidades, um dos erros que podem ocorrer é a alteração do estado de algum bit. Uma técnica para controlar este tipo de erro, é usar um procedimento baseado na operação lógica XOR (OR exclusivo).

Para calcular o FCS, cada caracter é convertido no seu código ASCII. É efectuada a operação lógica XOR entre os dois primeiros caracteres, sendo este resultado usado para efectuar o XOR com o caracter seguinte, e assim sucessivamente até ao fim da área de dados. Quando a frame de comando é recebida, o FCS é calculado de forma análoga e comparado com o código recebido. Caso o código recebido seja diferente do código FCS calculado, significa que algum bit alterou o seu valor, ou seja, ocorreu um erro na transmissão da frame.

Para calcular o FCS, é utilizada a seguinte subrotina:

Private Sub Calc_fcs(msg As String) fcs = 0 For i = 1 To Len(msg) fcs = fcs Xor Asc(Mid$(msg, i, 1)) Next i fcs = Hex$(fcs) End Sub

De seguida apresenta-se a subrotina que configura o protocolo de comunicação com o PLC.

Page 82: 15466797-sebentaautomacaob

Automação Industrial 82

Private Sub Form_Load() ' 9600 baud rate, no parity, 7 data, and 2 stop bit MSComm1.Settings = "9600,e,7,2" MSComm1.CommPort = 2 MSComm1.PortOpen = True End Sub

A rotina que se apresenta de seguida, lê os dados do autómato continuamente e verifica

se ocorreu algum erro de comunicação. Os dados lidos, referentes ao estado do semáforo são apresentados na janela da aplicação desenvolvida.

Private Sub monitorizar_Click() Do msg = "@00RR00100001" MSComm1_OnComm If (Mid$(mensg_recebida, 6, 2) = "00") Then texto.Text = "Exito" Else status.Text = "Erro" End If aux = Mid$(mensg_recebida, 10, 2) If (aux = “01”) Then vermelho.visible = True amarelo.visible = False verde.visible = False End If If (aux = “04”) Then vermelho.visible = False amarelo.visible = True verde.visible = False End If If (aux = “02”) Then vermelho.visible = False amarelo.visible = False verde.visible = True End If Loop While (True) End Sub

A subrotina MSComm1_OnComm() realiza a sequência de operações necessárias ao envia

de todos os comandos para o autómato, ou seja, efectua a comunicação propriamente dita.

Private Sub MSComm1_OnComm() Dim fim As String fim = "*" & Chr$(13) mensag_recebida = "" Resultado.Text = msg Calc_fcs (msg) MSComm1.Output = msg & fcs & "*" & Chr$(13) ' Espera que chegue informação à porta série. Do Dummy = DoEvents() Loop Until MSComm1.InBufferCount >= 11

Page 83: 15466797-sebentaautomacaob

Automação Industrial 83

' Lê o comando de resposta Do mensag_recebida = mensag_recebida + MSComm1.Input Loop Until Right(mensag_recebida, 2) = fim Resultado.Text = mensag_recebida End Sub

Em paralelo com a funcionalidade de monitorização pretende-se também ter na aplicação

a funcionalidade de controlo remoto sobre o processo, pelo que vamos efectuar o arranque e a paragem através do PC.

Private Sub arranque_Click() 'Activar variavel Arranque msg = "@00WR00000001” MSComm1_OnComm End Sub Private Sub paragem_Click() 'Activar variavel Paragem msg = "@00WR00000002” MSComm1_OnComm End Sub

Figura 5.4 - Janela final da Aplicação de Monitorização e Controlo

Page 84: 15466797-sebentaautomacaob

Automação Industrial 84

6 REFERÊNCIAS BIBLIOGRÁFICAS

[Asfahl, 92] C. Ray Asfahl, Robots and Manufacturing Automation, Wiley, 1992 [Fu, 87] K. Fu, R.C. Gonzalez, C.S.G. Lee, Robotics: Control, Sensing, Vision and

Intelligence, McGraw-Hill, 1987 [Almeida, 93] Adriano Almeida, Aníbal Oliveira e Eurico Magos, Autómatos

Programáveis, Tecnologias e Esquemas de Electricidade, Edições ASA, 1993

[Clements, 96] K. Clements-Jewery, W. Jeffcoat, The PLC Workbook, Prentice Hall,

1996 [CPM1, 96] CPM1 Programmable Controller - Programming Manual, Omron, 1996 [Chouzal, 91] Maria de Fátima Chouzal, Controlo Digital de Motores Passo a Passo,

Dissertação de Mestrado, FEUP, 1991 [Hauptmann, 93] Peter Hauptmann, Sensors, Principles & Applications, Prentice Hall,

1993 [Novais, 94] José Novais, Programação de Autómatos, Método Grafcet, Fundação

Calouste Gulbenkian, 2ª Edição, 1994 [Olsson, 92] Gustaf Olsson, G. Piani, Computer Systems for Automation and Control,

Prentice Hall, 1992 [Simpson, 94] Colin D. Simpson, Programmable Logic Controllers, Regents/Prentice

Hall, 1994 [Stenerson, 93] Jon Stenerson, Fundamentals of Programmable Logic Controllers,

Sensors, & Communications, Regents/Prentice Hall, 1993 [Vexta] Technical information on stepping motors [Warnock, 88] Ian G. Warnock, Programmable Controllers, Operation and Application,

Prentice Hall, 1988

Page 85: 15466797-sebentaautomacaob

Automação Industrial 85

ANEXO - REPRESENTAÇÃO DA INFORMAÇÃO

A representação da informação consiste sempre numa materialização física capaz de temporária ou permanente registar a informação pretendida.

Codificação

Descodificação

ProcessamentoArmazenamento

RepresentaçãoBinária

RepresentaçãoBinária

RepresentaçãoExterna

RepresentaçãoExterna

Figura 2.1 - Representação da Informação

Enquanto o homem se pode aperceber da informação através de imagens, letras, gestos, sinais luminosos, o computador processa e armazena a informação apenas em dois estados. Os valores convencionais para os dois estados são:

1 - ON - TRUE ⇒ deixa passar a corrente 0 - OFF - FALSE ⇒ não deixa passar a corrente À informação contida numa variável física de dois estados dá-se o nome de BIT,

abreviatura de BInary digiT, e que é para o computador a unidade elementar de informação. Ao agrupamento de oito bits dá-se o nome de BYTE. Cada Byte tem possibilidade de

armazenar 256 informações diferentes (2n).

SISTEMAS DE NUMERAÇÃO

A representação de informação pode ser vista como um agrupamento de dígitos (no caso do sistema binário designam-se por bits), a que se dá o nome de palavra (no caso do sistema binário dá-se o nome de Byte).

. . .

Posição 0

Posição 1

Figura 2.2 - Palavra de Informação

O sistema posicional é um sistema de numeração em que cada dígito tem associados dois valores:

• o seu valor intrínseco, ou seja, o valor do digito;

Page 86: 15466797-sebentaautomacaob

Automação Industrial 86

• o valor da posição que ocupa no conjunto (peso), que representa o significado do digito na palavra ou grupo de dígitos. Para o cálculo deste peso consideram-se os seguintes parâmetros:

− Base - número máximo de símbolos que podem ser utilizados para codificar a informação. Um sistema de base n admite n símbolos diferentes: 0, 1, 2, ..., n -1. Por exemplo, o sistema decimal admite 10 dígitos diferentes (de 0 a 9).

− Peso - representação da posição relativa do símbolo no conjunto das posições, variando a partir da primeira posição da direita (a menos significativa) aumentando de 1 unidade por cada posição sucessivamente mais à esquerda. Exemplo: Para o número 324567 na base n, o peso do símbolo 4

será n3.

Sistema Decimal

A codificação de números no sistema decimal utiliza combinações de 10 dígitos, compreendidos entre 0 e 9. Uma vez que utiliza 10 dígitos, o peso de cada dígito dentro da palavra é dado em função de potências de 10 (10i). A decomposição de um número decimal é possível, multiplicando o valor intrínseco de cada posição pelo seu peso e somando os produtos obtidos.

5 * 102

2 * 100

1 * 101

PesoValor Intrinseco

210

500

512,3

2 5 1 3

3 * 10-10,3

.

Figura 2.3 - Decomposição no Sistema Decimal

Sistema Binário

O sistema binário utiliza apenas dois dígitos para codificar a informação: 0 e 1. Isto significa que apenas dois níveis de tensão são requeridos para representar os diferentes dígitos do sistema binário, em que normalmente os 5V representam o digito 0 e os 0V o digito binário 0. Este sistema é o que corresponde ao código interno do computador, vulgarmente designado por linguagem máquina.

A representação de qualquer número no sistema binário processa-se por uma sequência de 0 e 1, em que o peso de cada dígito é dado em função de potências de 2 (2i), uma vez que o sistema binário admite dois dígitos.

Page 87: 15466797-sebentaautomacaob

Automação Industrial 87

1 * 23

1 * 21

0 * 22

PesoValor Intriseco

208

11

1 1 0 1

1 * 20 1

Figura 2.4 - Decomposição no Sistema Binário

Sistema Hexadecimal

O sistema hexadecimal admite 16 dígitos, dos quais dez são algarismos de 0 a 9, e os restantes seis são letras de A a F. Os dígitos de A a F correspondem aos números decimais de 10 a 15, respectivamente. Numa palavra do sistema hexadecimal, o peso de cada dígito é função de potências de 16. Este sistema de numeração é bastante utilizado, pois a sua utilização na codificação de dígitos binários (agrupados em grupos de 4) torna simples a interpretação e leitura da informação.

1 * 163

15 * 161

10 * 162

PesoValor Intrinseco

24025604096

6896

F 1 A 0

0 * 160 0

Figura 2.5 - Decomposição no Sistema Hexadecimal

Na tabela que se segue está ilustrada a codificação de informação utilizando os sistemas de numeração decimal, hexadecimal e binária.

Decimal Hexadecimal Binária0 0 00001 1 00012 2 00103 3 0011

. . .8 8 10009 9 100110 A 101011 B 1011

. . .14 E 111015 F 1111

Page 88: 15466797-sebentaautomacaob

Automação Industrial 88

CONVERSÃO ENTRE BASES

Devido à existência e utilização de mais do que um sistema de numeração, é necessário a existência de regras ou métodos que tornem possível a conversão de números duma base para outra qualquer base.

Conversão de Decimal para Outra Base

Parte Inteira

Para se efectuar a passagem do sistema decimal para um sistema diferente, utiliza-se o método das divisões sucessivas. Este método consiste em dividir, sucessivamente, o número decimal pela base de conversão (2 no sistema binário e 16 no sistema hexadecimal) aproveitando-se os restos e o último quociente.

2136 1 2

30 211

Figura 2.6 - Conversão da parte inteira dum numero decimal para binário

O número 13 no sistema decimal, pode ser convertido para o sistema binário, de acordo com a figura 2.6, e ser escrito da seguinte forma:

13 (10) = 1101 (2)

Parte Fraccionária

Para representar a parte fraccionária de um número decimal, numa qualquer base deve-se multiplicar a base pela parte fraccionária e guardar a parte inteira do resultado. Tal processo deve ser repetido até que a parte fraccionária seja nula.

Por exemplo, se tivermos o número 0,5875 em decimal e quisermos converte-lo para o sistema binário, o processo seria o que mostra a figura 2.7. O resultado final será 0,1011 (2)

2 * 0,6875 = 1,375

2 * 0,375 = 0,750

2 * 0,750 = 1,500

2 * 0,500 = 1,000

Lê-se neste sentido

Figura A.7 - Conversão da parte fraccionária de um numero decimal para binário

Page 89: 15466797-sebentaautomacaob

Automação Industrial 89

Conversão de Outra Base para Decimal

Se quisermos passar de qualquer base para a decimal, bastará utilizar o método das multiplicações sucessivas, ou seja, multiplicar o valor intrínseco de cada posição pelo seu peso e somar todos os produtos obtidos.

Dado um qualquer número, numa qualquer base,

an an-1 an-2 ... a1 a0 . a-1 a-2 ...

É possível determinar o valor decimal desse numero, aplicando a seguinte expressão,

an * bn + an-1 * bn-1 + an-2 * bn-2 +... + a1 * b1 + a0 * b0 + a-1 * b-1 + a-2 * b-2 +...

sendo b a base a que o número pertence.

Exercícios

1. 1101 (2) = ??? (10)

Neste caso b = 2 porque o número está no sistema binário. Então, 1101(2) = 1 * 23 + 1 * 22 + 0 * 21 +1 * 20 = 8 + 4 + 0 + 1 = 13 (10)

2. 1FF (16) = ??? (10)

Neste caso, como se trata do sistema hexadecimal, b = 16. Então, 1FF (16) = 1 * 162 + 15 * 161 + 15 * 160 = 256 + 240 + 15 = 511 (10)

SISTEMAS DE CODIFICAÇÃO AVANÇADOS

Os sistemas de codificação descritos atrás são os mais vulgares na codificação de informação. No entanto, existem outros sistemas de codificação mais específicos, que não utilizam o sistema posicional, mas também de elevada importância na codificação da informação.

BCD (Binary Coded Decimal)

O BCD é uma codificação que apresenta uma pequena modificação ao sistema decimal onde os dígitos decimais são codificados independentemente como números binários de 4 bits. Por exemplo, os dígitos 3 e 9 são codificados em BCD por:

3 → 0011

9 → 1001

Por sua vez, o numero 39 é codificado em BCD por:

39→ 0011 1001

Page 90: 15466797-sebentaautomacaob

Automação Industrial 90

Na tabela que se segue estão ilustrados os códigos BCD de alguns números decimais.

Decimal BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 0001 0000 11 0001 0001

. . . . . .

Código GRAY

O código Gray é um tipo de codificação binária em que não são utilizadas as posições pesadas. O código tem a particularidade de a transição de um numero para o próximo requerer a mudança de apenas um digito.

Decimal Código Gray 0 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101

A grande desvantagem da codificação Gray é a confusão para a contagem normal. No

entanto, existem algumas regras para a construção do código Gray. Por exemplo, verifica-se na tabela anterior, que para posição do número existe uma sequência alternada e periódica de 1s e 0s. Assim, para a posição i, existe uma sequência de 2 (i+1) 1s seguidos de 2 (i+1) 0s, de forma alternada; a sequência inicia-se por 2i zeros.

A sua aplicação típica é em sistemas de codificação de posição (encoders).

Código ASCII

O código ASCII (American Standard Code for Information Interchange) é um código alfanumérico que inclui símbolos, letras e números. Cada um dos códigos é constituído por 7 bits.

Page 91: 15466797-sebentaautomacaob

Automação Industrial 91

ÁLGEBRA DE BOOLE

A manipulação de informação codificada no sistema binário, através de algumas regras e teoremas é conhecida pela álgebra de Boole. O sistema binário apresenta apenas dois dígitos 0 e 1, que correspondem a dois estados lógicos, que são o Falso (0) e o Verdadeiro (1).

Operadores

De forma a ser possível a manipulação destes valores é necessário a existência de operadores. Os operadores lógicos mais vulgares são:

• AND (.) - que corresponde ao E lógico de dois valores, ou seja, o resultado é

Verdadeiro quando a condição X e a condição Y forem Verdadeiras.

X Y X AND Y1 1 1 1 0 0 0 1 0 0 0 0

• OR (+) - que corresponde ao OU lógico de dois valores, ou seja, o resultado é

Verdadeiro quando a condição X ou a condição Y forem Verdadeiras.

X Y X OR Y 1 1 1 1 0 1 0 1 1 0 0 0

• NOT (-) - que corresponde à negação do valor inicial, ou seja, o resultado é

Verdadeiro se a condição de entrada for Falsa.

X NOT X 1 0 0 1

• XOR - que corresponde ao OU exclusivo dos dois valores de entrada, ou seja, o

resultado é Verdadeiro se a condição X ou a condição Y forem Verdadeiras, mas não simultaneamente.

X Y X XOR Y1 1 0 1 0 1 0 1 1 0 0 0

Page 92: 15466797-sebentaautomacaob

Automação Industrial 92

Teoremas

A partir da definição de cada um dos operadores, é possível estabelecer alguns teoremas para a manipulação dos operandos lógicos. Assim, podemos escrever:

• Comutatividade

X+Y = Y+X

X.Y = Y.X

• Distributividade

X.(Y+Z) = X.Y+X.Z

• Associatividade

X+(Y+Z) = (X+Y)+Z = X+Y+Z

X (Y.Z) = (X.Y).Z = X.Y.Z A partir dos teoremas referidos e das características de cada operador, é possível retirar

algumas regras importantes na manipulação de expressões lógicas:

• X OR 0 = X, o OU de uma variável com Falso será o valor da variável.

• X OR 1 = 1, o OU de uma variável com Verdadeiro é sempre Verdadeiro.

• X OR /X = 1, o OU de uma variável com a sua negada é sempre Verdadeiro.

• X AND 0 = 0, o AND de uma variável com Falso é sempre Falso.

• X AND 1 = X, o AND de uma variável com Verdadeiro será o valor da variável.

• X AND X = X, o AND de uma variável com ela própria será o valor dessa variável.

• Y.X + /X.Y = Y

• X + XY = X

Exercício

Simplifique a seguinte expressão utilizando os teoremas da lógica. (X1+X3)(X1+/X3)(/X2+X3)

Leis de Morgan

As leis de Morgan são de importância fundamental na lógica binária, e resumem-se a duas leis:

1. /(X + Y) = /X . /Y Que significa que a negação do OU lógico das variáveis X e Y é equivalente ao E

lógico das variáveis X e Y negadas.

Page 93: 15466797-sebentaautomacaob

Automação Industrial 93

2. /(X.Y) = /X + /Y Que significa que a negação do E lógico das variáveis X e Y é equivalente ao OU

lógico das variáveis X e Y negadas. As leis de Morgan são vulgarmente utilizadas na simplificação de expressões lógicas.

Exercícios

1. /(/A + /B) 2. (A + /B).(/A + B)