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).
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis
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.
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.
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
R1
R2
detector
Receptores
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
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis
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
(* 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
Ci.D
Count Down: CD Ci
*
Count Up: CU Ci
Autmatos Programveis
Autmatos Programveis
Ci.D
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
TMi.Q
Autmatos Programveis
Autmatos Programveis
TMi.Q
T.V T .P T .Q
... T
BT
Autmatos Programveis
Autmatos Programveis
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
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
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
(* modo TOF OK *) IF (%I1.1 AND %I1.2) THEN DOWN %TM4; START %TM4; END_IF;
Autmatos Programveis
Autmatos Programveis
(* Modo TON *) IF %I1.2 THEN START %TM2; END_IF; IF %I1.5 THEN DOWN %TM2; 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
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;
Autmatos Programveis
Autmatos Programveis
Trata-se de exemplos simples para os quais, regra geral, no se justifica a construo de diagramas de estados.
Clula
Autmatos Programveis
Autmatos Programveis
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
IF (RE Celula2) AND (NOT Celula1) THEN START TM1: ELSIF FE Celula2 DOWN TM1; END_IF; Sirene:=TM1.Q;
Clula 1
Clula 2
Tempo ciclo
Autmatos Programveis
Autmatos Programveis
Autmatos Programveis