技术论坛

关于SIMATIC定时器异步刷新的例子

作者 主题
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
主题:【分享】关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 楼主 2018-04-27 10:08:03

关于SIMATIC定时器异步刷新的例子

案例摘自西门子官方文档【SIMATIC PLC 计时器的使用】2009年-1月期

   今天在“找答案”栏目中看到这样一个案例,【语句执行的先后顺序问题】,问题链接:

http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=189465&cid=1029

直接上案例程序,图示:



从上图可以看到仿真时,C1能够正常计数,而C3无法正常计数。

我在回复是将计数器C3拆分上移到上一个程序段,这样可以正常计数了,图示:



晚上想起这个回复,总感觉还有什么不妥,于是,找出之前保存的西门子官方文档,再看官方的例子,图示:



这个M10.2是否能够被置1可能?

添加定时器“循环”计数次数C1想在那几个循环后能够捕捉M10.2的程序,图示:添加计数器的目的是看定时器“循环”的次数多少时,M10.2被置位。



计数器在定时器不断“循环”驱动下,在不断的进行加计数,但这个M10.2就是像被屏蔽了似的,很难有被置位的可能。

再继续按官方给出的例子,加入程序SFC47到程序段2,看M10.2能否有被置位的可能,图示:当定时器“循环”到第3个周期时,嘿嘿了,这当然是概率问题(官方的原话)。



在仿真器中重新复位M10.2,再看这个M10.2被置位的概率,这个置位有一定概率性,而并不是有一定规律性的,中间的论证和计算过程参见官方该文档说明。

我在没有做此验证前,一直认为要使计数器C3或M10.2有效,必须要将该程序段放置到定时器线圈的上面的程序段位置,目的是让定时器线圈在被cpu刷新前有效,这个理论是“不一定全面”的概念。重新看过官方的例子程序,才领悟到在定时器程序段下面时,也有可能被计数、置位有效。为验证这个理论,再次将网友的程序段上进行仿真,图示:



计数器C3仍然存在有计数的可能,还是那个“概率”问题。

我不全面的回复可能会误导了那位网友,也盼望那位网友能够看到此贴后,能够重新正确认识西门子定时器的刷新机制。

当然,上述例子如同官方文档说明那样,验证只是在一个被假象了的对象下进行的(插入系统块SFC47)后,延时1000mS下的验证。如果仅仅以网友的那几段程序,被计数的可能性基本不存在,只是考虑到可能在实际应用程序中的程序结构性而已。

添加SFC47的目的就是为了延长定时器T1输出端的有效时间长度,也就是为了延长定时器被cpu刷新的几率。当修改SFC47(WT)时间,时间越小,这个计数器C3被计数的概率就越小,图示:将SFC(WT)修改到5mS



这个计数C3被计数的概率仍然存在,这个延时时间已经非常接近于一般的控制程序的扫描周期了,随着定时器循环次数的增加,计数器计数仍然会有概率性地计数,图示:



SIMATIC定时器异步刷新的工作机制,是指定时器定时时间到达后,触点的刷新并非由线圈来决定的,而是由cpu的扫描周期来确定的被灌之为“异步”特性。



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1477207&b_id=4&s_id=23&num=18

至圣

经验值: 13937
发帖数: 2008
精华帖: 43
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 1楼 2018-04-27 13:16:46

职业生涯 竟然 还没用过计数器


人生就像一场旅行!
以下网友喜欢您的帖子:

  
奇侠

经验值: 5470
发帖数: 634
精华帖: 0
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 2楼 2018-04-27 13:28:14


跟着王工一块儿学习!


干就完了!
以下网友喜欢您的帖子:

  
至圣

经验值: 37447
发帖数: 5133
精华帖: 47
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 3楼 2018-04-27 13:39:14
以下是引用WWCWWC在2018-04-27 10:08:03的发言 >楼主

关于SIMATIC定时器异步刷新的例子

案例摘自西门子官方文档【SIMATIC PLC 计时器的使用】2009年-1月期

   今天在“找答案”栏目中看到这样一个案例,【语句执行的先后顺序问题】,问题链接:

http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=189465&cid=1029

直接上案例程序,图示:



