当前位置:文档之家› 西门子PLC高速计数器使用方法

西门子PLC高速计数器使用方法

高速计数器对CPU扫描速率无法控制的高速事件进行计数,最多可配置12种不同的操作模式。

高速计数器的最高计数频率取决于您的CPU类型。

每台计数器对支持此类功能的时钟、方向控制、复原和起始均有专用输入。

对于二相计数器,两个时钟均可以最高速率运行。

在正交模式中,可选择1乘以(1x)或4乘以(4x)最高计数速率。

所有计数器均以最高速率运行,互不干扰。

本标题讨论下列主题:使用高速计数器识别高速计数器的详细计时功能为高速计数器连接输入线高速计数器编址(HC)识别不同的高速计数器选择现用状态和1x/4x模式高速计数器初始化顺序控制字节HSC模式设置当前值和预设值状态字节为中断赋值使用高速计数器返回顶端通常高速计数器被用作鼓式计数器驱动器,以恒速旋转的转轴配有增量轴式编码器。

轴式编码器提供每次旋转的指定计数以及每次旋转一个复原脉冲。

轴式编码器的时钟和复原脉冲为高速计数器提供输入。

用最先的几个预设值载入高速计数器,并在当前计数小于当前预设值的期间内激活所需输出。

当前计数等于预设值或复原时,计数器设置提供中断。

每次发生当前计数值等于预设值中断事件时,载入新预设值,并设置下一个输出状态。

发生复原中断事件时,设置第一个预设值和第一个输出状态,并重复该循环。

因为中断的发生速率远远低于高速计数器的计数速率,可对高速操作执行精确的控制,并对整体PLC扫描循环产生相对较小的影响。

中断附加方法允许在独立中断例行程序中执行每个载入的新预设值,以便进行状态控制。

(另一种方法是在单个中断例行程序中处理所有的中断事件。

)识别高速计数器的详细计时功能返回顶端下列时序图显示根据模式分类的每台计数器的功能。

在另一个时序图中显示复原和起始输入操作,并应用于所有使用复原和起始输入的模式。

在复原和起始输入图中,复原和起始的现用状态均被编程为高级。

有复原、无起始的操作举例有复原和起始的操作举例模式0、1和2操作举例模式3、4和5操作举例使用计数模式6、7和8时,上下时钟输入的上升沿间隔0.3微秒,高速计数器可能认为这些事件同时发生。

如果发生这种情况,当前值不改变,而且计数方向不改变。

只要上下时钟输入的上升沿之间的间隔大于该时段,高速计数器就能够单独捕获每个事件。

在两种情况下,均不生成错误,而且计数器保持当前计数值。

模式6、7和8操作举例模式9、10和11操作举例(正交1x 模式)模式9、10和11操作举例(正交4x 模式)为高速计数器连接输入线返回顶端使用"高速计数器定义"指令定义计数器模式和输入。

下表显示与高速计数器相关的用于时钟、方向控制、复原和起始功能的输入。

高速计数器专用输入高速计数器使用的输入HSC0 I0.0, I0.1, 0.2HSC1 I0.6, I0.7, I1.0, I1.1HSC2 I1.2, I1.3, I1.4, I1.5HSC3 I0.1HSC4 I0.3, I0.4, I0.5HSC5 I0.4有些高速计数器和边缘中断的输入点赋值存在某些重叠。

同一个输入不能用于两种不同的功能;但是高速计数器当前模式未使用的任何输入均可用于其他目的。

例如,如果在模式2中使用HSC0,模式2使用I0.0和I0.2,则I0.1可用于边缘中断或用于HSC3。

如果所用的HSC0模式不使用输入I0.1,则该输入可用于HSC3或边缘中断。

与此相似,如果所选的HSC0模式不使用I0.2,则该输入可用于边缘中断;如果所选HSC4模式不使用I0.4,则该输入可用于HSC5。

请注意HSC0的所有模式均使用I0.0,HSC4的所有模式均使用I0.3,因此当使用这些计数器时,这些输入点绝不会用于其他用途。

HSC模式返回顶端为高速计数器编址(HC)返回顶端欲存取高速计数器的计数值,您需要利用内存类型(HC)和计数器号码(例如HC0)指定高速计数器的地址。

如下所示,高速计数器的当前值是只读数值,只能作为双字(32位)编址。

格式:HC[高速计数器号码],以HC2为例。

存取高速计数器的当前值识别不同的高速计数器返回顶端对于相同的计数器操作模式,所有计数器的功能均相同。

如上所示,共有四种基本计数器模式类型。

请注意并非每一种计数器均支持每种模式。

您可以使用每种类型:无复原或起始输入、有复原但无起始或有起始和复原输入。

激活复原输入时,会清除当前值并保持清除状态直至取消激活复原。

激活起始输入时,会允许计数器计数。

起始被取消激活时,计数器的当前值保持恒定,并忽略时钟事件。

如果在起始未激活时激活复原,则会忽略复原,当前值不变。

如果激活复原输入时激活起始输入,则当前值被清除使用高速计数器之前必须选择计数器模式,您可以利用HDEF指令(高速计数器定义)选择计数器模式。

利用首次扫描内存位SM0.1(首次扫描时该位打开,随后关闭),调用包含HDEF指令的子程序。

选择激活状态和1x/4x模式返回顶端上图显示的复原和起始输入操作适用于使用复原和起始输入的所有模式。

在复原和起始输入图形中,复原和起始均显示为现用状态编程为高位。

