本节书摘来自华章社区《C语言程序设计:问题与求解方法》一书中的第0章,第0.2节理想厨房系统的一个炒菜实例,作者:何 勤,更多章节内容可以访问云栖社区“华章社区”公众号查看
0.2 理想厨房系统的一个炒菜实例
在本节中,我们通过炒制一道青菜的例子,来说明理想厨房系统的工作全过程。
首先,把青菜放在冰箱地址为5的格子中,冰箱地址为6号的格子预留给炒好的菜使用。
菜谱的所有加工步骤(又称为指令)从冰箱地址0号格开始依次存放,炒青菜的菜谱及地址如下:
地址0的格子中: 取地址5(中的物品)到R0碟;
地址1的格子中: 将R0(倒入炒锅中)炒好后装到R1碟;
地址2的格子中: 送R1碟(中的物品)到地址6中;
可见,此菜谱一共有3个加工步骤。
开始时理想厨房系统状态如图0-2所示。
菜谱和原料安放完毕后,启动理想厨房系统,开始自动化的工作。
1)厨房管理员根据PC碟子中的数字“0”,知道要到地址为0的格子中取第一条指令(即加工步骤)。于是,厨房管理员向控制传送带上发出一个“取”信号,然后马上将PC碟中的数字“0”复制后放到地址传送带上。这两个信号都会到达冰箱。冰箱收到这两个信号后(知道理想厨房想要得到第0格中的物品,于是自动冰箱)将0号格的内容 “取地址5到R0碟”复制一份,将其放到材料传送带上,送往理想厨房。理想厨房收到后,将这条指令放到IR碟中。然后,厨房管理员将PC碟中的原来值增加1,以便为取下一条指令做好准备。取指令工作完成后,理想厨房系统处于如图0-3所示的状态。
厨房管理员阅读并分析指令存放碟中的指令后,命令厨师将R0碟中的物品倒入锅中炒好后装到R1碟。第二条指令执行完后,理想厨房系统处于如图0-6所示的状态。
下面开始执行“送R1碟到地址6中”这条指令。厨房管理员分析指令存放碟中的加工步骤后,知道要将R1碟中的物品送到冰箱地址为6的格子中去存放。于是,管理员向控制传送带上发一个“存”信号,然后马上将6这个数放到地址传送带上;最后,将R1碟中的物品“熟青菜”放到材料传送带上,送往冰箱。
冰箱收到两个来自理想厨房的信号后,知道理想厨房要存放物品到6格中,于是自动冰箱(通过机械手)在材料传送带旁,等待从理想厨房R1碟传来物品—“熟青菜”,一旦到达,自动冰箱就将其取下,并将其存放到地址为6的格子中。完成后系统状态如图0-8所示。
到此为止,炒青菜这道菜终于大功告成了。