恭喜,你发布的帖子
发布于 2025-09-12 21:42:23
6楼
我有一个有一点点类似的程序。
我不使用for,我用plc扫描周期自然轮读。那个很火的贴里面我展示过我的库目录那里,有个叫32选4和64选4,就是在32个64个点里面选最低的四个信息一直显示。不足4个信息就扫描32次出一个结果,满4个信息就放弃后面的扫描。
而你是把所有信息循环显示。
我曾经想过你这个程序。发现进入缓冲里的信息,现实中已经消除了。那么究竟消除不呢?应为已经缓冲了。我没处理好。然后就做了这个。
再考虑到如果每个周期都循环一次,扫描时间会有点长。因为这些东西是一些很低速的事情,我也不想占用太多资源去处理。所以用每个周期处理一位的方法。
还有,有些报警很优先的,刚刚轮过去了,回不来了,要等到下一次轮才能显示。太慢了太慢了。信息多的时候等几十秒都轮不到。
哥们,能做这么多位,就肯定不是只报报警啦。但凡有一个报警都要先处理啦。这是提示,状态提示,引导操作提示,等等。例如:左边没料;右边没料;等待放置工件等等的提示。
还有什么因素,忘了,最后选择了32(64)选4。32是不自动分配内存的,64是自动分配的。
我主要是想劝劝你这个可行性。如果真的不必的,不要做下去。
这个程序应用于调度室,远程监测多系统运行状态。我这个是多系统提示报警之用,暂时无优先级要求。
之前的程序做到16位,点位刚好够用,采用的是定时整体轮询,无空位过滤。后续又有其它功能性增加,所以需要进行招展。就把之前的程序推翻重构。
如您所说,多报警位同时出现时会有一个轮询时间较长的问题,但实际应用中同时出现,多个报警位同时存在的工况很少。但编程之初要考虑到这一点。
这次优化了过滤空位。贴中程序只是一个框架。后续做了优化适配性完善。
请填写推广理由:
分享
只看
楼主