回复:时间继电器的计时复位问题

已锁定

反转地球

  • 帖子

    538
  • 精华

    2
  • 被关注

    7

论坛等级:侠圣

注册时间:2017-11-06

钻石 钻石 如何晋级?

发布于 2024-04-08 21:02:16

6楼

展开查看
以下是引用自动化电气柜在2024-04-08 13:11:29的发言 >4楼

这个问题问的非常好。

1  首先楼主定时器是用的多重背景,那么可以推断是FB块


2  既然是FB块,然后还有记忆功能,那么变量肯定存储在static中,那么答案结合一楼来看就显而易见了


3  首先第一个扫描周期定时器是不工作的,这一点毫无疑问。其次也是最关键的部分就是楼主对PLC的输入输出及扫描过程可能稍微不大了解,PLC输入是实时采集,存储到过程映射存储器中,扫描到该点位时读取,关键的来了!!PLC的输出是统一输出(扫描完所有程序统一输出,而不是边扫描边输出)举个大家都知道的例子---双线圈。双线圈就是只会判断最后一次线圈的赋值是0是1然后输出,不会看前面程序段的运算。


4  看完第三条那么楼主这个问题就解决了,楼主确实在第6行进行赋值0,但是你的#start变量一直是TRUE,扫描到后面的case指令就会进行语句第一步(第19行)进行赋值1,所以统一输出后,他的赋值就一直是第19行的1,不会看第6行的赋值0。

那这道看似简单的问题就迎刃而解了。

你说的我是有点懂了,但是我又糊涂了,来看false写在第一行的情况,当第一行是false的时候,假设第一个扫描周期start变为true,那么第十九行又变为1了,定时器开始计时,那第二个扫描周期时,第一行是0,定时器要扫描完才会输出,那第一行是不是也是双线圈的第一个,那为什么放在第一行他不工作呢?

生命在于学习。活到老学到老
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15235条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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