西门子1200的HSC的应用实例!

高速计数器寻址

CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32 位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,读取到的值并不是当前时刻的实际值,在一个扫描周期内,此数值不会发生变化,但计数器中的实际值有可能会在一个周期内变化,用户无法读到此变化。用户可通过读取外设地址的方式,读取到当前时刻的实际值。以 ID1000 为例,其外设地址为 “ID1000:P”。表1. 所示为高速计数器寻址列表。

表1.高速计数器寻址

高速计数器号

数据类型

默认地址

HSC1

DINT

ID1000

HSC2

DINT

ID1004

HSC3

DINT

ID1008

HSC4

DINT

ID1012

HSC5

DINT

ID1016

HSC6

DINT

ID1020


中断功能

S7-1200 在高速计数器中提供了中断功能,用以处理某些特定条件下触发的程序

共有 3 种中断事件:

1.当前值等于预置值

2.使用外部信号复位

3.带有外部方向控制时,计数方向发生改变

频率测量

S7-1200 除了提供计数功能外,还提供了频率测量功能,有 3 种不同的频率测量周期:1.0 秒,0.1 秒和0.01 秒。

频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以 Hz (每秒脉冲数)为单位。

高速计数器指令块

高速计数器指令块,需要使用指定背景数据块用于存储参数,如图1所示。


西门子1200的HSC的应用实例!


图1.高速计数器指令块

表2.高速计数器参数说明

HSC (HW_HSC)

高速计数器硬件识别号

DIR (BOOL) TRUE

: 使能新方向

CV (BOOL) TRUE

: 使能新起始值

RV (BOOL) TRUE

: 使能新参考值

PERIODE (BOOL) TRUE

: 使能新频率测量周期

NEW_DIR (INT)

: 方向选择1:=正向;-1 :=反向

NEW_CV (DINT)

: 新起始值

NEW_RV (DINT)

: 新参考值

NEW_PERIODE (INT)

: 新频率测量周期


表3.STATUS 错误代码

错误代码(十六进制)

描述

0

无错误

80A1

高速计数器的硬件标识符无效

80B1

计数方向 (NEW_DIR) 无效

80B2

计数值 (NEW_CV) 无效

80B3

参考值 (NEW_RV) 无效

80B4

频率测量周期 (NEW_PERIOD) 无效

80C0

多次访问高速计数器


应用举例

假设在旋转机械上有单相增量编码器作为反馈,接入到S7-1200 CPU,要求在计数25个脉冲时,计数器复位,置位 M0.5,并设定新预置值为50个脉冲,当计满50个脉冲后复位M0.5,并将预置值再设为25,周而复始执行此功能。

针对此应用,选择CPU 1214C,高速计数器为:HSC1。模式为:单相计数,内部方向控制,无外部复位。据此,脉冲输入应接入I0.0,使用HSC1的预置值中断(CV=RV)功能实现此应用。

组态步骤:

先在设备与组态中,选择CPU,单击属性,激活高速计数器,并设置相关参数。此步骤必须事先执行,1200的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤。添加硬件中断块,关联相对应的高速计数器所产生的预置值中断,在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数。将程序下载,执行功能。

硬件组态

选中CPU如图1.所示。


西门子1200的HSC的应用实例!


图1.选中CPU

图2.所示为选择属性打开组态界面


西门子1200的HSC的应用实例!


图2.选择属性打开组态界面

激活高速计数功能如图3


西门子1200的HSC的应用实例!


图3.激活高速计数功能


计数类型,计数方向组态如图4所示


西门子1200的HSC的应用实例!


图4.计数类型,计数方向

1 此处计数类型分为3种,Axis of motion(运动轴),Frequency(频率测量),Counting(计数)。这里选择Counting

2 模式分为4种:Single phase(单相), Two phase(双相), AB Quadrature 1X(A/B相正交1倍速), ABQuadrature 4X(A/B相正交4倍速)。这里择Single phase

3 输入源,这里使用的为CPU集成输入点。

4 计数方向选择,这里选用User program (internal direction control)(内部方向控制)

5初始计数方向。这里选择Count up(向上计数)

初始值及复位组态如图5.


西门子1200的HSC的应用实例!


图5.初始值及复位组态


预置值中断组态如图6


西门子1200的HSC的应用实例!


图6. 预置值中断组态

西门子1200的HSC的应用实例!


图7.添加硬件中断


组态添加的硬件中断,如图8


西门子1200的HSC的应用实例!


图8.组态添加的硬件中断

西门子1200的HSC的应用实例!


图9.地址分配与硬件识别号


至此硬件组态部分已经完成,下面进行程序编写

程序编写

将高速计数指令块添加到硬件中断中


西门子1200的HSC的应用实例!


图10. 打开硬件中断块

西门子1200的HSC的应用实例!


图11.添加高速计数器

西门子1200的HSC的应用实例!


图12. 定义高速计数器背景数据块

程序视图如图13


西门子1200的HSC的应用实例!


图13. 程序视图


1这里就是图9中系统指定的高速计数器硬件识别号,这里填1

意:应根据CPU属性里的硬件标识符设置该值, 如硬件标识符为257,应将指令输入的 HSC 值从 1 改为 257,如下图 14 所示:


西门子1200的HSC的应用实例!


图 14. 硬件标识符


2 1为使能更新初值;

3 1为使能更新预置值;

4 新的初始值;

5 新的预置值。

至此程序编制部分完成,将完成的组态与程序下载到CPU后即可执行,当前的计数值可在ID1000中读出 ,关于高速计数器指令块,若不需要修改硬件组态中的参数,可不需要调用,系统仍然可以计数。


分享到:


相關文章: