You are on page 1of 98

Notas de Apoio à Disciplina de

Automação e Robótica
Engenharia Informática

Bragança, Setembro de 2004


Í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

Automação e Robótica 2
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 INTRODUÇÃO À ROBÓTICA INDUSTRIAL 72

4.1 Introdução 72

4.2 Estrutura e Configuração de Robôs 73


4.2.1 Robôs Cartesianos ou Rectangulares 74
4.2.2 Robôs Cilíndricos ou Esféricos 74
4.2.3 Robôs Articulados 75
4.2.4 Movimento do Robô 76
4.2.5 Accionamento dos Robôs 77

Automação e Robótica 3
4.2.6 Tipos de Controlo de Movimento 78

4.3 Sensores e Actuadores para Robôs 78


4.3.1 Sensores de Tacto 79
4.3.2 Sensores de proximidade 79
4.3.3 Sistemas de visão artificial 80
4.3.4 Garras Mecânicas 80
4.3.5 Garras Magnéticas 81
4.3.6 Garras de Sucção 81
4.3.7 Garras com outros princípios de funcionamento 81
4.3.8 Ferramentas para robôs 82

4.4 Segurança na Robótica 82


4.4.1 Medidas de Protecção passivas 83
4.4.2 Medidas de Protecção Activas 83

4.5 Operação e Programação de Robôs Industriais 84


4.5.1 Métodos de Programação de Robôs 84
4.5.2 Programação “on-line” 84
4.5.3 Programação “off-line” 85

4.6 Aplicações Industriais 85


4.6.1 Manuseamento de materiais 85
4.6.2 Pintura 86
4.6.3 Soldadura 87
4.6.4 Operações de Montagem 87

5 REFERÊNCIAS BIBLIOGRÁFICAS 89

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

Sistemas de Numeração 90
Sistema Decimal 91
Sistema Binário 91
Sistema Hexadecimal 92

Conversão entre Bases 93


Conversão de Decimal para Outra Base 93
Conversão de Outra Base para Decimal 94

Sistemas de Codificação Avançados 94


BCD (Binary Coded Decimal) 94
Código GRAY 95
Código ASCII 95

Álgebra de Boole 96
Operadores 96
Teoremas 97
Leis de Morgan 97

Automação e Robótica 4
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 ao 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

Automação e Robótica 5
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

Automação e Robótica 6
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

Automação e Robótica 7
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.

Fonte de
Alimentação

CPU
Entradas

Saídas
Mundo Mundo
Exterior Exterior
Memória

Unidade de
Programação

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:

Automação e Robótica 8
• 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 multiprocessamento, 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.

Automação e Robótica 9
Endereço 0 1 2 3 4

Informação 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 para armazenar temporariamente a informação que circula no PLC e os
dados que reflectem o mundo exterior e a execução do programa.

Automação e Robótica 10
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.
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,

Automação e Robótica 11
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.

Isolamento Óptico
Dispositivo de
Entrada

Saída para o CPU

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.
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.

Automação e Robótica 12
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
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

Automação e Robótica 13
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

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:

Automação e Robótica 14
• 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

• Controlo de máquinas CNC

Automação e Robótica 15
• Controlo de células de fabrico ou montagem
• Sistemas de transporte e manuseamento de materiais.

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

Automação e Robótica 16
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
Fase da resolução
do problema

Passo difícil
Solução em forma
de algoritmo

Fase da
Solução como
programa de
implementação
computador

Figura 5.1 - Resolução de um problema

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

Automação e Robótica 17
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
• desça da escada

Automação e Robótica 18
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.

Automação e Robótica 19
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.

Automação e Robótica 20
• 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 de Entrada IR 000 a IR 009 Estes bits podem ser alocados aos terminais
Área IR E/S externos. Os bits de trabalho podem
(Relés Área de Saída IR 010 a IR 019 ser usados livremente dentro do programa.
internos)
Área de Trabalho IR 200 a IR 231
Área SR SR 232 a SR 255 Estes bits servem funções específicas, tais
(Relés especiais) como flags e bits de controlo.
Área TR TR 0 a TR 7 (só se Estes bits são utilizados para guardar
(Relés temporários) trabalha com os 8 temporariamente o estado ON/OFF da
bits) secção do programa (mnemónicas).
Área HR HR 00 a HR 19 Estes bits guardam informação e mantém o
(Relés retenção) seu estado ON/OFF após a alimentação ser
desligada.
Área AR AR 00 a AR 15 Estes bits são semelhantes a SR mas
(Relés auxiliares) mantém o seu valor após a alimentação ser
desligada.

Automação e Robótica 21
Área LR LR 00 a LR 15 Utilizado para ligações 1:1 a outro PLC.
(Relés ligação)
Área Contadores e TC 000 a TC 127 Os mesmos endereços são utilizados para os
Temporizadores temporizadores e contadores.
Leitura/Escrita DM00 a DM 099 Podem ser usados livremente no programa.
DM 1022 a DM 1023
Área DM Log de erros DM 1000 a DM 1021 Utilizados para guardar o tempo e o código
de erro da ocorrência.
(Módulo Apenas leitura DM 6144 a DM 6599 Não podem ser escritos a partir do
de Dados) 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 normalmente
aberto fechado
...

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.

Automação e Robótica 22
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 ON
OFF 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 1.0 0.1 10.1

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


implementa a seguinte expressão lógica:

Automação e Robótica 23
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

1.0

0.1

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.

Automação e Robótica 24
0.0 0.1 10.0

END

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 0.1 10.0

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;

Automação e Robótica 25
• 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 0.1 10.0

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 0.2 10.0

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

Automação e Robótica 26
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 0.1 10.0

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.

Bloco 3

0.0 0.1 0.2 0.3 10.0

0.4 0.5

Bloco 1 Bloco 2

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

Automação e Robótica 27
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.
Bloco 1 Bloco 2

0.0 0.1 0.2 10.0

0.3 0.4 0.5

