Program Examples:Defining a Cartesian Group/zh-hans
| 语言: | English • 中文(简体) |
|---|
简介
以下示例演示如何设置笛卡尔组。 它将配置XYZ正交系统的基本设置。 该设置将在SETUP.PRG任务中完成。
配置
首先,必须在CONFIG.PRG文件中定义笛卡尔组:
common shared gXYZ as group Axnm = a1 Axnm = a2 Axnm = a3 model=1 of xyz
轴定义
接下来,在SETUP.PRG任务中,定义用于设置线性轴的子程序:
| NOTE | |
| 假设系统中定义了一个全局整数数组pos_units []。它保存每个轴的位置分辨率; 即,电机的旋转一整圈的计数。 |
| NOTE | |
| 在这个例子中,假设线性螺丝和电机之间没有齿轮,螺杆的螺距为每转5毫米。 |
sub SetAxis(ax as generic axis, byval vvv as double)
with ax
attach
en = 0
sleep 10
' simulated = 0
pfac = pos_units[elementid]/5 'For 5mm pitch
vfac = pfac/1000 ' mm /sec
afac = vfac/1000 ' mm /sec^2
jfac = afac/1000 ' mm / sec^3
vmax = vvv
amax = 1500
dmax = 1500
jmax = omega*amax ' Fast reacting
vcruise = vmax
acc = amax
dec = dmax
jerk = jmax
prftype = profile
smooth = -1
vospd = 2*vmax
velocitysafetylimit = 100*vmax
positionerrorsettle = 5
pemax = 1
pmaxen = 1
pminen = 1
disp = 0
abs = 1
positionrolloverenable = 0
' simulated = 1
Print "axis ";elementname;" set."
detach
end with
end sub
组设置
现在定义组设置程序来设置公共组参数。
| NOTE | |
| 假设机器人的每个轴的工作范围在0到+300mm之间 |
sub SetGroup(gr as generic group)
dim i as long
with gr
attach
en = 0
sleep 10
vfac = 1/1000
afac = vfac/1000
jfac = afac/1000
positionerrorsettle = 2
pemax = 1
abs = 1
a1.axistype = 0
a2.axistype = 0
a3.axistype = 0
configgroup
vmax = 1000 ' mm/sec
amax = 1500 ' 1500 mm/sec^2
dmax = 1500 ' 1500 mm/sec^2
jmax = omega*amax
vcruise = vmax
acc = amax
dec = dmax
jerk = jmax
vmtran = vmax
amtran = amax
jmtran = jmax
vtran = vmtran
atran = amtran
dtran = amtran
jtran = jmtran
vmrot = vmax
amrot = amax
jmrot = jmax
vrot = vmrot
arot = amrot
drot = amrot
jrot = jmrot
xmax = 300
xmin = 0
ymax = 300
ymin = 0
zmax = 300
zmin = 0
rmin = 0
rmax = 4000
smooth = -1
prftype = profile
j1.pmin = 0
a1.pmin = 0
j2.pmin = 0
a2.pmin = 0
j3.pmin = 0
a3.pmin = 0
j1.pmax = 300
a1.pmax = 300
j2.pmax = 300
a2.pmax = 300
j3.pmax = 300
a3.pmax = 300
Print "group ";elementname;" set."
detach
end with
end sub
完成任务
最后,SETUP.PRG的主程序块为:
dim shared profile as long = -1' 2 - Acceleration Trapeze Profile, -1-Sine Acceleration
dim shared omega as double = 15
program
call Setaxis(a1,1000) ' X max speed 1000mm/sec
call Setaxis(a2,1000) ' Y max speed 1000mm/sec
call Setaxis(a3,1000) ' Z max speed 1000mm/sec
call SetGroup(GXYZ)
end program