liufuyejin
级别: 略有小成
精华主题: 1 篇
发帖数量: 116 个
工控威望: 298 点
下载积分: 767 分
在线时间: 60(小时)
注册时间: 2007-09-15
最后登录: 2012-10-15
查看liufuyejin的 主题 / 回贴
楼主  发表于: 2011-03-02 21:11
我用一台FX3U PLC控制松下伺报,刚开始只用几百步来程序来调试定位很精确,但是我把程序写完后,步数多了,有6~~7千步,这时定位就不准了,每个来回都不同,请问各路高人,有什么方法来解决这个问题???/
                 谢谢!
ykykkhor
Best Regards,YK
级别: 略有小成
精华主题: 0
发帖数量: 259 个
工控威望: 308 点
下载积分: 139024 分
在线时间: 559(小时)
注册时间: 2009-07-30
最后登录: 2024-11-17
查看ykykkhor的 主题 / 回贴
1楼  发表于: 2011-03-03 22:51
引用
引用第4楼jian.abcde于2011-03-03 14:07发表的  :
几百步来程序来调试定位很精确,是因程序扫描周期短,所以精确。步数多了,有6~~7千步,这时定位就不准了,是因程序扫描周期太长,所以不准了。可以用子程序调用指令CALL,重复多用几次CALL,应该能解决。

1) 的确是受因程序扫描周期影响, 不过依然是由于编程的方法有很大的进步空间。
2) 一个好的程序不应轻易被多了步数、延长了程序扫描周期而定位精确度受影响的。
3) 使用 CALL 是好方法, 如果编写程序的方法更进步是可以避免被 CALL 的。
4) 加油!!! 祝你成功 !
ykykkhor
Best Regards,YK
级别: 略有小成
精华主题: 0
发帖数量: 259 个
工控威望: 308 点
下载积分: 139024 分
在线时间: 559(小时)
注册时间: 2009-07-30
最后登录: 2024-11-17
查看ykykkhor的 主题 / 回贴
2楼  发表于: 2011-03-06 22:32
引用
引用第8楼liufuyejin于2011-03-05 09:09发表的  :
我一开始写的时候就有想过这个问题,就是用子程序来控制的,在电脑上看,PLC发的脉冲也是准确的,我都烦死了,因为机台控制的东西多,程序要写那么长。(楼上的朋友指的多处调用,是不是在多个地方插入CALL来控制?)

1) CALL 是即时中断主程序, 直接跳入子程序, 靠 RET (A / Q) 或者 SRET (FX) 回调主程序中断处继续执行, 所以应该直接影响扫描时间
2) 忘记回调主程序 RET (A / Q) 或者 SRET (FX)
3) CALL 是即时中断调用子程序, 子程序仅做一次性的执行, 如果脉冲无法在执行中发完, 那么脉冲 。。。。。就会被中断了
4) 脉冲指令应该用在主程序中
5) 把程序发上来, 好让我们一起研究, 不必绕了一大圈仍然在猜想你的程序是怎么写的
6) 加油!!!