西门子plc s7-200写的先进先出范例 用fifo

2021年6月19日 3点热度 0条评论 来源: 高驰很科技

本人最近写了一个五台锅炉共用一个冷却水泵的程序,开始打算用时间戳来记录每台锅炉需要冷却的时间,然后用时间进行排序,但是后来无意中发现fifo可以实现表的先进先出的功能,就抱着学习的目的,用fifo写了本程序。

第一步,先要建立一个表如下图,上电初始化建立一个具有5个值的表,从VW200开始,VW200存放的是表的容量,VW202仿的是当表内的实际个数,然后给vw100-vw108(每台锅炉在表里的id)赋值。

第二部,5个i口作为5台锅炉发来的请求冷却信号,这5个信号必须用上升沿P或者下降沿N来触发

第三步,当表内有数据,且水泵处于休眠状态下,执行先进先出程序,vw300就是目前出去的值(锅炉序号)

第四步,检测当前的先进先出执行到哪台锅炉,对应锅炉就执行输出,这里的q0.1-q0.5就是5台锅炉,vw202和vw300只是方便测试用的,可以删除,m0.1-m0.5都是是同一个水泵的工作信号,为了防止双线圈,才命名不一样

第五步,双线圈的解决办法,q1.0就是水泵电机

fifo这个函数在很多地方都可以用到,排队程序在工业自动化中占比也算大的,但是网络上都找不到详细的说明,希望我这个教程能帮助到大家,给个回复就算谢谢了。日行一善!

    原文作者:高驰很科技
    原文地址: https://blog.csdn.net/u014194297/article/details/80061599
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。