Você está na página 1de 171

UNIVERSIDADE DE BRASLIA

FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECATRNICA

SimRP - SIMULADOR DE REDES DE PETRI FLEXVEL COM


GERAO DE CDIGO VHDL

MARCOS MARTINS MELO

ORIENTADOR: CARLOS HUMBERTO LLANOS QUINTERO

DISSERTAO DE MESTRADO EM SISTEMAS MECATRNICOS

PUBLICAO: ENM.008/2006
BRASLIA: JULHO - 2006

ii

UNIVERSIDADE DE BRASLIA
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECATRNICA

SimRP - SIMULADOR DE REDES DE PETRI FLEXVEL COM


GERAO DE CDIGO VHDL.

MARCOS MARTINS MELO


DISSERTAO

SUBMETIDA

AO

DEPARTAMENTO

DE

ENGENHARIA

MECNICA DA FACULDADE DE TECNOLOGIA DA UNIVERSIDADE DE


BRASLIA

COMO

PARTE

DOS

REQUISITOS

NECESSRIOS

OBTENO DO GRAU DE MESTRE EM SISTEMAS MECATRNICOS.


APROVADA POR:
Professor Carlos Humberto Llanos Quintero, Dr (ENM UNB).
(Orientador)
Prof. Walter de Brito Vidal Filho, Dr (ENM UNB).
(Examinador interno)
Prof. Maurcio Ayala Rincn, Dr (MAT UNB).
(Examinador externo)
BRASLIA/DF, 14 DE JULHO DE 2006.

PARA

iii

FICHA CATALOGRFICA
MELO, MARCOS MARTINS
SimRP - SIMULADOR DE REDES DE PETRI FLEXVEL COM GERAO DE CDIGO
VHDL [Distrito Federal] 2006.
xvii, 171 p., 210 x 297 mm (ENM/FT/UNB, Mestrando, Sistemas Mecatrnicos, 2006).
Dissertao de Mestrado Universidade de Braslia. Faculdade de Tecnologia.
Departamento de Engenharia Mecnica.
1. Redes de Pedri

2. Simuladores

3. VHDL

4. GPL

I. ENM/FT/UNB

II. Ttulo (srie)

REFERNCIA BIBLIOGRFICA
Melo, M. M. (2006). SimRP - SIMULADOR DE REDES DE PETRI FLEXVEL COM
GERAO DE CDIGO VHDL. Dissertao de Mestrado em Sistemas Mecatrnicos,
Publicao ENM.DM-008/2006, Departamento de Engenharia Mecnica, Universidade de
Braslia, Braslia, DF, 171 p.
CESSO DE DIREITOS
AUTOR: Marcos Martins Melo
TTULO: SimRP - SIMULADOR DE REDES DE PETRI FLEXVEL COM GERAO DE
CDIGO VHDL.
GRAU: Mestre

ANO: 2006

concedida Universidade de Braslia permisso de reproduzir cpias desta dissertao de


mestrado e para emprestar ou vender tais cpias somente para propsito acadmico e
cientfico. O autor reserva outros direitos de publicao e nenhuma parte dessa dissertao de
mestrado pode ser reproduzida sem autorizao por escrito do autor.
Marcos Martins Melo
QNA 11 casa 05 Taguatinga Norte.
72110-110 Braslia DF Brasil.

iv

Os caminhos para o poder humano e para o


conhecimento humano correm lado a lado e
so quase os mesmos; no obstante, por conta
do inveterado e pernicioso hbito de insistir
nas abstraes, mais seguro comear a
desenvolver as cincias dos fundamentos que
tm relao com a prtica e deixar a parte ativa
ser como o selo que se imprime e determina a
contrapartida contemplativa.
Francis Bacon

DEDICATRIA
Dedico este trabalho, primeiramente, a Deus, que me concedeu sabedoria, paz e sade.

Dedico-o, ainda minha amada famlia, que me motivou e possibilitou que eu pudesse vencer
mais este desafio e ao meu Professor e Orientador Carlos Humberto Llanos; ao meu amigo de
mestrado Evandro; e, principalmente, a minha Madrinha Maria que sempre me motivou.

vi

AGRADECIMENTOS
Agradeo, primeiramente, a Deus que me possibilitou sade e sabedoria para a realizao
deste feito.

Agradeo madrinha Maria Borges e a minha famlia que foi compreensiva e fundamental na
execuo deste projeto.

Em especial, gostaria de agradecer ao meu orientador Carlos Humberto Llanos Quintero e a


todos os meus professores que me dotaram de conhecimentos necessrios para o bom
andamento do projeto.

Ao meu amigo de mestrado Evandro e a todos que participaram de alguma forma desta
conquista, o meu sincero agradecimento.

vii

RESUMO
O objetivo desta dissertao implementar uma ferramenta de CAD para a descrio e
simulao de Redes de Petri (RdPs) baseadas em software livre, chamada de SimRP. Esta
ferramenta de CAD possibilitar a descrio e simulao de diversas RdPs, ou seja,
Ordinrias, Temporais, Temporizadas e Interpretadas, alm disso, O SimRP disponibilizar a
opo de gerao de cdigo VHDL (uma linguagem de descrio de hardware), a partir de um
modelamento de uma RdP interpretada. Adicionalmente o SimRP permite a verificao de
diversas propriedades tais como rede marcada reinicivel, rede marcada viva, rede no pura e
deteco de conflitos/deadlocks.

Uma caracterstica importante do SimRP sua flexibilidade, Os usurios podero descrever


uma RdP Ordinria e mais tarde converte-la para outro tipo de rede estudada neste trabalho.
Deste modo, os usurios podero acrescentar atributos a uma RdP ordinria para representar e
simular uma RdP Temporal (por exemplo). Estes atributos so facilmente adicionados e
deletados pela interface grfica.

O SimRP foi desenvolvido na arquitetura cliente-servidor para garantir a melhor


usabilidade/portabilidade. Tanto a instalao quanto a configurao so feitas no servidor.
Neste caso, o SimRP necessita apenas de um browser na sua estao de trabalho.O simulador
foi desenvolvido baseado na licena GPL, isto permite acesso ilimitado a todas funes do
sistema e cdigo fonte, permitindo que os usurios modifiquem e adaptem o sistema de
acordo com sua necessidade, sem necessitasse de licena.

Palavras-Chave:

Redes

de

Petri,

Simulao,

eventos

discretos,

VHDL.

viii

ABSTRACT

The objective of this dissertation is to implement a description and simulation CAD tool for
Petri

Nets

(PNs)

based

on

open

source,

called SimRP. This CAD tool will be able to describe and simulate several PNs namely
Ordinary,

Temporal,

Temporized

and

Interpreted

types.

Besides this, SimRP provides an option to generate VHDL code (a hardware description
language), taking a model of an Interpreted PN. Additionally, SimRP allows several
properties verification such as Restartable PN, Marked-alive PN, Not-pure PN and
conflicts/deadlocks detection.

An important feature of SimRP is its flexibility, since users can describe an ordinary PN and
afterwards converts it to another type of network studied here. Thus, users can add certain
attributes to an ordinary PN in order to represent and simulate a Temporal PN (for example).
These attributes are easily added/deleted through a graphical interface.

The SimRP was developed in client-server architecture in order to guarantee the best
usability/portability. Both system installation and configuration are made on a server. In this
case, a SimRP user needs only a browser in his/her workstation. Given that the simulator was
developed under GPL license, this provides an unlimited use to all of its resources, including
source code, allowing any user to use, modify, and adapt it to their needs without license
requires.

Keywords: Petri Networks , Simulation, discrete events, VHDL.

ix

SUMRIO
1.

INTRODUO...................................................................................................... 1
1.1 GENERALIDADES........................................................................................... 2
1.2 OBJETIVOS DO TRABALHO.......................................................................... 3
1.2.1

Objetivos gerais: ........................................................................................ 3

1.2.2

Objetivos especficos: .................................................................................4

1.3 MOTIVAO DESTE TRABALHO ................................................................4


1.4 METODOLOGIA APLICADA NESTE TRABALHO...................................... 6
1.5 ESPECIFICAO DO PROJETO.....................................................................6
1.6 ESTRUTURA DO TRABALHO ....................................................................... 7
2.

REFERENCIAL TERICO...................................................................................9
2.1 INTRODUO.................................................................................................. 9
2.2 CONCEITOS BSICOS DE MODELAGEM DE SISTEMAS....................... 12
2.3 CONCEITOS BSICOS DE REDES DE PETRI ............................................12
2.3.1

Elementos bsicos de uma RdPs ..............................................................13

2.3.2

Comportamento dinmico ........................................................................ 14

2.3.3 Modelamento de diferentes interaes entre processos usando Redes de


Petri...............................................................................................................................14
2.4 ASPECTOS FORMAIS DAS RDPS ................................................................. 18
2.4.1

Matriz de incidncia .................................................................................20

2.4.2

Transio Sensibilizada............................................................................22

2.4.3

Disparo de uma Transio ....................................................................... 22

2.4.4

Conflito e Paralelismo..............................................................................24

2.4.5

Seqncia de Disparo............................................................................... 26

2.4.6

rvores de alcanabilidade ...................................................................... 29

2.4.7

Conjunto de Marcaes Acessveis ..........................................................30

2.5 PROPRIEDADES DA RDPS ............................................................................ 31


2.5.1

Rede Marcada k-limitada .........................................................................31

2.5.2

Rede marcada viva ...................................................................................32

2.5.3

Propriedades Estruturais .........................................................................35

2.5.4

Transies neutras ou identidade.............................................................36

x
2.6 TAXONOMIA DA RDPS ................................................................................. 37
2.6.1

RdPs Interpretadas ................................................................................... 37

2.6.2

RdPs Temporais e Temporizadas .............................................................40

2.7 OUTROS TIPOS DE RDPS .............................................................................. 43


2.7.1

RdPs Coloridas.........................................................................................44

2.7.2

RdPs Predicado-Transio ......................................................................46

2.7.3

RdPs a Objeto........................................................................................... 48

2.8 LINGUAGEM DE ESPECIFICAO DE HARDWARE VHDL .................. 50


2.8.1

Elementos lxicos bsicos da linguagem .................................................51

2.8.2

Tipo de Dados........................................................................................... 51

2.8.3

Objetos...................................................................................................... 52

2.8.4

Expresses e operadores .......................................................................... 53

2.8.5

Sentenas ..................................................................................................53

2.8.6

Estrutura da Linguagem........................................................................... 54

2.8.7

O modelo comportamental ....................................................................... 58

2.8.8

O modelo estrutural.................................................................................. 58

2.9 CONCLUSO..................................................................................................63
3.

SIMULADORES DE REDES DE PETRI PESQUISADOS ............................... 65


3.1 INTRODUO................................................................................................ 65
3.2 TIMENET ..........................................................................................................65
3.3 ARP ..................................................................................................................67
3.4 PETRISIM ........................................................................................................... 69
3.5 VISUAL OBJEKT NET ++.................................................................................... 71
3.6 CONCLUSO..................................................................................................73

4.

ANLISE, PROJETO E IMPLEMENTAO DO SIMULADOR ................... 76


4.1 INTRODUO ..................................................................................................... 76
4.2 ANLISE DO PROJETO ........................................................................................ 78
4.2.1

Limitaes do Sistema .............................................................................. 78

4.2.2

Principais Funcionalidades do Sistema ...................................................79

4.2.3

Diagramas de Caso de Uso ...................................................................... 80

4.3 PROJETO DO SISTEMA ........................................................................................ 81

xi
4.3.1

Diagrama de classe ..................................................................................81

4.3.2

Diagramas de seqncias.........................................................................85

4.4 PROJETO DE IMPLEMENTAO DO SIMRP ......................................................... 93


4.4.1

Algoritmo base para a simulao da RdPs .............................................. 93

4.4.2

Verificao de propriedades e conflitos no SimRP ..................................96

4.2 CONCLUSO..................................................................................................97
5.

RESULTADOS OBTIDOS..................................................................................98
5.1 SIMULAO DE RDPS ORDINRIAS ................................................................... 98
5.2 VERIFICAO DAS PROPRIEDADES .................................................................. 103
5.3 MODELAMENTO DA RDPS TEMPORAL ............................................................. 103
5.4 MODELAMENTO DA RDPS TEMPORIZADA........................................................ 104
5.5 EXEMPLO PARA UMA RDP INTERPRETADA E A GERAO AUTOMTICA DE

CDIGO VHDL ....................................................................................................................105

5.6 CONCLUSO................................................................................................110
6.

CONCLUSO E TRABALHOS FUTUROS .................................................... 111


6.1 O SISTEMA SIMRP........................................................................................111
6.2 PERSPECTIVAS FUTURAS ........................................................................ 112
6.3 CONSIDERAES FINAIS .........................................................................112

REFERNCIAS BIBLIOGRFICAS .......................................................................113


Apndice 1 Diagramas do Sistema.............................................................................113
Apndice 2 Descrio dos casos de uso......................................................................120
Apndice 3 Script do Banco de Dados........................................................................129
Apndice 4 Manual de Usabilidade do Sistema..........................................................131
Apndice 5 Cdigo VHDL gerado pelo SimRP.........................................................149

xii

LISTA DE FIGURAS

Figura 2.1 - RdPs [1]..........................................................................................................13


Figura 2.2 - Seqncia de Processos [3] ...14
Figura 2.3 - Diviso e juno de recursos[3].15
Figura 2.4 Caminhos Alternativos e Repetio[1]..16
Figura 2.5 - Alocao de Recursos[1]17
Figura 2.6 Exemplo de RdPs [1].20
Figura 2.7 - Definio formal da RdPs..............................................................................21
Figura 2.8 - Exemplo de transio sensibilizada...............................................................23
Figura 2.9 - Exemplo de conflito efetivo...........................................................................25
Figura 2.10 Seqncia de disparo [2].27
Figura 2.11 - Exemplo de aplicao da equao Fundamental..27
Figura 2.12 - rvore de alcanabilidade29
Figura 2.13 - Exemplo de transio quase-viva.................................................................33
Figura 2.14 - Rede reinicivel............................................................................................33
Figura 2.15 - Exemplo de invariante..................................................................................35
Figura 2.16 - Rede dePetri no pura..36
Figura 2.17 - Interao da rede com o ambiente externo [1].....37
Figura 2.18 - Exemplo estao coletora de petrleo [3]38
Figura 2.19 Modelamento da RdPs Interpretada [1]...38

xiii
Figura 2.20 - Redes Temporais..........................................................................................39
Figura 2.21 Exemplo de RdPs Temporizada [1].41
Figura 2.22 - Redes dobradas [1]...42
Figura 2.23 -Exemplo de RdPs Coloridas..44
Figura 2.24 Definio formal da rede predicato-transio......45
Figura 2.25 - Exemplo de Rede Predicato-Transio [1]...46
Figura 2.26 - Definio formal da RdPs a Objetos [1]...48
Figura 2.27 - Exemplo de RdPs a Objetos [1]....50
Figura 2.28 - Exemplo de dados primitivos........................................................................51
Figura 2.29 - Exemplo de Sentenas...................................................................................53
Figura 2.30 - Exemplo de Estrutura....................................................................................54
Figura 2.31 - Exemplo de declarao de um processo........................................................55
Figura 2.32 - Exemplo da sentena AFTER.......................................................................56
Figura 2.33 - Exemplo de um modelo estrutural................................................................58
Figura 2.34 - Exemplos de mquinas de estados................................................................59
Figura 2.35 - Exemplo de implementao de Mquina de estados em VHDL. .................60
Figura 3.1 - Interface grfica do TimeNet..66
Figura 3.2 - Interface do ARP2...........................................................................................68
Figura 3.3 - Interface grfica do PetriSim..........................................................................70
Figura 3.4- Interface do Objekt Net ++..72
Figura 4.1 - Arquitetura do Sistema....................................................................................73

xiv
Figura 4.2 - Diagrama de caso de uso do SimRP...............................................................79
Figura 4.3 - Diagrama de classe de dados...81
Figura 4.4 - Diagrama fsico do Bando de Dados...............................................................82
Figura 4.5 - Diagrama de Seqncia: Definir Rede de Petri...............................................84
Figura 4.6 - Diagrama de Seqncia: Taxonomia.......85
Figura 4.7 - Diagrama de Seqncia: Visualizar.....86
Figura 4.8 - Diagrama de seqncia: Edita......87
Figura 4.9 - Diagrama de seqncia: Seqncia de disparos.......88
Figura 4.10 - Diagrama de seqncia: Propriedades........89
Figura 4.11 Diagrama de seqncia: Simulao.......90
Figura 4.12 - Algoritmo base...............................................................................................92
Figura 5.1 -Modelamento de RdPs Ordinria......................................................................98
Figura 5.2 - Simulao da RdPs Ordinria..........................................................................99
Figura 5. 3 - RdP Porto Eletrnico ...................................................................................101
Figura 5. 4 - Exemplo Complexo de RdP Ordinria...........................................................102
Figura 5.3 - Verificao das Propriedades...........................................................................103
Figura 5.4 - Modelamento da RdPs Temporal.....................................................................104
Figura 5.5 - Modelamento da RdPs Temporal.....................................................................105
Figura 5.6 - Exemplo de controlador em RdP Ordinria.....................................................106
Figura 5.7 - Exemplo de Controlador descrito em uma RdP Interpretada...........................107
Figura 5.8 - Tela de Simulao do SimRP...........................................................................108

xv
Figura 5.9 - Sintetizao do cdigo pelo Quartus......109
Figura 5.10 - Dados gerados a partir da sntese..........110

xvi

LISTA DE TABELAS

TABELA 1 - CASO DE USO DEFINIR REDE .................................................................................. 125


TABELA 2 -CASO DE USO: TEMPORAIS .................................................................................... 126
TABELA 3 - CASO DE USO: TEMPORIZADAS ............................................................................. 126
TABELA 4 - CASO DE USO: INTERPRETADAS ............................................................................ 127
TABELA 5 - EDITAR REDES DE PETRI ....................................................................................... 128
TABELA 6 - GERAR CDIGO VHDL .........................................................................................129
TABELA 7 - DEFINIR SEQNCIA DE DISPARO .......................................................................... 129
TABELA 8 - VISUALIZAR REDE DE PETRI .................................................................................. 130
TABELA 9 - EDITAR TAXONOMIA............................................................................................. 130
TABELA 10 - VERIFICAR PROPRIEDADES .................................................................................. 131
TABELA 11 - SIMULAO DE REDE DE PETRI ........................................................................... 131

