Você está na página 1de 17

MIEEC | Automao

Apresentao dos Autmatos Programveis

Autmatos Programveis
(verso 4.5 em 17 de Abril de 2008) Jos Antnio Faria, jfaria@fe.up.pt Armando Jorge Sousa , asousa@fe.up.pt
Professores Auxiliares da FEUP 16 de Abril de 2009

Autmatos Programveis

Autmatos Programveis

Autmatos programveis
Os autmatos programveis so microcomputadores especialmente vocacionados para aplicaes de controlo a eventos discretos (onde a interface com os processos fsicos envolve, fundamentalmente, variveis boolenas e o programa de controlo baseado em operaes lgicas).

Exemplo de autmato programvel

Autmatos Programveis

Autmatos Programveis

Autmato TSX/Micro da Schneider


Nas aulas prticas sero utilizados autmato da gama TSX/Micro da Schneider. Trata-se de autmatos modulares, da gama mdia/baixa que suportam at cerca de 150 linhas de entrada/sada

Mdulos para controlo de sistemas contnuos


Para lidar com processos fsicos que envolvam o controlo de variveis contnuas, os autmatos dispem de mdulos especiais, por exemplo: cartas de entrada/sada analgicas; cartas de interface dedicadas, e.g., codificadores incrementais ou termopares; cartas de controlo PID, genricas ou dedicados a aplicaes particulares como o controlo de temperatura; mdulos de amplificao de potncia, por exemplo para controlo de velocidade e de posio de motores elctricos.

Autmatos Programveis

Autmatos Programveis

Autmato programvel versus PC

Linguagens de programao
Os autmatos podem ser programados recorrendo a vrios tipos de linguagens: Grficas (diagrama de contactos, e GRAFCET) Textuais (lista de instrues e texto estruturado) Na mesma aplicao, podem ser combinadas diferentes linguagens ao mesmo tempo que possvel converter os programas entre as vrias linguagens.

Relativamente aos computadores pessoais (PCs), os autmatos: so mais compactos e robustos (vibraes, humidade, poeiras, rudo electromagntico); oferecem uma linguagem de programao dedicada (operaes lgicas ao bit, temporizadores, contadores, ...) oferecem um sistema de I/O muito flexvel (modular, mltiplas cartas, ligaes simples) no dispem de disco rgido nem de terminal de interface com o operador.

Autmatos Programveis

Autmatos Programveis

Linguagens de programao

Instrues
As linguagens de programao dos autmatos incluem instrues para executar: operaes lgicas (AND, OR, NOT, ); operaes activas ao flanco:

No mbito da disciplina, apenas sero utilizados: o texto estruturado (idntico ao FEUPAutom) o GRAFCET (que ser introduzido proximamente)

Trata-se de duas linguagens standard definidas pela Norma IEC 1131 e que so suportadas pela maioria dos autmatos mais actuais.

operaes de contagem (incrementar e decrementar); operaes de temporizao; operaes aritmticas (inteiras e em vrgula flutuante); manipulao de dados (strings, tabelas, ) funes de comunicao em rede e ponto-a-ponto.

Autmatos Programveis

Autmatos Programveis

Manuais
No laboratrio, encontra um conjunto de completo dos manuais do software PL7* para programao dos autmatos Micro/Schneider.

Manuais
Apresentao PL7 Introduo ao ambiente de desenvolvimento de programas Manual PL7-vol1 Introduo linguagem structured text (pag. 143 a 166) Introduo linguagem Grafcet (pag. 167 a 210)

No entanto, no mbito de Automao, apenas os seguintes manuais so relevantes (os quais esto disponveis na pgina da disciplina). * PL so as iniciais de programao lgica

Manual PL7-vol2 Descrio detalhada das instrues de programao (pag. 13 a 64) Descrio dos objectos (bits) de sistema (pag. 277 a 290)

Autmatos Programveis

Autmatos Programveis

IMPORTANTE
No mbito de Automao, no se justifica uma leitura exaustiva destes manuais e muito menos se justifica a sua impresso completa. Em vez disso, devem ser consultados pontualmente sempre que for necessrio.

Conceitos base de programao em Texto Estruturado

Autmatos Programveis

Autmatos Programveis

Linguagens de programao
Para uma apresentao das linguagens suportadas pelos autmatos TSX/Micro pode consultar Manual PL7-vol1 (pg. 111). Aqui apenas consideraremos a programao em Texto Estruturado, j conhecida do FEUPAutom.

