向钱冲
级别: 略有小成
精华主题: 0
发帖数量: 285 个
工控威望: 428 点
下载积分: 4456 分
在线时间: 455(小时)
注册时间: 2010-10-05
最后登录: 2020-08-10
查看向钱冲的 主题 / 回贴
楼主  发表于: 2012-07-17 15:37
各位老师好!我在做定位控制中,要把DRVA指令运行当中的当前值减去K2000,假如我设定发出的脉冲数是D0是K600000,当脉冲发到580000个时M0接通,发到590000个脉冲时M1接通,但我在运行监视当中并未能按照我的要求动作,D8340和D0以及其它D里面的值都不对,D0甚至都不是600000,D8340(其实我也知道Y0发出脉冲值是在D8340和D8341里面)里面的也都不是当前所发出脉冲的值,而且还有负数出现(脉冲发完了也还有负数显示,动作完成后我都把K0传送到D8340和D8341里面),为什么?要怎样做才是对的?后来我只能不用这些指令了,但是我做的这台氩弧焊焊接设备如果能按照我的想法动作效果会更好(Y7是焊接控制,焊接完成前收弧)。下图是我做的差不多的梯形图(应用中我做的梯形图是步进梯形图,D值的设定用文本屏)。
[ 此帖被向钱冲在2012-07-17 17:07重新编辑 ]
huangyuehua
级别: 略有小成
精华主题: 0
发帖数量: 152 个
工控威望: 340 点
下载积分: 456 分
在线时间: 79(小时)
注册时间: 2007-06-10
最后登录: 2020-02-28
查看huangyuehua的 主题 / 回贴
1楼  发表于: 2012-07-18 08:30
Y0输出脉冲的当前值是D8140,D8141吧.还有如果你要要精度很高的话,就是说你总共发60000个,在58000的时候输出一个信号,不能直接这样比较.应该使用高速计算器进行中断.这样才准.