quote:以下是引用凡烨在2013-01-14 09:32:37的发言:quote:以下是引用七色阳光在2013-01-12 22:39:49的发言:
在上面的这个程序中反应的应该是在一个扫描周期中数据一致性的问题。
大家可以看看400的手册中关于400的周期响应时间,在资料中介绍400的用户程序是靠时间片来管理的,而每个时间片分为用户程序,通讯和系统操作三个部分,400不是在周期控制点处处理通讯而是在固定的时间片执行,因此在400中通讯是可以中断用户程序的,而这个中断是可以在任何指令后执行,当中断执行后数据就可以被修改,因此在400中数据就有可能并不一致。这就是400为什么能够使M100.1置位的理论依据。
使用 S7-300 CPU 时,在周期控制点处将通过 OP/TP(操作员控制和监视功能)单独访
问数据(有关数据一致性,请参见技术规范)。 程序执行不会*作员监控功能中断。不能是M100.1置位。
置于实际如何操作,需不需要在硬件中配置什么功能才会使M100.1置位需要大家继续讨论和实践。
通讯负载可以影响扫描周期,而通讯负载是如何影响扫描周期的大家可以看看下面的文档。
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=5934&loginID=&srno=&sendtime=
七色阳光的回答很准确啊!我再补充一下:)
通过这个程序,大家可以看到400CPU和300CPU本质的不同。其实大家用300/400PLC这么多年,可能也没有想过他们有什么本质的不同,尺寸,大小,背板,多了两个累加器都不是本质的不同。其实他们的循环周期,存在本质的不同,这就是不同。在这里还要感谢403,感谢他给我们带来的实验结果。
那么通过循环周期,他们的不同我们*看的本质不同,即在于他们的通信机制不同。其实我们在通过PG进行赋值时,就是PG与PLC进行通信。PG与300进行赋值时(通信时),数值没有立刻传输到300PLC测,因为300和PG还没有进行通信,数值仍然在PG侧缓存,直到延时时间到,300才和CPU进行通信,也就是在CCP的时候进行数据交换。而CCP在每一个循环周期的结尾,重新开始的循环,肯定会使MW12=MW10。这就是大家看到的300中从没有M100.1进行置位的根本原因!
这里补充说明的是PLCSIM仅仅反映逻辑运算,不能真正的表达实际物理硬件的运算结果,这就是其中的一个例子。
好了,下面我描述一下为什么400可以使M100.1置1?与300本质的不同,PG的赋值不会被缓存,因为和400的通信是立刻发生的。也就是在400运行其应用程序的时候,为了能让大家看得清,设置了延时程序,其实400也不是每次都使M100.1置位,这也是为什么我设置了延时时间,越长你能看的越清楚。这里我需要阐述一个重要的概念即时间片,你可以理解应用程序运行的时间分成若干段,每一段叫做时间片。在时间片内除了程序运行,还有操作系统,以及通信,这里的通信的例子就是我们的实验。现在大家是否明白了。
我希望大家多多参与,能多多理解,这样我好进行下面的话题。大家加油啊!
我会在15号下午3点和大家进行互动,届时我会抛出第二个我们要讨论的话题。谢谢大家~~~
补充一句,当大家对这一系列话题掌握后,您可以解决或者说明很多的西门子PLC的疑难杂症哦。
学习~