从上图可以看到仿真时,C1能够正常计数,而C3无法正常计数。

我在回复是将计数器C3拆分上移到上一个程序段,这样可以正常计数了,图示:



晚上想起这个回复,总感觉还有什么不妥,于是,找出之前保存的西门子官方文档,再看官方的例子,图示:



这个M10.2是否能够被置1可能?

添加定时器“循环”计数次数C1想在那几个循环后能够捕捉M10.2的程序,图示:添加计数器的目的是看定时器“循环”的次数多少时,M10.2被置位。



计数器在定时器不断“循环”驱动下,在不断的进行加计数,但这个M10.2就是像被屏蔽了似的,很难有被置位的可能。

再继续按官方给出的例子,加入程序SFC47到程序段2,看M10.2能否有被置位的可能,图示:当定时器“循环”到第3个周期时,嘿嘿了,这当然是概率问题(官方的原话)。



在仿真器中重新复位M10.2,再看这个M10.2被置位的概率,这个置位有一定概率性,而并不是有一定规律性的,中间的论证和计算过程参见官方该文档说明。

我在没有做此验证前,一直认为要使计数器C3或M10.2有效,必须要将该程序段放置到定时器线圈的上面的程序段位置,目的是让定时器线圈在被cpu刷新前有效,这个理论是“不一定全面”的概念。重新看过官方的例子程序,才领悟到在定时器程序段下面时,也有可能被计数、置位有效。为验证这个理论,再次将网友的程序段上进行仿真,图示:



计数器C3仍然存在有计数的可能,还是那个“概率”问题。

我不全面的回复可能会误导了那位网友,也盼望那位网友能够看到此贴后,能够重新正确认识西门子定时器的刷新机制。

当然,上述例子如同官方文档说明那样,验证只是在一个被假象了的对象下进行的(插入系统块SFC47)后,延时1000mS下的验证。如果仅仅以网友的那几段程序,被计数的可能性基本不存在,只是考虑到可能在实际应用程序中的程序结构性而已。

添加SFC47的目的就是为了延长定时器T1输出端的有效时间长度,也就是为了延长定时器被cpu刷新的几率。当修改SFC47(WT)时间,时间越小,这个计数器C3被计数的概率就越小,图示:将SFC(WT)修改到5mS



这个计数C3被计数的概率仍然存在,这个延时时间已经非常接近于一般的控制程序的扫描周期了,随着定时器循环次数的增加,计数器计数仍然会有概率性地计数,图示:



SIMATIC定时器异步刷新的工作机制,是指定时器定时时间到达后,触点的刷新并非由线圈来决定的,而是由cpu的扫描周期来确定的被灌之为“异步”特性。


这个实验做的好!


工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
侠圣

经验值: 2300
发帖数: 442
精华帖: 1
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 4楼 2018-04-27 14:17:49

意思就是说,S5timer的运行和扫描时间相关,但并不依赖OB1。。。


co771@qq.com,好难
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 楼主 5楼 2018-04-27 15:35:54
以下是引用Letham在2018-04-27 13:16:46的发言 >1楼

职业生涯 竟然 还没用过计数器

类似的功能指令太多了,说实在我也用的很少,可能是习惯问题。



 
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 楼主 6楼 2018-04-27 15:38:42
以下是引用帮蛋儿在2018-04-27 13:28:14的发言 >2楼


跟着王工一块儿学习!

我是回复了那个提问,才想起可能有问题可以深究一下,才重新看那个文档的。

之前,均是置换一下位置处理。

知道然,而不清楚这个所以然。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 楼主 7楼 2018-04-27 15:39:17
以下是引用威师爷在2018-04-27 13:39:14的发言 >3楼

这个实验做的好!

以下是引用WWCWWC在2018-04-27 10:08:03的发言 >楼主:关于SIMATIC定...

引用楼主详细内容:

关于SIMATIC定时器异步刷新的例子

案例摘自西门子官方文档【SIMATIC PLC 计时器的使用】2009年-1月期

   今天在“找答案”栏目中看到这样一个案例,【语句执行的先后顺序问题】,问题链接:

http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=189465&cid=1029

直接上案例程序,图示:



从上图可以看到仿真时,C1能够正常计数,而C3无法正常计数。