0.6 0.7 Bloco 4

Bloco 3

Bloco 5

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.

Automação e Robótica 28
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 0.3 HR0.1

0.2 10.0

0.4 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.

Condição Condição

SET
RESET
(saída)
(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.

Automação e Robótica 29
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.

Botão verde
SET 10.0

Botão vermelho
RSET 10

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.

1.0
DIFU 10.

1.1
DIFD 10.

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.

TR 0
0.0 0.1 10.0

0.2 10.1

Automação e Robótica 30
É 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

KEEP (1
0.4 HR 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
S bomba O
paragem
R

caudal S motor ON
R

Automação e Robótica 31
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 Paragem
SET Bomba ON

Bomba ON Caudal
SET Motor

Paragem
RSET Bomba ON

Paragem
RSET Motor

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

Arranque

KEEP (11
Paragem
Bomba ON

Bomba ON Caudal

KEEP (1
Paragem
Motor ON

Automação e Robótica 32
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.

Automação e Robótica 33
ent_abrir modo aberto inibição
SET abrir
flag_abrir modo

ent_fechar modo fechado inibição


SET fechar
fechado modo

ent_parar modo RSET abrir


RSET fecha

flag_parar modo

inibição
RSET abrir
RSET fechar

aberto abrir
RSET abrir

fechado fechar
RSET fechar

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.

Condição A TIM em que N é o numero do temporizador e VT


contém o valor do tempo que se pretende
N contar.
VT

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

Temporizador
TIM 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).

Automação e Robótica 34
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).

bot_ch2
piso2

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 piso1
SET motor_u

bot_ch1 piso2
SET
motor_down

piso2
RSET motor_u

piso1
RSET
motor_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
IR 10.02 - abre_porta

Automação e Robótica 35
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

SET
fecha_porta

bot_ch1 piso2
SET
motor_down

SET
fecha_porta

piso2 motor_up
RSET motor_

piso1 motor_down
RSET
motor_down
piso1
TIM
piso2 000
#50

TIM 000 porta_aberta


SET abre_po

porta_aberta
RSET
abre_porta

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
TIM
16
#20
10.2

TIM 16 10.2

Para o caso da figura anterior, a saída 10.2 estará ON apenas durante o tempo
especificado, neste caso 2 segundos.

Automação e Robótica 36
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
TIM
10
#50

0.0 TIM 10

10.0

10.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.

0.0

10.0

5 seg.

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.

Automação e Robótica 37
TIM 000

TIM 001

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


onda quadrada.

TIM 001
TIM
000
#100
TIM 000
TIM
001
#100
TIM 000 carro

lampada

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).

0.0
TIM H
000
#150

TIM 000

10.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.

Automação e Robótica 38
CP
CNT em que N é o numero do contador e VC é o valor
N
inicial do contador.
R
VC

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.

0.0 255.02
CP
CNT
0.1 001
R #700

CNT 001

10.0

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.

EI
CNTR
ED
N
R VC

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

Automação e Robótica 39
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.

Contentor

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.

detector
CP
CNT
CNT 120 120
R #100

CNT 120
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.

Automação e Robótica 40
B

Actuador
pneumático

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 em que S é a palavra origem, que pode


S
pertencer às áreas IR, SR, AR, DM, HR,
D 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.

0.0
MOV
001
HR 05

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.

Automação e Robótica 41
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.

0.0
MVN
#F8C5
DM 001

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.

0.0 0.0
MOV @MOV
HR 10 HR 10
DM 0000 DM 000

Diagrama A Diagrama B

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

Automação e Robótica 42
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 0000 4C59


DM 0001 1111
*DM 0001
LR 00 DM 0002 F35A indica DM 1111
...
DM 1111 5555
o valor 5555 é
DM 1112 2506 copiado para LR00
DM 1113 D541

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.

Automação e Robótica 43
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.

Bit 15 Bit 0

Palavra Valores DM 6628

0 : entrada normal
0006
DM 6628 1: entrada interrupção 0005
2: entrada de resposta rápida 0004
0003

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 Programa
Principal Principal
Programa de Interrupção

Entrada de
interrupção

Figura 5.12 - Funcionamento de uma interrupção

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

INT em que CC é o código de controlo e D são


CC
os dados de controlo.
000
D

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).

Automação e Robótica 44
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.
0.3
INT

000
000
. #000E
.
.
SBN 000
Programa de
interrupção
RET

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. 0. 0. 0.
6 5 4 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.

SBS N
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.

Automação e Robótica 45
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.

Automação e Robótica 46
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.

Ligação Etapa Inicial

1 SOBE_BROCA SE /BROCA_UP

t1 INICIO.BROCA_UP
Etapa
LIGA_BROCA;
2 BAIXA_BROCA SE T/X2/3s/

t2 BROCA_BAIXO Acção
Transição
LIGA_BROCA;
3
SOBE_BROCA

t3 BROCA_UP 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.

Automação e Robótica 47
• 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

Automação e Robótica 48
um número no interior. A entrada é efectuada na parte superior do quadrado e a saída
na parte inferior.

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

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.
2 LIGA_BROCA; SOBE_BROCA

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.

Automação e Robótica 49
3.4.1 Inicialização

As etapas activas após a inicialização são assinaladas duplicando o contorno dos


respectivos símbolos.

1 SOBE_BROCA SE /BROCA_UP

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; LIGA_BROCA;
2 BAIXA_BROCA SE T/X2/3s/ 2 BAIXA_BROCA SE T/X2/3s/

2 BROCA_BAIXO 2 BROCA_BAIXO

LIGA_BROCA; LIGA_BROCA;
3 SOBE_BROCA 3 SOBE_BROCA

Etapa 2 activa Etapa 2 activa


Transição 2 disparada

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

2 BROCA_BAIXO

LIGA_BROCA;
3 SOBE_BROCA

Etapa 2 desactivada
Etapa 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

Automação e Robótica 50
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.

