fengbingyuan
合作共贏
級別: 略有小成
![]() |
[attachment=43416] [attachment=43417] ![]() 要求:打螺絲的順序可以在觸摸屏任意設定,如在觸摸屏上設定順序為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重新編輯 ] |
---|---|
|
xqx666
深圳中級電工
級別: 家園常客
![]() |
看了半天都沒人肯上程序,樓主,不好意思,小弟來晚了,請看程序 給我加點分吧 |
|
---|---|---|
本帖最近評分記錄:
|
xqx666
深圳中級電工
級別: 家園常客
![]() |
其實你說的要在HMI上設定任意位置來實現程序,那個所謂的傳說中的“冒泡程序”我還真寫不出來,所以剛剛看了以上版主所說的思路,馬上試了一下,這程序還算是比較簡單。有空多多交流 |
|
---|---|---|
|
xqx666
深圳中級電工
級別: 家園常客
![]() |
再向你講解一下這個程序,例如:你的位置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, 當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清零。 程序剛剛幫你改過了,取絕對值行走的話不會有問題。 |
|
---|---|---|
|
xqx666
深圳中級電工
級別: 家園常客
![]() |
再向你講解一下這個程序,例如:你的位置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, 當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清零。 程序剛剛幫你改過了,取絕對值行走的話不會有問題。 |
|
---|---|---|
本帖最近評分記錄:
|
xqx666
深圳中級電工
級別: 家園常客
![]() |
打完第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個脈沖,記住是相對位置,只是打第一個螺絲才是絕對位置。 |
|
---|---|---|
本帖最近評分記錄:
|