tzyfl4444
級別: 略有小成
|
這個要通過程序做 ,比如第一個位置到了之后再走第二個,比如一共3個位置。這些位置該怎么去寫,比如就用一個DDRVA D200 D202 Y0 Y4 .就是不知道該怎么出處理這個D200和d202的值。謝謝了 |
---|---|
|
pretco123
不為失敗找理由,只為成功找方法
級別: 論壇先鋒
|
for example: DDRVA D600 D500 Y0 Y1的意思是讀取d600和d601寄存器的數值,該數值是脈沖發出的總數。讀取d500與d501寄存器的數值作為脈沖的發出頻率。脈沖的發出位置是y0,方向脈沖發出位置是y1。因為drva指令是絕對位置指令,因此y1是否輸出取決于d600與d601所表示的數字是否為正。正數則輸出脈沖,負數則不輸出脈沖。摘引于度娘。 |
---|---|
|
tzyfl4444
級別: 略有小成
|
好像 明白了,但是這個程序,第一個位置到了2000,我把第二個位置寫進去4000,第三個位置在軸是0 ,但是反轉到2000就又給4000了。到不了零。這個就不知道程序怎么處理了 |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
|
我都用最笨的辦法,整個程序中每個軸只有一處脈沖驅動指令(手動不算,手動是單寫的),通過管理寄存器的值和啟動條件進行位置切換。 最愚蠢的辦法就是 ld GoPos1 D200=位置1,D202=速度1 ld GoPos2 D200=位置2,D202=速度2 ld GoPos3 D200=位置3,D202=速度3 .。。。 ld GoPosn D200=位置n,D202=速度n 然后GoPos1~GoPosn是嚴格互斥的,任意時刻只有一個被置位,位置多了專門用一個D寫索引做數值比較也是可以的(還可以用間接尋址,更方便) 任意posn置位后會同步輸出 act,類似于 GoPos1 or GoPos2 or GoPos3.。。or GoPosn out Act 然后 ld Act DDRVA D200 D202 Y0 Y4 同時運動結束觸點輸出到EndPosn ld m8029 and GoPos1 set EndPos1 and GoPos2 set EndPos2 and GoPos2 set EndPos2 。。。 and GoPosn set EndPosn 然后程序里面就超級簡單了,要去哪個位置直接置位,比如說去位置1直接set GoPos1,然后等著EndPos1來進入下一步,基本上把伺服當氣缸用~ |
---|---|
|