FIFO(FirstInputFirstOutput)先进先出功能之前应用是根据原理自己编写了一个功能块,最近发现原来LGF中就有现成的功能块,功能强大好用。
项目描述:自动煮面条设备具备自动煮面、捞面、通知取餐的功能,无需人工干预;
2、设备描述:设备可同时煮制多份面。有新订单时,机械臂自动将生面条投入到空面篓中;煮制时间到后,机械臂将煮面蒌提出将面倒入到面碗中,出面完成后通知该订单的顾客前来取餐。
3、项目中要解决如下问题:
l 识别煮面蒌的状态(空闲、在煮);
l 跟踪每份面的煮制时长(先入先出);
l 记录每份面的订单号(不同订单会有粗细宽窄和大小份的差异);
4、设计思想
定义一个数组队列,数据类型为包含订单号(INT)、位号(INT)及煮制时长(TIME)的结构体变量;每接收到新订单时,新数据加入到队列中;监视队列中最后一个数据内的时长到达设定值后将数据取出。
数据内位号用于指导机械手捞面,根据订单号通知点餐顾客取餐。队列的长度即为在制面的数量,超出最大制餐数量拒绝接收订单。
5、利用LGF_FIFO功能块编程,
execute:当有新订单时或出餐时执行;
mode:有新订单加入时值为True,出餐时此值为False;
initialValue:用于初始化缓冲区的值(数据类型与缓冲区数据类型一致)
resetBuffer: 用于初始化缓冲区的指令;
item:制餐时待加入的新订单数据,出餐时取出的新订单数据;
buffer:队列缓冲区;
len:修改功能块,增加统计在制数量的参数(加入数据次数-取出次数);
5、推荐理由:
l 快捷高效,满足工艺需求
l 数据接口,不限制输入的数据类型;
l 功能块的代码公开,可以按照项目需求增减;