在工业领域数据采集和处理中,经常会遇到如流量、转速、扭矩等高速脉冲信号形式的传感器。这种类型的传感器jingque度高,抗干扰能力强,得到技术人员的青睐。本文在小编真实项目的基础上,举例说明西门子S7-1200高速脉冲采集功能和应用。
1. 1200系列CUP高速计数通道简介
西门子s7-1200系列CPU模块一般都自带3-6路高速脉冲采集通道,如图1所示,其独立于CPU的扫描周期进行计数,可测量单项脉冲频率Zui高为100KHz,双向或A/B相Zui高为30KHz,除用来计数外还可用来进行频率测量,高速计数器还可用于连接增量型旋转编码器,用户通过对硬件组态和调用相关指令块来使用此功能。
图1.西门子1200系列CUP高速计数通道
2. 高速计数器的工作模式
高速计数器定义为以下5中工作模式
< 计数器,外部反向控制。
<单相计数器,内部方向控制。
<双向增/减计数器,双脉冲输入。
< A/B相正交脉冲输入。
<监控PTO输出。
每种高速计数器有两种工作状态。
<外部复位,无启动输入。
<内部复位,无启动输入。
注意:所有的技术器只需要在组态时直接启用高速计数器即可,不需要再在程序里面设置启动条件。
如图2 所示为西门子1200系列CPU高速计数器硬件输入定义与工作模式。
图2. 西门子1200系列CPU高速计数器硬件输入定义与工作模式
3. 高速计数器寻值
如图3所示为西门子1200系列CPU高速计数器寻址,在高速计数测量时,测量到的数据都被存在一个映像区内,数据为32位双整形有符号数。只要在硬件配置里组态了高速计数器,不许调用相关指令,直接读取默认地址中的数即可。例如:默认HSC1通道的寻址地址为ID1000,把HSC配置为计数模式,则ID1000的值就是当前的计数值,当把HSC配置为频率测量模式,则ID1000的值就是当前的频率值。在进行硬件配置时寻址地址可以人为指定,一般不做特殊要求时,zuihao为默认值。
图3. 西门子1200系列CPU高速计数器寻址
4. 频率测量
通常,如高速脉冲型式的传感器,如流量传感器,转速扭矩传感器等,测量其相应的流量,转速、扭矩等,Zui终都是先得到其频率值,再对频率直接进行数据处理,即可得到相应的流量、转速、扭矩等物理量。S71200系列CPU直接可以通过硬件组态,将计数通道设置为频率测量。S71200系列CPU高速脉冲采集频率测量功能,有3种不同的评率测量周期:1.0秒,0.1秒和秒,不同工况需求下,可以选择不同的测量周期。
5. 高速计数器指令
通过这一指令模块,可以在线改变其参数。如果不需要更改参数,就不需要调用此指令模块,直接在程序里面访问寻址地址即可。
高速计数器指令
6. 高速脉冲计数应用举例
下面举一个小编在工作中遇到的一个例子,来说明西门子S71200系列PLC高速脉冲采集的用法。
DC24V脉冲信号的转速扭矩传感器
工况:如图所示的扭矩转速传感器,转速码盘数为60,扭矩-50N.m-50N.m对应5K-15K脉冲。
下面介绍其硬件组态和数据处理过程。
◆ 1. 插入PLC1214CPU,在下面的属性选项卡配置其属性。
◆ 2. 把HSC1配置为转速频率测量,如图所示,启用高速计数器,名称改为转速频率测量。
◆ 3. 计数类型选择》频率,工作模式选择》单相,计数方向默认为》内部方向控制,评率周期选择1秒。
◆ 4. 时钟发生器输入默认为I0.0,一般都选择默认即可,默认输入通道见前面的叙述。
◆ 5.寻址地址默认为1000,组织块自动更新即可。配置完成后直接在程序中直接读取ID1000的值,就是转速脉冲的评率值。
◆ 6.同转速测量一样,参照上述步骤,把HSC2配置为扭矩频率测量。
7. 高速脉冲计数应用数据处理
在上面一小节详细介绍了,S71200高速脉冲采集通道的硬件配置和组态,本小节介绍此类工况的数据处理。
转速的处理:评率为f,表示一秒钟采集f个脉冲,则一分钟采集60f个脉冲。码盘数为60,表示转一转,转速传感器发出60个脉冲。则,一分钟60f个脉冲表示转了60f/60转,转速为f转/分。
及:转速的处理公式为:转速=60f/码盘数 (转/分)
扭矩的处理:扭矩处理比较简单,5K—15K线性对应-50N.m—50N.m。对评率值进行线性变换即可。
注意:无论是高速计数还是频率测量,读取到的ID1000值都是整数,要换算为相应的物理量,要进行数据转换,把双整数换算为浮点数,再进行数据转换。
8. 高速脉冲计数应用其余注意点
这一点很重要,小编在做项目的时候吃了大亏,在此把这一点作为一小节写在这里。
在S71200CPU属性页面,数字量输入通道是可以配置输入滤波器的。要是输入通道的输入滤波器配置不正确的话,会造成高速脉冲采集不到的结果。
小编在左具体项目的时候,就是因为没注意这一点,自己用手模拟脉冲可以采集到,但转速扭矩传感器就是采集不到,怀疑人家传感器坏了,Zui后费了很大劲才找到原因。
各位看官遇到类似的问题,可以变换和配置一下输入通道的滤波器试一下。