『7x24小时有问必答』

序号  
说明
SERVOZANGE(伺服钳)
选择焊钳

在列表中只显示已激活选项后台流程已激活(自

KUKA.ServoGun 3.1: 起启用后台流程)的焊钳。
Asynchron (异步)
固定焊钳在铣削/焊接时可进行异步运动。
Synchron (同步)
请等待,直到可能已启动的后台流程已结束,然后锁闭

后台流程。然后,固定焊钳在铣削/焊接时不再可进行异步运动。

Synchron/Asynchron 的执行逻辑

程序中的使用关系

P0-P1   初始化/基本设置

P2       取件 (UP21)

P3       → Synchron (禁背景, 直接控制焊钳)

P4       焊接 (UP22)

P5       → Synchron (再次禁背景)

P6       → Asynchron (条件=F277, 使能背景修磨)

P7       等待循环 (媒体/跳转)

P8       放件 (UP23)

P9       完工报告

P10      → Synchron (禁背景, LPTK结束序列)

MAKRO65 :激活F65--->带动激活MAKROSTEP9

启动Asynchron (异步)

MAKRO64 :关闭F65-->等待结束MAKROSTEP9,启动Synchron

makrostep9 控制焊钳的工作原理   PLC指的是软PLC

IO
方向
含义
$OUT[3510]
PLC→Robot
Start    Dress(修磨启动)
$OUT[3511]
PLC→Robot
Start    Spot(焊接启动)
$OUT[3512]
PLC→Robot
StartAcknowledge(确认)
$OUT[3513]
PLC→Robot
Start    Init New
$OUT[3514]
PLC→Robot
Start    Init Same
$OUT[3871]
PLC→Robot
ServoGun    RZ1 schliessen(关钳/修磨就位)
$OUT[3872]
PLC→Robot
ServoGun    RZ1 oeffnen(开钳/修磨完成)
$OUT[3505]
Robot→PLC
WeldReady(焊接就绪)
$OUT[3506]
Robot→PLC
TipDressReady(修磨就绪)
$OUT[3507]
Robot→PLC
BG    Active(后台运行中)
$OUT[3508]
Robot→PLC
BG    Success(后台完成)
$OUT[3509]
Robot→PLC
BG    Error(后台错误)
$OUT[4039]
内部
步序使能
方案A:在SK1工位对固定夹具RZ1进行铣削加工,直至工序流程结束
此处需要注意:针对固定式夹具的铣削加工不得在程序段UP 101 — 102中编写。
在正常程序运行过程中,焊接控制系统会向机器人发送信号,告知机器人需要执行启动铣削或常规铣削。
摆动装置的驱动控制以及铣削循环由机器人步骤链在后台执行。
要运行该后台进程,必须将伺服夹具设置为异步模式。
外部夹具允许端盖铣削摆动机构摆动所需的最小张开尺寸,在宏程序50的计数器i60中进行定义。
焊接工序完成后、摆动装置外侧(通过步骤序列启动后台程序)
22: PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=1 SPSTrig=5 [1/100s]
1: FB-PSPS = EIN
2: F79 = E786 & !E788 + !E788 & E130
3: F78 = E788 & !F79
4: F751 = F78 + F79 ~ Hilfs-Flag
5: Servozange - Nr - Asynchron – Bedingung = F751 ~ 开始异步
6: SPS MAKRO065 = F751 ~ 开始铣削
7: WARTE BIS E23
8: FB PSPS = M30
工序序列结束
33: PTP VB=100% VE=0% ACC=100% RobWzg=1 Base=1 SPSTrig=5 [1/100s]
1: FB-PSPS = EIN
2:-- Bereich für Freigaben / Verriegelungen / Grundstellungen --
3: SPS MAKRO064 = EIN ~ 铣削结束
4: Servozange - Nr - Synchron – Bedingung = EIN ~ 开始同步
5: WARTE BIS E23
6: A23 = EIN
7: FB PSPS = M30
如何实现Synchron,Asynchron功能的

核心:$ASYNC_AXIS  系统变量

$ASYNC_AXIS  转换外部轴到异步模式的位排列

如果这个位设定了,这个外部轴将被转到异步模式,如果它要复位,这个外部轴将被转回同步模式。
KRC内核通过  $ASYNC_AXIS(6位bit field,对应E1~E6)决定外部轴的控制归属:bit=0 → 同步轴:跟随机器人插补(PTP/LIN/CIRC一起运动) bit=1 → 异步轴:脱离插补,只能用ASYPTP独立运动.

SGL_AsyncOn / SGL_AsyncOff(SG_Lib)

