本節我們主要去講解一下多種PSO模式原理和使用的講解,用戶可根據實際需求靈活選擇觸發模式。
一、硬件說明
硬件選型的首要要求是支持PSO功能,再分析PSO的應用場合和軸數等選擇具體的型號。本例以ZMC460N雙總線運動控制器為例展開介紹。
PSO功能用于控制激光或點膠閥的高速開/關,直線插補和平面圓弧插補功能用于完成加工軌跡,連續插補功能用于讓多段插補的速度連續,提供加工的效率。
ZMC460N雙總線控制器
ZMC460N雙總線控制器是正運動技術推出的新一代網絡60軸運動控制器(支持EtherCAT總線軸+RTEX總線軸+脈沖軸混合使用),自帶六個脈沖軸接口(包含差分脈沖輸出和差分編碼器輸入),通用輸出口支持配置為單端脈沖輸出,通用輸入口支持配置成單端編碼器輸入。脈沖輸出頻率最大可達10MHZ,EtherCAT總線的通訊周期最快可達250微秒。
支持12路PSO輸出,輸出口獨立,支持12路同時輸出,每個系統周期可比較輸出多次,應用場景更為豐富。
ZMC460N雙總線控制器架構圖
PSO功能主要通過“HW_PSWITCH2”硬件位置比較輸出指令和“HW_TIMER”硬件定時指令實現,下面來講解一下這兩個指令的詳細用法。
二、指令說明
1.HW_PSWITCH2--硬件位置比較輸出
(1)指令說明
硬件位置比較輸出功能必須使用支持硬件比較輸出的輸出口,例如ZMC460N可以使用OUT0-11口。
支持比較脈沖軸的位置、編碼器的反饋位置和總線軸的位置。比較主軸帶編碼器輸入時,自動使用編碼器位置來觸發,不帶編碼器的場合便比較脈沖輸出。可以使用MOVEOP_DELAY參數來調整輸出準確時刻。
(2)注意事項
ZMC460N每個系統周期內可以比較一次,但每個周期內單個輸出口只能比較一次,系統周期通過“SERVO_PERIOD”查詢,當系統周期過大時,而比較輸出脈沖寬度小于系統周期時將會導致輸出異常。
“HW_PSWITCH2”與“MOVE_OP”精準使用同樣的硬件資源,不建議在同一個通道同時使用,可以在不同的通道同時使用。
調用TABLE位置數據時,在所有比較點完成前不要修改。
使用脈沖型電機時只有ATYPE為4時才是比較反饋位置(MPOS),默認出廠的ATYPE為1或7比較的是命令位置(DPOS)。
HW_PSWITCH2沒有比較完所有點的話,一定要設置mode值為2,通過HW_PSWITCH2(2)指令停止并刪除沒有完成的比較點,否則后面此輸出通道會工作不正常,使用前需要調用此模式,清除可能沒有比較完成的數據。
(3)指令語法
HW_PSWITCH2(mode, [...])
A.Mode模式一覽表:
B.HW_PSWITCH2的模式可以總結為兩大類:
a.采用TABLE表存儲的數據點來進行比較,脈沖寬度由數據的間隔和運動速度共同決定,所以比較前先要將數據寫入“TABLE”中,然后再調用。
相關模式:1,3,7,25,26,35,36。
b.等距周期比較,無需借助“TABLE”,“HW_PSWITCH2”設置好觸發的比較的位置、比較周期數,“HW_TIMER'設置每次觸發比較輸出脈沖的寬度,這類模式參數設置相對多一些,多個指令的組合也可實現變化距離的輸出。
相關模式:6。模式5既不需要TABLE也不需要“HW_TIMER”便可實現等距周期比較。、
Mode模式詳解參加下文,mode模式不同,后面需要填寫的參數也不同。
(4) Mode=1:單軸比較
HW_PSWITCH2(1,opnum,opstate,tablestart,tableend[,direction])
mode:1-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
tablestart:第一個比較點絕對坐標所在TABLE編號
tableend:最后一個比較點絕對坐標所在TABLE編號
direction:第一個點判斷方向,0坐標負向,1坐標正向,-1不使用方向
⊙說明: 比較點寫在TABLE中,每到達一個比較位置OP反轉一次。
(5) Mode=2:清除比較點
HW_PSWITCH2(2)
mode:2-停止并刪除沒完成的比較點
⊙說明: 使用前需要調用此模式,清除可能沒有比較完成的數據。使用過程中也可以發送此命令,停止比較。
(6) Mode=3: 矢量比較方式
HW_PSWITCH2(3, opnum, opstate, tablestart, tableend)
mode:3-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
tablestart:第一個比較點VECTOR_MOVED坐標所在TABLE編號
tableend:最后一個比較點VECTOR_MOVED坐標所在TABLE編號
⊙ 說明:比較點寫在TABLE中,每到達一個比較矢量位置OP反轉一次。
使用矢量距離比較時,與“VECTOR_MOVED”進行比較,建議連續運動前設置“VECTOR_MOVED”初始值。
(7) Mode=4: 矢量比較方式,單個比較點
HW_PSWITCH2(4, opnum, opstate, vectstart)
mode:4-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
vectstart:比較點VECTOR_MOVED當前運動距離
⊙ 說明: 到達指令設置的一個比較矢量位置OP反轉,比較結束。
(8) Mode=5: 矢量比較方式, 周期脈沖模式
HW_PSWITCH2(5,opnum, opstate, vectstart, repes, cycledis, ondis)
mode:5-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態,認為是有效狀態,反之認為無效狀態
vectstart:比較點VECTOR_MOVED當前運動距離
repes:重復周期,個周期內比較兩次,先輸出有效狀態,再輸出無效狀態
cycledis:周期距離,每隔這個距離輸出opstate, ondis后還原為無效狀態
ondis:輸出有效狀態的距離,(cycledis- ondis)為無效狀態距離
⊙說明:此模式無需TABLE,坐標均參考矢量坐標,從vectstart的位置開始比較,每隔cycledis距離觸發一次比較,重復比較的周期為repes,每次觸發比較信號后,保持ondis距離后關閉信號,等待下一周期的觸發。
(9) Mode=6: 矢量比較方式, 周期脈沖模式
⊙與HW_TIMER一起使用
HW_PSWITCH2(6, opnum, opstate, vectstart, repes, cycledis)
mode:6-啟動比較器
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
vectstart:比較點VECTOR_MOVED當前運動距離
repes:重復周期,一個周期只比較一次
cycledis:周期距離,每隔這個距離輸出一次
⊙ 說明: 此模式無需TABLE,坐標均參考矢量坐標,從vectstart的位置開始比較,每隔cycledis距離觸發一次比較,重復比較的周期為repes,每次觸發比較信號后,保持信號的脈沖寬度由“HW_TIMER”指令設置。
“HW_TIMER”可以控制到達一個觸發點控制OP反轉多次,“HW_TIMER”周期完成等待下一周期的觸發。
(10) Mode=7: 矢量比較方式
⊙ 與HW_TIMER一起使用
HW_PSWITCH2(7,opnum,opstate, tablestart, tableend [, optimeus, optimes, cyctimeus])
mode:7-啟動比較器,opstate不翻轉,方便與HW_TIMER配合使用
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
tablestart:第一個比較點VECTOR_MOVED坐標所在TABLE編號
tableend:最后一個比較點VECTOR_MOVED坐標所在TABLE編號
[以下參數和HW_TIMER二選一,HW_TIMER單獨寫可以動態調整參數]
optimeus:動態調整HW_TIMER的有效時間
optimes:動態調整HW_TIMER的觸發脈沖數,0-不輸出
cyctimeus:動態調整HW_TIMER的脈沖周期時間
⊙ 說明: 比較點寫在TABLE中,坐標均參考矢量坐標,每到達一個TABLE比較矢量位置觸發OP,此時OP的脈沖寬度和每次觸發的比較次數由HW_TIMER控制;到達下一個TABLE位置,OP再次觸發。
(11) Mode= 25、26:2D比較
2D比較: 每2個連續table存儲一個XY坐標點,實現多點比較,每個比較點輸出狀態翻轉。
25和35模式類似;26和36模式類似,需與HW_TIMER配合使用。
A.HW_PSWITCH2(25, opnum, opstate, maxerr, num, tablepos)
mode:25,二維的比較模式
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
maxerr:比較位置每個軸左右的脈沖偏差,進入偏差范圍后開始比較,此參數不能寫0
num:table里面存儲的比較點坐標個數
tablepos:第一個比較點坐標所在table編號
⊙ 說明:比較點寫在TABLE中,兩個連續的TABLE數據組成一個2D坐標,每到達一個比較位置OP反轉一次。
示意中藍色段表示OP開啟,各類常用插補運動均支持比較,比較點坐標一定的要準確,否則會影響后面點的比較。
B.HW_PSWITCH2(26, opnum, opstate, maxerr, num, tablepos, [ophwtimeus, ophwtimes, hwcyctimeus])
mode:26,二維的比較模式
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
maxerr:比較位置每個軸左右的脈沖偏差,進入偏差范圍后開始比較,此參數不能寫0
num:table里面存儲的比較點坐標個數
tablepos:第一個比較點坐標所在table編號
[以下參數和HW_TIMER二選一,HW_TIMER單獨寫可以動態調整參數]
ophwtimeus:脈沖時間
ophwtimes:脈沖個數
hwcyctimeus:脈沖周期
⊙ 說明:比較點寫在TABLE中,兩個連續的TABLE數據組成一個2D坐標,每到達一個比較位置觸發OP,每個比較點OP反轉的次數和反轉周期由HW_TIMER設置;到達下一個TABLE位置,OP再次觸發。類似模式7和模式36。
(12) Mode= 35、36:3D比較
3D比較: 每3個連續TABLE存儲一個XYZ坐標點,實現多點比較,每個比較點輸出狀態翻轉。
25和35模式類似;26和36模式類似,需與HW_TIMER復用。
A.HW_PSWITCH2(35, opnum, opstate, maxerr, num, tablepos)
mode:35,三維的比較模式
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
maxerr:比較位置每個軸左右的脈沖偏差,進入偏差范圍后開始比較,此參數不能寫0
num:table里面存儲的比較點坐標個數
tablepos:第一個比較點坐標所在table編號
⊙ 說明:比較點寫在TABLE中,三個連續的TABLE數據組成一個3D坐標,每到達一個比較位置OP反轉一次。 類似模式25。
B.HW_PSWITCH2(36, opnum, opstate, maxerr, num, tablepos, [ophwtimeus, ophwtimes, hwcyctimeus])
mode:35,36,三維的比較模式
opnum:對應的輸出口
opstate:第一個比較點的輸出狀態
maxerr:比較位置每個軸左右的脈沖偏差,進入偏差范圍后開始比較,此參數不能寫0
num:table里面存儲的比較點坐標個數
tablepos:第一個比較點坐標所在table編號
[以下參數和HW_TIMER二選一,HW_TIMER單獨寫可以動態調整參數]
ophwtimeus:脈沖時間
ophwtimes:脈沖個數
hwcyctimeus:脈沖周期
⊙ 說明:比較點寫在TABLE中,三個連續的TABLE數據組成一個3D坐標,每到達一個比較位置觸發OP,每個比較點OP反轉的次數和反轉周期由HW_TIMER設置;到達下一個TABLE位置,OP再次觸發。類似模式26和模式7。
→maxerr脈沖偏差說明
2D模式下設置XY坐標需要準確,軸運動不到準確的TABLE比較點時將無法觸發,3D模式同理。故多維比較模式引入一個特殊參數maxerr位置范圍偏差,左右范圍均有效。
即實際位置坐標點與TABLE的比較點的差值在maxerr范圍內便有效,觸發時刻為當前位置進入比較點的觸發范圍內便觸發比較,比較范圍示意圖如下,注意:maxerr的單位為脈沖數的偏差,不是距離的偏差。
2.HW_TIMER--硬件定時
硬件定時器,用于硬件比較輸出后一段時間后還原電平。“HW_TIMER”只有1個,每次調用會強制停止之前的調用。
不使用或比較完成時使用“HW_TIMER(0)”關閉。
HW_TIMER(mode, cyclonetime, optime, reptimes, opstate, opnum )
mode:0停止,2-啟動
cyclonetime:周期時間,us單位
optime:有效時間,us單位
reptimes:重復次數,啟動模式,reptimes =0時,軟關閉HW_TIMER,原來的脈沖沒有完成的,會繼續輸出完成
opstate:輸出缺省狀態,輸出口變為非此狀態后開始計時
opnum:輸出口編號,必須能硬件比較輸出的口
⊙ 說明:參數設置可參考下方示意圖,此指令的效果是固定時間周期輸出,設置每個周期的有效輸出的時間和重復輸出的次數。
→不同模式特點的比較:
配合“HW_TIMER”使用的模式,脈沖輸出的寬度由“HW_TIMER”指令指定。
絕對坐標是指當前位置相對于原點的坐標,矢量坐標是指,軸回原點之后,運動到當前位置的總距離,矢量坐標只會不斷累計,使用前最好手動清零。
例如軸0回零后先正向運動200,在反向運動100,此時的絕對坐標為100,但矢量坐標為300,若執行兩軸插補運動,則矢量坐標為當前插補運動的合成軌跡的矢量,故矢量比較的模式,支持多軸的場合。
⊙帶編碼器反饋自動比較MPOS,不帶編碼器比較DPOS。
三、調試例程
以上模式的實現例程如下,可以自由觸發不同的模式,并打開示波器,直觀的觀察PSO的輸出隨運動的變化情況。
⊙注意: 調用“HW_PSWITCH2”觸發比較輸出前,先發送“HW_PSWITCH2(2)”停止并刪除沒有完成的比較點,防止本次的輸出異常。并且使用了硬件定時器“HW_TIMER”之后,建議發送“HW_TIMER(0)”關閉定時器。
例程如下:
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
WAIT IDLE(2)
'基礎軸參數設置
BASE(0,1,2) '選擇XY軸
ATYPE=1,1,1 '1-脈沖軸類型,比較DPOS;4-帶編碼器反饋軸類型,比較編碼器的反饋位置MPOS
UNITS=100,100,100
SPEED=100,100,100
ACCEL=1000,1000,1000
DECEL=1000,1000,1000
MERGE=ON,ON,ON
SRAMP=50,50,50 's曲線速度平滑
OP(0,OFF) '初始化關閉PSO使用的輸出口
VECTOR_MOVED = 0 '插補矢量距離清0
global g_cmd '比較模式選擇
g_cmd = 0
while 1 '測試所有比較模式
if g_cmd = 1 THEN
g_cmd = 0
Clean_Pos() '位置清零
Test_Mode1() '調用比較
elseif g_cmd = 3 THEN
g_cmd = 0
Clean_Pos()
Test_Mode3()
elseif g_cmd = 4 THEN
g_cmd = 0
Clean_Pos()
Test_Mode4()
elseif g_cmd = 5 THEN
g_cmd = 0
Clean_Pos()
Test_Mode5()
elseif g_cmd = 6 THEN
g_cmd = 0
Clean_Pos()
Test_Mode6()
elseif g_cmd = 7 THEN
g_cmd = 0
Clean_Pos()
Test_Mode7()
elseif g_cmd = 25 THEN
g_cmd = 0
Clean_Pos()
Test_Mode25()
elseif g_cmd = 26 THEN
g_cmd = 0
Clean_Pos()
Test_Mode26()
elseif g_cmd = 35 THEN
g_cmd = 0
Clean_Pos()
Test_Mode35()
elseif g_cmd = 36 THEN
g_cmd = 0
Clean_Pos()
Test_Mode36()
endif
wend
GLOBAL SUB Clean_Pos()
RAPIDSTOP(2) '軸停止
WAIT IDLE(0)
WAIT IDLE(1)
WAIT IDLE(2)
DPOS=0,0,0 '將當前位置設置為0
MPOS=0,0,0
OP(0,OFF) '輸出關閉
END SUB
GLOBAL SUB Test_Mode1()
TABLE(0,100,150,250,300,400,450)
BASE(0)
'hw_pswitch2有自己的緩沖區, 當前軸目前還剩多大的緩沖區可以通過?hw_pswitch2(n)查詢
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(1, 0, 1, 0, 5,1) '啟動比較輸出,模式1,輸出口0,第一個比較點輸出ON,table地址0-5,正向運動比較
TRIGGER '觸發示波器
MOVE(500)
END SUB
GLOBAL SUB Test_Mode3()
TABLE(0,100,150,250,300,400,450)
HW_TIMER(0)
BASE(0)
VECTOR_MOVED(0) = 0 '設置當前的矢量位置
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
'矢量的變化不用考慮單個電機方向的變化, 矢量永遠是增大的
HW_PSWITCH2(3, 0, 1, 0, 5) '啟動比較輸出,模式3,輸出口0,第一個比較點輸出ON,table地址0-5(矢量坐標)
TRIGGER '觸發示波器抓圖
MOVEABS(300,200)
MOVEABS(400,0)
END SUB
GLOBAL SUB Test_Mode4()
HW_TIMER(0)
BASE(0)
VECTOR_MOVED(0) = 0 '設置當前的矢量位置
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(4, 0, 1, 100) '啟動比較輸出,模式4,輸出口0,第一個比較點輸出ON,從矢量位置100開始比較,僅比較1次就結束
TRIGGER '觸發示波器抓圖
MOVEABS(100,120)
END SUB
GLOBAL SUB Test_Mode5()
HW_TIMER(0)
BASE(0)
VECTOR_MOVED(0) = 0 '設置當前的矢量位置, 只能在電機idle的情況下設置
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(5, 0, 1, 50, 8, 30, 5) '啟動比較輸出,模式5,輸出口0,第一個比較點輸出ON,從矢量位置50開始比較,比較8次,間隔
距離30觸發比較,比較觸發后運動距離5關閉
TRIGGER '觸發示波器抓圖
MOVEABS(100,100)
MOVEABS(0, 200)
END SUB
GLOBAL SUB Test_Mode6()
HW_TIMER(0)
BASE(0)
VECTOR_MOVED(0) = 0 '設置當前的矢量位置, 只能在電機idle的情況下設置
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(6, 0, 1, 50, 15, 30) '啟動比較輸出,模式6,輸出口0,第一個比較點輸出ON,從矢量位置50開始比較,比較15次,間隔距離30觸發比較
HW_TIMER(2, 100000, 60000, 1, OFF, 0) '有效電平時間60000us,每次觸發輸出1次
TRIGGER '觸發示波器抓圖
MOVEABS(100,100) '走一個矩形
MOVEABS(0, 200)
MOVEABS(-100,100)
MOVEABS(0, 0)
WAIT IDLE
HW_TIMER(0) '停止硬件定時器
END SUB
GLOBAL SUB Test_Mode7()
TABLE(0,100,150,250,300,400,450)
BASE(0)
VECTOR_MOVED(0) = 0 '設置當前的矢量位置, 只能在電機idle的情況下設置
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(7, 0, 1, 0, 5) '啟動比較輸出,模式7,輸出口0,第一個比較點輸出ON,table地址0-5(矢量坐標)
HW_TIMER(2, 50000, 30000, 2, OFF, 0) '有效電平時間30000us,每次觸發輸出2次
TRIGGER '觸發示波器抓圖
MOVEABS(200,200)
MOVEABS(300,0)
WAIT IDLE
HW_TIMER(0) '停止硬件定時器
END SUB
GLOBAL SUB Test_Mode25()
TABLE(0, 0,0, 50,50, 100,100, 50,150, 0,200, -50,150, -100,100, -50,50)
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(25, 0, 0, 10, 8, 0) '啟動比較輸出,模式25,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-15,8個坐標
TRIGGER '觸發示波器抓圖
MOVEABS(100,100) '走一個矩形
MOVEABS(0, 200)
MOVEABS(-100,100)
MOVEABS(0, 0)
END SUB
GLOBAL SUB Test_Mode26()
TABLE(0, 0,0, 50,50, 100,100, 50,150, 0,200, -50,150, -100,100, -50,50)
HW_TIMER(0)
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(26, 0, 1, 10, 8, 0) '啟動比較輸出,模式26,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-15,8個坐標
HW_TIMER(2, 100000, 50000, 2, OFF, 0) '有效電平時間50000us,每次觸發輸出2次
TRIGGER '觸發示波器抓圖
MOVEABS(100,100) '走一個矩形
MOVEABS(0, 200)
MOVEABS(-100,100)
MOVEABS(0, 0)
WAIT IDLE
HW_TIMER(0) '停止硬件定時器
END SUB
GLOBAL SUB Test_Mode35()
TABLE(0, 20,20,20, 40,40,40, 70,70,70, 100,100,100, 140,140,140, 180,180,180)
BASE(0,1,2)
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_PSWITCH2(35, 0, 1, 10, 6, 0) '啟動比較輸出,模式35,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-18,6個坐標
TRIGGER '觸發示波器抓圖
MOVEABS(200,200,200) '走直線
END SUB
GLOBAL SUB Test_Mode36()
TABLE(0, 20,20,20, 40,40,40, 70,70,70, 100,100,100, 140,140,140, 180,180,180)
BASE(0,1,2)
HW_PSWITCH2(2) '停止并刪除沒有完成的比較點
HW_TIMER(2, 100000, 50000, 1, OFF, 0) '有效電平時間50000us,每次觸發輸出1次
HW_PSWITCH2(36, 0, 1, 10, 6, 0) '啟動比較輸出,模式36,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-18,6個坐標
TRIGGER '觸發示波器抓圖
MOVEABS(200,200,200) '走直線
WAIT IDLE
HW_TIMER(0) '停止硬件定時器
END SUB
四、不同模式波形
1.Mode=1
(1)比較點坐標: 6個
TABLE(0, 100,150,250,300,400,450)
(2)啟動比較輸出: 模式1,輸出口0,第一個比較點輸出ON,table地址0-5,正向運動比較。
HW_PSWITCH2(1, 0, 1, 0, 5, 1)
(3)示波器采樣波形: 軸0每到達一個比較的位置,OP(0)觸發反轉一次,直到所有的TABLE的比較完成,OP保持最后一次反轉的狀態。
XY模式下能明顯看出輸出隨軸0運動位置的變化。
2.Mode=3
(1)比較點坐標: 6個矢量位置
TABLE(0, 100,150,250,300,400,450)
(2)啟動比較輸出: 模式3,輸出口0,第一個比較點輸出ON,table地址0-5(矢量坐標)。
HW_PSWITCH2(3, 0, 1, 0, 5)
(3)示波器采樣波形: 軸0軸1插補的矢量合成位置VECTOR_MOVED(0)每到達一個比較的位置,OP(0)觸發反轉一次,,直到所有的TABLE的比較完成,OP保持最后一次反轉的狀態。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
3.Mode=4
不使用TABLE。
(1)啟動比較輸出: 模式4,輸出口0,第一個比較點輸出ON,比較點矢量坐標100。
HW_PSWITCH2(4, 0, 1, 100)
(2)示波器采樣波形: 軸0軸1插補的矢量合成位置VECTOR_MOVED(0)到達100矢量比較位置,OP(0)觸發反轉一次,比較完成。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
4.Mode=5
不使用TABLE。
(1)啟動比較輸出: 模式5,輸出口0,第一個比較點輸出ON,從矢量位置50開始比較,比較8次,間隔距離30觸發比較,比較觸發后運動距離5關閉。
HW_PSWITCH2(5, 0, 1, 50, 8, 30, 5)
(2)示波器采樣波形: 軸0軸1插補的矢量合成位置VECTOR_MOVED(0)到達一個矢量比較位置50,OP(0)觸發反轉一次,后續每間隔30比較一次打開OP,再運動5個距離關閉OP,重復比較8次后結束比較。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
5.Mode=6
不使用TABLE。
(1)啟動比較輸出: 模式6,輸出口0,第一個比較點輸出ON,從矢量位置50開始比較,比較15次,間隔距離30觸發比較
HW_PSWITCH2(6, 0, 1, 50, 15, 30)
(2)輸出脈沖寬度: 硬件定時周期100000us,輸出脈沖的寬度為60000us,每次比較輸出1次脈沖。
HW_TIMER(2, 100000, 60000, 1, OFF, 0)
(3)示波器采樣波形: 軸0軸1插補的矢量合成位置VECTOR_MOVED(0)到達一個矢量比較位置50,OP(0)觸發反轉一次,后續每間隔30比較一次打開OP,60000us后關閉OP,重復比較15次后結束比較。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
6.Mode=7
(1)比較點坐標: 6個矢量位置
TABLE(0 ,100,150,250,300,400,450)
(2)啟動比較輸出: 模式7,輸出口0,第一個比較點輸出ON,TABLE地址0-5(矢量坐標)
HW_PSWITCH2(7, 0, 1, 0, 5)
(3)輸出脈沖寬度: 硬件定時周期50000us,輸出脈沖的寬度為30000us,每次比較輸出2次脈沖。
HW_TIMER(2, 50000, 30000, 2, OFF, 0)
(4)示波器采樣波形: 軸0軸1插補的矢量合成位置VECTOR_MOVED(0)每到達一個TABLE位置OP(0)觸發一次,每次觸發輸出 2次周期50000us,有效輸出30000us的脈沖波后關閉OP,直到所有的TABLE點都比較完成。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
7.Mode=25
(1)比較點坐標: 8個,占用16個TABLE
TABLE(0, 0,0,50,50,100,100,50,150,0,200,-50,150,-100,100,-50,50)
(2)啟動比較輸出: 模式25,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-15,8個坐標。
HW_PSWITCH2(25, 0, 1, 10, 8, 0)
(3)示波器采樣波形: 軸0軸1每到達一個比較的XY位置,OP(0)觸發反轉一次,直到所有的TABLE點比較完成,OP保持最后一次反轉的狀態。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
8.Mode=26
(1)比較點坐標: 8個,占用16個TABLE
TABLE(0, 0, 0, 50, 50, 100,100, 50 , 150 , 0 , 200 , -50 , 150 , -100 , 100 , -50 , 50)
(2)啟動比較輸出: 模式26,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-15,8個坐標。
HW_PSWITCH2(26, 0, 1, 10, 8, 0)
(3)輸出脈沖寬度: 硬件定時周期100000us,輸出脈沖的寬度為50000us,每次比較輸出2次脈沖。
HW_TIMER(2, 100000, 50000, 2, OFF, 0)
(4)示波器采樣波形: 軸0軸1每到達一個TABLE的比較XY位置,OP(0)觸發,每次觸發輸出2次周期100000us,輸出脈沖的寬度為50000us的脈沖波,直到所有的TABLE點比較完成,OP保持最后一次反轉的狀態。
XYZ模式下能明顯看出輸出隨插補運動位置的變化。
9.Mode=35
(1)比較點坐標: 6個,占用18個TABLE
TABLE(0,20 ,20 ,20,40 ,40 ,40,70 ,70 ,70,100 ,100 ,100,140,140,140,180,180,180)
(2)啟動比較輸出: 模式35,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-18,6個坐標
HW_PSWITCH2(35, 0, 1, 10, 6, 0)
(3)輸出脈沖寬度: 硬件定時周期100000us,輸出脈沖的寬度為50000us,每次比較輸出1次脈沖。
HW_TIMER(2, 100000, 50000, 1, OFF, 0)
(4)示波器采樣波形: 軸0軸1軸2每到達一個TABLE的比較XYZ位置,OP(0)觸發反轉一次,直到所有的TABLE點比較完成,OP保持最后一次反轉的狀態。
10.Mode=36
(1)比較點坐標: 6個,占用18個TABLE
TABLE(0 , 20 , 20 , 20, 40 , 40 , 40 , 70 , 70 , 70, 100 , 100 , 100, 140 , 140 , 1 40, 180 , 180 , 180)
(2)啟動比較輸出: 模式36,輸出口0,第一個比較點輸出ON,脈沖偏差10,table地址0-18,6個坐標。
HW_PSWITCH2(36, 0, 1, 10, 6, 0)
(3)輸出脈沖寬度: 硬件定時周期100000us,輸出脈沖的寬度為50000us,每次比較輸出1次脈沖。
HW_TIMER(2, 100000, 50000, 1, OFF, 0)
(4)示波器采樣波形: 軸0軸1軸2每到達一個TABLE的比較XYZ位置,OP(0)觸發,每次觸發輸出1次周期100000us,輸出脈沖的寬度為50000us的脈沖波,直到所有的TABLE點比較完成,OP保持最后一次反轉的狀態。
本次,正運動技術運動控制器PSO位置同步輸出(二):PSO模式詳解, 就分享到這里。
-
運動控制器
+關注
關注
2文章
393瀏覽量
24655 -
指令
+關注
關注
1文章
607瀏覽量
35651 -
總線控制器
+關注
關注
0文章
29瀏覽量
12581 -
PSO
+關注
關注
0文章
49瀏覽量
12921
發布評論請先 登錄
相關推薦
評論