ID : 7206
自由曲线插补
自由曲线插补是指,描绘平滑连接路径点轨迹的动作。
自由曲线插补通过“Move S”指令指定路径编号并动作。
路径数据中可注册多个位置数据(路径点),自由曲线插补以等速经过按照顺序平滑经过指定的路径数据中注册的路径点的动作轨迹。
路径数据可使用事先保存的数据,也可使用PacScript内编辑的路径点数据。
连接路径点的插补方法为3次花键。
路径点的相关注意事项
执行“Move S”指令时将当前位置和指定路径的全部路径点复原后计算动作轨道。如下所示,根据连续路径点的位置关系,可能会出现无法计算轨道而发生错误的情况。
- 如果按照路径点No.从小到大的顺序将3个连续路径点设为A、B、C,则“点A至点B的矢量和点B至点C的矢量所成的角为180度”时,可能会无法计算轨道,发生错误。

- 如果2个连续位置很近、姿势变化较大,则不可计算轨道并发生错误。
- 如果连续路径点的位置和姿势非常接近,则靠后的路径点将不计入计算范围。不计算的路径点不可通过CurPathPoint获取通过点。
路径偏差
运行过程中,指定的路径发生偏差时请参照“防止路径偏差”。
自由曲线插补的程序样品
程序说明
密封涂抹的样品SCRIPT。
路径数据事先保存在轨道编号1中,但是要假设安装的工件会稍有偏移。自变量pGap为工件偏移量。路径数据2中注册仅移动偏移量的数据,并进行自由曲线插补动作。
自由曲线插补动作中启动密封涂抹任务(Seal)。如果经过指定的路径点,则将I/O设为先ON后OFF。
<ProSpline.pcs>
#Define Home P(300,0,300,180,0,180) '初始位置
#Define sSpeed I[0] '自由曲线插补动作时的速度[mm/s]
Sub Main(ByVal pGap as Position)
' pGap为工件偏移量
Dim n As Integer
Dim posN As Position
TakeArm
ChangeWork 1
ChangeTool 1
' 在路径数据2中创建路径点
' 在路径数据1中注册原路径点
' 补充偏差pGap
ClrPathPoint 2
For n = 1 To GetPathPointCount(1)
posN = Dev(GetPathPoint(1,n), pGap)
AddPathPoint 2, posN
Next
' 自由曲线插补动作
Run Seal ' 取出涂抹剂的程序
SpeedMode 0 '最佳速度控制OFF
HighPathAccuracy On ' 高轨迹控制功能ON
Move S, 2, Speed = MPS(sSpeed)
HighPathAccuracy Off ' 高轨迹控制功能OFF
SpeedMode 3 '最佳速度控制ON
Move L, Dev(CurPos, P(0,0,50)), Speed = 20
Move P, Home
End Sub
<Seal.pcs>
#Define ioSeal IO[128]
#Define StartPathNo 3
#Define StopPathNo 150
Sub Main
ioSeal = Off
Wait CurPathPoint >= StartPathNo
ioSeal = On
Wait CurPathPoint >= StopPathNo
ioSeal = Off
End Sub
ID : 7206

