Simotion 路径插补功能介绍

n

对于Version 4.1以上的Simotion, 内部集成了路径插补(path interpolation)功能,三维以下包括三维的位置控制都可以通过插补的方式来确定路径。路径可以有直线,圆弧以及多项式曲线三种方式。如图[1]n

Simotion 路径插补功能介绍
图1 三种路径插补方式n

Path interpolation同CAM的异同
事实上路径插补是基于CAM的基础的完成计算的。也可以说路径插补的工艺包包含了CAM的工艺包。n

Simotion 路径插补功能介绍 Simotion 路径插补功能介绍
图2 路径插补的三个平面 图3 工艺包之间的关系n

同CAM一样,路径插补的功能是为了生成位置轴的profile文件,但CAM利用轴与轴之间的函数关系式来完成插补,轴与轴之间并不确定平面或空间的概念,用到所有的数据都是标量。例如通过提供的几个(X,Y)点的坐标来完成两个轴位置轨迹之间的线性同步关系。再例如多项式y = 1 - 4x +4x^2 + 0.5 sin(1x + 0.5)确定从轴y与主轴位置x之间的跟随关系,如图[4]:n

Simotion 路径插补功能介绍
图4 用多项式生成的CAM曲线n

而Path interpolation 功能更突出体现空间路径的概念,如三维空间的多项式插补,如图[2],并不需要确定轴之间的直接函数关系,而是借助矢量矩阵来设定三维变量同第四变量p的关系:P = A0 + A1•p + A2 •p2 + A3•p3 + A4•p4 + A5•p5, p∈ [0,1]
Path interpolation的激活
首先只有Version 4.1以上的simotion才可以激活其路径插补功能,另外PATH的工艺包需要被激活,到simotion 的“select Technology packages”中去选择。如图[6]所示。也只有激活PATH工艺包的前提下,才能在编程过程中找到与插补相关的指令[图5]。n

Simotion 路径插补功能介绍
图5 Sout 中的插补菜单n

Simotion 路径插补功能介绍
图6 激活插补工艺包n

生成带有Path interpolation功能的轴
在创建轴的过程中要选择Path interpolation,如图[7]:需要注意的是PATH功能与 Synchronous operation并没有直接的联系,因此不必要激活同步功能。n

Simotion 路径插补功能介绍
图7 创建Path 轴n

创建PATH OBJECT
在选择了带有Path功能的轴后,我们需要在PATH OBJECTS中创建一个新的object_2, 如下图[8]:n

Simotion 路径插补功能介绍
图8 创建Path objectn

然后再所创建的path_object_2中的intercoections中将path_object_2链接到相应的轴上去。n

Simotion 路径插补功能介绍
图 9 将Path 链接到轴上n

另外,Path_object不但可以链接到轴上,也可以链接到事先生成的CAM,用CAM定义其速度关系。
三种插补方式n

直线插补 Simotion 路径插补功能介绍

在MCC语言编程中,只需要输入目标位置的坐标值,当调用此程序块时,三维上的三个轴都会到达目标位置的坐标值,而轨迹上的每一个点都在这条空间直线上。在库文件中提供的指令为 _movePathLiner()
圆弧插补 Simotion 路径插补功能介绍

圆弧插补有三种方式:n

1. 在二维平面内基于圆弧半径、目标位置以及方向的平面插补方式,当起动此程序块时,系统会根据当前位置,目标位置以及圆弧半径三个数据来计算圆弧轨迹,然后二维方向上的轴会从当前位置按圆弧轨迹运行到目标位置,编程时需要注意半径必需大于两点之间的距离的一半。另外在编程时还可以定义轨迹的大小圆弧方式,如下图所示。n

Simotion 路径插补功能介绍
图10 基于圆弧半径、目标位置以及方向的平面插补方式n

注意这种方式不能用于三维,因为不能确定唯一轨迹。在ST编程中相应的指令为_movePathCircular(),圆弧类型选择 WITH_RADIUS_AND_ENDPOSITION。
编程举例:n

retval := _movepathcircular(
pathobject := pathIpo,
pathplane := X_Y,
circulartype := WITH_RADIUS_AND_ENDPOSITION,
circledirection := POSITIVE,
pathmode := RELATIVE,
x := 10.0, y := 10.0,
radius := SQRT(200.0)/2.0 );

2. 在两维平面内基于圆心坐标、旋转角度以及方向的平面插补方式,当调用此程序块时,系统会根据当前位置,圆心坐标以及旋转角度来计算运行轨迹以及目标位置,运行程序块时会根据事先设定的轨迹到达相应位置。这里不存在大小圆弧的概念,只有方向的设定。如下图所示:n

Simotion 路径插补功能介绍
图11 基于圆心坐标、旋转角度以及方向的平面插补方式n

注意这种方式不能用于三维,因为不能确定唯一轨迹。在ST编程中相应的指令为 _movePathCircular(),圆弧类型选择BY_CENTER_AND_ARC。n

Simotion 路径插补功能介绍
图12 MCC编程举例n

编程举例:n

retval := _movepathcircular(
pathobject := pathIpo,
pathplane := X_Y,
circulartype := BY_CENTER_AND_ARC,
circledirection := POSITIVE,
ijkmode := RELATIVE,
i := -10.0, j := 0.0,
arc := 90.0 );

