插补功能说明文档

合集下载

pvt插补示例v0.2

pvt插补示例v0.2

φ
)∗(
)=
(
)
∗ (
)


[ (
)
]∗

π
∗ V1 ∗ ( −
/ b² + b²/a²)
4.3.2
2 号电机角速度: − L3
令 u=(1 + a )x + (2ab − 2L1)x + L2 + L1 + v=2 ∗ L2 ∗ (1 + a )x + (2ab − 2L1)x + L1 +
φ φ ∗ (
概述 ........................................................................ 5 背景描述..................................................................... 6
直线插补:................................................................... 8
1、2 号电机位置算法 .................................................. 8 速度数据(V)解析: ................................................. 8 1、2 号电机脉冲频率(PPS)算法 ....................................... 9
由图可知φ1=φ3+φ4 φ4= arc tan ( φ3=arccos ( = arccos (
( ∗ (
) ∗ (360/2π)= arctan ( ) ∗ (360/2π)

圆弧插补(逐点比较法)20页文档

圆弧插补(逐点比较法)20页文档
Fi<0
Fi<0
O Fi≥0
X Fi<0 Fi≥0
2、圆弧插补的象限处理
前面的圆弧插补(顺圆、逆圆)只限于第一象限,其他 情况如图所示: Y
O
X
16、业余生活要有意义,不要越轨。——华盛顿 17、一个人即使已登上顶峰,也仍要自强不息。——罗素·贝克 18、最大的挑战和突破在于用人,而用人最大的突破在于信任人。——马云 19、自己活着,就是为了使别人过得更美好。——雷锋 20、要掌握书,莫被书掌握;要为生而读,莫为读而生。——布尔沃
代入偏差函数,得Pi+1点的偏差为: Fi+1 = Fi-2Yi + 1
当Fi<0时,向+X方向进给一步,动点由Pi(Xi,Yi) 移动到 Pi+1(Xi +1,Yi),则新动点的坐标为 Xi+1=Xi +1
代入偏差函数,得Pi+1点的偏差为:
Fi+1 = Fi + 2Xi + 1
所以,第一象限顺时针圆弧插补加工时偏差加工的递推 公式为:
10 F9=1 -X F10=F9-2X9+1 = 0, X10=0,Y10=5 ∑=0
加工过程为: Y 5
4 3
2 1
O
1 23 45
X
(三)象限处理 1、直线插补的象限处理 前面的公式只适用于第一象限,对于其他象限直线,偏
差函数用│X│和 │Y│代替X,Y。则进给方向为:
Y Fi<0 Fi≥0 Fi≥0
X
同理,对于第一象限顺圆加工时,即B→A,当Fi≥0时, 应向-Y方向进给一步,当Fi<0时,应向+X方向进给 一步。
Y
B(Xe,Ye)
Pi(Xi,Yi)

【实用】数字化玉雕技术的原理PPT文档

【实用】数字化玉雕技术的原理PPT文档

二、数字化玉雕技术的原理➢ 数控技术的核心是 Nhomakorabea补与驱动。
插补装置
插补装置的功用是将期望 的设备运动轨迹沿各坐标 轴微分成基本长度单位, 并转换成可控制各坐标轴 运动的一系列数字指令脉 冲。
驱动装置
驱动装置是指伺服驱动系 统,其功用是将插补装置 输出的数字指令脉冲进行 转换与放大,驱动执行元 件,实现由数字指令脉冲 序列规定的坐标运动,并 最终由各坐标运动合成所 期望的运动轨迹。
二、数字化玉雕技术的原理
数字化玉雕技术的基本原理是:将数控设备末端执行部件的运动(或 多个末端执行部件的合成运动)纳入到适当的坐标系中,将所要求的 复杂运动分解成各坐标轴的简单直线运动或回转运动,并用一个满足 精度要求的基本长度单位(Basic Length Unit,BLU)对各坐标轴进行 离散化,由电子控制装置(即数控装置)按数控程序规定的运动控制规 律产生与基本长度单位对应的数字指令脉冲,对各坐标轴的运动进行 控制,并通过伺服执行元件加以驱动,从而实现所要求的复杂运动。
第一节 数字化玉雕技术的原理
二、数字化玉雕技术的原理
数字化玉雕的主体就是雕刻机,它是一种由程序控制的自动化机床, 它所依赖的是一种由数字化信号对其设备运行及加工过程实行掌控调 节的自动控制技术。 数字化玉雕机加工玉雕产品时,首先将玉雕产品的三维立体信息和工 艺信息编制成加工程序,由输入部分送人数控装置,经过数控装置的 处理、运算,按各坐标轴的分量送到各轴的驱动电路,经过转换、放 大后驱动伺服电机,带动各轴运动,并进行反馈控制,使刀具和玉雕 件及其他辅助装置严格地按照加工程序规定的顺序、轨迹和参数有条 不紊地工作,从而加工出玉雕产品的全部轮廓。
《《机机械械雕雕刻刻创创作作》》
第二章 数字玉雕技术的基本工艺

数控铣削-圆弧编程PPT文档共18页

数控铣削-圆弧编程PPT文档共18页
3.最后从垂直轴的正方向往负方向看去,若是顺时 针走刀就用G02,逆时针走刀就用G03,反之则相反。
G03
G02
G02
G02
三、指令格式:
注意: 1、X、Y、Z指圆弧终点的坐标 2、I、J、K指圆心相对于圆弧起点的X、Y、Z 坐标 3、R指圆弧半径(带符号)
四、应用的注意事项:
★若用半径编程:
1、圆弧的圆心角大于0°小于等于180°, 则半径是正值;
2、圆弧的圆心角大于180°小于360°, 则半径是负值。
G02 X30 Y42 R20 F500 G02 X30 Y42 I5 J17 F500
G02 X40 Y8 R-30 F500 G02 X40 Y8 I30 J0 F500
• 拓展及测试:
数控铣削-圆弧编程
数控铣削编程与操作训
圆弧插补
一、定义:
使刀具沿圆弧运动
二、指令:
G02:顺时针圆弧插补 G03:逆时针圆弧插补 ▲ 如何判断一段圆弧的插补指令(用G02还G03)? 1.先判断这段圆弧在哪个平面上 2.后用右手笛卡尔直角坐标系判断和平面垂直的轴 是哪个轴
• 总结:
一、圆弧插补的指令 二、指令的格式 三、指令的灵活运用(注意事项)
• 作业:
1、整理笔记 2、编程题
66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。— —裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭

R语言用均值替换、回归插补及多重插补进行插补的操作

R语言用均值替换、回归插补及多重插补进行插补的操作

R语⾔⽤均值替换、回归插补及多重插补进⾏插补的操作⽤均值替换、回归插补及多重插补进⾏插补# 设置⼯作空间# 把“数据及程序”⽂件夹拷贝到F盘下,再⽤setwd设置⼯作空间setwd("E:\\R_workspace\\R语⾔数据分析与挖掘实战\\chp4")# 读取销售数据⽂件,提取标题⾏inputfile <- read.csv('./data/catering_sale.csv', header = TRUE)View(inputfile)# 变换变量名inputfile <- data.frame(sales = inputfile$'销量', date = inputfile$'⽇期')View(inputfile)# 数据截取inputfile <- inputfile[5:16, ]View(inputfile)# 缺失数据的识别is.na(inputfile) # 判断是否存在缺失n <- sum(is.na(inputfile)) # 输出缺失值个数n# 异常值识别par(mfrow = c(1, 2)) # 将绘图窗⼝划为1⾏两列,同时显⽰两图dotchart(inputfile$sales) # 绘制单变量散点图boxplot(inputfile$sales, horizontal = TRUE) # 绘制⽔平箱形图# 异常数据处理inputfile$sales[5] = NA # 将异常值处理成缺失值fix(inputfile) # 表格形式呈现数据# 缺失值的处理inputfile$date <- as.numeric(inputfile$date) # 将⽇期转换成数值型变量sub <- which(is.na(inputfile$sales)) # 识别缺失值所在⾏数sub# 将数据集分成完整数据和缺失数据两部分inputfile1 <- inputfile[-sub, ]inputfile2 <- inputfile[sub, ]# ⾏删除法处理缺失,结果转存result1 <- inputfile1View(result1)# 均值替换法处理缺失,结果转存avg_sales <- mean(inputfile1$sales) # 求变量未缺失部分的均值avg_sales# ⽤均值替换缺失inputfile2$sales <- rep(avg_sales,n)# 并⼊完成插补的数据result2 <- rbind(inputfile1, inputfile2)View(result2)# 回归插补法处理缺失,结果转存# 回归模型拟合# 注意:因变量~⾃变量model <- lm(sales ~ date, data = inputfile1)# 模型预测inputfile2$sales <- predict(model, inputfile2)result3 <- rbind(inputfile1, inputfile2)# 多重插补法处理缺失,结果转存library(lattice) # 调⼊函数包library(MASS)library(nnet)library(mice) # 前三个包是mice的基础# 4重插补,即⽣成4个⽆缺失数据集imp <- mice(inputfile, m = 4)# 选择插补模型# inputfile为原始数据,有缺失fit <- with(imp,lm(sales ~ date, data = inputfile))# m重复完整数据分析结果池pooled <- pool(fit)summary(pooled)result4 <- complete(imp, action = 3) # 选择第三个插补数据集作为结果补充:R语⾔数据缺失值处理(随机森林,多重插补)缺失值是指数据由于种种因素导致的数据不完整,可以分为机械原因和⼈为原因。

2--插补象限、圆弧走向处理以及逐点比较法合成进给速度-PPT精选文档

2--插补象限、圆弧走向处理以及逐点比较法合成进给速度-PPT精选文档

Y
+Y
Y +X
Xe > 0? N -X
F = F + |Xe|
F = F - |Ye|
F = F - |Ye|
F = F + |Xe|
N
(∑=∑-1)=0? Y 结束
(二)四个象限中的圆弧插补 第一象限顺圆弧插补 在圆弧插补过程中,除象限问题外,还有圆弧走向 问题。 设有第一象限顺圆弧SE,如右图所示。 偏差值计算公式为
Fi < 0 偏差计算 坐标进给 +Y +Y -Y -Y
E(|Xe|,|Ye|)
F i 1 F i Y e
F F i 1 i X e
F<0
X
-Y
根据上述计算表,四个象限内的直线插补处理流程图可绘制如下。
开始 初始化 1)F = 0 2)∑=|Xe|+ |Ye| Y F ≥ 0? N
Xe > 0? Y
2 F X Y R i i 2 2
Y F>0 S
F<0 E
刀具移动方向为 ① 当动点在圆弧上或在圆弧外侧区域时,向-Y方向进给一步; ② 当动点在圆弧内侧区域时,向+X方向进给一步。 将偏差值计算公式离散化,可得如下计算表。 偏差值 动点位置 进给方向 新位置偏差值计算公式 新位置动点坐标
X
② 四个象限的直线插补
采用类似分析,可以发现以下重要规律。 当直线处于第2、3或4象限时,可以采用与之对称的第1象限直线的插补计算 公式进行计算,只是根据象限不同采用不同的进给方向。 即,第2、3和4象限直线的插补问题可以归结为与之对称的第1象限直线的插 补问题。
E(Xe,Ye)
F>0 Y F>0

A0229 应用文档 Simotion 路径插补功能介绍

Simotion 路径插补功能介绍 Simotion Path Interpolation function摘要对于version4.1以上版本的Simotion,开始支持路径插补功能,本文介绍了如何激活与使用插补功能。

关键词路径,插补Key Words Simotion, Path interpolationA&D Service & Support Page 2-16对于Version 4.1以上的Simotion,内部集成了路径插补(path interpolation)功能,三维以下包括三维的位置控制都可以通过插补的方式来确定路径。

路径可以有直线,圆弧以及多项式曲线三种方式。

如图[1]图1 三种路径插补方式Path interpolation同CAM的异同事实上路径插补是基于CAM的基础的完成计算的。

也可以说路径插补的工艺包包含了CAM的工艺包。

图2 路径插补的三个平面图3 工艺包之间的关系同CAM一样,路径插补的功能是为了生成位置轴的profile文件,但CAM利用轴与轴之间的函数关系式来完成插补,轴与轴之间并不确定平面或空间的概念,用到所有的数据都是标量。

例如通过提供的几个(X,Y)点的坐标来完成两个轴位置轨迹之间的线性同步关系。

再例如多项式y = 1 - 4x +4x^2 + 0.5 sin(1x + 0.5)确定从轴y与主轴位置x之间的跟随关系,如图[4]:A&D Service & Support Page 3-16图4 用多项式生成的CAM曲线而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”中去选择。

西门子螺距补偿和反向间隙调整和开启表格插补功能

1.获得厂商权限:Men u——》启动——》设定口令——》sunrise
2.设定机床参数:Men u——》启动——》机床数据——》轴MD——》修改参数38000(最大补偿点数)——》修改参数32450(反向间隙补偿)——》32700(0 可以写补偿,1 写保护)设为0——》设MD有效
3.备份:Men u——》启动——》服务——》连续起动——创建文档——》选中NC和补偿,文件名自定义——》文档。

4.回装:Men u——》启动——》服务——》连续起动——创建文档——》读入文档——》选择备份的文档,紧停拍下。

5.修改螺距补偿文件:Men u——》启动——》服务——》数据管理——》找到文件夹,NC 生效数据,测量系统误差补偿,螺距补偿文件——》复制到“工件”目录下——》修改——》复制到“零件程序”目录下。

6.程序运行:先各轴回零,再运行螺距补偿程序。

7.修改写保护:Men u——》启动——》机床数据——》轴MD——》修改参数32700(0 可以写补偿,1 写保护)设为1——》设MD有效——》NCK复位
8.看是否生效:启动——》诊断——》服务显示——》轴调整。

注:出现44000报警的都要备份回装。

表格插补的功能包开启:19330第2行05位选中,推出后19330变成20H。

CODESYS运动控制之SMC_Interpolator

CODESYS运动控制之SMC_Interpolator及逆解功能
前面已经介绍了G代码格式、G代码编辑器的添加以及用G代码来描述一个图形的轨迹。

G代码编写完成之后,怎么才能运行?这时就需要插补器。

决定坐标轴联动过程中各坐标轴的运动顺序、位移、方向和速度的协调过程即为插补。

(interpolation),在CNC中,插补功能由软件或者软硬件结合来实现,称为插补器。

(CNC 是计算机数字控制机床(Computer numerical control,即数控机床)的简称,是一种由程序控制的自动化机床)。

1:程序中添加插补器功能块SMC_Interpolator
双击功能块可以查看帮助文档
2:逆解功能是把插补出来的数据转换为轴需要的坐标系。

龙门机构只需要XYZ笛卡尔坐标系,而另外一些机构如Scara机械手就需要只需要把笛卡尔坐标系转换成极坐标系。

2.1 添加一个两轴龙门机构的逆解
2.2双击功能块可以查看说明文档
上图是把笛卡尔坐标系转换为笛卡尔坐标系
3:添加Scara机械手,双击可查看说明文档
上图是把笛卡尔做标系转换为Scara2(本例中为两轴)机械手需要的极坐标系整个过程如下:。

G12.1文档

TO: 阎文学极坐标插补( G12.1, G13.1 )极坐标插补用于轮廓控制使笛卡尔坐标系编程指令转换为直线轴(刀具的移动)和旋转轴的移动(工件的旋转).此功能常用于车削中心编程加工;[ 格式]G12.1:极坐标插补模式开始(极坐标插补功能打开)G13.1:极坐标插补模式取消(极坐标插补功能关闭)[ 说明]■ 极坐标插补平面G12.1启用极坐标插补模式,并选择极坐标插补平面.极坐标插补在此平面执行.旋转轴(虚轴)(单位;mm或inch)直线轴(单位mm或inch)局部坐标系原点(G52指令)或是工件坐标系的原点[ 极坐标插补平面]当开机或系统复位,极坐标插补是取消状态(G13.1)极坐标插补的直线轴和旋转轴必须在参数(No.5460和5461)中设定.注意)在G12.1使用之前的平面要取消.当指定G13.1后再存贮.当系统复位时极坐标插补取消,使用G17,G18或G19选择的平面恢复使用.■ 极坐标插补移动的距离和进给率假想轴的坐标单位与直线轴的单位相同(mm/inch)进给率的单位是mm/min或inch/min.在极坐标插补模式,编程指令用极坐标插补平面的笛卡尔坐标指定.旋转轴的位址使用平面的第二轴(假想轴)的位址.不管平面的第一轴指定的是直径还是半径与该平面没有指定旋转轴时的第一轴一样.假想轴在指定G12.1后坐标为0时建立.极坐标插补在G12.1指定后的起始角度假设刀具的位置为0°.■在极坐标插补模式中可以指定的G码G01 ………………… 直线插补G02,G03 ………… 圆弧插补G04 ………………… 暂停,确实停止G40,G41,G42 …… 刀具半径补正(极坐标插补轨迹在刀具半径补正之后)G65,G66,G67 ……用户巨指令G90,G91 ………… 绝对指令,相对指令G94,G95 ………… 每分钟进给,每转进给■ 极坐标平面中的圆弧插补在极坐标插补平面作圆弧插补(G02或G03)的圆弧半径的位址根据该平面的第一轴(直线轴)来决定.当直线轴是X轴或平行于X轴时I和J在Xp-Yp平面内.当直线轴是Y轴或平行于Y轴时J和K在Yp-Zp平面内.当直线轴是Z轴或平行于Z轴时K和I在Zp-Xp平面内.■ 在极坐标插补模式不在极坐标插补平面沿轴向的移动刀具通常沿这些轴移动,而不依赖极坐标插补.■ 在极坐标插补模式当前位置的显示显示实际坐标.也显示在极坐标插补平面(笛卡尔坐标系)在单节中的残余距离.[ 限制]■ 极坐标插补的坐标系在指定G12.1之前,要设定局部坐标系(或工件坐标系)回转轴的中心为坐标系的原点.在G12.1模式,坐标系不能被改变(G92,G52,G53相关坐标系复位,G54到G59等).■ 刀具半径补正指令极坐标插补(G12.1或G13.1)模式不能在刀具半径补正模式(G41或G42)中开始或结束.G12.1或G13.1必须在刀具半径补正取消模式(G40)指定.■ 刀具长度偏移量指令刀具长度偏移量必须在极坐标插补取消模式在G12.1指定之前指定.不能在极坐标插补模式指定.甚至在极坐标插补模式不能改变偏移量值.■ 刀具偏移量指令刀具偏移量必须在G12.1模式之前指定.在G12.1模式不能改变偏移量.■ 程序再启动在G12.1模式中的单节,程序不能再启动.■ 旋转轴的切削进给率在笛卡尔坐标系中极坐标插补使刀具移动转换为旋转轴(C轴)和直线轴(X轴)的移动.当刀具移动接近工件的中心时,C轴的进给率向量变得很大,有可能超过C轴的最大进给率(参数No.1422中设定)引起报警.为防止C轴的进给率超过C轴的最大进给率,指定位址F来减小进给率或者改动程序使刀具(使用刀具半径补正时的刀具中心)不靠近工件的中心.注意)三条直线L1,L2和L3,ΔX是在笛卡尔坐标系用位址F指定进给率每单位时间刀具移动的距离.象刀具移动从L1到L2到L3,在坐标系中对应ΔX每单位时间刀具移动的角度从θ1到θ2到θ3.换句话说,C轴在刀具移动越靠近工件中心进给率变大.C的进给率向量有可能超过C轴的最大进给率因为刀具的移动在笛卡尔坐标系中要转换成C轴和X轴的移动.ΔXθ1 L1θ2 L2θ3 L3L:是刀具中心到工件中心的垂直距离R:C轴的最大切削进给率(deg/min)极坐标插补速度指定位址F用下列公式给出.指定速度在计算公式的允许值之下.公式提供的是理论值,实际上要根据计算误差比理论值稍微低一点.F〈L×R×π/ 180 (mm/min)[ 举例]极坐标插补程序举例基于X轴(直线轴)和C轴(旋转轴)假想C轴C轴程序轨迹刀具半径补正后N204 N203 的轨迹N205 N202 N201N208 X轴N200N206N207Z轴O0001 ;:N010 T0101;:N0100 G90 G00 X60.0 C0 Z_ ; 快速到起始位置N0200 G12.1 ; 极坐标插补开始N0201 G42 G01 X20.0 F_ ;N0202 C10.0 ;N0203 G03 X10.0 C20.0 R10.0 ;N0204 G01 X-20.0 ; 几何编程N0205 C-10.0 ; (基于笛卡尔坐标X-C'平面)N0206 G03 X-10.0 C-20.0 I10.0 J0 ;N0207 G01 X20.0 ;N0208 C0 ;N0209 G40 X60.0 ;N0210 G13.1 ; 极坐标插补取消N0300 Z_ ;N0400 X_ C_ ;::N0900 M30 ;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.6 插补运动模式插补运动模式可以实现多轴的协调运动,从而完成一定的运动轨迹。

该插补运动模式具有以下一些功能,可以实现直线插补;可以同时有两个坐标系进行插补运动;每个坐标系含有两个缓存区,可以实现缓存区暂停、恢复等功能;具有缓存区延时和缓存区数字量输出的功能;具有前瞻预处理功能,能够实现小线段高速平滑的连续轨迹运动。

4.6.1 指令列表设置插补运动指令列表4.6.2 重点说明4.6.2.1 建立坐标系运动控制器初始状态下,所有的规划轴都处于单轴运动模式下,两个坐标系也是无效的。

所以,当需要进行插补运动时,首先需要建立坐标系,将规划轴映射到相应的坐标系中。

每个坐标系最多支持四维(X-Y-Z-A),用户根据自己的需求,也可以利用二维(X-Y)、三维(X-Y-Z)坐标系描述运动轨迹。

用户通过调用GT_SetCrdPrm()指令将在坐标系内描述的运动通过映射关系映射到相应的规划轴上。

运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。

调用GT_SetCrdPrm()指令时,所映射的各规划轴必须处于静止状态。

建立坐标系的例程如下:…… …… ……short rtn;TCrdPrm crdPrm; // 定义坐标系结构体变量memset(&crdPrm,0,sizeof(crdPrm)); // 将变量初始化为全0crdPrm.dimension=2; // 坐标系为二维坐标系图4-6-1 右手坐标系 Z XY OcrdPrm.synVelMax=500; // 最大合成速度:500pulse/mscrdPrm.synAccMax=1; // 最大加速度:1pulse/ms^2crdPrm.evenTime = 50; // 平滑时间:50mscrdPrm.profile[0] = 1; // 规划器1对应到X轴crdPrm.profile[1] = 2; // 规划器2对应到Y轴crdPrm.profile[4] = 1; // 规划器5对应到X轴crdPrm.profile[5] = 2; // 规划器6对应到Y轴rtn = GT_SetCrdPrm(1,&crdPrm); // 建立1号坐标系,设置坐标系参数………………例程说明:dimension:表示所建立的坐标系的维数,取值范围为[1,4],该例程中所建立的坐标系是二维,即X-Y坐标系。

synVelMax:表示该坐标系所能承受的最大合成速度,如果用户在输入插补段的时候所设置的目标速度大于了该速度,则将会被限制为该速度。

synAccMax:表示该坐标系所能承受的最大合成加速度,如果用户在输入插补段的时候所设置的加速度大于了该加速度,则将会被限制为该加速度。

evenTime:每个插补段的最小匀速时间。

当用户设置的插补段比较短时,而该插补段的目标速度又设置的比较大,则会造成合成速度的曲线如图4-6-2所示,只有加速段和减速段,形成一个速度尖角,加速度在尖角处瞬间由正值变为了负值,造成较大的冲击;设置了evenTime之后,可以减小目标速度,使速度曲线如图4-6-3所示,减小了加速度突变的冲击。

图4-6-2 evenTime=0 图4-6-3 evenTime>0 profile[x]:规划轴与坐标轴之间的对应关系。

Profile[0..7]对应规划轴1~8,如果规划轴没有对应到该坐标系,则profile[x]的值为0;如果对应到了X轴,则profile[x]为1,Y轴对应为2,Z轴对应为3,A轴对应为4。

允许多个规划轴映射到相同的坐标轴,如例程中规划轴1和规划轴5对应到了X轴,规划轴2和规划轴6对应到Y轴,对应到相同坐标轴的规划轴的运动将会完全相同。

但是不允许把相同规划轴对应到不同的坐标系,否则该指令将会返回错误值。

4.6.2.2 坐标系运动坐标系运动采用缓存区运动方式,即用户需要向插补缓存区中传递插补数据,然后,启动插补运动,运动控制器则会依次执行用户所传递的插补数据,直到所有的插补数据全部运动完成。

每个坐标系包含两个缓存区(FIFO):FIFO0和FIFO1,其中FIFO0为主要运动FIFO,FIFO1为辅助运动FIFO,每个FIFO都含有4096段插补数据的空间。

FIFO支持动态管理的方式,即插补数据运动完成之后,其所占用的缓存区空间将会被释放,用户可以继续传递新的插补数据,通过这种方式,就可以支持大于4096段的用户插补数据。

坐标系运动的例程如下:………………short rtn;TCrdData crdDataSend; // 定义插补数据结构体short run; // 定义坐标系运动状态查询变量long segment; // 定义坐标系运动完成段查询变量rtn = GT_CrdClear(1,0); // 清除坐标系1的FIFO0中的数据// 第一段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));// 把插补数据清零crdDataSend.acc = 0.1; // 插补段的加速度:0.1pulse/ms^2crdDataSend.pos[0] = 200000;crdDataSend.pos[1] = 0; // 该插补段的终点坐标(200000,0)crdDataSend.vel = 100; // 该插补段的目标速度:100pulse/msrtn = GT_CrdData(1,&crdDataSend,0); // 将该插补段传递给坐标系1的FIFO0 // 第二段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));crdDataSend.acc = 0.1;crdDataSend.pos[0] = 100000;crdDataSend.pos[1] = 173205;crdDataSend.vel = 100;crdDataSend.operation.flag = 1; // 该插补段中含有延时、数字量输出操作crdDataSend.operation.doType = MC_GPO; // 数字量输出类型:通用输出crdDataSend.operation.doMask = 0xffff; // bit0~bit15全部都输出crdDataSend.operation.doValue = 0x55; // 输出的数值为0x55rtn = GT_CrdData(1,&crdDataSend,0);// 第三段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));crdDataSend.acc = 0.1;crdDataSend.pos[0] = -100000;crdDataSend.pos[1] = 173205;crdDataSend.vel = 100;crdDataSend.operation.flag = 1;crdDataSend.operation.doType = MC_GPO;crdDataSend.operation.doMask = 0xffff;crdDataSend.operation.doValue = 0xaa;rtn = GT_CrdData(1,&crdDataSend,0);// 第四段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));crdDataSend.acc = 0.1;crdDataSend.pos[0] = -200000;crdDataSend.pos[1] = 0;crdDataSend.vel = 100;crdDataSend.operation.flag = 1;crdDataSend.operation.delay = 400; // 该段运动完成时,需要延时400msrtn = GT_CrdData(1,&crdDataSend,0);// 第五段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));crdDataSend.acc = 0.1;crdDataSend.pos[0] = -100000;crdDataSend.pos[1] = -173205;crdDataSend.vel = 100;crdDataSend.operation.flag = 1;crdDataSend.operation.doType = MC_GPO;crdDataSend.operation.doMask = 0xffff;crdDataSend.operation.doValue = 0x55;crdDataSend.operation.delay = 100; // 可以同时具有数字量输出和延时rtn = GT_CrdData(1,&crdDataSend,0);// 第六段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));crdDataSend.acc = 0.1;crdDataSend.pos[0] = 100000;crdDataSend.pos[1] = -173205;crdDataSend.vel = 100;rtn = GT_CrdData(1,&crdDataSend,0);// 第七段插补数据memset(&crdDataSend,0,sizeof(crdDataSend));crdDataSend.acc = 0.1;crdDataSend.pos[0] = 200000;crdDataSend.pos[1] = 0;crdDataSend.vel = 100;rtn = GT_CrdData(1,&crdDataSend,0);rtn = GT_CrdSpace(1,&space,0); // 查询坐标系1的FIFO0所剩余的空间rtn = GT_CrdStart(1,0); // 启动坐标系1的FIFO0的插补运动// 等待运动完成rtn = GT_CrdStatus(1,&run,&segment,0); // 查询坐标系1的FIFO的插补运动状态do{rtn = GT_CrdStatus(1,&run,&segment,0);}while(run == 1); // 坐标系在运动,查询到的run的值为1 例程说明:通过GT_CrdData()指令向插补缓存区传递数据,在该指令中包含了终点坐标、加速度、目标速度、缓存区数字量输出、缓存区延时等信息。

相关文档
最新文档