Instituto Tecnológico de Aeronáutica
CE-235
Sistemas Embarcados de Tempo Real
Prof. Dr. Adilson Marques da Cunha
Prof. Dr. Luiz Alberto Vieira Dias
(Relatório dos Labs de 1 a 7)
José Luiz Moreira
Sumário
1. Funcionamento Geral da Aplicação. ... 5
1.1 Sistema de Tingimento ... 5
1.2 Tank... 5
1.3 Controlador. ... 6
1.4 Cenário de Execução de Tingimento. ... 6
1.5 Estrutura Básica do processo de Tingimento. ... 7
1.6 Detalhes do cenário do Sistema de Tingimento. ... 8
1.7 Comentários ... 8
2. Lab1 - Controller / Tester. ... 8
2.1 Objetivos. ... 8
2.2 Procedimento. ... 9
3. Lab 2 – Válvula, Iniciando o Sistema de Baixa Temperatura. ... 15
3.1 Objetivos: ... 15
3.2 Procedimento. ... 15
4. Lab 3 – Complete Low-Temp System... 19
4.1 Objetivos ... 19
5. Lab 4– Master and Tank Containers... 29
5.1 Objetivos ... 29
5.2 Instruções : Part 1 - Agregação (de estrutura) ... 29
Indexes das figuras
Figura 1 - Criando cápsula Dyeing System ... 9
Figura 2 - Criando o modelo par Dyeing System ... 10
Figura 3 - Criando o Componente Dyeing System... 10
Figura 4 - Desenhando a dependência entre DyeingSystem e RTComponent ... 11
Figura 5 - Criando o Processador DyeingSystem ... 11
Figura 6 - Execução - Fase de Enchendo o Tanque ... 12
Figura 7 - Execução – Fase de Tingimento ... 12
Figura 8 - Execução - Fase de Esvaziando o Tanque ... 13
Figura 9 - Fim da Execução - Volta ao estado inicial ... 13
Figura 10 - Diagrama de Sequência do Processo de tingimento... 14
Figura 11 - Diagrama de Sequência do Processo de tingimento (Cont.) ... 14
Figura 12 - Criando o Protocolo flow ... 15
Figura 13 - Criando a Cápsula Valve ... 16
Figura 14 - Criando a Estrutura da Válvula... 16
Figura 15 - Definindo o Comportamento da Cápsula Valve ... 17
Figura 16 - Execução da Cápsula Valve ... 17
Figura 17 - Execução da Cápsula Valve ... 18
Figura 18 - Diagrama de Sequência da Execução da Cápsula Valve ... 18
Figura 19 - Criando a Cápsula DyeingSystem ... 20
Figura 20 - Criando a Estrutura da Cápsula DyeingSystem ... 20
Figura 21 – Definindo a nova estrutura da Cápsula Valve ... 21
Figura 22 - Definindoo novo Comportamento da Cápsula Valve ... 21
Figura 23 - Criando o protocolo AcquiredValve ... 22
Figura 24 - Criando a Cápsula Level ... 22
Figura 25 - Definindo a Estrutura da Cápsula Level ... 23
Figura 26 - Definindo o Comportamento da Cápsula Level ... 23
Figura 27 - Criando a Cápsula Dye ... 24
Figura 28 - Definindo a Estrutura da Cápsula Dye... 24
Figura 29 - Definindo o Comportamento da Cápsula Dye ... 25
Figura 30 - Modificando a Estrutura da Cápsula DyeingSystem ... 25
Figura 31 - Colocando os Probe nas portas OperatorDialog e LevelDialog no Controller ... 26
Figura 32 - Criando mensagem para a Probe Operator Dialog ... 26
Figura 33 - Criando Mensagem para a probe Level ... 27
Figura 34 - Execução do DyeingSystem ... 27
Figura 35 - Execução do DyeingSystem (Cont.) ... 28
Figura 36 - Criando a Cápsula Master (Aggregate) ... 30
Figura 37- Criando a Cápsula Tank (Aggregate) ... 30
Figura 38 - Acrescentando uma Relay Port OperatorDialog ... 31
Figura 39 - Acrescentando as Probes ... 31
Figura 40 - Definindo a Mensagem para a probe OperatorDialog ... 32
Figura 41 - Definindo a Mensagem para a Probe Level ... 32
Figura 42 - Execução do Processo de Tingimento ... 33
Figura 43 - Criando a Passive Class Constant ... 34
Figura 44 - Criando o Atributo MAXUNITS ... 35
Figura 45 - Definindo a Cardinalidade das portas ... 36
Figura 46 - Inserindo a Cardinalidade da Cápsula Tank ... 37
Figura 48 - Execução do Processo de Tingimento Com um Controller ... 38
Figura 49 - Alterando o valor de MAXUNITS ... 38
Figura 50 - Inserindo o Probe nas portas OperatorDialog dos Tanques ... 39
1. Funcionamento Geral da Aplicação.
O propósito do sistema de dyeing é tingir tecido com uma cor especificada. Este processo é realizado enchendo um tanque de tintura líquida, enquanto colocando o tecido no tanque, e deixando o tecido saturar durante um tempo prefixado, deixando a tintura penetrar o tecido e muda sua cor.
1.1 Sistema de Tingimento
O diagrama abaixo mostra uma visão de alto-nível de um sistema de dyeing. Está composto de um tank dentro do qual e feito o tingimento, e um controlador responsável pelo controle do tanque no processo de Tingimento. Operador, externo ao sistema, configura o controlador e então começa o processo de tingimento.
1.2 Tank
O tanque segura o tecido a ser tingido e a solução de tintura. A válvula de abastecimento permite que a solução entre no tanque, e a válvula de dreno permite sua remoção. O nível atual no tanque é informado continuamente pelo sensor nivelado. As válvulas são dispositivos dois estados (on ou off), onde o sensor nivelado é um dispositivo contínuo, isso significa que as saídas continuas varia com a função de entrada.
O sensor de nível provê a avaliação necessária corretamente e seguramente para controle do processo de tingimento. Este exemplo é um sistema de loop fechado. Reciprocamente, sistemas loop-aberto, não contem nenhum mecanismo de feedback e tenha que confiar em suposições sobre o estado do sistema para controlar processo.
1.3 Controlador.
O controlador tem duas responsabilidades primárias: primeiro, agir em comandos do operador; e segundo, encher e escoar o tanque, e monitora a quantia de tintura que esta no tanque e a quantia de tempo o tecido é exposto à tintura.
1.4 Cenário de Execução de Tingimento.
O operador configura o controlador para executar o tingimento especificando um tipo de tecido e cor de tintura, e então inicia o processo. O controlador abre o abastecimento imediatamente válvula, permitindo tintura começar a encher o tanque. Quando o sensor do controlador informar que o tanque está cheio, fecha a válvula de abastecimento e começa um cronômetro. Um período predeterminado de tempo, depois o cronômetro encerra. Este evento alerta o controlador para abrir a válvula de dreno que esvazia a tintura do tanque. Quando o tanque estiver vazio, o controlador fecha o escoe válvula, e o processo está completo. Neste momento, o sistema está pronto a processar mais um tecido.
Vendo o processo como uma função de tempo pode somar valiosa informação sobre o funcionamento de um sistema. O gráfico mostra como o nível da tintura varia com o passar do tempo durante o processo de tingimento. Também são mostrados os estados principais do processo de dyeing.
1.5 Estrutura Básica do processo de Tingimento.
Há cinco elementos básicos no sistema de dyeing: o controlador encha válvula, válvula de dreno, sensor nivelado, e tintura líquida. O último em quatro (as duas válvulas, sensor, e tintura) é elementos do tanque. A interconexão é mostrada no diagrama acima.
1.6 Detalhes do cenário do Sistema de Tingimento.
1.7 Comentários
Nessa introdução podemos observar qual o propósito do sistema de tingimento, observando que nesse contexto em um alto nível de abstração participam o operador, controlador e o Tank, cada um com os seguintes papeis resumidamente:
• Tank possui uma válvula de abastecimento e uma válvula de dreno.
• O controlador com duas responsabilidades primárias: 1º Agir com os comandos do operador, 2º encher e escoar o tanque
2. Lab1 - Controller / Tester.
Esse lab acompanha o módulo 4 - “Estrutura de Cápsulas: Portas, Protocolos, e regras de Cápsulas. Nesse laboratório você criara uma simples versão do sistema de tingimento usando uma existente cápsula de classe. O controlador e Provador. Você criará cápsulas com estrutura simples e nenhum comportamento.
2.1 Objetivos.
• Uso de ferramentas básicas
• Construir um simples modelo para os componentes existentes • Compilar, executar e testar e debugar o modelo.
• Gerar um diagrama de seqüência para o modelo de execução. • Criar o diagrama de classes do modelo.
2.2 Procedimento.
Abaixo a descrição dos procedimentos resumidos:
• Foi aberto o modelo DyeingSystem.rtmdl para iniciar o Lab1. • Foi salvo o em uma pasta com o nome de Lab1DyeingSystem.. • Criado a cápsula DyeingSystem, como mostra a Figura 1
• Criado o diagrama de estrutura inserido a cápsula Controller e Tester e conectado como mostrado na Figura 2.
• Criado um componente chamado de DyeingSystem, e inserido a cápsula principal DyeingSystem e configurado como ativa para realizar a compilação para verificar se existem erros, como mostra a Figura 3.
• Criado a dependência DyeingSystem e o componente RTComponent, como mostra a Figura 4. • Criado um processador chamado de DyeingSystem, e inserido ao componente DyeingSystem e
configurado como ativado para realizar a execução, como mostra a Figura 5 • Na Figura 6, Figura 7 e Figura 8, mostramos as fases do processo de tingimento. • Na Figura 9 mostramos o término do processo de tingimento, voltando ao estado inicial. • Na Figura 10 e Figura 11, mostramos o diagrama de seqüência do processo de tingimento.
Figura 2 - Criando o modelo par Dyeing System
Figura 4 - Desenhando a dependência entre Dyeing System e RTComponent
Figura 6 - Execução - Fase de Enchendo o Tanque
Figura 8 - Execução - Fase de Esvaziando o Tanque
Figura 10 - Diagrama de Sequência do Processo de tingimento
3. Lab 2 – Válvula, Iniciando o Sistema de Baixa Temperatura.
Este exercício envolve criação de cápsulas com estrutura simples de comportamento. Você vai construir o protocolo de Fluxo e classe de cápsula de Válvula, e então compile e depure o modelo, removendo quaisquer erros de tempo de execução. Então você adiciona a cápsula DyeingSystem.
3.1 Objetivos:
Quando você completar esse laboratório com sucesso, você terá feito:
• Criar uma cápsula com uma estrutura simples e adicionar uma simples interface • Começar a construção de um modelo complexo
• Criar um protocolo simples de classe.
3.2 Procedimento.
• Removido a cápsula tester do diagrama de estrutura da capsula DyeingSystem..
• Criado uma classe protocolo com o nome de Flow com um sinal de saída chamado amount, como mostra a Figura 12.
• Criando uma Cápsula com o nome Valve, como mostra a Figura 13 • Criando a estrutura da Cápsula valve, como mostra a Figura 14 • Criando o comportamento da Cápsula Valve, como mostra a Figura 15
• Na Figura 16 e Figura 17, mostramos o monitor de estado da execução do processo de tingimento.
• Na Figura 18, mostramos o Diagrama de Seqüência da execução do funcionamento da válvula.
Figura 13 - Criando a Cápsula Valve
Figura 15 - Definindo o Comportamento da Cápsula Valve
Figura 17 - Execução da Cápsula Valve
4. Lab 3 – Complete Low-Temp System
Completar o do sistema de tingimento de baixa temperatura, você integrará um cronômetro no designer da cápsula de Válvula para enviar mensagens de Flow::amount periodicamente. Você vai também criar o protocolo AcquiredValue, a classe Level e a classe Dye. Finalmente, você adicionará a cápsula Level e Dye em DyeingSystem e irá completar os testes da classe DyeingSystem.
4.1 Objetivos
Quando esses exercícios forem completados com sucesso você terá realizado:
• A construção completa de um modelo complexo.
• Fazer uso de Timers no modelo com o serviço de biblioteca TimerServices.Procedimentos • Criando a Cápsula DyeingSystem, como mostra a Figura 19.
• Criando a Estrutura da Cápsula DyeingSystem, como mostra a Figura 20 e Figura 21. • Criando o comportamento da Cápsula DyeingSystem, como mostra a Figura 22 • Criando o protocolo AcquiredValve, como mostra a Figura 23.
• Criando Cápsula Level, como mostra a Figura 24
• Definindo a estrutura da Cápsula Level, como mostra a Figura 25 • Definindo o comportamento da Cápsula Level, como mostra a Figura 26. • Criando Cápsula Dye, como mostra a Figura 27
• Definindo a estrutura da Cápsula Dye, como mostra a Figura 28 • Definindo o comportamento da Cápsula Dye, como mostra a Figura 29 • Modificando a estrutura da Cápsula DyeingSystem, como mostra a Figura 30 • Acrescentando os Probe para a execução do processo, como mostra a Figura 31 • Colocando a mensagem para o Probe operatorDialog, como mostra a Figura 32 • Colocando a mensagem para o Probe Level, como mostra a Figura 33
Figura 19 - Criando a Cápsula DyeingSystem
Figura 21 – Definindo a nova estrutura da Cápsula Valve
Figura 23 - Criando o protocolo AcquiredValve
Figura 25 - Definindo a Estrutura da Cápsula Level
Figura 27 - Criando a Cápsula Dye
Figura 29 - Definindo o Comportamento da Cápsula Dye
Figura 31 - Colocando os Probe nas portas OperatorDialog e LevelDialog no Controller
Figura 33 - Criando Mensagem para a probe Level
5. Lab 4– Master and Tank Containers.
Esse laboratório acompanha o Modulo 9 “Structure Hierarchies”. Esse laboratório e divido em duas partes, em uma parte você irá reorganizar o modelo dyeing system para realizar o trabalho mais facilmente. Na primeira parte utilizaremos o Rational Rose Real Time com suas características de agregação para criação de um container de cápsulas Tank e Máster. Lembre-se que características de agregação são ferramentas que permite que você combine cápsulas. Não e igual a agregação da UML. A segunda parte do laboratório usará replica para criar múltiplos tanks e controlers.
5.1 Objetivos
Após completar esse laboratório você será capaz de:
• Criar uma estrutura de hierarquia (cápsulas que contem outras cápsulas) no modelo existente. • Aplicar a técnica de agregação.
• Aplicar replicação (cardinalidade) para cápsulas e portas. • Compilar, executar e debugar a estrutura do modelo complexo.
5.2 Instruções: Part 1 - Agregação (de estrutura)
• Criando a Cápsula Master utilizando a agregação, como mostra a Figura 36 • Criando a Cápsula Tank utilizando a agregação, como mostra a Figura 37 • Acrescentando uma Relay Port operatorDialog, como mostra a Figura 38
• Acrescentando os Probe nas portas operatorDialog e Level, como mostra a Figura 39 • Definindo a mensagem para a Probe operatorDialog, como mostra a Figura 40 • Definindo a mensagem para a Probe Level, como mostra a Figura 41
Figura 36 - Criando a Cápsula Master (Aggregate)
Figura 38 - Acrescentando uma Relay Port OperatorDialog
Figura 40 - Definindo a Mensagem para a probe OperatorDialog
5.3 Part 2 – Replicação
• Criando a Passive Class Constant, como mostra a Figura 43 • Criando o Atributo MAXUNITS, como mostra a Figura 44 • Definindo a Cardinalidade das portas, como mostra a Figura 45 • Definindo a Cardinalidade da Cápsula Tank, como mostra a Figura 46 • Definindo a Cardinalidade da Cápsula Master, como mostra a Figura 47 • Na Figura 48, mostramos o processo de tingimento com um controller apenas. • Alterando o valor do atributo MAXUNITS para três, como mostra a Figura 49
• Inserindo as Probes nas portas OperatorDialog dos Tanques, como mostra a Figura 50 • Na Figura 51, mostramos a execução do processo de tingimento com 3 controllers.
Figura 44 - Criando o Atributo MAXUNITS
Figura 45 - Definindo as Características do Atributo
Figura 46 - Inserindo a Cardinalidade da Cápsula Tank
Figura 48 - Execução do Processo de Tingimento com um Controller
Figura 50 - Inserindo o Probe nas portas OperatorDialog dos Tanques
6. Lab 5– Start High-Temperature System .
Esse laboratório acompanha Modulo 10 “Inheritance Hierarchies”.Nesse lab você aprenderá como gerenciar um modelo complexo usando herança hierárquica , você cria um sistema de alta-temperatura do sistema de tingimento por uma superclasse e subclasse existente através de cápsulas, protocolos e classes passivas no DyeingSystem.
6.1 Objetivos
Quando completar esse laboratório com sucesso você estará apto a:
• Criar um sistema completamente novo construindo hierarquias de herança.
• Aplicar o sistema de bottom-up no sistema de hierarquia de classe (generalizando as classes existentes).
• Aplica o designer top-down de hierarquia de classes (especializando em classes existentes). • Compile, execute e debug um modelo que contem herança de classes.
6.2 Instruções: Part1 – Crie a Hierarquia de classes.
• Iniciou abrindo o modelo DyeingSystem que foirealizado no lab 4; • Mudar a Constant::MAXUNITS para 1• Criar uma cápsula chamada Device;
• Criar um class diagram chamada Inheritance;
• Arrastar as cápsulas Device e Valve para o class diagram Inheritance;
• Utilizando a conexão Generalization fazer a conexão da cápsula Valve para cápsula Device; • Abrir o diagrama de estrutura da cápsula Valve;
• Selecionar todos os elementos da cápsula Valve e dar click com o botão direito no diagrama e selecionar Parts->Promote;
• Abrir o diagrama de estado da cápsula Valve;
• Selecionar todos os elementos do estado Valve e dar click com o botão direito no diagrama e selecionar Parts->Promote;
• Abrir a especificação da cápsula Valve;
• Selecionar cada atributo cápsula Valve e dar click com o botão direito e selecionar Promote; • Criar uma cápsula com chamada Heater;
• Arrastá-la a cápsula Heater para o class diagram Inheritance;
• Utilizando a conexão Generalization fazer a conexão da cápsula Heater para cápsula Device; • O class diagram ficará como mostra a Figura 52;
• O Diagrama de Estrutura da cápsula Device ficará como mostrado na Figura 53 • O Diagrama de Estado da cápsula Device ficará como mostrado na Figura 54
Figura 52 - Class Diagram Inheritance
Figura 53 - Estrutura da Cápsula Device
• Seguindo os passos executados para a cápsula Device, criar uma cápsula chamada Sensor e promover a estrutura, o diagrama de estado e os atributos da cápsula Level para a cápsula sensor;
• Criar uma cápsula Thermometer e definí-la como subclass da cápsula Sensor; • O class diagram ficará como mostra a Figura 55Figura 52;
• O Diagrama de Estrutura da cápsula Sensor ficará como mostrado na Figura 56 • O Diagrama de Estado da cápsula Sensor ficará como mostrado na Figura 57
Figura 55 - Diagrama de Classe Inheritance
Figura 57 - Diagrama de Estado da Cápsula Sensor
6.3 Part 2 – Usando SubClasses
• Criar a subclasse DyeHT da Cápsula Dye;
• Modificar a estrutura e o comportamento da Cápsula DyeHT como mostrado na Figura 58 e Figura 59;
• Compilar e tirar os erros de compilação;
Figura 59 - Diagrama de Estado da Cápsula DyeHT • Criar a subclasse TankHT da Cápsula Tank
• Abrir a estrutura da cápsula TankHT;
• Sobreponha a cápsula dye pela cápsula DyeHT;;
• Modificar a estrutura da Cápsula TankHT como mostrado na ;
• Compilar e tirar os erros de compilação, e testar a cápsula. O resultado é mostrado na Figura 61;
Figura 61 - Teste da Cápsula TankHT
• Criar uma subclass chamada ControllerHT da classe Controller;
• Modificar a estrutura da classe ControllerHT, adiconando as portas heat e temperature), como é mostrado na Figura 62
Figura 62 - Diagrama de Estrutura da Cápsula ControllerHT • Criar uma subclass chamada MasterHT da classe Master;
• Modificar a estrutura da classe MasterHT, sobrepondo a cápsula Controller pela ControleerHT e adicionar as relay ports heat e temperature), como é mostrado na Figura 63;
Figura 63 - Diagrama de Estrutura da Cápsula MasterHT • Criar uma subclass chamada DyeingSystemHT da classe DyeingSystem;
• Modificar a estrutura da classe DyeingSystemHT, sobrepondo a cápsula Master por MastrHT e Tank por TankHT, e conectar as portas heat e temperature,, como é mostrado na Figura 64 • Compilar e tirar possíveis erros de compilação;
Figura 64 - Diagrama de Estrutura da Cápsula DyeingSystemHT
7. Lab 6– Completar o Sistema de Alta Temperatura
Esse laboratório acompanha Modulo 11 “Behavior Hierchies”.Neste laboratório você aprenderá administrar complexidade de comportamento construindo uma maquina hierárquica de estados infinitos (FSMs). Você modificará o comportamento do controlador de forma que se torne uma máquina de estado hierárquico. Então você somará comportamento termostático para ControllerHT de forma que isto pode regular a temperatura do liquido de tingimento do tank.
7.1 Objetivos
Quando completar esse laboratório com sucesso você estará apto a: • Criar uma FSM em um modelo existente.
• Distribuir o comportamento pelo FSM hierárquico de um modelo.
• Compilar, executar e debugar um modelo que contem uma máquina de estados finitos (FSMs).
7.2 Procedimento
7.3 Part 1 – Agregação do Controlador.
• Modificar o comportamento do Controller, agregando as cápsulas dyeing, filling e draining. E renomei para running, como mostra a Figura 65 e Figura 66;
• Salve o modelo
• Execute o teste de Performance de 30 Segundos de DyeingSystem para verificar que esta funcionando adequadamente, como mostra a Figura 67;
•
•
Figura 66 - Diagrama de Estado da Cápsula Running
Figura 67 - Tela de Teste da Cápsula DyeingSystem
7.4 Part 2 – Criando um comportamento hierárquico
• Para o ControllerHT adicione um atributo com o nome de dyeningTemperature (int), com um valor inicial 30.
• Modifique comportamento de ControllerHT para manter a tintura a uma temperatura fixa; o Acrescente no estado dyeing na aba EntryActions.o código como mostra a Figura 68 o Acrescente no estado dyeing na aba ExitActions.o código como mostra a Figura 69
• Crie dois novos estados de dyening com o nome de heating e maintaning como mostra a Figura 70;.
• Crie dois novos estados de maintaining com o nome de heatOn e heatOff como mostra a Figura 71 • Salvar o modelo
Figura 68 - Código a ser executado na entrada Figura 69 - Código a ser executado na saída
Figura 71 - Novos estados da Cápsula maintaining
Figura 72 - Execução do teste do sistema DyeingSystemHT
8. Lab 7– Deliverable and Test Harness / Low and High Temperature
Esse laboratório acompanha o Modulo 12 “Sistema de Hierarquia: Empacotamento e Camadas”.Neste laboratório você aprenderá administrar complexidade modelo usando pacotes. Você vai organizar o Dyeing System em sistema de duas categorias, Deliverable e Test Harness e de Baixa Temperatura e Temperatura Alta.
8.1 Objetivos.
Quando completar esse laboratório com sucesso você estará apto a:
• Criar pacotes e colocar os elementos existentes dentro desses pacotes • Criar conteúdo de cápsula
• Compilar, executar de debugar o modelo.
8.2 Instruções
Criar pacotes nomes de Deliverable, TestHarness e Common. Com a exceção de DyeingSystem e DyeingSystemHT, coloque todos os elementos modelo dentro o apropriado pacotes. Dentro de cada um dos pacotes (menos Common), crie um pacote de alto-temperatura e coloca o sistema de alta temperatura, como mostrado na Figura 73