Professional Documents
Culture Documents
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECATRNICA
PUBLICAO: ENM.008/2006
BRASLIA: JULHO - 2006
ii
UNIVERSIDADE DE BRASLIA
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECATRNICA
SUBMETIDA
AO
DEPARTAMENTO
DE
ENGENHARIA
COMO
PARTE
DOS
REQUISITOS
NECESSRIOS
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
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
iv
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.
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.
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.
ix
SUMRIO
1.
INTRODUO...................................................................................................... 1
1.1 GENERALIDADES........................................................................................... 2
1.2 OBJETIVOS DO TRABALHO.......................................................................... 3
1.2.1
1.2.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
2.3.2
2.4.2
Transio Sensibilizada............................................................................22
2.4.3
2.4.4
Conflito e Paralelismo..............................................................................24
2.4.5
Seqncia de Disparo............................................................................... 26
2.4.6
2.4.7
2.5.2
2.5.3
2.5.4
x
2.6 TAXONOMIA DA RDPS ................................................................................. 37
2.6.1
2.6.2
RdPs Coloridas.........................................................................................44
2.7.2
2.7.3
RdPs a Objeto........................................................................................... 48
2.8.2
Tipo de Dados........................................................................................... 51
2.8.3
Objetos...................................................................................................... 52
2.8.4
2.8.5
Sentenas ..................................................................................................53
2.8.6
Estrutura da Linguagem........................................................................... 54
2.8.7
2.8.8
O modelo estrutural.................................................................................. 58
2.9 CONCLUSO..................................................................................................63
3.
4.
4.2.2
4.2.3
xi
4.3.1
4.3.2
Diagramas de seqncias.........................................................................85
4.4.2
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
5.6 CONCLUSO................................................................................................110
6.
xii
LISTA DE FIGURAS
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
xvii
LISTA DE ABREVIAES
CAD
DNS
FPGA
GPL
HDL
UML
URL
VHDL
RdPs
Redes de Petri
SEDs
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.
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
a)
c)
d)
1.2
OBJETIVOS DO TRABALHO
1.2.1
Objetivos gerais:
1.3
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].
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
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.
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.
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.
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.
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].
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
11
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.
12
2.2
2.3
Nesta seo sero abordados os conceitos sobre RdPs, assim como os diferentes tipos
abordados na literatura.
13
2.3.1
Segundo [1] e [14], as RdPs podem ser divididas em trs elementos bsicos:
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)
Comportamento dinmico
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
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.
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)
17
(a)
(b)
18
2.4
Segundo [7], [1] e [14], uma RdP uma qudrupla definida por:
R = P,T,Pre,Post, onde:
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.
Quando o elemento
aij
aquele lugar.
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.
(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
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:
( 3)
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.
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].
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.
( 5)
25
Este problema mostrado na figura 2.9.
Pr e(., t1 )
Pr e(., t 2 ) = 0. ( 6)
M Pr e(., t1 )
M Pr e(., t 2 ).
( 7)
26
2.4.5
Seqncia de Disparo
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
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)
1 t2 t3
M '
A figura 2.10 mostra a seqncia de disparo M o t
28
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
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
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.
2.4.7
um conjunto de marcaes que podem ser alcanadas a partir de um estado inicial por
intermdio de uma seqncia de disparos [1].
31
A( R, M ) = {M i , S
s
M
M i}
( 10)
2.5
PROPRIEDADES DA RdPs
2.5.1
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)
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
Uma importante caracterstica das RdPs a propriedade de vivacidade. Por meio desta
propriedade podemos observar diversas caractersticas como citado a seguir:
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)
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
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.
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.
36
2.5.4
37
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 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:
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].
40
2.6.2
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.
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.
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:
43
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.
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].
45
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);
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.
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
Com isto, uma transio dever descrever uma famlia de eventos e no somente um evento
como no caso das redes coloridas.
47
A figura 2.25 apresenta o modelamento em RdPs Predicato-transio, do exemplo
apresentado no item anterior RdPs Coloridas.
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.
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 <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
Formalmente uma RdPs a Objetos definida por uma 9-upla, como mostrada na figura 2.26.
49
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
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
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
2.8.1
2.8.2
Tipo de Dados
a) Dados primitivos:
52
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.
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
2.8.5
Sentenas
54
IF condio THEN
CASE alternativa OF
seqncia de sentenas
seqncia de sentenas
seqncia de sentenas}
END CASE;
[ELSE
seqncia de sentenas]
END IF;
(a)
(b)
(c)
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.
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
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;
56
PROCESS
BEGIN
WAIT ON A, B UNTIL Enable = 1;
T <= A AND B;
END PROCESS;
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
WAIT ON signal-list: suspende o processo, definindo uma lista de sinais que devero
WAIT UNTIL condition: especifica uma condio, que quando verdadeira, reativa o
processo;
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;
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.
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
2.8.8
O modelo estrutural
59
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).
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
(b)
63
END CASE;
END PROCESS;
END comportamental;
(c)
Figura 2.35 - Exemplo de implementao de Mquina de estados em VHDL
2.9
CONCLUSO
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
65
3.1
INTRODUO
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
66
a) Vantagens:
b) Desvantagens:
67
3.3
ARP
68
a) Vantagens:
Instalao simplificada.
b) Desvantagens:
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.
69
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.
Instalao simplificada.
70
b) Desvantagem:
71
3.5
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:
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.
Instalao simplificada.
b) Desvantagem:
73
3.6
CONCLUSO
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.
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:
75
h) Facilita a utilizao por parte dos usurios, j que os mesmos no necessitam da
instalao do software nas mquinas.
i)
76
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).
utilizada para descrever e documentar sistemas, devido sua compatibilidade com a UML.
77
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
Limitaes do Sistema
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.
79
4.2.2
80
Nos tpicos seguintes sero detalhadas as funcionalidades do sistema alm do seu
comportamento e estrutura.
4.2.3
A figura 4.2 apresenta o diagrama de caso principal do sistema. O diagrama descreve seu
comportamento e funcionalidades.
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
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
83
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
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.
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.
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.
89
d) Edita: tarefas como modificar, editar, apagar so introduzidas no SimRP. A figura 4.8
mostra o diagrama de seqncia respectivo.
90
91
f) Propriedades: a verificao de propriedades de uma RdP mostrada no diagrama de
seqncia da figura 4.10.
92
93
4.4
4.4.1
A figura 4.12 detalha este algoritmo. Neste caso a rvore de alcanabilidade implementada
parcialmente tendo em conta as pr e ps-condies.
94
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 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
As propriedades verificadas no SimRP so: rede marcada viva , RdP pura, RdP reinicivel.
Alm do anterior o SimRP detecta conflitos estruturais e deadlocks.
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.
98
5. RESULTADOS OBTIDOS
5.1
Para exemplificar a simulao de uma RdPs Ordinria, ser utilizado o exemplo ilustrado na
figura 5.1.
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
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
102
103
5.2
5.3
104
5.4
105
5.5
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
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
108
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
Para a gerao de cdigo VHDL no SimRP o usurio pode escolher se a FSM ser sensvel a
borda de subida/descida do clock;
stdlogic_vector); definir valores de sadas para a FSM (estes valores no podem ser definidos
na RdP Interpretada).
110
O cdigo gerado pelo SimRP tambm sintetizvel pela ferramenta ISE da Xilinx [42].
5.6
CONCLUSO
111
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 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:
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
114
115
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.
acessada
em
116
117
1.
1.1
Diagramas de Classe
118
1.2
Taxonomia
119
1.3
Visualizar
120
1.4
Editar
121
1.5
Seqncia de Disparo
122
1.6
Verificar Propriedades
123
1.7
Simulao
124
Autor:
Usurio
Fluxo principal
125
Fluxo Alternativo
Pr-condio
Ps-condio
Observao:
Autor:
Usurio
Fluxo principal
Fluxos Alternativos
Pr-condio
Ps-condio
Observao:
126
Autor:
Usurio
Fluxo principal
Fluxos Alternativos
Pr-condio
Ps-condio
Observao:
Autor:
Usurio
Fluxo principal
Fluxos Alternativos
127
Pr-condio
Ps-condio
Observao:
Autor:
Usurio
Fluxo principal
128
ps-condio;
- Os dados sero armazenados no banco de dados;
- O sistema apresenta a tela de edio das taxonomias;
Fluxo Alternativo
Pr-condio
Ps-condio
Observao:
Autor:
Usurio
Fluxo principal
Fluxos Alternativos
Pr-condio
Ps-condio
Observao:
129
Autor:
Usurio
Fluxo principal
Fluxo Alternativo
Pr-condio
Ps-condio
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
Autor:
Usurio
Fluxo principal
130
Fluxo Alternativo
Pr-condio
Ps-condio
Observao:
Tabela 8 - Visualizar rede de petri
Autor:
Usurio
Fluxo principal
Fluxo Alternativo
Pr-condio
Ps-condio
Observao:
Autor:
Usurio
131
Fluxo principal
Fluxo Alternativo
Pr-condio
Ps-condio
Observao:
Tabela 10 - Verificar propriedades
Caso de Uso: Simular Redes de Petri
Descrio
Autor:
Usurio
Fluxo principal
Fluxo Alternativo
Pr-condio
Ps-condio
132
133
134
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.
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
136
137
138
Aps este passo o sistema ir solicitar o conjunto das ps condies como demonstrado na
figura 6.
139
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
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
142
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.
144
A figura 12 apresenta o modelamento de uma Rede de Petri, obtida atravs da opo
Visualizar.
145
A figura 13 demonstra a tela de edio do modelamento de uma Rede de Petri, nesta opo
possvel editar ou excluir os modelamentos.
146
Para as Redes de Petri Ordinrias, possvel definir uma seqncia de disparo como
demonstrado na figura 14.
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.
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.
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.
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.
151
152
153
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;