广西西门子S7-200SMARTPLC模块代理经销商
西门子S7-200 PLC的定时器指令
西门子S7-200系列PLC为用户提供了三种类型的定时器:通电延时定时器TON (onDelay Timer)、断电延时定时器TOF (Off Delay Timer)和保持型通电延时定时器TONR (Retentive On Delay Timer).
定时器的当前值、设定值均用16bit有符号整数来表示,计数值为32767。
1.定时器编号
定时器编号用定时器的名称和常数(0~255)编号,如表7.4所示。
表7.4 定时器分辨率和编号
2.分辨率与定时时间的计算
S7-200系列PLC定时器有三种分辨率:1ms、10ms和100ms。
定时器定时时间T的计算:
T=PT×S
式中:T为实际定时时间;PT为定时设定值;S为分辨率。
例7.2 TON指令使用T33(10ms定时器),设定值为100,则实际定时时间为
T=100×10=1000(ms)
定时器、计数器的设定值的数据类型均为整型(INT),除了常数外,还可以用VW、IW等作它们的设定值。
3.定时器指令使用说明
定时器指令的格式如表7.5所示。
表7.5 定时器指令格式
4.通电延时定时器
通电延时定时器用于通电后单一时间间隔的定时。上电或首次扫描时,定时器位为OFF,当前值为0。输入端(IN)接通时,定时器位为OFF,当前值从0开始计时,当前值达到PT (Preset Time,预置时间)端的设定值时,定时器位变为ON,梯形图中对应定时器的常开触点闭合,常闭触点断开,当前值仍连续计数到32767。输入端断开,定时器自动复位,当前值被清零,定时器位为OFF。
5.断电延时定时器
断电延时定时器用于断电后单一时间间隔的定时。上电或首次扫描时,定时器位为OFF,当前值为0。输入端(IN)接通时,定时器位变为ON,当前值为0。当输入端由接通到断开时,定时器开始定时,当前值达到PT端的设定值时,定时器位变为OFF,当前值等于设定值,停止计时。直到输入电路接通。梯形图中对应定时器的常开触点闭合,常闭触点断开,当前值仍连续计数到32767。输入端断开,定时器自动复位,当前值被清零,常开触点断开。
6.保持型通电延时定时器
保持型通电延时定时器用于多个时间间隔的累汁定时。上电或首次扫描时,定时器位为OFF,当前值保持在掉电前的值。输入端(IN)接通时,当前值从上次的保持值开始继续计时,当累计当前值达到设定值时。定时器位变为ON,当前值可继续计数到32767。TONR指令只能用复位指令R对其进行复位。
7.定时器的刷新方法
S7-200系列PLC的定时器中,1ms、10ms和100ms三种定时器的刷新方式是不同的。
(1) 1ms定时器
1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关,即采用中断刷新方式。因而,当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。
(2)10ms定时器
10ms定时器由系统在每个扫描周期开始时自动刷新。由于是每个扫描周期只刷新一次,故在每次程序处理期间,其当前值为常数。
(3) 100ms定时器
100ms定时器在该定时器指令执行时被刷新。如果该定时器线圈被激励,该定时器指令并不是每个扫描周期都执行,或在一个扫描周期中多次被执行,都会造成计时失准。100ms定时器仅用在定时器指令在每个扫描周期执行一次的程序中。
S7-200系列PLC中有一个9层堆栈,用于处理所有逻辑操作,称为逻辑堆栈。它与计算机中的堆栈结构相同,特点是“先进后出”。
1) ALD (And Load)指令:与块指令。ALD指令把逻辑堆栈、第二级的值作“与”操作,结果置于栈顶。ALD执行后堆栈减少一级。
2) OLD (Or Load)指令:或块指令。OLD指令把逻辑堆栈、第二级的值作“或”操作,结果置于栈顶。OLD执行后堆栈减少一级。
3) LPS指令(Logic Push):逻辑入栈指令(分支电路开始指令)。在梯形图的分支结构中,LPS指令用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,可直接编程。LPS指令的作用是把栈顶值复制后压入堆栈,栈底值压出丢失。
4) LRD (Logic Read)指令:逻辑读栈指令。在梯形图的分支结构中,当新母线左侧为主逻辑块时,LPS开始右侧的个从逻辑块编程,LRD开始第二个以后的从逻辑块编程。LRD指令的作用是把逻辑堆栈第二级的值复制到栈顶,堆栈没有压入和弹出。
5) LPP (Logic Pop)指令:逻辑出栈指令(分支电路结束指令)。在梯形图的分支结构中,LPP用于LPS产生的新母线右侧的一个从逻辑块编程,它在读取完离它Z近的LPS压入堆栈内容的同时复位该条新母线。LPP指令的作用是把堆栈弹出一级,原第二级的值变为新的栈顶值。
6) LDS (Load Stack)指令:装入堆栈指令。LDS指令的作用是复制堆栈中的第n个值到栈顶,而栈底丢失。其指令格式为:
LDS n
其中,n为0~8中的整数。
例7.1 LDS 3,该指令执行前后堆栈的变化情况如图7.10所示。
使用中需注意的是:
1)由于受9层堆栈空间的限制,LPS、LPP指令连续使用时应少于9次。
2)LPS、LPP指令必须成对使用,它们之间可以使用LRD指令。
3) LPS、LRD和LPP指令无操作数。
广西西门子S7-200SMARTPLC模块代理经销商