我在回复是将计数器C3拆分上移到上一个程序段,这样可以正常计数了,图示:



晚上想起这个回复,总感觉还有什么不妥,于是,找出之前保存的西门子官方文档,再看官方的例子,图示:



这个M10.2是否能够被置1可能?

添加定时器“循环”计数次数C1想在那几个循环后能够捕捉M10.2的程序,图示:添加计数器的目的是看定时器“循环”的次数多少时,M10.2被置位。



计数器在定时器不断“循环”驱动下,在不断的进行加计数,但这个M10.2就是像被屏蔽了似的,很难有被置位的可能。

再继续按官方给出的例子,加入程序SFC47到程序段2,看M10.2能否有被置位的可能,图示:当定时器“循环”到第3个周期时,嘿嘿了,这当然是概率问题(官方的原话)。



在仿真器中重新复位M10.2,再看这个M10.2被置位的概率,这个置位有一定概率性,而并不是有一定规律性的,中间的论证和计算过程参见官方该文档说明。

我在没有做此验证前,一直认为要使计数器C3或M10.2有效,必须要将该程序段放置到定时器线圈的上面的程序段位置,目的是让定时器线圈在被cpu刷新前有效,这个理论是“不一定全面”的概念。重新看过官方的例子程序,才领悟到在定时器程序段下面时,也有可能被计数、置位有效。为验证这个理论,再次将网友的程序段上进行仿真,图示:



计数器C3仍然存在有计数的可能,还是那个“概率”问题。

我不全面的回复可能会误导了那位网友,也盼望那位网友能够看到此贴后,能够重新正确认识西门子定时器的刷新机制。

当然,上述例子如同官方文档说明那样,验证只是在一个被假象了的对象下进行的(插入系统块SFC47)后,延时1000mS下的验证。如果仅仅以网友的那几段程序,被计数的可能性基本不存在,只是考虑到可能在实际应用程序中的程序结构性而已。

添加SFC47的目的就是为了延长定时器T1输出端的有效时间长度,也就是为了延长定时器被cpu刷新的几率。当修改SFC47(WT)时间,时间越小,这个计数器C3被计数的概率就越小,图示:将SFC(WT)修改到5mS



这个计数C3被计数的概率仍然存在,这个延时时间已经非常接近于一般的控制程序的扫描周期了,随着定时器循环次数的增加,计数器计数仍然会有概率性地计数,图示:



SIMATIC定时器异步刷新的工作机制,是指定时器定时时间到达后,触点的刷新并非由线圈来决定的,而是由cpu的扫描周期来确定的被灌之为“异步”特性。


希望能够加深理解。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子
推荐帖


只看楼主 楼主 8楼 2018-04-27 15:41:10
以下是引用BBdell在2018-04-27 14:17:49的发言 >4楼

意思就是说,S5timer的运行和扫描时间相关,但并不依赖OB1。。。

是的,有机会下一个官方文档看看。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8562
发帖数: 3432
精华帖: 56
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 9楼 2018-04-28 08:52:49

用一个Timer自身来作为条件,本身就是编程的大忌。

在T1后面接个M点,然后用M点来作为条件,这些问题就不存在了,何必让自己这么纠结。


If anything can go wrong, it will.
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 楼主 10楼 2018-04-28 10:13:59
以下是引用冬日在2018-04-28 08:52:49的发言 >9楼

用一个Timer自身来作为条件,本身就是编程的大忌。

在T1后面接个M点,然后用M点来作为条件,这些问题就不存在了,何必让自己这么纠结。

知道然,而更应该知道所以然,这样才能有效规避编程中的风险。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 9337
发帖数: 1238
精华帖: 13
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 11楼 2018-04-28 22:02:52

官方说了 转到STL就知道啥原因了.就是个顺序问题及扫描与定时器状态不同步

     AN    T     1
      L     S5T#1S
      SD    T      1
      CU    C      1

      AN    T      1
      CU    C      3

从程序来看C3前的T1在大多数情况下状态都为0除非T1 CPU扫描到CU C1与AN T1之间同时定时器到达设定时间那么下面的C3才会计时,就是因为T1是异步的与扫描周期没关系所以第二个T1才会出现状态与预想的不一样.



