登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:转贴:如何使用高速计数器获得高速速度值?

点击:2157 回复:6

在 CPU 循环周期内采用通常的方法不可能准确地获得高速速度值。
要获得准确的高速计数值 ,应该选择用高速计数器和时间中断程序(例如 HSC 3)。这要求在CPU上电进入“运行”模式时的第一个扫描周期里,计数器完成初始化,中断被定义并指派到计数器。
为此,通过首周期扫描位(SM0.1)转到子程序(例如 子程序 0)定义时间中断周期。由于切换到运行模式后,首周期扫描位只能在第一个周期被置位,所以中断只被设置一次。
比如,选择中断 0。中断事件 10 的周期时间被写在 SMB34 里。
在这个例子里,我们已经选择了中断 0。一个特殊的中断只能分派给一个程序。 当然,根据需要可以增加这 10 毫秒的时间间隔。当使用脉冲数计算速度时,必须考虑时间中断。 计数器总是将每次中断时间间隔的脉冲数存储在一个双字变量寄存器 VD0 中。 比如,如果速度脉冲编码器提供每圈 50 个脉冲,中断时间间隔是10ms,计算
每分钟的速度是
(VD0 = 每10ms的脉冲数) * 6000 / 50。
为了把速度脉冲编码器的脉冲传给计数器,就必须把速度编码器的输出信号连到 HC3 的输入点 I0.1 上。 (如果想在项目中使用不同的计数器,那么必须连接到所选计数器对应的输入点上)。

附件:
[本地下载]
将 "tspeed01.zip" 文件复制到另一个目录下并解压缩该文件(例如 用 "WinZip")。程序文件被解压缩为文本文件。 现在可以复制独立的程序段并转移到 STEP 7 Micro/WIN 程序中。
08-11-14 20:18
如果计数值超出最大值时,会怎么样,应该怎么办?
08-11-14 21:48
楼上的问题具有普遍性希望楼主回答
08-11-15 10:57
如果达到最大值再正向计数,会变为负的最小值,并继续增计数。
如果达到最小值再反向计数,会变为正的最大值,并继续减计数。
要避免这种情况的发生,否则程序控制会出错。
08-11-15 21:44
该用户被锁定!
12-02-09 17:01
当使用脉冲数计算速度时,必须考虑时间中断-也不一定,要看转速。
12-02-10 09:50
好贴,学习下
12-02-16 16:29

工控新闻

更多新闻资讯