fengbingyuan
别怕!别怕!哥哥什么诱惑都能抵挡得了,除了钱!
级别: 略有小成
精华主题: 0
发帖数量: 218 个
工控威望: 269 点
下载积分: 857 分
在线时间: 429(小时)
注册时间: 2008-04-03
最后登录: 2023-11-01
查看fengbingyuan的 主题 / 回贴
楼主  发表于: 2010-07-28 21:18
[attachment=43416] [attachment=43417]
如图所示,在一个工件上有8个螺丝要打,圆圈位置是要打螺丝的位置,由一台步进电机带着螺杆控制打螺丝的机构左右移动至各个打螺丝的位置进行打螺丝。
    要求:打螺丝的顺序可以在触摸屏任意设定,如在触摸屏上设定顺序为23146758,即表示打螺丝顺序为:2#螺丝——3#螺丝——1#螺丝——4#螺丝——6#螺丝——7#螺丝——5#螺丝——8#螺丝;如果设定顺序为86134275,即表示打螺丝顺序为:8#螺丝——6#螺丝——1#螺丝——3#螺丝——4#螺丝——2#螺丝——7#螺丝——5#螺丝。

要实现以上功能,我想在触摸屏上放8个数据区D100,D101,D102,D103,D104,D105,D106,D107。分别用来存放这8个位置的螺丝号,PLC按这个指定的顺序去控制打螺丝。
但是这个打螺丝的顺序可以在触摸屏任意设定,这样组合有很多啊,不可能一个一个在程序里写出来吧,如何编程实现这个任意指定顺序的打螺丝的控制?
    望大家能指点一下这个编程的思路或方法,谢谢!!
[ 此帖被fengbingyuan在2010-07-28 21:44重新编辑 ]
fengbingyuan
别怕!别怕!哥哥什么诱惑都能抵挡得了,除了钱!
级别: 略有小成
精华主题: 0
发帖数量: 218 个
工控威望: 269 点
下载积分: 857 分
在线时间: 429(小时)
注册时间: 2008-04-03
最后登录: 2023-11-01
查看fengbingyuan的 主题 / 回贴
1楼  发表于: 2010-07-28 21:40

引用
引用第1楼lamborzhou于2010-07-28 21:30发表的  :
如果是三菱的话可以用绝对位置控制,8个号对应8个绝对位置值,在触摸屏上放8个按键驱动,西门子的我不太了解,你可以照这个思路去想一想吧!愿你早日成功!
可以具体点吗?是不是要用变址(D100Z0)?编程思路是怎样的?
[ 此帖被fengbingyuan在2010-07-28 21:49重新编辑 ]
fengbingyuan
别怕!别怕!哥哥什么诱惑都能抵挡得了,除了钱!
级别: 略有小成
精华主题: 0
发帖数量: 218 个
工控威望: 269 点
下载积分: 857 分
在线时间: 429(小时)
注册时间: 2008-04-03
最后登录: 2023-11-01
查看fengbingyuan的 主题 / 回贴
2楼  发表于: 2010-07-29 22:21
引用
引用第13楼xqx666于2010-07-29 21:42发表的  :
其实你说的要在HMI上设定任意位置来实现程序,那个所谓的传说中的“冒泡程序”我还真写不出来,所以刚刚看了以上版主所说的思路,马上试了一下,这程序还算是比较简单。有空多多交流

很感谢朋友的热心帮助,但是,你的程序好象还不能实现我要的这个功能,因为PLSY K2000 DXXX Y0中的DXXX脉冲数量应该是根据前后两个位置的会不断变化的.不过很感谢你的指点!
[ 此帖被fengbingyuan在2010-07-29 22:28重新编辑 ]
fengbingyuan
别怕!别怕!哥哥什么诱惑都能抵挡得了,除了钱!
级别: 略有小成
精华主题: 0
发帖数量: 218 个
工控威望: 269 点
下载积分: 857 分
在线时间: 429(小时)
注册时间: 2008-04-03
最后登录: 2023-11-01
查看fengbingyuan的 主题 / 回贴
3楼  发表于: 2010-07-31 10:24
引用
引用第16楼xqx666于2010-07-30 09:14发表的  :

再向你讲解一下这个程序,例如:你的位置1=0,(步进电机的原点要装在此处)所以D8140=0
                                       2=100,
                                        3=200,4=300,5=400,6=500,7=600,8=700,意思是说你的每个打螺丝的位置是等距,当然可以不是等距,
当你在想在HMI上面设定位置流程比如是8,5,4,7,6,1,2,3这几个位置时,对应输入的数据为700,400,300,600,500,0,100,200,
.......

打完第2个螺丝(即5号螺丝)的时候,D2=700-400=300,下一步打第3个螺丝(即4号螺丝)的时候,4号螺丝的绝对距离D3=300,执行SUB D3 D2 D3后,发脉冲PLSY K2000 D3 Y0中的D3=0啊,那怎么会跑到打4号螺丝位呢?请教……
fengbingyuan
别怕!别怕!哥哥什么诱惑都能抵挡得了,除了钱!
级别: 略有小成
精华主题: 0
发帖数量: 218 个
工控威望: 269 点
下载积分: 857 分
在线时间: 429(小时)
注册时间: 2008-04-03
最后登录: 2023-11-01
查看fengbingyuan的 主题 / 回贴
4楼  发表于: 2010-07-31 20:49
引用
引用第21楼xqx666于2010-07-31 20:10发表的  :

打完第2个螺丝(即5号螺丝)的时候,D2=700-400=300,下一步打第3个螺丝(即4号螺丝)的时候,因为第3个螺丝与第2个螺丝的相对位置等于D3-D2=400-300=100,所以执行SUB D3 D2 D3后,发脉冲PLSY K2000 D3 Y0中的D3=100,所以后退100个脉冲,记住是相对位置,只是打第一个螺丝才是绝对位置。

只是打第一个螺丝才是绝对位置是没错。但是,D3的值你都已经在HMI上输入等于300了,在执行SUB D3 D2 D3前,D300应该是等于300才对啊,D3的值怎么会等于400了呢?哪里来D3-D2=400-300?