xvii

LISTA DE ABREVIAES

CAD

Computer Aided Design Projeto Assistido por Computador.

DNS

Domain Name System Sistema de Nome de Domnio

FPGA

Field Programmable Gate Array Arranjo de Portas Programveis no Campo

GPL

General Public License GPL Licena Pblica Geral.

HDL

Hardware Description Languagem Linguagem de Descrio de Hardware

UML

Unified Modelling Language Linguagem de Modelamento Unificado

URL

Uniform Resource Locator Localizador de Pesquisa Unificada.

VHDL

VHSIC Hardware Description Languagem Linguagem de Descrio de


Hardware VHSIC.

RdPs

Redes de Petri

SEDs

Sistemas de Eventos Discretos

1. INTRODUO
Redes de Petri (RdPs) so um modelo matemtico desenvolvido por C.A Petri [16]. As redes
de Petri so especialmente apropriadas para modelar sistemas onde diferentes eventos podem
estar acontecendo (acionados por eventos). RdPs podem ser aplicadas para sistemas que
podem ser caracterizados como concorrentes, assncronos, distribudos, paralelos, nodeterminsticos, estocsticos [17]. Na rea de automao RdPs tm ampla aplicabilidade para
modelar os sistemas acionados a Eventos Discretos (SED-Sistemas de Eventos Discretos)
[18], onde muito importante caracterizar, estudar, simular e/ou verificar o comportamento
do sistema. Um ponto importante na rea de automao determinar se o sistema est livre de
conflitos no processo de execuo de alguma tarefa determinada.

Uma propriedade importante das RdPs sua clara e simples representao grfica, mediante
um grafo composto de lugares, transies e arcos. Aplicaes importantes de RdPs podem ser
encontradas em diferentes reas como avaliao de desempenho, protocolos de comunicao,
anlise de sistemas distribudos, bancos de dados distribudos, programao concorrente e
paralela, sistemas tolerantes a falhas, circuitos assncronos, sistemas operacionais, projeto de
compiladores, automao de escritrios, linguagens formais, programao lgica, sistemas de
manufatura, entre outras [17].

A presente dissertao tem por objetivo o estudo das Redes de Petri e a construo de uma
ferramenta CAD de descrio e simulao de cdigo aberto baseado na licena GPL,
denominada SimRP. Esta ferramenta de CAD ser capaz de descrever e simular RdPs dos
tipos Ordinria, Interpretada, Temporal e Temporizada. Alm do anterior, a ferramenta possui
a opo de gerar cdigo em VHDL (uma linguagem de descrio de hardware) a partir do
modelo de uma rede de Petri interpretada.

Uma caracterstica importante do SimRP sua flexibilidade, dado que o usurio pode
descrever uma RdPs Ordinria e, posteriormente, implementar a sua converso para um dos
outros tipos de redes estudados nesta dissertao. Desta maneira, o usurio pode acrescentar
certos atributos para que uma rede de Petri ordinria passe a representar uma rede de Petri

2
Temporal (por exemplo). Estes atributos so facilmente acrescentados por intermdio de uma
interface grfica, que permite editar os atributos de RdPs.

Uma estratgia para garantir a melhor usabilidade/portabilidade do SimRP foi desenvolv-lo


na arquitetura de trs camadas, onde toda a instalao e configurao do sistema realizada
no servidor. Neste caso, um usurio do SimRP s precisa ter instalado um browser no seu
computador ou estao de trabalho.

O simulador foi desenvolvido em licena GPL e possibilitar o uso ilimitado de todos seus
recursos, inclusive do cdigo fonte, permitindo que outras pessoas utilizem, modifiquem e
adaptem a suas necessidades, gratuitamente, e sem a exigncia de licenas.

1.1

GENERALIDADES

Com o objetivo de descrever e visualizar o comportamento de eventos discretos, Carlos Petri


[16] props um modelo chamado de Rede de Petri. Em princpio este modelo foi idealizado
para descrever a comunicao entre autmatos [1]. Mas devido ao seu formalismo e
capacidade de descrever eventos de alta complexidade o modelo apresenta-se como uma
alternativa para descrever eventos em diversas reas, como por exemplo, informtica ,
economia, no se limitando o modelo rea de tecnologia[2].

Modelando o comportamento de um evento, torna-se possvel simul-lo e compreend-lo,


verificando se o comportamento realmente o esperado, torna-se possvel test-lo antes de ser
implementado, verificando assim a presena de conflitos estruturais e deadlocks[1].

O licenciamento GPL define quatro liberdades em relao a um software[3]:

a)

Liberdade de executar o programa para qualquer fim.

b) Liberdade de estudar como o programa funciona e poder adapt-lo para as suas


necessidades. O acesso ao cdigo-fonte um pr-requisito para esta liberdade.

c)

Liberdade de redistribuir cpias de modo que se possa beneficiar o prximo.

d)

Liberdade de aperfeioar o programa, e liberar as suas melhorias, de modo que

toda a comunidade se beneficie. O acesso ao cdigo-fonte um pr-requisito para esta


liberdade.

O software que possue este licenciamento so chamados de software livre ou open


source.

O software gratuito ou software Free [3], no permite as quatro liberdades definidas


na licena GPL; este tipo de licenciamento define apenas uma permisso de utilizao, no
permitindo o estudo de cdigo, adaptao da aplicao e distribuio do produto. Este tipo de
licena pode ainda restringir o tipo de uso, definindo, por exemplo que a utilizao est
restrita ao meio acadmico.

1.2

OBJETIVOS DO TRABALHO

1.2.1

Objetivos gerais:

a) Desenvolver uma ferramenta de CAD (Computer Aided Design Projeto Assistido


por Computador) para simulao de trs tipos de RdPs baseado nos conceitos de
Software Livre com licenas GPL (General Public License GPL), com documentao
seguindo os princpios e premissas da Engenharia de Software e UML (Unified
Modeling Language ) [19];

b) Propiciar a integrao entre as RdPs e a linguagem de descrio de hardware VHDL,


(VHSIC Hardware Description Languagem) [14], para possibilitar a implementao
de controladores em FPGAs (Field Programmable Gate Arrays).

1.2.2 Objetivos especficos:

a) Criar um simulador de sistemas de eventos discretos (SEDs) modelados em RdPs.


b) Possibilitar a simulao de RdPs do tipo Ordinrias, Interpretadas, Temporais e
Temporizadas.
c) Implementar a caracterstica de flexibilidade, que consiste na possibilidade de
converter descries de RdPs Ordinrias para RdPs do tipo Interpretadas, Temporais
e/ou Temporizadas.
d) Gerar cdigo VHDL por intermdio de definio de uma RdPs Interpretada,
objetivando a gerao automtica de controladores;
e) Verificar algumas propriedades pertinentes a uma RdPs, rede viva, rede inicivel e
trasio viva.
f) Detectar certos conflitos estruturais e deadlock em tempo de simulao.
g) Proporcionar condies necessrias para que outras pessoas possam dar continuidade
ao desenvolvimento do simulador.

1.3

MOTIVAO DESTE TRABALHO

A teoria de RdPs cada vez mais utilizada, devido ao seu simples formalismo matemtico e
sua capacidade de simular problemas complexos. A flexibilidade do seu modelo possibilita
que seus conceitos sejam utilizados por outras reas do conhecimento, no se limitando s
reas de tecnologia [2].

Na pesquisa dos simuladores existentes foram encontrados diversos aplicativos que simulam
Redes de Petri. A grande maioria dos simuladores pesquisados so softwares proprietrios ou
softwares gratuitos. Os simuladores encontrados com licena GPL no possuam uma boa
documentao.

O uso de software livre vem sendo a cada dia mais difundido e utilizado, devido as suas
caractersticas de compartilhamento de conhecimento, reduo de custo e disseminao de
tecnologia. O Governo Federal do Brasil vem estimulando o uso destes softwares nos rgos
do governo e nas instituies de ensino [20].

Mesmo existindo simuladores de Redes de Petri, baseados em Software Livre, estes no


possuem uma boa documentao e, em geral, so desenvolvidos sem levar em considerao
premissas da Engenharia de Software. Isto torna, na maioria das vezes, o entendimento mais
complexo e difcil que o prprio desenvolvimento.

Por outro lado, existe na comunidade de sistemas digitais o interesse de desenvolver


ferramentas de CAD que permitam a gerao automtica de descries de sistemas/circuitos
para Linguagens de Descrio de Hardware como VHDL, Verilog, SystemC [21], entre outras.
Por exemplo, dada uma Rede de Petri Interpretada, que modela um controlador para um
sistema de manufatura, deseja-se a gerao automtica da sua descrio numa linguagem
como VHDL. Neste caso, a descrio inicial do sistema feita num modelo formal e de mais
alto nvel de abstrao (como o caso de Redes de Petri), o qual permite resolver e/ou aliviar
os problemas clssicos do projeto de sistemas digitais complexos, tais como a validao e
verificao formal (automtica e/ou manual) dos mesmos.

Esta dissertao alm de apresentar os conceitos relacionados Rede de Petri, contribui com a
implementao de um simulador baseado em licena GPL - General Public License GPL
Licena Pblica Geral (Software Livre), disponibilizando a sua anlise e documentao.

1.4

METODOLOGIA APLICADA NESTE TRABALHO

Foi realizado um estudo terico dos diferentes modelos de RdPs. Dentre os modelos possveis
foram escolhidos aqueles mais utilizados para aplicaes de automao e controle (vide
captulo 2).

Por outro lado, foram estudados diversos simuladores de Rede de Petri, para verificar suas
caractersticas (vide captulo 3). Este estudo serviu de base para a especificao do SimRP.

O simulador foi implementado utilizando os princpios e premissas da Engenharia de


Software e a metodologia utilizada ser UML para a documentao e Orientada a Objeto para
o desenvolvimento da ferramenta.

O modelo escolhido para o desenvolvimento da aplicao foi a arquitetura de trs camadas,


onde toda a instalao e configurao da aplicao so realizadas no servidor, no
necessitando a instalao e configurao de nenhum aplicativo com exceo do navegador
web, nas mquinas dos usurios.

Este modelo contribui para uma melhor gerncia da aplicao, facilitando a atualizao da
aplicao. Como todo o processamento ser realizado no servidor, no sero necessrios
grandes recursos de mquinas por parte dos usurios e nem a instalao de produtos nas
estaes.

1.5

ESPECIFICAO DO PROJETO

7
O simulador foi desenvolvido em PHP. Esta linguagem permite a implementao da
arquitetura de trs camadas e no precisa da instalao de nenhum software proprietrio para
seu funcionamento, diferente da linguagem de programao Java que necessita da instalao
de Software: Mquina Virtual Java, para seu funcionamento, este Software de uso Livre,
porm no GPL.

O servidor que disponibilizar a aplicao poder ser instalado e executado em diversos


sistemas operacionais, como por exemplo: Linux, Windows, SUN, AIX, entre outros. Ser
necessria a instalao do servio de publicao de pgina Apache [22] com o mdulo de
interpretao PHP, tambm se faz necessria a instalao do banco de dados MySQL [23].

A estao dos usurios do sistema somente necessitar ter instalado um navegador web, seja
Internet Explorer, Fire Fox ou um qualquer outro, em qualquer sistema operacional.

1.6

ESTRUTURA DO TRABALHO

Esta dissertao est dividida em seis captulos. Alm desta introduo, no captulo II so
enfatizados os conceitos relacionados teoria de RdPs, mais especificamente das redes objeto
deste trabalho, detalhando suas caractersticas, propriedades e taxonomias. Alm do anterior,
so introduzidos os conceitos bsicos da Linguagem de Descrio de Hardware VHDL.

No captulo III so apresentadas as anlises dos simuladores pesquisados, alm das suas
vantagens e desvantagens.

No captulo IV apresentado o simulador SimRP junto com a descrio das suas


funcionalidades e uma descrio da estrutura bsica da implementao.

No captulo V so apresentados os resultados obtidos com o SimRP na simulao das RdPs.

No captulo VI conclui-se a dissertao e apresentam-se sugestes para trabalhos futuros com


vistas continuidade deste projeto.

Alm dos captulos, o trabalho contm cinco apndices apndice 1: Diagramas do Sistema,
apndice 2: Descrio dos casos de uso, apndice 3: Script de Banco de Dados, no apndice 4:
Manual de Utilizao do sistema, apndice 5: Cdigo VHDL gerado pelo SimRP.

2. REFERENCIAL TERICO

2.1

INTRODUO

Neste captulo sero apresentados os conceitos bsicos utilizados na realizao deste trabalho.
Redes de Petri so bastante utilizadas para modelamento de Sistemas de Eventos Discretos
(SED). Um sistema de Eventos Discretos se caracteriza pela mudana de estado, que ocorre
sempre em instantes precisos. Alm do anterior, os valores das variveis de estado mudam
bruscamente.

Nos sistemas de eventos contnuos a mudana de estado pode ocorrer a

qualquer instante, com poucas variaes no valor das variveis de estado. So exemplos de
sistemas de eventos discretos os sistemas digitais, filas de servios (por exemplo, aplicados a
sistemas operacionais), processos de manufatura, entre outros [1].

Sistemas Discretizados so sistemas contnuos observados em instantes discretos (Sistemas


amostrados). Neste caso, o objetivo buscar um comportamento em um instante discreto de
tempo [1].

As RdPs so representaes matemticas que objetivam o modelamento de eventos discretos.


Por meio deste modelamento possvel analisar o comportamento de um SED, verificando
possveis conflitos, deadlocks e at mesmo propriedades que permitem o melhoramento do
modelo [2][5].

Por outro lado, existe o problema da gerao de sistemas de controle e automao usando
tcnicas de sistemas digitais avanadas. Dado o aumento da complexidade dos sistemas e da
capacidade de integrao, existe a necessidade de pesquisa de novas metodologias de projeto
objetivando fornecer solues efetivas de custo baixo, que sejam capazes de cumprir com as
exigncias de capacidade de processamento e comunicao.

10

Sistemas em chip (System on chip SoC) e sistemas de chips programveis (System on a


programmable chip SoPC) aparecem como alternativas tecnolgicas para integrao de uma
grande variedade de algoritmos necessrios para tarefas como processamento de dados e
comunicaes, automao e controle, entre outras. Uma soluo obtida para enfrentar o
problema da alta complexidade dos sistemas digitais (por exemplo, dos SoC) a de elevar o
nvel de abstrao na especificao e descrio dos mesmos. Tradicionalmente, os projetistas
tm usado linguagens como VHDL e Verilog para especificar e descrever circuitos digitais.

As linguagens de descrio de hardware como VHDL e Verilog possibilitam o modelamento


e construo de sistemas digitais por intermdio de descries com alto nvel de abstrao,
com estruturas sinttica e semntica semelhantes a das linguagens de programao como
Pascal e C. Este tipo de definio facilita o projeto de sistemas digitais complexos. Por outro
lado, estes tipos de linguagens so amplamente usados no projeto de sistemas baseados em
Arquiteturas Reconfigurveis.

Arquiteturas Reconfigurveis so baseadas em microcontroladores/microprocessadores de uso


geral e Dispositivos Lgicos Programveis (PLDs). Entre os PLDs mais utilizados esto os
FPGAs (Field Programmable Gate Arrays). Uma descrio do hardware de um sistema
(usando uma linguagem como VHDL) pode ser sintetizada (usando uma ferramenta CAD) e
repassada para a FPGA. Este processo chamado de reconfigurao da FPGA. A
reconfigurao pode ser implementada ainda em tempo real [15].

Dispositivos como FPGAs permitem a implementao de algoritmos diretamente em


hardware. A configurao destes dispositivos realizada por um arquivo binrio (bitstream).
Em sistemas convencionais (modelo de von Neumann) a programao realizada por
software, sendo carregada dentro da RAM da CPU. A semntica da programao em software
procedural. Em FPGAs a programao feita por Configware, compilada para um cdigo
de reconfigurao binrio e carregada na FPGA. Isto caracteriza um novo paradigma de
programao (Lgica Programvel).

11

A semntica do Configware estrutural (no procedural), onde a descrio do circuito


compilada por meio de ferramentas de posicionamento (placement) e roteamento (routing).
Em FPGAs existem milhares e milhes de blocos lgicos configurveis (configurable logic
blocks CLBs) que so, normalmente, de largura de palavra de um bit. Uma alternativa
recente para RL a Computao Reconfigurvel (Reconfigurable Computing PC) usando
rDPAs (Reconfigurable Data Path Units), cada uma tendo uma largura de palavra de vrios
bits (por exemplo 32 bits). Deve ficar claro que uma rDPU no uma CPU dado que no
possui contador de programa (PC) [27].

A programao desta ltima alternativa usa

contadores de dados (data counters), os quais esto localizados em bancos de memria de


auto-seqenciamento.

Tanto a alternativa de lgica reconfigurvel (RL) como a de programao reconfigurvel (PC)


oferecem a possibilidade de realizar reconfigurao dinmica e parcial. Dispositivos
oferencidos por Xilinx [42] permitem a reconfigurao dinmica e parcial. Neste caso, pode
ser realizada a reconfigurao de uma parte da FPGA enquanto o resto do dispositivo
continua funcionando normalmente. O cdigo de reconfigurao pode ser carregado via
interfase serial/paralela ou armazenando uma memria de reconfigurao.

Um outro lado, o nvel de abstrao de um modelo com RdP mais alto que o nvel de
abstrao oferecido por linguagens tradicionais como VHDL e Verilog. O projetista pode,
facilmente, modelar um sistema de manufatura, junto com o controle do mesmo usando RdPs.
O anterior faz importante a gerao automtica de uma descrio do controlador (numa
linguagem de menor nvel de abstrao como VHDL ou C), partindo da sua descrio em
RdP.

