s7 300 高速计数器 如何计算 速度值
高速计数及脉冲输出指令

计数方向控制位:0(减计数); 1(增计数)
向HSC中写入计数方向: 0(不更新);1(更新计数方向)
向HSC中写入预置值: 0(不更新);1(更新预置值)
向HSC中写入新的当前值: 0(不更新);1(更新当前值)
HSC允许: 0(禁止HSC);1(允许HSC)
预置值
SMD42 SMD52 SMD62 SMD142 SMD152 SMD162
高速计数及脉冲输出指令
v高速计数器状态位
高速计数器状态字节,其中某些位指出了当前计数方向、当前值与预置 值是否相等、当前值是否大于预置值的状态。可以通过监视高速计数器的 状态位产生相应中断,完成重要操作。但要注意,状态位只有在执行高速 计数器终端程序时才有效。
(2) 在初始化子程序中,对相应高速计数器的控制字节写入希望的控制 字。如要使用HSC1,则对SMB47写入16#F8(2#11111000),表示允许高速 计数器运行,允许写入新的当前值,允许写入新的预置值,可以改变计数 器方向,置计数器的计数方向为增,置启动和复位输入为高电平有效。
(3) 执行HDEF指令,根据所选计数器号和运行模式将高速计数器号与 具体运行模式进行连接。
HSC 高速计数器指令,根据高速计数器特殊存储器位的设置, 按照HDEF指令指定的工作模式,控制高速计数器的工作。
高速计数及脉冲输出指令
高速计数器设置过程
为更好地理解和使用高速计数器,下面给出高速计数器的一般设置过 程。
(1) 使用初始化脉冲触点SM0.1调用高速计数器初始化操作子程序。这 个结构可以使系统在后续的扫描过程中不再调用这个子程序,从而减少了 扫描时间,且程序更加结构化。
I0.0 计数 计数 计数 计数
S7-200高速计数器简单案例(2)

S7-200高速计数器简单案例(2)前面以几个较简单的程序案例学习了一下高速计数器的应用,那么今天就做几个稍微复杂一些的程序案例,提高一下对高速计数器的掌握程度和熟练应用。
1、用编码器测量电机转速与频率主程序:子程序:中断程序:以上的程序中,在主程序中,用I0.7的上升沿调用高速计数器初始化子程序,然后做一个高速计数器初始化的子程序,首先是定义控制字节,送16#F8到SMB37,定义为加计数更新当前值,这里没有写入初始值和预设值,定义的是高速计数器HSC0和HSC模式1,然后激活高速计数器,还做了高速计数器中断,我们设置定时中断0的时间间隔为100ms,因为SMB34的定时中断0为中断事件号10,我们建立中断程序0和中断事件10的中断连接,并全局允许中断。
然后再看一下中断程序,因为是100ms的定时中断,每100ms 执行一次中断程序。
我们就用100ms计算的脉冲个数,再乘以600化成1分钟的脉冲个数,再除于分辨率就是等于转速,程序中的500就是编码器的分辨率。
而对于编码器的频率的计算,我们有这样一个公式,频率/工频50Hz=转速/工频下的转速,所以频率=(转速/工频下的转速)*工频50Hz,这里我们先把双整数的转速转换成实数,再除以工频下的转速1488.0,再乘以工频50.0Hz,那么就得到了编码器的频率了。
2、用编码器测量机床位置,不论机床朝正方向移动或朝反方向移动,都能知道机床的当前位置,有一原点位置感应开关I0.7,当原点位置感应开关接通时,机床的当前位置为0。
假设编码器的分辨率为1024,丝杆的进给量即转1圈移动的位置为10,计算公式是当前值除以分辨率,再乘于进给量)主程序:子程序:以上的程序中,首先做一个高速计数器初始化的子程序,首先是定义控制字节,送16#F8到SMB37,定义为加计数更新当前值,这里没有写入初始值和预设值,定义的是高速计数器HSC0和HSC模式1,然后激活高速计数器。
S高速计数功能简介