Objectos do sistema
Nas aplicaes consideradas no mbito da disciplina, dar-se- especial ateno s operaes lgicas (Manual PL7-vol1, pg. 143), as quais podem ser aplicadas aos seguintes system objects: linhas de entrada, por exemplo linhas de sada, por exemplo bits de memria, por exemplo bits de sistema, por exemplo bits de temporizador, por exemplo bits de contador, por exemplo %I1.5; %Q2.3; %M20; %S4; %TM3.Q; %C2.D.

Nota: Na sua verso actual, o FEUPAutom apenas implementa um subconjunto das instrues dos autmatos.

Autmatos Programveis

Autmatos Programveis

Exemplo inicial
Para um primeiro contacto com algumas das principais funcionalidades da programao em texto estruturado, entre as quais: operaes activas ao flanco contadores temporizadores ... considere o seguinte exemplo de aplicao.

Controlo de iluminao (verso1)


Pretende-se acender a iluminao da sala representada na figura sempre que se encontrar algum no seu interior. Para controlar as entradas e sadas da sala so utilizadas duas clulas fotoelctricas colocadas junto ao acesso da sala.
Clula1: %I1.1 Clula2: %I1.2 Detector: %I1.3 Iluminao: %Q2.1

Emissores E1 E2
iluminao

R1

R2

detector

Receptores

Autmatos Programveis

Autmatos Programveis

Programa (verso1)
(* Detectar entrada de pessoa *) IF (RE %I1.1) AND (NOT %I1.2) THEN UP %C1; END_IF; (* Detectar entrada de pessoa *) IF (RE %I1.1) AND (NOT %I1.2) THEN UP %C1; END_IF;

Emissores E1 E2
iluminao

Controlo de iluminao (verso2)


A iluminao tambm deve acender durante 15 seg se o boto de parede for premido.
Emissores E1
Clula1: %I1.1 Clula2: %I1.2 Detector: %I1.3 Iluminao: %Q2.1 Boto: %I1.4

R1

R2

detector

Receptores

Clula1: %I1.1 Clula2: %I1.2 Detector: %I1.3 Iluminao: %Q2.1

E2
iluminao

(* Acende iluminao de estiver algum presente na sala e no houver luz ambiente*) IF(%C1.V<>0) AND (NOT %I1.3) THEN %Q2.1:=TRUE; ELSE %Q2.1:=FALSE; END_IF;

boto

R1

R2

detector

Receptores

Autmatos Programveis

Autmatos Programveis

Programa (verso2)
(* Detectar entrada de pessoa *) (igual ao anterior) (* Detectar entrada de pessoa *) (igual ao anterior) (* Dispara temporizador 15seg se o boto de iluminao for premido *) IF RE %I1.4 THEN START %TM0; ELSIF FE %I1.4 THEN DOWN %TM0; END_IF; (* Acende iluminao se sada temporizador estiver activa *) IF (%TM0.Q)THEN %Q2.1:=TRUE; ELSE %Q2.1:=FALSE; END_IF;

Programa (v2)

O programa anterior (v2) contm um erro. Qual esse erro? Se no conseguir descobrir o erros atravs da anlise do cdigo, teste o programa no FEUPAutom e recorrendo foragem das entradas.

(* Acende iluminao de estiver algum presente na sala e no houver luz natural*) IF(%C1.V<>0) AND (NOT %I1.3) THEN %Q2.1:=TRUE; ELSE %Q2.1:=FALSE; END_IF;

Autmatos Programveis

Autmatos Programveis

Endereamento das linhas de I/O


Endereamento das linhas de I/O
As linhas de entrada e sada esto agrupadas em canais. Cada canal dispe de N linhas de entrada ou de sada. O endereo de cada linha de entrada ou sada determinado pelo n do canal (1 a 10) e pelo n da linha dentro do canal (0..N-1).

Autmatos Programveis

Autmatos Programveis

Endereamento das linhas de I/O


No caso dos autmatos utilizados nas aulas prticas: o canal 1 est ocupado com uma carta de entradas com 16 linhas o canal 2 est ocupado com uma carta de sadas com 12 linhas. Como tal, o autmato dispe: das entradas I1.0 a I1.15 das sadas Q2.0 a Q2.11.

