<p>
西门子S120驱动器6SL3120-1TE15-0AD0维修
</p>
第6章
计数器指令
SIMATIC计数器指令
增计数器
增计数指令(CTU)从当前计数值开始,在每一个(CU)输人状态
从低到高时递增计数。当CXX的当前值大于等于预设值PV
时,计数器位CXX置位。当复位端(R)接通或者执行复位指令
后,计数器被复位。当它达到大值(32, 767)后,计数器停
止计数。
STL操作:
—复位输人:栈顶
■向上计数输人:数值载人第二个栈位置
减计数器
减计数指令(CTD)从当前计数值开始,在每一个(CD)输人状态
的低到高时递减计数。当CXX的当前值等于0时,计数器位
CXX置位。当装载输人端(LD)接通时,计数器位被复位,并将
计数器的当前值设为预设值PV当计数值到0时,计数器停止
计数,计数器位CXX接通。
STL操作:
■装载输人:栈顶
■向下计数输人:数值载人第二个栈位置.
113
S7-200可编程序控制器系统手册
增/减计数器
增/减计数指令(CTUD),在每一个增计数输人(CU)的低到高时增计数,在每一个减计数输人(CD)的
低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预设值PV与当前
值作比较。
当达到大值(32767)时,在增计数输人处的下一个上升沿导致当前计数值变为小值(-32768)。当
达到小值(-32768)时,在减计数输人端的下一个上升沿导致当前计数值变为大值(32767)。
当CXX的当前值大于等于预设值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接
通或者执行复位指令后,计数器被复位。
STL操作:
—复位输人:栈顶
■向下计数输人:数值载人第二个栈位置
■向上计数输人:数值载人第三个栈位置
表6-22 SIMATIC计数器指令的有效操作数
输入/输出 数据类型 操作数
Cxx WORD 常数(C0到C255)
CU、CD、LD、R BOOL I、Q、V、M、SM、S、T、C、L、功率流
PV INT IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、*VD、 *ld、*AC、常数
提示
由于每一个计数器只有一个当前值,所以不要多次定义同一个计数器。(具有相同标号的增计数器、
增/减计数器、减计数器访问相同的当前值。)
当使用复位指令复位计数器时,计数器位复位并且计数器当前值被清零。计数器标号既可以用来表
示当前值,又可以用来表示计数器位。
表6-23 计数器指令的操作
类型 操作 计数器位 上电周期/扫描
CTU CU増加当前值。 当前值持续増加直至32767。 当前值 >=预设值时, 计数器位接通。 计数器位关断。 当前值可以保留。1
CTUD CU増加当前值。 CD使当前值减少 当前值持续増加或减少除非计数 器被复位 当前值 >=预设值时, 计数器位接通。 计数器位关断。 当前值可以保留。1
CTD CD使当前值减少直至当前值 为0。 当前值 >=预设值时, 当前值=0 计数器位关断。 当前值可以保留。1
1您可以选择计数器的当前值是否掉电保护.有关S7-200 CPU有记忆存储器的详细内容参阅第4章。
114
S7-200指令集
第6章
115
S7-200可编程序控制器系统手册
■EC计数器指令
增计数器
增计数指令(CTU)在每一个(CU)输人的上升沿从当前值开始增
计数,直至预设值(PV)。当当前值(CV)大于等于预设值时,计
数器输出位(Q)接通。当复位输人(R)使能时,计数器复位。当
计数到达预设值时,增计数器停止。
减计数器
减计数器指令(CTD)从预设值开始,在每一个(CD)输人的上升
沿减计数。当当前值(CV)等于0时,计数器输出位(Q)接通。当
装载输人(LD)使能时,计数器复位并且将计数器的当前值设为
预设值PV当计数值到0时,减计数器停止。
增/减计数器
增/减计数器指令(CTUD),在每一个增计数输人(CU)从低到高
时增计数;在每一个减计数输人(CD)从低到高时减计数。当当
前值等于预设值时,增计数输出(QU)接通。当当前值等于0
时,减计数输出(QD)接通。当装载输人(LD)使能时,计数器将
当前值设为预设值(PV)。类似的,当复位端(R)使能时,计数
器复位并且当前值清0。当计数值达到预设值或者0时,计数器
停止。
表6-24 IEC计数器指令的有效操作数
输入/输出 数据类型 操作数
Cxx CTU、CTD、 CTUD 常数(C0到C255)
CU、CD、LD、R BOOL I、Q、V、M、SM、S、T、C、L、功率流
PV INT IW、QW、VW、MW、SMW、SW、LW、AC、AIW、*VD、 *ld、*AC,常数
Q、QU、QD BOOL I、Q、V、M、SM、S、L
CV INT IW、QW、VW、MW、SW、LW、AC、*VD、*LD、*AC
提示
由于每一个计数器只有一个当前值,所以不要多次定义同一个计数器。(具有相同标号的增计数器、
增/减计数器和减计数器访问相同的当前值。)
116
S7-200指令集
第6章
117
S7-200可编程序控制器系统手册
高速计数器指令
定义高速计数器
定义高速计数器指令(HDEF)为的高速计数器(HSCx)选择
操作模式。模块的选择决定了高速计数器的时钟、方向、启动
和复位功能。
对于每一个高速计数器使用一条定义高速计数器指令。
使ENO=0的错误条件:
■ 0003 (输人点冲突)
■ 0004 (中断中的非法指令)
■ 000A (HSC重复定义)
高速计数器
高速计数器指令(HSC)在HSC特殊存储器位状态的基础上,配
置和控制高速计数器。参数N高速计数器的标号。
SIMflTIC / IEC11311
LflD FBD
HDEF HDEF
EN ENO - EN ENO
- HSC
HSC - MODE
MODE
HSC HSC
EN ENO - EN ENO
- N
N
SIMflTK |
STL HDEF HSC, MODE HSC N
髙速计数器可以被配置为12种模式中的任意一种。参见表6-26。
每个计数器有用于时钟、方向控制、重设和启动的输人,它们支持这些功能。对于两相计数
器,两个时钟都可以运行在髙频率。在正交模式下,您可以选择一倍速(1x)或者四倍速(4x)计数速
率。所有计数器都可以运行在髙频率下而互不影响。
使ENO=0的错误条件:
■ 0001 (在HDEF指令之前执行HSC指令)
■ 0005 (同时执行HSC/PLS)
表6-25 高速计数器指令的有效操作数
输入/输出 数据类型 操作数
HSC、MODE BYTE 常数
N WORD 常数
编程提示 髙速计数器用于对S7-200扫描速率无法控制的髙速事件进行计数。髙速计数器的髙计数频率取决
于您的CPU类型。更多消息请参见附录A。
提示
CPU221和CPU222支持四个髙速计数器:HSCO、HSC3、HSC4和HSC5。不支持HSC1和
HSC2。
CPU 224、CPU 224XP和CPU 226支持六个髙速计数器:HSC0到HSC5。
118
S7-200指令集
第6章
一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的
速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉
冲作为高速计数器的输人。
高速计数器装人一组预设值中的个值,当前计数值小于当前预设值时,希望的输出有效。计数器
设置成在当前值等于预设值和有复位时产生中断。
随着每次当前计数值等于预设值的中断事件的出现,一个新的预设值被装人,并重新设置下一个输出
状态。当出现复位中断事件时,设置个预设值和个输出状态,这个循环又重新开始。
由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现控制,而与PLC整
个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用立的中断程序装人一个新的预
设值。(同样的,也可以在一个中断程序中,处理所有的中断事件。)
理解不同的高速计数器
对于操作模式相同的计数器,其计数功能是相同的。计数器有四种基本类型:带内部方向控制的单相
计数器,带外部方向控制的单相计数器,带2个时钟输人的双相计数器和带A/B相正交计数器的双相计
数器。注意,并不是所有计数器都能使用每一种模式。可使用每种类型:不带复位或启动输人、带复
位和不带启动、或带启动和复位输人。
□当激活复位输人端时,计数器清除当前值并一直保持到复位端失效。
□当激活启动输人端时,它允许计数器计数。当启动端失效时,计数器的当前值保持为常数,并
且忽略时钟事件。
□如果在启动输人端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变。如果在
复位信号被激活的同时,启动输人端被激活,当前值被清除。
在使用高速计数器之前,应该用HDEF (高速计数器定义)指令为计数器选择一种计数模式。使用初
次扫描存储器位SM0.1 (该位仅在次扫描周期接通,之后断开)来调用一个包含HDEF指令的子
程序。
高速计数器编程
您可以使用指令向导来配置计数器。向导使用下列信息:计数器类型和模式、计数器预设值、计数器
当前值和初始计数方向。要启动HSC指令向导,可以在命令菜单窗口中选择工具 > 指令向导,然后
在向导窗口中选择HSC指令。
对高速计数器编程,您完成下列基本操作:
□ 定义计数器和模式
□设置控制字节
□ 设置初始值
□ 设置预设值
□并使能中断程序
□ 激活高速计数器
指令向导
119
S7-200可编程序控制器系统手册
定义计数器的模式和输入
使用高速计数器定义指令来定义计数器的模式和输人。
表6-26中给出了与高速计数器相关的时钟、方向控制、复位和启动输人点。同一个输人点不能用于两
个不同的功能,但是任何一个没有被高速计数器的当前模式使用的输人点,都可以被用作其他用途。
例如,如果HSCO正被用于模式1,它占用I0.0和I0.2,则丨0.1可以被边缘中断或者HSC3占用。
提示
注意:HSC0的所有模式(模式12除外)总是使用I0.0, HSC4的所有模式总是使用I0.3,因此在使用
这些计数器时,相应的输人点不能用于其他功能。
表6-26 高速计数器的输人点
模式 描述 输入
HSC0 I0.0 I0.1 I0.2
HSC1 I0.6 I0.7 I1.0 I1.1
HSC2 I1.2 I1.3 I1.4 I1.5
HSC3 I0.1
HSC4 I0.3 I0.4 I0.5
HSC5 I0.4
0 带有内部方向控制的单相计数器 时钟
1 时钟 复位
2 时钟 复位 启动
3 带有外部方向控制的单相计数器 时钟 方向
4 时钟 方向 复位
5 时钟 方向 复位 启动
6 带有増减计数时钟的两相计数器 増时钟 减时钟
7 増时钟 减时钟 复位
8 増时钟 减时钟 复位 启动
9 A/B相正交计数器 时钟A 时钟B
10 时钟A 时钟B 复位
11 时钟A 时钟B 复位 启动
12 只有HSC0和HSC3支持模式12。 HSC0计数Q0.0输出的脉冲数。 HSC3计数Q0.1输出的脉冲数。
120
S7-200指令集
第6章
HSC模式举例
图6-22到图6-26中给出了每种模式下计数器功能的时序图。
时钟
内部方向
控制
(1=増计
数)
计数器
当前值
当前值清0,预设值为4,计数方向设为増计数。
计数器使能位使能。
I PV=CV产生中断
I亦中断程序中改变方向
-1
4
3
3
2
2
1
0
0
图6-22 模式0、1或2操作实例
时钟
当前值清0,预设值为4,计数方向设为増计数。
计数器使能位使能。
PV=CV产生中断
PV=CV产生中断
方向改变产生中断
外部方向
控制
(1=増计数)
计数器
当前值
1 —
0
0
1
2
3
5
4
4
3
2
图6-23 模式3、 4或5操作实例
121
S7-200可编程序控制器系统手册
当您使用模式6 7或者8时,如果増时钟输人的上升沿与减时钟输人的上升沿之间的时间间隔小于
0.3微秒,髙速计数器会把这些事件看作是同时发生的。如果这种情况发生,当前值不变,计数方向
指示不变。只要増时钟输人的上升沿与减时钟输人的上升沿之间的时间间隔大于0.3微秒,髙速计数
器分别捕捉每个事件。在以上两种情况下,都不会有错误产生,计数器保持正确的当前值。
增时钟
减时钟
计数器当
前值
当前值清0,预设值为4,计数方向设为増计数。
计数器使能位使能。
PV=CV产生中断
1 —
0
PV=CV产生中断
方向改变产生中断
1 —
0
4
3
2
1
_
' ■ I
4
1--- 1 I
3丨,
2
1
图6-24 模式6、7或8操作实例
当前值清0,预设值为3,计数方向设为増计数。
计数器使能位使能。
PV=CV产生中断 PV=CV产生中断方向改变产生中断
A相时钟1_
0
B相时钟1 一
0
________4
3
计数器当
前值
0
2
1
3
2
图6-25 模式9、10或者11操作实例(一倍速正交模式)
122
S7-200指令集
第6章
A相时钟
1 —
0
B相时钟
1 —
0
计数器当前值
0
图6-26 模式9、10或者11操作实例(四倍速正交模式)
复位和启动操作
如图6-27中所示的复位和启动操作适用于使用复位和启动输人的所有模式。在复位和启动输人图中,
复位输人和启动输人都被编程为髙电平有效。
图6-27 带有或者不带启动输人的复位操作举例
123
S7-200可编程序控制器系统手册
对于高速计数器,有三个控制位用于配置复位和启动信号的有效状态以及选择一倍速或者四倍速计数
模式(仅用于正交计数器)。这些位位于各个计数器的控制字节中并且只有在HDEF指令执行时使用。
在表6-27中给出了这些位的定义。
提示
在执行HDEF指令前,把这些控制位设定到希望的状态。否则,计数器对计数模式的选择取缺
省设置。
一旦HDEF指令被执行,您就不能再更改计数器的设置,除非人STOP模式。
表6-27 复位和启动输人的有效电平以及1x/4x控制位
HSC0 HSC1 HSC2 HSC4 描述(仅当HDEF执行时使用)
SM37.0 SM47.0 SM57.0 SM147.0 用于复位的有效电平控制位1: 0=复位为高电平有效 1=复位为低电平有效
--- SM47.1 SM57.1 --- 用于启动的有效电平控制位1 0=启动为高电平有效 1=启动为低电平有效
SM37.2 SM47.2 SM57.2 SM147.2 正交计数器的计数速率选择: 0 = 4X计数速率 1 = 1X计数速率
1缺省设置为:复位输人和启动输人高电平有效,正交计数率为四倍速(四倍输人时钟频率)。
实例:高速计数器定义指令
M
A
I
N
Network 1
//在次扫描时:
//1.将启动和复位输人选
// 择为高电平有效,
// 然后选择4X模式。
//2.使用复位和启动输人
// 为HSC1配置
// 正交模式
HDEF EN EN0
1- HSC
11- MODE
LD
MOVB
HDEF
SM0.1
16#F8, SMB47
1, 11
设置控制字节
只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程。每个髙速计数器都有一个控制
字节,包括以下内容:
□使能或者禁止计数器
□控制计数方向(只对模式0 1和2有效)或者对所有其他模式定义初始化计数方向。
□装载初始值
□装载预设值
在执行HSC指令时,要检验控制字节和相关的初始值和预设值。表6-28中对这些控制位逐一做了
说明。
124
S7-200指令集
<p>
</p>