工控网首页
>

应用设计

>

普通PLC实现ECam电子凸轮运动控制

普通PLC实现ECam电子凸轮运动控制

2021/3/27 19:02:33

TM241等普通PLC实现电子凸轮功能/CNC

第三方库使用指南

1,本方案的特点2

2,软件,硬件要求2

3,软件组态3

4,驱动配置8

5,软件参数配置9

6,软件功能块FB编程(完全兼容Softmotion FB功能块)16

7,Zx FB功能块与Softmotion FB功能块的等价关系16

8,CNC功能块简介21

9,电子凸轮同步功能22

10,超级主轴24

11,使用zAx.Mech.lrFollowGain(跟随增益)消除/降低跟随误差(Following Error)25

12,掉电保存位置功能块26

13,附录:如何添加库文件27

14,常见问题及对策:30

1,本方案的特点

本方案使用普通的PLC,通过软件算法,实现伺服运动轨迹规划,通过Can总线控制伺服进行同步运动,使得伺服驱动器减少了运动轨迹计算,从而提高伺服的稳定性(以LXM28为例,通过上位机发送同步位置,不会一些莫名其妙的问题。如,定位信号完成done,该来不来,来了又不消失,或者,出现严重滞后等。这些都是因为驱动器在运算轨迹路径的过程中,出现抖动,或者响应慢。另外,done信号还需要通过Can传输给PLC,这也会导致信号延迟太大。而采用同步控制,路径规划计算放在PLC内部,降低了驱动器的负荷,有效改善了类似情况的发生)。同时,使用同步控制伺服,可以提高伺服的使用效果。即使是控制伺服走PTP,也可以非常方便的实时修改ACC,DEC等参数,可以中途修改路径终点,可以非常方便的实现S曲线,减少伺服对机械的冲击,降低设备运行噪音,提高设备性能,使用寿命,提升设备档次。

基于以上特点,市面上,凡是有同步运动功能的硬件,价格都比较昂贵。而该方案使用普通PLC的硬件,价格优势十分明显。LMC058价格几乎是TM241CEC24x3倍!而CPU性能几乎一样。这对价格敏感的客户,很尴尬。一方面,设备要求不高,没有必要使用高速高性能的运动控制器,另一方面,入门级的运动控制器,价格又不低。国产的运动控制器,价格也不便宜。而且,品牌影响力不高,尤其是出口机器。

另外,可以有效扩展运动控制器的同步轴数,比如LMC058的Canopen接口,TM262Lx5,可以增加TMSCO1模块,扩展Can接口,扩展非SERCOSIII同步轴。

2,软件,硬件要求

编程平台:Somachine V43,ESME V11

添加ZxMcLib电子凸轮库(或ZxRobotLib CNC库)文件(详细见文章后面附录)

TM241,TM251,TM258,LMC058,M262+TMSCO1等,具有CanOpen接口或PTO接口

具有Can接口的伺服,如LXM32A,LXM28A,并且支持IP(插补)或CSP(循环同步)模式。要求不高的场合,可以使用脉冲接口伺服,如LXM23D,LXM26

完全兼容Softmotion功能块,Zx-FB的状态位,故障信息,Help,完全与对应的MC_FB保持一致。原来的编程知识是重要的知识积累,得到很好的保持

性能表现(以全部做电子凸轮同步为准):

以TM241CEC24T为例 

4轴凸轮同步,同步时间在2-4ms,若程序量较大,可以放大到6ms。

8轴凸轮同步,同步时间在4-6ms,若程序量较大,可以放大到8ms。

以LMC058为例

2个Can总线接口,都可以实现凸轮同步控制,理论上,同步轴数可以翻倍,当然还受限于CPU计算能力,会牺牲部分同步时间性能

以TM262+TMSCO1为例 

由于CPU性能比TM241提高4-7倍,理论上,可以驱动更多的同步轴(还要综合考虑Can总线负荷)

需要编码器做主轴时:增加高速计数模块 TM3XHSC202

各个PLC平台综合比较

从CPU性能,是否自带Can总线接口,是否自带HSC编码器接口,是否自带PTO接口(PTO可带脉冲凸轮伺服,或接伺服,或接步进),自带IO数量等综合因素来看,TM241CEC24x是性价比最高的硬件平台

有没有同步轴数限制?

以TM241CECx为例,其Can接口最大从轴数量为63轴,如果启用同步功能,最大同步时间可以设置很大,但是同步性能会很差。故,一般设置10ms以内的同步时间周期为好。受此限制,Can总线同步轴数最大约10轴左右(PTO可以额外控制脉冲凸轮同步最大4个轴)。如果对同步性能要求不高,则可以驱动更多的同步轴。