Dado que o interesse deste trabalho a gerao automtica de descries de

controladores para Arquiteturas Reconfigurveis a linguagem alvo escolhida foi VHDL[15].

12

2.2

CONCEITOS BSICOS DE MODELAGEM DE SISTEMAS

Segundo [2], os conceitos bsicos na modelagem de um sistema baseado numa abordagem


por eventos discretos so:

a) Eventos: so instantes de observao e de mudanas de estado.


b) Atividades: so caixas-pretas utilizadas para recuperar e esconder a evoluo do
sistema fsico entre dois eventos.
c) Processos: so seqncias de eventos e atividades independentes.
d) Cooperao: antes do ponto de sincronizao procura-se descrever uma
independncia de processos, fazendo com que os processos concorram a um objetivo
comum.
e) Competio: os processos devem ter acesso a um dado recurso para realizar uma
tarefa, tratando-se, portanto, de excluso mtua.
f) Pseudoparalelismo: os eventos nunca so simultneos e o paralelismo apenas
aparente, tendo seus ventos ordenados por um relgio comum.
g) Paralelismo verdadeiro: os eventos ocorrem simultaneamente, um processador
alocado para cada tarefa independente.

Estes conceitos tm ampla aplicabilidade no modelamento de sistemas de manufatura (o foco


de aplicao deste trabalho).

2.3

CONCEITOS BSICOS DE REDES DE PETRI

Nesta seo sero abordados os conceitos sobre RdPs, assim como os diferentes tipos
abordados na literatura.

13

2.3.1

Elementos bsicos de uma RdPs

Segundo [1] e [14], as RdPs podem ser divididas em trs elementos bsicos:

a) Lugar: indica uma condio, um estado parcial, alocao de recurso ou um estado de


espera. representado por um crculo.
b) Transio: indica um evento que pode ocorrer no sistema. representado por um
retngulo.
c) Ficha: est associada a um lugar e indica se determinada condio verdadeira.
representada por um ponto num lugar.

A figura 2.1 mostra como os elementos bsicos de uma RdPs se relacionam. O modelamento
abaixo se refere a um determinado processo de fabricao de uma determinada pea.

Para esta fabricao necessrio que os lugares referentes a Mquinas Livre e Pea em
Espera possuam recursos ou fichas (vide figura 2.1 (a)), determinando que a mquina est
livre e que a pea j est disponvel. Satisfeita esta condio a RdPs, pode passar para o outro
estado que representa a mquina em produo (vide figura 2.1 (b)).

14

(a)

(b)

Figura 2.1 - RdPs [1]


2.3.2

Comportamento dinmico

A ocorrncia de um evento no sistema est diretamente associada a um disparo de transio


que consiste em trs passos [4]:

a) Aps o evento retiram-se as fichas do lugar de entrada para indicar que a condio no
mais verdadeira (como mostrado na figura 2.1 (b)).
b) Adicionar a ficha no lugar de sada aps a ocorrncia do evento (figura 2.1 (b)).
c) A retirada de fichas de um determinado lugar e o acrscimo de determinadas fichas em
outro, indicam que uma condio t foi satisfeita e o evento associado quela transio,
foi realizada.

2.3.3

Modelamento de diferentes interaes entre processos usando Redes de Petri

15
a) Modelamento de uma Seqncia: descreve uma seqncia de disparo que representa o
evento de passagem de uma fase para outra, definindo um encadeamento de eventos e
atividades [2].

A figura 2.2 ilustra este encadeamento; J1 representa a primeira e J2; a segunda fase. As
fichas correspondem aos recursos consumidos em cada fase.

Figura 2.2 - Seqncia de Processos [2]

b) Modelamento de Evolues sncronas e assncronas: A figura 2.3 (a) apresenta uma


ficha, no lugar P1. Ao ser disparada a transio t1 duas fichas aparecero em P2 e P3
simultaneamente. O aparecimento das duas fichas em P2 e P3 dependente do disparo
da transio t1. Neste caso, os eventos em P2 e P3 ocorrem de maneira sncrona. O
mesmo pode ser observado na figura 3.b, onde o desaparecimento de fichas em P2 e
P3 ocorre de maneira simultnea (sncrona).

As evolues assncronas no estabelecem relao entre execuo de transies que


alteraro as marcaes, podendo ser executadas a qualquer instante sem depender de
um sincronismo [14].

A figura 2.3 (a) descreve a diviso e a juno de recursos. Aps a diviso do recurso (feito
sincronamente) as fichas evoluem independentemente (de maneira assncrona) [13].

16

(a)

(b)

Figura 2.3 - Diviso e juno de recursos[3]

c) Modelamento de Caminhos alternativos e Repetio: O caminho alternativo


caracteriza-se na situao em que a RdPs pode evoluir por um caminho em
determinado momento, e por um outro, em outro momento [6][1]. O anterior
determinado pela definio de uma RdPs ordinria (vide seo 2.5). Para implementar
os caminhos alternativos, so necessrias pelo menos duas transies como mostrado
na figura 2.4 (a).

A repetio se caracteriza pela existncia de uma transio que possibilita retornar ao


comeo de uma atividade. Esta caracterstica pode representar, por exemplo, uma
determinada etapa de um processo de fabricao onde a mesma pode se repetir
inmeras vezes. A figura 2.4 (b) mostra este modelamento.

17

(a)

(b)

Figura 2.4 Caminhos Alternativos e Repetio[1]

d) Modelamento de Alocao de Recursos: a alocao de recursos apresenta-se com


um recurso fundamental na modelagem de uma RdP, pois permite simular um buffer
armazenando recursos para uma determinada atividade[8]. Este caso pode ser
observado na figura 2.5, onde um recurso est alocado para ser utilizado em Pr. Uma
vez t1 seja disparada, a transio ser sensibilizada j que P2 e Pr possuem recursos.
Quando t3 for disparado o recurso consumido, anteriormente, ser reposto em Pr. Um
outro processo pode estar sendo executado no sistema (vide t4 e P5). Neste caso,
somente um processo pode ser executado num determinado momento.

18

Figura 2.5 - Alocao de Recursos[1]

2.4

ASPECTOS FORMAIS DAS RdPs

Segundo [7], [1] e [14], uma RdP uma qudrupla definida por:

R = P,T,Pre,Post, onde:

P um conjunto finito de lugares de tamanho n.

T um conjunto finito de transies de tamanho m.

Pre : P T N a aplicao de entrada (lugares precedentes ou incidncia anterior),


com N sendo o conjunto dos nmeros naturais. Pre representa os lugares que so
precedentes a uma transio (conjunto de arcos de entrada a uma transio). A matriz
associada condio Pre definida por n linhas (representando lugares) e m colunas
(representado transies).

Post: P T N a aplicao de sada (lugar seguinte ou incidncia posterior). Post


representa as sadas (representados como arcos) de uma transio para lugares da RdP.
A matriz associada aplicao Post definida por n linhas (representando lugares) e
m colunas (representado transies).

19
Uma RdP definida dessa maneira conhecida como RdP Ordinria.

Para cada arco ou componentes das matrizes associadas s aplicaes Pre e Post pode ser
atribudo um peso referente ao nmero de recursos necessrios para sensibilizar uma
transio.

Uma rede marcada [7] uma dupla definida por: N = <R, M>, onde:

R uma RdP;
M uma marcao dada por uma aplicao M : PN;

A marcao representa a distribuio das fichas nos lugares da RdP num momento
determinado. Pode ser definida uma Marcao Inicial para a RdP, a partir da qual a RdP
evoluir para novas marcaes, de acordo com as aplicaes Pre e Post.

Para exemplificar os conceitos de matrizes Pre e Post a figura 2.6 mostra uma RdP. Esta
figura apresenta um exemplo de modelamento de uma RdPs, marcada com estado inicial

M = [0 3 0] .
T

As matrizes Pre e Post da mesma so mostradas nas figuras 2.7 (a) e 2.7 (b). As linhas das
matrizes representa os lugares da RdP e as colunas o conjunto das transies da mesma (vide
figura 2.6).

20

2.4.1

Matriz de incidncia

Uma matriz de incidncia C representa o balano das fichas numa RdPs. Os elementos da
matriz indicam quantas fichas sero retiradas ou adicionadas, na execuo de uma
determinada transio[11]. Da mesma maneira que as matrizes Pre e Post, esta definida por
n linhas (representando lugares) e m colunas (representado transies).

Por intermdio desta representao possvel saber quais transies foram sensibilizadas
tendo como parmetro uma marcao inicial e uma marcao final. Tambm possvel saber
qual ser a marcao final (estado final), passando como parmetro a marcao inicial e as
transies sensibilizadas.

O comportamento de uma matriz de incidncia definido da seguinte forma:

Quando o elemento

aij

> 0, indica que a relao da transio com aquele lugar de

acrscimo de n fichas, onde, n igual ao valor de aij ;

Quando o elemento aij

< 0, indica que a relao da transio com aquele lugar de

retirada de n fichas; onde, n igual ao valor de aij ;

Quando o elemento aij

= 0, indica que aquela transio no possui relao com

aquele lugar.

A matriz de incidncia C pode ser obtida por meio da equao 1:

C = Post Pre

( 1)

21
A figura 2.7 (c) mostra a matriz de incidncia correspondente figura 2.6 e calculada usando
a equao 1 e a M = [0 3 0]t. A figura 2.7 (d) mostra o vetor-coluna (M) de marcao.

Figura 2.6 Exemplo de RdPs [1]

(a)

(c)

(b)

(d)
Figura 2.7 - Definio formal da RdPs

22

2.4.2

Transio Sensibilizada

Segundo [4], dada uma marcao M, para que uma transio t fique sensibilizada ou
habilitada, tem que satisfazer a condio mostrada na equao 2:

p P , M ( p ) Pre ( p , t )

( 2)

A equao 2 significa que se nos lugares precedentes da transio tiver um nmero de fichas
maior ou igual ao peso do arco referente ao elemento do conjunto Pre, que liga a este lugar
a transio, esta transio poder ser disparada.

2.4.3

Disparo de uma Transio

Segundo [8], se uma determinada transio t estiver sensibilizada por uma marcao M, ser
obtida uma nova marcao M com o disparo desta transio. Esta nova marcao poder ser
obtida por meio da equao 3:

M ' = M P re[., t ]i + Post [., t ]i = M + C [., t ]i

( 3)

Onde Pre[.,t]i, Post[.,t]i e C[.,t]i representam vetores da i-sima coluna.

O disparo de uma transio consiste em retirar as fichas de cada lugar precedente da transio
(Pre(p,t)), de acordo com o peso do arco e adicionar as fichas no lugar procedente da
transio (Post(p,t)), de acordo com o peso do arco.

23
Em uma RdPs ordinria, somente uma transio pode ser disparada de cada vez, mesmo tendo
outras transies sensibilizadas [2].

A figura 2.8 mostra este comportamento, observe que na figura 2.8 (a) o lugar P1 possui 2
fichas e o arco referente a Pre(p1,t1)=2, logo a transio t1 est sensibilizada e o recurso que
estava em P1 vai para P2 com 03 fichas, como o peso estabelecido por Pre(p1,t1)=3 e
ilustrado na figura 2.8 (b).

Por definio, quando o peso do arco no declarado no modelamento, o mesmo ter sempre
o peso 1.

Figura 2.8 - Exemplo de transio sensibilizada

No exemplo da figura 2.8 a Pre(1,1)=2 e a Post(2,1)=3.

24

2.4.4

Conflito e Paralelismo

Na execuo de uma RdP podem acontecer problemas. Por exemplo, duas transies usando o
mesmo recurso. Neste caso as duas transies estariam sensibilizadas, porm quando uma das
transies for disparada, automaticamente a outra no estar mais sensibilizada. Este tipo de
problema denominado de conflito. O conflito caracteriza-se pela existncia de dada
marcao que possua duas ou mais possibilidades, excludentes, de evoluo. No caso do
paralelismo, todas as atividades podero ser executadas ao mesmo tempo [11].

O paralelismo e conflito podem ser do tipo:

a) Conflito Estrutural: duas transies t1 e t2 esto em conflito estrutural se, e


somente se, elas tm ao menos um lugar p de entrada em comum, como
indicado na condico 4:

p P , Pre ( p , t1 ) 0

Pre ( p , t 2 ) 0 . ( 4)

Isto pode ser compreendido como o caso de um lugar estar fornecendo um mesmo
recurso a duas transies.

b) Conflito Efetivo: duas transies t1 e t2 esto em conflito efetivo para uma

marcao M se e somente se ambas esto em conflito estrutural e esto


sensibilizadas, como indicado na condio 5:

M Pr e(., t1 )eM Pr e(., t 2 ).

( 5)

25
Este problema mostrado na figura 2.9.

c) Bloqueio fatal (deadlock): Este problema acontece quando uma dada


seqncia de disparos, a partir da marcao inicial, conduz a uma situao em
que no h qualquer transio sensibilizada [2].

d) Paralelismo Estrutural: duas transies t1 e t2 so paralelas, estruturalmente,


se no possuem nenhum lugar de entrada em comum, como demonstrado na
equao 6:

Pr e(., t1 )

Pr e(., t 2 ) = 0. ( 6)

onde representa o produto escalar entre os vetores coluna correspondentes.


e) Paralelismo efetivo: Duas transies t1 e t2 so paralelas para uma marcao
M se, e somente se, so paralelas estrutural e se cumpre que:

M Pr e(., t1 )

M Pr e(., t 2 ).

( 7)

26

Figura 2.9 - Exemplo de conflito efetivo

2.4.5

Seqncia de Disparo

Seqncia de disparo uma sucesso de disparos consecutivos levando de uma marcao M


para uma determinada marcao M. Para que a seqncia possa ser executada, a primeira
transio tem que estar sensibilizada, aps o disparo da primeira transio, a segunda
transio da seqncia tem que estar sensibilizada e assim por diante, at que seja executada a
ltima transio da seqncia [13].

Numa seqncia de disparo, cada transio ser disparada na ordem estabelecida. Somente
uma transio disparada por vez (vide propriedade das RdPs Ordinrias). A seqncia de
disparo pode ser representada como:

a
X
M

j M n

( 8)

27

n
Onde M a marcao inicial, M a marcao final. A seqncia indicada acima da seta

representa a ordem de disparo.

Aps o disparo desta seqncia, surge o vetor S. Este vetor tambm chamado de vetor
caracterstico da seqncia S, que representa o nmero de ocorrncias de uma transio t. O
vetor S apenas informa quantas vezes cada transio foi disparada, entretanto no estabelece a
ordem deste disparo.

Simplificando a equao 3, obtemos a equao 9 que tambm pode ser chamada de equao
fundamental das RdPs. Ela pode ser utilizada tanto para realizar uma seqncia de disparo
quanto para verificar se um determinado estado pode ser alcanado, dado um estado inicial e
obter quais e quantas vezes cada transio deve ser disparada para chegar a este estado.

M '= M + C * S

com M 0, S 0.

( 9)

Onde * e o operador de multiplicao matricial.

1 t2 t3
M '
A figura 2.10 mostra a seqncia de disparo M o t

da RdP ilustrada na figura

2.6. Mi representa as diferentes marcaes obtidas a partir do disparo das transies da


seqncia.

28

Figura 2.10 Seqncia de disparo [2]

Pode ser observado que a transio t1, t2 e t3 foram disparadas uma nica vez. A transio t4
no foi disparada na seqncia de disparo definida (vide matriz S da figura 2.10).

A figura 2.11 exemplifica o uso da equao fundamental. O objetivo achar o vetor S que
permite sair do estado inicial M0 e chegar ao estado M1 como observado na figura 2.10.

29

Figura 2.11 - Exemplo de aplicao da equao Fundamental

Devido ao fato de que neste exemplo a RdP no possui o mesmo nmero de transies e
lugares, a equao resulta em um sistema no-determinstico, e, portanto, com soluo no
nica. A soluo do sistema contm um conjunto solues possveis que pode ser observado
na figura 2.10. Para chegar ao estado M1, saindo de M0, possui pelo menos duas solues:
S = [1 0 0 0]

2.4.6

ou S = [2 1 0 0] .
T

rvores de alcanabilidade

Uma rvore de alcanabilidade torna possvel enumerar, exaustivamente, as marcaes


alcanveis possveis em uma RdP partindo de uma marcao inicial. Estas marcaes so
descritas por um grfico do tipo rvore, onde os ns so vetores de marcaes, alcanados
sucessivamente e alternadamente pela rede. Os arcos correspondem s transies executadas
[14].

30
A figura 2.12 ilustra a rvore de alcanabilidade da RdP definida na figura 2.6; pode-se
observar que a rvore descreve todos os estados atingveis daquela rede. Este mtodo
apresenta-se como alternativa para a construo de simuladores.

Figura 2.12 - rvore de alcanabilidade

2.4.7

Conjunto de Marcaes Acessveis

um conjunto de marcaes que podem ser alcanadas a partir de um estado inicial por
intermdio de uma seqncia de disparos [1].

Este conjunto representado pela equao 10 onde A representa o conjunto de marcaes


acessveis:

31

A( R, M ) = {M i , S

s
M

M i}

( 10)

Se o conjunto for finito, poder ser representado na forma de grafo GA(R,M).

2.5

PROPRIEDADES DA RdPs

Nesta seo sero definidas as propriedades das RdPs.

2.5.1

Rede Marcada k-limitada

O conceito de rede limitada corresponde ao fato de que um sistema fsico sempre limitado.
Entretanto, podem-se utilizar uma RdPs no limitada quando se quer avaliar o desempenho de
um sistema independentemente dos seu limites de elementos de armazenamento
intermedirios [12]. A seguir sero dados alguns conceitos relacionados com redes limitadas:

a) Lugar k-limitado e binrio: todo lugar p de uma rede marcada N ser klimitado se, e somente se:
M ' A( R, M ),

M ' ( p) k .

( 11)

Quando k=1, o lugar denominado de binrio. Para a marcao inicial da


rede descrita na figura 2.6 ( M = p 23 ou M = [0 3 0] ), o lugar p3
t

binrio, enquanto p1 e p 2 , so 3-limitadas;

