tzyfl4444
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 461 個
工控威望: 496 點
下載積分: 1085 分
在線時間: 429(小時)
注冊時間: 2016-01-05
最后登錄: 2024-10-29
查看tzyfl4444的 主題 / 回貼
樓主  發(fā)表于: 2023-11-29 14:58
這個要通過程序做 ,比如第一個位置到了之后再走第二個,比如一共3個位置。這些位置該怎么去寫,比如就用一個DDRVA   D200 D202  Y0 Y4 .就是不知道該怎么出處理這個D200和d202的值。謝謝了
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 745 個
工控威望: 1123 點
下載積分: 348 分
在線時間: 586(小時)
注冊時間: 2019-09-22
最后登錄: 2024-11-06
查看gxtmdb82164的 主題 / 回貼
1樓  發(fā)表于: 2023-11-29 16:17
我都用最笨的辦法,整個程序中每個軸只有一處脈沖驅(qū)動指令(手動不算,手動是單寫的),通過管理寄存器的值和啟動條件進行位置切換。

最愚蠢的辦法就是
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寫索引做數(shù)值比較也是可以的(還可以用間接尋址,更方便)

任意posn置位后會同步輸出 act,類似于 GoPos1 or GoPos2 or GoPos3.。。or GoPosn out Act 然后

ld Act DDRVA   D200 D202  Y0 Y4
同時運動結(jié)束觸點輸出到EndPosn
ld m8029 and GoPos1 set EndPos1
                and GoPos2 set EndPos2
                and GoPos2 set EndPos2
                。。。
                and GoPosn set EndPosn

然后程序里面就超級簡單了,要去哪個位置直接置位,比如說去位置1直接set GoPos1,然后等著EndPos1來進入下一步,基本上把伺服當氣缸用~