<< 点击显示目录 >> 主页 轴控开发使用手册 > 轴控应用 > 18.ACOPOS功能块 > IPL FB介绍 |
1.基本信息
编写人 |
穆珊珊 |
审核人 |
(检查,测试,注释) |
|
应用归属 |
运动控制 |
|||
软件信息 |
|
硬件信息 |
||
其他 |
|
|||
版本信息 |
修改内容 |
修改人 |
||
V1.00 |
创建 |
穆珊珊 |
||
|
|
|
2. 简介
IPL:插补器
该功能块可以实现采样系统的可变调整。使用已有数据x(tn)来生成额外数据y(ti)。例如,这就是设定值如何从PLC任务周期调整为ACOPOS周期。
该功能块最常用的是在主站周期不能设置为400us的情况下,通过POWERLINK网络来输入设定值。
3. ParID
ParID名字 |
缩写 |
访问方式 |
数据类型 |
数据范围 |
初始值 |
描述 |
IPL_MODE |
m |
WR |
UI2 |
0,1,2,4 |
0 |
功能模式,激活功能块 0…关闭 1…线性插补 2…二次插补 3…二次插补,无过冲,延迟增加(起始版本V3.110) |
IPL_IN_PARID |
*x |
RD,WR |
UI2 |
<ParID>,0 |
0 |
输入的ParID(指向输入值) |
IPL_EV_PARID |
*e |
RD,WR |
UI2 |
<ParID>,0 |
0 |
事件输入的ParID,检测输入的改变和速率(指向事件,整数类型) |
IPL_CYCLE_TIME |
Tm |
RD,WR |
UI4 |
n*400 |
400 |
输入值产生的循环周期[us] 400的整数倍,最大50000000 |
IPL_EXTRAPOLATION_TIME |
Te |
RD,WR |
UI4 |
0, n*400 |
0 |
外推时间[us] 0或400的整数倍,最大50000000 |
IPL_VALUE_I4 |
yi |
RD |
I4 |
|
0 |
整数结果(输出) |
IPL_VLAUE_R4 |
yf |
RD |
R4 |
|
0.0 |
浮点数结果(输出) |
Ta:IPL循环时间,ACOPOS是400us,ACP10SDC和ACP10SIM是相应的任务等级循环时间。
4. 功能
模式0:关闭
将m置为0,可以将功能块关闭。当前输出值将保持。
注意:一般来说,这样会引起斜率跳变到0(因此,当输入值是激活的“运动”时,输出端的速度会跳变为0)。
模式1:线性插补
功能块使能时(0 -> 1),当前输入值直接输出到输出端。在Ta时刻,对输入变化进行线性插补,然后延迟后输出到输出端。在恒速下,延迟时间是(Tm-Ta)。
如果事件输入端在Tm时间后没有改变,输出会线性外推。Te时间后,外推结束并“冻结”输出值。
下图给出了输出值yi和二次正弦输入xi及相应的导数vi的图形。
模式2:二次插补
功能块使能时(0 -> 2),当前输入值直接输出到输出端。输入在Ta时刻经过二次插补延迟输出到输出端。在恒速下,延迟时间是(Tm-Ta)。
如果在Tm时间后没有值事件改变,输出会执行二次插补直到Te。
下图给出了输出值yi和二次正弦输入xi及相应的导数vi的图形。
模式4:二次插补,无过冲,延迟增加
与模式2的区别:即使在加速度很大的情况下,输出也没有过冲。但是恒速下的延迟时间会增加到(Tm-Ta+(Tm-Ta)/2)。
循环时间IPL_CYCLE_TIME
参数Tm定义了循环时间,在每个Tm时间点会生成输入数据,以及发生事件输入的改变。例如,Tm可能是生成输入数据的PLC任务的循环时间。如果Tm设置不正确,那么就会有不必要的延迟时间或信号失真。
结果:
结果以两种方式输出。
1.以整型/位置值输出:IPL_VALUE_I4。
使用INT32溢出。整数部分和小数部分会发生调整,小数部分在内部,但是没有对应的ParID。
2.以浮点数输出:IPL_VALUE_R4
没有限制或溢出调整。
注意:浮点型输入值没有INT32溢出处理,输出值只在INT32类型的一半范围内有效。
5. 限制
▪不允许在线修改参数
当功能块使能时不允许修改参数(只有mode为0时允许修改)。
▪如果功能块不使用事件输入会产生插补时间过冲:
如果不使用IPL_EV_PARID,那么只有在检测到x发生改变时才会确定输入值。如果输入值丢失或是常值输入,那么输出值是插补出来的。输出值在超过插补时间后会“冻结”。因此,IPL功能块应该使用事件输入端和尽可能小的插补时间。
为了补偿ACOPOS和PLC之间的时间不同步和抖动,有必要使用插补。
6. 例子
控制器通过网络每4ms给ACOPOS发送一次数据(“循环用户通道”数据到/从驱动器)。所控制的运动应该保持一定的速度和加速度限制。
为了达到要求,从网络获得的4ms的阶梯式位置信息需要使用IPL功能块按400us进行插补。然后从IPL功能块获得的“平滑”的输出值应用于设定值发生器的循环位置输入,这样才能达到要求的限制。
问题:该功能测试后,模式1和2一样,都有大的延迟,按帮助所说,模式一应该没有延迟才对。
程序中,使用了PLCopen往VAR_I4_0写数据,效果是一样的,伺服接收数据也有计数,见下图。