b) RdPs marcada k-limitada e rede marcada binria: uma rede marcada N


k-limitada, se, e somente se, todos seus lugares so k-limitados;

32
Uma rede marcada N binria, se, e somente se, todos seus lugares forem
binrios. Neste caso, podem ser chamadas tambm de redes salvas ou
seguras.

2.5.2

Rede marcada viva

Uma importante caracterstica das RdPs a propriedade de vivacidade. Por meio desta
propriedade podemos observar diversas caractersticas como citado a seguir:

a) Transio quase-viva: para que uma transio seja considerada quase-viva


necessria uma seqncia de disparos tal que:
s
M'
S | M

t
e M'

( 12)

logo, para ser considerada uma transio quase-viva dever ser possvel que uma
transio t seja sensibilizada a partir de uma marcao M, obtendo-se uma nova
marcao M, usando uma seqncia de disparo S [7]. Esta propriedade pode ser
observada na figura 2.13 se o disparo das transies seguir a ordem de disparo t1, t2 e
t3. Neste caso t2 e t3 so quase vivas dado que seus disparos dependero de certas

marcaes apropriadas.

b) Transio viva: uma transio pode ser considerada viva, se e somente se uma
transio t puder ser sensibilizada por qualquer marcao M obtida por uma
seqncia de disparo S como descrito na equao 14 [7], este comportamento pode ser
observado na figura 2.13:

33

st
M ' A( R, M ), s | M '

( 13)

Neste exemplo t1 uma transio viva.

c) Rede marcada viva: uma RdPs marcada somente poder ser considerada viva se, e
somente se, todas as suas transies forem vivas. Logo, esta propriedade assegura que
no haja nenhum bloqueio gerado pela estrutura da rede [8]. Este comportamento pode
ser observado na figura 2.14.

d) Rede marcada reinicivel: uma rede marcada s poder ser considerada reinicivel
se, e somente se, a partir de qualquer marcao Mde GA(R,M), seja possvel encontrar
uma seqncia de disparos capaz de levar ao estado inicial. Esta propriedade
utilizada em redes com comportamentos repetitivos, podendo ser verificada por meio
da equao 15. Esta propriedade pode ser observada na figura 2.14.

M ' A( R, M ),

s
s | M '

( 14)

34

Figura 2.13 - Exemplo de transio quase-viva

Figura 2.14 - Rede reinicivel

35

2.5.3

Propriedades Estruturais

Segundo [2], estas propriedades so independentes da marcao ou do estado inicial; referemse diretamente s propriedades derivadas da estrutura da rede. A aplicao destas
propriedades permite informaes adicionais sobre o comportamento dinmico de uma RdPs.
A seguir sero definidas algumas destas propriedades.

a) Componentes conservativos, invariantes de lugar: pode-se observar uma


invarincia de lugar sempre que a soma de recursos (fichas) de dois ou mais lugares
permanecerem constantes independentemente de qualquer seqncia de disparo. Esta
propriedade pode ser verificada por meio da equao 16.

M A( R, M 0 ),

M ( p a ) + M ( pb ) = M 0 ( p a ) + M 0 ( pb )

( 15)

Uma invariante linear de lugar uma funo linear da marcao dos lugares cujo valor uma
constante que depende apenas da marcao inicial da rede. Com isto, possvel verificar,
independentemente de qualquer que seja a evoluo da rede, suas restries sobre os estados e
atividades do sistema.

Na figura 2.15 podemos observar um exemplo de invariante de lugar, onde, Mi (Pt1) +


M1(Pt2) = M0(Pt1)+M0(Pt2) e invariante de transio, onde S = t2t3.

36

Figura 2.15 - Exemplo de invariante

b) Componentes repetitivos, invariantes de transio: podem-se observar invarincias


de transies sempre que for disparado. Esta propriedade facilmente verificada
aplicando-se a equao 9 se M = M, logo C*S = 0.

Neste caso, todas as solues da equao 9 so chamadas de componentes repetitivos.

2.5.4

Transies neutras ou identidade

Uma transio neutra no interfere no comportamento da rede, seu disparo no modifica em


nada a marcao da rede. Uma rede que possui este comportamento chamada de RdP nopura. Este comportamento poder ser observado sempre que aps um disparo de transio a
funo Pre(.,t), for igual funo Post(.,t) [3].

A figura 2.16 exemplifica este comportamento, pois a transio t5 quando disparada no


altera a marcao da RdP.

37

Figura 2.16 - Rede dePetri no pura

2.6 TAXONOMIA DAS RdPs

Nesta seo so descritos os tipos de Redes de Petri objeto deste trabalho e que so
referenciados na literatura. Devido complexidade dos modelos existentes, surge a
necessidade da evoluo das Redes de Petri, adicionando ao seu modelo mecanismos capazes
de modelar ambientes levando em considerao o tempo, ambiente externo, dados estatsticos,
aspectos dinmicos, entre outros.

2.6.1

RdPs Interpretadas

Estas se caracterizam por introduzirem variveis s transies da rede, podendo com isto
representar condies e aes existentes no sistema. Tais variveis podem interagir com o
ambiente externo, como por exemplo, sensores (em sistemas de automao e de manufatura)
[9].

38
Diferentemente das RdPs ordinrias, que para disparar uma transio basta que a mesma
esteja sensibilizada, as redes interpretadas para ter uma transio disparada, tem que estar
sensibilizadas e satisfazer a condio que a elas foi atribuda. Com isto, torna-se possvel o
disparo de vrias transies ao mesmo tempo [1].

Segundo [1], interpretar uma RdP, implica em dar sentido concreto a um modelo
matemtico, a RdPs interpretada estrutura-se em duas partes:

a) Controle: descreve todos os encadeamentos potenciais de eventos e de


atividades, este controle descrito pelas Redes de Petri Ordinrias;
b) Dados: a parte operativa do sistema. Descreve ao mesmo tempo as estruturas
de dados internas ao sistema e os clculos que so feitos sobre estes dados, sem
especificar em quais instantes eles so realizados.

A figura 2.17 ilustra a interao da RdP com o ambiente externo.

Figura 2.17 - Interao da rede com o ambiente externo [1]

A RdP descreve apenas a parte de controle do sistema. A marcao da rede fornece, portanto,
o estado do controle.

39
O estado do sistema, estado em que a RdPs interpretada descrita pela marcao associada ao
estado dos dados. Logo:

Estado rede interpretada = marcao + estado dados;

Estado dados = estado variveis internas + tempo transcorrido.

A figura 2.18 apresenta um exemplo de RdPs interpretada, descrevendo uma estao coletora
de petrleo, onde um determinado tanque possui dois sensores que controlam o volume deste
reservatrio. O controle realizado por duas bombas que bombeiam leo para dentro do
tanque, sempre que o sensor de nvel baixo do tanque acionado, e desliga sempre que o
sensor de nvel alto do tanque acionado.

Somente ligada uma bomba de cada vez, a segunda bomba somente ser ligada caso a
primeira bomba no ligue aps dois segundos do acionamento do sensor. Existe tambm um
sensor que controla a presso da bomba como mostrada na figura 2.18 [1].

Figura 2.18 - Exemplo estao coletora de petrleo [1]

A figura 2.19 apresenta o modelamento da estao coletora de petrleo apresentada na figura


2.18.

40

Figura 2.19 Modelamento da RdPs Interpretada [1]

2.6.2

RdPs Temporais e Temporizadas

Tendo o tempo como parte do controle as Redes de Petri, temporal e temporizada, modelam o
comportamento dos seus processos levando em conta estas caractersticas.

a) RdPs Temporais: para este modelamento a cada transio associada um par de


datas ( min , max ), onde min e max indicam a durao mnima e mxima,
correspondente, de sensibilizao da transio do disparo [9], como ilustrado na figura
20. min e max representam datas referentes a um relgio comum, que representa o
tempo absoluto de toda a rede.

41
Pode-se associar um intervalo [a,a] a uma transio para representar uma durao a.
Se a transio estiver no tempo , a mesma ir disparar no tempo + a, caso nesta
data continue sensibilizada pela transio [1].

Segundo [12], formalmente uma RdP temporal definida por par N tl = N , I , onde:
N uma RdPs Ordinria;
(t ) = [ min (t ), max (t )] uma funo que para cada transio t associa uma
durao de sensibilizao. A durao (t) definida como um intervalo
fechado racional.

Na figura 2.20, a transio t1 s est sensibilizada entre os valores temporais (absolutos) um


(1) e dois (2). Neste tipo de rede se assume de maneira implcita que existe um relgio nico
no sistema que define os momentos em que as transies estaro sensibilizadas.

Figura 2.20 - Redes Temporais

42
b) RdPs Temporizadas: neste modelo cada transio associa-se a uma durao a fim
que a transio seja disparada, logo quando uma ficha chega a um determinado lugar
em uma data , ela s deixar o lugar aps ' = + instantes [1].

Segundo [1], formalmente uma RdPs temporizada definida por par N tl =< N , f > ,
onde:

N uma RdP ordinria;

f : T Q + a funo de durao de disparo, que associa a cada

transio um nmero racional positivo que descreve a durao do


disparo.
A figura 2.21 apresenta um exemplo de uma RdPs temporizada. Neste caso, em um momento
dado (t = 1) um recurso est disponvel em P1, sensibilizando t1. Entretanto, este recurso
(ficha) s estar disponvel em P2 um tempo 1 depois. Isto pode ser interpretado como um
retardo introduzido por t1 na transferncia da ficha de P1 para P2.

Figura 2.21 Exemplo de RdPs Temporizada [1]

43

2.7 OUTROS TIPOS DE RdPs

Nesta seo sero descritos, sucintamente, outros tipos de RdPs referenciadas na literatura.
Estas taxonomias no foram contempladas no desenvolvimento do SimRP, devido
complexidade da implementao das outras taxonomias escolhidas para o simulador. Neste
trabalho apresentada esta taxonomia para auxiliar no desenvolvimento de trabalhos futuros.

Um importante tipo de RdPs so aquelas consideradas de alto nvel. Estas redes objetivam
simplificar seu modelamento. O comportamento de leitores e escritores pode ser um bom
exemplo para explicar seu funcionamento, j que o comportamento dos leitores sempre o
mesmo, independente de ser o leitor 1 ou o leitor n, como representado na figura 2.22. Nesta
figura pode ser observado um conjunto de leitores (L1, L2 e L3) que interagem com um nico
escritor (E).

(a)

(b)
Figura 2.22 - Redes dobradas [1]

Nesta figura podemos observar que o comportamento dos leitores (L1, L2 e L3) o mesmo.
Neste caso, o que se modifica e a interao entre estes leitores e o escritor (vide figura 2.22

44
(a)). Pode ser visto que cada leitor Li executa vrias tarefas de acordo com o disparo de
transies que levam para novos lugares na RdP. Da mesma maneira o escritor executa suas
respectivas tarefas como descrito na figura 2.22.

Se tivesse um nmero muito grande de leitores, ficaria muito difcil entender o


comportamento desta rede. Surgiu ento o conceito de dobrar a rede, que consiste em agrupar
os lugares e transies que juntos apresentam comportamento similar, como demonstrado na
rede da figura 2.22 (b), onde os trs leitores so agrupados num nico leitor (L). Com isto, a
modelagem torna-se menos complexa e facilita a visualizao do comportamento da rede.
Com o dobramento da rede (agrupamento de elementos da mesma), o prximo passo
diferenciar o comportamento de cada leitor individualmente na rede dobrada [12].

A seguir so apresentados os modelos que se baseiam na idia de dobramento de Rede, como


no caso de redes coloridas, redes predio-transio e redes a objeto.

2.7.1

RdPs Coloridas

As RdPs coloridas estabelecem uma cor (nmeros inteiros ou conjunto de etiquetas) diferente
para representar cada um dos processos dobrados. Como conseqncia, a cada lugar
associado um conjunto de cores das fichas que podem pertencer a este lugar, e a cada
transio associado um conjunto de cores correspondentes s diferentes maneiras de
disparar uma transio [1].

A RdPs Colorida uma sxtupla, definida por:

P um conjunto finito de lugares;

T um conjunto finito de transies;

45

Cor um conjunto finito de cores;

CSC um conjunto finito de cores que cada lugar e cada transio associa um subconjunto de Cor (as cores possveis para este lugar ou esta transio): Csc:P T
P(Cor);

W uma funo de incidncia ( equivalente a C = Post Pre); cada elemento de


W(p,t) : CSC(t) CSC(p) N;

M0 uma marcao inicial que associa, para cada lugar e para cada cor possvel neste
lugar um nmero de fichas M0(p):CSC(P)N.

A figura 2.23 apresenta um exemplo de modelamento de RdPs Colorida. Este trata do


modelamento do comportamento de um processo de usinagem que consiste em trs mquinas:
maq1, maq2, maq3; e trs peas: pc1, pc2, pc3. No exemplo, a rede foi dobrada como
mostrada na figura 22, Na figura 24 tambm apresentada a definio formal desta rede.

Figura 2.23 -Exemplo de RdPs Coloridas

46
Esta modelagem pode se tornar invivel computacionalmente, quando o nmero de cores for
elevado, j que as funes Pre e Post so formadas pelo produto cartesiano do conjunto de
cores [2].

2.7.2

RdPs Predicado-Transio

As transies so consideradas como regras num sistema lgico-proporcional (sem variveis),


e o poder de descrio aumentado substituindo-se por regras da lgica da primeira ordem
(com variveis) [1].

Com isto, uma transio dever descrever uma famlia de eventos e no somente um evento
como no caso das redes coloridas.

A RdPs Predicato-Transio definida formalmente por uma quntupla, como mostrado na


figura 2.24.

Figura 2.24 Definio formal da rede predicato-transio

47
A figura 2.25 apresenta o modelamento em RdPs Predicato-transio, do exemplo
apresentado no item anterior RdPs Coloridas.

Figura 2.25 - Exemplo de Rede Predicato-Transio [1]

Este modelamento apresenta-se mais interessante do que o anterior, j que a funo Pre e
Post, no mais consiste em uma operao cartesiana, mas sim de conjunto de variveis que
utilizadas quando necessrias no decorrer do desenvolvimento da rede.

No caso das RdPs predicato-transio, as transies de uma RdPs ordinria so consideradas


como regras num sistema de lgica proposicional (sem variveis), e o poder de descrio
aumentado substituindo-se por regras lgicas de primeira ordem (regras de variveis). Com
isto, a representao fica mais concisa.

Uma regra (transio) descreve, ento, uma famlia de eventos e no mais somente um evento.
A famlia definida pelo conjunto de substituies possveis de variveis por valores. Ao
invs de regras do tipo:

48

Se uma pea pc1 e mquina M2, fazer usinagem; u12;

Se uma pea pc2 e mquina M2, fazer usinagem; u22;

Se uma pea pci e mquina Mj, fazer usinagem; uij;

Tem-se regras do tipo:

Se uma pea <x> uma mquina <y>, fazer uma usinagem <u>, onde as variveis <x>, <y> e
<u> assumiro, respectivamente, valores no conjunto de constante {pci} descrevendo as peas
em espera, o conjunto Mj das mquinas livres, e o conjunto {uij} das opes a serem
realizadas.

2.7.3

RdPs a Objeto

Este modelamento utiliza-se do conceito de objetos, muito utilizado no meio computacional e


na engenharia de Software. A RdPs a Objetos utiliza-se dos conceitos da RdPs PredicatoTransio, adicionado ao modelo conceitos de Classes de Objetos, atributos, mtodos e
herana. Conceitos abstrados da teoria de Orientao a Objeto [1].

Formalmente uma RdPs a Objetos definida por uma 9-upla, como mostrada na figura 2.26.

49

Figura 2.26 - Definio formal da RdPs a Objetos [1]

Para ilustrar melhor a RdPs a Objetos, a figura 2.28 apresentam o modelamento em RdPs a
Objeto, do mesmo exemplo utilizado nos dois tpicos acima Redes Coloridas e PredicatoTransio:

50

Figura 2.27 - Exemplo de RdPs a Objetos [1]

Note que este modelamento bem similar ao da RdPs Predicato-Transio, contudo mais
poderoso, j que agrega atributos capazes de identificar, por exemplo, o nome, operaes
possveis, data de manuteno entre outros.

2.8

LINGAGEM DE ESPECIFICAO DE HARDWARE VHDL

Nesta seo sero explicados, sucintamente, alguns conceitos sobre a linguagem de descrio
de hardware VHDL. O Projeto Very Higd Speed Integrated Circuits (VHISC) foi
desenvolvido no ano de 1980 pelo Governo do Estados Unidos da Amrica, com o objetivo de
desenvolver circuitos integrados de alta velocidade e realar a descrio projetos eletrnicos.
Em uma tentativa de padronizar a descrio de um projeto de Hardware, o IEEE Institute of
Electrical and Eletronic Enginneering apoio criao do VHDL VHSIS Hardware
Descripion language em 1993 o VHDL foi aprovado, atualizado e definido com o padro
IEEE 1076.1[14].

51

O Objetivo da linguagem estruturar de forma simples a descrio de circutios digitais,


usando estruturas sintticas e semnticas similares s linguagens de programao de alto nvel
como Pascal e C. Como toda linguagem de programao, o VHDL possui elementos lxicos,
operadores lgicos, tipo de dados, operadores e sentenas lgicas.

2.8.1

Elementos lxicos bsicos da linguagem

O VHDL no case-sensitive, os identificadores so palavras reservadas ou nomes definidos


pelo programador; uma linha de comentrio definida por dois hfens - -; os nmeros
podem ser expressos no formato decimal inteiro, inteiro, decimal exponencial, bases definidas
entre 2 e 16, nmeros com ponto flutuante que neste caso estaro definidos como real. Os
caracteres utilizados na linguagem so correspondentes tabela ASCII e as string so as
concatenaes destes caracteres, alem desses tipos de dados o VHDL possui outro patro, o
bit strings, que so converses para definir um padro em diferentes bases, por converso,
cada base tem uma letra no incio que a identifica, exemplo B Binrio e X hexadecimal, neste
caso o valor X 16 16 em hexadecimal.

2.8.2

Tipo de Dados

