Exemplos de código para Linux - 26/10/2018


HOWTO build a simple RT application


Tarefas Periódicas

Tarefa Periódica no Linux - versão 1


Tarefa Periódica no Linux - versão 2


Tarefa Periódica no Linux - versão 3


Pthreads

Pthreads no Linux - versão 1

Pthreads compartilhando a tela


Simulador em tempo real de uma caldeira (em Java)

A descrição do sistema simulado está aqui.

O simulador é usado para simular uma unidade de caldeira cuja dinâmica acontece em tempo real.

java -jar aquecedor2008_1.jar <número-porta-udp-escutada>

Código fonte do simulador em Java está em simulador-quecedor-fontes.zip. Olhar arquivo dicas.txt dentro do zip.

Caldeira pode ser controlada via comandos UDP/IP através do programa controlemanual.c .


A caldeira possui instrumentação embutida e aceita os seguintes comandos (UDP/IP):
"sta0" lê valor de Ta
"st-0" lê valor de T
"sti0" lê valor de Ti
"sno0" lê valor de No
"sh-0" lê valor de H
"ani123.4" define valor de Ni como 123.4
"aq-567.8" define valor de Q como 567.8
"ana123.4" define valor de Na como 123.4
"anf123.4" define valor de Nf como 123.4

Cuidado com a formatação dos valores em ponto flutuante.

Sugestão de trabalho: Implementar em C no Linux o programa CONTROLADOR, o qual deve incluir as seguintes funcionalidades de controle:

- Laço de controle como tarefa periódica para a temperatura;
- Laço de controle como tarefa periódica para o nível;
- Uso do tanque auxiliar e da saída de água;
- Informações na tela sobre a situação corrente;
- Verificação da temperatura a cada 5ms para disparo de tarefa de alarme caso esteja acima de 50 graus;
- Entrada através do teclado dos valores de referência para nível e temperatura;
- Armazenagem periódica dos valores lidos de temperatura e nível em arquivo, através de buffer duplo (produtor/consumidor).
 
Outros requisitos:
- Usar mutex para proteger as variáveis compartilhadas;
- Tarefas periódicas implementadas com precisão e não com sleep fixo;
- Período do controlador de temperatura deve ser 50ms;
- Período do controlador de nível deve ser 70ms;
- Atualização da tela pode ser com sleep simples de 1 segundo.

Alguns aspectos para a composição da nota do trabalho do controlador:
- Fez no Linux, em C, usando a biblioteca das pthreads ?
- Foi usado um mutex para cada estrutura compartilhada ?
- A aplicação apresenta valores dos sensores na tela ?
- A aplicação possui laços de controle para temperatura e nível ?
- A aplicação acessa teclado durante a execução do controlador, afeta valor de referência ?
- A aplicação grava leituras em arquivo ?
- As tarefas de controle são realmente periódicas ?
- Existe uma tarefa para o alarme ?