线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
生成g代码时*transl()的问题
# 1
我的程序在使用*transl()命令时出现了一个奇怪的问题。
(我的车站有一台韩华HCR-5)
在TCP下面运行代码应该移动到接近位置,然后沿着Z轴向下移动,最后再次回到接近位置。
代码:
dip_pose = target_dipapp.Pose () * transl (0, 0, 80)
robot.MoveL (target_dipapp)
robot.MoveL (dip_pose)
robot.MoveL (target_dipapp)
target_dipapp是在RoboDK中创建的,并在脚本的开头使用
target_dipapp = RDK。(“Targetname”,ITEM_TYPE_TARGET)项dip_pose是关于的target_dipapp在上面代码的第一行中。

这样,程序在RDK模拟中可以完美地工作,但生成G-Code会给出错误的结果。
在g代码中,它移动到接近位置(target_dipapp),然后到dip_pose这已经被计算过了,但是最后的移动,也就是回到接近位置,要么完全丢失,要么只是得到随机的关节值。

试过使用其他帖子,如发那科或ABB,但没有帮助。
尝试使用关节运动而不是LIN,但结果是一样的。

最后,我尝试创建dip_pose目标在RDK和导入它就像另一个,它工作得很好。

这是g代码的样子* transl(),使用联合接着看最后一个:
#的方法
moveLinear (tcp,{“y”“x”:395.683:582.618,“z”:93.757,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},30岁,1000年,{“精确”:假的,“半径”:2},函数(){});
#计算DIP_POSE
moveLinear (tcp,{“y”“x”:395.683:582.618,“z”:13.757,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},30岁,1000年,{“精确”:假的,“半径”:2},函数(){});
#随机关节值
moveJoint([-32.901000, -133.135000, -98.837800, -38.027300, 90.000000, 147.099000], 20,20, {" exactly ":false,"radius":2}, function() {});

这是g代码的样子* transl(),使用接着看最后一个:
#的方法
moveLinear (tcp,{“y”“x”:395.683:582.618,“z”:93.757,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},30岁,1000年,{“精确”:假的,“半径”:2},函数(){});
#计算DIP_POSE
moveLinear (tcp,{“y”“x”:395.683:582.618,“z”:13.757,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},30岁,1000年,{“精确”:假的,“半径”:2},函数(){});
#完全错过了最后一步

这是g代码的样子没有*transl(),从RoboDK导入目标(这是它在其他情况下的样子):
#的方法
moveLinear (tcp,{“y”“x”:336.574:729.887,“z”:70.000,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},500.0,1000年,{“精确”:假的,“半径”:2},函数(){});
#进口DIP_POSE
moveLinear (tcp,{“y”“x”:336.574:729.887,“z”:-70.000,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},500.0,1000年,{“精确”:假的,“半径”:2},函数(){});
#的方法
moveLinear (tcp,{“y”“x”:336.574:729.887,“z”:70.000,“处方”:-180.000,“办法”:-0.000,“rz”:90.000},500.0,1000年,{“精确”:假的,“半径”:2},函数(){});
# 2
你能快速试一下吗?

“工具”- >“选项”- >“程序”
“线性运动输出”->“最小步长(mm)”->设置为"-1"

如果它有效,请告诉我。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的Youtube频道


# 3
(02-16-2022, 09:07 pm)杰里米写道:你能快速试一下吗?

“工具”- >“选项”- >“程序”
“线性运动输出”->“最小步长(mm)”->设置为"-1"

如果它有效,请告诉我。

杰里米

那工作!非常感谢!

可悲的是,我仍然不能真正理解这里发生了什么…问题是它必须移动到相同的位置吗?或者说,如何用最小步长来解决这个问题?
# 4
这似乎是我们端的“一种”bug, RDK认为您出于某种原因在同一地点移动,并触发过滤器最小步长保护。

我会在以后的开发中提到这一点。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的Youtube频道






浏览此主题的用户:
1客人(年代)