Segundo [15], os tipos de dados primitivos definidos na linguagem possibilitam a construo


de tipos derivados.

a) Dados primitivos:

Inteiro: (integer), com uma faixa entre 2147483647 a +2147483647;

Pontos flutuantes (real), que variam entre 1E38 a +1E38;

52

Fsicos que so tipos numricos representativos de algumas grandezas fsicas,


como massa, comprimento, tempo ou tenso eltrica.

b) Dados derivados:
Entre os tipos derivados, temos os tipos enumerados, que so conjuntos ordenados de
identificadores ou caracteres, arrays, que so conjuntos indexados de elementos de
algum tipo primitivo e os records que so conjuntos de tipos de dados primitivos
distintos. Existem ainda, outros tipos de dados derivados, como os subtypes e os
attributes, como mostrado na figura 2.28.

TYPE octal_digit IS (0,1,2,3,4,5,6,7);


TYPE word IS ARRAY (31 downto 0) OF BIT
TYPE instruction IS RECORD
opcode: processor_op;
address_mode: mode;
operand1: INTEGER RANGE 0 TO 15;
operand2: INTEGER RANGE 0 TO 15;
END RECORD;

Figura 2.28 - Exemplo de dados primitivos

2.8.3

Objetos

Na descrio VHDL, quando um objeto nomeado, ele assume um valor de acordo com o
tipo de dado a que foi associado. As trs classes de objetos so: as constantes, as variveis e
os sinais [15]. Exemplo:

53
CONSTANT real:= 2.71828;
VARIABLE count: INTEGER:=0;

2.8.4

Expresses e operadores

Semelhantemente a uma linguagem de programao, as expresses em VHDL so como


combinaes de tipos primrios e operadores. Tipos primrios incluem nomes de objetos,
literais, chamadas a funes e expresses entre parnteses. Os operadores esto divididos em
Lgicos (and, or, nand, nor, xor, not); relacionais ( =, /=, <, <=, >, >=) e aritmticos (+, -, *, /,
**).

2.8.5

Sentenas

No VHDL como nas linguagens de programao, as sentenas so estruturas sintticas, a


linguagem contm vrias facilidades para modificao do estado dos objetos e para controle
do fluxo de execuo dos modelos [14]. Na figura 2.29 mostrada a sentena de repetio
mais utilizada como IF mostrado na figura 2.29 (a), o CASE mostrado na figura 2.29 (b) e
WHILE na figura 2.29 (c).

54

IF condio THEN

CASE alternativa OF

seqncia de sentenas

WHEN opo =>

{ELSEIF condio THEN

seqncia de sentenas

seqncia de sentenas}

END CASE;

[ELSE
seqncia de sentenas]
END IF;

(a)

(b)

[loop_label:][ WHILE condio|FOR identificador IN faixa] LOOP


seqncia de sentenas
END LOOP [loop_label];

(c)

Figura 2.29 - Exemplo de Sentenas

2.8.6

Estrutura da Linguagem

Segundo [14], uma especificao VHDL pode ser dividida em duas partes fundamentais. A
primeira define a interface e a segunda, seu comportamento. A interface definida por meio
da declarao entity, nela so declarados os nomes dos componentes e suas portas de entrada

55
e sada. O exemplo da figura 2.30 (a) apresenta a declarao de uma entididade chamada
XOR, que possui duas entradas e uma sada.

ARCHITECTURE porta_XOR of XOR IS

ENTITY XOR IS
PORT( I1, I2 : IN BIT;

BEGIN
O <= I1 XOR I2;

O : OUT BIT;)

END porta_XOR;

END XOR;

(a)

(b)
Figura 2.30 - Exemplo de Estrutura

Por meio da declarao architecture, define-se o comportamento, e o funcionamento do


circuito. So definidas as relaes entre entrada e sada por meio algortmico[14]. O exemplo
da figura 2.30 (b) define o comportamento de uma porta XOR, a entidade, foi definida no
exemplo anterior.

Para realizar a conexo dos componentes de uma estrutura, utilizado no VHDL o conceito
de sinais. Para declarar um sinal no VHDL, necessrio associ-lo a um tipo de dado,
possvel tambm atribuir valores no momento da inicializao, como demonstrado no
exemplo a seguir: SIGNAL A: BIT := 0;

A unidade primria de descrio do comportamento de um circuito o processo (process). O


processo caracteriza-se por uma seqncia de cdigos que podem ser ativados em resposta
mudana de estados. O processo executado concorrentemente quando mais de um processo
ativado ao mesmo tempo. Existem dois estados possveis para um processo: suspenso e
ativo. Todos os processos do modelo podem ficar ativos em qualquer instante [15]. O

exemplo da figura 2.31 demonstra a declarao de um processo.

56

PROCESS
BEGIN
WAIT ON A, B UNTIL Enable = 1;
T <= A AND B;
END PROCESS;

Figura 2.31 - Exemplo de declarao de um processo

Segundo [15], a mudana entre os estados de um processo controlada por uma sentena
chamada wait. Quando o processo executa a sentena wait ele suspenso e as condies para
sua reativao so ajustadas. As sentenas wait podem ser utilizadas da seguinte forma:

WAIT: faz com que o processo fique suspenso indefinidamente. Depois da execuo

da sentena, o processo no ir ser ativado novamente durante a simulao;

WAIT ON signal-list: suspende o processo, definindo uma lista de sinais que devero

ser sensibilizados para sua reativao;

WAIT UNTIL condition: especifica uma condio, que quando verdadeira, reativa o

processo;

WAIT FOR time-expression: determina um tempo que o processo deve permanecer

suspenso, para, ento, ser reativado;

57
O VHDL tambm possibilita atribuir tempo aos sinais; a temporizao permite que os valores
de tempo sejam atribudos aos respectivos sinais. A determinao de tempos pode ser
controlada pela sentena after. O exemplo da figura 2.32 mostra esta funcionalidade:

SIGNAL S: INTEGER := 0;
P1: PROCESS
BEGIN
S <= 1 AFTER 1 ns;
S <= 2 AFTER 2 ns;
WAIT;
END PROCESS;

Figura 2.32 - Exemplo da sentena AFTER

Segundo [15], o VHDL uma linguagem genrica para descrever sistemas digitais de
hardware no fazendo aluso acerca da tecnologia ou da metodologia usada para descrever o
sistema. Uma abstrao dos sistemas digitais de hardware usada como um dos principais
fundamentos da linguagem. Neste conceito inclui comportamento, temporizao e
caractersticas estruturais dos sistemas digitais que integram uma linguagem singular, que
permite uma ampla faixa de opes para descrio e esquematizao.

A linguagem baseia-se em dois modelos interdependentes:

58
b) O modelo comportamental: divide um fluxo de dados e algortmico, nele a
relao E/S define-se atravs de funes booleanas, modelado um circuito
atravs da escrita de um programa que defina o seu comportamento;
c) O modelo estrutural: define um circuito atravs de seus componentes e a
ligao entre eles;

2.8.7

O modelo comportamental

A estrutura e seu comportamento esto presentes em todos os modelamentos. A linguagem


tambm possibilita o uso de bibliotecas, com comportamentos pr-definidos, entretanto,
comportamento diretamente integrado na linguagem e o projetista tem a opo de misturar
estrutura e comportamento em qualquer instncia do modelo [15].

A transformao de valores discretos de entrada em valores discretos de sada, aplicando-se


um nmero de operaes ou transformaes nos valores de entrada, define um sistema digital,
este comportamento.

2.8.8

O modelo estrutural

Aumentando a complexidade de um modelo de sistema digital, a representao de um sistema


discreto pode se tornar difcil de gerenciar. Muitos sistemas digitais so desenhados pela
combinao de vrios subsistemas [15]. A figura 2.33 exemplifica este conceito.

59

Figura 2.33 - Exemplo de um modelo estrutural

Do ponto de vista de uma descrio comportamental, a descrio de Mquinas de Estados


Finitos (Finite State Machines - FSMs) um bom exemplo.

Uma FSM definida por uma sxtupla {X, Z, Q, T, S, E} onde:

X o conjunto de entradas da FSM.

Z o conjunto de sadas da FSM.

Q o conjunto de estados internos da FSM.

T a funo de transio de estado que representa um conjunto de


mapeamentos parciais: T: (X, Q) -> Q.

S a funo de sada que representa um conjunto de mapeamentos parciais:


S: (X, Q) -> Z (Mquina de Mealy) ou S: Q -> Z (Mquina de Moore).

E o estado inicial.

60
FSMs so amplamente utilizadas em engenharia para projeto de controladores. As mesmas
podem descrever o comportamento de um sistema de automao, onde o sistema emite sinais
de controle dependendo das entradas e do estado atual do sistema.

Do ponto de vista de implementao do circuito, uma FSM pode ser representada como um
bloco combinacional mais um bloco de memria para armazenar os estados presentes (vide
figura 2.34).

Figura 2.34 - Exemplos de mquinas de estados

FSMs pode ser representada em VHDL atravs de processos. Na figura 2.35 apresentado um
exemplo de implementao de mquina de Moore em cdigo VHDL, no desenvolvimento do
SimRP, foi adotado o modelo de Mquina de Mooore na gerao de cdigo VHDL, a figura

61
2.35 (a) apresenta a declarao da entidade, a figura 2.35 (b) apresenta o modelamento da
entidade e a figura 2.35 (c), a definio do processo.

LIBRARY ieee;
ENTITY moore3 IS
PORT (Clk, Reset
Input
Output

: IN STD_LOGIC;

: IN BIT;
: OUT STD_LOGIC_VECTOR (1 DOWNTO 0)

);
END moore3;

(a)

62

ARCHITECTURE comportamental OF moore3 IS


TYPE TIPO_ESTADO IS (estado_A, estado_B, estado_C);
SIGNAL estado: TIPO_ESTADO;
BEGIN
PROCESS (Reset, Clk)
BEGIN
IF reset = '1' THEN
estado <= estado_A;
--ELSIF Clk'EVENT THEN
ELSIF Clk'EVENT AND clk = '1' THEN
CASE estado IS
WHEN estado_A =>
IF Input = '0' THEN estado <= estado_B;
ELSIF Input = '1' THEN estado <= estado_C;
END IF;
WHEN estado_B =>
IF Input = '0' THEN estado <= estado_B;
ELSIF Input = '1' THEN estado <= estado_C;
END IF;

(b)

63

PROCESS (estado, Input)


BEGIN
CASE estado IS
WHEN estado_A =>
output <= "01";
WHEN estado_B =>

END CASE;
END PROCESS;
END comportamental;

(c)
Figura 2.35 - Exemplo de implementao de Mquina de estados em VHDL

2.9

CONCLUSO

Este captulo apresentou os conceitos de Sistemas Discretos, RdPs e da Linguagem VHDL.


Neste sentido foram abordos alguns aspectos formais de RdPs que so importantes no
contexto deste trabalho. Outros aspectos tericos podem ser estudados na literatura, tais como
utilizao de gramticas e regras de reescrita para formalizar RdPs [1].

O critrio de escolha das taxonomias a serem desenvolvidas no SimRP foi a grande utilizao
destas em outros simulados, e no caso especfico da RdPs Interpretadas a sua semelhana
com o comportamento das Mquinas de Estados Finitos. Para resumir os pontos importantes
estudados neste captulo so feitos os seguintes comentrios:

64

a) Para os objetivos de gerar descries de controladores automaticamente a RdPs


Interpretadas se assemelham bem a modelos de Mquinas de Estados Finitos
(FSMs Finite State Machines).
b) As taxonomias temporais e temporizadas possibilitam atribuir varivel de
tempo, permitindo assim realizar simulaes mais precisas.
c) A linguagem VHDL possui uma definio bem semelhante a das linguagens de
programao estruturadas, permitindo assim implementar sistemas digitais
complexos de forma mais simples e rpida. FSMs podem ser descritas em
VHDL facilmente. Descries nesta linguagem de RdPs Interpretadas podem
ser geradas, de maneira automtica, mapeando-as como FSMs (vide seo
2.5.1).
d) A possibilidade de acrescentar s Redes de Petri Interpretadas clusulas
temporais permite enriquecer a capacidade de representao deste modelo, esta
funcionalidade no pertence verso 1.0 do SimRP, mas est sendo colocado
como proposta de trabalhos futuros. Mais informaes sobre esta
funcionalidade poder ser obtida no artigo referente bibliografia catalogada
na posio [24].

65

3. SIMULADORES DE REDES DE PETRI PESQUISADOS

3.1

INTRODUO

Neste captulo so analisadas algumas ferramentas de simulao de redes de Petri. Neste


contexto importante verificar o estado da arte na rea de simulao de RdPs que suportem
os modelos escolhidos (conforme discutido no Captulo 2). Isto , as RdPs Interpretadas,
Temporais e Temporizadas. Para o desenvolvimento deste trabalho foram pesquisados vrios
simuladores de Redes de Petri, quatro destas ferramentas se destacaram em relao s outras
por suas caractersticas e funcionalidade.

Nesta anlise foi verificada a coerncia com relao teoria de RdPs (isto , se os modelos
adotados nas ferramentas concordam plenamente com o aspectos tericos discutidos no
captulo 2), caractersticas de interface (interfase amigvel/no-amigvel), documentao do
sistema e manuais de uso.

A seguir sero analisadas de maneira objetiva quatro (4) simuladores de RdPs encontrados na
pesquisa correspondente.

3.2

TimeNET

Esta uma ferramenta para a edio, simulao e verificao de Redes de Petri


Temporizadas, desenvolvida em C++, compatvel com os sistemas Operacionais Linux SuSE
Linux 7.2 Professional, SunOS 5.7-5.9 (Solaris), Sun workstations e Windows XP, O TimeNet
uma ferramenta de uso livre; foi desenvolvida em 1991 pela Technische Universitt Berlin
[29].

66

a) Vantagens:

A ferramenta possui interface grfica amigvel para edio e simulao, ou seja, a


mesma possibilita a edio e simulao das RdPs atravs de comandos intuitivos e uso
de objetos grficos.

Verificao de propriedades/conflitos referentes s RdPs tais como rede marcada viva,


rede marcada reinicivel, am de conflitos estruturais, bloqueio fatal (vide captulo 2,
seo 2.5).

Ferramenta de uso gratuito (software gratuito).

b) Desvantagens:

limitada simulao das RdPs Temporizadas, no permitindo a simulao de outras


taxonomias.

Para a instalao da ferramenta no Linux ou no Solares so necessrios conhecimentos


avanados nos respectivos sistemas operacionais e a instalao de dependncias
relacionadas ao compilador GCC[34].

No disponibiliza o cdigo fonte.

No foi encontrado manual de uso da ferramenta e nem a documentao do sistema.

A figura 3.1 apresenta a interface grfica da ferramenta de edio e simulao de RdPs


Temporizadas TimeNet.

67

Figura 3. 1 - Interface grfica do TimeNet

3.3

ARP

Esta uma ferramenta para a edio, simulao e verificao de RdPs Ordinrias e


temporizadas, desenvolvida na linguagem de programao Pascal compatvel com o sistema
operacional Windows com MSDOS. O ARP uma ferramenta de uso livre (software
gratuito), que foi desenvolvida no ano 1995 pelo laboratrio de Engenharia Eltrica da

Universidade de Santa Catarina [30].


.

68

a) Vantagens:

Verificao deadlock (vide captulo 2, seo 2.6.1).

Verificao de propriedades referentes taxonomia das redes temporizadas e


ordinrias como a propriedade de K-limitada, vivacidade (vide captulo 2 seo 2.6).

Compatibilidade com a teoria de RdPs, descrita no captulo 2.

Instalao simplificada.

Manual uso acessvel na internet.

Ferramenta de uso gratuito (software gratuito, captulo 1, vide seo 1.1).

b) Desvantagens:

limitada taxonomias ordinria e temporal.

No disponibiliza o cdigo fonte.

Interface pouco amigvel. Exige que o usurrio faa seu modelamento atravs de
arquivo texto; para este modelamento necessrio que o usurio conhea previamente
a sintaxe da linguagem de entrada.

No possui portabilidade para outros sistemas operacionais.

A figura 3.2 apresenta a interface grfica da ferramenta de edio e simulao de Redes de


Petri Temporizadas ARP2

69

Figura 3. 2 - Interface do ARP2

3.4

PetriSim

Esta uma ferramenta para a edio, simulao e verificao de Redes de Petri Ordinrias e
Temporizadas, desenvolvida na linguagem de programao Pascal compatvel com o
sistema operacional Windows com MSDOS. O PetriSim uma ferramenta de uso livre
(software gratuito), foi desenvolvida no ano 2004 pela laboratrio University of Malta [31]

a) Vantagem:

Verificao deadlock.

Verificao de propriedades referentes taxonomia das redes temporizadas e


ordinrias como a propriedade de K-limitada e vivacidade.

Plenamente compatvel com a teoria de RdPs discutida no captulo 2.

Instalao simplificada.

70

Manual uso acessvel na internet.

Ferramenta de uso gratuito.

b) Desvantagem:

limitada a duas taxonomias ordinrias e temporizadas.

No disponibiliza o cdigo fonte.

Interface pouco amigvel, o usurio necessita de conhecer os comandos e as


funcionalidades para operar a ferramenta (comandos textuais e grficos).

No possui portabilidade para outros sistemas operacionais.

A figura 3.3 apresenta a interface grfica da ferramenta de edio e simulao de Redes de


Petri Temporizadas PetriSim.

71

Figura 3. 3 - Interface grfica do PetriSim

3.5

Visual Objekt Net ++

Esta uma ferramenta para edio e simulao de eventos contnuos e discretos utilizando-se
Redes de Petri Ordinrias e Temporizadas, desenvolvida na linguagem de Object C++
compatvel com o sistema operacional Windows 98 ou superior, O Virtual Objekt Net ++
uma ferramenta de uso livre; foi desenvolvida pela Ilmenau University of Technology [32].

72

a) Vantagens:

Verificao deadlock e conflitos.

A ferramenta possui interface grfica amigvel para edio e simulao. Neste caso a
mesma possibilita a edio e simulao das RdPs atravs de comandos intuitivos e uso
objetos grficos.

