fengbingyuan
合作共贏
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 219 個
工控威望: 269 點
下載積分: 857 分
在線時間: 430(小時)
注冊時間: 2008-04-03
最后登錄: 2024-12-22
查看fengbingyuan的 主題 / 回貼
樓主  發(fā)表于: 2010-07-28 21:18
[attachment=43416] [attachment=43417]
如圖所示,在一個工件上有8個螺絲要打,圓圈位置是要打螺絲的位置,由一臺步進電機帶著螺桿控制打螺絲的機構(gòu)左右移動至各個打螺絲的位置進行打螺絲。
    要求:打螺絲的順序可以在觸摸屏任意設(shè)定,如在觸摸屏上設(shè)定順序為23146758,即表示打螺絲順序為:2#螺絲——3#螺絲——1#螺絲——4#螺絲——6#螺絲——7#螺絲——5#螺絲——8#螺絲;如果設(shè)定順序為86134275,即表示打螺絲順序為:8#螺絲——6#螺絲——1#螺絲——3#螺絲——4#螺絲——2#螺絲——7#螺絲——5#螺絲。

要實現(xiàn)以上功能,我想在觸摸屏上放8個數(shù)據(jù)區(qū)D100,D101,D102,D103,D104,D105,D106,D107。分別用來存放這8個位置的螺絲號,PLC按這個指定的順序去控制打螺絲。
但是這個打螺絲的順序可以在觸摸屏任意設(shè)定,這樣組合有很多啊,不可能一個一個在程序里寫出來吧,如何編程實現(xiàn)這個任意指定順序的打螺絲的控制?
    望大家能指點一下這個編程的思路或方法,謝謝!
