Sei sulla pagina 1di 4

UNIVERSIDADE FEDERAL DE SANTA

CATARINA

DEPARTAMENTO DE AUTOMAO E
SISTEMAS

Tcnicas de Implementao de Sistemas


Automatizados

Controle de um aquecedor eltrico com uso de


programao concorrente

Richard Alfonso Andrade Alfaro

8 de Maio de 2014

Descrio geral do programa


O programa est estruturado como amostra a figura 1, ele tem 5 blocos os quais agrupam todos os
threads que esto sendo utilizado no programa. Para fazer mais rpida a escrita e leitura das variveis,
algumas estruturas foram criadas segundo a funo que elas desempenham, estas estruturas so
mostradas na figura2.

Figura 1.- Diagrama de blocos do programa.

O bloco Monitor o bloco principal do programa, ele armazena todas as variveis compartilhadas e
globais do programa, alm disso ele supervisiona os acessos dos threads s variveis. O bloco de
comunicao agrupa dois funcos encargadas de ler y escrever as variveis da planta, o thread de
lerDados l todos os dados da planta y atualiza estes no monitor, para fazer isso ela utiliza a estrutura
vPlanta (Figura 2) a qual engloba todas aquelas variveis. O thread escreverDados l os dados de
controle do monitor e escreve eles na planta, para faz-lo utiliza a estrutura Saidas.
O bloco Teclado tem s uma thread, a qual l os comandos ingressados no teclado, traduze aqueles
comandos e escreve, de acordo ao comando, a varivel de referncia de temperatura ou de nvel.

Figura 2.- Estruturas de dados do programa.

O bloco de controle agrupa as dois threads encarregadas de fazer o controle de nvel y de temperatura
da planta. A thread de controle de nvel utiliza a estrutura cNivel para ler as variveis de altura y
referncia de altura, faz o controle, e depois escreve ao monitor a varivel Ni, mas esta varivel
escrita com uma funo no monitor y no diretamente. Especificamente para os dois controles foram
criadas funciones especiais no monitor para escrever as variveis Q y Ni diretamente e no com uma
estrutura. A thread de controle de temperatura faz o mesmo do que a thread de controle de nvel mas
utiliza a estrutura ctemperatura y Q para ler y escrever, respetivamente.
O bloco chamado tela agrupa dois threads encarregadas de mostrar todos os dados do programa a
traves de dois mdios, a tela e um arquivo de sada. A thread de impresso l todos os dados do
monitor e escreve estes dados na tela, este thread utiliza as estruturas vPlanta, Saidas, referencia e
alarmban. Este ltimo a estrutura que agrupa os estados das bandeiras de alarmes. A thread de
salvardados l as variveis da planta e as sadas, utilizando as estruturas vPlanta e Saidas, para
escrever estas num arquivo de texto.
O bloco de alarmes tem 5 threads, 4 delas so as encarregadas de trocar os estados das bandeiras de
alarmes de nvel, referncia de nvel, temperatura e referncia de temperatura segundo os valores
crticos da planta. O funcionamento das 4 threads so iguais, quando a varivel est dentro no rango
correto a thread dormida e fica esperando uma sinal para voltar y trocar o valor da alarme que ela
este monitorando.
A sinal enviada por uma quinta thread que chamada monitor de alarme este l os quatro dados
que so monitorados pelas quatro threads, se um destes dados supera o rango, o monitor envia uma
sinal para a thread encarregada dessa sinal para ativar a alarme.

Variveis compartilhadas.
Variveis da planta
As variveis da planta so mostradas na figura 3, na figura pode-se ver quais threads compartilham
estas variveis. S tem uma thread de escritura que feita pela thread de comunicao, e so lidas
por 5 threads, pelas alarmes, controle, escrita na tela e escrita no arquivo.

Figura 3.- Compartilhamento das variveis da planta.

Variveis de referencia
A figura 4 mostra como as variveis de referncia interatuam com as threads, como o caso anterior
esta escrita s por a thread de teclado, mas lida por quatro threads, de controle, escrita na tela e
pelo monitor das alarmes.

Figura 4.- Compartilhamento das variveis de referncia.

Variveis de sada
A figura 5 mostra como as variveis de sada so compartilhadas, como foi descrito anteriormente
estas variveis so escritas uma a uma por diferentes threads, de controle de nvel e de temperatura,
mas so lidas em grupo pela estrutura Saidas por trs threads, escrita na tela, escrita na planta e
escrita no arquivo.

Figura 5.- Compartilhamento das variveis de sada.

Variveis das alarmes


A figura 5 mostra que thread controla que bandeira de alarme, cada varivel tem sua prpria thread
mas so lidas todas, com uso da estrutura alarmband, por a thread de escrita na tela. Alm disso,
mostra-se como o monitor de alarmes controla a 4 variveis condio das threads de alarmes.

Figura 6.- Compartilhamento das variveis de alarmes.

Potrebbero piacerti anche