签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
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 功能块的代码公开,可以按照项目需求增减;
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=25&a_id=1641772
感谢分享!很方便的指令。
很多连续生产工艺都可以最终等效成对队列的操作包括矩阵式的涂胶,酸洗,电镀,电梯等等。还有一些很有用的队列元素的删除,插入,排序等功能块。 队列元素指针值与首元素指针值的差值对用户可能用到的工作矩阵区的行或列参数取整+1,取余+1后可以算出坐标值(需要S型寻址则判断奇偶行或奇偶列即可)。因此一维队列可以计算二维矩阵,也可直接定义二维数组数据结构来解决坐标计算。 超出最大煮面容量的处理也可以这样考虑,有可能增加销售,超出最大容量而客户有新订单应将新订单缓存在待加工订单队列,并通知客户正在加工队列已满您的新订单被缓存在待加工队列,请确认是否等待。选择是则等待,选择否则删除刚才缓存项,用到队列删除功能。
FIFO代码公开挺好的
代码公开了吗
思路值得借鉴。
感谢分享!
不错,学习学习!
谢谢分享,收藏了。
一直没弄明白希望看完你的整理能明白
,干货满满,特别不错,看进去了,还能有收获
代码怎么构思呢
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录