1 Colocação do material

material colocado e arranque do ciclo

2 Descida do punção superior

fim da compressão

3 Subida do punção superior


matriz em
posição alta
punção superior

4 Descida da matriz

matriz em posição baixa

5 Evacuação da peça

evacuação terminada

6 Subida da matriz

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,
a 0, b 1 e b 0.

Automação e Robótica 51
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: Saídas:
d : autorização de arranque de ciclo V: sinalização luminosa
a1 : posição baixa do punção a+ : descida do punção
a0 : posição alta do punção a- : subida do punção
b0 : posição baixa da matriz b+ : subida da matriz
b1 : posição alta 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

1 V

2 a+

a1

3 a-

b1 a0

4 b-

b0

5 E ; LT1

ft1

6 b+

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.

Automação e Robótica 52
a b

Posto A Posto 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 2 3

t1

4 5

Figura 6.7 - Sequência Simultânea

Automação e Robótica 53
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 2: Posto 3:
Furação Roscagem

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.

1 rotação de 1/3

fim de rotação

evacuação da
11 peça 21 descida rápida 31 descida rápida

peça evacuada posição de trabalho posição de trabalho


carregamento descida trabalho;
12 da peça 22 broca 32 roscagem
b0

peça colocada posição baixa posição baixa


subida rápida;
13 23 broca 33 recuo

posição alta fim recuo

24 34 subida rápida

posição alta

35

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

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

Automação e Robótica 54
ti1 ti2 tin

to1 to2 tom

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.

Estabelecimentos de
Evolução Exclusiva
prioridades

1 1

a a a /a . b

2 3 2 3

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 1 Posto 2 Posto 3

O grafcet que solucionará o problema é o seguinte:

Automação e Robótica 55
0

pedido do posto 1 e pedido do posto 2 e pedido do posto 3 e


garra carro em 2 ou 3 carro em 1 ou 3 carro em 1 ou 2
aberta
11 fechar garras 21 fechar garras 31 fechar garras

garra fechada carro em 3 AND carro em 1 AND garra fechada


garra fechada garra fechada
12 transf. esquerda 22 transf. esquerda 23 transf. direita 32 transf. direita

chegada posto 1 chegada posto 2 chegada posto 2 chegada posto 3

1 abrir garras

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.

10 Sobe_broca SE /broca_up

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.

T / X5 / 1min

Figura 6.12 - Transição Temporizada

Automação e Robótica 56
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.

2 Sobe_broca SE T / X2 / 3seg

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.

a1 b1 a2 b2
C1 C2

Posto A1 Posto B1 Posto A2 Posto B2

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).

Automação e Robótica 57
1 4

2 Direita 5 Direita

b1 b2

3 Esquerda 6 Esquerda

a1 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.

1 4

2 Direita 5 Direita

b1 b2 1

3 Esquerda 6 Esquerda

a1 a2

É 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.

Automação e Robótica 58
1 8 4

2 Direita 5 Direita

b1 b2

3 Esquerda 7

a1
1

6 Esquerda

a2

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.

1 4

2 Direita 5 Direita

b1 b2 + X1

3 Esquerda 6 Esquerda

a1 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.

Automação e Robótica 59
1 4

2 Direita 5 Direita

b1 b2 . /X2

3 Esquerda 6 Esquerda

a1 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;

Posição de
espera 1
Posto A1 Carro 1

Posto B

Posto A2 Carro 2
Posição de
espera 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.

Automação e Robótica 60
2 9
partida 1 partida 2

3 Avançar 10 Avançar

espera 1 1 espera 2
4 11

1 /espera 1

5 Avançar 12 Avançar

posto B posto B

6 13

t/X6/2 min t/X13/2 min

7 Recuar 14 Recuar

espera 1 espera 2

15 Recuar
8 Recuar
posto A2
posto A1

É 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.
Carro 1 Carro 2

1 10

partida 1 partida 2

2 Avançar 11 Avançar

espera 1 espera 2

3 12

/(X13+X14+X15) /(X3+X4+X5+X6)

4 Avançar 13 Avançar

posto B posto B

5 14

t/X5/2 min t/X14/2 min

6 Recuar 15 Recuar

espera 1 espera 2

7 Recuar 16 Recuar

posto a1 posto a2

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.

Automação e Robótica 61
10 20
1
partida 1 partida 2
X13 + X23
11 Avançar 21 Avançar
2
espera 1 X15 . espera1 espera 2

12 X25 . espera2 22

X1 X1 . /X12

13 Avançar 23 Avançar

posto B posto B

14 24

t/X14/2 min t/X24/2 min

15 Recuar 25 Recuar

espera 1 espera 2

16 Recuar 26 Recuar

posto a1 posto a2

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.

Estrutural Interpretado

10 Chamada 1 10
a Chamada 2 a 0

11 SP1 X11 + X22


11 31
X39 31
n
12 n
1 32
32

21
C 39
21
39
22 retorno 1 C
SP1 X12 + X23
retorno 2 22
X39

Processo Sub-tarefa
Sub-tarefa
Principal Processo
Principal

Figura 6.14 - Acesso sem conflito a uma subtarefa

Automação e Robótica 62
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.

13 0 25

a c

14 31 26
n

1 32 1

15 27
39

Processo 1 Sub-tarefa 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.

RE

RD
SP
a1
DP
C1 C2
FP AP

Posto A1 Posto B Posto A2

Tapete de
Evacuaçã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

Automação e Robótica 63
seguinte: 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.

2 Direita C1
10 DP
b1
inferior
11 FP
3
pf

12 SP; FP
1
Esquerda superior
4 C1
13 RD; FP
a1
Esquerda direita
5
C2
14 /FP
b2
/pf

6 15 RE

esquerda

1 16
7 Direita C2

a2

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


C 2.
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;

Automação e Robótica 64
• 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.

1 21

p1 P2

2 Direita C1 22 Esquerda C2
0
b1 b1

3 23