SIMATIC!
以下网友喜欢您的帖子:

  
侠士

经验值: 1163
发帖数: 145
精华帖: 0
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 12楼 2018-05-05 14:00:55
以下是引用WWCWWC在2018-04-27 10:08:03的发言 >楼主

关于SIMATIC定时器异步刷新的例子

案例摘自西门子官方文档【SIMATIC PLC 计时器的使用】2009年-1月期

   今天在“找答案”栏目中看到这样一个案例,【语句执行的先后顺序问题】,问题链接:

http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=189465&cid=1029

直接上案例程序,图示:



从上图可以看到仿真时,C1能够正常计数,而C3无法正常计数。

我在回复是将计数器C3拆分上移到上一个程序段,这样可以正常计数了,图示:



晚上想起这个回复,总感觉还有什么不妥,于是,找出之前保存的西门子官方文档,再看官方的例子,图示:



这个M10.2是否能够被置1可能?

添加定时器“循环”计数次数C1想在那几个循环后能够捕捉M10.2的程序,图示:添加计数器的目的是看定时器“循环”的次数多少时,M10.2被置位。



计数器在定时器不断“循环”驱动下,在不断的进行加计数,但这个M10.2就是像被屏蔽了似的,很难有被置位的可能。

再继续按官方给出的例子,加入程序SFC47到程序段2,看M10.2能否有被置位的可能,图示:当定时器“循环”到第3个周期时,嘿嘿了,这当然是概率问题(官方的原话)。



在仿真器中重新复位M10.2,再看这个M10.2被置位的概率,这个置位有一定概率性,而并不是有一定规律性的,中间的论证和计算过程参见官方该文档说明。

我在没有做此验证前,一直认为要使计数器C3或M10.2有效,必须要将该程序段放置到定时器线圈的上面的程序段位置,目的是让定时器线圈在被cpu刷新前有效,这个理论是“不一定全面”的概念。重新看过官方的例子程序,才领悟到在定时器程序段下面时,也有可能被计数、置位有效。为验证这个理论,再次将网友的程序段上进行仿真,图示:



计数器C3仍然存在有计数的可能,还是那个“概率”问题。

我不全面的回复可能会误导了那位网友,也盼望那位网友能够看到此贴后,能够重新正确认识西门子定时器的刷新机制。

当然,上述例子如同官方文档说明那样,验证只是在一个被假象了的对象下进行的(插入系统块SFC47)后,延时1000mS下的验证。如果仅仅以网友的那几段程序,被计数的可能性基本不存在,只是考虑到可能在实际应用程序中的程序结构性而已。

添加SFC47的目的就是为了延长定时器T1输出端的有效时间长度,也就是为了延长定时器被cpu刷新的几率。当修改SFC47(WT)时间,时间越小,这个计数器C3被计数的概率就越小,图示:将SFC(WT)修改到5mS



这个计数C3被计数的概率仍然存在,这个延时时间已经非常接近于一般的控制程序的扫描周期了,随着定时器循环次数的增加,计数器计数仍然会有概率性地计数,图示:



SIMATIC定时器异步刷新的工作机制,是指定时器定时时间到达后,触点的刷新并非由线圈来决定的,而是由cpu的扫描周期来确定的被灌之为“异步”特性。


WWCWWC 您好!能给一个提问者用的那两张截图的那片文档链接吗。如果你知道的话发一下,找了大半天没找到,谢谢!


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 楼主 13楼 2018-05-05 21:30:48
以下是引用XXGK_123在2018-05-05 14:00:55的发言 >12楼

WWCWWC 您好!能给一个提问者用的那两张截图的那片文档链接吗。如果你知道的话发一下,找了大半天没找到,谢谢!

以下是引用WWCWWC在2018-04-27 10:08:03的发言 >楼主:关于SIMATIC定...

引用楼主详细内容:

关于SIMATIC定时器异步刷新的例子

案例摘自西门子官方文档【SIMATIC PLC 计时器的使用】2009年-1月期

   今天在“找答案”栏目中看到这样一个案例,【语句执行的先后顺序问题】,问题链接:

http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=189465&cid=1029

