登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:S7-1200定时器DB引用程序错误

点击:1560 回复:7

想请问一下,为什么我用定时器的"IEC_Timer_0_DB".Q时,下面的计数器不可以计数。而使用M2.0时却可以计数。
PLC执行顺序不是从上到下,从左到右么?按理这两者的执行方式应该相同才对阿?
18-05-27 23:23
忘了图,如上图所示
18-05-27 23:24
                       
附件 1.jpg
附件 2.jpg
如上图
18-05-27 23:28
这两个不一样啊 ,上面是定时器时间到了,TON-Q动作,前面就断开了啊。下面是定时器时间到了,TON-Q动作,M2.0接通前面断开。
18-05-28 08:20
好费劲才看明白是两张图,并且才看明白两张图的组合情况。
不能计数的原因是因为执行到计时器段时计时时间到,TON.q动作了,也就是TON的In端断开了,该逻辑使Tag5还是0,Tag5得不到动作。
而把TON.q换成Tag5就不一样了,Ton动作时计时器In端还是为1,这样Tag5为1使计数器记数,下一周期才使TON复位,才使Tag5为0.
18-05-28 13:15
附件 333.jpg
感谢你的指导,没想到这样放图不好看。
我主要是不明白这个PLC的执行时序,如图所示,这程序M2.0也是一直都不会置位的。但我想当
TON计时到3秒后应该执行SET M2.0,下一个周期才断开"IEC_Timer_0_DB".Q才对,不是说PLC
的执行顺序是从左到右从上到下吗?
18-05-28 17:20

引用 miss_cloudy 在 2018/5/28 17:20:01 发言【内容省略】

程序是扫描完 才输出的,你用T.Q来断开前面,扫描程序的结果,M2.0就是0;
你用M2.0来断开,这周期扫描的结果M2.0就是1啊。
18-05-28 21:33
其实T是内部定时器,T.q是这个定时器的输出,而直接使用T.q时只和T是否定时到有关而和执不执行T无关。
可以这样理解,假设程序执行到这个使用了T的程序段前面的逻辑段时定时就到了,那么接着执行使用了T的逻辑段时T.q就是1了,这样T逻辑段在T.q取反时就是0.(M2.0为0)
当然,S7-200中有Timer刷新是否同步于使用T逻辑段的描述,1200和200类似,可以看看手册:不同的T使用不同的刷新方式,有些像我上面说的,有些需要执行到T的逻辑段才刷新(这个和我们普通认识一致)。
18-06-02 15:45

工控新闻

更多新闻资讯