1 /X3

4 24
10 DP

inferior
1
1 11 FP

pf
Esquerda
5 C1 12 SP; FP 25 Direita C2

a1 superior b2

13 RE; FP

esquerda

14

/pf

15 RD
direita

16

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.

Automação e Robótica 65
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).

1 1

b.c φ

2 2

a /c . /X3 φ φ . /X3

3 3

/X1 /X1

Grafcet Original Grafcet Autónomo

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.

Automação e Robótica 66
1 V

t1

2 D 3

t2 t3

4 5 G

t4

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
t1

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

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


evolução do grafcet.

Situação Transições Transições Situação


Actual Sensibilizadas Disparadas 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

Automação e Robótica 67
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.

t1 arranque

2 5 8
t2 A1 pronto t4 A2 pronto

3 Preparar leite 6 Preparar fermento


t7 A3 pronto
t3 leite pronto t5 fermento pronto

4 7
10 Produz boiões

t6 A4 pronto
t9 boiões prontos
9 Mistura

t8 13
mistura pronta

12
11

t10 A5 pronto t1 A6 pronto


14 Enche boiões 16 Enche boiões

t12 boião cheio t14 boião cheio

15 17

t15 estufa pronta


18 Estufa

t16 iogurte pronto

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

t12 evolução
12, 15
bloqueada

12, 14
t10 t12 15, 16 t14

t10, t11 t12, t14 t15 t16


11,12,13 14,16 15, 17 18 1

t14 14, 17 t12


t11
11, 16

t14 11, 17 evolução


bloqueada

Automação e Robótica 68
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).

t6 A4 pronto t7 A3 pronto

9 Mistura 10 Produz boiões

t8 mistura pronta t9 boiões prontos

11 12 19 13

t10 A5 pronto t11 A6 pronto


14 16

t12 boião cheio t14 boião cheio

15 17

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.

Automação e Robótica 69
1

t1 arranque

2 5 8
t2 A1 pronto t4 A2 pronto

3 Preparar leite 6 Preparar pronto t7 A3 pronto

t3 leite pronto t5 fermento pronto


10 Produz boiões
4 7

t6 A4 pronto
t9 boiões prontos
t18 /boa 9 Mistura
20
mistura t17 t mistura pronta.boa
8
rejeitada
12 19 13
11

t10 A5 pronto t1 A6 pronto


14 16

t12 boião cheio t14 boião cheio

15 17

t15 estufa pronta

18

t16 iogurte pronto

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


erro.

t2
t1 t4
t18 1, 13, 19 2, 5, 8, 13, 19

t17 20, 13, 19 t7


t6 2, 5, 10, 13, 19
4, 7, 13, 19 9, 13, 19
t9
Reactivação das
2, 5, 13, 19
etapas 13 e 19

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).

Automação e Robótica 70
1
t1 arranque

2 5
8
t2 A1 pronto t4 A2 pronto

3 Preparar leite 6 Preparar pronto

t3 leite pronto t5 fermento pronto

4 7

t6 A4 pronto

t18 /boa 9 Mistura


20
mistura t17 t8 mistura pronta
rejeitada

Automação e Robótica 71
4 INTRODUÇÃO À ROBÓTICA INDUSTRIAL
A robótica e a sua implementação na automatização de processos surgem com a ideia de
aumentar os índices de produtividade e competitividade por parte de uma empresa.
Neste capítulo pretende-se fazer uma breve introdução à robótica, classificando os
vários tipos de robôs e analisando algumas áreas bastante importantes associadas a
esta problemática.

4.1 INTRODUÇÃO

A definição de robô não é convergente, existindo várias opiniões e definições.


Assim, o Instituto Americano de Robótica diz que:

Um robô é um manipulador reprogramável, multi-funcional, projectado para


mover materiais, peças, ferramentas ou dispositivos especiais em movimentos
variáveis programados para a realização de uma variedade de tarefas.

Mikell Grover, tem a seguinte definição de robô:

Um robô industrial é uma máquina multi-aplicação e programável possuindo


certas características antropomórficas.

No dicionário Webster, encontra-se a seguinte definição:

Um robô é um dispositivo automático que efectua a função normalmente


atribuída a homens ou a máquinas na forma de um homem.

A utilização de robôs na automatização dos sistemas ou processos de fabrico


apresenta vantagens e desvantagens. As vantagens podem ser agrupadas nos seguintes
tópicos:

• Factores técnicos
− Colmatam as capacidades humanas, insuficientes em termos de precisão,
robustez, rapidez, uniformidade e no suportar de ambientes hostis;
− Garantem flexibilidade na gama de produtos manufacturados;
− Melhoram índices de qualidade e de peças rejeitadas.

• Factores económicos
− Utilização eficiente de unidades de produção intensiva;
− Aumento de produtividade devido à inexistência de interrupções,
absentismos, etc;
− Redução do tempo de inventário durante a produção;
− Redução do tempo de preparação de fabrico.

Automação e Robótica 72
• Factores sociológicos
− Redução do número de acidentes;
− Afastamento do ser humano de locais perigosos para a saúde;
− Redução de horários de trabalho;
− Aumento do poder de compra.

A implementação de sistemas robotizados, apresenta, no entanto, algumas


desvantagens da das quais se destacam:
• Custo da solução;
• Aspectos sociais, como por exemplo o aumento do desemprego.

Associado à crescente implementação de sistema robotizados, aparecem novas


áreas de negócios, tais como a informática, engenharia de sistemas, electrónica,
mecânica, etc., que permitem absorver os possíveis desempregados vítimas da
introdução da robótica, com a vantagem de melhorem a qualidade no seu trabalho.

4.2 ESTRUTURA E CONFIGURAÇÃO DE ROBÔS