Verificao de propriedades referentes taxonomia das redes temporizadas e


ordinrias.

Instalao simplificada.

Ferramenta de uso gratuito (software gratuito).

b) Desvantagem:

limitada a duas taxonomias: temporizadas e ordinrias.

No disponibiliza o cdigo fonte.

Utiliza conceitos no presentes na teoria de Redes de Petri, como por exemplo, a


simulao de RdPs Ordinrias sem a definio de uma seqncia de disparos, quando
um conflito estrutural encontrado, a mesma escolhe de forma aleatria o caminho a
percorrer.

No possui portabilidade com outros sistemas operacionais.

A figura 3.4 apresenta a interface grfica da ferramenta de edio e simulao de Redes de


Petri Visual Objekt Net++.

73

Figura 3. 4 - Interface do Objekt Net ++

3.6

CONCLUSO

A anlise de outros aplicativos que editam e simulam o comportamento de eventos discretos


utilizando recursos da teoria de Redes de Petri teve como objetivo verificar seus
funcionamentos e caractersticas, para servir de base no desenvolvimento do SimRP.

Na pesquisa foi observado um grande nmero de simuladores de Redes de Petri disponveis


na WEB, mas na sua grande maioria tratavam-se de prottipos no robustos, sem
documentao e referncia.

74
Os quatro simuladores descritos neste captulo foram o que apresentaram maior qualidade
entre os simuladores pesquisados, todos apresentaram uma limitao quanto ao uso de
taxonomias e limitaes de funcionalidade. Nenhum dos simuladores estudados simula RdPs
Interpretadas e Temporais.

No foi observado em nenhum simulador as funcionalidades propostas pelo SimRP (simular


RdPs ordinrias, temporais e temporizadas de maneira flexvel). Adicionalmente, no foi

encontrado um simulador de boa qualidade com licenciamento GPL que motivasse a


continuidade do seu desenvolvimento.

Como pode ser visto, as ferramentas estudadas foram desenvolvidas usando diferentes tipos
de linguagens de programao. A escolha da linguagem de programao PHP para o
desenvolvimento do Simulador SimRP foi feita pelos seguintes motivos:

a) Esta linguagem de software livre (com licena GPL).


b) uma linguagem orientada para implementaes na arquitetura de trs (3) camadas
(cliente, servidor e banco de dados).
c) Possui plugins de acesso direto a banco de dados como MySQL [23], PostgreSQL
[35], Oracle [36].
d) uma linguagem interpretada de maior compatibilidade com os navegadores.
e) Embora seja uma linguagem orientada para aplicaes web, a sua sintaxe bem
semelhante linguagem C.
f) No necessita de software proprietrios adicionais para seu funcionamento. Neste
sentido a linguagem PHP tem vantagem sobre a linguagem JAVA [37] dado que esta
ltima precisa de uma mquina virtual JAVA para seu funcionamento. Neste caso, a
mquina virtual JAVA no software livre (sem licena GPL).
g) Esta linguagem garante total portabilidade para diferentes sistemas operacionais, dado
que utiliza tecnologia WEB, necessitando apenas de um navegador WEB (browser)
para seu funcionamento.

75
h) Facilita a utilizao por parte dos usurios, j que os mesmos no necessitam da
instalao do software nas mquinas.
i)

Facilita a atualizao do programa (verso do software), pois somente necessrio


aplicar as atualizaes no servidor.

76

4. ANLISE, PROJETO E IMPLEMENTAO DO SIMULADOR


4.1

Introduo

Neste captulo descrito o ciclo de projeto do simulador SimRP. Como descrito no captulo 3,
a linguagem escolhida foi o PHP, seguindo os conceitos da teoria de Orientao a Objetos.
Vantagem da orientao a objetos sobre o Projeto Estruturado de Sistemas que tudo o ciclo
do projeto (anlise, projeto e implementao) usa os conceitos fundamentais da orientao a
objetos tais como encapsulamento, herana, comunicao por meio de mensagens (usando os
mtodos das classes), entre outros.

Alm da linguagem PHP, foi utilizada a linguagem Java Script [38], sendo que a
implementao total do sistema usa a arquitetura de trs camadas: cliente, servidor, banco de
dados (como demonstrado na figura 4.1).

A metodologia utilizada para o projeto e documentao do sistema foi o RUP (Rational


Unified Process), desenvolvida pela Rational [39], esta metodologia vem se tornando a mais

utilizada para descrever e documentar sistemas, devido sua compatibilidade com a UML.

77

Figura 4.1 - Arquitetura do Sistema

O mdulo servidor o responsvel por todo o processamento da aplicao; para o seu


funcionamento necessrio que seja instalado e habilitado o servio de publicao de pgina
Apache[22], com o mdulo de interpretao do PHP. Tambm se faz necessria a instalao
do banco de dados MySQL [23], todos os aplicativos supracitados so compatveis com os
sistemas operacionais Linux e Windows e so registrados com GPL.

O servidor responsvel por publicar uma pgina para a entrada de dados no simulador
(interface com o usurio), que implementar a tarefa de entrada de dados. Neste caso, a
interface somente responsvel por tratar a entrada de dados e retornar o resultado j
processado. Por outro lado, todo o processamento da aplicao (simulao e verificao de
propriedades) realizado no servidor.

78
No cliente (ou usurio do sistema) necessria a instalao de um navegador WEB. O
sistema ser acionado atravs da URL (apontando para o servidor do SimRP), que dever ser
definida no momento da instalao do servidor. Para que este seja mais intuitivo o acesso ao
servidor interessante utilizar um servidor DNS.

4.2

Anlise do Projeto

O simulador est projetado para simular as Redes de Petri Ordinrias, Interpretadas,


Temporizadas e Temporais e gerar cdigos VDHL a partir de descries de RdPs
Interpretadas. Tambm possvel verificar propriedades pertinentes ao modelamento de uma
Rede de Petri como Vivacidade, Redes Inicivel e Rede no Pura (vide captulo 2 seo 2.5),
alm de descobrir conflitos estruturais e deadlocs (vide captulo 2 seo 2.4.4).
4.2.1

Limitaes do Sistema

O simulador no foi projetado para simular o comportamento de Redes de Petri Estocsticas e


Nebulosas, Coloridas e de Auto-Nvel, conforme definies dadas no Captulo 2 (vide seo
2.7).

O simulador somente gerar cdigo VHDL das Redes de Petri modeladas como Interpretadas,
devido a sua semelhana s mquinas de estados finitos (FSMs, vide captulo 2 sees 2.8.8).
O tratamento para as demais taxonomias tratadas neste trabalho deixado como sugesto para
trabalhos futuros.

O desenvolvimento do simulador ser dividido em mdulos, possibilitando a incluso de


mdulos adicionais como descrito acima.

79

4.2.2

Principais Funcionalidades do Sistema

O objetivo do sistema simular o comportamento de RdPs para os tipos propostos


anteriormente e gerar cdigo VHDL do comportamento de uma Rede de Petri Interpretada.
Para que este objetivo fosse alcanado, foram implementadas as seguintes funcionalidades:

a) Inserir Rede de Petri: esta funcionalidade responsvel por definir o


modelamento de uma Rede de Petri no sistema, descrevendo seu
comportamento e atribuindo uma taxonomia quando for o caso.
b) Editar Taxonomia: esta funcionalidade possibilita que seja atribuda uma
taxonomia a uma Rede de Petri Ordinria, caso no tenha sido definido no
momento do modelamento na funcionalidade Inserir Rede de Petri.
c) Visualizar Rede de Petri: esta funcionalidade permite a visualizao do
modelamento da rede, e com isto, poder analisar se a mesma no foi modelada
de modo equivocado.
d) Editar Rede de Petri: esta funcionalidade oportuniza que uma Rede de Petri,
j modelada no sistema possa ser alterada ou apagada.
e) Definir Seqncia de Disparos: esta funcionalidade permite que seja definida
uma seqncia de disparo para uma Rede de Petri Ordinria.
f) Verificar Propriedades: esta funcionalidade possibilita verificar se a Rede de
Petri inicivel, viva, no-pura ou se existe a presena de conflitos estruturais
e deadlocks.
g) Gerar Cdigo VHDL: esta funcionalidade permite a gerao de um cdigo
VHDL atravs do modelamento de uma Rede de Petri Interpretada.
h) Simular Rede de Petri: esta funcionalidade possibilita acompanhar a
simulao de uma RdP modelada no sistema de acordo com sua taxonomia.
Nesta funcionalidade tambm possvel verificar a presena de deadlock.

80
Nos tpicos seguintes sero detalhadas as funcionalidades do sistema alm do seu
comportamento e estrutura.

4.2.3

Diagramas de Caso de Uso

A figura 4.2 apresenta o diagrama de caso principal do sistema. O diagrama descreve seu
comportamento e funcionalidades.

Figura 4.2 - Diagrama de caso de uso do SimRP

81
O apndice 1 apresenta a anlise do sistema e os seus respectivos diagramas. No apndice 2
encontram-se as tabelas com os detalhamentos dos casos de uso. No apndice 4 descrito o
script de banco de dados e no apndice 5 apresentado o manual de utilizao do sistema.

4.3

Projeto do sistema

Nesta seo ser apresentado o projeto do SimRP e os principais diagramas de Classe e de


Seqncia.

4.3.1

Diagrama de classe

Na figura 4.3 pode ser observado o modelamento do SimRP com suas respectivas classes. Na
figura 4.4, podem ser visualizados os atributos referentes a cada classe de dados. Estas classes
foram definidas para armazenar informao (dados pertinentes ao modelamento de uma RdP).

82

Figura 4.3 - Diagrama de classe de dados

83

Figura 4.4 - Diagrama fsico do Bando de Dados

84

No diagrama apresentado na figura 4.4, tambm podem ser observados os tipos de dados,
relacionamentos, chaves primrias e chaves estrangeiras.

85

4.3.2

Diagramas de seqncias

Os diagramas de seqncia apresentados nas figuras 4.5 a 4.11, descrevem o funcionamento


dos casos de uso apresentados na figura 4.2. O detalhamento destes casos de uso pode ser
observado no apndice 2. Estes diagramas incluem classes de dados, classes de tela (classes
definidas para receber e apresentar informaes para o usurio), e classes de controle (classes
definidas para tratar as informaes e execuo de tarefas de simulao e verificao de
propriedades de RdPs).

Para melhor entendimento do diagrama, os seguintes smbolos padro do UML so usados


para representar os trs diferentes tipos de classes:

a) Classe de Tela:

b) Classe de Controle:

c) Classe de Dados:

86
a) Definir Rede de Petri: neste caso a tarefa consiste em definir a topologia da RdP
(lugares, transies, pr-condies, ps-condies e marcao inicial). A figura 4.5
mostra o diagrama de seqncia respectivo.

Figura 4.5 - Diagrama de Seqncia: Definir Rede de Petri

87
b) Taxonomia: neste caso so definidos os atributos referentes s RdPs Interpretadas,
Temporais e Temporizadas (condies, e caractersticas de tempo). A figura 4.6
mostra o diagrama de seqncia respectivo.

Figura 4.6 - Diagrama de Seqncia: Taxonomia

88
c) Visualizar: neste caso so mostrados para o usurio os dados pertinentes RdP sendo
tratada. A figura 4.7 mostra o diagrama de seqncia respectivo.

Figura 4.7 Diagrama de Seqncia: Visualizar

89
d) Edita: tarefas como modificar, editar, apagar so introduzidas no SimRP. A figura 4.8
mostra o diagrama de seqncia respectivo.

Figura 4.8 - Diagrama de seqncia: Edita

90

e) Seqncia de Disparos: as tarefas de definir uma seqncia de disparo a ser utilizadas


na simulao so mostradas no diagrama de seqncia da figura 4.9.

Figura 4.9 - Diagrama de seqncia: Seqncia de disparos

91
f) Propriedades: a verificao de propriedades de uma RdP mostrada no diagrama de
seqncia da figura 4.10.

Figura 4.10 - Diagrama de seqncia: Propriedades

92

g) Simulao: A tarefa de simulao da RdP mostrada na figura 4.11. Este diagrama


inclui a gerao de cdigo VHDL para as RdPs Interpretadas.

Figura 4.11 Diagrama de seqncia: Simulao

93

4.4

Projeto de Implementao do SimRP

Nesta seo ser detalhada a implementao do SimRP.

4.4.1

Algoritmo base para a simulao da RdPs

Para a implementao do SimRP foi necessria a implementao do algoritmo descrito na


figura 4.5, este algoritmo serviu de base para a implementao da simulao de todas as RdPs
abordadas neste trabalho.

O desenvolvimento deste algoritmo utilizou os conceitos apresentados no captulo 2 (seo


2.5.6). O conceito de rvore de alcanabilidade foi usado devido necessidade de simular
passo a passo cada marcao, mantendo o controle da seqncia de disparo executada para
alcanar uma nova marcao. A prpria caracterstica da teoria de rvore de alcanabilidade
permitem determinar quais e quantas vezes cada transio foi disparada.

A figura 4.12 detalha este algoritmo. Neste caso a rvore de alcanabilidade implementada
parcialmente tendo em conta as pr e ps-condies.

94

Figura 4.12 - Algoritmo base

O SimRP utiliza-se do banco de dados para armazenar todas as caractersticas do modelos


RdPs utilizados no SimRP. Isto diminui a performance do simulador, contudo permite o
armazenamento dos atributos do modelo de uma maneira flexvel (caracterstica importante
para simular diferentes tipos de RdPs).

Utilizando o conceito de Banco de Dados Relacionais [40], foi possvel implementar a


flexibilidade, no contexto de representar diferentes modelos de RdPs. Isto possvel dada a

95
possibilidade de associar a um modelo geral uma ou mais caractersticas referentes as RdPs
Interpretadas, Temporais ou Temporizadas.

Por uma questo terica, o SimRP condiciona o modelamento a uma nica taxonomia. Isto ,
somente so simulados os modelos de RdPs nas suas definies tericas, como descritas no
captulo 2.

Para o desenvolvimento da simulao das RdPs Interpretadas foram utilizados os conceitos


descritos no captulo 2 seo 2.6.1 e o algoritmo descrito na figura 4.12, associado a campos
que definem as condies associadas s transies. Neste caso o nmero de fichas ou recursos
de uma certa RdPs limitada a, no mximo, uma por lugar.

Para descrever uma condio, podem-se utilizar os operadores condicionais E, OU e No. A


utilizao do Java Script no desenvolvimento do simulador permite que os valores das
condies possam ser alterados no momento da simulao.

No caso do desenvolvimento da simulao das RdPs com representao de tempo, foram


utilizados os conceitos descritos no captulo 2 seo 2.6.2. Adicionalmente, foi utilizado o
algoritmo descrito na figura 4.12. Neste caso, o Java Script foi utilizado para garantir a
atualizao da tela a cada segundo (no foi possvel definir um tempo menor, pois no seria
possvel visualizar as alteraes na RdPs).

Para a simulao das RdPs ordinrias foi necessria a definio de uma seqncia de disparo,
como descrito no captulo 2 seo 2.4.5.

Para a gerao dos cdigos VHDL foi utilizado um template de um cdigo VHDL para
implementao de mquinas de estados. Para fazer um programa na linguagem VHDL, se fez
necessria criao de campos como: tipo de dados de entrada e sada na definio de uma
RdPs interpretada.

96

4.4.2

Verificao de propriedades e conflitos no SimRP

As propriedades verificadas no SimRP so: rede marcada viva , RdP pura, RdP reinicivel.
Alm do anterior o SimRP detecta conflitos estruturais e deadlocks.

A verificao das propriedades foi desenvolvida utilizando o algoritmo descrito na figura


4.12, o simulador percorre toda a RdPs, analisando as propriedades descritas no captulo 2
seo 2.5.

Para a verificao da propriedade rede marcada viva (vide captulo 2 seo 2.5.2) foi
utilizado o algoritmo apresentado na figura 4.12, atravs deste a simulador percorre toda a
RdP verificando se todas as marcaes so acessveis a partir de uma marcao inicial. Deve
se ter em considerao que a RdP ser via para uma seqncia de disparo S (para o caso de
RdP ordinrias). Para o caso das outras taxonomias suportadas pelo SimRP esta propriedade
verificada pelo comportamento da RdP em tempo de simulao.

A propriedade RdP Pura (vide captulo 2 seo 2.5.4) foi verificada a partir do algoritmo
mostrado na figura 4.12 que percorre toda a RdP verificando se nenhum lugar tem a Pre =
Pos.

A propriedade RdP Reinicivel (vide captulo 2 seo 2.5.2) foi verificada a partir do
algoritmo, que percorre a RdP verificando se uma simulao retorna a sua marcao inicial.

Para a verificao do conflito estrutural (vide captulo 2 seo 2.4.4), o sistema verifica se
algum lugar compartilha o mesmo recurso com duas ou mais transies.

97
Para a verificao do deadlock (vide captulo 2 seo 2.4.4), o sistema verifica se a partir de
uma seqncia de disparos e de uma marcao inicial, conduz a uma situao em que no h
qualquer transio sensibilizada.

4.2 CONCLUSO

O simulador SimRP foi desenvolvido com o objetivo de ser flexvel, sendo possvel atribuir
caractersticas novas RdP tratada. Por exemplo, uma vez que seja definida uma RdP
Interpretada possvel a sua converso para uma RdP Interpretada pela eliminao dos
atributos associados s condies das transies. O mesmo pode ser feito com os outros tipos
de RdP (temporais e temporizadas). As mudanas podem ser efetivadas de maneira fcil por
intermdio da ferramenta de edio da RdP.

A arquitetura de trs camadas facilita a utilizao da ferramenta, j que no se faz necessria a


instalao do simulador nas mquinas clientes para o uso. Esta caracterstica tambm facilita a
manuteno do sistema, alm de garantir a interoperabilidade entre os sistemas operacionais
(portabilidade do sistema).

O licenciamento GPL ir possibilitar o desenvolvimento contnuo da ferramenta, o


compartilhamento do conhecimento, alm do uso irrestrito da soluo.

98

5. RESULTADOS OBTIDOS

