Finite State Machines (FSM) and Petri Nets (PN) are conceptual fashions to signify the discrete interactions in a system.

  • A FSM is a conceptual mannequin that represents how one single exercise can change its behaviour over time, response to internally or externally triggered occasions.
  • A PN is a conceptual illustration of how a number of actions are coordinated.

FSM’s and Petri Nets are at the next stage than the precise software program. This implies it explains the conduct, however not how it may be carried out. It is a perfect illustration, it doesn’t take time delays in account.

Classes of system complexity[edit]

Programs of various complexity are represented in several methods. An FSM or UML statechart (much like FSM, however with extra prospects) can solely signify a centralized system, so there isn’t a coordination wanted with different programs of its sort. Examples of programs of this kind are a soda machine, an elevator, …

Programs with distributed {hardware} and a centralized software program state may be represented utilizing Petri Nets. The centralized software program coordinates how the completely different items of {hardware} act on one another.

A system with distributed {hardware} and distributed software program state will also be represented by a Petri Internet, however on this case there isn’t a central management unit. The completely different items of {hardware} have their very own software program state they usually all ‘know’ the Petri Internet. Now the completely different items must coordinate themselves.

An instance of a distributed system is Robocup. This can be a soccer recreation performed by robots. Each robotic is a system. If there’s a management tower coordinating the robots, this can be a case of a centralized software program state. The management tower itself may be seen as a system of its personal, represented by a statechart with states like ‘ball managed by personal staff’, ‘ball managed by different staff’, … In every state, the robots must cooperate differently; that is represented by completely different Petri Nets.

If there isn’t a management tower, every robotic has to regulate itself they usually must coordinate themselves. Every robotic then ‘is aware of’ the Petri Internet and has to make its personal selections, which might introduce some issues. These are dealt with later within the part ‘Petri Internet’.

Finite State Machine[edit]

A finite state machine is a mannequin of discrete conduct, which consists of: a finite variety of states, transitions between two of these states, and actions. A state represents a sure conduct. A transition signifies a state change and is guarded by a situation. An motion is an outline of an exercise that’s to be carried out. If this motion is dependent upon the state, it’s known as a Moore machine. If the motion is carried out when a transition happens, so when the state and situation are glad, it’s known as a Mealy machine. Most machines are each a Moore and Mealy machine on the identical time.

Some built-in growth environments (IDE) enable a designer to attract a FSM diagram on display screen, after which the IDE robotically interprets the diagram right into a software program or FPGA or ASIC implementation. This permits the designer to make use of a pure method of illustration of the system.

Instance 1[edit]

A robotic is working at excessive velocity. When somebody opens the door to enter the room, the robotic continues its work however at a decrease velocity to ensure the security of the individual. When the individual leaves the room by way of the door, he/she has to push a button after closing the door. Now the robotic can proceed its work at excessive velocity.

File:Fsm instance 1.png

Discover that this a Moore machine, as a result of the outputs (actions) are state-based.

Additionally discover the very fact that there’s a distinction between actuality and the mannequin of the fact. Within the mannequin, there isn’t a time wanted to examine the situation. In actuality, it takes a while to examine the door-sensor and to examine the pushbutton.

Instance 2[edit]

Within the practice mission, the lamps must mild up when the practice passes by way of a tunnel. Though, when the practice drives in daylight, the lamps needs to be dimmed.
Relying on the driving path, both the white or purple mild needs to be working.

File:Fsm instance 2.png

Discover that this a Mealy machine, as a result of the outputs(actions) are input-based.

Instance 3[edit]

Within the practice mission, the practice has to decelerate when it takes a flip. The motor has to work more durable when the practice is driving upon a hill.
The transitions between states are managed by beacons. The picture exhibits the doable transitions from/to driving in a straight line, different transitions are doable too.

UML Statecharts[edit]

Essential web page: UML state machine

