有限状态机自动售货机图

时间:2015-04-21 20:28:51

标签: fsm state-machine

我正在尝试为自动售货机绘制FSM图。机器接受镍,硬币,四分之一,半美元和美元钞票。您可以选择4种选择。 3是1.15美元,1是1.50美元。如果此人插入的项目超过该项目的值,则会给出更改。

FSM输入

现金接收器产生3位编码值,表示无硬币/镍/硬币/四分之一/半美元/美元。 比较器产生一个2位编码信号,表示将其输入与“现金箱”值进行比较的结果。

项目选择器生成一个3位编码值,表示要购买(分发)的选项。

我的问题是,我是否需要拥有每个美元价值的州?现在我正在尝试它,我有接近50个州,我甚至不在图的项目选择部分。有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

由于FSM不提供定量值的方法,您必须按州建模。这将导致州数量激增。这是树脂为什么大多数反应系统使用扩展地层机器概念建模,如Harel状态图。这些允许在状态机中使用变量,使其更简单。您的案例的状态图可能如下所示:

vending state machine在此处找到更大的版本:vending machine statechart

我希望,状态机的含义是自我解释...这个状态图定义了一个状态机,它在各个重要方面与FSM不同。

  1. 首先,您可以定义变量(左侧)以保存定量值,如硬币数量等。
  2. 选择(小菱形)让您构建过渡,从而拒绝过渡复杂性
  3. 名为'付款'的矩形和'文章供应'是平行区域。每个地区都有自己的活跃状态。所以总体状态是两种活跃状态的组合。 FSM需要定义所有并行区域的状态的叉积。
  4. 使用这些机制是维持有意义数量状态的唯一方法。顺便说一下,使用开源Yakindu Statechart Tools (on statecharts.org)构建示例。它允许您建模和交互式模拟模型以及生成状态机代码。