我正在尝试为自动售货机绘制FSM图。机器接受镍,硬币,四分之一,半美元和美元钞票。您可以选择4种选择。 3是1.15美元,1是1.50美元。如果此人插入的项目超过该项目的值,则会给出更改。
FSM输入
现金接收器产生3位编码值,表示无硬币/镍/硬币/四分之一/半美元/美元。 比较器产生一个2位编码信号,表示将其输入与“现金箱”值进行比较的结果。
项目选择器生成一个3位编码值,表示要购买(分发)的选项。
我的问题是,我是否需要拥有每个美元价值的州?现在我正在尝试它,我有接近50个州,我甚至不在图的项目选择部分。有更简单的方法吗?
答案 0 :(得分:1)
由于FSM不提供定量值的方法,您必须按州建模。这将导致州数量激增。这是树脂为什么大多数反应系统使用扩展地层机器概念建模,如Harel状态图。这些允许在状态机中使用变量,使其更简单。您的案例的状态图可能如下所示:
在此处找到更大的版本:vending machine statechart
我希望,状态机的含义是自我解释...这个状态图定义了一个状态机,它在各个重要方面与FSM不同。
使用这些机制是维持有意义数量状态的唯一方法。顺便说一下,使用开源Yakindu Statechart Tools (on statecharts.org)构建示例。它允许您建模和交互式模拟模型以及生成状态机代码。