回复:32报警位轮询播报程序分享交流

为修修为

西门子1847工业学习平台

  • 帖子

    1154
  • 精华

    8
  • 被关注

    29

论坛等级:奇侠

注册时间:2021-12-02

钻石 钻石 如何晋级?

发布于 2025-09-12 21:42:23

6楼

展开查看
以下是引用芳季在2025-09-12 18:36:18的发言 >4楼

我有一个有一点点类似的程序。

我不使用for,我用plc扫描周期自然轮读。那个很火的贴里面我展示过我的库目录那里,有个叫32选4和64选4,就是在32个64个点里面选最低的四个信息一直显示。不足4个信息就扫描32次出一个结果,满4个信息就放弃后面的扫描。

而你是把所有信息循环显示。

我曾经想过你这个程序。发现进入缓冲里的信息,现实中已经消除了。那么究竟消除不呢?应为已经缓冲了。我没处理好。然后就做了这个。

再考虑到如果每个周期都循环一次,扫描时间会有点长。因为这些东西是一些很低速的事情,我也不想占用太多资源去处理。所以用每个周期处理一位的方法。

还有,有些报警很优先的,刚刚轮过去了,回不来了,要等到下一次轮才能显示。太慢了太慢了。信息多的时候等几十秒都轮不到。

哥们,能做这么多位,就肯定不是只报报警啦。但凡有一个报警都要先处理啦。这是提示,状态提示,引导操作提示,等等。例如:左边没料;右边没料;等待放置工件等等的提示。

还有什么因素,忘了,最后选择了32(64)选4。32是不自动分配内存的,64是自动分配的。

我主要是想劝劝你这个可行性。如果真的不必的,不要做下去。

这个程序应用于调度室,远程监测多系统运行状态。我这个是多系统提示报警之用,暂时无优先级要求。

之前的程序做到16位,点位刚好够用,采用的是定时整体轮询,无空位过滤。后续又有其它功能性增加,所以需要进行招展。就把之前的程序推翻重构。

如您所说,多报警位同时出现时会有一个轮询时间较长的问题,但实际应用中同时出现,多个报警位同时存在的工况很少。但编程之初要考虑到这一点。

这次优化了过滤空位。贴中程序只是一个框架。后续做了优化适配性完善。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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