Ciclo de execuo do programa

Autmatos Programveis

Autmatos Programveis

Ciclo de execuo do programa


Tal como acontece no FEUPAutom: os programas dos autmatos so executados em ciclo cada ciclo decompe-se em 4 fases: leitura das entradas para a memria central; execuo das instrues do programa; processamento interno (actualizao dos temporizadores, bits de sistemas, ); actualizao das sadas a partir da memria;

Fases do ciclo de execuo


1 fase: leitura das entradas 2 fase: processamento do programa 3 fase: processamento interno 4 fase: actualizao das sadas

Autmatos Programveis

Autmatos Programveis

Fases do ciclo de execuo

Fases de leitura/escrita das entradas/sadas


Este modo de funcionamento (leitura/escrita em bloco das entradas/sadas) reduz o tempo de execuo dos ciclos e, portanto, melhora a rapidez de resposta do autmato porque: o acesso s cartas de entrada/sada muito mais lento do que o acesso a memria RAM central. pois, como as cartas esto isoladas galvanicamente do CPU, a transmisso de dados efectuada atravs de optoacopuladores (isto , pares led/fototransistor) cuja velocidade de comutao muito inferior da memria RAM.

PP

I S E

PP

I S E

PP

Tciclo
E: leitura entradas S: actualizao sadas PP: processamento programa PI: processamento interno

Autmatos Programveis

Autmatos Programveis

Actualizao das sadas


Dado que as linhas de sadas apenas so actualizadas no final de cada ciclo, possvel executar vrias instrues de escrita sobre a mesma sada ao longo de um ciclo de execuo do programa como no exemplo ao lado.

Actualizao das sadas


So frequentes as situaes em que, ao longo de um mesmo ciclo, so dadas ordens contraditrias sobre uma dada sada, por exemplo: ligar no motor (se o boto estiver premido) e desligar o motor (se, simultaneamente, o detector de incndio estiver activo) Como as sadas apenas so actualizadas no final de cada ciclo, as instrues de maior prioridade devero ser colocadas no final do programa.

(* Incio programa *) IF Boto_mover THEN motorOn:=TRUE; END_IF; IF Detector_aberta THEN motorOn:=FALSE; END_IF; IF Detector_incndio THEN motorOn:=FALSE; END_IF; (* Fim programa *)

(* Incio programa *) IF Boto_mover THEN motorOn:=TRUE; END_IF; IF Detector_aberta THEN motorOn:=FALSE; END_IF; IF Detector_incndio THEN motorOn:=FALSE; END_IF; (* Fim programa *)

Autmatos Programveis

Autmatos Programveis

Temporizadores e Contadores
O autmato TSX/Micro oferece um conjunto de blocos de funes pr-definidos, (pre-defined function blocks), entre os quais os temporizadores e os contadores.

Contadores e Temporizadores

Encontra uma descrio destas funes em Manual PL7-vol2: pag 33 temporizadores pag 42 contadores.

Autmatos Programveis

Autmatos Programveis

Contadores
O Autmato TSX/Micro dispe de 32 contadores internos, C0 a C31.

Contadores

Para cada contador, h dois registos internos de 16 bits (words): o registo Preset que contm o valor final da contagem* o registo Value que contm o valor do contador

registo Preset: Ci.P =? Reset: R Ci registo Value: Ci.V

Ci.D

Count Down: CD Ci
*

Count Up: CU Ci

Semelhante ao Parallel Load do integrado 40193 utilizado no 1 trabalho prtico

Autmatos Programveis

Autmatos Programveis

Contador Ci: sinais de entrada e sada


Valor fixado durante a parametrizao do programa Sinal activo ao nvel Reset: R Ci registo Value: Ci.V Count Down: CD Ci Count Up: CU Ci =1 se Ci.P=Ci.V =0 se Ci.P<>Ci.V

Parametrizao dos contadores


Os seguintes parmetros so definidos no software de programao durante a fase de parametrizao da aplicao: preset value (0 9999); modify (Y, N).

registo Preset: Ci.P =?

Ci.D

O parmetro modify autoriza, ou no, a alterar o preset value.

Sinais activos ao flanco

Autmatos Programveis

Autmatos Programveis

Manual contadores
Para mais informaes sobre os contadores deve ser consultado o respectivo manual (pag. 42).

Autmatos Programveis

Autmatos Programveis