; 切异步:置位对应bit
GLOBAL DEFFCT INT SGL_AsyncOn(iExAxisNum:IN)
     SWITCH iExAxisNum
         CASE 1: BIT_FIELD = $ASYNC_AXIS B_OR 'B000001'   ; E1→异步
         CASE 2: BIT_FIELD = $ASYNC_AXIS B_OR 'B000010'   ; E2→异步
         ...
     ENDSWITCH
     RETURN(BIT_FIELD)
ENDFCT
; 切同步:清对应bit
GLOBAL DEFFCT INT SGL_AsyncOff(iExAxisNum:IN)
     SWITCH iExAxisNum
         CASE 1: BIT_FIELD = $ASYNC_AXIS B_AND 'B111110'   ; E1→同步
         CASE 2: BIT_FIELD = $ASYNC_AXIS B_AND 'B111101'   ; E2→同步
         ...
     ENDSWITCH
     RETURN(BIT_FIELD)
ENDFCT
调用方式(SG_Background):
$ASYNC_AXIS = SGL_AsyncOn(1)    ; Gun1 ExtAx=1, E1切异步
$ASYNC_AXIS = SGL_AsyncOff(1)   ; E1切回同步

两种模式下焊钳如何运动

Synchronous($ASYNC_AXIS bit=0):
PTP P_Spot ← E1轴值包含在E6POS中,KRC将6轴+E1一起插补 LIN P_Weld ← 同上,E1与TCP协调运动
外部轴是机器人运动的一部分
用  $VEL_EXTAX[1]$ACC_EXTAX[1]  控制速度/加速度
ACTIVATE_FORCE_MODE 在运动过程中启动力控
主程序ILF的SPOT/INIT/TIPDRESS都走这条路
Asynchronous($ASYNC_AXIS bit=1):

ASYPTP ExtAxPos      ← 只运动E1,6轴完全不动
ASYCANCEL 1            ← 取消E1异步运动
$ASYNC_STATE          ← 查询异步运动状态(IDLE/BUSY/CANCELLED/PEND)
外部轴从插补器解耦
机器人6轴可以完全静止(或做其他事)
背景进程用  SGB_MANUAL_MOTION  封装ASYPTP
CalcAsyPos
  只填E1分量,其余轴=0(不动)

完整切换流程

Synchron → Asynchron
1. Condition检查 (F277=修磨请求?)
2. 读PreOpening位置 (PLC传入焊钳预开度)
3. SGB_ProcTipDress(TRUE, 1):
     a. SGB_IsConfigured_BG → 校验所有IO/配置
     b. $ASYNC_AXIS = SGL_AsyncOn(1)   ← 【关键】E1脱离插补
     c. SG_TD_Ready_BG = TRUE             ← $OUT[3506]=1, PLC看到"修磨就绪"
4. SGB_ProcWeld(TRUE, 1):
     a. $ASYNC_AXIS = SGL_AsyncOn(1)   (已置位,幂等)
     b. SG_Weld_Ready_BG = TRUE          ← $OUT[3505]=1, PLC看到"焊接就绪"
此后PLC可通过背景IO触发修磨/焊接,Submit层周期调用  SGB_BackgroundProcess()  用ASYPTP驱动焊钳。
Asynchron → Synchron
1. SGB_ProcTipDress(FALSE, 1):
     a. WAIT FOR NOT $OUT[3507]   ← 等PLC撤回Active(背景完成)
     b. WAIT FOR NOT $OUT[3508]   ← 等PLC撤回Success
     c. SG_TD_Ready_BG = FALSE    ← $OUT[3506]=0
     d. $ASYNC_AXIS = SGL_AsyncOff(1)   ← 【关键】E1回归插补
2. SGB_ProcWeld(FALSE, 1):
     a. 同上等待
     b. SG_Weld_Ready_BG = FALSE ← $OUT[3505]=0
     c. $ASYNC_AXIS = SGL_AsyncOff(1)

SG_Background 工作原理

背景进程 = 主程序运行时,PLC通过IO触发焊钳异步执行焊接/修磨/初始化,不占用主程序运动链。外部轴通过  $ASYNC_AXIS  +  ASYPTP  独立运动。
GB_ProcWeld(TRUE, 1) → 使能Gun1背景焊接 SGB_ProcTipDress(TRUE, 1) → 使能Gun1背景修磨
使能流程:
SGB_IsConfigured_BG
  校验: MMGrad有效、ExtAx≠0、已校准、已耦合、BGProcessActive=TRUE、WeldTimer已配、所有IO已配置
$ASYNC_AXIS = SGL_AsyncOn(ExtAx)
  — 将外部轴切换为异步模式
置Ready标志 → PLC看到  $OUT[3505](焊接) 或  $OUT[3506](修磨) = TRUE
禁用时: WAIT FOR PLC撤回Active/Success → 清标志 →  $ASYNC_AXIS = SGL_AsyncOff

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码