Documentation Center

  • Trials
  • Product Updates

Model a Vending Machine Using Mealy Semantics

The following chart uses Mealy semantics to model a vending machine.

Open the Model

To open the model of a Mealy vending machine, click sf_mealy_vending_machinesf_mealy_vending_machine or type sf_mealy_vending_machine at the MATLAB® command prompt.

Logic of the Mealy Vending Machine

In this example, the vending machine requires 15 cents to release a can of soda. The purchaser can insert a nickel or a dime, one at a time, to purchase the soda. The chart behaves like a Mealy machine because its output soda depends on both the input coin and current state, as follows:

When initial state got_0 is active.  No coin has been received or no coins are left.

  • If a nickel is received (coin == 1), output soda remains 0, but state got_nickel becomes active.

  • If a dime is received (coin == 2), output soda remains 0, but state got_dime becomes active.

  • If input coin is not a dime or a nickel, state got_0 stays active and no soda is released (output soda = 0).

In active state got_nickel.  A nickel was received.

  • If another nickel is received (coin == 1), state got_dime becomes active, but no can is released (soda remains at 0).

  • If a dime is received (coin == 2), a can is released (soda = 1), the coins are banked, and the active state becomes got_0 because no coins are left.

  • If input coin is not a dime or a nickel, state got_nickel stays active and no can is released (output soda = 0).

In active state got_dime.  A dime was received.

  • If a nickel is received (coin == 1), a can is released (soda = 1), the coins are banked, and the active state becomes got_0 because no coins are left.

  • If a dime is received (coin == 2), a can is released (soda = 1), 15 cents is banked, and the active state becomes got_nickel because a nickel (change) is left.

  • If input coin is not a dime or a nickel, state got_dime stays active and no can is released (output soda = 0).

Design Rules in Mealy Vending Machine

This example of a Mealy vending machine illustrates the following Mealy design rules:

  • The chart computes outputs in condition actions.

  • There are no state actions or transition actions.

  • The chart defines chart inputs (coin) and outputs (soda).

  • The value of the input coin determines the output — whether or not soda is released.

Was this topic helpful?