如何准确的测量多个频率(或转速)?

已锁定

手机用户20230828277407

  • 帖子

    9
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2023-08-28

普通 普通 如何晋级?

如何准确的测量多个频率(或转速)?

2374

25

2023-09-24 15:26:17

在测频率时,发现两个问题,一个是定时不准,没法得到准确采样时长;另一个是高速计数读数不准。才玩PLC不久,请大家帮忙分析指点。


1、定时不准,误差得有超17%左右。比如,用200ms的定时中断0,5次得到1s,中断中间搞个脚输出,用频率计测量周期就可以知道差多少,差不多1s实测是1171。将200改成171才能是5次1s左右。那所有SMART实物的一致性和随温度的变化还要去研究,这个思路放弃。用T32是一个效果。


   我的方法是用标准频率1kHz接入PLC高速计数器HSC0,计1000次中断,中断里再次读HC0的值,发现是1013左右(有正负1误差跳变),多出来的13ms,理解成有13ms的中断响应时间。中断里搞管脚输出,测量周期,确实是1013ms。没关系,虽然多出来了13ms,但它是准确的,后面就好办。同时也测了一下PLC内部计时差,两次中断间是865ms。计算一下,用内部的计满1000ms,对应的实际时间是1171,也差不多是超17%。跟上面的误差值也对得上。


2、高速计数不准,主要是多个之间同时计数有差别。我HSC0用于采样标准1kHz,无论是PLC自产生标准频率,还是外部信号发生器产生标准频率,基本上中断中得数都是1013左右。我认为这个是准确的。现在的问题是,我在中断里还要读取另外的高速计数器的值,HSC3是971,HSC4是985。三个高数计数器同时复位并读数,产生了3个不同的值,最大得有4%了。这个差异是怎么产生的?.没法再提高精度了吗?IO口的滤波已设置为0.2ms。


3、另一个问题,最终我是要用PLC自产生1kHz频率的,经测量,还很准。我看了一下相关资料,比如下面的,其中一个同时执行HSC/PLS,是不能同时用HSC和PLS吗?我试了下,好像没问题。

ENO = 0 时的错误条件


 HSC:


0001H 在 HDEF 之前执行 HSC


0005H 同时执行 HSC/PLS


0090H HSC 编号无效


 

 

主程序

段1:

LD     First_Scan_On

CALL   HSC0_INIT

CALL   HSC3_INT

CALL   HSC4_INT

BITIM  last_time

ENI


段2:(目的是方便看PLC运行状态时的下面几个变量)

LD     Clock_1s

DISI

MOVD   FREQ, FREQ

MOVD   FREQ1, FREQ1

MOVD   FREQ2, FREQ2

MOVD   Interval_time, interval_time1

ENI


HSC0初始化:

LD     Always_On

MOVB   2#11111100, HSC0_Ctrl       //??????????£o ?ó??êy£? ò???ó?£? 

MOVD   +0, HSC0_CV                 //×°?? CV

MOVD   1000, HSC0_PV               //×°?? PV

HDEF   0, 0

ATCH   INT_12, 12

HSC    0


HSC3初始化:

LD     Always_On

MOVB   2#11111100, HSC3_Ctrl       //??????????£o ?ó??êy£? ò???ó?£? 

MOVD   +0, HSC3_CV                 //×°?? CV

MOVD   10000, HSC3_PV              //×°?? PV

HDEF   3, 0

HSC    3


HSC4初始化:

LD     Always_On

MOVB   2#11111100, HSC4_Ctrl       //??????????£o ?ó??êy£? ò???ó?£? 

MOVD   +0, HSC4_CV                 //×°?? CV

MOVD   10000, HSC4_PV              //×°?? PV

HDEF   4, 0

HSC    4


INT12中断:

LD     Always_On

CITIM  last_time, Interval_time

BITIM  last_time


MOVD   HC0, FREQ

MOVD   HC3, FREQ1

MOVD   HC4, FREQ2


MOVB   2#11001100, HSC0_Ctrl

MOVB   2#11001100, HSC3_Ctrl

MOVB   2#11001100, HSC4_Ctrl

MOVD   +0, HSC0_CV

MOVD   +0, HSC3_CV

MOVD   +0, HSC4_CV

HSC    0

HSC    3

HSC    4

CRETI



如何准确的测量多个频率(或转速)? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9388条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。