直接上案例程序,图示:



从上图可以看到仿真时,C1能够正常计数,而C3无法正常计数。

我在回复是将计数器C3拆分上移到上一个程序段,这样可以正常计数了,图示:



晚上想起这个回复,总感觉还有什么不妥,于是,找出之前保存的西门子官方文档,再看官方的例子,图示:



这个M10.2是否能够被置1可能?

添加定时器“循环”计数次数C1想在那几个循环后能够捕捉M10.2的程序,图示:添加计数器的目的是看定时器“循环”的次数多少时,M10.2被置位。



计数器在定时器不断“循环”驱动下,在不断的进行加计数,但这个M10.2就是像被屏蔽了似的,很难有被置位的可能。

再继续按官方给出的例子,加入程序SFC47到程序段2,看M10.2能否有被置位的可能,图示:当定时器“循环”到第3个周期时,嘿嘿了,这当然是概率问题(官方的原话)。



在仿真器中重新复位M10.2,再看这个M10.2被置位的概率,这个置位有一定概率性,而并不是有一定规律性的,中间的论证和计算过程参见官方该文档说明。

我在没有做此验证前,一直认为要使计数器C3或M10.2有效,必须要将该程序段放置到定时器线圈的上面的程序段位置,目的是让定时器线圈在被cpu刷新前有效,这个理论是“不一定全面”的概念。重新看过官方的例子程序,才领悟到在定时器程序段下面时,也有可能被计数、置位有效。为验证这个理论,再次将网友的程序段上进行仿真,图示:



计数器C3仍然存在有计数的可能,还是那个“概率”问题。

我不全面的回复可能会误导了那位网友,也盼望那位网友能够看到此贴后,能够重新正确认识西门子定时器的刷新机制。

当然,上述例子如同官方文档说明那样,验证只是在一个被假象了的对象下进行的(插入系统块SFC47)后,延时1000mS下的验证。如果仅仅以网友的那几段程序,被计数的可能性基本不存在,只是考虑到可能在实际应用程序中的程序结构性而已。

添加SFC47的目的就是为了延长定时器T1输出端的有效时间长度,也就是为了延长定时器被cpu刷新的几率。当修改SFC47(WT)时间,时间越小,这个计数器C3被计数的概率就越小,图示:将SFC(WT)修改到5mS



这个计数C3被计数的概率仍然存在,这个延时时间已经非常接近于一般的控制程序的扫描周期了,随着定时器循环次数的增加,计数器计数仍然会有概率性地计数,图示:



SIMATIC定时器异步刷新的工作机制,是指定时器定时时间到达后,触点的刷新并非由线圈来决定的,而是由cpu的扫描周期来确定的被灌之为“异步”特性。


STEP7编程常见错误

https://support.industry.siemens.com/cs/document/90880166


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 9058
发帖数: 375
精华帖: 0
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 14楼 2018-05-05 21:39:29

这个实验做的好!


随心所欲
以下网友喜欢您的帖子:

  
至圣

经验值: 72011
发帖数: 8043
精华帖: 145
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 楼主 15楼 2018-05-05 21:46:34
以下是引用手机用户20180429612468在2018-05-05 21:39:29的发言 >14楼

这个实验做的好!

我做这个验证或许理解了会感觉有一些绝对,但是,实际编程时,或许真的会出现类似的情况,造成程序的“不稳定”,但凡这样的不稳定可能比较难查找到问题的所在。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 9058
发帖数: 375
精华帖: 0
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 16楼 2018-05-19 21:44:24


王工很强大啊


随心所欲
以下网友喜欢您的帖子:

  
侠圣

经验值: 3886
发帖数: 556
精华帖: 1
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 17楼 2018-05-30 07:47:45
以下是引用Letham在2018-04-27 13:16:46的发言 >1楼

职业生涯 竟然 还没用过计数器

很舒服的职业生涯


精益求精
以下网友喜欢您的帖子:

  
至圣

经验值: 18926
发帖数: 2108
精华帖: 0
回复:关于SIMATIC定时器异步刷新的例子


只看楼主 18楼 2018-07-24 09:36:23


大开眼界啊


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
关于SIMATIC定时器异步刷新的例子
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。