Uma unidade básica de um robô é o seu braço manipulador. Este é constituído por
uma base, um corpo, um braço e um punho. O punho, localizado na extremidade do
braço, é formado por múltiplos componentes que lhe permite orientar-se numa
multiplicidade de posições. O movimento relativo dos diferentes componentes do
braço manipulador é proporcionado por juntas ou articulações. O movimento de cada
um dos componentes do braço manipulado, designados por eixos, é realizado através
de um sistema de accionamento, por exemplo um motor eléctrico, devidamente
comandado através de um sistema de controlo.

Figura 8.1 - Estrutura de um Robô

Automação e Robótica 73
4.2.1 Robôs Cartesianos ou Rectangulares

Este tipo de robôs é caracterizado por o braço manipulador se mover de uma forma
rectilínea nas direcções X, Y e Z. As três juntas são lineares e os três movimentos
podem designar-se por deslocamento, alcance e elevação.

Figura 8.2 - Robô Cartesiano ou Rectangular

O volume de trabalho de um manipulador deste género é um poliedro. Na figura


que se segue, é apresentado um robô do tipo pórtico, muito utilizado na construção
naval.

Figura 8.3 - Robô de Pórtico ou Gantry

4.2.2 Robôs Cilíndricos ou Esféricos

A configuração cilíndrica utiliza uma coluna vertical e um suporte que pode ser
movido verticalmente. O braço do robô está ligado ao suporte para que possa ser
movido radialmente face à coluna. Os pontos do espaço de trabalho podem ser
especificados em coordenadas cilíndricas (r, φ e z). Os três movimentos podem
designar-se por alcance, rotação e elevação.

Automação e Robótica 74
Figura 8.4 - Robô Cilíndrico

Quando o braço pode mudar a sua configuração através de duas juntas rotativas e
uma ligação deslizante, a sua posição pode ser descrita em termos de coordenadas
esféricas (r, φ e θ).

4.2.3 Robôs Articulados

Os robôs articulados são caracterizados por ter as ligações conectadas por juntas
rotacionais.

Figura 8.5 - Robô Antropomórfico

Uma versão especial dos robôs articulados é o SCARA (Selective Compliance


Assembly Robot Arm), cujas juntas do ombro e do cotovelo rodam em juntas verticais.
A sua utilização tem vindo a crescer, principalmente em tarefas de manuseamento ou
montagem.

Automação e Robótica 75
Figura 8.6 - Robô do tipo SCARA

4.2.4 Movimento do Robô

As juntas ou articulações podem ser classificadas da seguinte forma:


• Junta Linear (tipo L): movimento linear.
• Junta Rotacional (tipo R): movimento de rotação com eixo perpendicular aos
eixos das duas ligações.
• Junta de Torção (tipo T): movimento de rotação com eixo paralelo aos eixos das
duas ligações.
• Junta Revolvente (tipo V): movimento de rotação com eixo paralelo à ligação
de entrada (a mais próxima da base) e perpendicular à de saída.
Junta L Junta R Junta T Junta V

Figura 8.7 Tipos de Juntas

De acordo com o número de juntas e do seu tipo, é possível classificar os robôs.


Os movimentos do punho são projectados para permitir que o robô oriente o órgão
terminal, designado por garra ou ferramenta, adequadamente em relação à tarefa
desejada.

Automação e Robótica 76
Figura 8.8. - Movimentos do Punho

Podem considerar-se os seguintes movimentos:


• Roll (junta T) - rotação do punho em torno do braço (eixo zz).
• Pitch (junta R) - rotação do punho para cima e para baixo (eixo yy).
• Yaw (junta R) - rotação do punho para a esquerda e para a direita (eixo xx).

4.2.5 Accionamento dos Robôs

Uma característica importante de um robô é o seu sistema de accionamento. Este


sistema pode ser hidráulico, pneumáticos e eléctricos, e a sua escolha define a
performance do robô e a sua aplicabilidade numa aplicação particular.

Accionamento Eléctrico
Os robôs eléctricos são utilizados em trabalhos de precisão, uma vez que podem ser
controlados eficazmente e orientados a seguir trajectórias.
Os robôs eléctricos podem ser divididos em dois grupos, consoante o tipo de
accionadores eléctricos: motores passo a passo e servomotores CC. Os primeiros
podem ser controlados em malha fechada ou aberta enquanto que os segundos apenas
podem ser controlados em malha aberta. Apesar desta característica, os servomotores
são os mais utilizados, uma vez que aproveitam a sua característica continua para
possibilitar movimentos controláveis de forma contínua e suave.

Accionamento Hidráulico
Os robôs hidráulicos são os robôs mais potentes sob o ponto de vista físico. Este
tipo de robô consegue aplicar grandes forças directamente às garras e às juntas. A sua
grande desvantagem é o seu elevado custo.
Uma aplicação típica deste tipo de robôs é a pintura, devido à necessidade de se
usarem robôs à prova de explosão nas áreas de pintura.

Automação e Robótica 77
Accionamento Pneumático
O accionamento pneumático é geralmente utilizado em robôs de menor porte que
possuam poucos graus de liberdade. Estes tipos de robôs são os mais económicos para
as operações simples de manuseamento (tipo pick and place).

4.2.6 Tipos de Controlo de Movimento

Associado ao tipo de accionamento e de igual importância na especificação de um


robô é o sistema de controlo de movimento do robô.

Sequência Fixa
Este tipo de controlo é o menos sofisticado, mas o mais económico. O controlo de
movimento é feito através de deslocamento entre dois pontos extremos, com ajuste de
velocidade quase inexistente.

Controlo Ponto a Ponto - PTP


Neste tipo de controlo, o robô desloca-se para qualquer ponto do seu volume de
trabalho, sendo a trajectória e velocidade não controladas ao longo desse movimento.

Trajectória Contínua - CP
Neste tipo de controlo de movimento, a trajectória é total ou parcialmente
contínua. Isto permite o controlo do movimento e velocidade de cada eixo em
simultâneo, sendo esta característica essencial para aplicações de pintura, soldadura,
etc.