Neste captulo so apresentado os resultados obtidos com o uso do SimRP. Maiores


informaes sobre o funcionamento do SimRP, podem ser obtidas no Manual do Sistema
Anexo.

5.1

Simulao de RdPs Ordinrias

Para exemplificar a simulao de uma RdPs Ordinria, ser utilizado o exemplo ilustrado na
figura 5.1.

Figura 5. 1 -Modelamento de RdPs Ordinria

99

Neste exemplo, podemos observar uma rede com cinco lugares: P1, P2, P3, P4, P5 e com
quatro transies: T1, T2, T3 e T4, a marcao inicial desta rede M = { 1 0 0 0 0 }.

Na figura 5.2 podemos observar a simulao desta rede aps ter sido modelada no SimRP,
para esta simulao foi definida a seguinte seqncia de disparo: S = { T1,T2,T3,T4 }. A
figura 5.2 a) apresenta a RdPs na sua marcao inicial e a figura 5.2 b) aps o primeiro
disparo.

(a)

100

(b)
Figura 5. 2 - Simulao da RdPs Ordinria

Na figura 5.3 apresentado o modelamento de uma Rdp complexa que descreve o


funcionamento de uma guarita com dois potes eletrnicos e na figura 5.4 a simulao desta
Rdp.

101

T5

T6

T7

MEF

T9

MEDF
Porto
Externo

MEDA

MEA

CEF

CEA
CIA

CIF

Porto
Interno

T10

MIA

T11

MIDAT12

MIF T13

MIDF

DV

VRE

T1

LD

VSE
SO

T0

T2
T3

T4
DV
VSS

VRS
Porto
Interno

LDO

OEA

Controlador de Contingncia

OEF

MEA

Porto
Externo

OIA

MEF

OIF

MIA

MIF

Figura 5. 3 - RdP Porto Eletrnico

102

Figura 5. 4 - Exemplo Complexo de RdP Ordinria

103

5.2

Verificao das Propriedades

Analisando as propriedades referentes ao modelamento da RdPs da figura 5.1, podemos


observar a existncia de um conflito estrutural e de deadlock, como observado na figura 5.5.

Figura 5. 5 - Verificao das Propriedades

5.3

Modelamento da RdPs Temporal

Na figura 5.6 podemos observar o modelamento de uma RdPs Temporal.

104

Figura 5. 6 - Modelamento da RdPs Temporal

5.4

Modelamento da RdPs Temporizada

Na figura 5.7 podemos observar o modelamento de uma RdPs Temporizada.

105

Figura 5. 7 - Modelamento da RdPs Temporizada

5.5

Exemplo para uma RdP interpretada e a gerao automtica de cdigo VHDL

Para exemplificar a simulao de uma RdP Interpretada (vide captulo 2 seo 2.6.1) e a
gerao de cdigo VHDL (vide captulo 2 seo 2.8), utilizaremos parte de um exemplo
extrado de [2]. Este descreve o comportamento de um controlador manual de dois portes
automticos.

Para ilustrar este comportamento, a figura 5.8 apresenta o descrio deste controlador atravs
de uma RdP Ordinria. Para melhor entendimento, utilizaremos as siglas LD Chave geral de
energia ligada, LDO Mdulo automtico desativado, OEA Comando porto externo abrir,
OEF - Comando porto externo fechar, OIA - Comando porto interno abrir, OIF - Comando
porto interno fechar, MEA Motor externo abrindo, MEF - Motor externo fechando, MIA Motor interno abrindo e MIF Motor externo fechando.

106

Figura 5. 8 - Exemplo de controlador em RdP Ordinria

Este mesmo exemplo pode ser simulado utilizando uma RdP Interpretada. A figura 5.9
apresenta este exemplo de controlador descrito em uma RdP Interpretada. Nesta figura
podemos observar que os lugares (OEA, OEF, OIA e OIF) foram associados a uma condio
nas transies correspondentes; que no caso deste exemplo ser verdadeira se o valor for igual
ao valor 1 (vide figura 5.7).

Neste caso, a transio OEA estar sendo habilitada e o recurso ficha ser adicionada em
MEA, representando o motor do porto externo abrindo. A RdP Interpretada da figura 5.9 foi
obtida a partir da RdP previamente editada no SimRP (figura 5.8). Neste caso, a edio foi
realizada eliminando os lugares respectivos e atribuindo as condies s transies.

107

Figura 5. 9- Exemplo de Controlador descrito em uma RdP Interpretada

A figura 5.10 apresenta um passo de simulao do exemplo apresentado na figura 5.9 no


SimRP.

108

Figura 5. 10 - Tela de Simulao do SimRP

Na figura 5.11 apresentado a sntese do cdigo VHDL gerado pelo SimRP no aplicativo
Quartus [41], nesta figura, podemos verificar informaes como o total de elementos lgicos
gerados, pinos utilizados na sntese do cdigo. Mais informaes sobre resultados da sntese
pode ser visto na figura 5.12.

109

Figura 5. 11- Sintetizao do cdigo pelo Quartus

Para a gerao de cdigo VHDL no SimRP o usurio pode escolher se a FSM ser sensvel a
borda de subida/descida do clock;

tipos de dados para entradas/sadas (bit, stdlogic,

stdlogic_vector); definir valores de sadas para a FSM (estes valores no podem ser definidos

na RdP Interpretada).

O cdigo VHDL gerado para o exemplo mostrado no apndice 5.

110

Figura 5. 12 Dados gerados a partir da sntese

O cdigo gerado pelo SimRP tambm sintetizvel pela ferramenta ISE da Xilinx [42].

5.6

CONCLUSO

Neste captulo foram apresentados os resultados obtidos com o SimRP. Os diferenciais


verificados neste simulador diferencia o SimRP das demais ferramentas estudas. Este captulo
mostrou alguns exemplos para ilustrar a flexibilidade de SimRP para simular os modelos de
RdPs propostos neste trabalho. No caso de trabalhar com RdP Interpretadas pode ser
observado a flexibilidade da ferramenta dado que o usurio pode ter vrias opes de
converter lugares em condies da RdP Interpretada.
Por outro lado foram mostrados os resultados de sntese da RdP Interpretada usando a
ferramenta Quartus [41].

111

6. CONCLUSO E TRABALHOS FUTUROS

6.1

O SISTEMA SimRP

O simulador de RdPs foi desenvolvido com a finalidade de ser uma ferramenta CAD de
descrio e simulao de cdigo aberto baseado na licena GPL. Esta ferramenta de CAD
capaz de descrever e simular redes de Petri do tipo ordinria, interpretada, temporal e
temporizada. Alm do anterior, a ferramenta possui a opo de gerar cdigo em VHDL (uma
linguagem de descrio de hardware) a partir do modelo de uma rede de Petri interpretada.

Para facilitar o uso e no ser restritiva em relao a um determinado sistema operacional o


simulador foi desenvolvido na arquitetura de trs camadas, onde a instalao e configurao
do sistema so realizadas no servidor. O acesso aplicao por parte dos clientes feito
atravs de um browser de internet.

O SimRP alcanou os objetivos propostos quanto flexibilidade (no observada em outras


ferramentas de simulao de RdPs estudadas) e a possibilidade de gerar cdigo VHDL para o
caso de descries de controladores usando RdPs (vide exemplo de RdP Interpretada no
captulo 5).

Para a implementao do SimRP foram tidas em conta as definies formais das RdP dadas
na literatura estudada. No processo de estudo de outros simuladores (vide capitulo 3) pode ser
observado que nem sempre eram seguidas as definies tericas de RdP. Por exemplo, no
Visual Objekt Net++ (que simula RdP ordinrias), no caso de se detectar um conflito
estrutural, o simulador disparava aleatoriamente uma das transies sensibilizadas.

Nos testes mostrados no captulo 5 o SimRP mostrou-se operacional, sendo necessrio ainda o
seu teste mais consistente para detectar bugs e outros tipos de problemas.

112

6.2

PERSPECTIVAS FUTURAS

O desenvolvimento contnuo deste trabalho torna-se possvel, devido ao seu licenciamento ser
GPL, para complementar as funcionalidades do simulador e torn-lo mais completo e
profissional. Para melhorar a implementao do SimRP so dadas as seguintes sugestes:

a) Implementao de outras taxonomias; no foi contemplado neste trabalho o


desenvolvimento de outras taxonomias como as RdP Coloridas, Predicado- Transio,
Nebulosas, entre outras.
b) Interface grfica com simulao atravs das representaes grficas da teoria de
Redes de Petri como os crculos, retngulos e setas.
c) Incluses de RdPs com modelos hbridos. Por exemplo, permitir que numa RdP
Interpretada possam ser includos caractersticas temporais nas condies das
transies, como descrito em [24].
d) Gerao automtica de descries de RdPs em outras linguagens de programao.
.
6.3

CONSIDERAES FINAIS

No mercado existem vrios Softwares que simulam o comportamento de uma RdP, contudo a
maioria destas ferramentas so softwares proprietrios ou software gratuito. Como
conseqncia no existe a liberdade de compartilhamento de cdigo, impedindo o
desenvolvimento colaborativo de novas funcionalidades, adaptao do sistema de acordo com
as necessidades de cada instituio e o compartilhamento do conhecimento gerado no
desenvolvimento da soluo. Neste sentido, espera-se que o desenvolvimento do SimRP
venha a contribuir com o esprito colaborativo envolvido nos conceitos de Software Livre.

113

REFERNCIAS BIBLIOGRFICAS

[1] Cardoso , J. e R. Valente, Rede de Petri, Editora da UFSC, 1997.


[2] Morais, Ccero Couto e Plnio de Lauro Castrucci, Engenharia de Automao Industrial,
Editora LTC, Rio de Janeiro, 2001.
[3] Siqueira, Srgio Amadeu, Software Livre: a luta pela liberdade do conhecimento, Editora
Fundao Perseu Abramo, 2004.
[4] Liu, Wang e Rust, Carsten e Stappert, Friedhelm,A SIMULATION PLATFORM FOR
PETRI NET MODELS OF DYNAMICALLY, Universitt Paderborn, 2005.
[5] Carsten e Stappert, Friedhelm e Schamberger, Stefan, Integrating Load Balancing Into
Petri-Net Based Embedded, Universitt Paderborn, 2005.
[6] Lpez, Oscar e Laguna, Miguel A. e Garca, Francisco, Representacin de Requisitos
mediante Redes de Petri Coloreadas, Universidad de Valladolid eUniversidad de
Salamanca, 2002.
[7] Murata, Tadau, Petri Nets: Properties, Analysis and Applications, IEEE, 1989
[8] Llorens, Marisa e Oliver, Javier, Redes Reconfigurables Controladas por Marcado:
Redes de Petri con Cmbios Dinmicos Estructurales, UPV e Universidad de Valladolid
eUniversidad de Salamanca, 2005.
[9] Carrasco, Eliana, ESTRUCTURAS GENERALIZADAS PARA CONTROLADORES
LGICOS MODELADAS MEDIANTE REDES DE PETRI, Universidad Nacional de
Colombia sede Medelln, 2002.
[10] Barros, Tomaz C e Santos, Edval J. P. e Melo, Israel L.,SISTEMAS DE PRODUO
EM LOTES: MODELAGEM E ANLISE COM BASE EM REDES DE PETRI TTEMPORIZADAS E EQUAES DIFERENCIAIS, Universidade Federal de
Pernambuco, 2003.
[11] Aarhus, Denmark, Petri Nets 2000, Introductory Tutorial Petri Nets, UNIVERSITY OF
AARHUS, 2000.

114

[12] Apostila: Ejemplos basados en Redes de Petri Temporales y Autmatas Finitos


Temporizados, UTN-FRBB.
[13] Moo, Sergio Antonio Prez, Modelado y Control de Sistemas Hbridos con Redes de
Petri Difusas y Redes Neuronales, INSTITUTO POLITCNICO NACIONAL, 2002.
[14] Fernandes, Joo Miguel Lobo, Rede de Petri e VHDL na especificao de controladores
paralelos, Universidade do Minho, 1999.
[15] Marra, Felipe Walcarenchi e Coelho, Victor e Nedjah, Nadia, Tradutor de C para VHDL
C2VHDL,UERJ Universidade do Estado do Rio de Janeiro, 2005.
[16] C.A.Petri, Kommunication mit Automaten. Schriften des IIM Nr.2, Institut
fr Instrumentelle Mathematik, Bonn, 1962. Traduzida para o ingls como:
Communication with Automata, Technical Report RADC-TR-65-377, Griffiths
Air Force Base, New York, Vol.1, Suppl.1, 1966.
[17] T.Murata, Petri Nets: Properties, Analysis and Applications, Proceedings of
the IEEE, 77(4)541-580, april de 1989.
[18] Cassandras, Chistos G., Stphane Lafortune, Introduction to Discrete Event Systems, Ed.
Springer, New York, 1999.
[19] Fowler, Martine e Kendall Scott, UML Essencial, Um breve guia para linguagem-padro
de modelamento de objetos, Segunda Edio, Ed. Bookman, Rio de Janeiro, 2000.
[20] http://www.softwarelivre.gov.br/diretrizes, acessado em 01/05/2006.
[21] Calazans , Ney Laert Vilar, Alessandro Noriaki Ide, Edson Ifarraguirre
Moreno, Taciano Ares Rodolfo e Fernando Gehm Moraes, Tutorial e Diretivas para
Captura de Projeto, Validao e Prototipao de Mdulos de Hardware Descritos em
SystemC, FACULDADE DE INFORMTICA PUCRS, 2003
[22] http://httpd.apache.org/docs/2.2, acessado em 20/12/2005.
[23] http://dev.mysql.com/doc/refman/4.1/pt/index.html, acessado em 20/12/2005.
[24] Zapata, German e Eliana Carrasco, Estructuras Generalizadas para Controles Lgicos

115

Modelados Mediante Rede de Petri, Universidad Nacional de Colmbia sede Medelln,


2002.
[25] Braga, Andr Luiz Sordi, VANNGen Uma Fermanta CDA Flexvel Para A
Implementao de Redes Neurais Artificiais Em Hardware, Universidade de Braslia,
2005.
[26] Hart, David Augustus, Petri Net, Cornell University, 2000.
[27] Liu, Wang Yan, Carsten Rust e Friedhelm Stappert, Simulation Platform for Net Models
of Dynamically Modifiable embedded Systems, Universitat Pderborn, 2002
[28] www.teses.usp.br/teses/disponiveis/

3/3132/tde-30032001-150611/,

acessada

em

05/06/2006.
[29] http://pdv.cs.tu-berlin.de/~timenet/, acessada em 05/06/2206
[30] http://www.eng.uerj.br/~ldmm/controle%20de%20processos/manual-pt.html,

acessada

em 05/06/2006.
[31] http://staff.um.edu.mt/jskl1/petrisim/htmlman/manual5.html#c42,
05/06/2006.
[32] Manual do Visual Objekt Net ++
[34] http://gcc.gnu.org/, acessada em 05/06/2006.

[35] http://www.postgresql.org/, acessada em 05/06/2006.

[36] http://www.oracle.com/global/br/index.html, acessada em 05/06/2006.

[37] http://java.sun.com/, acessada em 05/06/2006.

[38] http://www.javascript.com/, acessada em 05/06/2006.

acessada

em

116

[39] www.portaljava.com/home/modules. php?name=News&file=article&sid=425, acessada


em 05/06/2006.

[40] www.mysqlbrasil.com.br/treinamentos/banco, acessada em 05/06/2006.

[41] www.altera.com, acessada em 05/06/2006.

[42] www.xilinx.com, acessada em 05/06/2006.

117

Apndice 1 Diagramas do Sistema

1.
1.1

Diagramas de Classe

Define Rede de Petri

Diagrama de Classe: Define Rede de Petri

118

1.2

Taxonomia

Diagrama de Classe: Taxonomia

119

1.3

Visualizar

Diagrama de Classe: Visualizar

120

1.4

Editar

Diagrama de Classe: Editar

121

1.5

Seqncia de Disparo

Diagrama de Classe: Definir Seqncia de Disparo

122

1.6

Verificar Propriedades

Diagrama de Classe: Propriedades

123

1.7

Simulao

Diagrama Classe: Simulao

124

Apndice 2 Descrio dos casos de uso

As tabelas de 1 a 11 detalham os casos de uso descritos na figura 31.

Caso de Uso: Definir Rede


Descrio

Neste caso de uso o usurio poder modelar as Redes de Petri


ordinrias, possvel tambm definir as outras taxonmicas como
temporal, temporizada e interpretada alm de definir as configuraes
para a gerao de cdigo VHDL

Autor:

Usurio

Fluxo principal

- O usurio solicita a funo Define Rede;


- O usurio apresenta a tela de edio de rede;
- O sistema solicita os dados iniciais da rede;
- O sistema apresenta a tela de edio de lugares;
- O sistema solicita o conjunto de lugares da rede, o conjunto P;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio de transio;
- O sistema solicita o conjunto de transio da rede, o conjunto T;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio das pr-condies;
- O sistema solicita o conjunto das pr-condies da rede, o conjunto
Pre;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio de ps-condio;

125

- O sistema solicita o conjunto de ps-condies da rede, o conjunto


ps-condio;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio das taxonomias;

Fluxo Alternativo

No se aplica a este caso de uso.

Pr-condio

No se aplica a este caso de uso.

Ps-condio

No se aplica a este caso de uso.

Observao:

Neste modelamento possvel definir caractersticas de outras


taxonomias.
Tabela 1 - Caso de uso definir rede

Caso de Uso: Temporal


Descrio

Neste caso de uso o usurio pode incluir caractersticas das redes


temporais as redes ordinrias definidas no sistema.

Autor:

Usurio

Fluxo principal

- Aps a definio de rede ordinria;


- O sistema apresenta a tela de edio das redes temporais;
- O sistema solicita os dados desta rede;
- O sistema armazena as informaes no banco de dados.

Fluxos Alternativos

No se aplica a este caso de uso.

Pr-condio

Rede ordinria j modelada

Ps-condio

No se aplica a este caso de uso.

Observao:

Caso j tenha sido definida uma outra taxonomia a Rede de Petri


