向钱冲
级别: 略有小成
精华主题: 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重新编辑 ]
向钱冲
级别: 略有小成
精华主题: 0
发帖数量: 285 个
工控威望: 428 点
下载积分: 4456 分
在线时间: 455(小时)
注册时间: 2010-10-05
最后登录: 2020-08-10
查看向钱冲的 主题 / 回贴
1楼  发表于: 2012-07-17 22:47
"应该是D> D8340 D5,感觉你的程序有错误哦"
回一楼:问题是在DSUB D0 K2000 D5这条指令执行结果是D5的值是598000,但在57步中D5的值却不是598000,的时甚至是负数,不过有时间按你说的在大于号前面加个D试试看。谢谢各位的回复。