FSM, defined earlier than, is proscribed in a method. You can’t have two states lively on the identical second, subsequent to one another. The UML statechart is an try to beat this limitation whereas retaining its good options. That is solely one of many many graphical representations of a system which can be outlined in UML.
UML (Unified Modeling Language) is designed to specify, visualize, assemble and doc software-intensive programs. For extra data, we seek advice from the Wikipedia web page.
The important syntax of statecharts could be very very similar to FSM’s. In a statechart, it’s doable that there are states inside states, so there’s a type of a hierarchical construction. They’re known as substates and superstates or parentstates.One other chance is concurrent states. Through the use of branching, a state may be adopted by a couple of different state. Every transition may be guarded with its personal situation. When a couple of situation is glad, two states may be lively on the identical second.

In comparison with FSM, the design of an embedded system may be visualised so much higher and simpler with sub- and superstates. You’ll be able to see higher how the system works and it is also simpler for the designer to find issues and to adapt the system.
As a result of it is a typical, giant variety of simulation instruments can be found (StateMate, StateFlow, BetterState…). These simulation instruments are simply made to examine the theoretical system, however you may by no means ensure that the embedded system will perform correctly. Out there „back-ends“ translate StateCharts into C or VHDL. This permits software program or {hardware} implementations.


A very good instance to elucidate the utilization of a statechart is a soda machine. The consumer inserts 1 / 4 and the machine waits till the consumer has inserted a second quarter. After the consumer has chosen his drink, the drink is distributed. The machine waits once more. You have got two large states: gathering and shelling out. They’ve substates as a result of there are completely different drinks and each time the consumer inserts a coin a brand new state is entered. In principle this appears a superb visualisation, however in observe there are numerous different elements. These issues may be solved partially. The bottle might get caught within the machine, so we make a brand new state subsequent to the gathering and shelling out half like proven within the determine beneath.


Petri Internet[edit]


Petri Internet(PN) is an summary mannequin to indicate the interplay between asynchronous processes. It is just one of many some ways to signify these interplay. Asynchronous signifies that the designer does not know when the processes begin and wherein sequence they’re going to happen. A typical method to visualise the ideas is with using locations, tokens, transitions and arcs.
We seek advice from the fundamentals of Petri Internet for a primary introduction in notations. We wish to point out {that a} transition can solely hearth when there are tokens in each input-place. When it fires, one token is taken from each input-place and each output-place from the transition will get an (additional) token.


Locations can play the next roles:

  • a kind of communication medium: the wi-fi connection in Robocup;
  • a buffer: all of the robots ship messages to one another. When one robotic checks the primary message, the opposite incoming data is positioned in his reminiscence;
  • a geographical location: the setting of a robotic, a spot he has to go to;
  • a doable state or state situation: regular mode and secure mode of a machine(see FSM);

Tokens can play the next roles:

  • a bodily object: a robotic;
  • an data object: a message between two robots;
  • a set of objects: the individuals mover;
  • an indicator of a state: the state wherein a robotic is: defender/attacker;
  • an indicator of a situation: a token signifies whether or not a sure situation is fulfilled (ex. Soccer recreation begins when the referee provides the sign).

Transitions can play the next roles:

  • an occasion: begin a thread, the switching of a machine from regular to secure mode;
  • a metamorphosis of an object: a robotic who adjustments his function, see additional;
  • a transport of an object: the ball is handed between the robots.

An arc connects solely locations and transitions and signifies the path wherein the token travels.

Coordination issues[edit]

In a PN, conditions can happen the place two or extra programs anticipate one another earlier than an motion can happen. That is known as a impasse. It may additionally happen {that a} single system has to attend eternally in the beginning of a transition as a result of one other course of has all the time greater precedence. This downside is named hunger.

Within the mathematical mannequin a transition takes no time. In the actual world executing a transition takes a while and the sequence or timing of occasions turns into vital. This downside pertains to race situations or race hazards. When the PN is slightly large, these issues are exhausting to seek out.

Robocup examples[edit]

The issues and options that may happen can be launched utilizing the instance Robocup. There must be communication between the robots to attain a sure objective. We suppose that the autonomous robots are completely designed, so we use a conduct engineering method.

When a robotic stands on the sphere his conduct consists of various choices. With these choices and incoming data he decides what he’s going to do.

Each robotic can do some fundamental actions:

  • stand nonetheless
  • flip round
  • stroll
  • go to ball
  • seize
  • move
  • kick the ball