Temporizadores
O Autmato TSX/Micro dispe de 64 temporizadores internos (TM0 a TM63) cuja implementao idntica dos contadores. As principais diferenas residem no facto de: ser aplicado um sinal de clock entrada de contagem a funo de comparao que determina o valor do bit de sada depende do modo de disparo da temporizao

Temporizadores

registo Preset: TMi.P ? registo Value: TMi.V Clock

TMi.Q

Autmatos Programveis

Autmatos Programveis

Temporizador TMi: sinais de entrada e sada


Valor fixado durante a parametrizao do programa

Modos de disparo dos temporizadores


Os temporizadores podem operar em trs modos: TON, atraso comutao ON TOF, atraso comutao OFF TP, monoestvel.
If RE %I1.1 THEN
I0.1

registo Preset: TMi.P ? registo Value: TMi.V

TMi.Q

Clock Base de tempo definida durante a parametrizao (0,1s, 1s ou 10s)


Autmatos Programveis

Valor da sada depende do modo de disparo do temporizador: TP, TON ou TOFF

START T1; END_IF;


T1.Q T1.Q T1.Q T
Autmatos Programveis

Modo Ton Modo Tof T Modo Tp

Modos de disparo dos temporizadores


O modo de operao definido durante a fase de parametrizao da aplicao. O modo de operao por defeito o modo TON. Este modo assim designado porque o sinal de sada do temporizador segue o sinal de entrada com um atraso na comutao ON.

Modo de operao TON


Neste modo de operao: o registo V (current value) inicializado em 0 aps o disparo do temporizador pelo comando START; de seguida, V incrementado de acordo com a base de tempo BT seleccionada, at atingir o valor do registo P; o bit de sada Q toma o valor 1 desde esse instante e at o sinal de entrada regressar a 0.
START IN

T.V T .P T .Q

... T

BT

Autmatos Programveis

Autmatos Programveis

Parametrizao dos temporizadores


Os seguintes parmetros so definidos no software de programao durante a fase de parametrizao da aplicao: modo de operao (TON, TOF, TP); base de tempo (1 min, 1 seg, 100mseg, 10 mseg); preset value (0 9999); modify (Y, N). O valor da temporizao resulta do produto entre a base de tempo e o preset value. O parmetro modify autoriza, ou no, a alterar o preset value durante a execuo do programa.

Manual temporizadores
Para mais informaes sobre os temporizadores, em particular sobre os modos de operao TOFF e TP deve ser consultado o manual (pag. 33): PL7-Micro-Junior-Pro-Reference-Manual-vol2.pdf

Autmatos Programveis

Autmatos Programveis

Manual | Modo TP

Manual | Exemplo

Autmatos Programveis

Autmatos Programveis

Indicaes prticas | Modo TP


(* modo TP OK *) IF RE %I1.1 THEN DOWN %TM0; START %TM0; END_IF;

Indicaes prticas | Modo TP


(* modo TP OK *) IF RE %I1.1 THEN DOWN %TM0; START %TM0; END_IF;

Antes do disparo do timer deve ser executada a instruo DOWN

No caso TP, na condio de disparo, deve ser utilizado o modificador RE. Este modificador s pode ser aplicado a bits de entrada, sada e memria. Como tal, no permitido: IF RE (%I1.1 AND %I1.2) THEN Nestes casos, deve ser utilizado um bit de memria auxiliar: %M0:= (%I1.1 AND %I1.2); IF RE %M0 THEN

(* modo TP no OK *) IF RE (%I1.1 AND %I1.2) THEN DOWN %TM1; START %TM1; END_IF;

Autmatos Programveis

Autmatos Programveis

Modo TON

Indicaes prticas | Modo TON


(* modo TON OK *) IF %I1.1 THEN START %TM2; END_IF; IF(NOT %I1.1)THEN DOWN %TM2; END_IF; (* modo TON OK *) IF (%I1.1 AND %I1.2) THEN START %TM3; ELSIF NOT %I1.1 THEN DOWN %TM3; END_IF;

No caso do modo TON, na condio de disparo, no necessrio o modificador RE, Como tal, permitido disparar o timer directamente a partir de uma condio lgica: IF (%I1.1 AND %I1.2) THEN

Autmatos Programveis

Autmatos Programveis

Modo TOF

Indicaes prticas | Modo TOF

