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