DAS 9002: Técnicas de Implementação de Sistemas Automatizados

Trabalhos para 2007

Todos os trabalhos devem ser feitos em C no Linux.

Todos os trabalhos devem ser apresentados pelos alunos no
computador, em horário a ser combinado (extra-classe).

Entrega deve serUma sugestão para quem só tem Windows em casa é usar o MinGW.

      

T1 - Trabalho do controlador de sistema a eventos discretos

Considere o problema da Linha de Produção de Cervejas, como descrito no
capítulo 3 da apostila do Prof. Cury sobre "Teoria de Controle Supervisório
de Sistemas a Eventos Discretos", página 20.

http://www.das.ufsc.br/~cury/cursos/apostila.pdf

O objetivo neste trabalho é implementar um controlador para maximizar a
produção da planta, ou seja, manter todas as estações da linha
trabalhando simultaneamente a maior parte do tempo.

Escrever um novo controlador.c que seja automático (o fornecido é manual) e que
maximize a produtividade da planta, considerando a produção de um lote de N garrafas.

Comandos do controlador manual:
e - avança esteira
a - liga atuador
b - liga a bomba
t - liga o tampador
r - liga o robô

Todos eles desligam após realizar um ciclo de trabalho.

As rotinas do tipo acionaXYZ retornam -1 quando o dispositivo
está em operação, neste caso um novo pedido de acionamento é
ignorado até que o dispositivo retorne para o estado de repouso.

Os seguintes arquivos estão disponíveis:

envasilhamento4.pdf    Arquivo descrevendo a máquina de estados da planta

motor4.c    Exemplo do programa controlador a ser feito

motor4.h    Descrição das rotinas disponíveis no simulador da planta

envasilhamento4.c    Simulador da planta

envasilhamento4.h    Descrição das rotinas disponíveis no simulador da planta

controlador4.c    Simulador da planta

T2 - Trabalho do simulador multithread

Modificar o simulador do trabalho passado para que o mesmo seja multi-thread.
Uma nova thread deve ser criada de forma que ela periodicamente indique a passagem
do tempo, ao invés do controlador como é feito no exemplo fornecido.

Deve ser modificado o arquivo motor.c para incluir esta nova thread, e o controlador.c
não mais fará esta função.

T3 - Trabalho do simulador de tempo real

Modificar o simulador do trabalho anterior de forma a tornar a thread que
marca a passagem do tempo uma thread realmente periódica.

O relatório técnico Trabalhando com o Tempo Real em Aplicações Sobre o Linux pode
ser consultado sobre funções Unix para manipular tempo.

T4 - Trabalho sobre medições de tempo

Fazer um registro em arquivo dos tempos solicitados de sleep pela thread periódica do
trabalho anterior. A medição deve manter os dados em memória, até o final da
experiência, quando os mesmos deverão ser escritos em arquivo.

Gerar um histograma com os dados medidos.

Realizar a experiência com o computador executando apenas a simulação e com
o computador executando várias aplicações simultâneas.