[ 此帖被fengbingyuan在2010-07-28 21:44重新編輯 ]
xqx666
深圳中級電工
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 553 個
工控威望: 664 點
下載積分: 1988 分
在線時間: 280(小時)
注冊時間: 2009-04-29
最后登錄: 2024-12-23
查看xqx666的 主題 / 回貼
1樓  發(fā)表于: 2010-07-29 21:39
看了半天都沒人肯上程序,樓主,不好意思,小弟來晚了,請看程序
給我加點分吧
附件: 打螺絲程序.rar (11 K) 下載次數(shù):64
網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
本帖最近評分記錄:
  • 下載積分:+1(fengbingyuan) 熱心助人
  • 電工廢話太多,直接上程序才是硬道理。誠交深圳及全國工控低手。
    xqx666
    深圳中級電工
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 553 個
    工控威望: 664 點
    下載積分: 1988 分
    在線時間: 280(小時)
    注冊時間: 2009-04-29
    最后登錄: 2024-12-23
    查看xqx666的 主題 / 回貼
    2樓  發(fā)表于: 2010-07-29 21:42
    其實你說的要在HMI上設(shè)定任意位置來實現(xiàn)程序,那個所謂的傳說中的“冒泡程序”我還真寫不出來,所以剛剛看了以上版主所說的思路,馬上試了一下,這程序還算是比較簡單。有空多多交流
    電工廢話太多,直接上程序才是硬道理。誠交深圳及全國工控低手。
    xqx666
    深圳中級電工
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 553 個
    工控威望: 664 點
    下載積分: 1988 分
    在線時間: 280(小時)
    注冊時間: 2009-04-29
    最后登錄: 2024-12-23
    查看xqx666的 主題 / 回貼
    3樓  發(fā)表于: 2010-07-30 09:14
    引用
    引用第15樓fengbingyuan于2010-07-29 22:21發(fā)表的  :

    很感謝朋友的熱心幫助,但是,你的程序好象還不能實現(xiàn)我要的這個功能,因為PLSY K2000 DXXX Y0中的DXXX脈沖數(shù)量應該是根據(jù)前后兩個位置的會不斷變化的.不過很感謝你的指點!

    再向你講解一下這個程序,例如:你的位置1=0,(步進電機的原點要裝在此處)所以D8140=0
                                           2=100,
                                            3=200,4=300,5=400,6=500,7=600,8=700,意思是說你的每個打螺絲的位置是等距,當然可以不是等距,
    當你在想在HMI上面設(shè)定位置流程比如是8,5,4,7,6,1,2,3這幾個位置時,對應輸入的數(shù)據(jù)為700,400,300,600,500,0,100,200,
    當M101接通時,            首先D1取絕對值,D8> D8140,所以Y2接通步進電機前進到D1=700的位置,
    這步完成后M102ON,       首先D2取絕對值,D5< D8       ,所以Y2斷電步進電機后退到D2=300
    這步完成后M103ON,       首先D3取絕對值,D4< D5       ,所以Y2斷電步進電機后退到D3=100
    這步完成后M104ON,       首先D4取絕對值,D7> D4       ,所以Y2接通步進電機前進到D4=300
    這步完成后M105ON,       首先D5取絕對值,D6< D7      ,所以Y2斷電步進電機后退到D5=100
    這步完成后M106ON,       首先D6取絕對值,D1< D6      ,所以Y2斷電步進電機前進到D6=500
    這步完成后M107ON,       首先D7取絕對值,D2< D1     ,所以Y2斷電步進電機前進到D7=100
    這步完成后M106ON,       首先D8取絕對值,D3< D2     ,所以Y2斷電步進電機前進到D8=100
    以上位置完成后步進電機ZRN K2000 K200 X3 Y0回原點,D8140清零。
    程序剛剛幫你改過了,取絕對值行走的話不會有問題。
    附件: 取絕對值打螺絲.rar (11 K) 下載次數(shù):54
    網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
    電工廢話太多,直接上程序才是硬道理。誠交深圳及全國工控低手。
    xqx666
    深圳中級電工
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 553 個
    工控威望: 664 點
    下載積分: 1988 分
    在線時間: 280(小時)
    注冊時間: 2009-04-29
    最后登錄: 2024-12-23
    查看xqx666的 主題 / 回貼
    4樓  發(fā)表于: 2010-07-30 09:19
    再向你講解一下這個程序,例如:你的位置1=0,(步進電機的原點要裝在此處)所以D8140=0
                                           2=100,
                                            3=200,4=300,5=400,6=500,7=600,8=700,意思是說你的每個打螺絲的位置是等距,當然可以不是等距,
    當你在想在HMI上面設(shè)定位置流程比如是8,5,4,7,6,1,2,3這幾個位置時,對應輸入的數(shù)據(jù)為700,400,300,600,500,0,100,200,
    當M101接通時,            首先D1取絕對值,D1> D8140,所以Y2接通步進電機前進到D1=700的位置,
    這步完成后M102ON,       首先D2取絕對值,D2< D1       ,所以Y2斷電步進電機后退到D2=300
    這步完成后M103ON,       首先D3取絕對值,D3< D2       ,所以Y2斷電步進電機后退到D3=100
    這步完成后M104ON,       首先D4取絕對值,D4> D3       ,所以Y2接通步進電機前進到D4=300
    這步完成后M105ON,       首先D5取絕對值,D5< D4      ,所以Y2斷電步進電機后退到D5=100
    這步完成后M106ON,       首先D6取絕對值,D6< D5      ,所以Y2斷電步進電機前進到D6=500
    這步完成后M107ON,       首先D7取絕對值,D7< D6     ,所以Y2斷電步進電機前進到D7=100
    這步完成后M106ON,       首先D8取絕對值,D8< D7     ,所以Y2斷電步進電機前進到D8=100
    以上位置完成后步進電機ZRN K2000 K200 X3 Y0回原點,D8140清零。
    程序剛剛幫你改過了,取絕對值行走的話不會有問題。
    本帖最近評分記錄:
  • 下載積分:+1(gumeng) 優(yōu)秀文章
  • 電工廢話太多,直接上程序才是硬道理。誠交深圳及全國工控低手。
    xqx666
    深圳中級電工
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 553 個
    工控威望: 664 點
    下載積分: 1988 分
    在線時間: 280(小時)
    注冊時間: 2009-04-29
    最后登錄: 2024-12-23
    查看xqx666的 主題 / 回貼
    5樓  發(fā)表于: 2010-07-31 20:10
    引用
    引用第20樓fengbingyuan于2010-07-31 10:24發(fā)表的  :

    打完第2個螺絲(即5號螺絲)的時候,D2=700-400=300,下一步打第3個螺絲(即4號螺絲)的時候,4號螺絲的絕對距離D3=300,執(zhí)行SUB D3 D2 D3后,發(fā)脈沖PLSY K2000 D3 Y0中的D3=0啊,那怎么會跑到打4號螺絲位呢?請教……

    打完第2個螺絲(即5號螺絲)的時候,D2=700-400=300,下一步打第3個螺絲(即4號螺絲)的時候,因為第3個螺絲與第2個螺絲的相對位置等于D3-D2=400-300=100,所以執(zhí)行SUB D3 D2 D3后,發(fā)脈沖PLSY K2000 D3 Y0中的D3=100,所以后退100個脈沖,記住是相對位置,只是打第一個螺絲才是絕對位置。
    本帖最近評分記錄:
  • 下載積分:+2(fengbingyuan) 熱心助人
  • 電工廢話太多,直接上程序才是硬道理。誠交深圳及全國工控低手。
    xqx666
    深圳中級電工
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 553 個
    工控威望: 664 點
    下載積分: 1988 分
    在線時間: 280(小時)
    注冊時間: 2009-04-29
    最后登錄: 2024-12-23
    查看xqx666的 主題 / 回貼
    6樓  發(fā)表于: 2010-08-01 18:35
    引用
    引用第25樓wxh0734于2010-08-01 09:25發(fā)表的  :
    絕對值相減,取出相對值,程序思路是對的,只是SUB D1 D2 D2這里可能要修改下,不要再指定D2的值了,可以另取一個比如說SUB D1 D2 D200后面的PLSY的位置值也就相對應D200,就可以了

    此程序的確有漏洞,每個SUB D? D? D?,是要另外指定其他的D,否則會重復運算。
    電工廢話太多,直接上程序才是硬道理。誠交深圳及全國工控低手。