S7-1200高速计数功能简介每种高速计数器有两种工作状态。
∙外部复位,无启动输入。
∙内部复位,无启动输入。
表1 高速计数器寻址4频率测量S7-1200 CPU除了提供计数功能外,还提供了频率测量功能,有3种不同的频率测量周期:1.0秒,0.1秒和0.01秒,频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。
返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以Hz(每秒脉冲数)为单位。
5高速计数器指令块表1 高速计数器指令块参数6应用举例为了便于理解如何使用高速计数功能,通过一个例子来学习组态及应用。
假设在旋转机械上有单相增量编码器作为反馈,接入到S7-1200 CPU,要求在计数25个脉冲时,计数器复位,并重新开始计数,周而复始执行此功能。
针对此应用,选择CPU 1214C,高速计数器为:HSC1。
模式为:单相计数,内部方向控制,无外部复位。
据此,脉冲输入应接入I0.0,使用HSC1的预置值中断(CV=RV)功能实现此应用。
组态步骤:∙先在设备与组态中,选择CPU,单击属性,激活高速计数器,并设置相关参数。
此步骤必须实现执行,1200的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤∙添加硬件中断块,关联相对应的高速计数器所产生的预置值中断∙在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数∙将程序下载,执行功能1硬件组态选中CPU如图2图2选中CPU图3所示为选择属性打开组态界面图3 选择属性打开组态界面激活高速计数功能如图4图4 激活高速计数功能计数类型,计数方向组态如图5所示图5 计数类型,计数方向1 此处计数类型分为3种,Axis of motion(运动轴),Frequency(频率测量),Counting(计数)。
这里选择Counting2 模式分为4种:Single phase(单相), Two phase(双相), AB Quadrature 1X(A/B相正交1倍速), AB Quadrature 4X(A/B相正交4倍速)。
(2条消息)西门子S7

(2条消息)西门子S7目录一、高速计数器的简介1、高速计数器的工作模式和输入2、高速计数器的控制字和初始值、预置值二、高速输入降噪三、高速计数器指令向导一、高速计数器的简介对超出CPU普通计数器能力的脉冲信号进行测量。
S7-200 SMART CPU提供了多个高速计数器(HSCO~HSC6,具体请参考表1和表2)以响应快速脉冲输入信号。
高速计数器的计数速度比PLC的扫描速度要快得多,因此高速计数器可独立于用户程序工作,不受扫描时间的限制。
用户通过相关指令,设置相应的特殊存储器控制计数器的工作。
高速计数器的一个典型的应用是利用光电编码器测量转速和位移。
表1 标准型CPU高速计数器表2 经济型CPU参数1、高速计数器的工作模式和输入高速计数器有8种工作模式,每个计数器都有时钟、方向控制、复位启动等特定输入。
对于双向计数器,两个时钟都可以运行在最高频率上,高速计数器的最高计数频率取决于CPU的类型。
在正交模式下,可选择1× (1倍速)或者4× (4倍速)输入脉冲频率的内部计数频率。
高速计数器有8种4类工作模式:(1)无外部方向输入信号的单/减计数器(模式0和模式1)用高数计数器的控制字的第3位控制加减计数,该位为1时为加计数,为0时为减计数。
(2)有外部方向输入信号的单/减计数器(模式3和模式4)方向信号为1时,为加计数,方向信号为0时,为减计数。
(3)有加计数时钟脉冲和减计数时钟脉冲输入的双相计数器(模式6和模式7)若加计数脉冲和减计数脉冲的上升沿出现的时间间隔短,高速计数器认为这两个事件同时发生,当前值不变,也不会有计数方向的变化的指示。
否则高速计数器能捕捉到每个独立的信号。
(4)A/B相正交计数器(模式9和模式10)它的两路计数脉冲的相位相差90。
,正转时A相时钟脉冲比B相时钟脉冲超前90。
反转时, A相时钟脉冲比B相时钟脉冲滞后90%。
利用这一特点,正转时加计数,反转时减计数。
关于高速计数和脉冲问题

关于高速计数和脉冲问题
1、高速计数器里的比较值可否在程序中更改,也就是在运行时更改。
因为机器速度不同时,需要反应的位置不同,比如机器运转较快时,提前一些进行比较并中断,执行ob40
2、编码器是a、b、z的,cpu用的是313c,a/b相接到了i0.0和i0.1,i0.4输入点设置了硬件中断,接z相,用于接收到信号后执行ob40,对计数器进行复位。
当使用24v电直接接进i0.4,可以复位计数器,但是z相接进去,却复位不了,好像是捕捉不到z相的脉冲信号
最佳答案
1、比较值可以在运行时修改,对于cpu31xc调用sfb47,使用作业号16#04来修改。
具体可以参考s7-300的技术功能手册或下载中心文档:a0499s7-300高速计数使用帮助。
2、cpu313c不支持z脉冲输入和复位功能。
如果通过直接的硬件中断捕捉不到脉冲,可以将z信号作为第二个高速计数通道的输入脉冲接入i0.3,然后将最大计数频率设为1khz,使用“oncountpulse”中断功能,并在中断中对计数器进行复位。
这样应该没有问题。
计数器及其他常用指令