PTO同步轴特点

使用PTO做凸轮控制,可以接任何普通的具有脉冲接口的伺服,或者步进,成本低廉,对性能要求不高,又需要做同步运动的机器,有很好的契合度。比如:枕式包装机,口罩机。针对这种机器,甚至可以选择TM241C40X等没有Can接口的PLC,直接用PTO控制4轴以内的同步驱动,可以进一步降低成本。另一方面,TM241的PTO脉冲频率上限为100KHz,在规划曲线时,要充分考虑,不要超过此限制。伺服设置上,可以通过增加电子齿轮比来提高脉冲频率对应的伺服转速,可以有效避免此缺陷。

3,软件组态

确定总线任务周期:单位:S(一定要匹配下面(小节3-3)SDO中的设置)否则:出现电机顿挫现象,而且给定参数-实际参数不一致。如:给定速度100,实际速度可能或者高一些,或者低一些

 

配置Can总线

配置同步总线

添加LXM28A驱动器普通的EDS文件,

 

推荐版本:SELXM28_017528E.eds

 

配置驱动器

1.添加SDO(16#1006/16#60C2一定要匹配gcrCycletime)否则:出现电机顿挫现象

2.配置R-PDO

3.配置S-PDO

4,驱动配置

建立轴参数结构体:zAx

建立主轴编码器

添加一个HSC,修改名称“MasterEncoder”

5,软件参数配置

编码器配置(注意:一定要将ZxEncToAxis,ZxDrive,eCam放在程序的前面,保证上电第一时间能够初始化,否则程序会Crash!!!)

跳出对话框 

CanOpen总线伺服驱动配置(注意:一定要将ZxEncToAxis,ZxDrive,eCam放在程序的前面,保证上电第一时间能够初始化,否则程序会Crash!!!)

跳出对话框 

相当于LMC058里面的下列参数

PTO脉冲伺服驱动配置

升级版本的ZxDrive_PTO功能块,增加了对PTO脉冲频率是否超过限制的判断:

如果使用CFC编程,注意指令执行的先后顺序,确保ADR(PTO_X)得到最先执行!否则程序会Crash,并跳出弹窗,提示“xxx无源代码。。。” 

第一个式子,尽量降低PLC脉冲输出频率。

第二个式子,尽量提高P1-44/P1-45

简单核算脉冲是否合适公式:

如果伺服噪音比较大,可通过设置适当的脉冲滤波来进行平滑,降低噪音。

以LXM26/LXM28为例,设置以下参数

6,软件功能块FB编程(完全兼容Softmotion FB功能块)

建立Motion程序

建立主轴编码器对象(详细见4-1)

建立轴对象实例(结合3-1,4-2)并在程序中调用

相当于CanMotion下面的马达对象

程序调用

 

7,Zx FB功能块与Softmotion FB功能块的等价关系

使能ZxPower

轴寻原点ZxHoming

轴复位ZxReset

轴设定位置ZxSetPostion

轴停止ZxStop

轴走速度模式ZxMoveVelocity

轴走相对定位ZxMoveRelative

轴走绝对定位ZxMoveAbsolute

轴走二次定位ZxMoveAdditive

轴暂停ZxHalt

轴点动ZxJog

轴寸动ZxInch

8,CNC功能块简介

通过读取Circle.txt文件,实现圆轨迹CNC功能

SMC_ReadNCFile1:ZxRobotLib.SM3_CNC.SMC_ReadNCFile := (sFileName:= 'circle.txt');

9,电子凸轮同步功能

建立凸轮曲线:建议使用LMC058的项目中的Cam编辑器,辅助设计凸轮曲线

定义电子凸轮对象及相关变量(注意:一定要将ZxEncToAxis,ZxDrive,eCam放在程序的前面,保证上电第一时间能够初始化,否则程序会Crash!!!)

 

注意:如果遇到编译出现“未知数据类型”错误,在数据类型前面加前缀:ZxMcLib。

其他如:  

调用ZxCamTableSelect,ZxCamIn使用凸轮曲线

脱开凸轮曲线ZxCamOut

电子齿轮编程

10,超级主轴

使用2个主轴,来控制一个从轴。可以用ZxSuperAxis功能块来实现此应用。此时会生成一个Axis,此轴受到2个主轴的控制,Axis再作为其他轴的主轴。

 

11,使用zAx.Mech.lrFollowGain(跟随增益)消除/降低跟随误差(Following Error)

轴的实际位置与给定位置的差值,就是跟随误差

Following Error=fActPosition-fSetPosition。产生的原因有以下几个:

1,信号传输的滞后,总线发送给定位置到伺服,有时间滞后t1

2,伺服执行动作需要时间,有时间滞后t2

3,伺服把当前位置传输给控制器,有时间滞后t3

二者关系如下图,通常情况下,fActPosition总是小于fSetPosition

如何消除/降低这个滞后?可以使用zAx.Mech.lrFollowGain(跟随增益)

当把lrFollowGain=1.65,速度=200rpm时,FollowingError=-0.32°

 

当把lrFollowGain=1.65,速度=3000rpm时,FollowingError=-3.56°

 

12,掉电保存位置功能块

使用说明

1,上电后,ZxPower功能块的输出作为使能信号,给ZxKeepAxPosition

2,掉电后,伺服电机旋转总距离不要超过±1/4编码器最大范围(多圈编码器为4096圈:<±1024圈)

ZxRestoreAxPos = TRUE --> 恢复位置正常

ZxRestoreAxPos = FALSE --> 恢复位置错误

具体错误信息如下

iqsResult:

'BadNVRam'RAM存储器损坏

'OutOfWindow'位置超出允许范围

'BusNG'总线故障

'CheckSumErr'校验错误

'RestoreAxisPosReadError'读取轴编码器位置错误

 

13,附录:如何添加库文件

找到Devices中的Library Manager,点击Library repository

  

如下依次操作

 

关闭当前窗口,返回到Library Manager界面,选择Add library

 

选中相应的Company目录,比如ZxMotionControl,显示该目录下所有的库文件

 

选中相应的库文件,点击OK,返回到Library Manager界面,即可看到加载好的库文件。现在,就可以正常使用该库文件了。

 

该库文件为授权使用,未经授权,可以运行2小时。2小时后,重启可以继续运行2小时。

若需要CNC功能,需要添加另外的功能库Zx_Robot_MotionControl_Vx1.9.3.xxxxx.compiled-library

 

14,常见问题及对策:

注意:

A:一定要将ZxEncToAxis,ZxDrive,eCam曲线数据等,放在程序的前面,保证上电第一时间能够初始化

B:先定义zAx结构体,使用zAx结构体之前,一定要结合对应的ZxDrive使用,具体见5-2

C:如果使用CFC编程,注意指令执行的先后顺序,确保ADR(PTO_X)得到最先执行!

否则程序会Crash!!!弹出对话框“没有有用的源代码”  

注意:

如果遇到编译出现“未知数据类型”错误,在数据类型前面加前缀:ZxMcLib。如:

总线设备Optional Device选项对总线的影响

  

选中:上电时,该设备掉线,不影响其他Can设备的正常工作

不选中:上电时,该设备掉线,其他Can设备会受到影响,比如伺服,无法使能

什么样的伺服驱动器可以实现Cam同步功能:

1.支持IP模式,即:Interpolation Positon Mode

2.支持CSP模式,即:Cyclic Synchronous Position Mode

IP与CSP模式的区别

相同点:从使用角度来说,二者没有本质区别。都可以实现Cam凸轮同步功能

不同点:R_PDO配置:

IP模式映射16#60C1_01

CSP模式映射16#607A_00

PDO映射区注意事项,起始地址使用(RPDO:16#1400,TPDO:16#1800)

在使用LXM23A的过程中,遇到报警AL113(同步时间错误),按下图处理

如何实现“凸轮开关”

该FC比“凸轮顶杆”(ZxDigitalCamSwitch)简单易用

 

例子:

切换曲线时,ZxCamIn.StartMode尽量使用absolute,可以有效降低切换时的过冲现象。

 

使用ZxGearIn时,如果该轴一直朝一个方向运行,最好改成“线性轴”,即:uiMoveType=1,否则容易出现跳变,LXM28报警AL520“位置偏差过大”

 

更改Cam曲线的最后一点的dY值,比如

XCamPoint[0].dX:=0;

XCamPoint[0].dY:=0; 

XCamPoint[1].dX:=360;

XCamPoint[1].dY:=360;

该凸轮曲线的最后一点为XCamPoint[1].dY:=360,根据工艺需要修改为270,为了避免电机突跳,应该使用ZxCamIn.EndOfProfile来触发ZxCamTableSelect,同时用ZxCamTableSelect.Done触发ZxCamIn。

Schneider Electric OEM-Packaging Solution ADE纵永刚

审核编辑(
王静
)
投诉建议

评论

查看更多评论