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

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

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

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

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

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

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