日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PMAC应用三-运动程序

發布時間:2023/12/29 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PMAC应用三-运动程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PMAC應用三-運動程序

  • 編寫一個運動程序
    • 運動程序格式
    • 運動模式
    • 位置模式
    • 移動參數
    • 運動程序例子
  • 線性移動參數說明
    • TA TS TM F Frax
    • Delay Dwell的區別
    • 同步變量賦值
  • 結后語

編寫一個運動程序

???????前面我們已經知道了怎么定義一個坐標系,現在我們可以開始先建立一個坐標系1,再編寫一個簡單的運動程序,先來看一個例子。

undefine all // 清除所有坐標系定義 &1 //定義一個坐標系 #1->x //將1號電機分配給X軸 #2->y //將2號電機分配給Y軸 #3->z //將3號電機分配給Z軸 open prog 1 //打開程序1 linear abs //直線絕對值運動模式 ta 300 ts 100 td 300 f 30 //加速度時間為300ms S型曲線時間為100ms 減速度時間為300 進給速度為30 x 0 y 0 z 10 //X移動10個用戶單元 Y不移動 Z移動10個用戶單元 x 10 y 10 z 10 x10 y0 z10 x0 y 10 z 0 close //關閉運動程序

運動程序格式

???????所有的動作程序都必須有一個打開陳述(open prog ****)和一個結尾陳述(close),程序名可按自己功能定義,e.g.open prog Montion_Proggram

運動模式

???????運動模式分為5種,分別為linear,pvt, circle,spline,rapid,官方解釋如下:

  • linear
    ???????線性插值混合運動。梯形速度與時間的關系,笛卡爾坐標系下的直線路徑。

  • pvt
    ???????以指定的端點位置和速度和指定的移動時間進行移動。對拋物線速度與時間的關系使用厄米-樣條(一種插值算法)路徑。

  • circle
    ???????以指定的中心或半徑和終點作圓周運動。

  • spline
    ???????樣條模式提供三次b樣條(三次位置與時間的微分方程)將軸上的一系列點混合在一起。

  • rapid
    ???????主要目的是極小時間點對點移動,給定速度,加速度,和沖擊約束,快速是唯一可以從PLC程序命令的移動模式。

位置模式

  • abs
    ???????使用絕對定位
  • inc
    ???????使用增量式定位

移動參數

  • 對于線性和圓周運動模式
    加速時間(Ta)
    減速時間(Td)
    S型曲線時間(Ts)
    移動時間(Tm)
    以上參數單位均位毫秒(ms)
    如果是進給軸,移動時間是進給速率(F),單位是:用戶單位/Coord[x].FeedTime。(可使用FRAX函數定義進給軸)

  • 對于樣條模,每個樣條移動包含3段持續時間,指定段時間可可改變方法
    spline{data0} :將3段時間設置為{data0}
    spline{data0}spline{data1} :將T0設置為{data0},T1和T2為{data1}
    spline{data0}spline{data1}spline{data2} :將T0設置為{data0},T1為{data1},T2為{data2}
    計算和執行移動段0,并暫時計算段1和段2,但尚未執行,下一個程序樣條移動可以改變這些時間(它的T0是這個移動的T1;它的T1是這個移動的T2)

  • 對于PVT模式
    pvt {Time}
    {Axis}{Position}:{Velocity}

Inc // 增量移動 pvt 1000 // 1000 ms移動時間 X 20:1.5 //X點為20個用戶單位,點速度為1.5進給單位

運動程序例子

上面講解了幾種運動模式及與運動模式相關的嘗試,下面是一個線性運動的例子。

open prog Motion_Program linear abs //線性絕對值 ta 300 ts 100 td 300 f 30 加速度時間300 s型曲線時間100 減速時間300 矢量軸進給速30 dwell 1 //等待1ms,dwell與普通的延時不同,dwell不會對后面的移動或邏輯進行計算或判斷X 12.0666623184884703 Y -2.55370140075683594 Z 175.31781379350133X 12.0667004654611265 Y -2.55370140075683594 Z 342.974248567900133 dwell 0 call Timer(m89) //一個延時子程序 X 12.0666733527865606 Y -2.55370140075683594 Z 278.997280101779666 A -0.432743549346923828 X 12.0666619086947637 Y 87.0913314819335938 Z 278.998695116046633 A -0.432743549346923828 call Timer(10) X 12.0666623184884703 Y -2.55370140075683594 Z 175.31781379350133 A -0.43274688720703125 dwell 0 m86=0; m87=0; close

