一文解析KUKA机器人的摆动

3: user_s9_teil_1_mig nr1einschalten mit n_wied mig_wk=1 p-nr=10 naht-nr=10 ein
4: warte bis !e848 & e852
5: a852 = ein
6: spsmakro181 = ein
7: fb psps = e417 & e433 &(f308 + a843) & e879 & e880
pendeln ein figur: 1 amplitude: 1[mm] periode: 1 [mm] ebene: 0[o]
通勤启动摆动 ein, 摆图1 , 振幅1 ,周期 1,电平0
vw_usr_r (#usr_adv,104,8,1,1,1,10,10,true)
vw (#vw_weav, true, 1, 1, 1, 0, true )
机器人的自动摆动功能常用于cmt焊接
vw_usr_r (#usr_main,104,8,1,1,1,10,10,true)
vw (command :in,cond :in,p1 :in,p2 :in,p3 :in,p4 :in,b1 :in, point :in )
weaving (b1,p1,p2,p3,p4 )
def weaving (w_state :in,w_typ :in,amplitude :in,period :in,w_angle :in )
w_state :b1, w_typ : p1, amplitude :p2, period :p3, w_angle :p4
w_state :true
w_typ=1
amplitude=1振幅=1
period=1周期
w_angle=0 角度
bool w_state ;编织开/关
int w_typ,amplitude,period,w_angle
if $tech_opt==true then$tech 函数发生器的选项位,函数发生器开
if w_state==true thenb1=true
; 编织将打开
weav_def (w_typ )
$tech[1].fctctrl.scale_in=period period周期=1
$tech[1].fctctrl.scale_out=amplitude 振幅=1
$tech[2].fctctrl.scale_in=period period周期=1
$tech[2].fctctrl.scale_out=amplitude 振幅=1
$tech[3].fctctrl.scale_in=period
$tech[3].fctctrl.scale_out=1
$techangle.c=w_angle 在参考坐标系的旋转
if $tech[1].mode==#off then
$tech[1].mode=#cycle
$tech[2].mode=#cycle
$tech[3].mode=#cycle 循环开始编织
endif;
else函数发生器关
;摆动将被关闭
$tech[1].mode=#off
$tech[2].mode=#off
$tech[3].mode=#off
endif;
endif;
end
------------------------------
$tech提前运行中函数发生器的功能参数
该变量最多可用于编程6个函数发生器。函数发生器仅对cp运动有效。仅评估主运行变量。
可以在机器人程序中相对于提前运行修改功能参数。
tech参数结构:
struc tech techmode mode, techclass class,techfctctrl fctctrl, techfct fct
mode 技术模式–功能评估的类型
#off:无功能评估
#single:函数被评估一次。
#cycle:循环评估该功能。
class
技术类–函数发生器的输入大小
#path:输入大小是cp运动的弧长$distance(单位:mm)
#systime:输入大小为系统时间(单位:ms)
#vel:输入大小为当前路径速度$vel_act(单位:m / s)
#sensor:输入大小为变量$techin。机器人根据输入值执行位置校正。
#datalink:输入大小是传感器任务写入的校正帧。 机器人根据输入值进行校正。
fctctrl
函数发生器参数的控制结构
strucfctctrl real scale_in, scale_out, offset_in, offset_out, techgeoref georef
real scale_in:缩放函数的定义范围
real scale_out:缩放函数值的范围
real offset_in:移动函数定义范围的零点
real offset_out:将函数值范围的零点移位
techgeoref georef:enum用于技术功能的几何参考.
fct
用于定义函数发生器的函数参数的结构
函数fct的定义范围和值范围定义如下:
定义范围:0…1
值的范围:-1…+1
georef
#none
评估已编程的功能,但不执行。函数值将写入变量$ techval。
例外:如果使用工艺等级#sensor,则该参数的作用是不执行功能评估。
#x,#y, #z
通过$ techsys和$ techangle编程的参考坐标系的轴,用于编织或传感器校正
在编织或传感器校正过程中,tcp在参考坐标系的x,y或z轴方向上偏移功能值。
#a,#b, #c
仅在使用技术等级#sensor时才相关!
通过$ techsys和$ techangle编程的参考坐标系的轴角,用于传感器校正.
tcp的方向发生变化:功能值绕参考坐标系的z,y或x轴旋转(始终沿数学正方向)
techfct
struc techfct int order, cpnum, techcpscps1, cps2, cps3, cps4, cps5.
order
函数求值时的插补度
1:功能由多边形定义
cpnum
参考以下5个控制点结构的有效控制点总数2…50
注意:有效控制点之间不允许有间隙。
cps1
控制点为1…10的列表(类型:real)
x1,y1,... x10,y10
cps2
带有控制点的列表11…20(类型:real)
x1,y1,... x10,y10
cps3
列出控制点21…30(类型:real)
x1,y1,... x10,y10
cps4
带有控制点的列表31…40(类型:real)
x1,y1,... x10,y10
cps5
带有控制点的列表41…50(类型:real)
x1,y1,... x10,y10
使用距离传感器,最大可校正在tts的z方向上应形成±20 mm。模拟传感器输入提供-10 v至+10 v的电压;应将其调整为0 v(因数= 0.1;失调= 1.0)。
----------------------------
$techangle
提前运行中函数发生器的参考坐标系的旋转
该变量可用于定义由$ techsys定义的参考坐标系的方向,并可在机器人程序中相对于提前运行对其进行修改。
参考坐标系的z,y或x轴旋转所绕的角度(仅允许正方向)
-------------------------
def weav_def (figur :in) 编制程序参数程序
declint figur
switch figur类型
case 1 ;三角形
$tech[1].fct.order=1
$tech[1].fct.cpnum=4
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=0.25
$tech[1].fct.cps1.y2=1.0
$tech[1].fct.cps1.x3=0.75
$tech[1].fct.cps1.y3=-1.0
$tech[1].fct.cps1.x4=1.0
$tech[1].fct.cps1.y4=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=2
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=0.0
$tech[2].fct.cps1.x2=1.0
$tech[2].fct.cps1.y2=0.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=5
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=-1.0
$tech[3].fct.cps1.x2=0.25
$tech[3].fct.cps1.y2=1.0
$tech[3].fct.cps1.x3=0.5
$tech[3].fct.cps1.y3=-1.0
$tech[3].fct.cps1.x4=0.75
$tech[3].fct.cps1.y4=1.0
$tech[3].fct.cps1.x5=1.0
$tech[3].fct.cps1.y5=-1.0
case 2 ;梯形
$tech[1].fct.order=1
$tech[1].fct.cpnum=7
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=0.166666
$tech[1].fct.cps1.y2=1.0
$tech[1].fct.cps1.x3=0.333333
$tech[1].fct.cps1.y3=1.0
$tech[1].fct.cps1.x4=0.5
$tech[1].fct.cps1.y4=0.0
$tech[1].fct.cps1.x5=0.666666
$tech[1].fct.cps1.y5=-1.0
$tech[1].fct.cps1.x6=0.833333
$tech[1].fct.cps1.y6=-1.0
$tech[1].fct.cps1.x7=1.0
$tech[1].fct.cps1.y7=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=2
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=0.0
$tech[2].fct.cps1.x2=1.0
$tech[2].fct.cps1.y2=0.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=10
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=-1.0
$tech[3].fct.cps1.x2=0.05
$tech[3].fct.cps1.y2=-1.0
$tech[3].fct.cps1.x3=0.2
$tech[3].fct.cps1.y3=1.0
$tech[3].fct.cps1.x4=0.3
$tech[3].fct.cps1.y4=1.0
$tech[3].fct.cps1.x5=0.45
$tech[3].fct.cps1.y5=-1.0
$tech[3].fct.cps1.x6=0.55
$tech[3].fct.cps1.y6=-1.0
$tech[3].fct.cps1.x7=0.7
$tech[3].fct.cps1.y7=1.0
$tech[3].fct.cps1.x8=0.8
$tech[3].fct.cps1.y8=1.0
$tech[3].fct.cps1.x9=0.95
$tech[3].fct.cps1.y9=-1.0
$tech[3].fct.cps1.x10=1.0
$tech[3].fct.cps1.y10=-1.0
case 3 ; 对称梯形
$tech[1].fct.order=1
$tech[1].fct.cpnum=6
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=0.1
$tech[1].fct.cps1.y2=1.0
$tech[1].fct.cps1.x3=0.3
$tech[1].fct.cps1.y3=1.0
$tech[1].fct.cps1.x4=0.5
$tech[1].fct.cps1.y4=-1.0
$tech[1].fct.cps1.x5=0.9
$tech[1].fct.cps1.y5=-1.0
$tech[1].fct.cps1.x6=1.0
$tech[1].fct.cps1.y6=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=2
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=0.0
$tech[2].fct.cps1.x2=1.0
$tech[2].fct.cps1.y2=0.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=7
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=-1.0
$tech[3].fct.cps1.x2=0.15
$tech[3].fct.cps1.y2=1.0
$tech[3].fct.cps1.x3=0.25
$tech[3].fct.cps1.y3=1.0
$tech[3].fct.cps1.x4=0.4
$tech[3].fct.cps1.y4=-1.0
$tech[3].fct.cps1.x5=0.5
$tech[3].fct.cps1.y5=1.0
$tech[3].fct.cps1.x6=0.9
$tech[3].fct.cps1.y6=1.0
$tech[3].fct.cps1.x7=1.0
$tech[3].fct.cps1.y7=-1.0
case 4 ;螺旋
$tech[1].fct.order=1
$tech[1].fct.cpnum=6
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=0.166666
$tech[1].fct.cps1.y2=1.0
$tech[1].fct.cps1.x3=0.333333
$tech[1].fct.cps1.y3=1.0
$tech[1].fct.cps1.x4=0.666666
$tech[1].fct.cps1.y4=-1.0
$tech[1].fct.cps1.x5=0.833333
$tech[1].fct.cps1.y5=-1.0
$tech[1].fct.cps1.x6=1.0
$tech[1].fct.cps1.y6=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=6
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=-1.0
$tech[2].fct.cps1.x2=0.083333
$tech[2].fct.cps1.y2=-1.0
$tech[2].fct.cps1.x3=0.416666
$tech[2].fct.cps1.y3=1.0
$tech[2].fct.cps1.x4=0.58
$tech[2].fct.cps1.y4=1.0
$tech[2].fct.cps1.x5=0.916666
$tech[2].fct.cps1.y5=-1.0
$tech[2].fct.cps1.x6=1.0
$tech[2].fct.cps1.y6=-1.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=10
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=-1.0
$tech[3].fct.cps1.x2=0.05
$tech[3].fct.cps1.y2=-1.0
$tech[3].fct.cps1.x3=0.2
$tech[3].fct.cps1.y3=1.0
$tech[3].fct.cps1.x4=0.3
$tech[3].fct.cps1.y4=1.0
$tech[3].fct.cps1.x5=0.45
$tech[3].fct.cps1.y5=-1.0
$tech[3].fct.cps1.x6=0.55
$tech[3].fct.cps1.y6=-1.0
$tech[3].fct.cps1.x7=0.7
$tech[3].fct.cps1.y7=1.0
$tech[3].fct.cps1.x8=0.8
$tech[3].fct.cps1.y8=1.0
$tech[3].fct.cps1.x9=0.95
$tech[3].fct.cps1.y9=-1.0
$tech[3].fct.cps1.x10=1.0
$tech[3].fct.cps1.y10=-1.0
case 5 ;8字形
$tech[1].fct.order=1
$tech[1].fct.cpnum=9
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=0.125
$tech[1].fct.cps1.y2=0.5
$tech[1].fct.cps1.x3=0.25
$tech[1].fct.cps1.y3=1.0
$tech[1].fct.cps1.x4=0.375
$tech[1].fct.cps1.y4=0.5
$tech[1].fct.cps1.x5=0.5
$tech[1].fct.cps1.y5=0
$tech[1].fct.cps1.x6=0.625
$tech[1].fct.cps1.y6=-0.5
$tech[1].fct.cps1.x7=0.75
$tech[1].fct.cps1.y7=-1.0
$tech[1].fct.cps1.x8=0.875
$tech[1].fct.cps1.y8=-0.5
$tech[1].fct.cps1.x9=1.0
$tech[1].fct.cps1.y9=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=9
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=0.0
$tech[2].fct.cps1.x2=0.125
$tech[2].fct.cps1.y2=0.5
$tech[2].fct.cps1.x3=0.25
$tech[2].fct.cps1.y3=0.0
$tech[2].fct.cps1.x4=0.375
$tech[2].fct.cps1.y4=-0.5
$tech[2].fct.cps1.x5=0.5
$tech[2].fct.cps1.y5=0
$tech[2].fct.cps1.x6=0.625
$tech[2].fct.cps1.y6=0.5
$tech[2].fct.cps1.x7=0.75
$tech[2].fct.cps1.y7=0.0
$tech[2].fct.cps1.x8=0.875
$tech[2].fct.cps1.y8=-0.5
$tech[2].fct.cps1.x9=1.0
$tech[2].fct.cps1.y9=0.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=5
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=-1.0
$tech[3].fct.cps1.x2=0.25
$tech[3].fct.cps1.y2=1.0
$tech[3].fct.cps1.x3=0.5
$tech[3].fct.cps1.y3=-1.0
$tech[3].fct.cps1.x4=0.75
$tech[3].fct.cps1.y4=1.0
$tech[3].fct.cps1.x5=1.0
$tech[3].fct.cps1.y5=-1.0
case 6 ; 用户定义的weav
$tech[1].fct.order=1
$tech[1].fct.cpnum=2
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=1.0
$tech[1].fct.cps1.y2=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=2
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=0.0
$tech[2].fct.cps1.x2=1.0
$tech[2].fct.cps1.y2=0.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=2
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=0.0
$tech[3].fct.cps1.x2=1.0
$tech[3].fct.cps1.y2=0.0
case 7 用户定义的weav
$tech[1].fct.order=1
$tech[1].fct.cpnum=2
$tech[1].fct.cps1.x1=0.0
$tech[1].fct.cps1.y1=0.0
$tech[1].fct.cps1.x2=1.0
$tech[1].fct.cps1.y2=0.0
$tech[2].fct.order=1
$tech[2].fct.cpnum=2
$tech[2].fct.cps1.x1=0.0
$tech[2].fct.cps1.y1=0.0
$tech[2].fct.cps1.x2=1.0
$tech[2].fct.cps1.y2=0.0
$tech[3].fct.order=1
$tech[3].fct.cpnum=2
$tech[3].fct.cps1.x1=0.0
$tech[3].fct.cps1.y1=0.0
$tech[3].fct.cps1.x2=1.0
$tech[3].fct.cps1.y2=0.0
endswitch

沁恒股份串口数据记录仪介绍
电脑U盘内存芯片与PCB板的粘接加固用底部填充胶案例
你知道哪一些电化学传感器
RS瑞森半导体500V高压MOS在高速吹风机上的应用
加速推动AIoT 摸索制造业未来走向
一文解析KUKA机器人的摆动
毫米波将为诸多应用场景带来全新体验和价值?
什么是脉冲宽度调制(PWM)或脉冲频率调制(PFM)
厚度不均匀的工件点焊时出现熔核偏移应如何调整
红米Note 4X今日预售,真机图片提前曝光、可谓颜值担当!
中国手机销量下滑28% 份额向华为OPPO五大品牌集中
共射-共基放大电路的仿真分析
工业机器人的分类
两列铁将军双向防盗器接线图分享
vivoX20手机性能怎么样
灵汐科技携手合作伙伴积极开展国产兼容性适配工作
Sofradir和ULIS将进行结构重组计划
动环监控系统在气象数据中心机房的应用
12月物联网行业重大事件汇总
Custom MMIC低相位噪声放大器的主要特性及应用