全新的西门子S7-1500PLC 带来了标准型,紧凑型,分布式以及开放式不同类型的 CPU 模块。凭借快速的响应时间、集成的 CPU 显示面板以及相应的调试和诊断机制,SIMATIC S7-1500 的 CPU *地提升了生产效率,降低了生产成本。
产品简介
详细介绍
海南西门子S7-1500PLC模块(代理商)
西门子定时器的用法 西门子S7-200plc定时器指令
简介:
S7-200提供了256个定时器,依据分辨率分三种类型:1ms,10ms和100ms;依据功能分为延时型定时器和时间间隔定时器。
S7-200可以实现了时钟50/100小时的断电保持,并为客户提供长达200天的电池卡作为更长时间时钟保持的选择。支持MicroWin软件在线同步时钟,也可通过软件编程实现HMI上更改时钟;此外还支持与HMI之间的时钟同步功能。
1定时器
S7-200指令提供了下述三种类型的延时定时器和时间间隔定时器。
- 接通延时定时器(TON):用于单一间隔的定时
- 有记忆的接通延时定时器(TONR):用于累计许多时间间隔
- 断开延时定时器(TOF): 用于关断或者故障事件后的延时
- 开始时间间隔(BGN_ITIME):用于读取内置1毫秒计数器的当前值
- 计算间隔时间(CAL_ITIME):用于计算间隔时间
图1.定时器指令
1.1延时定时器号和分辨率
定时器对时间间隔计数。定时器的分辨率(时基)决定了每个时间间隔的长短。
定时器号决定了定时器的分辨率(时基)。
SIMATIC定时器有三种分辨率:1ms、10ms和100ms。
S7-200提供了256个可供使用的定时器,即用户可用的定时器号为T0-T255,一旦用户选择了定时器号,就意味着定时器的分辨率(时基)已经确定了。定时器号的分辨率(时基)及大计时时间,如下表:
表1. 定时器号和分辨率
定时器类型 | 分辨率 | 大定时值 | 定时器值 |
---|---|---|---|
TONR (可保持) | 1 ms | 32.767s (0.546min.) | T0, T64 |
10 ms | 327.67s (5.46min.) | T1-T4, T65-T68 | |
100 ms | 3276.7s (54.6min.) | T5-T31, T69-T95 | |
TON,TOF (不保持) | 1 ms | 32.767s (0.546min.) | T32, T96 |
10 ms | 327.67s (5.46min.) | T33-T36, T97-T100 | |
100 ms | 3276.7s (54.6min.) | T37-T63, T101-T255 |
编程实现带有定时器功能的程序,在编译时已经通过,为何下载到CPU中时提示出错?
这种情况往往是调用的定时器号与定时器类型不配合造成的。参见上面的表格,如T7只能用作TONR,而不能用于TON或TOF。
不同分辨率的定时器按以下规律刷新:
- 1ms:1ms分辨率的定时器,定时器位和当前值的更新不与扫描周期同步。对于大于1ms的程序扫描周期,在一个扫描周期内,定时器位和当前值刷新多次。
- 10ms:10ms分辨率的定时器,定时器位和当前值在每个程序扫描周期的开始刷新。定时器位和当前值在整个扫描周期过程中为常数。在每个扫描周期的开始会将一个扫描累计的时间间隔加到定时器的当前值上。
- 100ms:100ms分辨率的定时器,定时器位和当前值在指令执行时刷新。因此为了保证正确的定时值,要确保在一个程序扫描周期中,只执行一次100ms定时器指令。
注意:不能将同一个定时器号同时用作TOF和TON。例如,不能既有TON T32又有TOF T32。也不能重复使用同一定时器号定时。
使用定时器加自复位做一个不断重复的计时,调用其他功能或子程序时,为何看起来工作不规律?
请注意《S7-200系统手册》中,或者前文关于三种定时器刷新规律的描述。
按这种方法使用定时器时,定时器的置位、复位可能与程序扫描周期不配合,存在造成上述问题的机制。
定时比较短的定时任务应使用“定时中断”功能,这样更为可靠。
1.2延时定时器的功能
接通延时定时器(TON): 当使能输入接通时,定时器开始计时,在当前值(TXXX)与预置值(PT)相等时,定时器位接通。使能输入断开后,定时器当前值清零。在定时器到达预置值后,它会继续计时直到计到大值32767才停止。
有记忆接通延时定时器(TONR): 当使能输入接通时,定时器开始计时;在当前值(TXXX)大于等于预置值时,定时器位接通。当使能输入断开时,定时器当前值保留。若要将定时器当前值清零,必须执行复位命令。在定时器到达预置值后,它会继续计时直到计到大值32767才停止。
断开延时定时器(TOF): 在输入端接通时,定时器位立即接通,当前值置为零;当输入端由接通转为断开时,定时器开始计时,直到预置时间。当定时器到达预置时间时,则定时器位断开,定时器当前值停止计时。当输入断开的时间小于预设值时,定时器位保持接通。下一次输入断开后,定时器从零开始重新计时直到达到预置值。
只有有记忆接通延时定时器 (TONR)具有断电保持功能。如图2,断电保持性在系统块中设置,系统默认设置T0-T31,T64-T95已保持。
注意:定时器TONR的保持性仅对当前值有效,定时器位不具有保持性。
图2 定时器断电保持设置
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直走到大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但在逻辑上处于失控状态)。
如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
能否在子程序的局部变量中添加定时器类型?
S7-200的子程序不支持添加定时器或计数器的数据类型。
为什么子程序中的定时器和计数器不工作或者工作不正常?
如果有下面情况产生:
一个在内部使用了定时器或计数器的子程序,在同一时刻被调用了多次相同编号的定时器或计数器被多个子程序使用,且同一时刻这些子程序有两个或者以上被调用则定时器或者计数器资源会因重叠使用而相互影响,造成程序逻辑等方面的错误。
1.4时间间隔定时器“BGN_ITIME”和“CAL_ITIME”
从 STEP 7 Micro/WIN 版本 4 开始,功能块“BGN_ITIME”和“CAL_ITIME” 可用于版本 2 开始的 S7-200 CPUs 。注意:由于输出是双字格式,大定时时间是49.7天。
接通延时定时器
输入点 I0.0 接通(上升沿) 3 秒后(3000 ms), 输出点 Q0.0 置位。
图3 接通延时定时器
带记忆的接通延时定时器
如果输入点 I0.1 的接通时间等于或大于 3 秒 (3000 ms),输出点 Q0.1 置位。输入点 I0.2 用于复位。
图4 带记忆的接通延时定时器
断开延时定时器
输入点 I0.3 断开(下降沿) 3 秒 (3000 ms) 后,输出点 Q0.3 复位。
图5 断开延时定时器
脉冲发生
通过激活(下降沿)输入点 I0.4,输出点 Q0.4 获取一个持续 3 秒(3000 ms)的脉冲。
图6 脉冲发生
下载:
可下载的附件 "TON_TONR_TOF_TP.zip" 是包含上面所示程序的例子项目。
TON_TONR_TOF_TP.zip ( 2 KB )
注意:
- 关于定时功能的更多的信息可参考STEP 7 Micro/WIN 帮助。
为什么定时器选项中的BGN_ITIME和CAL_ITIME有红叉?
需要PLC版本02.00及以上支持使用。
图7 PLC版本支持
1.5长时间计时
由于定时器均有大定时值的限制,Microwin中提供的标准定时器的大定时值只能达到3276.7s(54min)。因此如果需要较长时间的定时要求,就需要编程的方式实现。如下有几种方式:
1. 定时器+累加器组合
采用定时器与累加器组合方式,实现长时间计时。如图为T37(时基100ms)每1s计数一次;计数瓶颈在于双字的存储范围(Max:2147483647)。
图8 定时器与累加器组合
同样的,也可采用1ms或10ms时基定时器,如需更长时间计时,可采用计数器叠加计数方式。
注意:建议根据项目要求确定,INC_DW填写的存储区是否设置断电保持。
2. 系统时钟 SM0.4,SM0.5
如图所示,使用系统时钟SM0.4和SM0.5,可分别计时长达4085和68年。
适用于对时钟精度不敏感,但需要长时间计时的应用场合。
图9 SM0.4/0.5计时
3. 时间间隔定时器(大49.7天)
采用Mircowin自带的时间间隔定时器,可多实现49.7天的定时。
这种方式也是精度高的(时基1ms),适用于要求时钟精度较高的场合。
图10 时间间隔定时器计时
4. 定时中断计数
通过调用定时器T32/96定时器(时基1ms)自触发,并在进入中断程序时计数,可实现长时间定时。
具体编程请参看1.5章节中定时器32及中断例程。
2.定时中断
定时中断为采用定时进入中断的模式,进行精确到ms的计时或数据采样等程序处理。
S7-200有四个定时中断定时器可以触发中断进程,包含两个特殊寄存器(SMB34/SMB35)和两个定时器(T32/T96)中断。中断定时计时精确,可以用来执行模拟量定时采样等任务。
定时中断使用要点:
1、定时中断程序的执行时间必须小于设定的间隔时间,如图1:
图1. 中断程序的执行时间必须小于间隔时间
2、若定时中断程序的执行时间大于设定的间隔时间,则将导致看门狗时间错误;如图2和图3:
图2. 中断程序的执行时间大于间隔时间
STEP7 Micro/win编程在线连接PLC,通过菜单栏“PLC”--->“信息”查看到如下图所示的错误:
图3. 看门狗时间错误提示
2.1 定时器T32/T96
定时器T32/T96 的定时时间范围可设置为1~32767ms,对应中断事件号21、22;
左侧管脚PT填写可设置的定时时间:1-32767(单位:ms);
右侧1ms指此定时器的分辨率为1ms;
如PT填写1000,即定时时间为1000*1ms=1000ms=1S;
定时器T32及其中断的使用例程:
实现:每1s定时进入中断一次,并作加1累加计数。
主程序例程:
图4. 定时器T32主程序例程-1
注意:必须调用中间变量(如M0.0)来进行自动重新触发定时器,而不能使用T32的常闭点作为其自动触发条件。
图5. 定时器T32主程序例程-2
调用的ATCH(中断连接指令),将中断程序INT0(管脚INT)与中断事件号21(EVNT) 联系起来;
调用ENI(中断允许指令),启用中断事件。