線性移動參數說明

TA TS TM F Frax

  • TA:混合移動(線性和圓形模式)之間的部分指令加速時間,以及這些移動從開始到停止的時間
  • TS:指定在線性和圓形模式混合移動中在s曲線加速度中花費的總加速時間的開始和結束時間

    如果Ta>=Ts
    總加速時間=Ta+Ts總加速時間=Ta+Ts=Ta+Ts
    如果Ta<Ts
    總加速時間=2×Ts總加速時間=2\times Ts=2×Ts
    如果Td>=Ts
    總加速時間=Td+Ts總加速時間=Td+Ts=Td+Ts
    如果Td<Ts
    總加速時間=2×Ts總加速時間=2\times Ts=2×Ts
  • TM:線性模式和圓形模式在加速開始和減速開始之間所需要的時間。

    如果Tm>=總的加減速時間
    總移動時間=Tm+總的加減速時間總移動時間=Tm+總的加減速時間=Tm+
    如果Tm<總的加減速時間
    總移動時間=2×總的加減速時間總移動時間=2\times 總的加減速時間=2×
  • F:為線性和圓形模式混合移動設置命令速度[用戶單位/Coord[x].FeedTime]
    速度單位:(用戶距離單位/用戶時間單位)
    用戶距離單位:(在軸中定義)
    用戶時間單位:(在Coord[x].FeedTime參數定義)
如果用戶距離單位時mm,Coord[x].FeedTime = 1000(默認值),F 10表示10mm/s F {velocity} //指定進給軸的速度 F 10 Frax(Axes) // 矢量進給軸定義 Frax(x,y,z)

當使用F時,TM的值如下計算:
TM=總的距離F?總的加減時間TM=\frac{總的距離} {F} -總的加減時間TM=F??
當定義TM而不是F時,F最大值為:
Fmax=勻速的距離TMFmax=\frac{勻速的距離}{TM} Fmax=TM?

  • Frax:指定哪些坐標軸在進給量計算中
    當在一個移動中涉及多個軸時,例如XYZ笛卡爾坐標系中,需要將距離計算指定為用于移動時間計算的向量長度,:任何非進給軸移動與進給軸移動在同一條線上,將在相同的時間內完成.
    e.g.
    Frax(x,y,z):表示距離從X, Y, Z軸計算(默認值)
    矢量距離=X2+Y2+Z2矢量距離=\sqrt{X^2+Y^2+Z^2}=X2+Y2+Z2?

Delay Dwell的區別

Delay

  • 如果延遲發生在混合移動之后,則該移動的TA減速時間發生在延遲時間內,而不是之前
  • 如果指定的延遲時間小于當前有效的加速時間(TA或2*TS),整個延遲將在加速期間發生,實際上根本不發生
  • :延遲的實際時間會隨著時間基數的變化而變化(當前%值,來自任何源)
  • 在延遲期間,PMAC會預先計算即將到來的移動(以及它們之前的線路)

Dwell

  • 如果上一個是混合移動,在暫停時間開始之前會有一個TA時間減速到停止
  • 對變化的時間基不敏感,它總是在實時運行(Sys.ServoPeriod參數所定義)
  • 在Dwell期間,Power PMAC不會預先計算即將到來的移動(以及它們之前的程序行),它會等待,直到完成后開始進一步的計算

同步變量賦值

由于PMAC對與移動無關的數值計算進行了預先處理,因此通常的變量分配可能會在用戶預期之前執行,若要強制在下一個移動開始時進行變量分配,請使用同步變量賦值,就像一個普通的變量賦值,但是在賦值表達式中使用==而不是=,可以用于global, csglobal或ptr變量(除了自分配的prt變量)

ClearGlue == 1 //當運動開始時,變量輸出1X 12.0667004654611265 Y -2.55370140075683594 Z 342.974248567900133 A -0.43274688720703125 ClearGlue == 0 X 12.0666733527865606 Y -2.55370140075683594 Z 278.997280101779666 A -0.432743549346923828 ClearGlueLidOpen == 0 X 12.0666619086947637 Y 87.0913314819335938 Z 278.998695116046633 A -0.432743549346923828 ToolRotationEnable == 0 // //當運動結束時,變量輸出0

結后語

這一節總結了運動程序的一些參數,下一節總結一下PLC腳本程序。

Power PMAC 5-Day Training (Plus Opt ECAT Training)

總結

以上是生活随笔為你收集整理的PMAC应用三-运动程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。