STL
OUT
ENO
MD26
LAD
L MW12 ITD DTR T MD26
I_DI EN ENO MW12 IN OUT MD14 MD14
DI_R EN ENO IN OUT MD26
S7-300/400系列PLC计数器及其他指令
数字逻辑指令
WXOR_W WOR_W WAND_W EN ENO 15 IW0 = W#16#5F2A =
0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0
L L T
IW 0 W#16#5F2A MW10
AW / OW / XOW
ENO
0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0
AND
AW 后的MW10 OW 后的MW10 XOW 后的MW10
OR
XOR
0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0
输出框
IN1 IN2
BOOL
INT INT
I、Q、M、L、D
I、Q、M、L、D、常数 I、Q、M、L、D、常数
S7-300/400系列PLC计数器及其他指令
S7-300/400系列PLC计数器及其他指令
比较实数
参数 输入框 输出框 IN1 IN2
数据类型 BOOL BOOL INT INT
内存区域 I、Q、M、L、D I、Q、M、L、D I、Q、M、L、D、常数 I、Q、M、L、D、常数
右移字:
11 10 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 IN
EN0 =1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 IN
高速计数器控制指令
25315
CTBL(63)
高速计数器目标值比较中断
比较表 首地址 软件 复位
00002 5000 0000 0010 0000 0002 0011 2个目标值 目标值1:5000 子程序号 目标值2:20000 子程序号
000 000 DM0000 00100 25200 SBN (92) 010 25313 @MOV #5000 HR00 RET (93)
使用高速计数器举例
登录比较表、 用INI启动
25315
高速计数器区域比较中断
比较表 更新当 启动 首地址 前值 比较
1500 0000 3000 0000 0000 7500 0000 0000 0001 0001
读出当 前值
00005
25313
CTBL (61) 25313 PRV (62) 000 000 003 000 DM0000 LR00 INI (61) 00100 25200 000 002 SBN (92) 000 HR00 子程序000 @INI (61) 000 REN (93) 000 SBN (92) 001 000 子程序001 XFER(70) # 0002 RET (93) 248 END (01) HR00
SBN (92) 000 子程序000 REN (93) SBN (92) 001 子程序001 RET (93) END (01)
执行当前值读出 指 令 PRV , 将 248、249中的当 前值读到LR00中 去。 若00100 ON且 有Z信号,则高 速计数器复位
@INI(61)
P C P1
P:端口定义(000) C:控制数据
P1 :设定值首通道
C的含义
高速计数器(S7-200系列)测量电机转速程序
设置高速计数器 HC0 的控制字节 SMB37,用 十六进制表示(16#F8),也可以用二进制表
示(2#11111000)。 设置高速计数器 HC0 工作模式为 0,单相计数
当累加数据次数等于 32 次,子程序中网络 2 中程序执行。
采用除法指令,计算 32 次的累加数据平均值。 将平均值转换成测量单位:转/分,转换后的
数据送入双字 VD4。 将平均值Байду номын сангаас换成字数据,送入字 VW10 中。 VW10 中的数据就是电机速度值。之所以转 换,是因为在程序中一般要求以字的概念存在。
主程序:
主程序 MAIN
程序初始化,PLC 上电运行的第一个扫描周期 执行一次初始化子程序 SBR_0。用于程序运行
的初始设置
子程序 0
子程序 SBR_0
湖北祥辉电气自动化培训中心
湖北祥辉电气自动化培训中心
将记录累加数据次数的字节 VB6 中数据置 0。 用于下一次开始时,从新开始累加。
将用于累叫数据的中间变量 VD4 置 0。
湖北祥辉电气自动化培训中心
据的累加。
采用整数递增指令,记录累加次数。
湖北祥辉电气自动化培训中心
湖北祥辉电气自动化培训中心
执行 HSC 指令,在这里执行的目的,是将初始 值寄存器 SMD38(0)再次写入高速计数器 HC0,使计数当前值为 0,以便下个定时采样。
作模式写入高速计数器 HC0。
设定定时中断事件的时间为 50ms
中断程序 0
定时中断事件号 10 和中断处理程序 INT_0 建 立关联。
S7-200SMARTCPU高速计数器专题(上篇)
S7-200SMARTCPU⾼速计数器专题(上篇)⼀、⾼速计数的概念⾼速计数器是PLC CPU的内部集成的硬件⾼速计数器,通俗的讲就是对普通计数器⽆法记录到的⾼速脉冲信号进⾏计数,响应时间⽐普通计数器快,并且不受CPU的扫描时间影响,但会受脉冲输⼊信号的滤波时间影响计数。
普通计数器在计数的过程中受PLC的扫描⼯作⽅式限制,如果被测信号的频率较⾼时,就会丢失计数脉冲;普通计数器⼀般仅为⼏⼗HZ。
当脉冲频率⽐较⾼的时候,那么就需要⾼速计数器进⾏计数。
⾼速计数⾃然和编码器有着密不可分的关系。
编码器分绝对值式编码器和增量式编码器;增量式编码式分PNP输出和NPN输出两种,其输出信号为脉冲信号;⽽绝对值式编码器输出是格雷码。
实际项⽬多为增量式编码器,200SMART不能接5V差分信号编码器⼆、各CPU型号所⽀持的⾼速计数个数固件版本为2.3 版以上的CPU型号最多⽀持6路⾼速计数,但紧凑型的CPU只⽀持4路标准型CPU⾼速计数器如下图:紧凑型CPU⾼速计数器三、⾼速计数器的输出模式200 SMART CPU⾼速共有四种基本类型:带有内部⽅向控制的单相计数器,带有外部⽅向控制的单相计数器,带有两个时钟输⼊的双相计数器和A/B相正交计数器。
其输出模式有⼋种:0/1/3/4/6/7/9/10 下⾯分别做详细介绍模式0/1模式3/4模式6/7 带有增减计数时钟的双相计数器 6模式⽆复位输⼊,7模式使⽤外部复位输⼊模式9和10 常⽤9模式⾼速计数器所对应的编号及输⼊点和模式对照表四、⾼速计数器的状态字和控制字及寻址五、⾼速计数器的控制字节各个位的定义控制字节常⽤16#F8⾼速计数器的状态字节各个位的定义bit 0 -bit4 保留bit5 当前计数⽅向状态0=减计数 1=加计数bit6 当前值等于预设值的状态位0=不相等 1=相等bit7 当前值⼤于预设值状态位0=⼩于或等于1=⼤于。
200plc高速计数器用法
200plc高速计数器用法PLC高速计数器是一种常用的工业自动化控制器,用于对高速脉冲信号进行计数和监控。
它通常与传感器、编码器和其他脉冲信号生成器连接,用于监控机器运行状态、生产线节拍等。
在工业控制系统中,高速计数器的使用非常普遍,能够满足对高速脉冲信号的精确计数和快速响应的需求。
本文将详细介绍PLC高速计数器的用法和应用。
PLC高速计数器的原理和结构PLC高速计数器通常由输入端口、计数器寄存器和输出端口组成。
输入端口用于接收脉冲信号输入,通常接入传感器、编码器等设备,用于检测运动、转速、位置等信息。
计数器寄存器用于记录和存储脉冲信号的数量,可以根据需求进行清零、累加、减计数等操作。
输出端口则根据计数器寄存器的数值输出相应的控制信号,用于控制执行器、显示器、报警器等设备。
PLC高速计数器通常具有高速计数、精确计数和快速响应的特点,能够满足对高速脉冲信号的处理需求。
在工业自动化领域,PLC高速计数器被广泛应用于机械加工、流水线生产、包装运输等领域,能够实现高效稳定的自动化控制。
PLC高速计数器的用法1. 连接传感器和编码器在使用PLC高速计数器前,首先需要连接传感器和编码器等脉冲信号输入设备。
传感器通常用于检测运动、位置、转速等信息,编码器则用于反馈旋转运动的脉冲信号。
这些设备通过输入端口与PLC高速计数器相连,将脉冲信号输入到计数器中。
2. 设置计数器参数PLC高速计数器通常具有多种参数设置功能,可以根据实际需求进行调整。
在使用前,需要设置计数器的初始值、计数方式、溢出处理、计数触发方式等参数。
这些参数设置可以根据具体应用要求,如累加计数、减计数、脉冲计数、阈值触发计数等,以实现不同的计数功能。
3. 监控脉冲信号PLC高速计数器能够对脉冲信号进行实时监控和计数。
通过计数器寄存器可以记录并显示脉冲信号的数量,实时反映设备的运行状态。
在工业生产中,可以通过监控脉冲信号的计数值,对设备的运行速度、频率、产量等进行实时监控。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s7 300 高速计数器 如何计算 速度值?
2014-04-15 来源 技成培训
使用s7300313c-2dp的高速计数通道0,使用sfb47计数,怎么才能将计数值转化
为速度值呢?
还有就是sfb47的计数值countval怎样清零呢?
最佳答案
可以使用频率测量模式直接通过sfb48读取频率然后再计算速度,这样比较简
单,
如果通过计数值计算速度,那么也是要计算频率,可以通过ob35(比如周期1s)
来读取每秒的计数值得到频率值,然后再计算速度。
计数值清零要通过写作业来完成,参考300c技术功能手册吧!