(* modo TOF OK *) IF (%I1.1 AND %I1.2) THEN DOWN %TM4; START %TM4; END_IF;

Antes do disparo do timer deve ser executada a instruo DOWN

Autmatos Programveis

Autmatos Programveis

Modos TP, TON e TOF

Indicaes prticas | Estados temporizados

(* Modo TP *) IF RE %I1.1 THEN DOWN %TM1; START %TM1; END_IF;

(* Modo TON *) IF %I1.2 THEN START %TM2; END_IF; IF %I1.5 THEN DOWN %TM2; END_IF;

(* Modo TOF *) IF %I1.3 THEN DOWN %TM3; START %TM3; END_IF;

Num programa gerado a partir de um grfico de estados, para obter uma temporizao a partir do instante em que um dado estado_i fica activo: Seleccionar o modo TON IF estado_i THEN START %TMi; ELSE DOWN %TMi; END_IF; A sada %TMi.Q tomar o valor 1 quando tiver decorrido o tempo TMi.P x Base_de_tempo aps a activao do estado_i e regressa a 0 quando o estado for desactivado.

Autmatos Programveis

Autmatos Programveis

Indicaes prticas | Ciclo de execuo inicial

O bit de sistema %S13 toma o valor 1 no primeiro ciclo de execuo do programa (equivalente ao bit s0 do FEUP Autom). Exemplo: IF %S13 THEN (inicializaes de variveis) END_IF;

Exemplos de programao em texto estruturado

Autmatos Programveis

Autmatos Programveis

Sistema de contagem de garrafas


De seguida, sero apresentados alguns exemplos de programao em texto estruturado, com o objectivo de se familiarizar com as instrues desta linguagem, em especial as instrues de contagem e temporizao. Numa linha de produo de garrafas, o tapete entra em movimento aps o operador premir o boto de Start e imobiliza-se depois de terem sido detectadas 20 garrafas pela clula fotoelctrica.

Trata-se de exemplos simples para os quais, regra geral, no se justifica a construo de diagramas de estados.
Clula

Autmatos Programveis

Autmatos Programveis

Sistema de contagem de garrafas


(* Contagem por MW *) IF Start THEN TapeteOn:= TRUE; %MW0:=0; END_IF; IF RE Celula THEN %MW0:=%MW0+1; END_IF; IF %MW0=20 THEN TapeteOn:=False; END_IF; (* Contagem por Contador integrado *) IF Start THEN TapeteOn:= TRUE; RESET C1; END_IF; IF RE Celula THEN UP C1; END_IF; IF C1.V=20 THEN TapeteOn:=False; END_IF; (* Contagem por Contador com Preset = 20 *) IF Start THEN TapeteOn:= TRUE; RESET C1; END_IF; IF RE Celula THEN UP C1; END_IF; IF C1.D THEN TapeteOn:=False; END_IF;

Deteco de garrafas tombadas

Para detectar a presena de garrafas tombadas, utilizada uma segunda clula conforme representado na figura. Quando detectada uma garrafa tombada a sirene S activada durante 5 segundos.

Clula 1 Clula 2

Autmatos Programveis

Autmatos Programveis

Deteco de garrafas tombadas

Deteco de garrafas tombadas


Na prtica, as duas clulas nunca sero activadas simultaneamente (isto , no mesmo ciclo de execuo do autmato), o que pode originar falsas deteces de garrafas tombadas.

IF (RE Celula2) AND (NOT Celula1) THEN START TM1: ELSIF FE Celula2 DOWN TM1; END_IF; Sirene:=TM1.Q;

Parametrizao de TM1 Modo: TP Preset: 5 Base de tempo: 1 seg

Clula 1

Clula 2

Tempo ciclo

Autmatos Programveis

Autmatos Programveis

Deteco de garrafas tombadas


Altere o programa anterior por forma a contemplar esta nova situao. Para isso: pode recorrer a uma temporizao para ler as clulas no centro da garrafa (considere que a velocidade do tapete de 0,5 ms-1 e que o dimetro da garrafa de 10 cm). ou analisar a evoluo dos sinais das 2 clulas com base num grfico de estados. Considere tambm a seguinte especificao adicional: se, entre duas garrafas tombadas, o nmero de garrafas em posio correcta for inferior 5 ento o tapete pra imediatemente e a sirene accionada at o operador pressionar o boto Start.

Autmatos Programveis