Beruflich Dokumente
Kultur Dokumente
Automao
Ramos de Automao e Energia
Depois de, nas aulas anteriores, ter realizado o projecto do sistema de controlo de um parque
de estacionamento com base em lgica discreta, vai agora projectar dois sistemas de controlo
idnticos recorrendo ao software FEUPAutom que implementa um controlador baseado em
PC, programvel com a linguagem Structured Text (ST).
O software ser-lhe- apresentado nas aulas tericas e estar disponvel para download nos
contedos da disciplina, pelo que poder instal-lo no seu computador ou trabalhar no
laboratrio.
Cada grupo deve enviar, no final da segunda aula, por EMail, ao respectivo professor das
aulas prticas as impresses para PDF geradas pelo FEUPAutom do cdigo produzido para
cada um dos trabalhos do parque (partes 2 e 3). O EMail a enviar deve ter o ttulo [Auto] TP2
Turma xxx Grupo yyy e deve ter anexo os 2 PDFs; o texto do email deve conter a turma, o
grupo e o nome dos autores do trabalho (substituir xxx pela turma e yyy pelo n grupo).
Automao 2007/8 2 / 11
Parte 1: Familiarizao com o FEUPAutom
Este documento contm informao de interesse e deve ser consultado sempre que surgirem
perguntas ao funcionamento do FEUPAutom.
Relativamente ao editor:
No possvel alterar cdigo durante a sua execuo
Utilize ctrl space para chamar o menu de completion este menu lista variveis e
keywords frequentes da linguagem (no todas!)
Tenha em ateno a colorizao do cdigo medida que o vai introduzindo
Automao 2007/8 3 / 11
Programas de Teste
mw0 := mw0 + 1;
println (mw0);
Este programa incrementa um varivel de memria do tipo WORD (um inteiro) a cada ciclo
executado. A varivel chama-se mw0. A atribuio feita com o operador := .
Escolha menu Program -> Run Once ou prima F8 para perceber o funcionamento do
FEUPAutom. O valor de mw0 impresso a cada ciclo executado.
Examine a varivel mw0 passando o cursor do rato por cima: o valor apresentado na barra
de estado.
Escolha menu Program -> Run ou prima F9. No modo Run no so impressos valores mas
possvel ver o valor das variveis movimentando continuamente o rato por cima da varivel.
m0 := not m0;
println (m0);
A varivel m0 uma varivel auxiliar de memria do tipo bit, que armazena um valor
booleano, True (1) ou False (0).
Prima repetidamente F8 para observar o funcionamento do programa e inspeccione o valor de
m0.
q0 := not q0;
Q0 representa a primeira sada do sistema, isto , o programa pode comandar esta varivel e
esta varivel est associada a um actuador, isto , por exemplo, seria possvel associar uma luz
varivel Q0 e quando Q0 estivesse activo, a luz estaria acesa.
O cdigo deste programa comuta continuamente True -> False -> True, etc a varivel Q0.
Automao 2007/8 4 / 11
Programa de Teste 3 Entradas e foragens
q0 := i0;
A entrada I0 uma varivel associada a um sensor externo, por exemplo, seria possvel a
varivel I0 estar associada a um boto e nessa altura sempre que o boto estivesse premido, a
varivel teria o valor true. No possvel o programa atribuir valores a variveis de entrada.
Faa experincias.
A funo especial RE (Rising Edge) fica activa apenas se no ciclo anterior do autmato a
varivel em causa estava a False (0) e no presente ciclo est a True (1).
Execute com Run F9, e teste o funcionamento: a cada flanco ascendente (de 0 para 1) da
varivel I0, a varivel Q0 trocada. A funo booleana XOR utilizada para obter a
funcionalidade de comutao.
Automao 2007/8 5 / 11
Programa de teste 5 Temporizadores
Utilize o menu Project -> open para abrir, dentro do directrio help, o ficheiro com o nome
TimerSimple2.faproj, que listado de seguida para facilidade de consulta:
(**************************************************************)
(* TimerSimple2.faproj - Exemplo de Timers *)
(* Modo TOn: Liga aps xxx.P dcimos de segundo *)
(* Modo TOff: Liga logo e desliga aps xxx.P dcimos de seg *)
(* Pisca Q0 1 seg on e 1 seg off *)
(**************************************************************)
end_if;
if t0.q then
start t0;
start t1;
q0 := not q0;
end_if;
xxx.Q o bit associado ao temporizador xxx; para um temporizador no modo TOn, este bit
fica True passado xxx.P dcimas de segundo; para o modo TOff, este bit fica False passado
passado xxx.P dcimas de segundo.
Estude o cdigo e as formas de onda acima apresentadas. Tente seguir o funcionamento do
programa para se aperceber do funcionamento dos temporizadores do FEUP Autom.
Obs: Os temporizadores do FEUPAutom nunca param e o comando START marca o instante
do incio da contagem de tempo
Automao 2007/8 6 / 11
Programas Livres
Programa Livre 1
Crie um programa que apenas liga a sada Q0 quando I0 e I1 estiverem ambas ligadas.
Programa Livre 2
Programa Livre 3
Crie um programa que a cada flanco descendente da varivel i0, activa para a sada seguinte:
q0, q1, q2, q0,
Programa Livre 4
Crie um programa que ligue Q0 quando I0 estiver activo um tempo superior a 1 segundo.
Programa Livre 5
Crie um programa que ligue Q0 quando I0 estiver activo mas Q0 s pode ficar activo durante
um tempo mximo de 1 segundo.
Automao 2007/8 7 / 11
O Simulador 3D Park
Obs: Estas opes esto tambm disponveis no menu de contexto do rato premir o boto do
lado direito do rato sobre a imagem
Automao 2007/8 8 / 11
Parte 2: Trabalho do Parque Especificao base
Quando um novo carro chega entrada do parque, e no caso de haver lugares disponveis:
o a cancela abre para o carro entrar.
o a cancela fecha depois do carro deixar de ser detectado pela clula 2 (e no aps um
tempo fixo como, simplificadamente, se admitia no trabalho anterior).
Entradas
celula1 I1
celula2 I2
celulaSaida I3 Clula2
Sadas
abrirCancela Q1
fecharCancela Q2
semaforoVerde Q3
semaforoVermelho Q4 Clula1
Utilize a janela Window -> Variables do FEUPAutom para definir o nome das
variveis e seus mapeamentos de acordo com a tabela acima mostrada.
Automao 2007/8 9 / 11
Parte 3: Trabalho do parque Especificao completa
Relativamente situao anterior considere agora as seguintes especificaes adicionais:
Existem dois novos fim-de-curso designados por cancelaAberta e cancelaFechada que esto
activos quando a cancela est completamente aberta ou fechada, respectivamente.
Assim, a ordem de abertura da cancela deve passar a estar activa apenas enquanto o fim-de-
curso cancelaAberta no estiver activo (caso contrrio, o motor foraria a cancela para alm
da sua posio limite)
Para o fecho da cancela deve considerar uma especificao semelhante, isto , a ordem de
fecho s deve estar activa at o fim-de-curso cancelaFechada indicar que a cancela j est
completamente fechada.
Como anteriormente, a cancela fecha quando o carro que entrou deixar de ser detectado pela
clula2.
Se, antes da cancela estar completamente fechada, for detectado a presena de um novo carro
pela clula2, por uma questo de segurana, a cancela deve abrir imediatamente.
Desenvolva o programa de controlo para esta nova situao considerando a seguinte lista de
atribuies:
Entradas
celula1 I1
ligarSirene desligarSirene
celula2 I2
celulaSaida I3
cancelaAberta I4 cancelaAberta
cancelaFechada I5
desligarSirene I6
Sadas
abrirCancela Q1 Clula2
fecharCancela Q2
semaforoVerde Q3
semaforoVermelho Q4
ligarSirene Q5 cancelaFechada
Clula1
Automao 2007/8 10 / 11
Para valorizao de nota, considere ainda a especificao adicional:
Tal como referido anteriormente, se, antes da cancela estar completamente fechada, for
detectado a presena de um novo carro pela clula2, por uma questo de segurana, a cancela
deve abrir imediatamente. No entanto, como esta situao corresponde a uma entrada
ilegtima de um novo carro, dever ser accionada uma sirene, a qual permanecer ligada at
que o boto desligarSirene seja premido.
Utilize a janela Window -> Variables do FEUPAutom para definir o nome das
variveis e seus mapeamentos de acordo com a tabela acima mostrada.
Relatrio Final
No final da segunda aula sero avaliadas as funcionalidades implementadas e o desempenho
do grupo ao longo das duas aulas ser avaliado
Cada grupo deve enviar, no final da segunda aula, por EMail, ao respectivo professor das
aulas prticas as impresses para PDF geradas pelo FEUPAutom do cdigo produzido para
cada um dos trabalhos do parque (partes 2 e 3). O EMail a enviar deve ter o ttulo [Auto] TP2
Turma xxx Grupo yyy e deve ter anexo os 2 PDFs; o texto do email deve conter a turma, o
grupo e o nome dos autores do trabalho (substituir xxx pela turma e yyy pelo n grupo).
Bom Trabalho !
Automao 2007/8 11 / 11