技术论坛

 关于200smart 定时中断的几个测试

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
楼主    2020-05-06 10:12:50
主题:关于200smart 定时中断的几个测试

关于200smart 定时中断的几个测试  

 200smartPLC仍然保留着原200的4个定时中断,即需要通过设置的定时中断_0(由SMB34设置,时间单位mS)、定时中断_1(由SMB35设置,时间单位mS)及定时中断T32和T96。这4个定时中断除了定时时间范围不同,前者定时范围1~255mS,后者定时范围1~32.767S,显然后者定时中断的时间远比前者大。

前几天,看到有一个网友对定时中断应用的若干提问,问题链接:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=234111&cid=1028

大致提问的含义是变更定时中断的周期,看中断链接子程序运行,及T32定时中断的调用。

   我按那位网友的含义理解,大致编辑了几个验证程序。

验证1,采用定时中断_0与T32比较,大家均设置定时时间为1mS,图示:

让PLC启动运行一会儿,看2个定时中断的累加数值差异会越来越大。主要原因还是T32定时虽然已经脱离了异步刷新的工作机制,但是,plc扫描机制的影响还是存在的。在测试这个程序前,我有意加入了一个for/next指令,目的也是想扩大程序对扫描周期的影响,上面的测试程序,并没有应用到for/next程序的测试结果已经非常明显了。为验证我这个理论,我看了plc的扫描周期,图示:

当PLC扫描周期等于3mS时,T32丢失累加次数变得非常可能。

验证2,我将定时中断周期同时调整到10mS,再来看结果,图示:

运行测试结果,这2个定时中断累加数差异比定时中断1mS时的差异要小了一些。

如果再将定时中断的时间加长,这个差异将会更加缩小一些。

网友的另一个问题,即任意修改T32的定时中断时间,是否需要重新开定时中断。图示:

测试结果是不需要重新再开启定时中断T32的,任意时间片均可以修改T32的PT管脚数值,T32定时中断会刷新运行新值。

对于中断子程序的认识,加深一下区别。仍然按前面的思路,只是将中断子程序累加与OB1上累加做一下比较,图示:

小结:

   定时中断_0与T32的时间差区别在于前者没有与周期直接关联,后者有。定义的中断连接,如累加计算必须在所连接的中断子程序上运算,在OB1后者其它非中断连接子程序上运算是会存在差异的,这个差异的主要原因还是扫描周期的刷新机制引起。选择的定时中断周期长,相对这个差异会变的小,但,不能够达到中断所需要的精度,希望这几个测试能够满足你对定时中断,尤其是中断子程序的认识程度。


holdkcsxyz
至圣

经验值: 13008
发帖数: 1814
精华帖: 22
1楼    2020-05-06 12:34:33
主题:回复:关于200smart 定时中断的几个测试

感谢王工分享. PCS7中很多功能块大都放在OB35,32等组织块里是有道理的. Smart的主循环时间SMW22很大达到198ms;仍然可以保证1ms定时中断里的内容顺利完成。



WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
2楼    2020-05-06 13:53:01
主题:回复:关于200smart 定时中断的几个测试

是的,不分享不会理解的有深度。

平时有时间还需要多做做类似的验证,加深理解过程。

看似非常相似的2个中断,里面的知识点还是有一些的。

RENHQ
至圣

经验值: 68887
发帖数: 12218
精华帖: 59
3楼    2020-05-06 14:25:27
主题:回复:关于200smart 定时中断的几个测试

感谢分享,涨见识了呢

最后一个测试,断开T32别用自己,加个中间位转一下呢,结果有不同不

Q群:https://jq.qq.com/?k=9BDuEgf6
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
4楼    2020-05-06 15:35:15
主题:回复:关于200smart 定时中断的几个测试

如果用中间变量转换,周期差异会更大。

我可以再做一个验证,验证中断_0(定时中断100mS/次)的中断次数500次为测试依据。

差异5个定时中断周期,图示:

测试了几次,次数有小幅差异。


RENHQ
至圣

经验值: 68887
发帖数: 12218
精华帖: 59
5楼    2020-05-06 16:05:33
主题:回复:关于200smart 定时中断的几个测试

呃,别用置位复位的方式

在下面直接T32输出线圈

你这样,T32定时时间到,下个周期M0.1置位,然后T32断开,再下个周期M0.1复位,T32才继续计时,这样多了一个周期

Q群:https://jq.qq.com/?k=9BDuEgf6
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
6楼    2020-05-06 16:09:06
主题:回复:关于200smart 定时中断的几个测试

你给一个程序,我这边测试,刚刚plc还放在我桌子上。

RENHQ
至圣

经验值: 68887
发帖数: 12218
精华帖: 59
7楼    2020-05-06 16:16:20
主题:回复:关于200smart 定时中断的几个测试

6 7 8 这样改:

下面是程序:


Network 1 

LDN    M0.1

TON    T32, 100

Network 2 

LD     T32

=      M0.1

Network 3 

// 程序段注释

LD     M0.1

+D     1, VD20


我想想,脑子逻辑分析有点差,感觉是这样的呢

我用300PLC仿真一下试试

Q群:https://jq.qq.com/?k=9BDuEgf6
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
9楼    2020-05-06 17:13:23
主题:回复:关于200smart 定时中断的几个测试

是的。结果仍然是一样的,图示:

连续测试了几次,均是在5~7个中断次数的差异。这个定时中断时间均是100mS的。



芳季
至圣

经验值: 66574
发帖数: 14746
精华帖: 100
10楼    2020-05-06 17:41:01
主题:回复:关于200smart 定时中断的几个测试

一个是到时到点就会中断,并且无缝开始计算下一次中断的时间。

一个是到达设定值就会中断,扫描到才开始计算下一次中断时间。

是不是?

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