您现在所在的是:

三菱Mitsubishi

回帖:22个,阅读:535 [上一页] [1] [2] [3] [下一页]
1254
单单
文章数:97
年度积分:83
历史总积分:1254
注册时间:2009/6/29
发站内信
发表于:2024/11/18 22:48:33
#0楼
   本人有个程序需要编写,涉及到高速脉冲量输入计算每分钟多少转,我现有程序只能以1秒钟或500ms的采集周期来计算,但是达不到控制要求,控制要求是<100ms采集周期计算出当前值,但现实中是有这样的案例,只是我的涉及思路错误,现群里求计算方法和程序思路,如程序校验可行,愿出1000元,以示谢意,微信:cumminsPower-china。
见图:我的程序是采用SPD指令,D0是脉冲采集量,D800是采集时间,图中采集时间是1000ms,D802是电机一圈的齿数,计算如下:
如果是1000ms采集周期得出:
     2950脉冲量×118齿÷60秒=1500转;脉冲量是2949往下或2951往上都可以计算出正确的当前值。
 如果用这种方法计算法100ms或以下时间为采集周期,计算值就变形了,例如在100ms的时间采集了295个脉冲,计算出转速是1500转,但是如果在100ms的时间采集了294个脉冲,计算出转速是1494.9转,那么问题来了:如果当前转速是1499或其它值,这个转速值该怎么利用高速脉冲量计算出来。
求群里大神不吝指教!!!!
附件 4fbc1f1e17b167a1c08ad18401df77b.jpg
[此贴子已经被jint于2024/11/20 9:49:03编辑过]
12476
蛇会大学
文章数:4624
年度积分:802
历史总积分:12476
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2024/11/19 0:36:21
#1楼
建议你使用计算每个脉冲周期时间的办法,应该会比较准确

要用到中断和精确计时器,你可以试试
敏问找算丁亏楼累
敏问找算哭哲累嘿
敏问够算恐哈做累揍忍没催妹
比漏累伤醒更八音舍黑
我晕能以身问晕陪笨累
38134
知道一点
文章数:22595
年度积分:2553
历史总积分:38134
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2024/11/19 6:56:59
#2楼
1000元?我能建议换家PLC吗?用欧家的,我可以送你曾经利家使用了几十套的程序
核心可能与SPD(不了解)相同,5000srpm误差2-3,修正后0-1
快乐 幸福 自由 比什么都重要
430
红狼B7BM
文章数:61
年度积分:430
历史总积分:430
注册时间:2021/2/22
发站内信
发表于:2024/11/19 8:23:47
#3楼
这个不难,你的问题在于时间短脉冲个数少导致精度不够,同时又需要足够短的时间计算出转速,那么高中物理里面经常用的移动平均法就可以实现,程序来说构建一个队列,你用SPD指令每100ms采集一个脉冲量放到一个队列里面,放满之后开始对队列求和算速度,放满之后队列里面每100ms进一个出一个即可
42414
YXBK 版主
文章数:19498
年度积分:2828
历史总积分:42414
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2024/11/19 8:40:34
#4楼
个人觉得这个无解,更新速度是100ms,就是0.1秒,脉冲数精确的是1个,

而这1个对应的转速是 1*10*60/118=5.08转/分钟,简单说最终的分辨率就是5.08转

无论你怎么计算,多一个少一个,最终的转速就是正负5.08转


如果更新速度要求是100ms,精确转速是1转

个人觉得要把118齿的计数盘改成600脉冲的编码器才行
大家一起学习
1381
非同寻常
文章数:159
年度积分:870
历史总积分:1381
注册时间:2023/1/9
发站内信
发表于:2024/11/19 9:06:13
#5楼
直接找PLC供应商,能帮你把程序写好表情
10266
twtynijj
文章数:2606
年度积分:837
历史总积分:10266
注册时间:2009/7/15
发站内信
2016国庆活动(三)
发表于:2024/11/19 10:01:21
#6楼
你要需要中断程序里写这个程序就没有什么问题!你在其它地方写 就会因为扫描周期的原因!会有误差
920
981183833
文章数:140
年度积分:920
历史总积分:920
注册时间:2019/3/20
发站内信
发表于:2024/11/19 10:22:53
#7楼
看来你这1000块钱不好挣啊
38134
知道一点
文章数:22595
年度积分:2553
历史总积分:38134
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2024/11/19 13:17:21
#8楼
以下是引用YXBK2024/11/19 8:40:34的发言:
个人觉得这个无解,更新速度是100ms,就是0.1秒,脉冲数精确的是1个,

而这1个对应的转速是 1*10*60/118=5.08转/分钟,简单说最终的分辨率就是5.08转

无论你怎么计算,多一个少一个,最终的转速就是正负5.08转


如果更新速度要求是100ms,精确转速是1转

个人觉得要把118齿的计数盘改成600脉冲的编码器才行
这个计算好像那里不对,正负5的误差也太大了,给利xx公司做的,采样最少6最多好像12(利用轴对接法兰盘螺栓),也没这么大误差(用手持测速仪采样才一个/周),客户自带转速显示。

关键是采样时间短
转速要即时速度?那就看着数字跳来跳去,设备速度稳定得到的数值也应该稳定。
利家客户要的外挂速度速度显示,就是选了多个方案,PLC的程序也试过中断,程序计算,高速计数(类似楼主方案)……试验结果使用IO(设置8ms)数值到是比较稳定,就是误差利家不满足。
在一次做伺服控制时发现可以求转速的指令,结果很好(高于客户5‰要求),最后找出修正点,修正后客户非常满意,一下订了几十单。
后来这套不在用,原因是设备上自有速度显示。
快乐 幸福 自由 比什么都重要
42414
YXBK 版主
文章数:19498
年度积分:2828
历史总积分:42414
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2024/11/19 14:32:56
#9楼
回复 #8楼 知道一点
算法是对的,结果不理想,那是给的已知条件造成的

如果用600脉冲编码器,就是正负1转

要是用6000脉冲的,还可以正负0.1呢


其实一般来说1秒的刷新速度已经不错了,但要求0.1秒,也不是不行

改一下配置就可以了


但是要拖拉机开出跑车的速度,不好意思,做不到。
大家一起学习

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005