线程评级:
KUKA机器人的RoboDK后置处理器,使用KR C5。
# 1
你好,RoboDK和社区里的其他人。

我有一台KR50,带有KRC5控制器,我使用的是RoboDK,版本5.2.5。我对细胞做了一个完整的模拟,并测试了程序的到达极限和奇点。然后我开始进行脱机编程,在这里我选择了后处理程序ayx官方。没有KR C5,这也是相当新的,所以我选择了KR C4。

然而,.src文件和.dat文件的结果与我通常期望的结果有点不同。然而,我把代码转移到机器人上,它工作得很好,但我不能例如触摸给定的机器人位置,因为代码是不同的格式。

下面是一个简单程序的例子,机器人应该从home位置移动到stackhome位置。在机器人上工作的真正代码如下,其中可以内联“润色”例如stackhome位置。

src文件在这里,并以KRL.txt的形式附上
代码:
访问RVO
rel 51
¶m editmask = *
&PARAM TEMPLATE = C:\KRC\ robot \ TEMPLATE \vorgabe
&参数DISKPATH = KRC:\R1\程序
DEF Stack1()
折叠INI; % {PE}
;折叠basistech ini
当$ stopmess == true do ir_stopm()时,全局中断撤销3
数到3时中断
(# initmov,0)
endfold (basistech ini)
折叠用户ini
在这里修改

endfold(用户ini)
; ENDFOLD (INI)

;FOLD SPTP HOME Vel= 100% DEFAULT;%{PE}
参数;%{h}
; Params IlfProvider = kukaroboter.basistech.inlineforms.movement.spline;Kuka.IsGlobalPoint = False;Kuka.PointName =回家;Kuka.BlendingEnabled = False;Kuka.MoveDataPtpName =违约;Kuka.VelocityPtp = 100;Kuka.VelocityFieldEnabled = True;Kuka.CurrentCDSetIndex = 0;Kuka.MovementParameterFieldEnabled = True;IlfCommand = SPTP
; ENDFOLD
SPTP xhome与$ vel_axis [1] = svel_joint (100.0), $ tool = stool2 (fhome), $ base = sbase (fhome . base_no), $ ipo_mode = sipo_mode (fhome . ipo_frame), $ load = sload (fhome . tool_no), $ acc_axis [1] = sacc_joint (pdefault), $ apo = sapo_ptp (pdefault), $ gear_jerk [1] = sgear_jerk (pdefault), $ collmon_tol_pro [1] = use_cm_pro_values (0)
; ENDFOLD

FOLD SPTP StacksHome Vel= 100% PDAT1 Tool[2]:ForkNew Base[4]:EUpalletNEW;%{PE}
参数;%{h}
; Params IlfProvider = kukaroboter.basistech.inlineforms.movement.spline;Kuka.IsGlobalPoint = False;Kuka.PointName = StacksHome;Kuka.BlendingEnabled = False;Kuka.MoveDataPtpName = PDAT1;Kuka.VelocityPtp = 100;Kuka.VelocityFieldEnabled = True;Kuka.ColDetectFieldEnabled = True;Kuka.CurrentCDSetIndex = 0;Kuka.MovementParameterFieldEnabled = True; IlfCommand=SPTP
; ENDFOLD
SPTP XStacksHome WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FStacksHome), $BASE = SBASE(FStacksHome. base_no), $IPO_MODE = SIPO_MODE(FStacksHome. ipo_frame), $LOAD = SLOAD(FStacksHome. tool_no), $ACC_AXIS[1] = SACC_JOINT(PPDAT1), $APO = SAPO_PTP(PPDAT1), $GEAR_JERK[1] = SGEAR_JERK(PPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
; ENDFOLD

和相关的。dat文件。

代码:
访问RVO
rel 51
¶m editmask = *
&PARAM TEMPLATE = C:\KRC\ robot \ TEMPLATE \vorgabe
&参数DISKPATH = KRC:\R1\程序
DEFDAT遍
%{pe}% mkukatpbasis,% cext,% vcommon,% p .
%{pe}% mkukatpbasis,% cext,% vext,% p .
Ext bas (bas_command: in, real: in)
Decl int成功
endfold (basistech ext)
%{e}% mkukatpuser,% cext,% vext,% p .
在这里修改

endfold(用户ext)
endfold(外部声明)
DECL MODULEPARAM_T LAST_TP_PARAMS={PARAMS[] "Kuka.VelocityFieldEnabled=True;Kuka.ColDetectFieldEnabled = True;Kuka.MovementParameterFieldEnabled = True;Kuka.IsAngleEnabled = False;Kuka.PointName = stack1pickposTEMP;Kuka.FrameData.base_no = 4;Kuka.FrameData.tool_no = 2;Kuka.FrameData.ipo_frame = #基地;Kuka.FrameData.point2 =;Kuka.isglobalpoint = False; Kuka.MoveDataName=CPDAT8; Kuka.MovementData.cb={AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}}; Kuka.MovementData.apo_fac=50; Kuka.MovementData.apo_dist=500; Kuka.MovementData.axis_acc=100; Kuka.MovementData.axis_vel=100; Kuka.MovementData.circ_typ=#BASE; Kuka.MovementData.jerk_fac=50; Kuka.MovementData.ori_typ=#VAR; Kuka.MovementData.vel=2; Kuka.MovementData.acc=100; Kuka.MovementData.exax_ign=0; Kuka.VelocityPath=2; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.CurrentCDSetIndex=0; Kuka.MoveDataPtpName=PDAT1; Kuka.MovementDataPdat.apo_mode=#CDIS; Kuka.MovementDataPdat.apo_dist=500; Kuka.VelocityPtp=100 "}
DECL E6POS xstackhome ={X -546.012268,Y -4.26492643,Z 327.078278,A 0.477458119,B -0.0832620561,C 0.387397945,S 22,T 50,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL FDAT fstackhome ={TOOL_NO 2,BASE_NO 4,IPO_FRAME #BASE,POINT2[] " "}
Decl pdat ppdat1 ={vel 100.000, acc 100.000, apo_dist 500.000, apo_mode # cis, gear_jerk 100.000, exax_ign 0}
ENDDAT

代码来自RoboDK使用后处理器KR C4。
代码:
访问RVP
rel 1
&PARAM TEMPLATE = C:\KRC\ robot \ TEMPLATE \vorgabe
¶m editmask = *
DEF Prog1 ()
Ext bas (bas_command: in, real: in)


;当$ stopmess == true do ir_stopm()时,全局中断撤销3
;数到3时中断

初始化并设置默认速度
BAS (# INITMOV, 0)
BAS (# VEL_PTP, 100)
BAS (# ACC_PTP, 20)
VEL.CP = 0.2美元
BAS(#工具,0)
BAS(#基地,0)
; ENDFOLD

;,褶皱STARTPOS
$ bwdstart = false
; pdat_act = pdefault .
, BAS (# PTP_DAT)
fdat_act = {tool_no 0, base_no 0, ipo_frame # base}
, BAS(#帧)
;, ENDFOLD

$ advance = 5

;FOLD ----快速跳过BCO ----
;20元AXIS_ACT
; ENDFOLD

;折叠----回家----
;PTP {a1 0.000, a2 -90.000, a3 90.000, a4 0.000, a5 0.000, a6 0.000, e1 0, e2 0, e3 0, e4 0, e5 0, e6 0}
; ENDFOLD


;由RoboDK v5.2.5为KUKA KR 50 R2500在12/01/2022 10:35:50生成的程序
;使用名义运动学。
;----设置参考(Base) ----
$ base ={帧:x 0.000, y 0.000, z 0.000, a 0.000, b 0.000, c 0.000}
;Base_data [1] = {frame: x 0.000, y 0.000, z 0.000, a 0.000, b 0.000, c 0.000}
;$ base = base_data [1]
;--------------------------
PTP {a1 0.00000, a2 -90.00000, a3 90.00000, a4 0.00000, a5 0.00000, a6 0.00000, e1 0.00000}
PTP {a1 -36.68420, a2 -71.24000, a3 101.52500, a4 -55.90380, a5 -46.17160, a6 45.65050, e1 0.00000}
结束

所以RoboDK的结果会在机器人上运行,但是我不能使用teach-pendant进行在线编程。

那么有没有一种方法,RoboDK将生成两个文件,即。src文件和。dat文件,可以直接传输到真正的机器人,然后也可以在线编程编辑之后?


附加文件 缩略图(s)


. txt KRL.txt(大小:1.5 KB /下载:60)
. txt RoboDK-postprocessorResult.txt(大小:1.27 KB /下载:68)
你试过库卡KRC4 DAT后置处理器吗?

//www.x7093.com/doc/en/Post-Processor...SelectPost

杰里米
有关RoboDK及其功能的有用信息,请访问我们的爱游戏ayx高尔夫球在线文档通过观看我们的教程Youtube频道


# 3
(01-12-2022, 09:07 pm)杰里米写道:你试过库卡KRC4 DAT后置处理器吗?

//www.x7093.com/doc/en/Post-Processor...SelectPost

杰里米

嗨,杰里米。

谢谢你的回复。啊,我犯了一个大错误:)我要“程序”->“添加/编辑后处理器”,然后相信我实际上是在使用那个给定的。所以感谢链接教程,这表明我应该右键单击给定的机器人,然后使用“选择后处理程序”。更有道理:)对不起。

然而……然后我正确的选择了“KUKA KRC4 DAT”,成功的给了我2个文件,一个.src和。DAT文件,如附件所示。

但是:

在我的程序中,我首先移动到两个位置,这是KR50机器人的基本框架中定义的。然后我把框架换成。“天花板框架”,然后移动到另外两个位置,“顶部”和“顶部2”。

那就是少了点什么。因为dat文件显示BASE_NO总是引用同一个帧,即基本帧。

正如您在下面的代码中所看到的,dat文件仅引用P1、P2、P3、P4,其中所有这些点都引用BASE_NO 1。

而且,这让我想到,程序树中的名字叫做“Home”,“NewPos”,“Top”和“Top 2”。因此,程序树和最终的.src和.dat文件之间缺少了一些东西。

一个想法:这是因为我在这里没有使用Python吗?也就是说,我应该从Python程序中创建所有这些,以便它可以从程序树中看到链接,即。"家"在。dat文件里准确地写"家"吗?:)
代码:
访问RVP
rel 1
&COMMENT由RoboDK生成
&PARAM TEMPLATE = C:\KRC\ robot \ TEMPLATE \vorgabe
¶m editmask = *
DEFDAT Prog2

Decl e6axis xp1 ={轴:a1 0.96375, a2 -89.94240, a3 89.94240, a4 90.00030, a5 -7.28648, a6 -90.00030}
Decl fdat fp1 ={tool_no 1, base_no 1, ipo_frame # base, point2 [] " ", tq_state false}
Decl pdat ppdat1 ={vel 100.000, acc 100.000, apo_dist 1.000, gear_jerk 50.000, exax_ign 0}
Decl e6axis xp2 ={轴:a1 -47.94000, a2 -123.69000, a3 97.09000, a4 89.41000, a5 47.94000, a6 -89.12000}
Decl fdat fp2 ={tool_no 1, base_no 1, ipo_frame # base, point2 [] " ", tq_state false}
Decl pdat ppdat2 ={vel 100.000, acc 100.000, apo_dist 1.000, gear_jerk 50.000, exax_ign 0}
Decl e6axis xp3 ={axis: a1 27.95340, a2 -68.34080, a3 42.58620, a4 -39.75510, a5 32.10980, a6 35.16840}
Decl fdat fp3 ={tool_no 1, base_no 1, ipo_frame # base, point2 [] " ", tq_state false}
Decl pdat ppdat3 ={vel 100.000, acc 100.000, apo_dist 1.000, gear_jerk 50.000, exax_ign 0}
Decl e6axis xp4 ={axis: a1 28.13540, a2 -75.47550, a3 81.95750, a4 -107.18400, a5 21.03480, a6 108.33200}
Decl fdat fp4 ={tool_no 1, base_no 1, ipo_frame # base, point2 [] " ", tq_state false}
Decl pdat ppdat4 ={vel 100.000, acc 100.000, apo_dist 1.000, gear_jerk 50.000, exax_ign 0}

ENDDAT


附加文件 缩略图(s)


.rdk TestingKRC4 postprocessor.rdk(大小:4.39 MB /下载:64)
# 4
两件事,

您应该在框架名称的末尾添加一个ID: Ceiling frame 2

这个后处理器不支持导出目标的名称。

我将尝试在RoboDK的下一个版本中添加这个功能。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的爱游戏ayx高尔夫球在线文档通过观看我们的教程Youtube频道


# 5
(01-13-2022, 8时20分)杰里米写道:两件事,

您应该在框架名称的末尾添加一个ID: Ceiling frame 2

这个后处理器不支持导出目标的名称。

我将尝试在RoboDK的下一个版本中添加这个功能。

杰里米

嗨,杰里米。

谢谢你的回复。首先,我想知道为什么我没有收到你的回复通知。:)

但是在帧的末尾添加一个ID是什么意思:“Ceiling frame 2”?

(01-17-2022,上午10:09)christian.hansenWrote:
(01-13-2022, 8时20分)杰里米写道:两件事,

您应该在框架名称的末尾添加一个ID: Ceiling frame 2

这个后处理器不支持导出目标的名称。

我将尝试在RoboDK的下一个版本中添加这个功能。

杰里米

嗨,杰里米。

谢谢你的回复。首先,我想知道为什么我没有收到你的回复通知。更新:我看到我可以“订阅”这个线程。我现在已经做到了。

但是在帧的末尾添加一个ID是什么意思:“Ceiling frame 2”?
# 6
从字面上看,只是在RDK中更改框架的名称,以便在它的末尾有一个数字。
你可能需要在setref指令中重新选择帧(右键单击->"set frame link")

杰里米
有关RoboDK及其功能的有用信息,请访问我们的爱游戏ayx高尔夫球在线文档通过观看我们的教程Youtube频道


# 7
(01-17-2022, 09:11)杰里米写道:从字面上看,只是在RDK中更改框架的名称,以便在它的末尾有一个数字。
你可能需要在setref指令中重新选择帧(右键单击->"set frame link")

杰里米

好吧,我同意。

但是为什么我要把框架名称改为“Ceiling frame 2”,当机器人程序没有名为“Ceiling frame 2”的框架时?见附件…


附加文件 缩略图(s)

# 8
后处理器现在的构建方式是,它使用“BASE”+“ID”。
机器人的基础是base 1如果你在框架名后面加上"2"它就变成了" base 2"

杰里米
有关RoboDK及其功能的有用信息,请访问我们的爱游戏ayx高尔夫球在线文档通过观看我们的教程Youtube频道


# 9
只是为了赶上这个。

这将被添加到下一个版本,如果是,大约什么时候推出?

或者这个功能在最新版本中已经运行良好了?

只是想澄清我对你上次评论的理解。:)

(01-18-2022, 12:03 pm)杰里米写道:后处理器现在的构建方式是,它使用“BASE”+“ID”。
机器人的基础是base 1如果你在框架名后面加上"2"它就变成了" base 2"

杰里米

(01-26-2022, 09:59 pm)christian.hansenWrote:只是为了赶上这个。

这将被添加到下一个版本,如果是,大约什么时候推出?

或者这个功能在最新版本中已经运行良好了?

只是想澄清我对你上次评论的理解。:)

啊…

现在我想我明白了:D

所以这实际上可以工作得很好,只要我记得你对“name”+“ID”的评论。

(01-18-2022, 12:03 pm)杰里米写道:后处理器现在的构建方式是,它使用“BASE”+“ID”。
机器人的基础是base 1如果你在框架名后面加上"2"它就变成了" base 2"

杰里米

(01-26-2022, 09:59 pm)christian.hansenWrote:只是为了赶上这个。

这将被添加到下一个版本,如果是,大约什么时候推出?

或者这个功能在最新版本中已经运行良好了?

只是想澄清我对你上次评论的理解。:)

(01-18-2022, 12:03 pm)杰里米写道:后处理器现在的构建方式是,它使用“BASE”+“ID”。
机器人的基础是base 1如果你在框架名后面加上"2"它就变成了" base 2"

杰里米

(01-26-2022, 09:59 pm)christian.hansenWrote:只是为了赶上这个。

这将被添加到下一个版本,如果是,大约什么时候推出?

或者这个功能在最新版本中已经运行良好了?

只是想澄清我对你上次评论的理解。:)

啊…

现在我想我明白了:D

所以这实际上可以工作得很好,只要我记得你对“name”+“ID”的评论。

现在还使用。src文件的屏幕转储…


附加文件 缩略图(s)

是的,这个功能已经存在好几年了。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的爱游戏ayx高尔夫球在线文档通过观看我们的教程Youtube频道






浏览此线程的用户:
1客人(年代)