escolhida, no ser possvel utilizar este caso de uso.

126

Tabela 2 -Caso de Uso: Temporais


Caso de Uso: Temporizadas
Descrio

Neste caso de uso o usurio pode incluir caractersticas das redes


temporizadas as redes ordinrias definidas no sistema.

Autor:

Usurio

Fluxo principal

- Aps a definio de rede ordinria;


- O sistema apresenta a tela de edio das redes temporizadas;
- O sistema solicita os dados desta rede;
- O sistema armazena as informaes no banco de dados.

Fluxos Alternativos

No se aplica a este caso de uso.

Pr-condio

Rede ordinria j modelada

Ps-condio

No se aplica a este caso de uso.

Observao:

Caso j tenha sido definida uma outra taxonomia a Rede de Petri


escolhida, no ser possvel utilizar este caso de uso.
Tabela 3 - Caso de Uso: Temporizadas

Caso de Uso: Interpretadas


Descrio

Neste caso de uso o usurio pode incluir caractersticas das redes


Interpretadas nas redes ordinrias definidas no sistema.

Autor:

Usurio

Fluxo principal

- Aps a definio de rede ordinria;


- O sistema apresenta a tela de edio das redes Interpretadas;
- O sistema solicita os dados desta rede;
- O sistema armazena as informaes no banco de dados.

Fluxos Alternativos

No se aplica a este caso de uso.

127

Pr-condio

Rede ordinria j modelada

Ps-condio

No se aplica a este caso de uso.

Observao:

Caso j tenha sido definida uma outra taxonomia a Rede de Petri


escolhida, no ser possvel utilizar este caso de uso.
Tabela 4 - Caso de Uso: Interpretadas

Caso de Uso: Editar Rede de Petri


Descrio

Neste caso de uso o usurio poder editar as redes de petri definidas


anteriormente pelo caso de uso Definir Rede.

Autor:

Usurio

Fluxo principal

- O usurio solicita a funo Editar Rede;


- O usurio apresenta a tela de edio de rede;
- O sistema solicita os dados iniciais da rede;
- O sistema apresenta a tela de edio de lugares;
- O sistema solicita o conjunto de lugares da rede, o conjunto P;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio de transio;
- O sistema solicita o conjunto de transio da rede, o conjunto T;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio das pr-condies;
- O sistema solicita o conjunto das pr-condies da rede, o conjunto
Pre;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio de ps-condio;
- O sistema solicita o conjunto de ps-condies da rede, o conjunto

128

ps-condio;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio das taxonomias;

Fluxo Alternativo

No se aplica a este caso de uso.

Pr-condio

Redes de Petri j modeladas pelo sistema.

Ps-condio

No se aplica a este caso de uso.

Observao:

Neste caso de uso tambm possvel deletar as redes de petri.


Tabela 5 - Editar Redes de Petri

Caso de Uso: Gerar cdigo VHDL


Descrio

Neste caso de uso o usurio poder definir os atributos necessrios


para a gerao de um cdigo VHDL a partir do modelamento de
uma rede de petri interpretada.

Autor:

Usurio

Fluxo principal

- O sistema apresenta a tela de edio das redes Interpretadas;


- Na apresentao desta tela, est disponvel a opo gerar cdigo
VHDL, caso abilitada esta opo;
- O sistema apresenta a tela de edio para os atributos de gerao
de cdigo VHDL;
- O sistema armazena as informaes no banco de dados.

Fluxos Alternativos

No se aplica a este caso de uso.

Pr-condio

O modelamento de uma rede de petri interpretada.

Ps-condio

Simulao da rede modelada.

Observao:

Este caso de uso no responsvel diretamente pela a gerao do


cdigo VHDL, mas sim edio dos parmetros necessrios para

129

esta gerao, a gerao propriamente dita realizado pelo caso de


uso Simular rede de petri.
Tabela 6 - Gerar cdigo VHDL

Caso de Uso: Definir seqncia de disparo


Descrio

Neste caso de uso o usurio poder definir a seqncia de disparo s


redes de petri ordinrias.

Autor:

Usurio

Fluxo principal

- O sistema apresenta a tela de seqncia de disparo;


- O sistema solicita a ordem da seqncia;
- O sistema armazena as informaes no banco de dados.

Fluxo Alternativo

No se aplica a este caso de uso.

Pr-condio

Rede de petri ordinria j modelada.

Ps-condio

No se aplica a este caso de uso.

Observao:

Caso seja definida uma seqncia de disparo a uma rede de petri que
no seja ordinria, est seqncia ignorada.
Tabela 7 - Definir seqncia de disparo

Caso de Uso: Visualizar rede de petri


Descrio

Neste caso de uso o usurio poder visualizar o modelamento de uma


rede de petri j definida no sistema.

Autor:

Usurio

Fluxo principal

- O sistema apresenta a tela para a escolha da rede;


- O sistema recupera os dados no banco de dados referente a esta rede;
- O sistema apresenta os dados.

130

Fluxo Alternativo

No se aplica a este caso de uso.

Pr-condio

Rede de petri j modelada.

Ps-condio

No se aplica a este caso de uso.

Observao:
Tabela 8 - Visualizar rede de petri

Caso de Uso: Editar Taxonomia


Descrio

Neste caso de uso o usurio poder editar e adicionar caractersticas


adicionais na rede de petri ordinria, mudando assim sua taxonomia.

Autor:

Usurio

Fluxo principal

- O sistema apresenta a tela de edio das Taxonomias;


- O sistema solicita os dados da taxonomia;
- O sistema armazena as informaes no banco de dados.

Fluxo Alternativo

No se aplica a este caso de uso.

Pr-condio

Rede de petri j modelada

Ps-condio

No se aplica a este caso de uso.

Observao:

Cada modelamento de rede de petri somente poder possuir um tipo de


taxonomia.
Tabela 9 - Editar Taxonomia

Caso de Uso: Verificar Propriedades


Descrio

Neste caso de uso o usurio poder verificar as propriedades: viva,


pura, conflito e iniciveis.

Autor:

Usurio

131

Fluxo principal

- O sistema apresenta a tela para a seleo de redes;


- O sistema verifica as propriedades;
- O sistema apresenta as propriedades vlidas modificando a cor da
propriedade em questo.

Fluxo Alternativo

Na verificao da propriedade caso seja encontrada algum Deadlock, o


sistema apresentar na tela uma mensagem de aviso.

Pr-condio

Modelamento de rede de petri j definido no modelo

Ps-condio

No se aplica a este caso de uso.

Observao:
Tabela 10 - Verificar propriedades
Caso de Uso: Simular Redes de Petri
Descrio

Neste caso de uso o usurio poder simular os modelamentos de redes


de petri definidos no sistema. A simulao poder ser passo a passo,
por seqncia de disparo ou continua.

Autor:

Usurio

Fluxo principal

- O sistema apresenta a tela de seleo de rede de petri;


- O sistema solicita recupera no banco de dados os dados referente a
rede de petri;
- O sistema pergunta a qual o tipo de simulao desejado;
- O sistema apresenta o resultado da simulao;

Fluxo Alternativo

Caso a rede de petri simulada for interpretada e tiver os parmetro de


gerao de cdigo VHDL, ser disponibilizada a opo de gerao de
cdigo.

Pr-condio

Modelamento de rede de petri j definida no sistema.

Ps-condio

No se aplica a este caso de uso.


Tabela 11 - Simulao de rede de petri

132

Apndice 3 Script do Banco de Dados

DROP TABLE IF EXISTS `condicao`;


CREATE TABLE `condicao` (
`Cod_cond` int(10) unsigned NOT NULL auto_increment,
`Transicao_Cod_trans` int(10) unsigned NOT NULL,
`variavel` varchar(20) default NULL,
`valor` varchar(20) default NULL,
`tipo` int(10) unsigned default NULL,
`condicional` int(10) unsigned default NULL,
`Rede_Petri_cod_petr` int(10) unsigned NOT NULL,
`op_relacional` varchar(45) default '0',
`tipo_vhdl` varchar(45) default NULL,
PRIMARY KEY (`Cod_cond`,`Transicao_Cod_trans`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `p_lugar`;
CREATE TABLE `p_lugar` (
`Cod_Lugar` int(10) unsigned NOT NULL auto_increment,
`Rede_Petri_cod_petr` int(10) unsigned NOT NULL,
`Nome` varchar(20) default NULL,
`Descricao` varchar(255) default NULL,
`Valor_inicial` varchar(20) default '0',
`tempo` time default NULL,
`tempo_max` time default NULL,
`tempo_min` time default NULL,
`valor_vhdl` varchar(45) default NULL,
`tipo_v_vhdl` varchar(45) default NULL,
PRIMARY KEY (`Cod_Lugar`,`Rede_Petri_cod_petr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `pos`;
CREATE TABLE `pos` (
`cod_pos` int(10) unsigned NOT NULL auto_increment,
`Transicao_Cod_trans` int(10) unsigned NOT NULL,
`Peso` int(10) unsigned default '1',
`P_Lugar_Cod_Lugar` int(10) unsigned NOT NULL,
`Rede_Petri_cod_petr` int(10) unsigned NOT NULL,
`tempo` time default NULL,
`tempo_max` time default NULL,
`tempo_min` time default NULL,
PRIMARY KEY
(`cod_pos`,`Transicao_Cod_trans`,`P_Lugar_Cod_Lugar`,`Rede_Petri_cod_petr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB;
(`Transicao_Cod_trans` `Transicao_Red';
DROP TABLE IF EXISTS `pre`;
CREATE TABLE `pre` (
`cod_pre` int(10) unsigned NOT NULL auto_increment,
`Transicao_Cod_trans` int(10) unsigned NOT NULL,
`P_Lugar_Cod_Lugar` int(10) unsigned NOT NULL,
`Peso` int(10) unsigned default '1',
`Rede_Petri_cod_petr` int(10) unsigned NOT NULL,
`tempo` time NOT NULL,

133

`tempo_max` time NOT NULL,


`tempo_min` time NOT NULL,
PRIMARY KEY (`cod_pre`,`Transicao_Cod_trans`,`P_Lugar_Cod_Lugar`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB;
(`Transicao_Cod_trans` `Transicao_Red';
DROP TABLE IF EXISTS `rede_petri`;
CREATE TABLE `rede_petri` (
`cod_petr` int(10) unsigned NOT NULL auto_increment,
`Nome` varchar(20) default NULL,
`Descricao` varchar(255) default NULL,
`Autor` varchar(20) default NULL,
`Data_Modelamento` date default NULL,
PRIMARY KEY (`cod_petr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `sequencia`;
CREATE TABLE `sequencia` (
`Cod_sequencia` int(10) unsigned NOT NULL auto_increment,
`Rede_Petri_cod_petr` int(10) unsigned NOT NULL,
`Transicao_Cod_trans` int(10) unsigned NOT NULL,
`Ordem` int(10) unsigned default NULL,
PRIMARY KEY
(`Cod_sequencia`,`Rede_Petri_cod_petr`,`Transicao_Cod_trans`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB;
(`Rede_Petri_cod_petr`) REFER `dbrede';
DROP TABLE IF EXISTS `transicao`;
CREATE TABLE `transicao` (
`Cod_trans` int(10) unsigned NOT NULL auto_increment,
`Rede_Petri_cod_petr` int(10) unsigned NOT NULL,
`Nome` varchar(20) default NULL,
`Descricao` varchar(255) default NULL,
`tempo` time default NULL,
`tempo_MAX` time default NULL,
`tempo_MIN` time default NULL,
PRIMARY KEY (`Cod_trans`,`Rede_Petri_cod_petr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;</PRE></BODY></HTML>

134

Apndice 4 Manual de Usabilidade do Sistema

Este apndice tem por objetivo auxiliar os usurios a operar de melhor forma o Simulador
SimRP. Na figura 1 apresentada a tela principal do simulador, o qual foi desenvolvido de tal
forma que a qualquer momento da utilizao possvel acessar qualquer funcionalidade do
sistema atravs das opes do menu localizado esquerda da pgina.

Figura 1 Tela Principal do Sistema

Para iniciar o modelamento das Redes de Petri, selecione a opo Modela, localizada no
menu. Aps esta seleo o sistema ir solicitar os dados iniciais para o modelamento de uma
rede como demonstrado na figura 2.

135

Figura 2 - Tela de edio de rede

Aps o preenchimento dos dados solicitados na figura 2, selecione o boto Prximo. O


sistema solicitar ento os dados referentes ao conjunto de lugares como demonstrado na
figura 3.

136

Figura 3 Tela de edio de Lugares

Para cada lugar adicionado ao modelamento necessrio selecionar a opo Adicionar. O


prximo passo definir o conjunto de transio como demonstrado na figura 4.

137

Figura 4 - Tela de edio das transies

Em seguida o sistema ir solicitar o conjunto das pr-condies, como demonstrado na figura


5.

138

Figura 5 Tela de edio das pr-condies

Aps este passo o sistema ir solicitar o conjunto das ps condies como demonstrado na
figura 6.

139

Figura 6 Tela de edio das ps-condies

No momento do modelamento tambm possvel acrescentar os atributos referentes a uma


das taxonomias citadas na figura 7, caso a inteno seja o modelamento de uma rede ordinria
basta selecionar a opo concluir.

Caso tenha necessidade de atribuir atributos referentes a uma taxonomia posteriormente, basta
selecionar a qualquer momento a opo Taxonomia do Menu esquerda da tela que tela
demonstrada na figura 7, ser apresentada.

140

Figura 7 - Tela de edio das Taxonomias

A tela da figura 8 responsvel pela configurao das Redes de Petri interpretadas, est tela
tambm oferece a opo de configurao da gerao de cdigo VHDL.

141

Figura 8 - Tela de edio das redes interpretadas

Na figura 9 apresentada a tela de configurao das Redes de Petri temporizadas e na figura


10 a tela de configurao das Redes de Petri temporais.

142

Figura 9 - Tela de edio das redes temporizadas

Figura 10 - Tela de edio das redes temporais

143
Quando a opo do menu Taxonomia, Visualizar, Editar, Seqncia de Disparo, Verificar
Propriedades e Simulao selecionada, o sistema solicita a escolha da rede como
demonstrada na figura 11.

Figura 11 - Tela de Seleo

144
A figura 12 apresenta o modelamento de uma Rede de Petri, obtida atravs da opo
Visualizar.

Figura 12 - Tela visualizar Redes de Petri

145
A figura 13 demonstra a tela de edio do modelamento de uma Rede de Petri, nesta opo
possvel editar ou excluir os modelamentos.

Figura 13 - Tela de edio de rede

146
Para as Redes de Petri Ordinrias, possvel definir uma seqncia de disparo como
demonstrado na figura 14.

Figura 14 - Tela de edio de seqncia de disparo

147
O simulador permite a verificao das propriedades da Rede de Petri, como demonstrado na
figura 15, quando uma propriedade verificada atribuda uma cor verde ao retngulo
correspondente a propriedade, os conflitos e deadlocks, tambm podem ser observados nela
funcionalidade.

Figura 15 Tela de verificao de propriedade

148
A simulao de modelamento, vai depender da sua taxonomia, no caso das Redes de Petri
Ordinrias existe a opo seqncia de disparo e Passo a passo, no primeiro caso a simulao
seguir a seqncia definida na opo Seqncia de Disparo, como demonstrado na figura 16.

Figura 16 - Tela de simulao

149
No caso da simulao Passo a passo, o sistema ir apresentar as transies sensibilizadas
naquele momento e solicitar que o usurio defina qual transio ser utilizada, como
demonstrada na figura 17.
Na simulao tambm est disponvel a opo de Log, onde possvel verificar o
comportamento anterior da Rede de Petri.

Figura 17 - Tela de simulao passo a passo

150
Na simulao das taxonomias Interpretadas, Temporal e Temporizadas, somente est
disponvel a opo de simulao contnua como demonstrado na figura 18, No caso especfico
da simulao das Redes Interpretadas, o valor das variveis associadas s transio podem ser
alteradas em tempo de execuo, nesta opo tambm possvel visualizar o cdigo VHDL
gerado a partir desta simulao. Na figura 19 apresentado o cdigo fonte gerado a partir
deste modelamento.

Figura 18 - Tela de simulao rede interpretada

151

Figura 19 Tela de gerao de cdigo VHDL

152

Apndice 5 Cdigo VHDL gerado pelo SimRP


-- Porto
-- Marcos Melo
-- 2006-01-01
-- teste de RP interpretada
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
ENTITY Portao IS
PORT (Clk, Reset : IN STD_LOGIC;
SOEA : IN BIT;
SOEF : IN BIT;
SOIA : IN BIT;
SOIF : IN BIT;
Output : OUT STD_LOGIC_VECTOR (2 DOWNTO 0)
);
END Portao;
--*************************************************************************
ARCHITECTURE comportamental OF Portao IS
TYPE TIPO_ESTADO IS (LDLDO, MEA, MEF, MIA, MIF);
SIGNAL estado: TIPO_ESTADO;
BEGIN
PROCESS (Reset, Clk)
BEGIN
IF Reset = '1' THEN
estado <= LDLDO ;
-- ELSIF Clk 'EVENT THEN
ELSIF Clk' EVENT AND clk = '1' THEN

153
CASE estado IS

WHEN LDLDO =>


IF SOEA = '1' THEN
estado <= MEA;
END IF;
WHEN MEA =>
IF SOEF = '1' THEN
estado <= MEF;
END IF;
WHEN MEF =>
IF SOIA = '1' THEN
estado <= MIA;
END IF;
WHEN MIA =>
IF SOIF = '1' THEN
estado <= MIF;
END IF;
WHEN OTHERS =>
estado <= LDLDO;
END CASE;
END IF;
END PROCESS;
--*************************************************************************
--parte combinacional para as saidas
--*************************************************************************
PROCESS (estado, SOEA, SOEF, SOIA, SOIF)
BEGIN
CASE estado IS

154
WHEN LDLDO =>
output <= "001";
WHEN MEA =>
output <= "010";
WHEN MEF =>
output <= "011";
WHEN MIA =>
output <= "100";
WHEN MIF =>
output <= "101";
END CASE;
END PROCESS;
END comportamental;