技术论坛

 回复:S7 1200, 1500 IE 定时器的工作机制

返回主题列表
作者 主题
sangshunyang
侠圣

经验值:4443
发帖数:618
精华帖:4
楼主    2018-01-04 20:28:00
主题:S7 1200, 1500 IE 定时器的工作机制 精华帖  精编帖 

西门子S7-1200  1500PLC提供IEC定时器,使用起来灵活方便。可是定时器是如何工作的,能不能真正的精确到1毫秒,定时器的Q位,ET值是如何刷新的。是扫描周期开始时刷新,还是执行到相应指令时刷新。ET值刷新是每个毫秒都刷新,还是程序扫描开始刷新,还是执行到指令时刷新。定时器的Q位是怎么刷新的,这些不彻底搞明白,编写程序时就会糊里糊涂,如在中断程序中要用定时器的ET值,这个值是什么时候的值。还有如果程序量大的话,扫描周期长,扫描开始时定时器的ET值和程序结尾处用到的ET是不是相同。

还有使用LTIME类型时,最小单位是纳秒,PLC实际能达到的精度是多少。

伊默
至圣

经验值:19231
发帖数:4256
精华帖:118
1楼    2018-01-04 20:57:08
精编帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

能不能真正“精确”到一毫秒?  如果你的PLC扫描周期大于1ms,那么它的精确度肯定是达不到1ms的... ...这个定时器是和扫描周期挂勾的。

I can do it
westcowboy
奇侠

经验值:6746
发帖数:833
精华帖:46
2楼    2018-01-05 08:57:16
精编帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

IEC定时器,说白了就是一个程序块FB实现的定时器功能,所以它的精度和PLC扫描方式是息息相关的。

如果真想精度高,即使用S5定时器,实际也不行,因为IO点的扫描和输出执行还和PLC执行,IO过程映像区刷新有关的。

如果楼主真有控制需求要实现精度非常高的定时任务,不妨看看S7-1500基于时间的IO模块,(Timebased IO),那个可以实现1微秒的准确定时输入或/和输出。

Let's build the automation future!
伊默
至圣

经验值:19231
发帖数:4256
精华帖:118
3楼    2018-01-05 09:29:36
精华帖  精编帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

燃鹅... ... Timebased IO极耗资源!做很短的延时是不行的!比如我一个项目用1515-2PN带Timebased IO, 想要实现10ms以内的定时,结果失败了..... 在我的项目上测试的结果需要定时时间超过60ms以上才能可靠执行(这和程序大小有关,如果1515只是带定时模块做定时任何那么肯定可以做得更小些), 所以如果真有要求用这个模块,一定要注意。

I can do it
westcowboy
奇侠

经验值:6746
发帖数:833
精华帖:46
4楼    2018-01-05 13:25:46
精华帖  精编帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

呵呵,伊默大侠说的对:Timebased IO做很短的延时不行,但这并不是说它的应用消耗资源很大,这是因为这个延时必须要大于3个PLC的扫描周期,这个要求在手册里有提到,举例:如果CPU扫描时间为8ms,则Timebased IO可以实现的定时至少是3×8=24ms,如果工艺要求这个时间很短,那就需要一个很强悍的CPU。

优势是:精度极高!

Let's build the automation future!
伊默
至圣

经验值:19231
发帖数:4256
精华帖:118
5楼    2018-01-05 14:32:58
精编帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

事实上,它确实是很耗资源。 因为那个库文件都是涉及LTime之类的运算。 尤其放到等时同步OB块内去周期性地执行,结果就导致PLC扫描周期会加长很多。 就我测试的项目来看,会导致扫描周期加倍更甚!而且抖动大多了。

I can do it
Zane
版主

经验值:85161
发帖数:21047
精华帖:399
6楼    2018-01-07 00:11:29
精编帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

S7-1500的背部总线较S7-300/400有很大的提升,这个模块为啥不能在主机架使用,而是一定要通过总线及HF的接口模块才能用?延时大于3个扫描周期就是受制于总线的通讯超时设置

Zane 注册自动化系统工程师 Always save before download
sangshunyang
侠圣

经验值:4443
发帖数:618
精华帖:4
10楼    2018-01-08 14:27:34
精华帖  主题:回复:S7 1200, 1500 IE 定时器的工作机制

测试结果分析:

    1,同一个扫描,定时器的ET是不相同的,其ET值的刷新不是在扫描到定时器指令时刷新的。这一点可能

好多人都认为是在执行到定时器指令才刷新的,认为定时器就是一个FB块,FB块只有执行FB块才会刷新其背景数据块,其实不是这会事儿。从查找的官方资料中得知定时器的刷新:

S7-1200的定时器的时间更新发生在定时器功能框的Q点或ET连接变量时,或者在程序中使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时。

   参考链接:

http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/function/TIMER/TIMER.html

  2,相同的一段程序其执行的时间也不相同,偏差还是蛮大的,就测试的一段程序来看,其循环结束时间

 减去循环可开始时间,是循环段程序执行的时间,不同的循环周期有几十毫秒的差异,当然这是人为增大扫描周期才出现的现象,大部分程序扫描周期是几个毫秒到几十个毫秒,对逻辑控制没什么影响,这只是说明同一指令执行耗时在不同的扫描周期也是不完全相同。

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