Two or extra robots must work collectively and subsequently there actions must be synchronized. The designer makes use of Petri Internet as a digital mannequin to indicate the interactions.

Instance: double move situation

When a robotic sees an opponent in entrance of him and there’s a teammate near him, he can arrange a double move motion. We seek advice from the petri web determine within the introduction. With this mannequin, the software program within the first robotic can talk with the software program within the second robotic. Generally directions should wait on an enter sign which signifies that the opposite robotic has completed his motion.

Double pass.jpg

There may be issues when the double move is deliberate in such a method. When the second robotic dribbles and loses the ball, the primary robotic will wait eternally to just accept the move. A greater implementation would require steady communication between the two robots. The second robotic can inform that he has misplaced the ball or that he desires to move to a different participant.

Instance: unsuitable determination

Robots must take selections in the course of the recreation. It takes a while to examine a number of situations and through this time the earlier selections can change from true to false. Consequently the robotic does a unsuitable motion. For instance: A robotic asks the ball. The robotic who has the ball has to examine two situations. IF teammate asks ball AND I’ve the ball THEN give a move. When this robotic has checked the primary situation, there may be an opponent who jumps in entrance of the asking robotic, so the robotic says he does not need the move anymore. The primary robotic checks the second situation and he passes the ball which is then intercepted by the opponent. This easy instance may be prolonged by a 3rd situation(IF there isn’t any opponent)

Instance: impasse conditions

  • The precept of mutual exclusion says {that a} useful resource can solely be assigned to at least one robotic. When it is not, the useful resource is free. When two robots declare the ball(=useful resource) a impasse scenario can happen as a result of the ball is assigned to 2 completely different brokers. This downside additionally pertains to a round wait situation as a result of every robotic waits for the opposite to launch the ball.

Circular wait.jpg

  • The robots must play a function(=useful resource) of their staff. The function allocation may be as follows: main attacker, offensive supporter, defensive supporter and goalkeeper. The function of goalkeeper is fastened all through the sport. The opposite three roles are extra fluid. The robots sign each other continuously, broadcasting their estimate of the space between themselves and the ball. Primarily based on the varied estimates, the robotic that’s closest to the ball takes on the function of main attacker, proceeds in direction of the ball and tries to kick it in direction of the opposing staff’s purpose. The offensive supporter additionally strikes in direction of the ball, however stops earlier than it will get too shut. The defensive supporter waits till the ball approaches him (earlier than switching to a main attacker mode). There can happen issues when assigning these roles to the robots. Contemplate the function as main attacker which may be allotted to precisely one robotic. If no robots are allocating this useful resource, the staff suffers since no robotic will attempt to transfer to the ball. If a number of robots are allocating this useful resource then the staff will undergo as they intervene with each other as a result of all of them attempt to get the ball. One other downside is the time delay which happens in the course of the switching between two roles. A robotic should first launch sources so one other robotic can take it. Inside this time the robotic freezes and might’t carry out an motion.
  • In a essential scenario when the attacker robotic loses energy, a impasse scenario can happen. The robotic cannot launch his attacker function, so there aren’t any brokers who run in direction of the ball as a result of they cannot be main attacker(the useful resource is not launched). This downside may be averted with the communication between the robots or with an automated launch perform when the facility shuts down.

Different fashions[edit]

The earlier fashions have numerous extensions and variations. As a result of the listing is so elaborate, just a few fashions are mentioned.

Coloured Petri Nets[edit]

In a coloured PN each token is an object with some properties. These properties can change when it travels by way of the construction. With these properties a sure object can, for instance, get precedence to different objects.
Each object has some type of Finite State Machine to comply with and the coordination between the completely different objects is finished by the coloured Petri Internet. So coloured PNs may be thought of as a mix of coordination and computation.

Speaking sequential processes (CSP)[edit]

Speaking sequential processes (CSP) is a language, utilized in laptop science, to explain the interplay in concurrent programs. Attributable to this concurrency, communication is important. Each “message” is a mix of coordination and communication. This manner, a proper verification between the processes is feasible.

See additionally[edit]

Additional studying[edit]