行指令 “Asynchron/Synchron” (異步/同步)
這些命令實現了后臺焊接和修磨。
Asynchron (異步)
Synchron (同步)
SERVOZANGE (伺服鉗):選擇焊鉗--在列表中只顯示已激活選項 后臺流程已激活 的焊鉗。
Asynchron (異步):?固定焊鉗在銑削/焊接時可進行異步運動。
Synchron (同步):請等待,直到可能已啟動的后臺流程已結束,然后鎖閉后臺流程。然后,固定焊鉗在銑削/焊接時不再可進行異步運動。
后臺進程功能
固定焊鉗進行電極頭修磨的過程中,一般情況下機器人不能進行其他作業。(例如拾取一個新工件。)
這是因為機器人軸和附加軸(=焊鉗)為同步運行。這意味著它們會執行同樣的動作,同時開始同時結束。修磨過程中機器人軸在一般情況下雖然保持靜止,但是仍屬于總運動的一部分。
通過后臺命令可以使固定焊鉗進行異步運動。此時機器人軸可獨立于焊鉗進行另外的運動。不僅在修磨時可進行異步的焊鉗運動,焊接時也同樣可以。但這僅適用于無實際工件的測試焊接(例如在檢查阻力時)。
后臺進程
? 行指令 Asynchron (異步)開通所選后臺進程,即允許執行進程。異步打開附加軸(= 焊鉗)。
? 機器人控制系統設定顯示它已經為后臺焊接或修磨準備就緒的輸出端。
? 機器人控制系統等待由 PLC 通過相關輸入端選擇后臺過程。
? 機器人控制系統通過輸出端應答成功的選擇。
? 執行后臺進程。
? 機器人控制系統向 PLC 報告可能出現的錯誤。
? 如果沒有出現錯誤,則機器人控制系統報告成功地完成了后臺進程。
? 機器人控制系統等待 PLC 的確認。
? 后臺進程已完成。
? 用行指令 Synchron (同步)鎖閉 (Disable) 后臺進程。
同步打開附加軸(= 焊鉗)。
VWKUKA程序事例:?
PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=0[1/100s] P?
SERVOZANGE 1 Synchron Bedingung=EIN 開啟同步
PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=5[1/100s] P
TECH4 Prozessgeraet EZ/SP/KE/RZ Steuerung=Nr1 Zange=Nr1 in Wartungsstellung Techaufruf=EIN開始維修位置
SERVOZANGE 1 Messen= Geometrie Bedingung=E132開啟維修位置測量
F277 = F78 + F79開啟銑削
PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=0[1/100s] P
SERVOZANGE 1 Asynchron Bedingung=F277開始擺臂銑削
SPSMAKRO65 = F277開始擺臂銑削
PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=0 SPSTrig=0[1/100s] P?
用于控制電伺服焊槍 的IO通訊點:SGRW_BoolIOs[40]
SGRW_BoolIOs[1]={Index 0,IOType #Output,Index1 3510,Index2 0,VarName[] "SG_StartTipDress_BG"}
SGRW_BoolIOs[2]={Index 0,IOType #Output,Index1 3513,Index2 0,VarName[] "SG_StartInitNew_BG"}
SGRW_BoolIOs[3]={Index 0,IOType #Output,Index1 3514,Index2 0,VarName[] "SG_StartInitSame_BG"}
SGRW_BoolIOs[4]={Index 0,IOType #Output,Index1 3511,Index2 0,VarName[] "SG_StartWelding_BG"}
SGRW_BoolIOs[5]={Index 0,IOType #Output,Index1 3512,Index2 0,VarName[] "SG_SpsAknowledge_BG"}
SGRW_BoolIOs[6]={Index 0,IOType #Output,Index1 3507,Index2 0,VarName[] "SG_Active_BG"}
SGRW_BoolIOs[7]={Index 0,IOType #Output,Index1 3508,Index2 0,VarName[] "SG_Success_BG"}
SGRW_BoolIOs[8]={Index 0,IOType #Output,Index1 3509,Index2 0,VarName[] "SG_Error_BG"}
SGRW_BoolIOs[9]={Index 0,IOType #Output,Index1 3858,Index2 0,VarName[] "SGRW_GunSelect1_BG"}
SGRW_BoolIOs[10]={Index 0,IOType #Output,Index1 3890,Index2 0,VarName[] "SGRW_GunSelect2_BG"}
SGRW_BoolIOs[11]={Index 0,IOType #Output,Index1 3922,Index2 0,VarName[] "SGRW_GunSelect3_BG"}
SGRW_BoolIOs[12]={Index 0,IOType #Output,Index1 3410,Index2 0,VarName[] "SGRW_GunSelect4_BG"}
SGRW_BoolIOs[13]={Index 0,IOType #Output,Index1 3442,Index2 0,VarName[] "SGRW_GunSelect5_BG"}
SGRW_BoolIOs[14]={Index 0,IOType #Output,Index1 3474,Index2 0,VarName[] "SGRW_GunSelect6_BG"}
SGRW_BoolIOs[15]={Index 0,IOType #Output,Index1 3505,Index2 0,VarName[] "SG_WeldReady_BG"}
SGRW_BoolIOs[16]={Index 0,IOType #Output,Index1 3506,Index2 0,VarName[] "SG_TipDressReady_BG"}
SGRW_BoolIOs[17]={Index 0,IOType #Output,Index1 3871,Index2 0,VarName[] "SGVW_DressInPos_Schw1"}
SGRW_BoolIOs[18]={Index 0,IOType #Output,Index1 3903,Index2 0,VarName[] "SGVW_DressInPos_Schw2"}
SGRW_BoolIOs[19]={Index 0,IOType #Output,Index1 3935,Index2 0,VarName[] "SGVW_DressInPos_Schw3"}
SGRW_BoolIOs[20]={Index 0,IOType #Output,Index1 3423,Index2 0,VarName[] "SGVW_DressInPos_Schw4"}
SGRW_BoolIOs[21]={Index 0,IOType #Output,Index1 3455,Index2 0,VarName[] "SGVW_DressInPos_Schw5"}
SGRW_BoolIOs[22]={Index 0,IOType #Output,Index1 3487,Index2 0,VarName[] "SGVW_DressInPos_Schw6"}
SGRW_BoolIOs[23]={Index 0,IOType #Output,Index1 3864,Index2 0,VarName[] "SGVW_BGFlag_GunClosed1"}
SGRW_BoolIOs[24]={Index 0,IOType #Output,Index1 3896,Index2 0,VarName[] "SGVW_BGFlag_GunClosed2"}
SGRW_BoolIOs[25]={Index 0,IOType #Output,Index1 3928,Index2 0,VarName[] "SGVW_BGFlag_GunClosed3"}
SGRW_BoolIOs[26]={Index 0,IOType #Output,Index1 3416,Index2 0,VarName[] "SGVW_BGFlag_GunClosed4"}
SGRW_BoolIOs[27]={Index 0,IOType #Output,Index1 3448,Index2 0,VarName[] "SGVW_BGFlag_GunClosed5"}
SGRW_BoolIOs[28]={Index 0,IOType #Output,Index1 3480,Index2 0,VarName[] "SGVW_BGFlag_GunClosed6"}
SGRW_BoolIOs[29]={Index 0,IOType #Output,Index1 3862,Index2 0,VarName[] "SGVW_GunOpen1"}
SGRW_BoolIOs[30]={Index 0,IOType #Output,Index1 3894,Index2 0,VarName[] "SGVW_GunOpen2"}
SGRW_BoolIOs[31]={Index 0,IOType #Output,Index1 3926,Index2 0,VarName[] "SGVW_GunOpen3"}
SGRW_BoolIOs[32]={Index 0,IOType #Output,Index1 3414,Index2 0,VarName[] "SGVW_GunOpen4"}
SGRW_BoolIOs[33]={Index 0,IOType #Output,Index1 3446,Index2 0,VarName[] "SGVW_GunOpen5"}
SGRW_BoolIOs[34]={Index 0,IOType #Output,Index1 3478,Index2 0,VarName[] "SGVW_GunOpen6"}
SGRW_BoolIOs[35]={Index 0,IOType #Output,Index1 3872,Index2 0,VarName[] "SGVW_DressFin1"}
SGRW_BoolIOs[36]={Index 0,IOType #Output,Index1 3904,Index2 0,VarName[] "SGVW_DressFin2"}
SGRW_BoolIOs[37]={Index 0,IOType #Output,Index1 3936,Index2 0,VarName[] "SGVW_DressFin3"}
SGRW_BoolIOs[38]={Index 0,IOType #Output,Index1 3424,Index2 0,VarName[] "SGVW_DressFin4"}
SGRW_BoolIOs[39]={Index 0,IOType #Output,Index1 3456,Index2 0,VarName[] "SGVW_DressFin5"}
SGRW_BoolIOs[40]={Index 0,IOType #Output,Index1 3488,Index2 0,VarName[] "SGVW_DressFin6"}
與makroSTEP9配合使用實現了固定電伺服的銑削過程.
編輯:黃飛
?
評論
查看更多