Controlo Inteligente
Este tipo de controlo de movimento permite ao robô ajustar as trajectórias por
interacção com o meio ambiente. Estas tomadas de decisões lógicas baseiam-se na
informação recebida por sensores.

4.3 SENSORES E ACTUADORES PARA ROBÔS

Os sensores permitem “sentir” o que se está a passar no mundo exterior, tendo em


vista a que os robôs se possam adaptar a essas mudanças, de forma a atingirem os
seus objectivos de uma forma mais fiável. As razões para a sua utilização prendem-se
com:

• Monitorização e segurança;
• Inspecção de peças para controlo de qualidade;
• Interligação no controlo de células;
• Determinação de posições e orientações de peças.

Automação e Robótica 78
Os actuadores permitem actuar sobre o mundo exterior de forma a conseguirem
alcançar os seus objectivos de uma forma o mais eficaz possível. Existem dois tipos de
actuadores: Garras e ferramentas.

4.3.1 Sensores de Tacto

Os sensores de tacto são construídos com o objectivo de determinarem o contacto


entre dois objectos, sendo um deles a garra ou a ferramenta do robô, e o outro a peça
sobre a qual o robô vai efectuar uma dada operação. Podem ser divididos em dois sub
grupos: sensores de toque e de força.

Sensores de Toque
Este tipo de sensores é utilizado para indicar que houve contacto entre dois
objectos sem tomar em consideração a amplitude da força desse contacto. Exemplos
deste tipo de sensores são os interruptores de fim de curso, os micro-interruptores,
etc.
As aplicações típicas destes sensores são quando se pretende saber se o robô tocou
em algum objecto.

Sensores de Força
Indicam se existe contacto entre dois objectos e também a amplitude do valor
dessa força.
A implementação de um sensor deste tipo passa pela utilização de uma célula de
carga entre o punho do robô e a garra ou ferramenta.
A sua utilização visa aplicações de manipulação de peças frágeis e de montagem
(auxiliam a inserção de peças e no aparafusamento de forma correcta).

4.3.2 Sensores de proximidade

Os sensores ópticos permitem a detecção de objectos na proximidade de outros,


podendo ainda fornecer uma medida dessa distância relativa entre os objectos.
Os tipos de sensores de proximidade mais vulgares são:
• Sensores de proximidade Ópticos;
• Sensores de proximidade Acústicos;
• Sensores de proximidade Indutivos.

As aplicações potenciais deste tipo de sensores são:


• Detectar a existência ou ausência de objectos nas proximidades dos robôs;
• Detectar a distância a que um objecto se encontra do punho do robô para que
este possa corrigir a sua trajectória.

Automação e Robótica 79
4.3.3 Sistemas de visão artificial

Tratamento digital da imagem fornecida por uma câmara de vídeo, permitindo a


identificação de objectos e determinação da sua localização e geometria.
Um sistema de visão artificial típico é constituído por:
• Uma câmara (matriz de CCD’s).
• Hardware para digitalização dos valores das intensidades obtidos na matriz (um
computador ou hardware dedicado ao tratamento de imagem).
• Hardware e software necessários para efectuar o interface entre estes dois
equipamentos e entre o sistema e o utilizador.

A gama de aplicação dos sistemas de visão artificial engloba as aplicações de


inspecção industrial e de montagem, e em robótica móvel, sendo a visão artificial
utilizada para a navegação dos robôs.
A implementação de visão artificial em robótica apresenta alguns problemas, dos
quais se destacam:
• Integração com os robôs, para aplicações mais complexas.
• Iluminação, por exemplo as reflexões não desejadas.

4.3.4 Garras Mecânicas

As garras são actuadores finais que são geralmente utilizadas para pegar e segurar
em objectos. Uma garra mecânica é um actuador final que utiliza dedos mecânicos
actuados por um mecanismo para realizar o movimento de abertura e fecho dos
dedos.
Os dedos, também designados por pinças, são os apêndices das garras que
efectuam o contacto com os objectos a agarrar.
O mecanismo das garras deve ser capaz de:
• Abrir e fechar os dedos da garra.
• Exercer uma força suficiente, quando fechado, para segurar as peças que foram
agarradas.

A energia para actuação dos dedos pode ser:


• Pneumática.
• Eléctrica, de fácil controlo do valor da força que exercem sobre as peças.
• Mecânica.
• Hidráulica, para aplicações que requerem a utilização de forças de valor
elevado.

Automação e Robótica 80
4.3.5 Garras Magnéticas

As garras magnéticas são geralmente utilizadas no manuseamento de materiais


ferrosos, especialmente quando os materiais a manipular estão sob a forma de chapas
ou placas metálicas.
Existem os seguintes tipos de garras magnéticas:
• Electroímans - necessitam de uma fonte de energia externa, mas são mais fáceis
de controlar e eliminam o magnetismo residual.
• Ímans permanentes - não necessitam de fonte de energia externa, mas
apresentam uma menor facilidade de controlo.

As garras magnéticas apresentam as seguintes vantagens:


• Os tempos para pegar nas peças são muito rápidos.
• Adaptação a variações nos tamanhos das peças a pegar.

No entanto apresentam as seguintes desvantagens:


• Magnetismo residual.
• Deslizamento lateral das peças durante o transporte.
• Impossibilidade de apanhar apenas uma chapa de uma pilha.

4.3.6 Garras de Sucção

As garras de sucção são utilizadas para manusear objectos planos, lisos e limpos
(condições necessárias para que se forme um vácuo satisfatório), sendo um tipo de
garras relativamente leves. Exige apenas uma superfície disponível da peça para esta
poder ser manipulada, aplicando uma distribuição uniforme da pressão na superfície
da peça.
As ventosas são utilizadas neste tipo de garras e baseiam-se na existência do vácuo.
Na criação do vácuo utiliza-se frequentemente os métodos do principio de Venturi
e/ou uma bomba de vácuo.
Este tipo de garras é aplicável a uma grande variedade de materiais, como por
exemplo no manuseamento de placas de vidro.