四台计数器有三个控制位,用于配置复原和起始输入的激活状态并选择1x或4x计数模式(仅限正交计数器)。

这些控制位位于各自计数器的控制字节内,只在执行HDEF指令时才使用。

执行HDEF指令之前,必须将这些控制位设为所需的状态,否则计数器采用所选计数器模式的默认配置。

复原输入和起始输入的默认设置为现用水平高,正交计数速率为4x(或4乘以输入时钟频率)。

一旦执行了HDEF指令,就不能再改变计数器设置,除非首先将CPU 设为STOP(停止)模式。

HDEF控制位(仅在执行HDEF时使用)HSC0 HSC1 HSC2 HSC4 说明SM37.0 SM47.0 SM57.0 SM147.0 "复原"现用水平控制位**:0 = 复原现用水平高1 = 复原现用水平低SM47.1 SM57.1 "起始"现用水平控制位**:0 = 起始现用水平高1 = 起始现用水平低SM37.2 SM47.2 SM57.2 SM147.2 "正交"计数器的计数速率选项:0 = 4x计数速率1 = 1x 计数速率**复原输入和起始输入的默认值为现用水平高,正交计数率为4x(或4乘以输入时钟频率)。

控制字节返回顶端一旦定义了计数器和计数器模式,您就可以为计数器动态参数编程。

每台高速计数器均有一个控制字节,允许完成以下作业:启用或禁止计数器控制方向(仅限模式0、1和2)或初始化所有其他模式的计数方向载入当前值通过执行HSC指令可激活控制字节以及相关当前值和预设值检查。

下表说明每个控制位。

用于HSC参数的SM控制位HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 说明SM37.3 SM47.3 SM57.3 SM137.3 SM147.3 SM157.3 计数方向控制位:0 = 向下计数1 = 向上计数SM37.4 SM47.4 SM57.4 SM137.4 SM147.4 SM157.4 向HSC写入计数方向:0 = 无更新1 = 更新方向SM37.5 SM47.5 SM57.5 SM137.5 SM147.5 SM157.5 向HSC写入新预设值:0 = 无更新1= 更新预设值SM37.6 SM47.6 SM57.6 SM137.6 SM147.6 SM157.6 向HSC写入新当前值:0 = 无更新1 = 更新当前值SM37.7 SM47.7 SM57.7 SM137.7 SM147.7 SM157.7 启用HSC:0 = 禁用HSC1 = 启用HSC设置当前值和预设值返回顶端每台高速计数器都有一个32位当前值和一个32位预设值,当前值和预设值均为带符号的整数值。

欲向高速计数器载入新的当前值和预设值,您必须设置包含当前值和/或预设值的控制字节及特殊内存字节。

然后您必须执行HSC指令,将新数值传输至高速计数器。

下表说明用于包含新当前值和预设值的特殊内存字节。

除控制字节以及新预设值和当前值保持字节外,还可以使用数据类型HC(高速计数器当前值)加计数器号码(0、1、2、3、4或5)读取每台高速计数器的当前值。

因此,读取操作可直接存取当前值,但只有用上述HSC指令才能执行写入操作。

载入数值HSC0 HSC1 HSC2 HSC3 HSC4 HSC5新当前值SMD38 SMD48 SMD58 SMD138 SMD148 SMD158新预设值SMD42 SMD52 SMD62 SMD142 SMD152 SMD162状态字节返回顶端为每台提供状态内存位的高速计数器提供状态字节,状态内存位表示当前计数方向以及当前值是否大于或等于预设值。

下表定义每台高速计数器的状态位。

HSC0、HSC1、HSC2、HSC3、HSC4和HSC5的状态位HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 说明SM36.0 SM46.0 SM56.0 SM136.0 SM146.0 SM156.0 未使用SM36.1 SM46.1 SM56.1 SM136.1 SM146.1 SM156.1 未使用SM36.2 SM46.2 SM56.2 SM136.2 SM146.2 SM156.2 未使用SM36.3 SM46.3 SM56.3 SM136.3 SM146.3 SM156.3 未使用SM36.4 SM46.4 SM56.4 SM136.4 SM146.4 SM156.4 未使用SM36.5 SM46.5 SM56.5 SM136.5 SM146.5 SM156.5 当前计数方向状态位:0 = 向下计数;1 = 向上计数SM36.6 SM46.6 SM56.6 SM136.6 SM146.6 SM156.6 当前值等于预设值状态位:0 = 不相等;1 = 等于SM36.7 SM46.7 SM56.7 SM136.7 SM146.7 SM156.7 当前值大于预设值状态位:0 = 小于或等于;1 = 大于注释:只有在执行高速计数器中断例行程序时,状态位才有效。

监控高速计数器状态的目的在于启用对正在执行的操作有重大影响的事件的中断程序。

为中断赋值返回顶端所有计数器模式均支持当前值等于预设值中断,使用外部复原输入的计数器模式支持将外部复原现用中断。

除模式0、1和2以外的所有计数器模式均支持计数方向改变中断。

可单独启用或禁止这些中断条件。

注释:如果您尝试载入新的当前值或从外部复原中断例行程序内先禁用然后再重新启用高速计数器,会引起严重错误。

高速计数器初始化顺序返回顶端HSC1在以下初始化和操作顺序说明中被用作模型计数器。

初始化说明假设S7-200刚刚被放置在RUN(运行)模式中,因此首次扫描内存位为真。

相关主题