<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Executable models for Embedded Controllers Development - A Cloud Based Development Framework</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Fernando Pereira</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-We present IOPT-Tools, a tool framework for the development of digital controllers based on graphical executable models. The framework supports edition, simulation, verification through state-space querying, and code generation for several hardware platforms, most notably microcontrollers (e.g. Arduino, PIC, and Raspberry Pi) and FPGAs. The tool framework uses a class of Petri nets and is cloud based: the development process is performed using a browser.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. MOTIVATION AND GOALS</title>
      <p>
        Digital controllers are often developed and programmed
using textual languages. Due to the well-known suitability
of Petri nets to graphically specify sequence, concurrency,
and synchronizations, specific classes of Petri nets have been
designed to support the specification of this type of systems
(e.g., [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]–[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). Yet, somehow surprisingly, the ”Petri Nets Tool
Database” [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] shows a notable scarcity of tools able to support
the design and, especially, the generation of code for digital
controllers.
      </p>
      <p>This work presents a web tool framework that provides
a higher level language for the development of digital
controllers. It is based on graphical executable Petri net models
that use a non-autonomous class of Petri net. Besides
supporting the modeling, simulation, state space exploration, and code
generation for digital controllers, the framework is totally web
based, thus providing multi-platform support and avoiding the
need to install software.</p>
    </sec>
    <sec id="sec-2">
      <title>II. NON-AUTONOMOUS PETRI NETS</title>
      <p>
        Petri nets have their origin in the PhD. Thesis of Carl Adam
Petri [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Yet, numerous Petri net classes exist, some of them
with associated tools [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. These classes of nets usually share
a small set of base characteristics that we summarize next:
Petri nets are directed graphs with two types of nodes:
places and transitions;
Places are the ”passive” part, are represented by circles or
ellipses, and are typically associated to states, resources,
or conditions;
Transitions are the ”active” part, are represented by bars
or rectangles, and are typically associated to changes
of state, actions, message passing, or consumption of
resources;
Places can only be connected to transitions, and
viceversa;
Places and transitions can have any quantity of input
and/or output arcs.
      </p>
      <p>
        In its most well-known form (Place/Transition nets or P/T
nets [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) Petri nets provide support for very abstract models,
which are autonomous in the sense that they do not depend
on external entities. Yet, it is a well-established fact that an
effective modeling of digital controllers requires or benefits
very significantly from the addition of non-autonomous
concepts, namely the explicit modeling of external input and
output signals and events. Additionally, as P/T nets are
nondeterministic, the designer must have a way to remove
nondeterminism from the models. To that end, as presented
next, the IOPT nets class adds priorities to transitions, thus
providing a way to remove effective conflicts.
      </p>
      <p>
        IOPT-Tools [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is based on a non-autonomous class of Petri
nets, which adds several well-known and established concepts
to P/T nets. The net class is named Input-Output
PlaceTransition Petri nets, a name that emphasizes the supported
explicit specification of input and output signals and events
in the net models. The precise syntax and semantics of this
net class are presented elsewhere [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Here, we briefly
present the main additions to P/T nets. Compared to P/T nets,
IOPT nets add the following constructs:
      </p>
      <p>Explicit modeling of external input and output signals
and events;
Guards (function of input signals) and priorities in
transitions;
Test arcs;
Input and Output events in transitions;</p>
      <p>Output actions in places, as well as in transitions.</p>
      <p>
        The metamodel for the Input-Output Place-Transition nets
reuses many of the elements of the PNML metamodel for
Place/Transition nets, such as places, transitions, and arcs, and
extends it to include specific concepts. The IOPT metamodel is
described in RelaxNG, as well as in MOF and Ecore formats,
putting IOPT in the context of MDA artifacts and allowing
one to take benefit from the MDA infrastructure [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>IOPT nets have a single server maximal step cycle accurate
semantics, which together with priorities in transitions, allows
the development of deterministic models. In this semantics,
all transitions that can fire will fire. To that end each fireable
transition has to be enabled (sufficient tokens in input places)
and ready (external signals and events allow the transition to
fire).</p>
    </sec>
    <sec id="sec-3">
      <title>III. THE IOPT-TOOLS FRAMEWORK</title>
      <p>
        IOPT-Tools is a framework that integrates a set of tools
supporting the development of digital controllers. The
framework is also being used for teaching [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which serves as a
validation of its usability and simplicity. Presently, it integrates
the following tools in a web-based interface allowing cloud
based storage of the Petri net models being created [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]:
Edit Model — Enter in the IOPT Model Editor tool;
Simulate the models — executing the ”token game” [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ];
Generate C Code — Invoke the automatic software C
code generator [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] ;
Synthesize VHDL — Invoke the automatic hardware
VHDL code generator [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ];
Generate State Space — Execute the State-space
generation tool;
Query Editor — Open the Query-editor tool to specify
state-space queries;
Query Results — View query results after the end of
state- space calculation;
Download Model File — Download the current model
file to the users PC;
Export Snoopy C — Convert the current model to the
Snoopy/IOPT editor file format, using C syntax for math
expressions;
Export Snoopy VHDL — Convert the current model to
the Snoopy/IOPT editor file format, using VHDL syntax
for math expressions;
Decompose GALS — Decompose the selected model into
several sub-models according to specified GALS
timedomains [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ];
Model List — Select other model from the list of models
stored in the server’s user account.
      </p>
      <p>Each model (component) can be seen as a sub-model to
be mapped into an hardware or software platform assuming
hardware-software co-design techniques and specific metrics,
as power consumption, performance, among others. FPGAs
have been used in conjunction with IOPT-Tools framework
allowing exploring and exercising solutions in
hardwaresoftware solution space. This allows the development of
globally asynchronous, locally synchronous (GALS) systems.</p>
      <p>Figure 1 shows the login web page. After, Figure 2 shows an
IOPT net model for a quad encoder model, ready to be selected
among several available, and Figure 3 shows the screen for the
simulator tool.</p>
      <p>For the generation of the state-space, the user specifies
the initial marking and the state-space is generated using the
maximal step semantics of IOPT nets, taking in consideration
the values of input signals and events. The state space can
then be queried. Each query is a logical expression that can
use place markings and event output signals associated to
transitions. These queries allow the verification of some forms
of reachability.</p>
      <p>Listing 1 and Listing 2 show part of the generated C and
VHDL code, respectively, which can be directly deployed
into implementation platforms, such as FPGAs for VHDL
descriptions, and current popular platforms (e.g., Arduino and
Raspberry PI) for C based implementations.</p>
      <p>Listing 1. Part of the generated C code
25 / Net q u a d e n c o d e r IOPT /
26 / Automatic code g e n e r a t e d by IOPT2C XSLT
t r a n s f o r m a t i o n . /</p>
      <p>S i g n a l p 2 : INTEGER RANGE 0 TO 1 : = 0 ;
S i g n a l p 3 : INTEGER RANGE 0 TO 1 : = 0 ;
S i g n a l p 4 : INTEGER RANGE 0 TO 1 : = 0 ;
S i g n a l p 5 : INTEGER RANGE 0 TO 1 : = 0 ;</p>
      <p>S i g n a l p 30 : INTEGER RANGE 0 TO 1 : = 1 ;
64
65 Array i m p l e m e n t a t i o n :
66
67 Begin
68 S e l e c t e d a r r a y i t e m s :
69
70 p r o c i n e v e n t s : PROCESS( Clk , Enable ) IS
71 Begin
72 I f f a l l i n g e d g e ( Clk ) Then
73 ( c o n t i n u e s )</p>
      <p>S i g n a l s COUNTER : INTEGER RANGE 0 TO 255 : =
0 ;
63
64
65
66 # i f d e f HTTP SERVER
67 w e b S e r v e r s e n d R e s p o n s e ( ) ;
68 # e n d i f
69
70 quad encoder LoopDelay ( ) ;
71
72 # i f d e f HTTP SERVER
73 w e b S e r v e r d i s c o n n e c t C l i e n t ( ) ;
74 w e b S e r v e r c h e c k B r e a k P o i n t s ( ) ;
75 # e n d i f
76 g
77
78 i n t main ( )</p>
      <p>
        Petri nets have been used for a long time for the description
of hardware systems and for the design of digital controllers
(e.g. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]). For example, a Petri net variant called STG
(Statetransition graphs) has been widely used in the field of logic
systems design.
      </p>
      <p>
        Another Petri Net inspired formalism is NCES/TNCES (Net
Condition Event System/ Timed Net Condition Event System),
which has been used for system modeling, mostly in the
automation area [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Due to its structure, NCES can be used
to represent module interface abstraction and internal behavior,
and can be easily mapped onto IEC61499 function blocks. The
NCES editor ViEd has several associated tools as ViVe Visual
Verifier that contain model builder, simulator, time diagram
generator among others.
      </p>
      <p>When comparing IOPT-Tools with other Petri net editors
it is possible to conclude that there are several/many editors
also freely available, however only a very few of them offer
the possibility of code generation. Compared to other Petri
net based code generators for hardware/software systems, the
tools in IOPT-Tools have a significant advantage, mainly due
to the modeling capabilities of IOPT nets, but also due to its
web based platform.</p>
    </sec>
    <sec id="sec-4">
      <title>V. ADDITIONAL INFORMATION</title>
      <p>The IOPT tools can be freely used at http://gres.uninova.
pt/IOPT-Tools. A user manual is available from the login
webpage http://gres.uninova.pt/iopt usermanual.pdf and a list
of related publications can be found at http://gres.uninova.pt/
iopt publications.html. The developers can be contacted using
the GRES Research Group email: gres@uninova.pt.</p>
      <p>A self-explanatory short video presentation, without sound,
is available at https://goo.gl/0cnRkf.</p>
      <p>
        The editor employs a plug-in architecture to simplify the
addition of third party extensions [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>VI. CONCLUSIONS</title>
      <p>
        IOPT-Tools have been successfully used to design digital
controllers, targeting both software and hardware platforms
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], and has been extensively validated within several master
courses at the department of Electrical and Computer
Engineering at Nova University of Lisbon [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The cloud-based
architecture and web user interface requires no local software
installation and can be used from any PC or tablet, thus
simplifying data sharing and collaborative work [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>A Javascript code generator (used within the simulator tool),
as well as a MatLab/Simulink code generator (currently in beta
testing phase) are expected to be publicly available in the near
future.</p>
      <p>Ongoing and future work also include a new web-based
Animator tool, to implement user interfaces for simulation,
and tools to import/export model files from/to other
Petrinet tools, as well as better support for modularity and net
operations (namely net addition and net splitting operations
allowing composition and decomposition of models). Finally,
a configurator tool is currently being developed to allow
semi-automatic assigning of platform I/O pins, definition of
platform specific options, and code deployment into specific
implementation platforms.</p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGMENT</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>David</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Alla</surname>
          </string-name>
          , Petri Nets &amp;
          <article-title>Grafcet; Tools for Modelling Discrete Event Systems</article-title>
          . Prentice Hall
          <string-name>
            <surname>International (UK) Ltd</surname>
          </string-name>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L. E.</given-names>
            <surname>Holloway</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. H.</given-names>
            <surname>Krogh</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Giua</surname>
          </string-name>
          , “
          <article-title>A Survey of Petri Net Methods for Controlled Discrete Event Systems,” Discrete Event Dynamic Systems</article-title>
          , vol.
          <volume>7</volume>
          , pp.
          <fpage>151</fpage>
          -
          <lpage>190</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Frey and M. Minas</surname>
          </string-name>
          , “Editing, Visualizing, and Implementing Signal Interpreted Petri Nets,”
          <source>in Proceedings of the AWPN</source>
          <year>2000</year>
          , Koblenz, Oct.
          <year>2000</year>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>H.-M. Hanisch</surname>
            and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Lu</surname>
          </string-name>
          <article-title>¨der, “A Signal Extension for Petri Nets and its Use in Controller Design,” Fundamenta Informaticae</article-title>
          , vol.
          <volume>41</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>415</fpage>
          -
          <lpage>431</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5] “Petri nets tool database,” accessed on
          <year>2015</year>
          /07/30. [Online]. Available: https://www.informatik.uni-hamburg.de/TGI/PetriNets/tools/db.html
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Petri</surname>
          </string-name>
          , “Kommunikation mit Automaten,”
          <article-title>Rheinisch-Westfa¨lisches Institut fu¨r Instrumentelle Mathematik an der Universita¨t Bonn, Bonn</article-title>
          , Dissertation,
          <source>Schriften des IIM 2</source>
          ,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Reisig</surname>
          </string-name>
          ,
          <source>Petri nets: an Introduction</source>
          . Springer-Verlag New York, Inc.,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          , “
          <article-title>IOPT-tools - a web based tool framework for embedded systems controller development using Petri nets,” in Field Programmable Logic and Applications</article-title>
          (FPL),
          <year>2013</year>
          23rd International Conference on,
          <source>Sept</source>
          <year>2013</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Barros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Costa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Nunes</surname>
          </string-name>
          , “
          <article-title>The Input-Output Place-Transition Petri Net Class</article-title>
          and Associated Tools,”
          <source>in Proceedings of the 5th IEEE International Conference on Industrial Informatics (INDIN'07)</source>
          , Vienna, Austria,
          <year>Jul 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Barros</surname>
          </string-name>
          , and L. Gomes, “
          <article-title>An Ecore based Petri net Type Definition for PNML IOPT Models,”</article-title>
          <source>in Proceedings of the 9th IEEE International Conference on Industrial Informatics (INDIN</source>
          <year>2011</year>
          ). Lisbon, Portugal: IEEE, jul
          <year>2011</year>
          , http: //dx.doi.org/10.1109/INDIN.
          <year>2011</year>
          .
          <volume>6034992</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Costa</surname>
          </string-name>
          , “
          <article-title>Cloud based development framework using IOPT Petri nets for embedded systems teaching,” in Industrial Electronics (ISIE</article-title>
          ),
          <year>2014</year>
          IEEE 23rd International Symposium on,
          <year>June 2014</year>
          , pp.
          <fpage>2202</fpage>
          -
          <lpage>2206</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          , and L. Gomes, “
          <article-title>IOPT-Tools - Towards cloud design automation of digital controllers with Petri nets</article-title>
          ,”
          <source>in Proceedings of the 2014 IEEE International Conference on Mechatronics and Control (ICMC</source>
          <year>2014</year>
          ). Jinzhou, China: IEEE, jul
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          , “
          <article-title>Cloud based IOPT Petri net simulator to test and debug embedded system controllers,” in Technological Innovation for Cloud-Based Engineering Systems, ser</article-title>
          .
          <source>IFIP Advances in Information and Communication</source>
          Technology,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Camarinha-Matos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Baldissera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. Di</given-names>
            <surname>Orio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Marques</surname>
          </string-name>
          , Eds. Springer International Publishing,
          <year>2015</year>
          , vol.
          <volume>450</volume>
          , pp.
          <fpage>165</fpage>
          -
          <lpage>175</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Campos-Rebelo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          , and L. Gomes, “
          <article-title>From IOPT Petri nets to C: An automatic code generator tool,” in Industrial Informatics (INDIN</article-title>
          ),
          <year>2011</year>
          9th IEEE International Conference on,
          <year>July 2011</year>
          , pp.
          <fpage>390</fpage>
          -
          <lpage>395</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          , “
          <article-title>Automatic synthesis of VHDL hardware components from IOPT Petri net models,” in Industrial Electronics Society</article-title>
          ,
          <source>IECON 2013 - 39th Annual Conference of the IEEE, Nov</source>
          <year>2013</year>
          , pp.
          <fpage>2214</fpage>
          -
          <lpage>2219</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Costa</surname>
          </string-name>
          , and
          <article-title>Joa˜o Paulo Barros, “Extending Input-Output Place-Transition Petri Nets for Distributed Controller Systems Development</article-title>
          ,”
          <source>in Proceedings of the 2014 IEEE International Conference on Mechatronics and Control (ICMC</source>
          <year>2014</year>
          ). Jinzhou, China: IEEE, jul
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          , “
          <article-title>Asynchronous-channels within Petri netbased gals distributed embedded systems modeling,” Industrial Informatics, IEEE Transactions on</article-title>
          , vol.
          <volume>10</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>2024</fpage>
          -
          <lpage>2033</lpage>
          ,
          <year>Nov 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavagno</surname>
          </string-name>
          , Hardware Design and
          <string-name>
            <given-names>Petri</given-names>
            <surname>Nets</surname>
          </string-name>
          . Kluwer Academic Publishers,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>V.</given-names>
            <surname>Vyatkin</surname>
          </string-name>
          , “
          <article-title>Modelling and verification of discrete control systems</article-title>
          ,”
          <year>2007</year>
          . [Online]. Available: http://www.fb61499.com/valid.html
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Moutinho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          , and L. Gomes, “
          <article-title>Web based IOPT Petri net Editor with an extensible plugin architecture to support generic net operations,”</article-title>
          <source>in IECON 2012 - 38th Annual Conference on IEEE Industrial Electronics Society, Oct</source>
          <year>2012</year>
          , pp.
          <fpage>6151</fpage>
          -
          <lpage>6156</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pereira</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Gomes</surname>
          </string-name>
          , “
          <article-title>FPGA based speed control of Brushless DC Motors using IOPT Petri Net models</article-title>
          ,”
          <source>in Industrial Technology (ICIT)</source>
          ,
          <source>2013 IEEE International Conference on, Feb</source>
          <year>2013</year>
          , pp.
          <fpage>1011</fpage>
          -
          <lpage>1016</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>