回复:关于堆栈中排入队列中的元素突然退出如何处理?

龟仙人

西门子1847工业学习平台

  • 帖子

    928
  • 精华

    15
  • 被关注

    163

论坛等级:奇侠

注册时间:2006-12-15

普通 普通 如何晋级?

发布于 2018-02-11 17:28:03

2楼

展开查看
以下是引用Zane在2018-02-11 15:22:52的发言 >1楼

有好,有不好!


从应用原理上分析


正常情况下应该是个FIFO的队列控制,意外情况下应该是对一个线性表(队列)中的元素进行删除的工作。


楼主的做法是吧压力甩锅给了后续的控制程序,好坏暂且不论,有区别是明显的。


首先,如果预先按表的操作处理的话,后续程序是知道队列里可用的设备数量的,以及下一台设备是否可用,但按楼主的做法确是无法确认(除非另做程序,本来就想偷懒的,这不又多事儿了不是)。


队列中连续两台或多台设备撤出的可能性也是存在的,如果后续控制逻辑相对复杂,这样的处理会加大这部分控制程序的编写难度



我做的请求是一直保持,如果出栈的目标值与请求的编号一致,且请求还在保持时才起作用,就是将无效的出栈过滤掉,程序改动很小。如果要从堆栈中将无效的元素删除,首先要进行一个查询,然后再通过一个循环将后面的元素向前移动,还要判断堆栈的位置,当前无效元素的位置,还要改写剔除无效元素后的堆栈位置。而且目前有20套设备,我需要在每套设备退出请求时调用一次这个处理过程,程序量相当大。而不是你说的省事,还是要具体问题具体分析和应对。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54639条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。