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

主题:S7-200中100ms定时器的一个微妙问题

点击:2456 回复:5

下面这个程序中使用了100ms定时器,在I0.0接通之后,Q0.0 =1,Q0.1=0,持续1秒钟,然后转为Q0.0=0,Q0.1=1.,
问题:在到达1秒钟的那一刹那,Q0.0和Q0.1同时为1,还是一个为1,另一个为0?
如果只看Q0.0到Q0.1的变化,这种细节问题似乎无关紧要。但是,如果程序当中其他地方会继续使用Q0.0和Q0.1的值,比如图中第三个rung,只要Q0.0和Q0.1同时为1,就会置Q0.2为1;如果两者从不会同时为1,那么Q0.2就始终保持0。所以,在这种情况下,这一细微的差异,会对程序行为发生明显的影响。
附件 timer.jpg
下面分析一下,Q0.0和Q0.1是否会出现同时为1的情形。
S7-200 100ms定时器在执行到定时器语句时才会改变定时器变量(图中的T37)的值,在时间达到1秒时,执行定时器语句之后,T37从0变为1。Q0.0的计算,发生在这一变化之前,所以Q0.0依然保持1。Q0.1在这一变化之后,因此Q0.1在这一周期中也变为1,所以,此时Q0.0和Q0.1同时为1,因此,最后Q0.2被置1。
最后修改:2013/8/17 21:43:46
13-08-17 09:09
这个模拟器不是官方的,不可靠的,还是硬件可靠
13-08-17 09:47
根本不可能同时为1。
13-08-17 10:05

引用 Kate 在 2013/8/17 10:05:59 发言【内容省略】

后面是.awl程序,可以导入到S7-200中试验一下。
Network 1
LD     I0.0
EU
O      Q0.0
AN     T37
=      Q0.0
TON    T37, 20
Network 2
LD     T37
O      Q0.1
AN     T38
=      Q0.1
TON    T38, 10
Network 3
LD     Q0.0
A      Q0.1
S      Q0.2, 1
13-08-17 22:12
这个你得看是怎么扫描的了,Q0.1需要T37闭合才能闭合,而T37闭合了,Q0.0又断开了。
13-08-17 22:20

引用 lj19820422 在 2013/8/17 22:20:33 发言【内容省略】

大部分PLC都采用从上到下扫描各个梯形图,每个梯形图从左到右扫描。在这种扫描方式下,都会产生同样的结果。
比如,下图是在GX Works2中的模拟结果,其中变量同S7-200的对应关系是:
X0 -- I0.0, Y0 -- Q0.0. Y1 -- Q0.1, Y2 -- Q0.2, T0 -- T37
Y2最后结果=1。表明Y0和Y1在运行中曾经同时为1。
附件 timer.jpg
如果把前两个rung对调,那么Y0和Y1就不会同时为1,最终结果是,Y2=0.
附件 timer2.jpg
也有PLC不是按这种扫描方式来做,比如矩形科技,先扫描第一列,然后扫描第二列。如果用矩形科技来运行这个两个程序,那么Y0和Y1就不会同时为1,最后结果是Y2=0。
最后修改:2013/8/19 22:33:15
13-08-19 22:07

工控新闻

更多新闻资讯