西门子1200的HSC的应用实例

高速计数器寻址

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

西门子1200的HSC的应用实例

中断功能

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

共有 3 种中断事件:

1.当前值等于预置值

2.使用外部信号复位

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

频率测量

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

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

高速计数器指令块

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

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

应用举例

假设在旋转机械上有单相增量编码器作为反馈,接入到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的应用实例

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

西门子1200的HSC的应用实例

激活高速计数功能如图3

西门子1200的HSC的应用实例

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

西门子1200的HSC的应用实例

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的应用实例

预置值中断组态如图6

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

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

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

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

程序编写

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

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

程序视图如图13

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

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

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

西门子1200的HSC的应用实例

2 1为使能更新初值;

3 1为使能更新预置值;

4 新的初始值;

5 新的预置值。

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


分享到:


相關文章: