Professional Documents
Culture Documents
Simulação
com Arena
Conceitos básicos de modelagem
Isaías Torres
Miguel A. Bueno da Costa
Apresentação
Esta apostila apresenta os primeiros passos para a construção de modelos de
simulação usando o simulador Arena da Rockwell Software. Além disso,
para que o aluno possa entender os conceitos básicos de Simulação de
Sistemas é apresentada uma pequena introdução com os conceitos e termos
básicos da área.
Isaías Torres
Miguel A. Bueno da Costa
Terminologia da Simulação
A terminologia utilizada na simulação não é única, mas há uma certa
tendência geral em aceitar a que é apresentada a seguir.
5
Modelo
É a representação de um sistema. Existem várias formas de se classificar
modelos. M.A.B.Costa [2001] apresenta uma explanação sintética sobre
modelos, reproduzida a seguir. Os modelos são tipificados como icônicos
(representação fiel do sistema, geralmente em escala diferente da real),
analógicos (as propriedades do sistema são representadas por outras
equivalentes) e simbólicos (as propriedades do sistema são representadas por
símbolos). Outro tipo de classificação separa os modelos em estáticos e
dinâmicos. Os modelos estáticos não consideram explicitamente a variável
tempo, possuem relações determinísticas e são, normalmente, tratados por
técnicas analíticas. Os modelos dinâmicos tratam com interações variáveis
no tempo (o estudo do sistema em um certo instante interfere no estado do
sistema no instante seguinte). Também existe uma caracterização importante
para os modelos, que diz respeito às situações discreta e contínua. Um
modelo discreto sofre alterações repentinas no tempo. As mudanças no
estado do sistema são expressas em termos do estado do sistema no início do
período. As mudanças durante um intervalo de tempo são calculadas e é
deduzido um novo estado do sistema para o final deste período e início do
seguinte. Um modelo contínuo sofre constantes e suaves alterações no
tempo. Uma situação bastante comum é tratar um sistema contínuo como
sendo uma seqüência de pequenas alterações discretas no tempo. Por fim,
também são diferenciados os modelos determinísticos dos estocásticos. Os
modelos determinísticos não tratam variáveis randômicas e as características
operacionais envolvem relações exatas. Quando pelo menos uma variável do
sistema se comporta de forma probabilística, diz-se tratar de um modelo
estocástico.
Entidade
Também chamada de transação, é um elemento essencial para o modelo.
Cada tipo de entidade (pessoa ou objeto) possui um ciclo de vida, onde
estados ativos e passivos se alternam. Uma entidade pode ser classificada
como temporária ou permanente. As entidades temporárias entram no
sistema, percorrem o seu ciclo de vida e abandonam o sistema. As
entidades permanentes executam a sua função sem abandonar o sistema. A
chegada de entidades ao sistema é gerada por um procedimento externo, ou
de acordo com a necessidade imposta pelo estado do sistema. Na visão da
simulação discreta convencional, as entidades temporárias são criadas
primeiro. Elas engajam atividades e requisitam recursos. Uma vez
terminada a atividade, a entidade é removida. Trata-se de uma transação
passiva, onde nenhum mecanismo considerado “inteligente” é assumido ou
modelado.
Atributo
São as propriedades características de cada entidade.
Atividade
É uma seqüência de procedimentos que causa mudança no sistema. A
atividade corresponde a um estado ativo, comum a uma ou mais entidades
6
(ou classe de entidades). A duração de uma atividade pode ser determinística
ou estocástica. Assume-se que uma atividade é indivisível. Uma vez
iniciada, ela não é mais interrompida. Segundo R.Reddy [1986] , as
atividades podem ser físicas ou cognitivas. As atividades físicas são as
formas convencionais de atividades, em torno das quais a simulação tem sido
desenvolvida. As atividades cognitivas são formas de tomada de decisão
racional e inteligente. Da mesma forma que as atividades físicas, as
atividades cognitivas possuem tempo finito de duração, que pode ser
randômico ou dependente das informações e/ou decisões do sistema.
Evento
As atividades são iniciadas e terminadas por eventos. Eventos são instantes
no tempo, enquanto atividades possuem durações no tempo. Evento é o
ponto no tempo no qual acontece alguma mudança no sistema modelado. O
processamento de um evento é realizado por uma rotina. Normalmente a
ocorrência de um evento dispara a ocorrência de outro(s) evento(s). Da
mesma forma que as atividades, os eventos podem ser físicos ou cognitivos.
As rotinas associadas aos eventos físicos são análogas às rotinas dos eventos
tradicionais da simulação discreta. Os eventos cognitivos envolvem
processamento de conhecimento, análogo ao procedimento cognitivo
desempenhado pelo tomador de decisão. Rotinas de eventos cognitivos irão
conter conhecimentos, representados por regras de produção e heurísticas,
que serão processados quando uma decisão precisar ser tomada
[Reddy,1986].
Acumuladores
São variáveis que permitem medir o desempenho do sistema. Possuem esse
nome porque vão acumulando valores no tempo, para depois receberem
tratamento de análise e gerar as estatísticas da simulação.
Relógio
Variável que marca o tempo da Simulação.
Cenário
uma experimentação estruturada, com um conjunto de configurações de
dados e de entidades do sistema. Pode-se construir vários cenários para testar
várias hipóteses (Torres, 2002).
Replicação
É a execução do modelo no computador.
Rodada
É o período compreendido entre o início e o fim da replicação.
7
Variáveis de Estado
É o conjunto de variáveis que identificam o estado do sistema em um
determinado instante de tempo.
Recurso
É uma entidade estática do modelo que serve entidades dinâmicas. Esse
atendimento pode ser feito simultaneamente a várias entidades. Uma
entidade pode solicitar parte da capacidade ou a capacidade total do recurso
(Torres, 2002).
Filas
Constituem locais de espera onde as entidades dinâmicas esperam sua vez de
seguir através do sistema. As filas podem ser chamadas de áreas de espera ou
pulmões (buffers). Depois de dar entrada na fila a entidade é retirada
seguindo algum tipo de critério, por exemplo, FIFO (First In First Out),
LIFO (Last In Last Out), HVF (High Value First), LVF (Lower Value First)
ou um critério aleatório (Torres,2002).
Definição do Problema e
Plano de Estudo
Coleta de Dados e
Representação do Modelo
Não
Válido?
Escolha da Ferramenta
Computacional e
Construção do Modelo
Verificação e
Validação do Modelo
Não
Válido?
Planejamento de
Experimentos
Execução do Modelo
Documentação e Implementação
dos Resultados
W.D.Kelton e outros (1998) comentam que esta lista não é exaustiva mas
pode oferecer uma idéia geral do nível de detalhes necessários.
10
Coleta de Dados e Representação do Problema
Após estabelecer a situação a ser tratada, deve-se passar para a fase de
representação da mesma. Trata-se, no caso da simulação, de transladar o
sistema real para um diagrama de fluxo lógico. O diagrama representará o
problema através de associações feitas entre as entidades e as atividades.
O Exemplo do Pub
O clássico exemplo do pub (Paul & Balmer apud Costa, 2001) envolve as
seguintes entidades: clientes, garçom, copo e porta. O leitor pode reparar que
uma entidade pode ser tanto um ser humano como um objeto. Pode ser
também uma entidade concreta ou abstrata. Por exemplo, uma informação
que circula num sistema pode ser entendida como uma entidade abstrata.
Também pode ser temporária no sistema (o cliente por exemplo) ou
permanente (o copo). Cada entidade possui o que se chama de “ciclo de vida
da entidade”. Esse ciclo de vida mostra toda a seqüência de atividades da
qual a entidade participará. Uma atividade envolve, na maioria das vezes,
mais de uma entidade. Por exemplo, como será visto a seguir, a atividade
Servir envolverá um cliente, um garçom e um copo. Na falta de qualquer
uma dessas entidades a atividade Servir não se realizará.
No pub o cliente chega, a partir de uma fila de clientes que estão fora do bar
(Outside), entra no sistema e nesse momento são gerados dois valores: um
que especifica o quanto ele vai beber (quantidade de drinks) e outro que
estabelece o intervalo entre a sua chegada e a do próximo cliente. Participam
da atividade Chegada duas entidades, a porta e o cliente. A entidade garçom
pode participar da atividade Servir ou da atividade Lavar, caso contrário ele
entra na fila de garçons ociosos
Servir
Fechada
Ocioso
Chegada
Lavar
O cliente entra no bar e fica numa fila de espera, aguardando ser servido.
Após ser servido, ele está pronto para beber. Encerrada a atividade Beber, e
de acordo com a quantidade de drinks gerada, ele volta para a fila de espera
ou sai do sistema, indo para a fila Outside.
OK’
Espera Outside
OK
Servir Beber
Limpos Lavar Sujos
Após desenhar os diagramas individuais, para ter uma visão do sistema todo
basta agrupar os ciclos de vidas através das atividades comuns. No exemplo
obtém-se o seguinte diagrama:
Fechada Porta
Cliente
Copos
Chegada Garçom
Espera Outside
OK
Servir Beber
OK’
Ocioso
Documentação e Implementação
Uma das grandes falhas nos projetos, em geral, é a apresentação ruim dos
resultados para o usuário. Isso é uma falha de implementação. O pouco
tempo gasto na implementação normalmente não é suficiente para as tarefas
existentes nessa fase. Fazem parte dessas tarefas: lapidação e ajuste do
modelo, treinamento do usuário e a garantia da validade dos resultados. Essa
última tarefa, que só é possível com a implementação, tende a ser, segundo
R.Shannon [1975] o problema mais difícil a ser enfrentado pelo analista.
Conclusão do Capítulo
A Simulação de Sistemas faz análises de problemas. Ela serve como
ferramenta para a análise do comportamento do sistema sob condições
especificadas pelo usuário.
Estabelecendo o processo
Como primeira versão vamos criar um modelo com a lógica geral do
funcionamento do banco, usando os módulos do painel Basic Process. Então,
anexe esse painel no Arena. Depois de terminar teremos algo assim:
O módulo CREATE faz com que o simulador crie entidades que se movem
pelo modelo capturando recursos e executando outros procedimentos
lógicos. No nosso modelo uma entidade representa um cliente que chega ao
banco. A saída das entidades-clientes do modelo corresponde à saída do
banco.
Válido? Logo após chegar à porta do banco, o cliente deve decidir qual o seu destino:
o guichê de atendimento ou a gerência. Como enunciado anteriormente há
uma chance de 10% de que o cliente vá para a gerência. Para representar a
escolha baseada em probabilidades ou em condições usamos o módulo
DECIDE.
Observe que em Logic, a ação foi colocada como Seize Delay Release. Isso
quer dizer que nesse bloco um recurso será capturado (seize), haverá um
intervalo de tempo correspondente ao processamento no caixa (delay) e em
seguida ocorrerá a liberação (release) do recurso.
Temos que definir o recurso que será utilizado no processamento. Para isso
clique em Add e preencha a janela assim:
Toda que vez que uma entidade não for mais necessária ela deve
ser retirada do modelo para que a simulação rode mais rápido.
Animando um recurso
Nas versões mais antigas do Arena os elementos de animação dos recursos
eram colocados automaticamente quando se usava um SERVER do painel
COMMON. Isso ainda é válido mas apenas para os módulos do diretório
OldArenaTemplates. Assim, temos que acrescentar manualmente os
elementos da animação.
2. Edite as imagens para o recurso na janela que irá surgir. Observe que
há 4 estados padrão (auto-estados) que o recurso pode assumir
(IDLE, BUSY, INACTIVE e FAILED). Copie as imagens da
biblioteca (à direita) para os devidos estados selecionando o estado
de destino e a figura de origem. Clique no botão << para transferir a
imagem. Não se esqueça de selecionar o nome do recurso que está
sendo modificado. Nesse caso, Caixa_R.
4
25
3. Você pode editar as figuras transferidas (e até mesmo as que se
encontram na biblioteca) clicando duas vezes sobre a figura de um
dos estados. Surgirá uma janela na qual você fará a edição usando a
barra de ferramentas Draw. Depois que tiver feito as alterações,
feche a janela clicando sobre o ícone × no canto superior direito da
janela.
4. Clique em OK. Se perguntado se deseja salvar a biblioteca, clique
em Não.
5. Ao fechar a janela, clique na área do modelo e então será desenhado
o ícone do recurso. Ajuste o tamanho e a posição dele.
Basic Process II
Neste capítulo vamos continuar a detalhar o modelo do banco e usar os
módulos do painel Basic Process que ainda não foram usados. Além disso
vamos aplicar o conceito de facility-based modeling e usar dois módulos do
painel Advanced Transfer: ENTER e LEAVE.
Para estipular quando uma entidade está entrando em uma estação ou saindo
de uma, existem dois módulos do painel Advanced Transfer chamados
ENTER e LEAVE.
O módulo LEAVE serve para indicar a saída de uma entidade de uma dada
estação. Para sair da estação uma entidade pode requisitar dispositivos de
manuseio de materiais como esteiras, empilhadeiras e outros transportadores.
Além disso, podemos especificar o tempo de carregamento da entidade no
transportador.
Observe que o campo Station Name é que contém o nome que o Arena
usará para se referir à estação, Caixa.Station. Um nome alternativo seria
Caixa_sta. Se você quiser usar “Caixa” como o nome da estação você
precisará mudar o campo Name.
A estação Saida
31
Criação da estação da gerência
1. Apague a conexão anterior ao módulo PROCESS chamado Falar
com o Gerente e as duas que saem do módulo DECIDE chamado
Voltar ao Caixa?.
2. Acrescente um módulo ENTER antes do módulo Falar com o
Gerente e dê o nome de Gerencia.
3. Acrescente dois módulos LEAVE depois do módulo Voltar ao
Caixa? e dê a eles os nomes de Segue para a Saida e Segue para o
Caixa. Segue para a Saida deve ter um tempo de deslocamento de 3
minutos até a estação Saida.Station e Segue para o Caixa o mesmo
tempo até a estação Caixa.Station.
A estação Gerencia
A estação Entrada
32
Animando as rotas entre as estações
Se você rodasse o modelo agora não veria nada diferente da versão anterior
do nosso modelo. Para que você veja os deslocamentos entre as estações são
necessárias duas coisas basicas: que o tempo de deslocamento entre as
estações não seja nulo e que os elementos de animação dos movimentadores
estejam definidos.
Objetivo
Demonstrar como utilizar a linguagem de automação VBA presente no
software de simulação de eventos discretos Arena. O Arena é um produto da
Rockwell Software e mais informações podem ser encontradas no site da
empresa
O que é VBA?
VBA é a sigla para Visual Basic for Applications, ou seja, Visual Basic para
Aplicativos. O VBA é uma linguagem de programação derivada da linguagem
Visual Basic e descendente do antigo BASIC. O VBA constitui a forma dos
softwares da suíte Office da Microsoft serem personalizados, o que permite que
o usuário escreva novas funções para o Word, Excel, Powerpoint, etc. Além
desses existem outros softwares que suportam o VBA como o AutoCAD da
Autodesk, o Corel Draw e o Arena.
Além de saber programar você precisa ter um conhecimento pelo menos básico
dos elementos que compõem os objetos do seu programa e como eles estão
relacionados. Por exemplo:
Mas tudo não são flores. Os objetos que você utiliza no VBA para acessar os
métodos e as propriedades podem não corresponder exatamente ao que você vê
externamente. Só há uma alternativa para entender os objetos do seu programa:
livros, manuais e dicas. Além, é claro, de várias horas de trabalho.
Além dos métodos que alteram as propriedades do objeto, pode-se ter também
métodos genéricos e utilitários. Por exemplo, no VBA do AutoCAD existe um
objeto UTILITY com várias funções para fazer cálculos, emitir mensagens etc.
Para criar um formulário que possa receber dados de um usuário você deve:
1. Criar o formulário com os campos para a entrada de dados, tendo o cuidado
de escolher nomes especiais para cada componente. É através desses nomes
que você poderá consultar o que foi digitado pelo usuário
2. Escrever o código para exibir o formulário que você criou anteriormente,
coletar os dados digitados pelo usuário e processá-los, responder ao usuário,
fechar o formulário etc.
41
Como eu saberei que o usuário digitou os dados
corretamente?
Através das propriedades dos objetos que compõem o seu formulário. Por
exemplo, uma caixa de texto possui uma propriedade chamada TEXT que
quando consultada retorna o que foi digitada nela.
Através dos métodos você pode alterar as características dos controles/objetos
que compõem o seu formulário. Por exemplo, você pode fazer com que os
campos do formulário sejam apagados no momento em que o formulário
aparecer para facilitar a digitação do usuário.
Através dos eventos você pode saber quais campos foram alterados, se foi
apertado um botão etc.
Cada objeto tem o seu conjunto específico de eventos, tal como acontece com
as propriedades e os métodos. Alguns são característicos:
Resumo
O objetivo desta introdução foi que você tivesse uma idéia geral do VBA. Não
se preocupe com os detalhes pois eles serão explicados no momento certo.
Deste primeiro capítulo o mais importante é que você entenda a diferença entre
propriedades, métodos e eventos de um objeto, qualquer que seja o objeto.
42
Objetivo
O objetivo deste capítulo é ensinar os conceitos mínimos necessários para que
você possa escrever os códigos em VBA. Leia com calma e não tenha pressa.
Programas
Um programa é um conjunto de decisões e ações lógicas implementadas em
uma certa linguagem que depois serão convertidas em uma forma que um
computador possa entender. Você escreve um programa para que o computador
faça mais rápido e, talvez, com menos erros uma série de decisões e ações
repetitivas.
Variáveis e atribuição
A todo instante em um programa temos que guardar valores. Em geral esses
valores são guardados em variáveis. Uma variável é um espaço na memória do
computador que aceita um valor de um determinado tipo numérico ou
alfanumérico. Por exemplo, em um determinado momento do nosso programa
precisamos guardar um valor que o usuário digitou para fazermos um cálculo,
suponhamos a quantidade a ser produzida de peças no período. Também
poderíamos definir uma variável para o tempo de recozimento da peça em
questão. Para isso faríamos:
Arrays
Quando queremos reservar várias posições na memória do computador, uma do
lado da outra, criamos o que chamamos de array ou vetor. Todas as posições
responderão pelo mesmo nome, no entanto cada uma terá um índice seqüencial
equivalente a um endereço. É como se todas as variáveis morassem no mesmo
prédio, onde cada uma tem o seu número. Por exemplo, imagine que tenhamos
uma QtdeDoPeriodo variando de dia para dia em uma semana. Precisaríamos
de 7 variáveis para guardar esses valores. Se tivéssemos que dar um nome
diferente para cada isso daria um trabalho desnecessário. Além disso, arrays
são muito úteis quando estivermos trabalhando com repetições. Bom, voltando
ao nosso exemplo, teríamos então:
Atribuição
Atribuir um valor a uma variável é colocar um valor do mesmo tipo da variável
na memória do computador, para posterior consulta ou alteração. Em VB/VBA
para que uma variável receba um valor fazemos assim:
QtdeDoPeriodo = 100
TempoDeRecozimento = 3.6756
x = QtdeDoPeriodo + TempoDeRecozimento
QtdeDoPeríodo(1) = 10
Para o caso especial dos objetos temos que usar a palavra-chave set:
For
O For usa como teste de parada uma variável chamada contador, que ao atingir
o valor máximo ou mínimo, pára. Por exemplo, suponhamos que temos que
executar vários comandos por 10 iterações (10 vezes):
For i=1 to 10
...
next i
While
O While é muito parecido com o For. A verificação da condição de parada é
feita logo no início, mas em vez de contagem aceita condições lógicas (que são
avaliadas como verdadeiro ou falso). Por exemplo, suponhamos que se deseja
executar um conjunto de instruções enquanto um número for menor que 100.
Teríamos
numero = 0
while (numero < 100)
....
wend
Objetivo
Apresentar a estrutura do VBA do Arena e como acessar os objetos e os
métodos. Para isso o conhecimento sobre o software Arena e seus modelos é
importante.
No Arena Object Model estão definidos objetos que permitem que se manipule
tanto o programa como o modelo de simulação e até seus componentes. Por
exemplo, para controlar algumas características do programa Arena existe um
objeto chamado Application, para controlar o modelo existe o objeto Model e
para controlar as variáveis, atributos etc. existe o objeto SIMAN.
O projeto em VBA
Cada modelo do Arena possui um projeto de VBA associado a ele, sendo que o
código é armazenado internamente ao arquivo .doe. Cada projeto em VBA do
Arena é composto por elementos do VBA como um todo e os objetos do Arena
Object Model:
Eventos
Tanto os blocos VBA quanto o código escrito no projeto do VBA são
disparados quando ocorrem eventos no modelo.
Um bloco VBA, chamado VBA 1, é disparado quando uma entidade passa por
ele. Nesse momento é disparado o evento VBA_1_Block_fire. Isso quer dizer
que quando uma entidade passa pelo bloco VBA_1 será executado o
procedimento VBA_1_fire. Esse procedimento foi definido quando o usuário
colocou o bloco VBA no modelo. Se o usuário adicionar seu próprio código a
essa função, ele será executado toda vez que uma entidade passar pelo bloco.
Além do bloco VBA outra fonte de eventos do Arena Object Model é o objeto
Model do Objeto ThisDocument. Esse objeto gera vários eventos associados ao
modelo como Document Open, Document Close, RunBegin, RunEnd,
RunBeginSimulation, RunEndSimulation etc.
ThisDocument
ThisDocument é um objeto que dá acesso ao documento corrente do Arena. O
único objeto exposto por ThisDocument é o modelo propriamente dito,
ThisDocument acessado através de ThisDocument.Model. Há ainda a propriedade
ThisDocument.Name.
Model
Model
Model expõe vários métodos para configurar o modelo como unidades e
opções. Model também expõe uma série de objetos para editar os elementos da
interface como módulos e elementos da animação. Além disso, expõe o objeto
49
SIMAN, criado quando a simulação começa a rodar e que expões todos os
elementos do modelo de simulação como variáveis, contadores, entidades, etc.
Activate Go Show
BreakOnTime ImportModel ShowReport
Check IncreaseSpeed StartOver
Close Pause Step
DecreaseSpeed Print ViewResults
End PrintOut ViewSIMAN
ExportModules Save WriteSIMAN
FastForward SaveAs
Muito bem, agora temos o nosso modelo pronto para receber o código em
VBA.
4. Feito isso, na janela de código será criada a subrotina responsável por tratar
o evento Fire do bloco VBA em questão. Toda vez que uma entidade passar
pelo bloco essa função será executada.
5. Dentro da subrotina escreva o código que irá atualizar a variável que nós
criamos anteriormente NumeroDePecas_V. Nossa primeira tarefa é criar
51
variáveis para podermos ter acesso aos dois objetos mais importantes do
Arena Object Model, o objeto Model e o objeto SIMAN. Essas variáveis
serão chamadas de modl e sim, respectivamente. Elas devem, portanto
receberem os objetos assim:
⌦Conceito do Arena
O Arena possui internamente uma tabela com os nomes que você digita no
modelo, como por exemplo os nomes das estações, nomes de variáveis,
expressões etc. Cada elemento da tabela (chamado de símbolo (symbol))
recebe um identificador único, um número inteiro. Vários métodos do VBA
do Arena assim como no próprio Arena usam esses símbolos para permitir
acesso aos elementos do modelo.
NdoSimb = sim.SymbolNumber(“NumeroDePecas_V”)
sim.VariableArrayValue(NDoSimb) = sim.VariableArrayValue(NDoSimb) + 1
52
A nossa sub-rotina para tratar o evento Fire do bloco VBA 1 ficará assim:
NDoSimb = sim.SymbolNumber("NumeroDePecas_V")
sim.VariableArrayValue(NDoSimb) = sim.VariableArrayValue(NDoSimb) + 1
End Sub
8. Alterne para a janela do Arena e rode o modelo. Se tudo der certo, a nossa
variável irá contar quantas entidades passaram pela nossa lógica. No final nosso
“contador” deverá exibir o valor 10.
53
Nosso Primeiro Formulário
Vamos modificar o nosso modelo para que ele exiba um formulário que nos
permita mudar o tempo de processamento toda vez que o usuário parar o modelo
do Arena. Para isso vamos criar uma variável TempoDeProcesso_V.
Criando o formulário
1. No editor do VBA, selecione o menu Insert Userform. Será exibido um
formulário em branco. Também será exibida uma barra de ferramentas com
controles de formulário chamada Toolbar.
Nome da Valor da
propriedad propriedade
4. Altere a propriedade (Name) para frmX. Daqui por diante este será o nome
que usaremos para referenciá-lo no modelo.
5. Selecione o rótulo (label) e mude sua propriedade Caption para Tempo de
Processamento (em min):.
6. Selecione a caixa de texto (text box) e altere seu nome para txtTProc e altere
a propriedade Text para “2”
7. Selecione o botão e mude sua propriedade (Name) para cmdOK e a
propriedade Caption para OK
End Sub
Observe que desta vez atribuímos à variável o valor numérico (retornado pela
função Val()) do que o usuário tiver colocado no texto da caixa de texto txtProc
do formulário frmX.
Para que o formulário seja exibido toda vez que o usuário interromper a
execução do modelo, temos que escrever uma função que responda ao evento
pausa da simulação.
Observe que a única coisa que fizemos aqui foi invocar o método Show() do
objeto Model.