## 2 Related Work
In such cases, we refer to the Petri net as a non-autonomous model, and for the transition to be fireable, it must be enabled (from the point of view of the marking) and _ready_ (from the point of view of the external constraints). Several classes of non-autonomous Petri nets have been introduced over the years, namely, [15; 16; 17; 18; 19; 20], including some specifically addressing manufacturing systems as the application domain [21]. Some of these Petri net classes were developed by adopting or expanding upon the concepts of synchronized and interpreted Petri nets [20] or targeting specific areas, such as Control Interpreted Petri nets (independently proposed by [22; 23]). This paper considers Input-Output Place-Transition nets (IOPT nets), which belong to the category of non-autonomous Petri nets designed for modeling discrete-event controllers [1; 2; 3]. Additionally, a suite of web-based tools, collectively known as IOPT-Tools, is freely available [4; 5; 6]. This set of tools directly supports editing, simulation, property verification, and code generation. Automatic code generators can produce both C and VHDL code directly from the models, which aligns with the goal of having execution code without writing a line of code. The C code can be directly executed on platforms like Arduino boards and several single-board computers, including Raspberry Pi and other Linux platforms. Also, VHDL code can be seamlessly deployed into FPGA-based boards. IOPT nets are a non-autonomous extension of place-transition nets [24], being equipped with non-autonomous characteristics that build upon the principles of synchronized and interpreted Petri nets, as outlined in [20]. Specifically, IOPT nets consider input signals, which can constrain transition firing when involved in the transition guard. The analysis of signal evolution, which identifies changes in its value, can generate events, which in turn can also constrain transition firing. In this sense, in an IOPT net, the firing of a transition needs to be _enabled_ (enough tokens at input places) and _ready_ from the point of view of its guard and its event (if any). We consider that a transition is _fireable_ when it is enabled and ready. In the simple model presented in Figure 1, for transition \(t2\) to fire, places \(p1\) and \(p2\) must be marked, the guard evaluated to \(true\) (input signal \(b\) equals to \(1\)), and the event \(ev\_a\) (associated with input signal \(a\)) occurs. Figure 1 shows the simple IOPT net, as well as the relevant interfaces (to provide characteristics for signal \(a\), event \(ev\_a\), and transition \(t2\)) provided by IOPT-Tools to support its implementation. In this sub-section, a few basic definitions associated with the class of IOPT nets are presented. They are adapted from [3] and start with the characterization of the interface with the environment in terms of the inputs and outputs of the controller. After that, the syntax of the IOPT nets is presented, as well as the associated execution semantics, where the dependencies of the inputs and outputs of the system are considered. **Definition 1** (Model interface). : _(from [3].) The interface between the controlled system and the IOPT net is a tuple \(MI=(IS_{B},IS_{R},IE_{NA},IE_{A},inputSignal,OS_{B},OS_{R},OE_{NA},\)\(OE_{A},outputSignal)\) satisfying the following:_  
1. \(IS_{B}\) _is a finite set of Boolean input signals;_
2. \(IS_{R}\) _is a finite set of range (non-negative integers) input signals;_
3. \(IE_{NA}\) _is a finite set of non-autonomous input events;_
4. \(IE_{A}\) _is a finite set of autonomous input events;_
5. \(inputSignal\) _is a function applying non-autonomous input events to a signal and an upper or lower edge:_ \(inputSignal:IE_{NA}\rightarrow(IS_{B}\cup IS_{R})\times\{upper,lower\}\)_;_
6. \(OS_{B}\) _is a finite set of Boolean output signals;_
7. \(OS_{R}\) _is a finite set of range (non-negative integers) output signals;_
8. \(OE_{NA}\) _is a finite set of non-autonomous output events;_
9. \(OE_{A}\) _is a finite set of autonomous output events;_
10.