4.3.7 Garras com outros princípios de funcionamento

Existem outros tipos de garras cujo principio de funcionamento difere dos


apresentados nos pontos anteriores. Entre outros, destacam-se os seguintes tipos:
• Garras adesivas
Indicadas para o manuseamento de têxteis e outros materiais leves.
• Garras de agulhas
Indicadas para manusear materiais macios e que possam ser perfurados, ou pelo
menos picados, como por exemplo têxteis, plásticos, borrachas, etc.

Automação e Robótica 81
• Garras insufláveis ou de diafragma
Indicadas para aplicações que envolvam a manipulação de objectos frágeis.
• Garras com dedos articulados
Indicados para o manuseamento de objectos frágeis.
• Garras para a inserção de O-Ring’s
Específicas para uma operação concreta e que se destinam à inserção de O-
Ring’s noutras peças.
• Garra universal ou mão de Standford/JPL
Desenvolvimento de uma garra que permita pegar e manusear uma grande
variedade de objectos com diferentes geometrias, se possível apresentando
características semelhantes à da mão humana.

4.3.8 Ferramentas para robôs

As ferramentas são actuadores finais cuja finalidade é realizar trabalho sobre uma
peça em vez de pegar nelas. Dos vários tipos de ferramentas destacam-se os
seguintes:

Pinças de soldadura por pontos


As pinças de soldadura por pontos são constituídas por dois eléctrodos, que ao
fechar provocam a passagem de corrente eléctrica num ponto da chapa a soldar,
criando a fusão dos materiais.

Tochas de soldadura por arco eléctrico


Esta é a aplicação em que os robôs são mais utilizados. A alimentação de energia
eléctrica gás e fio efectuada ao longo do braço do robô.

Pistolas de pintura
As pistolas de pintura tem por função vaporizar a tinta, podendo ser do tipo
eléctrico ou pneumático.

Ferramentas rotativas (maquinação, polimento e aparafusamento)


As ferramentas rotativas necessitam de movimento para efectuar a sua função,
estando a ferramenta fixa na extremidade do robô. Uma aplicação típica é o
aparafusamento de parafusos.

4.4 SEGURANÇA NA ROBÓTICA

Os robôs são máquinas potencialmente perigosas, sendo o número de acidentes


reduzidos, ocorrendo durante a sua programação ou manutenção.
Existem normas internacionais que regulamentam as precauções a ter com o
funcionamento de robôs. Entre elas destacam-se as seguintes:
• Norma ISO 10210.

Automação e Robótica 82
• Norma ANSI/IRIA R15.06-1986.
• Norma Alemã DIN EN 775.

É possível enumerar um conjunto de vulgares causas dos erros:


• Falha no sistema de controlo, erros de software, interferências eléctricas.
• Entrada não autorizada de pessoas na área de trabalho.
• Falhas eléctricas, pneumáticas ou hidráulicas.
• Falhas mecânicas: fadiga, sobrecargas, corrosão.
• Falhas ambientais: poeiras, fumos, radiações, etc.
• Incêndios: salpicos por exemplo na soldadura.

4.4.1 Medidas de Protecção passivas

Existem algumas regras de conduta que devem ser observadas e implementadas de


forma a evitar a ocorrência de situações que possam levar à ocorrência de acidentes.
Entre elas, destacam-se as seguintes:
• As marcações e os sinais que indicam as zonas de perigo devem diferir
claramente de todas as outras marcações existentes na fábrica.
• O sistema do robô só deve ser operado manualmente em condições de
programação ou de erro.
• A estação de trabalho e o ambiente do sistema do robô devem ser mantidos
numa condição ordeira e limpos.
• Evitar roupas largas ou que possam facilmente ficar presas em qualquer parte do
robô.

4.4.2 Medidas de Protecção Activas

As medidas de protecção activas destinam-se a limitar os efeitos dos acidentes


quando as medidas passivas não o conseguiram evitar, e devem ser implementadas
durante a fase de projecto e implementação da célula robotizada. De seguida
enumeram-se algumas medidas de protecção activas, assentes na ideia que uma
célula robotizada deve ser dotada de sistemas de segurança que impeçam o acesso à
área de trabalho do robô:
• Circuito de paragem de emergência.
• Prefixação das saídas.
• Vedação das células robotizadas.
• Protecção contra colisões.

Automação e Robótica 83
4.5 OPERAÇÃO E PROGRAMAÇÃO DE ROBÔS INDUSTRIAIS

O objectivo de um sistema de programação é a geração de um programa de


controlo do robô, de uma forma simples e amigável para o utilizador.
Os movimentos do robô devem ser capazes de realizar duas tarefas:
• Alcançar uma posição alvo programada de forma a posicionar a peça ou
ferramenta.
• Mover-se ao longo de uma trajectória programada com velocidades definidas.
Isto significa que um programa de robô pode ser interpretado como uma
sequência de localizações no espaço que o robô tem que percorrer com uma
determinada orientação, velocidade e aceleração.

A programação de robôs é bastante dispendiosa e consome muito tempo.

4.5.1 Métodos de Programação de Robôs

O desenvolvimento dos robôs foi acompanhado pelo desenvolvimento de métodos


de programação com potência e complexidade cada vez maiores. Os métodos de
programação podem ser divididos nas seguintes categorias:
• Quanto à necessidade de utilizar o robô para efectuar a sua programação:
− Programação “on-line”.
− Programação “off-line”.

• Quanto ao tipo de programação:


− Programação explicita.
− Programação implícita.

4.5.2 Programação “on-line”

Este método envolve directamente o robô, cuja actividade principal da


programação “on-line” é a definição de trajectórias. A vantagem da programação
“on-line” é a sua simplicidade de realizar as tarefas e a sua aprendizagem. A principal
desvantagem deste tipo de programação é que o robô é necessário para realizar a
programação, o que implica:
• A paragem da célula em que se encontra o robô, durante a fase de programação
com as consequentes perdas de produtividade que daí advêm.
• Os eventuais problemas que podem surgir devido a erros de programação, como
por exemplo, colisões do robô com outros equipamentos da célula em que este
se encontra.