3. 基于中间插补点以及目标位置的插补方式,与上面两种插补方式不同,这种插补方式有两维也有三维的,因为三点可以确定一个平面,所以轨迹时可以唯一确定的,运行轨迹如下图所示。如果选择两维平面需要注意中间插补点与目标位置都要保证在此平面上。否则运行程序时系统会报错。n

Simotion 路径插补功能介绍
图13基于中间插补点以及目标位置的插补方式n

ST指令为 _movePathCircular(),圆弧类型选择BY_CENTER_AND_ARC。
编程举例:n

retval := _movepathcircular(
pathobject := pathIpo,
pathplane := X_Y_Z,
circulartype := OVER_POSITION_TO_ENDPOSITION,
pathmode := RELATIVE,
x:=10.0, y:=0.0, z:=0.0,
ijkmode := RELATIVE,
i:=5.0, j:=5.0, k:=5.0 );

Simotion 路径插补功能介绍
图14 MCC编程举例n

多项式插补 Simotion 路径插补功能介绍
在高级应用中,圆弧插补可能不能满足设计需求,如椭圆形的插补等,这种情况只有借助多项式来完成计算,但需要注意,路径插补中用到的多项式变量均为矢量。n

1. 根据五阶多项式的系数来完成插补,如下式:n

Simotion 路径插补功能介绍

其中,我们在编程时需要提供的数据有目标位置以及四个空间矢量坐标:A2 , A3, A4, A5,方程又可以写成如下形势:n

Simotion 路径插补功能介绍

这种方法的优点是插补比较精确,但缺点是多项式不好确定,即四个矢量的运算难度比较大。n

Simotion 路径插补功能介绍
图15 MCC编程举例n

可供调用的库程序为_movePathPolynomial(),其多项式类型polynomialMode:=
SETTING_OF_COEFFICIENTSn

2. 提供起始位置与目标位置的几何微分n

Simotion 路径插补功能介绍
图16 根据起始与最终点的微分进行插补n

其中 为起始位置,即当前位置,为一阶微分,为起始位置的二阶微分; Simotion 路径插补功能介绍
为目标位置,为目标位置的一阶微分,为目标位置的二阶微分。 Simotion 路径插补功能介绍
举例如下:n

Simotion 路径插补功能介绍
图16 插补举例n

Simotion 路径插补功能介绍
图17 MCC插补举例n

可供调用的库程序为_movePathPolynomial(),其多项式类型polynomialMode:=SPECIFIC_START_DATAn

3. 只需提供目标位置的几何微分,不需要提供起始位置,把当前位置作为起始位置,如果当前位置不能获得,则系统会报错50002。n

举例 :将两段直线通过插补的方式连接起来,并形成路径。n

// Determination of derivatives via function
// _getLinearPathGeometricData
// Derivative in start point of polynomial command
startPoly := _getLinearPathGeometricData(
pathObject := pathIpo,
pathPlane := X_Y_Z,
pathMode := ABSOLUTE,
xEnd := 50.0, yEnd := 0.0, zEnd := 0.0,
xStart := 0.0, yStart := 0.0, zStart := 0.0,
pathPointType := END_POINT );
// Determine derivative in end point of polynomial command
endPoly := _getLinearPathGeometricData(
pathObject := pathIpo,
pathPlane := X_Y_Z,
pathMode := ABSOLUTE,
xEnd := 150.0, yEnd := 150.0, zEnd := 0.0,
xStart := 150.0, yStart := 100.0, zStart := 0.0,
pathPointType := START_POINT);
// Programming of polynomial command
// Use of derivatives in the command
retval := _movePathPolynomial(
pathObject := pathIpo,
pathPlane := X_Y_Z,
pathMode := ABSOLUTE,
polynomialMode := ATTACHED_STEADILY,
x:=150.0, y:=100.0, z:=0.0,
vector1x := startPoly.firstGeometricDerivative.x,
vector1y := startPoly.firstGeometricDerivative.y,
vector1z := startPoly.firstGeometricDerivative.z,
vector2x := startPoly.secondGeometricDerivative.x,
vector2y := startPoly.secondGeometricDerivative.y,
vector2z := startPoly.secondGeometricDerivative.z,
vector3x := endPoly.firstGeometricDerivative.x,
vector3y := endPoly.firstGeometricDerivative.y,
vector3z := endPoly.firstGeometricDerivative.z,
vector4x := endPoly.secondGeometricDerivative.x,
vector4y := endPoly.secondGeometricDerivative.y,
vector4z := endPoly.secondGeometricDerivative.z,
blendingMode := ACTIVE_WITH_DYNAMIC_ADAPTION,
mergeMode := SEQUENTIAL,
extCommand := WHEN_BUFFER_READY );

停止与继续PATH
可用通过_stopPath()编程指令来停止当前的PATH, 但并不清楚,还可以指令_continuePath()来继续PATH。

Simotion 路径插补功能介绍

Path 的动态特性
我们在插入PATH OBJECT可以预设其动态特性的, 我们可以选择速度文件如CAM作为其速度文件,我们还可以通过指令的方式来修改其动态特性,如Jerk, smooth等等。另外我们还可以对其动态特性进行限制。
与PATH相关的命令如下:

Simotion 路径插补功能介绍

关键词
路径,插补

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论