xqx666
深圳中級電工
級別: 家園常客
|
看了半天都沒人肯上程序,樓主,不好意思,小弟來晚了,請看程序 給我加點分吧 |
|
---|---|---|
本帖最近評分記錄:
|
xqx666
深圳中級電工
級別: 家園常客
|
其實你說的要在HMI上設定任意位置來實現程序,那個所謂的傳說中的“冒泡程序”我還真寫不出來,所以剛剛看了以上版主所說的思路,馬上試了一下,這程序還算是比較簡單。有空多多交流 |
|
---|---|---|
|
fengbingyuan
合作共贏
級別: 略有小成
|
很感謝朋友的熱心幫助,但是,你的程序好象還不能實現我要的這個功能,因為PLSY K2000 DXXX Y0中的DXXX脈沖數量應該是根據前后兩個位置的會不斷變化的.不過很感謝你的指點! [ 此帖被fengbingyuan在2010-07-29 22:28重新編輯 ] |
---|---|
|
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清零。 程序剛剛幫你改過了,取絕對值行走的話不會有問題。 |
|
---|---|---|
本帖最近評分記錄:
|
張平全
為國出力的時候到了
級別: 家園常客
|
這種結構當然是非常理想,每打一個產品,就有一個效驗原點的機會,我用松下FPG,FPX都做過類似的東西,是用在自動分選系統上的,但我的現場是有可能運行大半天,也只有一個機會會出現在"原點"上,這就會造成累計誤差的增大風險 樓上XQX666是精華! |
---|---|
|
fengbingyuan
合作共贏
級別: 略有小成
|
打完第2個螺絲(即5號螺絲)的時候,D2=700-400=300,下一步打第3個螺絲(即4號螺絲)的時候,4號螺絲的絕對距離D3=300,執行SUB D3 D2 D3后,發脈沖PLSY K2000 D3 Y0中的D3=0啊,那怎么會跑到打4號螺絲位呢?請教…… |
---|---|
|
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個脈沖,記住是相對位置,只是打第一個螺絲才是絕對位置。 |
|
---|---|---|
本帖最近評分記錄:
|
fengbingyuan
合作共贏
級別: 略有小成
|
只是打第一個螺絲才是絕對位置是沒錯。但是,D3的值你都已經在HMI上輸入等于300了,在執行SUB D3 D2 D3前,D300應該是等于300才對啊,D3的值怎么會等于400了呢?哪里來D3-D2=400-300? |
---|---|
|