Automação e Robótica 84
4.5.3 Programação “off-line”

A programação “off-line” possibilita a programação do robô sem ser necessário a


sua utilização durante esta tarefa. Este tipo de programação é cada vez mais
utilizado, especialmente para aplicações complexas e para aplicações que exigem
longos tempos de desenvolvimento dos programas.
A geração e descarga do programa do robô compreende a seguinte sequência de
passos, utilizando a programação “off-line”:
• Calibração do modelo do robô e da célula.
• Geração do código para o robô:
− Programas desenvolvidos na linguagem nativa do controlador do robô.
− Programas desenvolvidos em linguagem neutra.
• Transferência do programa para o robô, usando uma linha série RS232, uma rede
Ethernet ou outro tipo de conexão.

4.6 APLICAÇÕES INDUSTRIAIS

4.6.1 Manuseamento de materiais

A introdução de robótica na realização destas tarefas apresenta os seguintes


benefícios:
• Factores de segurança acrescida na interface de operadores com máquinas.
• Repetibilidade da tarefa a realizar.
• O ambiente de trabalho, é por vezes, prejudicial.
• Evita-se a manipulação de cargas elevadas por parte de operadores humanos.

As aplicações de manuseamento de materiais podem dividir-se em Transferência de


materiais e Carga/descarga de materiais.

Automação e Robótica 85
Figura 8.9 - Transferência de Materiais

Figura 8.10 - Carga/descarga de materiais

4.6.2 Pintura

As características típicas destes sistemas são:


• Controlo contínuo de trajectória.
• Necessidade de limpeza regular da pistola pulverizadora.
• Controladores com múltiplos programas.

Os sistemas robotizados são utilizados em aplicações de pintura que apresentem


condições adversas (perigo de fogo e de cancro, ruído, etc.), como sejam a indústria
automóvel, a indústria de electrodomésticos, indústria de porcelanas para WC, etc.

Figura 8.11 - Sistema de Pintura

Na figura seguinte, encontra-se representada uma linha de montagem da indústria


automóvel, onde existem vários postos de pintura que utilizam, sistemas robotizados.

Automação e Robótica 86
Figura 8.12 - Pintura numa Linha de Fabrico

4.6.3 Soldadura

Existem dois tipos de soldadura: por pontos e por arco eléctrico. A robotização da
soldadura é uma aplicação que representa uma grande fatia das aplicações industriais
da robótica. As industrias eléctrica, automóvel e do mobiliário metálico, tem sido os
principais clientes para estes tipos de sistemas.
A robotização na soldadura vantagens:
• Racionalização do processo de soldadura.
• Incremento da qualidade e segurança.

Figura 8.13 - Sistema de Soldadura por arco eléctrico

4.6.4 Operações de Montagem

Uma operação de montagem consiste na operação de junção de dois itens. A


montagem automática utilizando automação fixa é normalmente apenas
implementada quando se produzem grandes quantidades de produtos (devido ao
elevado investimento requerido). No entanto, a maior partes dos produtos que
requerem montagem tem volumes de produção médios ou pequenos, apresentando
tempos de vida curtos, pelo que não é rentável a implementação de sistemas

Automação e Robótica 87
automáticos customizados para a aplicação. Torna-se necessário a implementação de
sistemas flexíveis que incluam robôs, para este tipo de aplicações.
Os sistemas de montagem podem ser divididos em dois grandes grupos: células de
montagem e linhas de montagem.
Nas células de montagem, o movimento do produto está restrito à célula.

Figura 8.14 - Sistema de Soldadura por arco eléctrico

A linha de montagem é caracterizada pelo deslocamento dos produtos ao longo da


linha, sendo acrescentados componentes, ao longo da mesma.

Figura 8.15 - Linha de montagem

Automação e Robótica 88
5 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

[Groover, 86] M. Groover, M. Weiss, R. Nagel, N. Odrey, Industrial Robotics:


Technology, Programming and Applications, McGraw-Hill, 1986

[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

Automação e Robótica 89
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.

Representação Representação
Externa Codificação Binária

Processamento
Armazenamento

Representação Representação
Externa Descodificação
Binária

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
n
256 informações diferentes (2 ).

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 1

...

Posição 0

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;

Automação e Robótica 90
• 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.
3
Exemplo: Para o número 324567 na base n, o peso do símbolo 4 será n .

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 1 2 . 3
-1
3 * 10 0,3
0
2 * 10 2
1
1 * 10 10
2
5 * 10 500
512,3
Valor Intrinseco Peso

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.

Automação e Robótica 91
1 0 1 1
0
1*2 1
1
1*2 2
2
0*2 0
3
1*2 8

Valor Intriseco Peso 11

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 A F 0
0
0 * 16 0
1
15 * 16 240
2
10 * 16 2560
3
1 * 16 4096

Valor Intrinseco Peso 6896

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ária


0 0 0000
1 1 0001
2 2 0010
3 3 0011
. . .
8 8 1000
9 9 1001
10 A 1010
11 B 1011
. . .
14 E 1110
15 F 1111

Automação e Robótica 92
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.

13 2
1 6 2
0 3 2
1 1

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
Lê-se neste sentido
2 * 0,750 = 1,500

2 * 0,500 = 1,000

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

Automação e Robótica 93
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,

n n-1 n-2 1 0 -1 -2
an * b + an-1 * b + an-2 * b +... + a1 * b + a0 * b + a-1 * b + a-2 * b +...

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

Automação e Robótica 94
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.

Automação e Robótica 95
Á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 Y
1 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 Y
1 1 0
1 0 1
0 1 1
0 0 0

Automação e Robótica 96
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.

Automação e Robótica 97
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)

Automação e Robótica 98

You might also like