本節內容主要包括以下幾個部分,支持PSO功能的硬件、PSO技術的特點、在運動控制器上使用哪些命令實現 PSO功能、PSO使用的案例說明。 看完本節內容,相信大家就能了解PSO的使用方法,下節我們將深入講解。
硬件平臺環境搭建視頻演示:https://v.youku.com/v_show/id_XNTg4NzYxODU1Ng==.html
一.硬件說明
硬件選型的首要要求是支持PSO功能,再分析PSO的應用場合和軸數等選擇具體的型號。
本例以ZMC406總線運動控 制器和ZMC460N雙總線運動控制器為例展開介紹,PSO所用的指令名也被稱為硬件比較輸出,故下文也會用硬件比較輸出代替PSO。
(一)ZMC406總線控制器
ZMC406總線控制器是正運動技術推出的新一代網絡6軸運動控制器(可通過擴展模塊來擴展軸,支持多達32軸),自帶六個脈沖軸接口包含差分脈沖輸出和差分編碼器輸入),支持脈沖驅動器和EtherCAT總線驅動器混合使用。
脈沖輸出頻率最大可達10MHZ,EtherCAT總線的通訊周期最快可達250微秒。
支持4路PSO輸出,輸出口非獨立,不能四路同時輸出,每個系統周期比較輸出一次,即每個系統周期只能輸出一路比較信號。
(二)ZMC460N雙總線控制器
ZMC460N雙總線控制器相比ZMC406所帶的資源更多,是正運動技術推出的新一代網絡60軸運動控制器(支持EtherCAT總線軸+RTEX總線軸+脈沖軸混合使用),自帶六個脈沖軸接口(包含差分脈沖輸出和差分編碼器輸入),通用輸出口支持配置為單端脈沖輸出,通用輸入口支持配置成單端編碼器輸入。
脈沖輸出頻率最大可達10MHZ,EtherCAT總線的通訊周期最快可達250微秒。
支持12路PSO輸出,輸出口獨立,支持12路同時輸出,每個系統周期可比較輸出多次,應用場景更為豐富。
這兩款控制器同屬高系列,功能強大,能滿足多種場合的需求,支持直線插補、連續插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、位置鎖存、同步跟隨、虛擬軸設置、硬件比較輸出、硬件定時器、運動中精準輸出等功能;采用優化的網絡通訊協議可以實現實時的運動控制。
應用程序可以使用正運動自主研發的ZDevelop軟件開發,或VC、VB、VS、C++Builder、C#等上位機軟件來開發。上位機開發調試時可以把ZDevelop軟件同時連接到控制器,程序運行時需要動態庫“zmotion.dll”。
下文以ZDevelop軟件開發為例。
控制器的基本參數說明如下表:
⊙PSO硬件比較輸出功能使用的是高速IO口,響應頻率為1MHz,響應速度可以精確到微秒級別。
用戶可以使用ZDevelop軟件連接控制器,在ZDevelop軟件的在線命令欄發送“?*max”打印查看更多控制器規格參數,“?*set”查看打印指令參數值,?*port打印通訊通道。
1.下圖為ZMC406總線控制器的參考架構:
ZMC406總線控制器的常用接口說明如下表:
2.下圖為ZMC460N雙總線控制器的參考架構:
ZMC460N雙總線控制器的常用接口說明如下表:
⊙均可通過CAN總線或EtherCAT總線擴展IO資源和軸資源。
硬件平臺與PSO指令視頻演示:https://live.csdn.net/v/225116
二.PSO的技術介紹
PSO(position synchronized output)即位置同步輸出,本質是通過采集實時的編碼器反饋位置(無編碼器可使用輸出的脈沖位置)與比較模式設定的位置進行比較,控制OP高速同步輸出信號,PSO示意圖如下。
PSO一般與激光器 (或點膠噴射閥等設備) 同步輸出信號進行相位同步,在運動軌跡的所有階段以恒定的空間(或者恒定時間)間隔觸發輸出開關,包括加速、減速和勻速段,從而實現脈沖能量均勻地作用在被加工物體上。
⊙PSO功能的特點就是能高速且穩定的輸出信號 , 因為輸出精度足夠高,所以能夠在整個運動軌跡中以固定的距離觸發輸出信號而不用考慮總體速度。
即在直線部分以很快的速度運動,而在圓角部分減速的同時也能保證輸出間距恒定,通常圓角加工部分在整個加工過程中占有比較小的部分,這樣在保證加工效果的同時,就可以最大限度地提高產能。
三.PSO相關指令介紹
實現PSO功能(即硬件比較輸出)功能使用的命令主要有“HW_PSWITCH2”、“MOVE_HWPSWITCH2”、“HW_TIMER”等,前兩個指令主要用于設定觸發比較輸出的距離,最后的命令是硬件定時,可配合前者使用精準控制輸出脈沖的寬度。
1 .HW_PSWITCH 2 -- 硬件位置比較輸出
(1)指令說明
通過設置比較條件,控制OP口連續高速輸出信號,控制器必須使用支持硬件比較輸出的輸出口,例如ZMC406可以使用OUT0/1/2/3口,ZMC460的OUT0-11均可使用。
支持比較脈沖軸的位置、編碼器的反饋位置和總線軸的位置。選用何種位置信息比較,與設置的ATYPE軸類型有關,比較的主軸帶編碼器輸入時,自動使用編碼器位置來觸發,不帶編碼器的場合便比較脈沖輸出。
可以使用“MOVEOP_DELAY”參數來調整輸出準確時刻。
(2)注意事項
一般控制器每個系統周期內只能比較一次,系統周期通過“SERVO_PERIOD”查詢,此時當系統周期過大時,而比較輸出脈沖寬度小于系統周期時將會導致輸出異常。部分控制器如ZMC460N、ZMC504SCAN等,每個系統周期支持比較多次,即支持多個比較輸出口在同一周期輸出比較信號。
⊙“HW_PSWITCH2”與“MOVE_OP”精準使用同樣的硬件資源,不建議在同一個通道同時使用,可以在不同的通道同時使用。
調用TABLE位置數據時,在所有比較點完成前不要修改TABLE。
使用脈沖型電機時只有ATYPE為4時才是比較反饋位置(MPOS),默認出廠的ATYPE為1或7比較的是命令位置(DPOS)。
(3)指令語法
HW_PSWITCH2(mode, [...])
mode模式不同,后面需要填寫的參數也不同,詳情需參考Basic手冊的語法說明。
舉兩個簡單且典型的模式展開描述。
A.Mode=1:單軸比較
HW_PSWITCH2( mode,opnum,opstate,tablestart,tableend[,direction])
mode:1-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
tablestart:第一個比較點絕對坐標所在TABLE編號
tableend:最后一個比較點絕對坐標所在TABLE編號
direction:第一個點判斷方向,0坐標負向,1坐標正向,-1不使用方向
此模式較為簡單,需要借助TABLE寄存器,把需要比較輸出的位置坐標先存儲到TABLE寄存器,然后PSO控制OP口每到達一個比較點的位置便反轉一次,直到全部坐標點比較完成。示意圖如下,P表示比較點,展示六個比較點的OP輸出情況。
B.Mode=2:清除比較點
HW_PSWITCH2(2)
mode:2-停止并刪除沒完成的比較點
⊙使用前需要調用此模式,清除可能沒有比較完成的數據。使用過程中也可以發送此命令,停止比較。
Mode=6:矢量比較方式,周期模式,與HW_TIMER一起使用
HW_PSWITCH2( mode, opnum, opstate, vectstart, repes, cycledis)
mode:6-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
vectstart:比較點VECTOR_MOVED當前運動距離
repes:重復周期,一個周期只比較一次
cycledis:周期距離,每隔這個距離輸出一次
此模式相對復雜一些,比較輸出的數據不參考TABLE,只需指定第一個觸發點的“VECTOR_MOVED”,比較周期的次數,每次輸出觸發的距離,“HW_TIMER”控制每到達一個周期觸發位置輸出的脈沖寬度和次數,參數設置可參考下方示意圖,紅色參數為HW_PSWITCH2指令的參數,橙色參數為HW_TIMER指令的參數。
此模式涉及的距離坐標均為矢量坐標,可用于單軸運動或插補運動模式下比較輸出。
例一: mode=1,單軸模式,比較TABLE的位置點。
BASE(0)
ATYPE=0
UNITS=10000/10
SPEED=100
ACCEL=1000
DECEL=1000
SRAMP=100
DPOS=0
MPOS=0
OP(0,OFF)
TABLE(0,50,100,150,200) '比較點坐標設置
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(1, 0, 1, 0, 3,1) '比較4個點,操作輸出口0
TRIGGER '觸發示波器
MOVE(300)
END
示波器采樣波形如下: 到達TABLE的四個坐標點50,100,150,200,OP反轉。
例二: mode=6,周期模式,結合HW_TIMER使用。
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)
ATYPE=1
UNITS=10000/10
SPEED=100
ACCEL=1000
DECEL=1000
SRAMP=100
DPOS=0
MPOS=0
OP(0,OFF)
TRIGGER
VECTOR_MOVED=0 '設置矢量起始位置為0,方便觀察
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(6,0,1,100,4,50) '位置100開始比較,比較4次周期距離50,輸出有效時間由HW_TIMER指令確定
HW_TIMER(2,100000,50000,2,off,0) '輸出變為on后50ms變為off
MOVE(400)
END
示波器波形如下:
輸出口為OP(0),第一次比較輸出的狀態為ON,第一個輸出點的矢量坐標為100,比較4次,間隔50的距離觸發一次。
每次觸發之后輸出OP的時間由HW_TIMER指令設置,HW_TIMER參數確定每次輸出脈沖的周期為100 ms,有效寬度為50ms,每個比較位置連續觸發2次。
YT模式下波形:
其他條件不變,將單軸運動改為MOVE(200,300)兩軸插補,波形如下,根據兩軸的合成矢量位置VECTOR_MOVED進行比較。
程序如下:
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)
ATYPE=1
UNITS=10000/10
SPEED=100
ACCEL=1000
DECEL=1000
SRAMP=100
DPOS=0
MPOS=0
OP(0,OFF)
TRIGGER
VECTOR_MOVED=0 '設置矢量起始位置為0,方便觀察
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(6,0,1,100,4,50) '位置100開始比較,比較4次周期距離50,輸出有效時間由HW_TIMER指令確定
HW_TIMER(2,100000,50000,2,off,0) '輸出變為on后50ms變為off
MOVE(200,300) '兩軸直線插補
END
XYZ模式下輸出波形如下:
2.HW_TIMER -- 硬件定時
(1) 指令說明
硬件定時器,用于硬件比較輸出后一段時間后還原電平。“ HW_TIMER”只有1個,每次調用會強制停止之前的調用。
OP和MOVE_OP操作會關閉正在進行的HW_TIMER脈沖,這樣可以使用HW_TIMER來實現類似PWM的功能,OP輸出打開脈沖輸出,下一個OP輸出關閉脈沖輸出,當使用MOVE_OP精準輸出時,可以實現精準的PWM輸出無限脈沖功能。
使用“?*HW_TIMER”可以看到還有多少脈沖剩余。
(2)注意事項
每個周期輸出一次信號,指令的周期時間的設置一定要大于系統周期,否則輸出異常。 輸出口需要指定支持PSO功能的OP口。
(3)指令語法
HW_TIMER(mode, cyclonetime, optime, reptimes, opstate, opnum )
mode:0停止,2-啟動
cyclonetime:周期時間,us單位
optime:有效時間,us單位
reptimes:重復次數,啟動模式,reptimes =0時,軟關閉HW_TIMER,原來的脈沖沒有完成的,會繼續輸出完成
opstate:輸出缺省狀態,輸出口變為非此狀態后開始計時
opnum:輸出口編號,必須能硬件比較輸出的口
參數設置可參考下方示意圖,此指令的效果是固定時間周期輸出。
例子:
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)
ATYPE=1
UNITS=100
SPEED=100
ACCEL=100
DECEL=100
DPOS=0
TRIGGER
DELAY(100)
OP(0, OFF)
HW_TIMER(2, 10000, 5000, 30, OFF, 0) '輸出口0變為ON后,硬件定時器觸發開始計時,周期為10ms,5ms 后切換為OFF,重復30次結束
OP(0, ON) '觸發定時
END
示波器采樣OP(0)波形如下: 采樣周期設置為1ms,表示橫軸時間的單位為1ms,延時100ms之后開始觸發OP高速輸出,指令作用的總時間為“10000us*30”。 第三個參數調整輸出脈沖的寬度。
3.MOVE_ HWPSWITCH2 -- 緩沖硬件比較輸出
此命令功能和用法同“HW_PSWITCH2”,區別是此命令會進運動緩沖區,在緩沖中執行比較。
PSO指令說明視頻鏈接:https://live.csdn.net/v/225117
四.等間距輸出脈沖的例子
采用“HW_PSWITCH2”指令的模式6,結合“HW_TIMER”控制單個軸高速等距輸出。
RAPIDSTOP(3)
WAIT IDLE(0)
GLOBAL CONST Axis_X = 0 '物理軸軸號定義
GLOBAL CONST Out_Pso0 = 0 'Pso硬件輸出口編號
BASE(Axis_X) '軸參數初始化
UNITS=1000 '脈沖當量 1MM對應的脈沖個數
ATYPE=4 '軸類型 脈沖輸出+編碼器輸入軸
DPOS=0
MPOS=0
SPEED=100
ACCEL=2000
DECEL=0
MERGE=1
OP(Out_Pso0,OFF)
GLOBAL g_cmd
g_cmd = 0
WHILE 1
IF g_cmd = 1 THEN
g_cmd = 0
TRIGGER
Function_Test1()
ENDIF
WEND
'********************************************************************************************
'等距離距離模式生成一個PWM脈沖,脈沖輸出時間可調。
'lv_WidthTime 脈沖寬度時間us
'lv_Interval 2個脈沖間隔 mm
'lv_StrartPos 觸發起始位置 mm
'lv_EndPos 結束位置
'********************************************************************************************
GLOBAL SUB Function_Test1() '在20-120范圍內每間隔1mm輸出一個持續2ms的脈沖
LOCAL lv_WidthTime,lv_Interval,lv_StrartPos,lv_EndPos '定義局部變量
lv_WidthTime = 2000 '脈沖寬度2000us
lv_Interval = 1 '脈沖間隔 1mm
lv_StrartPos = 20 '觸發起始位置 20mm位置
lv_EndPos = 120 '結束位置 120MM
OP(Out_Pso0,OFF) '關閉輸出口
BASE(Axis_X) '選定X軸
ATYPE = 4 '軸類型,比較軸類型帶編碼軸特性時默認按編碼器位置比較
SPEED = 100 '速度100mm/s
FORCE_SPEED=60 'SP速度60mm/s
MOVEABS(0) '運動到0位
WAIT IDLE
VECTOR_MOVED = 0 '插補矢量距離清0
LOCAL iTime
iTime =ABS(lv_EndPos - lv_StrartPos) \ lv_Interval '計算比較次數
TRACE lv_StrartPos,iTime,lv_Interval,lv_WidthTime
HW_PSWITCH2(2) '清空HW比較緩沖區
HW_PSWITCH2(6,Out_Pso0,ON,lv_StrartPos,iTime,lv_Interval) '從lv_StrartPos觸發比較間隔lv_Interval比較iTime次
HW_TIMER(2,lv_WidthTime+100,lv_WidthTime,1,OFF,Out_Pso0) 'Out_Pso觸發變成ON后,打開lv_Width us后關閉輸出
MOVEABS(50) '單軸運動,速度100
MOVEABSSP(100) 'SP單軸運動,速度60
MOVEABS(150) '單軸運動,速度100
WAIT IDLE '等待運動停止
HW_PSWITCH2(2) '清空HW比較緩沖區
END SUB
?
五.ZDevelop查看PSO曲線
1.示波器采樣上例波形如下。
三段單軸直線運動,比較范圍為位置20-120,每隔一個單位距離比較一次,共比較100次,中間段由于是等距比較,運動速度較小,故OP反轉的速度變慢。OP保持高電平的時間是2ms。
2.XY模式下OP隨運動距離變化的波形如下。
可看出等距比較模式下,比較輸出不受運動速度的影響,輸出始終是均勻的。
視頻演示鏈接:https://live.csdn.net/v/225119
本次,正運動技術運動控制器PSO位置同步輸出(一):硬件平臺與PSO指令簡介,就分享到這里。
審核編輯:湯梓紅
-
運動控制器
+關注
關注
2文章
401瀏覽量
24704 -
總線控制器
+關注
關注
0文章
29瀏覽量
12590 -
PSO
+關注
關注
0文章
49瀏覽量
12939
發布評論請先 登錄
相關推薦
評論