您的当前位置:首页正文

高速计数器同时测速测位移量

2020-01-09 来源:易榕旅网


对三菱脉冲密度指令spd的理解

1. plc的脉冲输入口不能供高速计数命令同时使用:

spd指令是对X0-X5口的脉冲输入,当使用了spd命令去测量某个x口,则该x口不能再用作其他使用;比如:

M8000————spd x0 k20 d10 ,测量x0在20毫秒的脉冲量;

那么在梯形图里如果已经又有:

M8000————C251K10000,即接通了C251计算x0x1双相计数,此时spd命令将计算不了,原因在于高速脉冲是使用了中断,而C251与spd只能一个去使用x0口;

2.双相计数器测速,并且同时测位移量?

这个时候如果是用的三菱FX-3U系列的plc,则x0x1使用c251,同时将x0口并联到x3口,对x3口使用spd命令,就可以了。之前担心AB相只取一个是不是会不对,为此设计如下实验:编制vb程序,读取c251的脉冲,并且用vb里的SYSTEMTIME时间结构体变量来计算串口每次读取c251相邻时间,然后相除后得到脉冲密度(当然vb的反应时间大概20MS);然后在plc里使用上述1中的指令(仅仅是更改x0为x3)对A相测试密度,用vb程序读取d10的值,比较后看速度的计算结果,经过实验几乎是一样的。

这样的话,同时读取c251和d10就可以同时测速和测位移量;

当然,如果是小的plc,没有几个脉冲输入接口,则x0x1用作计算位移量,然后由

plc自己编制程序计算脉冲密度也是可以的,这里当然担心会不会因为plc的扫描时间而产生误差,经过实验发现20ms时fx3u的误差完全可以忽略,计算程序如下:

M8000—|———————DMOV C251 D10 将c251的值复制到d10

|——串T206反——————T206K2 每20msT206通一次

T206——|————————DSUB D30 D10 D14 每次T206通,则用d30减d10给d14

|————DMOV D10 D30 复制d10给d30

这样的话每隔20ms用d14存入c251的脉冲量,相除即得脉冲密度;

经过实验,其效果和spd命令的计算差不多,很准确,就是代码多了些;

3时间间隔是不是可以更小,这样以会更精准吗?

为什么上述都使用的20ms,而没有取1ms的极限来测密度呢?那要看情况,其关键是因为脉冲量是整数域,它不会因为分割越短而越来越精确;比如1秒内有2000个至2100个脉冲的密度,那么你测试1秒,则可能发生的数值差有2100-2000=100个不同值;但是100毫秒内就是只有10个不同的值,即200至210的值,如果你测试的是10毫秒的脉冲密度,则值就是20或者21,如果你测试的1毫秒的脉冲密度,那就搞笑了,都是2个脉冲,而没有2.1这个答案,因为它必须是整数。所以并非能用极限思想去认为越短时间间隔测量速度越准确。

因篇幅问题不能全部显示,请点此查看更多更全内容